2 Folien/Seite
Transcrição
2 Folien/Seite
4. Architekturen und Systemmodelle • Überblick 4.1 4.2 4.3 4.4 Grundlegende Architektur- und Systemmodelle Client/Server-Modell Erweiterte Client/Server-Systeme Gleichrangige Prozesse (Peer Processes) O. Kao Webbasierte Informationssysteme 4-1 4.1 Grundlegende Architekturund Systemmodelle • Architekturmodell eines webbasierten Systems Aus welchen Bestandteilen besteht das System? Wie sehen die Beziehungen zwischen den Bestandteilen aus? Variationen entstehend beispielsweise durch Replikation, Caching, Verwendung mobiler Codes, Ad-hoc-Kommunikation, … • Grundlegende Systemmodelle liefern eine formale Beschreibung der Eigenschaften, die allen Architekturmodellen gemeinsam sind Interaktionsmodell Fehlermodell Sicherheitsmodell • Jedes Modell (Interaktionsmodell, Fehlermodell, Sicherheitsmodell) liefert eine abstrakte, vereinfachte und konsistente Beschreibung des Systems O. Kao Webbasierte Informationssysteme 4-2 Übersicht über Architekturmodelle • Aufteilung der Verantwortlichkeiten zwischen Systemkomponenten (Anwendungen, Server, andere Prozesse) ist ein offensichtlicher Aspekt beim Entwurf webbasierter Systeme • Klassifikation bzgl. Platzierung von Prozessen Client/Server-Modell: asymmetrisch, einfach, am häufigsten eingesetzt Dienste, die von mehreren Servern bereitgestellt werden Replikation eines Dienstes auf mehreren Servern Erweiterte Elemente eines Client/Server-Systems, z.B. Proxy-Server Peer-Prozesse (Gleichrangige Prozesse) Symmetrisches Modell ⇒ keine Unterscheidung zwischen Client und Server Alle Prozesse haben ähnliche Rollen und arbeiten zusammen zur verteilten Lösung eines Problems O. Kao Webbasierte Informationssysteme 4-3 4.2 Client/Server-Modell • Gliederung in zwei logische Teile Ein oder mehrere Clients: Nehmen Dienste oder Daten des Servers nach einer Anforderung in Anspruch Server: stellt Dienste oder Daten zur Verfügung ⇒ Client und Server sind zwei Ausführungspfade oder –einheiten mit Interaktion nach dem Muster Erzeuger/Verbraucher • Clients sind auslösende Elemente, d.h. sie können zu jedem beliebigen Zeitpunkt eine Anfrage starten • Server sind reagierende Elemente Client Aufruf Ergebnis Client Aufruf Server Ergebnis Prozess: O. Kao Server Webbasierte Informationssysteme Rechner: 4-4 Zwei- und DreischichtenModelle • Grundkomponenten einer verteilten Anwendung Benutzungsoberfläche Benutzungsinterface Verarbeitung oder Anwendungslogik Datenmanagement Persistente Datenspeicherung • Einfache Verteilung dieser Komponenten in Server und Client, d.h. in zwei Stufen (Two Tier Model) • Dreischichtenmodell (Three Tier Model) Clients (Präsentationsschicht) Anwendungs- und Verarbeitungsserver Datenbankserver O. Kao Webbasierte Informationssysteme 4-5 Schicht 1 Schicht 2 Grafische Darstellung: Two Tier vs. Three Tier Verarbeitung: Web Server O. Kao Webbasierte Informationssysteme Schicht 3 Präsentation: Web Browser Verarbeitung: Web Server+Datenbank Schicht 2 Schicht 1 Präsentation: Web Browser Speicherung: Datenbank 4-6 Nachteile konventioneller Client/Server-Konstrukte • • • • Ausfallsicherheit: Serverausfall nicht zu kompensieren Leistungsprobleme: Server als Engpass bei steigendem Volumen Mögliche Lösung 1: Leistungsfähigkeit des Servers erhöhen Mögliche Lösung 2: Erweiterte Client/Server-Systeme, d.h. Implementierung von Diensten als mehrere Server-Prozesse in separaten Rechnern Partitionierung: Jeder Server verwaltet einen Teil der Information Beispiel: Web-Server mit unterschiedlichen Websites Replikation: Verteilung von konsistenten Datenmengen auf mehreren unabhängigen Rechnern Beispiel: Abbildung des Suchindexes auf mehreren Webservern, die unter der gleichen Adresse erreichbar sind Bei Bedarf ⇒ Zusammenarbeit zur Bereitstellung von Diensten, z.B. Client-Server-Server-Systeme O. Kao Webbasierte Informationssysteme 4-7 4.3 Erweiterte Client/ServerSysteme • Aufbau von Client/Server-Ketten Rekursiv: Der aktuelle Server reicht einen Teil der Anforderung an einen weiteren Server und bekommt dann die Ergebnisse zurück Transitiv: Der Client bekommt die Antwort von dem letzten Server in der Kette, nicht von dem, an den die Anforderung gerichtet war • Klassifikation bzgl. der Funktionalität der dazwischen liegenden Elemente bei Client-Server-Server-Systemen Proxy: Stellvertreter für mehrere Server Broker: Vermittlung zwischen mehreren Clients und mehreren Servern Trader: Sucht aus einer Menge ihm bekannter Server denjenigen heraus, der für die gestellte Anforderung am besten geeignet ist Balancer: Verteilung der Arbeitslast verursacht durch die aktuellen Clientanforderungen gleichmäßig über die vorhandenen Server Agent: Koordiniert mehrere Serveranfragen für den steuernden Client O. Kao Webbasierte Informationssysteme 4-8 Balancer und Proxy • Balancer Mehrere identische – in der Regel replizierte – Server stehen zur Verfügung Balancer überprüft laufend die Auslastung der Teilelemente und wertet die Last durch die ankommenden Anfragen aus Die Anforderungen werden so verteilt, dass die Antwortzeit minimiert wird und alle Server im Verbund etwa gleichzeitig ausgelastet sind • Proxy: Häufigste Ausprägung als gemeinsamer Cacheverwalter für mehrere Clients Proxy fängt die Clientanforderungen an und versucht diese sofort – z.B. aus dem Cache – zu bedienen Falls nicht möglich, leitet er die Anfragen an den Server weiter und leitet die Rückantwort zurück Serverantworten werden zwischengespeichert und stehen den anderen Clients zur Verfügung O. Kao Webbasierte Informationssysteme 4-9 Proxy-Server und Caches • Proxy-Konzept bei Webbrowsern Inhalte, auf denen eine Gruppe von Benutzern / Anwendungen zugegriffen hat Mit spezieller HTTP-Anforderung und Mitarbeit des Originalservers wird die Aktualität des Caches überprüft Installation von Proxies reduziert die Anfragelast auf die Webserver und verringert unnötige Netzwerkkommunikation Web server Client Proxy server Web server Client O. Kao Webbasierte Informationssysteme 4-10 Broker • Ermöglicht den Clients Zugriff auf geeignete Dienste ohne dass diese die Adresse der entsprechenden Dienste kennen müssen Alle Server im Verbund registrieren ihre angebotenen Dienste beim Broker Broker ermittelt den passenden Server und liefert die Clientanfragen an den Server Übermittelt die Servereigenschaften an die Clients Vorteile: Orts- und Migrationstransparenz Nachteile eines zentralen Brokers: Engpass, mangelnde Ausfallsicherheit Replikation – im Extremfall ein Broker pro Client – führt zu aufwendigen Prozessen zur Erhaltung der Datenkonsistenz est ed Requ d r a w r o 2. F 1. Client Request Client Broker 4. Forwarded Reply Reply 3. Server Server Server Server Server O. Kao Webbasierte Informationssysteme 4-11 Klassifikation von Brokern, Trader und Agenten • Klassifikation von Brokern Forwarding Broker: Übermittelt sowohl die Anforderung als auch die Antwort Separater oder handle-driven Broker: Übermittelt dem Client alle notwendigen Informationen (Name, Adresse, Anforderungsformat) des gewünschten Servers, so dass der Client direkt mit dem Server in Kontakt treten kann • Trader Stehen mehrere Server in unterschiedlicher Qualitäten für ein und denselben Dienst zur Verfügung, dann sucht der Trader aufgrund der Clientspezifikation den passenden Dienst heraus • Agenten Ablaufplaner und –abwickler für komplexe Serviceleistungen Anforderung wird in mehrere Teile zerlegt, an unterschiedliche Server übermittelt und die Antworten zu einer Rückantwort zusammengefasst O. Kao Webbasierte Informationssysteme 4-12 Mobiler Code • Ablauf 1. Client fordert Code vom Server an 2. Code wird von einem Server zum Client übertragen 3. Code wird auf dem Client ausgeführt • Vorteil der lokalen Ausführung Kurze Antwortzeiten bei Interaktion, da keine Netzwerkkommunikation mehr notwendig • Nachteile Der Appletcode wird üblicherweise auf unterschiedlichen Architekturen interpretiert ⇒ geringe Leistungsausnutzung, langsame Ausführung Sicherheitsprobleme 3 2 Service 1 zw Net erk Server Applet Client Desktop Server O. Kao Webbasierte Informationssysteme 4-13 4.4 Gleichrangige Prozesse (Peer Processes) • Gleichrangige Prozesse sind verantwortlich für die Konsistenz der Ressourcen auf Anwendungsebene Synchronisation der Aktivitäten auf Anwendungsebene • Verzicht auf Server-Prozesse reduziert die Kommunikationsverzögerungen zwischen Prozessen beim Zugriff auf lokale Objekte • Beispiele File-Sharing-Systeme: Jedes System teilt den anderen Peer-Prozessen, welche Dateien zur Verfügung stehen Whiteboards: Ein Bild ist für alle Teilnehmer sichtbar, Änderungen werden durch Gruppenkommunikation allen mitgeteilt O. Kao Anw. 2 Anw. 1 Webbasierte Informationssysteme Anw. 3 4-14 Peer-to-Peer-Systeme • Häufige Nutzung: File-Sharing. Notwendige Schlüsselaufgaben Lookup Mechanismus: Wo befinden sich passende Daten? Dezentralisierte Speicherung und Übertragung der geforderten Daten • Erstes Beispiel eines solchen Systems: NAPSTER Lookup durch zentralen Server Transfer durch direkte Verbindung (Peer-to-Peer) Allgemeine Napster Eigenschaften Einfaches Protokoll mit ca. 30 Befehlen, das auf TCP/IP aufsetzt Kontrolle durch zentrale Server Ursprünglich Beschränkung auf mp3-Files NAPSTER-Server Verwaltung der Metadaten (z.B. Username, Passwort) Indizierung aller verfügbaren Dateien (shared files) Verarbeitung der Suchanfragen von Benutzern NAPSTER-Clients Download direkt von Client zu Client (Peer-to-Peer) O. Kao Webbasierte Informationssysteme 4-15 Napster - Prinzip Transfer Client Suche Client Registrierung NAPSTERServer Login Client O. Kao Webbasierte Informationssysteme NAPSTERMetaserver 4-16 Beispiel für Peer-to-Peer: Gnutella • Wichtiger Architekturnachteil von Napster: Zentraler Server • Auswirkungen Single point of failure Verlangsamung des Diensts Anfällig für DoS-Angriffe • Modifizierte Architektur beim Konzept Gnutella Knoten sind Servents (sowohl SERVer als auch cliENT) Lookup und Transfer nur über Servents (echtes Peer-to-Peer) Gnutella ist ein Protokoll mit folgenden Eigenschaften Setzt auf TCP/IP auf Benötigt keinen zentralen Server Diverse Clients (Gnutella-Client, LimeWire, … ) für verschiedene Plattformen ⇒ Dezentralisiertes Peer-to-Peer File-Sharing-System O. Kao Webbasierte Informationssysteme 4-17 Gnutella - Prinzip Servent Transfer Ping, Pong, Query, … Servent Servent Servent Servent Servent Servent O. Kao Webbasierte Informationssysteme 4-18 Gnutella - Protokoll • • Verbindung: CONNECT Paket wird mit OK Paket bestätigt Kommunikation mittels eigener Pakete (Deskriptoren) Feld Bytes Bedeutung ID 16 Zufällige Zahl zur Unterscheidung der Pakete Deskriptor 1 Art des Pakets: Ping, Pong, Query, Query_Hit, Push TTL 1 Time To Live (Zahl der max. Weiterleitungen) Hops 1 Zahl der bereits erfolgten Weiterleitungen Länge 3 Länge des „Payloads“ • Gnutella-Regeln 1. Weiterleitung eines Deskriptors ⇒ Erhöhung der Hopszahl um 1 2. Ist Hops=TTL (Time To Live) so wird der Deskriptor verworfen (Standard für TTL ist 7) 3. Hat ein Deskriptor identische IDs und identische Payloads zu einem vorherigen, so wird dieser verworfen O. Kao Webbasierte Informationssysteme 4-19 Gnutella Elemente: PING, PONG, QUERY, QUERY_HIT, PUSH • PING Durchsucht das Netzwerk nach Servents, erstellt neue Verbindungen Versendung mittels Broadcast mit maximal 4 Verbindungen pro Servent • PONG (PING_RESPONSE) Wegermittlung mittels Deskriptor-ID und Verbindungs-ID Versendung nur zum direkten Vorgänger • QUERY Anonyme Dateisuche, überträgt Suchstring und Mindestgeschwindigkeit Weiterleitung durch Broadcast bei Nichtbeantwortung • QUERY_HIT: Antwort auf QUERY Wird verschickt, falls die gesuchte Datei lokal vorhanden • PUSH Einsatz, wenn HTTP_REQUEST des Dateitransfers fehlschlägt (TimeOut) Rollentausch von Sender und Empfänger bei Dateitransfers via HTTP Nutzlos wenn beide Transferteilnehmer Firewalls benutzen O. Kao Webbasierte Informationssysteme 4-20 Gnutella - Ablauf QUERY user QUERY_HIT TRANSFER user user user user user er us er us user us er us er er us er us O. Kao Webbasierte Informationssysteme 4-21 Zusammenfassung Gnutella • Unstrukturierte Datenverteilung Nachteilig bei Suchanfragen Gut für Stabilität und Netzwerkbelastung • Probleme bei Herstellung der ersten Verbindung • Skalierungsproblem Schneeballprinzip/Flooding verursacht zu viel Verkehr Begrenzter Suchraum durch maximale Anzahl der Hops Auf eine Anfrage kommen noch 3 Überflüssige Nachrichten durch mögliche Zyklen Datenpakete Hoher Traffic überlastet Teilnehmer mit niedriger Bandbreite Durchschnittlich 3 Verbindungen pro Servent 30 Bytes pro Nachricht, wegen TCP/IP Nutzung 70 Bytes NAQR = 10 Pakete/s Queryanteil ca. ¼ des Gesamtaufwandes ⇒3 x 70 x 10 x 4 = 8400 Bytes/s bzw. 67,2 KBit/s > 56KBit/s O. Kao Webbasierte Informationssysteme 4-22