420 likes | 662 Vues
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 10 g
E N D
Capoccetti EstebanSystems Architect -Tecsis Kuassi Mensah GPM - 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 Fixed SGA Shared pool Java pool Process memory UGA PGA sessionspace 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
JDBC Java class Stub 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
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/ Adabas ACI call OS390 E N Natural/ OO4O T Reply RPC call Adabas I ORACLE 8i Database R O AS400 E Oracle9i R RPC call X RPG-DB400 A C ACI call PL/SQL L AS400 A E RPG-DB400 C Reply JDBC call Data Logic XDK for PL/SQL I J SAP - JCO D rmi call S Reply B Gateway E Reply C R OracleJVM ACI call V Tandem I COBOL C Reply • pure Java Libs • non-Oracle jdbc RPC call E Reply Tandem COBOL JDBC call Reply S jdbc call Reply A J RFC call P D SAP J B Reply C C Batch non Oracle RDBMS O processes (2)
Database Web Services Database as Service Provider J2EE (Business Logic) Oracle9i/Oracle10i Database Oracle9iAS Web Services Framework Web Service Client PL/SQL Java Oracle9iAS Oracle10iAS SOAP JDBC Data Data Logic SQL/DML SQL/Query AQ/Streams
Database Web ServicesDatabase as Services Consumer Web Service Provider Oracle9iAS Web Services Framework PL/SQL SOAP Message SQL Java Data Data Logic XML 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) Web Service Provider Table Function Database Module (Web Service Client) SOAP Request/Response Web Service Client Framework (SOAP) HTTP Client Stack
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
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 Java DB Features Summary
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
OS390 Natural/ Adabas RPC call ORACLE 8i Database Reply AS400 RPG-DB400 RPC call XDK for PL/SQL P Reply jars uploaded: OO4O call R E EntireX Communicator COM Clients O A API Reply C SAP I non Oracle jdbcs E rmi call JCO D Gateway Reply P U -> SAP K SQL*PLUS Batch R G processes E RPC call OCI S Reply Tandem OracleJVM COBOL jdbc call Reply non Oracle rdbms Java Stored Procedures calling External Systems
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/ T Reply OO4O Adabas Reply I ORACLE 8i Database R O E R X A P XDK for PL/SQL C ACI call L R jars uploaded: AS400 A E E O EntireX Communicator API RPG-DB400 C Reply A I JDBC call C non Oracle jdbcs J I D E S B Reply D E C P R U ACI call K V Tandem R I G COBOL E C Reply E S OracleJVM JDBC call S sql*plus oci Reply A J RFC call P D SAP J B Reply C C Batch O 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
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.htmlReminder – please complete the OracleWorld online session surveyThank you.
Q & Q U E S T I O N S A N S W E R S A