1 System lokalizacji urządzeń mobilnychCzyli gdzie jestem, kim jestem?
2 Plan prezentacji: Założenia Pojęcia Architektura Czego używamy?
3 Założenia: Język – Java Architektura klient-serwerBezpieczeń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
4 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.
5 Architektura Internet GPRS GPRS Serwer Komputer PC firmowyAgent mobilny
6 Architektura – Agent mobilnyGPRS 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ń).
7 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
8 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.
9 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.
10 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.
11 Pojęcia - KML Przykładowy dokument KML:
12 Czego używamy - OpenLAPIBardzo 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!)
13 Czego używamy - OpenLAPIAPI 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
14 Czego używamy – Net BeansIDE 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
15 Czego używamy – Net BeansRozwiązanie zasługujące na uwagę: Paleta
16 Czego używamy – GoogleMapsAPIFirma 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
17 Czego używamy – GoogleMapsAPIPrzykładowy kod rysujący linię składającą się z wielu segmentów (na dwa sposoby)
18 Google Maps API Kod taki umieszczamy na stronie (w naszym przypadku będzie generowany przez servlet):
19 Google Maps API Rezultat na mapie:
20 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.
21 Dziękujemy za uwagę