lient/server Systeme Prof. Dr.-Ing. Wilhelm G. Spruth Raum 207, Sand 13 Tel.:07071.297-5482, mobil 0172-8051-485 spruth@informatik.uni-tuebingen.de http://www-ti.informatik.uni-tuebingen.de/~spruth/index_de.html
lient/server-systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2008/2009 Raum 207, Sand 13 Tel.:07071.297-5482, mobil 0172-8051-485 spruth@informatik.uni-tuebingen.de 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 all 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 ontrol Lists, Firewall 7. Directorydienste, Zeitdienste 8. Stored Procedures 9. IS Transaktionsmonitor 10. Präsentationslogik, Intersystem ommunication 11. Virtuelle Maschinen, Partitionierung 12. Web Application Server 13. ORBA, RMI, DOM, Webservices 14. Internet Integration, 15. Service Oriented Architecture
lient/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 lient/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: spruth@informatik.uni-tuebingen.de 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 RP. O`Reilly, 1992. R. Orfali, D. Harkey: lient/server Programming with OS/2, Van Nostrand Reinhold, 1993. J. Gray, A. Reuter: Transaction Processing. Morgan Kaufmann, 1993. R. K. Lamb: ooperative Processing using IS. McGrawHill 1993. J. Horswill: Designing & Programming IS Applications. O Reilly, 2000, ISBN 1-56592-676-5 R. Buck-Emden, J. Galimow: Die lient/server Technologie des SAP-Systems R/3. Addison-Wesley, 1996. R. Orfali, D. Harkey: lient/server Programming with Java and orba. 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 3-486-27214-4.
Praktikum lient/server Systeme WS 2008/2009 Für das Wintersemester 2009/10 ist ein Praktikum lient/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. orba und orba Namensdienst 2. RMI und RMI/IIOP 3. Anwendungsentwicklung unter z/os und TSO 4. Erstellen einer IS Anwendung 5. MQSeries 6. Java Servlet Zugriff auf DB2 7. IS 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 merry/pippin 134.2.205.54 134.2.14.211 134.2.14.213 134.2.14.212 134.2.14.215 134.2.14.216/217 LPAR #1 LPAR #2 LPAR #3 LPAR # 4 LPAR # 5 Bladeenter H z z z z / / L L 0 0 i i S S n n ell Blade z/os V 1.8 z/os V 1.8 z/vm z/vm zlinux PR/SM z9 B + DS 6800 Hardware Infiniband gimli, 134.2.14.214 Rechner Konfiguration Hobbit.cs.uni-tuebingen.de
EthernetSwitch (BladeenterH) sam-eth.informatik.uni-tuebingen.de 134.2.14.204 InfinibandSwitch (BladeenterH) sam-ib.informatik.uni-tuebingen.de 134.2.14.205 Manag. Modul (BladeenterH) sam.informatik.uni-tuebingen.de 134.2.14.206 1. Service element z9 se1.informatik.uni-tuebingen.de 134.2.14.207 2. Service element z9 se2.informatik.uni-tuebingen.de 134.2.14.208 z9 HM sauron.informatik.uni-tuebingen.de 134.2.14.210 6800 HM gollum.informatik.uni-tuebingen.de 134.2.14.209 z/os extern hobbit.cs.uni-tuebingen.de 134.2.205.54 z/os intern frodo.informatik.uni-tuebingen.de 134.2.14.211 z/vm zlinux gandalf.informatik.uni-tuebingen.de 134.2.14.212 zlinux gimli.informatik.uni-tuebingen.de 134.2.14.214 zlinux clone zlinux-clone0.informatik.uni-tuebingen.de 134.2.14.220 zlinux clone zlinux-clone1.informatik.uni-tuebingen.de 134.2.14.221 z/vm z/os legolas.informatik.uni-tuebingen.de 134.2.14.213 zos clone zos-clone0.informatik.uni-tuebingen.de 134.2.14.230 zos clone zos-clone1.informatik.uni-tuebingen.de 134.2.14.231 zlinux for cell bilbo.informatik.uni-tuebingen.de 134.2.14.215 1. ell blade (BladeenterH) merry.informatik.uni-tuebingen.de 134.2.14.216 2. ell blade (BladeenterH) pippin.informatik.uni-tuebingen.de 134.2.14.217 zlinux Home page located under http:// hobbbit.cs.uni-tuebingen.de http:// hobbbit.informatik.uni-tuebingen.de /web/uni-tuebingen/index.html
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 ell 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
lient/server-modell [Svobodova 1984] lient Prozess Anfrage Reaktion Anfrage Server Prozess lient Reaktion Prozess Server bietet seine Dienste (Service) einer Menge a priori unbekannter Klienten (lients) an. Dienst: Software-Instanz, die auf einem oder mehreren Rechnern ausgeführt wird. Server: Rechner, der Dienst-Software ausführt Klient: Nutzer eines Serverdienstes Interaktionsform: Anfrage/Reaktion (Request/Reply) Ein Rechner kann gleichzeitig mehrere Serverdienste anbieten.
Der größere Teil aller Anwendungen in Wirtschaft und Verwaltung läuft auf lient/server Systemen
Zur Germanistik Das Vorlesungsskript benutzt beide Schreibweisen: lient und Klient Wir richten uns nach der Umgangssprache und schreiben aber lient/server oder lient Stub unintelligente Klienten wie findet der Klient seinen Server.
Mainframe Server z.b. OS/370 unintelligente Klienten Infrastruktur eines Unternehmens Anfang der 80er Jahre Solide, teuer,leistungsfähig, inflexibel
intelligente Klienten S S S dezentrale Server S S S Mainframe Server Infrastruktur eines Unternehmens Ende der 80er Jahre Wesentliche Verbesserung der Flexibilität
S S S S S S Mainframe Server Infrastruktur eines Unternehmens Anfang der 90er Jahre ausufernde Administrationskosten
Mainframe Server z.b. z/os S S intelligente Klienten Infrastruktur eines Unternehmens Jahr 2000 Rezentralisierung spart Kosten
Mainframe Server z.b. z/os S Internet Klienten mit reduzierter Intelligenz 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 lustering (oupling Facility) Work Load Management Transaktionsverarbeitung mit Java
64 PUs PU Hauptspeicher omm. hannel Subsystem Subsystem 1500 Gbyte > 256 Kanäle (hannel Path) / System FION Bänder, Switch Drucker System z Großsystemkonfiguration 256 000 Plattenspeicher (Devices) Logische Plattenspeicher (logical Volumes) 10-1000 TeraByte Plattenspeicherplatz ExaByte Archivspeicher Enterprise Storage Server
lient 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 Server- Betriebssystemen 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
PU Haupt- Schicht speicher 3-7 E/A Bus, z.b. PI µ Platten Netz Schicht Adapter Adapter 1-3 Speicher Aufteilung der Schichten Netzverbindung
Schicht Schicht Hauptspeicher Anwendungsschicht Darstellungsschicht 5-7 Sitzungsschicht SV Mikroprogramm Speicher des E/A ontrollers Plazierung der Schichten Überwacher Netzwerkschicht 2-4 Transportschicht 1-3 Sicherungsschicht Netzwerkschicht Bitübertragungsschicht PU E/A ontroller E/A Bus, z.b. PI
IDU II SDU Schicht n+1 SAP Schnittstelle II SDU Schicht n Beziehungen der Schichten an einer OSI Schnittstelle IDU Interface Data Unit II Interface ontrol Information SDU Service Data Unit SAP Service Access Point PDU Protocol Data Unit SDU Nachrichtenkopf N-PDU
5 4 3 2 Schicht Multiplexing zwischen den Schichten
IP IPX NetBios SNA Schicht 3 Ethernet Driver Ethernet Rahmen Schicht 2 trifft ein Demultiplexing auf der Sicherungsschicht
IMP UDP TP EGP Schicht 4 IP Module Datagramm Schicht 3 trifft ein Demultiplexing auf der Netzwerkschicht
Port 1 Port 2 Port 3 Port 4 Schicht 5 UDP Module UDP Datagramm Schicht 4 trifft ein Demultiplexing auf der Transportschicht
Die Dienste der Schicht 5 7, z.b. DNS, FTP, SMTP oder Telnet werden über Ports adressiert und aufgerufen. DNS FTP SMTP Telnet Schicht 5-7 IMP UDP TP EGP Schicht 4 IP Module Datagramm Schicht 3 trifft ein Ursprüngliche Internet Protokolle
Ports Ein Port definiert den Zugang zwischen TP 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 apabilities gesteuert: Sende-, Empfangs-, Besitz-apabilities. Anwendung generiert Port, besitzt alle 3 apabilities. apabilities können in Nachrichten an andere Prozesse weitergereicht werden. Sender von Empfangs- und Besitz-apabilities 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 21 telnet 23 smtp 25 http 80 pop3 110 RP Port Mapper 111 snmp 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