Werkgroep MAGDA richtlijnen en standaarden

Download Report

Transcript Werkgroep MAGDA richtlijnen en standaarden

MAGDA
standaarden & richtlijnen
Coördinatiecel Vlaams e-government (CORVE)
Lieven Verreycken, SOA Consultant Architect (HB)
Hans Arents, Senior Adviseur (CORVE)
Web: http://www.vlaanderen.be/e-government/
Coördinatiecel Vlaams
e-government
Objectief van de werkgroep
 Informatie verstrekken voor afnemers, bronnen, leveranciers
 Forum voor vragen en overleg ivm toekomstige evolutie van de
standaard
 Nuance standaard – richtlijn – best practice
– Standaard = MOET
– Richtlijn = BEST
 Eerste sessie: focus op informatie verstrekken
 Volgende sessies: af te spreken
Coördinatiecel Vlaams
e-government
Aanleiding
 Update van MAGDA documentatie
– xsd richtlijn
– 2.0
– FTP richtlijnen (sftp)
– Migratie van url’s
 Vragen naar uitbreiding vanuit authentieke bronnen
– Nieuwe bronnen zoals Digitale Bouwaanvraag en LNE-VEA-EPB
– O&V Da Vinci Discimus
Coördinatiecel Vlaams
e-government
Agenda deze sessie
 Doel MAGDA
 Doelstelling van de MAGDA standaarden
 Voorstelling van de standaard
– In combinatie met hoe in de praktijk toegepast op MAGDA
 Vragen
 Voorstellen voor uitbreidingen
Coördinatiecel Vlaams
e-government
Doel van het programma MAGDA
– MAximale GegevensDeling tussen Administraties
• Éénmalig inzamelen, veelvuldig gebruiken
• Decretaal vastgelegd
– Gestandardiseerde diensten, onafhankelijk van de bron
– Aantonen dat SOA werkt in de praktijk
– Voorbeeldfunctie voor andere diensten – “advies” – richtlijnen functie
• Voorbeeld technieken MAGDA overgenomen door projecten met webservices
– Onderwijs & Vorming voor webservices voor Universiteiten en Hogescholen
– Openbare Werken
– …
• Nieuwe authentieke bronnen via MAGDA gateway zoals LED (Diploma)
Coördinatiecel Vlaams
e-government
MAGDA: basis begrippen
 Vereenvoudigd model en terminologie
– Afnemers: ook leveranciers
 “kapstok” voor verdere verfijning
Afnemers
Diensten
Bronnen
Coördinatiecel Vlaams
e-government
Doelstelling standaarden
 Voordeel: winst in tijd en kost
– Eénzelfde manier van werken voor alle aansluitingen, ongeacht:
• ondernemings-, persoons-, … diensten
• MAGDA, LED, … diensten
– Richtlijn bij ontwerp
• Bij keuze -> geen onnodige discussie
– Starten van sjablonen en voorbeelden
– Re-use
 Nadeel: tragere evolutie in geval van wijzigende vereisten
– Soms leren leven met niet-optimale beslissingen uit verleden
Coördinatiecel Vlaams
e-government
Impact van wijziging op standaard
 Gebruik – dienst gemiddeld door 5,5 afnemers gebruikt
60
30,000,000
50
25,000,000
40
20,000,000
30
20
afnemers
15,000,000
diensten
10,000,000
transacties
5,000,000
10
0
0
2006
2006
2007
2008
2009
2010
2007
2008
2009
2010
2011
 Impact op alle afnemers die de diensten gebruiken
Coördinatiecel Vlaams
e-government
2011
Afnemers en bronnen
Afnemer: organisatie
CJSM
Federaal
(Kinderbijslag, …)
DAR
MOW
WVG
O&V
EWI
RWO
LNE
WSE
ALV
F&B
IV
Lokale
besturen
BZ
Diensten
Bron
Afgeleid
Repertorium
Koppeltabel
VKBO
CRAB
x KBO
LED (Bewijzen)
VOP
Entiteit
Federale
Bron
KBO
RR
Gray
don
RSZ
Info
Reg
CREON
RUP
KSZ
CRAB
NBB
Coördinatiecel Vlaams
e-government
Reper
toria
Vlaamse
Bron
DBA
...
...
Bronnen en soorten diensten
Afnemer
Federaal
Vlaamse
Agentschappen en administraties
Lokale
besturen
Diensten
4-ogen
Vraag
Antwoord
Geef - Zoek
Registreer
Publicatie
Vraag
Antwoord
Geef - Zoek
Registreer
Bronnen
Federaal
MAGDA repertoria
Kruispuntbank
 Standaard “soorten” diensten
 Met respectievelijke naamgeving
