Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian...

44
Formeln und Notizen Middleware Florian Franzmann * 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ................................ 7 2 Der JXTA-Protokollstapel ........................... 43 Tabellenverzeichnis Inhaltsverzeichnis 1 Objektorientierte Programmierung 2 1.1 Definition und Motivation ........................... 2 1.2 Java RMI .................................... 9 2 Verteilte Systeme 10 2.1 Grundlagen ................................... 10 2.2 Kommunikationsmodelle ............................ 11 2.3 Kommunikationssemantiken .......................... 11 2.4 RPC ....................................... 12 2.5 Objektorientierung und Verteilung ...................... 13 * [email protected] 1

Transcript of Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian...

Page 1: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

Formeln und Notizen

Middleware

Florian Franzmann∗

7. April 2009, 23:53 Uhr

Abbildungsverzeichnis

1 Polymorphismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Der JXTA-Protokollstapel . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Tabellenverzeichnis

Inhaltsverzeichnis

1 Objektorientierte Programmierung 21.1 Definition und Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Java RMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Verteilte Systeme 102.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2 Kommunikationsmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Kommunikationssemantiken . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4 RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5 Objektorientierung und Verteilung . . . . . . . . . . . . . . . . . . . . . . 13

[email protected]

1

Page 2: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

1 Objektorientierte Programmierung

3 CORBA 133.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2 Inter-ORB-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3 CORBA-Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.4 FT-CORBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4 Fragmentierte Objekte 30

5 Peer-to-Peer-Systeme 325.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.2 Napster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.3 Gnutella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.4 Verteilte Hash-Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.4.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.4.2 Chord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.5 JXTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.5.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.5.2 Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6 Java Beans 42

1 Objektorientierte Programmierung

1.1 Definition und MotivationFrage 1.1Welchen Sinn hat Objektorientierte Programmierung?

Antwort 1.1Softwarekrise: Software wächst, gleichzeitig wirf aufgrund der Konkurrenzsituation derzur Verfügung stehende Entwicklungszeitraum kürzer, die Kosten für die Verwaltungsteigen.

Die Produktivität muß gesteigert werden. Nötig sind wiederverwendbare Entwurfsmu-ster und klare Schnittstellen. Dies leistet die Objektorientierte Programmierung.

Frage 1.2Was bedeutet Top-Down Structured Design? Inwiefern ist der Objektorientierte Entwurfdem Top-Down Structured Design überlegen?

Antwort 1.2• Das Programm hat die Form eines Baums, in dem Unterprogramme ihre Aufgaben

durch Aufruf weiterer Unterprogramme erledigen

• Modularisierung

• Die Reihenfolge der Aktionen wird hervorgehoben

2

Page 3: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

1 Objektorientierte Programmierung

• Ungeeignet für große Softwaresysteme, da Datenabstraktion, Geheimprinzip undNebenläufigkeit nicht erfaßt werden

• Nicht bearbeitete Daten sondern Aktionen stehen im Mittelpunkt, die einer nichtüberschaubaren Menge Daten zugeordnet werden

• Entwurfsmethode nicht geeignet für Objektorientierte Programmiersprachen

Frage 1.3Nach welchen Grundprinzipien funktioniert Objektorientierter Entwurf?

Antwort 1.3• Modellierung als Sammlung von kooperierenden Objekten

• Objekte bieten Dienste an und verwenden Dienste anderer Objekte

• Objekte sind Instanzen von Klassen einer Hierarchie von Klassen

• Dekomposition orientiert sich an den Einheiten der Problem Domain

• Softwareentwickler braucht Domänenexpertise

Frage 1.4Welche Vorteile bietet der Objektorientierte Entwurf?

Antwort 1.4• Wiederverwendung gemeinsamer Mechanismen

• Änderungen sind leichter umzusetzen

• Ergebnis ist weniger komplex

• Begriffswelt des Auftraggebers wird abgebildet ⇒ Besseres Verständnis des Auf-traggebers für die Problemlösung

Frage 1.5Wo kommen die Objekte her?

Antwort 1.5Jemand (Client oder Server) muß sie erzeugen. Sie können evt. auch an einer Datenbankerfragt werden.

Frage 1.6Inwiefern ist Objektorientierte Software leichter weiterzuentwickeln?

Antwort 1.6• Änderungen sind örtlich begrenzt

• keine globalen Datenstrukturen

• Wiederverwendung von Objektklassen garantieren gemeinsame Eigenschaften

3

Page 4: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

1 Objektorientierte Programmierung

Frage 1.7Was ist ein Objekt?

Antwort 1.7• Aus Sicht des Softwareentwicklers: Ein „Ding“ aus der Problemstellung. Es hat

einen Zustand, ein Verhalten und eine eindeutige Identität.

• Aus programmiertechnischer Sicht: Eine gekapselte Einheit von Daten und Funk-tionen auf diesen Daten mit einer klar definierten Schnittstelle.

Frage 1.8Was versteht man unter einer Objektbasierten Programmiersprache?

Antwort 1.8Eine Objektbasierte Programmiersprache unterstützt Objekte als Sprachkonstrukt. Pro-blem: Nur eine Instanz jedes Objekts möglich, da es keine Objektschablonen gibt.

Frage 1.9Was versteht man unter einer Klasse?

Antwort 1.9• Aus Sicht des Software-Entwicklers: Eine Menge von Objekten mit gleicher Struk-

tur und gleichem Verhalten

• Aus programmiertechnischer Sicht: Eine Schablone für Objekte. Jedes Objekt isteine Instanz einer Klasse. Die Objekterzeugung bezeichnet man als Instantiierung.

Frage 1.10Was versteht man unter einer Klassenbasierten Programmiersprache?

Antwort 1.10Eine Programmiersprache, die die Formulierung von Klassen und die Instantiierung vonObjekten erlaubt.

Frage 1.11Was versteht man unter Vererbung?

Antwort 1.11Eine Beziehung zwischen Klassen, in der eine Klasse Struktur bzw. Verhalten übernimmt,da in einer anderen Klasse oder in mehreren anderen Klassen definiert wurde.

Frage 1.12Welches Problem bringt die Mehrfachvererbung mit sich?

Antwort 1.12Gleiche Variablen können auf verschiedenen Pfaden erreicht werden.

Frage 1.13Was versteht man unter Dynamischem Binden?

4

Page 5: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

1 Objektorientierte Programmierung

Antwort 1.13Die Entscheidung welche Methode ausgeführt wird, wird zur Laufzeit getroffen. Ohnedynamisches Binden entsteht kein konsistentes Objekt der Unterklasse, da ererbte Me-thoden keinen Zugriff auf Methoden der Unterklasse hätten.

Frage 1.14Was versteht man unter Statischem Binden?

Antwort 1.14Die Entscheidung welche Implementierung einer Methode genommen wird, fällt zurÜbersetzungszeit.

Frage 1.15Welche Konzepte kommen beim Objektorientierten Paradigma zur Anwendung?

Antwort 1.15• Abstraktion

– Kapselung

– Datenabstraktion

• Modularisierung

• Hierarchie

• Typisierung

• Typhierarchie

• Polymorphismus

Frage 1.16Was versteht man unter Abstraktion?

Antwort 1.16Abstraktion stellt die äußeren Eigenschaften eines Objekts heraus, für den Anwenderist nur die Schnittstelle sichtbar. Kapselung verbirgt seine Interna (Implementierungs-details), während Datenabstraktion dafür sorgt, daß auf das Objekt nur über seine Me-thoden zugegriffen werden kann.

Frage 1.17Was versteht man unter Modularisierung?

Antwort 1.17Die Aufteilung eines Projekts in separate Entwicklungseinheiten. Die Module sind überSchnittstellen verbunden.

Frage 1.18Welche hierarchischen Beziehungen gibt es bei der Objektorientierung?

5

Page 6: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

1 Objektorientierte Programmierung

Antwort 1.18Delegation „is a“-Beziehung

Aggregation „part of“-Beziehung

Frage 1.19Was bedeutet Typisierung?

