Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2008/2009 Teil 13 z/OS Internet Integration cs 1100 ww6 sch 05-97 z/OS Internet Integration Unternehmenskritische Anwendungen und Datenbank-Prozesse laufen in der Regel auf einem zentralen Server. In mittleren und großen Unternehmen und Organisationen ist dies in der Regel ein z/OS 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. Die Wertschöpfung der IT Industrie beträgt etwa 3 % des Bruttosozialproduktes • etwa 60 Mrd. € in Deutschland • etwa 300 Mrd. $ in den USA Davon etwa 2/3 – 3/4 traditionelle Infrastruktur in der Wirtschaft und öff. Verwaltung etwa 1/4 - 1/3 emerging markts (Computer Games, Google, ...) Trends 1. Rezentralisierung 2. evolutionäre Integration der existierenden Infrastruktur in das Internet. 1. Schritt 2. Schritt Benutzeroberflächen anpassen neuartige Möglichkeiten nutzen. „ Never change a running system“ Presentation Business Logic DatenbankProzeß z.B. Oracle, DB2 AnwendungsProzeß PC Registrierkasse Geldausgabeautomat Business- und Präsentationslogik Ein sauber strukturiertes CICS Programm besteht aus zwei Teilen: Business Logik und Präsentations-Logik. Business Logik ist der Teil, in dem Berechnungen erfolgen und Daten in einer Datenbank gelesen/geschrieben werden. Präsentations- Logik ist der Teil, in dem die Ergebnisse der Berechnungen so aufgearbeitet werden, daß sie dem Benutzer in einer ansprechenden Art auf dem Bildschirm dargestellt werden können. Business Logik wird in Sprachen wie C, C++, COBOL, PL/1, Java usw. geschrieben. Für die Präsentations - Logik gibt es viele Möglichkeiten. Die modernste Alternative benutzt Java Server Pages und einen Web Application Server um den Bildschirminhalt innerhalb eines Web Browsers darzustellen. Die älteste (und einfachste) Alternative verwendet das CICS BMS (Basic Mapping Support) Subsystem. BMS Programme werden in der BMS Sprache geschrieben. 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 TN3270 EPI Character User Interface graphische User Interface (eingeschränkt) graphische User Interface (uneingeschrä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). CICS virtueller Adressenraum andere virtuelle Adressenräume CICS Anwendungen Presentatiom Logik Terminal Control Task Control Business Logik Program Storage File Control Control Control CICS Nucleus TCT PCT 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 Login to Secure Site Username: Password: Submit Clear HTML Form <HTML> <HEAD><TITLE> Login </TITLE> </HEAD> <BODY> <H2>Login to Secure Site</H2> < FORM METHOD=POST ACTION="http://abc.de/servlet/xyz.servlet" > Username: <INPUT TYPE="TEXT" NAME="username" SIZE="25"><BR> Password: <INPUT TYPE="PASSWORD" NAME="password" SIZE="25"><P> <INPUT TYPE="SUBMIT" VALUE="Submit"> <INPUT TYPE="RESET" VALUE="Clear"> </FORM> </BODY> </HTML> cs 1523 ww6 wgs 04-03 HTTP HTML WEB Browser WEB Browser WEB Server CGI Programm SQL WEB Browser (WEB) Application Server Datenbank Server Dynamischer WEB Seiten Inhalt (1) Der Web Browser kommuniziert mit dem Web Server über das HyperText Transfer Protokoll (HTTP). HTTP ist das ursprüngliche Transport Protocol für das World Wide Web. Zwei Alternativen: 1. Web Server sendet statische Seite aus der HTML Datenbank an den Web Browser. 2. Web Server erstellt dynamische Seite. Hierzu ruft er z.B. über die CGI Schnittstelle ein Anwendungsprogramm auf. Dieses kann z.B. Daten aus einer Datenbank verwenden, um eine dynamische HTML Seite zu erstellen. 60% aller derartigen Daten werden in z/OS Datenbanken gehalten. CGI Programme werden häufig in einer Script Sprache, z.B. PERL, PHP, REXX oder TclL/Tk erstellt, können aber auch in einer beliebigen anderen Sprache, z.B. C++, Cobol oder Java geschrieben werden. cs 1414 ww6 wgs 03-00 HTML WEB Browser WEB Browser WEB Server Java Servlet SQL JDBC WEB Browser (WEB) Application Server Datenbank Server Dynamischer WEB Seiten Inhalt (2) Im Gegensatz zu CGI erfordert das Java Servlet nur light weight Context Switches. Daher deutlich besseres Leistungsverhalten. Servlets verfügen über alle Java API´s, einschließlich JDBC (Java Data Base Connectivity). Java Server Pages (JSP) sind eine Erweiterung der Servlet API. Verwenden in Java geschriebene XML - ähnliche Tags und Scriplets. cs 1415 ww6 wgs 03-00 Servlet Container Ein Servlet ist eine reguläre Java Klasse, die über extends HttpServlet die Servlet Eigenschaften erbt, und nur in einer Servlet Laufzeitumgebung ausführbar ist. Die Servlet Laufzeitumgebung wird auch als Container oder Servlet Engine bezeichnet. Ein Servlet Container ist ein Programm innerhalb einer Java virtuellen Maschine (JVM), das Requests für Servlets und Java Server Pages (JSP) behandelt. Der Servlet Container ist verantwortlich für: • • • • Erstellung von Servlet-Instanzen, Initialisierung von Servlets, Dispatching von Requests, Verwaltung des Servlet-Kontextes für die Nutzung durch die Web-Anwendungen. Servlet Container haben keine Transaktions-, Persistenceund Sicherheitseigenschaften. Sie verbessern u.a. die Servlet-Ausführungszeit. es 1165 ww6 wgs 05-02 HalloWeltServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HalloWeltServlet extends HttpServlet { public final static String message = "<html>\n" + "<head><title>Hallo Welt </title></head>\n" + "<body>\n" + "<h1>Hallo Welt</h1>\n" + "</body></html>\n"; public void init() { System.out.println("In HalloWeltServlet init"); } public void destroy() { System.out.println("In HalloWeltServlet destroy"); } public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { PrintWriter out = res.getWriter(); out.println(message); } } Java Server Pages (JSP) Java Server Pages sind in der Java Programmiersprache geschrieben. Benutzen XML-artige Tags und Scriplets um die Logik zu kapseln, die den Inhalt der Seite generiert. Alternativ kann die Anwendungslogik woanders liegen, und die Java Server Page greift hierauf mit den Tags und Scriplets zu. Trennung der Seiten-Logik vom Seitenentwurf und der Seitenwiedergabe. xyz.html hello.html hallo.jsp get /hallo.jsp Web Server Servlet Engine Einfache Java Server Page Den folgenden Text in einer Datei mit der .jsp extension speichern ( z.B. hallo.jsp) und mit einem Browser ansehen: <html> <head> <title>JSP Example </title> </head> <body> <%= new java.util.Date() %> </body> </html> Die Zeichenfolgen <% und %> schließen Java Ausdrücke ein. Diese werden zur Run Time ausgewertet. Mit dem Ausdruck <%= new java.util.Date() %> wird die gültige Zeit bei jedem Reload der HTML Seite in den Browser wiedergegeben. Web Server Servlet Container Browser Request Servlet Call Page Response Java Server Page Web Application Server Interaktion Servlet - JSP Es ist durchaus möglich, innerhalb eines Browsers eine .jsp Seite mittels ihrer URL direkt aufzurufen. Üblicher ist der Aufruf eines Servlets mittels eines Form Tags. Das Servlet wiederum ruft eine Java Server Page auf, welche die Ausgabedaten erzeugt. Browser HTML Page (Form ) Web Application Server Servlet call HTML Page (Ergebnis) JSP prepare Bean Bean DB2 access Bean Nutzung von Java Beans Ein Servlet ist ein Java Programm, das Bildschirm Output in der Form einer HTML Datei produziert. Eine JAVAServerPage ist eine HTML Seite mit zusätzlichen JSP Tags. Wird eine JSP Seite aufgerufen, so kompiliert sie ein JSP Übersetzer in ein Servlet. In der Praxis: Servlets und JSP werden von verschiedenen Leuten erstellt (Model-View-Controller Ansatz). Eine JSP ist zwar eine vollwertige Java Komponente, aber der Java Code Anteil innerhalb der JSP wird in der Regel auf ein Minimum reduziert. Es existieren (wie für HTML Seiten) spezielle Werkzeuge für das Erstellen von JSP´s, die das Hand-coding von HTML Statements automatisieren. Architektur einer JSP Web Anwendung Architektur einer JSP Web Anwendung 1. HTML page: static or dynamic HTML page, created from a previous step, contains one or multiple forms that invoke a servlet for processing of the next interaction. 2. Servlet gets control from the Application Server to perform validation and control of flow; sets up and calls command beans that perform the business logic. 3. Command beans control the processing of the business logic; logic may be imbedded in the command bean, or it can be delegated to back-end or enterprise systems, such as relational databases, transactions systems (CICS, MQSeries, IMS, and so forth); command bean may perform one specific function or it may contain many methods, each for a specific task (task wrappers). Command beans invoke database and transaction systems using „connectors“. 4. Results of command beans (or back-end systems) processing are stored in data beans. Data beans could contain an SQL result or a CICS communication area (COMMAREA). 5. View beans provide the contract between the output producing JSPs and the data beans that contain the dynamic data to be displayed in the output; servlet initializes the view beans and registers them with the request block so that the JSPs can find them. 6. Servlet calls a JSP for output processing and formatting depending on the results of the command beans; JSPs generate the output for the browser. 7. JSP use tags to declare the view beans and get access to all the dynamic data that must be displayed in the output. 8. View beans contain one or multiple data beans and provides tailored methods so that the JSP has access to the data stored in the data beans; data beans may not provide the necessary methods for a JSP to access the data. 9. JSP assembles the output and sends it back to the browser as an HTML page with dynamic data; in many cases, that output again contains form(s) to enable the user to continue the dialog with the application. Servlet is the controller Command beans provide the model JSP is the view Enterprise Java Beans (EJB) Java basiertes Server Komponentenmodell, März 1998. Teil der J2EE-Architektur. Version 3.0 verfügbar seit Februar 2005. • EJB Komponenten sind serverseitige Komponenten, die ausschließlich in Java geschrieben sind. EJB Komponenten enthalten nur Business Logik, keine Präsentationslogik und keine Systemfunktionen. • EJBs sind in einen „Container“ eingebettet (Laufzeitumgebung). Die EJB Architektur ist inhärent transaktionsorientiert, distributed, portierbar, multi-tier, scalierbar und sicher. • EJB Komponenten werden declarativ (über einen Deployment Descriptor) zur Laufzeit angepaßt. Die Anpassung bezieht sich auf Transaktionsverhalten, Sicherheitseigenschaften, life-cycle und state management und Persistenz. Der J2EE (Java 2 Platform, Enterprise Edition) Standard kombiniert Technologien wie Servlet, JSP, EJB, JTS, JMS, JCA und den JDK. Enterprise Java Beans (EJB) EJB EJB EJB EJB EJB EJB EJB EJB Container (andere Bezeichnungen:Laufzeitumgebung, Framework, Object Transaction Monitor - OTM) EJB Dienste JTS JIDL JNDI JMS JMAPI JDBC Enterprise Java Beans sind Java Beans mit erweiterter Funktionalität. Dies sind unter anderem • JTS Java Transaction Service • JNDI Java Naming directory Interface • JMS Java Messaging Servics • JDBC Java Data Base Connectivity • JMAPI Java Management API • JIDL Java interface definition language HTML JVM Web Server Servlets JSPs EJBs SQL HTTP Server Servlet Container EJB Container Backend Java Application Server Browser Web Application Server Datenbank Server, alternativ CICS, etc. Application Server Hierarchie Der Web Application Server ist ein Prozess, der normalerweise in seinem eigenen virtuellen Adressenraum läuft. Er besteht aus mehreren Komponenten: 1. Der Web Server ist vielfach Apache. 2. Der Java Application Server unterhält u.a. eine Java Virtuelle Maschine 3. Der Servlet Container (Servlet Engine) ist eine Java Laufzeit Umgebung (runtime component) für die Ausführung von Servlets und Java Server Pages. 4. Der EJB Container ist eine Laufzeit Umgebung für die Ausführung von deployed Enterprise Java Beans. cs 1485 ww6 wgs 06-00 remote Object Methode JVM Klient JVM Server Java Distributed Object Model Die Methoden eines remote objects is können von einer anderen Java Virtual Machine aufgerufen (invoked) werden. Diese JVM kann sich auf einem anderen Host befinden. Ein Object dieser Art wird durch eine oder mehrere remote interfaces beschrieben. Dieses sind Java Interfaces, welche die Methoden des Remote Objects deklarieren. Mit Hilfe der Remote method invocation (RMI) wird eine Methode einer remote Interface eines remote Objects aufgerufen. Der Methoden Aufruf eines remote Objects hat die gleiche Syntax wie der Methoden Aufruf eines lokalenremote Objects. http://www.seas.upenn.edu/~bcpierce/courses/629/jdkdocs/guide/rmi/spec/rmiTOC.doc.html f:\grx\05bis08\java\rmi01 JVM JVM Client Stub Server Java Remote Message Protokoll Remote Reference Skeleton Remote Reference JRMP Transport Transport TCP/IP Remote Method Invocation (RMI) Client/Server-API für den Aufruf von Java Programmen auf geographisch entfernten Rechnern • Normalfall für Java: Es werden nur Methoden von Objekten innerhalb der gleichen JVM aufgerufen. • Objekte in einer lokalen JVM können Methoden von Objekten in einer entfernten JVM mit Hilfe von RMI aufrufen. • Diese JVMs können auf verschiedenen Rechnern im Netz laufen. • Realisierung: Erzeugen eines Stellvertreters (Client-Stub) des entfernten Objekts in der lokalen JVM. Dieser kommuniziert mit dem Skeleton des entfernten Objektes. cs1176 ww6 wgs 05-01 RMI/IIOP RMI over IIOP RMI wird nach und nach durch RMI/IIOP ersetzt. Vorteil: • Nicht-Java Klienten (z.B. C++ Objekte) können ebenfalls Java Objekte aufrufen • Besseres Leistungsverhalten Nachteil: • Einige Java/RMI Funktionen fehlen EPI OS/390 Screen Scraping 3270 BMS Front End ECI Browser Web JSP Appl. Servlet Server EJB CICS HTTP Browser Web MQ Series Server Server HTTP MQSeries CICS Bridge TCP/IP CICS Klienten Anbindung EPI Die BMS Maps werden weiter verwendet. Keine Änderung der Information, die auf dem Bildschirm wiedergegeben wird. Die Darstellung der Information kann geändert werden. ECI Die Presentation Service Komponente von CICS (BMS) wird nicht genutzt. Direkter Zugriff auf COMMAREA. MQSeries es 1021 ww6 Asynchrone Übertragung durch Message oriented Middleware wgs 07-00 Presentation Business Logic DatenbankProzeß z.B. Oracle, DB2 Anwen dungsPro zess PC mit Browser Registrierkasse Geldausgabeautomat Konnector-Schnittstelle 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. Konnektoren sind Software Bausteine, welche eine Schnittstelle zu existierenden Enterprise Information (Legacy) Systemen bilden. Beispielsweise sind folgende Konnektoren für den WebSphere Appl. Server verfügbar: o o o o o o o o o JDBC, SQLJ DB2 Oracle Adabas CICS IMS MQSeries SAP R/3 Lotus Domino JDBC Connector Java Programme SQLJ Connector z/OS DB2 DB2Connect Connector Linux oder Win XP Rechner z/OS Rechner Unterschiedliche Konnektor Arten JDBC ist von ODBC abgeleitet, implementiert dynamische Datenbankzugriffe SQLJ implementiert statische Datenbankzugriffe DB2Connect ist ein für die DB2 API optimierter Connector J2EE Connector Architecture JCA Standard Achitektur für die Integration von existierenden Business Logik Komponenten : Wichtigste Bestandteile der Architektur sind: • JCA Konnektoren, als Resource Adapter (RA) bezeichnet • Common Client Interface (CCI) Ein Beispiel ist der JDBC driver für die Verbindung zu einer relationalen Datenbank. Für CICS existieren: • ECI resource adapter (für COMMAREA Zugriff) • EPI resource adapter Das CICS Transaction Gateway (CTG) enthält • ECI Resource Adapter, • EPI Resource Adapter und • CCI, sowie weitere Zugriffsmechanismen außerhalb 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 Browser C O M M A R E A CTG Web Application Server CICS Anwendung 3270 PräsentationsLogik CICS Region CICS Transaction Gateway Das CICS Transaction Gateway (CTG) ist eine von mehreren verfügbaren CICS Client Implementierungen. Es ermöglicht die Reduzierung der Klienten Funktionalität auf einen regulären Web Browser. Als 2-Tier oder 3-Tier Konfiguation verfügbar Vorteile der 2-Tier Konfiguration: • Kein SNA (TCP/62 oder TN3270)) • Keine Sicherheitsprobleme zwischen Tier 2 und Tier 3 • Administration/System Management Nachteile der 2-Tier Konfiguration: • 3-Tier ist quick and dirty • Performance/Kosten • Produktionsumgebung anders als Entwicklungsumgebung es 1313 ww6 wgs 11-00 1 3 4 5 6 z/OS z/OS Web Appl. Server 2 Servlet Engine JVM CTG Methoden 4 5 6 Anwendung CICS Region CICS Transaction Gateway es 1385 ww6 wgs 07-02 Managed Environment CCI und Resource Adapter sind als Java Klassen implementiert. Sie können von einer Java Anwendung alleinstehend benutzt werden ( nonmanaged 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 CORBA oder RMI/IIOP Alternative CICS Zugriffe über das Internet es 1372 ww6 wgs 12-01 Java Cryptography Architecture The Java Cryptography Architecture (JCA) defines the contracts between the application, the connector and the application server where the application is deployed. The application has a component called the resource adapter. This is contained within the application code handling the interface to the connector which the application developer creates. From a programming perspective, this means that the programmer only has to use a single unified interface with which they can obtain data from the EIS. The resource adapter will take care of abstracting out the different elements and provide the programming model that is independent of the actual EIS behavior and communication requirements. Java als zukünftige universelle Programmiersprache ? CICS Region (Adressenraum) andere Regions CICS JVM CICS Cobol PL/1 oder C++ Anwendung CICS Java Anwendung EXEC CICS Commands JCICS Library Calls Comnd. Library 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. Anwendung verwendet normale Java Klassen, 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/IIOP CICS EJB Server Servlet RMI/IIOP Session Bean Session Bean Session Bean RMI/IIOP WebSphere DB Benutzung von Enterprise Java Beans in einer CICS Anwendung Jens Müller: Anwendungs- und Transaktionsisolation unter Java http://www-ti.informatik.unituebingen.de/~spruth/DiplArb/index.html 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? Im Prinzip ein Service, den man über ein Standard Internet Protokoll (wie z.B. SMTP, FTP und andere) aufrufen kann Gemeint ist aber eher ein Service der über http mit dem Simple Object Access Protocol (SOAP) aufgerufen wird. SOAP ist eine XML Definition Das Simple Object Access Protocol ist allerdings weder simple noch Objekt-orientiert. Deshalb benutzt man heutzutage nur noch den Begriff SOAP, nicht aber mehr den Begriff "Simple Object Access Protocol“. Web Services (1) Beispiel Yahoo Portal Die meisten Dienste kommen in Wirklichkeit von anderen Web Sites: Reisen, Wetter, Landkarten, oder Web Suche mit Hilfe von Google. Diese Dienste sind in das Yahoo Portal als eigene Dienste integriert. Web-Services sind eine Schnittstellen-Technologie. Typische Motive der Gestaltung von Schnittstellen sind: • das Verbergen komplexer Strukturen hinter einer Verschalung, die abstrakter und einfacher strukturiert sowie bequemer nutzbar ist • die Kopplung interagierender Systeme über technische Hindernisse hinweg. Web Services Technologien 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 Anforderungs- und Antwort- Nachrichtenströme, mit denen Funktionsaufrufe an andere ProgrammModule abgesetzt werden. UDDI ist ein XML Dienstekatalog (vergleichbar mit einer XML Version von LDAP). 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). Funktionsvergleich Was ist ein Webservice? Sun oder DCE RPC Transport Protokoll beliebig z.B. Sockets Web Services SOAP Daten Repräsentation XDR, ASN.1 XML Interface Definition IDL WSDL Namensdienst Directory Dienst DNS, X.500 LDAP UDDI cs 1548 ww2k wgs 06-06 Airbus besteht aus 8 Mill. Teilen Jens Müller, Mai 2007 - 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 Mandantenfähigkeit es 1403 ww6 wgs 07-02 Transaktionsmaschine Beispiel: Überweisung der Betriebsrente an 100 000 ehemalige Mercedes (Daimler-Chrysler) Mitarbeiter. 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 Michael Herrmann Service-Orientierte Architektur: Identizierung äquivalenter Services in Form semantischer semiautomatischer Unterstützung des EMEO-Layers Prüfungstermine Montag, 2. März und Mittwoch, 25. März Client Server Praktikum im SS2009, Kickoff vermutlich am Dienstag, 21.4.2009 Einschreibung bei Frau Reimold, Sekretariat Prof. Rosenstiel Viel Erfolg für Ihr weiters Studium und Ihre berufliche Karriere !