Tekninen suunnitelma - StatbeatMOBILE



Samankaltaiset tiedostot
Tekninen suunnitelma - StatbeatMOBILE

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen

statbeatmobile PROJECT REVIEW iteration 1

Westin Lisätty luku 6, käyttötapauskuvaukset.

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Järjestelmäarkkitehtuuri (TK081702)

Valppaan asennus- ja käyttöohje

Sense tiedostot Käyttöohje Opastinsilta 8 ae Helsinki

Käytettäväksi QR-koodin lukulaitteen/lukijan kanssa yhteensopivien sovellusten kanssa

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Tikon Web-sovellukset

INSPIRE ArcGIS-tuotteilla. Ulla Järvinen ja Jussi Immonen INSPIRE-koulutuksessa

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Nettikalenterin tilausohjeet

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

Nettikalenterin tilausohjeet

ViLLE Mobile Käyttöohje

statbeatmobile FINAL PROJECT REVIEW

Qt kaikkialla?

SUOJAA YRITYKSESI AINA JA KAIKKIALLA. F-Secure PSB:n käyttöönotto-opas

Tikon Web-sovellukset

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Tieto Edun käyttöönotto

E-AINEISTOJEN ESILLEPANO KIRJASTOSSA Asiakastablettien tekninen ratkaisu

ARVO - verkkomateriaalien arviointiin

Visma Liikkuvan työn ratkaisut

Mobiilipalvelut kirjastoissa Juha Hälinen verkkopalvelusuunnittelija

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Suojaa yrityksesi aina ja kaikkialla. F-Secure PSB:n käyttöönotto-opas

Googlen palvelut synkronoinnin apuna. Kampin palvelukeskus Jukka Hanhinen, Urho Karjalainen, Rene Tigerstedt, Pirjo Salo

Tietoturvavinkkejä pilvitallennuspalveluiden

CTRL+F Android-sovellus

Google Cloud Print -opas

NÄYTÖN JAKAMINEN OPPILAILLE, JOTKA MUODOSTAVAT YHTEYDEN SELAIMELLA TAI NETOP VISION STUDENT -SOVELLUKSELLA

PLA Mobiiliohjelmointi. Mika Saari

Ylläpitodokumentti Mooan

MOBIILIVARMENTEEN KÄYTTÖÖNOTTO

Selaimen kautta käytettävällä PaikkaOpin kartta-alustalla PaikkaOppi Mobiililla

Webforum. Version 17.3 uudet ominaisuudet. Päivitetty:

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Nelli-portaali ja verkko-oppimisympäristöt

. Wake on moderni kehitysalusta käyttäjäkeskeisille verkko- ja. mobiilisovelluksille. Wake antaa täydet vapaudet suunnitella verkkopalvelun

Asio Notification ( Asio N ) App

Googlen pilvipalvelut tutuksi / Google Drive

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

RATKI 1.0 Käyttäjän ohje

Google Cloud Print -opas

Miten Vero voisi Viestit-Appia hyödyntää? Markku Heikura

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

HAKURATKAISUN ANATOMIA - KURKISTUS PELLIN ALLE

Googlen pilvipalvelut tutuksi / Google Drive

Sulava. Markku Suominen. Puhelin: Käyttöönotto Käyttö

KIRA-digi loppuraportti Optimaze grafiikkapalvelu

PELAAJAPROFIILI Mobiilisovellus

FuturaPlan. Järjestelmävaatimukset

EASY Tiedostopalvelin - mobiilin käyttöopas

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

Joustotilat Tampereella

OpiPalopintojaksopalautejärjestelmä

Purot.net Wiki. Tutkielma. Paavo Räisänen. Centria Ammattikorkeakoulu

Yhdistä kahviautomaattisi tulevaisuuteen.

1. Mikä ASIO Notification on

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Senioriliiton jäsenkorttiapplikaatio

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

JulkICT portaalin käyttöohje

Suomen Yrittäjien valtakunnallinen Yrityspörssi-järjestelmä

Tech Conference OneDrive for Business, kuinka maksimoin tuottavuuden? Jari Kotola Seniorikonsultti, MCT.

Pilviväylä projekti