Antwort 1.19Die genaue Charakterisierung der gemeinsamen Eigenschaften einer Menge von Ein-heiten. Sie erzwingt die Klasse eines Objekts, so daß Objekte unterschiedlicher Typennicht oder nur in sehr eingeschränkter Weise untereinander ausgetauscht werden kön-nen. Typisierung ermöglicht die Überprüfung von Ausdrücken auf Typkompatibilität zurÜbersetzungszeit.

Frage 1.20Was versteht man unter Strenger Typisierung?

Antwort 1.20Die Konformität aller Typen in einem Ausdruck wird garantiert.

Frage 1.21Was versteht man unter Typhierarchie?

Antwort 1.21• mehrere Klassen können einen Typ implementieren

• eine Klasse kann mehrere Typen implementieren

• Unterklasse ist nicht notwendigerweise typkonform zur Oberklasse

• Typhierarchie legt fest welche Typen konform zu anderen Typen sind

• Typvererbung

Frage 1.22Wie funktionieren Objekte im verteilten Fall?

Antwort 1.22Die gleiche Schnittstelle muß auf Client und Server angeboten werden.

Frage 1.23Was versteht man unter Polyphormismus?

Antwort 1.23Die Fähigkeit verschiedene Formen anzunehmen:

• mehr als ein Typ für Werte oder Variablen

• verschiedene Typen als Parameter von Funktionen

6

Page 7: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

1 Objektorientierte Programmierung

poly

mor

phis

m

incl

usio

nU

nter

type

n

para

met

ric

Gen

eriz

itae

t

univ

ersa

l

adho

c

over

load

ing

coer

cion

Typ

anpa

ssun

g

Abbildung 1: Polymorphismus

7

Page 8: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

1 Objektorientierte Programmierung

• verschiedene Typen als Operanden eines Operators

Frage 1.24Welche Arten von Polymorphismus kennen Sie?

Antwort 1.241. Universeller Polymorphismus:

parametric Parameter als Type für weitere Parameter.

inclusion Untertypen.

2. Ad-Hoc-Polymorphismus

overloading Mehrere Methoden gleichen Namens.

coercion Erzwungene Typumwandlung ⇒ Cast.

Frage 1.25Welche Probleme sind in Bezug auf Nebenläufigkeit zu lösen?

Antwort 1.25• Koordinierung ⇒ gegenseitiger Ausschluß

• Synchronisierung ⇒ warten auf ein Ereignis

• Verteilung ⇒ auf Betriebsmittel

Frage 1.26Was versteht man unter feingranularer bzw. grobgranularer Nebenläufigkeit?

Antwort 1.26• feingranular: Nebenläufigkeit auch objektintern

• grobgranular: Nebenläufigkeit nur objektextern

Frage 1.27Welche Möglichkeiten gibt es Nebenläufigkeit in Objektorientierte Programmiersprachenzu integrieren?

Antwort 1.27• orthogonal: Keine programmiersprachlichen Konzepte, die Nebenläufigkeit unter-

stützen. Koordinierung erfolgt über Semaphoren.

• nicht-orthogonal:

– uniform: Automatischer Schutz für alle Objekte

– nicht-uniform: Programmierer legt fest welche Objekte geschützt werden sol-len

Frage 1.28Was versteht man unter Persistenz?

8

Page 9: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

1 Objektorientierte Programmierung

Antwort 1.28Die Eigenschaft von Daten das Ende einer Umgebung, in der sie entstanden oder benutztwurden zu überdauern.

Frage 1.29Welches Problem muß bei externer Datenspeicherung gelöst werden?

Antwort 1.29Die Typinformationen gehen verloren.

1.2 Java RMIFrage 1.30Was ist Java RMI?

Antwort 1.30Ein implizites, nichtorthogonales, nichttransparentes, nichtuniformes Fernaufrufsystem.

Frage 1.31Wie erhält man bei Java RMI eine Remote Reference?

Antwort 1.31Über den Namensdienst rmiregistry. bind und rebind melden ein Objekt beim Na-mensdienst an, lookup liefert die Referenz.

Frage 1.32Wie implementiert man eine neue Remote-Klasse?

Antwort 1.32• Aufspaltung des Objekts in Interface und Implementierung, muß von Remote erben

• alle Methoden müssen RemoteException werfen

• alle Parameter und Rückgabewerte müssen von Serializable oder Remote erben

• der Server muß von UnicastRemoteObject erben oder exportObject() verwenden

• Stub und Skeleton werden automatisch erzeugt

Frage 1.33Wie werden die Stubs erzeugt?

Antwort 1.33Mit Hilfe des Compilers rmic

Frage 1.34Wie wird der Namensdienst verwendet?

Antwort 1.34Naming.bind() bzw. Naming.rebind() macht das Objekt der Registry bekannt, Naming.lookup()liefert eine Referenz auf das Objekt.

9

Page 10: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

2 Verteilte Systeme

Frage 1.35Welche Funktion hat der RMISecurityManager?

Antwort 1.35Alle Objekte, die über das Netzwerk exportiert werden sollen müssen dem Security Ma-nager bekannt sein. Andernfalls sind sie nicht erreichbar. Der Security Manager sorgtdafür, daß nur als vertrauenswürdig eingestufte Klasse geladen werden.

Frage 1.36Welche Kommunikationssemantik verwendet Java RMI?

Antwort 1.36At most once.

2 Verteilte Systeme

2.1 GrundlagenFrage 2.1Welche Eigenschaften haben Verteilte Systeme?

Antwort 2.1• Physikalische Verteiltheit von Hardware

• Gemeinsame Nutzung von Betriebsmitteln

• Heterogenität in Hardware und Software

• Nebenläufigkeit

Frage 2.2Welche Eigenschaften strebt man beim Entwurf Verteilter Systeme an?

Antwort 2.2• Offenheit

• Skalierbarkeit

• Transparenz

– Netzwerktransparenz

– Nebenläufigkeitstransparenz

– Replikationstransparenz

– Fehlertransparenz

– . . .

• Sicherheit

10

Page 11: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

2 Verteilte Systeme

2.2 KommunikationsmodelleFrage 2.3Nach welchen Eigenschaften lassen sich Kommunikationsmodelle einordnen?

Antwort 2.3• Synchronizität: blockiert der Sender bis die Nachricht empfangen wurde?

• Interaktionsmuster: Message Passing und Request Reply

• Adressaten: Unicast, Multicast, Broadcast

Frage 2.4Welche Varianten des Request-Reply-Modells kennen Sie?

Antwort 2.4• Synchron: Der Sender wartet bis die Nachricht empfangen wurde. Der Empfänger

blockiert bis eine Nachricht eintrifft. Basis für RPC.

• Asynchron: Client und Server arbeiten nebenläufig. Basis für Gruppenkommuni-kation.

2.3 KommunikationssemantikenFrage 2.5Welche Kommunikationssemantiken kennen Sie?

Antwort 2.5• exactly once

• at least once

• at most once

Frage 2.6Wie funktioniert exactly once?

Antwort 2.6Die Anfrage wird genau einmal auf Serverseite bearbeitet.

Frage 2.7Wie funktioniert at least once?

Antwort 2.7Die Anfrage wird einmal oder mehrmals bearbeitet. Der Client bekommt keine Fehler-meldung, erkennt aber evt., daß die Anfrage mehrfach bearbeitet wurde. Operationenmüssen idempotent sein. Implementierung: Die Anfrage wird wiederholt, falls der Servereine Zeit lang nicht antwortet.

Frage 2.8Wie funktioniert at most once?

11

Page 12: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

2 Verteilte Systeme

Antwort 2.8Die Anfrage wird höchstens einmal bearbeitet. Wenn das Ergebnis innerhalb einer be-stimmten Zeit nicht eintrifft, wird eine Fehlermeldung zurückgegeben. Die Implementie-rung ist komplex:

• der Client muß die Nachricht nach einem Timeout wiederholen

• der Client muß Serverabstürze erkennen

• der Server hebt Antworten auf

• der Server muß alte Anfragen nach einem Absturz erkennen und ignorieren

Bei Erfolg entspricht die at most once Semantic der exactly once Semantik.

