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, mashupeja. Verkkopalvelujen rajapinnat tarjoavat palveluja, joita ohjelmoijat voivat hyödyntää omissa sovelluksissaan/palveluissaan. Web-rajapintojen avulla voidaan luoda uusia palveluja, yhdistellään sisältöjä eri tietolähteistä 1
Esimerkiksi normaalisti mashup on Googlen karttapalvelua hyödyntävä sovellus. Kartta voi toimia käyttöliittymänä monenlaiselle paikkasidonnaiselle tiedolle. Esimerkiksi valokuvat ja videot voidaan esittää kartalla kuvauspaikkaan perustuen. Erilaisia web-rajapintoja on listattu Programmableweb-palvelussa kaikkiaan satoja. http://www.programmableweb.com Web-rajapintoja hyödyntäviä yhdistelmäpalveluja tunnetaan tuhansia Web-rajapintojen ovat avoimuudesta ja ohjelmointikielestä riippumattomuuden vuoksi rajapintoja hyödyntävät sovellukset yleistyvät nopeasti. Sovelluksen voi toteuttaa C#-kielellä, javascriptillä,... Ohjelmoijan tehtäväksi jää etäkutsun palauttaman xmlmuotoisen sisällön muokkaaminen omaan sovellukseensa soveltuvaan muotoon. 2
Web-sovellusten lisäksi rajapintaa voivat käyttää työpöytä- ja mobiilisovellukset. Mobiilisovelluksissa ollaan vasta hyödytämässä aina käytettävissä olevan tietoliikenteen mahdollisuuksia. Esimerkki Youtube-palvelu rajapinnan mahdollista videoleikkeiden haut tekijän mukaan rajapinta tarjoaa kolme metodia käyttäjätietoon ja kahdeksan metodia videoleikkeisiin. Haun tuloksen rajapinta palauttaa xml-tulosteena. Tulos sisältää esimerkiksi videoleikkeiden osoitteet Esikatselukuvat Kun tiedot yhdistetään paikkatiedon kanssa karttapalvelussa tai omassa sovelluksessa saadaan aikaiseksi mashup 3
Web-rajapinnan metodille lähetetään kutsu xmlrpc- ja rest-tyyppisenä. Rest-kysely tehdään http:n get-menetelmällä voi kokeilla selaimella Youtube edellyttää parametrinä kehittäjätunnusta. Vastaavanlainen menetelmä käytössä muissakin yleisissä palveluissa Youtuben käyttäjäprofiilit ovat julkisia. Metodilla youtube.users.get_profile saadaan haettua parametrina välitetyn käyttäjätunnuksen profiili (saatavilla myös www-sivuilta). Jokaisella videotiedostolla on yksilöllinen tunniste Youtube-palvelussa. Tunnisteen avulla on mahdollista hakea videoleikkeen tiedot metodia youtube.videos.get_details käyttäen. Xml-rpc-kyselyssä viestit ovat soapin tavoin xmlmuotoisia. Viestin rakenne muodostuu methodcall- ja methodname-elementeistä. Tarvittavat parametrit kootaan params-elementin sisälle. Web-rajapinnan vastaus noudattaa samankaltaista xml-rakennetta. 4
Xml-rpc-, rest- ja web service -kyselyt vastauksineen kulkevat http-protokollan päällä. Mahdollistaa sovellusten välisen liikenteen palomuurien läpi. Rest ei ole varsinainen protokolla, vaan arkkitehtuurinen malli asiakas-palvelin - sovelluksesta, jossa web-rajapinnan metodit ovat resursseja. Kullakin resurssilla on oma osoitteensa. Kysely perustuu http-pyyntöön, joka hyödyntää get-, post- tai put-tyyppisiä metodeja. Useimmat web-rajapinnat käyttävät kuitenkin vain get-metodia. Vastaavalla pyynnöllä haetaan web-sivuja, mutta html-muotoisen tiedoston sijaan web-rajapinta palauttaa xml-tietueen. REST-palvelut toteuttavat kommunikoinnin kevyemmin ja tehokkaammin verrattessa SOAP:n (Simple Object Access Protocol) 5
REST (Representational State Transfer) on alunperin tarkoitettu hypermediajärjestelmien arkkitehtuurityyliksi. REST käyttää tyypillisesti HTTP-protokollaa (GET, POST) ja nojautuu korkean tason rajapintaoperaatioiden käyttöön. Joten web-palveluiden palvelut ja operaatiot on määritelty valmiiksi (ei vastaa aitoa web-palvelurakennetta). Tietoturva, avoimet web-rajapinnat Pahimpana uhkana pidetään XSS-haavoittuvuutta (Cross-Site-Scripting) Tilanne syntyy, kun web-palvelin ottaa vastaan dataa ulkoisesta lähteestä ja lähettää sen eteenpäin validoimatta ensin sen sisältöä. Suojatuminen edellyttää sivujen ohjelmoijalta tietoturvallisen ohjelmoinnin periaatteiden noudattamista. Tietoturva, avoimet web-rajapinnat Aikaisemmin ongelmilta oltiin suojassa suljettujen järjestelmien asioista. Myös selaimet tutkivat suoritettavan koodin lähdettä. Oman sovelluksen ja julkisen palvelun rajapinta hämärtyy. Esimerkiksi julkisen hakukoneen linkittäminen yrityksen sivustolle. 6
Tietoturva, avoimet web-rajapinnat Palveluiden toteutuksessa sovelluskehitys on mennyt tietoturvan edelle. Sivustojen analysointi työkalut eivät pysty analysoimaan jatkuvasti muuttuvia sivustoja. 7