Rajapintojen käyttö tiedonsiirrossa

Koko: px
Aloita esitys sivulta:

Download "Rajapintojen käyttö tiedonsiirrossa"

Transkriptio

1 Rajapintojen käyttö tiedonsiirrossa Harri Pitkänen Pro gradu tutkielma Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Joulukuu 2016

2 ITÄ-SUOMEN YLIOPISTO, Luonnontieteiden ja metsätieteiden tiedekunta, Joensuu Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Opiskelija, Harri Pitkänen: Rajapintojen käyttö tiedonsiirrossa Pro gradu tutkielma, 63 sivua, 1 liite (2 sivua) Pro gradu tutkielman ohjaaja: FT Markku Tukiainen Joulukuu 2016 Tämä pro gradu tutkielma käsittelee rajapintojen käyttöä tiedonsiirrossa. Tutkielma sisältää rajapintojen yleistä teoriaa, sekä tarkemmat määrittelyt ohjelmointi- ja yhdistelmärajapinnoista. Teorian ohessa tuodaan myös esiin erilaisten rajapintojen käyttötarkoituksia, hyötyjä ja haittoja. Tutkielman virallinen tutkimuskysymys pyrkii selvittämään, mikä kolmesta valitusta rajapinnasta soveltuu parhaiten tiedonsiirtoon. Valitut rajapinnat ovat FTP-, SOAP- ja REST-rajapinta. Rajapinnan tiedonsiirron soveltuvuuteen vaikuttaa tässä tutkielmassa eniten tiedonsiirron nopeus. Vertailu on toteutettu testitapauksilla, joissa kaikilla vertailtavilla rajapinnoilla toteutetaan tiedonsiirtoja, sisällöltään ja määrältään vaihtelevilla aineistoilla. Avainsanat: rajapinta, tiedosto, tiedonsiirto, ohjelmisto, kommunikointi ACM-luokat (ACM Computing Classification System, 1998 version): C.0, C.2.0, D.2.2, D.2.11, H.3.

3 Lyhenneluettelo API Application Programming Interface COTS Commercial off-the-shelf FTP File Transfer Protocol HATEOAS Hypermedia as the Engine of Application State HTTP Hypertext Transfer Protocol IETF Internet Engineering Task Force MIT Massachusetts Institute of Technology NTP Network Time Protocol OSFA One-Size-Fits-All REST Representational state transfer SOAP Simple Object Access Protocol TCP Transmission Control Protocol W3C World Wide Web Consortium XML Extensible Markup Language

4 Sisällysluettelo 1 Johdanto Rajapintojen teoria Ohjelmointirajapinnat Ohjelmointirajapintojen määritelmä Ohjelmointirajapintojen käyttötarkoitukset Ohjelmointirajapintojen hyödyt Ohjelmointirajapintojen haitat Yhdistelmärajapinnat Yhdistelmärajapintojen määritelmä Yhdistelmärajapintojen käyttötarkoitukset Yhdistelmärajapintojen hyödyt Yhdistelmärajapintojen haitat Teoriaosan yhteenveto Vertailtavien rajapintojen tekninen kuvaus FTP-rajapinta SOAP-rajapinta REST-rajapinta Tutkimuskysymyksen esittäminen Vertailun toteutus Tulokset Testien luotettavuus ja toistettavuus Testitulosten esittäminen Johtopäätökset Tulosten analysointi Käytännön sovellukset Yhteenveto

5 1 JOHDANTO Rajapintoja on ollut käytössä niin pitkään kuin ohjelmistoilla ja laitteilla on ollut tarve kommunikoida keskenään. Rajapinnat ovat aiemmin olleet yleisiä laitteiden ja ohjelmistojen välillä, mutta nykyisin kahden ohjelmiston välinen rajapinta on hyvin yleinen tapa kommunikoida. Varsinkin verkon yli toimivat rajapinnat ovat yleistyneet verkkoteknologioiden kehittyessä ja verkossa toimivien palvelujen lisääntyessä. Tämä tutkielma käsittelee siis rajapintoja ja pyrkii selvittämään kolmesta ennalta valitusta rajapinnasta, mikä soveltuu parhaiten tiedonsiirtoon kahden palvelimen välillä. Vertailtaviksi valitut rajapinnat ovat FTP-, SOAP- ja REST-rajapinta. Vertailun toteutukseen on tässä tutkielmassa käytetty empiiristä tutkimusta, koska kyseinen tutkimusmenetelmä sopii hyvin rajapintojen tarkasteluun käytännönläheiseltä kannalta. Tutkielman rakenne on seuraava: Luku kaksi käy läpi rajapintojen ja yhdistelmärajapintojen teoriaa. Teoreettinen osio sisältää rajapintojen yleisen määrittelyn, esimerkkejä käyttötarkoituksista, sekä erilaisia hyötyjä ja haittoja. Luvussa kolme esitellään tutkielmassa vertailtavat rajapinnat. Kaikista rajapinnoista käydään läpi lyhyt kuvaus rajapinnan historiasta. Tämän lisäksi rajapinnoista esitetään teknisempi kuvaus niiden toiminnasta, sekä yleisesti tiedostettuja hyviä ja huonoja puolia. Luku neljä määrittelee ja rajaa tutkimuskysymyksen. Samalla esitellään tutkielmassa käytetyt tutkimusmenetelmät ja niiden luonteet. Luvussa viisi jatketaan tutkimuskysymykseen vastauksen tuottavien testitapausten esittelyllä. Testien asettelu ja toteutus on kuvattu mahdollisimman hyvin, pitäen mielessä tutkimuksen toistettavuus. Luvut kuusi ja seitsemän esittelevät testitapausten suorittamisesta saadut tulokset ja niistä tehdyt johtopäätökset. Johtopäätösten lisäksi vertailluista rajapinnoista 2

6 esitetään yleiset esimerkit tilanteista, joissa kyseiset rajapinnat olisivat mahdollisesti paras valinta ongelman ratkaisuun. Luku kahdeksan on yhteenveto, joka kasaa koko tutkielman yhdeksi tiiviiksi esitykseksi. Lisäksi käydään läpi omakohtaiset intressit rajapintojen tutkimiseen, sekä lopuksi mainitaan tutkielman pohjalta mahdollisesti tehtävistä jatkotutkimuksista. 3

7 2 RAJAPINTOJEN TEORIA Normaalisti ohjelmistojen välinen tietojen vaihtaminen pitää määritellä tarkasti ja ohjelmistokohtaisesti suunnitteluvaiheessa. Tämä johtaa tilanteeseen jossa muutosten tekeminen jo toteutettuihin ohjelmistoihin on työlästä. Muutokset pitää yleensä tehdä erikseen kaikkiin mukana oleviin ohjelmistoihin. Myös muut kuin ohjelmistojen kommunikointiin liittyvät muutokset voivat hankaloitua, koska muutoksia tehtäessä on aina otettava huomioon vaikutukset tietojen siirtoon muiden ohjelmistojen välillä. Tämän lisäksi uusien ohjelman osien lisääminen olemassa olevaan ohjelmistoon voi olla työlästä. Ohjelmointirajapintoja käytetään, koska ne helpottavat ohjelmistojen välistä kommunikointia ja sen suunnittelua. Käyttämällä ohjelmointirajapintaa, voidaan ohjelmistojen väliseen tietojen vaihtamiseen tehdä muutoksia helpommin ja uusien ohjelmistojen lisääminen olemassa olevaan järjestelmään on suoraviivaisempaa. Myöskään yksittäisen ohjelmiston sisällä tapahtuvat muutokset vaikuttavat harvemmin ohjelmointirajapinnan toimintaan. Ohjelmointirajapinnalla tarkoitetaan kahden tai useamman ohjelmiston välistä kommunikointikanavaa. Ohjelmointirajapinnat voidaan myös sulauttaa yhteen yhdistelmärajapinnaksi (API Mashup). Termi yhdistelmärajapinta ei ole vakiintunut, mutta tässä tutkielmassa sillä tarkoitetaan kahdesta tai useammasta rajapinnasta yhdisteltyä ohjelmointirajapintaa. Yleiset ohjelmointirajapinnat ovat yleistyneet viime vuosien aikana ja nykyään yhtiöt tarjoavatkin niitä asiakkaittensa käyttöön entistä laajempina. Osa ohjelmointirajapinnoista on maksullisia, osa ilmaisia ja joissakin perusominaisuudet ovat ilmaiset, mutta lisäominaisuuksista pitää maksaa. Esimerkiksi Googlen tarjoaman karttapalvelun ohjelmointirajapinta jakautuu ilmaiseen (Google Maps API) ja maksulliseen (Google Maps API for Work) versioon. Ilmaisversio ei sisällä kaikkia ominaisuuksia, sen käyttöä on rajoitettu ja 4

8 jotkut ominaisuuksista eivät ole niin tehokkaita. Maksullista versiota on myös pakko käyttää, jos ohjelmointirajapintaa käytetään kaupallisiin tarkoituksiin. Ohjelmistojen kehittäjät käytävät entistä useampia ohjelmointirajapintoja niiden yleistymisen myötä. Useiden ohjelmointirajapintojen käytön myötä on syntynyt tarve saada useampi ohjelmointirajapinta sovitettua yhdeksi kokonaisuudeksi, jolloin saadaan aikaan yksi yhtenäinen yhdistelmärajapinta. Teoriaosion rakenne on seuraava: Kohdassa 2.1 käydään ensin yleisellä tasolla läpi ohjelmointirajapintojen määrittely, jonka jälkeen tutustutaan erilaisiin käyttötarkoituksiin. Kohdan 2.1 lopussa käydään läpi, mitä hyötyjä ja haittoja ohjelmointirajapintojen käyttämisestä on. Kohta 2.2 käsittelee yhdistelmärajapintojen määrittelyä, käyttötarkoituksia ja hyötyjä. Tämän lisäksi luvussa käydään läpi mahdollisia haasteita ja haittoja, joita yhdistelmärajapintojen käytöstä voi aiheutua. Kohta 2.3 on teorian yhteenveto, johon on yhdistetty yleisimmät asiat ohjelmointi- ja yhdistelmärajapinnoista. Yhteenvedon lopuksi tehdään päätelmiä näiden molempien käytöstä. 2.1 Ohjelmointirajapinnat Tässä kohdassa käsitellään perinteisiä ohjelmointirajapintoja ja se on jaettu kolmeen alakohtaan. Alakohdissa käydään läpi seuraavia asioita, ohjelmointirajapinnan yleinen määritelmä, ohjelmointirajapintojen yleisimmät käyttötarkoitukset, ohjelmointirajapintojen käytöstä saavutetut hyödyt ja ohjelmointirajapintojen mahdolliset haitat. Ohjelmointirajapinta liittyy aina yhteen tai useampaan ohjelmistoon. Tästä syystä ohjelmointirajapintaa on vaikeahkoa määritellä yleisellä tasolla, liittämättä sitä edes johonkin tarkasteltavaan ohjelmistoon. Yleisesti ottaen ohjelmointirajapinta on määritelmä, joka mahdollistaa kahden tai useamman ohjelmiston keskisen 5

