Connecting to the Enterprise Using VisiConnect David Lucas President Lucas Software Engineering, Inc
Agenda Introduction What is a Connector? Overview of Sun’s JCA VisiConnect Deployment to BAS Client Interface Summary
Introduction Welcome Application Servers JDBC Enterprise Information System
What is a Connector? Like a bridge, it attaches two ends together, J2EE and EIS AppServer EIS Resource Adapter Connector
Overview - Terms EIS Resource (CICS, SAP, …) Resource Manager Managed Environment Non-Managed Environment
Overview of Sun’s JCA Part of J2EE 1.3 Specification Provide plug and play integration between EIS and J2EE AppServers Simplifies EIS vendor work System Contracts Common Client Interface (CCI) Deployment (RARs)
Overview of Sun’s JCA
Overview - Potential Connectors TIBCO IBM MQ Series Hogan IBM CICS ECI JD Edwards Lawson PeopleSoft SAP Siebel IMS / VSAM or other data records B2B SOAP or XML-RPC
Overview - Potential Tools Actional Attunity Borland CrossWorlds IONA Merant Mercator Sybase / NEON TIBCO Vitria webMethods WRQ
Overview - System Contracts Security Management EIS Signon via JAAS Transaction Management 1PC & 2PC Container Managed Component Managed Connection Management Pooling Error Logging & Tracing Connection Event Notification
Overview - Deployment J2EE Resource Archive Resource Adapter with embedded JAR and Native files RA.XML Descriptor JNDI-Definition Descriptor (vendor)
Overview - Deployment Roles Resource Adapter Provider (EIS Vendor) Application Server / Container Provider (Borland and others) Component Provider (EJB implementations that take advantage of the Connector)
Overview - CCI Remote Function Call Interface (similar to JDBC) Independent and Consistent (vendor neutral) Optional support for Service Provider Interfaces Execute Interactions with Records for Input and Output Supports Result Record Sets
VisiConnect JCA is still in draft Borland VisiConnect is early access Provides Management of Resource Adapters Currently supports basic password security
Deployment to BAS RAR file is created to package classes, interfaces, and native files RA and JNDI Deployment descriptors describe meta information Can deploy to BAS as standalone or as part of an EAR
AppServer Deployment Strategy EJB Session wraps EIS Vendor access Resource Adapter EIS EJB Session Bean AppServer CORBA AppServer Client
Client Invocation Obtain factory context and get Connection to Resource Adapter Create Interaction (like JDBC Statement) Get Record Factory and create input and output Records as needed (like JDBC Result Set layout) Create Interaction Spec that maps function to execute with records Invoke execute and retrieve results
Client Invocation Obtain factory context and get Connection to Resource Adapter javax.naming.Context context = new InitialContext(); ConnectionFactory cxfactory = (ConnectionFactory) context.lookup(“java:comp/eis/MyEIS”);
Client Invocation Create Interaction (like JDBC Statement) Get Record Factory and create input and output Records as needed (like JDBC Result Set layout) Interaction ix=cx.createInteration(); RecordFactory rfact=cxfactory.getRecordFactory(); MappedRecord input=rfact.createMappedRecord("INPUT"); IndexedRecord output= rfact.createIndexedRecord("OUTPUT");
Client Invocation Create Interaction Spec that maps function to execute with records Invoke execute and retrieve results InteractionSpec ixSpec = new my.eis.InteractionSpec(); ixSpec.setFunctionName("INQUERY"); boolean response = ix.execute(ixSpec, input, output);
Resource Adapter Execute on the Resource side class MyInteraction implements Interaction {... public boolean execute(ixSpec, input, output) throws ResourceException { boolean success = false; // grab input // execute EIS business logic // map output return success; } … }
Resource Adapter Descriptor CciBlackBoxLocalTx Java Software 1.0 JDBC Database 1.0 com.sun.connector.cciblackbox.CciLocalTxManagedConnectionFactory javax.resource.cci.ConnectionFactory com.sun.connector.cciblackbox.CciConnectionFactory javax.resource.cci.Connection com.sun.connector.cciblackbox.CciConnection local_transaction ConnectionURL java.lang.String jdbc:borland:dsremote://localhost//home/ddlucas//test.jds basic-password javax.resource.security.PasswordCredential false
Resource Adapter JNDI Objects serial://eis/JDSResource com.sun.connector.cciblackbox.CciConnectionFactory userName java.lang.String test password java.lang.String test
Resource Adapter ejb-jar.xml JDSResourceTest untitled2.JDSResourceTestHome untitled2.JDSResourceTest untitled2.JDSResourceTestBean</ejb-class Stateless Container JDSResource Connector JDSResource com.sun.connector.cciblackbox.CciConnectionFactory Container JDSResourceTest * Required
Resource Adapter ejb-inprise.xml JDSResourceTest JDSResource eis/JDSResource False
DEMO
Summary JCA 1.0 Still Draft, more is needed in next spec Support for only synchronous calls VisiConnect early access Working environment in BAS 4.5 Deployment tools with JB 5.0 Major impact to EIS vendors today In about a year it will impact integrators that will use Connectors
Questions? All trademarks in this presentation are those of their respective owners.
Thank You! Please fill out the speaker evaluation. You can contact me further at … Integrating Java Applications With the Enterprise, by Vijay Sarathy and Rahul Sharma, eAI Journal, May Java Connector Architecture: The Future of EAI, by Mark Hansen and Peter Mamorski, posted to eAI Journal, May 15, 2001 Additional Info