Vielä ei ole myöhäistä



Samankaltaiset tiedostot
J2EE vs..net Olli Sakari

TEEMA-ARTIKKELI. Arkkitehtuurit ja koodin laatu Tomas Nyström, Accenture

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

Kokemuksia yritysarkkitehtuurista

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

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

Integraatiotekniikan valinta - tie onnistumiseen.

Ohjelmistojen suunnittelu

Liiketoimintajärjestelmien integrointi

Software product lines

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

Keskitetyn integraatiotoiminnon hyödyt

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

HP OpenView ratkaisut toiminnan jatkuvuuden turvaajina

Tiedonsiirto- ja rajapintastandardit

Liiketoimintajärjestelmien integrointi

Kokonaisarkkitehtuuri ja päätöksenteko

Uusia tuulia Soneran verkkoratkaisuissa

Miten yhteiskunnalliset haasteet, julkiset palvelut ja yritysten liiketoiminta kohtaavat vai kohtaavatko?

IT Service Desk palvelun käyttöönotto palvelukeskuksissa

Uudelleenkäytön jako kahteen

Koulutuksen suhdannevaihtelut. Zeppeliinistä suihkukoneaikaan

Arkkitehtuuri muutosagenttina

IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus

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

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

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

Tableaun hyödyntäminen Toyota Rahoituksessa

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

EKSOTE Sähköisen asioinnin seminaari


Project-TOP QUALITY GATE

Mikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus. Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela

Tietojärjestelmän osat

AVOIN LÄHDEKOODI JA SEN MERKITYS LIIKETOIMINNASSA

Tietojärjestelmien integroiminen hyödyntämällä palvelupohjaista arkkitehtuuria. CASE: Metropolia. Jaakko Rannila & Tuomas Orama 1

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Kokonaisuuksien, riippuvuuksien ja synergioiden hahmottaminen helpottuvat

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Miten kuvaat ja kehität organisaation kokonaisarkkitehtuuria?

Teknologia-arkkitehtuuriperiaatteet

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Kiinteistöjen paloturvallisuuden ajankohtaispäivät 2016 Muuttuva ympäristö ja teknologian haasteet Palontorjunnan laitteistot Lauri Lehto,

Kokonais-IS-arkkitehtuuri korkeakouluissa Tietohallinnon näkökulma

Totuus IdM-projekteista

JHS 179 Kokonaisarkkitehtuurin suunnittelu ja kehittäminen Liite 2. Liiketoimintamallit ja kyvykkyydet KA-suunnittelussa

Merlin Systems Oy. Kommunikaatiokartoitus päätöksenteon pohjaksi. Riku Pyrrö, Merlin Systems Oy

Sovellusarkkitehtuurit

Taltioni teknisen alustan arviointi

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Tietoturvakonsulttina työskentely KPMG:llä

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

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

Julkisen ja yksityisen sektorin kumppanuus innovatiivisten palveluiden mahdollistajana

Mikkelin sähköisen asioinnin alusta - päätöksenteko. Kalle Launiala / ProtonIT Oy kalle.launiala@protonit.net

Ohjelmistotuotannon itse-automatisointi Avoin menetelmä nykyisten tekijöiden työn radikaaliin tehostamiseen

Integrointi. Ohjelmistotekniikka kevät 2003

SOTE-AKATEMIA TEKNOLOGISEN MURROKSEN JOHTAMINEN SOTE-ALALLA

Automaatio mahdollistaa Software as a Service - arkkitehtuurin

Suomen avoimien tietojärjestelmien keskus COSS ry

Liikeidea. Etunimi Sukunimi

FuturaPlan. Järjestelmävaatimukset

ohjelman arkkitehtuurista.

Avoin lähdekoodi. Jani Kylmäaho Maanmittauslaitos

Monitoimittajaympäristö ja SIAM, haasteet eri toimijoiden näkökulmasta

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

AVOIMEN TUOTTEEN HALLINTAMALLIT. Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö. Yhteentoimivuutta avoimesti

Miten löydän Sen Oikean? Senaattoritilaisuus Liisa Paasiala, Senior Consultant

Työeläkeyhtiö Varma. IBM Software Day Tuukka Tusa, Digia

Internetpalvelut. matkalla Mikko Sairanen

PerustA - Perustietovarantojen viitearkkitehtuuri. Liite 3: Tietojärjestelmäarkkitehtuurin. integraatioarkkitehtuuri

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Mikä Apotti- ekosysteemi on miten se luo yhteistyötä eri toimijoiden kanssa

Kuluttajat ja uuden teknologian hyväksyminen. Kuluttajan ja markkinoijan suhde tulevaisuudessa Anu Seisto, VTT

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Ohjattua suorituskykyä.

Mietitkö uuden koneen hankkimista? Seuraavat 60 sekuntia voivat säästää Sinulta pitkän pennin

Palvelumuotoilu ja muotoiluajattelu bisneksessä

Verkostojen rakentaminen ja ylläpito, tiedon elinkaariajattelu projektitoiminnassa. Ilkka Lehtinen, COSS

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

Älykäs verkottuminen ja käyttäjänhallinta. Pekka Töytäri TeliaSonera Finland

Järjestelmäarkkitehtuuri (TK081702)

TVT-opettajien info

Juhani Gurney Teknologiajohtaja. Peppi-projekti ja ESP (Eduix SOA Platform)

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM!

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

naisille, jotka (työ)elämän neuvotteluissa.

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Onnistunut ohjelmistoprojekti

Semanttisen Webin mahdollisuudet yrityksille

13/20: Kierrätys kannattaa koodaamisessakin

APPLICATION MANAGEMENT SERVICES. ecraft

Suuret Hyödyt Suuri IT-palveluiden tehokkuus

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

Transkriptio:

Vielä ei ole myöhäistä lyödä lukkoon kevään 2006 koulutusohjelmaa! Vielä ei ole liian myöhäistä päättää, miten palkita ansioituneet ja lupaavat projektisankarit. Tilauskursseiltamme löytyy varmasti jotakin jokaiselle tietoja viestintätekniikan projektien parissa työskentelevälle. Competent Assessor Course, 5 pv Kurssin kaksi ensimmäistä päivää ovat johdatusta arvioinneissa käytettäviin referenssimalleihin ja voidaan korvata Ohjelmistoprossien parantaminen peruskurssilla (ks. viereinen kurssikuvaus). Lisäksi opitaan käyttämään FiSMA ry:n piirissä kehitettyä GNO- SIS-arviointijärjestelmää helpottamaan käytännön työtä. Julkisen kurssin käynti ja tentin suorittaminen johtavat Provisional FiSMA Assessor -titteliin. Yrityskohtaisilla kursseilla keskitytään yrityksen omien prosessien mukaiseen arviointiin. Kurssin käyminen ja tentin suorittaminen johtavat Internal Process Assessor- titteliin. Seuraava julkinen arvioijakurssi on viikolla 4/2006. Kysy lisätietoja! Ohjelmistoprosessien parantaminen peruskurssi, 2pv Kurssilla opitaan alan tunnetuimpien referenssimallien (SPICE; CMMI; ISO9000) peruskäsitteet ja rakenteet. Prosessien parantamista kuvataan mallien ja niihin sisältyvien kyvykkyys- ja kypsyysasteikkojen avulla. Oleellinen osa kurssia on käytännön harjoittelua pienimuotoisia esimerkkejä hyväksikäyttäen. Kurssilla keskitytään tyypillisen ohjelmistoyrityksen kannalta tyypillisiin prosesseihin, kuten projektinhallinta, tekninen kehitystyö ja jotkut tukiprosessit. Runsaasti aikaa käytetään mallien soveltamiseen erilaisissa tilanteissa, perustuen vankkaan kokemukseen mallien käytöstä suomalaisissa ohjelmistoyrityksissä. Kurssia järjestetään sekä julkisena että yrityskohtaisena. Useita satoja asiantuntijoita on jo koulutettu tällä kurssilla olemaan yrityksensä prosessiaktivisti! Tässä pari esimerkkiä runsaasta kurssitarjottimestamme, josta löytyvät myös 18 muun tilauskurssimme tiedot ja kuvaukset. Lisätietoja: Ilmoittautumiset: sähköpostitse sttf@sttf.fi http://www.sttf.fi/kurssitarjotin.htm Software Technology Transfer Finland Oy Tekniikantie 14, FIN-02150 ESPOO sttf@sttf.fi, www.sttf.fi 09-881 1889

