2005-09-16

Summary of thesis work (in Finnish)

Päivitetty 5.4.2006: johtopäätöksien yhteenveto ja liitteet
lisätty Google-osumien pohjalta

Web-palvelun toteutus XML-tekniikalla

Oulun yliopisto
Tietojenkäsittelytieteiden laitos
Mika Fonsén
Pro gradu -tutkielma
25.5.2003

Tiivistelmä

World Wide Webin käyttö on laajentunut sen alkuperäisestä käyttötarkoituksestaan siinä määrin, että seurauksena on ollut web-kriisi. Alkuperäinen rakenne ei mahdollista toimivaa ylläpidettävyyttä laajoissa palveluissa. Ylläpito on yksi palvelun elinkaaren tärkeimmistä vaiheista. Tutkimuksessa eräs ratkaisu ongelmaan on ollut komponenttiarkkitehtuuri, jossa sisältö, esitys ja toiminnallisuus ovat toisistaan erotettuna. Tulosten soveltamien ei ole kuitenkaan yleistynyt monimutkaisten tekniikoiden johdosta tässä tutkittavien informaatiopohjaisten web-palveluiden osalta. Uudemmat Extensible Markup Language (XML) -tekniikat tarjoavat teoriassa vaihtoehtoisen tavan soveltaa aiempia tutkimustuloksia ja samalla hyödyntää laajaa XML-sovellustarjontaa. Tämän tutkielman tutkimusongelmana on ”millainen XML-tekniikalla toteutettu komponenttiarkkitehtuuri mahdollistaa helposti ylläpidettävän web-palvelun?” Tässä tutkielmassa havaittiin käytetyn arkkitehtuurin mahdollistavan helposti ylläpidettävän web-palvelun seuraavasti. Sisältökomponenttina toimii XML-muotoinen tieto, esityskomponenttina XSL Transformations (XSLT) -pohjat, jotka yhdistävät Extensible Hypertext Markup Language (XHTML) -muotoisen esityksen sisältöön, ja toiminnallisena komponenttina Java Servlet -ohjelmistokomponentit. Rajapinnat määritetään XML Schema -dokumenteilla. Komponenttien avulla on mahdollista erikoistaa ohjelmistokehyksenä toimiva Apache Cocoon 2 toimivaksi palveluksi. Erikoisrajapintana toimii julkaisukehyksen asetustiedosto, joka määrittää komponenttien väliset suhteet ja niiden käytön. Konstruktiivisen tutkimuksen kohteena olleelle palvelulle asetetut tavoitteet saavuttiin hyvin, muun muassa ei-teknisten ylläpitäjien on yksinkertaista ylläpitää koko palvelua tarjolla olevilla XML-työkaluilla. Tästä huolimatta tekniikkaa on edelleen mahdollista kehittää erityisesti ylläpitotyökalujen osalta ja standardoimalla komponenttien väliset suhteet määrittävän asetustiedoston rakenne. Kokemuksia aiempiin vertaamalla havaittiin työkalujen kehittyneen aiempaan verrattuna ja muodostetun rakenteen tarjoavan aiemmin huomiotta jääneitä mahdollisuuksia. Tutkielmassa hyödynnetään aiempaan verrattuna laajasti sekä web- että ohjelmistotekniikan tutkimusta ja muodostetaan kokonaiskuva tutkimuksesta ja jatkotutkimustarpeista.

Asiasanat: web-tekniikka, XML, www, web, rakenteinen tieto, sisältö, esitys, toiminnallisuus, komponenttiarkkitehtuuri, ylläpito, ylläpidettävyys


Sisällysluettelo

TIIVISTELMÄ 2
ALKUSANAT 3
SISÄLLYSLUETTELO 4
1 JOHDANTO 6
1.1 Aiheeseen liittyvä tutkimus 7
1.2 Tutkimusongelma ja -menetelmät 8
1.3 Tutkielman sisältö ja rakenne 11
2 WEB-PALVELUT 12
2.1 Ylläpidettävyys 14
2.2 Arkkitehtuuri 16
2.3 HTML ja siihen liittyvät perinteiset tekniikat 19
2.4 XML-tekniikat 20
2.5 Komponenttiarkkitehtuuri XML-tekniikoilla 25
2.6 Yhteenveto 28
3 TOTEUTUSYMPÄRISTÖ, YRITYKSEN WEB-PALVELU 29
3.1 Palvelun nykytila 30
3.2 Tavoitetila 32
3.3 Kohdepalvelun yleistettävyys 34
3.4 Yhteenveto 35
4 TOTEUTUS 36
4.1 Sisältö 37
4.2 Esitys 38
4.3 Toiminnallisuus 39
4.4 Julkaisukehys 40
4.5 Yhteenveto 42
5 KOKEMUKSET 44
5.1 Verrattuna asetettuihin vaatimuksiin 44
5.2 Verrattuna Kerer et al. (2001) kokemuksiin 46
5.3 Verrattuna XGuide-menetelmään 50
5.4 Suorituskyky 53
5.5 Muut kokemukset 54
5.6 Yhteenveto 55
6 JOHTOPÄÄTÖKSET 57
6.1 Tulokset 57
6.2 Jatkotutkimus 61
7 LÄHTEET 62



