Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Læseren forudsættes at være bekendt med de involverede teknologier, som f.eks. SOAP og DGWS.

Dokument historik

DatoAnsvarligBeskrivelse


Initiel version

Definitioner og referencer

RerenceBeskrivelse
DGWSDen Gode WebService
NotifikationBroker

Den snitflade som et afsender system kalder for at afsende adviseringer.

PullPointDen snitflade som et modtager system kalder for at hente adviseringer og nedlægge et pull point.
PullPointFactoryDen snitflade som et modtager system kalder for at oprette et pull point
IDListDen snitflade som et modtager system kalder for at vedlige holde id lister. 
SubscriptonManagerDen snitflade som et modtager system kalder for at oprette og nedlægge abonnementer. 
WS-NotificationDen standard som der implementeres i NAS. For standard snitflader etc. se https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsn

Introduktion til National Adviseringsservice

...

Afsender sender advisering med CPR-nummer   

NAS-NB-1: Aflevering af advisering

Som et eksternt system ønsker jeg at aflevere en advisering til NAS2, så denne kan distribueres videre til abonnenter på det angivne topic


Følgende er et eksempel på advisering med id-filtrerbart indhold.  

...

Request består af nedenstående. 

Notify
ElementKrævetAnvendtBeskrivelse
NotificationMessageJaJaEt eller flere NotificationMessage elementer.
anyNejNejAnvendes ikke
NotificationMessage
ElementKrævetAnvendtBeskrivelse
SubscriptionReferenceJaJaEt eller flere NotificationMessage elementer.
TopicJaJaElement af typen TopicExpressionType
ProducerReferenceNejNejAnvendes ikke.
Message

Selve adviseringen der skal bestå af et NotifyContent element
TopicExpressionType
ElementKrævetAnvendtBeskrivelse
Dialect (attribute)JaJaSkal have værdien http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple. Bemærk at dette er en attribute.
ContentJaJaTopic der sendes adviseringer til.
NotifyContent
ElementKrævetAnvendtBeskrivelse
Id (attribute)JaJaID adviseringen vedrører. 
idType (attribute)JaJa

ID type adviseringen vedrører.

anyJaJaIndhold af adviseringen.


Response består af nedenstående. Er et tome element.

NotifyResponse
ElementKrævetAnvendtBeskrivelse


Request

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns:ns6="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns5="http://docs.oasis-open.org/wsn/b-2" xmlns:ns8="http://docs.oasis-open.org/wsn/t-1" xmlns:ns7="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns9="http://nsi.dk/advis/v10" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header/>
  <ns2:Body>
    <ns5:Notify>
      <ns5:NotificationMessage>
        <ns5:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">TESTNAS-TOPIC1</ns5:Topic>
        <ns5:Message>
          <ns9:NotifyContent id="2512484916" idType="http://nsi.dk/advis/v10/CPR" isSystemNotification="false">
            <ns9:NotifyContent id="12345" idType="mintype-abc">
              <test>&lt;noget&gt;xml&lt;/noget&gt;</test>
            </ns9:NotifyContent>
          </ns9:NotifyContent>
        </ns5:Message>
      </ns5:NotificationMessage>
    </ns5:Notify>
  </ns2:Body>
</ns2:Envelope>

...

Anvendersystem opretter en id-liste

NAS-IM-1: Opret id liste

Som et eksternt system ønsker jeg at oprette en liste med positive id'er til filtrering af adviseringer.

Der oprettes en CPR-nummer-baseret id-liste.

...

Oprettelse af ID liste sker ved hjælp af CreateIDListRequest elementet.

CreateIDListRequest
ElementKrævetAnvendtBeskrivelse
NameJaJaNavnet på den ID liste der ønskes oprettet. Hvis ID listen skal oprettes må navnet ikke findes i forvejen. Hvis det drejer sig om opdatering af en ID liste er det navnet på den liste der ønskes opdateret. 
DescriptionJaJaTekstuel beskrivelse af ID listen. 
IDTypeJaJaID typen
IdJaJaListe af positive ID'er til ID listen.

Response

CreateIDListResponse
ElementKrævetAnvendtBeskrivelse
ExistingListUpdatesJaJaBoolean indikator om der er oprettet en ID liste eller opdateret en eksisterende ID liste. 


Request

Code Block
languagesql
<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns8="http://www.nsi.dk/2012/12/nas/idlist" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:CreateIDListRequest>
      <ns8:Name>en-cpr-id-liste</ns8:Name>
      <ns8:Description>This is a description</ns8:Description>
      <ns8:IDType>http://nsi.dk/advis/v10/CPR</ns8:IDType>
      <ns8:Id>CPR1</ns8:Id>
      <ns8:Id>CPR2</ns8:Id>
    </ns8:CreateIDListRequest>
  </ns2:Body>
</ns2:Envelope>

...

Anvendersystem opretter et pullpoint

NAS-PPF-1: Oprette et pullpoint

Som et eksternt system ønsker jeg at oprette et pullpoint.