9 kommunikoinnin. Tätä määritelmää on ehkä helpompi ymmärtää tarkastelemalla luvussa esitettyjä käytännön esimerkkejä. Käyttötarkoitusten osalta tavoite on kuvailla, miten monipuolisesti ohjelmointirajapintoja voidaan käyttää ja esittää muutamia käytännön esimerkkejä. Kaikkien käyttötarkoitusten ja sovellusalueiden listaaminen on mahdotonta näin pienen mittakaavan kirjoitelmassa. Hyödyt osion tavoite on tuoda esille asioita, jotka tukevat ohjelmointirajapintojen käyttöä. Vastavuoroisesti haitat osiossa mainitaan ohjelmointirajapintojen käytöstä koituvia ongelmia Ohjelmointirajapintojen määritelmä Ohjelmointirajapinnan avulla voidaan kahden tai useamman ohjelmiston välille luoda yhteinen ja ehjä määritelmä, jonka mukaisesti kyseiset ohjelmistot voivat kommunikoida keskenään. Yhdysvaltalainen Software Engineering Institute (SEI) tarjoaa oman määritelmänsä ohjelmointirajapinnalle [1]: Ohjelmointirajapinta (API) on vanhempaa teknologiaa, joka helpottaa viestien- tai tiedonvaihtoa kahden tai useamman sovellusohjelman välillä. API on virtuaalinen rajapinta kahden yhteydessä olevan ohjelmiston, kuten tekstinkäsittely- ja taulukkolaskentaohjelman, toimintojen välillä. (...) Ohjelmointirajapinta on ohjelmisto, joka tukee monien kaupallisten "suoraan hyllyltä" ostettavien (COTS) ohjelmistotuotteiden tai vastikään kehitettyjen ohjelmistojen järjestelmätason integraatiota olemassa oleviin tai uusiin sovelluksiin. Kuten aiemminkin mainittiin ja sanan ohjelmointirajapinta osasta rajapinta voidaan päätellä, ovat ohjelmointirajapinnat rakenteita, jotka muodostuvat aina vähintään kahden eri sovellusohjelman välille. Esimerkiksi käyttöjärjestelmien 6

10 ohjelmointirajapinnat mahdollistavat ohjelmalle pääsyn käyttämään käyttöjärjestelmän sisäisiä resursseja, kuten tiedostojärjestelmää tai prosessienhallintaa [1]. Olio-ohjelmointikielissä, kuten Javassa, ohjelmointirajapinnaksi voidaan kutsua luokkien julkisten metodien ja rajapintaluokkien, sekä niihin liittyvien dokumenttien, kokonaisuutta. On hyvin yleistä, että sovelluksia, joiden välille ohjelmointirajapinta muodostuu, kehittävät toisistaan erilliset ryhmät [1]. Käyttötarkoituksesta riippuen ohjelmointirajapintojen julkisuus voi vaihdella. Pääasiallisesti ohjelmointirajapinnat voidaan jakaa julkisuuden perusteella kahteen eri ryhmään, joita ovat avoin ja suljettu. Myös näiden kahden ryhmän yhdistelmä on mahdollinen, jolloin tietty osa ohjelmointirajapinnasta on käytössä vain rajatulla määrällä käyttäjiä. Täysin suljetut ohjelmointirajapinnat ovat käytännössä yritysten sisäisesti käyttämiä tai niillä on toteutettu yritysten välistä toimintaa. Tällöin ohjelmointirajapintaa käytetään tehostamaan yrityksen toimintaa esimerkiksi hyödyntämällä aiemmin kehitettyjä järjestelmiä ja vähentämällä kehitykseen käytettävää aikaa. Myös sulautetuissa järjestelmissä ohjelmointirajapinnat ovat lähtökohtaisesti suljettuja. Avoimet ohjelmointirajapinnat ovat julkaistu vapaasti käytettäväksi ja yleensä kuka tahansa voi hyödyntää niitä haluamallaan tavalla. Avoimissakin ohjelmointirajapinnoissa on kuitenkin yleistä, että sen julkaissut yritys tai taho on asettanut käyttöä rajoittavan vastuuvapauslausekkeen. Tekemällä ohjelmointirajapinnasta yleisölle avoin, pyritään yleensä saavuttamaan hyötyä yhteisöön kuuluvien käyttäjien kehittämien ohjelmien ja ominaisuuksien muodossa. Kahden edellä mainitun julkaisutavan lisäksi on olemassa näiden kahden yhdistelmä. Osittain suljetussa ohjelmointirajapinnassa on osioita, joihin on käyttöoikeus vain tietyllä osalla käyttäjistä. Käyttöoikeuksia voidaan rajoittaa esimerkiksi tarjoamalla maksua vastaan ohjelmointirajapinnan palveluista kattavampia versioita tai kokonaan uusia palveluja. Näin saavutetaan samanaikaisesti avoimen ohjelmointirajapinnan tuomat edut ja mahdollistetaan tuottojen saaminen suljetun osan avulla. 7

11 Ohjelmointirajapinta voi olla yksisuuntainen tai toimia molempiin suuntiin. Yksisuuntaisissa ohjelmointirajapinnoissa vain toinen ohjelmisto-osapuoli lähettää kutsuja ja toinen vastaa kutsuihin. Molempiin suuntiin toimivissa ohjelmointirajapinnoissa molemmat ohjelmisto-osapuolet lähettävät ja vastaavat kutsuihin. Esimerkiksi Googlen tarjoaman karttapalvelun ohjelmointirajapinta on yksisuuntainen rajapinta, koska siinä palvelua käyttävät ohjelmistot lähettävät kutsuja ja palvelu ainoastaan vastaa ohjelmistojen kutsuihin. Molempiin suuntiin toimiva ohjelmointirajapinta voi olla esimerkiksi pikaviestintäohjelman viestien välittämisen toteutus, jossa molemmat osapuolet lähettävät kutsuja ja vastaavat niihin. Yksisuuntaisissa ohjelmointirajapinnoissa toiminta on yleensä keskittynyt niin, että kutsuihin vastaavia osapuolia on yksi ja kutsuja lähettäviä osapuolia useita. Tällöin kutsuja vastaanottava osapuoli toimii palvelimena ja kutsuja lähettävät osapuolet asiakkaina. Tämän vastakohta, eli yksi kutsuja lähettävä osapuoli ja useita palvelevia osapuolia on huomattavasti harvinaisempi. Molempiin suuntiin toimivat ohjelmointirajapinnat ovat hyvin usein yksityisiä. Yleisimmin kaksisuuntaista ohjelmointirajapintaa käytetään kun monta yritystä tarvitsee kommunikointikanavan ohjelmistojensa välille. Toinen yleinen käyttötarkoitus molempiin suuntiin toimivasta ohjelmointirajapinnasta löytyy sulautetuista järjestelmistä. 8

12 Kuva 1. Ohjelmointirajapinnat toimivat liitoskohtina eri laitteiden välillä. Monet suuremmat julkiset ohjelmointirajapinnat ovat yksisuuntaisia. Tyypillinen esimerkki tämän tyylisestä ohjelmointirajapinnasta on jonkun yrityksen tarjoama verkossa toimiva ohjelmointirajapinta. Käyttäjät voivat suorittaa kutsuja yrityksen ohjelmointirajapintaan käyttäen erillistä asiakassovellusta. Asiakassovellus on siis ohjelma, jota hyödyntämällä voidaan tehdä ohjelmointirajapintaan kutsuja eli käyttää kyseistä palvelua. Esimerkiksi suoratoistopalvelu Twitch tarjoaa julkisen ohjelmointirajapinnan, jota hyödyntämällä on toteutettu useita asiakassovelluksia, useille eri käyttöjärjestelmille. Näin toimivat myös Twitterin molemmat julkiset ohjelmointirajapinnat (Twitter REST API ja Search API). Sen lisäksi että ohjelmointirajapinnat voivat toimia yksisuuntaisesti tai molempiin suuntiin, voidaan niiden sisältämät metodikutsut jaotella kahteen eri ryhmään pyyntö (PULL) ja työntö (PUSH). Pyyntö-tyypin metodikutsut pyytävät kohde ohjelmointirajapintaa suorittamaan jonkun toiminnon ja antamaan vastauksen, joka usein sisältää pyydettyjä tietoja. Työntö-tyypin metodikutsut lähettävät tietoja kohde ohjelmointirajapintaan, joka suorittaa tietojen pohjalta toimintoja ja antaa kutsun 9

13 lähettäneelle ohjelmalle yleisimmin vastauksena ainoastaan tiedon suoritettujen toimintojen onnistumisesta. Ohjelmointirajapinnoille, varsinkin julkisille, on myös tyypillistä, että yksi sen kerroksista tehdään abstraktiksi. Kyseisen kerroksen toiminnot määritellään siten, että niiden parametrit ja palautusarvot pysyvät mahdollisimman muuttumattomina julkaisun jälkeen. Jos toiminto on vielä kehityksen alla ja sen parametreihin tai palautusarvoon voi tulla muutoksia, on tämä tärkeää mainita ohjelmointirajapinnan määrittelyssä. Näin ollen ohjelmistokehittäjä tietää, että hänen ohjelmistonsa, joka käyttää ohjelmointirajapinnan vielä kehityksen alla olevia toimintoja, toiminnallisuus voi muuttua tai jopa lakata toimimasta Ohjelmointirajapintojen käyttötarkoitukset Pääsiallinen ohjelmointirajapintojen käyttötarkoitus on mahdollistaa tehokas tapa toteuttaa tiedonvaihto kahden tai useamman ohjelmisto-osapuolen välillä. Tehokkuuden lisäksi ohjelmointirajapinnat pyritään suunnittelemaan niin, että niiden ylläpito ja jatkokehitys ovat vaivattomasti hoidettavissa Määritelmän piilottaminen Yksi yleisimmistä ohjelmointirajapinnan käyttötarkoituksista on piilottaa ohjelmiston määritelmä ja toteutus, eli miten eri ohjelmat ja niiden osat liittyvät toisiinsa tai mitä yksittäiset ohjelmakutsut pitävät sisällään, käyttäjältä. Näin toimimalla voidaan ohjelmistokehitykseen liittyvät työt jakaa osiin, joka on yleistä tietotekniikan toimialalla. Samaa mallia voidaan hyödyntää myös hajautetussa ohjelmistokehityksessä ja sitä pidetäänkin laajalti ainoana skaalautuvana tapana kehittää järjestelmiä erillisistä, osittain itsenäisistä, komponenteista [2]. Piilottamalla ohjelmiston määritelmä ja toteutus, mutta tarjoamalla silti toiminnallisuus, voidaan ohjelmointirajapintoja hyödyntää tehokkaasti ohjelmistokehityksessä. Tällöin on vaivattomampaa ottaa ohjelmiston kehittämiseen mukaan kolmansia osapuolia. Koko ohjelmiston toteutusta ei tarvitse paljastaa, vaan kolmas osapuoli voi toimia ja suorittaa oman osansa ohjelmointirajapinnan 10