Julkaisija Systeemityöyhdistys Sytyke ry Puhelinvastaus- ja sihteeripalvelu VT Oy Susanna Koskinen Henrikintie 7 A, 00370 Helsinki p. 09 5607 5363 f. 09 5607 5365 sytyke@hennax.fi Päätoimittaja Lauri Laitinen, Nokia lauri.laitinen@nokia.com puh. 050 483 6551 (NRC) Toimitussihteeri T:mi M. Pyhäjärvi Marika Pyhäjärvi PL 119, 00701 Helsinki p. 044 333 2558 marika.pyhajarvi@gmail.com Toimituskunta 3/2005 Simo Vuorinen Kansikuva Simo Vuorinen Seuraava numero 4/2005 Liiketoimintaprosessit, vaatimukset ja tiedonhallinta Toimituskunta: Minna Oksanen Aineisto: ma 31.10.2005 Ilmestyy: to 15.12.2005 Lisätietoja lehdestä http://www.sytyke.org/lehti/ Tilaukset Systeemityölehti sisältyy yhdistyksen Tietotekniikan liiton suositusten mukaiseen yhdistyksen jäsenmaksuun. Vuositilaus 20 Irtonumerot 5 Hyvissä ajoin ennen painatusta tehty vähintään 50 kappaleen lisätilaus 2 /kpl. Tilaukset yhdistyksen toimistosta. Painopaikka T-Print Ahokaari 1-3 05460 Hyvinkää Puh. (019) 475 8500 4 Simo Vuorinen: Terveisiä arkkitehtuuriviidakosta! PÄÄKIRJOITUS TEEMA-ARTIKKELIT 5 Pekka Kähkipuro: Arkkitehtuurit pelastusko tietotekniikkahaasteisiin? 8 Tomas Nyström: Arkkitehtuurit ja koodin laatu 13 Palvelu- vai integraatioarkkitehtuuri? Vai molemmat? 17 Olli Sakari: J2EE vs..net 22 Jari Isokallio: Yritysarkkitehtuuri 25 Simo Vuorinen: Ohjelmistoarkkitehtuurista puoliketterästi 29 Markku Niemi: WorldSkills 2005: taitoa ja tekniikkaa 31 Markku Niemi: Jäsenkysely 2005: mikä meitä nyt kiinnostaa 33 Sytykkeen jäsenillta: Innovoimaa Systeemityöhön! YHDISTYS Painos: 2500 kpl ISSN 1237-0525 12 vuosikerta, no. 3 Ilmoitushinnat Koko Mustavalko 4-väri Takakansi A4-1200 Sisäkannet A4-1000 Sisäsivut 1/1 400 800 Sisäsivut 1/2 200 600 Sisäsivut 1/4 100 - Arvonlisävero 0 % Vakiopaikan vähintään vuodeksi varanneille 20 % alennus.

PÄÄKIRJOITUS Terveisiä arkkitehtuuriviidakosta! Simo Vuorinen, TietoEnator Arkkitehtuuri on melko moninaisesti käytetty ja ymmärretty termi tämän päivän informaatioteknologiassa, ja tässä termiviidakossa on helppo eksyä tai tulla Ison Pahan Arkkitehtuurihirvion syömäksi. Joitakin vuosia sitten keräsimme yksiin kansiin kokemuksemme yritysarkkitehtuuritason projekteista ja formalisoimme eri yritysarkkitehtuurimenelmistä käyttämämme ja muokkaamamme tekniikat, menettelyt ja mallit omaksi yritys- tai kokonaisarkkitehtuurimenetelmäksemme. Suodattaessamme materiaalia tuskastuimme arkkitehtuuriloppuisten termien tulvaan. Kun olimme suodattaneet listasta pahimmat hype-termit pois, oli jäljellä vielä toistakymmentä kohtalaisen yleisesti käytettyä arkkitehtuuritermiä. Usean työstökierroksen jälkeen aloimme saavuttaa tuloksia. Päädyimme neljään perustermiin: liiketoiminta-arkkitehtuuriin, informaatioarkkitehtuuriin, järjestelmäarkkitehtuuriin ja teknologia-arkkitehtuuriin. Tämän ei pitäisi hämmästyttää ketään, joka tekee työtään yritys- - tai kotoisemmin - kokonaisarkkitehtuurin alueella. Me olimme kuitenkin kohtalaisen iloisia ja helpottuneitakin: olimme selvinneet arkkitehtuurilabyrintista ja löytäneet tien kotiin. Ohjelmistoarkkitehtuurimaailma on ollut olemassa jo huomattavasti pidemmän aikaa, mutta sielläkin tilanne on melkoisen samantapainen. Termejä on paljon, yhdelle termille on monta toisistaan poikkeavaa määritelmää, ja menetelmiä arkkitehtuurin suunnitteluun on useita. Mitä arkkitehtuuri tarkoittaa? Mitä hyötyä siitä on? Millainen on hyvä arkkitehtuuri? Mitä on integraatioarkkitehtuuri? Entä SOA? Mikä siinä on uutta, vai onko se vain samaa vanhaa uudelleen lämmitettynä? Näitä kysymyksiä on hyvä aina sopivin väliajoin kysyä itseltään, ja tarkistaa vieläkö vastaukset löytyvät kuin apteekin hyllyltä. Uudet tekniikat mahdollistavat uusien liiketoiminta-ajatusten hyödyntämisen, ja uudet liiketoiminnan ideat luovat tekniikalle kehittymispohjaa. On vain tiedettävä, mitä tekniikkaa käyttää omassa toiminnassaan. Sehän on kuitenkin helppoa tietotekniikan ammattilaiselle vai onko sittenkään? 4 Systeemityö 3/2005

TEEMA-ARTIKKELI Arkkitehtuurit pelastusko tietotekniikkahaasteisiin? Pekka Kähkipuro, SysOpen Digia Plc Arkkitehtuurit ovat nousseet keskeiseen rooliin sekä tietohallinto-organisaatioiden työlistalla että tietojärjestelmien toteutushankkeissa. Arkkitehtuurityöskentelyyn turvaudutaan tyypillisesti silloin, kun tarvitaan apuvälineitä monimutkaisten ja vaikeasti hallittavien teknisten kokonaisuuksien haltuunottoon. Tämä voi tapahtua esimerkiksi laajan järjestelmähankkeen käynnistyessä tai merkittävän organisaatiomuutoksen yhteydessä. Arkkitehtuurityöskentely ei kuitenkaan voi onnistua, jos arkkitehtuurin merkitystä ei hahmoteta osana organisaation tietotekniikan johtamisprosessia. Arkkitehtuurihanke voi jäädä irralliseksi harjoitukseksi, jonka lopputulokset unohtuvat levyn nurkalle. Artikkelissa käsitellään arkkitehtuurin haasteita liiketoiminnan uusien vaatimusten äärellä ja esitetään johdetun arkkitehtuurin malli, joka hyvin toteutettuna helpottaa tietotekniikkahaasteiden ratkaisemista. Uudet vaatimukset tietotekniikalle Tietojärjestelmät ovat organisaatioiden toiminnan kannalta yhä tärkeämpiä usein jopa niiden elinehto ja tämän myötä tietotekniikan johtaminen on muuttunut. Yhä useammin tietotekniikkahankkeen johtajina toimivat liiketoiminnan edustajat, ja tämä näkyy sekä tavoitteissa että toimintatavassa. Tekniset tavoitteet eivät enää ole keskeisessä roolissa, vaan hankkeista etsitään ennen kaikkea kustannus-, kilpailu- tai tehokkuushyötyjä. Liiketoimintavetoisuuden myötä myös keskeiset laatumittarit ovat kääntyneet liiketoiminnan kielelle. Tyypillisiä uuden aikakauden vaatimuksia tietotekniikkahankkeille ovat time-to-market, joustavuus, integroitavuus ja monikanavaisuus. Time-to-market. Hankkeiden on tuotettava nopeasti näkyviä tuloksia yhä jatkuvasti muuttuvassa liiketoimintaympäristössä. Perinteiset usean vuoden projektit ovat liian pitkiä, joten hankkeet pyritään jakamaan pienempiin osakokonaisuuksiin, joista kukin tuottaa liiketoiminnan kannalta käyttökelpoisia tuloksia keskimäärin puolessa vuodessa. Arkkitehtuurin on tuettava nopeaa pienten kokonaisuuksien rakentamista ilman vaaraa kokonaisuuden hajoamisesta. Joustavuus. Liiketoiminnan vaatimukset elävät jatkuvasti, ja tieto- Systeemityö 3/2005 5

