Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Architectuur plaatje die de communicatie tussen een WOZ client, de WOZ bevragen proxy en de WOZ bevragen API weergeeft #118

Open
MelvLee opened this issue Jul 22, 2021 · 13 comments
Assignees

Comments

@MelvLee
Copy link
Collaborator

MelvLee commented Jul 22, 2021

Zie: https://github.com/VNG-Realisatie/Haal-Centraal-WOZ-bevragen/blob/master/docs/communicatie-client-proxy-woz-api.pdf. Het origineel is ook in de docs map te vinden en is gemaakt met draw.io

@fsamwel
Copy link
Collaborator

fsamwel commented Jul 23, 2021

@MelvLee duidelijk plaatje. Bij het WOZ team was nog wat onduidelijk of er dus één aansluiting naar een centraal gehoste proxy komt, of dat elke gemeente een proxy maakt. In het overleg zei je dacht ik het eerste, maar uit het plaatje volgt het tweede (proxy zit binnen gemeente). Weet je wat nu precies de bedoeling is? Leveren we alleen een SDK of docker service, of leveren we echt een centraal gehoste service die door alle gemeenten te leveren is?

@MelvLee
Copy link
Collaborator Author

MelvLee commented Jul 23, 2021

Het wordt aangeboden in een Docker image. Dan kunnen we alle kanten op. Het kan dan op elke machine (mac, Windows, Linux) worden gehost waarop Docker is geïnstalleerd. Een gemeente kan zelf bepalen hoe zij de image willen hosten, maar ik verwacht centraal binnen een gemeente. Voor de consumers is dit ook het makkelijkste. Er verandert praktisch niets ten opzichte van rechtstreeks aanroepen. Alleen de base-url en authenticatie/autorisatie protocol

@melsk-r
Copy link
Contributor

melsk-r commented Jul 26, 2021

Op verzoek een uitwerking van de 2 mogelijke varianten:

  1. Een waarbij de WOZ bevragen proxy per gemeente wordt geïmplementeerd:
    Een waarbij de WOZ bevragen proxy per gemeente wordt geïmplementeerd
  2. Een waarbij de WOZ bevragen proxy centraal bij een nog te bepalen partij wordt geïmplementeerd:
    Een waarbij de WOZ bevragen proxy centraal bij een nog te bepalen partij wordt geïmplementeerd

Naar verwachting is variant 1 de gewenste, de vraag is dat te bevestigen.

@ghost
Copy link

ghost commented Jul 27, 2021

@melsk-r Bedankt, ziet er goed uit. Zou je voor de volle volledigheid ook nog het plaatje willen toevoegen met filtering door Kadaster? Daar kan dan een notitie bij dat die vanwege wetgeving (verrijking/interpretatie) niet gekozen is. Zoals besproken; het wordt nu complexer en duurder vanwege (een interpretatie van?) wetgeving. Dank je!

@melsk-r
Copy link
Contributor

melsk-r commented Jul 27, 2021

@KadNielsS Doe ik graag maar het plaatje ziet er dan volgens mij toch heel anders uit.
Er is dan geen sprake van filtering en dus ook niet van een proxy want de API zou in dat geval direct de waarde leveren die nu door de proxy wordt berekend.
Dat kan ik natuurlijk tekenen maar de vraag is dan hoe de gemeenten precies communiceren. Nog steeds d.m.v. 'request + oAuth2' of juist direct d.m.v. 'request + api key + mTLS'? Dat wil ik wel eerst weten voordat ik het ga tekenen.

@fsamwel
Copy link
Collaborator

fsamwel commented Jul 27, 2021

@melsk-r we weten niet precies hoe elke gemeente het doet, maar in hoofdlijnen zit er normaal gesproken een Security component tussen de client en de buitenwereld (in dit geval Kadaster). Bijvoorbeeld een API gateway. Een API gateway doet de binnengemeentelijke authenticatie en autorisatie (valideren bijv. client certificaat of ip-adres en oauth token) en de buitengemeentelijke authenticatie (client certificaat, api key)

Die component zit er ook in de situatie met proxy tussen, alleen is die in het plaatje van Melvin (en jouw versies) voor het gemak als één gezien met de WOZ proxy.

@fsamwel
Copy link
Collaborator

fsamwel commented Jul 27, 2021

misschien een idee om de VNG Realisatie architecten hierop te tippen, want ik kan daarover niet snel iets terugvinden in de GEMMA architectuur, of is dit wat ze bedoelen met "servicebuscomponent"?

@adgerrits
Copy link

adgerrits commented Jul 29, 2021