14 tarjoamien toimintojen avulla. Tämä helpottaa myös kolmannen osapuolen työskentelyä, koska sen sijaan että heidän täytyisi käydä läpi ja sisäistää koko ohjelmisto, heille riittää ohjelmointirajapintaan perehtyminen. Joissain tapauksissa piilottamista voidaan käyttää myös yrityksen sisäisessä ohjelmistotuotannossa. Oikein toteutettuna, toteutuksen piilottaminen suuremmalta joukolta työntekijöitä, parantaa ylläpidettävyyttä ja vähentää tarvetta ohjelmiston testaamiselle Liitännäisten käyttö Eräs ohjelmointirajapintojen hyödyllisimmistä käyttötarkoituksista on uusien ominaisuuksien kehittämisen tukeminen. Hyödyntämällä ohjelmistoon kuuluvan ohjelmointirajapinnan tarjoamia palveluja, voidaan luoda kokonaan uutta toiminnallisuutta tai muuttaa olemassa olevan toiminnon käyttäytymistä. Tällaista uutta ominaisuutta kutsutaan yleisesti liitännäiseksi (plugin). Liitännäiset toimivat ainoastaan liitettynä johonkin isäntäsovellukseen, jonka ohjelmointirajapinnan tarjoamat palvelut mahdollistavat liitännäisen toiminnan. Ilman isäntäsovellusta toimivat liitännäiset eivät lähtökohtaisesti ole enää liitännäisiä vaan itsenäisiä ohjelmia, joilla on mahdollisuus liittyä toiseen sovellukseen tämän ohjelmointirajapinnan kautta. Esimerkiksi verkkoselaimeen voidaan kehittää liitännäisiä, jotka mahdollistavat eri muotoihin pakattujen videotiedostojen katselun. Käyttämällä liitännäisiä voidaan mahdollistaa ohjelmiston ominaisuuksien hajauttaminen pienemmiksi helpommin hallittaviksi kokonaisuuksiksi, joita voidaan tarpeen mukaan lisätä tai poistaa isäntäsovelluksesta. Joissakin tapauksissa liitännäinen voidaan jopa ottaa käyttöön ilman isäntäsovelluksen uudelleenkäynnistämistä. Kun käytetään liitännäisiä, on tärkeää muistaa niiden riippuvuus isäntäsovelluksen ohjelmointirajapinnasta. Jos isäntäsovellukseen tai sen ohjelmointirajapintaan tulee muutoksia, on mahdollista, että liitännäinen tai jokin sen osa voi toimia väärin tai lopettaa kokonaan toimintansa. Näihin muutoksiin voidaan osittain varautua 11

15 jättämällä myös aiemmat ohjelmointirajapinnan palvelut saataville, ainakin siksi aikaa että liitännäisten kehittäjät ehtivät päivittää liitännäiset tukemaan uudempaa versiota ohjelmointirajapinnasta. Aina tämä ei kuitenkaan ole mahdollista, joten myös liitännäisten olisi hyvä varautua muutoksiin käyttämässään ohjelmointirajapinnassa, esimerkiksi ilmoittamalla päivitystarpeesta ja sulkemalla itsensä hallitusti Pilvipalvelut Nykyaikana erilaiset sähköiset palvelut tarjoavat valtavan määrän dataa joka päivä miljoonille käyttäjille. Kyseinen data voi olla mitä tahansa sähköistä materiaalia esimerkiksi videoita, kuvia, tekstiä, äänitiedostoja tai ohjelmia. Riippumatta datan sisällöstä, on näillä sähköisillä materiaaleilla yksi yhteinen tekijä, niiden täytyy olla tarjolla käyttäjälle jonkin yhteyden kautta. Perinteinen ratkaisu sähköisen median jakeluun käyttäjälle on varastoida se datakeskukseen. Datakeskukset ovat palvelinkeskittymiä, joissa suuria määriä laitteita on yhdistetty säilyttämään, käsittelemään ja tarjoamaan valtavia määriä tietoa. Ajan myötä datamäärät ovat kuitenkin kasvaneet ja datakeskuksien ongelmaksi nousee kapasiteetin riittämättömyys. Toinen merkittävä ongelma on päätelaitteiden alati kasvava kirjo. Datakeskuksen tulee pystyä tarjoamaan sisältönsä useiden eri laitteiden ja ohjelmistojen vaatimusten mukaan, joka kasvattaa ylläpidettävien ohjelmistojen määrää. Pelkästään kapasiteettia kasvattamalla ongelmia ei ole järkevää lähteä ratkaisemaan, koska kustannukset nousevat nopeasti kun tarvitaan suuria määriä lisää fyysistä tilaa, laitteita ja henkilökuntaa. Ongelmaksi voi myös muodostua tarve toimia maailmanlaajuisesti tai fyysisen järjestelmän heikkoudet, esimerkiksi laajat sähkökatkokset. Ohjelmointirajapintoja hyödyntämällä voidaan sähköisten materiaalien säilytys, käsittely ja käyttäjälle tarjoaminen siirtää pois datakeskuksesta ja sijoittaa pilveen. Pilven avulla päästään eroon datakeskuksen skaalautumisongelmasta sekä mahdollisista fyysisistä heikkouksista. Samalla mahdollistetaan helpommin 12

16 maailmanlaajuinen toiminta. Myös päätelaitteiden toisistaan eroavuuden tuottamat ongelmat pystytään minimoimaan ohjelmointirajapintojen avulla. Normaalisti päätelaite pyytää ohjelmistollaan datakeskuksen vastaavalta ohjelmistolta tietoa haluamassaan muodossa. Pilvessä toimiessa kaikkien päätelaitteiden pyynnöt voidaan ohjata yhteen ohjelmointirajapintaan. Tämä ohjelmointirajapinta hoitaa pyynnöt eteenpäin oikeaan paikkaan riippuen päätelaitteesta ja antaa vastauksen halutussa muodossa. Näin ollen itse palvelua voidaan kehittää, kunhan ohjelmointirajapinta pidetään eheänä. Myös eri päätelaitteille kehitettävien ohjelmistojen määrä laskee ja kehitys nopeutuu. Kuva 2. Netflix siirtyi OSFA-mallin ohjelmointirajapinnasta uuteen kerroksittaiseen malliin. Esimerkkinä Netflix on yksi ensimmäisistä suurista yhtiöistä, joka on siirtänyt toimintansa datakeskuksesta pilveen. Samalla Netflix on vaihtanut perinteisen onesize-fits-all (OSFA) -tyyppisen ohjelmointirajapintansa uuteen, paremmin muokattavissa olevaan malliin. Uuden mallin mukaisessa ohjelmointirajapinnassa on päällä sovitinkerros (adapter), joka hoitaa päätelaitteiden kutsut oikeaan paikkaan ja antaa vastaukset halutussa muodossa [3]. 13

17 Yritysten väliseen kommunikointiin Kuten kohdassa 2.1 mainittiin, suljetut ohjelmointirajapinnat ovat käytännössä yritysten sisäisessä käytössä tai niillä hoidetaan yritysten välistä toimintaa. Ohjelmointirajapintojen käyttö yritysten bisneslogiikkojen välisessä kommunikoinnissa luo haasteita ja myös ongelmia ratkaistavaksi. Kuitenkin oikein käytettynä ohjelmointirajapinta voi mahdollistaa sellaisia asioita tai toimintatapoja, joiden kehittämiseen tai toteuttamiseen tarvittavat kustannukset olisivat muuten liian suuret. Esimerkkinä kustannusten minimoinnista voidaan ajatella yritystä, jonka data tarvitaan jatkuvasti eri yritysten saataville. Jos kyseinen yritys kehittää aina uuden ohjelmiston datan siirtoa varten jokaista uutta dataa tarvitsevaa yritystä kohden, niin kustannukset kasvavat uusien ohjelmistojen myötä. Datan tarjoaminen sitä tarvitsevien yritysten saataville käyttämällä ohjelmointirajapintaa, säästää huomattavasti ohjelmistokehityksen kustannuksissa. Yksi ongelma kahden tai useamman yrityksen välisen ohjelmointirajapinnan luomisesta muodostuu tietoturvan varmistamisesta. Vaikka kyseessä ei ole julkinen kaikille avoin ohjelmointirajapinta, on silti mahdollista, että sen avulla joku ulkopuolinen taho pääsee käsiksi yhden tai useamman mukana olevan yrityksen tietoihin. Näin voi tapahtua, jos ohjelmointirajapinta tarjoaa pääsyn kyseisiin tietoihin ja jonkun mukana olevan yrityksen tietoturvataso on riittämätön. Tällöin joku ulkopuolinen voi ensin tunkeutua heikoiten suojatun yrityksen järjestelmään ja ohjelmointirajapintaa käyttäen päästä käsiksi kaikkien sitä käyttävien yritysten tietoihin. Jos tietoturva asiat ovat kunnossa, niin ohjelmointirajapinnan avulla voidaan vastaavasti saavuttaa yksi huomattavan suuri hyöty verrattuna perinteisiin, suoria datayhteyksiä käyttäviin ohjelmistoihin. Normaalisti yritysten väliset ohjelmistot ovat sidottuja käyttämään samoja tai ainakin samantyyppisiä ohjelmointikieliä ja tietorakenteita. Kun käytetään ohjelmointirajapintoja, voivat kaikki samaan järjestelmään liittyvät yritykset tuottaa omat ohjelmistonsa haluamillaan 14

18 ohjelmointikielillä. Kaikilla yrityksillä voi tämän lisäksi olla käytössä täysin erilaiset tietokannat ja muut oheisjärjestelmät. Kuva 3. Järjestelmä, jossa useita eri ohjelmointikieliä käyttäviä yrityksiä yhteydessä toisiinsa rajapinnan välityksellä. Eri ohjelmointikielet ja oheisjärjestelmät eivät vaikuta toistensa toimintaan, koska niillä ei ole tietoa toisistaan. Ohjelmistojen liittymäkohdat ovat yhteydessä toisiinsa ohjelmointirajapinnan kautta, joka on kaikille ohjelmistoille yhteinen. Tämä lähestymistapa mahdollistaa myös uusien yritysten tuomisen mukaan järjestelmän kehitykseen, ilman mittavia muutoksia mukaan tulevan yrityksen ohjelmistoihin Sulautetut järjestelmät Sulautetut järjestelmät ovat laitteita tai laitekokonaisuuksia, jotka ovat tietokoneohjattuja. Ennen varsinaisia sulautettuja järjestelmiä, piti tietokoneen nykyisin hoitamat ohjaustehtävät hoitaa automatiikkaa ja erityisiä elektroniikan komponentteja käyttäen [4]. 15

19 Edelleenkin on hyvin yleistä, että sulautetut järjestelmät ovat suljettuja. Tämä tarkoittaa sitä että sulautettuun järjestelmään valitaan jo suunnitteluvaiheessa laitteisto ja sitä ohjaava ohjelmisto, joiden avulla järjestelmä pystyy suoriutumaan sille tarkoitetusta tehtävästä parhaalla mahdollisella tavalla. Esimerkkejä tällaisista järjestelmistä ovat pankkiautomaatit, ajotietokoneet ja kodinkoneet kuten mikroaaltouunit. Sulautetut järjestelmät ovat kehittyneet nopeasti, sitä mukaa kun tietokoneet ja prosessorit ovat kehittyneet. Nykyäänkin on kuitenkin yleistä, ettei sulautettuun järjestelmään pysty jälkikäteen lisäämään uusia ohjelmistoja. Tämä tarkoittaa yleensä kolmannen osapuolen ohjelmistoja, joiden toiminta poikkeaa alkuperäisen sulautetun järjestelmän ohjelmiston toiminnasta. On kuitenkin normaalia, että tällaisiin sulautettuihin järjestelmiin on mahdollista asentaa valmistajan tai ylläpitävän tahon ohjelmistopäivityksiä. Uudemmat sulautetut järjestelmät mahdollistavat kolmannen osapuolen ohjelmistojen liittämisen järjestelmään ohjelmointirajapinnan avulla. Yhden laitekategoria tällaisista sulautetuista järjestelmistä muodostavat mobiililaitteet. Esimerkiksi matkapuhelimet ovat jo useita vuosia olleet suurimmaksi osaksi älypuhelimia, joissa käyttäjä ohjaa toimintaa säätelevää tehokasta tietokonetta käyttöjärjestelmän avulla. Matkapuhelimien käyttöjärjestelmät ovat kattavia kokonaisuuksia, joilla saavutetaan kaikki valmistajan suunnittelemat toiminnallisuudet. Yleensä suurin osa toiminnallisuuksista, esimerkiksi soittaminen tai tekstiviestin lähetys, hyödyntävät jotain käyttöjärjestelmän tarjoamaan ohjelmointirajapintaa. Kyseiset ohjelmointirajapinnat ovat monesti myös tarjolla kolmannen osapuolen ohjelmistokehittäjille. Tämä mahdollistaa uusien ohjelmien kehittämisen. Uudet ohjelmat ovat usein paranneltuja versioita valmistajan alkuperäisistä, jolloin alkuperäiseen ohjelmaan tuodaan lisäarvoa uusilla ominaisuuksilla, ohjelman ulkoasua muokkaamalla tai liittämällä siihen toisia ohjelmia. 16

