Up: Architektura systemu CoSMoL

Wprowadzenie

PDA i telefony komórkowe są dobrym przykładem klienta korzystającego z usług przez bezprzewodową sieć. Zazwyczaj są one przenośne i mogą być używane niezależnie od miejsca przebywania. Problemem jest jednak to, że telefon komórkowy i PDA dzisiaj (jesień 2000 -- wiosna 2001, kiedy ta praca powstawała) mają ograniczone zasoby i są raczej wolne. Moc procesora i wielkość pamięci operacyjnej nie są wystarczająco duże do uruchomiania pełnej maszyny wirtualnej Javy z połączeniem sieciowym między klientem a usługą lub klientem a serwerem. Przykładem tutaj może być Jini, która wymaga profilu RMI i pełnej maszyny wirtualnej Javy, co z kolei oznacza potrzebę użycia szybkiego procesora i dużej pamięci. Pewne wysiłki dla rozwoju minimalnej konfiguracji maszyny wirtualnej już podjęto, ale nie jest to wystarczające do uruchomienia klienta łączącego się bezpośrednio z przestrzenią krotek Lindy i korzystającego z jej wszystkich możliwości.

Rysunek 2.1: Widok ogólny systemu CoSMoL
\includegraphics[scale=0.55]{rys_21.eps}

Na rysunku 2.1 przedstawiłem widok ogólny systemu CoSMoL. Na system CoSMoL składają się następujące elementy:

Wszystkie elementy systemu muszą mieć dostęp do sieci i swój adres IP, w przypadku rozwiązania korzystającego z TCP/IP.

Komunikacja w systemie opiera się na warstwie pośredniej, która łączy CoSMoL z różnymi aplikacjami mającymi interfejs do przesyłania wiadomości. Klient systemu ma możliwość zmiany kontekstu (logicznego lub fizycznego) lub zapytania o informacje związane z bieżącym środowiskiem. System wspomaga zadawanie zapytań do przestrzeni w celu wyszukiwania informacji. Istotne jest bezprzewodowe połączenie do sieci, dzięki któremu użytkownik systemu staje się bardziej niezależny. Jednak jest to rozwiązanie bardziej sprzętowe niż programistyczne, więc z mojej strony jedynie zapewniam możliwość takiej komunikacji, implementując odpowiednie biblioteki.

System CoSMoL zaprojektowałem dla określonej grupy urządzeń. Dzięki zastosowaniu platformy Javy, klienta CoSMoL można przenosić między urządzeniami mającymi określone zasoby i spełniającymi określoną specyfikację (patrz rozdz. 1.2). Klient systemu CoSMoL jest uruchamiany na urządzeniach należących do grupy D2 (patrz rozdz. 1.4). Do implementacji klienta użyłem konfiguracji CLDC i profilu PDAP oraz MIDP. Klient może komunikować się z urządzeniami należacymi do grupy D1, np. za pomocą PalmPilota można sterować lampami. W tym celu zaimplementowałem serwis tłumaczący wiadomości z przestrzeni krotek Lindy na protokół X10 [42] i w stronę przeciwną, tzn. sygnał pochodzący od urządzeń na język krotek (patrz rozdz. 6.4).

Do komunikacji między klientem a przestrzenią krotek użyłem serwera proxy, którego zadaniem jest pośredniczenie w przesyłaniu wiadomości, których treścią może być opis działania aplikacji, komunikaty od klienta lub serwisu. Założyłem, że wielkość wysyłanych danych będzie nie większa niż 8 KB. Użytkownik może znajdować się w sieci lokalnej lub w sieci rozległej w stosunku do przestrzeni krotek i serwisów. W lokalnym scenariuszu, użytkownik może mieć połączenie, które jest nastawione na ciągłą interakcje z usługą. W związku z tym transmisja powinna być szybka i wymagać krótkich czasów startowych, a także wiązać się z przetwarzaniem danych. Bliższa odległość ułatwia częstą interakcję. W sieci rozległej połączenie może być bardziej zawodne, więc użytkownik sieci powinien się liczyć z pewnymi opóźnieniami, które mogą być tolerowane i zgrywanie wiadomości do PDA może zajmować około kilkunastu sekund. Zastosowanie systemu CoSMoL w takim środowisku mogłoby służyć prezentacji informacji lub zarządzaniu usługami, które nie wymagają interakcji w czasie rzeczywistym.

Stworzyłem schemat języka zapewniającego znaczniki dla opisu aplikacji, który jest niezależny od platformy, na której jest uruchamiany. Zaimplementowałem oprogramowanie do generowania graficznego interfesju użytkownika z opisu usługi, który jest pobierany przez klienta CoSMoL w postaci krotek z przestrzeni krotek Lindy. Interpretacji opisu dokonuje przez interpreter umieszczony w PDA. Dodatkowo są dostępne biblioteki z implementacjami graficznego interfejsu użykownika, bazy danych i serwisów.

W pracy korzystałem z PalmPilota PalmIIIx [32] i z symulatora PalmPilota POSE [31]. W PalmPilocie używałem maszyną wirtualną Javy J9 [30] pochodzącą z firmy OTI, a do implementacji mechanizmów przestrzeni krotek Lindy użyłem TSpaces [41].


sierpień 2001