Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

Innehållsförteckning
maxLevel3

T-boken [2] beskriver de övergripande kraven på den tekniska arkitekturen. En delmängd av dessa krav omsätter T-boken i en konceptuell arkitektur uppbyggd av komponenter som tillsammans benämns T- bokens Tjänsteplattform.

...

  • Administration av systemförändringar blir minimal. VP minimerar dominoeffekter vid förändringar i system hos en samverkande part eller i nationella tjänster.
  • VP erbjuder en lös koppling mellan två samverkande parter.
  • Administration av organisationsförändringar blir minimal genom att VP erbjuder en flexibel adresseringsmodell mellan samverkande parter.
  • Följsamhet mot nationellt fastställda tjänstekontrakt.

Icke funktionella krav

Krav IdBeskrivningTyp
K-1Införandet av en virtuell tjänst i samverkan mellan tjänstekonsument och tjänsteproducent ska maximalt tillföra 40 millisekunder i exekveringstid, i förhållande till ett anrop utan mellanhand.Prestanda
K-2Virtualiseringsplattformen ska stödja gängse modeller för lastbalansering, så som klustring. Virtualiseringsplattformen skalas på samma sätt som vanliga web-applikationer.Skalbarhet
K-3All kommunikation ska säkras enligt RIV Tekniska Anvisningar Basic Profile 2.0 (https med ömsesidig autentisering). Detta innebär att båda parter skall presentera giltiga certifikat vid upprättandet av en säker förbindelse (sk SSL-handshake).Säkerhet
K-4VP skall enkelt kunna utökas med ny funktionalitet. Detta kan t.ex. vara att klara av framtida konverteringar mellan olika RIV-TA-profiler.Utökningsbarhet
K-5

VP ska kunna driftsättas på alla plattformar där

Mule ESB erbjuder installationsstöd

finns Java. Det täcker alla vanligt förekommande Linux-, Unix- och Windowsversioner.

Flexibilitet
K-6Virtualiseringsplattformen ska ha stöd för teknisk monitorering
av Mule ESB
. Detta innebär också riktat stöd för monitorering av svarstider hos tjänsteproducenter och att VP loggar på loggformat lämpliga för övervakning av gängse övervakningsverktyg.Monitorering
K-7
Virtuella tjänster
Tjänster är tillståndslösa mellan anrop, vilket gör att s.k. fail-over inte behöver införas för att uppnå hög tillgänglighet. Hög tillgänglighet bedöms kunna uppnås genom klustring.Tillgänglighet
K-8Virtualiseringsplattformen (VP) ska inte vara beroende av att Tjänstekatalogens (TAK) tjänster för att hämta behörighet och routing är tillgänglig online, vilket medför att VP ska kunna utföra sitt uppdrag även när TAK inte är tillgänglig.Tillgänglighet
K-9
 

VP ska levereras

som öppen källkod under licensen LGPL. FlexibilitetK-10VP ska levereras

med automatiserade last- och robusthets-tester. Plattformen kommer - även om den är distribuerad - att vara förknippad med höga SLA-krav. Robust exekvering av inkomna meddelanden med minimal overhead, timme ut och timme in, är avgörande för att plattformen ska anses tillförlitlig.

 Prestanda
K-
11
10

All utveckling av VP ska baseras på portabla, komponentbaserade byggen enligt en väl beskriven produktstruktur.

 Flexibilitet
K-
12
11Virtualiseringar ska kunna skapas mha en enkel instruktion. Detta utifrån en kanonisk, abstrakt WSDL med tillhörande scheman för ett tjänstekontrakt och därefter kunna skapa paketeringar per tjänstekontrakt som kan slutkonfigureras och driftsättas i olika instanser av virtualiseringsplattformen.

Funktionella krav
Ankare
FunktionellaKrav
FunktionellaKrav

Detaljerade krav på funktionalitet i Virtualiseringsplattformen. 

...

Krav IdBeskrivningTyp
FK-1Autentisering för HTTPS ska ske via "mutual authentication" i två led eller fler led för Virtualiseringsplattformen enligt RIV Tekniska Anvisningar.Säkerhet
FK-2Auktorisation för HTTPS ska ske via det HSA-id ett anropande system presenterar i certifikatets "subject"Säkerhet
FK-3Autentisering och Auktorisation för HTTP ska ske genom användning av information i HTTP-headers.Säkerhet
FK-4All intern kommunikation mellan SKLTP-komponenter ska gå via HTTP med extra verifiering av anslutande part enligt FK-3.Säkerhet
FK-5VP ska stödja "RIV-TAs frivilliga anvisning angående HTTP Header för att ange ursprunglig avsändare".
FK-6

VP ska hantera olika versioner av RIV-TA profiler, dvs en översättning mellan olika RIV TA-profiler (transformering mellan olika kuverterings- och säkerhetsmodeller).