Coördinatiecel Vlaams
e-government
Vlaamse
bronnen
Publicatie
Functionele domeinen
Afnemer: toepassingen
ORAFIN
CIB
CJSM
DOMINO
INKOM
EWI
EFRO
EPB
ALV
Agri
link
De
Lijn
CLB
O&V
Studie
Toelage
AWV
PHP
WSE DPOL
MIA
WSE Inspect
AWAP
Diensten : Domeinen
Persoon
Werk
(Repertoria)
Onderneming x
Adres Locatie
RUP
CREON
Info
Bron
Voorbeeld toepassingen oa met “early adopters”
Coördinatiecel Vlaams
e-government
VDAB
LED (Bewijzen)
Onderwijs
italic : gepland
ESF
DBA
Privacy gevoelig
Onderneming
SYNTRA
Vlaanderen
VOPEntiteit
Standaard: functioneel domeinen
 Specifieke objecten per functioneel domein
 Ook in naamgeving dienst
– Fictief voorbeeld
• Inburger.GeefDossier
• BouwAanvraag.GeefDossier
 Voordeel
– Beheersbaar per functioneel domein
– Klassificatie en terugvinden van services
Coördinatiecel Vlaams
e-government
Naamgeving diensten
Afnemer
Diensten
GeefJaarrekening
GeefPersoon
GeefOnderneming
ZoekOnderneming
GeefVestigingen
GeefOnderneming
OpTijdstip
GeefStatuutRVV
GeefJRK
OpTijdstip
GeefHistoriek
Persoon
GeefBeschikbare
JRK
CreeerBIS
Geef
Tewerkstelling
GeefActiviteiten
GeefLeefloon
periodes
WijzigKSZPersoon
GeefGezins
samenstelling
Geef
Hoedanigheden
ZoekPersoon
OpAdres
GeefFuncties
ZoekPersoon
OpNaam
Bron
Coördinatiecel Vlaams
e-government
VerwijderDossier
Onderneming
GeefWerkrelaties
GeefAdressen
LocatiesCRAB
Registreer
Inschrijving
GeefAttestLoopbaanonderbreking
GeefDmfA
voorWerknemer
GeefPCenTW
GeefFiscale
Inhoudingsplicht
RegistreerDossier
Onderneming
BeheerAttest
Lerende
Inschrijving
Geef
Inkomen
Registreer
Uitschrijving
RegistreerDossier
Persoon
Geef
Handicap
Standaard: naamgeving diensten
 Domein.Functie(Aard)Doelobject(Bereik)
– Domein
• Deels in 1.1 diensten, overal toegepast sinds 1.2
– Functie
• Geef, Zoek, Creeer, Registreer, Wijzig, …
– Doeloject
• Onderneming, Persoon, Inschrijving, …
– Aard
• Mutaties, Historiek
 Document “Naamgeving van MAGDA diensten.versie1”
Coördinatiecel Vlaams
e-government
Naamgeving
 Toegepast op / vertaald naar technische services
– Webservice
• 1 naam – 1 dienst – 1 operatie
– FTP
• Geen operatie
Coördinatiecel Vlaams
e-government
Naamgeving : redenen vd keuze
 FTP en webservices
 Naamgeving voor service vs operatie vs url vs context/naam?
 Welke operaties al dan niet te bundelen in één service?
 Incrementeel toevoegen van nieuwe diensten zonder impact op
de bestaande webservice specificaties en versies
– Typische SOA aanpak
 Eenduidig voor toelatingen toegekend op niveau van de service
