| |
26
Neue Konzepte für das Management verteilter Systeme, Hauptseminar, LMU München WS 00/01
che Methode aufruft, geht der Controller-kritische Bereich der aufgerufene
Komponente dauerhaft in den Besitz der Controller-Komponente über. Alle
weiteren Aufrufe von anderen Komponenten schlagen fehl (bis die Controller-
Komponente ihren Anspruch explizit aufgibt oder aufhört zu existieren).
Solange der Controller-kritische Bereich nur von Nicht-Controller-
Komponenten benutzt wird, bleibt er öffentlich.
Clients (Nicht-Komponenten) können zu Controllern werden, indem sie dies
beim Controller-Dienst explizit beantragen.
· Kritische Bereiche: Durch adjunct Modifiers kann jede Methode als syn-
chronized unter drei Aspekten deklariert werden: Verteilte Threads, Trans-
aktionen oder Controller. Dabei bilden die unter einem Aspekt synchronisier-
ten Methoden einer Komponente einen gemeinsamen kritischen Bereich. Die
kritischen Bereiche haben folgende Semantik:
· Verteilte Threads: Der kritische Bereich bleibt gesperrt, solange sich ein
verteilter Thread darin aufhält.
· Transaktionen: Wie bei verteilten Threads, aber der kritische Bereich bleibt
gesperrt, bis die Transaktion beendet ist. Läuft keine Transaktion, so wird
für den Aufruf eine erzeugt, was den interessanten Nebeneffekt der Spei-
cherung der Komponente hat (siehe oben). Deshalb können Transaktions-
synchronisierte Methoden auch zur Steuerung des Persistenzdienstes
nützlich sein (z.B. zur Wiederherstellung nach einem Ausfall).
· Controller: Kommt der aufrufende Thread von einem Controller, so wird
der kritische Bereich nach Verlassen der Methode nicht entsperrt, der Con-
troller muss ihn explizit freigeben oder aufhören zu existieren.
· Ereignis-Dienst: Der Publish/Subscribe-Ereignisdienst baut auf dem Jini-
Ereignisdienst auf, welcher nur Eingangsschnittstellen für Komponenten defi-
niert. Der FMA-Ereignisdienst verwaltet ein hierarchisches Themenmodell mit
Warteschlangen zu jedem Thema. Hierarchisch heißt, dass Abonnenten für das
Thema
.magement.disk
auch
Nachrichten
zu
den
Themen
.management.disk.raid und .management.disk.scsi erhalten. Es
wäre denkbar, ein existierendes Informationsmodell auf die Themenhierarchie
abzubilden, jedoch sind keine Themen vordefiniert.
Point-to-point-Verbindungen zwischen Komponenteninstanzen können nur
gelegt werden, wenn die proprietäre Ausgangsschnittstelle einer Komponente
bekannt ist (falls eine existiert).
Einzelne Ereignisse können auch direkt an den Ereignishandler einer be-
kannten Komponenteninstanz geschickt werden.
· Log-Dienst: Eine einfache Protokoll-Datenbank. Einträge können unter den
Oberthemen audit, debug, warning, info, error und trace vorgenom-
men werden.
· Planungs-Dienst: Der Scheduling-Service nimmt ein Task-Objekt (sowie bei
Bedarf ein zugehöriges Parameter-Objekt) und einen Ausführungsplan entge-
|  |
|
| |
|
|