tekniikkaratkaisujen pitää muuttua hyvinkin nopeasti niiden valmistumisen jälkeen. Järjestelmät rakennetaan muuttuviksi ( build to change ) eikä entiseen tapaan pysyviksi ( build to last ). Arkkitehtuurilta edellytetään joustavuutta, vaikka samalla tavoitteena on vakaan pohjan säilyminen. Liitettävyys. Uusien tietojärjestelmäratkaisujen pitää tyypillisesti integroitua saumattomasti olemassa olevien hyvinkin perinteisillä tekniikoilla toteutettujen järjestelmien kanssa, sillä näiden toteuttaminen uusilla välineillä ei ole liiketoiminnan kannalta perusteltua. Myös liiketoiminnan radikaalit uudelleenjärjestelyt fuusiot, divestoinnit, ulkoistukset ja allianssit tuovat ennakoimattomia ja usein merkittäviä integrointitarpeita. Arkkitehtuuri on päätöksiä Yksikäsitteistä ja moneen käyttöön sopivaa arkkitehtuurin määritelmää on vaikea löytää. Kirjallisuudessa ja käytännön hankkeissa käytetään eri tarkoitukseen kohdennettuja määritelmiä arkkitehtuurista ja tällöin käyttötarkoitus antaa selkeän tavoitteen ja rakenteen määritelmälle. Liiketoimintanäkök ulmasta arkkitehtuuri on kuitenkin helppo määritellä: Tietotekniikka-arkkitehtuuri koostuu organisaation toiminnan kannalta keskeisistä tietoteknisistä päätöksistä. tarjoaa keinoja ratkaisujen kommunikointiin tietotekniikkahankkeiden välillä, sisältää eväitä arkkitehtuuripäätösten soveltamiseen yksittäisissä hankkeissa, sisältää eväitä jatkossa tehtävien arkkitehtuuripäätösten tekemiseen. Parhaimmillaan tietotekniikkaarkkitehtuuria ohjaa prosessi, jossa pysyvästi tarkkaillaan liiketoiminnan ja teknologian muutosvoimia sekä tehdään näiden pohjalta tarkoituksenmukaisia päätöksiä. Arkkitehtuuri antaa keinoja päätösten toteuttamiseen ja seurantaan. Monikanavaisuus. Web-käytön vakiintuminen osaksi normaalia liiketoimintaa, itsepalvelun korostuminen, mobiilipäätelaitteiden huima kehitys sekä samojen palveluiden tarjoaminen erilaisten liiketoimintamallien kautta ovat johtaneet siihen, että lähes kaikki tietojärjestelmähankkeet ovat lähtökohtaisesti monikanavahankkeita. Yhdessä nämä vaatimukset ovat teknisesti erittäin vaativia ja osittain jopa keskenään ristiriitaisia. Perinteisellä yksittäisissä projekteissa tapahtuvalla kehitystyöllä näitä vaatimuksia on vaikea saavuttaa. Tilalle tarvitaan johdonmukainen ja kokonaisuutta vaaliva arkkitehtuurinäkemys. Usein nämä tietotekniset päätökset ovat myös oleellinen osa organisaation tietotekniikkastrategiaa. Tyypillisesti tietotekniikka-arkkitehtuuriin sisällytetään myös elementtejä, joilla varmistetaan arkkitehtuuripäätösten toteutuminen. Tällöin arkkitehtuuri antaa myös keinoja päätösten toteuttamiseen ja seurantaan, sisältää päätösten soveltamisohjeita toteutushankkeille, sisältää päätösten soveltamisohjeita järjestelmien hankintatyölle, tarjoaa keinoja ratkaisujen kommunikointiin liiketoiminnan kanssa, Uhkana piiloarkkitehtuuri Jos organisaatiossa ei ole johdettua arkkitehtuuriprosessia, keskeiset tietotekniset päätökset syntyvät tapahtumaohjatusti projektien oheistuotteena. Suuriakin päätöksiä tehdään tällöin yksittäisten projektien rajoitetulla näkökulmalla kulloisenkin ongelmatilanteen ohjaamana. Tuloksena voi pahimmillaan olla piiloarkkitehtuuri, jossa tietotekniset valinnat edelleen syntyvät, mutta laajatkin päätökset tehdään projektiongelmien ratkaisemiseksi, päätöksen jäävät dokumentoimatta tai ne dokumentoidaan vain projektitasolla, 6 Systeemityö 3/2005

arkkitehtuurilla ei ole organisaatiotason omistajaa, valinnat ovat henkilösidonnaisia eivätkä kuvasta koko organisaation tavoitteita, eri projekteissa tehdyt päätökset ovat keskenään ristiriitaisia. Tietohallintojohto voi toki osallistua päätöksentekoon ja hillitä piiloarkkitehtuurin haittavaikutuksia, mutta tämä edellyttää henkilökohtaista panosta tietohallinnon projekteissa ja vaatii käytännössä merkittävää henkilötason sitoutumista ja ajankäyttöä. Pahimmillaan jos projektipäälliköt ovat riittävän innovatiivisia ja rinnakkaisia hankkeita on menossa riittävän monta piiloarkkitehtuuriin pohjautuva malli johtaa hallitsemattomaan kokonaisuuteen, jolle tietohallintojohto ei mahda mitään. Tavoitteena johdettu arkkitehtuuri Puhdasta piiloarkkitehtuuria ei varmastikaan löydy mistään organisaatiosta, mutta sen oireita on todennäköisesti havaittavissa monellakin taholla. Tietotekniikkaarkkitehtuurin aito ja liiketoiminnan kannalta tuloksia tuova haltuunotto onkin asetettu tavoitteeksi monessa organisaatiossa. Tietotekniikan päätöksentekoprosessin haltuunotto johtaa parhaimmillaan piiloarkkitehtuurin vastakohtaan johdettuun arkkitehtuuriin ( managed architecture ). Tällöin kaikki merkittävät päätökset syntyvät tietotekniikkajohdon valintojen kautta, arkkitehtuurilla on nimetty omistaja tai omistajien joukko, päätökset dokumentoidaan keskitetysti kaikkien käytettäviksi, päätöksenteko on henkilöriippumatonta, tavoitteena on kokonaisnäkökulma ja tietotekniikan kokonaisvaltainen ohjaaminen, päätökset ovat yleensä keskenään yhdenmukaisia. Johdetun arkkitehtuurin myötä tietotekniikkajohto tekee keskeiset päätökset ennakoivasti ja niitä tyypillisesti vain tarkennetaan tai sovelletaan yksittäisissä projekteissa. Kysymys on oikeastaan tietotekniikkavalintoja koskevan päätöksentekoprosessin selkeästä määrittelystä, prosessin noudattamisesta, ja sen tulosten johdonmukaisesta jalkauttamisesta organisaatioon. Johdettu arkkitehtuuri apuna haasteiden kohtaamiseen Johdettu arkkitehtuuri ei sellaisenaan tarjoa vastauksia artikkelin alussa esitettyihin liiketoimintalähtöisen tietotekniikan haasteisiin. Sen sijaan johdettu arkkitehtuuri eli hyvin toimiva tekninen päätöksentekoprosessi antaa hyvän viitekehyksen ja toimintamallin, jonka myötä voidaan tietohallinnossa painottaa liiketoiminnan näkökulmasta keskeisiä tavoitteita. Tyypillisiä johdetun arkkitehtuurin piirteitä ovat välineiden rajallinen määrä, sillä näin saadaan yhdenmukaisuutta ja tuottavuutta, hyvä tuntemus tekniikan mahdollisuuksista, vaikka näitä ei aina käytetäkään, vahva integraatio-osaaminen, jotta tehtyjä ratkaisuja voidaan käyttää hyväksi, selkeä rakenne kerroksiin ja moduuleihin, joilla hoidetaan erilaiset elinkaarivaatimukset, valmiskomponenttien käyttö, jolloin liiketoiminnan hyödyt saadaan toteutettua nopeammin, rauhallinen mutta määrämuotoinen päätöksenteko, jossa liiketoiminta aina myös ymmärtää tekemänsä valinnat, vahva kommunikaatiokulttuuri, joka tukee kaikkien osapuolten sitoutumista yhteisiin arkkitehtuuripäätöksiin. Johdettu arkkitehtuuri ei olekaan ihmelääke tietotekniikan uusien haasteiden ratkaisemiseen, mutta se antaa erinomaisen pohjan näiden haasteiden kohtaamiseen. Pekka Kähkipuro Senior Vice President Business Development SysOpen Digia Plc Hiomotie 19, FIN-00380 Helsinki Finland Email: pekka.kahkipuro@sysopen. fi Tel: +358 424 20201 GSM: +358 40 759 0982 Systeemityö 3/2005 7

TEEMA-ARTIKKELI Arkkitehtuurit ja koodin laatu Tomas Nyström, Accenture Arkkitehtuuri ja koodin laatu ovat käsitteitä joista harvemmin löytyy kaksi täysin samaa mieltä olevaa henkilöä. Meille on jokaiselle muodostunut oma käsitys joka perustuu sekoitukseen käytännön kokemusta ja teoriaa. Käytännön kokemus tulee yleensä kantapään kautta projekteissa ja teoreettinen näkemys taas eri yritysten omista malleista ja terminologiasta. Varsinkin sana arkkitehtuuri on tietotekniikan piirissä kokenut aikamoisen inflaation viime aikoina kaikki haluavat yleensä olla arkkitehtejä, kaikkeen on olemassa arkkitehtuuri ja jos jokin kilke ei omaa hyvää arkkitehtuuria ei se luonnollisesti voi olla mistään kotoisin. Koodin laadusta on (ainakin subjektiivisella tasolla) yleensä myös aika erilaisia näkemyksiä, riippuen hieman siitä istuuko ostajan vai toimittajan riveissä. Tässä artikkelissa on tarkoitus käsitellä käytännönläheisesti sitä miten eri arkkitehtuurit vaikuttavat koodin laatuun, eli ottaa härkää sarvista kiinni, katsoa sitä tiukasti silmiin ja katsoa mitä siitä seuraa. Ensin määritellään arkkitehtuuri ja koodin laatu erikseen ja sitten katsotaan yhtymäkohtaa. Arkkitehtuureille määritelmä Meille kaikille on ajan myötä muodostunut korvien väliin tietty kehikko, jota käytämme kaiken sisään tulevan syötteen analysointiin. Tämä kehikko on meidän henkilökohtainen tapamme luokitella ja käsitellä informaatiota. Arkkitehtuuri on pitkälti sama asia; arkkitehtuurin avulla pilkotaan isompi käsitealue pienempiin osiin ja mietitään osien välille rajapinnat tai suhteet. Käytännön elämästä löytyvät arkkitehtuurit ovat, tilanteesta ja tekijöidensä taustoista johtuen, harvemmin yhdenmittaisia. Mitään kaikkien arkkitehtuurien äitiä ei ole olemassa, ainoastaan kirjava joukko eri arkkitehtuureja jossa hyvin voidaan kahdella samannimisellä arkkitehtuurilla tarkoittaa kahta aivan eri asiaa. Jos nopeasti vilkaisee alan lehdissä käytett ävää terminologiaa (tai sitten vaik kapa työpaikkailmoituksia) niin sieltä löytyy järjestelmä-, ohjelmisto-, integraatio-, sovellus-, infrastruktuuri-, laitteisto-, verkko-, palvelin-, portaali-, Java EE-,.NET-, tietoturva-, SOA-, kehitys-, ylläpito-, operointi-, suorituskyky-, jne. arkkitehtejä tai -arkkitehtuureja. Tästä joukosta on aika vaikea löytää/etsiä punaista lankaa koodin laadun suhteen. On siis tarpeen ottaa käyttöön hieman matkan varrella opittua ja hyväksi todettua teoriaa, eli Accenturella yleisesti käytössä oleva tapa luokitella ja käsitellä arkkitehtuureja (katso kuva 1). Idea on yksinkertaisesti ottaa jokaisesta tietojärjestelmästä löytyvät korkean tason 8 Systeemityö 3/2005

