1. Wstęp. 2. Metodyki tworzenia aplikacji mobilnych



Podobne dokumenty
Autor : Mateusz Kupczyk

Google Android. Opracował Maciej Ciurlik

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Piotr Orzechowski. Technologie Biznesu Elektronicznego

Programowanie urządzeń mobilnych. projekt 6 ( )

Programowanie aplikacji na urządzenia mobilne

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

CMS, CRM, sklepy internetowe, aplikacje Web

R o g e r A c c e s s C o n t r o l S y s t e m 5

Szczegółowy opis zamówienia:

REFERAT O PRACY DYPLOMOWEJ

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

NASZA MISJA. wszystkie nasze dzialania sfokusowane sa na efektywną, partnerską współprace.

Tworzenie aplikacji GIS w technologii Flex. Tomasz Turowski Esri Polska

Tworzenie cross-platformowych aplikacji w Xamarin.Forms

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Systemy operacyjne dla telefonów komórkowych i urządzeń typu smartphone

PROGRAM MICROSOFT DEVELOPER NETWORK ACADEMIC ALLIANCE MSDN AA

ActiveXperts SMS Messaging Server

Wprowadzenie do J2ME

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

OpenGL Embedded Systems

ZAPOZNANIE SIĘ Z TWORZENIEM

Instrukcja użytkownika. Aplikacja mysafety Mobile i mysafety e-sticker_wersja WSTĘP... 2

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Konspekt pracy inżynierskiej

timetrack Przewodnik Użytkownika timetrack Najważniejsze Funkcje

Piotr Bubacz Cloud Computing

APLIKACJA SHAREPOINT

Systemy mobilne. Laboratorium. Dostęp do danych GPS w Windows Phone 7

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

I2: J2ME programowanie w NetBeans IDE Wydział Transportu PW semestr /11

Instrukcja instalacji serwera bazy danych Microsoft SQL Server Express 2014

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

Systemy operacyjne na platformach mobilnych 2 Platforma Maemo

Język UML w modelowaniu systemów informatycznych

REFERAT PRACY DYPLMOWEJ. Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Tematy dyplomów inżynierskich 2009 Katedra Inżynierii Oprogramowania

Nowocześnie zaprojektowana e-usługa - studium przypadku

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Instrukcja instalacji oprogramowania dla środowiska Windows

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Instrukcja instalacji Control Expert 3.0

Windows Mobile. Andy Wigley, Daniel Moth, Peter Foot, Microsoft Mobile Development Handbook, Microsoft Press 2007

REFERAT PRACY DYPLOMOWEJ

Xway. Inne podejście do lokalizacji GPS obiektów mobilnych i zarządzania flotą

Usługi mobilne ipko biznes

REFERAT O PRACY DYPLOMOWEJ

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

Przetwarzanie danych w chmurze

Systemy operacyjne na platformach mobilnych 3 Wstęp do systemu Android

REFERAT PRACY DYPLOMOWEJ

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie obiektowe

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Java Platform Micro Edition

Załącznik nr 2. Przewodnik instalacyjny systemu e-broker Technologiczny v.1.0. Część 4 - Narzędzia informatyczne przeznaczone dla ośrodków innowacji

Web Services w połączeniu z aplikacjami uruchamianymi na urządzeniach mobilnych

SOP System Obsługi Parkingów

Programowanie współbieżne i rozproszone

Dokumentacja aplikacji Szachy online

Uruchamianie bazy PostgreSQL

System zarządzający grami programistycznymi Meridius

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

OSGi Agata Hejmej

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Czym jest technologia Bluetooth?

Nawigacja po trasie wycieczki

Referat Pracy Dyplomowej

Załącznik 1 instrukcje instalacji

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

KARTA KURSU. Projektowanie aplikacji mobilnych

Zaawansowane aplikacje internetowe - laboratorium

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

ZAŁOŻENIA I STAN REALIZACJI PRAC W ZAKRESIE OPRACOWANIA SERWISU POZYCJONOWANIA Z WYKORZYSTANIEM TELEFONÓW GSM Z MODUŁEM GNSS

Forum Client - Spring in Swing

Dokumentacja instalacyjna i konfiguracyjna Aplikacja ADR. Wersja dokumentu 1.0. Strona 1/9

