Upload
aldrick-stoeger
View
107
Download
2
Embed Size (px)
Citation preview
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
Co
ntr
ol EJBComponentEJB
ComponentEJBComponentEJB
Component
EJB Container
Terminal Connector
s
Terminal 9
750
BS2000
TerminalService
Terminal 3270
TerminalService
z/OS
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
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
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
J2EE Connector ArchitekturJCA 1.0 / 1.5 Resource AdapterPlug & Play ?
Anton Vorsamer
J2EE 1.3 Adapter
J2EEContainer
EJB
EJB
Externe Connectivity
CICS
IMS
openUTM
TuxedoSAP
SiebelBaan
....
JCA 1.0
Anton Vorsamer
Externe Connectivity
CICS
IMS
openUTM
TuxedoSAP
SiebelBaan
....
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 Management
Propagierung derJ2EE Transaktion zum EIS (Host) System
Security Management
Abbildung 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(...);
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
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 Inflow
Behandlung eingehender Nachrichten
Transaction Inflow
Propagierung 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 BeansMessageListener 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 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) { ... }}
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 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
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
Client
WebContainer :
HTML/XML
AxisSOAP
Engine
RMI / IIO
P
RMI / IIOP
Client
Anton Vorsamer
Web Services Architektur
Publish
(UD
DI)
WSDL
ServiceProvider
WebService
ServiceRequeste
r
Find
(UDDI)
WSDLServiceRegistr
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
Szenarien
OLTPClient 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
Ver
sch
lüss
elu
ngXML/https
XML/https
XML/https
BfA - Architektur
externeLeistungsträger
Anton Vorsamer
... vielen Dank