Yhdistä liesituulettimesi tulevaisuuteen. Asennusohje

Tietoliikenne II (2 ov)

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Aditro Tikon ostolaskujen käsittely versio 6.2.0

Webforum. Version 16.4 uudet ominaisuudet. Päivitetty:

BEYOND: Two Souls BEYOND Touch Sovellus

Action Request System

TOIMITUSSELOSTE PL 5 Tulorekisteri TULOREKISTERI

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Mobiili kanta-asiakaskortin yhteisöllisyys yhdistettynä maksamisen helppouteen. Case: JYP Juniorit Yhteisökortti. Mobile intelligence

M-FILES JÄSENREKISTERIN KÄYTTÖOHJE

DENACODE NUDDIS Käsikirja huoltajalle

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Integrointi. Ohjelmistotekniikka kevät 2003

Älypuhelimet. Sisällysluettelo

Inspire-prosessin tilannekatsaus 01 / 2012

Copyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa

Tietoliikenne II (2 ov)

Tikon Web-sovellukset

M-Files jäsenrekisterin käyttöohje

Yhdistä uunisi tulevaisuuteen.

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

Skype for Business pikaohje

Varhaiskasvatuksen tilastointijärjestelmä JUULIA VUOROHOIDON OHJELMASOVELLUS. Vertikal Oy Luvaton käyttö kielletty

turku.fi:stä kunta.fi:ksi Kuntamarkkinat

MARA-ALAN LIIKETOIMINNAN TIETOTURVALLISUUSUHAT

Transkriptio:

Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in 1.2 1.1.2014 Raivio Lisätty tekstiä HTML5 sovelluksen sisäiseen rakenteeseen, korjattu kirjoitusvirheitä 1.3 17.1.2014 Westin Pieniä viilauksia, korjattu kirjoitusvirheitä 1.4 24.1.2014 Westin Viilattu lukua 1. Päivitetty dokumentin formaattia ja lisätty sisällysluettelo. 1.5 7.3.2014 Pöyry Päivitetty dokumentti vastaamaan tehtyjä muutoksia. 1. Johdanto 1.1 Sidosryhmät/Osakkaat 1.2 Arkkitehtuurilliset huolet 2. Käytetyt teknologiat 3. Korkean tason arkkitehtuuri 3.1 Ilmoitusten tekninen toteutus 4. Tietoturva 5. HMTL5-sovelluksen sisäinen rakenne 6. Lista sovelluksen sisäisen API:n rajapinnan funktioista 1. Johdanto Tämä dokumentti sisältää StatbeatMobile-sovelluksen teknisen kuvauksen. Sovelluksen arkkitehtuurissa on huomioitu sovelluksen jatkokehitystarpeet, jotta jatkokehitys olisi

mahdollisimman helppoa. Asiakkaan toiveiden mukaisesti kaikki natiivit komponentit on rakennettu mahdollisimman kevyiksi ja yksinkertaisiksi, jottei niihin tarvitsisi jatkokehityksessä koskea. Mahdollisimman suuri osa sovelluksesta on päivitettävissä ilman että natiiveihin komponentteihin tarvitsee koskea. 1.1 Sidosryhmät/Osakkaat Rakennettavalla sovelluksella tulee olemaan kaksi eri sidosryhmää, kehittäjät ja käyttäjät, joiden vaatimukset vaikuttavat sovelluksen arkkitehtuuriin. Sidosryhmä Kehittäjät Käyttäjät Kuvaus Fastmonkeys yrityksen työntekijät, jotka kehittävät Statbeat-palvelua ja jotka ottavat myöhemmin StatbeatMobile-sovelluksen jatkokehityksen vastuulleen. Statbeat palvelun käyttäjät (asiakkaat), jotka haluavat käyttää palvelua mobiililaitteella. 1.2 Arkkitehtuurilliset huolet Huoli Sidosryhmä Kuvaus Arkkitehtuurinen merkittävyys Toiminnallisuus Kehittäjät, Käyttäjät Sovelluksen pitää täyttää vaatimusmääri ttelyssä listatut toiminnallisuudet Jatkokehitys Kehittäjät Sovelluksen pitää olla mahdollisimman helposti jatkokehitettävissä. Sovelluksen nopeus Käyttäjät Sovelluksen pitää toimia mahdollisimman nopeasti, jotta sen käyttö on miellyttävää Korkea Kohtalainen Kohtalainen