20 Hyvä esimerkki kolmannen osapuolen ohjelmasta matkapuhelimissa on pikaviestintä. Lähtökohtaisesti matkapuhelinten alkuperäiset ohjelmat tarjoavat tekstiviestien ja sähköpostien vastaanottamisen ja lähettämisen omina ohjelminaan. Tämän lisäksi on useita kolmannen osapuolen ohjelmia, joiden avulla käyttäjä voi kommunikoida toisten samaa ohjelmaa käyttävien kanssa. Nämä ohjelmat käyttävät matkapuhelimen ohjelmointirajapintaa toimintaansa ja sen avulla on myös mahdollista luoda ohjelmia, jotka yhdistävät monen ohjelman toiminnan yhteen. Kuva 4. Matkapuhelimen toiminnan ohjaamisen mahdollistava ohjelmointirajapinta. Avoimien ohjelmointirajapintojen yleistyminen sulautetuissa järjestelmissä muodostaa paljon tietoturvaongelmia. Yleisesti ottaen sulautetun järjestelmän valmistaja ei voi estää väärinkäytöksiä, vaan käyttäjän tulee olla tietoinen mihin ohjelmointirajapinnan osiin hän antaa pääsyn kolmannen osapuolen ohjelmalle. Esimerkiksi käyttäjä voi tietämättään tai vahingossa sallia jollekin kolmannen osapuolen ohjelmalle oikeudet tiedustella matkapuhelimensa paikkatietojärjestelmältä sijaintia tai antaa osoitekirjansa vapaasti luettavaksi. 17

21 2.1.3 Ohjelmointirajapintojen hyödyt Ohjelmointirajapintojen käytöstä hyötyvät lähtökohtaisesti kaikki osapuolet. Ohjelmointirajapinnan tarjoavien tahojen hyödyt liittyvät pääsääntöisesti ohjelmistojen ylläpitoon ja kehittämiseen. Ohjelmointirajapinnan tarjoamien palveluiden käyttäjien suurin etu on tietysti siinä, että heillä on ylipäätään mahdollisuus käyttää kyseisen ohjelmointirajapinnan palveluita Ylläpidettävyys ja kehitettävyys Ohjelmointirajapinnan abstraktia kerrosta kuvaa parhaiten testauksesta tuttu musta laatikko malli. Kyseisen mallin mukaan on tiedossa, mitä laatikon sisälle menee ja mitä sieltä tulee ulos, mutta laatikon sisällä tapahtuvista asioista ei tiedetä. Näin ollen ohjelmointirajapintaa käyttävä ohjelmistokehittäjä voi keskittyä toimimaan selvien metodikutsujen kanssa miettimättä erikseen, miten metodikutsun parametreja ja muita tietoja käyttämällä saadaan aikaan palautusarvo. Pitämällä ohjelmointirajapinnan käyttäjälle näkyvän kerroksen abstraktina, eli esittämällä ainoastaan korkeamman tason rakenteen ohjelman toiminnasta, voidaan saavuttaa hyvä ylläpidettävyys ja paremmat jatkokehitysmahdollisuudet. Esimerkiksi ohjelmointirajapinnan käyttäjää ei välttämättä kiinnosta, mitä tietokantaa hänen suorittamansa kutsu käyttää tai miten kyseinen tietokantahaku on toteutettu. Käyttämällä abstraktia kerrosta, ohjelmistokehittäjän ei siis tarvitse tietää ohjelmointirajapinnan sisällä tapahtuvasta toiminnasta. Ohjelmistokehittäjän tiedossa ovat vain ohjelmointirajapinnan metodikutsut, niiden tarvitsemat parametrit ja tuottamat palautusarvot. Tällöin ohjelmointirajapinnan sisällä tapahtuviin toimintoihin on mahdollista tehdä myös sellaisia muutoksia, että ohjelmointirajapintaa käyttävät ohjelmistot eivät häiriinny. Ohjelmointirajapintaan voidaan lisätä uusia sisäisiä toimintoja tai aiempia ominaisuuksia voidaan kehittää vapaasti, mutta tehtävien muutosten vaikutus abstraktin kerroksen toimintaan pitäisi pyrkiä pitämään minimissä. 18

22 Riippumattomuus alustasta tai ohjelmointikielestä Käyttämällä ohjelmointirajapintaa ohjelmiston kehittämisessä voidaan välttää tarve yhden ja saman ohjelmointikielen käyttöön. Näin toimimalla voidaan esimerkiksi uudet laajennukset ohjelmistoon toteuttaa mahdollisesti aiemmasta poikkeavalla ohjelmointikielellä tai käyttää kolmannen osapuolen kehittäjiä, jotka käyttävät kehitettävän ohjelman toteutuksesta poikkeavaa ohjelmointikieltä. Ohjelmointirajapinta mahdollistaa myös ohjelmiston palveluiden tarjoamisen eri alustoille, ilman erillistä tarvetta mittaville kehitystöille jokaisen eri alustan kohdalla Ohjelmointirajapintojen haitat Ohjelmointirajapintojen käyttämisestä voi seurata myös haittoja. Tämä on erityisesti todennäköistä, jos ohjelmointirajapintaa ei ole suunniteltu ja toteutettu huolellisesti tai sen käyttötarkoitus on määritelty epäselvästi Tietoturvan heikentyminen Yksi suurimmista ohjelmointirajapinnan käytön haitoista on sen heikentävä vaikutus ohjelmiston tietoturvaan. Normaalisti ohjelmistot ovat suljettuja kokonaisuuksia, joiden toiminnallisuus ja rakenne ovat käyttäjältä täysin piilotettuina. Ohjelmointirajapinta paljastaa ohjelmiston toiminnallisuutta käyttäjälle tarjoamalla erilaisia palveluita. Tutkimalla ohjelmointirajapinnan tarjoamia palveluita, on mahdollista joissain tapauksissa myös takaisinmallintaa ohjelmiston rakenne. Ohjelmiston toiminnallisuuden ja rakenteen esillä oleminen altistavat sen helpommin erilaisten hyökkäysten kohteeksi. Kyseiset hyökkäykset voivat olla luonteeltaan esimerkiksi ohjelmiston toiminnan estäviä tai pahemmassa tapauksessa ne paljastavat ohjelmiston sisältämän informaation ulkopuolisille tahoille Toiminnallisuuden menettäminen Ohjelmointirajapintoja käyttäessä tulee aina muistaa, että ne tarvitsevat ylläpitoa siinä missä muutkin ohjelmistot. Jos ohjelmointirajapinta tai osa sen tarjoamista 19

23 palveluista lakkaa toimimasta, voi se pahimmassa tapauksessa johtaa sitä käyttävien ohjelmistojen toiminnan lakkaamiseen. Tilanteet, jotka voivat johtaa ohjelmointirajapintaa käyttävän ohjelmiston toiminnan muuttumiseen tai lakkaamiseen ovat pääsääntöisesti seuraavat: 1. Ohjelmointirajapintaan on tehty muutoksia, jolloin sen palvelut eivät toimi enää kuten ohjelmisto olettaa, näin voi käydä esimerkiksi kun ohjelmointirajapinnan palveluiden syöteparametreja muutetaan [5]. 2. Ohjelmointirajapinnan tekemiseen käytetyt ohjelmistokirjastot tai muut siihen liittyvät ohjelmistot vanhenevat, jolloin ohjelmointirajapinnan toiminta heikkenee tai lakkaan kokonaan. 3. Ohjelmiston, johon liittyneenä ohjelmointirajapinta toimii, ylläpito lopetetaan kokonaan ja lopulta se suljetaan. Ohjelmiston toiminnan lakatessa, myös siihen liittyvät ohjelmointirajapinnat lakkaavat toimimasta. 2.2 Yhdistelmärajapinnat Tässä kohdassa käsitellään yhdistelmärajapintoja ja se on jaettu kolmeen alakohtaan. Alakohdissa käydään läpi seuraavia asioita, yhdistelmärajapinnan määritelmä, yhdistelmärajapintojen yleisimmät käyttötarkoitukset, yhdistelmärajapintojen käytöstä saavutetut hyödyt ja yhdistelmärajapintojen mahdolliset haitat. Yhdistelmärajapinnat ovat ohjelmointirajapintoja, jotka koostuvat useista ohjelmointirajapinnoista. Kuten yksittäiset ohjelmointirajapinnat, myös yhdistelmärajapinnat liittyvät yhteen tai useampaan ohjelmistoon. Tämän johdosta myös yhdistelmärajapintoja on vaikea määritellä kovin yleisellä tasolla ja määrittely onkin helpompaa tehdä liittämällä yhdistelmärajapinta johonkin oikeaan tai konkreettiseen ohjelmistoon. Alakohdassa esitetään yhdistelmärajapintojen käyttötarkoituksia esimerkkien avulla, jotka osaltaan helpottavat yhdistelmärajapinnan käsitteen ymmärtämistä. 20

