3 Verkkopalveluarkkitehtuuri

Samankaltaiset tiedostot
3 Verkkopalveluarkkitehtuuri

3 Verkkopalveluarkkitehtuuri

9 Edistynyt PHP-ohjelmointi

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Käyttöohje Suomen Pankin DCS2-järjestelmään rekisteröityminen

Järjestelmäarkkitehtuuri (TK081702)

Ohje luottamuksellista tietoa sisältävien sähköpostiviestien lähettämiseen ja vastaanottamiseen

Luottamuksellinen sähköposti Trafissa

Opas administraattori-tason käyttäjille. MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2

Visma asiakaspalvelu Tukipyyntöjen lähettäminen

10 Nykyaikainen WWW-arkkitehtuuri

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

opiskelijan ohje - kirjautuminen

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

Käyttäjäistunnon poistaminen Pervasive.SQL:stä

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje

11 Valmiit ratkaisut. 11 Valmiit ratkaisut

Visma sovellustuki Tukipyyntöjen lähettäminen

Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje

Ristijärven metsästysseura tysseura osti lisenssin jahtipaikat.fi verkkopalveluun, jotta seuran

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

Kirje -tasolla viestiliikenne suojataan automaattisesti SSL-salauksella, sekä viesti lukitaan Deltagon MessageLock -tekniikalla.

Luottamuksellinen sähköposti Lapin yliopistossa. Ilmoitusviesti

Hallintaliittymän käyttöohje

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

Tämän ohjeen avulla pääset alkuun Elisa Toimisto 365 palvelun käyttöönotossa. Lisää ohjeita käyttöösi saat:

INTINU13A6 Java sovellukset

Linux - käyttöoikeudet

1 (5) VUOKRALISENSSIN KÄYTTÖÖNOTTO JA PILVIPISTEET AUTODESK ACCOUNTISSA. Milloin vuokra-aika alkaa?

Rekisteröityminen, tilojen varaaminen ja maksaminen WebTimmi varausjärjestelmässä

Copyright Basware Corporation. All rights reserved. Pikaopas toimittajille Supplier Portal (Toukokuu 2013)

opiskelijan ohje - kirjautuminen

AVOIMEN YLIOPISTON MOODLE-OPAS OPISKELIJALLE

Kaislanet-käyttöohjeet

5 Verkkopalvelun sisällön hallinta

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Käyttöohje. Visy Access Net UPM

Kangasniemen yrityshakemisto KÄYTTÖOHJE YRITTÄJÄLLE. KANGASNIEMEN KUNTA yrityshakemisto.kangasniemi.fi

4 Verkkopalvelun toteuttaminen

Elisa Toimisto 365. Pääkäyttäjän pikaopas

LUPAHANKKEET RAKENNUSVALVONNAN SAHKÖISESSÄ ASIOINTIPALVELUSSA

AVOIMEN YLIOPISTON MOODLE-OPAS OPISKELIJALLE SISÄLLYS

REVELAGESPORTS.COM PORTAALIN KÄYTTÖOHJE

Hyvä tietää ennen kuin aloitat

Kokoelmakilpailu Lomakeohje, Laji.fi-sarja 1. Rekisteröityminen

Juricon Nettisivu Joomlan käyttöohjeet

Helsingi yliopiston kevytkäyttäjähallintosovelluksen rajapintakuvaus

Ilmoitus saapuneesta turvasähköpostiviestistä

Kurssin hallinta -työväline

ILMOITUSSOVELLUS 4.1. Rahanpesun selvittelykeskus REKISTERÖINTIOHJE. SOVELLUS: 2014 UNODC, versio

TERVETULOA WAHTI-PALVELUN KÄYTTÄJÄKSI. Ohjeet kameran asennukseen ja käyttöönottoon.

Office 365 palvelujen käyttöohje Sisällys

Perustietoja Mietoisten kyläportaalista Yhdistyksen ylläpitäjän kirjautuminen Yhdistyksen etusivun muokkaaminen... 2

Epooqin perusominaisuudet

Energiapeili-raportointipalveluun rekisteröityminen yritysasiakkaana

in condition monitoring

VTJ-YLLÄPITO. Käyttäjän ohje Kunnat

1 Asiakastilin rekisteröiminen Väestörekisterikeskuksen

OP Tunnistuksen välityspalvelu

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

MOODLE TUTUKSI. Pirkko Vänttilä Oulun aikuiskoulutuskeskus

Yliopistohaku.fi -palvelun Oma haku -palvelu

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

