1 / 93

Komponenttipohjainen järjestelmäintegraatio

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ö.

juliana
Download Presentation

Komponenttipohjainen järjestelmäintegraatio

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. Integraation näkökulmat • sisältö ja toiminnallisuus • järjestelmätuotanto • tekniikka • arkkitehtuuri • erikseen ja yhdessä

  6. 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

  7. 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

  8. 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

  9. 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)

  10. 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

  11. 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

  12. V-malli ja integraatio

  13. Inkrementaalisuus ja integrointi

  14. 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

  15. 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

  16. Sovellustuotannon tehtäväkentät

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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?

  24. 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

  25. Sovellustuotannon komponenttitarpeet

  26. Komponenttimenetelmien lupaukset

  27. 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

  28. Komponenttipohjainen sovellustuotanto [Kähkipuro 2000]

  29. 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

  30. Komponentti... • itsenäinen “self-contained” ohjelmistorakenne • suorituksen aikainen liittymä (interface) • itsenäisesti jaeltavissa • rakennetaan tuntien suoritusalusta etukäteen • rakennetaan yhteistoimivaksi muiden komponenttien kanssa

  31. 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

  32. 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)

  33. Komponentti ulkoa (palvelutaso, distributed component)

  34. Komponentti sisältä • tässä toteutus oliokielen luokilla • toteutus on ”toteuttajan asia” - esim. perinnejärjestelmän kääre voi toteuttaa komponenttiliittymän

  35. 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)

  36. 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)

  37. Komponentti-infrastruktuuri

  38. 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

  39. Yhteistoimintaprotokolla • interaction protocol = säännöt järjestelmien väliseen vuorovaikutukseen • voi sisältää viestien muodon määrittelyjä ja käytettyjä tekniikoita

  40. 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

  41. 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

  42. 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

  43. Integrointitasot • järjestelmän elinkaari • toiminnallinen arkkitehtuuri • sovellusarkkitehtuuri • tekninen arkkitehtuuri

  44. 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

  45. 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

  46. 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

  47. 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

  48. 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ä

  49. 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

  50. 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

More Related