Transformatie NNP

Dit is een statische kopie van het eerdere discussie.kinggemeenten.nl.
Nieuwe discussies kunnen in de GitHub repository 'StUF standaarden' als issue worden opgevoerd.

8 reacties / 0 nieuw
John Rooijakkers
Transformatie NNP

Gegeven een systeemlandschap met daarin:

  • een systeem V dat communiceert in bg0310 en NNP vragen stelt
  • een systeem A dat communiceert in bg0204 en NNP vragen beantwoord
  • een servicebus S die bg0310 berichten transformeert naar bg0204 berichten en vice versa

Hierin speelt zich het volgende scenario af:

  • systeem V verzendt een bg0310 NNP vraag naar servicebus S
  • servicebus S bepaalt de route voor het bericht en de protocollen van zender en ontvanger
  • servicebus S vertaalt de bg0310 NNP vraag naar een bg0204 NNP vraag
  • servicebus S verzendt de bg0310 NNP vraag naar systeem A
  • systeem A verwerkt de vraag en verzendt een bg0204 NNP antwoord naar servicebus S
  • servicebus S bepaalt de route voor het bericht en de protocollen van zender en ontvanger
  • servicebus S vertaalt de bg0204 NNP antwoord … naar een bg0310 NNP antwoord,echter hierin kunnen de entiteiten NNP, MAC en VES opgenomen worden !
  • servicebus S verzendt het bg0310 NNP antwoord naar systeem V

Het lijkt niet wenselijk dat een systeem dat vraag naar voorkomens van de bg0310 entiteit NNP, ook antwoorden ontvangt over de bg0310 entiteiten MAC en VES. Welk(e) component(en) moet(en) hier een ander dan het beschreven gedrag gaan vertonen en op welke wijze zou dit mogelijk zijn.

John Rooijakkers

Twee kleine correcties:

  • servicebus S verzendt de bg0204 NNP vraag naar systeem A (i.p.v. 0310)
  • en uiteraard "beantwoordt" systeem A vragen (i.p.v. "beantwoord")
  • en nog een typo in de laatste alinea: "vraagt" (i.p.v. "vraag")
John Rooijakkers

Dit issue is niet 100% compatible op te lossen.

De volgende oplossing (best effort) wordt door ons voorgesteld:

Na de standaard transformatie (conform het KING mapping document) van het StUF 3 antwoordbericht naar een StUF 2 antwoordbericht, moet een nabewerking uitgevoerd worden. Deze nabewerking zorgt ervoor dat alle entiteittypen uit het antwoordbericht worden verwijderd die niet corresponderen met het entiteittype in het vraagbericht. Hierbij moet rekening gehouden worden met het feit dat een leeg antwoordbericht wordt verkregen. Gebruikers moeten zich bewust zijn van het feit dat deze werkwijze niet altijd volledige antwoordberichten hoeft op te leveren (bijvoorbeeld bij vragen waarbij het antwoord een vervolgvraag suggereert).

Annemiek Droogh

John, als ik jouw forumpost goed begrijp, krijg je meer informatie in de antwoord dan je vraagt. Is het een probleem om hetgeen je teveel ontvangt weg te gooien? Mij is het issue niet duidelijk.

John Rooijakkers

In een antwoord op (bijvoorbeeld) een macLv01 wordt een macLa01 verwacht. in dit antwoord mogen alleen voorkomens van het entiteittype mac worden opgenomen. Een nnp uit bg0204 kan echter leiden tot een (combinatie van) nnp, mac en es in bg0310. Bij het transformeren van het bg0204 (nnp) antwoordbericht naar een geldig bg0310 antwoordbericht is dus afhankelijk van het vraagbericht (ic om welk entiteittype gevraagd is).

Maarten van den...

John, komt onderstaand voorstel van een toevoeging aan de spec van de bg0310/bg0204 transformatie overeen met jouw visie op dit probleem?

Het gesignaleerde probleem is niet oplossen vanuit de specificatie van de transformatie op het niveau van de transformatie van een StUFEntiteit. Aan de transformatie zal een extra regel moeten worden toegevoegd dat op een vanuit bg0204 naar bg0310 getransformeerd antwoordbericht een nabewerking gedaan moet worden door uit het antwoordberichten alle objecten te verwijderen die niet van het type zijn waarom in het vraagbericht is gevraagd. Er wordt hierbij geaccepteerd dat dit kan leiden tot antwoordberichten met de indicatorVervolgvraag 'J', maar minder dan het maximumAantal objecten in een extreem geval zelfs nul objecten.

In geval van synchroon vraag/antwoord berichtenverkeer kan de functie verantwoordelijk voor het beantwoorden van een ontvangen te transformeren vraagbericht het als antwoord ontvangen bericht eerst transformeren en vervolgens nabewerken zoals hierboven beschreven.

John Rooijakkers

Maarten, eens met de tweede alinea. De laatste alinea begrijp ik wellicht nog niet helemaal, want op zich is zowel bij synchrone als asynchrone berichten de transformerende partij ook verantwoordelijk voor de nabewerking en hiervoor is het vraagbericht vereist (te verkrijgen op basis van de crossreference).

Maarten van den...

Je hebt gelijk John. Het lijkt me beter om het woordje synchroon in de laatste alinea te verwijderen. De functie die het antwoord maakt, kent het vraagbericht en kan dus altijd nabewerken.