Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuTuula Uotila Muutettu yli 9 vuotta sitten
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
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.