Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

PlugIT-ydinrajapinnoista Marko Sormunen PlugIT-projekti, HIS-yksikkö Kuopion tietotekniikkakeskus Kuopion yliopisto

Samankaltaiset esitykset


Esitys aiheesta: "PlugIT-ydinrajapinnoista Marko Sormunen PlugIT-projekti, HIS-yksikkö Kuopion tietotekniikkakeskus Kuopion yliopisto"— Esityksen transkriptio:

1 PlugIT-ydinrajapinnoista Marko Sormunen PlugIT-projekti, HIS-yksikkö Kuopion tietotekniikkakeskus Kuopion yliopisto Marko.Sormunen@uku.fi

2 Esiteltävät rajapinnat: v2.0 alustava AuthenticateUser –käyttäjän varmentaminen AuthorizationAccess –käyttäjän valtuuksien tutkiminen tarvittaessa IdentifyProfile –ehdokkaiden löytäminen hakuominaisuuksien perusteella ProfileAccess –profiilien haku ja päivitys

3 Muutoksia v1.0 jälkeen ProfileAccess ja IdentifyProfile ovat yleisiä rajapintoja, jotka voivat käsitellä mitä tahansa ”profiloitavissa olevaa” tietoa –potilaat –käyttäjät –dokumentit –kliininen tieto –… Profiili muodostuu ominaisuusjoukosta ja yksikäsitteisestä tunnisteesta  tietojoukot on profiloitava ennen kuin näitä rajapintoja voi hyödyntää

4 Muutoksia v1.0 jälkeen ProfileAccess- ja IdentifyProfile –rajapinnat liittyvät aina johonkin profiilijoukkoon –Patient:ProfileAccess (potilaiden profiilien käsittely) –User:ProfileAccess (käyttäjien profiilien käsittely) Patient:ProfileAccess tarkoittaa ProfileAccess-rajapintaa jonka kautta voidaan käsitellä potilastietoja, ts. potilasprofiileja joilla on määrätty ominaisuusjoukko.

5 Muutoksia v1.0 jälkeen Palvelukutsujen nimeämiskäytäntö yhdenmukaistettu kontekstinhallinnan rajapintamäärityksen kanssa Lähetettävä XML-viesti on request – elementin sisällä, paluuviesti on response - elementn sisällä Kutsuttava rajapinta ja metodi ovat osana nyt XML-viestiä ( interface - ja method - elementit)

6 Muutoksia v1.0 jälkeen Palvelumetodien parametrit esitellään param - elementin sisällä Oletusnimiavaruus viesteillä: ” urn:plugit:CommonServices ” Profiileja ja ominaisuuksia tunnistavat ID- arvot esitetään attribuutteina

7 Ydinjärjestelmä Palvelinkeskeinen lähestymistapa Sovellus 2 Web-sovellus Palvelutoteutus Sovellus 1 http(s)

8 Palvelinkeskeinen lähestymistapa Palvelujen toiminnallisuus otettu jo ennalta palvelu-pohjaisista määrityksistä –Person Identification Service (PIDS) –Java Authentication and Authorization Service (JAAS) Lisäksi palaute mm. MediciDatalta ja sovelluskehityksen yleinen suunta kohti palvelu-keskeisyyttä

9 Palvelinkeskeinen arkkitehtuuri Web Services –tyylisiä toteutuksia  palvelun toteutusympäristö on erotettu fyysisesti palvelun käyttäjän ympäristöstä  yhteinen viestinvälityskieli  etukäteen sovittu viestien muoto (skeema)  yhteensopivia, hajautettuja palveluita  XML-muotoiset sanomat HTTP:n tai SOAP:in avulla  kutsuvalta sovellukselta vaaditaan ainakin HTTP(s):n käsittelyyn tarvittava ohjelmistokomponentti tai liitin, joka piilottaa HTTP(s)-viestin rakentamisen ja vastaanottamisen.

10 Palvelinkutsujen tekeminen Palvelinkutsu tapahtuu lähettämällä oikein muotoiltu XML-dokumentti ennalta määrättyyn palvelun URL:iin –sama tekniikka perus-HTTP/XML:ssä ja SOAP:issa Palvelu prosessoi XML-dokumentin, suorittaa sen sisältämän ”komennon” ja palauttaa vastauksen toisessa XML-dokumentissa saman tien Palvelu ei suorita XML-dokumentin validointia, vain syntaksin tarkistamisen.