Kehitys- ja operointiarkkitehtuurin väliin tulee itse sovellus ja kaikki tarvittava jotta sovellus teknisesti toimisi. Sovellus itsessään ei ole mikään arkkitehtuuri mutta sitä tukemaan on oltava sovellusarkkitehtuuri. Erona näissä on se että sovellus on vain ja ainoastaan puhdasta ajonaikaista liiketoimintalogiikkaa kun taas sovellusarkkitehtuuri on määritelmä siitä miten sovelluslogiikka on pilkottu osiin ja mitkä osien suhteet ovat. Sovellusarkkitehtuuriin voi myös laskea sellaiset sovelluksen osat jotka ovat sovelluksen eri osille yhtenäisiä ja jotka luodaan keskitetysti uudelleenkäytön varmistamiseksi. Sovellusta ja sovellusarkkitehtuuria tukemaan on oltava ajonaikainen arkkitehtuuri. Ajonaikaiseen arkkitehtuuriin kuuluu tarvittava teknologiapino, alkaen verkosta, laitteistosta jne päätyen teknisiin ohjelmistopalveluihin (kuten esimerkiksi Java EE palvelut, kirjastot jne) jotka ovat sovellusriippumattomia mutta joita ilman itse sovellus ja sovellusarkkitehtuuri eivät toimi. Kuva 1: Perusarkkitehtuurit joiden avulla voidaan määrittää mikä tahansa sovellus kokonaisuudet sekä tekniseltä puolelta että toteutusprojektin elinkaaren puolelta ja nimetä ne mahdollisimman johdonmukaisesti. Näiden peruskomponenttien päälle on sitten helppo määritellä kaikki muu. Tämän artikkelin kannalta sovelluskehityksen elinkaaren aloittaa kehitysvaihe jossa järjestelmä toteutetaan. Tätä vaihetta tukemaan on oltava kehitysarkkitehtuuri. Kehitysarkkitehtuuri kattaa kaiken toteutusvaiheen työn tekemiselle vaadittavat edellytykset laitteistosta, kehitysvälineistä, versionhallinnasta jne., aina työkaluohjeistukseen ja metodologiaan saakka. Toteutusprojektin elinkaaren toisessa päässä on vaihe jossa sovellus on tuotannossa (tai esimerkiksi jakelussa jos kyseessä ei suoraan ole itsenäinen sovellus) ja tarve on ylläpitää, tukea ja kenties varmistaa että sovellus toimii tuotannossa. Tätä kokonaisuutta kutsutaan operointiarkkitehtuuriksi. Operointi siis tässä tarkoittaa kaikkea sitä minkä on toimittava jotta sovellus toimii asetettujen palvelutasojen mukaan. Kehitys-, sovellus-, ajonaikainen ja operointiarkkitehtuuri yhdessä yksiselitteisesti määrittelevät minkä tahansa korkeamman tason arkkitehtuurin. Esimerkiksi integraatioarkkitehtuuri on näiden instanssi jossa kehitysarkkitehtuuri määrittää työvälineet ja ohjeistuksen integraation toteutukseen, ajonaikainen arkkitehtuuri on tarpeista riippuen esimerkiksi jono- tai EAI-paketti ja operointiarkkitehtuuri on sitten näiden ylläpito ja tuki. Sovellusarkkitehtuuri integraatioarkkitehtuurin tapauksessa on esimerkiksi integraation ohjeistus niin että yhtenäinen tietomalli tai palvelupohjainen rajapintaratkaisu toteutuu. Räätäliprojekteissa arkkitehtuureilla on keskeinen rooli kun taas pakettiprojekteissa suuri osa arkkitehtuurivalinnoista on ennalta määriteltyjä. Esimerkiksi SAP moduuliprojektissa kaikki tarvittavat työvälineet ovat osa SAP:in tarjontaa. Kuvassa 2 on vielä kuvattu näiden perusarkkitehtuurien suhteet. Huomionarvoista on se että kehitysarkkitehtuurin pitää tarvittaessa myös pystyä luomaan ja tukemaan ajonaikaisen arkkitehtuurin osia. Koodin laatuun vaikuttavat tekijät Koodin laadulle kuulee monia määritelmiä kuten virheettömyys, Systeemityö 3/2005 9

Kuva 2: Perusarkkitehtuurien suhteet tehokkuus, riittävä kommenttien määrä, selkeys jne. Kaikki nämä ovat oikeassa sekä samalla väärässä, kaikki riippuu siitä mitä ollaan tekemässä. Koodin virheettömyys ei juuri auta ellei kehitystiimille ole pystytty kommunikoimaan kunnolla mitä sovelluksen tulisi tehdä. Ainoa toimiva tapa kuvata vaadittava koodin laatu (ja siis samalla sovelluksen laatu) on vaatimusten kautta. Vaatimukset voidaan karkeasti ottaen jakaa kahteen osioon; toiminnallisiin ja ei-toiminnallisiin vaatimuksiin. Toiminnalliset vaatimukset kuvaavat sovelluksen toiminnan ja ei-toiminnalliset sille annetut tekniset vaatimukset kuten esimerkiksi suorituskyky (vasteaika, käyttäjien määrä jne tietyllä laitteistolla) tai yhteensopivuus jonkun olemassa olevan teknologian kanssa. Laadukas koodi / sovellus on siis sellainen joka täyttää toiminnalliset ja ei-toiminnalliset vaatimukset. Saavutetaanko asetetut vaatimukset riippuu tietysti vaatimusten tasosta, mutta myös muista asioista. Karkeasti ottaen lopulliseen laatuun projektin kannalta vaikuttavat (katso kuva 3): a) projektihallinnan alueen asiat b) yksilön osaaminen c) vaatimukset sekä loppukäyttäjien osallistuminen ja d) sovelluksen rakenne, sovelluskehityksen abstraktiotaso sekä kehitysympäristön tehokkuus Näistä alueista pystytään suoraan arkkitehtuurin avulla vaikuttamaan alueeseen d; tosin on hyvä pitää mielessä että mikäli alueen d tehtävät / toiminnot helpottuvat on niillä vuorostaan painetta helpottava vaikutus muille alueille. Sovelluksen rakenteen vaikutus koodin laatuun Liiketoiminta miettii vaatimuksia mutta ei yleensä osaa ottaa kantaa siihen miten ne tulisi toteuttaa, teknologiaihminen taas tietää mikä on mahdollista ja mikä ei mutta harvemmin ymmärtää liiketoimintaa, sovelluksen rakenne määräytyy molempien pohjalta ja siksi sovellusarkkitehtuuri, alue tekniikan ja liiketoiminnan välissä, on erittäin kriittinen lopputuloksen eli laadun - kannalta. Ääripäässä sovelluksella ei ole rakennetta. Sovellus on tällöin monoliitti jossa ei ole minkäänlaisia sisäisiä rajapintoja. Kukaan ei halua monoliittia ja niillä joilla sellaisia on pyrkivät niistä eroon. Modulaarisuus on avainsana ja sovelluksen rakenne määrittää modulaarisuuden tason. Esimerkkejä modulaarisuudesta on se että sovellusarkkitehtuuri on identifioinut eri liiketoimintavaatimusten pohjalta sovelluksen toiminnalliset riippuvuussuhteet ja projekti on jaettu tiimeihin näiden pohjalta. Tällä tavoin eri tiimien väliset riippuvuudet ovat minimoitu ja teknisesti tiimit voivat edetä omaa tahtiaan muista riippumatta, ääripäässä tämä tarkoittaa jopa sitä että sovelluksen eri osia voidaan tuotannossa päivittää muista riippumatta. Projektiorganisaatio vastaa sovellusarkkitehtuurista jos projekti on itsenäinen, muuten osavastuu kuulu hankeorganisaatiolle. Yksittäinen kehittäjä kokee modulaarisuuden yksinkertaistavana tekijänä joka auttaa häntä keskittymään omaan alueeseensa ilman että muilta alueilta tulee liikaa häiriötekijöitä tai monimutkaisuutta lisääviä vaatimuksia. Sovelluksen rakenne on hyvin dokumentoituna myös äärimmäisen hyvä kommunikoinnin työväline niin kehittäjien kuin kehittäjien ja liiketoiminnan välillä. Sovelluksen rakenne vaikuttaa suuresti myös ylläpitovaiheeseen, erityisesti sen kustannuksiin. 10 Systeemityö 3/2005