24 Yhdistelmärajapinnat ovat suhteellisen uusi ilmiö. Siitä huolimatta, että niiden käyttö on lisääntynyt, ei niitä ole vielä tutkittu kovin kattavasti. Vaikka erilaisten yhdistelmärajapintojen kirjo on vielä suppea, niin on kaikkien eri käyttötarkoitusten ja sovellusalueiden esitteleminen tässä kirjoitelmassa mahdotonta. Käytännön esimerkit keskittyvätkin yleisimpiin käyttötarkoituksiin, joilla pyritään antamaan mahdollisimman kattava kuva mahdollisista sovellusalueista. Hyödyt-osio pyrkii kokoamaan yhteen syitä yhdistelmärajapintojen käyttämiseen. Vastaavasti haitat-osiossa käsitellään ongelmia, joita yhdistelmärajapintojen käyttämisestä voi seurata Yhdistelmärajapintojen määritelmä Yksinkertaisimmillaan yhdistelmärajapinta pyrkii yhdistämään kahdesta tai useammasta ohjelmointirajapinnasta tai niiden osista yhden kokonaisuuden. Syntyneen yhdistelmärajapinnan tarkoitus on mahdollistaa kaikkien mukana olevien ohjelmointirajapintojen oleellisimpien palveluiden käyttäminen yhdellä kertaa [6]. Pääasiallisesti yhdistelmärajapinta pyrkii tuomaan yhteen kerättyjen ohjelmointirajapintojen palveluihin lisäarvoa. Tämä tapahtuu helpoiten esimerkiksi yhdistämällä useamman tyyppistä tietoa yhteen palvelupyyntöön [7]. Yhdistelmärajapintoja voidaan jaotella kategorioihin monella eri tavalla. Yksi tapa jaottelun tekemiseen on jakaa yhdistelmärajapinnat kahteen eri kategoriaan loppukäyttäjän näkökulmasta riippuen. Nämä kaksi kategoriaa ovat palvelu- ja ulkoasukeskeiset yhdistelmärajapinnat [7]. Palvelukeskeiset yhdistelmärajapinnat toimivat yhdistelemällä eri sovelluksia ja tietolähteitä yhdeksi kokonaisuudeksi, joka näyttäytyy käyttäjälle itsenäisenä sovelluksena. Tämäntyyppinen loppukäyttäjälle suunnattu sovellus pyrkii tekemään alkuperäisten sovellusten tunnistamisesta vaikeampaa ja ennen kaikkea tarpeetonta. Tavoite on luoda uusi ja parempi käyttäjäkokemus integroimalla sovelluksia, ei pelkästään liimata sovelluksia toisiinsa [7]. 21

25 Ulkoasukeskeiset yhdistelmärajapinnat ovat yleensä graafisia elementtejä, joihin on yhdistetty eri sovelluksia ja tietolähteitä. Yleisin ilmenemismuoto tämän kaltaiselle yhdistelmärajapinnalle on yksi yleisnäkymä, johon tuodaan tietoa erilaisten widgettien avulla. Koska eri sovelluksia ja tietolähteitä ei ole yritettykään piilottaa käyttäjältä, ovat alkuperäiset sovellukset yleensä tunnistettavissa [7]. Toinen mahdollinen tapa yhdistelmärajapintojen kategorisointiin löytyy teknisestä näkökulmasta katsottuna. Teknisin perustein yhdistelmärajapinnat voidaan jakaa neljään eri kategoriaan, jotka ovat palvelu-, tieto-, työväline- ja risteymätyyppiset yhdistelmärajapinnat [7]. Palvelutyyppisiin yhdistelmärajapintoihin kuuluvat kaikki palveluita yhteen integroivat rajapinnat. Tietotyyppiset yhdistelmärajapinnat koostuvat rajapinnoista, jotka yhdistelevät eri tietolähteitä. Työvälinetyyppiset yhdistelmärajapinnat ovat vastaavia palvelutyyppisten kanssa, mutta ne pohjautuvat loppukäyttäjällä sijaitsevissa sovelluksissa tapahtuvaan tietojen yhdistämiseen. Risteymätyyppiset yhdistelmärajapinnat koostuvat aiemmin mainittujen yhdistelmistä [7] Yhdistelmärajapintojen käyttötarkoitukset Yhdistelmärajapinnat pyrkivät siis yhdistämään yhden tai useamman ohjelmointirajapinnan tarjoamia palveluita ja tietolähteitä yhdeksi kokonaisuudeksi, joka voi myös joissain tapauksissa tarkoittaa täysin uuden ja itsenäisen sovelluksen syntymistä. Tässä luvussa käydään läpi kaksi yhdistelmärajapinnan yleisimmistä käyttötarkoituksista Ohjelmointirajapintojen uudelleenkäyttö Nykyaikana on yleistä, että ohjelmistot pyritään kehittämään mahdollisimman modulaarisiksi, eli hajauttamaan eri toiminnallisuudet omiksi pienemmiksi kokonaisuuksikseen. Näitä pienempiä kokonaisuuksia, niin sanottuja moduuleja, yhdistelemällä saadaan lopputuloksena aikaan ohjelmisto, joka on tarkoitettu loppukäyttäjää varten. 22

26 Modulaarinen kehitystapa hyötyy huomattavasti ohjelmointirajapintojen käytöstä. Eri kehittäjät voivat toimia jokainen oman moduulin parissa, mutta he pystyvät silti käyttämään yhtä yhteistä ohjelmointirajapintaa, joka tuottaa kaikkien moduulien tarvitsemia palveluita tai tietoja. Kun ohjelmointirajapinta on kerran kehitetty hyvin, niin sitä pystytään hyödyntämään aina kun sen tarjoamia palveluita tarvitaan toisten ohjelmiston osien kehittämiseen. Yhdistelmärajapinnat hyödyntävät kyseistä ohjelmointirajapintojen uudelleenkäytettävyyttä ja vievät sen vielä pidemmälle yhdistelemällä useampia ohjelmointirajapintoja yhteen. Yhdistelmärajapinnan käyttämisen etuna on se, ettei kehittäjän tarvitse erikseen liittää ohjelmistoaan aiempiin olemassa oleviin ohjelmistoihin, vaan liitosten mahdollistavat toiminnot ovat jo toteutettu mukana olevissa ohjelmointirajapinnoissa. Toinen etu saavutetaan vähentyneenä testauksen tarpeena, koska ohjelmointirajapintojen tarjoamien palveluiden sisällöstä vastaavat ohjelmistot ovat lähtökohtaisesti testattuja ja ylläpidettyjä [8] Eri tietolähteiden yhdistäminen Yhdistelmärajapinnat pyrkivät ottamaan tietoa kahdesta tai useammasta lähteestä ja yhdistämään nämä keskenään. Esimerkkinä kyseisestä tilanteesta voidaan tarkastella säätietojen ja karttapalvelun yhdistämistä. Tällaisessa tilanteessa yleensä yksi ohjelmointirajapinta tarjoaa karttapalvelun, joka esittää käyttäjälle normaalisti vain karttoja ja sijaintitietoja. Muut ohjelmointirajapinnat tarjoavat säätietoja. Tämän jälkeen säätiedot vielä liitetään kartalle, niiden mukana tulevien paikkatietojen avulla. Kun nämä ohjelmointirajapinnat yhdistetään, saadaan aikaan yhdistelmärajapinta, jonka avulla voidaan esittää säätietoja kartalla [6]. 23

