Up: System komunikacyjny dla urządzeń

Podsumowanie

Celem pracy było podłączenie urządzeń przenośnych -- PDA, a szczególnie PalmPilotów -- do serwisów oferowanych w sieci oraz zapewnienie przepływu informacji od urządzenia przenośnego do innej aplikacji lub od urządzenia przenośnego do innego urządzenia elektronicznego. Cel ten udało się osiągnąć przez stworzenie systemu komunikacyjnego CoSMoL. System umożliwia tworzenie w prosty sposób interfejsu użytkownika i uruchamianie aplikacji dla PalmPilotów. System może zostać użyty jako element pośredni między użytkownikiem a usługą zdalną, do której się użytkownik odwołuje.

System CoSMoL został implementowany w Javie. Argumentem przemawiającym za zastosowaniem Javy, jest możliwość przenoszenia tego samego oprogramowania między PDA, telefonem komórkowym i PC. Ograniczenia, które pojawiają się podczas pracy z platformą Javy, są związane z zapotrzebowaniem na zasoby sprzętowe przez oprogramowanie. Należy znaleźć optymalny zbiór klas, który bez żadnych modyfikacji można uruchamiać na PDA, telefonie komórkowym i PC. Kolejną przydatną cechą Javy są jej właściwości obiektowe. Umożliwiają one stworzenie interfejsów Javowych i bibliotek programistycznych dla różnych konfiguracji sprzętowych. Alternatywnym rozwiązaniem dla platformy Javy byłoby zastosowanie języka programowania, dla którego istniałby kompilator dla różnych urządzeń lub systemów operacyjnych. Niewiele jest jednak takich języków i kompilatorów. Maszyna wirtualna likwiduje to ograniczenie w przypadku Javy. Jednak minusem takiego rozwiązania jest wielkość maszyny wirtualnej, którą trzeba uruchamiać w całości, bez możliwości ograniczenia do niezbędnych elementów.

Jako bufor komunikacyjny i baza danych posłużyła przestrzeń krotek Lindy. Przestrzeń krotek umożliwia łączenie elementów systemu, zarządzanie danymi i ich aktualizację, utrzymywanie informacji o systemie CoSMoL, m.in komunikatów generowanych przez użytkowników, danych konfiguracyjnych potrzebnych dla serwisów. Komunikacja w systemie odbywa się za pomocą krotek. Prosty protokół do komunikacji między klientem a serwerem proxy umożliwia przepływ danych i poleceń do przestrzeni krotek. Serwer proxy w imieniu klienta pośredniczy w operacjach na przestrzeni. Otrzymujemy w ten sposób rozproszoną aplikację, bo kilku klientów może dokonywać działań na tej samej przestrzeni i wydanie jakiegokolwiek polecenia (np. wysłania krotki) może powodować dynamiczną zmianę kontekstu w systemie CoSMoL. Ten model komunikacji międzyprocesowej jest na wyższym poziomie abstrakcji niż przesyłanie prostych komunikatów. Ceną, którą trzeba za to zapłacić, jest wydajność systemu.

Zapewnienie interfejsu graficznego dla użytkownika było jednym z zadań w realizacji moich celów. Używając wstępnej specyfikacji platformy Javy dla PDA, stworzyłem własny zbiór obiektów graficznych opartych na AWT. Interfejs użytkownika odseparowałem od programu. Rozwiązanie to jest podobne do Model/Viewontroller(M/V) w języku programowania SmallTalk. Okazało się ono bardzo elastyczne w dokonywaniu zmian, choć ucierpiała na tym szybkość działania aplikacji.

Do opisu interfejsu graficznego i działania usługi posłużył język MXML, który stworzyłem na potrzeby tego systemu. Do jego najważniejszych cech można zaliczyć zgodność ze standardem XML, elastyczność komponowania i zmieniania układu graficznego przez zmianę opisu oraz łatwe łączenie obiektów opisanych znacznikami.

W swojej pracy zastosowałem jedno z możliwych rozwiązań dla bibliotek Javy korzystających z konfiguracji CLDC i profilu dla PDA. Zaimplementowałem biblioteki wspierające komunikację z przestrzenią krotek i tworzenie interfejsu graficznego. Ponieważ przestrzeń krotek wspiera asynchroniczną komunikację i umożliwia użytkownikowi systemu CoSMoL tworzenie klienta dla potencjalnych usług sieciowych, można byłoby się zastanowić nad użyciem technologii WAP. Zostałaby ona zintegrowana z językiem MXML, dla zwiększenia jego uniwersalności i efektywności.

Niewątpliwie istotnym elementem w dalszym pracach jest kwestia bezpieczeństwa, którą można rozpatrywać na dwa sposoby. Pierwszy, związany z kryptografią, to zapewnienie tajności operacji. Drugi, od którego może zależeć bezpieczeństwo naszego domu lub finansów, to zakończenie transakcji. W pierwszym przypadku, problemem jest wielkość biblioteki, jaka musiałyby być użyta do uruchomienia środowiska Javy. W związku z tym hasła mogą być przechowywane np. w lokalnej bazie danych w PalmPilocie, a komunikacja odbywać się dopiero w momencie zalogowania się do serwera proxy. Dla klienta zdalnego, który używa serwera proxy do komunikacji z serwisem, trzeba zaimplementować mechanizm transakcji. Mechanizm ten zapewniałby właściwe kończenie operacji w trakcie komunikacji z serwisem.


sierpień 2001