6 Johtopäätökset



...-clip-...



Yhteenveto

Keskeiset tulokset tutkimuksesta olivat seuraavat:

1. Tässä tutkielmassa esitetyllä XML-tekniikoilla toteutetulla komponenttiarkkitehtuurilla on mahdollista huolellisella suunnittelulla luoda helposti ylläpidettävä informaatiopohjainen web-palvelu erottamalla sisältö, esitys ja toiminnallisuus toisistaan ja käyttämällä näitä komponentteja yhdessä julkaisukehyksen kanssa.

2. XML-teknologia mahdollistaa web-tekniikan tutkimustulosten soveltamisen tuotantokäyttöön. Muodostettu rakenne vastaa paremmin informaatiopohjaisen palvelun tarpeita kuin aiemmat käytännössä suositut ratkaisut, jotka soveltuvat paremminkin perinteisiä ohjelmistoja muistuttavien palveluiden rakenteeksi.

3. Työkalut ovat kehittyneet huomattavasti verrattuna aiempaan tutkimukseen (Kerer et al. 2001) ja tarjolla on vihdoin toimiva yleiskäyttöinen XML-julkaisukehys, Apache Cocoon 2. WYSIWYG-muotoiset helppokäyttöiset ylläpitotyökalut ovat kuitenkin vielä varhaisella kehitysasteella. Sisällön ylläpitoon on tarjolla työkaluja, mutta XSLT-taitto-ohjelmat puuttuvat vielä kokonaan. Näiden työkalujen kehittyminen saattaisi mahdollistaa kokonaisratkaisun läpilyönnin massamarkkinoilla.

4. XGuide -metodi komponenttipohjaisten XML-ratkaisujen kehittämissä vaatii vielä täsmentämistä ohjatakseen käytännön suunnitteluratkaisuja. Metodien ohelle saattaisi olla mahdollista kehittää suunnittelumalleja yleisten rakenteiden ratkaisuiksi. Käytetyn rakenteen soveltaminen vaatii huolellista suunnittelua ja kurinalaista toteutusta, mutta näiden avulla työtä voisi helpottaa merkittävästi.

5. Komponenttien välisen riippuvuuden määrittävä XML-muotoinen asetustiedosto tulisi asettaa W3C:n standardoitavaksi ja edelleen selaimissa ja palvelimilla käytettäväksi. Tämän suosituksen puuttuminen vaikeuttaa XML-tekniikoiden hyödyntämistä laajassa mittakaavassa web-palveluissa.

6.2 Jatkotutkimus
Ylläpidettävyyden tason kattavampi selvittäminen vaatisi palvelun seuraamista ylläpitovaiheessa pidemmällä aikavälillä. Tätä kautta olisi mahdollista tutkia myös ylläpitoprosessia ja sitä helpottavia tekniikoita ja työkaluja. Olennaista olisi pystyä kehittämään WYSIWYG-taittotyökalu XSLT-muotoisen esityksen kehittämiselle. Ilman tätä käytetty tekniikka tuskin tulee lyömään kovin laajassa mittakaavassa läpi. Kehitysprosessille kokonaisuudessaan olisi mahdollista muodostaa sitä tukeva menetelmä. Huomiota voisi myös kiinnittää sisällöntuotantoon ja sen hyödyntämiseen koko organisaation ja toisaalta yhteistyökumppaneiden tasolla. Vertailu vaihtoehtoisiin toteutustekniikoihin toisi syvällisempää tietoa soveltuvan ratkaisutavan valintaan. Eräs tutkimuskohde voisi olla oliopohjaisten menetelmien ja hypermediatutkimuksen tulosten soveltumisen tutkiminen sisällön rakenteen abstraktiotasoa nostettaessa muun muassa keskinäisten riippuvuuksien hallitsemiseksi.

Työtä helposti ylläpidettävien web-palveluiden parissa vielä riittää ennen kuin valmiina on laajamittaiseen käyttöön soveltuva ratkaisu. XML-tekniikat tarjoavat tähän kuitenkin aiempaa paremmat mahdollisuudet.