Kehitysympäristön vaikutus koodin laatuun Sovelluskehityksessä kehitysympäristön tehokkuus ja käytettävyys on huomattavassa asemassa projektin ajankäytön suhteen. Varsinkin Java-sovelluskehityksessä kehitysympäristöjen tehokkuus vaihtelee, sovelluskehityssyklistä huomattavan suuri osa voi esimerkiksi kulua sovelluksen kääntämiseen ja asentamiseen sovelluspalvelimelle. Kuva 3: Sovellusprojektin kannalta keskeiset seikat jotka yleensä vaikuttavat koodin laatuun. Kehityksen abstraktiotason vaikutus koodin laatuun Kehityksen abstraktio nousee yleensä aina kulloinkin muodissa olevan ohjelmointikielien iän myötä. Tyypillisesti ensin tulevat kirjastot ja uudelleenkäytettävät koodinpätkät, sitten erilaiset patternit joiden avulla kehittäjän vapausasteita rajataan. Tyypillistä on myös että jossain vaiheessa tulee kehittimiä jotka rupeavat abstrahoimaan alla olevaa ja generoimaan koodia mallien pohjalta. Kehittäjän kannalta kaikki tämä on ajonaikaista arkkitehtuuria, mitä korkeammalle tasolle ajonaikainen arkkitehtuuri on projektissa saatu, sen yksinkertaisempaa sovelluskehitys on. Tästä seuraa että tarve kirjoittaa koodia vähenee ja kehittäjällä on korkeampi tuottavuus suhteessa käytettyihin tunteihin. Esimerkki tästä evoluutiosta on lokiin kirjoittaminen: ensin Javapuolella tuli itse tehdä kaikki, sitten tuli Log4J ja nyt lokitus onkin jo osa standardia. Tänä päivänä.net ja Java ovat ylivoimaisesti suosituimmat perustat joille ajonaikaiset arkkitehtuurit rakennetaan - rakennetaan koska vieläkään ne eivät kata kaikkia tarpeita. Mikäli projekti itse pyrkii luomaan oman ajonaikaisen arkkitehtuurin kasvaa riski laadullisille tai aikataulullisille vaikeuksille. Onkin yleensä järkevää tarjota projektille valmiina ajonaikainen arkkitehtuuri toisen (osa-)projektin toteuttamana. Tehokas kehitysympäristö kattaa itse koodin tekemisen lisäksi kaikki kehitykseen vaadittavat osa-alueet, eli koko kehitysarkkitehtuurin. Kun ajonaikaisen arkkitehtuurin puolella koodin määrää vähennetään ja laatua nostetaan kehityksen abstraktiotasoa nostamalla niin kehitysarkkitehtuuri vastaavasti nostaa koodin laatua varmistamalla että tehdään oikeita asioita. Konkreettisesti kehitysympäristö pitää olla sellainen että vaatimukset saadaan dokumentoitua, prosessi ja työkalusetti tukevat tehokasta ja jäljitettävää sovellusdesignin luomista vaatimusten pohjalta, vaatimukset ja koodi pysyvät samalla tasolla (koska kyllähän ne vaatimukset kuitenkin muuttuvat). Testitapausten luonti on oltava sekä kattavaa että ylläpidettävää (automatisoitu) ja testitapaukset on oltava linkattuja vaatimuksiin. Tämä ei ehkä kuulosta vaikealta - mutta monesti suutarin lapsilla ei ole kenkiä. Suoraan itse koodia tarkkailevia osia kehitysarkkitehtuurissa ovat automaattisesti ajettavat yksikkötestit, testien kattavuuden seuraa- Systeemityö 3/2005 11

minen, koodin laadun semanttinen analyysi jne. Integroimalla nämä kyvykkyydet osaksi kehitysprosessia luodaan kyky löytää potentiaalisia laadullisia ongelmakohtia aikaisemmin kehitysvaiheessa. Mitä aikaisemmin laadullinen ongelma löytyy, sen halvempaa sen korjaaminen on. Positiivisen vaikutuksen uudelleenkäyttö Kehitys- ja ajonaikainen arkkitehtuuri ovat tehokkaimmillaan silloin kun ne ovat valmiiksi olemassa ja niitä käytetään muissakin projekteissa tai hankkeissa. Tämä on tietyllä tavalla arkkitehtuurien uudelleenkäyttöä ja samalla syy miksi markkinoilla onkin aika paljon puolivalmisteita eli portaali-, sisällönhallinta- jne. tuotteita joiden avulla ajonaikaisen arkkitehtuurin rakentaminen on kustannustehokkaampaa, nopeampaa ja riskittömämpää. Kaikkein tehokkaimmat IT-organisaatiot tuottavat arkkitehtuurikyvykkyyden keskitetysti; näin syntyy kustannustehokas sekä vakaa pohja jolle kukin projekti tai hanke voi rakentua. On selvää että kaikilla projekteilla on omia erityistarpeitaan ja siksi tärkeä ominaispiirre keskitetyssä kyvykkyydessä on jatkuva kehitys ja ylläpito projektien tarpeiden mukaan. Arkkitehtuurien kehityssuunnat Vaikka sana arkkitehtuuri onkin yleisesti käytössä, sen takaa löytyy harvemmin holistinen lähestymistapa, joka kattaa kehitys-, sovellus-, ajonaikaisen sekä operointiarkkitehtuurin. Edistymistä on tosin selvästi havaittavissa kun yritykset ovat siirtymässä kustannustehokkuudesta tuottavuuden ja laadun optimointiin (mikä sitten oikeasti johtaa kustannustehokkuuteen). Kehitysarkkitehtuuri on alue jossa selvästi on suurin ero nykytilan ja tehokkaan ja optimoidun sovelluskehityksen välillä. Markkinoilla on olemassa välineet joiden pohjalle ratkaisun voi perustaa, työsarkaa onkin enemmän metodologian sekä tuoteohjeistuksen puolella. Ajonaikainen arkkitehtuuri on alue jossa on jo pitkään rakennettu projektien tarpeisiin yksittäisratkaisuja. Jatkossakin jokaisella projektilla on edelleenkin omat tarpeensa mutta nyt kun sekä Java että.net tarjoavat hyvän perustan ollaan siirtymässä arvoketjussa ylöspäin mallipohjaiseen sovelluskehitykseen. Mallipohjaisessa sovelluskehityksessä koodi generoidaan osin automaattisesti esimerkiksi UML-pohjaisista malleista. Mallipohjaisuuden lisäksi selvä trendi on myös puolivalmistepinojen esiinmarssi. Esimerkiksi BEA Aqualogic, SAP NetWeaver sekä Windows Server System siirtävät ajonaikaisen arkkitehtuurin uudelle tasolle jossa valmiita kehikkoja ja palveluita on sovelluskehityksen tarpeisiin yhä enemmän. Yhteenveto Arkkitehtuureilla ja koodin laadulla on selvästi positiivinen yhteys. Mustaa valkoisella on sitten vaikeampi tuottaa koska harvemmin sama projekti tehdään sekä arkkitehtuurilla että ilman ihan vain vertailun vuoksi. Projektin koolla on huomattava vaikutus tilanteeseen. Pienempi projekti ilman kunnon arkkitehtuuria selviää varmaankin hyvin maaliin hieman verenmaku suussa, mikäli projekti on muuten hoidettu mallikkaasti, tosin ylläpitovaiheessa tulee todennäköisesti ongelmia. Suurempi projekti taas todennäköisesti kaatuu arkkitehtuurin puutteeseen jo projektin aikana vaikka muuten asiat olisivat kunnossa. Hyvin toimiva ITorganisaatio tuottaa projektien käyttöön tehokkaan ja toimivan kehitys- ja ajonaikaisen arkkitehtuurin jolloin jokaisen projektin ei erikseen tarvitse keksiä pyörää uudelleen. Projektipäällikön tehtävänä on varmistaa että sovellusarkkitehtuurin eteen tehdään töitä ja lopputulos on ymmärrettävä ja ylläpidettävä kokonaisuus. On kuitenkin hyvä muistaa että koodin laatuun vaikuttaa huomattavasti enemmän vaatimusten taso ja projektin realistinen alkuasetelma. Jos projekti onnistuu ja laatu on hyvää voi hyvin olla että lopputulos on kuitenkin nolla jos muutoshallintaa ja tuotantoon ottoa ei ole hoidettu kunnolla. Tomas Nyström Johtava konsultti, Accenture tomas.nystrom@accenture.com 12 Systeemityö 3/2005

TEEMA-ARTIKKELI Palvelu- vai integraatioarkki tehtuuri? Vai molemmat? Petteri Manninen, SysOpen Artikkelissa pohditaan integraatiorkkitehtuurien ja palveluarkkitehtuurien yhteyttä toisiinsa sekä mahdollisuuksia hyödyntää integraatioarkkitehtuuria palveluarkkitehtuuria rakennettaessa. Mitä ovat palveluarkkitehtuuri ja integraatioarkkitehtuuri Palveluarkkitehtuuri (Service- Oriented Architecture, SOA) on hajautetun tietojenkäsittelyn ja integraation arkkitehtuurimalli, jonka keskeinen ajatus on tarjota korkean tason liiketoimintapalveluja helposti kutsuttavan rajapinnan kautta. Tavoitteena on muodostaa uusia palveluja koostamalla ne olemassa olevista palveluista ja siten reagoida nopeammin muuttuviin liiketoiminnan tarpeisiin. Viime aikoina suosituin malli on ollut Web Services + UDDIhakemisto, joiden avulla palvelut on kutsuttavissa välineriippumattomasti olemassa olevia standardeja käyttäen. Vaikka palveluarkkitehtuurimalli on ollut olemassa kauan (esim. pankkien keskuskonepohjaiset transaktioympäristöt), sen suosio on kasvanut vasta nyt, kun käytettävät välineet on standardoitu. Aiemmat hajautetun tietojenkäsittelyn mallit, kuten DCE ja CORBA, eivät ole saavuttaneet vastaavaa suosiota lähinnä teknologiavetoisuutensa ja toimittajakohtaisten ratkaisujensa takia. Integraatioarkkitehtuuri on yhtenäistetty tapa liittää sovelluksia, niiden osia ja tietoja toisiinsa. Integraatiolla tarkoitetaan sovelluksille tarjottavaa yhtenäistä tapaa käsitellä jo olemassa olevia palveluja ja tietoa. Integraatioark kitehtuuriprojektien lopputuloksena syntyy kuitenkin malli, jonka avulla voidaan koostaa uusia palveluja vanhoja yhdistämällä. Lisäksi kokonaan uusienkin palvelujen luominen helpottuu saman mallin avulla. Puhtaalta pöydältä lähdettäessä palveluarkkitehtuuri on helppo toteuttaa. Sen sijaan olemassa olevan sovelluskannan muokkaaminen palveluja tarjoaviksi komponenteiksi on vaativa mutta välttämätön prosessi, jotta palveluarkkitehtuurin rakentamisessa päästään edes alkuun. Palveluarkkitehtuurista puhuttaessa usein korostetaan pelkästään palvelurajapintana toimivaa Web Services -toteutusta, joka kuitenkin on vain fasaadi todellisille palveluille ja siten yksinkertaisin osuus palvelun rakentamisessa. Vaativin osuus, todellisen palvelun suunnittelu ja toteutus jätetään lukijalle. Systeemityö 3/2005 13

Tavoitteet Molempien arkkitehtuurimallien keskeinen tavoite on joustavuus: palvelujen yhtenäinen ja helppo kutsutapa sekä mahdollisuus reagoida nopeasti liiketoiminnan muutoksiin. Palveluarkkitehtuurin teemoja ovat: keskeisiä korkean abstraktiotason sovelluspalvelut palvelujen löyhät liitokset sovellusten ja palvelujen komponentointi komponenttien uudelleenkäytettävyys palvelujen korkeampi käytettävyys palvelujen parempi hallittavuus nopea reagointi liiketoiminnan muutoksiin Vaikka palveluarkkitehtuurin tavoitteet ovat luonteeltaan yleisiä ja sopisivat minkä tahansa arkkitehtuurin tavoitteiksi, on huomattava, että painopistealueena ei ole ajonaikainen suorituskyky vaan toteutuksen helppous. Huonompaa suorituskykyä voidaan kompensoida palvelujen korkealla tasolla, jolloin kutsujen määrä jää pieneksi. Integraatioarkkitehtuurin keskeisiä teemoja ovat: monimutkaisuuden vähentäminen rajapintojen yhtenäistämisen kautta hallittavuus (keskitetty valvonta ja hallinta) korkea käytettävyys skaalautuvuus turvallisuus (yksittäisten palvelujen tasolla keskitetysti hallittuna) tiedon eheys ratkaisujen pitkät elinkaaret, komponenttien elinkaaret eivät ole sidottuja toisiinsa toteutus- ja tuotantokustannusten vähentäminen pitkällä aikajänteellä Integraatioarkkitehtuurin teemat ja tavoitteet ovat luonteeltaan teknisempiä ja pyrkivät kriittisille järjestelmille tyypilliseen toimintavarmuuteen. Integraatioarkkite htuurissa peruspalveluista koostetaan korkeamman tason palveluja käyttämällä integraatiotuotteiden workflow-ominaisuuksia. Rakenne Palvelu- ja integraatioarkkitehtuurien rakenteet ovat hyvin samankaltaisia, koska palveluarkkitehtuuria voidaan pitää yleisen integraatioarkkitehtuurin yhtenä erikoistapauksena. Palveluarkkitehtuurissa on kuitenkin tehty rajauksia, joita ei yleisessä integraatioarkkitehtuurissa voida tehdä. olemassa olevien järjestelmien yhteenliittäminen joustavuus, varautuminen tuleviin tarpeisiin palvelujen löyhät liitokset Kuva 1: Integraatioarkkitehtuurin rakenne 14 Systeemityö 3/2005

Kuva 2: Palveluarkkitehtuuri sovitettuna integraatioarkkitehtuuriin Kuvassa 1 on esitetty tyypillinen integraatioarkkitehtuurin rakenne. Alimmalla tasolla on kuvattu liitettävät järjestelmät, joiden päälle integaation tarvitsemat kerrokset on rakennettu. Kahta ylintä kerrosta (liiketoimintaprosessin hallinta ja seuranta) ei aina toteuteta, mutta ne tulee suunnittelussa huomioida. Kaavion oikeaan reunaan kuvatut tukitoiminnot eivät suoraan vaikuta yksittäisen palvelupyynnön käsittelyyn, mutta ovat mm. hallittavuuden takia pakollisia. Vastaava palveluarkkitehtuurirakenne on esitetty kuvassa 2 täydennettynä kuljetuskerroksen (SOAP/ HTTP(S)), esitystavan (XML), palvelun kutsumisen (WSDL) ja hakemiston (UDDI) osalta. Suorituspolku Vaikka arkkitehtuurit vaikuttavat täysin yhteneväisiltä, erot löytyvät tarkasteltaessa yksittäisten pyyntöjen kulkua järjestelmän läpi (Kuva 3). Integraatiojärjestelmä toimii jokaisella pyynnöllä samalla tavoin. Kaikki pyynnöt ja vastaukset kulkevat transformaatio- ja reitityskerrosten kautta, koska osapuolilla ei ole tietoa toisen osapuolen rakenteesta, tiedon esittämistavasta, käytetystä kuljetuskerroksesta jne. Toinen osapuoli voi yhtä hyvin olla saman järjestelmän osa samassa koneessa tai vaikka älykäs mobiilipääte julkiverkon takana toisella puolella maata. Palveluarkkitehtuurissa palvelua pyytävä osapuoli on standardoitu, joten pyyntö tulee aina sovitussa muodossa. Tämä antaa mahdollisuuden keventää reititystä ja transformaatioita, jolloin palvelua tarvitseva voi pyytää palvelun sijainnin hakemistosta ja kutsuu sitä suoraan ilman reititystä. Vaikka palvelun pyytäjä ei transformaatioita ja reititystä tarvitse, on palvelun toteuttava osapuoli usein rakennettu siten, että se kutsuu useita taustajärjestelmiä ja niiden palveluita....erot löytyvät tarkasteltaessa yksittäisten pyyntöjen kulkua järjestelmän läpi. Molemmissa tapauksissa pyydetty palvelu voi itsessään olla synkroninen tai asynkroninen, mutta Web Services -toteutukset ovat luonteeltaan synkronisia, jolloin asynkronisen rajapinnan tuominen palvelurajapinnaksi aiheuttaa pollaamista. Jotta tavoite nopeasta reagoinnista liiketoiminnan muutoksiin toteutuisi, on palveluiden kehittäminen ja muuttaminen oltava yksinkertaista. Ilmeinen ratkaisu tähän tarpeeseen on integraatiojärjestelmä ja sen hyödyntäminen palveluiden koostamisessa. Systeemityö 3/2005 15

siten, että koosteisten palveluiden tuottaminen myöhemmin osoittautuu vaikeaksi. Kuva 3: Pyynnön suorituspolku molemmissa arkkitehtuurimalleissa Yhteenveto Palveluarkkitehtuuri on täsmälleen yhtä hyvä ja joustava kuin komponentit, joista palvelut muodostuvat. Työkalut korkean abstraktiotason palvelukomponenttien koostamiseen nopeasti ja helposti tarjoaa hyvin suunniteltu integraatioarkkitehtuuri. komponentit, jotka muodostavat ko. palvelut, koodataan tiukoin sidoksin, jolloin uusien palveluiden luonti hankaloituu ja vanhojen palveluiden ylläpidettävyys kärsii. Tällöin integraatioarkkitehtuuria hyödyntämällä voidaan nämä liitokset muuttaa löyhiksi. Palveluarkkitehtuuri on integraatioarkkitehtuurin erikoistapaus, jossa käytettävien tekniikoiden määrää on rajattu. Web Services -toteutusten avulla tapahtuva palveluiden jakaminen useaan organisaatioon laajentaa tiettyyn palveluun sitoutuneiden käyttäjien määrää ja samalla vaikuttaa ylläpidon helppouteen/ vaikeuteen ja ylläpitonopeuteen. Hyvällä suunnittelulla estetään lukkiutuminen tiettyyn palveluun ja sen versioon ja pystytään tukemaan useita rinnakkaisia versioita palvelusta. Samoin on oltava mahdollista muuttaa palvelun toteutusta ilman että muutos näkyy palvelun käyttäjille. Vaikka tämä on mahdollista perinteisinkin tekniikoin, vähentää integaatioarkkitehtuuri tarvittavia työmääriä merkittävästi. Vaikka palveluarkkitehtuuri ei ole integraatioarkkitehtuuri, siitä muodostuu integraation merkittävä käyttäjä. Palveluarkkitehtuuri on integraatioarkkitehtuurin erikoistapaus, jossa käytettävien tekniikoiden määrää on rajattu. Vain integraatioarkkitehtuurin hyvällä suunnittelulla on palveluarkkitehtuurin käyttöönotto mahdollista. Palveluarkkitehtuuri on liiketoimintalähtöinen ja sen tavoitteena on nopea reagointi muuttuviin liiketoimintaolosuhteisiin. Tämä toteutetaan yleensä siten, että sovelluksen palvelut on liitetty toisiinsa löyhin liitoksin. Usein kuitenkin Integraatioarkkitehtuurin kannalta on sama, onko kutsuja sovellus, toinen komponentti vai palvelukomponentti. Perinnejärjestelmien tarjoamat palvelut vaativat joka tapauksessa rajapintoja, joita ei kannata ratkaista ainoastaan palveluarkkitehtuurin tarpeisiin. Vaarana on ratkaista tarvittavat rajapinnat 16 Systeemityö 3/2005

TEEMA-ARTIKKELI J2EE vs..net Olli Sakari J2EE ja.net ovat tietojärjestelmäteknologioita, joiden varaan suuri osa tulevaisuuden tietojärjestelmistä tulee rakentumaan. Molemmat teknologioista tarjoavat välineitä toteuttaa tietojärjestelmäarkkitehtuureita sekä rakentaa alustariippumattomia ja uudelleenkäytettäviä komponentteja..net on Microsoftin luoma teknologia, joka mahdollistaa alustariippumattomien järjestelmien luomisen. Vuodesta 2001 markkinoilla ollut teknologia tarjoaa mahdollisuuden hajautettujen komponenttipohjaisten järjestelmien rakentamiseen useilla eri ohjelmointikielillä sekä tuen useiden eri käyttöliittymätyyppien tavoittamiseen. Arkkitehtuuri korvaa Microsoftin aikaisemman COM+ komponentteja hyödyntäneen Windows DNA arkkitehtuurin, joskin vanhojen komponenttien tarjoamien palveluiden käyttäminen on edelleen mahdollista. J2EE on Sun Microsystemin hallinnoima Java-ohjelmointikielen varaan rakennettu teknologia, joka on kehittynyt julkaisuvuotensa 1998 jälkeen IT alan suurimpien pelureiden, kuten IBM, Oracle ja BEA, yhteistyön tuloksena. J2EE - teknologia määrittelee yhteensopivuuskriteerit osateknologioilleen ja käytännössä useat eri valmistajat rakentavat näiden kriteereiden mukaisia tuotteita. Ideologia Perusideologialtaan molemmat tietojärjestelmäteknologioista tähtäävät alustariippumattomuuteen. Teknisellä tasolla molempien teknologioiden sovellusmalli pohjautuu tulkattaviin ohjelmointikieliin, joiden suorituksesta vastaa ajoympäristö, josta voi olla olemassa useita versioita eri käyttöjärjestelmiä varten..net arkkitehtuuri tarjoaa Microsoftin aikaisimmista ratkaisuista poiketen tuen useille käyttöjärjestelmille ja tarjolla on ajoympäristöjä myös eri valmistajien käyttöjärjestelmille. Vaikka tavoitteena on tarjota tuki useille eri alustoille, on sovellusten luontevin ja toimivin ympäristö edelleen Microsoftin valmistama käyttöjärjestelmä. J2EE maailmassa on jo vuosia ollut itsestäänselvyys, että sovelluspalvelimien ja eri tuotteiden valmistajia on useita ja yrityksellä on vapaus valita parhaiten tarpeisiinsa soveltuvat tuotteet valitsemilleen käyttöjärjestelmä- ja laitealustoille. Sovellusten siirrettävyys sekä alusta- ja valmistajariippumattomuus on tärkeä valintakriteeri, jonka osalta J2EE teknologiat ovat vahvempia. Toisaalta ajoympäristöjen kehittyessä myös.net -tekniikoiden Systeemityö 3/2005 17

siirrettävyys alustalta toiselle tulee kehittymään. Tämä tullee tarkoittamaan sitä, että muutaman vuoden kuluttua.net teknologiat tulevat olemaan Java teknologioiden tavoin aidosti siirrettäviä. Toisaalta myös Javan aitoa siirrettävyyttä on kritisoitu paljon ja monimutkaisimpien sovellusten siirrettävyydessä on ongelmia myös Java ympäristöissä. Sovellusten kirjoittaminen.net kehittäjällä on valittavanaan useita eri ohjelmointikieliä. Microsoft tarjoaa tuen useille kielille, joista on pääsy samoihin resursseihin. Käytännössä eri ohjelmointikielillä voidaan siis kirjoittaa samanlaisia sovelluksia. Alustan pääkieli on Javan kaltainen oliokieli C#, mutta tarjolla on myös suuri joukko muita kieliä, kuten Visual Basic.NET ja C++. Sovellusten kirjoittaminen on mahdollista jopa Kuva 1: Sovellusmalli Javalla. Microsoft tarjoaa sovelluskehittäjälle helppokäyttöisen ja RAD - ideologiaa hyvin tukevan Visual Studio.NET työkalun, mutta tarjolla on myös muutamien muiden valmistajien ympäristöjä. J2EE - maailmassa on ajatuksena se, että kaikki sovellukset kirjoitetaan samalla ohjelmointikielellä, joka on Java. Kehitysvälineeksi on tarjolla useita eri tuotteita, joista kaupallisista suosituimpien joukkoon kuuluvat Borlandin JBuilder sekä IBM:n WebSphere Studio Application Developer. Ilmaisista OpenSource välineistä suosituin lienee Eclipse. Java-maailman kehitysympäristöt eivät valitettavasti ole helppokäyttöisyydeltään Microsoftin välineiden veroisia, joskin välineiden laatu on kehittynyt viime vuosina. Vertailtaessa sovelluskehitystä sekä tarjolla olevia ohjelmointikieliä tarjoaa.net teknologiaperhe kehittyneemmän kehitysympäristön sekä enemmän ohjelmointikieliin liittyviä vaihtoehtoja. Kehittyneet sekä yksinkertaiset välineet näkyvät käytännön projekteissa pienempinä työmäärinä ja tätä kautta säästettynä rahana. Kannattaa muistaa myös helppojen välineiden rooli järjestelmien ylläpidossa. Innovaatiot Digitaalisen allekirjoittamisen ansiosta voidaan varmistua siitä, että käytettävä komponentti tulee aina turvallisesta lähteestä. Mahdollisuuksiltaan molemmat teknologiaperheet ovat samankaltaisia. Molempia teknologioita käyttämällä voidaan rakentaa monipuolisen sisällön omaavia Web sovelluksia, joita voidaan tarvittaessa myös skaalata asiakaskunnan kasvaessa. Teknologiat tarjoavat omat komponenttimallinsa, jotka mahdollistavat hajautettujen komponenttien luomisen sekä niiden tarjoamien palveluiden alustariippumattomat etäkutsut. WebService palveluiden luominen onnistuu molempien teknologioiden avulla, joskin palveluiden yhteensopivuudessa on ollut jonkin verran ongelmia. Tietoturvaan 18 Systeemityö 3/2005

