Op deze uitgave is de Creative Commons-licentie van toepassing. Het is toegestaan informatie uit deze publicatie te kopiëren, te verspreiden en te bewerken mits deze uitgave als bron wordt vermeld en de informatie niet voor commerciële doeleinden wordt gebruikt. Indien de gebruiker het werk bewerkt, kan het daaruit ontstane werk uitsluitend krachtens dezelfde voorwaarden worden verspreid. Meer informatie hierover vindt u op http://creativecommons.org/licenses/by-ncsa/2.5/nl/.
StUF Introductie Cursus 1
Inhoud
Schets problematiek en positionering
SGA en StUF
Contentmodel StUF
Interactiepatronen en functies
Aansluiten op StUF
Afsluiting
2
Programma 'Andere overheid' Een overheid die:
niet naar de bekende weg vraagt
klantgericht is
zich niet voor de gek laat houden
weet waar ze het over heeft
haar zaken op orde heeft
niet meer uitgeeft dan nodig is
--> Basisregistraties essentieel --> Gebruik gegevens basisregistratie verplicht 3
Wat is een basisregistratie?
Geen registratie van de werkelijkheid Maar
Registratie van besluiten/meldingen over
ontstaan/ophouden te bestaan objecten waarden van hun eigenschappen met rechtsgeldigheid met historie (inclusief correcties)
4
Aansluiten op basisregistraties
Afstemmen
Matchen Verschillen analyseren en wegwerken
Koppelen met bestanden
Volgen met berichten opvragen toestand plaatsen afnemerindicatie leveren object Basisregistratie
doorgeven wijziging
Afnemend systeem
terugmelding verwijderen afnemerindicatie 5
StUF en stelsel basisregistraties
Landelijke voorzieningen koppelen met StUF
BAG WKPB WOZ
mGBA koppelt aanvullende modules en BZKS met StUF
--> StUF is meer dan gemeentelijke standaard
6
StUF in de mid office
Programma eFormulieren definieert StUF-berichten voor koppeling front en back office
Zakenmagazijn wordt gevoed en bevraagd via StUFberichten
--> StUF krijgt belangrijke rol in mid office
7
Geschiedenis StUF 1996
Connectivity platform ICT-beurs
1996 – 1998
Ontwik. StUF0105 door leveranciers olv VNG
1998
GFO Basisgegevens en sectormodel BG 0105
1998 – heden
Implementatie in systemen
2003 – 2005
Ontwikkeling StUF0204 (XML) en sectormodel BG0204 en Zaken0200
2004
GFO Zaken en sectormodel Zaken0100
2006
Overname beheer StUF door EGEM via community en expertgroep
8
Ontwikkeling StUF in 2007
StUF0300 ofwel StUF-SGA
Ondersteuning zelf gedefinieerde berichten Ondersteuning transacties Betere foutafhandeling Aanpassing sectormodellen: BG0300 en ZKN0300
Referentiestelsel Gemeentelijke BasisGegevens (RSGB)
Opvolger GFO Basisgegevens 1998 Gebaseerd op landelijke basisregistraties Brengt voor gemeenten basisregistraties in verband Nieuwe sectormodellen: BG0310 en ZKN0310
9
Beoogde organisatie beheer Community ca 500 leden
Website: Hèt communicatieplatform discussieforums, documentatie, verslagen, RFC's, etc
Regiegroep Sturing op hoofdlijnen
Change Advisory Board Besluitvorming ontwikkeling StUF + sectormodellen
EGEM + Gebruikers (mgt/bestuur) Max 25 mensen
EGEM Experts (max 8 mensen)
2 - 3 x per jaar
6 – 10 x per jaar
Uitvoerend werk Henri Korver Mark Schouten Maarten vd Broek
Stelsel werkgroep Beheer domeinmodellen ● RSGB ● Zaken
Ad hoc werkgroepen
10
Inhoud
Schets problematiek en positionering
SGA en StUF
Contentmodel StUF
Interactiepatronen en functies
Aansluiten op StUF
Afsluiting
11
Web service architectuur Service gebruiker
Kenmerken
verzoek
respons
webservice
Service aanbieder
Nieuwe systeemarchitectuur
dienstenbus
Berichtgebaseerd Functie ipv gegevens georiënteerd Werkt over platformen heen Aanbieder definieert het contract Keuze voor gebruiker tussen aanbieders
Los gekoppelde componenten ipv hecht geintegreerde systemen Verbonden via dienstenbus Diensten gepubliceerd op bus Centralisatie functies
--> Berichtstandaardisatie gewenst 12
SGA en gegevensverwerking
SGA: Splits en hergebruik 1
2
3
Klassiek: database bindt businesslogica
dienstenbus
1
2
3
Maar, eenmalige opslag problematisch
Performance (batchruns, management info) Niet alle gegevens beschikbaar Verschillen in definities/waarden Impact op bestaande systemen
13
SGA: meer dan web services Contract dat business toegevoegde waarde biedt
Implementatie contract door uitvoering elementaire functies
Contract voor uitvoering taak Geen interactie met andere elementaire functies in werkstroom
Business functie
Afsluiten telefoonabonnement
Werkstroom
Elementaire functie
Factureren Opsturen SIM-kaart Registreren abonnement etc.
Domeinmodel
StUF richt zich exclusief op onderste laag en ICT functies 14
Technische standaarden XML
Taal voor zelfbeschrijvende berichten
Schema
Taal voor specificeren structuur en inhoud XML-berichten
SOAP en http
Protocollen voor berichtverpakking en -transport
WSDL
Taal voor specificeren web services
BETEKENIS ???
StUF
15
Werkelijkheid, model en database verleent betekenis aan
PRS
PRS ADR
ADR
VBO Model
VBO wordt gedefinieerd in
Werkelijkheid
definieert
PRS
ADR
VBO wordt afgebeeld in
Werkelijkheid Database
16
Bericht en software ontwerp vormt basis voor PRS
PRS ADR VBO Model
PRSADRVBL
ADR
PRSVBO
VBO
PRSPRSHUW
PRS
wordt gedefinieerd in
Werkelijkheid
definieert
Berichtontwerp
vormt basis voor
ADR
PRS
òf
Jansen VBO
gaat over
Werkelijkheid Systeem
software verwerkt
17
StUF = design tooling Business functie
Semantiek + syntax voor definiëren ICT functies In termen van:
Werkstroom
ICT functie
State
Modelgedreven: gebaseerd op domeinmodel
Bericht
state gedefinieerd als afbeelding wereld berichten voor input en output
Functiegeneriek èn voorgedefinieerde functies
Protocol onafhankelijk
Voorschriften voor logistiek en foutafhandeling
Domeinmodel
Gebruik wat je nodig hebt!
Veel aandacht voor hergebruik
18
Typering domein
Meerdere objecten van één type met
in de tijd veranderende eigenschappen met relaties naar andere objecten
Afbeelding in registratie is relevant Meeste events hebben betrekking op onderkende objecten
19
Ontwerpen en bouwen met StUF GFO Zaken
domein beschrijving
design tooling Berichtontwerper
RSGB
StUF standaard
domeinbeschrijving
generieke specificatie berichtsyntax ● aanvullende specificatie ●
Software ontwikkelaar
Sectormodel
definitie betekenis
Specificatie
Software Berichtverwerking
StUFberichten
20
Inhoud
Schets problematiek en positionering
SGA en StUF
Contentmodel StUF
Interactiepatronen en functies
Aansluiten op StUF
Afsluiting
21
Modellering
Fundamentele entiteittypen: PRS, ADR
PRSPRSHUW
PRS
verblijft op
correspondeert via
Relatie entiteittypen: PRSPRSHUW, PRSADRVBL, PRSADRCOR
ADR
GEM
BRT
hebben voorkomens in de werkelijkheid PRS: Maarten van den Broek ADR: Vallestap 88, 5672BJ Nuenen hebben veranderende eigenschappen burgerlijke staat, verblijfstitel, verblijfsadres
leggen relatie tussen twee fundamentele entiteiten hebben begin- en einddatum kunnen ook andere eigenschappen hebben
Tabelentiteiten: GEM, BRT
hoeven niet voor te komen in werkelijkheid (bijvoorbeeld definitie waardebereik) hebben onveranderlijke eigenschappen
22
Model PRSPRSHUW
Berichtdefinitie PRS
PRS
PRSADRVBL
ADR
PRSADRCOR
ADR
PRSPRSHUW
PRS
PRSADRVBL
ADR
ADR ADR GEM
BRT
ADRPRSVBL
GEM
BRT
PRS
23
Modelgedreven Geen losse gegevens, maar onderdeel entiteittype en/of StUF-structuur Legenda StUF Sectormodel BG Eigen definitie Gegevens
Losse gegevens
StUF contentmodel
true 19511231 <postcode>5672BJ
<parameters>
true <selectie>
<postcode>5672BJ 19511231
24
Identificatie Jansen
Systeem
Verplichte kerngegevens:
Persoon
=? Jansen
A-nummer, BSN, voorletters, geslachtsnaam, geslacht, geboortedatum, verblijfsadres
Adres
Postcode, straat, huisnummer, woonplaats
Sleutels:
Leverancier
Afnemer
Broker
25
Historie
Tijdvak geldigheid, tijdvak relatie, tijdstip registratie
Opnemen historie in entiteiten
Opbouwen en corrigeren historie in database
Opvragen historie
26
Historie in entiteiten
Bergmans K 19570609 20030507 <eindGeldigheid xsi:nil="true" StUF:noValue="geenWaarde"/> Poepenstaart 19570609 <eindGeldigheid>20030507
27
Speciale waarden
Attribute StUF:noValue
geenWaarde: het element heeft geen waarde (bijv. overlijdensdatum) onbekend: de zender weet niet wat de waarde is vastgesteldOnbekend: de waarde van het element is niet meer vast te stellen nietOndersteund: de zender ondersteunt het element niet nietGeautoriseerd: de ontvanger is niet geautoriseerd voor het element
Attribute StUF:indOnvolledigeDatum
V: De datum is volledig D: De dag is onbekend (GBA: 20070700) M: De maand is onbekend (GBA: 20070000) J: Het jaar is onbekend (GBA: 00000000)
28
Uitbreidbaarheid
<extraElementen> <extraElement naam=”inOnderzoek”>J <extraElement naam=”aanduidingKiesrecht”>ingetrokken
Kunnen in bericht worden opgenomen zonder aanpassing sectormodel
StUF specificeert niets over de verwerking
29
Inhoud
Schets problematiek en positionering
SGA en StUF
Contentmodel StUF
Interactiepatronen en functies
Aansluiten op StUF
Afsluiting
30
Sturing berichtverwerking
Zender en ontvanger
Organisatie Applicatie Administratie Gebruiker
StUF
Sectormodel
Identificatie en volgorde
Versie Code Versie
(Cross)Referentienummer Tijdstip bericht
Type bericht
Berichtcode Entiteit- en/of functienaam
31
Interactiepatronen: Functioneel en technisch Notificatie
Functioneel: geen respons zender
ontvanger
Technisch: bevestiging- of foutbericht over zelfde verbinding zender
ontvanger
Asynchroon verzoek/respons Functioneel: verzoeker werkt door los van respons verzoeker
serviceverlener
Technisch: per bericht bevestiging- of foutbericht over zelfde verbinding verzoeker
serviceverlener
Synchroon verzoek/respons Functioneel: verzoeker werkt pas door na ontvangst respons verzoeker
serviceverlener
32
Quality of Service
Gegarandeerde ontvangst
Geen dubbele berichten
Bevestigings- of foutbericht als respons Uniek referentienummer per zender
Volgorde
Tijdstip bericht
33
Kennisgeving Kenmerken type heeft betrekking op patroon voorbeeld
gegevens enkelvoudig: 1 object; samengesteld: M objecten notificatie verhuizing persoon
Mutatiesoort 'T' object relevant geworden voor zender 'W' object gewijzigd in werkelijkheid 'C' object gecorrigeerd in database zender 'V' object niet meer relevant voor zender Indicator overname 'I' Informatief 'V' Verplicht over te nemen
1 voorkomen oud object + nieuw object oud object + nieuw object 1 voorkomen
Afnemer hoeft bericht niet te verwerken Afnemer wordt geacht kennisgeving te verwerken
Eventcode Aanduiding gebeurtenis die ten grondslag ligt aan kennisgeving 34
Gebruik bij basisregistraties Plaatsen afnemerindicatie Verwijderen afnemerindicatie Levering na plaatsing afnemerindicatie Levering inclusief historie Doorgeven wijziging in werkelijkheid
Informatieve toevoegkennisgeving Informatieve verwijderkennisgeving Toevoegkennisgeving Toevoegkennisgeving + 0-N wijzigkennisgevingen Wijzigkennisgeving
Correctie na levering
Correctiekennisgeving
Doorgeven correctie object in database
Correctiekennisgeving
Opzeggen levering
Informatieve verwijderkennisgeving
Verwijderen object
Verplichte verwijderkennisgeving
35
Transactie = Kennisgeving, uitgezonderd Kenmerken gaat over: database patroon: synchroon verzoek/respons met bevestiging of foutbericht als respons Mutatiesoort 'T' voeg toe in database 'W' wijzig in database 'V' verwijder in database Geen indicator overname Altijd verplicht
36
Vraag/antwoord Kenmerken type heeft betrekking op patroon voorbeeld
gegevens meerdere objecten synchroon of asynchroon verzoek/respons opvragen adressen voor lijst of opvragen details adres
Extra stuurgegevens vraagbericht sortering volgorde objecten maximumAantal maximum aantal terug te geven objecten indicatorHistorisch wijze van opnemen van historie indicatorAfnemerindicatie plaats J/N afnemerindicatie voor terug te geven objecten Extra stuurgegevens antwoordbericht indicatorVervolgvraag alle gevraagde objecten zijn teruggegeven J/N indicatorAfnemerindicatie er is J/N afnemerindicatie geplaatst voor teruggegeven objecten melding aanduiding van eventuele fouten
37
Vrij bericht Kenmerken type heeft betrekking op gaat over patroon voorbeeld
functie 0 - N objecten systeem notificatie of synchroon/asynchroon verzoek/respons bepalen waarde WOZ-object
Berichtontwerper definieert zelf de betekenis/functie van ● verzoek ● respons
38
Body vrij bericht Elementen met objecten conform contentmodel Gegevens uit contentmodel mogen niet los worden opgenomen òf Gereserveerde elementen ● <parameters> gegevens die geen onderdeel zijn van een object ●
met als inhoud de body van een kennisgeving ● met als inhoud vrijwel de body van een vraagbericht ● met als inhoud zaak informatie gedefinieerd in sectormodel Zaken
39
Samenhang componenten StUF-functie
heeft
gebruikt
StUF-bericht Functiespecifiek Functiegeneriek ● kennisgeving ● vrij in ● synchronisatie ● vrij uit ● vraag/antwoord ● trigger heeft
StUF Interactiepatronen/ foutafhandeling bevestigings bericht
fout bericht
heeft * heeft
StUF Stuurgegevens
entiteit model
functie model
heeft *
heeft
structuur vrij bericht
StUF-contentmodel Verplicht Optioneel
40
Inhoud
Schets problematiek en positionering
SGA en StUF
Contentmodel StUF
Interactiepatronen en functies
Aansluiten op StUF
Afsluiting
41
Aansluiten op StUF
Aansluitend systeem
Zender/ontvanger
ontvang asynchroon bericht verzend asynchroon bericht
Aansluiten op StUF verwerk synchroon verzoek doe synchroon verzoek
Aansluitend systeem
... Aansluitend systeem
42
Aansluit functionaliteit
Bestand
1a: verwerk cq maak bestand
Zender/Ontvanger
1b: verzend asynchroon bericht
3: beheer bericht verwerking
4a: serialiseer/deserialiseer
4b: creëer/ verwerk berichten
2: berichten
1c: ontvang asynchroon bericht
Java of .Net API
Aansluitend systeem
1d: verwerk synchroon verzoek 1e: doe synchroon verzoek Communicatie
Bericht opslag
Beheer
Werken met berichten
43
Dienstenbus, broker en gegevensmagazijn Aansluitend systeem
Aansluitend systeem
Berichten
Berichten
Aansluitend systeem
Berichten
Broker: ● Berichtbuffering ● Routering ● Transformatie ● Orkestratie Authenticatie + autorisatie
dienstenbus: communicatie
Implementatieplatforms:
BEA Weblogic IBM Websphere Oracle Application Server .Net Jboss (Paraplu)
Dienstencatalogus
Gegevensmagazijn: ● Opslag ● Voeding ● Bevraging 44
StUF en broker
StUF gaat uit van point-to-point communicatie
eigen voorzieningen voor Quality of Service functionele foutafhandeling
Nodig bij inzet servicebus met buffering
Voorzieningen voor lezen buffer Voorzieningen voor foutafhandeling Voorzieningen voor beheer
Inzet broker <---> dedicated StUF-kletser?
45
Inhoud
Schets problematiek en positionering
SGA en StUF
Contentmodel StUF
Interactiepatronen en functies
Aansluiten op StUF
Afsluiting
46
Kenmerken StUF
Template berichtdefinitie met semantiek voor:
ter ondersteuning van:
contentmodel gebaseerd op ERD-objecten sturing berichtverwerking diverse functies gegevensuitwisseling functiegerichte web services
met verschillende protocolbindingen:
W3C: wsdl/soap OASIS: ebMS Bestand
47
Ambities StUF
Basis voor:
berichten met basisgegevens overheidsbreed eFormulieren zaakberichten
Stimuleren hergebruik van
berichtsemantiek modelgedreven contentdefinities software voor berichtafhandeling (broker) software voor parsen/serialiseren software voor berichtverwerking in systemen
48