FK-7

Felmeddelande som orsakas i virtualiseringsplattformen ska rapporteras som SOAPFault till tjänstekonsumenten med tillhörande HTTP Status kod (500), samt loggas. ID i SOAPFault ska finnas för korrelering mot en loggfil.

Felhantering
FK-8Felsituationer som är förutsägbara baserade på inkonsistens mellan metadata i meddelandetrafik och innehåll i tjänstekatalog, ska redovisas i SOAPFaults med mycket stor tydlighet, så att det inte råder något tvivel om orsaken och vad som behöver göras (se standardiserade felkoder nedan).Felhantering
FK-9

Alla former av fel ska kunna spåras i efterhand då dessa loggas persistent. Loggnivån ska vara konfigurerbar för att kunna spara extra mycket spårningsinformation.

Felhantering
FK-10VP ska redovisa svarstider mot bakomliggande tjänsteproducenter dels i interna loggar och dels till anropande system.Monitorering 
FK-11

VP ska under drift kunna hämta och uppdatera sin konfiguration från en Tjänstekatalog (TAK). Detta innebär att VP behöver ha en cache med TAK konfiguration om en sådan läsning misslyckas för att säkerställa VPs driftsfunktionalitet. Denna cache uppdateras vid ett lyckat anrop.


FK-12

VP ska under drift kunna hämta och uppdatera sin HSA konfiguration från en lokalt inläst HSA-fil. Detta innebär att VP behöver ha en cache med HSA konfiguration om en sådan läsning misslyckas för att säkerställa VPs driftsfunktionalitet. Denna cache uppdateras vid ett lyckat anrop.


FK-13VP ska per tjänst kunna konfigurera ett separat time-out värde. Är inget time-out värde angivet skall ett defaultvärde användas(konfigurerbart).
FK-14VP ska per tjänst kunna konfigurera om keep-alive skall användas i kommunikationen.
FK-15VP ska stödja "RIV-TAs frivilliga anvisning angående status för anrop till aggregerande tjänster".
FK-16VP ska per tjänst kunna besvara ett tjänsteanrop med ?wsdl. Detta så att tjänstekonsumenter alltid kan få tillbaka aktuell wsdl och scheman för tjänsten. Detta skall gälla även om det finns en reverse-proxy/lastbalanserare framför VP.Tillgänglighet
FK-17

Såväl vägval som behörigheter ska kunna registreras högre upp i HSA-s organisationsträd än på vårdgivarnivå. För vägval kan registrering typiskt ske på den nivå som det tjänsteproducerande systemet stöttar respektive organisation och för behörighet på den nivå i organisationen som konsumenten skall ha access.

Säkerhet
FK-18

Logisk adress kan anges som VG#VE där VG är vårdgivares HSAID och VE vårdenhets HSAID.

Not: Denna adressering får endast användas efter godkännande från Inera. Detta krav har lagts till här då det är en existerande funktion i SKLTP. Funktionen kan dock komma att avvecklas. Se FK-17 som är en generellt krav för klättring i HSAID-trädet.

Säkerhet
 FK-19 VP ska kunna göra ett nytt försök att anropa producent efter ett misslyckat anrop. Tiden mellan anropen ska vara konfigurerbar och funktionen ska även kunna stängas av. Stabilitet
 FK-20 VP ska kunna hantera och exponera ett korrelations-id (x-skltp-correlation-id) som används som en gemensam identitet vid kommunikation över flera system och vid loggning. Om korrelations-id saknas ska ett sådant kunna genereras av VP.Monitorering 
FK-21VP ska kunna logga till en annan applikation via socket.

...

Standardiserade felkoder
Ankare
VP-felkoder
VP-felkoder

Implementationen av en virtualiseringsplattform skall returnera standardiserade SoapFault - felmeddelanden enligt följande:

FelkodFeltextKommentar
VP001

Riv-version inte konfigurerad för den anslutningspunkt som den virtualiserade tjänsten publicerar.


VP002

SERIALNUMBER ej tillgängligt i konsumentens certifikat i namn-attributet.


VP003

ReceiverId ej ifylld i RivHeadern i inkommande meddelande.


VP004

Det finns ingen tjänsteproducent definierad i Tjänstekatalogen som matchar ReceiverId, Tjänstekontrakt och dagens datum.


VP005

Det finns ingen tjänsteproducent definierad i Tjänstekatalogen som matchar Riv-version, konvertering mellan rivversioner inte implementerat.


VP006

Det finns mer än 1 tjänsteproducent definierad i Tjänstekatalogen som matchar ReceiverId, Tjänstekontrakt och dagens datum. Tyder på att Tjänstekatalogen är felkonfigurerad.


VP007

Den finns ingen behörighet för den tjänstekomponent som anropar att samverka med tjänsteproducenten. Avser behörigheter definierade i tjänstekatalogen.


