Kap. 7 IS-Infrastruktur: Zusammenfassung In Teil I haben wir verschiedene Middleware-Lösungen zur Entwicklung (komplexer), verteilter Informationssysteme kennengelernt Wir haben Middleware eingeführt als „Basisdienste zur Unterstützung der Entwicklung und Ausführung von Anwendungen mit dem Ziel der Trennung von Infrastruktur-Funktionalität und Anwendungsfunktionalität“ Wie gut wird dieses Ziel von den unterschiedlichen Middleware-Lösungen unterstützt (am Beispiel von Transaktionsgarantien)? • Fat Clients: SQL-Middleware (ESQL, CLI) – Sehr rudimentäre Transaktionsunterstützung – Koordination verteilter Transaktionen (2PC) muss vom Entwickler selbst • • ausprogrammiert werden Fat Servers: TP-Lite – Gut geeignet, falls keine Verteilung berücksichtigt werden muss. – Ansonsten: Aufrufhierarchie von Prozeduren muss bekannt sein, damit eine äussere Transaktionsklammer gesetzt werden kann (siehe Übung 1) TP-Monitore – Auf prozedurale Anwendungsentwicklung beschränkt. – Gute Unterstützung verteilter Transaktionen, unter Verwendung spezieller APIs (siehe X/Open) Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 1 ... Zusammenfassung • • • • DOM/CORBA – Ebenfalls gute Unterstützung verteilter Transaktionen (OTS) – Jedoch: explizites Erzeugen und Weitergeben des Transaktionskontextes Objekt-Transaktions-Monitore: COM+ – Explizites Setzen des Transaktionskontexts und deklarative Spezifikation durch Deployment möglich. Objekt-Transaktions-Monitore: EJB – Mächtige Unterstützung deklarativer Spezifikation durch Deployment. – Setzt den Middleware-Anspruch der Trennung von InfrastrukturFunktionalität und Anwendungsfunktionalität sehr gut um – Nachteil: komplexe Systeme, fehlende Übersicht, ob die Anwendung auch wirklich in der vom Entwickler gewollten Semantik angewandt wird (Deployment) MOM / Persistent Queues / Queued Transactions – Grösserer Aufwand, verteilte Transaktionen zu implementieren, da Kombination von drei unabhängigen Transaktionen erfordert (Zusatzaufwand vor allem bei der Recovery). – Gewinn ist jedoch die stärkere Entkopplung einzelner Komponenten. Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 2 Transaktionsunterstützung (nach OHE99) Feature Ordinary Queues, RPCs, ORBs, Publish-and-Subscribe, and Conversational Communications Transactional Queues, RPCs, ORBs, Publish-and-Subscribe, and Conversational Communications Participants Loosely-coupled client/server programs Transactionally bound client/server and server/server programs. The message invocation causes the recipient program to join the transaction Commit synchronization No Yes Only-once semantics No Yes Server management on the recipient node No. It’s just a delivery mechanism. (ORBs provide minimal server management.) Yes. The process that receives the message is started , load balanced, monitored, and tracked as part of the transaction. Load balancing Using the directory services. The first server to register becomes a hotspot. No dynamic load balancing is provided. Uses the TP Monitor’s sophisticated loadbalancing algorithms. Can spread work across multiple machines and dynamically add more processes to cover hotspot of activity. Several servers can read from same queue Supervised exchanges No. Exchanges are simply between the client and the server. The exchanges are transient. No crash recovery or error management is provided. You’re on your own. The TP Monitor supervises the entire exchange, restarts communication links, redirects messages to an alternate server process if the first one gets hung, performs retries, and provides persistent queues and crash recovery. Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 3 Die Ideale Middleware ? Und welches ist jetzt die ideale Middleware-Lösung? Die gibt es nicht! • Alle Ansätze sind sehr gut geeignet für bestimmte, (teilweise eng eingegrenzte) Probleme • Middleware-Funktionalität der vorgestellten Lösungen bzw. Produkte verschmilzt immer mehr, d.h. Systeme verbinden immer mehr die Vorteile der unterschiedlichen Ansätze („Best-of-breed“) Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 4 Beispiel: TP-Lite oder TP-Heavy? Dies war eine aktive Diskussion vor wenigen Jahren! Es ist aber zu erwarten, dass die Unterschiede verschwinden. DBMS-Hersteller werden eine TP-Monitor-ähnliche (Middleware)-Schicht anbieten (siehe auch die Entwicklung hin zu multiplen, asymmetrischen DBMS-Servern) TP-Lite TP-Heavy 20 TPS 200 Clients Informix DB Engine 80 TPS Informix DB Engine 1000 Clients 200 Dedicated Pipes TP Monitor 24 Shared Pipes Vergleich nach Orfali/Harkey/Edwards: “Client/Server Survival Guide” Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 5 Beispiel OTS: Integration der einzelnen Middleware-Komponenten Objekt-Transaktionsmonitore = Objekte + Transaktionen + Messages • • Integrieren die wesentlichen Infrastruktur-Komponenten, die wir in Teil I der Vorlesung kennen gelernt haben Zusätzlich: Vereinfachung der Entwicklung komplexer Systeme – Von der expliziten Programmierung – Hin zu „Assembly“ und „Deployment“ « EJB Objektverwaltung höherer Ordnung (OHO) – SS 2002 Transaktionen Messages Objekte Kapitel 7: Zusammenfassung Teil I. – 6 Einschub: TPC-C-Benchmark System-Performance mit OLTP-Workload • • • • • • Simultane Ausführung einer Mischung aus lese- und schreibintensiven Transaktionen Viele konkurrierende Benutzer On-line und asynchrone Ausführungen Normaler CPU load, aber starker Disk-I/O ACID Eigenschaften 4.0: referential integrity Metrik: transactions-per-minute-C (tpmC4) • • Anzahl der “orders” bearbeitet pro Minute “business throughput” Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 7 TPC-C-Schema Remote-W. W * 10 10 Warehouse W 10 100k History remote warehouse is new in TPC-C version 4.x W * 30k+ 3k + 1+ W * 30k W * 100k Arrows: foreign-key relationships; arrow points to primary key Numbers on arrows: relationship cardinality ‘+’ symbol: indicates variations in sizes Objektverwaltung höherer Ordnung (OHO) – SS 2002 3k Customer Stock Legend Numbers in boxes: table cardinality (# of rows) District W * 10 3k + 3+ W OrderLine W*2700k+ 15 - 45 Order W * 90k+ Item 100k 0-1 NewOrder W * 9k+ Kapitel 7: Zusammenfassung Teil I. – 8 TPC-C-Transactions 10/23 10/23 1/23 1/23 1/23 Customer-Inquiry New-Order Customer-Inquiry Payment Customer-Inquiry Order-Info. 1 Select txn from menu: 1. New-Order 2. Payment 3. Order-Status 4. Delivery 5. Stock-Level 45% 43% 4% 4% 4% 2 Customer-Inquiry Input screen 3 Stock-Info. Emulierter Benutzer wählt zufällig eine Transaktion aus Delivery-Transaktion läuft asynchron (als Batch) Vorgegebene Verteilung Output screen Go back to 1 fl 80:20 read-write (TPC-C 3.x: 60:40) Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 9 Typische TPC-C-Konfiguration Hardware Emulated User Load Driver System Presentation Services Term. LAN Client Software C/S LAN Database Server ... Response Time measured here RTE, e.g.: Empower preVue LoadRunner Database Functions TPC-C application + TP-Monitor and/or database RPC library e.g., Tuxedo, ODBC Objektverwaltung höherer Ordnung (OHO) – SS 2002 TPC-C application (stored procedures) + Database engine + TP-Monitor e.g., SQL Server, Tuxedo Kapitel 7: Zusammenfassung Teil I. – 10 TPC-C-Konfiguration: Hardware Server: 32 Knoten Je: 8 x 900MHz CPU 1GB RAM 5 Disk Arrays 110 Disks Clients: 64 Proliant 800Mhz PCs 2 CPUs, 512MB Insgesammt: 256 CPUs 3520 Disks (60TB Storage) Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 11 TPC-C-Benchmark Ergebnisse Systemkosten: $10.603.803 tpmC 709.220,08 oder $14.96 pro Tx Benutzer: 576.000 Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 12 TPC-C Benchmarkresultate nach Performance Cluster Rank Company System TpmC $/tpmC Database TP-Monitor OS 1 HP ProLiant DL760-900-256P 709’220 14.96 $ Microsoft SQL Server 2000 Microsoft COM+ Windows 2000 X 2 IBM e-xSeries 370 c/s 688’220 22.58 $ Microsoft SQL Server 2000 Microsoft COM+ Windows 2000 X 3 HP ProLiant DL760-900-192P 567’882 14.04 $ Microsoft SQL Server 2000 Microsoft COM+ Windows 2000 X 4 Fujitsu PRIMEPOWER 2000 c/s w 66 Front-Ends 455’818 28,58 $ SymfoWARE Server Enterp. Ed. BEA Tuxedo 6.5 Sun Solaris 8 5 IBM e-xSeries 370 c/s 440’879 19.35 $ IBM DB2 UDB 7.1 Microsoft COM+ Windows 2000 X 6 HP ProLiant DL760-900-128P 410’769 13.02 $ Microsoft SQL Server 2000 Microsoft COM+ Windows 2000 X 7 HP HP 9000 Superdome Enterprise Server 389’434 21.24 $ Oracle 9i Database Enterprise Edition BEA Tuxedo 6.4 HP UX 11.i 64-bit 8 IBM e-xSeries 370 c/s 363’129 21.80 $ Microsoft SQL Server 2000 Microsoft COM+ Windows 2000 9 HP Compaq Alpha Server GS320 230’533 44.62 $ Oracle 9i Database Enterprise Edition Compaq DB Web Connector V1.1 Compaq Tru64 UNIX 5.1 10 Fujitsu PRIMEPOWER 2000 c/s w /32 Front Ends 222’772 43.42 $ SymfoWARE Server Enterp. Ed. VLM 3.0 BEA Tuxedo 6.4 Sun Solaris 8 X Stand: 05/2002, Quelle: Transaction Processing Performance Council, http://www.tpc.org Objektverwaltung höherer Ordnung (OHO) – SS 2002 Kapitel 7: Zusammenfassung Teil I. – 13 Gegenüberstellung der vorgestellten Systeme Kriterium Plattformunabhängigkeit Herstellerunabhängigkeit Flexibilität / Deployment / WORA Komplexität Programmierung Deklarative Transaktionen Deklarative Persistenz Verteilungstransparenz Synchrone / asynchrone Komm. Skalierbarkeit Stabilität Investitionssicherheit ORACLE TUXEDO CORBA COM+ ++ + + + o +/++ ++ Objektverwaltung höherer Ordnung (OHO) – SS 2002 + o -o + +/+ + + o ++ ++ o + o o + +/+ o + o + + + + + +/+ + o o EJB ++ + ++ ++ ++ ++ + +/+ o o o Kapitel 7: Zusammenfassung Teil I. – 14