LIITTEIDEN lisääminen laskulle. Pikaohje (1.1)

VETUMA rekisteröityminen

Tietosuojaseloste (5)

Open Badge -osaamismerkit - ohje

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

Energiapeili-raportointipalveluun rekisteröityminen yritysasiakkaana

1 Johdanto. 2 Kirjautuminen. Sisällysluettelo. Kanakoirakerho - websivujen ylläpito

käyttöönotto työpaikkaohjaajalle

Rekisteriseloste Tämä on Markkinoinnin Muurahainen Oy:n EU:n yleisen tietosuoja-asetuksen (2016/679) (GDPR) mukainen seloste.

SilvaToiminta Versio 1.0. SilvaToiminta. Pikaohje Versio Oy Silvadata Ab Pikaohje 1

Uuden lukuvuoden aloitus ViLLEssa

Ohje. ipadia käytetään sormella napauttamalla, kaksoisnapsauttamalla, pyyhkäisemällä ja nipistämällä kosketusnäytön

24MAGS PIKAOHJE HALLINTAPANEELIN KÄYTTÖÖN

Jos olet jo kirjautunut palveluun, näin pääset tilillesi: Anna sähköpostiosoitteesi ja salasanasi. Napsauta Sisäänkirjautuminen.

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Doodle-kalenteriohjelma

Maestro Lappeenranta Mannerheiminkatu Lappeenranta. Maestro Helsinki Huopalahdentie Helsinki

Liferay CE KÄYTTÖOHJE PÄIVITTÄJÄLLE. Content Manager. Ambientia Oy TM Ambientia

Timmi varausjärjestelmään rekisteröityminen ja verkkokaupasta

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

Uuden lukuvuoden aloitus ViLLEssa

Sisältö. Päivitetty viimeksi Sivu 2 / 14

Kemikaalitieto yhdestä palvelusta

Uuden Peda.netin käyttöönotto

KÄYTTÖOHJEISTUS ASUKKAALLE

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Ravintola Kalatorin tietosuojaseloste

Oma matkakortti -palvelu: Käyttäjän ohje

Ylläpito toimittaa sinulla sähköpostiisi käyttäjätunnuksen ja salasanan. Tässä esimerkissä

Toimittajaportaalin pikaohje

Tietokantasovelluksen määrittelydokumentti

OHJEET KEKSINNÖT.FI SIVUSTON KÄYTTÄJILLE

Tervetuloa OmaLounea-palveluun! KÄYTTÄJÄN OPAS

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi

Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden

Transkriptio:

3 Verkkopalveluarkkitehtuuri Luentokerran tavoitteena on perehtyä verkkopalveluarkkitehtuurin yleisiin periaatteisiin ja kaikille verkkopalveluille yhteisiin toimintoihin ja ominaisuuksiin: Tietokantapohjainen Web-teknologialla toteutettu verkkopalvelu perustuu yleisesti kolmikerrosmalliin (three-tier model) Verkkopalveluiden kolme keskeistä toimintoa ovat pääsynhallinta (access), käyttäjän tunnistaminen (authentication) ja käyttöoikeuksien hallinta (authorisation) Verkkopalvelun ohjelmallinen toteuttaminen edellyttää käytännössä aina istuntojen (session) soveltamista Verkkopalvelun turvallisuuteen ja tietoturvaan liittyviä asioita ei voi korostaa koskaan liikaa Verkkopalveluihin liittyy edellä mainittujen lisäksi lukuisia yleisiä ominaisuuksia, jotka on syytä ottaa huomioon verkkopalveluiden suunnittelu- ja toteutustyössä Luentokerran aikana käsiteltävien ominaisuuksien toteuttaminen yleiseen, uudelleenkäytettävään sovelluskehykseen on välttämätöntä kun pyritään sovellusten toteutustyön tehostamiseen. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 41