27 Kuva 5 Esimerkki säätietojen ja karttapalvelun yhdistämisestä ( Kuvan 5 esimerkissä samaan palveluun on liitetty Googlen karttapalvelu (Google Maps JavaScript API) ja OpenWeatherMapin säätietopalvelu (OpenWeatherMap API). Lopputuloksena saadaan ulkonäöltään Googlen karttapalvelun näköinen karttasovellus, joka tarjoaa myös säätietoja. [9, 10] Yhdistelmärajapintojen hyödyt Yhdistelmärajapintojen hyödyt ovat hyvin samankaltaiset kuin ohjelmointirajapintojenkin. Tämä on osaltaan luonnollista, koska yhdistelmärajapinnat koostuvat ohjelmointirajapinnoista. Hyötyihin kuuluu ohjelmointirajapinnoillekin ominainen hyvä kehitettävyys ja ylläpidettävyys. Myös yhdistelmärajapinnat ovat usein riippumattomia alustasta ja ohjelmointikielestä, mutta tämän hyödyn kohdalla voi tapahtua poikkeuksia mukana olevien ohjelmointirajapintojen määrän kasvaessa. 24

28 Erityinen hyöty yhdistelmärajapintojen käytöstä voidaan saavuttaa lopputuloksena saatavan palvelun arvon kasvamisena, kun kahden tai useamman ohjelmointirajapinnan tarjoamat palvelut liitetään yhdeksi yhdistelmärajapinnaksi. Syntyneen palvelukokonaisuuden teoreettinen arvo pitäisi lähtökohtaisesti olla suurempi, kuin yhdistettyjen tietolähteiden yhteenlaskettu arvo Yhdistelmärajapintojen haitat Kuten yhdistelmärajapintojen hyödyt, myös niiden haitat seuraavat suhteellisen johdonmukaisesti ohjelmointirajapintojen haittoja. Haittojen suhteen yhdistelmärajapinnat ovat kuitenkin herkempiä ongelmiin, kun verrataan yksittäisiin ohjelmointirajapintoihin. Tämä johtuu yleensä siitä, että yhdistelmärajapinnoissa on useita eri rajapintoja, jolloin kukin rajapinta tuo omat ongelmansa yhdistelmärajapintaan. Tietoturvan heikentyminen on yleinen huolenaihe, aina kun käsitellään ohjelmistojen tarjoamia tietoja. Tämä on erityisen aiheellinen huoli, jos yhdistelmärajapinta on avoin tai edes osittain avoin. On myös olennaista huomioida, että vaikka kaikki tai osa yhdistelmärajapintaan kuuluvista ohjelmointirajapinnoista olisikin suljettuja, voivat niiden palvelut ollakin lopullisessa ohjelmistossa avoimia. Tietoturvaa heikentää entisestään se tosiasia, että yhden ohjelmointirajapinnan sijaan, niitä on yhdistelmärajapinnan kautta hyökkäyksille alttiina useampia. Myös toiminnallisuuden menettämiseen on suurempi riski yhdistelmärajapinnalla kuin yksittäisellä ohjelmointirajapinnalla. Tämä johtuu siitä, että yhdistelmärajapinnan toiminnallisuus voi heikentyä tai lakata kokonaan, jos yhdenkin mukana olevan ohjelmointirajapinnan taustalla oleva ohjelmisto muuttuu tai poistuu käytöstä. 2.3 Teoriaosan yhteenveto Ohjelmointirajapinnat ovat toiminnallisia kerroksia ohjelmistojen välillä, joiden avulla kyseiset ohjelmistot voivat kommunikoida keskenään. Pääasiallisesti 25

29 ohjelmointirajapintojen tarjoamat palvelut sisältävät joko ohjelmallisia toimintoja tai tietolähteitä. Ohjelmointirajapinnat voivat olla avoimia, suljettuja tai osittain suljettuja. Riippuen ohjelmointirajapinnan käyttötarkoituksesta, ne voivat toimia yksi- tai kaksisuuntaisesti. Yhdistelmärajapinnat ovat kahden tai useamman ohjelmointirajapinnan yhdistelmiä, joilla on ominaisuuksia kaikista mukana olevista ohjelmointirajapinnoista. Yhdistelmärajapinnat näyttäytyvät ja toimivat kuten ohjelmointirajapinnat, eikä niiden käyttäminen eroa juurikaan yksittäisten ohjelmointirajapintojen käytöstä. Ohjelmointirajapintoja tai niistä koostuvia yhdistelmärajapintoja käyttämällä saavutetaan monia hyötyjä, kuten tehokkaampi ohjelmistotuotanto uudelleenkäytettävyyden avulla. Toinen hyöty, varsinkin avoimissa ohjelmointirajapinnoissa, on ohjelmiston määritelmän ja toteutuksen piilottaminen käyttäjältä. Joissain tapauksissa voidaan hyöty saavuttaa riippumattomuutena alustasta tai ohjelmointikielestä. Yhdistelmärajapintojen etuna yksittäisiin ohjelmointirajapintoihin on mahdollisuus tarjota monien eri ohjelmointirajapintojen palveluita yhdestä paikasta, jolloin lopputuloksena saadaan arvokkaampi palvelu. Haitat ohjelmointi- tai yhdistelmärajapintoja käytettäessä ovat lähes samat, riippumatta kumpi näistä kahdesta on kyseessä. Huomattavaa kuitenkin on, että yhdistelmärajapintojen tapauksessa haitat ja riskit ovat yleensä suurempia. Heikompi tietoturva, joka aiheutuu, kun ohjelmiston toimintoja tai sen käsittelemää tietoa annetaan käyttäjän ulottuville, on yksi haitoista. Riskinä voidaan nähdä mahdollinen toiminnallisuuden menettäminen, jos palveluita tai tietoa alun perin tarjonnut ohjelmisto muuttuu tai lakkaa toimimasta. Lopuksi voidaan todeta, että vaikka ohjelmointi- ja yhdistelmärajapintojen käytössä on omat ongelmansa, voivat ne oikein käytettynä tuoda huomattavia etuja ja mahdollistaa asioita, jotka muuten olisivat hankalia tai jopa mahdottomia toteuttaa. Ohjelmointirajapinnat ovat nykyisin erittäin yleisiä ja sen myötä yhdistelmärajapintojenkin määrä on alkanut kasvaa. 26

30 Yhdistelmärajapintoja ei ole vielä tutkittu niin kattavasti kuin ohjelmointirajapintoja. Toisaalta yhdistelmärajapinnat ovat käytännössä ohjelmointirajapintoja, joten niiden tutkimukset voivat olla jossain määrin liitettävissä toisiinsa. Molempien, ohjelmointija yhdistelmärajapintojen, käytöstä ohjelmistotuotannon tehostamisessa, löytyy tulevaisuuden tutkimuskohteita. 27

31 3 VERTAILTAVIEN RAJAPINTOJEN TEKNINEN KUVAUS Tässä luvussa käsitellään tutkielmassa vertailtavien rajapintojen teknisiä toteutuksia. Se koostuu kolmesta kohdasta, jotka jakaantuvat seuraavasti, kohta 3.1 käsittelee vanhempaa tekniikkaa edustavalla FTP tiedonsiirrolla (File Transfer Protocol) toteutettua rajapintaa, kohta 3.2 keskittyy esittelemään SOAP-rajapinnan toimintaa (Simple Object Access Protocol) ja lopuksi kohdassa 3.3 käydään läpi RESTrajapinnan (Representational State Transfer) toiminta. Rajapintojen etuja tai haittoja ei ole tarkoitus vielä tässä osiossa vertailla keskenään toisten rajapintojen kanssa. Sen sijaan pyrkimys on esitellä kaikkien rajapintojen ominaisuudet ja taustaa yleisellä tasolla. 3.1 FTP-rajapinta Tiedonsiirrossa FTP-protokollaa on käytetty 1970-luvulta lähtien, jolloin sen ensimmäiset versiot kehitettiin Yhdysvalloissa, tarkemmin vuonna 1971 MIT:n yliopistossa. FTP-protokolla on säilynyt melkein samanlaisena julkaisustaan lähtien. Ajan mittaan tehdyt muutokset ovat lähinnä lisänneet uusia ominaisuuksia, kuten virheenkorjauksen viesteihin tai helpottaneet tiedonsiirtoa esimerkiksi palomuureilla suojattujen palvelinten välillä. Pelkkä FTP ei itsessään ole rajapinta, vaan se on ainoastaan tiedonsiirtoprotokolla. FTP-standardi mahdollistaa tiedostojen siirron kahden tietokoneen välillä. Tietokoneet jakautuvat FTP-yhteydessä asiakkaaksi ja palvelimeksi, joista ensimmäinen ottaa yleensä yhteyttä ja jälkimmäinen vastaanottaa yhteyden. Itse tiedostojen siirto tapahtuu hyödyntäen TCP-protokollaa, jonka päälle FTP-yhteys muodostetaan. Perinteisesti FTP-yhteydet käyttävät TCP-porttia 21 yhteyden muodostamiseen ja hallinnointiin. Itse tiedonsiirtoon käytetään normaalisti TCPporttia

32 FTP-rajapinnan toiminta perustuu siis siirtotiedoston käyttämiseen. Tämä tarkoittaa sitä, että rajapinta tarvitsee erillisen ohjelmiston rajapinnan molempiin päihin, jotka tuottavat ja purkavat yhden tai useamman siirtotiedoston. Siirtotiedostot ovat tiedostoja, jotka sisältävät siirrettävän datan ja ne voivat olla periaatteessa mitä tahansa tiedostomuotoa. Yleisesti käytettyjä tiedostomuotoja ovat esimerkiksi.csv,.xml ja joskus jopa normaali.txt tiedosto. Vaikka FTP-rajapinta vaatii erillisen siirtotiedoston luomisen, niin se voi myös joissain tapauksissa toimia etuna. Esimerkiksi jotkut jo olemassa olevat ohjelmistot tukevat tietojen tuontia tiedostosta tai vientiä tiedostoon entuudestaan, jolloin mahdollisesti voidaan tarvita vähemmän rajapinnan kehitystyötä. Kun tiedostoja siirretään voi FTP-yhteyteen kuuluva palvelin olla kahdessa eri tilassa, aktiivisessa ja passiivisessa. Aktiivisessa tilassa palvelin pyrkii itse avaamaan yhteyden asiakkaaseen ja aloittamaan tiedonsiirron. Passiivisessa tilassa toimiva palvelin sen sijaan odottaa, että asiakas avaa yhteyden, jonka jälkeen palvelin aloittaa tiedonsiirron. FTP-rajapinnassa itse tiedonsiirto ei vaadi paljoa kehitystyötä, koska tiedostojen siirtäminen on helppoa toteuttaa. Eniten aikaa kuluukin siirtotiedostoja luovan ja lukevan järjestelmän kehittämiseen. Jos siirtotiedoston luominen ja lukeminen täytyy toteuttaa kokonaan rajapintaa varten ja tämän lisäksi siirrettävät tiedot ovat monimutkaisia, voi rajapinnan toteutus olla erittäin työläs. Seuraavaksi on esitetty yksi mahdollinen shell-skripti, jota voidaan hyödyntää tiedostojen palvelimelta toiselle lähettämisen automatisoinnissa. 1: #!/bin/sh 2: FILES=./FolderToLookFilesFrom/* 3: if[ $(ls A./FolderToLookFilesFrom/) ]; then 4: for f in $FILES 5: do 6: echo Processing $f 7: local_path=$f 29

33 8: remote_path=/remote/path/goes/here 9: ftp -n ServerHere <<EOF 10: quote USER UserName 11: quote PASS Password 12: put $local_path $remote_path 13: quit 14: EOF 15: done 16: fi Mahdollisen raskaan kehitystyön lisäksi tietoturva on FTP-rajapinnan heikkous. Se on haavoittuvainen eritoten viestipaketteja kaappaaville haittaohjelmille, koska FTPprotokolla ei salaa lähetettyjä viestejä. Haavoittuvuuden korjaaminen käyttämällä salattuja yhteyksiä on myös ongelmallista, koska FTP-protokolla käyttää useita portteja tietojen siirtämisessä. 3.2 SOAP-rajapinta SOAP (Simple Object Access Protocol) on kehitetty suurimmaksi osaksi Microsoftin toimesta. Sen ensimmäisen version määritelmä valmistui vuonna Määritelmä ei kuitenkaan ollut julkinen ennen vuotta 1999, jolloin Microsoft jätti sen IETF:n (Internet Engineering Task Force) käsiteltäväksi. SOAP ei kaikesta huolimatta saavuttanut standardin statusta ennen kuin vuonna 2003, jolloin se lisättiin W3C:n (World Wide Web Consortium) suosittamiin määrittelyihin. Kuten nimi antaa ymmärtää, on SOAP-protokolla yksinkertaisille olioille. Sen tarkoitus on mahdollistaa yksinkertaisten olioiden tietojen lähettäminen ja vastaanottaminen www-sovelluspalveluiden kesken. Olioiden tietoja sisältävien viestien olennainen ominaisuus on myös niiden rakenteellinen määrittely. Viestien muotona SOAP-viesteissä käytetään XML-kielellä kirjoitettua tietorakennetta. Nämä viestit toteuttavat www-sovelluspalvelun protokollasarjasta viestintäkerroksen, joka vastaa siitä että osapuolet viestintäkanavan molemmissa 30

34 päissä ymmärtävät viestien sisällön samalla tavalla. Rakenteeltaan SOAP-viesti jakaantuu kolmeen osaan. Ensimmäinen eli uloin osa viestistä on kirjekuori, joka määrittelee viestin rakenteen ja antaa ohjeet miten kyseistä rakennetta tulee käsitellä. Toinen ja kolmas osa ovat kirjekuoren sisällä, mutta omina erillisinä kokonaisuuksinaan. Toinen osa sisältää viestiin ja sitä lähettävään tai vastaanottavaan sovellukseen liittyvien tietojen koodauskäytännöt. Kolmas osa sisältää itse viestittävän olion metodikutsuja tai vastauksia. Itse tiedonsiirtoon voidaan SOAP-viestien osalta soveltaa mitä tahansa tiedonsiirtoprotokollaa, mutta yleisimmin käytetään HTTP-protokollaa. Tämä on luontevaa, koska www-sovelluspalvelut toimivat jo valmiiksi samassa www ympäristössä. Kuva 6. Havainnollistus SOAP-viestin rakenteesta. SOAP-rajapintaa voidaan myös laajentaa esimerkiksi tietoturvaa lisäämällä. Yksi tapa on tunnistetietojen käyttäminen viestissä esimerkiksi luomalla turvatunniste ja lisäämällä se viestiin. Turvatunnisteen avulla viestin vastaanottaja voi varmistua viestin lähettäjästä. Toinen tapa lisätä tietoturvaa on salata viesti, jolloin voidaan estää, tai ainakin hankaloittaa, kolmansia osapuolia saamaan selville viestin sisältö. Laajennettavuuden lisäksi SOAP-rajapinnan vahvuudeksi voidaan lukea riippumattomuus ohjelmointikielestä ja -mallista. Ohjelmointikielen tulee kuitenkin 31

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat Järjestelmäarkkitehtuuri (TK081702) SOA yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

13/20: Kierrätys kannattaa koodaamisessakin

13/20: Kierrätys kannattaa koodaamisessakin Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy

Lisätiedot

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

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden

Lisätiedot

Interfacing Product Data Management System

Interfacing Product Data Management System Interfacing Product Data Management System Tekijä: Työn valvoja: Mats Kuivalainen Timo Korhonen Esitelmän sisältö Työn suorituspaikka - Ideal Product Data Oy Käsitteitä Työn tavoitteet Työn tulokset 1/5

Lisätiedot

Mistä on kyse ja mitä hyötyä ne tuovat?

Mistä on kyse ja mitä hyötyä ne tuovat? Pilvipalvelut Mistä on kyse ja mitä hyötyä ne tuovat? Pilvipalvelut - Mistä on kyse ja mitä hyötyä ne tuovat? Suurin osa kaikista uusista it-sovelluksista ja -ohjelmistoista toteutetaan pilvipalveluna.

Lisätiedot

Tiedonsiirto- ja rajapintastandardit

Tiedonsiirto- ja rajapintastandardit Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen

Lisätiedot

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Linux pohjaiset pilvipalvelut Linux järjestelmät TI 11/12 TIVE Santeri Kangaskolkka TI 12 Janne Enroos TI 12 Mikä on

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti

Lisätiedot

Integraatiot muihin järjestelmiin

Integraatiot muihin järjestelmiin Integraatiot muihin järjestelmiin ValueFramen käyttäjäpäivät 30.11.2010 Harri Kanerva, ValueFrame Oy Esityksen sisältö 1 2 3 4 Integraatio käsitteenä ValueFramen integraatiomahdollisuuksia Taloushallinnon

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Integrointi. Ohjelmistotekniikka kevät 2003

Integrointi. Ohjelmistotekniikka kevät 2003 Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri

Lisätiedot

Digitaalisuus alustojen mahdollistajana

Digitaalisuus alustojen mahdollistajana Digitaalisuus alustojen mahdollistajana Timo Seppälä Time: 10.11.2016 Place: Keski-Suomen tulevaisuusfoorumi Miksi digitalisaatio herättää keskustelua juuri nyt? 40y 98% 50(0) 1T 2 Suomalaiset yritykset

Lisätiedot

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu

Lisätiedot

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

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,

Lisätiedot

Tekninen suunnitelma - StatbeatMOBILE

Tekninen suunnitelma - StatbeatMOBILE 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

Lisätiedot

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

Alustatalous liiketoimintatapojen uusi malli

Alustatalous liiketoimintatapojen uusi malli Alustatalous liiketoimintatapojen uusi malli Timo Seppälä Time: 3.11.2016 Place: Pirkanmaan tulevaisuusfoorumi Suomalaiset yritykset ja digitalisaatio 24%- Internet of Thingskehitystrendin tärkeänä ja

Lisätiedot

in condition monitoring

in condition monitoring Etäteknologioiden automaatiosovellukset Using e-speak e in condition monitoring tutkija professori Hannu Koivisto Sisältö Tausta Globaali kunnonvalvontajärjestelmä E-speak globaalissa kunnonvalvontajärjestelmässä

Lisätiedot

Tekninen suunnitelma - StatbeatMOBILE

Tekninen suunnitelma - StatbeatMOBILE 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

Lisätiedot

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013 Virtualisointi Pertti Pennanen DOKUMENTTI 1 (5) SISÄLLYSLUETTELO Virtualisointi... 2 Virtualisointiohjelmia... 2 Virtualisointitapoja... 2 Verkkovirtualisointi... 2 Pertti Pennanen DOKUMENTTI 2 (5) Virtualisointi

Lisätiedot

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

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

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

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7 Pauli Kettunen Esityksen rakenne 1. Taustaa 2. Push web-ohjelmoinnissa Comet Interaktiomallit 3. Push älypuhelinalustoilla Deacon pilvipalveluna

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Googlen pilvipalvelut tutuksi / Google Drive

Googlen pilvipalvelut tutuksi / Google Drive Googlen pilvipalvelut tutuksi / Google Drive Koulutuksen aikana harjoitellaan tiedostojen ja kuvien siirtoa Google Drive-palveluun sekä tiedostojen jakamista Lisäksi harjoitellaan Google Docs (Asikirjat)

Lisätiedot

Verkkopalveluiden saavutettavuus

Verkkopalveluiden saavutettavuus Verkkopalveluiden saavutettavuus Puhuja: Ossi Nykänen Tampereen teknillinen yliopisto, Hypermedialaboratorio, W3C Suomen toimisto Paikka: Helsinki, Tieteiden talo, 24.3.2011 Johdanto Verkkopalvelun saavutettavuus

Lisätiedot

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi LoCCaM Riistakamerasovellus Dimag Ky janne.koski @ dimag.fi +358505907788 Sovelluksen toimintaperiaate Toimintaperiaate yksinkertaistettuna on seuraavanlainen Kamera ottaa kuvan tai videon jonka lähettää

Lisätiedot

Googlen pilvipalvelut tutuksi / Google Drive

Googlen pilvipalvelut tutuksi / Google Drive Googlen pilvipalvelut tutuksi / Google Drive Koulutuksen aikana harjoitellaan tiedostojen ja kuvien siirtoa Google Drive-palveluun sekä tiedostojen jakamista Lisäksi harjoitellaan Google Docs (Asikirjat)

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

SUOMEN KUNTALIITTO RY

SUOMEN KUNTALIITTO RY Karttaliittymä Versio: 18.10.2011 Julkaistu: 27.10.2011 Voimassaoloaika: Toistaiseksi Sisällys 1 Johdanto... 2 1.1 Suosituksen tausta... 2 1.2 Suosituksen rakenne... 2 2 Soveltamisala... 2 3 Lyhenteet...

Lisätiedot

Kirja on jaettu kahteen osaan: varsinaiseen- ja lisätieto-osioon. Varsinainen

Kirja on jaettu kahteen osaan: varsinaiseen- ja lisätieto-osioon. Varsinainen Alkusanat Tämän tieto- ja viestintätekniikan oppikirjan ensimmäinen versio (1. painos) syntyi vuonna 2006 Jyväskylän yliopiston tietotekniikan laitokselle tekemäni pro gradu -tutkielmani yhteydessä. Tutkimuksessani

Lisätiedot

Menetelmäraportti - Konfiguraationhallinta

Menetelmäraportti - Konfiguraationhallinta Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1

Lisätiedot

Kirja on jaettu kahteen osaan: varsinaiseen- ja lisätieto-osioon. Varsinainen

Kirja on jaettu kahteen osaan: varsinaiseen- ja lisätieto-osioon. Varsinainen Alkusanat Tämä tieto- ja viestintätekniikan oppikirja on päivitetty versio vuonna 2007 julkaisemastani Tieto- ja viestintätekniikka -oppikirjasta. Päivityksessä kirjan sisällöt on ajantasaistettu ja samalla

Lisätiedot

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

Valppaan asennus- ja käyttöohje

Valppaan asennus- ja käyttöohje Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi

Lisätiedot

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin TEKNILLINEN KORKEAKOULU / VAASAN YLIOPISTO Diplomityöesitelmä Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin Timo Ahola 2006 Web sovellus Web palvelut joiden avulla laite voidaan liittää

Lisätiedot

Johdatus rakenteisiin dokumentteihin

Johdatus rakenteisiin dokumentteihin -RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista

Lisätiedot

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

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest). 1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.

