Komponenttipohjainen järjestelmäintegraatio Ohjelmistojen suunnittelumenetelmät ja -työkalut, Jyväskylän yliopisto, 29.3.2001 Juha Mykkänen atk-asiantuntija, tietojärjestelmätutkimus Kuopion yliopisto Atk-keskus / HIS 1 HIS-yksikkö Terveydenhuollon tietojärjestelmien tutkimus- ja välinekehitysyksikkö (Health Care Information Systems Research and Tool Development Unit) Kuopion yliopisto / Kuopion IT-keskus pitkät perinteet terveydenhuollon tietotekniikan tutkimus- ja kehitystoiminnassa ohjelmistotekniikka ja tietojärjestelmätiede yhteistyö: IT-keskus, th. ohjelmistoyritykset, sairaanhoitopiirit, kunnat, kv. ryhmät 2 1
Esityksen sisältö järjestelmäintegraation tarpeet integraatio sovellustuotannon näkökulmasta integrointitekniikat komponentit ja uudelleenkäyttö integrointitasot integrointitavat komponenttipohjainen integraatio case: terveydenhuollon perinnejärjestelmien uudistaminen ja integrointi 3 Järjestelmäintegraation tarpeet olemassa olevan hyödyntäminen päällekkäinen tieto ja toiminnallisuus eri järjestelmissä toiminnan integrointi organisaation sisällä ja eri organisaatioiden välillä ei ole olemassa organisaatiolle kaiken kattavaa järjestelmää visio uuden toiminnallisuuden liittämisestä järjestelmään tarpeen mukaan 4 2
Integraation näkökulmat sisältö ja toiminnallisuus järjestelmätuotanto tekniikka arkkitehtuuri erikseen ja yhdessä 5 Toiminnan kehittämisen näkökulma laajeneva, hajautuva ja verkostoituva toiminta, uudet kumppanit, yritysostot, fuusiot, uudet toiminnot, muuttuvat vaatimukset tarve hallita ja ohjata läpi organisaation ja sen järjestelmien tai yli niiden rajojen ulottuvia toimintaketjuja esim. terveydenhuollossa palveluketjun saumattomuus 6 3
EAI (1) Enterprise Application Integration suunnitelmat, menetelmät ja välineet, joilla pyritään modernisoimaan, yhtenäistämään ja koordinoimaan organisaation sovelluksia tyypillisesti yhdistetään perinnejärjestelmiä ja olemassa olevia tietokantoja uusiin tekniikoihin Internet, extranets, e-business, e-verything 7 EAI (2) integrointi- / monitoimittajaprojektit tekniset ratkaisut: portaalit, middleware, integrointialustat integrointitavat, tietoturva johtaminen, sopimukset usein oliopohjaiset menetelmät, hajautetut järjestelmät, ERP, toiminnan ja datan hajauttaminen, väliohjelmistot, viestijonot 8 4
Standardit ja sopimukset eri toimittajien tekemien järjestelmien yhteentoimivuuden perusta yleiset ja tekniset standardit sanomastandardit, sisällölliset standardit malli- ja palvelustandardit luokitukset, sanastot, terminologiat ohjeistot, practice guidelines kahdenväliset / de facto (.ppt) / industry (W3C,OMG) / de jure + official (ISO) 9 Esityksen sisältö järjestelmäintegraation tarpeet integraatio sovellustuotannon näkökulmasta integrointitekniikat komponentit ja uudelleenkäyttö integrointitasot integrointitavat komponenttipohjainen integraatio case: terveydenhuollon perinnejärjestelmien uudistaminen ja integrointi 10 5
Sovellustuotannon näkökulma sovelluksen tuotantoprosessissa moduulien välinen integrointi ja integrointitestaus loppuvaiheessa järjestelmien välinen integrointi tyypillisesti järjestelmän valmistumisen jälkeen integroinnin edellytykset syntyvät suunnitteluvaiheessa (jos syntyvät) onko kyseessä tuote vai tilauksesta tehty tietojärjestelmä, vaikuttaa 11 V-malli ja integraatio V-malli Toimiala Laadunvarmistus Ylläpito Vaatimusmäärittely Hyväksymistestaus Analyysi Integrointitestaus Suunnittelu Koodi- ja moduulitestaus Tekninen toteutus Toteutus 12 6
Inkrementaalisuus ja integrointi Inkrementaalinen kehittäminen Vaatimusmäärittely Analyysi Suunnittelu Toteutus Testaus Käyttöönotto Versio 1 Suunnittelu Toteutus Testaus Käyttöönotto Versio 2 Integrointi Ylläpito Suunnittelu Toteutus Testaus Käyttöönotto Versio 3 13 Sovellustuotanto muuttuu mieluummin hankitaan muualta kuin tehdään itse? laadun ja yhteensopivuuden varmistaminen koostaminen, integrointi, mukauttaminen sovellukset kasvavat ja monimutkaistuvat, vaikeaa hallita kaikkea - tiimit, tuotantoprosessi tuettavat tai käytettävät standardit toteutustekniikoiden valinnanvapaus kasvaa sovelluskehykset, mallitoteutukset, suunnittelumallit osaamista pidettävä ajan tasalla 14 7
Järjestelmähankinnan vaihtoehdot Osta kokonaisuudessaan Osta ja integroi komponentit Toteuta itse Suunnitteluta ulkopuolisella Vuokraa ulkopuoliselta (ASP) Toteuta vanhan järjestelmän sovittimena Kirjaudu käyttämään verkon kautta Laajenna sovelluskehyksestä 15 Sovellustuotannon tehtäväkentät Sovellusalueentuntemus Palvelinsovelluskehittäjät Sovellusalueosaajat Tietokantaasiantuntijat Käyttöliittymäsovelluskehittäjät Hajautettujen sovellustenkehittäjät Järjestelmäintegraattorit Menetelmäkehittäjät Infrastruktuurintoimittajat Tekninen osaaminen 16 8
Esityksen sisältö järjestelmäintegraation tarpeet integraatio sovellustuotannon näkökulmasta integrointitekniikat komponentit ja uudelleenkäyttö integrointitasot integrointitavat komponenttipohjainen integraatio case: terveydenhuollon perinnejärjestelmien uudistaminen ja integrointi 17 Tekniikan näkökulma uudet tekniset mahdollisuudet väistyvä tekniikka, hallittu, vähittäinen siirtymä uuteen vanha tekniikka voi olla suurelta osin käyttökelpoista olemassa olevien investointien ja osaamisen hyödyntäminen avoimuus 18 9
Integrointitekniikat XML laajennuksineen middleware-standardit mallinnusvälineet ja -standardit (UML, XMI) toiminnanohjaus ja enterprise modelling -tuotteet komponentit kehysmallit ja -arkkitehtuurit kääretekniikat ja -välineet liittymästandardit (IDL, Biztalk, CDL ) integrointialustat ohjelmointikielet 19 XML integroinnissa metadata ja data yhdessä yleensä sanomien määrittelyyn - tiedon integrointi web-standardi käytetty laajennuksineen myös monissa muissa integrointimenetelmissä XML-RPC, SOAP tietomuunnokset mallien siirto: XMI, CWM strongly typed strongly tagged interfaces IF you know the alphabet THEN you can speak Latin? soveltamiseen paljon vaihtoehtoja 20 10
Middleware etäohjelmakutsuihin perustuva (RPC based) middleware viestipohjainen (message oriented) middleware hajautettuihin tapahtumavalvojiin (distributed TP monitors) perustuva middleware sanomavälitin (Object Request Broker, ORB) - pohjainen middleware tietokantamiddleware 21 Esityksen sisältö järjestelmäintegraation tarpeet integraatio sovellustuotannon näkökulmasta integrointitekniikat komponentit ja uudelleenkäyttö integrointitasot integrointitavat komponenttipohjainen integraatio case: terveydenhuollon perinnejärjestelmien uudistaminen ja integrointi 22 11
Teollinen tuotanto (vrt valmistus perustuu ennalta tehtyjen osien yhdistelemiseen ennalta määriteltyjen kehysten käyttö osien markkinat osat tehdään spesifikaatioiden mukaan ylläpito ja korjaus osia vaihtamalla vrt. auton valmistus) helpompaa ja halvempaa korvata kuin korjata osa valmistuskustannukset pieni osa kustannuksista kustannuksia pienennetään myös jakelussa (hajautuksessa), ei vain valmistuksessa Voidaanko sovellustuotannossa pyrkiä samaan? ohjelmisto = tuotteen suoritusohje, ei verrattavissa tavaraan, helppo kopioida, virheet hyväksytään? 23 Situation IT Realities Some computing facts of life: There will not be consensus on hardware platforms There will not be consensus on operating systems There will not be consensus on programming languages There will not be consensus on graphical user interfaces There will not be consensus on domain boundaries There will not even be consensus on data standards Therefore: There must be consensus on a COMMON INTERFACE ARCHITECTURE. (It s the only thing left!) CAPT Paul A. Tibbits, 25 Apr 00 24 12
Sovellustuotannon komponenttitarpeet Heterogeenisten ratkaisujen integrointi -erilaisia käyttöjärjestelmiä, käyttöliittymiä, palvelimia -eri tekniikoilla tehtyjä sovelluksia Muutoksiin varautuminen ja nopea sopeutuminen -toimintaprosessien ja palveluketjujen muutoksiin -tekniikan muutoksiin Uudelleenkäytettävyys -olemassaolevankapselointi -päällekkäisyyksien vähentäminen -yhtenäistenpalvelujen tarjoaminen -ohjelmistotyön tuottavuus Komponenttimarkkinat -mahdollisuusmyydä ja hankkia valmiita, testattuja osia -mahdollisuusvalita itselle sopivin Laajojen järjestelmien hallittavuus -suuria toiminnallisuuskokonaisuuksia -paljon yhtäaikaista käyttöä -skaalautuvuus 25 Komponenttimenetelmien lupaukset A. Uudelleenkäytettävyys -olemassaolevan kapselointi -päällekkäisyyksien vähentäminen -yhtenäisten palvelujen tarjoaminen -ohjelmistotyön tuottavuus B. Heterogeenisten ratkaisujen tukeminen -erilaisia käyttöjärjestelmiä, käyttöliittymiä, palvelimia -eri tekniikoilla tehtyjä sovelluksia C. Komponenttimarkkinat -mahdollisuusmyydä ja hankkia valmiita, testattuja osia -mahdollisuusvalita itselle sopivin D. Laajojen järjestelmien hallittavuus -suuria toiminnallisuuskokonaisuuksia -paljon yhtäaikaista käyttöä -skaalautuvuus E. Muutoksiin varautuminen ja nopea sopeutuminen -toimintaprosessien ja palveluketjujen muutoksiin -tekniikan muutoksiin 1. Liittymät, kapselointi 2. Järjestelmien hajautus + monitaso - arkkitehtuurit 3. Komponenttien rakentaminen erillään sovelluksen kokoamisesta 4. Valmiiden komponenttien, kehysten ja mallien uudelleenkäyttö 5. Toimintaprosessi - lähtöinen suunnittelu 26 13
Komponenttipohjainen sovellustuotanto Component-Based Development (CBD) ohjelmistotuotannon kaikki vaiheet ja aspektit perustuvat komponentteihin -tarveanalyysi -arkkitehtuuri -suunnittelu -rakennus -testaus -jakelu -projektinhallinta -tekninen infrastruktuuri järjestelmien rakentaminen kokoamalla olemassa olevista komponenteista rakenteinen ohjelmointi oliomenetelmät hajautetut oliot / järjestelmät komponenttipohjaisuus 27 Komponenttipohjainen sovellustuotanto Hankintaprosessin ohjaus Valmiit komponentit, pakatut sovellukset, ERP-ohjelmistot, itse tehdyt ja ostetut komponentit, komponenttiinfrastruktuurit jne. Komponenttivarasto Hankintaprosessi Hallintaprosessi Organisaation tarpeet Hankintaprosessin käynnistys Komponenttien kerääminen Järjestelmäintegraatio Sisäinen markkinointi Sovelluksen tarpeet Ohjelmistokehitys Toimivat sovellukset [Kähkipuro 2000] 28 14
CBD - ominaisuuksia arkkitehtuuri ja uudelleenkäytettävyys keskeisiä toimialan jakaminen itsenäisiin osiin komponentti käytettävissä erillään alkuperäisestä tarkoituksesta tietojärjestelmän luonne muuttuu uusia tapoja myydä ja ostaa järjestelmäratkaisuja osien itsenäinen kehittäminen ja jakelu muutosten vaikutusten rajaaminen asteittainen kehittäminen, siirtymä uusien tekniikoiden käyttöön kehysten ja mallien käyttö yleisillä kehyksillä ja niihin tehdyillä komponenteilla erittäin nopeasti uusia sovelluksia 29 Komponentti... itsenäinen self-contained ohjelmistorakenne suorituksen aikainen liittymä (interface) itsenäisesti jaeltavissa rakennetaan tuntien suoritusalusta etukäteen rakennetaan yhteistoimivaksi muiden komponenttien kanssa 30 15
Komponentin rajapinnat käyttäjärajapinta datarajapinta kompositiorajapinta (komponenttiliittymä interface, proxy) komponenttialusta kaikki rajapinnat vaikuttavat uudelleenkäytettävyyteen samassa komponentissa eri tekniikoita käyttäviä rajapintoja 31 Komponenttien karkeajakoisuus Alkeistason komponentit (esim. käyttöliittymäkontrollikirjasto) Palvelutason komponentit (yleiskäyttöinen palvelu) Liiketoimintatason komponentit (sovellusaluekohtainen, toimialakomponentti, business component) Sovellustason komponentit (Sovelluksella komponenttirajapinnat) 32 16
Komponentti ulkoa (palvelutaso, distributed component) Interface -operation a -operation b Interface -operation c Services Implementation Socket (dependencies of component execution environment) Dependencies of other components (proxies) 33 Komponentti sisältä tässä toteutus oliokielen luokilla toteutus on toteuttajan asia - esim. perinnejärjestelmän kääre voi toteuttaa komponenttiliittymän Distributed component Dispatcher Interface A. Data Focus Technical Support Utility A. Algorithm A. Rule Persistence Proxy 34 17
rajaluokat Toteutusluokat interface, proxy, persistence, dispatcher integraatio ja mukauttaminen hoidetaan näitä käyttämällä ydinluokat focus, support, ancillary, technical, utility ydintoiminnallisuus, käytettävissä mahdollisesti useilla eri tavoilla (rajapinnoilla) 35 Arkkitehtuuri: esim. (liiketoimintataso, business component) Nelitasoarkkitehtuuri - kerrosten vastuut käyttäjäkerros (user tier) käyttöliittymä edustajakerros (workspace tier) yhden käyttäjän työtila, paikallinen logiikka toimintakerros (enterprise tier) yleinen toimintalogiikka, transaktiot jne. Dependency resurssikerros (resource tier) tietovarastot, yleiset palvelut suoritusympäristö (CEE) Business component User Workspace Enterprise Resource Socket Plug user interface framework local CEE (Java, COM) enterprise CEE persistence framework Infrastructure CEE = component execution environment 36 18
Komponentti-infrastruktuuri Tekninen arkkitehtuuri Komponenttien suoritusympäristö (CEE) Kehitysympäristö Tekninen pohja Yleiskäyttöiset palvelut Komponentin toteutusteknologiat }Tekninen infrastruktuuri 37 Esityksen sisältö järjestelmäintegraation tarpeet integraatio sovellustuotannon näkökulmasta integrointitekniikat komponentit ja uudelleenkäyttö integrointitasot integrointitavat komponenttipohjainen integraatio case: terveydenhuollon perinnejärjestelmien uudistaminen ja integrointi 38 19
Yhteistoimintaprotokolla interaction protocol = säännöt järjestelmien väliseen vuorovaikutukseen voi sisältää viestien muodon määrittelyjä ja käytettyjä tekniikoita 39 Sovitin (adapter) Ohjelmisto-osa, joka muuntaa kohdejärjestelmän sisäisen tiedon tai toiminnallisuuden yhteistoimintaprotokollan vaatimaan muotoon sovitinta tehtäessä tunnettava kohdejärjestelmän toteutusta kohdejärjestelmän toimintalogiikkaa voi kopioitua sovittimeen 40 20
Kääre (wrapper) Sovitin, jonka avulla perinnejärjestelmän käyttäminen ulkoisen protokollan avulla on mahdollista myös sovittimen rajoitukset kääreiden ylläpito vaatii työtä ja voi vähentää muutosvalmiutta 41 Integrointitasot 7 tasoa, joista 6 alinta on ratkaistava, kun yhdistetään järjestelmiä ellei standardilla niin projektikohtaisella käytännöllä samalla tasolla voi olla useita eri protokollia 42 21
Integrointitasot järjestelmän elinkaari toiminnallinen arkkitehtuuri Kehitysprosessin liittymät Toiminnallinenviitemalli Semantiikka Toiminnalliset liittymät sovellusarkkitehtuuri tekninen arkkitehtuuri Sovellusinfrastruktuuri Tekninen infrastruktuuri Tekniset liittymät 43 1 Tekniset liittymät Mitä tekniikkaa käytetään? ohjelmistomekanismi yhteydenpitoon tietokantaperusteinen liittymä suoraan tai sovittimella toisen järjestelmän tietokantaan tiedostopohjainen yhdyskäytävä yksinkertainen, yhteinen formaatti ohjelmointirajapinta (API) kutsuttava järjestelmä toteuttaa rajapinnan palvelun 44 22
2 Tekninen infrastruktuuri Kuinka teknisesti tuetaan kommunikaatiota? kohdejärjestelmän aktivointi, virheidenkäsittely, transaktiot, työnkulut, kutsusuhteet ja -järjestykset jne. mallituntemus: kutsuva järjestelmä mukautuu kohdejärjestelmän toimintatapaan kontekstituntemus: yhteisiä protokollia ja tieto, koska mitäkin protokollaa käytetään ja kuinka konteksti siirtyy 45 3 Sovellusinfrastruktuuri Mitä arkkitehtuuria, millaisia liittymäkäytäntöjä ja suunnittelumalleja käytetään? kutakin teknisen infrastruktuurin protokollaa vastaava protokolla esim. miten käyttäjä tunnistetaan, miten oikeudet annetaan, miten toimitaan teknisen tai toiminnallisen virheen sattuessa hyvin vähän standardoitu 46 23
4 Toiminnalliset liittymät Millainen liittymä on? operaatioiden määrittely tiedon tyypin avulla: EDIFACT, XML prosessoinnin tyypin avulla: common services, hajautetut palvelut operaatioiden nimet ja parametrit käyttäen teknistä infrastruktuuria 47 5 Semantiikka Mitä liittymät tarkoittavat? Esim. luo_tilaus (in tilausdata out tulos) selitys 1: tietokantaan syntyy uusi tilaus-tietue, tulos on 1 jos tiedot olivat hyväksyttäviä selitys 2: tilaus on välitetty varastoon, jakelu on aikataulutettu, tulos on 1 jos toimitukseen menee yksi päivä 48 24
6 Toiminnallinen viitemalli Pystyvätkö järjestelmät toimimaan oikein liittymän kautta? Esim. kutsuvassa järjestelmässä nimikentän pituus on 10 merkkiä, kutsuttavassa 36 mitä kutsuva järjestelmä tekee, kun kohdejärjestelmä palauttaa 36-merkkisen nimen? Järjestelmän sisäisiä yksityiskohtia: tyypit, arvoalueet, kenttien pituudet 49 7 Kehitysprosessin liittymät Voidaanko integroitavuus rakentaa sisään järjestelmiin? Tiedetään, että järjestelmät tulevat toimimaan samassa ympäristössä meille tulevat käyttöön nämä protokollat missä tämä sovitin sijaitsee? vaihdetaanko speksejä? Käytännössä yhteisten kehysten tai välineiden avulla 50 25
Esityksen sisältö järjestelmäintegraation tarpeet integraatio sovellustuotannon näkökulmasta integrointitekniikat komponentit ja uudelleenkäyttö integrointitasot integrointitavat komponenttipohjainen integraatio case: terveydenhuollon perinnejärjestelmien uudistaminen ja integrointi 51 Integrointitavat integroitu yhteistoiminta siltayhteistoiminta koordinoitu yhteistoiminta väyläyhteistoiminta integraation suunnittelumalleja 52 26
1 Integroitu yhteistoiminta Järjestelmillä yhteinen protokolla Esim. yhteinen tietokanta sovittimen rakentaminen A B 53 2 Siltayhteistoiminta silta (bridge): yhteinen protokolla tai formaatti, jota molemmat järjestelmät sitoutuvat käyttämään yleensä ulkoinen protokolla: yhteistoiminnassa 5 osaa: 2 järjestelmää, 2 sovitinta ja itse silta voidaan rakentaa järjestelmän valmistumisen jälkeen A silta B 54 27
3 Koordinoitu yhteistoiminta koordinaattori ohjaa vuorovaikutusta järjestelmien välillä järjestelmien ei tarvitse tuntea toistensa protokollia koordinaattorina esim. käyttöliittymä, ERPjärjestelmä tai integroiva edustajärjestelmä Koordinaattori A B 55 4 Väyläyhteistoiminta ei suoraa järjestelmien välistä protokollaa, vaan yhteistä infrastruktuuria: väylä (bus) vaatii arkkitehtuurin sopimista ei pelkästään kahdenvälinen: avoin väylä muut integrointitavat voidaan toteuttaa väylää käyttäen A B väylä 56 28
Väyläyhteistoiminta: oliosanomavälitin Sovellusoliot (Application Objects) Yleiset toiminnot (CORBA Facilities) Oliosanomavälitin (ORB) Yleiset oliopalvelut (CORBA Services) Asiakas Kohdeolion toteutus Dynaaminen kutsu IDL tynkä Oliomuokkain Oliosanomavälittimen liittymä Dynaaminen välitys IDL kehikko Olioväylä (Oliosanomavälittimen ydin) 57 Yhteistoiminnan hallinta (control) Master-slave toinen järjestelmä (master) on aina kommunikaation aloitteentekijä, toinen palvelee Koordinoitu koordinaattori aloitteentekijänä, enemmän vuorovaikutusta Tasaveroinen (peer-to-peer) järjestelmät keskustelevat vaihtamalla viestejä arkkitehtuurissa kutsut kulkevat yleensä ylhäältä alas, vastakkainen toiminta esim. event-mekanismilla 58 29
Esityksen sisältö järjestelmäintegraation tarpeet integraatio sovellustuotannon näkökulmasta integrointitekniikat komponentit ja uudelleenkäyttö integrointitasot integrointitavat komponenttipohjainen integraatio case: terveydenhuollon perinnejärjestelmien uudistaminen ja integrointi 59 Komponenttipohjainen integrointi sovellustason komponentit neljä vaihtoehtoa: musta laatikko: järjestelmät näkevät vain joukon liittymiä (yhdyskäytävä tai sovitin) lasilaatikko: toisen järjestelmän (sisäisten) komponenttiliittymien käyttö yhteiset komponentit: komponenttivarasto, toiminnallinen väylä (pipeline, common services) täysi integraatio: mitään komponentteja ei duplikoida, samat protokollat 60 30
Yhdyskäytävä (gateway) (sovellustaso, system-level component) System Gateway Lab Test Manager Performance Monitor Lab Test Patient Department Database Integrity Manager Lab Test CodeBook Test Result Calculator AddressBook 61 Sovitin (adapter) Interop. adapter Lab Test Manager Performance Monitor Lab Test Patient Department Database Integrity Manager Lab Test CodeBook Test Result Calculator AddressBook 62 31
Komponenttiliittymien paljastaminen C C Lab Test Manager Performance Monitor C Lab Test Patient Department Database Integrity Manager Lab Test CodeBook Test Result Calculator AddressBook 63 Integraatio monitaso- arkkitehtuurissa Nelitasoarkkitehtuuri - kerrosten vastuut käyttäjäkerros (user tier) edustajakerros (workspace tier) toimintakerros (enterprise tier) resurssikerros (resource tier) Tekninen näkymä: kerrokset toteutetaan komponenttien avulla Toiminnallinen näkymä: komponentti on kerrosten välinen yhdistävä tekijä (toimialakomponentti) User Workspace Enterprise Resource 64 32
Käyttäjäläheinen integraatio Käyttöliittymäintegraatio käyttäjälle yhdenmukainen käyttöliittymä eri järjestelmiin selainkäyttöliittymät, portaalit look-and-feel requirements Työpöytäintegraatio käyttäjälle yhdenmukainen toimintatapa eri järjestelmissä esim. single sign-on, eri sovellusten käyttö saman kokonaisuuden käsittelyn yhteydessä 65 Palvelinintegraatio Sovelluspalvelinintegraatio organisaation hajautetut toimintaprosessit - hajautetut järjestelmät, keskitetty hallinta? organisaation komponenttiomaisuus, komponenttivarastot yleiset palvelut toimialariippumattomat ja toimialaspesifiset järjestelmien välinen sanomanvälitys Tietokanta- tai -varastointegraatio perinteisesti organisaation järjestelmät liitetty toisiinsa yhteisellä tietokannalla myös tietojen käyttö toisen järjestelmän kannasta yleistä uusina vaatimuksina tietovarastot (data warehousing), data mining, OLAP, data marts 66 33
Komponentti-integraation palvelut tukevat komponenttien yhteistoimintaa osana komponenttien suoritusympäristöä nimipalvelu vaihtopalvelu tapahtumapalvelu (event service) transaktiopalvelu (transaction service) viestipalvelut lisäksi skriptejä, glue code jne. 67 Prosessi-integraation palvelut toiminnaohjausohjelmistolla (ERP) tai koordinaattoreiden avulla prosessin määrittely prosessi-instanssien suoritus lisäksi skriptejä, glue code jne. 68 34
Tasot, tavat ja standardit sovellustason komponenttien integroinnissa Integrointitaso Yhteentoimivuusmalli Integrointitapa Standardit Tekniset liittymät API-pohjainen Väyläpohjainen CORBA, COM+, EJB, MQseries, XML Tekninen infrastruktuuri Sovellusinfrastru ktuuri Toiminnalliset liittymät Semantiikka Toiminnallinen viitemalli Kehitysprosessin liittymät Väyläpohjainen EJB Component Model, CORBA Components Yhteinen malli Väyläpohjainen Ei standardeja, yksittäisiä tuotteita kuten Forté API-pohjainen Kontekstipohjainen Kontekstipohjainen Yhteinen malli Silta tai integroitu Väyläpohjainen, erityisesti yleinen varasto Väyläpohjainen, erityisesti yleinen varasto HL7, CORBAmed, EDIFACT, X12 jne. Yhteinen malli Väyläpohjainen XMI, UML Standardeja / määrittelyitä ilmestymässä? HL7 RIM, ei kansallisia standardeja 69 Esityksen sisältö järjestelmäintegraation tarpeet integraatio sovellustuotannon näkökulmasta integrointitekniikat komponentit ja uudelleenkäyttö integrointitasot integrointitavat komponenttipohjainen integraatio case: terveydenhuollon perinnejärjestelmien uudistaminen ja integrointi 70 35
Case FixIT: Terveydenhuollon perinnejärjestelmien migraatio ja integraatio Tässä integraation näkökulmasta: integraatio siirtymän aikana integraatio erilaisissa siirtymissä arkkitehtuurin integraatioedellytykset integraation tukeminen yleisillä kehyksillä ja välineillä 71 Terveydenhuollon sovellusintegraatio sanomaintegraatio HL7, XML, DICOM palvelu- ja komponentti-integraatio CORBAMed, MS-HUG työpöytäintegraatio CCOW, edustajärjestelmät 72 36
FixIT - taustaa sovelluskehitysvälineitä terveydenhuoltoon perinnejärjestelmät, jotka perustuva verkkomalliseen tietokantaan (Musti, FileMan) asiakas-palvelin-sovellusten rakentaminen etäohjelmakutsumiddlewaren avulla perinnejärjestelmien modernisointi ja asteittainen uusiminen ohjelmistotyön tuottavuus, metadatan hyödyntäminen 73 FixIT-historia 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 Delphi-FixIT Web-FixIT e-fixit c-fixit Delphi-FixIT -kehitys 1995- Web-FixIT -kehitys 1997- e-fixit 2000- Komponentti-FixIT 2000-74 37
Komponentti-FixIT tavoitteita: tuoteriippumaton puitearkkitehtuuri (sovelluksen tavoitearkkitehtuuri 2005) siirtymäpolku Musti-pohjaisista järjestelmistä välineet ja teknologia siirtymäpolun alkuun sovellusten perustuminen uudelleenkäytettäviin toimialakomponentteihin tuki oliopohjaiselle sovellusintegraatiolle (HL7v.3) tuki aluearkkitehtuurille (Makropilotti) välineistön koulutus- ja käyttöönottoprosessi 1. vaihe 2000-2001, tavoitearkkitehtuurin määrittely ja siirtymäpolun ensimmäisten vaiheiden toteutus 75 Kuinka siirtyä uuteen? 1. Sovelluksen tavoitearkkitehtuuri 2. Siirtymäpolut nykytilanteesta 3. Käytettävien tekniikoiden ja välineiden valinta 4. Sovelluskehyksiä yleisiin osiin 5. Uudenlainen ohjelmistotuotantoprosessi - Koulutus ja käyttöönotto 76 38
Tavoitearkkitehtuuri Intra / inter-organizational infrastructure Organization 1 App 1 App 2 Organization 2 App 3 Business component 2 Business component 1 77 Tavoitearkkitehtuurin osat Intra / inter-organizational infrastructure Organization 1 App 1 App 2 Organization 2 App 3 hajautettu komponentti Business component 1 Business component 2 sovellus toimialakomponentti 78 39
Sovellusten integraatio arkkitehtuurissa Intra / inter-organizational infrastructure Organization 1 App 1 App 2 Organization 2 App 3 väylä Business component 1 Business component 2 liittymän paljastaminen / käyttöliittymäintegraatio yhteinen komponentti 79 Sovelluksen toiminnallinen arkkitehtuuri sovelluksen sisällä, toiminnallinen integraatio toimialakomponenttien välillä Lab Test application koordinaattori Process Lab Test Manager Performance Monitor Entity Lab Test Department Patient Database Integrity Manager Utility Lab Test CodeBook Test Result Calculator AddressBook Auxiliary 80 40
Esimerkki protokollamallista esim. e-tasolla toimialakomponenttien integraatio: tekniset liittymät: CORBA/IIOP (API) tekn. infra: sovelluspalvelimella aina käynnissä olevat komponentit, transaktiopalvelu, event service (kontekstituntemus) sovellusinfra: käyttäjän tunnistus ulkoisen turvallisuuspalvelun avulla LDAP:sta jne. toim. liittymät: IDL, palveluperusteinen, esim. siirra_pyynto (in osasto, in pyynto, out tulos) semantiikka: esim. operaatiokuvaukset toiminn. viitemalli: esim. Kuntaliiton sähk. potilaskertomuksen määrittelyn mukaiset tyypit kehitysprosessin liittymät: perusarkkitehtuurin toteuttava sovelluskehys jne. Business component User Workspace Enterprise Resource Socket Plug user interface framework local CEE (Java, COM) enterprise CEE persistence framework Infrastructure CEE = component execution environment 81 Kolme siirtymäpolkua 1. Kerroksittainen uusiminen olemassaolevan hyväksikäyttö alhaalta ylös, vähittäin 2. Paloittainen uusiminen uudet osat heti uuteen arkkitehtuuriin vanhan ja uuden rinnakkaiselo 3. Web-lähtöinen uusiminen vanhaan järjestelmään nopeasti web-käyttöliittymät myöhemmin uusiminen kerroksittain tai paloittain 82 41
Kerroksittain uusiminen: nykyinen asiakas-palvelin-arkkitehtuuri tietokantaintegraatio monoliittiset sovellukset sovelluslogiikkaa tietokantapalvelimella sanomaintegraatiota tietokantapalvelimella koordinaattori Workstation Application Tool components M server User interface Display components Data components Kernel / M routines Functional and stylistic user interface standard Functional display control interface FixIT data interface Remote procedure call API RPC Broker middleware FileMan 83 Vaihe 1: siirtyminen monitaso- arkkitehtuuriin sovitin kääreen rakentaminen integraatiotekniikoiden vähittäinen käyttöönotto sovittimia yläkerroksiin Workstation Application Tool components Application server M server User interface Display components Data components Component middleware Data Service components RPC Broker middleware Kernel / M routines Functional and stylistic user interface standard Functional display control interface FixIT data interface FixIT data component interface Remote procedure call API FileMan 84 42
Vaihe 2: nelitaso- arkkitehtuuri ja komponenttipalvelut koordinaattori väyläyhteistoiminta tietokantaintegraatiosta sovelluspalvelinintegraatioon integrointimahdollisuudet neljässä kerroksessa Workstation Application Tool components New Display components Application server kääre M server User interface Workspace components Component middleware Enterprise components Component middleware Data Service components RPC Broker middleware Kernel / M routines Functional and stylistic user interface standard Functional display control interface Workspace component interface Enterprise component interface FixIT data component interface Remote procedure call API FileMan 85 Vaihe 3: palveluiden moni- puolistaminen toimialakomponentit yhteiset komponentit yleiset palvelut osaksi infrastruktuuria sovelluskehykset komponentti- ja mallivarastot yhdyskäytävät esim. sanomaintegraatioon Workstation Application Component user interface Tool components Application server Remote procedure call API M server New Display components FixIT data component interface Kernel / M routines Workspace components Data Service components FileMan Component middleware Enterprise Enterprise components components RPC Brokermiddleware Functional and stylistic user interface standard Functional component UI Functional display control interface Database server Workspace component interface Persistence component interface ( Data Service components) ODBMS Browser Web server User interface Web page generators Workspace components Enterprise component interface yhdyskäytävä 86 43
Paloittain uusiminen uusia järjestelmän osia suoraan uuteen arkkitehtuuriin komponenteiksi vanhan ja uuden rinnakkaiselo siirtymän aikana paljon opittavaa ja uutta infrastruktuuria nopeasti sama tavoitearkkitehtuuri integraatio vanhan ja uuden välillä siirtymän aikana erityisesti alimmissa kerroksissa valmiiden palojen integrointi, versiointi 87 Paloittain uusiminen: sovellusalueen jako komponentteihin Organisaatio Laboratoriotutkimus omistaa_ aliyksikon Tutkimus 0..1 yksikon_ tutkimus tutkimuksen yksikko nimi:string Yksikko * * koodi:string nimi:string VastMuoto = * kayttoonotto_pvm:date on_aliyksikko koodi:string vapaamuotoinen yksittaistulos/ kaytossa:k/ e tyyppi:osasto/ pkl numeerinen yksittaistulos/ vastauksen _pituus:integer osoite:osoite0..1 plus tai miinus vastauksen muoto: VastMuoto valikoima kuvaus:string Organization lausuntoteksti 0..1 osavastauksista koottulausunto laske_kayttovuodet () tyontekijan_ yksikko Poliklinikka Vuodeosasto vuodemaara :integer 0..1 potilaan _osasto sovittimet, sillat, koordinaattorit Vastausvaihtoehto nimi:string merkitys:string Tutkimuspyynto aika:datetime luokka:kiir/norm 1 aika :datetime luokka:kiir /norm * * * 0..1 0..1 Lab 0..1 * Tutkimustapahtuma Lab test 1 selite:string * Osavastaus tyyppi:teksti/numero Asiakkaan _tutkimus vaihe:pyydetty /jonossa /meneillaan/ analyysissa/valmis /peruttu 0..1 Lab process 0..1 aika:datetime vastaus:string lausunto:string * 1 Tutkimustulos * * Henkilo etunimet :string sukunimi :string henkilötunnus:string syntymäaika:date sukupuoli: m/ n asuinpaikan osoite:osoite sahkopostiosoite :string puhelin :set(puhelin) tunnistetietojen _pvm:date 0..1 1 yhteyshenkilö tutkimuspyynnon_ tekija 1 tutkimuksen_tekija 1 rooli 0..1 Asiakas 1 asiointikieli:string kotiosoite:osoite tyopaikan_osoite:osoite kotikunta:string seurakunta/uskontokunta:string kuolinaika:date kansalaisuus:string * osaston_ potilas Henkilo Osoite katuosoite:string postinumero:integer postitoimipaikka:string Puhelin numero:string puhelimen_ tyyppi:koti/ tyo/matka 1 Patient rooli 0..1 Tyontekija ammattinimike:string 1 * * tutkimustuloksen_ katsoja tutkimustuloksen_ kirjaaja yksikon_tyontekija 88 44
Web-lähtöinen uusiminen kevyiden web-käyttöliittymien tarve nykyjärjestelmissä myöhemmin kerroksittain tai paloittain uusiminen käyttäjäläheinen integraatio portaalit, edustajärjestelmät 89 Välineistötarpeet Komponenttien toteuttaminen ja järjestelmien integrointi metadata saman toiminnallisuuden osat eri kerroksissa varastot toistuvien, mekaanisten tehtävien automatisointi Puutteita sovellusinfrastruktuurissa sovelluskehyksiä, tuotelinja-arkkitehtuureita Malli-integraatio integroituvuus mallien ja metamallien kautta 90 45
Yhteenveto järjestelmien yhteentoimivuuden tarve kasvaa integrointi siirtymässä tiedon siirrosta toiminnallisuuden jakamiseen integrointitasot ja -tavat syytä tunnistaa ja valita arkkitehtuurilla suuri merkitys myös integroinnissa standardeja ja tekniikoita (protokollat) saatavilla useimmille tasoille yhteentoimivuus edellyttää sopimuksia 91 Yhteenveto... komponenttipohjainen integraatio perustuu olioväylän käyttöön muut integrointitavat toteutettavissa väylällä pelkällä liittymien määrittelyllä ei saavuteta korkeimpia tasoja sovellusten yhteisistä hajautetuista palveluista tulossa osa organisaation järjestelmäinfrastruktuuria 92 46
Lisämateriaalia: Mykkänen J. Komponentti-FixIT -terveydenhuollon komponenttipohjainen sovellustuotanto - toiminnallisuus, arkkitehtuuri, siirtymästrategiat ja välineet. Kuopion yliopiston selvityksiä C. Luonnontieteet ja ympäristötieteet 7. 2000. Hinta 50 mk + toimituskulut, myynti: Sari.Kiiskinen@uku.fi, 017-162 802. http://www.uku.fi/atkk/fixit/comp/ Herzum P, Sims O. Business Component Factory. Wiley Computer Publishing, New York, 2000. Bass L, Clements P, Kazman R. Software Architecture in Practice. Addison-Wesley, 1999. Kähkipuro P. Komponenttiarkkitehtuurien vaikutus ohjelmistotuotantoon. Systeemityö 1/2000. Sytyke ry, 2000, s. 2-5. Siegel J. CORBA 3 Fundamentals and programming. OMG Press, John Wiley & Sons, 2000. D. Garlan, R. Allen and J. Ockerbloom, Architectural Mismatch: Why Reuse is so Hard, IEEE Software vol. 12, no. 6, pp. 17-26, Nov. 1995. 93 47