37
Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Embed Size (px)

Citation preview

Page 1: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Brückenschlag zwischen J2EE 1.4 und MainframePlug&Play für Hostanwendungen über JCA 1.5?

Page 2: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

IT Szenario

HTTP + XML

HTTP

Externe Server

Web Server

Web Client

Host Systeme

ApplicationServer

DB Server

externer Server,ERP Systeme

Web Services

Page 3: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Web Services und Host Anwendungen Host Anwendungen bieten relativ oft geeignete

Services / Funktionen

Host Anwendungen „sprechen“ i.d.R. nicht XML / SOAP

„Übersetzung / Anpassung“ in einer vorgelagerten Schicht ist daher nötig

.NET oder J2EE bieten sich an

Page 4: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Charakterisierung von Host Services (1)

Welche Host Services bieten sich für Web Services an?

Bereits heute über das Netz aufrufbar, i.d.R. eingebettet in TP Monitor Umgebungen wie CICS, IMS, openUTM

Sind in 3GL Sprachen, meist in COBOL implementiert, manchmal auch in C,PL/1 etc. oder gar noch 390/Assembler

Erwarten beim Datenaustausch strukturierte, abdruckbare Daten im jeweiligen Host Zeichensatz (EBCDIC)

Beschreibung dieser Daten als COBOL, C, Assembler Datenstrukturen liegt i.d.R. vor

Page 5: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Charakterisierung von Host Services (2)

Wie können Host Services aufgerufen werden?

Direkt über Host Protokolle LU6, OSI-TPi.d.R. über entsprechende Client Bibliotheken der Hersteller

Gibt es für die gängigen PlattformenWindows, Unix, Java, ...

Vertreter sind ECI (IBM), UPIC (FSC), JCO (SAP) usw.

Diese Funktionen werden mittlerweile auch als J2EE konforme Resource Adapter (JCA Connector) angeboten

Page 6: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Host Connectivity

J2EE ApplicationServer

FSC / BS2000/OSD

IBM / z/OS

andereUnisys über OSI-TP

Page 7: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Host Integration „Screen-Scraping“

J2EE Applicationserver

Transaction Synchronisation / Commmunication

Acc

ess

Co

ntr

ol EJBComponentEJB

ComponentEJBComponentEJB

Component

EJB Container

Terminal Connector

s

Terminal 9

750

BS2000

TerminalService

Terminal 3270

TerminalService

z/OS

Page 8: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Host Integration via Message Queues

Host

Asyn.Program

J2EE Applicationserver

Transaction Synchronisation / Commmunication

Acc

ess

Co

ntr

ol EJBComponentEJB

ComponentEJBComponentEJB

Component

EJB Container

MQ MQ

MQMQ

JMS1. TA

2. TA

3. TA

4. TA

5. TA

• Round-Trip besteht aus 5 Transaktionen, davon 3 in der Anwendung selbst

• undefinierte Dauer/Wartezeit für den Round-Trip• Fehlerbehandlung nur über logische Stornierungen

(aufwändige Programmierung)

MQ kann sein:• JMS• MQSeries• UTM Message Queues (FPUT/DPUT)• CICS Queues

Page 9: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Host Integration über J2EE

J2EE Applicationserver

Transaction Synchronisation / Commmunication

Acc

ess

Co

ntr

ol EJBComponentEJB

ComponentEJBComponentEJB

Component

EJB Container

Connectoren

LU6 & OSI-TPsynchrones andasynchrones Messaging

CICS / IMS

OLTPService

openUTM

OLTPService

OSI-TP System

OLTPServiceTransaktionen

Page 10: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

J2EE Architektur

JMS

EJBContainer

EJB

EJB

WebContainer

Servlets+

JSPs

EnterpriseInformationSysteme :

Host Anwendungen

ERP Systeme

Client

Client

Client

Client

Client

Host MQ

Connectors

Relationale Datenbanken

Connectors

MD

B

JDBC

Page 11: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

J2EE Connector ArchitekturJCA 1.0 / 1.5 Resource AdapterPlug & Play ?

Page 12: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

J2EE 1.3 Adapter

J2EEContainer

EJB

EJB

Externe Connectivity

CICS

IMS

openUTM

TuxedoSAP

SiebelBaan

....

JCA 1.0

Page 13: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Externe Connectivity

CICS

IMS

openUTM

TuxedoSAP

