Koordynacja oprogramowania pośredniego przy użyciu ObjectPlaces jest hybrydą dwóch powyższych podejść: przestrzeni pub / sub i przestrzeni krotek. Komponent aplikacji w mobilnych sieciach ad hoc (MANET) wymaga informacji z innych węzłów w celu wykonania rozproszonego zadania. Jednak ze względu na mobilność wszystkich węzłów i ograniczony zasięg transmisji lub komunikacji tych sieci ad hoc, pewna liczba węzłów może opuścić lub wejść w zasięg transmisji węzła, zmieniając w ten sposób jego kontekst. Jest to typowy scenariusz w sieciach ad hoc, w związku z czym kontekst każdego węzła często się zmienia. W celu koordynowania tych węzłów zaproponowano oprogramowanie pośredniczące do koordynacji korzystające z ObjectPlaces, które zajmuje się informacjami kontekstowymi węzłów. Kontekst węzła lub komponentu aplikacji odnosi się do zagregowanych informacji, które są dostępne dla wszystkich aktualnie osiągalnych węzłów w MANET. W związku z tym kontekst aplikacji zmienia się, ponieważ zmienia się informacja o osiągalnym węźle lub zmienia się zestaw osiągalnych węzłów. Widoki są abstrakcją w kontekście komponentu aplikacji. Dlatego węzeł może się gromadzić kontekst poprzez zdefiniowanie widoku. Widok opisuje, jak daleko sięga w sieci i jakie informacje interesuje węzeł. Jest to subskrypcja na zdarzenia w ObjectPlaces w pobliżu klienta. Widok jest aktywnie utrzymywaną strukturą, a kiedy zmienia się kontekst węzła, zmienia się również widok. Każdy węzeł może przechowywać „widoczne dane” w lokalnej kolekcji obiektów o nazwie ObjectPlace. Obiekty, które są interesujące dla innych węzłów i mogą być współużytkowane, są umieszczane w ObjectPlace. Obiekt ObjectPlace jest wariantem przestrzeni krotek. Jest to zbiór obiektów, którymi można manipulować za pomocą operacji, takich jak put, read i take, i jest to interfejs asynchroniczny. Operacje natychmiast zwracają kontrolę do klienta, a wyniki są zwracane, gdy są dostępne za pośrednictwem wywołania zwrotnego. Widoki to abstrakcje, które zapewniają klientom możliwość obserwowania zawartości zdalnych obiektów ObjectPlaces. Klienci mogą dowolnie tworzyć obiekty ObjectPlace, ale dla uproszczenia w każdym węźle tworzony jest tylko jeden obiekt ObjectPlace. Szablony służą do czytania lub pobieraj obiekty z ObjectPlace, ponieważ są one używane w przestrzeni krotek do odczytu współdzielonych danych. Szablony służą do wskazywania obiektów zainteresowania określonego klienta lub węzła. Dlatego szablon jest definiowany jako funkcja ze zbioru obiektów do wartości logicznej. Dla każdego pasującego obiektu szablon zwraca wartość true. Następujące operacje są zdefiniowane w ObjectPlace:
- Put (Set, Callback) umieszcza podany zestaw obiektów w ObjectPlace i zwraca wartość true do wywołania zwrotnego, jeśli wszystkie obiekty zostały pomyślnie dodane.
- Take (ObjectTmplt, Callback) usuwa obiekty pasujące do szablonu z ObjectPlace i zwraca je do wywołania zwrotnego.
- Watch (ObjectTmplt, EventTmplt, Lease, Callback) obserwuje zawartość ObjectPlace. Zwraca kopie obiektów pasujących do szablonu obiektu do wywołania zwrotnego (obiekt ObjectPlace nie jest zmieniany). Szablon zdarzenia służy do wskazania, jakie zdarzenia interesuje klienta na pasującym obiekcie.
Szablon zdarzenia operacji zegarka może być zgodny z trzema możliwymi zdarzeniami: isPresent, isPut lub isTaken. Widok jest lokalnym zbiorem obiektów, odzwierciedlającym zawartość wielu obiektów ObjectPlaces w osiągalnych węzłach w sieci na podstawie deklaratywnej specyfikacji. Oprogramowanie pośredniczące nieustannie zmienia tę kolekcję obiektów (tj. Widok), zarówno w odniesieniu do zmiany zawartości obiektów ObjectPlaces aktualnie w widoku, tak jak w odniesieniu do zmian w topologii sieci. Stąd widok reprezentuje kontekst węzła przeglądania.
Aby zbudować widok, klient lub węzeł określa:
Metrykę odległości i granica. To określa, jak daleko widok klienta osiągnie w sieci. Na przykład metryka liczby przeskoków z rozszerzeniem ograniczenia czterech: widok obejmie ObjectPlaces osiągalne w maksymalnie czterech zliczeniach z węzła przeglądania (gdzie widok jest zbudowany).
Szablon obiektu. Definiuje i ogranicza, jakie obiekty zostaną uwzględnione w widoku.
Korzystając z tych właściwości i parametrów, oprogramowanie pośredniczące wyszukuje w sieci węzły spełniające ograniczenia podane przez aplikację, gromadzi kopie odpowiednich obiektów danych i zwraca je do aplikacji w postaci lokalnej kolekcji obiektów. Tworzenie widoku i zmiany przedstawiono na rysunku
Aby umożliwić poprawne działanie oprogramowania pośredniego, opracowano protokół widoku rozproszonego , który konstruuje widoki w mobilnej sieci ad hoc w miarę zmian topologii i kontekstu węzła. Ten protokół widoku przede wszystkim tworzy minimalne drzewo rozpinające w części sieci, która jest ograniczona przez metrykę odległości zdefiniowaną w widoku. Drzewo to jest następnie wykorzystywane do kierowania zebranych danych do konstruktora widoku (tj. Węzła przeglądania, który jest trasą drzewa opinającego).