Asiakas-palvelin malli vs. kolmikerrosmalli Verkkopalvelun arkkitehtuuri perustuu yleisesti asiakas-palvelin -malliin Tietokantapohjaisessa (verkko)palvelussa asiakas-palvelin -malli toimii seuraavasti: 1. Käyttäjä käyttää palvelua asiakassovelluksen (user agent) avulla 2. Asiakassovelluksen ja palvelimen välinen vuorovaikutus toteutetaan tarkoitukseen sopivalla protokollalla 3. Toimintaperiaate: asiakassovellus tekee kyselyitä tietokantaan käyttäjän ohjaamana ja näyttää kyselyn tulokset käyttäjälle käyttöliittymässään Webissä asiakas-palvelin mallin toteuttaminen suoraan Web-selaimen ja tietokantapalvelimen yhdistelmänä on periaatteessa mahdollista (älykäs asiakasohjelma). Ratkaisu ei kuitenkaan sellaisenaan ole yleisesti käytössä huonon selainyhteensopivuuden takia Tietokantapohjaisen verkkopalvelun arkkitehtuuri noudattaa yleensä ns. kolmikerrosmallia (three-tier model) Kolmikerrosmallissa Web-selaimen ja tietokantapalvelimen väliin toteutetaan välikerros, joka toimii asiakkaana tietokantapalvelimelle ja palvelimena Web-selaimelle MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 42

Kolmikerrosmalli ja PHP Opintojakson käytössä olevilla teknologioilla kolmikerrosmallin välikerros toteutetaan WWW-palvelimen ja PHP-ympäristön yhdistelmänä: 1. Välikerroksen toiminnallisuus ohjelmoidaan PHP-kielellä 2. Selaimen ja WWW-palvelimen välinen vuorovaikutus hoidetaan tuttuun tapaan HTTP-protokollalla 3. PHP-tulkki käyttää tietokantapalvelinta asiakasohjelman roolissa toimivan funktiokirjaston avulla 4. Tietokantapalvelimen ja -asiakkaan välinen vuorovaikutus toteutetaan käytössä olevan tietokannan omalla protokollalla tai yleisellä Open Database Connectivity (ODBC) -protokollalla PHP tukee sekä ODBC-protokollaa että yleisimpien tietokantapalvelimien omia protokollia: MySQL, PostgreSQL, MS Access, IBM DB2, Oracle,... ODBC-protokollan käyttäminen parantaa sovelluksen siirrettävyyttä eri palvelinympäristöjen välillä MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 43

Verkkopalvelun keskeiset toiminnot Verkkopalveluiden kolme keskeistä toimintoa ovat: 1. Pääsynhallinta (access): verkkopalvelun mahdollisten käyttäjien rajaaminen 2. Käyttäjän tunnistaminen (authentication): verkkopalvelun käyttäjien tunnistaminen 3. Käyttöoikeuksien hallinta (authorisation): verkkopalvelun toimintojen käyttöoikeuksien rajoittaminen Yksinkertaisin keino pääsynhallinnan toteuttamiseen on HTTP-protokollan HTTP Basic Authentication -mekanismin käyttäminen: WWW-resurssin noutamiseen oikeuttavat tiedot välitetään HTTP-pyynnön Authorization-nimisessä otsikossa HTTP-perusautentikointia käyttävä verkkopalvelu on helppo tunnistaa tavasta, jolla selain kysyy käyttäjältä tunnuksen ja salasanan: tiedot syötetään erikseen aukeavaan (taustaväriltään usein harmaaseen) dialogiin, jonka sulkeminen Peruuta-painikkeella aiheuttaa HTTP-virhekoodin 401 Unauthorized Pääsynhallinta voidaan toteuttaa myös esimerkiksi IP-osoitteiden avulla (ongelmia!) MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 44

Käyttäjän tunnistaminen voidaan pääsynhallinnan tavoin toteuttaa HTTPperusautentikoinnin avulla. Pääsynhallinnan ja käyttäjän tunnistamisen ero: ensimmäisessä tunnus voi olla yhteinen joukolle ihmisiä, jälkimmäisessä jokaisella käyttäjällä on oma henkilökohtainen tunnus Yleensä käyttäjän tunnistamiseen toteutetaan räätälöity toiminnallisuus, jolloin tunnistamiseen liittyvät käyttöliittymät ja esimerkiksi virheilmoitukset voidaan toteuttaa halutulla tavalla => käyttöliittymien yhtenäisyys, käyttäjän toiminnan tukeminen Käyttöoikeuksien hallinta voidaan toteuttaa esimerkiksi seuraavilla tavoilla: a. Erittäin yksinkertaisessa sovelluksessa käyttöoikeuksiin ei välttämättä tarvitse ottaa kantaa ollenkaan: kaikilla käyttäjillä on samat oikeudet b. Käyttöoikeudet määritellään jokaiselle käyttäjälle erikseen c. Käyttöoikeudet jaetaan käyttäjille roolien avulla: jokaisella käyttäjällä on (yksi) rooli d. Käyttöoikeudet jaetaan käyttäjille profiilien avulla: jokaisella käyttäjällä on yksi tai useampi profiili Käyttöoikeuksien jakaminen roolien avulla on toimiva ratkaisu silloin, kun palvelun käyttäjäryhmän jäsenet voidaan helposti ryhmitellä eri rooleihin. Profiilien käyttäminen mahdollistaa käyttöoikeuksien määrittelemisestä rooleja joustavammin MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 45