Coördinatiecel Vlaams
e-government
Naamgeving : redenen vd keuze
 Welke naamgeving niveau service vs niveau operatie vs url vs
context/naam?
 Welke operaties al dan niet te bundelen in één service ?
– Entity Service: dienst Persoon, Onderneming bv?
• Operaties GeefPersoon, ZoekPersoonOpNaam, …
• Welke naam op de operatie?
• Welke naam op de url
• Welke naam in de context?
– Wat met geen Entity Services?
– Schrijf en lees diensten in afzonderlijke webservices ?
Coördinatiecel Vlaams
e-government
Naamgeving : redenen vd keuze
 Incrementeel toevoegen van nieuwe diensten zonder impact op
de bestaande webservice specificaties en versies
– Incrementeel = eigen aan SOA = praktijk MAGDA
– Starten met GeefPersoon 1.0, ZoekPersoonOpNaam 1.0, …
– Wijzigingen op de GeefPersoon
• Nieuwe versie webservice? Van 1 operatie of alle operaties?
 Toelatingen
– Niveau van de webservice – operatie ?
Coördinatiecel Vlaams
e-government
Diensten Vlaamse bronnen
Afnemer
Diensten
GeefInfo
GeefBewijs
DBA.GeefDossier
GeefInfoDetail
RegistreerBewijs
DBA.GeefEvent
GeefHistoriekInfo
AnnuleerBewijs
DBA….
GeefHistoriek
InfoDetail
GeefVOPEntiteit
GeefRUP
RegistreerInfo
ZoekVOPEntiteit
ZoekRUP
CREON
Gateway
Bron
Info
Reg
Coördinatiecel Vlaams
e-government
VOP
Entiteit
LED
RUP
DBA
CREON
Geef – Publiceer Diensten
Afnemer
Diensten : Geef en Publiceer
GeefOnderneming Onderneming
Publiceer
Onderneming
GeefVestigingen
Vestiging
Publiceer
Vestigingen
GeefActiviteiten
Activiteit
Publiceer
Activiteiten
...
...
...
GeefBewijs
Bron
Coördinatiecel Vlaams
e-government
GeefPersoon
Persoon
Publiceer(Mutatie)
Persoon
Publiceer(Mutatie)
GeefAttestLoopAttestLoop
baanonderbreking Baanonderb... Loopbaanonderbr..
GeefDmfA
voorWerknemer
Bewijs
DmfAvoor
Werknemer
Publiceer(Mutatie)
Bewijs
Publiceer(Mutatie)
DmfAvoorWerkn...
Standaard
 Objecten in vraag-antwoord services en publicaties zijn dezelfde
 Voordeel
– Consistentie voor de afnemer
Coördinatiecel Vlaams
e-government
Diensten met eenduidig begrippenkader
Afnemer
Ondernemings
nummer
Diensten
INSZ
Persoon
Repertoria
Info
DBA
Onderneming
Onderneming x
Adres Locatie
Werk
VOPEntiteit
LED (Bewijzen)
Leren
RUP
Ondernemings
nummer
CREON
INSZ
Bron
CBE
Number
CBE
Nr
KBO
NBB
Ent
Nr
RSZ
Coördinatiecel Vlaams
e-government
National
Nr
RR
CBE
Nr
SSIN
KSZ
Person
Nr
Fed
ICT
Ondernemings
nummer
Reper
VOP
KBI
toria
Entiteit
INSZ
LED
INSZ
RUP
CREON
Standaard: eenduidig begrippenkader
 Voordeel naar documentatie
– Begrippenlijst per functioneel domein
– Duidelijke semantiek voor de afnemer
 Sterk afhankelijk van de authentieke bronnen
– Gegeven van authentieke bron mag niet gewijzigd worden (inhoud)
• Ondernemingsnummer: altijd 10 lang bij MAGDA, + voorloopnul
• Andere codes voor bv geslacht
– code kan verschillen van de authentieke bron
– Zolang deze 1 op 1 mappen met de bron, is er geen informatieverlies
– Eenzelfde begrip kan door authentieke bron verschillend
geïmplementeerd zijn in verschillende services
Coördinatiecel Vlaams
e-government
Standaard
 Naamgeving
 wsdl – xsd – url
 Folder structuur van de specificatie
 Types en elementen: generiek en voor functionele domeinen
 Versiebeheer in de specificatie
 xsd modellering
