 |
Zurück
Weiter
Design einer CORBA Extension
Extensions stellen eine weitere Schicht zwischen AppLogics und dem
entfernten Programm (in unserem Fall ein CORBA Server) dar, sie
leiten also Aufrufe vom AppLogic an das entfernte Programm weiter.
Andererseits sind die CORBA-Proxies auf der Client-Seite
ursprünglich für diese Aufgabe verantwortlich. Um nun beide
Technologien zu verbinden, müssen die Extensions die CORBA
Aufrufe von den AppLogics an die CORBA-Proxies weiterleiten. Daher
müssen wir die beiden Arten von Klassen auf eine sinnvolle Art
und Weise miteinander verbinden. Grafik 8
zeigt verschiedene Möglichkeiten, zwei Objekte miteinander zu
verknüpfen.

Grafik 8: Verknüpfen des Extension Objektes
CBank mit dem BankProxy (Quelle: Schmauch)
Von den beiden Möglichkeiten Vererbung und Delegierung
wählten wir die zweite. Um die Extension Objekte zu verwalten,
können wir das Object-Pooling von NAS verwenden oder die
Managerklasse der Extensions diese Aufgabe übernehmen lassen.
Das Object-Pooling eignet sich am Besten zur Verwaltung von wenigen,
aufwendigen Objekten, die nur unter hohem Aufwand erzeugt und/oder
zerstört werden können, z.B. bei Verbindungen zu
Datenbanken.
Wir betrachten CORBA-Proxies jedoch als einfach zu erzeugende und
zu löschende, und als in großer Anzahl vorhandene Objekte;
daher erscheint uns das Verwenden der Managerklasse als angebracht.
Das funktioniert folgendermaßen: Ein AppLogic bindet sich zu
Beginn an die Managerklasse der Extension, in unserem Fall der
BankManager, kann sich mit ihrer Hilfe an den CORBA Server
binden und erhält von dieser Klasse alle benötigten
CAccount und CBank (Extension-)Objekte. Also befinden
sich im Bankmanager neben der Methode zum Binden an den Bank Server
auch die Verwaltung der Objektreferenzen, die zuvor von den AppLogics
selbst in der Session vorgenommen wurde. Hierzu verwendet die
Managerklasse entweder das Session Objekt oder nicht, in
Abhängigkeit vom Design des Applikation Servers: Existiert nur
ein Application Server Prozeß, kann auf das Verwenden der
Session-Verwaltung verzichtet werden. Sobald es sich um mehrere
Application Server Prozesse handelt, verwenden wir die Session in der
Extension Managerklasse, um die Daten für alle Prozesse abrufbar
zu machen. Das Session Management des NAS sorgt dann für das
Verbreiten der Daten unter allen Prozessen.
Zurück
Weiter, Autor:
Christian Ey,
http://www.inweb.de/chetan
|
 |