2.4 RPCFrage 2.9Was versteht man unter einem Remote Procedure Call?

Antwort 2.9Einen ortstransparenten Aufruf einer entfernten Prozedur.

Frage 2.10Welche Aufgaben hat dabei der Client-Stub?

Antwort 2.10• Marshalling der Parameter

• Senden der Anfragenachricht

• Warten auf die Antwortnachricht

• Unmarshalling des Ergebnisses

• Implementieren der Zustell-Semantik

Frage 2.11Welche Probleme müssen in Zusammenhang mit RPC gelöst werden?

Antwort 2.11• Zahl, Typ und Codierung der Parameter müssen bekannt sein

• Call by Reference ist schwierig umzusetzen

• keine globalen Variablen möglich

• keine exactly-once-Semantik

• keine Nebenläufigkeit, große Parameterdaten, kurze Prozeduren, Latenz

Frage 2.12Wie funktioniert ein lokaler, wie ein verteilter Funktionsaufruf?

12

Page 13: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Antwort 2.12lokal: Parameterübergabe über den Stack oder Register. Anschließend Aufruf der

Funktion.

verteilt: Parameterübergabe by value: Serialisierung. By reference: Callback.

Problem: Auch der Client muß Aufrufe entgegennehmen, d. h. er braucht einenZustandsautomaten oder Threads.

2.5 Objektorientierung und VerteilungFrage 2.13Auf welche Arten kann Verteilung in objektorientierten Programmiersprachen verwirk-licht werden?

Antwort 2.13explizit orthogonal Klassische IPC – Nachrichten und Verbindungen.

Vorteile: etablierte Infrastruktur kann genutzt werden, kein„unsichtbarer“ Overhead.

Nachteile: Programmierung aufwendig, Bruch im objektorien-tierten Paradigma, Verteilung durch Programmierung fest ver-drahtet.

implizit nichtorthogonal Die Interaktion zwischen lokalen und verteilten Objekten un-terscheidet sich nicht. ⇒ RPC.

nichtuniform Unterschiedliche Methodenaufrufe für lokale und entfernte Re-ferenzen.

Unterschiedliche Semantik für die Parameterübergabe.

uniform Kein Unterschied zwischen lokalen und entfernten Aufrufen.

volltransparent Anwendungsentwickler sieht keinen Unterschied zwischen loka-len und verteilten Objekten.

Probleme: Im verteilten Fall können spezielle Fehler auftreten,verteilte Interaktionen sind implizit signifikant teurer.

Es sollte möglich sein explizit zwischen verteilten und lokalenObjekten zu unterscheiden.

3 CORBA

3.1 GrundlagenFrage 3.1Welche Entwurfsziele verfolgt CORBA?

13

Page 14: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Antwort 3.1• Standardisierung verteilter objektbasierter Programmierung in einer heterogenen

Umgebung

• Abstraktion von Hardware, Betriebssystem und Programmiersprache

• Interoperabilität

• Einbindung von bestehenden Anwendungen

• Business Objects/Components

Frage 3.2Welche Eigenschaften haben verteilte CORBA-Objekte?

Antwort 3.2• Identität, Zustand und Methoden

• bilden Anwendungen

• Kommunikation über ORB

• Client-/Server-Prinzip

• at most once/exactly once-Semantik

• implizite, nichtorthogonale Interaktion

Frage 3.3Welchen Zweck hat die Interface Description Language?

Antwort 3.3• Beschreibt Objektschnittstellen unabhängig von der Implementierungssprache

• Language Mappings sind Teil des Standards

• Datentypen:

– Basistypen

– Aufzählungstyp

– zusammengesetzte Typen

Frage 3.4Welche Vor- und Nachteile hat IDL?

Antwort 3.4• Vorteile:

– Schnittstellenbeschreibung unabhängig von der Implementierungssprache

– Unterstützung vieler Programmiersprachen

• Nachteile:

14

Page 15: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

– Schnittstelle muß in IDL und in der Implementierungssprache beschriebenwerden

– Abbildung von IDL-Konstrukten, die die Programmiersprache nicht unter-stützt, ist kompliziert

– Fähigkeiten der Sprache, die nicht in IDL beschrieben werden können, stehennicht zur Verfügung

Frage 3.5Welche Schritte müssen unternommen werden um ein Objekt zu erzeugen und zu binden?

Antwort 3.5• Beschreibung der Objektschnittstelle in IDL

• Implementierung eines Server-Objekts in der Implementierungssprache

• Registrieren des Objekts am ORB oder Object Adaptor ⇒ Interoperable ObjectReference

• Binden des Clients an das Server-Objekt

⇒ Referenz auf das Server-Objekt besorgen

⇒ Erzeugung des Client-Stub

⇒ Methodenaufruf über den Client-Stub

Frage 3.6Welche Aufgabe hat der Object Request Broker?

Antwort 3.6Er vermittelt Methodenaufruf vom einen zum anderen Objekt und zwischen Objektenverschiedener ORBs.

Frage 3.7Was ist der ORB implementierungstechnisch?

Antwort 3.7Dies ist im Standard nicht festgelegt. Der ORB kann als Teil des Stubs, der Bibliothekoder als eigener Prozeß implementiert sein. In Java ist der ORB ein Daemonprozeß.

Frage 3.8Was ist der Object Adaptor?

Antwort 3.8Der Portable Object Adaptor gehört zur CORBA-Basisfunktionalität und muß von derImplementierung unterstützt werden. Er ist der lokale Repräsentant des ORB-Dienstes.

Frage 3.9Welche Aufgaben hat der POA?

15

Page 16: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Antwort 3.9• generiert CORBA-Objektreferenzen (IOR aus Protokoll, Rechner, Zeitstempel,

OAID, OID)

• bildet Objektreferenzen auf Implementierungen ab

• nimmt Methodenaufrufe entgegen und leitet sie weiter

• authentifiziert

• aktiviert/deaktiviert Servants

• Registriert Serverklassen im Implementation Repository

• unterstützt entweder persistente oder transiente Objekte

Frage 3.10Welche Funktion hat der Servant Manager?

Antwort 3.10Er ermöglicht die dynamische Aktivierung von Objekten. In der Standardkonfigurationwird er nicht verwendet.

Frage 3.11Welche Ziele wurden bei der Spezifikation des POA verfolgt?

Antwort 3.11• Portabilität zwischen den ORBs

• Trennung von Objekt und Implementierung

Frage 3.12Welche Begriffe sind für den POA definiert?

Antwort 3.12• Server: Ausführungsumgebung

• Servant: konkretes Sprachobjekt, das CORBA-Objekte implementiert

• Object: abstraktes CORBA-Objekt mit Schnittstelle und Identität

• Object Id: Identität, mit der ein POA ein bestimmtes Objekt identifiziert

• POA: Verwaltungseinheit eines Servers

• Object Reference: enthält Informationen zur Identifikation von Server, POA undObject

Frage 3.13Wie wird ein Objekt am POA erzeugt?

Antwort 3.131. Instanziierung der Servant-Implementierung im Server

16

Page 17: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

2. Aktivierung des Servants am Object-Adaptor

• Aufruf von aktivate_object am POA

• Servant erhält dadurch eine Object Id

3. Servant wird mit Object Reference versehen

⇒Aufruf von servant_to_reference am POA liefert Objektreferenz auf das CORBA-Objekt

4. Object Reference kann herausgegeben werden

⇒ über Nameservice

⇒ als Ergebnis eines Aufrufs an einem Client

⇒ Client installiert Client-Stub zur Weiterleitung der Aufrufe an den Server

Frage 3.14Welche Schritte sind erforderlich um ein Objekt zu benutzen?

Antwort 3.141. Erzeugung eines Stubs ⇒ Auswahl der Client-Programmiersprache.

2. Empfang eines Parameters mit Objekttyp

⇒ automatische Erzeugung einer neuen Objektreferenz aus dem Stub-Code

⇒ Aufruf von Operationen gemäß Sprachanbindung

3. Parameterübergabe

• Objekttypen: Übergabe der Objektreferenz

• Basistypen: Übergabe des abgebildeten Sprach-Datentyps