Coördinatiecel Vlaams
e-government
Standaard
 xsd (voor FTP en webservice)
– Verzoek-Repliek / Vraag-Antwoord
– Context – Inhoud – Uitzondering
• Context en Uitzonderingen identiek voor alle diensten
• Inhoud specifiek per dienst
– Dienst specifiek Inhoud
• Generieke domein objecten
 wsdl (voor webservice)
 url (voor webservice)
Coördinatiecel Vlaams
e-government
Verzoek
Coördinatiecel Vlaams
e-government
Sjabloon
 xsd
– Dienstnaam, namespace, schema locaties van de xsd’s aan
 voor xsd
– Alleen het VraagInhoudType dienst specifiek maken
• Refereren naar een domein specifiek objet
Coördinatiecel Vlaams
e-government
Repliek
Coördinatiecel Vlaams
e-government
wsdl sjabloon
Coördinatiecel Vlaams
e-government
wsdl sjabloon
<wsdl:service name=“GeefA">
<wsdl:port name="webServiceHttpPort" binding="webServiceHttpBinding">
<soap:address location="https://magdadienst.vlaanderen.be/MagdaDienst02.00/soap/WebService"/>
</wsdl:port>
</wsdl:service>
<wsdl:portType name="webServicePortType">
<wsdl:operation name=“GeefA">
<wsdl:input name="GeefARequest" message="GeefARequest"/>
<wsdl:output name="GeefAResponse" message="GeefAResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:message name="GeefAResponse">
<wsdl:part name="Repliek" element="GeefAResponse"/>
</wsdl:message>
Coördinatiecel Vlaams
e-government
Naamgeving elementen
 Message (input/output): Request - Response
 Top Element (input/output): Verzoek – Repliek
– Enige element dat globaal gedefinieerd wordt
– Alle andere elementen via Type definities
Coördinatiecel Vlaams
e-government
FTP variant
 FTP variant
– Meerdere vragen / antwoorden
• Vroeger 1000, nu onbeperkt
– “Service” folder
Coördinatiecel Vlaams
e-government
Domeinen : principe
Sleutel
Generiek
Onderneming
Lerende
Coördinatiecel Vlaams
e-government
Persoon
Adres
Werk
...
Vergunning
Bewijs
...
Domeinen
 Generiek: voor alle berichten
 Basisregisters Persoon, Onderneming, …
 Sleutels van de basisregisters
– niet alle “ballast” van het volledige domein mee te nemen
– bij “include”
– vanaf 2.0
 Business specifieke:
– include de basisregisters of andere business specifieke
Coördinatiecel Vlaams
e-government
Files en folders per domein
 Vanaf 1.2 soms, vanaf 2.0 altijd
– Domein.xsd: alle definities binnen deze folder
– DomeinComplex.xsd: alle complex types
– DomeinEnum.xsd: alle enumeraties
– DomeinSimple.xsd: alle simple types
 Vervangt
– Domein.xsd
– GeneriekDataTypes.xsd
– GeneriekDataCodes.xsd
– GeneriekDataKern.xsd
Coördinatiecel Vlaams
e-government
Domeinen: beheerders
 CORVE MAGDA
– Generiek
– Basisregisters Persoon, Onderneming, …
 Verschillende Business afdelingen ism CORVE
– Voor de eigen business specifieke
– Bijvoorbeeld LED voor Bewijs
– LED specifieke extensies voor de MAGDA gateways
• BewijsExtensie.xsd met BewijsPublicatieType
Coördinatiecel Vlaams
e-government
Versies
 Files en folders
– Folders voor de domeinen met versieaanduiding
• Bijvoorbeeld: Generiek-02.00
• Voordeel: duidelijk correcte versie van het volledig domein meenemen
• Nadeel: alle include/import statements en namespaces versie specifiek
– File namen zonder versieaanduiding
 Namespace xmlns:generiek="http://generiek-02_00.vip.vlaanderen.be"