SiebelBaan

....

J2EE 1.4 Adapter

J2EEContainer

EJB

MDB

JCA 1.5

JCA 1.5

Page 14: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

JCA Resource Adapter System Schnittstellen (Outbound)

Connection Management

Pooling etc.

Transaction Management

Propagierung derJ2EE Transaktion zum EIS (Host) System

Security Management

Abbildung der J2EE Security auf die EIS (Host) Security

Page 15: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

JCA Resource Adapter Schnittstellen (Outbound) ConnectionFactory

Im JNDI sichtbar, entspricht der JDBC Datasource bzw. den JMS Connectionfactories

getConnection();

getConnection(...);

Connection

Die wichtigste Schnittstelle für den J2EE Programmierer

Stellt Abstraktion einer Host Connection bzw. eines Host Service dar

Weitere Klassen

ConnectionSpec, z.B. zur Übergabe von Authentisierungdaten

InteractionsSpec, z.B. Parametrisierung der Kommunikatioin

Records, z.B. Definition der Übergabedaten

Page 16: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

JCA 1.0 / 1.5 Outbound Connectivitypublic class HostAccessBean implements SessionBean{ private EISConnectionFactory oltpserver; private EISConnection oltp; public void ejbCreate() { naming = new InitialContext(); oltpserver = naming.lookup("java:comp/env/eis/MyOltpConnect"); } public String callHost( String input ) { oltp = oltpserver.getConnection(); oltp.setServiceName ("<EIS_SPECIFIC_FUNCTION_NAME>"); oltp.snd(input); String output = oltp.rcv(); oltp.close(); return output; }}

Page 17: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

JCA 1.0 / 1.5 Outbound Connectivity (CCI)

public class HostAccessBean implements SessionBean{ private ConnectionFactory oltpserver; private Connection oltp; public void ejbCreate() { naming = new InitialContext(); oltpserver = naming.lookup("java:comp/env/eis/MyOltpCciConnect"); } public String callHost( String input ) { oltp = oltpserver.getConnection(); Interaction ix = oltp.createInteraction(); CciCustomRecord in = new CciCustomRecord(); CciCustomRecord out = new CciCustomRecord(); ix.setInteractionVerb = SYNC_SEND_RECEIVE; ix.setFunctionName("<EIS_SPECIFIC_FUNCTION_NAME>"); ix.execute (is, in, out); oltp.close(); return output; }}

Page 18: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

JCA Resource Adapter System Schnittstellen (Inbound)

Work Management

Möglichkeit des „Listening“ auf eingehende Verbindungen

Message Inflow

Behandlung eingehender Nachrichten

Transaction Inflow

Propagierung der EIS (Host) Transaktion zur J2EE Plattform

EJB Invocation (Message Driven Bean)

Page 19: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

JCA Resource Adapter Anwender Schnittstellen (Inbound)

Behandlung der Daten über Message Driven BeansMessageListener Schnitstelle(n) void onMessage(OltpMessage in)OltpMessage onMessage(OltpMessage in)

...

Datenformate der MessageListener Schnitstelle OltpMessage msg

msg.getText()msg.getBytes()...

Page 20: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

JCA 1.5 Inbound Connectivity

public class SimpleMessagedrivenBean implements MessageDrivenBean ,OltpMessageListener{ MessageDrivenContext ctx; public void setMessageDrivenContext (MessageDrivenContext ctx) { this.ctx = ctx; } public void ejbCreate(){...} public void ejbRemove(){...}

public OltpMessage onMessage(OltpMessage msg) { ... }}

Page 21: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Behandlung von Host DatenJava und COBOL ?

Page 22: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

smsg = "4711 100.00 " //12345678901234567890send(smsg);rmsg = rcv();...balance = rmsg.substr(10,10);

Java / Cobol Kommunikation

01 MGET-MSG. 03 ACCOUNT-NR PIC 9(10). 03 AMOUNT PIC 9(10).

01 MPUT-MSG. 03 BOOKING-CODE PIC X(10). 03 BALANCE PIC 9(10)

Abzählen von Byte Positionen FehleranfälligProblematisch bei Änderungen der Nachrichtenstruktur

Page 23: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

01 MGET-MSG. 03 ACCOUNT-NR PIC 9(10). 03 AMOUNT PIC 9(10).

01 MPUT-MSG. 03 BOOKING-CODE PIC X(10). 03 BALANCE PIC 9(10)

