930 likes | 1.15k Views
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. HIS-yksikkö.
E N D
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
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
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
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
Integraation näkökulmat • sisältö ja toiminnallisuus • järjestelmätuotanto • tekniikka • arkkitehtuuri • erikseen ja yhdessä
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
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
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
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)
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
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
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
Järjestelmähankinnan vaihtoehdot Osta kokonaisuudessaan Toteuta itse Osta ja integroi komponentit Suunnitteluta ulkopuolisella Vuokraa ulkopuoliselta (ASP) Toteuta vanhan järjestelmän sovittimena Laajenna sovelluskehyksestä Kirjaudu käyttämään verkon kautta
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
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
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
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
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
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
Teollinen tuotanto (vrt. auton valmistus) • 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 • 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?
There must be consensus on a COMMON INTERFACE ARCHITECTURE. (It’s the only thing left!) SituationIT 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: CAPT Paul A. Tibbits, 25 Apr 00
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
Komponenttipohjainen sovellustuotanto [Kähkipuro 2000]
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
Komponentti... • itsenäinen “self-contained” ohjelmistorakenne • suorituksen aikainen liittymä (interface) • itsenäisesti jaeltavissa • rakennetaan tuntien suoritusalusta etukäteen • rakennetaan yhteistoimivaksi muiden komponenttien kanssa
Komponentin rajapinnat • käyttäjärajapinta • datarajapinta • kompositiorajapinta (komponenttiliittymä interface, proxy) • komponenttialusta • kaikki rajapinnat vaikuttavat uudelleen-käytettävyyteen • samassa komponentissa eri tekniikoita käyttäviä rajapintoja
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)
Komponentti ulkoa (palvelutaso, distributed component)
Komponentti sisältä • tässä toteutus oliokielen luokilla • toteutus on ”toteuttajan asia” - esim. perinnejärjestelmän kääre voi toteuttaa komponenttiliittymän
Toteutusluokat • rajaluokat • 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)
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. • resurssikerros (resource tier) • tietovarastot, yleiset palvelut • suoritusympäristö (CEE)
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
Yhteistoimintaprotokolla • interaction protocol = säännöt järjestelmien väliseen vuorovaikutukseen • voi sisältää viestien muodon määrittelyjä ja käytettyjä tekniikoita
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
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
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
Integrointitasot • järjestelmän elinkaari • toiminnallinen arkkitehtuuri • sovellusarkkitehtuuri • tekninen arkkitehtuuri
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
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
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
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
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ä
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
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