Spis treści

Identity Management w Red Hat Enterprise Portal Platform. Bolesław Dawidowicz

Projekt inżynierski uwagi

Specyfikacja techniczna. mprofi Interfejs API

Specyfikacja implementacyjna aplikacji serwerowej

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Przypadki testowe. Spis treści. Plan testów. From Sęp. Wstęp. 2 Plan testów

Przewodnik instalacji i rozpoczynania pracy. Dla DataPage+ 2013

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

TECHNOLOGIE INFORMACYJNE

Transkrypt:

Praca inżynierska Serwis www lokalizujący swoich użytkowników przy użyciu aplikacji mobilnej - Wstępna analiza tematu Autor: Wiktor Sierociński, Opiekun pracy: mgr. inż. Paweł Radziszewski 1. Wstęp Dokument ten przedstawić ma ogólne spojrzenie na listę rozwiązań budowy serwisów www i aplikacji mobilnych, dzięki którym w połączeniu z dostępnym urządzeniem lokalizującym, możliwa jest geolokalizacja użytkowników przez osoby korzystające z danego serwisu WWW. Pokazane zostaną przyjęte założenia projektowe i środowisko programistyczne, metodyki tworzenia aplikacji mobilnych, techniki lokalizacji, a także możliwy sposób integracji serwisów społecznościowych ze znanym serwisem społecznościowym facebook udostępniającym swój interfejs programistyczny. 2. Metodyki tworzenia aplikacji mobilnych Tworzenie aplikacji mobilnych jest procesem, w którym aplikacje wytwarzane są na potrzeby małych, ograniczonych wydajnościowo i podręcznych urządzeń takich jak komputery typu palmtop czy telefony mobilne. Aplikacje mobilne mogą być tworzone przy użyciu różnych platform i języków programowania, w zależności od tego na jakie urządzenie mobilne dane oprogramowanie jest tworzone. Większość tworzonych aplikacji tego typu składa się z trzech zasadniczych części: aplikacji samej w sobie i jej struktury, logiki biznesowej i interfejsu graficznego. Istnieje wiele platform programistycznych, które wspierają różnych dostawców sprzętu. Najbardziej znane platformy to: 1) Java ME ta platforma w ogólności tworzy przenośne aplikacje, chociaż istnieją biblioteki dla danego rodzaju sprzętu (wykorzystywane głównie w grach), co czyni je nieprzenośne. Platforma ta często jest wykorzystywana do tworzenia prostych aplikacji. Aplikacja wraz z danymi nie może zajmować więcej niż 1MB pamięci aby działała na większości urządzeń. Java ME jest uruchamiana na maszynie wirtualnej (KVM), co daje aplikacjom na jej bazie tworzonej duży, ale nie całkowity dostęp do możliwości telefonu. 2) Symbian platforma stworzona została od początku do tworzenia aplikacji mobilnych. Platforma została stworzona w celu dobrego działania w warunkach ograniczonych zasobów, maksymalizująca wydajność. Fundacja Symbian utrzymuje kod dla tej otwartej platformy bazującej na Symbian OS. Jest wspierana przez takie firmy jak Nokia, NTT DOCOMO i Sony Ericsson. 3) Android jest to platforma bazująca na systemie Linux, stworzona przez stowarzyszenie Open Handset Alliance, w skład którego wchodzą takie firmy jak Google, HTC czy Motorola. Jądro Linuxa jest używane jako warstwa abstrakcji sprzętu. Programowanie aplikacji w większości tworzone jest na tej platformie w języku Java. Aby można było tworzyć aplikacje na tę platformę niezbędne jest posiadanie specjalnego rodzaju Java SDK dla Androida. 4) Windows Mobile jest to wersja Windows Embedded Compact (Windows CE) dla telefonów mobilnych. Windows Mobile wspiera podzbiór interfejsu Windows Api i prosty interfejs graficzny z jednym oknem w tym samym czasie. Dla potrzeb serwisu wykorzystana zostanie platforma Java ME. Choć jest to już starzejąca się technologia i nie jest wspierana na najnowszych mobilnych platformach (takich jak na przykład iphone) to jednak wybór ten został dokonany w oparciu o szerokie możliwości przenoszenia aplikacji pisanych na tę platformę pomiędzy dużą jeszcze liczba wielu starszych urządzeń tę technologię wykorzystującą. Aplikacja dla Java ME Aplikacje pisane na platformę Java ME muszą opierać się na pewnym zestawie dostępnych funkcji. Java ME implementuje więc tak zwany profil definiujący zestaw funkcji. Profile budowane są na podstawie konfiguracji. Istnieją obecnie dwie takie konfiguracje: Connected Limited Device Configuration (CLDC) i Connected Device Configuration (CDC). Najbardziej znane profile to Mobile Information Device Profile (MIDP) stworzony dla telefonów komórkowych i Personal Profile stworzony dla bardziej zaawansowanych urządzeń. W naszym projekcie wykorzystany zostanie profil MIDP 2.0 (MIDlet) i konfiguracja CLDC 1.1, która jest niezbędna aby wykorzystać interfejs JSR 179, który pozwala nam lokalizować nasze urządzenie. Urządzenia mobilne, nieważne czy rzeczywiste czy emulatory, kontaktują się z aplikacją mobilną (w tym wypadku MIDlet'em) używając swojego własnego oprogramowania, które zwane jest Application Management Software (AMS). AMS odpowiedzialny jest za inicjalizowanie, startowanie, pauzowanie i niszczenie MIDletu. W ten sposób MIDlet może przechodzić pomiędzy stanami.

Diagram stanów dla MIDlet'u wygląda tak (zaczerpnięty z developers.sun.com): Java ME do tworzenia interfejsu użytkownika nie używa znanych bibliotek AWT ani Swing. Zamiast tego definiuje się własny zestaw klas interfejsu użytkownika, które są częścią interfejsu MIDP. Główną z przyczyn dla których nie wykorzystuje się AWT ani Swing jest fakt, że biblioteki te zostały specjalnie zaprojektowane do działania na komputerach osobistych, w warunkach o dużo wyższej wydajności sprzętowej. Używanie więc tych bibliotek dla telefonów mobilnych staje się niepraktyczne. MIDP definiuje swój własny zestaw klas interfejsu użytkownika. Interfejs ten dzieli się na dwa zasadnicze podtypy: wysokopoziomowe API i niskopoziomowe API. Oba zestawy klas znajdują się w pakiecie javax.microedition.lcdui 3. Techniki lokalizacji Usługa lokalizacji dla urządzeń mobilnych dała w ostatnim czasie użytkownikom możliwość korzystania z szerokiego wachlarza zaawansowanych usług geolokalizacyjnych. Otworzyło się nowe pole dla deweloperów aplikacji, którzy mogą teraz tworzyć aplikacje do wyznaczania warunków ruchu ulicznego, dostarczania informacji nawigacyjnej czy wspomagania znalezienia najbliższych restauracji w pobliżu. Istnieją dwa podstawowe techniki lokalizacji. Można naszą lokalizację wykrywać przy użyciu stacji bazowych operatora komórkowego lub przy użyciu satelitów. 1) Wykorzystanie operatora komórkowego przy użyciu identyfikatora cell ID możemy zidentyfikować stację bazową (BTS), z którą jesteśmy połączeni i później dowiedzieć się o jej lokalizacji. Na bazie opóźnień w przesyłaniu sygnałów jesteśmy w stanie uzyskać informację jak daleko znajdujemy się od danej stacji. Wykorzystując tą technikę możemy stwierdzić jakie posiadamy położenie z dokładnością nawet to 150 m. Jednak jest to bardzo zależne od gęstości stacji w naszym położeniu i co się z tym wiąże, ich odległości od siebie. 2) Wykorzystanie satelitów GPS Globalny System Pozycjonowania (GPS) kontrolowany jest przez Departament Obrony USA. Używa on 24 satelitów orbitujących wokół Ziemi. GPS uzyskuje pozycję urządzenia przez wyliczanie czasu jaki potrzeba sygnałowi z różnych satelitów osiąganie odbiornika nasz urządzenia mobilnego. Sygnał GPS jest specjalnie zakodowany więc urządzenie mobilne potrzebuje specjalnego odbiornika. Technika GPS jest bardzo dokładna od 4 m do 40 m jednak ma ona jedną wielką wadę: cierpi na efekt kanionu, znaczy to że trudno jest jej funkcjonować w miastach i pomieszczeniach. Problemem jest też czas trwania początkowego ustalenia położenia widzialnych satelitów. W naszej aplikacji będziemy chcieli skorzystać z możliwości jaki daje nam system GPS. Aby uzyskać dane lokalizacyjne na platformie Java ME skorzystamy ze specyfikacji Location API for Java ME znanej jako JSR 179.

Location API for Java ME Specyfikacja Location API definiuje opcjonalny pakiet javax.microedition.location, który pozwala deweloperom pisać bezprzewodowe aplikacje lokalizujące. Interfejs ten pozwala deweloperowi uzyskać nie tylko dane lokalizujące ale też orientacje (zgodną z kierunkiem kompasu), a także wspiera tworzenie i używanie bazy wiedzy na temat miejsc, które mogą być przetrzymywane na urządzeniu. Urządzenie stwierdza jakie są dostępne metody lokalizacji. Jeśli nie ma żadnej to Location API jest bezużyteczne. Dla dostępnych metod, aplikacje mogą żądać specjalnych kryteriów dla metod lokalizacyjnych, takich jak minimalny poziom dokładności, czas odpowiedzi, potrzebę poznania wysokości czy szybkość poruszania się. Typowy schemat uzyskania danych lokalizacyjnych z wykorzystaniem klas z pakietu javax.microedition.location przebiega tak, jak pokazuje poniższy kod (zaczerpnięty z developers.sun.com): // Set criteria for selecting a location provider: // accurate to 500 meters horizontally Criteria cr= new Criteria(); cr.sethorizontalaccuracy(500); // Get an instance of the provider LocationProvider lp= LocationProvider.getInstance(cr); // Request the location, setting a one-minute timeout Location l = lp.getlocation(60); Coordinates c = l.getqualifiedcoordinates(); if(c!= null ) { // Use coordinate information double lat = c.getlatitude(); double lon = c.getlongitude(); }... Schemat pokazuje w jaki sposób uzyskać instancję obiektu klasy LocationProvider, tworzonej zgodnie z dostarczonymi kryteriami wyrażonymi w instancji obiektu klasy Criteria. Za pomocą metod getlatitude() i getlongitude() instancji obiektu klasy Coordinates uzyskanej pośrednio z instancji klasy LocationProvider uzyskuje się współrzędne urządzenia. Dla celów naszej aplikacji mobilnej która korzystać ma z odbiornika GPS wbudowanego w telefon komórkowy wystarczy ustawić kryteria dla dokładności długości i szerokości na 500 metrów. 4. Środowisko programistyczne Serwis WWW zostanie stworzony w oparciu o technologię tworzenia serwisów webowych Microsoft ASP.NET 4 i język Visual C#. W celu zapisywania danych wykorzystana zostania relacyjna baza danych Microsoft SQL Server 2008. Dostęp do niej realizowany będzie na bazie obiektowo-relacyjnej technologii LINQ to SQL. Jako środowisko programistyczne wykorzystany zostanie program Microsoft Visual Web Developer 2010 Express. Projekt oparty zostanie o wzorzec projektowy ASP.NET MVC2 Web Application, będący jednym z szablonów dostępnych w wyżej wymienionym środowisku. 5. Interfejsy programistyczne portali społecznościowych Istnieje obecnie kilka szeroko znanych serwisów społecznościowych, które udostępniają swoje interfejsy programistyczne. Najbardziej znane to facebook, twitter i amazon. W tym dokumencie przyjrzymy się bliżej interfejsowi tego najbardziej znanego obecnie w internecie serwisu jakim jest facebook. Facebook przy użyciu technologii Facebook Connect daje deweloperom możliwość stworzenia serwisu społecznościowego, w którym konta użytkowników facebooka mogą być zintegrowane z kontem użytkownika naszego serwisu. Dzięki temu w naszym serwisie jesteśmy w stanie korzystać z danych, które są umieszczone w serwisie facebook, a także logować się do naszego serwisu korzystając wyłącznie z logowania facebooka zamiast rejestracji i logowanie przez nasz serwis. Aby korzystać z tej funkcjonalności serwisu facebook, należy najpierw zarejestrować nową aplikację na stronie

www.facebook.com/developers/createapp.php Należy wypełnić wszelkie informacje dotyczące naszego serwisu, w tym trzeba podać adres URL, pod którym można znaleźć nasz serwis. W wyniku tej rejestracji otrzymuje się ID aplikacji, klucz API i klucz zabezpieczający, które będą nam potrzebne w procesie łączenia się z serwerem facebooka. Model wymiany informacji działa w następujący sposób: 1) Nasz serwis zwany aplikacją facebooka leży na naszym własnym serwerze. 2) Kiedy użytkownik facebooka odwiedza nasz serwis przez serwis facebooka to facebook wywołuje odpowiedni URL (podany wcześniej) odnoszący się do serwisu na naszym serwerze. 3) Nasz serwis wywołuje Facebook API aby zdobyć informacje na temat użytkownika. 4) Nasz serwis łączy informacje z bazy danych facebooka i naszej własnej bazy, i wyświetla rezultat. Wszystkie te operacje są możliwe do przeprowadzenia dzięki wykorzystaniu biblioteki dostarczanej przez facebook. Problem polega jednak na tym, że facebook rozwija tą bibliotekę wyłącznie dla deweloperów piszących w PHP. W maju 2008 roku facebook zakończył wpieranie biblioteki dla Javy. Na szczęście powstał projekt niezależnych deweloperów, którzy dalej rozwijają wersję przeznaczoną dla języka Java (http://code.google.com/p/facebook-javaapi/). Nasz serwis aby mógł pobierać dane użytkownika, który się zalogował, musi poznać jego identyfikator nadany przez facebook. Identyfikator ten musi być też przetrzymywany w naszej lokalnej bazie danych abyśmy mogli wiązać specyficzne dane użytkownika serwisu z danymi użytkownika facebooka. Serwis Facebook Developer w ten sposób pokazuje aby to robić (język PHP): $fb=new Face book($api_key,$secret); $fb_user=$fb->get_loggedin_user(); gdzie $api_key to klucz API, a $secret to klucz zabezpieczający. Identyfikator uzyskiwany jest dzięki wykorzystaniu cookiesów ustawionych przez serwer facebooka w momencie logowania. Dane użytkowników uzyskuje się w taki sposób (język PHP): $user_details=$fb->api_client->users_getinfo($fb_user, array('last_name','first_name','proxied_email')); $firstname=$user_details[0]['first_name']; $lastname=$user_details[0]['last_name']; $email=$user_details[0]['proxied_email']; 6. Studium wykonalności W celu sprawdzenia i udowodnienia, że przy pomocy wyszczególnionych w niniejszej analizie technologii jestem w staniem stworzyć serwis społecznościowy www, który będzie w stanie lokalizować swoich użytkowników dzięki technologii GPS, przeprowadziłem studium wykonalności. W tym celu napisałem program, który uruchomiony na testowym urządzeniu mobilnym będzie w stanie zlokalizować nasze położenie za pomocą funkcji GPS, a następnie po uzyskaniu połączenia z internetem i wykorzystaniu informacji w nim zawartych, stwierdzi słownie w jakiej miejscowości się znajdujemy. Użyte urządzenie to telefon Nokia E71. Informację na temat nazwy miejsca w jakim się obecnie znajdujemy, program uzyskuje dzięki serwisowi http://tinygeocoder.com Używa on do tego skryptu createapi.php, podając w parametrach zapytania GET szerokość i długość geograficzną. Wycinek z programu, realizujący zadanie pobrania współrzędnych GPS i informacji zawartych na serwisie http://tinygeocoder.com: double lat = c.getlatitude(); double lon = c.getlongitude(); string = "\nszerokość : " + lat + "\ndługość : " + lon; new GetData(midlet, lat, lon).start(); gdzie GetData() to funkcja pobierająca informację o nazwie miejsca z internetu na bazie wprowadzonych współrzędnych. Cały wyciąg z programu testowego znajduje się w katalogu sources.

Wynik studium wykonalności: Studium wykonalności zostało przeprowadzone pomyślnie i zakończyło się sukcesem. Dowiodło, że jestem w stanie napisać serwis o jakim mowa jest w niniejszej analizie. Przykładowa emulacja programu przy zerowych współrzędnych (komputer, na którym dokonywana jest emulacja nie jest wyposażony w odbiornik GPS):