magda standaarden richtlijnen n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
MAGDA standaarden & richtlijnen PowerPoint Presentation
Download Presentation
MAGDA standaarden & richtlijnen

Loading in 2 Seconds...

play fullscreen
1 / 59

MAGDA standaarden & richtlijnen - PowerPoint PPT Presentation


  • 231 Views
  • Uploaded on

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 /. Objectief van de werkgroep.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'MAGDA standaarden & richtlijnen' - paytah


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
magda standaarden richtlijnen

MAGDAstandaarden & 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/

objectief van de werkgroep
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
aanleiding
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
agenda deze sessie
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
doel van het programma magda
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)
magda basis begrippen
MAGDA: basis begrippen
  • Vereenvoudigd model en terminologie
    • Afnemers: ook leveranciers
  • “kapstok” voor verdere verfijning
doelstelling standaarden
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
impact van wijziging op standaard
Impact van wijziging op standaard
  • Gebruik – dienst gemiddeld door 5,5 afnemers gebruikt
  • Impact op alle afnemers die de diensten gebruiken
bronnen en soorten diensten
Bronnen en soorten diensten
  • Standaard “soorten” diensten
  • Met respectievelijke naamgeving
functionele domeinen
Functionele domeinen

Voorbeeld toepassingen oa met “early adopters”

italic : gepland

standaard functioneel domeinen
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
standaard naamgeving diensten
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”
naamgeving
Naamgeving
  • Toegepast op / vertaald naar technische services
    • Webservice
      • 1 naam – 1 dienst – 1 operatie
    • FTP
      • Geen operatie
naamgeving redenen vd keuze
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
naamgeving redenen vd keuze1
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 ?
naamgeving redenen vd keuze2
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 ?
standaard
Standaard
  • Objecten in vraag-antwoord services en publicaties zijn dezelfde
  • Voordeel
    • Consistentie voor de afnemer
standaard eenduidig begrippenkader
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
standaard1
Standaard
  • Naamgeving
  • wsdl – xsd – url
  • Folder structuur van de specificatie
  • Types en elementen: generiek en voor functionele domeinen
  • Versiebeheer in de specificatie
  • xsd modellering
standaard2
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)
sjabloon
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
wsdl sjabloon1
wsdl sjabloon

<wsdl:service name=“GeefA">

<wsdl:port name="webServiceHttpPort" binding="webServiceHttpBinding">

<soap:address location="https://magdadienst.vlaanderen.be/MagdaDienst-02.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>

naamgeving elementen
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
ftp variant
FTP variant
  • FTP variant
    • Meerdere vragen / antwoorden
      • Vroeger 1000, nu onbeperkt
    • “Service” folder
domeinen
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
files en folders per domein
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
domeinen beheerders
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
versies
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
ontwerp beslissing
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
validaties bij aansluiting op t i
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 ?
richtlijnen schema xsd modellering
Richtlijnen schema – xsd modellering
  • Componenten
      • (Elementen, Types, …)
    • Naamgeving (13)
    • Definitie (15)
    • Ontwerp (11)
  • Schema
    • Taal (1)
    • Industrie standaarden (5)
    • Modulariteit (9)
    • Structuur (1)
    • Namespace (8)
    • Versie (3)
    • Andere (2)
  • Document “CORVE_VIP_Richtlijnen_XML_Schema”
algemeen
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?
naamgeving element types
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
enumeraties
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
naamgeving element types1
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>

collections
Collections
  • Afzonderlijk element voor de collection
    • ipv unbounded rechtstreeks binnen het bovenliggende Type
  • Voordeel
    • Leesbaarheid
    • Code generatie
    • Parsing
typering
Typering
  • Steeds Types voor de elementen binnen ComplexType
    • Complex of Simple
  • Any Type: slechts uitzonderlijk toegelaten
  • Aantal SimpleType voor strings
  • Voordeel
    • Leesbaarheid
generiek
Generiek
  • Adres uit 1.2
    • Straat, gemeente
      • In principe verplicht
      • Optioneel wegens uitzonderlijkniet ingevuld door bron 
    • NIS Straat code
      • Idem cfr supra
    • NIS gemeente code
    • CRAB straat code
    • Adres Internationaal
beschrijving omschrijving
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
types en operaties
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

datums en tijd
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
simple types
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>

wijzigingen 2 0 tov 1 x
Wijzigingen 2.0 tov 1.x
  • Doelstellingen
    • gateways
    • redundante systemen voor hogere beschikbaarheid
  • Contract van gatewayen directe businessdienst na gateway zijn gelijk
wijzigingen 2 0 tov 1 x1
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
wijzigingen 2 0 tov 1 x2
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
standaard formulier aansluiting vd afnemer
Standaard formulier aansluiting vd afnemer
  • Standard formulieren voor aanvraag
  • Identificatie aanvrager
  • Motivatie
  • Machtigingen
    • privacy gevoelige diensten
  • Validatie in T&I omgeving
  • Timing forecast
richtlijnen documenten
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
slide59

Bedankt voor uw aandacht

Nog vragen?

Meer informatie over het Vlaamse e-governmenten de Coördinatiecel Vlaams e-government:http://www.vlaanderen.be/e-government/