MgetMsg.setAccountNr(12345678);MgetMsg.setAmount(100.00);...send(MgetMsg);MputMsg = rcv();...MputMsg.getBalance();MputMsg.getBookingCode();

Zugriff über Namen Gleicher Name = Gleiche InformationTool Unterstützung (Compiler)

Java / Cobol Kommunikation

Page 24: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

BeanConnect Cobol2Java Tooling

Erzeugen einer XML Beschreibung durch COBOL Compiler

Übertragen der XML Datei zur Java Plattform

Bearbeiten der XML Datei, Generierung von Java Klassen

java -classpath lib/cob2java.jar;lib/xalan.jar;lib/xercesImpl.jar;lib/xmlParserAPIs.jar

de.siemens.cob2java.Cob2Java

samples/cobkb.xml de.vorsamer.cob2java java KCKBKOPF

Page 25: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

BeanConnect Cobol2Java Programmierung

import de.siemens.cob2java.cobtypes.*;

import de.vorsamer.cob2java.*; // my generated package

.....

Kckbkopf kb = new Kckbkopf(); // my generated class

utm.rcv (Kckbkopf); // fills the data during data receive

PicX user = kb.getKcbenid();

String lterm = kb.getKclogter().toTrimmedString();

Pic9Comp lkb = kb.getKclkbpb();

Page 26: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Brückenschlag zum WebNutzung von Webservices

Page 27: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

HTTP

+XML

J2EE Zugriff über das Web

JMS

EJBContainer

EJB

EJBClient

Client

Client

Client

Client

WebContainer :

HTML/XML

AxisSOAP

Engine

RMI / IIO

P

RMI / IIOP

Client

Page 28: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Web Services Architektur

Publish

(UD

DI)

WSDL

ServiceProvider

WebService

ServiceRequeste

r

Find

(UDDI)

WSDLServiceRegistr

y

Call(SOAP)

WebServiceDescriptions

Page 29: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Host Services als Web Services

OLTP Dienste zugreifbar als Web Service Erzeugen einer WSDL Service Definition (.wsdl file) Deployment in der J2EE Plattform oder z.B. auch Apache AXIS (.wsdd file)

J2EE SOAP Server (z.B. auch Axis) Bedient die HTTP SOAP Requests Wandelt diese in EJB Aufrufe um

Page 30: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Web Server

SOAP Servlet

J2EE Client

JVM

Web Server

SOAP Client

WebBrowser

Szenarien

OLTP Server

ServiceProgram

TP Monitor

lokales DBMS

XA

HTTP / SOAP RMI / IIOP

Application Server

EJB

JCAConnector

JVM

App. Server

lokales DBMS

XA

OLTP(LU6 / OSI-TP)

Page 31: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Web Server

HTML & AppletsServlets

SOAP Servlet

Java ClientJCA Connector

JVM

Web Server

SOAP Client

WebBrowser

SOAP / HTTPVerbindung

Szenarien

OLTPClient Verbindung

OLTP Server

ServiceProgram

TP Monitor

local DBMS

XA

Page 32: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

KundenLösungen

Page 33: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

Kraftfahrtbundesamt / Flensburg Technische Zulassung von Fahrzeugen

Kontrolle von Herstellern und Prüfungsstellen

Zentrale Datenbank:Fahrzeuge und Fahrzeughalter FührerscheineVerkehrssünder Register

Zugriff durch externe Behörden:Polizei der LänderBKA

KBA Auskunftsdienste

Page 34: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

BS2000/OSD

überTCP/IP

UPIC

J2EE-Web Server

Servlets

BeanConnect

Zulassungstellen

Polizei

XML / HTTP

HTML/HTTP

XML / HTTP

Architektur

Page 35: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

BfA / Berlin Rehabilitation

Rente und Altervorsorge

Grundsicherung

ReHa Kliniken

BfA ReHa Kliniken: Online Buchungsverfahren

Page 36: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton VorsamerKlinikbelegung

BfABS2000 / openUTM

ReHa (Host) Verfahren

Ver

sch

lüss

elu

ngXML/https

XML/https

XML/https

BfA - Architektur

externeLeistungsträger

Page 37: Brückenschlag zwischen J2EE 1.4 und Mainframe Plug&Play für Hostanwendungen über JCA 1.5?

Anton Vorsamer

... vielen Dank