Teil III: Architektur und Aufbau (verteilter) Informationssysteme Architektur - 1 IS-K2001 Übersicht und Zielsetzung von Teil III ● Verstehen der Zusammenhänge, wenn man von der traditionellen zentralen Datenbank als Plattform für die Anwendungsentwicklung in eine verteilte Umgebung übergeht und Client/Server (Two-Tier) oder Client/Middleware/Server-Architektur (Three-Tier) betrachtet. ● Grundlagen für verteilte und mehrstufige Transaktionsverwaltung sowie Einordnung von Transaktionsmodellen und Verfahren für verteilte und föderierte Transaktionsverwaltung ● Einblick in „Enterprise Resource Planning“ Systeme (ERPs) am Beispiel von SAP /R3 IS-K2001 Architektur - 2 Kap. 8 Architektur von IS Client/Server/Middleware 8.1 Hintergrundinformation - Hardware (Stand 2000) K a p a z itä t G e s c h w in d ig k e it Z u g r if f s z e it P r e is L 1 -C a c h e 16 - 32 KB 1 3 0 0 M B /s 4 ns c a . 3 0 0 0 F r/M B L 2 -C a c h e 256 KB - 4 M B 3 0 0 M B /s 10 ns 2 0 F r/M B 16 M B - 4 G B 8 0 M B /s 40 ns 1 F r/M B 1 - 160 G B 5 – 4 0 M B /s 5 m s 0 ,0 2 F r/M B 640 M B 2 G B 3 M B /s 150 m s 0 ,1 0 F r/M B 4 G B b is > 1 0 0 G B 2 - 1 0 M B /s 100 m s b is > 1 0 s 0 ,0 0 3 F r/M B RAM F e s tp la t te CD RO M D LD : Band --- N e tz w e rk 10 100 F a s t- E th e r n e t: G ig a b it- E th e r n e t: ca. 1 m s M B /s --- M B /s Architektur - 3 IS-K2001 Hintergrundinformation - Beispielplatte (ca. 2000) Q u a n tu m A tla s 1 0 K II B a u a rt S p e ic h e rk a p a z itä t S c h n itts te lle U ltra 1 6 0 S C S I T ra n s fe rra te lin e a r r/w im M itte l: 3 0 M B /s c ’t H d b e n c h : 2 6 .5 M B /s 8 1 9 6 K B yte C ache R o ta tio n s g e s c h w in d ig k e it P o s itio n ie rz e it W a h lfre ie r S e k to rzu g riff 1 0 0 0 0 U /m in m ittle re : 5 m s m a xim a l: 1 3 m s ca . 8 m s A n za h l P la tte n 10 A n za h l K ö p fe 20 S e k to re n g rö s s e E n e rg ie ve rb ra u c h (R u h e ) M e a n -T im e -B e tw e e n -F a ilu re P re is IS-K2001 3 ,5 Z o ll (ca . 1 4 x 1 0 x 4 cm / 1 k g ) B is 7 5 G B yte 5 1 2 B yte s 1 4 W a tt 1 000 000 h ca . 2 5 0 0 ,- F r Architektur - 4 Umgebung - Software/Kommunikation ISO-OSI Schichtenmodell: Anwendung (AP): Präsentation, Datenverarbeitung ● AP und DBMS häufig auf verschiedenen Rechnern ● Kommunikation: Verbindung zwischen der Software. Wird vom Betriebssystem bereitgestellt. ● Wir betrachten nur die Kommunikation ausserhalb des Betriebssystems ● AP Betriebssystem 7 Anwendung 6 Präsentation 5 Sitzung 4 Transport 3 Netzwerk 2 Log. Verbindung 1 Phys. Verbindung Gegenüber Betriebssystem ist auch das DBMS ein Anwendungsprogramm! ● Architektur - 5 IS-K2001 8.2 DBMS-Einbettung Ein-Stufen Architektur (1) ● Single User DBMS ◆ ein Prozess und ein Adressraum ◆ keine Concurrency Control ◆ einfachstes Crash Recovery AP Prozess DBMS AP … Anwendungsprogramm mit DBAufruf ● DBMS … gehört zum Adressraum des AP ● Betriebssystem ==> PC-Datenbanksysteme! IS-K2001 Architektur - 6 Ein-Stufen Architektur (2) ● ● ● ● ● ● Multi-User DBMS: mehrere Prozesse, Kommunikation über gemeinsamen Adressraum, daher: ◆ Sehr effizienter Datenaustausch über Shared Memory, aber ◆ keine Sicherheit gegenüber Fehlern im Anwenderprogramm AP i … Anwendungspgm mit DB-Aufrufen DA i … Speicherbereich für Datenaustausch zwischen DBMS und AP i DBMS … gehört zum Adressraum der AP i, wird nur einmal geladen („reentrant code“) SP … Systempuffer des DBMS, gemeinsamer Speicherbereich GST …globale Synchronisationstabelle für den Zugriff auf SP AP 1 AP n DA 1 DBMS DA n SP GST DBMS Betriebssystem Beispiel: IBM System/R - Forschungsprototypsystem Architektur - 7 IS-K2001 Zwei-Stufen Architektur: “Client/Server” Client und Server sind völlig getrennt ● Kommunikation zwischen Client und Server über ein Netzwerk oder IPC. Dabei wird ein spezielles Protokoll verwendet, z.B. JDBC, Net8 (bei Oracle) ● Klare Aufgabenteilung zwischen Client und Server ● Client DB Server DB Client Library DB Server Library Netzwerk, IPC Betriebsystem Client IS-K2001 Betriebsystem Server Architektur - 8 Vergleich: Ein- / Zwei-Stufen Vorteile ◆ ◆ ◆ ◆ ◆ ◆ ◆ Nachteile hohe Sicherheit durch Trennung der Adressräume zwischen Client und Server, problemgerechte Arbeitsteilung zwischen Clients und Servern, physische Verteilung leicht möglich, da praktisch eingebaut, hohe Flexibilität und gute Skalierbarkeit durch leichtes Hinzufügen von Ressourcen, wirtschaftliche Nutzung gemeinsamer Ressourcen (z.B. periphere Geräte), Vermeiden eines kritischen Fehlerortes durch Server-Replikation und Shadowing, Verwendung bekannter Werkzeuge, z.B. zur Entwicklung von Client-GUIs ◆ ◆ ◆ ◆ geringere Server-Leistung Uebertragen grosser Datenmengen zwischen Client und Server oft unbefriedigende Verfügbarkeit von Entwurfs- und Administrationswerkzeugen erhöhter Aufwand für Administration und Wartung Architektur - 9 IS-K2001 Klassifikationsübersicht bei Client/Server DB-Server IS-K2001 Monolithisch Multiple Server ein DBS-Prozess mehrere DBS-Prozesse Symmetrisch Asymmetrisch pro AP ein DBS-Prozess dynamische Zuordnung der APs zu den DBSProzessen Architektur - 10 Client/Server Architekturen (1) mehrere DB Serverprozesse ◆ Kommunikation zwischen den Servern über “shared memory” ◆ zwischen Clients und Servern bzw. Dispatcher über BS-Mechanismen (IPC) oder Netzsoftware ◆ Symmetrische Zuordnung - jedem Client ist genau ein Server Prozess zugeordnet: statische Zuordnung, feste Anzahl n Server vorgeneriert ==> maximaler Parallelitätsgrad ist n ◆ Asymmetrisch - ein Client wird mit Hilfe eines Dispatcher mit einem Server Prozess verbunden. Feste Anzahl Server vorgeneriert, aber Parallelitätsgrad kann höher sein ● (2) ein DB Serverprozess ◆ Synchronisierter Zugriff auf Systempuffer und zentrale Systemtabellen ◆ Server verwendet Multi-Threading (Reentrant Code) ◆ genau ein Server-Prozess für viele Clients ◆ DB-Serverprozess ist vom BS bevorzugt! ● Architektur - 11 IS-K2001 Monolitischer Server eigene Ressourcenverwaltung, dupliziert BS-Funktionen ● einfache Kommunikation im Server durch Shared Memory ● z.B. Sybase, MS SQL Server ● AP AP Client … Client 1 i CL CL Betriebssystem 1 AP Client k DBMS Server 1 CL Betriebssystem n Netzwerk IS-K2001 Architektur - 12 Multiple Server DBMS ist ein Verbund von verschiedenen Prozessen ● Kommunikation über Betriebssystem (z.B. IPC) oder Netzwerk ● Scheduling der Prozesse geschieht über das Betriebssystem, grosser Vorteil bei Mehrprozessor-Rechnern, da Prozessorzuteilung durch das BS erfolgt ● z.B. Oracle, Informix, DB2 ● CL CL AP Client m Dispatcher AP AP Client … Client 1 i CL Betriebssystem 1 DBMS … DBMS Server Server 1 k Betriebssystem n Netzwerk Architektur - 13 IS-K2001 Beispiele: Sybase und Oracle ● Sybase: Monolithischer Server ◆ ein Serverprozess ◆ eigenes “Process”-Scheduling ◆ weniger Shared Memory ● O M E D Oracle: Multipler Server ◆ sowohl symmetrisch als auch asymmetrisch konfigurierbar – dedicated Server – shared Server mit Dispatcher ◆ DB-Prozesse mit verschiedenen Aufgaben: – Recoverer, Process Monitor,System Monitor, Database Writer, Log Writer, Archiver, Checkpoint, Dispatcher, Lock IS-K2001 Architektur - 14 Oracle Prozessübersicht (1) LCKn RECO PMON SMON System Global Area Database Buffer Cache User Shared Dedicated Server Server Redo Log Buffer CKPT DBWR Offline Storage ARCH LGWR D000 Control User Data Redo Log Architektur - 15 IS-K2001 Oracle Prozessübersicht (2) ● ● ● ● ● ● ● ● ● ● User - Embedded C Programme oder Oracle Tools LCKn - Lock Process (Parallel Server Option) RECO - Recoverer (verarbeitet hängende verteilte Transaktionen) PMON - Process Monitor (räumt nach Prozessfehler auf) SMON - System Monitor (Startup Recovery, Garbadge Collection) D000 - Dispatcher (verantwortlich für die Kommunikation mit dem User) DBWR - Database Writer (schreibt Blöcke aus dem Database Buffer auf Platte, Cache Manager) CKPT - Checkpoint LGWR - Logwriter (schreibt Redo Information auf Platte) ARCH - Archivierer (Kopiert Redo-Log-Files aufs Backup Medium) IS-K2001 Architektur - 16 Oracle Verbindungsaufbau Service Name Client AP nameserver Host, Port, SID SID listener dispatcher Names Dedicated Server Shared Server Shared Server Architektur - 17 IS-K2001 8.3 Aufgabenteilung: Client oder Server Thin- / Thick Client? Wieviel soll der Client machen? ◆ Präsentation ◆ Anwendungsfunktionalität ● Was sind die Aufgaben des Servers? ◆ Datenverwaltung ◆ Anwendungsfunktionalität ● Client Data Presentation IS-K2001 Server Access Functionality Data Management Architektur - 18 Relation Server Client sendet ◆ SQL Queries oder Updates ◆ Stored-ProceduresAufrufe ● Server sendet ◆ Tabellen als Menge von Ergebnis-Tupeln ◆ Einfache Werte ● ● Application Query Language Interface Communications Manager SQL Query Result Table ◆ ◆ ◆ ◆ Procedure Call Result Return Communications Manager Query Optimizer Beispiele: ◆ Programmatic Interface ... Index Manager Oracle Sybase DB2 Informix ...relationale DBMS Stored Procedure Transaction Manager Page Cache Manager Database Database Architektur - 19 IS-K2001 Object Server Client sendet ◆ Objekt IDs ◆ Methodenaufrufe ● Server liefert ◆ Angefordertes Objekt ◆ Ergebnis des Methodenaufruf ● Application Query Language Interface Object Browser Programmatic Interface (Proxy) Object Manager Method Call Objects Result Return Object Manager ● Beispiele: Gemstone ◆ Ontos ◆ Versant ◆ Query Optimizer Index Manager Transaction Manager Page Cache Manager Database IS-K2001 Architektur - 20 Page Server Client sendet ◆ Seitennummer ● Server ◆ gibt Seite zurück ● Application Query Interface & Optimizer Object Browser Object Manager Index Manager ● ● Programmatic Interface Die eigentliche DBMS-Arbeit findet daher im Client statt. Im Server verbleibt “nur” die Transaktionsverwaltung (zwangsläufig auf der Seitenebene) und die Pufferverwaltung. Transaction Manager Page Cache Manager Pages Transaction Manager Page Cache Manager Database Database Beispiel: ◆ O2 ◆ Objectstore Architektur - 21 IS-K2001 Thin-Client ● Client nur GUI, Anwendungslogik im Server ◆ Stored Procedures (Sybase, MS SQL) ◆ PL/SQL Packages (Oracle) ◆ C-Funktionen auf dem Server ◆ Java im Server (Sybase Adaptive Server) ● Besonderheiten: (+) Anwendungslogik kann zwischen vielen verschiedenen Clients geteilt werden (+) Änderung der Anwendungslogik gilt für alle Clients (-) dauerhafte Serververbindung notwendig (-) viele Resourcen im Server notwendig IS-K2001 Architektur - 22 Thick-Client ● Anwendungslogik im Client ◆ Embedded ◆ Java ● SQL Client Besonderheiten: (-) Alle Clients müssen ausgetauscht werden, wenn sich die Anwendungslogik ändert (+) Client kann unter Umständen „offline“ benutzt werden (grosser lokaler Cache) (-) viele Resourcen im Client sind nötig (-) Netzauslastung unter Umständen viel grösser Architektur - 23 IS-K2001 8.4 Drei-/Mehr-Stufen Architektur ● Bindeglied zwischen vielen verschiedenen Clients und vielen unterschiedlichen Servern. Query Client Web Application Application Browser Client1 Clientn Mobile Client Middleware DBMS Server IS-K2001 Object Server Multimedia Document Server Server Web Server Architektur - 24 “Three-Tier Architecture”: Client/Server/Middleware ◆ Middleware: Software-Schicht in der Mitte zwischen – Betriebssystem /Kommunikation und Anwendungsprogramm – zwischen Clients und Server Middleware Frameworks Client Program Server Program Middleware Services Communication Middleware Operating System and Network Software Operating System and Network Software Operating System and Network Software Computer and Network Hardware Computer and Network Hardware Computer and Network Hardware Architektur - 25 IS-K2001 Middleware Services nach [Bernstein96] Presentation mask and forms processing, printer management, hypermedia connections, multimedia preparation Computation sorting, math. computations, internationalization, data format conversion, time management Information Management directories, log manager, file and record manager, relational / objectoriented database management, repository manager Communication remote procedure call, peer-to-peer messaging, message queuing, electronic mail, electronic data exchange Process Management thread manager, transaction processing, resource broker, request broker, job scheduler System Management event notification, configuration management, software installation, failure management, error detection, recovery coordination, authentication, encryption, access control IS-K2001 Architektur - 26 Beispiel 3-Tier ● WWW mit Datenbankanbindung ◆ DEMO: SBB Fahrplan-Datenbank ◆ http://www.sbb.ch Web Browser O M E D Client Server WWW Server Client Server ORACLE Datenbank(en) Allgemein: ● SAP ● TP Monitore ● Web Server Architektur - 27 IS-K2001 Beispiel Middleware Architektur ● SBB Datenbank Architektur Web Browser TCP/IP Client Library Betriebsystem Client Server Middleware Betriebsystem TCP/IP Server Library DB Server WEB Server DB Client Library DB Server Library Betriebsystem Betriebsystem Client IS-K2001 Server Architektur - 28 Literaturverzeichnis ● R. Orfali, D. Harkey, J. Edwards: Client / Server Survival Guide. John Wiley, 1999, 3. Auflage. W.-R. Hansen: Client/Server Architektur, Addison-Wesley, 1993 ● J. Gray, A. Reuter: Transaction Processing: Concepts and Techniques, Academic Press, 1992 ● J.L. Hennessy, D.A. Patterson: Computer Architecture. A Quantitative Approach, Morgan Kaufmann Pub., 1995 ● P.A. Bernstein: Middleware: A Model for Distributed System ● Services. Communications of the ACM, Vol. 39, No. 2, February 1996 ● OMG. CORBA: The Common Object Request Broker Architecture. Revision 2.0, July 1995 ● Oracle, Sybase, MS SQL Server, Informix, DB2 Manuals IS-K2001 Architektur - 29