For at et anvendersystem kan indhente adviseringer skal der orpettes et pull point. Et pull point er en adresse hvor fra der kan afhentes adviseringer. I svaret returneres der en reference der skal anvendes når GetMessages skal kaldes. 

...

Create pull point består udelukkende af et tomt CreatePullPoint element. Se nedenstående request for eksempel. 

CreatePullPoint
ElementKrævetAnvendtBeskrivelse
anyNejNej"Fritekst" element der ikke anvendes.

Svaret består af nedenstående element.

CreatePullPointResponse
ElementKrævetAnvendtBeskrivelse
PullPointJaJaPull point reference. Skal anvendes når GetMessages kaldes.
anyNejNej"Fritekst" felt der ikke anvendes


Request

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns8="http://docs.oasis-open.org/wsn/b-2" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns9="http://www.w3.org/2005/08/addressing" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:CreatePullPoint/>
  </ns2:Body>
</ns2:Envelope>

...

Anvendersystem opretter et abonnement på emne og id-liste

NAS-SM-1: Opret abonnement

Som et eksternt system ønsker jeg at oprette en liste med positive id'er til filtrering af adviseringer.

Ved oprettelse af abonnement knyttes et pullpoint sammen med et topic. Dermed bliver der oprettet et abonnement på et givent topic til et givent pull point. Dette abonnement kan indeholde enten navnet på en eksisterende id liste, en liste af id'er eller ingen af disse to. Ved angivelse af enten en id liste eller en liste af ider filtreres adviseringer på det angivne topic i forhold til de id'er der er i listen. Hvis der hverken er angivet ID'er eller navnet på en ID liste så modtages alle adviseringer på det topic der oprettes abonnement på. 

...

Request består af nedenstående

Subscribe
ElementKrævetAnvendtBeskrivelse
ConsumerReferenceJaJaReference til det pull point der er oprettet tidligere.
FilterJaJaElement af typen FilterType.
InitialTerminationTimeNejNejAnvendes ikke.
SubscriptionPolicyNejNejAnvendes ikke.
anyNejNejAnvendes ikke.
FilterTypeBemærk at dette er samme snitflade som oprettelse af ID liste. Name elementet skal blot referere til en eksisterende ID liste. 
ElementKrævetAnvendtBeskrivelse
anyJaJa

Liste af elementer. Skal indeholde et eller to elementer. 

  1. Et element af typen TopicExpressionType med attributten Dialect = http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple
  2. Evt. et element af typen MessageContent med attributten Dialect = http://nsi.dk/advis/v10/IDMCP_Dialect. MessageContent indeholder et IDFilter element.
TopicExpressionType
ElementKrævetAnvendtBeskrivelse

JaJaVærdien i TopicExpressionType elementet indeholder det topic der oprettes abonnement på. 
IDFilter
ElementKrævetAnvendtBeskrivelse
IDListNejJaElement af typen IDList.
SingleIDNejJaListe af typen SingleID.
XPathFilterNejNejAnvendes ikke
IDList
AttributeKrævetAnvendtBeskrivelse
nameJaJaNavnet på en eksisterende id liste. Bemærk at dette er en attribute på IDList typen.



Det er GetMessages operationen der kaldes. SingleID
AttributeKrævetAnvendtBeskrivelse
idJaJaID værdien. Bemærk at dette er en attribute på SingleID typen. 
idTypeJaJaID typen. Bemærk at dette er en attribute på SinBemærk at dette er samme snitflade som oprettelse af ID liste. Name elementet skal blot referere til en eksisterende ID liste. gleID typen. Alle idType værdier skal være ens for hele listen af SingleID elementer. 

Response består af nedenstående

SubscribeResponse
ElementKrævetAnvendtBeskrivelse
SubscriptionReferenceJaJaReference til netop oprettet subscription.
CurrentTimeNejNejAnvendes ikke.
TerminationTimeNejNejAnvendes ikke.
anyNejNejAnvendes ikke.

Request

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns8="http://www.w3.org/2005/08/addressing" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns13="http://nsi.dk/advis/v10" xmlns:ns9="http://docs.oasis-open.org/wsn/b-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns9:Subscribe>
      <ns9:ConsumerReference>
        <ns8:Address>e4b99ea9-b2dd-4de3-89f5-a38b86b402fd</ns8:Address>
      </ns9:ConsumerReference>
      <ns9:Filter>
        <ns9:TopicExpression Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">TESTNAS-TOPIC1</ns9:TopicExpression>
        <ns9:MessageContent Dialect="http://nsi.dk/advis/v10/IDMCP_Dialect">
          <ns13:IDFilter>
            <ns13:IDList name="en-cpr-id-liste"/>
          </ns13:IDFilter>
        </ns9:MessageContent>
      </ns9:Filter> 
    </ns9:Subscribe>
  </ns2:Body>
</ns2:Envelope>

...

Anvendersystem indhenter adviseringer

NAS-PP-1: Afhenting af adviseringer