VP008

Ingen kontakt med tjänstekatalogen. Innebär att vägvalsagenten inte kunnat hämta vägvalsinformation varken vid uppstart eller vid något efterföljande anrop.


VP009

Fel vid kontakt med tjänsteproducenten.


VP010

Ingen adress angiven i tjänsteproducenten


VP011Anropande konsument är inte betrodd att göra http-anrop till VPAnropande konsument kan tex vara en annan SKLTP komponent,
en lastdelare eller tex en reverse proxy. 
VP012Nödvändiga resurser för att VP skall fungera saknas.Virtualiseringsplattformen saknar någon av de resurser som krävs för att den skall kunna fullfölja
sitt uppdrag att hantera routing och behörighet.
VP013

Avsändaren saknar rättighet att lägga till headern x-rivta-original-serviceconsumer-hsaid.


VP014 Anropsförmedlingen för den logiska adressaten har givit upphov till rundgång mellan tjänsteplattformar. Rapportera felet till tjänsteplattformsförvaltningen.

Förtydligande av specifika krav

...

Anrop mot VP sker via HTTPS. Detta protokoll är HTTP över SSL/TLS och stödjer klient autentisering autentisering av klienten med hjälp av klientens X509 certifikat. Detta kallas även för ”mutual authentication”,  förklaras vilket förklaras mer nedan. Då man upprättat en förbindelse över HTTPS har man även erhållit insynsskydd av de meddelanden som transporteras. Tjänsteplattformens grundfunktionalitet är att dirigera anrop från tjänstekonsumenter via VP till tjänsteproducenter. Detta innebär att vi kommer att etablera 2 säkra förbindelser, en från tjänstekonsumenten till virtualiseringplattformen(1) och en från virtualiseringplattformen till tjänsteproducenten(2), se bild nedan.

...

Detta innebär att en tjänsteproducent autentiserar anropande VP genom att lita på den CA som är utställare av VP's certifikat.

FK-2, Auktorisation av anropande system
Ankare
AuktoriseringTAK
AuktoriseringTAK

Allt underlag för behörighetsbeslut finns lagrat i TAK. VP använder denna information för att auktorisera anropande tjänst mot den tjänst man vill nå. Anropande tjänsts identitet hämtas från det klient certifikat som används när man upprättar kommunikationen. I bilden nedan visas stegvis hur behörigheten kontrolleras vid ett anrop.

...

Här auktoriserar den nationella VP tjänstekonsumentens anrop till den regionala VP. Därefter auktoriserar den regionala VP anropet till tjänsteproducenten. Tjänsteproducenten auktoriserar inkommande anrop från den regionala VP t.e.x med ACL-funktionalitet.

FK-3, Intern HTTP kommunikation
Ankare
InterntHTTP
InterntHTTP

Bakom en reverse proxy, på ett känt nätverk (eget nätsegment) vill man minimera kommunikationsoverhead så mycket som möjligt. För att stödja detta kan SKLTP komponenter ansluta till VP genom att bifoga information om avsändare, logisk tillhörighet och ip-adress. 

...

Lägger man till sist på en regional tjänsteplattform även på producent-sidan så blir bilden följande:

Ankare
RegionalPlattformInFlow
RegionalPlattformInFlow

Dvs, den regionala tjänsteplattform på producent-sidan kommer att agera på liknande sätt som den nationella tjänsteplattformen:

  • Den skickar oxå också bara vidare http-headern
  • Behörighetskontroll görs också på HSA-ID för den mest näraliggande komponenten i anropskedjan, dvs den nationella tjänsteplattformens HSA-ID.

...

Då denna header kan användas för behörighetskontroll i källsystem så måste tjänsteplattform säkerställa att den enbart tar emot denna header från betrodda parter, typiskt andra angränsande tjänsteplattformar som den kommunicerar med. Ett sätt att säkerställa att avsändaren är känd kan vara är att hålla en lista på ip-nummer som man litar på och kontrollera mot den innan man accepterar inkommande header för ursprunglig avsändare.

...

  • Typiskt terminerar man inkommande https/ssl-anrop i lastbalanseraren eller reverse-proxy och måste därmed skicka in klient-certifikatet i en separat http-header så att VP kan extrahera HSA-ID't från det certifikatet.
    • NotNotera: SKLTP's implementation av VP har standardiserat namnet på denna http-header till "x-vp-auth-cert"
  • Vidare måste oxå också lastbalanseraren/reverse-proxy skicka vidare ev http-headern för ursprunglig avsändare, ”x-rivta-original-serviceconsumer-hsaid", om den är med i inkommande anrop.
    • För att VP skall kunna säkerställ säkerställa att denna header kommer från en betrodd avsändare måste också lastbalanseraren/reverse-proxy skicka in ip-adressen för den som anropat lastbalanseraren/reverse-proxy i en separat http-header.

...