• komplexe Typen: Übergabe sprachabhängig

• Übergabe bei out und inout-Parametern sprachabhängig, da Programmier-sprachen in der Regel nur einen Wert zurückgeben können ⇒ Holder-Klassen

4. Typumwandlung

• narrow-Operation macht aus Helper-Klassen die zugehörige Klasse

• Umwandlung in Obertyp ist immer möglich

• Umwandlung in Untertyp ist nur möglich, wenn dieser tatsächlich vorhandenist

5. sprachabhängige Code-Generierung

Frage 3.15Was repräsentiert die IOR?

Antwort 3.15Das CORBA-Objekt, nicht den Servant.

17

Page 18: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Frage 3.16Wie wird eine Anwendung initialisiert?

Antwort 3.16• Referenz auf den Namensdienst wird beim ORB erfragt, ist vorkonfiguriert vom

Systembetreiber

• Alternativ Übergabe der Referenz außerhalb des Systems per String

Frage 3.17Welche Aufgabe hat der Object Adaptor?

Antwort 3.17• Generierung von Objektreferenzen

• Entgegennahme eingehender Methodenaufrufanfragen

• Weiterleitung von Methodenaufrufen an den entsprechenden Servant

• Authentisierung des Aufrufers

• Aktivierung und Deaktivierung von Servants

• Registriert Serverklassen im Implementation Repository

Frage 3.18Welche Ziele verfolgt der Portable Object Adaptor?

Antwort 3.18• Portabilität von Objektimplementierungen zwischen verschiedenen ORBs

• Trennung von Objekt und Implementierung

– eine Implementierung kann mehrere CORBA-Objekte realisieren

– Implementierung kann bei Bedarf dynamisch aktiviert werden

– persistente CORBA-Objekte

• Mehrere POA-Instanzen sind innerhalb eines Servers möglich

Frage 3.19Wie wird ein POA erzeugt?

Antwort 3.19• Root-POA existiert in jedem ORB

• Referenz auf Root-POA kann beim ORB erfragt werden

• Weitere POAs mit unterschiedlichen Konfigurationen können am Root-POA er-zeugt werden ⇒ POA erhält einen Namen

• POA-Instanzen teilen sich einen Kommunikationskanal

18

Page 19: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Frage 3.20Wie werden CORBA-Referenzen erzeugt?

Antwort 3.20• Normalfall: Servant existiert und wird dem POA mit activate_object gemeldet,

die Referenz wird mit server_to_reference am POA erzeugt

• Implizite Aktivierung: POA erzeugt automatisch eine Object Reference, wenn einnicht aktivierter Servant als Parameter oder Ergebnis nach außen übergeben wird

• Explizite Erzeugung einer Referenz: Object Reference wird erzeugt ohne daß einServant existiert ⇒ abstraktes CORBA-Objekt

Frage 3.21Aus welchem Grund werden Objekte, POAs und Server deaktiviert?

Antwort 3.21POA, Server und Objekte können deaktiviert werden um Betriebsmittel zu schonen.

Frage 3.22Wie werden ankommende Anfragen bearbeitet?

Antwort 3.221. Serverprozeß finden: Der ORB lokalisiert den Serverprozeß. Falls dieser deaktiviert

ist, leitet er den Aufruf an das Implementation Repository weiter.

Dieses weiß wie das Objekt aktiviert werden kann⇒ Start der Servers, Aktivierungdes POA und Weiterleitung des Aufrufs.

2. POA finden: Der ORB lokalisiert den zuständigen POA. Falls dieser deaktiviertist, ruft der ORB den Adapter Activator am Vater-POA auf.

3. Servant finden: Der ORB leitet den Aufruf an den zuständigen POA weiter. DerPOA findet den Servant gemäß Servant Redention- und Request Processing Stra-tegy.

4. Skeleton finden.

Frage 3.23Was versteht man unter einer POA-Policy?

Antwort 3.23Der POA wird bei seiner Erzeugung per Policy-Object konfiguriert.

Frage 3.24Welche POA-Policies gibt es?

Antwort 3.24• Threading Policy

• Lifespan Policy:

19

Page 20: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

– TRANSIENT: Objekte überleben den Servant nicht

– PERSISTENT: Objekte überleben POA und Servant

• Object Id Uniqueness

• Object Id Assignment – system- und benutzervergeben

• Implicit Activation

• Servant Retention – Tabelle aktiver Objekte ordnet Servants CORBA-Referenzenzu

• Request Processing – Default Servant für nicht aktivierte Objekte, automatischeErzeugung von Servants für unbekannte Objekte

Frage 3.25Welchen Zweck hat das Dynamic Invocation Interface?

Antwort 3.25Zur Übersetzungszeit ist möglicherweise noch nicht klar welchen Typ ein Objekt zurLaufzeit haben wird. Das Interface Repository kennt Objektschnittstellen. Bei jedemObjekt kann über die Methode get_interface eine Referenz auf ein CORBA-Objekt, dasseine Schnittstelle beschreibt erfragt werden.

create_request steht bei jedem CORBA-Objekt zur Verfügung. Der Methodennamewird als String, die Parameter eingepackt in den Typ any übergeben.

Frage 3.26Wie erfolgt der Methodenaufruf?

Antwort 3.261. ermittle die Methodensignatur aus Repository

2. erstelle Parameterliste

3. erstelle die Aufrufbeschreibung

4. führe den Aufruf als RPC, asynchroner RPC oder per Datagrammkommunikationdurch

Frage 3.27Welchen Zweck hat das Interface Repository?

Antwort 3.27• Typprüfung

• Abruf von Metadaten für Clients und Tools (Debugger, . . . )

• Implementierung der Methode get_interface jedes Objekts

20

Page 21: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Frage 3.28Wie wird die Datenbank des Interface Repositories mit Inhalt gefüllt? Was wird imInterface Repository hinterlegt?

Antwort 3.28Entweder vom Compiler oder durch Schreibmethoden. Im Interface Repository werdenTypeCode-Objekte hinterlegt, die Operationen für den Strukturvergleich und die Struk-turerkundung enthalten.

Frage 3.29Welchen Zweck haben die IDL-Helper-Klassen?

Antwort 3.29Sie sorgen für Call-by-Reference-Semantik.

Frage 3.30Welche Operationen bieten IDL-Helper-Klassen an?

Antwort 3.30insert() Cast Typ → any

extract() Cast any → Typ

type()/id() Repository-ID

read()/write() Marshall und Unmarshall

narrow() Nur bei Helper für Interface: Cast

Frage 3.31Worauf werden die einzelnen IDL-Konstrukte in Java abgebildet?

Antwort 3.31Klasse IDLEntity-Markerinterface

Modul Package

typedef Helperklasse

struct public final-Klasse mit Helper, Holder und public-Variablen

enum public final-Klasse mit Helper und Holder

Array Java-Array mit Helper und Holder

Sequence eindimensionales Array mit Helper und Holder

Zeichenkette String-Objekt

Konstante final public static-Variable

21

Page 22: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Parameter Bei out/inout Holder-Klasse

Bei in Mapping_for_type

Frage 3.32Wie wird ein Server mit Namensdienst implementiert?

Antwort 3.321. ORB initialisieren

2. RootPOA-Referenz besorgen

3. POA aktivieren

4. Servant-Objekt erzeugen

5. Servant-Objekt aktivieren

6. Namensdienst-Referenz beim POA besorgen

7. Name als Array erzeugen

8. Objekt beim Namensdienst anmelden

9. Auf Anfragen warten

Frage 3.33Welche Aufrufarten kennen Sie?

Antwort 3.33• Normaler Aufruf durch invoke am Request-Objekt kehrt zurück sobald der Aufruf

durchgeführt wurde.

• Asynchroner Aufruf durch send_deferred am Request-Objekt. Ereignissynchroni-sation durch get_response, Ergebnisabfrage durch poll_response.

• Datagramm-Aufruf durch Aufruf von send_oneway am Request-Objekt. Maybe-Once-Semantik, kein Ergebnis.

Frage 3.34Welchen Zweck hat das Dynamic Skeleton Interface?

