Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Grundlagen von Client/Server Systemen.

Ähnliche Präsentationen


Präsentation zum Thema: "WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Grundlagen von Client/Server Systemen."—  Präsentation transkript:

1 WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Grundlagen von Client/Server Systemen

2 WS06/07Prof. Dr. Andreas Schmietendorf2 Grundlagen von Client/Server- Systemen Grundlegendes zum Client-Server Prinzip Grundlagen verteilter Systeme Begriff der Verteilungstransparenz Kommunikation in verteilten Systemen Mehrschichtige C/S-Anwendungen Transaktionssicherheit Kriterien zur Technologieauswahl

3 WS06/07Prof. Dr. Andreas Schmietendorf3 Grundlegendes zum Client/Server-Prinzip

4 WS06/07Prof. Dr. Andreas Schmietendorf4 Client (Kunde bzw. Auftraggeber) -Fordert von einem Server eine bestimmte Dienstleistung an -Wartet auf eine entsprechende Antwort Server (Diensterbringer) -Komponente die Aufträge von Clients entgegennimmt -Bearbeitet die Aufträge entsprechend einer def. Logik -Sendet die Antwort an den Client zurück Client-Server-Prinzip

5 WS06/07Prof. Dr. Andreas Schmietendorf5 Problem der Synchronisation zwischen Client & Server Client (Programm um Serververbindungen aufzubauen) -Übernimmt den aktiven Teil des Verbindungsaufbaus -Bestimmt den Zeitpunkt des Verbindungsaufbaus -Häufig Benutzerprogramme um Dienste des Servers zugänglich zu machen (aber auch Systemprogramme) Server (häufig auch als daemon-Prozess bezeichnet) -Häufig als Endlosschleife implementiert -Wartet auf eingehende Verbindungsanforderung Client-Server-Prinzip

6 WS06/07Prof. Dr. Andreas Schmietendorf6 Nebenläufiger Server -Erzeugt für jeden Client einen neuen Prozess -Genutzt bei langer und unbestimmter Verarbeitungszeit -z.B. FTP oder HTTP-Server Iterativer Server -Können nur eine Anfrage zur selben Zeit beantworten -Insbesondere bei Diensten mit kurzer Verarbeitungszeit -z.B. Time Server Klassen von Servern I

7 WS06/07Prof. Dr. Andreas Schmietendorf7 Verbindungsorientierter Server (synchron) -Datenaustausch läuft in 3 Phasen: Verbindungsaufbau, Datentransfer und Verbindungsabbau -Rückmeldung über Erfolg bzw. Mißerfolg -Vorteil: Sicherheit der Datenübertragung Verbindungsloser Server (asynchron) -Versendung in sich abgeschlossener Datenpakete -Keine Signalisierung der Empfangsbereitschaft -Keine Empfangsbestätigung -Vorteil: höhere Übertragungsgeschwindigkeit Klassen von Servern II

8 WS06/07Prof. Dr. Andreas Schmietendorf8 Zustandsbehafteter Server -Speichert Informationen über Interaktionen mit dem Client -Vorteil: höhere erreichbare Effizienz -z.B.: Datenbankserver Zustandsloser Server -Keine Speicherung von Informationen -Vorteil: Datenübertragung ist sicherer -z.B.: HTTP Webserver Klassen von Servern III

9 WS06/07Prof. Dr. Andreas Schmietendorf9 Server unter WindowsXP

10 WS06/07Prof. Dr. Andreas Schmietendorf10 Grundlagen verteilter Systeme

11 WS06/07Prof. Dr. Andreas Schmietendorf11 Unternehmensarchitekturen

12 WS06/07Prof. Dr. Andreas Schmietendorf12 Ein verteiltes System ist eine Menge autonomer Rechner (keine zentrale Steuerung), die gekoppelt sind, über Nachrichten miteinander kommunizieren und damit verteilte Anwendungen ermöglichen. Die Kommunikation sollte über offene wohl definierte Schnittstellen erfolgen. Der Verteilungsaspekt sollte für die Benutzer des Systems möglichst transparent sein. Definition und Abgrenzung

13 WS06/07Prof. Dr. Andreas Schmietendorf13 Gemeinsame Nutzung von Daten - z.B. verteiltes Dateisystem -Fehlertoleranz durch Replikation der Daten einer Datenbank Gemeinsame Nutzung von Funktionen - z.B. , Terminkalender, (Funktionsmodell) Gemeinsame Nutzung von Rechenleistung (z.B. Grids) Gemeinsame Nutzung von Geräten (z.B. Drucker) Gegenstand einer Verteilung