– Prefix zonder versieaanduiding
• Uitzondering: indien meerdere versie van 1 domein gebruikt in de service
– Namespace met versieaanduiding
Coördinatiecel Vlaams
e-government
Generiek: partijen in het bericht
Coördinatiecel Vlaams
e-government
Ontwerp beslissing
 Referte
– voor de Afzender: verplicht
– voor Ontvanger: onbekend bij versturen van het bericht.
 Alternatieven
– Verschillende partijen, met validatie logica in de xsd
– 1 PartijType, met validatie logica buiten de xsd
Coördinatiecel Vlaams
e-government
Validaties bij aansluiting op T&I
 Vooraleer “go” op productie
 Belangrijkste controles:
– Aantal representatieve testgevallen
– Correct gebruik van referte
• Vereist voor tracebility in productie
– Aantal optionele elementen
• Afzender en Ontvanger Naam: controle verdwijnt
• Verplicht veld Identificatie is vereist
• INSZ van gebruiker voor persoonsdiensten: verdwijnt ?
Coördinatiecel Vlaams
e-government
Richtlijnen schema – xsd modellering
 Schema
– Taal (1)
 Componenten
(Elementen, Types, …)
– Industrie standaarden (5)
– Naamgeving (13)
– Modulariteit (9)
– Definitie (15)
– Structuur (1)
– Ontwerp (11)
– Namespace (8)
– Versie (3)
– Andere (2)
 Document “CORVE_VIP_Richtlijnen_XML_Schema”
Coördinatiecel Vlaams
e-government
Algemeen
 Maak xsd niet te complex
– Te begrijpen door afnemers
 Aantal elementen vd sequence ComplexType: max 10
– Indien meer: is men met nog 1 type bezig?
 Diepte van de boom: max 5 niveaus
– Indien meer: Verschillende objecten? Verschillende services?
Coördinatiecel Vlaams
e-government
Naamgeving (Element, Types, …)
 Nederlands (NAAM001)
– Vertalen van business specifieke concepten naar het Engels -> good luck
– Nadeel: ontsluiting naar federale en Europese afnemers
 Afkortingen (NAAM011)
– Alleen de “gekende” / “gangbare” afkortingen
• DmfA, KBO, percid
Coördinatiecel Vlaams
e-government
Enumeraties
 Origineel: alle enumeraties in CodeType / EnumType
 Voortschrijdend inzicht
– Enumeraties zijn volatiel
– Zelfs diegene waarvan men denkt dat ze stabiel zijn bv geslacht
– Wijziging enumeratie breekt het contract
 Conclusie: alleen enumeraties bij zekerheid
 NAAM005, NAAM006, ONTW007
Coördinatiecel Vlaams
e-government
Naamgeving (Element, Types, …)
 Upper Camel Case / Pascal Case (NAAM009)
 ISO 11179 (NAAM002)
 “Type” suffix voor types (NAAM007)
<xs:complexType name=“PersoonType">
<xs:sequence>
<xs:element name=“INSZ" type=“generiek:INSZType">
<xs:element name=“Geslacht" type=“GeslachtType“ minOccurs="0">
<xs:element name=“Geboorte" type=“GebeurtenisType">
<xs:element name=“Overlijden" type=“GebeurtenisType“ minOccurs="0">
</ xs:sequence>
</ xs:complexType>
Coördinatiecel Vlaams
e-government
Collections
 Afzonderlijk element voor de collection
– ipv unbounded rechtstreeks binnen het bovenliggende Type
 Voordeel
– Leesbaarheid
– Code generatie
– Parsing
Coördinatiecel Vlaams
e-government
Typering
 Steeds Types voor de elementen binnen ComplexType
– Complex of Simple
 Any Type: slechts uitzonderlijk toegelaten
 Aantal SimpleType voor strings
 Voordeel
– Leesbaarheid
Coördinatiecel Vlaams
e-government
Generiek
 Adres uit 1.2
