Jämförda versioner

Nyckel

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

...

Utgåva

Revision Datum

Beskrivning

Ändringarna gjorda av

Definitiv revision fastställd av

PA1

2013-11-05

Första utgåva av anvisningar för valfria tillägg till RIV-TA v2.1.


Innehåller:

  1. Anvisning för att ange ursprunglig avsändare
  2. Anvisning för att ange status på bearbetning i aggregerande tjänst

magnus.larsson@inera.se



A

2013-11-13

Uppdaterade mall och några typos

Lars Erik Röjerås


1.1

2014-09-08

Uppdaterat till Inera mall

Lennart Eriksson




1          Översikt

Detta dokument beskriver anvisningar för valfria tillägg till regelverket för RIV Tekniska Anvisningar Basic Profile 2.1. Anvisningarna är generellt sett valfria men kan för vissa typer av komponenter, t ex tjänsteplattformar, vara obligatoriska. Enskilda domäner kan också ta beslut om att göra vissa valfria tillägg obligatoriska inom sin domän, se respektive domäns Tjänstekontraktsbeskrivning.

...

  • RIV Tekniska Anvisningar – Basic Profile med http header för att ange ursprunglig avsändare 2.1
  • RIV Tekniska Anvisningar – Basic Profile med status för anrop till aggregerande tjänster 2.1


1.1          Tillgänglighet

Detta dokument är publicerade 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 Landsting) anges (men inte på ett sätt som antyder att de godkänt eller rekommenderar din användning av verket).

Denna profil är verifierad genom exempelapplikationer. Källkoden [R11] för dessa distribueras under öppen-källkodslicensen Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)


1.2         Referenser


Ref

Dokument

Beskrivning och ev. webbadress

Ansvarig

[R1]          

T-Boken

T-boken. Styrande tekniska principer och teknisk referensarkitektur för den nationella arkitekturen:

Webblänk till PDF för REV B:

http://rivta.se/documents/ARK_0019  

Arkitektur och regelverk, Center för eHälsa i samverkan

[R2]          

Översikt RIV Tekniska Anvisningar REV D

Bakgrund, motiv, krav samt de principer som ligger till grund för utvecklingen av denna anvisning.

Webblänk till PDF för översikten:

http://rivta.se/documents/ARK_0001  

Arkitektur och regelverk, Center för eHälsa i samverkan

[R3]          

RIV Teknisk Anvisning - Basic Profile 2.1

Anvisningen innehåller regeluppsättningen som definierar profilen.

Webblänk till PDF för anvisningen:

 http://rivta.se/documents/ARK_0002  

Arkitektur och regelverk, Center för eHälsa i samverkan

[R4]          

RIV Teknisk Anvisning Tjänsteschema 2.1

Anvisning för att specificera ett XML-schema (tjänsteschema) för ett tjänstekontrakt. Definierar elementen för WSDL-filens meddelanden.

Webblänk till PDF för anvisningen:

http://rivta.se/documents/ARK_0005  

Arkitektur och regelverk, Center för eHälsa i samverkan

[R5]          

WS-I Basic Profile

”Defines the WS-I Basic Profile 1.1, consisting of a set of non-proprietary Web services specifications, along with clarifications, refinements, interpretations and amplifications of those specifications which promote interoperability ”

Weblänk till WS-I Basic Profile: http://www.ws-i.org/Profiles/BasicProfile-1.1.html

The Web Services Interoperability Organization och ISO

[R6]          

WS-I Simple Soap Binding Profile

“Defines the WS-I Simple SOAP Binding Profile 1.0, consisting of a set of non-proprietary Web services specifications, along with clarifications and amendments to those specifications which promote interoperability”

Weblänk till profilen : http://www.ws-i.org/Profiles/SimpleSoapBindingProfile-1.0.html

The Web Services Interoperability Organization

[R7]          

HCC spec.

SITHS HCC: Certifikat för svensk vård och omsorg.

Webblänk till PDF för REV 2.35: http://www.inera.se/TJANSTER--PROJEKT/SITHS/

Inera AB

[R8]          

SOAP 1.1 spec

Definierar ett XML-baserat protokoll för utbyte av information. Är grunden för den standardisering som går under benämningen ”web services”.

Webblänk till specifikationens hemsida:  http://www.w3.org/TR/2000/NOTE-SOAP-20000508/

W3C

[R9]          

WSDL 1.1 spec

Beskrivningsspråk för web-services. Syftar till att stödja utvecklingsverktyg i design-time och web-service-konsumenter i run-time.

Webbänk till specifikationens hemsida:  http://www.w3.org/TR/wsdl

W3C

[R10]        

Exempel - Tjänsteinteraktion

Alla fragment av WSDL och XML-scheman som finns i detta dokument härrör ur den tjänsteinteraktion som ligger till grund för exempelapplikationerna för Java och .Net.

Mer information återfinns i wikin:

http://rivta.se/wiki

Arkitektur och regelverk, Center för eHälsa i samverkan

