Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2006/2007 Teil 15 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: • Die existierende IT-Infrastruktur mit den Möglichkeiten des Internets integrieren. • Die existierende IT-Infrastruktur umstrukturieren, so dass sie mit weniger Personal an die sich in immer kürzeren Zeiträumen ändernden Geschäftsbedingungen angepasst werden kann. Hierfür hat sich der Name Service Oriented Architecture (SOA) eingebürgert. 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 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 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). 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 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 Das CICS Transaction Gateway (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. J2EE Connector Architecture (JCA) • Defines a standard architecture for simplified connectivity between J2EE environment and heterogeneous Enterprise Information Systems (EIS) • J2EE 1.3 standard introduced the J2EE Connector Architecture (JCA) v1.0 • J2EE 1.4 standard contained the J2EE Connector Architecture (JCA) v1.5 The J2EE Connector Architecture v1.0 specification defines: • Common Client Interface (CCI) • A common API for interacting with resource adapters • Largely independent of a specific EIS • System Level Programming Interface (SPI) • A set of system-level contracts between a J2EE application server and EIS resource adapter to provide services such as connection pooling and transactionsResource adapter deployment and packagingA Resource Adapter Module used to deploy a resource adapter into a J2EE application server CICS virtueller Adressenraum andere virtuelle Adressenräume CICS Anwendungen Presentatiom Logik Terminal Control Task Control TCT PCT Business Logik Program Storage File Control Control Control PPT 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 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 CORBA oder RMI/IIOP Alternative CICS Zugriffe über das Internet es 1372 ww6 wgs 12-01 CICS Region (Adressenraum) andere Regions CICS JVM CICS Cobol PL/1oder C++ Anwendung EXEC CICS Commands Comnd. Library CICS Java Anwendung JCICS Library Calls CICS Nucleus JCICS Library z/OS Kernel JCICS Java Anwendungsprogrammierung Java wird wie eine andere Programmiersprache eingesetzt. Die JCICS Library Calls ersetzen 1:1 die EXEC CICS Kommandos. Keine Enterprise Java Beans Java Application Development for CICS http://publib-b.boulder.ibm.com/abstracts/sg245275.html?Open Browser Java Client HTTP z/OS CICS Transaction Server RMI/ CICS EJB Server Servlet RMI/ Session Bean Session Bean Session Bean RMI/ WebSphere DB Benutzung von Enterprise Java Beans in einer CICS Anwendung es 1386 ww6 wgs 07-02 Web Services Enterprise Information System Neue Dienste Oracle DB2 Web Applic. Server 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 1521 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. Das Simple Object Access Protocol ist weder simple noch Objekt-orientiert. 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 SOAP ist ein Remote Procedure Call (RPC) Protokoll. Es benutzt häufig HTTP für den Transport (Alternativen sind alle Protokolle, die Text übertragen können, z.B. FTP, MQSeries). XML beschreibt das Format der übertragenen Daten. SOAP ist unabhängig von der verwendeten Programmiersprache und dem jeweiligen Betriebssystem. WSDL XML Beschreibung der Schnittstellendefinitionen eines Web Service. Beschreibt Formate der Anforderungsund Antwort- Nachrichtenströme, mit denen Funktionsaufrufe an andere Programm-Module abgesetzt werden. UDDI ist ein XML 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 einen Baustein für eine Service-Orientierte Architektur (SOA). 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) • 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 Client Server Aufrufende Prozedur Aufgerufene Prozedur Argumente Ergebnisse Argumente Client Stub Request Nachricht Ergebnisse Server Stub Reply Nachricht Request Nachricht Reply Nachricht Netzwerk Remote Procedure Call Client Programm Argumente Web Service Prozedure Implementation Ergebnisse Argumente Client ProcedureStub SOAP Reques t SOAP Reply HTTP User Agent Ergebnisse CGI/JSP/ASP Script SOAP Request HTTP Post Response SOAP Reply HTTP Server Web Services Remote Procedure Call cs 1528 ww6 04-03 Soap What SOAP Claims to be • SOAP is "Simple Object Access Protocol" • It is "a lightweight protocol for exchange of information in a decentralized, distributed environment" • It is an XML based protocol What SOAP is • Basically, SOAP/WSDL/UDDI is the latest in RPC technologies • It is the first open standard RPC supported by Microsoft, and was originally developed by Microsoft, IBM and Artima • It is now part of the W3C standards track • Version 1.2 is current SOAP consists of • A description of allowable data types • A message format • A binding to HTTP transport, and (non-normative) examples of other bindings (e.g. email) What SOAP isn’t • It isn’t object oriented - it is procedural • It isn’t simple - it requires an understanding of XML, including XML namespaces • It isn’t lightweight - it needs XML generators/parsers on client and server sides, and just sending a one-byte character of payload can use 1000 bytes of message • It isn’t complete as an RPC system (e.g. no standardisation of language bindings) SOAP Envelope Der SOAP Envelope ist das Wurzel (root) Element eines XML Dokumentes, welches die Nachricht (message) darstellt. Er hat die folgende Struktur: <SOAP-ENV:Envelope ....> <SOAP-ENV:Header> <SOAP-ENV:HeaderEntry..../> </SOAP-ENV:Header> <SOAP-ENV:Body> [message payload ] </SOAP-ENV:Body> </SOAP-ENV:Envelope> Generell bestehr eine SOAP Nachricht aus 0, 1 oder mehr Headers und einem Body. Der SOAP Envelope definiert den Namensraum (namespace) für die Strukturierung der Nachricht. Die ganze SOAP Nachricht (Headers und Body) sind abgegrenzed (wrapped) in den Envelope. SOAP HTTP Request POST /Charging HTTP/1.1 Host: travelcompany.example.org Content-Type: application/soap; charset="utf-8" Content-Length: nnnn <?xml version=’1.0’ ?> <Envelope> <Header> ..... ..... </Header> <Body> <dispachOrderRequest> <itemRefNumber>0010</itemRefNumber> <quantityRequired>1</quantityRequired> <customerlD>CB1</customerlD> <chargeDepartment>ITSO</c hargeDepartment> </disspatchOrderRequest> </Body> </Envelope> Example of a simple SOAP Message A SOAP message is an envelope containing zero or more headers and exactly one body: • The envelope is the root element of the XML document, providing a container for control information, the addressee of a message, and the message itself. • Headers contain control information, such as qualityof-service attributes. The body contains the message identification and its parameters. • Both the headers and the body are child elements of the envelope element. • The header tells who must deal with the message and how to deal with it. When the actor is next , or when actor is omitted, the receiver of the message must do what the body says. Furthermore, the receiver must understand and process the application-defined <TranID>tag. • The body tells what has do be done: Dispatch an order for quantityRequired 1 of itemRefNumber 0010 to customerID CB1 in chargeDepartment ITSO. XML Descriptions XML currently uses two systems for describing XML documents • XML DTDs (Document Type Definitions) are good for describing document structure • XML Schema are good for describing data types Both may be needed XML DTDs XML DTDs (Document Type Definitions) are good for describing document structure e.g. • A book consists of a preface followed by one or more chapters followed by an index • A chapter is made up of one or more sections • A section consists of text The DTD for this is <!ELEMENT book (preface, chapter+, index)> <!ELEMENT chapter (section+)> <!ELEMENT section (#PCDATA)> XML Schema Schema sind für Data Type Descriptions geeignet. Beispielsweise kann der Data Typ für die Daten: <age> 25 </age> <height> 182.7 </height> <color> blue </color> mit dem folgenden Schema beschrieben werden: <element name="age" type="positiveInteger"/> <element name="height" type="float"/> <element name="color"> <simpleType base="xsd:string"> <enumeration value="green"> <enumeration value="blue"> <enumeration value="brown"> </simpleType> </element> 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 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 - 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 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 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 Geschäftsprozess Ein Geschäftsprozess ist die Definition eines Ablaufes und den damit verbundenen Tätigkeiten, welcher zur Durchführung eines Geschäftes (Auftrags) notwendig ist. Beispiele von Geschäftsprozessen sind Beantragung eines Kredites in einer Bank Abwickelung einer Bestellung bei einem Versandhaus Überweisung der Renten zum Monatsende an die Pensionäre eines Automobilkonzerns Fachliche Aktivität Die einzelnen Verarbeitungsschritte eines Geschäftsprozesses werden als fachliche Aktivitäten bezeichnet. Beispiele für fachliche Aktivitäten in einem Versandhaus sind z.B. • Plausibilitätsprüfung einer Bestellung • Überprüfung ob die Bestellung aus dem vorhandenen Lagerbestand befriedigt werden kann • Ausstellen der Versandpapiere • Rechnungsstellung Technische Aktivität Die Realisierung der fachlichen Aktivitäten in einer IT-Umgebung werden als technische Aktivitäten bezeichnet. Hierbei kann eine fachliche Aktivität auch durch eine Transaktion, bestehend aus mehreren technischen Aktivitäten realisiert werden. Ein Beispiel ist eine Transaktion, bestehend aus zwei Java Methoden, welche eine Lastschrift und Gutschrift durchführen. Workflow Die Ausführung eines Geschäftsprozesses erfolgt durch das serielle oder parallele Abarbeiten einer Reihe von fachlichen Aktivitäten, wobei diese in der Regel als technische Aktivitäten implement sind. Werden die einzelnen technische Aktivitäten eines Geschäftsprozesses durch eine IT-Umgebung unterstützt, spricht man von Workflows. Transaktionale Workflows sind Workflows, welche ACID (Atomicity, Consistency, Isolation, Durability)Eigenschaften auf Workflow-Ebene garantieren. cs 1548 ww2k wgs 06-06 Legacy-Systeme Legacy-System ist ein Begriff zur Bezeichnung einer "historisch gewachsenen Alt-Anwendung". In größeren Unternehmen sind das häufig Individualentwicklungen, die auf Großrechnern unter den z/OS und OS/390 Betriebssystemen ablaufen. In etwa 80 % aller Fälle sind dies transaktionale Anwendungen, die unter Transaktionsmonitoren wie CICS und IMS ablaufen. Diese unternehmenskritischen Kernanwendungen sind meist über Jahrzehnte entstanden und bilden das Erbe mehrerer Generationen von Softwareentwicklern. Es wird geschätzt, dass etwa 10 Millionen Mannjahre in die Entwicklung von unternehmenskritischen OS/390Anwendungen unter CICS investiert wurden. Das bedeutet eine Investition von etwa einer Billion US-Dollar in OS/390Anwendungssoftware unter CICS. Die meisten dieser Programme sind in Cobol geschrieben. Die existierende Menge an Cobol-Programmen besteht aus etwa 180 Milliarden Code-Zeilen mit einer jährlichen Zuwachsrate von 5 Milliarden Code-Zeilen. Beispiel: Große internationale Bank Modernisierung aller Anwendungen 20 Mill. Zeilen Code für z/OS Cobol und PL/1 10 Mill. Zeilen Code für Unix und Windows Rechner 400 eigene Mitarbeiter im IT Bereich und 400 weitere Fachkräfte von Fremdfirmen. Jahresbudget 100 Millionen Euro. Geschätzte Produktivität für Neuentwicklung: 2 000 Zeilen Code pro Programmierer und Jahr Geschätzter Aufwand um alles neu zu machen: 15 000 Mannjahre Kosten für die Modernisierung: 1 500 Millionen Euro Zwei Fragen: 1. Sind die zusätzlichen Fachkräfte verfügbar 2. Haben wir nach Abschluss eine Verbesserung erreicht? cs 1549 ww2k wgs 06-06 SOA Service Oriented Architecture Business Prozesse flexibel miteinander verbinden. Hierfur sind Webservices • SOAP • WSDL • UDDI als Kommunikationsbausteine vorgesehen. Existierende Anwendungen (Cobol and in Zukunft Java) als Bausteine rekonfigurieren. Business Prozesse flexibel and mit geringem Aufwand an sich standig andernde Anforderungen anpassen. SOA Service Oriented Architecture Web-Services sind derzeitig bei weitem der bevorzugte Standard, um eine SOA zu erstellen und ein-zuführen, es können aber auch andere Standardtechniken wie Corba, COM und J2EE sein. Auch eine eigenentwickelte Technik ist möglich. Bei SOAs dreht sich alles um das Teilen und Verwalten der Services sowie der Prozesse und Orchestrierungen, die auf die-sen Services aufsetzen. Welche Technik eingesetzt wird, sollte davon abhängen was gebraucht wird. ESBs (Enterprise Service Bus) sind eine sehr mächtige Technik, mit der sich über Web-Services-Schnittstellen Informationen zwischen den Anwendungen bewegen lassen. Geht es aber darum, eine bestimmte Dienstequalität zu etablieren oder das Verhalten von Anwendungen zu teilen, sind sie weniger geeignet. ESBs sind Teil einer SOA, lie-fern aber keine "SOA-in-a-Box". SOAs sind von Natur aus keineswegs hochskalierbar. SOAs sind Konzepte, deren Skalierbarkeit von der verwendeten Technik und Architektur abhängt. Werden Services zu feingranular entworfen, bereitet die Skalierbarkeit der Lösung vermutlich Probleme. Anwender müssen daher zuerst die SOA richtig entwerfen, die Eigenschaften ihrer Bestandteile verstehen und die passende Technik und Entwicklungsplattform finden. Enterprise Service Bus In an ESB there is no direct connection between the consumer and provider. Consumers access the ESB to invoke services and the ESB acts as an intermediary, passing the request to the provider using the • appropriate protocol, • transport and • interaction pattern for the provider. This enables the ESB to shield the consumer from the infrastructure details of how to connect to the provider. The ESB should support several integration mechanisms all of which could be described as invoking services through specific addresses and protocols, even if in some cases the address is the name of a CICS transaction and the protocol is a J2EE resource adapter integrating with the CICS Transaction Gateway. Business Process Execution Language BPEL Die Business Process Execution Language, kurz BPEL, ist eine XML-basierte Sprache zur Beschreibung von Geschäftsprozessen, deren einzelne Aktivitäten durch Webservices implementiert sind. Die im Jahr 2002 von IBM, BEA und Microsoft eingeführte Sprache wird dabei zur Beschreibung von so genannten Webservice-Orchestrierungen verwendet. Die Beschreibung selbst wird ebenfalls in Form eines Webservice bereitgestellt und kann als ein solcher verwendet werden. Durch die Abstraktion mittels BPEL kann die Schnittstelle eines Webservice, der die an einem Prozess beteiligten Web Services steuert, beschrieben werden – beispielsweise in welcher Reihenfolge Nachrichten eintreffen müssen Ausführbare BPEL-Prozesse können auf einer Workflowmaschine zum Einsatz gebracht werden (engl. deployed) und sind durch sie ausführbar. Abstrakte Prozesse dienen der Beschreibung des Verhaltens des Prozesses („behavioral interface“). Sie werden als Sicht auf einen ausführbaren Prozess verwendet und dienen dazu, das interne Verhalten des Prozesses zu verbergen. OS/390 Java Class Servlet DB2 WebSphere Native Driver JVM JDBC, DB2Connect Driver Java Class ProduktionsUmgebung Servlet WebSphere Arbeitsplatz Rechner Produktion JVM Middle Tier Rechner export Repository Entwicklungsumgebung Arbeitsplatzrechner Entwicklung Trennung zwischen Entwicklung und Produktion es 1381 ww6 wgs 03-02 WebSphere Studio Developer for zSeries (WDz) WebSphere Studio Enterprise Developer (WSED) Eclipse-based integrated development environment (IDE) for developing enterprise-level, multi-tier applications WebSphere Studio Enterprise Developer builds on Rational Application Developer (RAD/WSAD). It offers features to support Struts-based Web application development and features to mordernize legacy enterprise systems. Extends access to z/OS systems from the workstation • EGL to create COBOL/CICS/JFace Multi-tier apps • Supports a project structure for building zOS applications in COBOL, PLI, Assembler • Supports TSO/Batch, CICS, IMS, DB2 environments • DB2 Stored Procedures – COBOL, PLI, Java, SQL • Enables COBOL applications for SOA via XML enablement WSED beinhaltet in der Workbench die Tools, um PL/1- und COBOL-Programme zu entwickeln, zu pflegen und remote auf dem Host zu compilieren und zu debuggen. WebSphere Developer zSeries Rational Application Developer Rational Web Developer Eclipse WDz Plug-in for Eclipse Rational Web Developer • Web Development • Web Services Development • Rich Client Development Rational Application Developer • J2EE und EJB Development • Component Testing • Code Review und Runtime Analysis • UML Visual Editors WebSphere Developer for zSeries (WDz) • z/OS Application Development • XML Services for z/OS • BMS Map Editor • CICS Application Development, Cobol, PL/1 and Java • Stored Procedure Development, Cobol, PL/1 and Java Web Sphere Clients XP, Linux Backend Application Unix z/OS Production Production Die Überführung einer neuen Anwendung von der Test Umgebung in die Produktion ist ein komplexer und aufwendiger Prozess Client Web Sphere XP, NT Linux Unix z/OS Test Test Production Library Test Library Repository XP, Linux Development Machine 1. Compile C oder Cobol Code 2. Link Templates Linkage Table Options Load Module 3. Test Überführung von der Entwicklung in die Produktion es 0803 ww6 wgs 07-00 Client/Server Praktikum WS 2007/2008 Prof. Dr.-Ing. Wilhelm G. Spruth Es werden die folgenden Aufgaben bearbeitet: 1. 2. 3. 4. 5. 6. 7. CORBA Java RMI und RMI / IIOP Programmierung unter OS/390 mit ISPF CICS BMS Transaktion - Zugriff auf eine DB2 Datenbank Eclipse Java Servlet JDBC und DB2 Connect MQSeries und DB2 Zugriff Optiom zwischen mehreren Aufgaben: • Java Client Zugriff mit MQSeries auf CICS COMMAREA • Java Client Zugriff mit CTG auf CICS COMMAREA • Programmieren mit WebSphere Studio Developer Die Vorlesung Client/Server Systeme ist als Wahlfach innerhalb der Technischen Informatik zugelassen, und kann mit 2 Stunden in den Prüfungsplan Technische Informatik aufgenommen werden. Das Praktikum kann im Rahmen der Fachprüfung Technische Informatik in den Prüfungsplan mit 4 SWS aufgenommen werden. Anmeldung für das Praktikum bei Frau Reimold, Lehrstuhl Prof. Rosenstiel cs 1602 ww6 wgs 06-02 Studienarbeiten Diplomarbeiten Wir bieten laufend Studien- und Diplomarbeiten zu aktuellen Themen an. Schwerpunkt ist die Nutzung des z/OS Rechners in einer Internet Umgebung. Beispiele aus jüngster Vergangenheit sind : • Untersuchungen zur Transaktionssicherheit von Java Anwendungeen • Entwicklung neuartiger Algorithmen für den z/OS Work Load Manager • Funktionen unter WDz Einige Beispiele sind zu finden unter: http://wwwti.informatik.uni-tuebingen.de/~spruth/DiplArb/index.html Mehrere Arbeiten haben in der Vergangenheit zu Fachveröffentlichungen in wissenschaftlichen Zeitschriften geführt (siehe http://www-ti.informatik.unituebingen.de/~spruth/publish.html) Arbeiten können am Institut für Informatik oder extern bei Partnern in der Wirtschaft angefertigt werden (z.B. IBM Forschung und Entwicklung Böblingen). Kontaktaufnahme: [email protected] Tel.: 0172-8051-485 oder über den Lehrstuhl Prof. Rosenstiel / Frau Reimold cs 1604 ww6 wgs 06-99 Client/Server Systeme Beispiele für Prüfungsfragen Unterschied zwischen Sockets und Ports. Überblick über die Struktur eines einfachen Socket Programms. Wie findet ein Socket Programm seinen Server? Was ist ein RPC. Ist er (normalerweise) asynchron oder synchron? Funktion der Stubs und Skeletons. Problem des Copy by Restore. Bei der Erstellung eines Remote Procedure Calls wird die Schnittstelle zum Server mittels einer Interface Definition Language beschrieben. Die Beschreibung wird mittels eines RPCGEN bzw. IDL Compilers verarbeitet. Wieso ? Was macht man, wenn der Klient eine Little Endian und der Server eine Big Endian Datendarstellung verwendet. Bei Sockets? Beim RPC? Was sind XDR und ASN.1? Treten die hier angesprochenen Probleme auch bei CICS DPL auf ? Bei CORBA? Bei Java RMI? Wodurch unterscheidet sich ASCII von EBCDIC? Unterschied zwischen symmetrischen (z.B. DES) und asymmetrischen (z.B. RSA) Chiffres. Wie funktioniert eine digitale Unterschrift? Was ist ein Message Digest? Wozu wird es benötigt? Aufgabe eines Key Distribution Servers. Konzept des Kerberos Authentifizierung Prozesses. Was sind Ipsec, Secure Socket Layer und Pretty Good Privacy? Was sind Access Control Listen und Capabilities? RACF? Unterschied zwischen einem Schicht 3 und einem Schicht 7 Firewall. Unterschied zwischen einem Namensdienst (z.B. DNS) und einem Verzeichnisdienst (z.B. X.500, LDAP). Gibt es so etwas auch unter CORBA? Unter Java RMI ? Was sind die ACID Eigenschaften bei der Transaktionsverarbeitung? Können Transaktionen parallel (multithreaded) verarbeitet werden? Probleme? Was sind Stored Procedures, im Gegensatz zu einem Transaktionsmonitor? Warum brauchen wir Locks (Sperren) in der Transaktionsverarbeitung? Was sind „Logical Units of Work“ (LUW) und Sperrpunkte (SyncPoints)? 2-Phase Commit Protokoll. Was ist es? Warum braucht man es? Können Sie mit den Begriffen CICS (Customer Information Control System) und 3270 Protokoll etwas anfangen? Was sind Conversational und Pseudo-conversational Transactions? Was ist eine Session? Wie wird der State einer pseudoconversationalen Transaktion gehalten? Der RPC arbeitet (normalerweise) synchron. Sind auch asynchrone Client/Server Systeme denkbar? (Stichwort:Message oriented Middleware). Unterschied zu e-Mail? Wie spielen Servlets und Java Server Pages zusammen um HTML Bildschirminhalte zu erzeugen. Ist ein Servlet eine Java Klasse? Ist eine JSP eine Java Klasse? Können beide mit einer URL aufgerufen werden? Wozu dient ein Form Tag ? Was ist ein Web Application Server? Was sind Enterprise Java Beans? Unterschied zwischen Entity, Message und Session Beans? Wie speichern erstere und letztere ihre Daten? Wie verteilt ein Web Application Server seine Last auf mehrere Prozessoren? Welche Probleme will man mit CORBA lösen? Was ist die Aufgabe eines ORB? Aufgabe des CORBA IDL Compilers. Warum braucht man ihn? Was ist überhaupt eine „Interface (Schnittstelle)“? Gibt es so etwas auch beim RPC ? Aufgabe des Schnittstellen (Interface) Repositories und des Implementation Repositories. Alternativen zu CORBA. Haben CORBA, RMI und DCOM ähnliche Funktionen? Welches Problem versucht man mit RMI over IIOP zu lösen? Gibt es außer TCP/IP noch andere Transport Protokolle? Client/Server Systeme unter OS/390. Können Java Programme auf CICS zugreifen? CORBA Programme? Der CICS Basic Mapping Support hat eine begrenzte Funktionalität. Was sind die Alternativen ( COMMAREA, CICS Transaction Gateway?) Was sind Connectoren, und die Java J2EE Connection Architecture? Was versteht der Java J2EE Standard unter einem Enterprise Information System. Kann ein solches auch in Java erstellt werden ? Probleme ? Was sind Web Services ? Sind sie objektorientiert ? Was ist SOAP ? Was ist WSDL ? Wenn Web Servies und SOAP als Remote Procedure Call eingesetzt werden, gibt es hier auch eine IDL ? Was ist ein Integrated Development Environment (IDE) ? Was ist Eclipse ? Was ist WDz ? Praktikum Wenn das Praktikum Teil des Prüfungsumfangs ist, wird der Inhalt der Aufgaben diskutiert. Es wird erwartet, dass Sie sich an den Inhalt der Übungen erinnern und diskutieren können. Beispielsfragen sind : Was ist eine CICS Group? Wozu braucht man sie ? Was bewirkt das CICS SENDMAP Statement? Wie wird der Speicherplatz in einer DB2 relationalen Datenbank angelegt? Angenommen, ein Servlet läuft unter WebSphere. Welchen Unterschied gibt es, wenn WebSpere auf einem getrennten Middle-Tier Rechner oder in einem virtuellen Adressenraum unter OS/390 bzw. z/OS läuft ? Was sind Unix System Services unter OS/390 bzw. z/OS ? Was ist der Unterschied zu Linux, angenommen Linux wird als reines Server Betriebssystem eingesetzt ? Was ist eine MQSeries Queue, ein Queue Manager und ein Message Queue Channel? Unterschiede zwischen JDBC, SQLJ und DB2Connect. Wie funktioniert das CICS Transaction Gateway ? cs 1603 ww6 wgs 06-99