Sr-8-wyk-1.0-Slajd4
Zwielokrotnianie obiektów
Podejście obiektowe do tworzenia systemów informatycznych jest bardzo efektywne; pozwala na proste obudowanie danych metodami przetwarzającymi te dane, co pozwala na wyraźnie rozgraniczenie poszczególnych komponentów systemu. To samo podejście próbuje się zastosować w systemach rozproszonych. W tym kontekście problem zwielokrotniania obiektów staje się bardzo ważny.
Zwielokrotnienie obiektu musi być pewien sposób nadzorowane tak, aby uniknąć problemów ze spójnością. Jednym z możliwych rozwiązań jest np. wymuszenie wykonywania metod na poszczególnych kopiach w tej samej kolejności. Przy założeniu determinizmu przetwarzania w obiektach, stan końcowy po serii wywołań tych samych metod z tymi samymi argumentami powinien być identyczny. Synchronizację taką można przeprowadzić na dwa sposoby. W pierwszym podejściu (rysunek a) obiekt replikowany jest świadomy istnienia innych kopii i sam współuczestniczy w koordynacji aktualizacji poszczególnych kopii. System operacyjny w takim rozwiązaniu nie musi wspierać w żaden sposób zwielokrotniania. Wywołania metod są synchronizowane samodzielnie przez obiekt. Zaletą tego podejścia jest możliwość adaptacji strategii zwielokrotniania do faktycznych potrzeb danego obiektu bez potrzeby rekonfiguracji całego systemu.
Druga metoda (rysunek b) zakłada, że obiekty nie są świadome zwielokrotniania, co oznacza, że cały ciężar zarządzania spójnością spada na warstwę pośrednią (ang. middleware ). System musi w tym przypadku zagwarantować globalne uporządkowanie wszystkich wywołań metod na wszystkich obiektach, co nie zawsze jest konieczne. Jest natomiast wygodne dla programistów samych obiektów, ponieważ nie muszą ich programować w żaden specjalny sposób.