Antwort 3.34Das Dynamic Skeleton Interface ermöglicht es Methodenaufrufe für Objekte entgegenzu-nehmen, deren Schnittstelle nur dynamisch ermittelbar ist (Bridges zu anderen ORBs,CORBA-gekapselte Datenbank, dynamisch erzeugte Objekte und Schnittstellen). DIIund DSI sind von der Gegenseite nicht von statischen Stubs zu unterscheiden.

22

Page 23: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

3.2 Inter-ORB-ProtokollFrage 3.35Was ist GIOP?

Antwort 3.35General Inter-ORB-Protocol – Basisprotokoll für RPC, definiert das Marshalling fürIDL-Typen. Es ermöglicht die Kommunikation zwischen ORBs. IIOP ist GIOP überTCP.

Frage 3.36Was ist eine IOR?

Antwort 3.36Interoperable Object Reference – Objektreferenz als IDL-Datenstruktur. Repräsentationals String möglich.

3.3 CORBA-ServicesFrage 3.37Was sind Services?

Antwort 3.37Erweiterungen des ORBs durch Basisdienste für Nebenläufigkeit, Namen, Objekterzeu-gung, Persistenz, . . .

Sie stellen Dienste für häufig zu lösende Probleme zur Verfügung.

Frage 3.38Wie werden Services verwendet?

Antwort 3.38Per Methodenaufruf.

3.4 FT-CORBAFrage 3.39Was versteht man unter einem Fault? Was unter einem Error? Was unter einem Failure?

Antwort 3.39Fault Fehlerursache – unerwünschter Zustand, der zu einem Fehler führen kann.

Error Fehler – Systemzustand, der nicht den Spezifikationen entspricht.

Failure Ausfall – Diensterbringung nicht mehr möglich.

Frage 3.40Welche Art von Fehlern behandelt FT-CORBA?

Antwort 3.40FT-CORBA betrachtet fail-stop-Fehler, d. h. jeder Knoten erfährt in endlicher Zeit vomAusfall eines Knotens.

23

Page 24: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Frage 3.41Welche Maßnahmen sind zur Fehlerbehandlung notwendig?

Antwort 3.41• Redundanz

• Erkennen von Fehlern

• Recovery

• Logging

• Zustandstransfer

• Transparente Verschattung von AusfällenRedundanz ist in CORBA nicht spezifiziert. FT-CORBA ermöglicht Fehlertoleranz

bei minimaler Modifikation von Anwendungen.

Frage 3.42Was versteht man unter einer Objektgruppe?

Antwort 3.42Menge aller Replikate eines Objekts. Ziel der Objektgruppe ist Replikationstransparenzund Fehlertransparenz zu erreichen.

Frage 3.43Wodurch wird in CORBA Identität erreicht? Wodurch in FT-CORBA?

Antwort 3.43Bei CORBA ist Identität durch den Ausführungsort gegeben. Bei FT-CORBA durchFTDomainId, ObjectGroupId und bei einzelnen Replikaten durch den Ort.

Frage 3.44Was versteht man unter einem Zustand?

Antwort 3.44Menge an Informationen, die zur Erzeugung von konsistenten Replikaten nötig ist ⇒Repliziertes Objekt und Infrastruktur.

Frage 3.45Inwiefern ist Deterministik wichtig für Fehlertoleranz?

Antwort 3.45Determinismus ist eine Voraussetzung für Replikation. Objekte müssen bei gleichen Auf-rufen gleiche Folgezustände einnehmen. Problemfälle: Zufallszahlen, externe Informati-onsquellen, Koordinierung von Threads.

Frage 3.46Was bedeutet aktive Replikation? Was passive Replikation?

Antwort 3.46aktiv Jedes Replikat bearbeitet alle Anforderungen.

24

Page 25: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

passiv Das Master-Replikat bearbeitet Anforderungen, alle anderen Replikate sind inWartestellung.

Frage 3.47Welche Vor- und Nachteile hat aktive Replikation? Welche passive?

Antwort 3.47aktiv Schnelle Umschaltung im Fehlerfall, aber hoher Aufwand durch Gruppenkommu-

nikation.

passiv Längere Verzögerung bei Ausfall, geringerer Aufwand zur Laufzeit, schnellereAntwort im Normalbetrieb.

Frage 3.48Was sind die Aufgaben des Servers?

Antwort 3.48• Objektrepräsentation

• Verwaltung der System- und Fehlertoleranzanfragen pro Objektgruppe

• Erzeugung von replizierten Objekten

• Erkennen von Ausfällen

Frage 3.49Welche Aufgaben hat der Client?

Antwort 3.49• Failover

• Adressierung: Ersetzung veralteter Referenzen in Kooperation mit dem Server

• Benachrichtigung der Anwendung über den Ausfall der Verbidung

Frage 3.50Wer verwaltet die Fehlertoleranz?

Antwort 3.50Im Normalfall die Infrastruktur, in Spezialfällen die Anwendung.

Frage 3.51Was versteht man unter einer Fault Tolerance Domain?

Antwort 3.51Der Replication Manager steuert eine Menge von Rechnern zur Bereitstellung von feh-lertoleranten Applikationen.

Frage 3.52In welchen Bereichen ist FT-CORBA problematisch?

25

Page 26: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Antwort 3.52• Determinismus ist Aufgabe des Anwendungsentwicklers

• keine explizite Unterstützung für

– Behandlung von Netzwerkpartitionierung

– bösartige Fehler

– Softwarefehler, Designfehler

• Alle Replikate eines Objekts müssen dieselbe Infrastruktur nützen

Frage 3.53Wie erfolgt bei FT-CORBA die adressierung?

Antwort 3.53Die Interoperable Object Group Reference besitzt mehrere IOR-Profile. Jedes Profilenthält Informationen über FTDomainId, ObjectGroupId und ObjectGroupRefVersion.Genau ein Profil enthält TAG_PRIMARY. Adressiert werden entweder Replikate oderGateways.

Frage 3.54Wie begegnet man dem Problem veralteter Objektreferenzen bei Veränderungen an derObjektgruppe?

Antwort 3.54Versionsinformationen werden als GROUP_VERSION Service Context der Anfrage bei-gefügt. Falls die Anfrage des Client veraltet ist, wird eine LOCATE_FORWARD_PERMException erzeugt. Ist die Version des Servers veraltet, so wird der Replication Managernach der aktuellen Referenz gefragt.

Frage 3.55Welches Problem ergibt sich, wenn eine COMM_FAILURE, TRANSIENT, NO_RESPONSEoder OBJ_Adapter Exception auftritt? Wie begegnet man ihm?

Antwort 3.55Evt. wird die at-most-once-Semantik verletzt. Die Lösung liegt in der eindeutigen Iden-tifizierung durch den REQUEST Service Context. Dieser enthält Client Id, Retention Idund Expiration Time. Dadurch erkennt der Server ORB Wiederholungen von Anfragen.

Frage 3.56Welches Problem ergibt sich durch den Ausfall eines Servers oder einer Verbindung? Wiekann man es lösen?

Antwort 3.56Der Client bekommt einen Ausfall evt. nicht mit. Das Problem kann gelöst werden durchheartbeat messages. Der Client spezifiziert Aufruffrequenz und Timeout via Policy. Erruft dann _FT_HB() am Server-ORB auf, der Server-ORB muß dies jedoch expliziterlauben.

26

Page 27: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Frage 3.57Welche Möglichkeiten gibt es Replikation zu konfigurieren?

Antwort 3.57• Stateless ⇒ statische Daten, nur lesender Zugriff auf die Daten

• Cold Passive Replication ⇒ Sicherungspunkt und Protokollierung von Aufrufen

• Warm Passive Replication ⇒ Zustand des Primärreplikats wird periodisch an an-dere Replikate übertragen, außerdem Protokollierung

• Active Replication ⇒ alle Replikate bearbeiten alle Aufrufe

Frage 3.58Was ist bei der Implementierung von Active Replication zu beachten?

Antwort 3.58Duplikate von Aufrufen und Antworten müssen unterdrückt werden. Ausfälle werdentransparent verschattet, Beitritte erfordern einen Zustandstransfer.