14 WS06/07Prof. Dr. Andreas Schmietendorf14 Parallele und verteilte Aktivitäten - Notwendigkeit der Koordination und Synchronisation -Separierung der Verantwortlichkeiten zwischen C/S-Komponenten Kein gemeinsamer Speicher -Interaktion durch Nachrichtenaustausch -Services warten passiv auf eingehende Anforderungen Aufbau sehr großer Systeme -Quantität erfordert neue Qualitäten -Umgang mit veränderten Anforderungen (z.B. Anzahl der Clients) Charakteristik verteilter Systeme I

15 WS06/07Prof. Dr. Andreas Schmietendorf15 Fehler- und Ausfallwahrscheinlichkeit -Problem der Fehlertoleranz -Umgang mit Ausnahmesituationen Heterogene Hard- und Software-Komponenten -Bedarf einer standardisierten Vernetzung -Bedarf an Schnittstellen-Standard Gemeinsame Nutzung von Betriebsmittels -Daten, Funktionen, Geräte, … -Berücksichtigung sicherheitsrelevanter Aspekte Charakteristik verteilter Systeme II

16 WS06/07Prof. Dr. Andreas Schmietendorf16 Begriff der Verteilungstransparenz & Vor- und Nachteile verteilter Systeme

17 WS06/07Prof. Dr. Andreas Schmietendorf17 Da die Nutzung verteilter Systeme in der Regel komplizierter ist als die Nutzung eines einzelnen Rechners, wurden auf unterschiedlichen Ebenen (Nutzerebene, Programmierebene, Netzwerkebene, …) Mechanismen eingeführt, die den Aspekt der Verteilung verbergen. Ein verteiltes System erscheint auf dieser Grundlage wie ein zentrales System. In diesem Zusammenhang wird auch von Verteilungstransparenz gesprochen. Verteilungstransparenz I Quelle: Oechsle, R.: Verteilte Systeme, in Taschenbuch der Informatik, Fachbuchverlag Leipzig

18 WS06/07Prof. Dr. Andreas Schmietendorf18 Transparency of location: The server is a process that can reside on the same machine as the client or on a different machine across a network. Client/server software usually masks the location of the server from the clients by redirecting the service calls when needed. A program can be a client, a server, or both. Verteilungstransparenz II Quelle: Orfali, R. et al.: The Essential Client/Server Survival Guide – Second Edition, John Wiley & Sons, New York 1996

19 WS06/07Prof. Dr. Andreas Schmietendorf19 Zugriffstransparenz - der Zugriff auf lokale und entfernte Ressourcen erfolgt in der gleichen Art und Weise. Ortstransparenz – der Zugriff auf Ressourcen ist ohne Kenntnis des Orts, an dem sich diese befinden, möglich. Namenstransparenz - konsistente Verwendung von Namen innerhalb des gesamten verteilten Systems. Skalierungstransparenz - einfacher Erweiterbarkeit des Systems ohne Auswirkungen auf die Gesamtstruktur. Arten der Verteilungstransparenz I Quelle: Oechsle, R.: Verteilte Systeme, in Taschenbuch der Informatik, Fachbuchverlag Leipzig

20 WS06/07Prof. Dr. Andreas Schmietendorf20 Replikationstransparenz – Erhöhung der Verfügbarkeit und Fehlertoleranz durch gezielte Redundanz Nebenläufigkeitstransparenz - Parallele Prozesse und Benutzer arbeiten ohne gegenseitige Beeinflussung Ausführungstransparenz - gegenüber dem Benutzer bleibt der Ort einer Serviceausführung verborgen. Ggf. besteht sogar die Möglichkeit einer Prozess-Migration. Arten der Verteilungstransparenz II Quelle: Oechsle, R.: Verteilte Systeme, in Taschenbuch der Informatik, Fachbuchverlag Leipzig

21 WS06/07Prof. Dr. Andreas Schmietendorf21 Kostenreduktion Lokale Kontrolle und Verfügbarkeit Maßgeschneiderte Konfiguration Leichte Erweiterbarkeit Ausfalltoleranz Hohe Leistung durch Parallelität Modulare Software Herstellerunabhängigkeit Übereinstimmung mit organisatorischen Strukturen Vorteile verteilter Systeme