Käyttäjän tunnistaminen: toteuta myös nämä Rekisteröityminen: käyttäjä syöttää haluamansa tunnistetiedot (yleensä tunnus ja salasana) ja mahdollisesti muita tietoja itsestään Tunnuksen ja salasanan pituutta ja muotoa halutaan mahdollisesti rajoittaa Salasana on syytä tallentaa tietokantaan salatussa muodossa: vaihtoehtoja ovat esimerkiksi Message Digest 5 (MD5) ja Secure Hash Algorithm (SHA-1) Sisäänkirjautuminen rekisteröinnissä syötettyjen tietojen avulla (tunnus ja salasana) Käyttäjän on halutessaan voitava kirjautua ulos palvelusta Palvelun toimintojen toteutuksessa on voitava (helposti) varmistaa, että käyttäjä on kirjautunut sisään. Käyttäjään liittyviin tietoihin on päästävä suoraviivaisesti käsiksi Käyttäjän on pystyttävä halutessaan vaihtamaan salasanansa käytettävyys- ja tietoturvasyistä Käyttäjät unohtavat salasanansa aina silloin tällöin. Käyttäjän on pystyttävä selviämään tilanteesta itsenäisesti. Esimerkkiratkaisu: käyttäjällä on mahdollisuus tilata rekisteröitymisen yhteydessä määriteltyyn sähköpostiosoitteeseen linkki, jonka valitsemalla hän voi määritellä itselleen uuden salasanan MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 46

Istunnon hallinta HTTP-protokollan tilattomuus on jo tuttua, mutta kerrataanpa vielä: HTTPprotokollassa ei ole sisäänrakennettua keinoa sovelluksen tilan ylläpitämiseen Sovelluksen tilan ylläpitäminen toteutetaan istuntojen (session) avulla: Sisäänkirjautuminen Sisällön/toimintojen näyttäminen käyttöoikeuksien perusteella Sovelluksen mukauttaminen käyttäjän mieltymysten (preference) perusteella Käyttäjän toiminnan seuraaminen, esimerkiksi lokitiedon kerääminen Ostoskorin toteuttaminen Huomaa, että istuntoja voidaan hyödyntää myös ilman käyttäjän tunnistamista. Tällöin sovelluksen tilaa ei kuitenkaan voida säilyttää istuntojen välillä Asiakas-palvelin -mallissa istunto toteutetaan siten, että asiakkaalle annetaan yksikäsitteinen istunnon tunniste, jonka asiakas toimittaa takaisin palvelimelle jokaisen pyynnön yhteydessä. Istunnon tiedot säilytetään palvelimella ja niihin päästään käsiksi istunnon tunnisteen avulla MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 47

Istunnot käytännössä Istunnon tunnisteen välittämiseen on useita tapoja: Evästeet (Cookie): Eväste on (lyhyt) merkkijono, jonka verkkopalvelu välittää asiakkaalle HTTP-vastauksen mukana. Eväste tallennetaan käyttäjän koneelle joko istunnon ajaksi tai pysyvästi kovalevylle. Asiakas lähettää evästeen palvelulle jokaisen palvelupyynnön mukana. Evästeitä nimitetään usein kekseiksi, pipareiksi tai jopa taikapipareiksi HTTP GET: Istunnon tunniste sijoitetaan muiden pyynnön parametrien tapaan osaksi URI-tunnistetta (example.php?sessionid=xyz123) => ongelmia! HTTP POST: Istunnon tunniste sijoitetaan HTML-lomakkeen piilokenttään Evästeen voimassaoloaika voidaan määritellä evästä asetettaessa. Eväste voidaan myös aktiivisesti poistaa siinä vaiheessa, kun istunto lopetetaan Istunnot ovat erittäin keskeisessä roolissa verkkopalvelun toiminnallisuuden toteuttamisessa. Esimerkiksi yleiskäyttöinen ostoskorin toiminnallisuus toteutetaan istuntojen avulla Istuntoihin palataan vielä kevään edetessä MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 48

