capoccetti esteban systems architect -tecsis kuassi mensah gpm - oracle corporation
TRANSCRIPT
Agenda
• Part-I: Extend your Database and Reduce your Costs with Java in Oracle Database 10g
• Part-II: The TECSIS Case Study
Agenda
Extend your Database and Reduce your Costs with Java in Oracle Database 10g
• Cost Reduction• Risk Reduction• Extending Database Reach and Capability• Database Web Services• New Features Summary
Part-II: The TECSIS Case Study
Cost Reduction
Faster Java Applications Development– Reuse of Java Skills for Database Applications– Reuse of Standard and 3rd-Party J2SE 1.4
compatible Java libraries directly in the database
Faster Java Applications Deployment in the database
– Faster Loadjava utility with new Bytecode verifier
What’s in J2SE 1.4
Logging (JSR-041) Security (JAAS, JCE) Preference (JSR-010) Assertion (JSR-041) Exception chaining New high-performance, scalable IO (JSR-051) Headless AWT Regular expression java.util.regex
Cost Reduction(II)
Faster Applications Execution – Faster SQL and XML Data Access for J2SE,
J2EE, Web Services and GRID New & Faster Server-side JDBC driver
– Faster J2SE, JDBC, JMS and JAI Applications execution in the Database Optimized Java Memory Management
Integrate Existing Software Assets– Enabling Custom Platform Integration
Frameworks -- the TECSIS Case Study
Java Memory Areas -- Dedicated Server
Shared memory
Process memory
UGA
sessionspace
Shared pool
Java pool
Fixed SGA
PGA
newspace oldspace
stackspace
Faster Application Execution
Optimized Memory Management for Dedicated Server
– Allocate needed spaces in PGA,once – Keep spaces alive beyond RDBMS call– Reuse JVM context
Self Tuning Java Pool New Method Dispatch
Risk Reduction
Choice– Java in database as an alternative to PL/SQL– Seamless SQL/Java integration
SQL Exception propagation– Native Java Interface – Applications partitioning across Middle-tier/J2EE and
the Database Support of Latest Java Standards
– J2SE 1.4.x, JAI 1.0, JMS 1.x, JAX-RPC Client Protection against Malicious Java Code
– See OracleJVM Security Mechanisms
Native Java Interface
Using PL/SQL wrappers – Each wrapper had to be manually
published with a SQL signature and a Java implementation
– The signatures permitted only Java types that had direct SQL equivalents
– Exceptions issued in Java were not properly returned
Native Java Interface (II)
A client-side stub API for direct invocation of static server-side Java methods
JPublisher transparently takes care of stub generation Example: to call the following method in the server
public String oracle.sqlj.checker.JdbcVersion.to_string();Use
jpub -java=oracle.sqlj.checker.JdbcVersion
StubJava class
JDBC
Extending Database Reach
Extending Database’s Client-Base– Connected Clients– Non-Connected Clients
Database Web Services Data Federation
– Aggregate/Consume Data from J2EE (Web, EJBs)– Aggregate/Consume Data from Web Services– Integrate SQL, XML, Java, J2EE, Web Services
Reaching-out Legacy Assets – Using Pure Java RPC libraries and JDBC Drivers
Extending Database Capability --- the TECSIS Case Study
COM Clients
non OracleRDBMS
Tandem COBOL
AS400RPG-DB400
OS390Natural/Adabas
Data LogicXDK for PL/SQL
-pure Java Libs non-Oracle jdbc
Oracle9i
jdbc call
RPC callRPC c
all
RPC callReply
Reply
ORACLE 8i Database
Batchprocesses
SAP - JCOGateway
rmi callReply
TandemCOBOL
AS400RPG-DB400
OS390Natural/Adabas
SAP
ENTIREX
ACI
SERVICE
ORACLE
JDBC
SAPJCO
JDBC
ACI call
Reply
Reply
Reply
Reply
Reply
ReplyACI call
ACI call
RFC call
JDBC call
JDBC call
OO
4O
(1)
(2)
OracleJVM
PL/SQL
Database Web Services Database as Service Provider
SOAP
J2EE(Business Logic)
Oracle9iASWebServicesFramework
Web ServiceWeb ServiceClientClient Data
Data Logic
AQ/Streams
SQL/QuerySQL/DML
JavaPL/SQLOracle9Oracle9iiASAS
Oracle10Oracle10iiASASJDBC
Oracle9Oracle9ii/Oracle10/Oracle10ii DatabaseDatabase
Database Web ServicesDatabase as Services Consumer
Oracle9iASWebServicesFramework Data
Data LogicBatch Jobs
XML
SOAP Message
Web ServiceWeb ServiceProviderProvider
Service
SQL Java
PL/SQL
WSDL
Database as Web Service Consumer (II)
JPublisher to generate the database client proxy using the the WSDL file for the webservice deployed
jar xvf dist/javacallout.jar META-INF/HelloServiceEJB.wsdl
jpub -proxywsdl=META-INF/HelloServiceEJB.wsdl -dir=genproxy -package=javacallout -user=scott/scott -endpoint=http://localhost:8888/javacallout/javacallout
Web
Service C
lient
Fram
ewo
rk (S
OA
P)
Datab
ase Mo
du
le (W
eb S
ervice
Clien
t)
SELECT city_name, temp, low_temp, high_temp FROM TABLE (Temp_TF)
SOAP Request/Response
HT
TP
Clien
t S
tack
Web Services Data Sources
Web Service Provider
Tab
le F
un
ctio
n
Next: Database GRID Services
The Database as as a Web ServiceBased on GRID and Web Services standards
– Permit Dynamic/Arbitrary SQL/XML operations – “JDBC over SOAP”
– Statefull Web services
Java DB Features Summary
OracleJVM J2SE 1.4.x compatible
New Faster Server-side JDBC driver
Optimized Java Memory Management (Dedicated Server)
Self Tuning Java Pool Easy OracleJVM
Monitoring New JPublisher options
SQL Exceptions Propagation
Native Java Interface CORBA/EJB Call-out Database Web Services
– Java in the DB as a Web Service
– Pre-loaded SOAP Client– Web Services Data
Sources
Agenda
• Extend your Database and Reduce your Costs with Java in Oracle Database 10g
Part-II: The TECSIS Case Study• Who We Are• How we are Using the Oracle Database• Business and Technical Requirements• Why We Choose Java in the Database• Integration Framework : Architecture and Live
Demo• Conclusion
Presentation Objective
This presentation describes our experience of using Java in the Oracle database and how it solved our integration requirements.
Esteban Capoccetti
Systems Architect
Tecsis
About TECHINT & TECSIS
TECHINT GROUP Areas of Business– steel industry– infrastructure projects – industrial plants and processes – the energy and power fields – the public services sector.
The mission of TECSIS -- the System Technology division of TECHINT -- is to validate and disseminate technology throughout the TECHINT GROUP
How we use the Oracle database
Have been using Oracle for 4 years Using PL/SQL Stored Procedures
– No direct SQL calls
Business Rules lay within those Procedures– Composite business rules allowed
PL/SQL extended by Java Stored procedures
Our Business Requirements
Business processes involved different platforms
– necessity to integrate online information Reach information available online on other
platforms, from existing PL/SQL packages Existing legacy systems and new web
development required cross-platform integration
Reusing of existing PL/SQL-based business rules
Our Technical Requirements
Integrate a diversity of platforms:– SAP R3, RPG/AS400, ADABAS/Natural, Cobol
Tandem, COM Components and non-Oracle Databases ( AdabasD, MSSQL Server )
Avoid point-2-point integrations Avoid the cost and Integration effort of a new
product
Most Important Goals
Simplify cross-platform integration Cost Savings Avoid Point-to-Point Communication
Why we choose Java within the Oracle database
Transparent integration with the PL/SQL world– Transformation rules, when needed, are easily written in
PL/SQL
JVM already available -- no new product added Easy to load pure Java libraries including non-Oracle
jdbc drivers Openess: Compatibility with Java standards Extensible: have no limits Robust and Secure
Integration Framework Architecture
Typical Use Case scenarios. Java Stored Procedures Calling External
Systems. External Systems Calling Stored Procedures.
Typical Use Case scenarios
Code validations– System A needs to check whether a specific code value exists
in system B
Example: SAP and Natural Adabas On-line demo
Pop-Up Lists– System A needs to display a list of values using content from
system B
Example: SAP and Oracle Procedure Cross-Platform Modifications (1PC)
– For intance, a new product is added to system A, and the same product also must be added to system B
Java Stored Procedures calling External Systems
COM Clients
non Oraclerdbms
TandemCOBOL
AS400RPG-DB400
OS390Natural/Adabas
XDK for PL/SQLjars uploaded:
EntireX CommunicatorAPI
non Oracle jdbcs
OracleJVM
EAI
PKG
PROCEDURES
OO4O call
Reply
jdbc call
RPC callRPC c
all
Reply
Reply
RPC callReply
Reply
ORACLE 8i Database
Batchprocesses
SQL*PLUS
OCI
SAPJCO
Gateway-> SAP
rmi call
Reply
Java Stored Procedures calling External Systems
EntireX Comunicator java client within the database SAP Java Connector via RMI calls from java stored
procedures Third party pure java jdbc drivers within the database We created standar PL/SQL wrappers, called
EAI_PKG, for each loaded module– Allows uniform invocation from the PL/SQL based business
rules– An application integration guide has been distributed
internally to all PL programmers It took us just a few days to allow programmers to
build procedures that interact with other platfomrs
COM Clients
XDK for PL/SQLjars uploaded:
EntireX Communicator APInon Oracle jdbcs
OracleJVM
EAI
PKG
PROCEDURES
ORACLE 8i Database
Batchprocesses
TandemCOBOL
AS400RPG-DB400
OS390Natural/Adabas
SAP
ENTIREX
ACI
SERVICE
ORACLE
JDBC
SAPJCO
JDBC
ACI call
Reply
Reply
Reply
Reply
Reply
Reply
Rep
lyo
ci
ACI call
ACI call
RFC call
JDBC call
JDBC call
OO
4Osq
l*p
lus
(1)
(2)
External system calling Oracle Stored Procedures
External system calling Oracle Stored Procedures
Gateway using SAP Java Connector (1)– sapjco -> Oracle jdbc
ABAP programs call a java connector server which, in turn, calls the Oracle stored procedure
– 50% API sapjco and 50% oracle jdbc driver Gateway using Software AG RPC solution (2)
– EntireX Comunicator -> Oracle jdbc Natural/Adabas; RPG/AS400 and Cobol/Tandem
will place a call to EntireX Comunicator which, in turn, invokes a Oracle Stored Procedure
– 50 % API EntireX and 50% oracle jdbc driver
Putting Everything Together
COM Clients
non Oraclerdbms
TandemCOBOL
AS400RPG-DB400
OS390Natural/Adabas
XDK for PL/SQLjars uploaded:
EntireX Communicator APInon Oracle jdbcs
OracleJVM
EAI
PKG
PROCEDURES
ORACLE 8i Database
Batchprocesses
SAPJCO
Gateway-> SAP
rmi call
Reply
TandemCOBOL
AS400RPG-DB400
OS390Natural/Adabas
SAP
ENTIREX
ACI
SERVICE
ORACLE
JDBC
SAPJCO
JDBC
ACI call
Reply
Reply
Reply
Reply
Reply
ACI call
ACI call
RFC call
JDBC call
(1)
(2)
Conclusions
By using the Oracle JVM we were able to:– Implement a complete, easy-to-use integration
framework using Java and PL/SQL procedures.– Use existing skills of our PL programmers.– Shield our developers from the underlying
complexity of our platform.– Reuse business logic among different platforms.
In fact, we were able to turn the database into an online integration broker.
Read more Customers case studies @ http://otn.oracle.com/tech/java/jsp/content.html
Reminder – please complete the OracleWorld online session survey
Thank you.