[R11]        

Exempel – konsument och producent i Java och .Net

Referensapplikationerna syftar till att vara ett generellt underlag för den utvecklare som ska utveckla en tjänstekonsument eller en tjänsteproducent för en tjänsteinteraktion som följer denna profil. Det är en målsättning att detta ska avlasta nationella projekt från att ta fram projektspecifika kodexempel för varje nationell tjänsteinteraktion som specificeras enligt denna profil.

Mer information återfinns i wikin:

http://rivta.se/wiki

Arkitektur och regelverk, Center för eHälsa i samverkan


2         RIV Tekniska Anvisningar – Basic Profile med http header för att ange ursprunglig avsändare 2.1

2.1         Inledning

Denna anvisning är en påbyggnad på Basic Profile 2.1 för att möjliggöra överföring av information om den ursprungliga avsändarens (tjänstekonsuments) identitet. Överföringen skall ske via en http header med namnet ”x-rivta-original-serviceconsumer-hsaid". Anvisningen är obligatorisk för tjänsteplattformar men frivillig för tjänsteproducenter. Anvisningen påverkar inte tjänstekonsumenter.

Anvisningen innehåller endast regeluppsättningen som definierar profilens avvikelser från ”Basic Profile”. För bakgrund, motiv, krav samt de principer som ligger till grund för utvecklingen av profilen hänvisas till Översikt RIV Tekniska Anvisningar 2.1 [R2].

2.1.1         Målgrupp

Denna anvisning riktar sig dels till leverantörer som implementerar tjänsteplattformar enligt T-boken [R1] och till implementationer av tjänsteproducenter som vill veta identiteten på den ursprungliga tjänstekonsumenten i de fall anropet passerat en eller flera tjänsteplattformar på vägen till tjänsteproducenten.

2.1.2        Syfte

Syftet med denna anvisning är att beskriva en utökning av basprofilen som ger möjlighet att föra över information om den ursprungliga avsändarens (tjänstekonsuments) identitet till en tjänsteproducent. En tjänsteproducent kan använda denna information till exempel för loggning eller behörighetsmekanismer.

...

Till sist ett exempel där vi vänder på anropskedjan för att visa hur det ser ut med en tjänsteproducent som sitter bakom en applikationslokal tjänsteplattform som i sin tur anropas av en regional tjänsteplattform. Tjänstekonsumenten i detta exempel anropar den nationella tjänsteplattformen som i sin tur anropar den regionala. Det blir nu den nationella tjänste-plattformen som fångar upp identiteten från tjänstekonsumentens klient certifikat och sätter det i http headern. Den regionala och den applikationslokala tjänsteplattormen för bara vidare inkommande http header till sitt utgående anrop:


2.2        Beskrivning av namnregler

Denna profils namn är ”RIV Tekniska Anvisningar – Basic Profile med http header för att ange ursprunglig avsändare 2.1” och refereras ${profil}

Denna profils kortnamn är ”rivtabpos21” och refereras ${profilKortnamn}


2.3        Följsamhet mot externa regelverk

Här definieras de externa regelverk (t.ex. profiler) som utgör regelbas för denna profil. Det är en målsättning att denna profil ska kunna läsas uppifrån och ner utan detaljerad kunskap om externa regelverk. För regler som inte lyfts fram i denna profil (av förbiseende eller för att de inte bedömts viktiga) hänvisas till de externa regelverk som redovisas här.

Regel #1, Följsamhet mot RIV TA BP 2.1

Utformning av WSDL skall följa RIV TA BP 2.1, med tillägg av de regler som definieras i denna profil.

Motiv: Interoperabilitet


2.4        Detaljerade regler

Regel #2: 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:

...

Motiv: Detta ger möjlighet att föra vidare information om ursprunglig avsändares identitet även om anropet passerar en eller flera mellan liggande tjänsteplattformar.

Regel #3: Mottagande av ursprunglig sändares identitet i http header

En tjänsteproducent kan utnyttja http headern ”x-rivta-original-serviceconsumer-hsaid” för att få redan på identiteten av den ursprungliga avsändaren om anropet kommer från en eller flera mellanliggande tjänsteplattformar.

Motiv: Detta ger en valfri möjlighet för tjänsteproducenter att identifiera den ursprungliga avsändaren.

Regel #4: Säkerställ att anropande tjänsteplattform är känd

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 den litar på, t ex genom att upprätthålla en lista på IP adresser eller HSA-ID för de tjänsteplattformar den litar på och som den kontrollerar mot innan den accepterar en inkommande http header för ursprunglig avsändare. För anrop där denna kontroll misslyckas skall ett felmeddelanden 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.


3         RIV Tekniska Anvisningar – Basic Profile med status för anrop till aggregerande tjänster 2.1

3.1         Inledning

Denna anvisning är en påbyggnad på Basic Profile 2.1 för att möjliggöra rapportering av teknisk information om bearbetningen i en aggregerande tjänst. Informationen skickas tillbaka till anropande tjänstekonsument i SOAP svaret som en SOAP header med namnet "ProcessingStatus".

