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 Basisregistratie opvragen toestand plaatsen afnemerindicatie leveren object doorgeven wijziging terugmelding verwijderen afnemerindicatie Afnemend systeem 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 EGEM + Gebruikers (mgt/bestuur) Max 25 mensen Change Advisory Board Besluitvorming ontwikkeling StUF + sectormodellen EGEM Experts (max 8 mensen) Uitvoerend werk Henri Korver Mark Schouten Maarten vd Broek Ad hoc werkgroepen Stelsel werkgroep Beheer domeinmodellen RSGB Zaken 2-3 x per jaar 6 10 x per jaar 10
Inhoud Schets problematiek en positionering SGA en StUF Contentmodel StUF Interactiepatronen en functies Aansluiten op StUF Afsluiting 11
Web service architectuur verzoek Service gebruiker webservice Service aanbieder dienstenbus respons Kenmerken Berichtgebaseerd Functie ipv gegevens georiënteerd Werkt over platformen heen Aanbieder definieert het contract Keuze voor gebruiker tussen aanbieders Nieuwe systeemarchitectuur Los gekoppelde componenten ipv hecht geintegreerde systemen Verbonden via dienstenbus Diensten gepubliceerd op bus Centralisatie functies --> Berichtstandaardisatie gewenst 12
SGA en gegevensverwerking 1 2 3 SGA: Splits en hergebruik 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 Business functie Afsluiten telefoonabonnement Implementatie contract door uitvoering elementaire functies Werkstroom Contract voor uitvoering taak Geen interactie met andere elementaire functies in werkstroom Elementaire functie Domeinmodel Factureren Opsturen SIM-kaart Registreren abonnement etc. StUF richt zich exclusief op onderste laag en ICT functies 14
Technische standaarden XML Schema SOAP en http WSDL Taal voor zelfbeschrijvende berichten Taal voor specificeren structuur en inhoud XML-berichten Protocollen voor berichtverpakking en -transport Taal voor specificeren web services BETEKENIS??? StUF 15
Werkelijkheid, model en database verleent betekenis aan PRS VBO ADR PRS VBO ADR Model Werkelijkheid wordt gedefinieerd in definieert PRS ADR Werkelijkheid wordt afgebeeld in Database VBO 16
Bericht en software ontwerp vormt basis voor PRS PRS ADR PRSADRVBL ADR VBO PRSVBO VBO Model Werkelijkheid wordt gedefinieerd in PRSPRSHUW PRS Berichtontwerp definieert vormt basis voor òf PRS VBO ADR gaat over Jansen software Werkelijkheid Systeem verwerkt 17
StUF = design tooling Business functie Werkstroom Bericht ICT functie State Domeinmodel Semantiek + syntax voor definiëren ICT functies In termen van: state gedefinieerd als afbeelding wereld berichten voor input en output Modelgedreven: gebaseerd op domeinmodel Functiegeneriek èn voorgedefinieerde functies Protocol onafhankelijk Voorschriften voor logistiek en foutafhandeling Veel aandacht voor hergebruik Gebruik wat je nodig hebt! 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 domein beschrijving GFO Zaken RSGB domeinbeschrijving Berichtontwerper design tooling StUF standaard generieke specificatie berichtsyntax aanvullende specificatie Software ontwikkelaar Software Berichtverwerking Sectormodel definitie betekenis StUFberichten Specificatie 20
Inhoud Schets problematiek en positionering SGA en StUF Contentmodel StUF Interactiepatronen en functies Aansluiten op StUF Afsluiting 21
Modellering verblijft op GEM PRSPRSHUW PRS ADR correspondeert via BRT Fundamentele entiteittypen: PRS, ADR hebben voorkomens in de werkelijkheid PRS: Maarten van den Broek ADR: Vallestap 88, 5672BJ Nuenen hebben veranderende eigenschappen burgerlijke staat, verblijfstitel, verblijfsadres Relatie entiteittypen: PRSPRSHUW, PRSADRVBL, PRSADRCOR 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 Berichtdefinitie PRSPRSHUW PRS PRS PRSADRVBL PRSADRCOR ADR ADR PRSPRSHUW PRS PRSADRVBL ADR ADR ADR GEM BRT ADRPRSVBL PRS GEM BRT 23
Modelgedreven Geen losse gegevens, maar onderdeel entiteittype en/of StUF-structuur Losse gegevens <historie>true</historie> <geboortedatum> 19511231 </geboortedatum> <postcode>5672bj</postcode> StUF contentmodel Legenda StUF <parameters> Sectormodel BG <historie>true</historie> Eigen definitie </parameters> Gegevens <selectie> <gelijk entiteittype="prs"> <verblijfsadres entiteittype="prsadrvbl"> <gerelateerde entiteittype="adr"> <postcode>5672bj</postcode> </gerelateerde> </verblijfsadres> </gelijk> <totenmet entiteittype="prs"> <geboortedatum>19511231</geboortedatum> </totenmet> </selectie> 24
Identificatie Jansen =? Systeem Jansen Verplichte kerngegevens: Persoon 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 <persoon entiteittype="prs"> <geslachtsnaam>bergmans</geslachtsnaam> <voorletters>k</voorletters> <geboortedatum>19570609</geboortedatum> <tijdvakgeldigheid> <begingeldigheid>20030507</begingeldigheid> <eindgeldigheid xsi:nil="true" StUF:noValue="geenWaarde"/> </tijdvakgeldigheid> <historie> <geslachtsnaam>poepenstaart</geslachtsnaam> <tijdvakgeldigheid> <begingeldigheid>19570609</begingeldigheid> <eindgeldigheid>20030507</eindgeldigheid> </tijdvakgeldigheid> </historie> </persoon> 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> <extraelement naam= aanduidingkiesrecht >ingetrokken</extraelement> </extraelementen> 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 Identificatie en volgorde (Cross)Referentienummer Tijdstip bericht StUF Versie Sectormodel Code Versie Type bericht Berichtcode Entiteit- en/of functienaam 31
Interactiepatronen: Functioneel en technisch Functioneel: geen respons Notificatie Technisch: bevestiging- of foutbericht over zelfde verbinding zender ontvanger zender ontvanger Functioneel: verzoeker werkt door los van respons verzoeker Asynchroon verzoek/respons Technisch: per bericht bevestiging- of foutbericht over zelfde verbinding verzoeker Synchroon verzoek/respons Functioneel: verzoeker werkt pas door na ontvangst respons verzoeker serviceverlener serviceverlener serviceverlener 32
Quality of Service Gegarandeerde ontvangst Bevestigings- of foutbericht als respons Geen dubbele berichten 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 1 voorkomen 'W' object gewijzigd in werkelijkheid oud object + nieuw object 'C' object gecorrigeerd in database zender oud object + nieuw object 'V' object niet meer relevant voor zender 1 voorkomen Indicator overname 'I' Informatief Afnemer hoeft bericht niet te verwerken 'V' Verplicht over te nemen 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 Correctie na levering Doorgeven correctie object in database Opzeggen levering Verwijderen object Informatieve toevoegkennisgeving Informatieve verwijderkennisgeving Toevoegkennisgeving Toevoegkennisgeving + 0-N wijzigkennisgevingen Wijzigkennisgeving Correctiekennisgeving Correctiekennisgeving Informatieve verwijderkennisgeving Verplichte verwijderkennisgeving 35
Transactie = Kennisgeving, uitgezonderd Kenmerken gaat over: patroon: database 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 <update> met als inhoud de body van een kennisgeving <vraag> met als inhoud vrijwel de body van een vraagbericht <zaakinfo> met als inhoud zaak informatie gedefinieerd in sectormodel Zaken 39
Samenhang componenten StUF-functie gebruikt heeft Functiespecifiek kennisgeving synchronisatie vraag/antwoord trigger StUF-bericht Functiegeneriek vrij in vrij uit StUF Interactiepatronen/ foutafhandeling bevestigings bericht fout bericht Verplicht StUF Stuurgegevens heeft entiteit model heeft * heeft functie model heeft * StUF-contentmodel heeft structuur vrij bericht Optioneel 40
Inhoud Schets problematiek en positionering SGA en StUF Contentmodel StUF Interactiepatronen en functies Aansluiten op StUF Afsluiting 41
Aansluiten op StUF ontvang asynchroon bericht Aansluitend systeem Zender/ontvanger verzend asynchroon bericht verwerk synchroon verzoek doe synchroon verzoek Aansluiten op StUF Aansluitend systeem... Aansluitend systeem 42
Aansluit functionaliteit Bestand 1a: verwerk cq maak bestand 3: beheer bericht verwerking 4a: serialiseer/deserialiseer Zender/Ontvanger 1b: verzend asynchroon bericht 1c: ontvang asynchroon bericht 1d: verwerk synchroon verzoek 2: berichten 4b: creëer/ verwerk berichten Java of.net API Aansluitend systeem 1e: doe synchroon verzoek Communicatie Bericht Beheer Werken met opslag berichten 43
Dienstenbus, broker en gegevensmagazijn Aansluitend systeem Aansluitend systeem Aansluitend systeem Broker: Berichtbuffering Routering Transformatie Orkestratie Berichten Berichten dienstenbus: communicatie Implementatieplatforms: BEA Weblogic IBM Websphere Oracle Application Server.Net Jboss (Paraplu) Berichten Authenticatie + autorisatie 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: contentmodel gebaseerd op ERD-objecten sturing berichtverwerking diverse functies ter ondersteuning van: 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