11 Rajapintojen esittely & esimerkit Esiteltävät rajapinnat ovat alustava versio 2.0 rajapinnoista HTTP/XML –tekniikalla HUOM! –kaikissa esimerkeissä oletetaan että kutsu onnistui –virhetilenteet palautetaan erillisillä exception - elementeillä

12 AuthenticateUser-rajapinta GetCoupon –palautetaan käyttäjälle uusi sessiokuponki –demototeutuksessa kupongin luo kontekstipalvelu CheckAuthentication –tarkistetaan onko käyttäjä jo varmennettu –demototeutuksessa tarkistetaan, löytyykö käyttäjän tiedot kontekstipalvelusta Login –varmennetaan käyttäjä (salasana/tunnus –parilla) –demototeutuksessa käyttäjän tiedot viedään kontekstipalvelimen yhteiseen kontekstiin, jos varmentaminen onnistuu

13 AuthenticateUser-rajapinta GetSubject –palautetaan varmennetun käyttäjän tunnistetiedot Logout –merkataan käyttäjä uloskirjautuneeksi ja poistetaan varmenteet –demototeutuksessa myös ilmoitetaan kontekstipalvelulle, että yhteisestä kontekstista poistutaan.

14 Esimerkki: GetCoupon-kutsu AuthenticateUser GetCoupon 193.167.224.27 fj2uc8a9 KysymysVastaus

15 Esimerkki: CheckAuthentication-kutsu AuthenticateUser CheckAuthentication fj2uc8a9 fj2uc8a9 KysymysVastaus

16 Esimerkki: Login-kutsu AuthenticateUser Login fj2uc8a9 msormune plugit.42 UKU_test_server msormune </subject KysymysVastaus

17 Esimerkki: GetSubject-kutsu AuthenticateUser GetSubject fj2uc8a9 msormune </subject KysymysVastaus

18 IdentityProfile-rajapinta FindCandidates –haetaan ehdokkaita hakuominaisuuksilla –palvelu määrittää sallitut hakuominaisuudet –palautetaan lista löydetyistä ehdokkaista GetMoreCandidates –palautetaan lisää ehdokkaita liittyen edelliseen FindCandidates-kutsuun DropRemainingCandidates –palvelun ei tarvitse enää muistaa palauttamattomia ehdokkaita

19 Esimerkki: Patient:IdentifyProfile- rajapinta ja FindCandidates-kutsu PatientIdentifyProfile FindCandidates fj2uc8a9 <trait id=”sukunimi” partial=”1”>SORM ASC 1 291274- xxxx SORMUNEN” MARKO JUHANA 2 KysymysVastaus

20 Esimerkki: Patient:IdentifyProfile- rajapinta ja GetMoreCandidates-kutsu PatientIdentifyProfile GetMoreCandidates fj2uc8a9 1 220703Axxxx SORMUNEN” RAUNA MARIA 1 KysymysVastaus

21 Esimerkki: Patient:IdentifyProfile- rajapinta ja DropRemainingCandidates- kutsu PatientIdentifyProfile DropRemainingCandidates fj2uc8a9 KysymysVastaus

22 ProfileAccess-rajapinta GetProfile –palautetaan profiili eli määritelty lista ominaisuuksia UpdateProfile –päivitetään profiilin tietoja määriteltyjen ominaisuuksien pohjalta CreateProfile –luodaan uusi profiili määriteltyjen ominaisuuksien perusteella DeleteProfile –poistetaan profiili

23 Esimerkki: Patient:ProfileAccess- rajapinta ja GetProfile-kutsu PatientProfileAccess GetProfile fj2uc8a9 SORMUNEN MARKO JUHANA KysymysVastaus

24 Esimerkki: Patient:ProfileAccess- rajapinta ja UpdateProfile-kutsu PatientProfileAccess UpdateProfile fj2uc8a9 Petosenmutka KysymysVastaus

25 Esimerkki: Patient:ProfileAccess- rajapinta ja CreateProfile-kutsu PatientProfileAccess CreateProfile fj2uc8a9 JAAKKOLA JAAKKO POIKA KysymysVastaus

26 Esimerkki: Patient:ProfileAccess- rajapinta ja DeleteProfile-kutsu PatientProfileAccess DeleteProfile fj2uc8a9 KysymysVastaus