@fsamwel Nav 'is dit wat ze bedoelen met "servicebuscomponent"' zou mijn antwoord zijn: Nee. Hoewel je daarme technisch van alles kan (bijv. via translatie) is het om allerlei redenen onverstandig om veel businesslogica onder te brengen in een component als een message broker (de component die meestal wordt bedoeld met 'servicebuscomponent'). Zie https://www.martinfowler.com/articles/microservices.html#SmartEndpointsAndDumbPipes voor toelichting waarom.
Gebruik van een aparte component als proxy is netter qua architectuur. Technisch ook goed te realiseren en werkend te krijgen in zowel de 'centrale' als 'per gemeente' opzet Maar het feit dat het Kadaster als smart endpoint zelf niet zorgt voor de gewenste functionaliteit levert je, links- of rechtsom, extra complexiteit op.
M.b..t. de 'proxy per gemeente of centraal' vraag zou ik als architect kiezen voor de 'per gemeente' optie. M.n. omdat die het beste past bij hoe we als overheid/gemeente zijn georganiseerd; maar ik weet dat anderen vanuit de 'Samen Organiseren gedachte' daar soms anders over denken en gemeenschappelijke voorzieningen zien als een middel om effectiever samen te werken.
In termen van 'API management' raakt het de vraag hoe we overheidsbreed willen sturen op de ontwikkeling van systeem, proces en convenience API's. Waarbi zowel overheidspartijen (zoals hier Kadaster) betrokken zijn, maar zeker ook leveranciers. Daar is m.i. nog veel te weinig aandacht aan besteed en zal daarom tijdens uitvoeringsprojecten voorlopig nog tot dit soort vraagstukken blijven leiden.

@melsk-r
Copy link
Contributor

melsk-r commented Jul 30, 2021

Op verzoek ook nog de uitwerking van de variant waarin het Kadaster de gewenste berekening uitvoert:
Variant waarin het Kadaster de gewenste berekening uitvoert

@CathyDingemanse
Copy link
Collaborator

CathyDingemanse commented Aug 10, 2021

@fsamwel Nav 'is dit wat ze bedoelen met "servicebuscomponent"' zou mijn antwoord zijn: Nee. Hoewel je daarme technisch van alles kan (bijv. via translatie) is het om allerlei redenen onverstandig om veel businesslogica onder te brengen in een component als een message broker (de component die meestal wordt bedoeld met 'servicebuscomponent'). Zie https://www.martinfowler.com/articles/microservices.html#SmartEndpointsAndDumbPipes voor toelichting waarom.
Gebruik van een aparte component als proxy is netter qua architectuur. Technisch ook goed te realiseren en werkend te krijgen in zowel de 'centrale' als 'per gemeente' opzet Maar het feit dat het Kadaster als smart endpoint zelf niet zorgt voor de gewenste functionaliteit levert je, links- of rechtsom, extra complexiteit op.
M.b..t. de 'proxy per gemeente of centraal' vraag zou ik als architect kiezen voor de 'per gemeente' optie. M.n. omdat die het beste past bij hoe we als overheid/gemeente zijn georganiseerd; maar ik weet dat anderen vanuit de 'Samen Organiseren gedachte' daar soms anders over denken en gemeenschappelijke voorzieningen zien als een middel om effectiever samen te werken.

@adgerrits helemaal eens. We leveren een docker container aan gemeenten. Ik ben ook niet voor een centrale proxy anders dan dat het kadaster de gefilterde waarden levert in de API. Dat doet men niet omdat men geen convenience API wil leveren, maar omdat het kadaster conform de vigerende wetgeving geen bewerking/interpretatie van (deze!) data mag uitvoeren.

@CathyDingemanse
Copy link
Collaborator

Conclusie is dat we:

  • voor de korte termijn
    een docker container leveren aan gemeenten. Zij kunnen deze implementeren als onderdeel van de gemeentelijke proxy zodat zij de WOZ waarden kunnen filteren voor hun gemeentelijke afnemers
  • voor de lange termijn
    in gang zetten dat het kadaster wettelijk de mogelijkheid wordt geboden de WOZ gegevens te interpreteren conform gezamenlijk vastgestelde en voor eenieder navolgbare business logica.

@ghost
Copy link

ghost commented Aug 12, 2021

@CathyDingemanse, eens denk ik. Ook besproken intern Kadaster. We zouden die 'service' als Kadaster best willen bieden, maar daarvoor is inderdaad een aanpassing van de wet nodig.

@JohanBoer
Copy link
Collaborator

Architectuurplaatje voor de korte termijn is door Melvin opgesteld. Dat gaat Robert ook opnemen in de "getting started" en daarna kan deze issue gesloten worden.

@JohanBoer JohanBoer assigned melsk-r and unassigned CathyDingemanse and fsamwel Jun 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants