LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008, 2008 Jukka Lankinen 0258961 Alkuraportin hyväksynyt
Sisältö 1 JOHDANTO 1 2 TYÖN TAUSTAT 2 3 TYÖN TAVOITTEET JA MENETELMÄT 3 4 AIKATAULU 4 LÄHTEET 5 i
1 JOHDANTO Työn aihe on avoimen lähdekoodin käyttö WWW-sovelluspalveluiden toteutuksessa. Aihepiiri käsitelee kohtuullisen uutta Web Services -käsitettä. Web Service tai WWW-sovelluspalvelu on jollain ohjelmointikielellä ja sovelluskehyksellä (framework) toteutettu palvelu, joka keskustelee muiden tietokoneiden ja palvelujen kanssa alustariippumattomilla XMLviesteillä. Yksi hyvin yksinkertainen WWW-sovelluspalvelu voisi olla kahden luvun yhteenlasku, jossa palvelulle lähetetään XML-muodossa kaksi lukua ja palvelu palauttaa XML-muotoisena näiden kahden yhteenlasketun arvon. Yleensä tällaisen palvelun tekeminen vaatii sovelluskehyksen, millä palvelu toteutetaan, sovelluskehittimen (esim. Eclipse) ja palvelimen (esim. Tomcat). Sovellusrajapintoja on olemassa hyvin monia erilaisia ja monilla erilaisilla lisensseillä, joista useimmat tukevat avointa lähdekoodia. Nämä rajapinnat on toteutettu monilla eri ohjelmointikielillä ja niissä on jonkinverran myös eroa. Erot pääosin syntyvät ohjelmointikielten tuomien etuuksien mukaan, mutta jokaisella rajapinnalla on myös omat erikoispiirteensä. Rajapinnoilla on tukia eri tekniikoille ja standardeille. Lisäksi rajapintojen kanssa työskennellessä on eräänlainen mukavuus ja yhdenmukaisuus tärkeää. Suorituskyky on myös tärkeä tekijä, kun kyseessä on massiivisesti käytössä olevista palveluista. Palveluiden toteuttamiseen on olemassa erilaisia sovelluskehittimiä. Kuka tahansa voi ohjelmoida WWW-sovelluspalvelun käyttäen yksinkertaista tekstieditoria, mutta on myös olemassa laaja skaala erilaisia palveluiden toteuttamista helpottavia sovelluksia. Palvelimilta vaaditaan kyky ajaa servlettejä, joihin WWW-sovelluspalvelut perustuvat. Tätä ominaisuutta ei löydy jokaisesta HTTP-palvelimesta ja toisinaan tarvitaan erillinen servlettejä tukeva palvelin, kuten Apache Tomcat. On siis selvää, että vaihtoehtoja on hyvin paljon ja monille aloitteleville palveluiden toteuttajille onkin vaikeaa löytää itselleen sopivaa työkalua, millä toteuttaa palvelunsa. Tässä työssä keskityn avoimen lähdekoodin toteutuksiin ja punnitsen eri sovelluskehittimien tehokkuutta WWW-sovelluspalveluiden toteuttamisessa. Työ on rajattu käsittelemään Apache Axis2:sta, Xfire:ä ja JAX-WS:ää, joista jokainen on toteutettu javalla. Työssä käydään läpi yleisimpiä WWW-sovelluspalveluiden käyttämiä standardeja ja selvitetään mitä niistä eri sovellusrajapinnat käyttävät. Työlle on tehty alustava sisällysluettelo, joka on löydettävissä työn verkkosivuilta. [3] Lisäksi tämä sivusto sisältää viimeisimmät tiedot työn etenemisestä. 1
2 TYÖN TAUSTAT WWW-sovelluspalvelut kehittyvät kaiken aikaa ja uusia standardeja sekä määrityksiä tehdään. Standardit ja määritykset ovat vapaasti kaikkien luettavissa verkossa. [4, 5, 6] WWW-sovelluspalveluista on tehty suuria määriä kirjoja ja erilaisia toteutusalustoja on useita. Tämän työn on mahdoton kattaa kaikkia avoimen lähdekoodin projekteja. Lisäksi virallisia vertailuja ja suorituskykymittauksia eri sovelluskehyksille on vähän niiden kehittyvän luonteen takia. Tästä syystä työssä pääosin keskitytään vertailemaan ominaisuuksia ja rajapintoja, mitä eri sovellusrajapinnat pystyvät toteuttamaan. Internet tarjoaa muutamia harrastelijoiden tekemiä vertailuja, mutta niitä ei voida käyttää lähdemateriaalina työn teossa. Projektien kotisivut ja dokumentaatiot käyvät lähdemateriaalin hakemisessa, koska muita tieteellisiä lähteitä ei ole tarjolla. 2
3 TYÖN TAVOITTEET JA MENETELMÄT Työssä on tavoitteena syvällisesti paneutua WWW-sovelluspalveluiden rakenteeseen ja niihin liittyviin standardeihin sekä tekniikoihin. Selvitetään millaisista osista WWW-sovelluspalvelut koostuvat ja miten yksinkertaisen palvelun voi tehdä sekä mitä se vaatii. Lisäksi selvitellään avointa lähdekoodia ja käytettyjä lisenssejä. Kirjatieto soveltuu tähän vaiheeseen mainiosti. Pohjatiedon selvityksen jälkeen käydään läpi työhön valitut avoimen lähdekoodin projektit ja paneudutaan niiden ominaisuuksiin sekä niiden sovelluskehyksien toteuttamiin standardeihin. Yleisimpiä standardeja ovat mm. WS-Addressing, WS-Security, WS-Policy ja tuet WSDL 1.1 tai WSDL 2.0 -kuvauksille. Näiden lisäksi selvitetään mitä muita sovelluksien toteuttamista helpottavia ominaisuuksia sovelluskehys tarjoaa, kuten liitännäisiä Eclipseen tai välitöntä sovelluksen käyttöönottoa. Nämä tiedot täytyy hakea kunkin WWWsovelluspalvelukehyksen kotisivuilta. Tässä tapauksessa Apache Axiksen, XFiren ja JAX- WS:n kotisivuilta. [4, 5, 6] Erillisten selvitysten lisäksi lopuksi kootaan kaikkien tiedot vertailtavaksi taulukon tai johonkin muuhun formaattiin, josta nopeasti nähdään tutkimustyön tulokset. Tällä hetkellä WWW-sovelluspalveluihin liittyyn hyvin monia eri tekniikoita ja standardeja, joita kaikkia ei ole toteutettu kaikissa sovellusrajapinnoissa. Tätä varten täytyy selvittää, mikä sovelluskehys tukee mitäkin standardeja ja määrityksiä. Työn pitäisi helpottaa oikean WWW-sovelluspalveluratkaisun valinnassa ja valaista avoimen lähdekoodin projektien teknisiä eroja. 3
4 AIKATAULU Aikataulu on esitetty taulukossa 1. Kyseinen aikataulu on myös löydettävissä työn kotisivuilta [3]. P äivämäärä Kuvaus 4.6.2007 Aloitetaan työ. Kerätään lähdekirjallisuutta ja tutustutaan tarkemmin WWW-sovelluspalveluihin ja mahdollisiin sovelluskehyksiin/työkaluihin. Päämääränä myös tutustua tarkemmin sovelluskehyksiin ja rakentaa yksinkertainen WWW-sovelluspalvelu. Rajataan aihetta ja tehdään alkuraportti. 1.3.2008 Jatketaan keskeneräistä työtä. Ilmoittaudutaan uudelleen kurssille. 1.3.-19.3.2008 Korjataan vanhaa työtä ja selvennetään työn tavoitteet. 19.3.2008 Edistymispalaveri. 26.3.2008 Edistymispalaveri. 2.4.2008 Alkuseminaari. Päivitetään työn tavoitteita palautteen perusteella. 9.4.2008 Edistymispalaveri. Axis2 ja XFire käsitelty. 16.4.2008 Edistymispalaveri. Loput WWW-sovelluskehykset käsitelty ja vertailut tehty. 20.4.2008 Työn valmistuminen. Tästä eteenpäin korjataan virheitä, jos niitä ilmenee. 23.4.2008 Loppuseminaari. Taulukko 1: Aikataulu 4
LÄHTEET [1] Ethan Cerami. Web Services Essentials. O Reilly. Sebastopol, Canada. 2002. ISBN: 0-596-00224-6 [2] James Snell. Programming Web Services with SOAP. O Reilly. Sebastopol, Canada. 2002. ISBN: 0-596-00095-2 [3] Jukka Lankinen. Työn verkkosivut. http://jumi.lut.fi/ julankin/kurssit/kand Viitattu 5.6.2007. [4] Apache Axis2 Documentation. http://ws.apache.org/axis2/1_3/toc.html. Viitattu 30.3.2008. [5] Xfire Homepage. http://xfire.codehaus.org. Viitattu 30.3.2008. [6] JAX-WS User Guide. https://jax-ws.dev.java.net/guide/. Viitattu 30.3.2008. 5