Dokumentacja architektury oprogramowania Lokalizator
Transkrypt
Dokumentacja architektury oprogramowania Lokalizator
Dokumentacja architektury oprogramowania Lokalizator Filip Borowiec, Wojciech Staszkiewicz, Jakub Sygnowski, Miłosz Świzdor 5 czerwca 2013 1 1.1 Wprowadzenie Cele Celem tego dokumentu jest przedstawienie architektury Lokalizatora GPS. 1.2 Zakres Niniejszy dokument zawiera szczegółowy opis przyjętych rozwiązań architektonicznych, zarówno w mobi webowej części Lokalizatora – oraz tych dotyczących komunikacji między obiema aplikacjami. 2 Prezentacja architektury Aby dogłębnie zrozumieć architekturę Lokalizatora GPS, dokonano opisu z trzech różnych perspektyw: końcowego, życia programu a także na poziomie interfejsu aplikacji. 3 Wygląd aplikacji Użytkownicy będą mieli do dyspozycji dwa interfejsy. Pierwszy z nich pozwala sterować aplikacją na urząd nym, a drugi umożliwia właścicielom kont zarządzanie z poziomu przeglądarki internetowej. 3.1 Interfejs urządzenia mobilnego Po otworzeniu aplikacji, użytkownikowi ukaże się podstawowy widok (Rys. 1a). Składać się on będzie z na zator’, pod którym będą przyciski i kontrolki. Pierwszy od góry znajdzie się przełacznik (on/off), który pozw oraz wyłaczyć przesyłanie informacji o położeniu urządzenia. Obok przełącznika, znajdzie się przycisk ’N 1 Jego wciśnięcie spowoduje wysłanie informacji o zakończeniu trasy, jeśli byliśmy w trakcie rejestrowania i nowej trasy, lub po prostu rozpoczęcie nowej trasy. Poniżej przełącznika i przycisku będzie znajdować s informująca o stanie aplikacji. Kolor czerwony oznaczać będzie brak rejestrowania trasy. Kolor żółty będzie o braku połączenia z internetem, przy założeniu rejestrowania trasy. Kolor zielony oznaczać będzie przesyłan do serwera na bieżąco. Poniżej opisanej kontrolki, znajdować się będzie przycisk ’Ustawienia’. Jego wciś powodować przejście do drugiego dostępnego widoku, właśnie widoku ustawień (Rys. 1b). Widok ten jest r rzysty jak poprzedni. Na górze znajdować się będzie lista wyboru wartości, które opisują częstotliwość za Poniżej znajdziemy podobny widget odpowiedzialny za częstość wysyłania danych do serwera. Na dole widok przyciski ’Zapisz’ i ’Anuluj’, których działania opisywać nie trzeba. Pod przyciskiem ’Ustawienia’ znajdują „Zrób zdjęcie” oraz „Wyślij zdjęcia”. Przycisk „Zrób zdjęcie” służy robienie zdjęć i zapisywaniu ich. Naciśnię „Wyślij zdjęcia” powoduje próbę wysłania wszystkich zdjęć na serwer. 3.2 Interfejs webowy Po udaniu się na stronę aplikacji użytkownik będzie musiał się zalogować. Logowanie będzie odbywało sie w sposób, przez podanie loginu i hasła (Rys. 2a). Po udanej próbie logowania, użytkownik zostanie prz widoku głównego (Rys. 2b). Schemat wyglądu strony głównej został już przedstawiony w poprzednim W skrócie: główna strona składa się z paska nawigacyjnego po lewej stronie, w którym jest rozwijalna lis od-do filtrowania trasy po czasie oraz przycisk ’zastosuj’ wykonujący zapytanie HTML (odświeżenie stro wyświetlenie odpowiedniej trasy w danym przedziale czasu. Pod nim znajdują się informacje o trasie: łą trasy, średnia prędkość, łączny czas trasy, liczba postojów. Po kliknięciu w pole od (lub do) wyskaku umożliwiający wybranie daty. Korzysta on z jQueryUI. Po prawej stronie u góry znajduje się krótki pasek wyświetlający login aktualnie zalogowanego użytkownika o ’wyloguj’ i ’ustawienia’. Poniżej znajduje się mapa (dostaraczana przez Google Maps) z zaznaczoną trasą. punkty są zaznaczone markerami, a te, którym odpowiada zdjęcie są zaznaczone aparatem, po kliknięciu na się pojawia. Po kliknięciu w przycisk ustawienia zostaniemy przeniesieni do widoku ustawień (Rys. 2c). P jest możliwość wyboru koloru reprezentacji trasy na mapie oraz rodzaju mapy. Dostępne rodzaje mapy to oraz Satelite. Poniżej znajdziemy przyciski ’Zapisz’ oraz ’Anuluj’. 4 4.1 Cykl życia aplikacji Serwer WWW Serwer WWW jest ustawiony na serwerze students, korzysta z Django (w wersji, jaka jest dostępna na student 1.4.0). 4.2 Aplikacja mobilna Aplikacja po uruchomieniu przez użytkownika odbiera od niego dane do logowania do serwisu. Następnie, p przycisku ’ON’ rozpoczyna zbieranie danych z GPSa. Dane zbierane są nie częściej niż co określoną w ustaw czasu. Analogicznie, co ustalony okres czasu sprawdzany jest stan sieci GPRS i jeśli sieć jest dostępna, z 2 wysyłane są do serwera. Aktualny stan aplikacji jest sygnalizowany diodą (zgodnie z opisem w poprzednim d wymagań funkcjonalnych). Po zamknięciu aplikacji kontynuuje ona swoje działanie (odpytywanie GPSa, ma danych i wysyłanie ich do serwisu WWW) w tle. Aplikacja umożliwia robienie zdjęć i zbiorowe wysy pośrednictwem internetu, na serwer. 5 5.1 Komunikacja Aplikacja mobilna z GPSem, GPRSem/WiFi Aplikacja mobilna będzie wykonywać zapytania do systemu GPS oraz GPRS zgodne z API dostarczanym pr http://developer.android.com/reference/android/location/LocationListener.html 5.2 Aplikacja mobilna z serwerem W celu komunikacji aplikacji mobilnej z serwerem WWW wykorzystywany jest protokół HTTP. Konkretnie (na adres: students.mimuw.edu.pl:44445/submit/) wykonywane jest zapytanie POST zawierające dane w for Format danych opisuje schemat: {\textquotedbl{}positions\textquotedbl{}:{[}{\textquotedbl{}longtitude\textquotedbl{}:20. \textquotedbl{}passwd\textquotedbl{}:\textquotedbl{}?\textquotedbl{},\textquotedbl{}login\ \textquotedbl{}photo\textquotedbl{}:imgData, \textquotedbl{}time\textquotedbl{}:123123, \textquotedbl{}route\textquotedbl{}:\textquotedbl{}nazwa\textquotedbl{}} Pole photo i time są nieobowiązkowe; jeśli przesłany komunikat je zawiera, to aplikacja dołącza zdjęcie do w czasie punktu na trasie. Serwer po odebraniu i sparsowaniu danych odsyła do urządzenia krótki komunik 6 6.1 Inne Dostępność Serwer dostępny wtedy, gdy działa students. Jak nie działa - to nie zbiera danych i dane giną. 6.2 Niezawodność, dokładność Dokładność zaznaczonej trasy jest zależna od dostępności i dokładności sygnału GPS. 6.3 Obsługa błędów W przypadku błędu w aplikacji mobilnej uruchomi się ona ponownie. 3 6.4 Bezpieczeństwo Dane pomiędzy aplikacją mobilną a serwerem będą przesyłane nieszyfrowane. Wśród nich będzie znajdował pobrane przez urządzenie oraz login i hasło użytkownika (szczegóły - sekcja komunikacja). Hasło będzie p zakodowaniu za pomocą hasza md5. 4