Lisätiedot

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen FiSMA 1.1 Monikerrosarkkitehtuuri 1 (7) FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen 1. Yleiset periaatteet FiSMA 1.1 -menetelmässä mitataan sovellusperiaatteen

Lisätiedot

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Sisäänrakennettu tietosuoja ja ohjelmistokehitys Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology

Lisätiedot

ohjelman arkkitehtuurista.

ohjelman arkkitehtuurista. 1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä

Lisätiedot

FuturaPlan. Järjestelmävaatimukset

FuturaPlan. Järjestelmävaatimukset FuturaPlan Järjestelmävaatimukset 25.1.2017 2.2 Hermiankatu 8 D tel. +358 3 359 9600 VAT FI05997751 33720 Tampere fax. +358 3 359 9660 www.dbmanager.fi i Versiot Versio Päivämäärä Tekijä Kommentit 1.0

Lisätiedot

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Ossi Nykänen Tampereen teknillinen yliopisto, Hypermedialaboratorio, W3C Suomen toimisto Terveyden

Lisätiedot

The OWL-S are not what they seem

The OWL-S are not what they seem The OWL-S are not what they seem...vai ovatko? Verkkopalveluiden koostamisen ontologia OWL-S Seminaariesitelmä 15.4.2013 Emilia Hjelm Internet on hankala Nykyinternet on dokumenttien verkko Asiat, joita

Lisätiedot

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi. 11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen

Lisätiedot

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

Lisätiedot

Tuotannon laitteiden käyttöasteen seuranta

Tuotannon laitteiden käyttöasteen seuranta Tuotannon laitteiden käyttöasteen seuranta Jaakko Yli-Luukko t95586@student.uwasa.fi 19. maaliskuuta 2017 KEY WORDS Internet of Things, esineiden Internet, teollinen Internet, datan visualisointi 1 Tiivistelmä

Lisätiedot

8/20: Luokat, oliot ja APIt

8/20: Luokat, oliot ja APIt Ohjelmointi 1 / syksy 2007 8/20: Luokat, oliot ja APIt Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Kohti

Lisätiedot

Visma Software Oy

Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan ja siihen liittyvän muun materiaalin kopiointi on kielletty ilman :n

Lisätiedot

Juha Peltomäki JAMK/Teknologia

Juha Peltomäki JAMK/Teknologia Juha Peltomäki JAMK/Teknologia Web vuonna 2009 Web on nyt n. 18 vuotta vanha ilmiö Muistatteko Internet-kuplan vuonna 2000? Internetin kaupallistuminen käynnistyi vuonna 1996 (ebay ja Amazon) Amazon saavutti

Lisätiedot

TUTKI OMAT TIETOTURVA-AUKKOSI. ENNEN KUIN JOKU MUU TEKEE SEN PUOLESTASI. F-Secure Radar Ville Korhonen

TUTKI OMAT TIETOTURVA-AUKKOSI. ENNEN KUIN JOKU MUU TEKEE SEN PUOLESTASI. F-Secure Radar Ville Korhonen TUTKI OMAT TIETOTURVA-AUKKOSI. ENNEN KUIN JOKU MUU TEKEE SEN PUOLESTASI. F-Secure Radar Ville Korhonen ON OLEMASSA KAHDENLAISIA YRITYKSIÄ: 1. NE JOIHIN ON MURTAUDUTTU 2. NE JOTKA EIVÄT VIELÄ TIEDÄ SITÄ

Lisätiedot

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä? Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää

Lisätiedot

Virheraportoijien virhemäärien jakaumat virhetietokannassa

Virheraportoijien virhemäärien jakaumat virhetietokannassa Virheraportoijien virhemäärien jakaumat virhetietokannassa (Valmiin työn esittely) 13.9.2010 Ohjaaja: TkT Mika Mäntylä Valvoja: prof. Harri Ehtamo Yleistä ohjelmistoissa virheitä, jotka estävät ohjelmistojen

Lisätiedot

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k 1 Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa ko. toiminnallisuuden hyödyntämisen Web-palveluna.

Lisätiedot

JULKISTEN VERKKOPALVELUJEN LAATUKRITEERISTÖN KONSEPTI

JULKISTEN VERKKOPALVELUJEN LAATUKRITEERISTÖN KONSEPTI JULKISTEN VERKKOPALVELUJEN LAATUKRITEERISTÖN KONSEPTI Onesta Solutions Oy Pasilanraitio 5 00240 HELSINKI www.onesta.fi 2/6 Versiohistoria Versio Pvm Selitys Muutokset Tekijät 0.1 26.3.2007 Alustava versio

Lisätiedot

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

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi

Lisätiedot

Visma Nova Webservice Versio 1.1 /

Visma Nova Webservice Versio 1.1 / Visma Nova Webservice Versio 1.1 / 31.10.2018 pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan ja siihen liittyvän muun

Lisätiedot

3 Verkkosaavutettavuuden tekniset perusteet

3 Verkkosaavutettavuuden tekniset perusteet 3 Verkkosaavutettavuuden tekniset perusteet Saavutettavuuden toteuttaminen edellyttää lähtökohtaisesti tietoa laitteista ja sovelluksista, käyttäjistä ja käyttötavoista, sekä tekniikasta. Tekniikasta on

Lisätiedot