3.1.1         Målgrupp

Denna anvisning riktar sig till dem som ska implementera aggregerande tjänster samt till tjänstekonsumenter som är intresserade av att ta del av teknisk information om bearbetningen i en aggregerande tjänst.

Notera att utformning av WSDL för en nationell tjänsteinteraktion i enlighet med RIV TA inte påverkas av denna anvisning, för detaljer se nedan.

3.1.2        Syfte

Syftet med denna anvisning är att beskriva en utökning av basprofilen som ger möjlighet att rapportera teknisk information om bearbetningen i en aggregerande tjänst. Informationen skickas tillbaka till anropande tjänstekonsument i SOAP svaret som en SOAP header med namnet "ProcessingStatus".

...


Kodblock
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header>
    <ProcessingStatus xmlns="urn:riv:interoperability:headers:1">
      <ProcessingStatusList>
        <logicalAddress>HSA-ID-A</logicalAddress>
        <statusCode>DataFromSource</statusCode>
        <isResponseFromCache>false</isResponseFromCache>
        <isResponseInSynch>true</isResponseInSynch>
        <lastSuccessfulSynch>20130905111504</lastSuccessfulSynch>
      </ProcessingStatusList>
      <ProcessingStatusList>
        <logicalAddress>HSA-ID-B</logicalAddress>
        <statusCode>DataFromSource</statusCode>
        <isResponseFromCache>false</isResponseFromCache>
        <isResponseInSynch>true</isResponseInSynch>
        <lastSuccessfulSynch>20130905111504</lastSuccessfulSynch>
      </ProcessingStatusList>
      <ProcessingStatusList>
        <logicalAddress>HSA-ID-C</logicalAddress>
        <statusCode>NoDataSynchFailed</statusCode>
        <isResponseFromCache>false</isResponseFromCache>
        <isResponseInSynch>false</isResponseInSynch>
        <lastUnsuccessfulSynch>20130905111504</lastUnsuccessfulSynch>
        <lastUnsuccessfulSynchError>
          <causingAgent>virtualization_platform</causingAgent>
          <code>43000</code>
          <text>Read timed out. Failed to route event via endpoint:
            org.mule.module.cxf.CxfOutboundMessageProcessor. Message payload is
            of type: PostMethod, Read timed out</text>
        </lastUnsuccessfulSynchError>
      </ProcessingStatusList>
    </ProcessingStatus>
  </soapenv:Header>



3.2        Beskrivning av namnregler

Denna profils namn är ”RIV Tekniska Anvisningar – Basic Profile med status för anrop till aggregerande tjänster 2.1” och refereras ${profil}

Denna profils kortnamn är ”rivtabpagg21” och refereras ${profilKortnamn}

3.3        Följsamhet mot externa regelverk

Här definieras de externa regelverk (t.ex. profiler) som utgör regelbas för denna profil. Det är en målsättning att denna profil ska kunna läsas uppifrån och ner utan detaljerad kunskap om externa regelverk. För regler som inte lyfts fram i denna profil (av förbiseende eller för att de inte bedömts viktiga) hänvisas till de externa regelverk som redovisas här.

Regel #1, Följsamhet mot RIV TA BP 2.1

Utformning av WSDL skall följa RIV TA BP 2.1, med tillägg av de regler som definieras i denna profil.

Motiv: Interoperabilitet

3.4        Detaljerade regler

Regel #2: Aggregerande tjänster skall returnera status om bearbetning av ett anrop

Implementationer av aggregerande tjänster skall returnera en SOAP header med namnet "ProcessingStatus". Headern skall rapportera teknisk information om bearbetningen i tjänsten. Headern skall följa elementet ProcessingStatus i XML Schemat: interoperability_headers_1.0.xsd.

...

Exempel: Se ovan i kapitlet Syfte.

Regel #3: Tjänstekonsumenter av en aggregerande tjänster kan ta del av status om bearbetning av ett anrop

Tjänstekonsumenter av en aggregerande tjänster kan ta del av status om bearbetning av ett anrop till en aggregerande tjänst genom att ta del av innehållet i SOAP headern med namnet "ProcessingStatus" i svaret från den aggregerande tjänsten. Headern rapporterar teknisk information om bearbetningen i tjänsten. Headern följer elementet ProcessingStatus i XML Schemat: interoperability_headers_1.0.xsd.

...

Exempel: Se ovan i kapitlet Syfte.

Regel #4: Aggregerande tjänster skall återanvända befintlig tjänsteinteraktion (WSDL-fil)

Aggregerande tjänster skall återanvända befintlig tjänsteinteraktion (WSDL-fil), dvs. använda samma tjänsteinteraktioner som de underliggande tjänsteproducenterna använder. Det medför att SOAP headern "ProcessingStatus" inte beskrivs explicit i de enskilda WSDL-filerna utan definieras istället i denna anvisning.

...