Frage 3.59Was ist bei der Implementierung von Passive Replication zu beachten?

Antwort 3.59Bei Warm Passive ist ein periodischer Zustandstransfer erforderlich.

Aufrufe müssen protokolliert werden, Sicherungspunkte müssen erstellt werden. Beieinem Ausfall wird ein neues Primärreplikat ausgewählt und initialisiert. Bei WarmPassive muß der Zustand an Beitrittskandidaten übertragen werden.

Frage 3.60Wie sind aktive und passive Replikation zu bewerten?

Antwort 3.60• passiv:

– geringer Betriebsmittelbedarf

– langsame Erholung

• aktiv:

– hoher Betriebsmittelbedarf

– schnelle Erholung

Frage 3.61Was kann bezüglich Mitgliedschaft konfiguriert werden?

Antwort 3.61Entweder erzeugt und platziert die Infrastruktur die Replikate oder die Anwendung tutdies gemäß ihren Erfordernissen. Falls die Infrastrukur die Replikate erzeugt, beauftragtdie Anwendung die Infrastruktur mit der Objekterzeugung. Falls die Anwendung dieReplikate erzeugt, sorgt sie für die Erzeugung einzelner Replikate.

27

Page 28: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Frage 3.62Was läßt sich bezüglich Konsistenz konfigurieren?

Antwort 3.62Konsistenz wird entweder durch die Infrastruktur oder durch die Anwendung durchMechanismen wie Logging und Zustandssicherung sichergestellt.

Frage 3.63Was läßt sich bezüglich Monitoring konfigurieren?

Antwort 3.63Die Granularität der Betrachtung kann auf Ebene von

• Mitgliedern

• Ort – Objekt wird als Repräsentant für den Ort betrachtet

• Ort und Typ – ein Objekt wird pro Ort und Typ kontrolliert

eingestellt werden.

Frage 3.64Wie werden Factories konfiguriert?

Antwort 3.64FactoryInfo-Objekte konfigurieren die Erzeugung von replizierten Objekten. Sie enthal-ten eine Referenz auf die Fabrik, den Ort der Fabrik und Informationen zur Konfigurationder Fabrik.

Frage 3.65Was ist die Aufgabe des Replication Managers?

Antwort 3.65Er verwaltet Objektgruppen und ihre Eigenschaften

• Replikationsart

• Mitgliedschaft

• Konsistenz

• . . .

Seine Schnittstelle ermöglicht die Konfiguration dieser Eigenschaften für

• alle Objektgruppen

• alle replizierten Objekte eines bestimmten Typs

• ein bestimmtes repliziertes Objekt zum Zeitpunkt der Erzeugung

• ein bestimmtes repliziertes Objekt zur Laufzeit

28

Page 29: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

3 CORBA

Frage 3.66Welche Komponenten sind bei FT-CORBA am Fehlermanagment beteiligt?

Antwort 3.66• Fault Detector: erkennt Fehler, erzeugt Fehlerberichte

• Fault Notifier: bildet eine Datenbank mit Fehlerberichten

• Fault Analyzer: verarbeitet Fehlerberichte und faßt abhängige Fehler zusammen

Frage 3.67Wie kann Fehlertoleranz implementiert werden?

Antwort 3.67• Integrativ: direkt durch den ORB

• als Dienst: als CORBA-Service

• als Interceptor: Aufrufe werden unterhalb des ORBs abgefangen

Frage 3.68Wie funktioniert der Integrative Ansatz?

Antwort 3.68• Der ORB wird um Gruppenkommunikation ergänzt

• Das IIOP wird durch ein proprietäres Protokoll ersetzt

Frage 3.69Welche Vor- und Nachteile hat der Integrative Ansatz?

Antwort 3.69• Vorteil: Effizient und transparent, der Ansatz kann deswegen FT-CORBA-kompatibel

sein.

• Nachteil: Aufwändige Implementierung.

Frage 3.70Wie funktioniert der Dienst-Ansatz?

Antwort 3.70Die Anwendung kommuniziert über lokale Dienste mit dem replizierten Objekt.

Frage 3.71Welche Vor- und Nachteile hat der Dienst-Ansatz?

Antwort 3.71• Vorteil: Keine Veränderung am ORB nötig ⇒ portabel.

• Nachteile:

– Indirektion über den ORB

29

Page 30: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

4 Fragmentierte Objekte

– nicht transparent

– nicht kompatibel

Frage 3.72Wie funktioniert der Interceptor-Ansatz?

Antwort 3.72Aufrufe werden abgefangen und an replizierte Objekte weitergeleitet.

Frage 3.73Welche Vor- und Nachteile hat der Interceptor-Ansatz?

Antwort 3.73• Vorteil: transparent.

• Nachteil: Implementierung betriebssystemspezifisch.

Frage 3.74Was ist die Voraussetzung sowohl für aktive als auch für passive Replikation?

Antwort 3.74Ein total geordneter Multicast, d. h. es gibt eine globale Reihenfolge auf alle Nachrichten.

Frage 3.75Welche Voraussetzungen müssen für einen Zustandstransfer bei JGroups erfüllt sein?

Antwort 3.75• Checkpointable-Schnittstelle muß implementiert werden

• Objektzustand muß als Bytearray bereitgestellt werden

• Sicherungspunkt, wenn das Objekt in einem konsistenten Zustand ist:

⇒ alle laufenden Aufrufe werden beendet

⇒ neue Aufrufe werden blockiert

Frage 3.76Welche Voraussetzung muß erfüllt sein, damit Fehlertoleranz möglich wird?

Antwort 3.76Es muß Determinismus gegeben sein. Deswegen ist eine mehrfädige Ausführung nichtmöglich.

4 Fragmentierte ObjekteFrage 4.1Beschreiben Sie das Monolithische Objektmodell !

Antwort 4.1• Menge von kooperierenden Objekten

30

Page 31: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

4 Fragmentierte Objekte

• Interaktion durch Methodenaufruf, Austausch und Weitergabe von Objektreferen-zen

• Objekt liegt immer vollständig auf einem Knoten⇒ Objektreferenz entweder lokaloder entfernt

Frage 4.2Welche Probleme hat der monolithische Ansatz?

Antwort 4.2Bei Fehlertoleranz ist keine Zugriffstransparenz möglich, da eine Objektreferenz nur aufeine Instanz eines verteilten Objekts verweise kann. Dieses Problem kann durch dieEinführung einer Fassade in Form eines Hilfsobjekts gelöst werden, das dann allerdingsSingle Point of Failure ist. Die Erzeugung weiterer Hilfsobjekte würde den Verlust derZugriffstransparenz bedeuten.

Frage 4.3Welche Möglichkeiten bieten fragmentierte Objekte, die mit dem monolithischen Ansatznicht zu erreichen sind?

Antwort 4.3Transparente Erfüllung nichtfunktionaler Anforderungen, z. B.

• weiche Echtzeit

• Fehlertoleranz

• hohe VerfügbarkeitFrage 4.4Beschreiben Sie den Ansatz der Fragmentierten Objekte!

Antwort 4.4• Erweiterung des Stub-basierten Ansatzes

• Objekt liegt verteilt über mehrere Knoten vor

• Fragment ist verteilungstransparent

• ermöglicht transparente Migration und Replikation

• das Binden der Fragmente geschieht implizit

• die Fragmentimplementierung kann zur Laufzeit ausgetauscht werden

Frage 4.5Welche Aufgaben hat eine Fragment Implementation Factory?

Antwort 4.5• erzeugt neue Fragmente

• wählt die Klasse des lokalen Fragments aus

• wird beim Marshalling serialisiert

31

Page 32: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

5 Peer-to-Peer-Systeme

5.1 EinführungFrage 5.1Welche Nachteile hat die Client-Server-Architektur?

Antwort 5.1• das Verkehrsaufkommen ist zentral und asymmetrisch

• mangelnde Skalierbarkeit

• ungenutzte Betriebsmittel beim Client:

– Speicherplatz

– Rechenleistung

– Information

• Single Point of Failure

• Copyright

