3 Verkkopalveluarkkitehtuuri

Samankaltaiset tiedostot
3 Verkkopalveluarkkitehtuuri

3 Verkkopalveluarkkitehtuuri

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

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

Järjestelmäarkkitehtuuri (TK081702)

Luottamuksellinen sähköposti Trafissa

10 Nykyaikainen WWW-arkkitehtuuri

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

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

9 Edistynyt PHP-ohjelmointi

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

Visma asiakaspalvelu Tukipyyntöjen lähettäminen

opiskelijan ohje - kirjautuminen

Luottamuksellinen sähköposti Lapin yliopistossa. Ilmoitusviesti

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

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

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

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

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

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

AVOIMEN YLIOPISTON MOODLE-OPAS OPISKELIJALLE

Visma sovellustuki Tukipyyntöjen lähettäminen

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

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

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

OHJEET Tähtiseura-verkkopalvelun käyttöönotto

Kymenlaakson Kyläportaali

AVOIMEN YLIOPISTON MOODLE-OPAS OPISKELIJALLE SISÄLLYS

4 Verkkopalvelun toteuttaminen

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

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

opiskelijan ohje - kirjautuminen

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

Käyttöohje. Visy Access Net UPM

IT-ohjeita. (Diakonia-ammattikorkeakoulu oy, )

Maestro Lappeenranta Mannerheiminkatu Lappeenranta. Maestro Helsinki Huopalahdentie Helsinki

5 Verkkopalvelun sisällön hallinta

Written by Administrator Saturday, 28 August :51 - Last Updated Tuesday, 22 February :45

11 Valmiit ratkaisut. 11 Valmiit ratkaisut

HELIA 1 (11) Outi Virkki Tiedonhallinta

Uuden Peda.netin käyttöönotto

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

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

Uloskirjautuminen Shibbolethissa

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

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

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

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

Kaislanet-käyttöohjeet

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Uuden lukuvuoden aloitus ViLLEssa

MOODLE TUTUKSI. Pirkko Vänttilä Oulun aikuiskoulutuskeskus

Tietokantasovelluksen määrittelydokumentti

Varausjärjestelmän käyttöopas

Kirjautuminen ja tunnukset Kirjavälityksen kautta! Elisa Hurmerinta!

Uuden lukuvuoden aloitus ViLLEssa

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Innocent drinks Cookie Policy

Vaatimusdokumentti Labra

1 Asiakastilin rekisteröiminen Väestörekisterikeskuksen

Kurssin hallinta -työväline

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

HAME PostGIS-tietokanta

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

Ohjeet psykoterapeuteille

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

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

INTINU13A6 Java sovellukset

Ilmoitus saapuneesta turvasähköpostiviestistä

Toimittajaportaalin pikaohje

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

KIURU Tietotekniikan sovellusprojekti

Firefox 29 ja uudemmat

HUIPPUSTORE.FI REKISTERÖITYMINEN

Juricon Nettisivu Joomlan käyttöohjeet

OP Tunnistuksen välityspalvelu

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

VALITAAN VAIHTOEHDOISTA YKSI KOHTA VOIDAAN VALITA VAIHTOEHDOISTA USEAMPI KOHTA

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Office 365 palvelujen käyttöohje Sisällys

Office ohjelmiston asennusohje

VYPEdit verkkosivualusta SVY-toimijoille

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

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

Kemikaalitieto yhdestä palvelusta

Tietoliikenne II (2 ov)

Seuraavat tasot sisältävät alueita ja pisteitä samassa tasossa. o Asemakaavat o Kaavayksiköt o Kiinteistöt

Helsingi yliopiston kevytkäyttäjähallintosovelluksen rajapintakuvaus

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

Yliopistohaku.fi -palvelun Oma haku -palvelu

Winres-käyttäjän käsikirja Omistaja- ja huoltajaliittymä 1 (21) OMISTAJA- JA HUOLTAJALIITTYMÄ INTERNETISSÄ 1. LIITTYMÄN TARKOITUS

Energiapeili-raportointipalveluun rekisteröityminen yritysasiakkaana

POTILASTIEDON ARKISTO ARKISTONHOITAJAN KÄYTTÖLIITTYMÄN KÄYTTÖOHJE

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen Storage IT varmuuskopiointipalvelun.

Maestro Lappeenranta Mannerheiminkatu Lappeenranta. Maestro Helsinki Huopalahdentie Helsinki

VETUMA rekisteröityminen

@PHPOINT Sähköpostitilin asetukset

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

Kemikaalitieto yhdestä palvelusta

Transkriptio:

