Download
1 / 41

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


  • 262 Views
  • Uploaded on

Session id: 40064. Web Services in Oracle Database 10 g and beyond. Ekkehard Rohwedder Manager, Web Services Oracle Corporation. Content . Motivation Web Services (An overview from 10,000 feet) Consumed by the Database: Web Service call-outs Installation Java and PL/SQL clients

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Web Services in Oracle Database 10g and beyond' - hue


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Web services in oracle database 10 g and beyond

Session id: 40064

Web Services in Oracle Database 10g and beyond

Ekkehard RohwedderManager, Web Services

Oracle Corporation


Content
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


Motivation who are you
Motivation – Who are you?

  • Are you writing programs in the Database? Using SQL, PL/SQL, or Java?

  • Then you may want toconsume external Web Services

    • E.g. weather, stock prices, tax tables, products, genome data

    • E.g. as SQL query data sources=> Enterprise Information Integration:=> Can use table functions to virtualize Web Services as tables


Motivation who are you1
Motivation – Who are you?

  • Want to get to Resources in Database?By using Web Services?

  • Then you want toprovide 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


Content1
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


Web services an overview from 10 000 feet
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


Web services an overview from 10 000 feet1
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”


Web services an overview from 10 000 feet2
Web Services– An Overview from 10,000 feet

  • Service Consumer

  • connect

Firewall

http://www.myserver.com/a/b

  • Service Provider

  • package and deploy


Web services an overview from 10 000 feet3
Web Services– An Overview from 10,000 feet

  • Service Consumer

  • connect

  • invoke service/methods

<se:Envelope

xmlns:se=“http://schemas.xmlsoap.org/soap/envelope/”

se:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/”>

<se:Body> <Add xmlns="urn:add-operation"> <arg1>20</arg1> <arg2>20</arg2> </Add></se:Body>

</se:Envelope>

Invoke: XMLSOAP message

Firewall

http://www.myserver.com/a/b

  • Service Provider

  • package and deploy

  • implement


Web services an overview from 10 000 feet4
Web Services– An Overview from 10,000 feet

Service Consumer

UDDI Repository

  • connect

  • invoke service/methods

<wsdl:definitions>

<wsdl:types></wsdl:types>

<wsdl:message></wsdl:message>

<wsdl:portType></wsdl:portType>

<wsdl:binding> <wsdl:operation></wsdl:operation> </wsdl:binding>

<wsdl:service></wsdl:service>

</wsdl:definitions>

Publish WSDL

  • Service Provider

  • implement

  • package and deploy

  • describe and publish


Web services an overview from 10 000 feet5
Web Services– An Overview from 10,000 feet

  • Service Consumer

  • find/locate

  • bind

  • connect

  • invoke service/methods

UDDI Repository

Get or Locate WSDL

<wsdl:definitions>

<wsdl:types></wsdl:types>

<wsdl:message></wsdl:message>

<wsdl:portType></wsdl:portType>

<wsdl:binding> <wsdl:operation></wsdl:operation> </wsdl:binding>

<wsdl:service></wsdl:service>

</wsdl:definitions>

  • Service Provider

  • implement

  • package and deploy

  • describe and publish


Web services an overview from 10 000 feet6
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


Content2
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


Consumed by the database web service call outs
Consumed by the Database– Web Service call-outs

OracleDatabase

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


Web service call outs
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


Web service call outs installation
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


Web service call outs java clients
Web Service Call-Outs – Java Clients

  • Using Dynamic Invocation Interface:Service s = factory.createService(serviceQname); // Note: can also consume a WSDL documentCall call = service.createCall(portQname);call.setTargetEndpointAddress(endpoint); call.setProperty(…,…); …call.setReturnType(returnTypeQname);call.setOperationName(opQname); call.addParameter(pname, ptype, pmode);Object[] params = { … };Object result = call.invoke(params);


Web service call outs java clients1
Web Service Call-Outs – Java Clients

  • Generate static client proxy with JPublisher jpub -proxywsdl=WSDL-location -user=user/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(“…”);Integer result = itf.operation(p_inout, p_in);…


Web service call outs pl sql clients
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


Web service call outs pl sql clients1
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;


Content3
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


The database provides web service call ins
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 JDBC=> now through Web Services


The database provides application server hosts web service
The Database Provides- Application Server Hosts Web Service

  • Service Consumer

  • find/locate

  • bind/connect

  • invoke service/methods

Get WSDL and bind

OracleDatabase

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


Web service call ins
Web Service Call-Ins

  • Oracle Application Server framework

    • J2EE-based, JAX-RPC Web Services=> deployment, security, management

  • Tools

    • JDeveloper, Enterprise Manager

    • Web Services Assembler (JPublisher), DCM Control


Web service call ins1
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


Web service call ins web services assembler configuration
Web Service Call-Ins– Web Services Assembler configuration

<db-port> <uri>/statelessSP</uri><schema>scott/tiger</schema> <!-- db schema --><db-conn>jdbc:oracle:thin:@host:5521:sqlj</db-conn> <!-- db connection --> <datasource-location>jdbc/ds</datasource-location>   <!– runtime datasource --><port-name>Company</port-name> <!-- Java interface --> <prefix>acme</prefix> <!-- Java package -->… the database resource that is published as a Web Service …

</db-port>

  • Invocation: java -jar wsa.jar -config config.xml


Web service call ins pl sql packages
Web Service Call-Ins– PL/SQL packages

  • … the database resource that is published … ==

    <plsql-package><!-- db package to be exposed --> <name>Company</name><!– optional: methods to expose --> <method>method1</method> <method>method2</method>

    </plsql-package>


Web service call ins java classes in the db
Web Service Call-Ins– Java classes in the DB

  • … the database resource that is published … ==

    <db-java><!– server-side Java class to be exposed --> <name>foo.bar.Baz</name><!– optional: methods to expose --> <method>method1</method><method>method2</method>

    </db-java>

  • Will expose public static methods with serializable arguments.


Web service call ins pl sql packages and java classes
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


Web service call ins sql queries and dml statements
Web Service Call-Ins– SQL Queries and DML statements

  • … the database resource that is published … ==

    <sql-statement><operation> <!-- a SQL Query --> <name>getEmp </name> <statement>select ename from emp where ename=:{myname VARCHAR} </statement></operation>

    <operation> <name>updateEmp</name> <!-- SQL DML --> <statement>update emp SET sal=sal+500 where ename=:{theName VARCHAR}</statement></operation>

    </sql-statement>>


Web service call ins sql queries and dml statements1
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


Content4
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


Database grid services
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


Database grid services1
Database Grid Services

  • DAIS Specification – generic access=> standard way for accessing the DB via XML=> 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)


Content5
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


Conclusion
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


Conclusion1
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


Conclusion what next
Conclusion – What Next…

  • Visit the Oracle Database Web Services demo on the DEMOgrounds

  • Visit the Web Services pages on OTNhttp://otn.oracle.com

  • Download the 10g Oracle Application Server preview with JAX-RPC Web Services


Q

&

Q U E S T I O N S

A N S W E R S

A


ad