– Straat, gemeente
• In principe verplicht
• Optioneel wegens uitzonderlijk
niet ingevuld door bron 
– NIS Straat code
• Idem cfr supra
– NIS gemeente code
– CRAB straat code
– Adres Internationaal
Coördinatiecel Vlaams
e-government
Beschrijving - omschrijving
 Beschrijving
– Attribuut dat tekstuele beschrijving geeft van een ander element, meestal
een code
• Geslacht
 Omschrijving
– Element
– Kan ook andere benaming zijn, bijvoorbeeld Diagnose voor Uitzondering
Coördinatiecel Vlaams
e-government
Types en operaties
 Op éénzelfde object
– Creatie: aantal constaints
>> default Type
– Consultatie: mogelijk minder constraints (niet alles via Creatie service
aangemaakt)
>> InputType, AanmaakType
– Opzoeking: criteria met weinig constraints
>> CriteriaType
Coördinatiecel Vlaams
e-government
Datums en tijd
 Tijdstip Type
– Tijd en Datum
 Creatie en modificatie datum van object
 Periodes
– Begindatum en Einddatum
• 4 combinaties verplicht – optioneel in 2.0
Coördinatiecel Vlaams
e-government
Simple Types
 Getal: string met pattern
<xs:simpleType name=“xxxType">
<xs:restriction base=“xs:string”>
<xs:maxlength name=“3">
<xs:pattern value="[0-9]{1,3}"/>
</xs:restriction >
</ xs:simpleType>
Coördinatiecel Vlaams
e-government
Wijzigingen 2.0 tov 1.x
 Doelstellingen
– gateways
– redundante systemen voor
hogere beschikbaarheid
 Contract van gateway
en directe business
dienst na gateway zijn gelijk
Afnemer
Magda
Magda Gateway 2.0
Magda
Business
Dienst 1.0
KSZ
Business
Dienst
Bestaande
architectuur
Coördinatiecel Vlaams
e-government
Magda
Business
Dienst 2.0
KSZ, RR,
...
Business
Dienst
LED, KBI,
…
Business
Dienst
Doel
architectuur
Wijzigingen 2.0 tov 1.x
 Referte
– 36 ipv 24 lang: mogelijk om een uuid te gebruiken
– Met 24 lang was er ook een codering met milliseconden + random, maar
deze is niet noodzakelijk uniek met MAGDA load-balanced systemen voor
24:7 beschikbaarheid (minieme kans op collision).
 Oorsprong van de fout
Coördinatiecel Vlaams
e-government
Wijzigingen 2.0 tov 1.x
 Referte
 Oorsprong van de fout
– MAGDA of Bron: LED, …
– Codering van de fouten via 5 cijfers (99999)
– Geen unieke set van
nummers over alle bronnen heen
– Wel herbruik van common codes MAGDA
• Bv geen gegevens gevonden
Coördinatiecel Vlaams
e-government
Standaarden protocols
Internet
https .vlaanderen url
ftp
Bron
Diensten
vipftp.vlaanderen.be
Publiek
Afnemer
Intranet
(vonet,
gid,
hostnet)
http
.vonet url
ftp
vipftp.vlaanderen.be
Afnemer
https .vonet url
sftp
Coördinatiecel Vlaams
e-government
vipftps.vonet.be
Privacy
gevoelig
Standaard formulier aansluiting vd afnemer
 Standard formulieren voor aanvraag
 Identificatie aanvrager
 Motivatie
 Machtigingen
– privacy gevoelige diensten
 Validatie in T&I omgeving
 Timing forecast
Coördinatiecel Vlaams
e-government
Richtlijnen documenten
 Wsdl – xsd – url
 Xml schema en componenten
 Bronnen – leveranciers – afnemers
 Versiebeheer: hoe lang parallelle versies ondersteunen
 Naamgeving van diensten
 FTP
 Ondersteuning afnemers in integratietraject: validatie bij
aansluiting
Coördinatiecel Vlaams
e-government
Bedankt voor uw aandacht
Nog vragen?
Meer informatie over het Vlaamse e-government
en de Coördinatiecel Vlaams e-government:
http://www.vlaanderen.be/e-government/
Coördinatiecel Vlaams
e-government