Client/Server Systeme - Universität Tübingen
Transcrição
Client/Server Systeme - Universität Tübingen
Client/Server Systeme Prof. Dr.-Ing. Wilhelm G. Spruth Raum 207, Sand 13 Tel.:07071.297-5482, mobil 0172-8051-485 [email protected] http://www-ti.informatik.uni-tuebingen.de/~spruth/index_de.html Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2008/2009 Raum 207, Sand 13 Tel.:07071.297-5482, mobil 0172-8051-485 [email protected] http://www-ti.informatik.uni-tuebingen.de/~spruth/index_de.html Teil 1 Einführung, OSI Schichtenmodell, Ports Vorlesungsinhalt 1. Schnittstellen zum Transportnetz:, Ports und Sockets 2. Remote Procedure Call 3. Datensyntaxdienste: XDR und ASN.1 4. Sicherheit und Verschlüsselung, DES, AES und RSA, 5. Elektronische Unterschriften, Authentifizierung 6. Sicherheitsprotokolle, Kerberos, SSL, IPSec, Access Control Lists, Firewall 7. Directorydienste, Zeitdienste 8. Stored Procedures 9. CICS Transaktionsmonitor 10. Präsentationslogik, Intersystem Communication 11. Virtuelle Maschinen, Partitionierung 12. Web Application Server 13. CORBA, RMI, DCOM, Webservices 14. Internet Integration, 15. Service Oriented Architecture Client/Server-Systeme Die Vorlesung findet wöchentlich im WS 2008/09 statt. Zeit: Montag von 11:15 - 12:45. Die Vorlesung ist als Wahlfach innerhalb der Technischen Informatik zugelassen, und kann mit 2 SWS in den Prüfungsplan Technische Informatik aufgenommen werden. Für das Wintersemester 2009/10 ist ein Praktikum Client/Server Systeme vorgesehen. Das Praktikum kann ebenfalls im Rahmen der Fachprüfung Technische Informatik in den Prüfungsplan mit 4 WS aufgenommen werden. Im WS 2008/2009 Betreuung durch Stefan Steinhilber und Kolja Treutlein. Rückfragen bei Frau Reimold, Lehrstuhl Prof. Rosenstiel, oder: [email protected] Tel.: 07031-672470 oder 0172-8051-485 cs 0002 ww6 sch 03-98 Sprechstunde Jeweils nach der Vorlesung ab 14:00, oder in Sonderfällen nach Absprache. Bitte die Uhrzeit mit Frau Reimold, Lehrstuhl Prof. Rosenstiel absprechen. Frau Reimold kann Dienstag, Mittwoch und Donnerstag zwischen 13:30 und 15:30 erreicht werden. Das Script der Vorlesung ist zu finden unter http://www-ti.informatik.uni-tuebingen.de/~spruth/vorlesung_cs/index.html oder über www.cedix.de Literatur J. Bloomer: „Power Programming with RPC“. O`Reilly, 1992. R. Orfali, D. Harkey: „Client/Server Programming with OS/2“, Van Nostrand Reinhold, 1993. J. Gray, A. Reuter: „Transaction Processing“. Morgan Kaufmann, 1993. R. K. Lamb: „Cooperative Processing using CICS“. McGrawHill 1993. J. Horswill: „Designing & Programming CICS Applications“. O´Reilly, 2000, ISBN 1-56592-676-5 R. Buck-Emden, J. Galimow: „Die Client/Server Technologie des SAP-Systems R/3“. Addison-Wesley, 1996. R. Orfali, D. Harkey: „Client/Server Programming with Java and Corba“. 2nd ed., Wiley 1998 R. Ben-Natan: „IBM WebSphere Starter Kit“.McGrawHill, 2000, ISBN 0-07-212407-5 P. Herrmann, U. Kebschull, W.G. Spruth: „Einführung in z/OS und OS/390“. Oldenbourgh 2002, ISBN 3486-27214-4. Praktikum Client/Server Systeme WS 2008/2009 Für das Wintersemester 2009/10 ist ein Praktikum Client/Server Systeme vorgesehen. Das Praktikum kann ebenfalls im Rahmen der Fachprüfung Technische Informatik in den Prüfungsplan mit 4 WS aufgenommen werden. Im WS 2008/2009 Betreuung durch Stefan Steinhilber und Kolja Treutlein. Die Übungen bestehen aus 7 Aufgaben: 1. Corba und Corba Namensdienst 2. RMI und RMI/IIOP 3. Anwendungsentwicklung unter z/OS und TSO 4. Erstellen einer CICS Anwendung 5. MQSeries 6. Java Servlet Zugriff auf DB2 7. CICS Transaction Gateway Eine detaillierte Beschreibung der Übungen und der Aufgabenstellungen ist zu finden unter: http://www-ti.informatik.uni-tuebingen.de/~csp/ Die ersten zwei Aufgaben werden mit Linux Servern Rechnern des Lehrstuhls technische Informatik ausgeführt. Für die fünf letzten Aufgaben wird der brandneue z/OS Server an der Uni Tuebingen benutzt (hobbit.informatik.uni-tuebingen.de oder 134.2.205.54). Hierzu sind außerdem detaillierte Anweisungen unter http://hobbit.informatik.uni-tuebingen.de verfügbar. Teilnehmer loggen sich über einen beliebigen Klienten-Rechner in einen Server ein. Hierfür stehen die Rechner im Raum 023 zur Verfügung. Alternativ besteht die Möglichkeit, sich über das Internet mit einem privaten Rechner als Klient einzuloggen. Hobbit.cs… frodo legolas gandalf bilbo 134.2.205.54 134.2.14.211 134.2.14.213 134.2.14.212 134.2.14.215 LPAR #1 LPAR #2 LPAR #3 LPAR # 4 LPAR # 5 z / 0 S z/OS V 1.8 z/OS V 1.8 z / 0 S z L i n z/VM z L i n z/VM merry/pippin 134.2.14.216/217 BladeCenter H Cell Blade zLinux PR/SM Infiniband z9 BC + DS 6800 Hardware gimli, 134.2.14.214 Rechner – Konfiguration Hobbit.cs.uni-tuebingen.de EthernetSwitch (BladeCenterH) sam-eth.informatik.uni-tuebingen.de InfinibandSwitch (BladeCenterH) sam-ib.informatik.uni-tuebingen.de Manag. Modul (BladeCenterH) sam.informatik.uni-tuebingen.de 1. Service element z9–se1.informatik.uni-tuebingen.de 2. Service element z9–se2.informatik.uni-tuebingen.de z9 HMC sauron.informatik.uni-tuebingen.de 6800 HMC gollum.informatik.uni-tuebingen.de z/OS extern hobbit.cs.uni-tuebingen.de z/OS intern frodo.informatik.uni-tuebingen.de z/VM zLinux gandalf.informatik.uni-tuebingen.de zlinux gimli.informatik.uni-tuebingen.de zlinux clone zlinux-clone0.informatik.uni-tuebingen.de zlinux clone zlinux-clone1.informatik.uni-tuebingen.de z/VM z/OS legolas.informatik.uni-tuebingen.de zos clone zos-clone0.informatik.uni-tuebingen.de zos clone zos-clone1.informatik.uni-tuebingen.de zLinux for cell bilbo.informatik.uni-tuebingen.de 1. Cell blade (BladeCenterH) merry.informatik.uni-tuebingen.de 2. Cell blade (BladeCenterH) pippin.informatik.uni-tuebingen.de zLinux Home page located under http:// hobbbit.cs.uni-tuebingen.de http:// hobbbit.informatik.uni-tuebingen.de /web/uni-tuebingen/index.html 134.2.14.204 134.2.14.205 134.2.14.206 134.2.14.207 134.2.14.208 134.2.14.210 134.2.14.209 134.2.205.54 134.2.14.211 134.2.14.212 134.2.14.214 134.2.14.220 134.2.14.221 134.2.14.213 134.2.14.230 134.2.14.231 134.2.14.215 134.2.14.216 134.2.14.217 Unter Leitung von Prof. Rosenstiel und Dipl.-Inf. Grosser läuft derzeitig ein Gemeinschaftsprojekt zum Thema Gameframe. Partner sind die IBM Entwicklungslaboratorien Böblingen und das Wilhelm Schickard Institut für Informatik der Universität Tübingen. Die Experimente werden auf der z9 –Cell Blade Plattform des Instituts durchgeführt. Universität Tübingen Test Konfiguration Ausgangsdaten für die Bilderstellung sind Sattelitenaufnahmen und Radar-Höhenmessungen, ebenfalls durch Satteliten. Beispiel World of Warcraft Client/Server-Modell [Svobodova 1984] Client Prozess Anfrage Reaktion Server Prozess Anfrage Client Prozess Reaktion Server bietet seine Dienste (Service) einer Menge a priori unbekannter Klienten (Clients) an. Dienst: Server: Klient: Interaktionsform: Software-Instanz, die auf einem oder mehreren Rechnern ausgeführt wird. Rechner, der Dienst-Software ausführt Nutzer eines Serverdienstes Anfrage/Reaktion (Request/Reply) Ein Rechner kann gleichzeitig mehrere Serverdienste anbieten. Der größere Teil aller Anwendungen in Wirtschaft und Verwaltung läuft auf Client/Server Systemen Zur Germanistik Das Vorlesungsskript benutzt beide Schreibweisen: Client und Klient Wir richten uns nach der Umgangssprache und schreiben Client/Server oder Client Stub aber unintelligente Klienten wie findet der Klient seinen Server. Mainframe Server z.B. OS/370 C C C C C C C C C unintelligente Klienten Infrastruktur eines Unternehmens Anfang der 80er Jahre Solide, teuer,leistungsfähig, inflexibel intelligente Klienten C C C S C C C C S dezentrale Server S C C C S C S S C Mainframe Server C C C C C C Infrastruktur eines Unternehmens Ende der 80er Jahre Wesentliche Verbesserung der Flexibilität C C C S C C C C S C C C C C C S S C C S S C C Mainframe Server C Infrastruktur eines Unternehmens Anfang der 90er Jahre ausufernde Administrationskosten Mainframe Server z.B. z/OS S C C C C C S C C C C intelligente Klienten Infrastruktur eines Unternehmens Jahr 2000 Rezentralisierung spart Kosten Mainframe Server z.B. z/OS S Internet C C C C C C Klienten mit reduzierter Intelligenz C C C Mainframe eines Fremdunternehmens Infrastruktur eines Unternehmens 2008 Nutzung des Internets, e-Business, Service Oriented Architcture (SOA) als Ziel Integration von Existierenden Server Systemen für das Online Transaktion Processing (OLTP) mit Hilfe der Java Enterprise Edition (J2EE) in eine Service Oriented Architecture (SOA) Mainframe Rechner IBM, Fujitsu/Siemens System z, z/OS Betriebssystem von den 100 größten deutschen Unternehmen setzen über 90 % Mainframe Rechner mit dem z/OS Betriebssystem als ihren zentralen Server ein. Weltweit werden mehr als 2/3 aller wirtschaftlich relevanten Daten auf Mainframe Rechnern gespeichert. Zukunftsweisende Technologien werden erfahrungsgemäß zunächst auf Mainframe Rechnern eingeführt, ehe sie auf anderen Plattformen verfügbar werden. Derzeitige Beispiele: • • • • Virtualisierung Clustering (Coupling Facility) Work Load Management Transaktionsverarbeitung mit Java 64 CPUs CPU Hauptspeicher Comm. Subsystem Channel Subsystem 1500 Gbyte > 256 Kanäle (Channel Path) / System FICON Switch Bänder, Drucker System z Großsystemkonfiguration ≤ 256 000 Plattenspeicher (Devices) Logische Plattenspeicher (logical Volumes) 10 - 1000 TeraByte Plattenspeicherplatz ExaByte Archivspeicher Enterprise Storage Server Client Betriebssysteme • • • • Windows Home, Professional Linux Apple Mac OS X Leopard Handhelds, Palmtops, Mobiltelefon, Geldausgabeautomat, Registrierkasse Server Betriebssysteme • • • • Windows Server Linux Unix (HP/UX, Solaris, AIX) z/OS Zuverlässigkeit von Servern Die Marktforscher der Yankee Group haben die Ergebnisse einer Studie zur Zuverlässigkeit von ServerBetriebssystemen im Jahr 2007 vorgelegt. Im Vergleich zum Vorjahr ist die jährliche Downtime bei allen Systemen deutlich gesunken – mit Ausnahme von Windows Server 2000 und 2003. Am zuverlässigsten erwiesen sich nach den Angaben der gut 700 befragten Systemadministratoren aus 27 Ländern kommerzielle Unix-Versionen mit einer Downtime zwischen 36 (IBM AIX) und knapp 90 Minuten pro Jahr (Sun Solaris). Die Enterprise-Versionen von Linux liegen mit Werten zwischen ein und zwei Stunden Downtime pro Jahr in einer ähnlichen Größenordnung. Für Windows Server 2000 und 2003 wurden Downtimes von zehn und neun Stunden pro Jahr gefunden Der Wert für z/OS beträgt 10 Minuten pro Jahr, davon 1 Minute ungeplant. http://www.heise.de/security/Zuverlaessigkeit-Linux-und-Unix-schlagen-Windows--/news/meldung/106572 7 Application layer Anwendungsschicht 6 Presentation layer Darstellungsschicht 5 Session layer Sitzungsschicht 4 Transport layer Transportschicht 3 Network layer Netzwerkschicht 2 Data link layer Sicherungsschicht 1 Physical layer Bitübertragungsschicht OSI - Protokollhierarchie Virtuelle und tatsächliche Datenübertragung CPU Hauptspeicher Schicht 3 -7 E/A Bus, z.B. PCI µ Platten Adapter Netz Adapter Schicht 1-3 Speicher Netzverbindung Aufteilung der Schichten Schicht Schicht Hauptspeicher 5-7 Anwendungsschicht Darstellungsschicht Sitzungsschicht SVC 2-4 Mikroprogramm Speicher des E/A Controllers Überwacher Transportschicht Netzwerkschicht 1-3 Netzwerkschicht Sicherungsschicht Bitübertragungsschicht CPU E/A Controller E/A Bus, z.B. PCI Plazierung der Schichten IDU ICI SDU Schicht n+1 Beziehungen der Schichten an einer OSI Schnittstelle SAP Schnittstelle ICI SDU Schicht n SDU Nachrichtenkopf N-PDU IDU ICI SDU SAP PDU Interface Data Unit Interface Control Information Service Data Unit Service Access Point Protocol Data Unit 5 4 3 2 Schicht Multiplexing zwischen den Schichten IP IPX NetBios SNA Schicht 3 Ethernet Driver Ethernet Rahmen trifft ein Schicht 2 Demultiplexing auf der Sicherungsschicht ICMP UDP TCP EGP Schicht 4 IP Module Datagramm trifft ein Schicht 3 Demultiplexing auf der Netzwerkschicht Port 1 Port 2 Port 3 Port 4 Schicht 5 UDP Module UDP Datagramm trifft ein Schicht 4 Demultiplexing auf der Transportschicht Die Dienste der Schicht 5 – 7, z.B. DNS, FTP, SMTP oder Telnet werden über Ports adressiert und aufgerufen. DNS ICMP FTP UDP SMTP TCP Telnet EGP Schicht 5-7 Schicht 4 IP Module Datagramm trifft ein Schicht 3 Ursprüngliche Internet Protokolle Ports Ein Port definiert den Zugang zwischen TCP oder UDP und der nächst höheren Sicht. Jeder Anwendung ist eindeutig ein Port (oder mehr) zugeordnet. Ein Port identifiziert eindeutig die gewünschte Anwendung. Nachrichten beliebiger Länge werden zu Ports gesendet und von Ports empfangen. Ports werden dynamisch eingerichtet und zerstört. Portzugriff über „Capabilities“ gesteuert: Sende-, Empfangs-, Besitz-Capabilities. Anwendung generiert Port, besitzt alle 3 Capabilities. Capabilities können in Nachrichten an andere Prozesse weitergereicht werden. Sender von Empfangs- und Besitz-Capabilities verliert Empfangs- und Besitzrecht. Auswahl von Portnummern 1 - 255 reserviert für Internet Dienste 256 - 1023 ursprünglich reserviert für privilegierte Benutzer, z.B. Superuser in UNIX, heute ebenfalls generell reserviert 1024 - 5000 transienter Bereich. Portnummern werden dynamisch generiert 5001 - 65535 Portnummern frei für Anwendungen „Well known“ Ports sind reservierte Ports für offizielle Dienste, z.B.: ftp telnet smtp http pop3 RPC Port Mapper snmp 21 23 25 80 110 111 161 zu finden z.B. in der Datei etc/services Unser z/OS Rechner in Tübingen wird über Port 423 angesprochen !!! Ein Web Browser fordert alle HTTP Verbindungen von Port 80 des über die URL adressierten Web Servers an; es ist möglich einen anderen Port explizit zu spezifizieren, z.B. Port 81 mit : http//:www.xxx.com:81