Strukturen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld von Netzen.
-
Upload
swanhild-lapp -
Category
Documents
-
view
105 -
download
0
Transcript of Strukturen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld von Netzen.
Strukturen
Verteilte Anwendungen
Wintersemester 06/07
© Wolfgang Schönfeld
von Netzen
Informationen werden durch (viele) Aktionen verarbeitet,
die in Hard- und Software festgelegt und nach bestimmten Prinzipien
strukturiert sind (wie auch die Informationen selbst)• Benennungen• Unterprogramme• Parametrisierung• …
Insgesamt gibt es wenige solcher Prinzipien.
Beispiele:• Software auf einem Rechner• interagierende Rechner
Schichten
erhält man, wenn Programme auf unterschiedlichen Rechnern mit ähnlicher Aufgabenstellung kommunizieren (auch: Ebenen, Tiers, Layers).
Bei Organisationen (Unternehmen, Behörden, …) spricht man von Hierarchie-Ebenen.
Meist gehören zu Schichten unterschiedliche Grade der Abstraktion, mit der Informationen verarbeitet werden:
Je höher die Schicht, desto weiter greifend, aber gröber werden die Zusammenhänge dargestellt. Weil gleichzeitig weniger Details angesprochen werden, bleibt der Umfang der Beschreibung (im wesentlichen) gleich.
Dieses Strukturierungsprinzip wurde bei Rechnern und verteilten Systemen schon in den ersten Anfängen angewandt.
ist für verteilte Systeme wichtig
Schichten (2)
Grundlage der Schichtung ist die schrittweise Zerlegung von Informationsmengen (mathematisch: Partitionierung). Deren Verarbeitung wird dadurch zumeist einfacher.
Beispiele: Klassifizierung von Informationen. Verteilung von Informationen. Suche nach Informationen.
Hierarchien in großen Organisationen: Berichtswege sind gerade Umkehrungen der Verteilungswege.
Dem (organisatorischen) Gewinn durch überschaubarere Strukturen steht eine gewisse Unflexibiliät entgegen - man kommt gar nicht auf die Idee, dass es auch anders gehen kann. (Selbst das kann von Vorteil, aber auch von Nachteil sein.)
Durchbricht man in großen Organisationen die strengen Hierarchien, spricht man von "dotted lines".
Die Struktur innerhalb einer Schicht ist standardisiert:Instanzen sind die Verarbeitungseinheiten innerhalb einer Schicht.Sie kommunizieren • horizontal (innerhalb der Schicht) anhand des zugehörigen
Protokolls (vgl. Zeichnung), weitgehend standardisiert• vertikal (zwischen den Schichten) durch Unterprogrammaufrufe
u.ä., weniger standardisiert. Ausnahme: Sockets.
In vertikaler Richtung ist eine Standardisierung weniger erforderlich (weil die Programme meistens auf demselben Rechner laufen).
Die "vertikale" Zuordnung muss nicht 1-1 sein Zu einer n-Instanz können mehrere (n+1)-Instanzen und mehrere (n-1)-
Instanzen gehören.
Im Internet reicht die Schichtung nur von Physical bis Transport.
Schichten 1 und 3 besorgen die "normale" Kommunikation:• Physical legt fest, wie zwei direkt kommunizieren, • Network, wie das über Vermitter geschieht.
Schichten 2 und 4 besorgen die Absicherung (was tun, wenn die normale Kommunikation nicht klappt?)
• DataLink für Physical• Transport für Network
Beispiel: Auf einer Transport-Instanz (TCP) sitzen mehrere Anwendungen. Unter ihr verschiedene "Netztreiber" (DataLink-Instanzen)
TCP
Anwendungen
Netztreiber
7 13 20 21 22
Sockets
ISDN Ethernet WiMAX UMTS
Unterschiedliche Anwendungen interagieren meist nach dem Schema "Aufgabe - Rückmeldung".
• Aufgage ("request") von A an B• Rückmeldung ("reply") von B an A
Dies entspricht dem Schema "Aufruf - Rückkehr" bei sequenzieller Programmierung.
Bei verteilten Systemen ist dies so zu sehen:• A erzeugt mit dem Request eine Ursache.• Der Reply von B ist die Wirkung.
A kann sich auf zwei verschiedene Weisen verhalten:• A wartet auf die Rückmeldung ("synchron" Interaktion).• A wartet nicht auf die Rückmeldung ("asynchron" Interaktion).
Standardisierung• Remote Procedure Call (RPC)• Common Object Request Broker Architecture (CORBA)• Distributed Computing Environment Remote Procedure Call (DCE
RPC)• Remote Method Invocation (RMI)• SOAP
ursprünglich für Simple Object Access Protocol
ähnlich Remote Procedure Call
SOAP benützt • XML zur Repräsentation der Daten und • Internet-Protokolle der Transport- und Anwendungsschicht (vgl.
TCP/IP-Referenzmodell)
zur Übertragung der Nachrichten.
Die gängigste Kombination ist SOAP über HTTP und TCP.
Die Abkürzung SOAP wird jedoch offiziell seit Version 1.2 nicht mehr als Akronym gebraucht, da es erstens (subjektiv) keineswegs einfach (Simple) ist und da es zweitens nicht (nur) dem Zugriff auf Objekte (Object Access) dient.
SOAP
TCP-Anwendungen werden (von außen) durch Port-Nummern adressiert.
7 Echo Zurücksenden empfangener Daten
13 Daytime Übertragung von Datum und Uhrzeit
20 FTP-Data Dateitransfer (Datentransfer vom Server zum Client)
21 FTP Dateitransfer (Initiierung)
22 SSH Secure Shell
23 Telnet Terminalemulation
25 SMTP E-Mail-Versand (siehe auch Port 465)
43 Whois Whois-Anfragen
53 DNS Auflösung von Domainnamen in IP-Adressen
In der Praxis
sind viel mehr Instanzen auf einem Rechner beteiligt• mit Wissen des Rechner-Betreibers• ohne dessen Wissen, aber zu seinem Nutzen• zu seinem Schaden
Netz
ist die Gesamtheit aller Instanzen einer Schicht.
Die Topologie eines Netzes ist durch die Nachbarschaft der Instanzen bestimmt.
Die Topologie ist beliebig, manchmal wird Zusammenhang gefordert.
In gewissen Topologien sind bestimmte Aufgaben leichter zu erfüllen, andere weniger.
Beispiel: • Viele Aufgaben (z.B. Verteilen) sind leichter in Hierarchien zu
erfüllen. • Andere Aufgaben (z.B. Abstimmen) sind leichter in "demokratischen"
Strukturen (Peer-to-Peer) zu erfüllen.
wie man aus dem täglichen Leben weiß.
Client-Server
Hardware
Software
Client
Client
Client
Server
Braunschweig, VS-0203-Kap02-SystemModelle-4S.pdf
Draufsicht
Seitenansicht
Applets
Client
Client Webserver
Webserver
Applet
vorher
nachher
Proxy
Client
Client
Server
Proxy-Server
Client
Peer-to-Peer
Peer
Peer
Peer
Peer
Peer
Jeder kann dasselbe.
Beweglichkeit (Mobilität) von Hardware
Ort
perspektivische Ansicht
Beweglichkeit (Mobilität) von Software
Beweglichkeit (Mobilität) von Software
Beweglichkeit (Mobilität) von Software
Beweglichkeit (Mobilität) von Software
Beweglichkeit (Mobilität) von Software
Die Verarbeitung von Informationen hängt auch vom Ort ab.
Der Zugriff zu Daten erfordert (unterschiedliche) Ressourcen,
je weiter entfernt, desto mehr (zumindest Zeit!).
Beispiel: Es soll nach einer bestimmten Information gesucht werden (hier: 5-strahliger unter 4-strahligen Objekten). Man hat die Wahl, die Information näher an die Verarbeitung oder die Verarbeitung näher an die Information zu bringenen (mobile Agenten).
(Diese Frage ist unabhängig von der Aufgabenteilung, vgl. einführendes Beispiel!)
Die Einsparung durch nähere Verarbeitung ist abzuwiegen gegen den zusätzlichen Auswand, die Software zu verlagern.
Wie findet man / der Rechner sich zurecht?
Verzeichnis von Informationen
als Helfer in komplexer Landschaft
Suchmaschine - wird nach dem Vorkommen eines Wortes in einem (Hyper-) Text gefragt und gibt einen Verweis zurück
• einfach zu automatisieren• spielt die Anordnung der Verweise eine Rolle?• Beispiel: http://www.google.de/
Encyklopädie - wird nach einem (durch ein Wort gegebenen) Begriff gefragt und gibt eine (vorgegebene) Erläuterung zurück
• nicht automatisierbar, lediglich maschinelle Unterstützung• offene Autorenschaft• Beispiel: http://de.wikipedia.org/
"Problem
Viele Daten im Wiki sind für den Menschen offensichtlich, für Maschinen jedoch nicht auswertbar. Beispiel: Auf der Seite Karlsruhe stehen Gemeinden, an welche Karlsruhe angrenzt. Eine Maschine kann nun aber nicht herausfinden, ob z. B. Stutensee an Karlsruhe grenzt. Auch ein Mensch muss also zur Seite Stutensee oder Karlsruhe navigieren um dort die Information zu suchen - obwohl es eigentlich genügen würde, das einmal zu sagen. "
aus http://semantic.stadtwiki.net/wiki/index.php/Stadtwiki:Projekt_Semantic_Wiki