RIV Tekniska Anvisningar Tjänsteplattform
| RIV Tekniska Anvisningar Tjänsteplattform
Version 2.0 ARK_0034 2024-09-18 |
Innehållsförteckning
- 1 RIV Tekniska Anvisningar Tjänsteplattform
- 2 Innehållsförteckning
- 3 1. Inledning
- 3.1 1.1 Målgrupp
- 3.2 1.2 Syfte
- 3.3 1.3 Tillgänglighet
- 3.4 1.4 Avgränsningar
- 3.5 1.5 Fallstudier
- 4 2. Terminologi
- 5 3. Informationsutbyte via tjänsteplattformar
- 6 4. Generella regler för en tjänsteplattform
- 6.1 TP Regel #1 Användning av tjänstekontrakt Utgått
- 6.2 TP Regel #2 Transportprotokoll
- 6.3 TP Regel #3 Autentisering
- 6.4 TP Regel #4 Bevarande av ursprunglig avsändares identitet i http-header
- 6.5 TP Regel #5: Propagering av ursprunglig sändares identitet i http-header
- 6.6 TP Regel #6: Säkerställ att anropande tjänsteplattform är betrodd
- 6.7 TP Regel #7: Vidarebefordran av anropskedja i RIV-header
- 6.8 TP Regel #8: Skydd mot rundgång
- 6.9 TP Regel #9: Vidarebefordran av http-headers
- 6.10 TP Regel #10 Logisk adressering
- 6.11 TP Regel #11 Exponering av URL:er Utgått
- 6.12 TP Regel #12 Hantering av tekniska fel
- 6.13 TP Regel #13: Felhantering vid nekad åtkomst från tjänsteproducent
- 6.14 TP Regel #14: Tjänsteplattformar ska propagera SOAP fel
- 7 5. En tjänsteplattforms komponenter
- 7.1 5.1 Tjänsteadresseringskatalog
- 7.1.1 5.1.1 Anropsbehörighet
- 7.1.1.1 Explicit behörighet
- 7.1.1.2 Hierarkisk behörighet
- 7.1.1.3 Standardbehörighet
- 7.1.2 5.1.2 Vägval
- 7.1.2.1 Explicit vägval
- 7.1.2.2 Hierarkiskt vägval
- 7.1.2.3 Standardvägval
- 7.1.2.4 Exempel: Hur kan olika vägvalsmekanismer kombineras i en anropskedja
- 7.1.3 TAK Regel #1: Lagring av vägvalsinformation
- 7.1.4 TAK Regel #2: Exponering av vägvalsinformation
- 7.1.5 TAK Regel #3: Lagring av anropsbehörigheter
- 7.1.6 TAK Regel #4: Exponering av anropsbehörigheter
- 7.1.7 TAK Regel #5: Tjänstekontrakt
- 7.1.1 5.1.1 Anropsbehörighet
- 7.2 5.2 Engagemangsindex
- 7.3 5.3 Virtualiseringsplattform
- 7.3.1 VP Regel #1: Datakommunikation
- 7.3.2 VP Regel #2: Åtkomstkontroll
- 7.3.3 VP Regel #3: Generera tjänst med utgångspunkt från WSDL Utgått
- 7.3.4 VP Regel #4: Vägval för anrop
- 7.3.5 VP Regel #5: Vidarebefordran av anrop
- 7.3.6 VP Regel #6: Översättning mellan RIV-TA versioner Utgått
- 7.3.7 VP Regel #7 Tjänsteinteraktioner Utgått
- 7.3.8 VP Regel #8: Felkoder
- 7.3.9 VP Regel #9: Propagering av ursprunglig sändares identitet i http header
- 7.3.10 VP Regel #10: Säkerställ att anropande tjänsteplattform är känd
- 7.3.11 VP Regel #11: Vidarebefordran av anropskedja i RIV-header
- 7.3.12 Regel #12: Skydd mot rundgång
- 7.3.13 Regel #13: Vidarebefordran av RIV-headrar
- 7.4 5.4 Aggregeringsplattform
- 7.4.1 5.4.1 Logisk adressering av aggregerande tjänst
- 7.4.2 5.4.2 Relationer till andra tjänster
- 7.4.2.1 Virtualiseringsplattform
- 7.4.2.2 Tjänsteadresseringskatalog
- 7.4.2.3 Engagemangsindex
- 7.4.3 AgP Regel #1 Datakommunikation
- 7.4.4 AgP Regel #2 Generera tjänst med utgångspunkt från WSDL-filer
- 7.4.5 AgP Regel #3 Utgående anrop till tjänsteproducenter
- 7.4.6 AgP Regel #4 Sammanställning av information
- 7.4.7 AgP Regel #5 ProcessingStatus i svar till konsument
- 7.4.8 AgP Regel #6 Filtrering av ej åtkomliga och ej kompatibla källsystem
- 7.5 5.5 Anpassningsplattform
- 7.5.1 5.5.1 Tjänsteväxel
- 7.5.2 5.5.2 Anpassningstjänst
- 7.5.3 5.5.3 Jämförelse
- 7.1 5.1 Tjänsteadresseringskatalog
Versionshistorik | |||
Utgåva | Revision Datum | Beskrivning | Ändringarna gjorda av |
1.0 |
| Dokumentets underrubrik är nu ”Tekniska krav” istället för ”Regler för interoperabilitet”. Lagt till kapitel med definition av termer. Tagit bort texter om reverse proxy (betraktas som implementationsdetalj). Lagt till felkoder för virtualiseringsplattform. Tagit bort regel om loggning av förändringar av TAK-information (inte ett tekniskt krav). Tagit bort skrivning om godkännande av tjänstekontrakt i 3.1.1 (inte ett tekniskt krav). Ändrat regel om uppbyggnad av URL:er till att enbart beskriva slutet på adresserna (det enda som är reglerat i RIV TA). Förtydligat att anropsbehörighet i TAK avser närmast anropande tjänstekonsument. Kapitlet om TAK använde begreppet ”logisk adress” om två olika saker. Lagt till översiktligt kapitel om Tjänsteväxel. Korrigerat ordval och stavfel. Uppdaterade illustrationer. | Lars Erik Röjerås Mattias Nordvall |
1.0.1 |
| Korrigerat vissa formuleringar och illustrationer. Nytt stycke om förhållandet mellan nationella och regionala tjänsteplattformar. | Mattias Nordvall |
1.1 |
| Kapitlet om anpassningsplattform och tjänsteväxel omskrivet och felaktigheter korrigerade. Regel ”Exponering av URL:er” i kapitel 4 korrigerad för att överensstämma med underliggande regelverk. Exempel från den senaste versionen av RIV-TA Basic Profile, t.ex. SOAP Headers, är ändrade till mer generella begrepp | Mattias Nordvall |
1.2 |
| Lagt till regler i kapitel 4 från RIV TA Basic Profile 2.0. Dessa regler behöver följas av tjänsteplattformar. Lagt till Regel #6 under kapitlet Aggregeringsplattform. | Mattias Nordvall |
1.3 |
| Uppdaterat Regel #6 under kapitlet Aggregeringsplattform. | Mattias Nordvall |
1.4 | 2017-12-07 | Lagt till information om adressering baserat på TAK och organisationsdata "HSA klättring" Under rubrik 4.2.6 har görs hänvisning till Basic Profile istället för att beskriva och exemplifiera i detta dokument Rättat numrering av regler under kapitel 5.1 (Virtualiseringsplattform) felet uppstod mellan version 1.0 och 1.1 (några regler utgick i 1.1) Tagit bort hänvisning till fallstudie för "Regional tjänsteplattform, Landstinget Dalarna" eftersom länken var bruten. | Björn Hedman |
1.5 | 2018-08-27 | Reglerna 2 och 4 har utökats med beskrivning av HSA-baserat vägval och anropsbehörighet samt användning av "*". | Lars Erik Röjerås |
1.6 | 2021-03-12 | Tagit bort Mule-referens i 1.4 Fallstudier. Uppdateringar och tillägg under kapitel 5 Virtualiseringsplattform:
| Anders Malmros |
1.7 | 2021-06-28 | Rättat fel i regel #12. Felkod VP014 skall användas vid rundgång, inte VP013 | Anders Malmros |
1.8 | 2022-01-25 | Lagt till ny felkod VP015 i regel #8, Felkoder | Anders Malmros |
1.8.1 | 2022-02-23 | Rättat felaktiga referenser till RIVTA Basic Profile 2.1 Valfria tillägg i kapitel 4.2.3 och 4.2.4 | Anders Malmros |
2.0 | 2024-09-18 | Allmänt strukturerat om innehållet och lagt till bilder och förtydliganden Lagt till exempel för att förtydliga: Logisk adressering genom tjänsteplattformar, kapitel 3.1 Användning av olika vägvalsmekanismer i en anropskedja, kapitel 5.1.2 Hur logisk adressering fungerar till och inom aggregerande tjänst, kapitel 5.4.1 Ändrat namnsättning på regler så att de har ett prefix för vilken komponent de avser. exempel: TP Regel #2 där TP står för Tjänsteplattformen och är allmänna regler VP Regel #1 där VP står för Virtualiseringsplattformen Felkoder: Lagt till ny felkod VP016, Kapitel 5.3 Tagit bort Regler: Dessa är markerade med genom strykning och texten “Utgått”
Flyttat ett antal regler från VP till TP
Lagt till Regler:
Ändringar av övriga formuleringar som ej var formella regler
Avsnittet referenser har tagits bort och ersatts av länkar i löptext | Anders Malmros Björn Hedman |
1. Inledning
Tjänsteplattformar skapar förmågan för tjänstekonsumenter att nå tjänsteproducenter, med stöd av logisk adressering, via en teknisk anslutning. Tjänsteplattformar förekommer dels i en nationell instans (NTjP), men även hos regionala aktörer inom hälso- och sjukvårdssektorn. För att underlätta bred samverkan kan tjänsteplattformar kopplas ihop.
Tjänstekonsumenter och tjänsteproducenter ansluts till någon av dessa tjänsteplattformar. Tjänsteplattformarna hanterar därefter adressering via vägval, samt åtkomsthantering via anropsbehörigheter för att förmedla informationen.
För samverkan via någon av de förvaltningsgemensamma tjänster som förmedlas via NTjP behöver tjänsteproducenter och tjänstekonsumenter, eller den tjänsteplattform som de är anslutna till, vara anslutna till den nationella instansen. Det behövs även konfiguration för behörighet och logisk adressering.
Detta dokument beskriver regelverket för RIV Tekniska Anvisningar Tjänsteplattform.
Hälso- och sjukvårdssektorn i Sverige har på uppdrag av Sveriges Kommuner och Regioner och under ledning av Inera, gemensamt tagit fram en nationell teknisk arkitektur i syfte att stödja samarbete över organisationsgränserna.
Enligt referensarkitekturen T-boken är en tjänsteplattform en samling komponenter som används för tjänstebaserad kommunikation över huvudmannagränser. En tjänsteplattform agerar kontaktpunkt för anslutningar till och från andra organisationer.
Inera AB har utvecklat en tjänsteplattform kallad SKLTP, som är baserad på öppna programvaror. SKLTP används av den nationella tjänsteplattformen, och är även fritt tillgänglig att användas regionalt. Tjänsteplattformar kan realiseras med valfri programvara såvida reglerna i detta dokument kan uppfyllas.
1.1 Målgrupp
Målgruppen för detta dokument är lösningsarkitekter och utvecklare som ska realisera en tjänsteplattform enligt T-boken och RIV Tekniska Anvisningar.
1.2 Syfte
Syftet med dokumentet är att underlätta utvecklings- och valideringsinsatser genom att samla de krav och regler som ställs på en tjänsteplattform och dess komponenter.
1.3 Tillgänglighet
Detta dokument är publicerat under licensen Creative Commons CC-BY-SA (http://creativecommons.org/licenses/by-sa/2.5/se/ ).
Det betyder att du fritt får kopiera, distribuera och skapa bearbetningar av anvisningarna under förutsättning att upphovsmannen Sveriges Kommuner och Regioner anges, men inte på ett sätt som antyder att de godkänt eller rekommenderar din användning av verket.
1.4 Avgränsningar
Denna anvisning beskriver enbart tekniska regler. Därmed utelämnas ämnen som t.ex. godkännandeprocess kring tjänstekontrakt och krav på loggning.
1.5 Fallstudier
Det finns en referensimplementation av en tjänsteplattform - (SKLTP - Confluence (atlassian.net)). Denna referensimplementation förvaltas aktivt och utgör grunden för den förvaltningsgemensamma tjänsteplattformen Nationell tjänsteplattform (NTjP).
Det har även gjorts ett antal regionala implementationer av tjänsteplattformar av den typ som beskrivs i detta dokument. För ytterligare erfarenhetsutbyte kring dessa, kontakta respektive regions tjänsteplattformsförvaltning.
2. Terminologi
För beskrivning av termer se RIV Tekniska Anvisningar SOAP Webservices.
3. Informationsutbyte via tjänsteplattformar
Nedan beskrivs hur en tjänsteplattform ska hantera logisk adressering och anropsbehörigheter, både fristående och i samverkan med andra plattformar.
3.1 Logisk adressering
Tjänstekonsumenter skickar alltid sina meddelanden till den tjänsteplattform tjänstekonsumenten är ansluten till och adresserar meddelandet med mottagarens logiska adress. Om den logiska adressen finns i den anropade tjänsteplattformens tjänsteadresseringskatalog vidarebefordrar tjänsteplattformen meddelandet till den tekniska anslutningsadress som är knuten till den logiska adressen. Anslutningsadressen kan antingen representera faktiska tjänsteproducenten eller en annan tjänsteplattform. I det senare fallet upprepas processen tills den faktiska tjänsteproducenten nås.
Den första tjänstekonsumenten som ansluter till en tjänsteplattform benäms “ursprunglig tjänstekonsument” och den sista tjänsteproducenten i anropskedjan kallas “faktisk tjänsteproducent”. Mellanliggande tjänsteplattformar är både tjänsteproducenter och tjänstekonsumenter men då i en virtuell form, med virtuell menas att de varken behandlar eller håller den information som hanteras.
Den logiska adressen skickas alltid vidare till nästa part för vidarebefodran, filtrering av svar eller liknade.
Eftersom adresseringsmodellen är grundläggande i arkitekturen är det viktigt att ha god förståelse för denna, se RIV-TA Översikt och T-boken för detaljer
Figuren nedan visar hur en tjänstekonsument skickar ett meddelande adresserat till ett källsystem.
Tjänstekonsumenten anropar tjänsteplattformen med den tekniska anslutningsadressen ntjp.inera.se och använder källsystemets HSA-id (SE1601) som logisk adress i meddelandet.
Tjänsteplattformen översätter med hjälp av TAK den logiska adressen till den tekniska anslutningsadress som gäller för den aktuella tjänsteproducenten (p1.vgr.se).
Tjänsteplattformen anropar tjänsteproducenten med den tekniska anslutningsadressen men skickar också med den logiska adressen i meddelandet.
Notera att vid adressuppslag mot TAK används tjänstekontraktet och logisk adress i kombination som unik nyckel för att slå upp den tekniska anslutningsadressen.
3.1.1 Logisk adressering genom multipla tjänsteplattformar
När meddelanden skickas mellan tjänsteplattformar tar dessa rollen som tjänstekonsument och/eller tjänsteproducent gentemot varandra och övriga tjänstekonsumenter.
Vid logisk adressering genom multipla tjänsteplattformar bibehålls den logiska adressen vid varje länk i förmedlingskedjan, men de tekniska anslutningsadresserna (URL:erna) ändras genom adressuppslag i respektive plattforms TAK.
Exempel: Hur förhåller sig logisk adress till producentens tekniska identitet
I exemplet så representerar den logiska adressen "SE1611" ett källsystem (källsystemsadressering). Det faktiska källsystemets URL är “p1.vgr.se” men i anropskedjan representeras den logiska adressen av ett flertal olika URL:er
I exemplet används SITHS funktionscertifikat både som klient- och servercertifikat för att styrka den tekniska identiteten
Konsument är konfigurerad att rikta alla sina anrop för ett visst tjänstekontrakt till adressen “ntjp.inera.se” och behöver därför inte slå upp adressen till tjänsteproducenten (NTjP) men behöver verifiera att den som man ansluter till via URL:en “ntjp.inera.se” är rätt part och det görs via funktionscertifikatet för “ntjp.inera.se”. Konsumenten använder den logiska adressen “SE1611” i meddelandets kuvertering.
NTjP tar emot anropet och slår upp att anrop till den logiska adressen "SE1611" ska skickas vidare till “rtp.vgr.se”. Ntjp validerar funktionscertifikatet för “rtp.vgr.se”. NTjP har ingen möjlighet att via servercertifikatet säkerställa att “rtp.vgr.se” företräder "SE1611" men förlitar sig på att informationen i NTjPs TAK är korrekt och genomför därför anropet.
RTP tar emot anropet och gör i sin tur ett uppslag av den logiska adressen "SE1611" som pekar på “p1.vgr.se”. RTP validerar serverns funktionscertifikat för att säkerställa att det är rätt system som svarar på anropet.
3.2 Anropsbehörighet
För att stödja hantering av anropsbehörigheter via en eller flera tjänsteplattformar förmedlas ursprunglig tjänstekonsuments identitet i http-headern x-rivta-original-serviceconsumer-hsaid. Om ursprunglig tjänstekonsument dessutom utför anropet å en annan bakomliggande verksamhets vägnar förmedlas verksamhetens identitet i http-headern x-rivta-acting-on-behalf-of-hsaid.
Tjänsteplattformar tar beslut om anropande tjänstekonsument har behörighet att utföra tjänsteanropet.
Detta kan antingen göras explicit eller så kan det delegeras till anropande part baserat på organisationstillit.
Den faktiska tjänsteproducenten kan ta åtkomstbeslut baserat antingen på identiteten för den anropande tjänstekonsumenten, ursprunglig tjänstekonsument, dess uppdragsgivande part eller en kombination av dessa.
Nedanstående bild visar den vanligaste realiseringen av åtkomsthanteringen vid samverkan över flera tjänsteplattformar.
Åtkomstbeslutet för ursprunglig tjänstekonsument delegeras till första tjänsteplattformen i anropskedjan.
Efterföljande tjänsteplattformar verifierar endast föregående tjänsteplattforms åtkomstbehörighet.
Den faktiska tjänsteproducenten verifierar sista tjänsteplattformens åtkomstbehörighet och i vissa fall även ursprunglig konsuments och uppdragsgivande verksamhets åtkomstbehörighet.
Om åtkomstbehörighet saknas returneras ett felmeddelande. Detta gäller för hela kedjan.
4. Generella regler för en tjänsteplattform
Alla tjänsteplattformar ska tillämpa de regler som beskrivs i detta dokument samt de principer och regler som beskrivs i:
En tjänsteplattform behöver i dagsläget stödja RIV-TA Basic Profile version 2.1. För logisk adressering behöver en tjänsteplattform vara bakåtkompatibel mot RIV-TA Basic Profile 2.0, se avsnitt om logisk adressering nedan.
Syftet med detta kapitel är att ge en sammanfattning av de regler från RIV-TA som berör tjänsteplattformar och alla dess ingående komponenter, samt att hänvisa till de dokument där reglerna har sina gällande formuleringar. Regler prefixas med “TP” (tex TP Regel #1).
Observera att komponenter dessutom kan ha kompletterade regler som beskrivs under respektive komponent.
TP Regel #1 Användning av tjänstekontrakt Utgått
Motiv att ta bort regeln: Det är svårt att motivera varför en tjänsteplattform inte skulle få hantera andra protokoll och anses vara en onödig begränsning
TP Regel #2 Transportprotokoll
Tjänstekomponenter skall skicka och ta emot anrop över HTTPS, om inte annat anges i regelverk för specifika tjänstekomponenter.
Motiv: Följsamhet mot RIV Tekniska Anvisningar Basic Profile 2.1
se även RIV Tekniska Anvisningar - Kryptering för ytterligare information.
TP Regel #3 Autentisering
HTTPS-sessioner skall autentiseras med hjälp av HTTPS Mutual Authentication. Det innebär att båda parter autentiserar varandra med hjälp av certifikat.
Tjänstekonsumentens identitet fastställs utifrån attributet SerialNumber i dess certifikat. Certifikat utgivna av SITHS är utformade på detta sätt.
Motiv: Följsamhet mot RIV Tekniska Anvisningar Basic Profile 2.1
TP Regel #4 Bevarande av ursprunglig avsändares identitet i http-header
Efter att autentisering skett enligt ovan, och aktuell förfrågan INTE innehåller http header x-rivta-original-serviceconsumer-hsaid, skall tjänsteplattformen infoga denna http header.
Tjänstekonsumentens identitet (HSA-ID) skall hämtas från inkommande klientcertifikat
Identiteten sätta i http-headern i utgående anrop till vilket kan vara till en tjänsteplattform eller den faktiska tjänsteproducenten.
För beskrivning av x-rivta-original-serviceconsumer-hsaid se RIV Tekniska Anvisningar Basic Profile 2.1, Regel #23.
Motiv: Följsamhet mot Detta görs för att nästa komponent i kedjan inte kommer att kunna läsa ursprungsavsändarens certifikat.
Observera: Det är endast betrodda tjänsteplattformar som får sätta denna header. Regel 4,5,6 ska läsas i samverkan
TP Regel #5: Propagering av ursprunglig sändares identitet i http-header
En tjänsteplattform skall propagera ursprunglig avsändares identitet i http-headern ”x-rivta-original-serviceconsumer-hsaid”. Det innebär att om http-headern är satt i ett inkommande anrop så skall tjänsteplattformen föra vidare http-headern i anropet till nästa part i anropskedjan.
Motiv: Detta ger möjlighet att föra vidare information om ursprunglig avsändares identitet även om anropet passerar en eller flera mellanliggande tjänsteplattformar.
TP Regel #6: Säkerställ att anropande tjänsteplattform är betrodd
För att säkerställa en pålitlig propagering av ursprunglig avsändares identitet skall en tjänsteplattform säkerställa att den endast för vidare ursprunglig avsändares identitet från andra tjänsteplattformar som är betrodda. För anrop där denna kontroll misslyckas skall ett felmeddelande skickas tillbaka till avsändaren och felet skall loggas som ett potentiellt försök till intrång.
Motiv: Om inte denna kontroll utförs så riskerar en tjänsteplattform att bli utsatt för angrepp från av avsändare som skickar med en annan tjänstekonsuments identitet (HSA-ID) i http-headern och därmed otillåtet kan uppträda med dess identitet.
TP Regel #7: Vidarebefordran av anropskedja i RIV-header
En tjänsteplattform skall sätta och propagera meddelandets anropskedja i http-headern ”x-rivta-routing-history”. Det innebär att:
Om http-headern inte är satt i ett inkommande anrop så skall avsändaren betraktas som ursprunglig avsändare och dess identitet (HSA-ID) skall hämtas från inkommande klient certifikat och sättas först i http-headern. Därefter skall tjänsteplattformens eget HSA-id adderas, där tecknet "#" används som avskiljare. Headern skickas i utgående anrop till nästa tjänstekomponent (vilket kan vara den slutgiltiga tjänsteproducenten).
Om http-headern är satt i ett inkommande anrop så skall tjänsteplattformens eget HSA-id adderas, där tecknet "#" används som avskiljare. Headern skickas i utgående anrop till nästa tjänstekomponent (vilket kan vara den faktiska tjänsteproducenten).
Motiv: Detta ger möjlighet att föra vidare information om den väg ett meddelande tagit mellan ursprunglig tjänstekonsument och slutgiltig tjänsteproducent. Informationen används även för att implementera skydd för rundgång. Den är också viktig vid felsökning.
TP Regel #8: Skydd mot rundgång
Två tjänsteplattformar kan konfigureras i sina respektive tjänsteadresseringskataloger så att de ömsesidigt pekar ut varandra för samma tjänstekontrakt och logiska adress. Risken för detta ökar i och med att mekanismen standardvägval används. Detta skulle leda till rundgång, att de oupphörligen skulle skicka samma meddelande mellan varandra till dess att en eller båda plattformarna slås ut. För att förhindra detta skall en tjänsteplattform implementera skydd mot rundgång.
En tjänsteplattform skall analysera headern ”x-rivta-routing-history” för alla inkommande meddelanden.
Om dess egen identitet finns registrerad så innebär det att samma meddelande når plattformen en andra gång, och rundgång har identifierats.
Vid rundgång skall meddelandet inte skickas vidare. Istället ska felmeddelandet VP014 returneras.
TP Regel #9: Vidarebefordran av http-headers
Utöver reglerna TP Regel #5 och TP Regel #7 så gäller att en tjänsteplattform alltid skall vidarebefodra http-headers vars namn börjar med "x-rivta-". Dessa vidarebefordras oförändrade.
Motiv: Detta ger möjlighet att föra vidare information även om anropet passerar en eller flera mellanliggande tjänsteplattformar.
TP Regel #10 Logisk adressering
Alla tjänstekomponenter skall förutsätta att inkommande meddelanden har en specificerad mottagare i form av en logisk adress. En tjänsteplattform behöver i dagsläget stödja förmedling av anrop utformade enligt RIV TA Basic Profile version 2.0 och 2.1. Det enda skillnad som behöver göras från ett förmedlingsperspektiv är att utläsa den logiska adressen från olika SOAP headers.
RIV-TA Basic Profile 2.0: {WS-Addressing 1.0 Namespace }:To
RIV-TA Basic Profile 2.1: {urn:riv:itintegration:registry:1}:LogicalAddress
Motiv: Följsamhet mot RIV Teknisk Anvisningar Basic Profile 2.0, Regel #8, respektive RIV Tekniska Anvisningar Basic Profile 2.1, Regel #8
TP Regel #11 Exponering av URL:er Utgått
TP Regel #12 Hantering av tekniska fel
I de fall där en tjänstekomponent behöver generera ett felmeddelande som beskriver ett tekniskt fel, skall detta göras med hjälp av SOAP Fault. Detta till skillnad från logiska fel, som ska kommuniceras med vanliga svarsmeddelanden och definieras i respektive tjänstekontraktsbeskrivning.
Motiv: Följsamhet mot RIV Tekniska Anvisningar Basic Profile 2.1, Förtydligad hantering av tekniska fel.
TP Regel #13: Felhantering vid nekad åtkomst från tjänsteproducent
Den virtuella tjänsten ska, när den får ett HTTP 403 Forbidden, omforma detta fel till ett SOAP Fault utformat med felkod VP016 enligt vad som beskrivs i VP Regel #8.
Motiv: Följsamhet mot RIV Tekniska Anvisningar Basic Profile 2.1, Regel #28 Hantering av nekad åtkomst.
TP Regel #14: Tjänsteplattformar ska propagera SOAP fel
En tjänsteplattform som tar emot ett SOAP fel ska propagera detta till nästa aktör i en anropskedja
Motiv: Fel måste hanteras och distribueras på ett enhetligt sätt inom och mellan alla komponenter som omfattas av regelverket RIV-TA.
5. En tjänsteplattforms komponenter
Nedanstående avsnitt beskriver de ingående komponenterna lite mer i detalj och redovisar komponentspecifika regler som kompletterar de som gäller allmänt för tjänsteplattformen.
Endast komponenterna Virtualiseringsplattform och Tjänsteadresseringskatalog är obligatoriska att realisera.
5.1 Tjänsteadresseringskatalog
Tjänsteadresseringskatalogen (TAK) är en stödtjänst som erbjuder administration och åtkomst av information som ligger till grund för den adressering och behörighetskontroll som utförs i en komponenter inom tjänsteplattformen. TAK har till uppgift att:
Hantera information om vägval genom att översätta logiska adresser till tekniska adresser, i praktiken URL:er.
Hantera information om konsumenters åtkomstbehörighet.
Den primära konsumenten av informationen i tjänsteadresseringskatalogen är komponenter inom tjänsteplattformen. Konsumtion av TAK inom en tjänsteplattform regleras inte av några nationella tjänstekontrakt. För extern konsumtion finns vissa nationella tjänstekontrakt, se regel #5 nedan.
5.1.1 Anropsbehörighet
Det finns tre olika sätt att sätta upp anropsbehörigheter i TAK: som explicit behörighet, hierarkisk behörighet, eller som standardbehörighet. Explicit behörighet är grunden för behörighet i en tjänsteplattform. Detta kan kompletteras med hierarkisk och standardbehörighet i en viss instans beroende på behov och möjligheter.
Explicit behörighet
En tjänstekonsument ges behörighet att göra ett anrop med ett visst tjänstekontrakt och adressera anropet till en specificerad logisk adressat.
Hierarkisk behörighet
En tjänstekonsument ges behörighet att göra ett anrop med ett visst tjänstekontrakt och adressera anropet till alla adressater under en specificerad nod i HSA organisationsträd som stödjer tjänstekontraktet.
De logiska adresserna ska bestå av ett HSA-id som representerar en verksamhet eller organisation. Genom att tillföra information om de hierarkiska sambanden mellan logiska adresser (exempelvis via en fil över organisationsträdet i HSA) skapas möjligheten att definiera behörighet via en överliggande adress i hierarkin. I de fall där ingen explicit behörighet hittas så hämtas närmast överliggande logiska adress i hierarkin och prövar om den har behörighet definierat. Detta upprepas tills en behörighet hittas eller roten nås.
Roten i organisationshierarkin består definitionsmässigt av den logiska adressen "SE".
Standardbehörighet
En tjänstekonsument ges behörighet att göra ett anrop med ett visst tjänstekontrakt och adressera anropet till alla adressater som stödjer tjänstekontraktet. Standarbehörighet defineras genom att den logiska adressen "*" ingår i konfigurationen av en åtkomstbehörighet för tjänstekonsument i en tjänsteplattforms tjänsteadresseringskatalog.
Detta kan vara mycket användbart för samverkan där en tjänstekonsument ska nå alla logiska adresser för ett tjänstekontrakt. På detta sätt behövs endast en behörighetstakning istället för hundratals. Ett exempel är att en vårdgivares via dess tjänstekonsument vill kunna skicka elektronisk remiss till andra vårdgivare i Sverige som erbjuder denna tjänst. Ett annat tillämpningsområde kan vara för att ge tjänsteplattformar anropsbehörighet till varandra.
5.1.2 Vägval
Det finns tre olika sätt att sätta upp vägval i TAK: som explicit vägval, hierarkiskt vägval, eller som standardvägval. Explicit vägval är grunden för logisk adressering i en tjänsteplattform. Detta kan kompletteras med hierarkiskt och standardvägval i en viss instans beroende på behov och möjligheter.
Explicit vägval
En tjänsteproducent adresseras med en specificerad logisk adress. Vid en sökning i tjänsteadresseringskatalogen förväntas en exakt matchning av den logiska adressen för att en teknisk anslutningsadress ska returneras.
Hierarkiskt vägval
En tjänsteproducents tekniska anslutningsadress kan logiskt adresseras med verksamhetsadresser under en specificerad nivå i ett verksamhetsträd som nyttjas.
De logiska adresserna ska bestå av ett HSA-id som representerar en verksamhet eller organisation. Genom att tillföra information om det hierarkiska sambanden mellan logiska adresser (exempelvis via en fil över organisationsträdet i HSA) skapas möjligheten att definiera vägval via en överliggande adress i hierarkin. I de fall där inget explicit vägval hittas så hämtas närmast överliggande logiska adress i hierarkin och prövar om den har vägval definierat. Detta upprepas tills ett vägval hittas eller roten nås.
Roten i organisationshierarkin består definitionsmässigt av den logiska adressen "SE".
Standardvägval
En tjänsteproducents tekniska anslutningsadress kan logiskt adresseras med vilken logisk adress som helst. Alla logiska adressater kommer matchas mot samma vägval. I TAK representeras ett standardvägval av att den logiska adressaten registreras som en asterisk (“*”).
Exempel på tillämpning är att en regional tjänsteplattform kan definiera ett standardvägval till den nationella tjänsteplattformen för att inte behöva registrera samtliga logiska adresser som finns i den nationella TAKen. Detta blir särskilt tillämpligt för sådana adresser där den nationella plattformen använder hierarkiskt vägval men där den regionala plattformen inte gör det.
Exempel: Hur kan olika vägvalsmekanismer kombineras i en anropskedja
RPT1 använder standardvägval till “ntjp.inera.se” (NTJP) om det inte finns något explicit vägval konfigurerat för den angivna logiska adressen
Eftersom ”SE161123” inte finns konfigurerat så skickas anropet till “ntjp.inera.se” (NTJP)
NTJP använder hierarkiskt vägval om det inte finns explicita vägval konfigurerade för den angivna logiska adressen
Eftersom “SE161123” inte finns konfigurerat så söker NTJP i HSA trädet
“SE161123” hittas och ligger under “SE1601”
Eftersom “SE1601” har explicit vägval så skickas anropet till “rpt.vgr.se” (RPT2)
RTP2 använder enbart explicita vägval
Eftersom “SE161123” finns konfigurerat så skickas anropet till producenten “p1.vgr.se”
TAK Regel #1: Lagring av vägvalsinformation
Tjänsteadresseringskatalogen skall lagra vägvalsinformation. Denna information består av följande delar:
Tjänstekontrakt inklusive tjänstedomän, i formatet URN, plus kontraktets major-version. Exempel: urn:riv:clinicalprocess:activityprescription:prescribe:ChangePrescription:1
Logisk adress till en organisationsenhet eller ett IT-system
Version av RIV-TA i kortformat, t.ex. ”rivtabp21”
Associerad teknisk adress, i form av en http URL.
TAK Regel #2: Exponering av vägvalsinformation
Tjänsteadresseringskatalogen skall exponera sin registrerade vägvalsinformation till tjänsteplattformens komponenter över valfritt gränssnitt.
TAK Regel #3: Lagring av anropsbehörigheter
Tjänsteadresseringskatalogen skall kunna lagra anropsbehörigheter. Dessa anropsbehörigheter består av följande delar:
Tjänstekontrakt inklusive tjänstedomän, i formatet URN, plus kontraktets major-version. Exempel: urn:riv:clinicalprocess:activityprescription:prescribe:ChangePrescription:1
logisk adress
tjänstekonsumentens identitet
TAK Regel #4: Exponering av anropsbehörigheter
Tjänsteadresseringskatalogen skall exponera sina registrerade anropsbehörigheter till tjänsteplattformens komponenter över valfritt gränssnitt.
TAK Regel #5: Tjänstekontrakt
Tjänsteadresseringskatalogen ska implementera den nationella tjänstedomänen infrastructure:itintegration:registry för att stödja externa tjänstekonsumenter. Se http://rivta.se/domains/infrastructure_itintegration_registry.html.
5.2 Engagemangsindex
Om en tjänsteplattform har en aggregeringsplattform kan även engagemangsindex behöva implementeras. Här beskrivs engagemangsindexets funktion övergripande och de regler som engagemangsindex behöver uppfylla.
Engagemangsindex är en stödtjänst där det finns information om vilka källsystem som har information om en invånare/patient. Engagemangsindex har till uppgift att avlasta aggregerande tjänster genom att peka ut vilka tjänsteproducenter som har uppgifter av den typ som den specifika tjänsten hanterar. Med hjälp av denna information behöver tjänsten enbart kontakta dessa tjänsteproducenter för att kunna leverera ett fullständigt resultat.
Engagemangsindex är utförligt beskrivet i T-boken (Referensarkitektur för vård och omsorg - T-boken) samt i tjänstekontraktsbeskrivningen för domänen: engagemangsindex - itintegration:engagementindex.
Engagemangsindex har även en tjänstedomän som innehåller de tjänstekontrakt som används för att hantera informationen. För detaljer se aktuell Tjänstekontraktsbeskrivning för EI i domänen engagemangsindex - itintegration:engagementindex.
Engagemangsindex producerar tre tjänster
Update används av informationsbärande system för att uppdatera information i indexet
FindContent används av aggregerande tjänster för att söka efter information i indexet
ProcessNotification används för att synkronisera information mellan index. ett index kan vara producent eller konsument eller både och beroende på synkroniseringmönster
EI Regel #1: Datakommunikation
Engagemangsindex skall stödja alla kommunikationsregler i de RIV TA-profiler som tjänstedomänen itintegration:engagementindex tillämpar.
EI Regel #2: Tjänstedomän
Tjänsten ska implementera tjänstedomänen itintegration:engagementindex. Det innefattar bland annat:
Datamodell för att lagra engagemangsdata.
Stöd för att replikera engagemangsdata med andra engagemangsindex, i enlighet med tjänstekontraktsbeskrivningen.
Tjänst för att exponera en persons vårdengagemang mot aggregeringsplattformen.
Se tjänstekontraktsbeskrivning för engagemangsindex för komplett information.
5.3 Virtualiseringsplattform
Virtualiseringsplattformen uppfyller T-bokens arkitekturella princip om lös koppling mellan tjänstekonsumenter och -producenter. Den logiska adressen pekar ut en tjänsteproducents URL via information i TAK. På detta sätt döljs systems tekniska anslutningsadress från tjänstekonsumenten. En verksamhet kan därmed förändra sin systemstruktur utan att behöva påverka logiska adresser och därmed tjänstekonsumenter. Det enda som behöver uppdateras är informationen om anslutningsadress i TAK.
Virtuella tjänster agerar som en ställföreträdare för alla tjänsteproducenter som implementerat ett tjänstekontrakt och anslutit till aktuell tjänsteplattform. Den uppträder som en tjänsteproducent men vidarebefordrar endast frågan till den faktiska producenten som den logiska adressen representerar och returnerar svaret till tjänstekonsumenten.
En virtuell tjänst består översiktligt av två funktionsblock
En tjänsteproducent baserad på samma tjänstekontrakt som den virtuella tjänsten
En tjänstekonsument som anropar producenten. tjänstekonsumenten tar hjälp av tjänsteadresseringskatalogen (TAK) för att:
Validera att aktuell tjänstekonsument har rätt att anropa den den logiska adressaten med det tjänstekontraktet.
Erhålla den tekniska adressen (URL) till mottagande tjänsteproducent.
VP Regel #1: Datakommunikation
Virtualiseringsplattformen skall följa alla kommunikationsregler i aktuella RIV-profiler.
VP Regel #2: Åtkomstkontroll
Virtualiseringsplattformen skall ha möjlighet att vid inkommande anrop kontrollera åtkomstbehörigheten för kombinationen av följande:
Anslutande tjänstekonsument.
Meddelandets logiska mottagaradress
Anropat tjänstekontrakt
Åtkomstbesluten skall baseras på information som lagras i tjänsteadresseringskatalogen. Om åtkomst inte tillåts skall den inkommande förfrågan inte vidarebefordras. Istället skall ett felmeddelande returneras, enligt aktuell RIV-profil.
Behörighet kan kontrolleras mot TAK enligt nedanstående metoder:
(Observera att metod 2 och 3 är valfria)
Explicit behörighet
Hierarkisk behörighet
Standardbehörighet
Om varken 1, 2 eller 3 identifierar en behörighet så returneras ett VP007-fel till tjänstekonsumenten.
VP Regel #3: Generera tjänst med utgångspunkt från WSDL Utgått
VP Regel #4: Vägval för anrop
För att kunna vidarebefordra inkommande meddelanden till rätt tjänsteproducent, behöver virtualiseringsplattformen kunna slå upp den tekniska adress som meddelandet ska vidarebefordras till. Denna information tas fram ur den information som är registrerad i tjänsteadresseringskatalogen, eller via andra metoder, baserat på:
Meddelandets logiska mottagaradress
Anropat tjänstekontrakt, inklusive tjänstedomän och kontraktets huvudversion
Anropad RIV-profil
Uppslag av vägval kan göras enligt nedanstående metoder och prioritet:
(Observera att metod 2 och 3 är valfria)
Explicit vägval
Hierarkiskt vägval
Standardvägval
Om varken 1, 2 eller 3 identifierar ett vägval så returneras ett VP004-fel till konsumenten.
VP Regel #5: Vidarebefordran av anrop
Virtualiseringsplattformen skall, såvida autentisering, åtkomstkontroll, vägval och övrig validering lyckats, skicka tjänstekonsumentens meddelande vidare till tjänsteproducenten. Svarsmeddelandet från tjänsteproducenten, oavsett om det är ett ordinarie svar eller ett felmeddelande, skall därefter returneras till tjänstekonsumenten. Se också