KanTa - Arkkitehtuuri Marko Jalonen 8.5.2009
"Disclaimer" 29.4.2010 KanTa-arkkitehtuuri 2
Sisältö Taustaa (luennoitsija, Kela, KanTo-hanke) KanTa-palvelut yleisesti KanTa-kokonaisarkkitehtuuri Kokonaisarkkitehtuurin erityiskysymyksiä KanTa:ssa Palveluarkkitehtuuri/palveluväylä/prosessimoottori Transaktionhallinta Valitut arkkitehtuurityylit Tietoturva Ympäristöt, tuotteet Huomioita/opittua 29.4.2010 KanTa-arkkitehtuuri 3
Luennoitsijan CV KTM 1999 Pääaineena tietojärjestelmätiede Työhistoria Tietotekniikan tutkimusinstituutti, projektisuunnittelija Republica Oy, xml-konsultti, tuotepäällikkö TietoEnator Oyj, julkishallinto, integraatioryhmä, pääarkkitehti Kela, KanTo-hanke, tekninen hankepäällikkö 29.4.2010 KanTa-arkkitehtuuri 4
Kelan IT-osasto (2008) Historia Kelalla IT-toimintaa jo vuodesta 1938. Atk-keskus perustettiin v. 1968. Tietokonekeskus ja pääosa ITkäyttötoiminnasta siirtyi Helsingistä Jyväskylään v. 1983. ATK-keskuksen nimi muutetaan IT-osastoksi 2008. Toimintaajatus Tuottaa ja toimittaa tietotekniikkapalvelut Kelan toimiyksiköille sekä palveluita tietojärjestelmien käyttäjille Kelassa ja Kelan ulkopuolella laadukkaasti ja kustannustehokkaasti. Tehtävä Organisaatio Henkilöstö Volyymi Toteuttaa tietojärjestelmät Kelan etuuskäsittelyyn ja hallinnollisiin tehtäviin sekä vastaa sosiaali- ja terveydenhuollon kansallisten tietojärjestelmien toteuttamisesta. Toimii atk-päällikön johdolla jakautuneena atk-suunnitteluun (255), atk-käyttöön (120) ja esikuntaan (10). Huhtikuun alusta oma linja sosiaali- ja terveydenhuollon kansallisten tietojärjestelmien toteutusta varten, johon siirtyi henkilöitä muista linjoista. Henkilöstöä yhteensä 385 kolmella paikkakunnalla: Helsinki (250), Jyväskylä (120) ja Turku (15) kansalaisten internet-asiointeja 7,5 milj. / v sähköisiä tunnistettuja kansalaisasiointeja 1,3 milj. / v lähetettyjä etuuskirjeitä 16 milj. / v päätetapahtumia 1.650 milj. / v 29.4.2010 KanTa-arkkitehtuuri 5
KanTo-hanke Kansaneläkelaitos hoitaa terveydenhuollon palvelujen antajien lukuun potilasasiakirjojen säilytystä ja käyttöä varten olevaa arkistointipalvelua sekä sen osana potilasasiakirjojen luovutusta varten hakemistopalvelua ja suostumuksenhallintapalvelua... (Laki sosiaali- ja terveydenhuollon asiakastietojen sähköisestä käsittelystä, L 2007/159) Kansaneläkelaitos vastaa reseptikeskuksessa ja reseptiarkistossa olevien tietojen käytettävyydestä ja eheydestä, tietosisältöjen muuttumattomuudesta sekä tietojen säilyttämisestä ja hävittämisestä... (Laki sähköisestä lääkemääräyksestä, L 2007/61) => KanTo-hankkeessa rakennettavat KanTa-palvelut toteuttavat em. lait 29.4.2010 KanTa-arkkitehtuuri 6
-palvelut 29.4.2010 KanTa-arkkitehtuuri 7
Sanomavälitteinen keskitetty tietojärjestelmä sähköisten lääkemääräysten, toimitustietojen ja uusimispyyntöjen kirjaamiseen sekä välittämiseen terveydenhuollon ja apteekkien välillä Asiakkaina kaikki terveydenhuollon toimintayksiköt ja apteekit, liittymäjärjestelminä potilastietojärjestelmät ja apteekkijärjestelmät Käyttöönotto ~ 9/2009 29.4.2010 KanTa-arkkitehtuuri 8
Sanomavälitteinen keskitetty tietojärjestelmä sähköisten potilasasiakirjojen arkistointiin, määräaikaiseen säilytykseen sekä luovuttamiseen käyttöön Asiakkaina kaikki terveydenhuollon toimintayksiköt, liittymäjärjestelminä potilastietojärjestelmät Käyttöönotto ~ 1/2010 29.4.2010 KanTa-arkkitehtuuri 9
Kansalaisen katseluyhteys omiin terveysarkiston tietoihin täysi-ikäiselle kansalaiselle internetin kautta Edellyttää sähköistä tunnistautumista (tunnistus.fi) Kooste keskeisistä tiedoista: ereseptit ja niiden toimitustiedot käynnit terveydenhuollossa (palvelutapahtumat) lähetteet, hoitoyhteenvedot, todistukset ja lausunnot potilaan antamat suostumukset ja tietojärjestelmien lokitiedot, jotka potilaalla on oikeus saada tulevaisuudessa: ajanvaraustiedot ja tutkimustulokset Käyttöönotto ereseptin osalta ~ 9/2009 29.4.2010 KanTa-arkkitehtuuri 10
- palveluiden toteutus STM vastaa tietojärjestelmäpalveluiden määrittelyistä, Kela toteutuksesta Fujitsu Services Oy:n johtama konsortio (Fujitsu Services, Digia, NEAGEN) voitti Kelan järjestämän tarjouskilpailun tietojärjestelmien toteutuksesta keväällä 2007. Tietojärjestelmien rakentaminen on käynnissä Kelan ja Fujitsu-konsortion yhteistyönä Tietojärjestelmäpalvelujen käyttöönoton aikataulun reunaehdot on määritelty lainsäädännössä 29.4.2010 KanTa-arkkitehtuuri 11
KanTa-palvelut Terveydenhuollon palveluntuottaja Perusjärjestelmä(t) Apteekkijärjestelmä Apteekki Talleta asiakirjoja ja kuvia arkistoon Etsi ja nouda asiakirjoja ja kuvia arkistosta Laita lääkemääräyksiä reseptikeskukseen Etsi ja nouda lääkemääräyksiä Laita toimitustietoja reseptikeskukseen Kansallinen potilastietoarkisto Reseptikeskus Kansallinen toimija (= Kela) 29.4.2010 KanTa-arkkitehtuuri 12
Arkkitehtuurin lähtökohdat 29.4.2010 KanTa-arkkitehtuuri 13
Arkkitehtuuri yleisesti Arkkitehtuuri perustuu silloisen WM-datan tekemiin KANTAmäärittelyihin keväältä 2007 Tekninen toteutus on tarkentunut valitun toimittajan tarjouksen, sopimusneuvottelujen ja määrittelyjen tarkennuksen yhteydessä Arkkitehtuuria on jouduttu myös säätämään uusien määrittelyiden ja määrittelyn Apteekkijärjestelmät tarkennusten myötä Potilastietojärjestelmät Roolit & oikeudet Viitetietokannat ym. alueelliset ratkaisut Katseluyhteys Roolit & oikeudet Palvelu pyyntöjä toimitus resepti Tiedon syöttö Tiedon haku Erikoissairaanhoito Terveyskeskukset Kuvantaminen Yksityinen sektori IP-verkko Kansallinen terveydenhuollon arkisto(kanta) Palveluväylä KANTA eresepti Tilastot Tunnistus & Varmennus Kela/ Stakes Koodistot Koodit Hakemisto & Rekisteröinti Asiakirjan hakutiedot Arkisto Lokipalvelu Luovutusloki Arkiston käyttöloki Tapahtumaloki AMS: Asiakirjat Asiakirjat Asiakirjat AMS AMS +metatiedot Suostumuksen hallinta eresepti TEO-varmennepalvelut Reseptikeskus Tilastot Koodistopalvelut Arkistonhoitajat 29.4.2010 KanTa-arkkitehtuuri 14
Yleiskuva 29.4.2010 KanTa-arkkitehtuuri 15
Arkkitehtuurin lähtökohtia Terveydenhuollon lupa- ja valvontavirasto (Valvira, ent. TEO) varmentaa (PKI-infrastruktuuri) ammattihenkilöt, organisaatiot ja palvelimet Käyttäjien identiteetinhallinta pääosin perusjärjestelmätasolla eli hajautettu Lähes kaikki KanTa-palveluiden käyttö sanomapohjaista perusjärjestelmän kautta Ainoastaan kansalaiset ja tietyt ylläpitoroolit käyttävät suoria selainyhteyksiä Nippu eräajoja (mm. VRK:n kuolintietojen käsittely) Sanomien, laitteiden, organisaatioiden ym. yksikäsitteinen tunnistaminen hoidetaan OID-tunnuksin* Kaikki transaktiot lokitetaan Aineisto säilytetään salaamattomana tietovarastoissa ja salataan siirron aikana Kaikki asiakirjat järjestelmän ja/tai ammattilaisen sähköisesti allekirjoittamana * esim. 1.2.246.10.2048198.11005.2002.1 29.4.2010 KanTa-arkkitehtuuri 16
Ulkoinen viestinvälityksen arkkitehtuuri Pääperiaatteena ns. PUSH-malli, sanomaliikennettä myös KanTa:sta perusjärjestelmiin Kahdensuuntaisuus ( KanTa-palvelu avaa yhteyden ) Vaatii organisaatiorekisterin + osoitehakemiston Sanomaliikenne HL7 V3 SOAP 1.1, WS-Addressing, WS-Security x.509 token profile Salaus ja kaksisuuntainen autentikointi SSL/TLS Kaikki palvelupyynnöt synkronisia ulkorajapinnalla Kaikki sanomapohjaiset palvelupyynnöt tilattomia Pyrkimys eristää toisistaan viestinvälitys ja sisäinen logiikka Sanomien edelleenreitityspalvelut mahdollisia 29.4.2010 KanTa-arkkitehtuuri 17
Sisäisen arkkitehtuurin periaatteet (1/2) SOA-arkkitehtuuri, palveluväyläratkaisu ja prosessimoottori Virtualisoidut rajapinnat ja löyhät sidokset Bisneslogiikka keskitetty prosessimoottoriin eikä hajautettu palveluihin BPEL-Prosessimoottori kutsuu palveluita palveluväylän kautta ja näin ollen orkestroi prosesseja Ei palvelurekisteriä Arkkitehtuurikerrosten yhtenäinen ja johdonmukainen käyttö ulkoinen palvelurajapinta palveluväylä prosessimoottori palveluväylä - sisäiset palvelut tietovarastot Ratkaisu perustuu valmisohjelmistoihin Java EE - ympäristössä Aikataulupaineet lainsäädännöstä Kelan kokonaisarkkitehtuuri Kaikki järjestelmän kerrokset on vähintään kahdennettu ja vikasietoiseksi testattu Toisaalta joskus voidaan hoitaa asioita sovituin käytännöin ja prosessein teknologian sijasta 29.4.2010 KanTa-arkkitehtuuri 18
Sisäisen arkkitehtuurin periaatteet (2/2) Transaktioiden eheyden varmistaminen vaihtoehtoina: XA hajautetut transaktiot (=useampien eri resursseihin menevien palvelukutsujen suorittaminen yhdessä transaktiossa) [soveltuvuus: synkroniset lyhytkestoiset prosessit] BPEL-prosessien persistointi (=tilan tallennus) ja kompensoivat prosessit (=peruutus) [soveltuvuus: asynkroniset pitkäkestoiset prosessit] Nyt ei käytössä kumpikaan 100%:sti => osittainen räätälöinti ongelmatapauksia varten Sanomajonoja käytetään niissä tilanteissa, joissa ei vaadita välitöntä vastetta mutta edellytetään 100% perillemeno (esim. lokituspalvelut) 29.4.2010 KanTa-arkkitehtuuri 19
Käytetyt standardit, suositukset ja tekniikat HL7 V3 HL7 CDA R2 HL7 Medical Records WS-I Basic Profile v1.1 SOAP v1.1 WSDL v1.1 SSL Protocol v3.0, TLS v1.0 (UDDI v2.0) WS-Security Core v1.1 X.509 Token Profile TLS v1.0 (myös ns. mutual authentication) WS-Addressing v1.0 BPEL4WS v1.1 XML-DSig XML-Signature Syntax and Processing, W3C Recommendation 12 February 2002 JAX-WS v2.0, JAXB + sisäisesti mm. JMS 1.1, JCA 1.5, JAXR 1.0, JAXP 1.2 29.4.2010 KanTa-arkkitehtuuri 20
Arkkitehtuurityyleistä Käytössä useita eri arkkitehtuurityylejä Asiakas-palvelinarkkitehtuuri Kerrosarkkitehtuuri Viestinvälitysarkkitehtuuri / hub and spoke Palveluväylä / SOA Eräajoarkkitehtuuri Suunnittelumalleja (Java patterns, SOA patterns, EAI patterns) Strategy/behaviour pattern Guaranteed delivery/asynchronous queuing Exception shielding 29.4.2010 KanTa-arkkitehtuuri 21
Sanomaliikenne-esimerkki 29.4.2010 KanTa-arkkitehtuuri 22
HL7-sanoman loogiset kerrokset 29.4.2010 KanTa-arkkitehtuuri 23
mobiili KanTo: ulkoinen sanomanvälitys Sulkulistat KANTA eresepti mobiili KANTA eresepti 29.4.2010 KanTa-arkkitehtuuri 24
KanTo: sisäinen arkkitehtuuri Sulkulistat Poista kehys Tark. DSig kanta Osoitteisto Tark. tiedot Loki Koodisto- 29.4.2010 KanTa-arkkitehtuuri 25
Tähän asti opittua (1/2) Vaatimusmäärittely kaiken pohja IT-hankkeissa ja epämääräiset tai epätäsmälliset vaatimukset aiheuttavat ongelmia monella tasolla (toimeksiantaja toteuttaja alihankkija) Esim. Vasteaika palvelulla x sekuntia tai Vuorokaudessa palvelupyyntöjä tulee XX kpl -> Vasteaika päästä päähän vai vasteaika palvelurajapinnasta kuinka mitata päästä-päähän??? Keskiarvoa enemmän kiinnostaa huiput Esim2. Palvelutaso on oltava 99,99X% -> Palvelutaso ympäri vuorokauden, miten suunnitellut katkot, jne? Toisaalta nykytekniikoilla ei 100% palvelutasoa pystytä järjestämään SOA:n täysimääräinen toteuttaminen on haasteellista monessakin mielessä Kompleksisuus, suorituskyky Web Services ja monet standardipinon osat ovat vasta (edelleen) kokeiluasteella Transaktionaalisuus (WS-AtomicTransaction, WS-BusinessActivity) Luotettava sanomanvälitys (WS-ReliableMessaging) Tietoturva (WS-Security) Osoitteistus (WS-Addressing) Esimerkiksi WS-I Basic Profile (v 1.1) suosituksessa ei vielä mukana mikään edellä mainituista 29.4.2010 KanTa-arkkitehtuuri 26
Tähän asti opittua (2/2) Jotkut asiat on järkevämpää/turvallisempaa (?) tehdä dedikoidulla raudalla Kryptografiset operaatiot IDS/IDP, esim. XML Firewall Säilytysaikojen noudattaminen (+WORM) Kuormantasaus, proxyt Käytännössä aina yhtään isommissa hankkeissa joudutaan tinkimään ainakin osasta periaatteita valittujen arkkitehtuuriratkaisujen osalta Joskus rajustikin. mutta ei se hyvää arkkitehtuurimäärittelyä tyhjäksi tee. Vaikkei hyvää arkkitehtuuria kenties rakenneta PowerPointilla (tai jollain OSS-vastineella ; ), (kokonais)arkkitehtuurin kommunikoimiseen se on edelleen aika hyvä väline UML-mallit eivät välttämättä aina avaudu edes tarpeellisille tahoille, saati että välineet ovat usein kömpelöitä Muutamia keskeisiä attribuutteja Ilmaisuvoima täsmällisyys ymmärrettävyys yksinkertaisuus ylläpidettävyys Vaikka sovellukset ja sovellusarkkitehtuuri pitäisi pystyä eristämään käyttöympäristövalinnoista, niin käytännössä se ei ole aina mahdollista tai ainakaan kaikista näkökulmista optimi Optimointi, klusterointi, tietoliikenteen ja sovelluspalvelinten rajapinnat Aiemmin se oli jopa helpompaa (vrt. esim. CICS mainframella) 29.4.2010 KanTa-arkkitehtuuri 27
Kiitos! Lisätietoja: www.kanta.fi Marko Jalonen etunimi.sukunimi@kela.fi 29.4.2010 KanTa-arkkitehtuuri 28