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

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Kuvantamisen työnkulku IHE RIS näkökulmasta
SkyDrive ja Office Web Apps –sovellusten käyttäminen
Suorita menulta voit ottaa yhteyden iSeries:iin tai katkaista yhteyden sinne ja poistua RI400:sta.
Määritysten toteutukset Windows ja.NET- tekniikoilla PlugIT-seminaari, A-työpaja Heli Mäki, Juha Mykkänen Kuopion yliopisto, HIS-yksikkö.
JavaScript oliot © Reiska, DOM Oliot  JavaScript sisältää paljon valmiita DOM olioita, on sisältänyt jo DOM level 0 (ns. Legacy DOM) alkaen  WWW-ympäristössä.
OULU ADVANCED RESEARCH ON SOFTWARE AND INFORMATION SYSTEMS Teppo Räisänen | Oulun yliopisto Facebook API Teppo Räisänen Tietojenkäsittelytieteiden.
1 Java-kieleen pohjautuvien ohjelmien käyttökohteita Ohjelmat Appletit JavaBeans JavaScript Java Server Pages (JSP) Java Servletit J2ME, mobiililaitteet.
Omistajatietokanta suunnitelma 0.95 ( /JK)
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Web Services ©Reino Aarinen, Miksi?  Web Services tekniikalla voi muuttaa valmiit sovellukset Web sovelluksiksi.  Sovellus voi julkaista toiminnon.
Avointa-hanke ja Prime Solutions Oy PlugIT-loppuseminaari
Johdatus web-palveluihin
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
Erik Fallenius Kevät  Taustaa ◦ Ontologiat  Tavoitteet  Teknologiat ◦ Dojo/AJAX ◦ JSON ◦ SOAP  Projektin kulku  Lopputulos – demo.
Yhteenvetoa ydin- rajapintojen aamupäivän PlugIT-työpajasta Marko Sormunen PlugIT, Kuopion yliopiston atk-keskus
Klikkaa Työkalut ja Mobile Properties. Sender id = Puhelinnumero, jolta lähetetään ja jolle vastaussanoma palautuu. Password = Operaattorilta saatu palvelun.
PlugIT-seminaari Työpaja 2, ma 27.10: Kertomus- ja koodistoliittymät ja kansallisten hankkeiden yhteistyö Kertomus(arkisto)rajapinnat, klo.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Koodistorajapinnat: Tekniset liittymämäärittelyt XML- ja http- rajapinnoille Juha Mykkänen, PlugIT, Kuopion yliopisto, HIS-yksikkö PlugIT-puolivuotisseminaari,
Ennen asentamista  Autentikointilähde LDAP, SQL-tietokanta…  Autentikointimetodi Olemassa oleva kirjautumisjärjestelmä (Pubcookie, CAS…) Uusi autentikointijärjestelmä.
URI Universal Resource Identifier Matti BrockmanMatti Brockman, , TKTLTKTL.
© Jukka Harju, Jukka Juslin
SerAPI 9: :00 Kontekstinhallinta Minimikontekstinhallinnan määrittely, versio 3 (alustus Mika Tuomainen, KuY) Alueellisen kontekstinhallinnan käyttö.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
XML -kielen perusteet SIMO Seminaari Antti Mäkinen.
Kontekstinhallinta ja muut rajapintatarpeet Mika Tuomainen Juha Mykkänen SerAPI-projekti, HIS-tutkimus Kuopion yliopisto, Tietotekniikkakeskus, Centek.
PlugIT-ydinrajapintademo Marko Sormunen PlugIT-projekti, HIS-yksikkö Kuopion tietotekniikkakeskus Kuopion yliopisto
Ydinpalveluiden (käyttäjä, potilas).NET-asiakassovellus: PatientCoreClientDemo PlugIT-loppuseminaari Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat.
Työasemasovelluksen käyttöliittymä sovelluksien käyttöliittymät voidaan jakaa kahteen pääluokkaan: –kohde-toiminto -pohjaisiin (object-action) käyttöliittymiin.
PlugIT-seminaari A ja E -työpajat Työpaja A, maanantai : PlugIT-rajapintojen toteuttaminen ja hyödyntäminen (how to plug your.
Kuinka niitä käsitellään
SerAPI Saara Savolainen Esa Paakkanen Marko Suhonen 1 OID-kohde OID- generointi (ja -kyselyt?)
PlugIT-rajapintaesittely ja demo PlugIT-rajapintakoulutus , Kuopio.
Juha Mykkänen, Hannu Virkanen, Marko Sormunen, Jari Porrasmaa
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
SerAPI: SERvice-based architecture and web services in healthcare Application Production and Integration – Palveluarkkitehtuuri ja web-sovelluspalvelut.
CAT_TP-tiedonsiirtoprotokollan testausjärjestelmä Esittäjä: Antti Hämäläinen Päivämäärä: Työn tilaaja:Venyon Oy.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Lomakkeet © Reiska, Lomakkeet Varsinkin Web-sovelluksia ajetaan täyttämällä sivulla lomake ja lähettämällä tiedot palvelimella olevan Web-sovelluksen.
Hyväksyttyjen palvelurajapintojen tilanne ja koulutustarpeet Uudet palvelurajapinnat ja SerAPI-hanke HL7 Finland Common Services SIG Juha Mykkänen,
Shibboleth 2 uudet ominaisuudet & päivän käytännöt Haka koulutus
XHTML-perusteita Teppo Räisänen
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
Minimitason kontekstinhallinnan määrittely Yhteenveto Mika Tuomainen
DTD Teppo Räisänen Liiketalouden yksikkö.
SerAPI-Potilaslista osa I: Alustus , Kuopio Juha Mykkänen, Marko Sormunen, Assi Pöyhölä, Hannu Virkanen.
KANSALLISKIRJASTO - Kirjastoverkkopalvelut UKJ toteutusvaihtoehtojen tutkiminen Minna Kivinen, UKJ-ohjausryhmän kokous
XPath Teppo Räisänen Liiketalouden yksikkö.
Kaksi- ja kolmitasoiset sovellukset Two and Three Tier Systems.
Pakkanen -arkkitehtuurin siirto toteutustekniikoihin
E-Työpaja: Rajapintamääritykset Rajapintamääritysten tilanne (Juha Rannanheimo) Kontekstinhallinta (Mika Tuomainen) Käyttäjä-, käyttöoikeus-,
FunktiottMyn1 Funktiot Funktiot voidaan jakaa –Kirjastofunktioihin, jotka ovat valmiina kaikkien käytössä. Erikoisempien kirjastofunktioiden käyttöönotto.
Vesa Ollikainen & Outi Grotenfelt
Rajapintojen toteuttaminen ja hyödyntäminen DIT
XML Schema Teppo Räisänen Liiketalouden yksikkö.
SerAPI-Potilaslista työpaja , Kuopio Hannu Virkanen, Marko Sormunen.
HTTP (c) Reino Aarinen, HTTP yhteyskäytäntö Web asiakasohjelmat (yleensä erilaiset selaimet) käyttävät HTTP protokollaa tiedon siirtoon WWW sivustojen.
Java - Tietokanta. JDBC=Java database connectivity  ODBC:n kaltainen ohjelmointiliittymä SQL- tietokantoihin  Koostuu Java-kehitysympäristön (esim.
Pakkanen * * * Komponenttipohjaisen sovellustuotannon menetelmäpilotti PlugIT-seminaari Annamari Riekkinen ja Kirsi Karvinen FixIT-DoIT / HIS-tutkimusyksikkö.
XML – osa 2 Teppo Räisänen
Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas).NET-palvelutoteutus: CoreServiceDemo PlugIT-loppuseminaari Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat.
Metadata editor - rakenteen luonnos 1. TEHTÄVÄ 1) Järjestelmä lukee xml-dokumentin ja xml- skeeman sekä tarkistaa niiden validiuden 2) Järjestelmä lukee.
XSL Teppo Räisänen
XSL Teppo Räisänen
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
St. Amant (1999): Planning and User Interface Affordances
1 WS-I vs REST vs Ajax Eetu Mäkelä. 2 WS-I WS-I on standardipino, joka määrittelee kaiken mitä tarvitaan siihen että jokin ohjelma voi tehdä RPC-kutsun.
Kansallinen PHR: Sandboxiin tulevat muutokset
Esityksen transkriptio:

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

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

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

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.

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)

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

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

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ä

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

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.

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ä

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

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.

Esimerkki: GetCoupon-kutsu AuthenticateUser GetCoupon fj2uc8a9 KysymysVastaus

Esimerkki: CheckAuthentication-kutsu AuthenticateUser CheckAuthentication fj2uc8a9 fj2uc8a9 KysymysVastaus

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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ä (

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!

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?

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