Web Services in Oracle Database 10g and beyond - PowerPoint PPT Presentation

About This Presentation
Title:

Web Services in Oracle Database 10g and beyond

Description:

Web Services in Oracle Database 10g and beyond Ekkehard Rohwedder Manager, Web Services Oracle Corporation Content Motivation Web Services (An overview from 10,000 ... – PowerPoint PPT presentation

Number of Views:406
Avg rating:3.0/5.0
Slides: 42
Provided by: downloadO
Category:

less

Transcript and Presenter's Notes

Title: Web Services in Oracle Database 10g and beyond


1
(No Transcript)
2
Web Services in Oracle Database 10g and beyond
Session id 40064
  • Ekkehard RohwedderManager, Web Services
  • Oracle Corporation

3
Content
  • Motivation
  • Web Services (An overview from 10,000 feet)
  • Consumed by the Database Web Service call-outs
  • Installation
  • Java and PL/SQL clients
  • The Database Provides Web Service call-ins
  • PL/SQL and Java
  • DML and Queries
  • Database Grid Services
  • Conclusion

4
Motivation Who are you?
  • Are you writing programs in the Database? Using
    SQL, PL/SQL, or Java?
  • Then you may want to consume external Web
    Services
  • E.g. weather, stock prices, tax tables, products,
    genome data
  • E.g. as SQL query data sourcesgt Enterprise
    Information Integrationgt Can use table
    functions to virtualize Web Services as tables

5
Motivation Who are you?
  • Want to get to Resources in Database?By using
    Web Services?
  • Then you want to provide Database Web
    Services
  • E.g. weather, stock prices, tax tables, products,
    genome data
  • E.g. PL/SQL packages and Java stored procedures
    XML, MultiMedia messaging capabilities

6
Content
  • Motivation
  • Web Services (An overview from 10,000 feet)
  • Consumed by the Database Web Service call-outs
  • Installation
  • Java and PL/SQL clients
  • The Database Provides Web Service call-ins
  • PL/SQL and Java
  • DML and Queries
  • Database Grid Services
  • Conclusion

7
Web Services An Overview from 10,000 feet
  • An application or component with Three Things
  • a URI
  • interacts through XML via internet
  • interfaces/binding described in XML

8
Web Services An Overview from 10,000 feet
  • Three Specifications
  • SOAP the XML-based message protocol
  • WSDL the service description
  • UDDI the Web Service phone directory

9
Web Services An Overview from 10,000 feet
  • Service Consumer
  • connect

Firewall
http//www.myserver.com/a/b
  • Service Provider
  • package and deploy

10
Web Services An Overview from 10,000 feet
  • Service Consumer
  • connect
  • invoke service/methods

ltseEnvelope xmlnssehttp//schemas.xmlsoap
.org/soap/envelope/ seencodingStyle"http//
schemas.xmlsoap.org/soap/encoding/gt ltseBodygt
ltAdd xmlns"urnadd-operation"gt
ltarg1gt20lt/arg1gt ltarg2gt20lt/arg2gt
lt/Addgtlt/seBodygt lt/seEnvelopegt
Invoke XMLSOAP message
Firewall
http//www.myserver.com/a/b
  • Service Provider
  • package and deploy
  • implement

11
Web Services An Overview from 10,000 feet
Service Consumer
UDDI Repository
  • connect
  • invoke service/methods

ltwsdldefinitionsgt ltwsdltypesgtlt/wsdltypesgt
ltwsdlmessagegtlt/wsdlmessagegt ltwsdlportTypegtlt/ws
dlportTypegt ltwsdlbindinggt ltwsdloperationgtlt/w
sdloperationgt lt/wsdlbindinggt
ltwsdlservicegtlt/wsdlservicegt lt/wsdldefinitionsgt
Publish WSDL
  • Service Provider
  • implement
  • package and deploy
  • describe and publish

12
Web Services An Overview from 10,000 feet
  • Service Consumer
  • find/locate
  • bind
  • connect
  • invoke service/methods

UDDI Repository
Get or Locate WSDL
ltwsdldefinitionsgt ltwsdltypesgtlt/wsdltypesgt
ltwsdlmessagegtlt/wsdlmessagegt ltwsdlportTypegtlt/ws
dlportTypegt ltwsdlbindinggt ltwsdloperationgtlt/w
sdloperationgt lt/wsdlbindinggt
ltwsdlservicegtlt/wsdlservicegt lt/wsdldefinitionsgt
  • Service Provider
  • implement
  • package and deploy
  • describe and publish

13
Web Services An Overview from 10,000 feet
  • Service Consumer
  • find/locate
  • bind/connect
  • invoke service/methods

UDDI Repository
2- Get or Locate WSDL, Bind
Shortcut
3-Connect, Invoke SOAP
1-Publish WSDL
  • Service Provider
  • implement
  • package and deploy
  • describe and publish

14
Content
  • Motivation
  • Web Services (An overview from 10,000 feet)
  • Consumed by the Database Web Service call-outs
  • Installation
  • Java and PL/SQL clients
  • The Database Provides Web Service call-ins
  • PL/SQL and Java
  • DML and Queries
  • Database Grid Services
  • Conclusion

15
Consumed by the Database Web Service call-outs
Oracle Database
Get WSDL and bind
  • Service ConsumerJava and PL/SQL
  • bind
  • connect
  • invoke service/methods

access external Web Services from DB code stock
quotes, weather info, Web search, scientific
data, enterprise data, etc.
  • Service Provider
  • implement
  • package and deploy
  • describe and publish

Connect, invoke SOAP
16
Web Service Call-Outs
Oracle Database
SQLEngine
Dyn Inv Itf
Java WS Client Stack
PL/SQL Wrapper
Java Client Proxy
TableFunction
Connect, invoke SOAP
  • Service Provider
  • implement
  • package and deploy
  • describe and publish

17
Web Service Call-Outs - Installation
  • Preloaded in Oracle 10g Database JVM
  • initdbws.sql script (under OH/sqlj)
  • loads utl_dbws_jserver, sqljutl JAR files
  • creates SYS.UTL_DBWS package
  • JAX-RPC client stack for Web Services in
    JavaVM
  • grant java.net.SocketPermission to users of WS
    client library

18
Web Service Call-Outs Java Clients
  • Using Dynamic Invocation InterfaceService s
    factory.createService(serviceQname) //
    Note can also consume a WSDL document Call
    call service.createCall(portQname)call.setTarg
    etEndpointAddress(endpoint)
    call.setProperty(,) call.setReturnType(retur
    nTypeQname)call.setOperationName(opQname)
    call.addParameter(pname, ptype,
    pmode)Object params Object result
    call.invoke(params)

19
Web Service Call-Outs Java Clients
  • Generate static client proxy with JPublisher jpub
    -proxywsdlWSDL-location -useruser/pwd
  • Creates static JAX-RPC client-proxy code
  • Loads Java code into the database
  • Invoke via client interface
  • CInterf itf new Client_Impl().getCInterfPort()
    )((Stub)itf). _setProperty(,)
    StringHolder p_inout new StringHolder()I
    nteger result itf.operation(p_inout, p_in)

