Sei sulla pagina 1di 41

Capoccetti Esteban

Systems Architect -Tecsis


Kuassi Mensah
GPM - Oracle Corporation
Java in the Database
Extend your Database and
Reduce your Costs -
The TECSIS Case Study
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

Fixed SGA Shared pool

Java pool

Process memory
UGA PGA

stackspace
sessionspace newspace oldspace
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

JDBC

Java class
 JPublisher transparently
Stub 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
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

OS390
(1) COM Clients Natural/
ACI call E
Adabas
OS390
l

4O
N
Natural/ l
Reply
T
ca

OO
Adabas I ORACLE 8i Database C
RP
R
O
E AS400
X
R
Oracle9i c all RPG-DB400
RPC
A
C
ACI call
AS400 A
L
E PL/SQL
RPG-DB400 Reply C
I JDBC call Data Logic
J
S
D XDK for PL/SQL rmi call SAP - JCO
B Reply
E
R
C Reply Gateway
Tandem
ACI call V
I
OracleJVM
COBOL Reply C RPC
E -pure Java Libs call
R eply
ll non-Oracle jdbc jd Tandem
ca bc
BC
COBOL
Re ca
ly

S
JD
p

pl ll
Re

RFC call A J y
P D
SAP J B
Reply C C
O Batch non Oracle
processes RDBMS
(2)
Database Web Services
Database as Service Provider
J2EE
(Business Logic)
Oracle9i/Oracle10i
Database
Oracle9iAS
WebPL/SQL Java
Web Service SOAP Oracle9iAS JDBC
Services
Client Oracle10iAS Data
Framework
SQL/DML DataSQL/Query
Logic

AQ/Streams
Database Web Services
Database as Services Consumer

Oracle9iAS SOAP Message


Web PL/SQL
Services Web Service
Framework Provider
SQL Java Data
XML
Data Logic
Batch
Jobs Service

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 Services Data Sources
SELECT city_name, temp, low_temp, high_temp FROM TABLE (Temp_TF)
Table Function

Database Module
(Web Service Client)

Web Service Client


Framework (SOAP)

HTTP Client

Web Service Provider


Stack

SOAP
Request/Response
Next: Database GRID Services

 The Database as as a Web Service


Based 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  SQL Exceptions Propagation


compatible  Native Java Interface
 New Faster Server-side  CORBA/EJB Call-out
JDBC driver  Database Web Services
– Java in the DB as a Web Service
 Optimized Java Memory
– Pre-loaded SOAP Client
Management (Dedicated – Web Services Data Sources
Server)
 Self Tuning Java Pool
 Easy OracleJVM
Monitoring
 New JPublisher options
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 OS390
Natural/
Adabas

ll
ca
ORACLE 8i Database C ly
RP ep AS400
R
call RPG-DB400
P
XDK for PL/SQL RPC y
l
OO4O call R
jars uploaded: Rep
COM Clients EntireX Communicator E
O
API A
Reply C SAP
non Oracle jdbcs I
E rmi call JCO
D Reply Gateway
P
U -> SAP
SQL*PLUS K
Batch R
G RPC
processes E
OCI call
S Rep
ly Tandem
OracleJVM jd COBOL
bc
Re c
pl all
y

non Oracle
rdbms
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
External system calling Oracle
Stored Procedures
(1) COM Clients

ACI call E
OS390 N
Natural/

4O
T

ly
Adabas Reply

Rep
I

OO
R ORACLE 8i Database
O
E
R
X
A
C P XDK for PL/SQL
ACI call L R jars uploaded:
AS400 A
E E
RPG-DB400 Reply
C O EntireX Communicator API
I A
J JDBC call C non Oracle jdbcs
D I
S E
B Reply D
E
C P
R
U
ACI call V K
Tandem I R
G
COBOL Reply C E
E
S
ll OracleJVM
ca
s

BC
sql* lu
oci
S D
y
p

J
pl

A J
RFC call
Re

P D
SAP J B
Reply C C
O Batch
processes
(2)
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

OS390 ACI c
Natural/
Tecsis case study

D E M O N S T R A T I O N

Online scenarios
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.
Q&
QUESTIONS

A
ANSWERS

Potrebbero piacerti anche