Skaalautuvuus Käyttäjät Sovelluksen pitää toimia 5000 yhtäaikaisella käyttäjällä Tuki eri alustoille Käyttäjät Käyttäjillä on mobiililaitteita, joissa on eri käyttöjärjestelmä. Sovelluksen pitäisi toimia mahdollisimman monella laitteella. Tuki eri näyttökoille Käyttäjät Sovelluksen tulee toimia hyvin eri kokoisilla laitteilla. Kohtalainen Kohtalainen Alhainen 2. Käytetyt teknologiat Asiakkaan vaatimusten pohjalta päädyimme rakentamaan sovelluksen päätoiminnallisuuden html5-teknologioilla. StatbeatMobile-sovellus koostuu siis natiivista kehyksestä, jonka sisällä on html5-sovellus (Kuvassa 1. on kuvattu käytetyt teknologiapinot). Suurin osa toiminnallisuudesta on html5-sovelluksessa ja natiivi kehys vain tarjoaa html5-sovellukselle sen tarvitsevat tiedot. Emme käyttäneet valmiita hybridi-applikaatiokirjastoja vaan päädyimme rakentamaan oman kehyksen, koska mikään testatuista hybridi-applikaatiokirjastoista ei ollut tarpeeksi sulava. Toteutimme kehykset Android ja ios alustuille. StatbeatMobile-sovellukselle riittää hyvin rajoittunut kehysohjelma, joten sovelluksen porttaaminen myös alustoille onnistuu helposti. Html5-sovellus on rakennettu yksittäisen verkkosivun päälle, jota muokataan serveriltä pyydettyjen tietojen pohjalta. Tämän ratkaisun tarkoituksena on vähentää sovelluksen käyttäjälle näkyvää tietojen hausta johtuvaa hitautta. Kun sovelluksen ei tarvitse ladata jokaista näytettävää sivua, vaan haetaan vain tarvittavat tiedot, vie tietojen haku vähemmän aikaa ja käyttäjän havaitsema viive on pienempi. Tiedot ladataan JSON-muodossa Statbeat API - palvelimelta jonka rajapinnat ovat asiakkaan toteuttamia. Jouduimme laajentamaan asiakkaan tarjoamaa rajapintaa muutamissa tapauksissa käyttökokemuksen parantamiseksi. Käytimme myös jonkin verran aikaa asiakkaan rajapinnan virheiden selvittelyyn ja raportointiin. Asiakkaan toiveesta sovellus käyttää AngularJS-kirjastoa, vaikka ryhmän kehittäjillä ei ole aiempaa kokemusta kyseisestä kirjastosta. AngularJS-kirjasto tuntui ihan hyvä valinta, vaikka joidenkin asioiden kohdalla törmäsimme korkeaan aloituskynnykseen. Varsinkin testausjärjestelmän käyttöönotto voi paljon ennakoitua enemmän aikaa.

Html5-sovellus ladataan ohjelman käynnistyksen yhteydessä Statbeat Mobile -palvelimelta, joka on hyvin yksinkertainen staattisia sivuja jakava palvelin ja käyttää Ngix-palvelinohjelmistoa. Alunperin tarkoituksena oli käyttää Amazon S3 -tiedostopalvelua, mutta asiakkaan SSLsertifikaattiongelmien takia päädyimme käyttämään Herokua. Palvelinta siis ajetaan Herokun pilvipalvelussa, jonka asiakas tarjosi käyttöömme. Herokun käyttö mahdollistaa palvelinkapasiteetin kasvattamisen tarvittaessa todella helposti selaimella. Kuva 1. Asiakas- ja serveriohjelmistojen teknologiapinot 3. Korkean tason arkkitehtuuri Sovelluksen yleisnäkymä on kuvattu kuvassa 2.