siitä, että osa ratkaisuista ei ole yleisesti hyväksyttyjen standardien mukaisia. liittyvät ominaisuudet ovat myös pitkälle vietyjä molemmissa teknologioissa ja nykyisin palvelintuotteet tarjoavat paljon samankaltaisia mahdollisuuksia tietoturvaominaisuuksien hallintaan. Ainoa merkittävä ero tietoturvaan liittyen on se, että.net pakottaa allekirjoittamaan jaettavat komponentit. Digitaalisen allekirjoittamisen ansiosta voidaan varmistua siitä, että käytettävä komponentti tulee aina turvallisesta lähteestä. Myös Java tukee digitaalista allekirjoittamista, mutta jättää vapauden olla käyttämättä sitä. Käytännössä monipuolisten ja tietoturvallisten järjestelmien luominen onnistuu molemmilla teknologioilla ja nykyisin myös alustojen luotettavuus on sangen korkealla tasolla. Teknologioiden innovatiivisuutta pohdittaessa.net tarjoaa useimmiten nopeammin tuen uusille innovaatioille. Käytännössä tämä johtuu siitä, että uudet innovaatiot lisätään J2EE - alustaan hitaan ja avoimen JCP prosessin kautta, Kuva 2: Visual Studio.NET jossa alan suurimmat pelurit sopivat yhdessä siitä millaisena tietty uusi innovaatio tullaan liittämään alustaan. Vastaavaa taakkaa ei.net maailmassa ole, vaan Microsoft on usein luonut alustaan liitetyt innovaatiot nopeasti välittämättä Integraatio muihin teknologioihin Integraatio muita teknologioita käyttäviin järjestelmiin on usein erittäin tärkeä kriteeri valittaessa käytettävää teknologiaa, sillä on erittäin harvinaista että uudet tietojärjestelmät eivät ole riippuvaisia jo olemassa olevasta infrastruktuurista. Molemmat teknologiat tarjoavat mahdollisuuden käsitellä tietokantoja monipuolisesti. Vertailtaessa Microsoftin ADO.NET tekniikkaa Javan JDBC tekniikkaan, yhteistä molemmille tietokantarajapinnoille on se, että niiden avulla voidaan nykyisin käsitellä useimpia tietokantoja ja molemmista löytyy tuki tietokantakäsittelyssä tarvittaville perusoperaatioille. Standardienmukaiset Kuva 3: J2EE ja järjestelmänintegraatioskenaariot Systeemityö 3/2005 19

Kuva 4: Artikkelin avainkäsitteitä sovelluspalvelimet tarjoavat molemmissa arkkitehtuureissa myös tuen sanomanvälityspalveluiden käytölle tarjoamalla sanomajonot viestien tallentamiseen sekä mahdollisuuden sanomapalveluiden hyödyntämiseen. Merkittävimmät sanomanvälitystuotteet tarjoavat mahdollisuuden luoda asynkronisia palvelupyyntöjä käyttämällä molempia teknologioita. J2EE tarjoaa mahdollisuuden tehdä palvelupyyntöjä olemassa oleville CORBA palveluille tarjoamalla tuen IIOP kutsuprotokollalle. J2EE - standardi sisältää myös JCA rajapinnan, jolla voidaan käsitellä standardijärjestelmiä, kuten esimerkiksi SAP ja CICS, standardirajapinnan avulla. Microsoftin ideologiassa monimutkaisimmat integraatioskenaariot ratkaistaan käyttämällä valmiita integraatiopalvelimia, kuten Biztalk Server tai Host Integration Server. Integraatiopalvelimet ovat ohjelmoitavissa.net - välineillä, mutta ovat erillisiä kaupallisia tuotteita. Molemmat arkkitehtuurit tarjoavat tuen tulevaisuudessa tärkeän XML pohjaisen teknologian WebService hyödyntämiseen integraation välineenä. Integraationäkökulmasta J2EE teknologiat ovat monipuolisempia ja helpompia sovittaa yhteen eri valmistajien ratkaisujen kanssa. Syynä on pitkälti se, että J2EE teknologioiden taustalla on paljon eri valmistajia, jotka ovat valinneet Java tekniikat yhteiseksi alustakseen pakottaen samalla ratkaisemaan yhteensopivuusongelmat. Microsoftin ratkaisut ovat taasen pitkään olleet sidottuja nimenomaan Microsoftiin ja sen tuotteisiin..net-teknologia sekä käyttöjärjestelmä ovat vahvasti toisiinsa sidottuja, jolloin suorituskyky on pystytty optimoimaan Windows-alustoille. Teknologioiden suorituskyky Suorituskyvyn osalta.net järjestelmät ovat tehokkaampia, mitattiinpa suorituskykyä minkä kriteerin avulla tahansa. Käytännössä syy tehoeroon on se, että teknologia sekä käyttöjärjestelmä ovat vahvasti toisiinsa 20 Systeemityö 3/2005

sidottu ja.net ratkaisujen suorituskyky on pystytty optimoimaan Windows alustoille. J2EE toimii aina Java virtuaalikoneen alaisuudessa, joka on rakennettu käyttämään alla olevien vaihtelevien käyttöjärjestelmien palveluita, jolloin joudutaan tekemään paljon tehokkuutta rajoittavia yleisiä ratkaisuja. Täytyy kuitenkin muistaa, että jos ajatellaan.net -tekniikoita Microsoftin alustojen ulkopuolella, sama suorituskykyrajoite on olemassa. Suorituskyvyn ongelmia voidaan ratkaista lisäämällä laitteisiin suorituskykyä parantavia prosessoreita tai muistia, joiden osalta Windows versiot asettavat omat rajoituksensa, kun taas Javan taustalla olevat vaihtelevat käyttöjärjestelmät voivat olla laajennettavampia. Suorituskyvyn asettamia ongelmia voidaan ratkaista myös molempien tekniikoiden käyttämien sovelluspalvelimien tukemien klusterointitekniikoiden avulla. Kannattaa kuitenkin muistaa, että valittaessa käytettävää teknologiaa on harvinaista, että millisekuntien tehoerot ovat merkittävin valintakriteeri. Kokemuksia alustoista Teknologiavalintoja tehtäessä alustojen luotettavuutta ja kokemuksia niiden käytöstä on tärkeää arvioida. J2EE on arkkitehtuureista tällä hetkellä laajemmin käytetty ja sen käytöstä on enemmän kokemuksia. Osa organisaatioista on törmännyt ensimmäisissä J2EE-alustan haasteena on tekniikoiden monimutkaisuus. J2EE - projekteissaan haasteisiin tekniikoiden monimutkaisuuden takia, mutta tekniikoiden käyttö on useimmiten pienen opettelun jälkeen onnistunut ilman ongelmia. J2EE teknologioiden vahvuutena voidaan pitää kokemuksia tekniikoiden käytöstä sekä tätä kautta tuotteiden kypsä ikä..net alustan käytöstä ei ole vielä yhtä laajoja kokemuksia kuin J2EE - ratkaisujen. Teknologian nuoresta iästä huolimatta tuotteet alkavat olla vuonna 2005 kypsiä kriittistenkin järjestelmien alustoiksi, osin kiitos Microsoftin merkittävän panostuksen. Pohdittaessa ensimmäisten projektien haasteita kannattaa muistaa, että.net teknologiat muistuttavat rakenteeltaan monin osin J2EE teknologioita, joten hyvään suunnitteluun liittyvät, J2EE - maailmasta tutut, haasteet tulevat varmasti nousemaan esiin lähitulevaisuudessa. Kumpi valita? Tulevaisuuden tietojärjestelmien alustan valinta on useissa organisaatioissa tällä hetkellä polttava kysymys. Alustan valinta on harvoin organisaation liiketoiminnan kannalta kriittinen kysymys, sillä molempien teknologioiden avulla voidaan luoda liiketoimintaa tukeva moderni tietojärjestelmä. Käytännössä organisaatioiden, joiden liiketoiminnassa käyttämät kriittiset järjestelmät sekä käyttöjärjestelmävalinnat, pohjautuvat Microsoftin ratkaisuihin, kannattaa valita saman valmistajan.net teknologia-alusta. Valinta mahdollistaa olemassa olevien investointien helpon siirrettävyyden sekä saumattoman uudelleenkäytön uuden teknologian kanssa. J2EE arkkitehtuuri on taasen luonteva valinta yritykselle, jonka tietojärjestelmät käyttävät UNIX- tai Linux-alustoja ja joissa käytetään eri valmistajien vaihtelevia vuosien varrella tukemia teknologioita. J2EE teknologian vahvuutena on vapaus valita eri toimittajia ja tuotteita, joita voidaan edelleen yhdistellä toisiinsa organisaatiota parhaiten palvelemalla tavalla. Standardina J2EE pyrkii takaamaan eri tuotteiden yhteensopivuuden sekä tarjoamaan monipuoliset mahdollisuudet integroitua taustajärjestelmiin. Myös ilmaiset J2EE OpenSource ratkaisut, joita on tarjolla sangen paljon, saattavat olla joidenkin yritysten kannalta merkittävä J2EE teknologiaa puoltava valintakriteeri. Tärkeintä on kuitenkin muistaa, että valittiinpa kumpi teknologioista tahansa, merkittävintä ei ole se kumpi valitaan, vaan se kuinka teknologioita sovelletaan liiketoiminnan tukena. Kirjoittaja toimii asiantuntijana sekä kouluttajana Tieturi OY:ssä osaamisalueenaan tietojärjestelmäarkkitehtuurit sekä tietojärjestelmäintegraation haasteet. Systeemityö 3/2005 21