Corporate PPT Template - Oracle Software Downloads
Download
Report
Transcript Corporate PPT Template - Oracle Software Downloads
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
sessionspace
PGA
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
Stub
Java class
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
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
(1)
OS390
Natural/
Adabas
AS400
RPG-DB400
Tandem
COBOL
ACI call
Reply
ACI call
Reply
ACI call
Reply
RFC call
SAP
Reply
E
N
T
I
R
E
X
OS390
Natural/
Adabas
COM Clients
ORACLE 8i Database
O
R
A
C
L
E
A
C
I
J
D
B
C
S
E
R
V
I
C
E
AS400
RPG-DB400
Oracle9i
PL/SQL
JDBC call Data Logic
XDK for PL/SQL
Reply
rmi call
Reply
SAP - JCO
Gateway
OracleJVM
-pure Java Libs
non-Oracle jdbc
S
A
P
J
C
O
J
D
B
C
(2)
Batch
processes
Tandem
COBOL
non Oracle
RDBMS
Database Web Services
Database as Service Provider
J2EE
(Business Logic)
Oracle9i/Oracle10i
Database
Web Service SOAP
Client
Oracle9iAS
Oracle10iAS
JDBC
Oracle9iAS
Web
PL/SQL
Services
Data
Framework
SQL/DML
Java
DataSQL/Query
Logic
AQ/Streams
Database Web Services
Database as Services Consumer
Oracle9iAS
PL/SQL
Web
Services
Framework
SQL
Java
Batch
Jobs
WSDL
SOAP Message
XML
Web Service
Provider
Data
Data Logic
Service
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
Web Service Client
Framework (SOAP)
Database Module
(Web Service Client)
Table Function
SELECT city_name, temp, low_temp, high_temp FROM TABLE (Temp_TF)
Web Service Provider
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
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
OS390
Natural/
Adabas
ORACLE 8i Database
COM Clients
OO4O call
Reply
Batch
processes
SQL*PLUS
OCI
P
R
O
C
E
D
U
R
E
S
XDK for PL/SQL
jars uploaded:
EntireX Communicator
API
non Oracle jdbcs
AS400
RPG-DB400
E
A
I
P
K
G
OracleJVM
rmi call
Reply
SAP
JCO
Gateway
-> SAP
Tandem
COBOL
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)
OS390
Natural/
Adabas
AS400
RPG-DB400
Tandem
COBOL
ACI call
Reply
ACI call
Reply
ACI call
Reply
RFC call
SAP
Reply
E
N
T
I
R
E
X
COM Clients
ORACLE 8i Database
O
R
A
C
L
E
A
C
I
J
D
B
C
S
E
R
V
I
C
E
S
A
P
J
C
O
J
D
B
C
(2)
P
XDK for PL/SQL
R
jars uploaded:
E
O EntireX Communicator API
A
JDBC call C
non Oracle jdbcs
I
E
Reply D
P
U
K
R
G
E
S
OracleJVM
Batch
processes
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
(1)
ACI call
Reply
ACI call
Reply
RFC call
SAP
Reply
A
C
I
J
D
B
C
S
E
R
V
I
C
E
S
A
P
J
C
O
J
D
B
C
(2)
OO
4O
Rep
ly
O
R
A
C
L
E
ORACLE 8i Database
P
XDK for PL/SQL
R
jars uploaded:
E
O EntireX Communicator API
A
JDBC call C
non Oracle jdbcs
I
E
Reply
D
P
U
K
R
G
E
S
OracleJVM
ll
a
c
C
B
JD
oci
Tandem
COBOL
Reply
E
N
T
I
R
E
X
ly
s
sql*plu
AS400
RPG-DB400
ACI call
Re
p
OS390
Natural/
Adabas
OS390
Natural/
Adabas
COM Clients
Batch
processes
ll
ca
C ly
RP ep
R
call
RPC y
l
Rep
AS400
RPG-DB400
rmi call
Reply
SAP
JCO
Gateway
-> SAP
RPC
call
Rep
ly
jd
bc
Re
c
pl all
y
Tandem
COBOL
non Oracle
rdbms
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.
QUESTIONS
ANSWERS