Brückenschlag zwischen J2EE 1.4 und Mainframe
description
Transcript of Brückenschlag zwischen J2EE 1.4 und Mainframe
Brückenschlag zwischen J2EE 1.4 und MainframePlug&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
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
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
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
Anton Vorsamer
Host Connectivity
J2EE ApplicationServer
FSC / BS2000/OSD
IBM / z/OS
andereUnisys über OSI-TP
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
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
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
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
J2EE Connector ArchitekturJCA 1.0 / 1.5 Resource AdapterPlug & Play ?
Anton Vorsamer
J2EE 1.3 Adapter
J2EEContainer
EJBEJB
Externe Connectivity
CICSIMSopenUTM
TuxedoSAPSiebelBaan....
JCA 1.0
Anton Vorsamer
Externe Connectivity
CICSIMSopenUTM
TuxedoSAPSiebelBaan....
J2EE 1.4 Adapter
J2EEContainer
EJB
MDB
JCA 1.5
JCA 1.5
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
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
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; }}
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; }}
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)
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()...
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) { ... }}
Behandlung von Host DatenJava und COBOL ?
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
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
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
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();
Brückenschlag zum WebNutzung von Webservices
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
Anton Vorsamer
Web Services Architektur
Publish
(UDDI)
WSDL
ServiceProvider
WebService
ServiceRequeste
r
Find
(UDDI)
WSDL ServiceRegistr
y
Call(SOAP)
WebServiceDescriptions
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
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)
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
KundenLösungen
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
Anton Vorsamer
BS2000/OSD
überTCP/IP
UPIC
J2EE-Web Server
Servlets
BeanConnect
Zulassungstellen
Polizei
XML / HTTP
HTML/HTTP
XML / HTTP
Architektur
Anton Vorsamer
BfA / Berlin Rehabilitation Rente und Altervorsorge Grundsicherung
ReHa Kliniken
BfA ReHa Kliniken: Online Buchungsverfahren
Anton VorsamerKlinikbelegung
BfABS2000 / openUTM
ReHa (Host) Verfahren
Vers
chlü
ssel
ungXML/https
XML/https
XML/https
BfA - Architektur
externeLeistungsträger