Frage 5.2Welche Eigenschaften hat ein Peer-to-Peer-System?

Antwort 5.2• gemeinsame Nutzung von Betriebsmitteln

• jedes Teilsystem kann Anbieter und Konsument sein

• Teilnehmer sind autonom

• Teilnehmer sind nicht notwendigerweise permanent mit dem Gesamtsystem ver-bunden

• Selbstorganisation

• Adressierung unabhängig von der Netzwerkschicht

Frage 5.3Welche Anforderungen muß ein Peer-to-Peer-System erfüllen?

Antwort 5.3• skaliert in großem Rahmen

• einfaches publizieren von Informationen für eine Vielzahl von Konsumenten

• schnelles und effizierntes finden von Informationen

• Teilnehmer können zu beliebigem Zeitpunkt beitreten oder ausscheiden

32

Page 33: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

5.2 NapsterFrage 5.4Was ist Napster?

Antwort 5.4Napster stellt einen zentralen Verzeichnisserver mit Adressen und Dateilisten der Teil-nehmer zur Verfügung.

Frage 5.5Wie reagiert der Verzeichnisserver auf eine Anfrage?

Antwort 5.5Er liefert eine Liste von IP-Adressen.

Frage 5.6Wie läuft der Dateitransfer ab?

Antwort 5.6Eine Ping-Nachricht wird an den Zielrechner zum Test der Verbindungsqualität ge-schickt. Die Übertragung erfolgt direkt vom Teilnehmer mit der besten Verbindung.

Frage 5.7Welche Probleme hat Napster?

Antwort 5.7Der Verzeichnisserver ist Single Point of Failure. Außerdem ist die Skalierbarkeit be-schränkt durch das Vorhandensein des zentralen Verzeichnisservers.

5.3 GnutellaFrage 5.8Welche Besonderheiten zeichnen Gnutella aus?

Antwort 5.8• Neueinsteiger benötigen die IP-Adresse mindestens eines teilnehmenden Knotens

• TCP, ASCII

• mehrere ständige Verbindungen zu anderen Knoten

• der eigentliche Datentransfer erfolgt per HTTP

Frage 5.9Wie erfolgt der Verbindungsaufbau?

Antwort 5.9• IP aus Hostcache

• → Connect-Nachricht

← OK-Nachricht

33

Page 34: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

• permanente Verbindung

Frage 5.10Wie wird die Netzwerkstruktur erhalten?

Antwort 5.10→ Ping um neues Peers kennenzulernen

← Pong enthält Informationen über Peer, IP-Adresse, Port, Anzahl Dateien, Größeder Dateien

• Außerdem Weiterleitung von Ping und Pong begrenzt durch Hops und TTL

• Duplikate werden verworfen

Frage 5.11Wie läuft eine Suche ab?

Antwort 5.11→ Query veranlaßt Suche nach Zeichenkette und teilt Mindestanforderung an die

Datenrate mit

← QueryHit

– Port und IP

– Übertragungsrate

– Liste mit Dateinamen

– Eindeutige ID des Peer

Frage 5.12Wie erfolgt der Dateitransfer?

Antwort 5.12Per HTTP.

Frage 5.13Welche Probleme hat Gnutella?

Antwort 5.13Broadcasts führen zu Überlast⇒ Abbruch von Verbindungen, Fragmentierung des Netz-werks, Kollaps.

Als Gegenmaßnahme werden Super-Peers als Proxies verwendet.

5.4 Verteilte Hash-Tabellen

5.4.1 Einführung

Frage 5.14Was ist eine Verteilte Hash-Tabelle?

34

Page 35: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

Antwort 5.14• die Daten werden mittels eines Algorithmus über alle Knoten verteilt, so daß eine

feste topologie entsteht

• Daten können durch Anfrage beim verantwortlichen Knoten angefordert werden

Frage 5.15Welches Ziel verfolgt das Konzept der Verteilten Hash-Tabellen?

Antwort 5.15• gleichmäßige Verteilung über alle Knoten

• ständige Anpassung bei Ausfall, Beitritt und Austritt

⇒ Vergabe von Zuständigkeit an neue Knoten

⇒ Übernahme und Neuverteilung der Zuständigkeit bei Austritt oder Ausfall

Frage 5.16Wie funktioniert eine Verteilte Hash-Tabelle?

Antwort 5.16• Abbildung der Inhalte durch eine Hash-Tabelle mit Wertebereich � Anzahl Ob-

jekte

• Verteilung des Schlüsselraums über alle Knoten durch Abbildung der Identifikato-ren auf den Wertebereich

• jeder Knoten ist mindestens für einen Teil des Schlüsselraums zuständig

• redundante Verteilung des Schlüsselraums auf die Knoten

• Zuständigkeit kann sich dynamisch ändern

Frage 5.17Welche Schritte sind nötig um Daten über eine verteilte Hash-Tabelle abzulegen?

Antwort 5.171. erzeuge Schlüssel

2. route Daten zu verantwortlichem Knoten

Frage 5.18Welche Schritte sind notwendig um Daten über eine verteilte Hash-Tabelle aufzufinden?

Antwort 5.181. beginne bei beliebigem Knoten und suche nach dem Schlüssel

2. route zu den gesuchten Daten

Frage 5.19Welche Schritte sind erforderlich, wenn ein neuer Knoten zu beitreten möchte?

35

Page 36: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

Antwort 5.191. Zuteilung eines bestimmten Bereichs des Schlüsselraums

2. Initialisierung mit Routing-Informationen und Einbindung in die Routing-Struktur

Frage 5.20Welche Schritte sind erforderlich, damit ein Knoten aus der Verteilten Hash-Tabelleaustreten kann?

Antwort 5.201. Aufteilung des Schlüsselraums auf benachbarte Knoten

2. Migration der Daten

Frage 5.21Was muß beim Ausfall eines Knotens geschehen?

Antwort 5.21• Nutzung redundanter Routing-Wege und Knoten

• erneute Zuweisung des Schlüsselraums

5.4.2 ChordFrage 5.22Welche Grundidee wird in Chord verwirklicht?

Antwort 5.22• jeder Knoten hat eine eindeutige 160 Bit-ID erzeugt aus seiner IP-Adresse

• ringförmige Anordnung geordnet nach ID

Frage 5.23Wie werden Informationen bei Chord auf die Verteilte Hash-Tabelle abgebildet?

Antwort 5.23• für jede Information wird eine Hash-ID gebildet

• die Information wird dem Knoten mit der unmittelbar folgenden ID übergeben

Frage 5.24Wie kann man Information in Chord finden?

Antwort 5.24Es werden in jedem Knoten folgende Zusatzinformationen verwaltet:

• eine Fingertabelle, für gilt, daß der Finger in Zeile k dem ersten Knoten im Ringnach ID

(n + 2k+1) mod 2m mit 1 ≤ k ≤ m (1)

entspricht.

n: ID des Rechners der Tabelle

36

Page 37: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

m: Schlüssellänge

k: Zeile in der Tabelle

• ID und IP des unmittelbaren Nachfolgers

• ID und IP des unmittelbaren Vorgängers

Der Suchaufwand ist O(log n).

Frage 5.25Wie tritt ein Knoten dem Chord bei?

Antwort 5.25Über bekannte Knoten; Anpassung von Vorgänger und Nachfolger.

Frage 5.26Wie kann die Netzwerkstruktur bei Suche und Informationsübertragung berücksichtigtwerden?

Antwort 5.26einfach: Auswahl auch basierend auf der Verbindungsqualität.

komplexer: Für jeden Knoten in der Fingertabelle wird zusätzlich eine Nachfolgerlisteverwaltet. Nachrichten werden an den Knoten aus der Liste mit der bestenVerbindungsqualität weitergeleitet.

5.5 JXTA

5.5.1 Einführung

Frage 5.27Was ist JXTA?

Antwort 5.27Eine generische Infrastruktur für Peer-to-Peer-Anwendungen.

Frage 5.28Welche Nachteile bisheriger Systeme sollen mit JXTA beseitigt werden?

Antwort 5.28• proprietäre Protokolle

• anwendungsspezifische Protokolle

