310 likes | 594 Views
2. Katsaus. Perustekniikat lyhyesti K?ytt?tapojen perusvaihtoehdotSOAP ja WSDL-k?ytt?tapojaTurvallisuuden tasotTekniikoiden lupaukset ja "lupaukset"Standardointi K?ytt? terveydenhuollon sovelluksissaKonteksti : SerAPI-projekti, Tausta: PlugIT-projekti, Komponentti-FixIT-projekti. 3. Hajaute
E N D
1. Web-sovelluspalvelutekniikat(Web services) Juha Mykkänen, Marko Sormunen Kuopion yliopisto, HIS-yksikkö
HL7 SIG-seminaarin, Helsinki, 10.3.2004
pohjalta laajennettu versio, 16.11.2004
2. 2 Katsaus Perustekniikat lyhyesti
Käyttötapojen perusvaihtoehdot
SOAP ja WSDL-käyttötapoja
Turvallisuuden tasot
Tekniikoiden lupaukset ja ”lupaukset”
Standardointi
Käyttö terveydenhuollon sovelluksissa
Konteksti : SerAPI-projekti, Tausta: PlugIT-projekti, Komponentti-FixIT-projekti
3. 3 Hajautetun väliohjelmiston (Middleware) historiallinen kehityskaari etäohjelmakutsut (RPC)
transaktiot mukaan -> TP Monitors (Tuxedo jne.)
olio-ominaisuudet TP Monitoreihin -> oliosanomavälittimet (CORBA, COM, RMI)
viestijonot TP Monitoreihin -> MOM, message-oriented middleware (MSMQ, MQSeries, monet integrointialustat jne.)
Internet-tekniikat mukaan -> Web services
ja niille ensimmäisenä etäohjelmakutsut…
ei revoluutio, vaan evoluutio
4. 4 Web-sovelluspalvelutekniikat Tiedon siirtoesitys ja siirto
tiedonvälitys verkossa yleensä http –siirtoprotokollan avulla
SOAP, määrittelee ”kirjekuoren” siirrettävälle sanomalle, voidaan käyttää eri siirtoprotokollien päällä (http, sähköposti, FTP, Jabber..)
Rajapintojen (tiedot, toiminnot) määrittely
WSDL, määrittelee operaatiot, tietotyypit ja sidonnat alemman tason protokolliin (esim. SOAP), luodaan/luetaan yleensä automaattisesti välineillä
XML-RPC käyttää http-protokollaa, määrittelee yksinkertaisia etäohjelmakutsuja
ebXML CPP/A tai muut XML-dokumenttimääritykset voivat määritellä tiedonsiirrossa käytettäviä dokumenttityyppejä ja -merkkauksia
Palveluiden dynaaminen löytäminen, rekisterit
UDDI
ebXML registry, välipalvelin..)
Lisämääritykset (-tasot)
toimintaprosessien määrittely, sopimukset, reititys, turvallisuus jne.
SOAP, WSDL, UDDI, ebXML, XML-RPC jne. perustuvat XML:ään, ja ”pelkkää” XML:ää mahdollista käyttää eri tasoilla
5. 5 Web-sovelluspalveluiden käyttötapoja Palvelukutsut
etäoperaatio, RPC, pyyntö - vastaus, ”puhelinkeskustelu”
tyypillisin yhdistelmä: SOAP+WSDL (+UDDI) + välitön vastaus palvelukutsuun (synkroninen)
välineistöt piilottavat tekniikat, helppo päästä alkuun
SOAPin kautta laajennettavuutta ja mukautettavuutta
pelkkä http ja XML-operaatiot
yksinkertaisuus, matala aloituskynnys
Dokumenttisiirrot
tietopaketti, fire and forget, ”putkiposti” (tai pyyntö- ja vastausdokumentit)
SOAP + XML-dokumentit (esim. ebXML, Open CDA) + synkroninen tai asynkroninen kutsutapa
joustavuus, laajennusten käyttö (sekä liikenteessä että sisällössä)
mahdollista myös ilman SOAPia tai käyttäen SOAP + WSDL-tekniikoita
pelkkä http ja XML-dokumentit
6. 6
7. 7
8. 8 SOAP-tiedonsiirto kirjekuori XML-sanomille
envelope (viestin alku ja loppu)
header (viestin välityksen ja käsittelyn tiedot, turvallisuus, autentikointi, transaktio)
body (XML-sisältö, dokumentti tai operaatiokutsu tai -vastaus)
(liitteet)
viestien vaihto SOAP-node:jen välillä
sender, receiver, intermediary
välinetuki nojautuu osin nimeämiskäytäntöihin (response, request jne.)
asynkronista viestintää varten headerin kentillä ”mustUnderstand” arvoja
viestien kustomointi SOAP-tasolla tarkoituksena
voidaan käyttää joustavasti ja monella tavalla
mutta kutakin kustomoitua kohtaa varten pitää ohjelmiston tietää mitä tehdä
versiot 1.1 ja 1.2, jälkimmäinen tarkempi (ja joustavampi)
9. 9 http + SOAP RPC-kutsu POST /ibm-soap/rpcrouter.jsp HTTP/1.1
Host: localhost
Content-Type: text/xml; charset="utf-8"
Content-Length: 484
SOAPAction: "http://www.psol.com/soap/reverse"
<SOAP-ENV:Envelope
xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ns1:reverse
xmlns:ns1="http://www.psol.com/soap/reverse"
SOAP-ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/">
<st xsi:type="xsd:string">Pineapplesoft</st>
</ns1:reverse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
10. 10 SOAP-dokumenttiviesti header <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ar="http://www.hl7.fi/ar2002/refdb">
<SOAP-ENV:Header>
<ar:MessageHeader SOAP-ENV:mustUnderstand="1">
<ar:From>
<ar:PartyId>1.2.246.537.10..koodistopalvelin..</ar:PartyId>
<ar:Role>codeServer</ar:Role>
</ar:From>
<ar:To>
<ar:PartyId>1.2.246.537.10.245.1</ar:PartyId>
<ar:Role>codeUser</ar:Role>
</ar:To>
<ar:CPAId>1.2.246.777.11.2003.1</ar:CPAId>
<ar:ConversationId>1.2.246.537.10..1075300247088</ar:ConversationId>
<ar:Service>codeServer</ar:Service>
<ar:Action>termItemEntry</ar:Action>
<ar:MessageData>
<ar:MessageId>1.2.246.537.10..koodistopalvelin..1075300697375</ar:MessageId>
<ar:Timestamp>2004-01-28T16:38:17</ar:Timestamp>
</ar:MessageData>
</ar:MessageHeader>
<ar:AckRequested SOAP-ENV:mustUnderstand="1"/>
<ar:HL7FIBodyCount SOAP-ENV:mustUnderstand="1">1</ar:HL7FIBodyCount>
</SOAP-ENV:Header>
11. 11 SOAP-dokumenttiviesti body <SOAP-ENV:Body>
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="koodistosiirto_V05.xsd">
<header>Stakes koodistopalvelin ohjelmisto: Datawell: CodeServer 3.0 [20031214]</header>
<body>
<termSystem id="1.2.246.777.5.164.2003.1" language="fi" beginDate="2003-01-01T00:00:01.0" expirationDate="2020-12-31T23:59:59.0" lastModifiedDate="2003-12-02T10:19:52.0" lastModifiedBy="Lehtonen, Jari">
<attribute type="longname" dataType="ST" language="fi">HL7-Laeaekkeenantolaite 2003</attribute>
<attribute type="status" dataType="ST">1</attribute>
…
</termSystem>
</body>
</document>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
12. 12 WSDL-rajapintakuvaus web-sovelluspalvelun liittymän määrittely
kuvauksen osat
types: tyyppijärjestelmä (esim. Schema)
message: tyypitetty siirrettävä tieto
part: tiedon elementti
portType: kokoelma toimintoja
operation: palvelun tukema toiminto
input, output, viittaa messageen
binding: protokolla, jota kutsumiseen käytetään (tarkentaa edellisiä)
viittaa portTypeen
operation,
input, output
service: liittymäpisteiden kokoelma
port: verkon liittymäpiste, binding ja verkko-osoite
13. 13 <?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions targetNamespace="http://kettinki.uku.fi:81/axis/services/LDAPWebService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:intf="http://kettinki.uku.fi:81/axis/services/LDAPWebService" xmlns:impl="http://kettinki.uku.fi:81/axis/services/LDAPWebService">
<wsdl:message name="identifyByUserNameRequest">
<wsdl:part name="userName" type="xsd:string" />
</wsdl:message>
<wsdl:message name="identifyByUserNameResponse">
<wsdl:part name="identifyByUserNameReturn" type="xsd:string" />
</wsdl:message>
<wsdl:portType name="LDAPServant">
<wsdl:operation name="identifyByUserName" parameterOrder="userName">
<wsdl:input name="identifyByUserNameRequest" message="impl:identifyByUserNameRequest" />
<wsdl:output name="identifyByUserNameResponse" message="impl:identifyByUserNameResponse" />
</wsdl:operation>
</wsdl:portType>
14. 14 <wsdl:binding name="LDAPWebServiceSoapBinding" type="impl:LDAPServant">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="identifyByUserName">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="identifyByUserNameRequest">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://ldap" />
</wsdl:input>
<wsdl:output name="identifyByUserNameResponse">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://kettinki.uku.fi:81/axis/services/LDAPWebService" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="LDAPServantService">
<wsdl:port name="LDAPWebService"
binding="impl:LDAPWebServiceSoapBinding">
<wsdlsoap:address
location="http://kettinki.uku.fi:81/axis/services/LDAPWebService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
15. 15 WSDL-käyttötavat valitaan käyttötarpeen perusteella: halutaanko validoida schema, haittaako ylimääräisen tyyppitiedon siirtäminen SOAPin yli, halutaanko pitää WSDL-määrittely ”luettavana”, halutaanko käsitellä ”operaatioita”
wsdl:binding:istä ”löytyviä”
rpc tai document (<wsdlsoap:binding style=..>)
encoded tai literal (<wsdlsoap:body use=..>
vaikuttavat WSDL:stä syntyvään SOAPiin ja asettavat välineille yhteentoimivuushaasteita
rpc/encoded
yksinkertainen WSDL, operaation nimi näkyvissä (helppo yhdistää toteutukseen)
tyyppitieto (ylimääräistä SOAPissa), validointi vaikeaa (vain myMethod-määrittely on schemassa, loput WSDL:ää)
rpc/literal
yksinkertainen WSDL, operaation nimi näkyy, tyyppitietoa ei SOAPissa
validointi vaikeaa (edelleen vain myMethod-sisäinen määrittely schemassa)
(document/encoded)
document/literal
tyyppitietoa ei SOAPissa, schemassa määritelty koko SOAP body
WSDL:n luettavuus kärsii, operaation nimeä ei ole SOAPissa (välineen vaikeaa yhdistää vastaavaan metodiin)
document/literal wrapped
SOAPissa ei tyyppitietoa, schemassa määritelty koko SOAP body, operaation nimi ”ujutetaan elementtinä” takaisin sanomaan
WSDL on monimutkainen, ei voi käyttää polymorfisia operaatioita, ei sovi datagraafeihin
16. 16 rpc/encoded <message name="myMethodRequest">
<part name="x" type="xsd:int"/>
</message>
<message name="empty"/>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding .../>
<!-- I won't bother with the details, just assume it's RPC/encoded. -->
17. 17 rpc/literal <message name="myMethodRequest">
<part name="x" type="xsd:int"/>
</message>
<message name="empty"/>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding .../>
<!-- I won't bother with the details, just assume it's RPC/literal. -->
18. 18 document/literal <types>
<schema>
<element name="xElement" type="xsd:int"/>
</schema>
</types>
<message name="myMethodRequest">
<part name="x" element="xElement"/>
</message>
<message name="empty"/>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding .../>
<!-- I won't bother with the details, just assume it's document/literal. -->
19. 19 document/literal wrapped <types>
<schema>
<element name="myMethod"/>
<complexType>
<sequence>
<element name="x" type="xsd:int"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<message name="myMethodRequest">
<part name="parameters" element="myMethod"/>
</message>
<message name="empty"/>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding .../>
20. 20 UDDI-rekisterit palveluiden löytämiseen (SOAP)-operaatiot:
registration: palvelukuvaus rekisteriin
lookup: palvelun haku
useanlaista tietoa
white pages: palvelun tuottajatiedot
yellow pages: palvelun luokittelu (esim. hakukone, kirjakauppa)
green pages: palvelun rajapinta, WSDL:n sijainti jne.
julkiset ja yksityiset rekisterit
muistuttaa naming service, trader service / CORBA
mutta UDDI-rekisterit ovat enimmäkseen ihmisten luettaviksi tarkoitettuja: vaikka esim. operaatiokuvaus saadaan rekisteristä, ei parametrien merkitystä ole kuvattu
onko ”avoimelle palveluhakemistolle” todellinen tarve esim. terveydenhuollon sovellusintegraatiossa?
lähinnä ”monien osoitteiden löytyminen yhdestä paikasta”, muun tyyppinen ”dynaaminen sidonta” on jo systeemiohjelmointia (CORBA DII)
hoidetaanko tarpeet (osoitteet yms.) paikallisella konfiguroinnilla, LDAP-/ ActiveDirectory-hakemistoilla jne?
21. 21 Mitä saavutetaan milläkin tekniikalla? http+XML
hajautus, avointen Internet-tekniikoiden hyödyntäminen, sovitut rajapinnat, ymmärrettävyys
suhteellisen kevyt toteutettavuus myös vanhoihin ympäristöihin
http+SOAP+XML
kirjekuoren hyödyt: osoitteet, aikaleimat, palautus jos viestiä ei voitu toimittaa tai postinumero on väärin, sisällön ”piilotus”, omat koristelut…
viestinvälitys: jos käytetään reititystä, integrointialustaa, salausta, autentikointia tms, headerin käsittely erillään sisällöstä
dokumenttisisältö – monta tapaa toteuttaa rajapintoja (myös ”operaatiot” onnistuvat: ks. <ar:Action>-elementti)
http+SOAP+WSDL
sovelluskehityksen suoraviivaisuus (WSDL->ohjelmointikieli->WSDL)
välinetuki, tekniikat halutessa pois näkyvistä
omimmillaan operaatiot (API-rajapinnat) ohjelmointiympäristöissä
dokumentit integrointialustoissa tai –välineissä
kehityksen suunta (WSDL:n päälle tulevat standardit, esim. prosessien määrittely BPEL4WS)
22. 22 Web-sovelluspalveluiden turvallisuus Web-palveluliikenne http-protokollaa
”tyypillisesti” käyttämällä luo tietoturva-
aukon (sovellusliikenne läpi palomuurin
”selainportin” 80)
Yhteyden turvaaminen (salaus)
https, SSL (kevyt sovelluskehittäjälle, raskas suoritus)
VPN (vaatii lisätyötä, paikallisia asetuksia)
Viestitason salaukset ja allekirjoitukset
SOAP-tasolla
XML digital signatures
vaativat lisätyötä, -suunnittelua ja sopimista
Turvallisuusinfrastruktuurin käyttö (ei enää alustaneutraalia!)
esim. JAAS Java-sovelluspalvelimille, NTLM + Kerberos Windows-sisäverkoissa, sovelluspalvelinkohtaiset turvallisuuspiirteet
”palomuuri-reikä” voidaan tukkia esim. sisältötietoisten palomuurien avulla
Sovellustason tietoturva (sisäänkirjaus, yhteiset turvallisuuspalvelut) tulossa vähitellen, ei selkeitä standardeja
23. 23 Web-sovelluspalveluiden lupaukset ”Alusta- ja tekniikkavaihtoehtojen tuki”
totta, merkki-, XML- ja Internet-pohjaisille sovelluksille runsaasti toteutusvälineitä eri alustoille
”Yleisten, laajalti levinneiden tekniikoiden hyödyntäminen”
totta, Internet-tekniikat laajasti käytössä (myös terveydenhuollossa)
”Löysä kytkentä sovellusten välillä” (loose coupling)
RPC-tavan palveluiden käyttö on tiukkaa kytkentää, löysäämistä dokumenttien tai tietopohjaisen käytön (kopioinnin) avulla
XML:ssä löysä kytkentä lisää joustavuutta mutta myös sovelluskohtaista toteutustyötä
kytkentää tiukennetaan tietotyyppien (mm. Schema) ja lisämäärittelyjen (mm. käytettävät SOAP-lisätasot) kautta
”Palvelut ovat itsensä kuvaavia”
XML-taso: metatason (kuvailutiedon) merkitys on edelleen sovittava sovellusten välillä ”<person>” (XML-merkkaus voi helpottaa ihmisen ymmärtämistä)
WSDL-taso: vaikka liittymän (muuttunut) määritys luetaan haluttaessa, on toteutus silti tehtävä / muutettava vastaamaan määritystä
(vasta) tutkimusaiheena semanttinen web, yleisten ontologioiden määrittely ja käyttö
24. 24 ”Palvelut löydetään dynaamisesti ajon aikana”
onnistuu rekistereitä käyttämällä, onko kuitenkaan tavoitteena, myös mediaattoreiden / integrointialustojen avulla reititykset ja muunnokset
”Toimittajariippumattomuus”
”peruspiirteitä” käyttämällä yhteentoimivuus ilman suuria muutoksia
epäyhteensopivuuksia, standardien versiot ja ”pinot”, puutteellinen standardituki
”Kevyt teknologia, helppo opittavuus”
pitää paikkansa yksinkertaisimpien käyttömallien kohdalla (XML+http, XML-RPC) + välineet tekevät paljon WSDL-SOAPin joillain tyyleillä
jo SOAPin laajennusten käytössä paljon opiskeltavaa ja sovittavaa
määritysten ja versioiden lukumäärän jatkuva kasvu, määritysten väliset suhteet
Russel Butek: WSDL usage styles: IBM DeveloperWorks, Which style of WSDL shoud I use?
Timo Tarhonen: SOAP 1.1:n ja 1.2:n pikavertailu, Open CDA tulospaketti. Web-sovelluspalveluiden lupaukset..
25. 25 Lupaukset ja myytit… ”Globaalit, kaikkialla käytettävät standardit”
eivät tule korvaamaan jo tehtyjä ratkaisuja (EDI, HL7 jne.)
ratkaisut rakennetaan olemassa olevien sovellusten päälle -> niiden vaikutus näkyy myös uusilla tekniikoilla
suorituskyky
”lisäkerroksia” muutenkin monimutkaisiin järjestelmiin
XML (tiedonsiirto, DOM-parserit)
”Web-sovelluspalvelut normaaleina sovelluksina”
”tietokoneiden käyttämiä sovelluksia”, ei käyttöliittymää kutsun seurauksena
tavoitteena A2A (RPC) tai B2B (dokumentit) (ei B2C)
luottamuskysymykset sovellusten välillä (ulkoiset web-palvelut)
Uudet välineet tukevat, vahvuutena alustaneutraalius, web-tekniikat
Paisuneet odotukset, standardoinnin hajanaisuus, lastentaudit
26. 26 Web-sovelluspalvelut -standardointi W3C
XML-perusstandardit (Schema, Xpath, XML namespaces jne.), SOAP, arkkitehtuuri
OASIS
UDDI, (ebXML yhdessä YK:n kanssa, XML.org-schemavarasto), turvallisuus (SAML jne.)
WS-I
profiles, WS-I basic profile, testaus jne.
OMG
WSDL mappings (C++, CORBA …), UML Web Services
JCP (Java)
WS-Composite Application Framework, JAX-RPC, JAXR jne.
27. 27 Integrointitarpeisiin vastaaminen Alueellinen tiedonsiirto
tietojen saatavuuden ja siirron toteutus, tietoturva huomioiden
dokumenttipohjaiset ratkaisut, organisaatioiden väliset ratkaisut
SOAPilla turvallisuutta, integrointialustojen käyttö reititykseen jne., myös asynkroninen käyttö
XML ei erityisen käytännöllistä massasiirroissa
adapterikehitys, loose binding
(Keskitetyt tai sovellusten väliset) palvelut
käyttäjän ja ylläpitäjän työn helpottaminen (päällekkäisyyden väheneminen)
välitön vastaus, kevyt toteutus moniin sovelluksiin?
http+XML -> SOAP+WSDL jos välineet tukevat (työmäärä kasvaa joka lyhenteestä ilman välineitä)
sovellusten muuttaminen (adapteri + oma toteutus?), sovellusten luottamus
Käyttäjälle tarvittavat palvelut, käyttöliittymäintegraatio
eivät web-sovelluspalveluita (osin asiaan liittyviä – Web Services for Remote Portals)
voitaisiin tosin tukea esim. (Web service -kontekstipalvelun avulla)
Prosessi-integraatio
vaatii ”tapahtumia, operaatioita tai toiminnallisia dokumentteja”
BPEL4WS yms. rakentuvat SOAP/WSDL (tai ebXML perusstandardien) päälle
28. 28 HL7 international ja (web) services Common Terminology Services-määritys
Messaging API
Vocabulary API (vastaavuudet PlugIT-määrityksiin)
sisältää esimerkit Java-työkalujen kautta WSDL-rajapinnoista
ServicesBOF: servicesbof@lists.hl7.org
Jo CCOW oli API-rajapinta, keskustelua siitä millä kielellä rajapinnat määriteltävä (ISO IDL vai ”HL7 IDL”)
XML ITS (Implementation Technology Specifications)
29. 29 Web-sovelluspalvelut terveydenhuollon sovellusintegraatiossa Suomessa Avoimet rajapinnat
HL7 CDA
Avoimet rajapinnat + Open CDA: web services-valmius: SOAP 1.1 (ja 1.2)
dokumentti- + tarvittaessa asynkroninen malli:
viestitiedot SOAP headerissa, XML (CDA) SOAP Bodyssa
sanoma + kuittaus –malli
viestinvälitys, tietojen siirto (ja kopiointi?)
HL7 Common Services SIG + PlugIT
”pienemmät” operaatiot, käyttäjäläheisyys, enemmän kutsuja, pienempiä tietojoukkoja
PlugIT http- ja XML-määritysten päivitys SOAP/WSDL:ksi?
Open CDA ja r2-sisältöjen hyödyntäminen
palvelukutsut, tietojen keskitys (ja riippuvuus keskitetystä palvelusta?)
Ristiinhyödyntäminen: CDA henkilötietolomake PlugITissa, Open CDA koodistosiirto PlugITissa, ”PlugIT PIDS” potilasrajapinta Open CDA:ssa, ”työpöytäintegraatio” kans. terveyshankkeessa
molemmissa pohjana kansainväliset toimialan standardit
Paikalliset ja kahdenväliset ratkaisut
http ja XML yleisiä, selaimen käynnistykset jne.
XML-RPC-toteutuksia
SOAP-toteutuksia
Jatko
CDAr2
SerAPI-jatkohanke
30. 30 Lopuksi oikean tekniikkajoukon valinta erilaisiin vaatimuksiin
aluksi käyttöön pisimmälle standardoituneet osat: perus-http(s)-pohjaiset palvelut, XML, perus-SOAP ja sitten:
keveys, avoimuus, nopea toteutus, ohjelmakutsut (RPC-tyyli)
laajennettavuus, varmennukset, reititykset, viestit (dokumentit)
31. 31 juha.mykkanen@uku.fi