3 Verkkopalveluarkkitehtuuri Verkkopalvelun arkkitehtuuri perustuu yleisesti asiakas-palvelin -malliin Tietokantapohjaisessa (verkko)palvelussa asiakas-palvelin -malli toimii seuraavasti: 1. Käyttäjä käyttää palvelua asiakasohjelman avulla 2. Asiakkaan ja palvelimen välinen vuorovaikutus toteutetaan tarkoitukseen sopivalla protokollalla 3. Toiminta: asiakas tekee kyselyitä tietokantaan 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 mahdollista tukevan asiakkaan avulla. Ratkaisu ei kuitenkaan ole huonon toimintavarmuutensa takia yleisesti käytössä Tietokantapohjaisen verkkopalvelun arkkitehtuuri noudattaa yleensä ns. kolmikerrosmallia (three-tier model) Kolmikerrosmallissa asiakkaana toimivan Web-selaimen ja tietokantapalvelimen väliin toteutetaan kerros, joka toimii asiakkaana tietokantapalvelimelle ja palvelimena Webselaimelle 7307010 Hypermedian ohjelmointi (kevät 2005) 37

Kolmikerrosmalli ja PHP Kurssin teknologioilla kolmikerrosmallin välikerros toteutetaan WWW-palvelimen ja PHP-ympäristön avulla: 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 asiakkaana toimivan funktiokirjaston avulla 4. Tietokantapalvelimen ja -asiakkaan välinen vuorovaikutus toteutetaan valitun 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 palvelinten välillä 7307010 Hypermedian ohjelmointi (kevät 2005) 38

Verkkopalvelun keskeiset toiminnot Verkkopalveluiden kolme keskeistä toimintoa ovat: 1. Pääsynhallinta (Access): verkkopalvelun mahdollisten käyttäjien rajoittaminen 2. Käyttäjän tunnistaminen (Authentication): verkkopalvelun käyttäjien tunnistaminen 3. Käyttöoikeudet (Authorization): verkkopalvelun toimintojen käyttöoikeuksien rajoittaminen Yksinkertaisin keino pääsynhallinnan toteuttamiseen on HTTP-protokollan HTTP Basic Authentication -mekanismin käyttäminen: WWW-resurssin noutamiseen tarvittavat 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: WWW-lomakkeen sijaan tiedot syötetään taustaväriltään usein harmaaseen dialogiin, jonka sulkeminen Peruuta-painikkeella aiheuttaa HTTP-virhekoodin 401 Unauthorized Pääsynhallinta voidaan myös toteuttaa esimerkiksi IP-osoitteiden avulla (ongelmia!) 7307010 Hypermedian ohjelmointi (kevät 2005) 39

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 tunnistaminen toteutetaan räätälöidyllä sovelluksella, jolloin tunnistamisen toiminnallisuus, käyttöliittymät ja esimerkiksi virheilmoitukset voidaan toteuttaa halutulla tavalla Käyttöoikeuksien hallinta voidaan toteuttaa esimerkiksi seuraavilla tavoilla: a. Erittäin yksinkertaisessa sovelluksesa 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ä joustavammin 7307010 Hypermedian ohjelmointi (kevät 2005) 40

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 (yleensä tunnus ja salasana) Mahdollisuus uloskirjautumiseen on tärkeä etenkin silloin, kun palvelua käytetään yleisiltä koneilta Palvelun toiminnoissa on voitava (helposti) tarkastaa, onko käyttäjä kirjautunut sisään. Käyttäjään liittyviin tietoihin on päästävä helposti käsiksi Käyttäjän on pystyttävä vaihtamaan salasanansa tietoturvan parantamiseksi Käyttäjät unohtavat joskus salasanansa. Käyttäjän on pystyttävä selviämään tilanteesta itsenäisesti. Ratkaisu: toiminto, jonka avulla käyttäjä voi tilata itselleen uudeen salasanan sähköpostina rekisteröitymisessä määriteltyyn osoitteeseen 7307010 Hypermedian ohjelmointi (kevät 2005) 41

Istunnon hallinta HTTP-protokollan tilattomuus on jo tuttu asia, mutta kerrataan 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 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 7307010 Hypermedian ohjelmointi (kevät 2005) 42

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) 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 myöhemmin kurssin kuluessa 7307010 Hypermedian ohjelmointi (kevät 2005) 43

Verkkopalvelun turvallisuus Verkkopalvelun turvallisuuteen liittyviä seikkoja: Luottamuksellisen tiedon näkyvyys Tiedon häviäminen tai tuhoutuminen Tiedon muokkaaminen Palvelun saatavuuden katkeaminen (denial of service) Virheet ohjelmistossa Kiistäminen (repudiation): toiminnossa osallisena ollut taho kiistää osallistumisensa (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ä Tiedon salaaminen syö palvelimen resursseja Paikkansa pitävä teesi: tietoturva on ennen kaikkea asennekysymys! 7307010 Hypermedian ohjelmointi (kevät 2005) 44

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 paikallistaminen (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 avulla Monikanavaisuus (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 7307010 Hypermedian ohjelmointi (kevät 2005) 45

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ä: 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 antaa mahdollisuuden 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 eritasoisia ohjelmistokehyksiä, joihin tutustuminen on erittäin suositeltavaa ennen laajempien järjestelmien toteuttamista Ohjelmistokehyksiä ei välttämättä tarvitse käyttää suoraan tärkeämpää on ideoiden hyödyntäminen ja esimerkiksi omien tarpeiden mukaisen kehysjärjestelmän toteuttaminen 7307010 Hypermedian ohjelmointi (kevät 2005) 46