7 Lähteet

Apache Foundation 2003a. Welcome to the Apache XML Project [Web-document]. http://XML.apache.org/ [Referenced 11.3.2003].
Apache Foundation 2003b. Welcome to the Apache AxKit [Web-document]. http://www.axkit.org [Referenced 12.3.2003].
Apache Foundation 2003c. Apache Cocoon [Web-document]. http://XML.apache.org/cocoon [Referenced 11.3.2003].
Bass, L., Clemens P. & Kazman R. 1998. Software Architecture in Practice. Reading, MA: Addison-Wesley.
Bitflux 2003. Popoon. [Web-document]. http://www.bitflux.ch/developer/cms/popoon.html [Referenced 12.3.2003].
Bennet, K. H. & Rajlich V. T. 2000. Sofware maintenance and Evolution: a Roadmap. International Conference on Software Engineering, proceedings of the conference on the future of software engineering, 73-87.
Bos, B & Lie H. W. 1999, Cascading Style Sheets, level 1 [Web-document]. http://www.w3.org/MarkUp/ [Referenced 10.3.2003].
Bos, B., Lie H. W., Lilley C. & Jacobs I. 1998. Cascading Style Sheets, level 2 CSS2 Specification [Web-document]. http://www.w3.org/TR/1998/REC-CSS2-19980512/ [Referenced 10.3.2003].
Bradley N. The XML Companion, 3rd edition. Harlow: Addison-Wesley.
Bray, T., Hollander D. & Layman A. 1999. Namespaces in XML. [Web-document]. http://www.w3.org/TR/1999/REC-XML-names-19990114/ [Referenced 13.3.2003].
Bray, T., Paoli J., Sperberg-McQueen M.C. & Maler E. 2000. Extensible Markup Language (XML) 1.0 (Second Edition) [Web-document]. http://www.w3.org/TR/2000/REC-XML-20001006 [Referenced 21.2.2003].
Capretz, L.F., Capretz, M.A.M. & Dahai Li. 2001. Component-based software development. The 27th Annual Conference of the IEEE Industrial Electronics Society, 1834–1837.
Clark, J. 1999a. XSL Transformations (XSLT) 1.0 [Web-document]. http://www.w3.org/TR/1999/REC-xslt-19991116 [Referenced 21.2.2003].
Clark, J. 1999b. XML Path Language (XPath) [Web-document]. http://www.w3.org/TR/1999/REC-xpath-19991116 [Referenced 6.3.2003].
Cutter Consortium 2000. Poor project management number-one problem of outsourced e-projects. [Web-document] http://www.cutter.com/research/2000/crb001107.html [Referenced [31.5.2003].
DeRose, S., Maler E. & Orchard D. 2001. XML Linking Language (XLink) Version 1.0 [Web-document]. http://www.w3.org/TR/2001/REC-xlink-20010627/ [Referenced 6.3.2003].
Deshpande, Y. & Hansen, S. 2001. Web engineering: creating a discipline among disciplines. IEEE Multimedia, Vol.8, Iss.1, Jan-Mar 2001, 82–87.
Gaedke, M., Gellersen, H-W., Schmidt A., Stegemüller, U. & Kurr W. 1999. Object-oriented web engineering for large-scale web service management. Proceedings of the 32nd Hawaii International Conference on System Sciences, 1–9.
Gamma, E., Helm, R., Johnson, R. & Vlissides, J. 1996. Design patterns: elements of reusable object-oriented software. Reading, MA: Addison-Wesley.
Garshol, M. L. 2003. Free XML tools and software [Web-document]. http://www.garshol.priv.no/download/XMLtools/cat_ix.HTML [Referenced 6.3.2003].
Ginige, A. & Murugesan, S. 2001. Web engineering: an introduction. IEEE Multimedia, Vol.8, Iss.1, Jan-Mar 2001, 14–18.
Goldfarb, C. & Prescod, P. 2002. The XML Handbook, 4th edition. Upper Saddle River, NJ: Prentice Hall.
GuangChun, L., WangYanhua, L. & Hanhong, X. 2003. A novel web application frame developed by MVC. ACM SIGSOFT Software Engineering Notes. Volume 28, Issue 2, 7–9.
Haas, H. 2003. Web Services Activity [Web-document]. http://www.w3.org/2002/ws/ [Referenced 10.3.2003].
Hollander, D. & Sperberg-McQueen C. M. 2003. Happy Birthday, XML! [Web-document]. http://www.w3.org/2003/02/XML-at-5.HTML [Referenced 5.3.2003].
Holzner, S. 2001. Inside XSLT. Indianapolis, IN: New Riders Publishing.
IEEE 1993. IEEE Standard 1219: Standard for Software Maintenance. Los Alamitos, CA: IEEE Computer Society Press
Interakt Online 2003. Krysalis. [Web-document]. http://www.interakt.ro/products/krysalis [Referenced 12.3.2003].
Kerer, C. & Kirda, E. 2001. Layout, Content and Logic Separation in Web Engineering. WebEngineering 2000, LNCS 2016, 135–147.
Kerer, C., Kirda, E., Jazayeri, M. & Kurmanowytsch, R. 2001. Building and Managing XML/XSL-powered Web Sites: an Experience Report. 25th Annual International Computer Software and Applications Conference, 2001, COMPSAC 2001. 547–554.
Kerer, C., Kirda, E. & Krügel C. 2002a. XGuide - a practical guide to XML-based web engineering. Networking 2002 Workshops, LNCS 2376, 104–117.
Kerer, C., Kirda, E. & Kurmanowytsch, R. 2002b. A generic content-management tool for Web databases. IEEE Internet Computing, Vol.6, Iss.4, Jul/Aug 2002, 38–42.
Kirda, E., Jazayeri, M., Kerer, C. & Schranz, M. 2001. Experiences in engineering flexible Web services. IEEE Multimedia, Vol.8, Iss.1, Jan-Mar 2001, 58–65.
Laid C. 2002. XSLT powers a new wave of web applications. Linux Journal. Volume 2002, Number 95, 1–.
Langham, M. & Ziegeler, C. 2002. Cocoon: Building XML Applications. Indianapolis, IN: New Riders Publishing.
Le Hors, A. et al. 1999. HTML 4.01 Specification [Web-document]. http://www.w3.org/TR/1999/REC-HTML401-19991224/ [Referenced 5.3.2003].
Lowe, D. & Hall, W. 1999. Hypermedia & the Web: an engineering approach. Chichester: John Wiley & Sons.
Malhotra, A. & Maloney, M. 1999. XML Schema Requirements [Web-document]. http://www.w3.org/TR/NOTE-XML-schema-req [Referenced 6.3.2003].
Michel, T. 2003. XForms – The Next Generation of Web Forms [Web-document]. http://www.w3.org/MarkUp/Forms/ [Referenced 10.3.2003].
Nunameker, J., Chen, M. & Purdin, T. 1991. Systems development in information systems research. Journal of Management Information Systems. Vol. 7, no 3, 89–106.
OSCOM 2003. 2003. Content Management Frameworks/Systems Overview [Web-document]. http://www.oscom.org/matrix/index.HTML [Referenced 6.3.2003].
Pfleeger S. L. 2001. Software engineering: theory and practice. 2nd ed. Upper Saddle River, NJ: Prentice Hall
Pressman, R. S. & Ince, D. 2000. Software Engineering – A Practioner’s Approach, European Edition, 5th edition. Berkshire: McGraw-Hill Publishing Company.
Punte, S. 2002. Getting Started With Cocoon 2 [Web-document]. http://www.XML.com/pub/a/2002/07/10/cocoon2.HTML?page=1 [Referenced 12.3.2003].
Rossi G. & Schwabe D. 2002. Object-oriented design structures in web application models. Annals of Software Engineering 13, 97–110.
Singh, I., Stearns, B., Johnsson, M. & Enterprise Team. 2002. Designing Enterprise Applications with the J2EE Platform, Second Edition. Upper Saddle River, NJ: Addison-Wesley.
Szyperski, C. 1998. Component software – beyond object oriented programming. New York, NY: ACM Press.
Tietotekniikan liitto ry (TTL). 2003. ATK-sanakirja, englanti-suomi [Web-document]. http://www.tt-tori.fi/atk-sanakirja/englanti-suomi/en024.htm [Referenced 16.4.2003].
Velocity. 2003. Velocity [Web-document]. http://jakarta.apache.org/velocity/index.HTML [Referenced 5.3.2003].
W3C. 2003. HyperText Markup Language (HTML) Home Page [Web-document]. http://www.w3.org/MarkUp/ [Referenced 9.3.2003].
Walsh, N. & Muellner, L. 1999. DocBook: The definitive guide. Sebastopol, CA: O’Reilly & Associates.
Warren, P., Boldyreff, C. & Munrom, M. 1999. The Evolution of Websites, Proceedings of International Workshop on Program Comprehension, IWPC99, IEEE Computer Press, 178–185.