41

Capoccetti Esteban Systems Architect -Tecsis Kuassi Mensah GPM - Oracle Corporation

Embed Size (px)

Citation preview

Capoccetti EstebanSystems Architect -Tecsis

Kuassi MensahGPM - Oracle Corporation

Java in the DatabaseExtend 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

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)

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

Online scenarios

Tecsis case study

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.

AQ&Q U E S T I O N SQ U E S T I O N S

A N S W E R SA N S W E R S