22 WS06/07Prof. Dr. Andreas Schmietendorf22 Hoher Bedienungs- und Wartungsaufwand Probleme der Heterogenität Schwierigkeit korrekte verteilte Software zu erstellen Komplexität des Kommunikationssystems Aufwand beim Übergang vom zentralisierten zum dezentralen System Sicherheitsprobleme, Gesamtkosten schwer einschätzbar (ggf. versteckte Kosten) Nachteile verteilter Systeme

23 WS06/07Prof. Dr. Andreas Schmietendorf23 Kommunikation in verteilten Systemen

24 WS06/07Prof. Dr. Andreas Schmietendorf24 Klassifizierung von Kommunikationsverfahren: Art der Nachricht -Übertragung der gesamten Information -Verweis auf Information bzw. Zugriffsrecht Beteiligung des Betriebssystems -Implizite Kommunikation (Prozesse regeln selbst) -Explizite Kommunikation (unter Steuerung des BS) Zahl der kommunizierenden Prozesse -1 : 1 Unicast -1 : m Broadcast Synchronisation Kommunikation in verteilten Systemen

25 WS06/07Prof. Dr. Andreas Schmietendorf25 Blockierende und nicht blockierende Kommunikation Synchrone Kommunikation -Aufrufer ist blockiert bis ein Ergebnis eintrifft -Vereinfacht das Design von Anwendungen -Starke Kopplung zwischen Client und Server (schwierig im Netz) -Ggf. Performanceeinbußen Asynchrone Kommunikation -Fire and forget -Kein blockieren -Ideal in weit verteilten Systemen Kommunikation in verteilten Systemen

26 WS06/07Prof. Dr. Andreas Schmietendorf26 Kommunikation in verteilten Systemen

27 WS06/07Prof. Dr. Andreas Schmietendorf27 Mittel zur Interprozesskommunikation -Gemeinsame Dateien – langsame implizite Kommunikation -Gemeinsame Speicherbereiche (shared memory) -Kanäle, Pipeplines (pipes, FIFO) -Sockets (API zur direkten Nutzung des TCP/IP) -Briefkästen (mailboxes bzw. message queues) -Entfernte Prozedur- bzw. Methodenaufrufe Kommunikation in verteilten Systemen

28 WS06/07Prof. Dr. Andreas Schmietendorf28 Kommunikation über Sockets (Steckdose) -De-facto-Standard einer Programmierschnittstelle -Nutzung von TCP/IP und UDP/IP zur Kommunikation -Kommunikationsendpunkt innerhalb einer Anwendung -Adressierung von IP-Adresse und Portnummer Kommunikation in verteilten Systemen

29 WS06/07Prof. Dr. Andreas Schmietendorf29 Kommunikation via UDP (User Datagram Protocol) -Verbindungsloses unzuverlässiges Transportprotokoll -UDP-Client muss IP-Adresse und Portnummer des Servers kennen auf dem der benötigte Dienst läuft Kommunikation via TCP (Transmission Control Protocol) -Zuverlässiges verbindungsorientiertes Protokoll -TCP-Client muss IP-Adresse und Portnummer des Servers kennen auf dem der benötigte Dienst läuft Kommunikation in verteilten Systemen

30 WS06/07Prof. Dr. Andreas Schmietendorf30 Nachteile einer Socket-basierten Kommunikation -Bei UDP muss die Unzuverlässigkeit ausgeglichen werden -Bei TCP muß der Verbindungsauf- und Abbau explizit ausprogrammiert werden -Explizite Berücksichtigung der Parallelität bei der Serverprogrammierung -Ggf. notwendige Formatierung der übertragenen Daten -Paradigmenbruch zur prozeduralen bzw. objektorientierten Programmierung Kommunikation in verteilten Systemen

31 WS06/07Prof. Dr. Andreas Schmietendorf31 Unscharfer Begriff zur Beschreibung der benötigten Software um zwischen Client- und Server-Komponenten kommunizieren zu können. Wird auch als glue, also Kleister zwischen der Client- und Server-Implementierung bezeichnet. Bezieht sich auf die Möglichkeiten des Serviceaufrufs (API) sowie die Übertragung der Anforderung bzw. Antwort über das verwendete Netzwerk. Begriff der Middleware In Anlehnung an: Orfali, R. et al.: The Essential Client/Server Survival Guide – Second Edition, John Wiley & Sons, New York 1996

32 WS06/07Prof. Dr. Andreas Schmietendorf32 Berücksichtigte Aspekte: -Kommunikations-Stack -Verzeichnis- und Zeitdienste -Authentifizierung & Autorisierung -Verteilte Datei- und Druckservices Beispiele: -DCE/RPC - Prozedurspezifikation -CORBA/RMI - Methodenspezifikation -MOM - Message Queue Systeme -Web Services (XML, SOAP, WSDL) General Middleware In Anlehnung an: Orfali, R. et al.: The Essential Client/Server Survival Guide – Second Edition, John Wiley & Sons, New York 1996

