Brückenschlag zwischen J2EE 1.4 und Mainframe

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

description

Brückenschlag zwischen J2EE 1.4 und Mainframe. Plug&Play für Hostanwendungen über JCA 1.5?. IT Szenario. Host Systeme. Application Server. Web Client. Web Server. HTTP. externer Server, ERP Systeme. HTTP + XML. Web Services. DB Server. Externe Server. - PowerPoint PPT Presentation

Transcript of Brückenschlag zwischen J2EE 1.4 und Mainframe

Page 1: Brückenschlag zwischen  J2EE 1.4 und Mainframe

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

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

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

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

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

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

Anton Vorsamer

Host Integration „Screen-Scraping“

J2EE Applicationserver

Transaction Synchronisation / Commmunication

Acc

ess

Con

trol EJBComponentEJB

ComponentEJBComponentEJB

Component

EJB ContainerTerminal

Connectors

Terminal 9750

BS2000

TerminalService

Terminal 3270

TerminalService

z/OS

Page 8: Brückenschlag zwischen  J2EE 1.4 und Mainframe

Anton Vorsamer

Host Integration via Message Queues

Host

Asyn.Program

J2EE Applicationserver

Transaction Synchronisation / Commmunication

Acc

ess

Con

trol EJB

ComponentEJBComponentEJB

ComponentEJBComponent

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

Anton Vorsamer

Host Integration über J2EE

J2EE Applicationserver

Transaction Synchronisation / Commmunication

Acc

ess

Con

trol EJB

ComponentEJBComponentEJB

ComponentEJBComponent

EJB ContainerConnector

enLU6 & OSI-TPsynchrones andasynchrones Messaging

CICS / IMS

OLTPService

openUTM

OLTPService

OSI-TP System

OLTPServiceTransaktionen

Page 10: Brückenschlag zwischen  J2EE 1.4 und Mainframe

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

BJDBC

Page 11: Brückenschlag zwischen  J2EE 1.4 und Mainframe

J2EE Connector ArchitekturJCA 1.0 / 1.5 Resource AdapterPlug & Play ?

Page 12: Brückenschlag zwischen  J2EE 1.4 und Mainframe

Anton Vorsamer

J2EE 1.3 Adapter

J2EEContainer

EJBEJB

Externe Connectivity

CICSIMSopenUTM

TuxedoSAPSiebelBaan....

JCA 1.0

Page 13: Brückenschlag zwischen  J2EE 1.4 und Mainframe

Anton Vorsamer

Externe Connectivity

CICSIMSopenUTM

TuxedoSAPSiebelBaan....

J2EE 1.4 Adapter

J2EEContainer

EJB

MDB

JCA 1.5

JCA 1.5

Page 14: Brückenschlag zwischen  J2EE 1.4 und Mainframe

Anton Vorsamer

JCA Resource Adapter System Schnittstellen (Outbound) Connection Management

Pooling etc.

Transaction ManagementPropagierung derJ2EE Transaktion zum EIS (Host) System

Security ManagementAbbildung der J2EE Security auf die EIS (Host) Security

Page 15: Brückenschlag zwischen  J2EE 1.4 und Mainframe

Anton Vorsamer

JCA Resource Adapter Schnittstellen (Outbound) ConnectionFactory

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

getConnection();

getConnection(...);

ConnectionDie wichtigste Schnittstelle für den J2EE Programmierer

Stellt Abstraktion einer Host Connection bzw. eines Host Service dar

Weitere KlassenConnectionSpec, 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

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

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

Anton Vorsamer

JCA Resource Adapter System Schnittstellen (Inbound) Work Management

Möglichkeit des „Listening“ auf eingehende Verbindungen

Message InflowBehandlung eingehender Nachrichten

Transaction InflowPropagierung der EIS (Host) Transaktion zur J2EE Plattform

EJB Invocation (Message Driven Bean)

Page 19: Brückenschlag zwischen  J2EE 1.4 und Mainframe

Anton Vorsamer

JCA Resource Adapter Anwender Schnittstellen (Inbound)Behandlung der Daten über Message Driven Beans

MessageListener 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

Anton Vorsamer

JCA 1.5 Inbound Connectivitypublic 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

Behandlung von Host DatenJava und COBOL ?

Page 22: Brückenschlag zwischen  J2EE 1.4 und Mainframe

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

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

Anton Vorsamer

BeanConnect Cobol2Java ToolingErzeugen 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

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

Brückenschlag zum WebNutzung von Webservices

Page 27: Brückenschlag zwischen  J2EE 1.4 und Mainframe

Anton Vorsamer

HTTP+XML

J2EE Zugriff über das Web

JMS

EJBContainer

EJB

EJBClient

Client

Client

Client

ClientWebContainer :

HTML/XML

AxisSOAP

Engine

RMI / IIOP

RMI / IIOP

Client

Page 28: Brückenschlag zwischen  J2EE 1.4 und Mainframe

Anton Vorsamer

Web Services Architektur

Publish

(UDDI)

WSDL

ServiceProvider

WebService

ServiceRequeste

r

Find

(UDDI)

WSDL ServiceRegistr

y

Call(SOAP)

WebServiceDescriptions

Page 29: Brückenschlag zwischen  J2EE 1.4 und Mainframe

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

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

Anton Vorsamer

Web Server

HTML & AppletsServlets

SOAP Servlet

Java ClientJCA Connector

JVM

Web Server

SOAP Client

WebBrowser

SOAP / HTTPVerbindung

SzenarienOLTPClient Verbindung

OLTP Server

ServiceProgram

TP Monitor

local DBMS

XA

Page 32: Brückenschlag zwischen  J2EE 1.4 und Mainframe

KundenLösungen

Page 33: Brückenschlag zwischen  J2EE 1.4 und Mainframe

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

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

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

Anton VorsamerKlinikbelegung

BfABS2000 / openUTM

ReHa (Host) Verfahren

Vers

chlü

ssel

ungXML/https

XML/https

XML/https

BfA - Architektur

externeLeistungsträger

Page 37: Brückenschlag zwischen  J2EE 1.4 und Mainframe

Anton Vorsamer

... vielen Dank