27 AuthorizationAccess-rajapinta CheckAuthorization –tarkistetaan, onko käyttäjällä lupa suorittaa parametrissa ilmoitettu toiminto –Luvan kohde on abstrakti tietojoukko (esim. potilaslista) tai toiminto (esim. sovelluksen käynnistys) –muita parametrejä: sovelluksen nimi, potilaan ID, käyttäjän yksikkö, käyttäjän rooli ja luvan kattavuus (katselu, muutos, poisto, lisäys)

28 Esimerkki: AuthorizationAccess-rajapinta ja CheckAuthorization-kutsu AuthorizationAccess CheckAuthorization fj2uc8a9 peruskäytt ä j ä sovellus YDEMO KysymysVastaus

29 Esimerkki: Virhetilanne Virheellinen salasana tai tunnus Virhetilanteita –tietokantavirheet –kupongin vanheneminen –autentikaation epäonnistuminen –tuntematon profiili –muut yleiset virheet

30 Esimerkki: XML-dokumentti ominaisuutena Potilastietolomake haetaan ja talletetaan yhtenä potilaan profiilin ominaisuuksista – ”henkilotietolomake” Lomake on tallennettu yhteen potilas-taulun longtext –tyyppiseen kenttään UTF-8 – muotoisena XML-dokumenttina Lomake haetaan Patient:ProfileAccess – rajapinnan kautta GetProfile-metodilla ja muunnetaan XSLT:n avulla editoitavaksi HTML-lomakkeeksi

31 Toteutusvaihtoehtoja 1. vaihtoehto –käsitellään XML-dataa vain merkkijonona josta tarvittava tietoa parsitaan itse –perusoperaatiot helppoja, mutta monimutkaisemmat operaatiot työläitä (validointi, muunnokset) 2. vaihtoehto –XML:ää käsittelevien työkalujen avulla jotka pohjautuvat standardeihin –perusoperaatiot työläämpiä, mutta monimutkaisemmat operaatiot helpompia –DOM, XSLT, Xpath –tätä vaihtoehtoa käytetään Java-referenssitoteuksessa

32 Standardeista… Miksi XSLT, Xpath, DOM, … –W3C:n määrittelemiä tekniikkariippumattomia standardeja –tuki niin Java- kuin Microsoft-yhteisöistä UTF-8 tuo lisätyötä, mutta helpottaa kansainvälistymistä ja merkistöongelmia siirrettäessä tekstimuotoista dataa eri alustojen välillä –UTF-8 on tapa ilmaista Unicode-merkkejä ASCII- merkistöllä (http://www.unicode.org)

33 Ydin-palvelurajapinnat ja SOAP Samalla rajapintojen 2.0 version kanssa valmistuu yhtenevä WSDL-määritys –”Microsoft –tyylinen WSDL” eli document/literal wrapped –tyyli SOAP ja WSDL tuntuu tulevaisuuden kannalta pysyvämmältä vaihtoehdolta kuin perus-HTTP/XML. –kehittyvät turvallisuusstandardit, SOAP-sanomien alkuperän sertifiointi –SOAP- ja WSDL-työkalut tekevät paljon työtä sovellusohjelmoijan puolesta –tuki niin Java- kuin Microsoft-yhteisöistä –myös SOAP-palveluita voidaan käyttää pelkän HTTP/XML:n avulla!

34 Mitä lähiaikoina? Esitys versiosta 2.0 johtoryhmälle 20.4 Sitä ennen mahdollisia muutoksia, eli kommentteja kaivataan, mielellään ennen 8.4 Ydinrajapintojen ydinkysymys: Onko tässä tarvittavat palvelut ja metodit ”oikeita” ydin- palvelutoteutuksia varten?

35 Mitä PlugIT:in aikana vielä? Ydin-rajapintademosta yksi referenssitoteutus –Java-palvelinsovellus (JavaServer Pages), joka voidaan levittää yhdessä paketissa (tietokanta+dokumentaatio mukana) –sekä HTTP/XML että SOAP-toteutukset XML Schema –määritykset HTTP/XML – määrityksen tueksi (vai DTD?) ClinicalAccess-rajapinta(?) –IdentifyProfile- ja ProfileAccess -rajapintojen käyttö kliinisen potilastiedon käsittelyyn –kliiniset tietojoukot pitäisi tunnistaa, ts. profiloida


Lataa ppt "PlugIT-ydinrajapinnoista Marko Sormunen PlugIT-projekti, HIS-yksikkö Kuopion tietotekniikkakeskus Kuopion yliopisto"

Samankaltaiset esitykset


Iklan oleh Google