A4_Fujitsu-Siemens

Werbung
Brückenschlag zwischen
J2EE 1.4 und Mainframe
Plug&Play für Hostanwendungen über JCA 1.5?
Host Systeme
IT Szenario
Application
Server
Web Client
Web Server
HTTP
externer Server,
ERP Systeme
HTTP + XML
Web
Services
DB Server
Externe Server
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-TP
i.d.R. über entsprechende Client Bibliotheken der Hersteller
 Gibt es für die gängigen Plattformen
Windows, 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
FSC / BS2000/OSD
Host Connectivity
J2EE Application
Server
IBM / z/OS
Anton Vorsamer
andere
Unisys über OSI-TP
Host Integration „Screen-Scraping“
BS2000
Terminal
Service
J2EE Applicationserver
EJB
EJB Container
EJB
Component
EJB
Component
EJB
Component
Component
z/OS
Transaction Synchronisation / Commmunication
Terminal
Service
Anton Vorsamer
Host Integration via Message Queues
2. TA
MQ
J2EE Applicationserver
EJB
EJB Container
EJB
Component
EJB
Component
EJB
Component
Component
MQ
1. TA
3. TA
Host
Asyn.
Program
5. TA
4. TA
MQ
MQ
Transaction Synchronisation / Commmunication
MQ kann sein:
• JMS
• MQSeries
• UTM Message Queues (FPUT/DPUT)
• CICS Queues
Anton Vorsamer
• 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)
openUTM
Host Integration über J2EE
OLTP
Service
OSI-TP System
J2EE Applicationserver
EJB
EJB Container
EJB
Component
EJB
Component
EJB
Component
Component
LU6 & OSI-TP
synchrones and
asynchrones
Messaging
Transaktionen
OLTP
Service
CICS / IMS
Transaction Synchronisation / Commmunication
OLTP
Service
Anton Vorsamer
J2EE Architektur
Client
Client
Web
Container
Client
Client
Anton Vorsamer
Servlets
+
JSPs
EJB
EJB
MDB
Client
Enterprise
Information
Systeme :
EJB
Container
JMS
JDBC
Relationale
Datenbanken
Host
Anwendungen
ERP Systeme
J2EE Connector Architektur
JCA 1.0 / 1.5 Resource Adapter
Plug & Play ?
J2EE 1.3 Adapter
Externe Connectivity
CICS
IMS
openUTM
J2EE
Container
EJB
EJB
Anton Vorsamer
JCA 1.0
Tuxedo
SAP
Siebel
Baan
....
J2EE 1.4 Adapter
Externe Connectivity
CICS
IMS
openUTM
J2EE
Container
EJB
MDB
Anton Vorsamer
JCA 1.5
JCA 1.5
Tuxedo
SAP
Siebel
Baan
....
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 Connectivity
public 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 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 Connectivity
public class SimpleMessagedrivenBean
implements MessageDrivenBean
,OltpMessageListener
{
MessageDrivenContext ctx;
public void setMessageDrivenContext (MessageDrivenContext
{
this.ctx = ctx;
}
public void ejbCreate(){...}
public void ejbRemove(){...}
public OltpMessage onMessage(OltpMessage msg)
{
...
}
Anton} Vorsamer
ctx)
Behandlung von Host Daten
Java und COBOL ?
Java / Cobol Kommunikation
01 MGET-MSG.
03 ACCOUNT-NR
03 AMOUNT
smsg = "4711
100.00
"
//12345678901234567890
send(smsg);
rmsg = rcv();
...
balance = rmsg.substr(10,10);
01 MPUT-MSG.
03 BOOKING-CODE
03 BALANCE

Abzählen von Byte Positionen
Fehleranfällig
Problematisch bei Änderungen der
Nachrichtenstruktur
Anton Vorsamer
PIC 9(10).
PIC 9(10).
PIC X(10).
PIC 9(10)
Java / Cobol Kommunikation
01 MGET-MSG.
03 ACCOUNT-NR
03 AMOUNT
MgetMsg.setAccountNr(12345678);
MgetMsg.setAmount(100.00);
...
send(MgetMsg);
MputMsg = rcv();
...
MputMsg.getBalance();
MputMsg.getBookingCode();
01 MPUT-MSG.
03 BOOKING-CODE
03 BALANCE

Zugriff über Namen
Gleicher Name = Gleiche Information
Tool Unterstützung (Compiler)
Anton Vorsamer
PIC 9(10).
PIC 9(10).
PIC X(10).
PIC 9(10)
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();
Anton Vorsamer
Brückenschlag zum Web
Nutzung von Webservices
J2EE Zugriff über das Web
EJB
Container
Client
Client
Client
Client
HTTP
Client
+
XML
Client
Anton Vorsamer
Web
Container :
HTML/XML
Axis
SOAP
Engine
EJB
EJB
JMS
Web Services Architektur
WSDL
Service
Requester
Anton Vorsamer
WebService
Descriptions
Service
Registry
Call
(SOAP)
WSDL
Service
Provider
WebService
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
Szenarien
OLTP
(LU6 / OSI-TP)
RMI / IIOP
HTTP / SOAP
Web Server
SOAP
Servlet
Application Server
EJB
J2EE
Client
JCA
Connector
SOAP Client
Web
Browser
JVM
JVM
Web Server
App. Server
Service
Program
TP Monitor
XA
XA
lokales
DBMS
Anton Vorsamer
OLTP Server
lokales
DBMS
Szenarien
OLTP
Client Verbindung
SOAP / HTTP
Verbindung
OLTP Server
Web Server
SOAP Servlet
SOAP Client
Web
Browser
Java Client
JCA
Connector
Service
Program
JVM
Web Server
TP Monitor
XA
HTML & Applets
Servlets
Anton Vorsamer
local
DBMS
Kunden
Lösungen
KBA Auskunftsdienste
Kraftfahrtbundesamt / Flensburg
Anton Vorsamer

Technische Zulassung von Fahrzeugen

Kontrolle von Herstellern und Prüfungsstellen

Zentrale Datenbank:
Fahrzeuge und Fahrzeughalter
Führerscheine
Verkehrssünder Register

Zugriff durch externe Behörden:
Polizei der Länder
BKA
Architektur
Zulassungstellen
HTML/HTTP
BS2000/OSD
J2EE-Web Server
XML / HTTP
Servlets
Bean
Connect
Polizei
XML / HTTP
Anton Vorsamer
UPIC
über
TCP/IP
BfA ReHa Kliniken: Online Buchungsverfahren
BfA / Berlin

Rehabilitation

Rente und Altervorsorge

Grundsicherung
 ReHa
Anton Vorsamer
Kliniken
BfA - Architektur
BfA
XML/https
XML/https
externe
Leistungsträger
Verschlüsselung
BS2000 / openUTM
XML/https
Klinikbelegung
Anton Vorsamer
ReHa (Host) Verfahren
... vielen Dank
Anton Vorsamer
Herunterladen