slide1
Download
Skip this Video
Download Presentation
Web Services in Oracle Database 10 g and beyond

Loading in 2 Seconds...

play fullscreen
1 / 41

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


  • 264 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 10 g 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

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

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

20 20

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

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

  • 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

/statelessSPscott/tiger jdbc:oracle:thin:@host:5521:sqlj jdbc/ds   Company acme … the database resource that is published as a Web Service …

  • 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 … ==

Company method1 method2

web service call ins java classes in the db
Web Service Call-Ins– Java classes in the DB
  • … the database resource that is published … ==

foo.bar.Baz method1method2

  • 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 … ==

getEmp select ename from emp where ename=:{myname VARCHAR}

updateEmp update emp SET sal=sal+500 where ename=:{theName VARCHAR}

>

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
slide40
Q

&

Q U E S T I O N S

A N S W E R S

A

ad