33 WS06/07Prof. Dr. Andreas Schmietendorf33 Berücksichtigte Aspekte: -Bezieht sich auf einen speziellen Servicetypen -Teilweise überlappend zu den allgemeinen Middlewareansätzen Beispiele -Datenbankspezifische Middleware (JDBC, ODBC, CLI, …) -Groupware spezifische Middleware (SMTP, …) -Transaktionsmonitore (JTS API, JTA, …) -System Management spezifsiche Middleware (SNMP, CMIP, …) Service-spezifsche Middleware In Anlehnung an: Orfali, R. et al.: The Essential Client/Server Survival Guide – Second Edition, John Wiley & Sons, New York 1996

34 WS06/07Prof. Dr. Andreas Schmietendorf34 Mehrschichtige Client/Server-Systeme

35 WS06/07Prof. Dr. Andreas Schmietendorf35 Client – z.B. Browser-basiert Presentation Layer -HTML(XML) -JSP, Servlets, Applets Web Server (HTTP/HTTPS) Application Logic Layer -Servlets, Java-Klassen/Java-Beans -Enterprise Java Beans (EJB & Ressource Adapter) Applikation Server (RMI, JDBC, JMS, …) Ressource Management Layer (DBMS, FS, MOM, …) Client/Server-Systeme in mehreren Schichten (tiers) I

36 WS06/07Prof. Dr. Andreas Schmietendorf36 Monolitische Architekturen (typ. Enterprise-Systeme) 2-Tier-Architecture (Trennung von Client und Server) -Client Arbeitsplatz mit hohen Ressourcen-Anforderungen 3-Tier (3-schichtige C/S-Architekturen) -1.Tier: Graphische Benutzeroberfläche (GUI) -2.Tier: Geschäftslogik (Service-Logik) -3.Tier: Datenbanken (Oracle, Informix, SQL-Server) Multi-Tier (Mehr-Schichten-Architekturen) Client/Server-Systeme in mehreren Schichten (tiers) II

37 WS06/07Prof. Dr. Andreas Schmietendorf37 Client/Server-Systeme in mehreren Schichten (tiers) III Zwei-Schichten-Architektur

38 WS06/07Prof. Dr. Andreas Schmietendorf38 Client/Server-Systeme in mehreren Schichten (tiers) IV Drei-Schichten-Architektur

39 WS06/07Prof. Dr. Andreas Schmietendorf39 Client/Server-Systeme in mehreren Schichten (tiers) V Mehr-Schichten-Architektur

40 WS06/07Prof. Dr. Andreas Schmietendorf40 Schnittstellen zwischen den Schichten einer C/S-Anwendung müssen einem Standard entsprechen, um Teile des Gesamtsystems verändern zu können ohne die gesamte Anwendung verändern zu müssen. Client/Server-Systeme in mehreren Schichten (tiers) VI

41 WS06/07Prof. Dr. Andreas Schmietendorf41 Client/Server-Systeme in mehreren Schichten (tiers) VII

42 WS06/07Prof. Dr. Andreas Schmietendorf42 Client/Server-Systeme in mehreren Schichten (tiers) VIII

43 WS06/07Prof. Dr. Andreas Schmietendorf43 Grundlegende Begriffe der Transaktionsverwaltung

44 WS06/07Prof. Dr. Andreas Schmietendorf44 Eine Transaktion (transaction) ist eine Folge von Operationen (z.B. elementare SQL-Befehle), die zu einer unteilbaren (atomaren) Ausführungseinheit zusammengefasst werden und die Datenbank von einem konsistenten Zustand in einen neuen konsistenten Zustand überführen. Transaktionsbegriff

45 WS06/07Prof. Dr. Andreas Schmietendorf45 Zur Unterstützung des Multiuserbetriebs werden im Rahmen von DBMS Transaktionen verwendet. Ein Datenbanksystem garantiert so die Ausführung von Transaktionen unter Berücksichtigung der so genannten ACID-Bedingungen. Dabei handelt es sich um die Eigenschaften der Atomarität (atomicity), Konsistenz (consistency), Isolation (isolation) und Dauerhaftigkeit (durability). Transaktionskonzept