Kuva 2. Applikaation yleisnäkymä Sisäinen API tarkoittaa kaikkia kehysohjelman tarjoamia asioita, joita html5-sovellus voi käyttää. Tämä sisältää esimerkiksi natiivien ilmoitusten luonnin ja sovelluksen aktiivisuuden kyselyn. Tarkempi listaus kaikista rajapinnan ominaisuuksista lisätään tämän dokumentin loppuun. 3.1 Ilmoitusten tekninen toteutus Sovelluksen pitää saada tieto uusista ilmoituksista mahdollisimman nopeasti. Toteutimme tämän pollaamalla, eli kyselemällä Statbeat API -palvelimelta uusista muutoksista tietyin aikavälein (kuva 3). Suunnitelmissa oli myös tämän toiminnallisuus toteutuksen siirto Google Cloud Messaging for Android -palvelun huolehdittavaksi Android alustalla ja Apple Push Notification service -palvelulle ios puolella. Tämä ratkaisu säästää päätelaitteen virrankulutusta, sekä on nopeampi huomaamaan muutokset. Koska palveluiden käyttöönotto vaatii pientä byrokratiaa ja muutoksia Statbeat API -palvelimeen, emme päättäneet toteuttaa näitä ominaisuutta. Natiivien ohjelmien rakenne on niin yksinkertainen, että tämän ominaisuuden toteuttaminen ei vaadi niihin merkittäviä muutoksia, jos ne päätetään toteuttaa tulevaisuudessa. Natiivi applikaatio huolehtii uusien muokkausten hakemisesta serveriltä. Käyttäjätestauksen perusteella päätimme koota kaikki eri viestit yhteen mobiililaitteessa näkyvään notifikaatioon. Kyseisen viestin sisältö rakennetaan jo serverin puolella, joten sen muokkaus on hyvin helppoa. Tämä ratkaisu on hyvin yksinkertainen natiivin ohjelman näkökulmasta, ohjelmalla on maksimissaa vain yksi näkyvä notifikaatio. Lisäksi se mahdollistaa viestien rakenteen muokkausen suoraan serverin lähdekoodista.

Kuva 3. Ilmoitusten haku pollaamalla

Kuva 4. Ilmoitusten haku Googlen Cloud Messaging palvelun kautta 4. Tietoturva Kaikki kommunikaatio Statbeat Mobile- ja Statbeat API- palvelimien kanssa tapahtuu HTTPSprotokollaa käyttäen. Tämä estää sovelluksen tai sen tietojen peukaloinnin käytettäessä sovellusta salaamattomissa verkoissa. Ohjelma tunnistautuu Statbeat API palvelimelle evästeen avulla. Evästeelle asetetaan secure-lippu päälle, jolloin javascriptilla ei pääse käsiksi evästeen sisältöön. Palvelin asettaa evästeen onnistuneen kirjautumisen yhteydessä, ja sovellus lähettää evästeen jokaisen pyynnön yhteydessä. Kaikki sovelluksessa näkyvät linkit, jotka johtavat sovelluksen ulkopuolelle, avataan aina uudessa selainikkunassa. Tällä ratkaisulla pyritään selkeyttämään ohjelman toimintaa, sekä välttämään mahdollisia tietoturvaongelmia. Harkitsemme myös mahdollisuutta jakaa sovelluksen kirjautumisen yhteydessä saatu eväste natiivin selaimen kanssa, koska tämä mahdollistaisi siirtymisen sovelluksesta selaimen puolelle ilman erillistä kirjautumista. 5. HMTL5-sovelluksen sisäinen rakenne Single page app -> Tarpeellisia osia sivusta päivitetään käyttäjän toiminnan mukaan Tarvittavat tiedot haetaan Statbeat API -palvelimelta json muodossa Angular.js kirjasto hoitaa tiedon hakemisen serveriltä ja dynaamisen päivittämisen sivulle

6. Lista sovelluksen sisäisen API:n rajapinnan funktioista Native -> HTML5 onnotificationactivate() Kun käyttäjä aktivoi notifikaation HTML5 -> Native isapplicationactive() clearnotificationmessages() getcurrentplatform() setloginstatus(id) Onko ohjelma auki Poistaa ilmoituksen näkyvistä Palauttaa tiedon natiivista kerroksesta Ilmoittaa natiiville kerrokselle sisäänkirjautumisen onnistumisen