110 likes | 234 Views
Distribuovaný PNtalk s mobilními objekty Implementace syst é mu. Ivan Schwarz. Základní rysy systému I. mobilita objektů transparentní distribuce uniformní objektový model jemnozrná granularita striktně decentralizované řešení rozšíření metaprotokolu o podporu distribuovaného zpracování.
E N D
Distribuovaný PNtalk s mobilními objektyImplementace systému Ivan Schwarz
Základní rysy systému I • mobilita objektů • transparentní distribuce • uniformní objektový model • jemnozrná granularita • striktně decentralizované řešení • rozšíření metaprotokolu o podporu distribuovaného zpracování
Základní rysy systému II • předávání parametrů referencí • další způsoby předávání parametrů (by-move, by-visit) • ovládání mobility objektů programátorem • podpora dynamického přidávání a odebírání uzlů
Mobilita objektů Nové metody metaprotokolu PNObject • locate - zjištění pozice objektu • move: - přesun objektu • clone: - vytvoření vzdáleného klonu Příklad: aNode objB locate. objA move: aNode.
Alternativní způsoby předávání parametrů Úprava metody performMessage: a třídy PNtalkMessage Příklad: aMessage PNtalkMessage new selector #messageWithPar1:par2: withArguments:(Array with:par1 with:par2) passingMode: #(byMove byVisit) sender: self. objA performMessage: aMessage.
Vzdálené vytváření objektů • remoteNew: - metoda pro vytvoření objektu na vzdáleném uzlu • operace new je řízena metaobjektem Strategy Příklad: objA ClassA remoteNew: aNode.
Strategie přesunu objektů • Nový objekt metaprotokolu Strategy • Ovlivňuje vytváření objektů • Lze uživatelsky předefinovat PNtalkProcessor • reprezentuje jeden uzel v systému • nová metoda getAllNodes vrací všechnu aktivní uzly v systému
Implementace • unikátní identifikace objektů - universal unique identier (UUID) • serializace objektů - použití XML, úprava knihovny SIXX • komunikační vrstva – zajišťuje spojení mezi uzly, každý uzel udržuje spojení se všemi ostatními uzly, ke komunikaci používá sokety
Implementace II Vzdálené zasílání zpráv • použit mechanismus proxy-wrapper • proxy objekt existuje na všech uzlech, kde se nalézá reference • proxy zachytí zprávu a pošle ji po síti • na cílovém uzlu wrapper dostane serializovanou zprávu, kterou předá příslušnému objektu
Implementace III Postup při přesunu objektu: • uspání objektu • serializace objektu a přenos po síti • vytvoření klonu objektu na vzdáleném uzlu • zrušení původního objektu a nahrazení proxy objektem
Implementace IV • Slabá lokace – každý uzel drží informaci o poloze objektu, na který existuje reference • Silná lokace – metoda přeposílacích adres (forwarding addresses) • Při přesunu objekt zanechá na uzlu svou novou adresu, požadavky jsou pak směrovány na tuto adresu