46 WS06/07Prof. Dr. Andreas Schmietendorf46 Täglich werden durch die Kunden einer Bank tausende Überweisungen initiiert. Dabei gibt es sowohl die Forderungen nach kurzen Antwortzeiten, als auch eines korrekten Geldtransfers. Zusammenfassung der notwendigen Operationen für eine Geldüberweisung, d.h. Abbuchen vom einem Konto und Überweisen auf ein anderes Konto. Transaktion - Beispiel

47 WS06/07Prof. Dr. Andreas Schmietendorf47 Transaktion - Beispiel Inkorrekter Ablauf von zwei Überweisungen Quelle: Gumm, H. P.; Sommer, M.: Einführung in die Informatik, Oldenbourg-Verlag

48 WS06/07Prof. Dr. Andreas Schmietendorf48 Änderungen einer Transaktion werden entweder vollkommen oder gar nicht in die Datenbank eingebracht. Auf dieser Grundlage kann die Anwendungsprogrammierung stark vereinfacht werden, da Fehlerzustände (z.B. Rechnerausfall) nicht im Programm abgefangen werden müssen. A - Atomarität

49 WS06/07Prof. Dr. Andreas Schmietendorf49 Eine Transaktion überführt die Datenbank von einen konsistenten Zustand in einen anderen konsistenten Zustand. Der konsistente Zustand einer Datenbank erfordert die Einhalten aller definierten Integritätsbedingungen. Innerhalb der Transaktion können Integritätsbedingungen temporär verletzt werden. C - Konsistenz

50 WS06/07Prof. Dr. Andreas Schmietendorf50 Keine gegenseitige Beeinflussung parallel ausgeführter Transaktionen, d.h. zwischen parallel ausgeführten Transaktionen besteht keine direkte Kommunikation. Das Ergebnis einer Transaktion kann nicht durch andere zum gleichen Zeitpunkt ausgeführte Transaktionen beeinflusst werden. I - Isolation

51 WS06/07Prof. Dr. Andreas Schmietendorf51 Nach einem erfolgreichen Abschluss einer ausgeführten Transaktion werden alle Änderungen dauerhaft in der Datenbank gespeichert. Sollte es zu einer Störung kommen, werden die Ergebnisse von Transaktionen durch entsprechende Recovery- Mechanismen wieder hergestellt. D - Dauerhaftigkeit

52 WS06/07Prof. Dr. Andreas Schmietendorf52 X/Open Transaktionssystem X/Open-Modell für Transaktions- systeme Aufruf von Ressourcen-Managern im Rahmen einer Transaktion DBS als möglicher Typ eines Ressoucen-Managers Transaktionsmanager führt Transaktionsverwaltung durch

53 WS06/07Prof. Dr. Andreas Schmietendorf53 Kriterien zur Technologieauswahl im Kontext eines verteilten Systems

54 WS06/07Prof. Dr. Andreas Schmietendorf54 Technische Aspekte Anforderungen des Anwendungssystems Unterstützte Standards Unterstützte Daten- und Funktionsmodelle Angebotene Schnittstellen (Interfaces) Art der abzuspeichernden Informationen Mengengerüste Performanceeigenschaften (TPC-Benchmarks) Auswahlkriterien I

55 WS06/07Prof. Dr. Andreas Schmietendorf55 Integrative Aspekte Skills des vorhandenen Personals Bereits eingesetzte Technologien Unterstützung durch das Service Management -Softwareverteilung -Backup -Konfiguration Management Ggf. vorhandene Rahmenverträge mit Lieferanten Durchgängigkeit der Entwicklungsumgebung (z.B. MDA) Auswahlkriterien II

56 WS06/07Prof. Dr. Andreas Schmietendorf56 Kommerzielle Aspekte Kosten – Invest und Wartung/Pflege Verbreitung einzusetzender Technologien am Markt Potential des Anbieters -Eingehen auf eigene Anforderungen -Implementierung marktgängiger Funktionalitäten Support-Organisation -Sitz des Help Desk -Unterstützte Landessprachen Einschätzung externer Analysten (z.B. Gartner Group) Auswahlkriterien III

57 WS06/07Prof. Dr. Andreas Schmietendorf57 Auswahlkriterien IV Quelle: Massimo Pezzini: Application Server Scenario: From Stovepipes to Services, Gartner 2002

58 WS06/07Prof. Dr. Andreas Schmietendorf58 Auswahlkriterien V Quelle: Massimo Pezzini: Application Server Scenario: From Stovepipes to Services, Gartner 2002


Herunterladen ppt "WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Grundlagen von Client/Server Systemen."

Ähnliche Präsentationen


Google-Anzeigen