Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth SS 2005 Teil 17 z/OS Internet Integration cs 1100 ww6 sch 05-97 z/OS Internet Integration Unternehmenskritische Anwendungen und Datenbankprozesse laufen in der Regel auf einem zentralen Server. In mittleren und großen Unternehmen und Organisationen ist dies in der Regel ein z/OS bzw. OS/390 Rechner. Hieran wird sich in der voraussehbaren Zukunft auch nichts ändern. Aufgabenstellung: Diese existierende IT-Infrastruktur mit den Möglichkeiten des Internets integrieren. ACCOUNTS SURNAME : FIRST NAME : TELEPHONE : ADDRESS LINE1: LINE2: LINE3: ADD ACCOUNT NUMBER 26004 Meier (18 CHRS) TITLE : DR Walter (12 CHRS) MIDDLE INIT: R 733456 (10 DIGS) Heilbronnerstr. 91 (24 CHRS) 70109 Stuttgart (24 CHRS) (24 CHRS OPTIONAL) CARDS ISSUED : 1 DATE ISSUED : 11 22 99 APPROVED BY : DEF (1 TO 9) (MM DD YY) (3 CHRS) CARD CODE : A REASON CODE: L (4 CHRS OPTIONAL) (1 CHR OPTIONAL) (1 CHR) (N,L,S,R) UPTO 4 OTHERS WHO MAY CHARGE (EACH 32 CHRS OPTIONAL) O1: O2: O3: O4: SPECIAL CODE1: CODE2: CODE3: (EACH 1 CHR OPTIONAL) NO HISTORY AVAILABLE AT THIS TIME CHARGE LIMIT STATUS NOTE:- DETAILS IN BRACKETS SHOW MAXIMUM NO. CHARACTERS ALLOWED AND IF OPTIONAL FILL IN AND PRESS "ENTER," OR "CLEAR" TO CANCEL 3270 BMS Darstellung Java Servlet - JSP Darstellung es 1203 ww6 wgs 05-02 IBM WebSphere® Host Access Transformation Services (HATS) HATS macht 3270 Bildschirmdarstellungen als HTML Seiten verfügbar. Es erkennt automatisch die Komponenten des 3270 Bildschirm-Inhaltes mit Hilfe eines Satzes vordefinierter Regeln. Es übersetzt die Komponenten des 3270 Bildschirm-Inhaltes in Echtzeit in HTML Ursprünglicher Green Screen Halb-automatische Übersetzung mit Hilfe von WebSphere Host Access Transformation Services (HATS). CICS Bildschirmausgabe 3270 Protokoll graphische User Interface (uneingeschränkt) TN3270 EPI Character User Interface graphische User Interface (eingeschränkt) TCP62 DPL ECI Alternativen der Bildschirmausgabe CUI GUI es 1018 ww6 Character User Interface Graphical User Interface wgs 01-01 CICS virtueller Adressenraum andere virtuelle Adressenräume CICS Anwendungen Presentatiom Logik Terminal Control Task Control TCT PCT Business Logik Program Storage Control Control PPT File Control FCT COMMAREA OS/390 Kernel COMMAREA Communication Area COMMAREA kann benutzt werden um Ein/Ausgabedaten zu übergeben: • An ein CICS Anwendungsprogramm im gleichen Adressenraum • An ein CICS Anwendungsprogramm in einem anderen Adressenraum auf dem gleichen physikalischen Rechner, • An ein CICS Anwendungsprogramm auf einem getrennten physikalischen Rechner unter Benutzung von EXEC CICS LINK (...) • An ein nicht unter CICS laufendes Programm, z.B. ein GUI Prozess unter Verwendung der EPI Schnittstelle es 1356 ww 6 wgs 06-01 Konnektoren Bei den Implementierungen von Web Commerce Lösungen spricht man vom Frontend, welches typischerweise mit einem Web Application Server realisiert wird, und einem Backend (Beispiele Auftragseingang, Finanzbuchhaltung), wofür vorhandene Legacy Systeme eingesetzt werden. In vielen Fällen werden 20 % des Projektaufwandes für die Neuentwicklung des Frontends und 80% für dessen Integration in das vorhandene Backend aufgewendet. Konnektoren sind Java Beans, welche eine Schnittstelle zu existierenden Enterprise Information (Legacy) Systemen bilden. Beispielsweise sind folgende Konnektoren für die IBM WebSphere verfügbar: o o o o o o o o o JDBC, SQLJ DB2 Oracle Adabas CICS IMS MQSeries SAP R/3 Lotus Domino Die Konnektoren der J2EE Connector Architecture (JCA) werden als Resource Adapter bezeichnet. cs 1468 ww6 wgs 06-00 J2EE Connector Architecture JCA Standard Achitektur für die Integration von existierenden Business Logik Komponenten : • • • • ERP Systeme, z... SAP R/3 Mainframe Transaktions Monitore, z.B. CICS, IMS Non- Java Legacy Anwendungen Datenbank Systeme Wichtigste Bestandteile der Architektur sind: • JCA Konnektoren, als Resource Adapter (RA) bezeichnet • Common Client Interface (CCI) A Resource Adapter is a system level software library that is used by an application server or client to connect to a Resource Manager. A Resource Adapter is typically specific to a Resource Manager. It is available as a library and is used within the address space of the client using it. An example of a resource adapter is the JDBC driver to connect to relational databases. Für CICS existieren: • ECI resource adapter (für COMMAREA Zugriff) • EPI resource adapter CTG enthält ECI RA, EPI RA und CCI, sowie weitere Zugriffsmechanismen ausserhalb der JCA JCA Common Client Interface CCI Die Common Client Interface (CCI) definiert eine Standard Client API Die CCI ist eine EIS unabhängige API. Anwendungen können mit einer identischen API unterschiedliche Resource Adapter verwenden. Ähnlich JDBC Interface J2EE Connector Architecture CCI EIS Common Client Interface Enterprise Information System CCI und Resource Adapter sind als Java Klassen implementiert. Sie können von einer Java Anwendung alleinstehend benutzt werden ( non-managed environment ). Üblich ist es, CCI und Resource Adapter als Elemente eines Web Application Servers einzusetzen (managed environment). Hierbei kann der Web Application Server das Management von Verbindungen, Transaktionen und Sicherheit direkt übernehmen. Die CCI Entwicklung kann in ein Entwicklungswerkzeug wie Eclipse integriert werden. CICS Anwendung EXCI CICS IIOP Schnittstelle CICS Transaction Gateway ECI CICS Transaction Gateway CICS Transaction Server Verteilter WebSphere Server z/OS z/OS WebSphere Server Kernel Internet HTTP Browser Browser IIOP PC Alternative CICS Zugriffe über das Internet es 1372 ww6 wgs 12-01 - Schalter/ Kasse Sachbearbeiter Vertrieb Kernanwendungssysteme Wrapping der Kernsysteme Geschäfts logik Mandantensysteme Externe Systeme und Gateways Front Office Transaktionsverarbeitung Datenbanken Integrations-Layer und Geschäftslogik Processing Anwendungsarchitektur in Front-Office (mit Präsentationslogik) und Integrationsebene mit der Geschäftslogik sowie Processing mit der Transaktionsverarbeitung, wird verwendet um bestehende Kernanwendungssysteme durch den Integration-Layer zu wrappen es 1403 ww6 wgs 07-02 Enterprise Information System Neue Dienste Oracle DB2 WAS CICS Internet Servlet EJB IMS Presentation Glue Tuxedo Browser SAP Client/Server Aufgabenstellung • Browser orientierter Web Zugang • Datenhaltung in existierenden Datenbanken • Dominierender Anteil der Business Logik in existierenden Transaktionsprogrammen und/oder Stored Procedures • Neue Software (z.B. EJBs) stellen Querverbindungen zwischen existierenden Komponenten her (Glue) - Transaktionsmaschine • System Management - TCO cs 1520 ww6 wgs 06-00 Was ist ein Webservice? ein Service, den man über ein Internet Standard–Protokoll wie z.B. SMTP, FTP und andere aufrufen kann. Gemeint ist aber meistens ein Service, der über http mit dem Simple Object Access Protocol (SOAP) aufgerufen wird. SOAP ist eine XML Definition Sun oder DCE RPC Web Services Transport Protokoll beliebig SOAP Daten Repräsentation XDR, ASN.1 XML Interface Definition IDL WSDL Namensdienst Directory Dienst DNS, X.500 LDAP UDDI Web Services Web-Services sind eine Schnittstellen-Technologie. Erleichtern die Kopplung interagierender Systeme über technische Hindernisse hinweg. Simple Object Access Protocol (SOAP) ist ein Remote Procedure Call (RPC) Protokoll. Es benutzt Standard Internet Protokolle für den Transport - entweder HTTP für synchrone Aufrufe oder SMTP für asynchrone Aufrufe. XML beschreibt das Format der übertragenen Daten. SOAP ist unabhängig von der verwendeten Programmiersprache, dem Objekt Modell und dem jeweiligen Betriebssystem. Web Services Description Language (WSDL) beschreibt die Schnittstellendefinitionen eines Web Service. Beschreibt Formate der Anforderungs- und Antwort- Nachrichtenströme, mit denen Funktionsaufrufe an andere Programm-Module abgesetzt werden. (maschinenlesbare Gebrauchsanleitung). Universal Description, Discovery and Integration (UDDI) ist ein Dienstekatalog. Stellt ein Verzeichnis von Adress- und Produktdaten sowie Anwendungsschnittstellen der verschiedenen Web Service Anbieter dar. IBM - Microsoft Kooperation, breite Unterstützung, aber Firewall HTTP Problem, Sicherheit, Reifegrad, Transaktionsdienste ? Die Kombination aus UDDI, WSDL und Soap bildet zusammen eine Service-Orientierte Architektur (SOA). cs 1520 ww6 wgs 06-00 Web Services Struktur Eigenschaften: • Quick and dirty Implementierung von unkomplizierten Aufgaben • Remote Procedure Call über Port 80 • WSDL an Stelle von IDL - automatische Erstellung, z.B. IBM’s Web Services ToolKit (WSTK) • Java WSDL Java - identische Ergebnisse ? • keine Objektorientierung • skaliert schlecht Was fehlt: · · Sicherheit - HTTPS kann benutzt werden, ist aber unabhängig vom Web Service Mechanismus Transactionssteuerung, Flußsteuerung cs 1529 ww6 04-03 cs 1234 ww6 wgs 12-02 SOAP Client HTTP MQSeries XML HTTP Transport SOAP Pipeline Request Nachricht Response Nachricht Message Adapter Web Services und CICS CICS Business Logic CICS Server Zum CICS Transaction Server (ab Version 2.3) gehört ein Simple Object Access Protocol (SOAP) Message Adapter. Mit Hilfe von Web Services kann auf neue oder existierende CICS Anwendungen zugegriffen werden, die in einer beliebigen Programmiersprache geschrieben sind. Dies geschieht dadurch, dass eine XML-basierte SOAP Message in eine COMMAREA abgebildet wird. Die SOAP Request kann die CICS Anwendung entweder über HTTP oder über WebSphere MQSeries aufrufen. Weiterhin können CICS Anwendungen auf Web Services zugreifen, die auf anderen Rechnern verfügbar sind. Diese Einrichtung ist z.B. für Business-to-Business (B2B) Anwendungen sinnvoll. cs 1544 ww6 wgs 11-04 Geschäftsprozess Beispiel: Überweisung der Betriebsrente an 100 000 ehemalige Mercedes (Daimler-Chrysler) Mitarbeiter. Komplexer Prozess: Viele Empfängerbanken, manche im Ausland, unterschiedliche Währung, unterschiedliche Steuerabzüge, Renten Erhöhungen und Kürzungen, Lohnpfändungen, .......... Viele einzelne Aktivitäten, die als Transaktionen ausgeführt werden (short running transactions). Ersatz der manuellen Ablaufsteuerung durch einen Workflow Prozess. STP - Fähigkeit (Straight-Through-Processing). Transaktionsmaschine - Literatur Joachim Franz, Wilhelm G. Spruth: Reengineering von Kernanwendungssystemen auf Großrechnern. Informatik Spektrum, Band 26, Nr. 2, April 2003, S. 83-93. http://www.informatik.uni-leipzig.de/cs/pers/publish.html Thomas Hornung: Entwurf und Implementierung einer transaktionalen Subworkflowsteuerung Diplomarbeit, Fakultät für Informations- und Kognitionswissenschaften, Universität Tübingen http://www-ti.informatik.uni-tuebingen.de/~spruth/DiplArb/index.html Martin Schlodder: Datenzugriffsdienst für eine Transaktionsmaschine Diplomarbeit, Fakultät für Informations- und Kognitionswissenschaften, Universität Tübingen http://www-ti.informatik.uni-tuebingen.de/~spruth/DiplArb/index.html Geschäftsprozess - Anforderungen Performance Bis zu 5000 Transaktionen pro Sekunde Mandantenfähigkeit Anwendungstechnische Unterstützung für eigenständige, juristisch unabhängige Unternehmen. Erfordert z.B. getrennte physische Datenhaltung; eventuell Verschlüsselung von Transaktionsdaten; Ablaufverfolgung der Aufträge und Abrechnung der erbrachten Leistungen pro Mandant Realtimefähigkeit Direkte Bearbeitung der Transaktion , und Weiterleitung z.B. an Disposition und Buchung Unterbrechungsfreier Betrieb Unterbrechungsfreier Betrieb Komponentenbasiertes System Hinzufügen, Verändern und Ersetzen von Banken oder Versicherungsprodukten im laufenden Betrieb Standardsoftware Anbindung bzw. Integration von Vendor Software Prozesssteuerung SLA SteuerungTransaktionssteuerung, Verarbeitungssteuerung es 1411 ww6 wgs 12-03 Transaktionsmaschine Joachim Franz, Wilhelm G. Spruth: Reengineering von Kernanwendungssystemen auf Großrechnern. Informatik Spektrum, Band 26, April 2003 es 1406 ww6 (es 3049 ww2000) wgs 06-03 Aufteilung in Master Workflow und Subworkflow Fachliche Aktivitäten A1: Auftrag fachlich prüfen A2: Disposition für Auftrag prüfen A3: Empfänger Banken bestimmen A4: Ausführungszeiten bestimmen A5: Zahlungspositionen, Konten, Bank, Land zusammenfassen A6: Leitwege bestimmen A7: Zahlungstransfer durchführen A8: Zahlung fiskalisch verbuchen A9: Auftrag archivieren und abschließen Technische Aktivitäten Subworkflow 1 T11: Auftragsprüfung auf Plausibilität T12: Auftragsprüfung fachlich T13: Status und Bestätigungsmeldung an Auftraggeber Subworkflow 7 T71: Leitwegliste auf Vollständigkeit prüfen T72: Zahlungstransfer vorbereiten T731: Führe Transfer für Land x1 (z.B. USA) und Bank y1 aus T732: Führe Transfer für Land x2 und Bank y2 aus T732: Führe Transfer für Land x3 und Bank y3 aus T74: Buchungsaufträge erstellen Subworkflow 8 T81: Ergebnisauswertung des Zahlungsverkehrs T82 Positionen fiskalisch verbuchen es 1322 niu 07-00