Komputery pojawiają się w naszym codziennym życiu na każdym kroku. W ciągu kilku ostatnich lat liczba małych, inteligentnych urządzeń znacząco wzrosła i ciągle się powiększa. Telefony komórkowe, komputery przenośne, cyfrowi asystenci (ang. PDA -- Personal Digital Assistant) stają się nieodłączną częścią naszego życia. Powstaje coraz więcej zdalnych serwisów, do których użytkownik chciałby mieć dostęp nie ruszając się z domu, biura, czy samochodu. Urządzenie podłączone do sieci, dzięki któremu użytkownik mógłby korzystać z usług lub zasobów udostępnianych przez inne urządzenie lub innych użytkowników Internetu, byłoby idealnym rozwiązaniem. Czynności takie jak użycie przenośnego telefonu do zdalnego dostępu do systemu alarmowego lub sprzętu HiFi, pobieranie informacji o stanie samochodu podczas jazdy bezpośrednio od producenta, używanie inteligentnej karty procesorowej (ang. smart card) w telefonie do przechowywania informacji personalnych lub dokonywania transakcji finansowych, włączanie do sieci sprzętów domowych już niedługo będą czymś tak powszechnym, jak prowadzenie samochodu czy dzwonienie. Wymaga to jednak rozwoju systemu komunikacyjnego, który umożliwiałby porozumiewanie się urządzeń i serwisów o tak niejednorodnym charakterze.
Urządzenia z wbudowanym mikroprocesorem, takie jak budzik, toster, ekspres do kawy, telewizor, samochód, klimatyzacja, czy telefon komórkowy nazywa się systemami wbudowanymi, ponieważ w ich wnętrzu znajduje się mały komputer wykonujący kilka podstawowych operacji. Standardowy procesor w tradycyjnym komputerze PC jest procesorem ogólnego przeznaczenia, mikroprocesor w systemie wbudowanym jest często wyspecjalizowany dla określonej grupy aplikacji. Podczas gdy komputer PC może wykonywać całą gamę aplikacji o różnych zastosowaniach, system wbudowany może realizować jedynie kilka specjalnie przygotowanych dla niego programów. Na przykład telefon komórkowy może udostępniać tylko aplikacje przeznaczone dla telefonów komórkowych, zaś elektroniczny organizator oferuje jedynie kalendarz i książkę adresową. Komputer PC może dostarczać kalendarz, książkę adresową, program faksowy, program skanujący itd. Rozszerzeniem możliwości urządzenia przenośnego byłoby stworzenie aplikacji z elastycznym interfejsem, która umożliwiałaby interakcję z dowolnym serwisem umieszczonym na zdalnym komputerze.
Celem niniejszej pracy było stworzenie systemu komunikacyjnego umożliwiającego dostęp do zdalnych serwisów sieciowych (programowych i sprzętowych) za pomocą PDA. Kluczem do rozwiązania problemu komunikacji okazało się zastosowanie przestrzeni krotek Lindy [1,4], która pełni funkcję bufora komunikacyjnego i zdalnej bazy danych. Klient systemu uruchamiany na PDA jest połączony zdalnie z przestrzenią krotek za pomocą serwera proxy. Klient może współpracować z jakimkolwiek serwisem sieciowym, mieć dostęp do bazy danych i zarządzać urządzeniami elektronicznymi, które mają interfejs do przestrzeni krotek Lindy.
W wyborze środowiska pracy kierowałem się uniwersalnością i możliwościami języka programowania. Najlepszym rozwiązaniem okazała się Java, która dzięki własnej maszynie wirtualnej, może być uruchamiana przez użytkownika na różnego typu urządzeniach przenośnych. W pracy korzystałem z maszyny wirtualnej i bibliotek J9 [30], które zostały opracowane przez Object Technology International Inc. (OTI) dla urządzeń przenośnych o ograniczonych zasobach sprzętowych i możliwościach komunikacji.
Na potrzeby systemu opracowałem również język o nazwie MXML, oparty na eXtensible Markup Language (XML) [43] oraz jego interpreter. Dokument w języku MXML jest używany do opisu interfejsu graficznego i akcji na przestrzeni krotek Lindy. Użytkownik dzięki zastosowaniu dokumentów zapisanych w tym języku, może sterować komponentami graficznymi i interakcją z serwisami.
W realizowanym systemie komunikacyjnym można wyróżnić trzy części. Pierwsza z nich to interfejs dla klienta systemu, zapewniający komunikację z PDA. Druga to przestrzeń krotek Lindy, wraz z serwerem proxy i protokołem komunikacyjnym, która pośredniczy w komunikacji. Trzecią stanowi interfejs na potrzeby dostępu do serwisów sieciowych i urządzeń elektronicznych, które dostarczają usługi. Systemowi nadałem nazwę CoSMoL (ang. Communication System For Mobile Devices Based On Linda).
W rozdziale 1 opisuję oprogramowanie i urządzenia, z których korzystałem w pracy nad projektem. Wyjaśniam pojęcie przestrzeni krotek Lindy, maszyny wirtualnej Javy oraz języka strukturalnego XML.
W rozdziale 2 przedstawiam szczegółowy opis architektury systemu CoSMoL i rozwiązań w nim przyjętych.
W rozdziale 3 omawiam język MXML i jego interpreter. Gramatykę języka opisuję w dodatku A.
Rozdział 4 poświęcam przedstawieniu interfejsu dla przestrzeni krotek Lindy.
W rozdziale 5 opisuję serwer proxy, który zastosowałem do komunikacji między PDA i przestrzenią krotek w systemie CoSMoL.
W rozdziale 6 przedstawiam prototypowe aplikacje dla PalmPilota korzystające z systemu.
W rozdziale 7 podsumowuję pracę nad systemem.
W pracy znajduje się również bibliografia materiałów, z których skorzystałem,
oraz słownik używanych przeze mnie terminów i skrótów.
Projekt realizowałem w czasie mojego stażu w Object Technology International Inc.(Ottawa, Kanada).