Uudelleenkäytön jako kahteen

Uudelleenkäytön jako kahteen Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta

Lisätiedot

Tekstiviestipalvelun rajapintakuvaus

Tekstiviestipalvelun rajapintakuvaus Tekstiviestipalvelun rajapintakuvaus Sisällysluettelo 1. Yleistä... 1 2. Lähtevien viestien rajapinta... 1 2.1. Rajapinnan tekniset tiedot ja parametrit... 1 2.2. Rajapinnan paluuarvot... 3 2.3. Rajapinnan

Lisätiedot

pilvipalvelu tarkoittaa?

pilvipalvelu tarkoittaa? Virtuaalipilvet tietotekniikassa: mitä pilvipalvelu tarkoittaa? Keijo Heljanko Tietotekniikan laitos Perustieteiden korkeakoulu Aalto-yliopisto keijo.heljanko@aalto.fi 18.1-2014 1/14 Pilvipalvelut Kun

Lisätiedot

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT KOULUTUKSEN KOHDERYHMÄ SISÄLTÖ Koulutuksen tavoitteena on antaa opiskelijalle valmiudet uusien tietoteknisten menetelmien ja välineiden hyödyntämiseen.

Lisätiedot

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

Älypuhelimet. Sisällysluettelo

Älypuhelimet. Sisällysluettelo Älypuhelimet Jussi Huhtala Sisällysluettelo Älypuhelimen määritelmä Historia Laitteistoarkkitehtuuri Käyttöjörjestelmät Android Symbian ios Yhteenveto 1 Älypuhelin Puhelin joka sisältää normaalit puhelimen

Lisätiedot

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

Järjestelmäintegraatio

Järjestelmäintegraatio VESA AHOLA Järjestelmäintegraatio 14.3.2013 Agenda 1. Minä 2. Integraatio? 3. Esimerkkijärjestelmä 4. Integraatioprojektit Minä Ikä 32 vuotta Kotoisin Parolasta, asun Hämeenlinnassa TTY:llä 2001-2010 Pääaine

Lisätiedot

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Toukokuu 2012 1 (14) Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Asennusohje Toukokuu 2012 2 (14) Sisällysluettelo 1. Vaatimukset palvelimelle... 3 1.1..NET Framework 4.0... 3 1.2. Palvelimen Internet

Lisätiedot

ADE Oy Hämeen valtatie 144 20540 TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus: 1626957-3

ADE Oy Hämeen valtatie 144 20540 TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus: 1626957-3 Tuotekonfigurointi ADE Oy lyhyesti Asiakkaiden tarpeisiin suunnattua innovatiivista ja toimivaa ohjelmisto- ja 3d animaatiopalvelua. Ade Oy on toteuttanut vuodesta 2000 alkaen haastavaa interaktiivista

Lisätiedot

Tiedostojen jakaminen turvallisesti

Tiedostojen jakaminen turvallisesti Tiedostojen jakaminen turvallisesti Taustaa Tiedostojen jakaminen sähköisesti (File Sharing) on ollut joissakin organisaatioissa ongelmallista hallita. Jaettaviksi halutut viestit ovat liitetiedostoineen

Lisätiedot

VBE II Tulosseminaari Teknologian valmiusaste. Virtuaalirakentamisen Laboratorio Jiri Hietanen

VBE II Tulosseminaari Teknologian valmiusaste. Virtuaalirakentamisen Laboratorio Jiri Hietanen VBE II Tulosseminaari Teknologian valmiusaste 1 2 Sisältö Tietomalleihin perustuva järjestelmä Järjestelmän osien valmiusaste Rakennuksen tietomallien tuottaminen Rakennuksen tietomalleihin perustuvat

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Sisällys. 11. Rajapinnat. Johdanto. Johdanto Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.

Lisätiedot

Muistitko soittaa asiakkaallesi?

Muistitko soittaa asiakkaallesi? webcrm Finland 1 webcrm Finland Muistitko soittaa asiakkaallesi? Riippumatta siitä, oletko myyntipäällikkö, markkinoija vai työskenteletkö HR tehtävissä, voit käyttää CRM ratkaisua erilaisiin tarpeisiin.

Lisätiedot

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

Uutta Fortnox ohjelmistossa:

Uutta Fortnox ohjelmistossa: Uutta Fortnox ohjelmistossa: Voit lukea lisää uusista ominaisuuksista Versiodokumentista Online Oppaasta. Arkisto Liitetyt Asiakirjat suunniteltu uudelleen... 2 Tallenna ja palauta ALV raportteja... 2

Lisätiedot

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit Esimerkki arkkitehtuurit Sivu 2/8 Sisällysluettelo 1. Johdanto... 3 1.1. Termejä... 3 2. Web hosting ilman kuormantasausta... 4 3. Web hosting kuormatasaus ja bastion... 5 3.1.... 5 3.2. Kuvaus... 5 4.

Lisätiedot

Web-palveluiden toteutus älykortille

Web-palveluiden toteutus älykortille älykortille Jukka Hänninen Valvoja: Prof. Raimo Kantola Ohjaaja: DI Kaj Höglund, Elisa Oyj Sisältö Työn tausta Standardointi Älykortin web-palvelin Toteutus Hyödyt ja mahdollisuudet Kohdatut ongelmat Lopputulos

Lisätiedot

Titan SFTP -yhteys mittaustietoja varten

Titan SFTP -yhteys mittaustietoja varten 2 (7) Sisällysluettelo 1 SFTP tiedonsiirto... 4 1.1 SFTP Palvelin... 4 2 Avaintenluonti... 5 2.1 Avainten hallintaprosessi... 6 3 Tiedoston kuvaus ja tallennus... 7 3 (7) Muutoshistoria Päivämäärä Versio

Lisätiedot

Mikä on internet, miten se toimii? Mauri Heinonen

Mikä on internet, miten se toimii? Mauri Heinonen Mikä on internet, miten se toimii? Mauri Heinonen Mikä on Internet? Verkkojen verkko Muodostettu liittämällä lukuisia aliverkkoja suuremmaksi verkoksi Sivustojen tekemiseen käytetään kuvauskielta HTML

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa Älykästä kulunvalvontaa e Acces toimii asiakkaan omassa tietoverkossa Perinteisen kulunvalvonnan seitsemän pullonkaulaa eli miksi useat yritykset eivät ole hankkineet kulunvalvontajärjestelmää? 1. Koska

Lisätiedot

Paikkatiedot ja Web-standardit

Paikkatiedot ja Web-standardit Paikkatiedot ja Web-standardit Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: World Wide

Lisätiedot

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Tämän esityksen sisältö tausta avoimet toimittajakohtaiset rajapinnat (toimittajan hallitsemat rajapinnat) avoimet yhteiset rajapinnat (tilaajan

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

Lisätiedot

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio 1 Loppuraportti Virtuaali-Frami, CAVE-ohjelmisto Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu Versio 1.0 15.1.2006 2 Sisällys Tiivistelmä... 3 1 Johdanto... 4 1.1 Dokumentin tarkoitus...

Lisätiedot

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi Solidity älysopimus ohjelmointi Sopimus suuntautunut ohjelmointi Merkle puu Kertausta eiliseltä Solidity on korkean tason älysopimus ohjelmointikieli Muistuttaa olio-ohjelmointia Javalla Sopimuskoodi on

Lisätiedot

Internet-pohjainen ryhmätyöympäristö

Internet-pohjainen ryhmätyöympäristö Menetelmäohje Internet-pohjainen ryhmätyöympäristö Riku Hurmalainen, 24.3.2002 Sisällysluettelo 1. Johdanto...3 2. Termit...4 3. Toteutus...5 3.1. Yleiskuvaus...5 3.2. Tekninen ratkaisu...5 3.3. Tietoturva...6

Lisätiedot

Kansallisen palveluväylän pilotoinnin tukeminen. JulkICTLab-projektihakemus

Kansallisen palveluväylän pilotoinnin tukeminen. JulkICTLab-projektihakemus Kansallisen palveluväylän pilotoinnin tukeminen JulkICTLab-projektihakemus v0.4 2 (6) DOKUMENTINHALLINTA Laatinut Tarkastanut Hyväksynyt VERSION HALLINTA versionro mitä tehty pvm/henkilö v0.4 3 (6) Sisällysluettelo

Lisätiedot

KADA (Drupal 7) migraatio uuteen (versioon) webiin

KADA (Drupal 7) migraatio uuteen (versioon) webiin KADA (Drupal 7) migraatio uuteen (versioon) webiin Hallittu elinkaaren siirto suoran migraation sijaan Mikko Malmgren & Antti Tuppurainen Mikko Malmgren / Kuntaliitto Antti Tuppurainen / Industry62 @mikko_malmgren

Lisätiedot

Digitaalisuudesta muutosvoimaa

Digitaalisuudesta muutosvoimaa Digitaalisuudesta muutosvoimaa 6.9.2018 Megatrendejä ja ajankohtaisia teknologiatrendejä Globalisaatio Teknologian kehitys Demografiset muutokset Ilmastomuutos Laskentakapasiteetin kasvu, kvanttitietokoneet

Lisätiedot

EASY PILVEN Myynnin opas - Storage IT

EASY PILVEN Myynnin opas - Storage IT EASY PILVEN Myynnin opas - Storage IT EASY Pilvi EASY Tiedostopalvelin: Tiedostojen tallennukseen ja jakamiseen soveltuva monipuolinen järjestelmä EASY Pilvipalvelin: Täysiverinen, skaalautuva käyttöjärjestelmän

Lisätiedot

MARA-ALAN LIIKETOIMINNAN TIETOTURVALLISUUSUHAT

MARA-ALAN LIIKETOIMINNAN TIETOTURVALLISUUSUHAT MARA-ALAN LIIKETOIMINNAN TIETOTURVALLISUUSUHAT 1 Yritysesittely Smart Idea MARA-alan ITpalvelutoimittaja erikoistunut kassajärjestelmiin, maksupäätteisiin ja ravintolaverkkoihin. SKJ Systems - luo asiakkailleen

Lisätiedot

Projektisuunnitelma. Projektin tavoitteet

Projektisuunnitelma. Projektin tavoitteet Projektisuunnitelma Projektin tavoitteet Projektin tarkoituksena on tunnistaa erilaisia esineitä Kinect-kameran avulla. Kinect-kamera on kytkettynä tietokoneeseen, johon projektissa tehdään tunnistuksen

Lisätiedot

Miksi ja miten siirtyä käyttämään nykyistä ERP-järjestelmää pilvessä?

Miksi ja miten siirtyä käyttämään nykyistä ERP-järjestelmää pilvessä? Miksi ja miten siirtyä käyttämään nykyistä ERP-järjestelmää pilvessä? Sisällys Lukijalle 3 Mitä pilvipalveluilla tarkoitetaan? 4 Toiminnanohjausjärjestelmä pilvessä 5 Miksi siirtyä pilvipalveluihin? 6

Lisätiedot

Mihin tarkoitukseen henkilötietojani kerätään ja käsitellään?

Mihin tarkoitukseen henkilötietojani kerätään ja käsitellään? TIETOSUOJASELOSTE Yleistä Jotta voimme palvella sinua parhaamme mukaan, edellyttää se että keräämme ja käsittelemme joitakin sinua koskevia tietoja. Arvostamme kuitenkin yksityisyyttäsi ja olemme sitoutuneet

Lisätiedot