Som et eksternt system ønsker jeg at hente nye adviseringer fra NAS på et givent pullpoint

Nedenstående viser eksempel på hvordan operationen GetMessages i PullPoint kaldes. Bemærk at anvendersystemet skal bruge den del af pull point referencen der indentificerer et givent pull point når GetMessages kaldes. Denne reference blev returneret da CreatePullPoint blev kaldt i PullPointFactory. Se under punktet "anvendersystem opretter et pullpoint" for hvilken del af pull point referencen der identificerer et givent pull point. 

...

Request består af nedenstående. 

GetMessages
ElementKrævetAnvendtBeskrivelse
MaximumNumberJaJaMaksimalt antal adviseringer der ønskes returenret. 

Response består af nedenstående. 

GetMessagesResponse
ElementKrævetAnvendtBeskrivelse
NotificationMessageNejJaListe af NotifikationMessage. Format er beskrevet under Notify operationen.  

Request

Endpoint: http://NAS20/pullpoint/e4b99ea9-b2dd-4de3-89f5-a38b86b402fd

...

Anvendersystem opdaterer id-liste

NAS-IM-2: Opdater id liste

Som et eksternt system ønsker jeg at opdatere, en tidligere oprettet, liste med positive id'er til filtrering af adviseringer.

Anvendersystemet kan opdatere sin id-liste løbende. Identifikation af ID listen er det navn som der er anvendt da listen blev oprettet. Er id-listen (som her) anvendt i et abonnement, betyder det, når adviseringer efterfølgende afhentes er det den nye id liste der evalueres op mod. Opdatering sker ved at alle eksisterende ID'er slettes og de nye indsættes. 

...

Anvendersystem nedlægger abonnement

endpointNAS-SM-2: Nedlæg abonnement

Som et eksternt system ønsker jeg at nedlægge et tidligere oprettet abonnement.

Når et abonnement skal nedlægges, skal den subscription endpoint reference, der blev returneret med oprettelsen anvendes.

...

Request består af nedenstående.  Bemærk at den subscription der ønskes nedlagt refereres via sidste del ag URL'en.

Unsubscribe
ElementKrævetAnvendtBeskrivelse
anyNejNejAnvendes ikke

Response består af nedenstående. 

UnsubscribeResponse
ElementKrævetAnvendtBeskrivelse
anyNejNejAnvendes ikke

Request

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns8="http://www.w3.org/2005/08/addressing" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns13="http://nsi.dk/advis/v10" xmlns:ns9="http://docs.oasis-open.org/wsn/b-2" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns9:Unsubscribe/>
  </ns2:Body>
</ns2:Envelope>

...

Anvendersystem nedlægger PullPoint

NAS-PP-2: Slette et pullpoint

Som et eksternt system ønsker jeg at slette et pullpoint.

Når et anvendersystem ikke længere anvender et pullpoint kan det nedlægges med DestroyPullPoint operationen. Bemærk at pull point id anvender som en del af endpoint når servicen den kaldes. 

...

Request består af nedenstående. Bemærk at det pull point der ønskes nedlagt refereres via sidste del af URL'en. 

DestroyPullPoint
ElementKrævetAnvendtBeskrivelse
anyNejNejAnvendes ikke

Response består af nedenstående. Det er blot et tomt element.

DestroyPullPointResponse
ElementKrævetAnvendtBeskrivelse
anyNejNejAnvendes ikke

Request

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns8="http://docs.oasis-open.org/wsn/b-2" xmlns:ns7="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns9="http://www.w3.org/2005/08/addressing" xmlns:ns12="http://docs.oasis-open.org/wsrf/rp-2" xmlns:ns11="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns10="http://docs.oasis-open.org/wsn/t-1" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <ns2:Header>
    <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:DestroyPullPoint/>
  </ns2:Body>
</ns2:Envelope>

...

Anvendersystem nedlægger id-liste

NAS-IM-3: Slet id liste

Som et eksternt system ønsker jeg at slette, en tidligere oprettet, liste med positive id'er til filtrering af adviseringer.

Når en ID liste ikke længere er tilknyttet en eller flere subscriptions kan det slettes med nedenstående kald. I svaret er der en indikation af om ID listen den fandtes eller ej.

...

Request består af nedenstående. 

DestroyIDListRequest
ElementKrævetAnvendtBeskrivelse
NameJaJaAngiver navnet på den ID liste der ønskes slettet.

Response består af nedenstående. 

DestroyIDListResponse
ElementKrævetAnvendtBeskrivelse
NoSuchListJaJaBoolean værdi for om ID listen fandtes eller ej.

Request

Code Block
languagesql
<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns8="http://www.nsi.dk/2012/12/nas/idlist" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
  <ns2:Header>
  <!-- DGWS headers -->
  </ns2:Header>
  <ns2:Body>
    <ns8:DestroyIDListRequest>
      <ns8:Name>en-cpr-id-liste</ns8:Name>
    </ns8:DestroyIDListRequest>
  </ns2:Body>
</ns2:Envelope>

...