connecting to the enterprise using visiconnect david lucas president lucas software engineering, inc...

30
Connecting to the Enterprise Using VisiConnect David Lucas President Lucas Software Engineering, Inc [email protected]

Upload: oswald-small

Post on 29-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Connecting to the Enterprise Using

VisiConnect

David LucasPresidentLucas Software Engineering, [email protected]

AgendaAgenda• Introduction

• What is a Connector?

• Overview of Sun’s JCA

• VisiConnect

• Deployment to BAS

• Client Interface

• Summary

IntroductionIntroduction

• Welcome

• Application Servers

• JDBC

• Enterprise Information System

What is a Connector?What is a Connector?

• Like a bridge, it attaches two ends together, J2EE and EIS

AppServerEIS

ResourceAdapter

Connector

Overview - TermsOverview - Terms

• EIS Resource (CICS, SAP, …)

• Resource Manager

• Managed Environment

• Non-Managed Environment

Overview of Sun’s JCAOverview 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 JCAOverview of Sun’s JCA

Overview - Potential ConnectorsOverview - 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 ToolsOverview - Potential Tools• Actional

• Attunity

• Borland

• CrossWorlds

• IONA

• Merant

• Mercator

• Sybase / NEON

• TIBCO

• Vitria

• webMethods

• WRQ

Overview - System ContractsOverview - 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 - DeploymentOverview - Deployment• J2EE Resource Archive

• Resource Adapter with embedded JAR and Native files

• RA.XML Descriptor

• JNDI-Definition Descriptor (vendor)

Overview - Deployment RolesOverview - 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 - CCIOverview - 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

VisiConnectVisiConnect• JCA is still in draft

• Borland VisiConnect is early access

• Provides Management of Resource Adapters

• Currently supports basic password security

Deployment to BASDeployment 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 StrategyDeployment Strategy• EJB Session wraps EIS Vendor access

Resource Adapter

EIS

EJB Session Bean

AppServer

CORBAAppServer

Client

Client InvocationClient 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 InvocationClient 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 InvocationClient 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 InvocationClient 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 AdapterResource 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 outputreturn success;

}…}

Resource Adapter DescriptorResource Adapter Descriptor<connector> <display-name>CciBlackBoxLocalTx</display-name> <vendor-name>Java Software</vendor-name> <spec-version>1.0</spec-version> <eis-type>JDBC Database</eis-type> <version>1.0</version> <resourceadapter> <managedconnectionfactory-class>com.sun.connector.cciblackbox.CciLocalTxManagedConnectionFactory</managedconnectionfactory-class> <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface> <connectionfactory-impl-class>com.sun.connector.cciblackbox.CciConnectionFactory</connectionfactory-impl-class> <connection-interface>javax.resource.cci.Connection</connection-interface> <connection-impl-class>com.sun.connector.cciblackbox.CciConnection</connection-impl-class> <transaction-support>local_transaction</transaction-support> <config-property> <config-property-name>ConnectionURL</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value>jdbc:borland:dsremote://localhost//home/ddlucas//test.jds</config-property-value> </config-property> <auth-mechanism> <auth-mech-type>basic-password</auth-mech-type> <credential-interface>javax.resource.security.PasswordCredential</credential-interface> </auth-mechanism> <reauthentication-support>false</reauthentication-support> </resourceadapter></connector>

Resource Adapter JNDI ObjectsResource Adapter JNDI Objects

<jndi-definitions> <jndi-object> <jndi-name>serial://eis/JDSResource</jndi-name> <class-name>com.sun.connector.cciblackbox.CciConnectionFactory</class-name> <property> <prop-name>userName</prop-name> <prop-type>java.lang.String</prop-type> <prop-value>test</prop-value> </property> <property> <prop-name>password</prop-name> <prop-type>java.lang.String</prop-type> <prop-value>test</prop-value> </property> </jndi-object></jndi-definitions>

Resource Adapter ejb-jar.xmlResource Adapter ejb-jar.xml<ejb-jar> <enterprise-beans> <session> <ejb-name>JDSResourceTest</ejb-name> <home>untitled2.JDSResourceTestHome</home> <remote>untitled2.JDSResourceTest</remote> <ejb-class>untitled2.JDSResourceTestBean</ejb-class <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> <resource-ref>

<description>JDSResource Connector</description><res-ref-name>JDSResource</res-ref-name><res-type>com.sun.connector.cciblackbox.CciConnectionFactory</res-type><res-auth>Container</res-auth>

</resource-ref> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method>

<ejb-name>JDSResourceTest</ejb-name><method-name>*</method-name>

</method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor></ejb-jar>

Resource Adapter ejb-inprise.xmlResource Adapter ejb-inprise.xml

<inprise-specific> <enterprise-beans> <session> <ejb-name>JDSResourceTest</ejb-name> <bean-home-name>JDSResourceTest</bean-home-name> <resource-ref>

<res-ref-name>JDSResource</res-ref-name><jndi-name>eis/JDSResource</jndi-name><cmp-resource>False</cmp-resource>

</resource-ref> </session> </enterprise-beans></inprise-specific>

DEMODEMO

SummarySummary

• 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 …

[email protected]

- http://www.borland.com- http://java.sun.com/j2ee/connector- Integrating Java Applications With the Enterprise, by Vijay Sarathy and Rahul Sharma, eAI Journal, May 2001- Java Connector Architecture: The Future of EAI, by Mark Hansen and Peter Mamorski, posted to eAI Journal, May 15, 2001

Additional Info