Professional Documents
Culture Documents
Jesús Robles
Oracle Ibérica
Jesus.robles@oracle.com
1
Agenda
• Database Web Services”.
• 9i cómo “Web Services Provider” .
• Cómo tratar con Tipos de Datos no
soportados.
• 9i cómo “Web Services Consumer”.
Oracle9iAS
SOAP JDBC Web
PL/SQL Java
Web Service Services Data
Client Oracle9iiAS
Oracle9
Framework
SQL/DML Data Logic
XML
SQL/Query AQ/Streams
2
9i cómo “Web Services Consumer”
WSDL
Agenda
? Motivos para los denominados “Database
Web Services”.
?9i cómo “Web Services Provider”
soportados.
? 9i cómo “Web ServicesConsumer”
3
9i cómo “Web Services Provider”
? Capacidades de Oracle9i
• PL/SQL stored procedures
• Java classes
• SQL Queries and DML
• XML capabilities (XDB)
• Advanced Queuing (AQ) and Streams
? Acceso tradicional vía JDBC/JMS.
? A partir de ahora accesible a partir de Web
services
SOAP
Decoding
Endpoint implicitly
specifies the type of OC4J
service provided by
the server Web Oracle
Services JPublisher
Servlet Generated
Java JDBC
SOAP SQLJ
Encoding Classes
SOAP
XML Parser
Libraries
4
Publicación de PL/SQL.
A través de Oracle9i JDeveloper
– Automático, Dirigido a través de
asistentes (Wizards)
Oracle9iAS Web Services Assembler
– Línea de comandos.
5
?Publicació a través de WSA
6
Internamente.
PL/SQL -> SQLJ
jpub -sql=MYAPP:MyApp -package=mypack -user=scott/tiger \
-url=jdbc:oracle:thin:@host:1521:orcl
Agenda
• Motivos para los denominados “Database
Web Services”.
• 9i cómo “Web Services Provider”
• Cómo Manejar Tipos de Datos no
soportados.
• 9i cómo “Web Services Consumer”.
7
Tipos de Datos no Soportados.
JPublisher Subclassing
– Cuando la clase generada por JPublisher puede ser
reescrita para resolver tipos de datos JDBC no
soportados en Servicios Web. (Resultset)
Conversión
– Se pueden convertir a distintos tipos PL/SQL or SQL
para resolver tipos de datos JDBC no soportados.
8
Ejemplo de Subclassing
Argumentos REF CURSOR mapeados a ResultSet
no soportados cómo tipo serializable.
1. A través de JPublisher generar una clase/subclase
jpub -sql=MYAPP:MyAppBase:MyApp #MyAppInterf -package=mypack …
Ejemplo de Subclassing
Mapeo de la subclase en Web Services Assembler
<web-service>
<destination-path>./myapp.ear</destination-path>
<context>/oow</context>
<stateless-stored-procedure -java-service>
<uri>/MyApp</uri>
<class-name>mypack.MyApp</class-name>
<interface-name>mypack.MyAppInterf</interface -name>
<database -JNDI-name>jdbc/OracleDS</database -JNDI-name>
</stateless-stored-procedure -java -service>
</web-service>
9
Conversión
Supported
Web Service SOAP JDBC Oracle9iAS
SQL Type
Client Oracle9iiAS
Oracle9 Web
Services
Conversion Functions
Framework
Unsupported
Type
10
Agenda
• Motivos para los denominados “Database
Web Services”.
• 9i cómo “Web Services Provider” .
• Cómo tratar con Tipos de Datos no
soportados.
• 9i cómo “Web Services Consumer”.
11
9i cómo “Web Services Consumer”.
– Carga del cliente SOAP en 9i
- Utilizar loadjava com
-synonym -grant public
- Grant java.net. SocketPermission a los usuarios de la
librería SOAP cliente .
– Utilización del proxy desde código Java dentro de
9i.
- Carga de la clase proxy cliente ó uso del API de
invocación dinámica.
12
9i cómo “Web Services
Consumer” - Function Call
Invocación al Web Service a través de una función
PL/SQL.
x:=invokeWS(..);
http://otn.oracle.com/sample_code/tech/java/jsp/samples/wsclient/Readme.html
2. Tabla de WS.
SELECT ...
FROM
TABLE(WS_TABFUN(CURSOR(SELECT ... FROM ...)))
WHERE ...
13
9i cómo “Web Services Consumer”.
Ejemplo de Función Table
Database Module
Table Function
SOAP
Request/Response
http://otn.oracle.com/sample_code/tech/java/jsp/samples/tablefunction/Readme.html
Agenda
• Motivos para los denominados “Database
Web Services”.
• 9i cómo “Web Services Provider” .
• Cómo tratar con Tipos de Datos no
soportados.
• 9i cómo “Web Services Consumer
• Funcionalidades previstas.
14
Nuevas Funcionalidades
? SQL Query and DML
? Invocación Java-2-Java
? Operaciones AQ /Streams
? Operaciones XML(XDB)
? Ejecución Asíncrona/Diferida
(DBMS_JOB)
Resumen . Database WS
• Web Services Call-in
– Reutilización de PL/SQL y Java procedures
– Exponer datos : XML, relacionales, text, spatial, binarios
(LOB) y multimedia
– Basado en Oracle9iAS Web Services
15
Programas de evolución tecnológica
Promueven el conocimiento de la plataforma middleware Oracle9iAS
16