System lokalizacji urządzeń mobilnych Czyli gdzie jestem, kim jestem?
Plan prezentacji: Założenia Pojęcia Architektura Czego używamy?
Założenia: Język – Java Architektura klient-serwer Bezpieczeństwo – SSL Adaptacja do istniejącego systemu przesyłu danych opartego o GPRS Łatwość dostępu do danych lokalizacyjnych Niskie koszty użytkowania Wykorzystanie różnych ciekawych i darmowych rozwiązań Keep It Simple Stupid
Zarys całokształtu: System lokalizujący samochody przedstawicieli handlowych firmy. Każdy przedstawiciel wyposażony jest w jednostkę GPS, PDA oraz telefon komórkowy pełniący rolę modemu GPRS. Aplikacja agenta umieszczona na PDA zbiera dane o aktualnym położeniu samochodu przez określony czas, następnie łączy się przy użyciu modemu GPRS i wysyła do serwera dane reprezentujące trasę którą przebył agent od ostatniej aktualizacji. W centrali firmy aplikacja kliencka łączy się z serwerem, pobiera z bazy danych informacje o trasie wybranego agenta i prezentuje ją na mapie.
Architektura Internet GPRS GPRS Serwer Komputer PC firmowy Agent mobilny
Architektura – Agent mobilny GPRS Bluetooth Bluetooth Telefon komórkowy PDA GPS Komunikacja pomiędzy Pocket PC a modułem GPS poprzez Bluetooth W tym celu używamy darmowego API – OpenLAPI API to jest podobne do standardu przemysłowego (JSR-179), który niestety często nie jest implementowany na urządzeniach przenośnych. OpenLAPI jest w całości napisane w Javie (J2ME) dzięki czemu może być użyte na każdej platformie sprzętowej Rozważamy przeniesienie aplikacji klienckiej na komórkę (zmniejszenie liczby potrzebnych urządzeń).
Pojęcia – MIDlet MIDlet – Jest to aplikacja napisana w języku Java dla urządzeń obsługujących profil MIDP (Mobile Information Device Profile – konfiguracja zawierająca odpowiednie klasy języka J2ME) takich jak telefony komórkowe czy PDA. MIDlety dziedziczą po klasie MIDlet i muszą spełniać kilka wymagań takich jak metody: startAPP(), destroyApp(), pauseApp(), które wywołują odpowiednie stany
Pojęcia - Servlet Pojęcie to powinno być już wszystkim naszym wiernym słuchaczom znane Jednakowoż przypomnijmy: Jest to program platformy Java wykonywany po stronie serwera – pozwala na dynamiczną modyfikację zawartości WWW. Servlety zwykle korzystają z zewnętrznych danych, takich jak informacje z formularzy i innych interakcyjnych elementów na stronie WWW.
Pojęcia - J2ME J2ME - Java Platform Micro Edition – Specyfikacja Sun Microsystems opisująca uproszczoną platformę Java. Zaprojektowana z myślą o urządzeniach z mocno ograniczonymi zasobami. Posiada własny (okrojony w stosunku do JSE) zbiór klas zwanych konfiguracją. Środowisko to posiada także (w zależności od wybranej konfiguracji) własne maszyny wirtualne.
Pojęcia NMEA – Standard opisujący komunikację pomiędzy urządzeniami lokalizującymi GPS (ale nie tylko – również sonary itp.). NMEA używa prostego protokołu opartego na ASCII i łączu szeregowym Google Earth KML (Keyhole Markup Language) – Język bazowany na XML służący do prezentowania informacji geograficznych.
Pojęcia - KML Przykładowy dokument KML:
Czego używamy - OpenLAPI Bardzo przydatny tryb emulatora: - Możliwość dostępu do urządzenia GPS przez Bluetooth - Emulowanie urządzenia ruchomego za pomocą pliku NMEA - Emulowanie urządzenia ruchomego z predefiniowanej trasy zapisanej w Google Earth KML. -Emulator pozwala na pisanie aplikacji na sprzęcie klasy PC i przeniesienie kodu na dowolne urządzenie ruchome (to działa!)
Czego używamy - OpenLAPI API to może być „zapakowane” jako część MIDlet’a Zapewnia dostęp do danych lokalizacyjnych modułu GPS (położenie, prędkość etc.) Rozwiązuje problem wielu urządzeń które zostały wyprodukowane przed zaadaptowaniem JSR-179 (wiele różnych interfejsów) Przeszukiwanie log’ów z historią położenia
Czego używamy – Net Beans IDE Mobility Pack – Zawiera Sun Java Wireless Toolkit dla CLDC. Oferuje to dużo gotowych rozwiązań dla urządzeń mobilnych, od API’s graficznych do API’s dla różnych interfejsów Ciekawe rozwiązanie – Paleta. Paleta pozwala w niezwykle intuicyjny sposób zaprojektować stronę wizualną programu, jednocześnie tworząc „szablon” dla całego MIDlet’a
Czego używamy – Net Beans Rozwiązanie zasługujące na uwagę: Paleta
Czego używamy – GoogleMapsAPI Firma Google stworzyła i udostępniła Google Maps API opisujący od podstaw wszystkie funkcje i komponenty potrzebne do tworzenia map na stronach www. Można tworzyć mapy kartograficzne, mapy satelitarne i mapy hybrydowe. API pozwala na rysowanie na mapie dowolnych obiektów – linii, znaczników, kształtów
Czego używamy – GoogleMapsAPI Przykładowy kod rysujący linię składającą się z wielu segmentów (na dwa sposoby)
Google Maps API Kod taki umieszczamy na stronie (w naszym przypadku będzie generowany przez servlet):
Google Maps API Rezultat na mapie:
Do zrobienia Przeniesienie aplikacji klienckiej na telefon komórkowy – zmniejszy to liczbę potrzebnych urządzeń – Dzięki doktrynie Javy „write-once-run-anywhere” nie powinno być to zbyt skomplikowane. Zaimplementowanie bazy danych – Obecnie (faza robocza) dane o trasie są wysyłane jako plik .csv Rozszerzenie systemu o akwizycję innych danych, takich jak paliwo, stan licznika itp.
Dziękujemy za uwagę