20
Web Service Call-Outs PL/SQL clients
  • Dynamic PL/SQL clients use UTL_DBWS packagesvc
    UTL_DBWS.createService(WSDLLocation)call
    UTL_DBWS.createCall(svc, operation)retval
    UTL_DBWS.invoke(call, args)outargs
    UTL_DBWS.get_output_values(call)
  • uses ANYDATA to represent argument values
    (primitive types only)
  • all names are qualified
  • explicitly close services and calls when done

21
Web Service Call-Outs PL/SQL clients
  • Static PL/SQL clients (packages) are
    automatically created by JPublisher
  • generation of Java glue to expose static Java
    methods
  • generation of PL/SQL package call-specs
  • generation of SQL object types for complex
    arguments
  • installation of Java and PL/SQL code into
    database
  • Can be invoked from SQL and from PL/SQL code
  • SELECT WS_PACK.WS_OP(...) FROM ...
  • BEGIN ... x WS_PACK.WS_OP(...) END

22
Content
  • Motivation
  • Web Services (An overview from 10,000 feet)
  • Consumed by the Database Web Service call-outs
  • Installation
  • Java and PL/SQL clients
  • The Database Provides Web Service call-ins
  • PL/SQL and Java
  • DML and Queries
  • Database Grid Services
  • Conclusion

23
The Database Provides- Web Service Call-Ins
  • Database Capabilities
  • PL/SQL and Java Stored Procedures
  • SQL queries and DML
  • XML capabilities (XDB)
  • Advanced Queueing (AQ) and Streams
  • Access from JDBCgt now through Web Services

24
The Database Provides- Application Server Hosts
Web Service
  • Service Consumer
  • find/locate
  • bind/connect
  • invoke service/methods

Get WSDL and bind
Oracle Database
OracleApplication Server
Connect, invoke SOAP
  • Hosted as J2EEWeb Service
  • delegate
  • package and deploy
  • describe and publish

Service Implementation(PL/SQL, SQL, Java, XML,
AQ, )
JDBC
25
Web Service Call-Ins
  • Oracle Application Server framework
  • J2EE-based, JAX-RPC Web Servicesgt deployment,
    security, management
  • Tools
  • JDeveloper, Enterprise Manager
  • Web Services Assembler (JPublisher), DCM Control

26
Web Service Call-Ins
  • Web Services Assembler configuration
  • PL/SQL package, Java class, or SQL statement that
    is to be exposed data source at runtime
  • connection information for Java code generation
  • name and package of generated Java class
  • Web context
  • EAR deployment, securing, UDDI publishing
  • Enterprise Manager or DCM Control
  • Use JDeveloper wizard to automate task
  • browse connection, right click over package and
    publish as Web Service