Verkkopalvelun tietoturva Verkkopalvelun tietoturvaan liittyviä riskitekijöitä (Welling ja Thompson 2004): Luottamuksellisen tiedon näkyvyys (exposure of confidential data) Tiedon häviäminen tai tuhoutuminen (loss or destruction of data) Tiedon muokkaaminen (modification of data) Palvelun käytön esto (denial of service) Virheet ohjelmistossa (errors in software) Kiistäminen (repudiation): toiminnossa osallisena ollut taho kiistää tekemisensä (tavaran tilaaminen, maksullisen palvelun käyttäminen) Tietoturvan toteuttamisessa on tehtävä kompromissi verkkopalvelun käytettävyyden, suorituskyvyn, kustannustehokkuuden ja turvallisuuden välillä. Esimerkkejä Salasanan säännöllinen kysyminen verkkopankissa heikentää käytettävyyttä Kaiken palvelun välittämän tiedon salaaminen syö palvelimen/verkon resursseja Paikkansa pitävä teesi: tietoturva on ennen kaikkea asennekysymys! MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 49

Verkkopalvelu: yleisiä ominaisuuksia Verkkopalvelut sisältävät näennäisestä erilaisuudestaan huolimatta lukuisia yleisiä ominaisuuksia: Uutisten lisääminen, muokkaaminen ja julkaiseminen (esim. RSS-muoto) Verkkopalvelun kansainvälistäminen (i18n) ja kotoistus (l10n) Erilliset tai integroidut ylläpitäjän työvälineet (esim. käyttäjien hallinta) Tiedonhaun apuvälineet Sovelluksen räätälöinti sivupohjien tuella Monikanavaisuus ja mukautuminen (laiteriippumattomuus & saavutettavuus) Käytön tilastointi ja analysointi Sisällön ylläpitämisen työvälineet Mielipidekyselyt, äänestäminen Keskustelualue, vieraskirja, kalenteri, ostoskori,... Verkkopalvelun toimintojen suunnittelumantra: Lisää/Poista/Muokkaa/Kopioi (CRUD) MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 50

Lisää yleisiä ominaisuuksia (vrt. Django) Django (http://www.djangoproject.com/) listaa ansiokkaasti joukon laadukkaan Websovelluskehyksen ominaisuuksia: Pysyvän tietosisältökerroksen automatisointi ORM (object-relational mapping) menetelmällä (Object-relational mapper) Automaattiset ylläpitokäyttöliittymät (Automatic admin interface) Tyylikkäät URI-tunnisteet (Elegant URL design) Sivupohjamekanismi (Template system) Välimuisti (Cache system) Kansainvälistäminen (Internationalisation) Vrt. Ruby on Rails ( Web development that doesn t hurt ) ja sen PHP-kieleen perustuva sisarkehys CakePHP ( a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility ). Kolmikon keskeinen tavoite on lisätä sovelluskehittäjän käytössä olevaa ilmaisuvoimaa ja siten mahdollista verkkopalveluiden ketterä ja kustannustehokas toteuttaminen MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 51

Lopuksi Sekä verkkopalvelun teknisestä arkkitehtuurista että toiminnallisuudesta löytyy verkkopalvelusta toiseen toistuvia tekijöitä Näiden toistuvien tekijöiden tunnistaminen on erittäin hyödyllistä monellakin tavalla: Verkkopalvelun toiminnallisuuden suunnittelutyö voidaan ainakin osittain tehdä uusien toimintojen keksimisen sijaan olemassa olevista vaihtoehdoista valitsemalla ja/tai vaihtoehtoja räätälöimällä Verkkopalvelujen toteuttamisen tueksi voidaan rakentaa yleinen kehysjärjestelmä, joka minimoi toteutustyöhön liittyvät rutiinit ja mahdollistaa aikaresurssien keskittämisen varsinaisen sovelluslogiikan toteuttamiseen PHP-kieli mahdollistaa tietokantojen helpon käyttämisen ja tukee esimerkiksi istuntojen hyödyntämistä ja muita yleisiä toimintoja PHP-sovellusten tekemisen tueksi löytyy myös erilaisia sovelluskehyksiä, joihin tutustuminen on erittäin suositeltavaa ennen laajempien järjestelmien toteuttamista Kehyksiä ei välttämättä tarvitse käyttää sellaisenaan; tärkeämpää on ideoiden kartoittaminen ja soveltaminen. Eri käyttötarkoituksiin taipuvien sovelluskehysten käyttöä (CakePHP, Django, Ruby on Rails,...) on kuitenkin syytä harkita vakavasti MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 52