• hoher Entwicklungsaufwand

Frage 5.29Welche Ziele verfolgt JXTA?

Antwort 5.29• Interoperabilität

37

Page 38: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

• Plattformunabhängigkeit bezüglich

– Programmiersprache

– Betriebssystem

– Netzwerkprotokoll

• universelle Verwendbarkeit

Frage 5.30Welche Eigenschaften hat JXTA?

Antwort 5.30• Menge von Protokollen, die Verbindung und Zusammenarbeit von Peers ermögli-

chen

• Middleware

• dezentraler Ansatz

• weder Topologie des physikalischen noch des virtuellen Netzwerks sind festgelegt

Frage 5.31Welche Grundkonzepte gibt es in JXTA?

Antwort 5.31• Peer

• Peer Group

• JXTA-ID

• Transportmechanismen

• Advertisment

Frage 5.32Was ist ein Peer?

Antwort 5.32Ein Teilnehmer, der durch ein Advertisment beschrieben wird. Er hat eine eindeutige IDund gehört mindestens einer Peer Group an. Es werden verschiedene Typen von Peersunterschieden: Simple Peer, Edge Peer, Rendezvous Peer sowie Router/Relay Peer.

Frage 5.33Was ist eine Peer Group?

Antwort 5.33Die Teilnehmer einer Peer Group kooperieren in einer festgelegten Weise und habenähnliche Dienste. Die Authentifizierung der Teilnehmer erfolgt durch die Peer Group.Ein neues Mitglied kann Anfragen bezüglich Betriebsmittel, Dienste und Mitglieder andie Gruppe stellen.

38

Page 39: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

Frage 5.34Was ist eine JXTA-ID?

Antwort 5.34• identifiziert eine Entität eindeutig

• trennt Lokalisierung von Identifizierung

Frage 5.35Welche Transportmechansmen stehen in JXTA zur Verfügung?

Antwort 5.35• Endpoint

• Pipe: unidirektional, asynchron, virtuell, P2P oder Multicast, kein ACK

• Message: Container für Daten (entspricht dem Datagramm)

– Umschlag mit protokollspezifischen Headern

– Daten als geordnete Menge von Tupeln

Frage 5.36Was ist ein Advertisment?

Antwort 5.36Eine XML-basierte Metadatenbeschreibung angebotener Netzwerke. Es ist zeitlich be-grenzt gült.

5.5.2 ProtokolleFrage 5.37Welche Protokolle stehen in JXTA zur Verfügung?

Antwort 5.37• Core Specification Protocols:

– Endpoint Routing Protocol

– Peer Resolver Protocol

• Standard Service Protocols:

– Peer Discovery Protocol

– Pipe Binding Procotol

– Peer Information Protocol

– Rendezvous Protocol

Frage 5.38Welche Aufgabe hat das Endpoint Routing Protocol?

Antwort 5.38• ermittelt dynamisch die Route von Peer zu Peer

39

Page 40: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

• baut neue Routen bei Topologieveränderung aufZweck:

• Integration von Routern hinter NAT

• Umsetzung verschiedener Protokolle

• Routing in Ad-Hoc-Netzwerken

Frage 5.39Wie läuft Routing nach dem Endpoint Routing Protocol ab?

Antwort 5.39Falls die Route nicht im Cache liegt wird eine Anfrage an einen Relay Peer gestellt.Der Relay Peer antwortet mit einer Folge von Hops. Die Nachricht wird durch Routing-Informationen ergänzt und die Information entlang der Route der Nachricht aktualisiertund von den beteiligten Peers zwischengespeichert.

Frage 5.40Welche Aufgabe hat das Peer Resolver Protocol?

Antwort 5.40• generische Dienstanfragen

• jede Dienstanfrage kann potentiell an alle Mitglieder der Peer Group weitergeleitetwerden

Frage 5.41Wie läuft eine Dienstanfrage gemäß Peer Resolver Protocol ab?

Antwort 5.41• Anfrage als Nachricht an alle beteiligten Peers

• Peer prüft ob er entsprechende Handler betreibt und stellt die Nachricht zu

• Peer prüft die Anfrage und sendet gegebenenfalls Resolver Response Message

• Falls nicht vom Handler unterbunden und Rendezvous Peer ⇒ Weiterleitung derNachricht

Frage 5.42Welche Aufgabe hat das Peer Rendezvous Protocol?

Antwort 5.42• regelt Registrierung von Peers bei Rendezvous Peers

• Vernetzung von Rendezvous Peers

• Verteilung von Nachrichten zwischen Rendezvous Peers

Frage 5.43Welche Randbedingungen gelten für die Verbindung von Peer und Rendezvous Peer?

40

Page 41: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

5 Peer-to-Peer-Systeme

Antwort 5.43• Leases schränken die zeitliche Dauer der Nutzung ein

• die Verbindung kann von beiden Seiten jederzeit aufgehoben werden

Frage 5.44Wie läuft die Vernetzung von Peers und Rendezvous Peers ab?

Antwort 5.44Peer:

→ Lease Request Message

← Lease Granted

→ Lease Cancel Message

Frage 5.45Wie läuft die Vernetzung der Rendezvous Peers ab?

Antwort 5.45Ziel ist dem Rendezvous Peer eine möglichst aktuelle Sicht der Gruppe zu verschaffen:

→ PeerView an andere Rendezvous Peers enthält Rendezvous Advertisment

← Response PeerView

Die Ausbreitung wird durch Rendezvous Propagate beschränkt.

Frage 5.46Welche Aufgabe hat das Peer Discovery Protocol?

Antwort 5.46Veröffentlichung und Suche von Betriebsmitteln.

Frage 5.47Wie läuft die Suche per Peer Discovery Protocol ab?

Antwort 5.47→ Discovery Query

← Discovery Response

Frage 5.48Welche Aufgabe hat das Peer Information Protocol?

Antwort 5.48Ermittlung von Statusinformationen.

Frage 5.49Wie läuft das Peer Information Protocol ab?

41

Page 42: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

6 Java Beans

Antwort 5.49→ PeerInfoQuery

← PeerInfoResponse: Uptime, Verkehr, Last, . . .

Frage 5.50Welche Aufgabe hat das Pipe Binding Protocol? Wie läuft es ab?

Antwort 5.50Aufbau virtueller Pipes. Ablauf:

1. ← Pipe Advertisment

2. Peer bindet Input Pipe an ID des Advertisments

3. anderer Peer sucht entsprechende Pipe mittels PipeResolver Query

4. Peer, der Inputpipe gebunden hat verschickt PipeResolver Answer

5. Anfragender Peer bindet Ouput PipeFrage 5.51Wie ist der JXTA-Protokollstapel zu bewerten?

Antwort 5.51• geringer Overhead

• geringe Anforderungen an das Transportsystem (nur unidirektionale asynchroneKommunikation wird gefordert)

• geringe Anforderung an die Ausführungsumgebung, es muß evt. nur eine Unter-menge des Protokolls implementiert werden

• flexibel

6 Java BeansFrage 6.1Was ist Java Beans?

Antwort 6.1Eine Schnittstellenspezifikation für wiederverwendbare Softwarekomponenten in Java.

Frage 6.2Was ist ein Bean?

Antwort 6.2Eine beliebige Java-Klasse, die den Java-Beans-Konventionen folgt.

Frage 6.3Wie wird bei Java Beans ein Objekt erzeugt?

Antwort 6.3

42

Page 43: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

6 Java Beans

RendezvousProtocol

Peer Binding

Protocol

Peer Discovery

Protocol

Peer ResolverProtocol

Peer InformationProtocol

Endpoint

Protocol

Abbildung 2: Der JXTA-Protokollstapel

43

Page 44: Middleware - HaWosiflfran/uni/IuK/Formelsammlungen/m… · Formeln und Notizen Middleware Florian Franzmann∗ 7. April 2009, 23:53 Uhr Abbildungsverzeichnis 1 Polymorphismus ...

Literatur

Literatur

[1] Rüdiger Kapitza, Jürgen K.: Middleware. Erlangen : Vorlesungsskript zur gleich-namigen Veranstaltung, 2007

44