27
Web Service Call-Ins Web Services Assembler
configuration
  • ltdb-portgt lturigt/statelessSPlt/urigtltschemagtscott/
    tigerlt/schemagt lt!-- db schema
    --gtltdb-conngtjdbcoraclethin_at_host5521sqljlt/db-
    conngt lt!-- db
    connection --gt ltdatasource-locationgtjdbc/dslt/data
    source-locationgt  
    lt! runtime datasource --gtltport-namegtCompanylt/por
    t-namegt lt!-- Java interface --gt
    ltprefixgtacmelt/prefixgt lt!-- Java package
    --gt the database resource that is published as
    a Web Service
  • lt/db-portgt
  • Invocation java -jar wsa.jar -config
    config.xml

28
Web Service Call-Ins PL/SQL packages
  • the database resource that is published
  • ltplsql-packagegtlt!-- db package to be exposed --gt
    ltnamegtCompanylt/namegtlt! optional methods
    to expose --gt ltmethodgtmethod1lt/methodgt
    ltmethodgtmethod2lt/methodgt
  • lt/plsql-packagegt

29
Web Service Call-Ins Java classes in the DB
  • the database resource that is published
  • ltdb-javagtlt! server-side Java class to be
    exposed --gt ltnamegtfoo.bar.Bazlt/namegtlt!
    optional methods to expose --gt
    ltmethodgtmethod1lt/methodgtltmethodgtmethod2lt/methodgt
  • lt/db-javagt
  • Will expose public static methods with
    serializable arguments.

30
Web Service Call-Ins PL/SQL packages and Java
classes
  • Automatic support for PL/SQL types BOOLEAN,
    record, and table types.Generation of SQL object
    types as necessary
  • Native Java calls use Java serialization over
    JDBC
  • OUT and IN OUT arguments supported in generated
    Java code
  • holder classes in 10g JAX-RPC
  • JavaBeans in 9.0.4 stack
  • JPublisher generates Java wrapper classes this
    is useful by itself outside of DB Web Services

31
Web Service Call-Ins SQL Queries and DML
statements
  • the database resource that is published
  • ltsql-statementgtltoperationgt lt!-- a SQL Query
    --gt ltnamegtgetEmp lt/namegt ltstatementgtselect
    ename from emp where enamemyname
    VARCHAR lt/statementgtlt/operationgt
  • ltoperationgt ltnamegtupdateEmplt/namegt lt!-- SQL
    DML --gt ltstatementgtupdate emp SET salsal500
    where enametheName
    VARCHARlt/statementgtlt/operationgt
  • lt/sql-statementgtgt

32
Web Service Call-Ins SQL Queries and DML
statements
  • myname VARCHAR is a SQL host variable
  • DML statements automatically committed / rolled
    back. Provide a batch (array) API as well
  • SQL queries / REF CURSOR arguments mapped to
  • structured data (JavaBean format), or
  • WebRowset or SQL/XML formats
  • SYS.XMLTYPE mapped to XML subtrees

33
Content
  • Motivation
  • Web Services (An overview from 10,000 feet)
  • Consumed by the Database Web Service call-outs
  • Installation
  • Java and PL/SQL clients
  • The Database Provides Web Service call-ins
  • PL/SQL and Java
  • DML and Queries
  • Database Grid Services
  • Conclusion

34
Database Grid Services
  • GRID efficient utilization of resources
  • GRID infrastructure defined by GGF (Global Grid
    Forum) is based on Web Services technologies
  • DAIS Working Group in GGF(Database Access and
    Integration Services WG)
  • databases become GRID resources
  • generic access mechanism XML version of JDBC
  • distribution of results

35
Database Grid Services
  • DAIS Specification generic accessgt standard
    way for accessing the DB via XMLgt distribution
    mechanism leveraging DB capabilities of
    Advanced Queueing, Streaming
  • server-side XML support further integrated with
    DBWS
  • support for asynchronous invocation and
    notification mechanisms for DBWS
  • full JDeveloper support (today PL/SQL call-in)

36
Content
  • Motivation
  • Web Services (An overview from 10,000 feet)
  • Consumed by the Database Web Service call-outs
  • Installation
  • Java and PL/SQL clients
  • The Database Provides Web Service call-ins
  • PL/SQL and Java
  • DML and Queries
  • Database Grid Services
  • Conclusion

37
Conclusion
  • Database Web Services is
  • invoking database APIs such as SQL, PL/SQL, and
    Java through Web Services
  • re-use PL/SQL and Java stored procedures
  • utilize SQL queries and DML statements
  • handle result sets, XML documents, Relational,
    Text, Spatial, Binary and Multi Media data
  • accessing external Web Services as SQL data
    sources from Java and PL/SQL database code

38
Conclusion
  • JAX-RPC client in Oracle JavaVM for call-outs
  • Oracle Application Server for DB call-ins
  • create, deploy, secure, and publish Web Services
  • JDeveloper IDE
  • Oracle Enterprise Manager
  • command line Web Service Assembler (with
    JPublisher), DCM Control

39
Conclusion What Next
  • Visit the Oracle Database Web Services demo on
    the DEMOgrounds
  • Visit the Web Services pages on OTN
    http//otn.oracle.com
  • Download the 10g Oracle Application Server
    preview with JAX-RPC Web Services

40
A
41
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com