Software services worden gebruikt in Enterprise applications

Maat: px
Weergave met pagina beginnen:

Download "Software services worden gebruikt in Enterprise applications"

Transcriptie

1 Samenvatting Service Oriented Architecture Wat is architectuur? Architecture is a term that lots of people try to define, with little agreement. There are two common elements: One is the highest-level breakdown of a system into its parts; the other, decisions that are hard to change. (Martin Fowler in Patterns of Enterprise Application Architecture) Wat is een software service A service is a means of delivering value to customers by facilitating outcomes the customers want to achieve without ownership of specific costs or risks (Service definitie in ITIL) Altijd minstens twee partijen Software service beide partijen zijn software Meestal over een netwerk Geautomatiseerde contracten contract = wat doet de service (tegen welke voorwaarden) Software services worden gebruikt in Enterprise applications Veel gebruikers grote applicaties Communicatie met andere applicaties in de onderneming en met externen KISS principe (Keep it simple stupid): eenvoudige algoritmen, eenvoudige datastructuren, maar ook eenvoudige hoofdstructuur Lange levensduur van data (ten opzichte van technologie) Flexibel Business driven Herbruikbare bouwstenen Veel stakeholders: politieke beslissingen Entropie stijgt in een gesloten systeem Applicatie ondergaat wijzigingen Oorspronkelijke design principes worden uit het oog verloren of workarounds Applicaties worden minder en minder beheerbaar Business architect moet hiervoor tegengas bieden Business architect Entropie van een systeem onder controle houden Applicaties kaderen in strategie Samenvatting service oriented architecture 1

2 Afwegen van niet-ideale oplossingen Refactoring: applicatie aanpassen zonder de functionaliteit te wijzigen (bijvoorbeeld interne structuur aanpassen) Typische cyclus: aanpassen => refactoring => aanpassen => refactoring... Incrementele optimalisatie (Service Oriented Architecture geschikt hiervoor) Officiële definitie van SOA A service-oriented architecture provides the flexibility to treat elements of business-processes and the underlying IT infrastructure as secure, standardized components (services) that can be reused and combined to address changing business priorities. (IBM) Services vormen componenten of bouwstenen Services kunnen herbruikt worden op business niveau Doordat services ook de technologie afschermen, kunnen we verschillende technologiën met elkaar combineren (.NET applicatie die via een service met een CICS backend werkt) Services zijn loosely-coupled Andere definitie SOA is about connecting customer requirements with enterprise capabilities, regardless of technology landscape or arbitrary organizational boundaries. SOA: drie termen Operations: (software) methodes die één welomschreven taak uitvoeren, bijvoorbeeld SchrijfGeldOver(rekening1, rekening2, bedrag) Service: logische groepering van operations, bijvoorbeeld een bankrekening service Business process: (meestal) langdurige opeenvolging van activiteiten die gebruikt maakt van services. Een business process is bursty en ful. Dat wil zeggen dat het proces een belangrijk deel van de tijd niets doet (staat te wachten) en ondertussen onthoudt wat er al gebeurd is. Een facturatieproces begint met de melding dat er mag gefactureerd worden. De factuur wordt verstuurd en men wacht op betaling. Wanneer de klant niet op tijd betaalt moet er een herinnering verstuurd worden. Wanneer er betaald wordt, moet de betaling afgeboekt worden in de boekhouding. Waar ligt de oorsprong van SOA Drie evoluties: Programmeertalen assembler: machinecode afschermen van programmeur via mnemonics COBOL: programmeerstructuren (iteratie, selectie) herbruiken door ze te definiëren in een hogere taal Werken met functies (functionaliteit herbruiken) Samenvatting service oriented architecture 2

3 Samenvatting service oriented architecture 3

4 Componenten: modules (verzameling van functies die samenhoren herbruiken) OO-talen: mogelijkheid om functionaliteit te herbruiken via overerving (inheritance) OO-talen: program to an interface, not to an implementation. Scheiding van interface (lijst van methodes + argumenten) en implementatie (de code die echt iets doet) => we kunnen de implementatie wijzigen zonder de intgerface te wijzigen. Daardoor zullen wijzigingen in de applicatie meer gelokaliseerd worden. Distributed computing Terminals (VT100 van Digital Equipment Corporation) => mainframe UNIX: besturingssysteem waarbij networking ingebouwd is in het besturingssysteem UNIX: via Network File System de bestanden op een andere machine in het netwerk aanspreken (maakt gebruik van Remote Procedure Calls) CORBA: Common Object Request Broker Architecture: objecten aanspreken via het netwerk (niet alleen procedures aanroepen, maar ook creatie en delete van objecten) World Wide Web: standaardisatie van de client applicatie (web browser met HTML en javascript). Je kunt vanop een Windows client surfen naar een UNIX server Enterprise Javabeans: Applicatie server waarin componenten worden geïnstalleerd. De application server is verantwoordelijk voor toegang tot databanken, logging, beheer van transacties en security SOAP: Simple Object Access Protocol om remote procedure calls uit te voeren via het web (HTTP protocol) en XML (webservice) WSDL: Webservice definition language. Gestandardiseerde beschrijving van de mogelijkheden van een interface zodat ontwikkelaars de code die nodig is om via het netwerk een webservice aan te spreken automatisch kunnen laten genereren(eigenlijk geautomatiseerd contract) Business computing Centrale mainframe waar alles opstaat (monolithische applicaties) Via batch programma's bepaalde taken uitvoeren (vertraging op resultaat aangezien batch programma's op bepaalde tijdstippen worden uitgevoerd en niet continu) Databanken: aparte applicaties om met data te werken. De databank kan ondervraagd worden via de taal SQL. Tegenwoordig wordt SQL gebruikt door ontwikkelaars. Oorspronkelijk is het ontwikkeld als een taal voor business mensen SAP R/2: gestandardiseerde software voor Enterprise Resource Planning. Real time processing van financiële data (<=> batch programma's) goedkope IBM PC zorgde ervoor dat er gemakkelijk client programma's naar de gebruiker konden worden gebracht. (client-server applicaties) Enterprise Application Integration: verschillende applicaties met elkaar integreren (ERP en Customer Relationship Management bijvoorbeeld) Business process Modeling: proces definiëren via een grafische interface (en uitvoerbaar maken) Model Driven Architecture: software genereren op basis van een model Samenvatting service oriented architecture 4

5 SOA: 9 onderdelen 4 hoofdbestanddelen: Application front end, service repository, service, service bus. Application front end stuurt het proces (eigenlijk de gebruiker van de application front end.) application frontends komen overeen met UI-layer van three tier. Maar opgelet: services komen niet overeen met de lagere lagen Services geven structuur aan de SOA (application front end kan regelmatig veranderen, services blijven grotendeels hetzelfde) Services omvatten een high level business concept. Contract: informele beschrijving van doel, functionaliteit, beperkingen (constraints) en gebruik van de service. Kan ook een formele definitie bevatten onder de vorm van IDL of WSDL, maar dit is altijd maar een deel van het contract Interface: deel van de service dat van buiten kan worden aangesproken. de beschrijving van de interface is deel van het contract. De implementatie van de interface gebeurt via proxies of stubs in de client van de service Implementatie: bevat business logica en data (programma's, configuratiebestanden + databanken) Business logic: deel van de implementatie dat business rules bevat Data: gegevens waarmee de service werkt, vooral bij data-centric service Service is een vertical slicing (geen horizontale zoals bij three tier layers) die een volledig business concept bevat. Service repository: om services terug te vinden. Hoeft niet via technologie geïmplementeerd te zijn. (een klasseur met documenten). Kan de volgende items bevatten: WSDL en XSD schema's Service owner: business level (vragen en change requests voor functional level), development level (technische vragen en change requests), operational level (beste manier om een service aan te spreken of operationele problemen) info over toegangsrechten Informatie over verwachte performantie en scalability. Kan via een SLA agreement Transactionele eigenschappen van de service. Service bus: verbindt alle deelnemers: services en application frontends. Lijkt op software bus van CORBA. Maar kan bijvoorbeeld uit verschillende technologieën bestaan. Connectivity: verbindt alle deelnemers heterogene technologieën: verschillende programmeertalen, operating systems moeten met elkaar verbonden kunnen worden. Heterogene communicatie: zowel synchrone als asynchrone communicatie technische services: logging, auditing, security, transacties... Service-oriented architecture: 8 principes Een gestandardiseerd service contract: alle services in de repository volgen dezelfde contract Samenvatting service oriented architecture 5

6 design standards Service loose coupling: service contracten leggen geen zware koppeling op met de consumers en services zijn zelf los gekoppeld aan hun omgeving Service abstraction: service contracten bevatten alleen essentiële informatie en informatie over services is beperkt tot wat er in het service contract staat Service reusability: services kunnen herbruikt worden Service autonomy: services kunnen hun taak uitvoeren zonder al te veel hulp van buitenaf Service lessness: services houden zo weinig mogelijk bij Service discoverability: services bevatten voldoende meta informatie (informatie over de service) om gemakkelijk gevonden te worden Service composability: services kunnen gemakkelijk deel uitmaken van een groter geheel Service-oriented architecture: 4 karakteristieken Business driven: in het verleden speelde software vooral in op tactische(=korte termijn) business vereisten. SOA moet zich meer richten naar lange termijn (strategische) plannen. => business en technologie groeien uit elkaar Vendor neutral: SOA moet de algemene principes volgen van de huidige SOA oplossingen, zonder afhankelijk te zijn van specifieke implementaties. => vendor (dus SOA) drijft business processen Enterprise centric: alle oplossingen moeten kaderen in het grotere geheel => geen software silos (=bijvoorbeeld eigen oplossing in Access of Excel) => alle software moet ontworpen zijn om gedeeld te worden. Composition centric: service moeten gemakkelijk deel kunnen uitmaken van een groter geheel(zelfs al zijn ze daar oorspronkelijk niet voor bedoeld) Communicatie tussen services Communicatie middleware: RPC, Corba(soms zonder object beheer, waardoor het eigenlijk RPC wordt), Message oriented middleware Transaction monitors en application servers synchrone vs asynchrone communicatie interface <=> payload semantics tight <=> loose coupling physical: direct verbonden of via een intermediary (MOM) communicatie stijl: synchroon vs asynchroon type systeem: interface vs payload interactie: OO (corba) vs self contained messages control of process logic: central vs distributed service discovery and binding: statically bound services vs dynamically bound services (twee soorten runtime binding) development time binding: gemakkelijkste en meest gebruikte. Bij het ontwikkelen van de client is geweten met welke service men een connectie wil maken en deze informatie zit vast in de code (interface) Samenvatting service oriented architecture 6

7 runtime binding: veel moeilijker runtime service lookup by name: meest gebruikt, service definitie is gekend tijdens development, service lokatie wordt opgezocht at runtime via de naam van de service runtime service lookup by properties: idem, maar niet gezocht op naam, maar op eigenschappen: zoek een print service op de tweede verdieping die postscript kan afdrukken (VERDIEPING=2, LANGUAGE=POSTSCRIPT) runtime service discovery via reflection: in tegenstelling tot bij de twee vorige is de interface niet gekend bij developing. Via reflection wordt de interface opgevraagd. Weinig gebruikt want veel te ingewikkeld. Remote procedure call Remote procedure kan worden aangesproken zoals een gewone procedure via een client stub. Dit is een methode die er hetzelfde uitziet als de echte methode (die op de server staat), maar met behulp van de RPC library de connectie verzorgt over het netwerk. Aan de server kant vertaalt de server stub de netwerk aanroep naar een gewone functie aanroep Distributed objects(corba) Hier kunnen niet alleen methodes of procedures worden opgeroepen, maar er kunnen ook objecten worden gemaakt, gezocht en verwijderd. Een client kan een verwijzing opvragen naar een object op de server (client proxy object). Via dat object kan men methodes via de client oproepen die op de server zullen worden uitgevoerd. Soms worden de Create, find en delete mogelijkheden niet gebruikt. In feite wordt CORBA dan RPC. In tegenstelling tot bij SOA zijn de methodes die worden opgeroepen fine-grained. Ze komen meestal niet overeen met business methodes. Message oriented middleware Geen rechtstreekse communicatie tussen beide partijen Verloopt via een tussenpersoon. Opdracht wordt als message verstuurd naar een queue (of een topic) Message bestaat uit een header en een payload. Header is algemeen voor elke applicatie die de MOM gebruikt. Bevat onder meer informatie naar welke queue de message moet worden gestuurd payload is applicatie specifiek en bevat business data (en opdrachten), dikwijls in XML formaat. Een queue is een plaats waar messages worden achtergelaten Samenvatting service oriented architecture 7

8 Voorbeeld van een Message Oriented Middleware is Twee soorten: Point-to-point (één-op-één communicatie) en publish-subscribe (één-op-veel of veel-op-veel communicatie) De eerste soort (Point-to-point) noemt men een queue. De tweede soort (publish-subscribe) noemt men een topic. Transaction monitors Duizenden gebruikers Computer resources verdelen onder gebruikers (multiplexing) Beheer van CPU, database transacties, sessions, opslag, Ook distributed applicaties Voorbeelden: CICS, IMS, Tuxedo CICS al meer dan 20 jaar oud. Wordt aangesproken via External Call Interface (ECI) ECI bevat library voor RPC aanroepen CICS transaction gateway bevat een object georiënteerde interface voor Java IMS werkt met MQSeries (MOM) Application servers Tussen webserver en backend systeem(bijv. Databank) Verzamelt informatie uit de backend en zet die om naar HTML code Componenten beheren, toegang tot datasources beheren, verschillende user interfaces ondersteunen Microsoft: Internet information server +.NET Java: JBoss, Websphere, Tomcat, : J2EE (of Java EE) Java EE bevat vele standaarden: Java Servlets, Java Server Pages, Java Server Faces, Enterprise JavaBeans, Java EE Connector Architecture, Java Naming and Directory Interface (JNDI), Java Management Extensions, Java Transaction API, CORBA, Java Messaging Service (JMS) Synchrone/asynchrone communicatie Bij synchrone communicatie moet de client wachten tot de server klaar is. De client blijft dus geblokkeerd. Wanneer een gebruiker gegevens opvraagt via een Windows applicatie en de opvraging gebeurt synchroon, zal de applicatie geblokkeerd blijven tot alle gegevens zijn overgehaald (tenzij de client met verschillende threads werkt) Meestal RPC-communicatie. Synchrone communicatie kan men vergelijken met een telefoongesprek. Bij asynchrone communicatie kan de client verderwerken vanaf het moment dat de opdracht verstuurd is. Er wordt niet gewacht op de server. (vergelijk met , de meeste mensen wachten niet op een antwoord) MOM kan ook gebruikt worden voor synchrone communicatie via een apart framework boven de message queue. Achter de schermen worden er twee queues gebruikt. Samenvatting service oriented architecture 8

9 De client verstuurt een bericht naar het framework. Dat plaatst het bericht in queue1. Het framework wacht op een antwoord in queue2 De server ontvangt het bericht en plaatst het antwoord in queue2 Vanaf het moment dat het antwoord in queue2 is ontvangen door het framework, stuurt dat het antwoord naar de client Voor de client is het net of er een synchrone communicatie is geweest RPC kan ook gebruikt worden op een asynchrone manier via callbacks: client stuurt en request naar de server die geeft de controle direct terug aan de client (heel korte methode), eventueel na een bevestiging De server verwerkt de request Wanneer de server klaar is wisselen de twee om van taak. De server wordt client en roept een callback methode op de oude client (nu dus de server) op Wanneer het niet mogelijk is om de oorspronkelijke client terug op te roepen( firewall) kan de client ook regelmatig pollen naar een antwoord Interface/payload semantics Interface semantics wil zeggen dat er voor elke aanroep een verschillende methode is, bijvoorbeeld getcustomer(int id) Bij payload semantics gebruiken alle aanroepen dezelfde methode (sendmessage). Wat de server juist moet doen staat in de message. Interface semantics zijn voor de ontwikkelaars gemakkelijker te gebruiken. Ze hebben een lijst met methodes en hun argumenten die ze kunnen oproepen. Wanneer de naam van methodes goed gekozen is, is het ook duidelijk wat de methode doet. Maar wanneer de parameters van de methode veranderen omdat er andere informatie moet worden meegestuurd (interface verandert), moeten alle applicaties die de interface gebruiken, worden verandert (zelfs al gebruiken ze de methode niet) Bij payload semantics kan men bijkomende messages definiëren, zonder dat de client over moet worden aangepast. In de tekeningen wordt gesuggereerd dat interface semantics bij RPC horen en payload semantics bij MOM. Dit hoeft niet. In RPC kan men ook een methode Execute (Message) hebben. SOAP is een voorbeeld van payload semantics. We noemen dit ook dpcument centric messages. Het volledige commando staat in een XML document. Samenvatting service oriented architecture 9

10 Tight vs Loose coupling Laag Tight coupling Loose coupling Physical coupling Directe fysieke link nodig Tussenpersoon Communicatie stijl Synchroon Asynchroon Types Interface semantics Payload semantics Interactie patroon Object trees Self contained messages Control of process logic Central control Distributed logic Service discovery & binding Platform afhankelijkheid Statically bound Sterk OS en programmeertaal afhankelijk Dynamically bound OS en programmeertaal onafhankelijk Samenvatting service oriented architecture 10

11 Services Bouwstenen van een Service-oriented architecture Coarse grained (Business driven): de functionaliteit wordt gedefinieerd op het business niveau, niet op het technische niveau We definiëren een aantal namen om gemakkelijker over services te kunnen praten Soorten: Application frontends: eigenlijk geen service, maar wel een onderdeel van een SOA. Basic services: business logic centric, data centric Intermediary services: hulp services Process centric services: beheren een proces Public enterprise services: toegankelijk voor externen Application frontends De client applicaties of batch processen. Ze starten de business processen en ontvangen ook de resultaten. Communiceren met de services over het netwerk Basic services: business logic services Business logic centric services: implementeren de business rules, bijvoorbeeld een service die de kennis bevat over de producten die door een verzekeringsmaatschappij worden verkocht. Deze service kan premies berekenen, betalingen verwerken en terugbetalingen, aanvragen beoordelen, offertes maken en allerlei simulaties uitvoeren Deze functionaliteit behoort standaard tot het backoffice systeem. Alleen iemand van de backoffice kan dan wettelijk bindende overeenkomsten afsluiten. Front office gebruikers hadden geen toegang tot die functionaliteit en moesten het vroeger doen met bijvoorbeeld niet bindende simulaties. Dit is niet klant-vriendelijk ( dit is onze aanbieding, maar alleen het hoofdkantoor kan een definitieve offerte maken ) Een alternatief is die functionaliteit kopiëren naar de PC's van de front office. Maar dat is niet zo eenvoudig (werkt een COBOL programma op die PC, hoe zorg ik ervoor dat alle front office clients de laatste wijzigingen hebben) Een derde mogelijkheid is de front office gebruikers rechtstreeks toegang te geven tot de backoffice. Dit is ogenschijnlijk de beste oplossing. Maar in de praktijk ligt het niet zo voor de hand dat een (externe) agent toegang heeft tot de interne applicaties. Een aparte service kan door alle betrokkenen worden aangesproken. We kunnen aparte interfaces voorzien voor externe gebruikers zodat ze slechts toegang krijgen tot een beperkte functionaliteit (gecombineerd met security) Opgelet: we zeggen hier niets over de implementatie van de service (aparte Java applicatie, toegang via CICS, tekst uitwisselen via een terminal simulatie,...) Basic services: data centric services Data centric services werken met persistente (bewaarde) data Die data kan bewaard worden in een relationele databank, het bestandssysteem of zelfs een Samenvatting service oriented architecture 11

12 tape library Data centric services lijken sterk op de data access layer in klassieke applicaties (DAL). Het grote verschil is dat in klassieke applicaties de volledige applicatie toegang had tot de volledige databank (via de DAL) Data centric services werken volgens het principe van de vertical layering: één service beheert één business entity. Wanneer een andere service data nodig heeft, moet de data centric service daarvoor worden gebruikt. Nadeel: in een klassieke applicatie is er maar één datastore. Dat is gemakkelijk voor bijvoorbeeld transacties. In een SOA applicatie zijn er meerdere datastores. Wie is er eigenaar van welke data? Hoe kunnen we transacties over meerdere data centric services gebruiken? Intermediary service: technology gateway Bijvoorbeeld: business rules van een legacy applicatie zijn nodig in een moderne (windows user interface) applicatie We zijn van plan om die legacy applicatie ooit eens te herschrijven (re-engineering) Een nieuw project kan daar niet op wachten ( ooit in de informatica = onverwijld in de politiek) we willen niet dat de legacy technology het nieuwe project besmet (we zouden een windows applicatie kunnen ontwikkelen die via terminal streams gegevens uitwisselt met de legacy applicatie) De technology gateway wordt tussen de legacy applicatie en de moderne windows client gezet. De windows client spreekt de technology gateway aan via webservices. De technology gateway vertaalt dit naar terminal streams en stuurt dit door naar de legacy applicatie Opgelet: in een service-oriented architecture zullen we niet één service voorzien voor de gehele legacy applicatie, maar een reeks services. Dat heeft als bijkomend voordeel dat we het re-engineering process ook in stapjes kunnen opdelen. => eerst de application front ends service-oriented maken. Intermediary services: adapter Technology gateway vertaalde de ene technologie naar de andere adapter vertaalt de ene interface naar de andere. Bijvoorbeeld: de merger van twee firma's beide hebben al een SOA architectuur maar de interfaces van de services verschillen Om de application frontends (of services) van firma B te laten werken met de customer data van firma A, gebruiken we een adapter die de aanvragen vertaalt van de ene interface naar de andere Intermediary services: facade Brengt verschillende services tezamen onder één interface Samenvatting service oriented architecture 12

13 Maar groot gevaar dat men de herbruikbaarheid in gevaar brengt. Door alle services te laten aanspreken via een Common Access server layer introduceren we een groot blok dat altijd in zijn geheel gebruikt moet worden Facades ontwikkelt men best voor één project zodat men de herbruikbaar van de services eronder voor ogen houdt. Facades zijn dikwijls tegelijkertijd ook technology gateways of adapters Intermediary services: functionality adding service Functionaliteit toevoegen aan een bestaande service Het is moeilijk om de bestaande service aan te passen( in de toekomst wordt de bestaande service toch vervangen, de bestaande service is een product van een andere producent) Functionality adding service kan een stap zijn in een evolutie van het ene systeem naar het andere Process centric service Process staat op een hoger niveau dan een service processen maken gebruik van services en sturen ze aan. De verschillende proces stappen maken gebruik van services. Proces moet ook toestand bijhouden (waar zit ik ergens in het proces) extra complexiteit (toestand van het proces) kan in een aparte service worden beheerd load balancing: we kunnen dezelfde service op meer machines zetten. De kan dan niet meer op die machines worden bijgehouden => bijhouden in process centric service multi channel applicaties: co-browsing twee browser sessies met elkaar samenwerken process logic afschermen van busines logic (in servies) en dialog control (in de application front end) Process centric services worden soms vergeten. De proces control zit mee in de basic services of (nog meer voorkomend) in de application front end. Process centric services zijn meestal project specifiek en kunnen moeilijk gedeeld worden tussen verschillende projecten. Vormen een brug tussen SOA en Business Process Modeling We maken hier een verschil tussen de proces control logic (in het Business Process Management System) en de business logic (in de basic layer) Samenvatting service oriented architecture 13

14 Business logic is stabieler dan Proces control. Business Process Management System => voert model uit Proces layer Intermediary layer Basic layer Public enterprise services Vorige services waren voor intern gebruik public enterprise services worden gebruikt door externen (klanten, leveranciers/partners, ) Business documenten uitwisselen. Bevat alle informatie die nodig is om de dienst te leveren (of om het resultaat terug te sturen). Dit is geen echt document, maar eerder een message (vgl MOM) grote decoupling => asynchrone communicatie en payload semantics niet iedereen mag die service (gratis) gebruiken: aanmelden (authenticatie) Informatie wordt over een publiek netwerk verstuurt: encryptie facturatie: voor het gebruik van de service kan een fee gevraagd worden => registratie van gebruik en integratie met facturatie systeem Service Level Agreements als verzekering voor externen SOA roadmap Men zal SOA niet ineens invoeren Fundamental => network => process-enabled SOA Process logica zit mee in de enterprise layer We hebben eventueel ook de mogelijkheid om data te delen (door een services te delen) => geen data uitwisseling meer tussen applicaties via bijvoorbeeld batch processen In een green field (nieuwe situatie) gemakkelijk te implementeren. Networked SOA voegt een intermediary laag toe via bijvoorbeeld facades (vereenvoudigen van het aanroepen van de operaties) of technology gateways (om legacy applicaties te gebruiken. Door een facade te maken, wordt het aanroepen van Boekingen en facturatie eenvoudiger Samenvatting service oriented architecture 14

15 (bijvoorbeeld één methode om zowel de boeking als de facturatie te doen) Process enabled SOA's zorgen ervoor dat de process control uit de application frontend verdwijnt. Process centric services zijn 'ful'. Ze onthouden waar de client ergens in het proces zit (welke processtap) Application frontend wordt nog eenvoudiger uitbreiden met intermediary services om bijvoorbeeld technologie af te schermen. Scheiding tussen business logica (in de basic services), process logica (in de process layer) en dialog control (in de application frontend waar de dialog boxen in de user interface bepalen welke processen gestart worden en hoe de informatie die de processen nodig hebben wordt verzameld) Andere view Level 1: Ad-hoc Level 2: Defined Level 3: Standardized Level 4: Managed Level 5: Agile Business Ad hoc Business Defined Business Standardized Business Managed Business Agile Business Organization Ad hoc Organization Defined Organization Standardized Organization Managed Organization Agile Organization Program Management Ad hoc program management Defined program management Standardized program management Managed program management Agile program management Governance Ad hoc governance Defined governance Standardized governance Managed governance Agile governance Technology Ad hoc technology Defined technology Standardized technology Managed technology Agile technology Operations and Management Ad hoc operations and management Defined operations and management Ad hoc operations and management Managed operations and management Agile operations and management Samenvatting service oriented architecture 15

16 Facturatieproces 1) Bestaat klant: nee => maak klant 2) Maak factuur Klant: nr, naam, adres, geboortedatum Factuur: Klantgegevens, factuurnr, Datum, 1 of meerdere factuurlijnen (product, eenheidsprijs, aantal, subtotal), total, BTW Services Klant o Lijst klanten <=FindKlant(zoekcriteria) o Klnr<=CreateKlant(naam, adres, gebdatum) Factuur o Facnr<=CreateFactuur(klnr, naam, adres, facdatum, factuurlijnen) Product o Product <=FindProduct (productnr) Bestelling(process centric) Samenvatting service oriented architecture 16

17 Process integriteit Data/process integriteit: we willen geen slechte data in het systeem. Bijvoorbeeld wanneer we een geboortedatum ingeven, mag die niet in de toekomst liggen. (voorbeeld van data integriteit) Data integriteit kan dikwijls worden afgedwongen door de databank process integriteit is moeilijker te implementeren dan data integriteit. Stel dat we twee systemen hebben: één systeem is verantwoordelijk voor de bestellingen, het tweede systeem is verantwoordelijk voor de facturatie. Elke nacht worden de bestellingen via een batch proces doorgestuurd naar het facturatie systeem. Bestelling en facturatie maken deel uit van hetzelfde proces. Neem nu de volgende situatie: klant bestelt maandag een product nacht maandag-> dinsdag wordt de bestelling doorgestuurd naar het facturatiesysteem dinsdag annuleert de klant de bestelling systeem bevat een inconsistentie: er zit een bestelling in het facturatie systeem die niet meer bestaat Hoe kunnen we processen integer/consistent houden? (gegeven dat een proces dikwijls uit een mix van systemen bestaat die historisch gegroeid is) Soorten fouten die gevolgen kunnen hebben voor de proces integriteit Technische fouten: databank crash, netwerkproblemen Technische problemen kunnen vaak opgelost worden door de technische omgeving (database recover, transacties gebruiken, opnieuw proberen in geval van netwerk problemen. Soms kan dit ingewikkelder zijn, bijvoorbeeld met netwerkproblemen kunnen we omgaan door tijdelijk de data die moet worden doorgestuurd te stockeren. Business exceptions: vlucht boeken in het verleden (kan zelfs worden afgehandeld in de user interface) moeilijkere gevallen: out of stock. Ga ik gewoon tegen de klant zeggen niet meer in voorraad? Betere oplossing op tijd bij bestellen (maar dit is een veel ingewikkelder oplossing: wanneer ga ik bijbestellen?) Speciale gevallen: afwijkingen van het happy path. Speciale gevallen vereisen veel meer programmeerwerk dan het happy path kunnen erg ingewikkeld worden: ga ik een vliegtuig/boot gewoon volboeken (veilig) of een beetje overboeken (commercieel interessanter) Oplossingen voor problemen Logging en tracing wijzigingen bijhouden (en wie ze uitgevoerd heeft) Wanneer we weten wat er gebeurd is, kunnen we bepaalde stappen ongedaan maken. Dikwijls manueel oplossen van problemen op basis van gelogde gegevens. (manueel oplossen is in eerste instantie soms goedkoper dan software te ontwikkelen die dit automatisch kan doen) Samenvatting service oriented architecture 17

18 Probleem: mix van systemen, verschillende logs => hoe vind ik de log entries terug die bij een bepaald proces horen (dikwijls alleen log entries met tijdsaanduiding) logging dikwijls in service bus ACID transacties Transactie: unit of work in de databank (geld overschrijven is geld afhalen van de ene rekening en storten op de andere rekening) ACID: Atomicity: ofwel gaan alle stappen in de transactie door, ofwel gaat er geen enkele stap door Consistency: transacties brengen het systeem van de ene consistente toestand naar de andere (geld overschrijven: de som van de rekeningen voor en na de overschrijving moet hetzelfde zijn. Er mag nooit een toestand voorkomen dat er teveel of te weinig geld op de rekeningen staat) Isolation: intern kan er altijd een toestand zijn die niet consistent is. Er is namelijk altijd een moment dat de aanpassing al gebeurd is op de ene rekening maar niet op de andere. Andere processen mogen deze toestand echter niet zien. Dat wordt opgelost via locking durability: Eenmaal dat de transactie is afgelopen moeten de data voorgoed weggeschreven zijn in de databank. Transaction monitors en 2 phase commit (2PC) ACID transacties werken alleen binnen één databank Wanneer een transactie moet gebeuren over twee verschillende databanken heen (geld van databank 1 moet overgeschreven worden naar databank 2) => distributed transaction coördinator 2 phase commit: elke databank moet zich in een toestand zetten zodat de aangepaste gegevens voorgoed kunnen worden weggeschreven (nodige locks zijn gezet bijvoorbeeld) maar ook dat ze niet weggeschreven kunnen worden Afhankelijk van de uitkomst van de vorige stap (elke databank geeft door of de update zal kunnen lukken) zal de transaction coördinator doorgeven dat de wijzigingen persistent moeten worden gemaakt (elke databank heeft doorgegeven dat het in orde is) Wanneer niet elke deelnemer heeft doorgegeven dat het in orde is, krijgt elke deelnemer de opdracht om de wijzigingen ongedaan te maken. Problemen met 2PC en ACID transacties performantie: transacties vertragen het systeem (onder meer wegens de locks) transacties zijn ontworpen om gebruikt te worden voor een korte duur. (locks niet te lang vasthouden) + proces transacties duren veel langer. Combinatie met legacy systemen en packaged applicaties (ERP, CMS): distributed transacties worden niet altijd ondersteund door legacy systemen of door packaged applicaties 2PC vereist een goede netwerk verbinding Samenvatting service oriented architecture 18

19 Compensaties Bijhouden welke stappen er moeten worden gezet om de acties ongedaan te maken. (Rek1 500) en (Rek ) => compensaties (Rek ) en (Rek2 500) Dit is een business oplossing (geen ACID transactie) omdat andere processen in principe de tussentoestand kunnen zien. Via een persistent queue kunnen we bijhouden wat er gebeurd is op een systeem. Elke stap die wordt uitgevoerd, wordt uit een lijst (queue) gehaald en na het uitvoeren in een tweede queue gestoken. De tweede queue bevat een lijst met alles wat er is uitgevoerd op de databank (in dit geval) (Hopelijk volstaat deze informatie om alle stappen ongedaan te maken) Concurrency contol Zorgen dat we rekening houden met multi user systemen: verschillende processen kunnen met dezelfde data proberen te werken twee oplossingen: optimistic en pessimistic concurrency control pessimistic locking van gegevens: zolang proces 1 met de data bezig is, kan niemand anders eraan niet aan te raden omdat dit grote gevolgen kan hebben voor de performantie optimistic proces 1 leest gegevens in proces 1 schrijft wijzigingen weg MAAR alleen wanneer ze ondertussen niet gewijzigd zijn ('versie' is niet veranderd) optimistic concurrency veel minder gevolgen voor performantie onwerkbaar wanneer er processen dikwijls met dezelfde data werken In een meer verfijnde vorm kunnen we proberen om de wijzigingen samen te voegen (merge) met de nieuwe gegevens die aanwezig zijn in de data. We lezen bijvoorbeeld de volgende gegevens in: Naam: Joske Vermeulen Straat: Trammezandlei 122 We veranderen de naam in Jos Vermeulen en proberen de gegevens weg te schrijven. Dat lukt niet want de gegevens zijn ondertussen gewijzigd. De nieuwe gegevens zijn: Naam: Joske Vermeulen Straat: Trammezandlei 124 Aangezien de aanpassing op twee verschillende plaatsen is gebeurd zouden we de gegevens kunnen Samenvatting service oriented architecture 19

20 samenvoegen: Naam: Jos Vermeulen Straat: Trammezandlei 124 Pessimistic locking We spreken hier niet over pessimistic locking op het niveau van de databank. Maar pessimistic locking wordt geïmplementeerd door de applicatie. Pessimistic locking zal gebruikt worden in plaats van optimistic locking wanneer er dikwijls gelijktijdige write operaties gebeuren op dezelfde data. Optimistic locking is dan minder interessant omdat de gebruiker die als tweede schrijft een foutmelding zal krijgen (begin maar terug opnieuw want iemand anders heeft de data al gewijzigd) Pesssimistic locking wordt op applicatie niveau geïmplementeerd door voor elke entity (klant, factuur, product, factuur, ) een aparte eigenschap 'LOCKED BY' te voorzien. Wanneer een gebruiker een wijziging wil aanbrengen, wordt er gekeken of het LOCKED BY attribuut is ingevuld. Wanneer dat het geval is, krijgt de gebruiker de melding dat het item op dit moment niet gewijzigd kan worden. Wanneer LOCKED BY niet is ingevuld, wordt het ingevuld met de ID van de gebruiker. (wanneer een ander proces probeert het veld te wijzigen, zal dat proces nu de foutmelding krijgen). De gebruiker voert de aanpassingen uit en wanneer de nodige aanpassingen zijn gebeurd, wordt het LOCKED BY veld terug leeg gemaakt. Op het eerste zicht lijkt dit eenvoudig, maar: we moeten zorgen dat er bij elke aanpassing wordt gechecked of het item gelockt is door de gebruiker zelf We moeten een beheertool voorzien waarmee locks kunnen worden veranderd (een item is toegewezen aan een gebruiker en een andere gebruiker moet het afhandelen) We moeten ook rekening houden met het feit dat een lock soms niet meer wordt vrijgegeven (bijvoorbeeld omdat de client is gecrasht). Via een management tool moeten dit soort van locks kunnen vrijgegeven. Idempotente operaties Stel dat ik een website heb om iets te bestellen De gebruiker vult gegevens in en drukt op de bestellen-knop Doordat het netwerk nogal traag is, heeft de gebruiker de indruk dat er niets gebeurt en drukt hij/zij op 'vernieuwen' (F5) Wat gebeurt er? (in de praktijk niets omdat websites dit meestal zelf oplossen) Een idempotente operatie zorgt ervoor dat een client een operatie nooit meerdere keren kan uitvoeren of dat het geen effect heeft wanneer de gebruiker een operatie meerdere keren zou uitvoeren. Dit probleem komen we tegen bij Add/increment operaties. (verhoog het aantal bestellingen met 1) Dit probleem treedt niet op bij set-operaties (verander de naam Joske in Jos ) We zorgen er dus best voor dat operaties vooral set-operaties zijn. Een andere oplossing is gebruik maken van sequence nummers. Wanneer een client een operatie wil uitvoeren, vraagt hij een nummer aan de service Samenvatting service oriented architecture 20

Service Oriented Architecture. Jef De Smedt Beta VZW

Service Oriented Architecture. Jef De Smedt Beta VZW Service Oriented Architecture Jef De Smedt Beta VZW Overzicht Wat is SOA? Historiek Communicatie tussen services Soorten services Business processen Service georiënteerde analyse en ontwerp Enterprise

Nadere informatie

Software services worden gebruikt in Enterprise applications

Software services worden gebruikt in Enterprise applications Samenvatting Service Oriented Architecture Wat is architectuur? Architecture is a term that lots of people try to define, with little agreement. There are two common elements: One is the highest-level

Nadere informatie

Integratie in de praktijk

Integratie in de praktijk Integratie in de praktijk Werken als integratie consultant bij KLM Werken als integratie consultant bij KLM T. Lansbergen A. Kwekel Hogeschool Rotterdam 13/10/2015 Agenda Introductie - Organisatie Use

Nadere informatie

The OSI Reference Model

The OSI Reference Model Telematica Applicatielaag Hoofdstuk 16, 17 Applicatielaag 4Bevat alle toepassingen die van het netwerk gebruik maken n E-mail n Elektronisch nieuws n WWW n EDI (Electronic Data Interchange) n Napster,

Nadere informatie

Service Oriented Architecture. Jef De Smedt Beta VZW

Service Oriented Architecture. Jef De Smedt Beta VZW Service Oriented Architecture Jef De Smedt Beta VZW Overzicht Wat is SOA? Historiek Communicatie tussen services Soorten services Business processen Service georiënteerde analyse en ontwerp Enterprise

Nadere informatie

Zelftest Java EE Architectuur

Zelftest Java EE Architectuur Zelftest Java EE Architectuur Document: n1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA EE ARCHITECTUUR Nota:

Nadere informatie

SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni 2008. Arthur Donkers, 1Secure BV arthur@1secure.nl

SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni 2008. Arthur Donkers, 1Secure BV arthur@1secure.nl SOA Security en de rol van de auditor... ISACA Roundtable 2 juni 2008 Arthur Donkers, 1Secure BV arthur@1secure.nl 1 SOA Web 2.0, web services en service oriented architecture (SOA) is tegenwoordig de

Nadere informatie

Zelftest Informatica-terminologie

Zelftest Informatica-terminologie Zelftest Informatica-terminologie Document: n0947test.fm 01/07/2015 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is een zelf-test, waarmee u

Nadere informatie

Session Beans.

Session Beans. Session Beans joost.vennekens@kuleuven.be Prequel: annotaties Nieuw Java feature Gestructureerde manier om extra info toe te voegen aan code (ipv. commentaar) @Author( name = "Joost Vennekens", date =

Nadere informatie

Betekent SOA het einde van BI?

Betekent SOA het einde van BI? Betekent SOA het einde van BI? Martin.vanden.Berg@sogeti.nl 18 september 2007 Agenda Wat is SOA? Wat is BI? Wat is de impact van SOA op BI? Sogeti Nederland B.V. 1 Agenda Wat is SOA? Wat is BI? Wat is

Nadere informatie

Inhoudsopgave. Hoofdstuk 1.JMS...2

Inhoudsopgave. Hoofdstuk 1.JMS...2 Inhoudsopgave Hoofdstuk 1.JMS...2 1.1.Inleiding...2 1.2.Messaging architectuur...3 1.2.1.Point to point domein...3 1.2.2.Publish/Subscribe domein...4 1.2.3.Synchrone - asynchrone verwerking...4 1.2.4.De

Nadere informatie

Model driven Application Delivery

Model driven Application Delivery Model driven Application Delivery Fast. Flexible. Future-proof. How Agis streamlines health procurement using Mendix Model driven Application Platform Mendix in a nutshell Mendix delivers the tools and

Nadere informatie

Waarom Cloud? Waarom nu? Marc Gruben April 2015

Waarom Cloud? Waarom nu? Marc Gruben April 2015 Waarom Cloud? Waarom nu? Marc Gruben April 2015 Waarom Daarom Cloud? Cloud! Waarom Daarom nu? nu! Marc Gruben April 2015 Wie ben ik? Informatie analist Project/development manager Developer/architect Wie

Nadere informatie

1750,00 excl. BTW. analytisch denkvermogen, empathie, assertief, communicatief, aanleg voor formalisme,...

1750,00 excl. BTW. analytisch denkvermogen, empathie, assertief, communicatief, aanleg voor formalisme,... OPLEIDING #ICT EN INFORMATIEMANAGEMENT c# software architect 1750,00 excl. BTW I.S.M. omschrijving INTRODUCTIE Tijdens deze 6-daagse opleiding komen de vele aspecten waarin een software architect actief

Nadere informatie

Capita Selecta Design Patterns voor administratieve applicaties

Capita Selecta Design Patterns voor administratieve applicaties Capita Selecta voor administratieve applicaties Bij afstudeerproject: Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder 26 augustus 2006 Inhoud 26

Nadere informatie

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag.

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Voorbeeldproject Een Haagse SOA Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Aanleiding Vanuit de visie

Nadere informatie

Enterprise Architectuur de link tussen Business & ICT

Enterprise Architectuur de link tussen Business & ICT Enterprise Architectuur de link tussen Business & ICT Oriented Architecture (SOA) Nieuwe hype? Of. Jaap Schekkerman, B.Sc. Opinion Leader, Verdonck, Klooster & Associates President & Founder, Institute

Nadere informatie

Enterprise Portfolio Management

Enterprise Portfolio Management Enterprise Portfolio Management Strategische besluitvorming vanuit integraal overzicht op alle portfolio s 22 Mei 2014 Jan-Willem Boere Vind goud in uw organisatie met Enterprise Portfolio Management 2

Nadere informatie

Zelftest Java concepten

Zelftest Java concepten Zelftest Java concepten Document: n0838test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA CONCEPTEN Om de voorkennis nodig

Nadere informatie

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Page 1 1 Kees Vianen Senior Sales Consultant Technology Solutions Oracle Nederland Agenda Geschiedenis van Oracle Portal Portal

Nadere informatie

Informatiearchitectuur

Informatiearchitectuur Informatiearchitectuur Onderwerpen Waarom is architectuur (nu) zo belangrijk? Wat is informatiearchitectuur? Ontwikkelingen in de tijd Structuur applicaties Applicatie-integratie Webservices Praktijkvoorbeeld

Nadere informatie

Aanbesteding implementatie, beheer en onderhoud van Microsoft Dynamics 365 for Operations. Bijlage 5: Beschrijving toekomstige ESB

Aanbesteding implementatie, beheer en onderhoud van Microsoft Dynamics 365 for Operations. Bijlage 5: Beschrijving toekomstige ESB Aanbesteding implementatie, beheer en onderhoud van Microsoft Dynamics 365 for Operations Bijlage 5: Beschrijving toekomstige ESB Versie: v1.0 Datum: 17-3-2017 Inhoudsopgave 1. 2. 3. 4. Inleiding 3 Huidige

Nadere informatie

Enterprisearchitectuur

Enterprisearchitectuur Les 2 Enterprisearchitectuur Enterprisearchitectuur ITarchitectuur Servicegeoriënteerde architectuur Conceptuele basis Organisatiebrede scope Gericht op strategie en communicatie Individuele systeemscope

Nadere informatie

Congres Architectuur in de Zorg

Congres Architectuur in de Zorg Congres Architectuur in de Zorg Men neme een architect Recept voor een goed zorgsysteem Nieuwegein, 23 juni 2011 Even voorstellen Even voorstellen M&I/Partners, Speerpunten in de zorg EPD-strategie en

Nadere informatie

Automatisch Testen. Customer Business Lunch. 6 november 2014. Netherlands Germany Switzerland Serbia

Automatisch Testen. Customer Business Lunch. 6 november 2014. Netherlands Germany Switzerland Serbia Automatisch Testen Netherlands Germany Switzerland Serbia Customer Business Lunch 6 november 2014 3 Vraag? Doen wij al aan automatisch testen? 4 Agenda Automatisch testen Waarom? Mogelijkheden Demo Conclusie

Nadere informatie

Meer Business mogelijk maken met Identity Management

Meer Business mogelijk maken met Identity Management Meer Business mogelijk maken met Identity Management De weg naar een succesvolle Identity & Access Management (IAM) implementatie David Kalff OGh 14 september 2010 't Oude Tolhuys, Utrecht Agenda Herkent

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Distributed Systems Architectures

Distributed Systems Architectures Distributed Systems Architectures Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 1 Topics covered Multiprocessor architectures Client-server architectures Distributed object architectures

Nadere informatie

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT Slimmer samenwerken met SharePoint Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT Workflows, forms, reports en data WAAROM KIEZEN VOOR K2? Of u nu workflows moet maken voor items in SharePoint

Nadere informatie

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Cloud werkplek anno 2014. Cloud werkplek anno 2014

Cloud werkplek anno 2014. Cloud werkplek anno 2014 Introductie Peter Klix Infrastructuurarchitect Specialisatie networking en desktop concepts Peter.klix@eic.nl Cloud desktop Introductie Desktop concepten door de jaren Infrastructuur Cloud concepten Focus

Nadere informatie

Applicatie-Architecturen

Applicatie-Architecturen Applicatie-Architecturen joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Onderwerp Programming in the large! ( programming in the small)! Bijvoorbeeld: KU Leuven Veel verschillende functionaliteit

Nadere informatie

Lifecycle management. Why you should do it

Lifecycle management. Why you should do it Lifecycle management Why you should do it HI MY NAME IS Wouter Gevaert ICT Infrastructure Architect wouter.gevaert@realdolmen.com Direct +32 2 801 50 47 https://www.linkedin.com/in/woutergevaert Tagline

Nadere informatie

i ll take off to the cloud

i ll take off to the cloud i ll take off to the cloud Webbased applicaties gebouwd door ILE programmeurs Gepresenteerd door: Drs. Martijn van Breden Lead software architect Pantheon Automatisering 26-4-2017 1 Historie Pantheon Ontstaan

Nadere informatie

Application interface. service. Application function / interaction

Application interface. service. Application function / interaction Les 5 Het belangrijkste structurele concept in de applicatielaag is de applicatiecomponent. Dit concept wordt gebruikt om elke structurele entiteit in de applicatielaag te modelleren: softwarecomponenten

Nadere informatie

Business-to-Business

Business-to-Business Business-to-Business 1 WAT IS BUSINESS-TO-BUSINESS? 1.1 Inleiding Bedrijven communiceren veelvuldig met elkaar. Orders worden geplaatst, facturen worden verzonden, informatie wordt uitgewisseld. Zo n dertig

Nadere informatie

Van Big Data tot waardevolle informatie op maat van de (interne)gebruiker en de burger

Van Big Data tot waardevolle informatie op maat van de (interne)gebruiker en de burger Van Big Data tot waardevolle informatie op maat van de (interne)gebruiker en de burger Tijdens deze sessie krijgt u een inzicht in een specifieke visie over hoe men op basis van grote hoeveelheden ongestructureerde

Nadere informatie

Portals & Open Source

Portals & Open Source Portals & Open Source OGh Jaarcongres 2003 Zeist, 7 october R.V.L.P. Schaaf Agenda Introductie Begrippenkader en standaards Open Source portals Onder de loep: Imbrium Praktijk case Open Source in uw organisatie?

Nadere informatie

Samengaan van Geo-informatie en Service Oriëntatie

Samengaan van Geo-informatie en Service Oriëntatie Samengaan van Geo-informatie en Service Oriëntatie Waterbodem Applicatie (WAB*info) 10 juli 2008 Gaston Lamaitre Data-ICT-Dienst, Delft Inhoud Wat doet Rijkswaterstaat? Doel van WAB*info De randvoorwaarden

Nadere informatie

Van 6 weken naar 6 minuten. met. OpenSource. Jan-Taeke Schuilenga Infrastructuur Architect Jantaeke.schuilenga@duo.nl

Van 6 weken naar 6 minuten. met. OpenSource. Jan-Taeke Schuilenga Infrastructuur Architect Jantaeke.schuilenga@duo.nl Van 6 weken naar 6 minuten met OpenSource Jan-Taeke Schuilenga Infrastructuur Architect Jantaeke.schuilenga@duo.nl Wat is DUO? Uitvoeringsorganisatie van Ministerie van OCW - Studiefinanciering - Bekostiging

Nadere informatie

WFS 3.0 De geo-api van de toekomst. Linda van den Brink, Geonovum 13 februari #DataToBuildOn

WFS 3.0 De geo-api van de toekomst. Linda van den Brink, Geonovum 13 februari #DataToBuildOn WFS 3.0 De geo-api van de toekomst Linda van den Brink, Geonovum 13 februari 2019 @brinkwoman #DataToBuildOn Eerste versie uit 2002 https://nl.wikipedia.org/wiki/web_feature_service Web Feature Service

Nadere informatie

Organiseer uw verschillende SOAP services in één scenario

Organiseer uw verschillende SOAP services in één scenario 1 Organiseer uw verschillende SOAP services in één scenario Wouter Luijten wouterluijten@creetion.com 2 Introductie Tijdens de implementatie van een proces heeft u vaak te maken met een veelvoud aan services.

Nadere informatie

Software Design Document

Software Design Document Software Design Document Mathieu Reymond, Arno Moonens December 2014 Inhoudsopgave 1 Versiegeschiedenis 2 2 Definities 3 3 Introductie 4 3.1 Doel en Scope............................. 4 4 Logica 5 4.1

Nadere informatie

BRP-BZM Use Case Realisations Guidelines

BRP-BZM Use Case Realisations Guidelines BRP-BZM Use Case Realisations Guidelines Versie 2.0 02-09-2011 Definitief Versiehistorie Datum Versie Auteur 23-12-2010 0.1 Eerste versie R.F. Schaaf 04-01-2011 1.0 Feedback verwerkt R. Schaaf en D. Geluk

Nadere informatie

Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving

Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder Stand van zaken 17 Maart 2007 Inhoud Probleemgebied afstudeerproject Oplossingsgebied afstudeerproject

Nadere informatie

CLOUDSTRATEGIE. voor Stedin Netbeheer. v1.0 26/03/2019

CLOUDSTRATEGIE. voor Stedin Netbeheer. v1.0 26/03/2019 CLOUDSTRATEGIE voor Stedin Netbeheer v1.0 26/03/2019 Hoe analyseer je ruim 400 applicaties? Binnen een periode van zes maanden? Leuk u te ontmoeten! koen.vanschijndel@weolcan.eu 0614771300 blog.weolcan.eu

Nadere informatie

Risk & Requirements Based Testing

Risk & Requirements Based Testing Risk & Requirements Based Testing Tycho Schmidt PreSales Consultant, HP 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Agenda Introductie

Nadere informatie

Continuous testing in DevOps met Test Automation

Continuous testing in DevOps met Test Automation Continuous ing in met Continuous testing in met Marco Jansen van Doorn Tool Consultant 1 is a software development method that emphasizes communication, collaboration, integration, automation, and measurement

Nadere informatie

Van Small Business Server naar Cloud Small Business Services. Uw vertrouwde Small Business Server in de cloud

Van Small Business Server naar Cloud Small Business Services. Uw vertrouwde Small Business Server in de cloud Van Small Business Server naar Cloud Small Business Services Uw vertrouwde Small Business Server in de cloud Oud scenario - Small Business Server 2011 Waarom afscheid nemen? Alweer 6(!) jaar oud Kans op

Nadere informatie

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Wat is een database? Een verzameling van georganiseerde data Een database bestaat uit applicaties, SQL en het DBMS Watis eendbms? EenDBMS

Nadere informatie

Architecten-debat 21 juni 2006 PI GvIB Themamiddag. Renato Kuiper. Principal Consultant Information Security

Architecten-debat 21 juni 2006 PI GvIB Themamiddag. Renato Kuiper. Principal Consultant Information Security Architecten-debat 21 juni 2006 PI GvIB Themamiddag Renato Kuiper Principal Consultant Information Security 1 De spreker Principal Consultant Information Security Hoofdredacteur Informatiebeveiliging 15

Nadere informatie

Enabling Enterprise Mobility. Chantal Smelik csmelik@microsoft.com

Enabling Enterprise Mobility. Chantal Smelik csmelik@microsoft.com Enabling Enterprise Mobility Chantal Smelik csmelik@microsoft.com Nieuwe werkplek & digitaal toetsen Hanzehogeschool Groningen Agenda 1. Introductie Chantal Smelik Microsoft Maaike van Mourik project

Nadere informatie

Parasoft toepassingen

Parasoft toepassingen Testen op basis van OSB en Digikoppeling Voor de bestaande Overheid Service Bus en de nieuwe standaard Digikoppeling zijn verschillende test- omgevingen opgezet. Hiermee kan het asynchrone berichtenverkeer

Nadere informatie

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens Nieuwbouw Vereenvoudigd en versnelt Java ontwikkeling Huub Cleutjens Inhoud IBS en Java Keuzes: taal / architectuur Productiviteit / arbeidsdeling IBS Java Development Accelerator Persistence UI Persistence

Nadere informatie

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture Software architecture IM0203 TERUGKOPPELING PROEFTENTAMEN Vraag 1 Vraag 1a Veel van de in het werkboek besproken patterns kunnen ingezet worden voor het referentiesysteem. We lopen de patterns hier stuk

Nadere informatie

Product marketing met

Product marketing met Product marketing met Michiel Klaren, Natasja Paulssen 2007-11-22 Complexiteit van de Content Management Chain Hoe het was (2002) Meer dan 9,000 uitwisselingen nodig voor verzamelen content van catalogus

Nadere informatie

SHAREPOINT ONLINE (SAMEN-)WERKEN IN DE WOLKEN. http://www.ie-net.be - Workshop SharePoint 1

SHAREPOINT ONLINE (SAMEN-)WERKEN IN DE WOLKEN. http://www.ie-net.be - Workshop SharePoint 1 SHAREPOINT ONLINE (SAMEN-)WERKEN IN DE WOLKEN 1 WIE ZIJN WIJ? 2 WIE BENT U? Professional Op zoek naar productiviteit Samenwerken met Collega s Externe partijen Onderaannemers 3 WAT IS ONS PLAN? 1. Wat

Nadere informatie

Op weg naar de favoriete Verzekeraar. Vincent Snels (Nationale Nederlanden) Lex Veltman (IBM)

Op weg naar de favoriete Verzekeraar. Vincent Snels (Nationale Nederlanden) Lex Veltman (IBM) Op weg naar de favoriete Verzekeraar Vincent Snels (Nationale Nederlanden) Lex Veltman (IBM) Nationale-Nederlanden actief sinds 1845 De Nederlanden van 1845 Nationale-Nederlanden breidt uit in binnen

Nadere informatie

Systeemvereisten. Systeemvereisten voor Microsoft Dynamics NAV 2009. Rolgebaseerde client

Systeemvereisten. Systeemvereisten voor Microsoft Dynamics NAV 2009. Rolgebaseerde client Systeemvereisten voor Microsoft Dynamics NAV 2009 Rolgebaseerde client Microsoft Windows XP Professional SP3 of later (X86 of 32-bits Microsoft Windows Vista (Business, Enterprise, of Ultimate) SP1 of

Nadere informatie

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise Inhoudsopgave 1. Voorbereiding... 4 2. Web Service Connector tool configuratie... 5 3. TaskCentre taak voor het aanmaken van

Nadere informatie

Niklas Integratie Platform Verbeteren, besparen en méér

Niklas Integratie Platform Verbeteren, besparen en méér Niklas Integratie Platform Verbeteren, besparen en méér Het betaalbare integratieplatform voor al uw Business-to-Business Integratie en Applicatie Integratie Volledig geautomatiseerde afhandeling van elektronisch

Nadere informatie

REST Adapter in SAP PI/PO voor REST-based Web Services

REST Adapter in SAP PI/PO voor REST-based Web Services REST Adapter in SAP PI/PO voor REST-based Web Services Inleiding Eindelijk! SAP heeft officieel de REST Adapter voor SAP PI/PO uitgebracht. Deze is beschikbaar vanaf SAP NetWeaver 7.3 EHP1 SP14 of SAP

Nadere informatie

SQL Server Service Broker

SQL Server Service Broker Oriented Database Architectuur met SQL Server 2005 SQL Server Astrid Hackenberg en Anko Duizer In het artikel in DB/M 2 is geschreven over de Oriented Database Architectuur (SODA). In een SODA smelten

Nadere informatie

Identity & Access Management & Cloud Computing

Identity & Access Management & Cloud Computing Identity & Access Management & Cloud Computing Emanuël van der Hulst Edwin Sturrus KPMG IT Advisory 11 juni 2015 Cloud Architect Alliance Introductie Emanuël van der Hulst RE CRISC KPMG IT Advisory Information

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

Uitgebreid voorstel Masterproef Informatica

Uitgebreid voorstel Masterproef Informatica HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Optimalisatie & ontwikkeling van een gegevenstransfertool voor Business Intelligence-gebruikers Datum : 01/11/2012 Naam student

Nadere informatie

B.Sc. Informatica Module 4: Data & Informatie

B.Sc. Informatica Module 4: Data & Informatie B.Sc. Informatica Module 4: Data & Informatie Djoerd Hiemstra, Klaas Sikkel, Luís Ferreira Pires, Maurice van Keulen, en Jan Kamphuis 1 Inleiding Studenten hebben in modules 1 en 2 geleerd om moeilijke

Nadere informatie

Kickstart Architectuur. Een start maken met architectuur op basis van best practices. Agile/ TOGAF/ ArchiMate

Kickstart Architectuur. Een start maken met architectuur op basis van best practices. Agile/ TOGAF/ ArchiMate Kickstart Architectuur Een start maken met architectuur op basis van best practices. Agile/ TOGAF/ ArchiMate Context schets Net als met andere capabilities in een organisatie, is architectuur een balans

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

Applicatie-Architecturen

Applicatie-Architecturen Applicatie-Architecturen joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Programmeren in het echt! Programming in the large Deel van groter geheel! In teamverband! Open opdracht!! Inhoud:

Nadere informatie

Regie uit een andere Branche. Hoe om te gaan met de vraag en de levering. Facto Magazine Congres 12 mei 2009. www.quintgroup.com

Regie uit een andere Branche. Hoe om te gaan met de vraag en de levering. Facto Magazine Congres 12 mei 2009. www.quintgroup.com Regie uit een andere Branche Facto Magazine Congres 12 mei 2009 Hoe om te gaan met de vraag en de levering THIS DOCUMENT CONTAINS PROPRIETARY INFORMATION, WHICH IS PROTECTED BY COPYRIGHT. ALL RIGHTS RESERVED.

Nadere informatie

Enterprise Architectuur. een duur begrip, maar wat kan het betekenen voor mijn gemeente?

Enterprise Architectuur. een duur begrip, maar wat kan het betekenen voor mijn gemeente? Enterprise Architectuur een duur begrip, maar wat kan het betekenen voor mijn gemeente? Wie zijn we? > Frederik Baert Director Professional Services ICT @frederikbaert feb@ferranti.be Werkt aan een Master

Nadere informatie

Het regelen van ondersteuning op open source software voor overheidsorganisaties. Afstudeerpresentatie Daniël Vijge 12 november 2007

Het regelen van ondersteuning op open source software voor overheidsorganisaties. Afstudeerpresentatie Daniël Vijge 12 november 2007 Het regelen van ondersteuning op open source software voor overheidsorganisaties Afstudeerpresentatie Daniël Vijge 12 november 2007 Inhoud van de presentatie Waarom dit onderzoek? Opzet van het onderzoek

Nadere informatie

VMWORLD 2011 US WRAP

VMWORLD 2011 US WRAP VMWORLD 2011 US WRAP UP VIKTOR VAN DEN BERG MARCEL VAN OS WELKOM ELKOM & A & AGENDA Viktor van den Berg, Dutch VMUG Leader Marcel van Os, Senior Technical Trainer @ XTG Agenda VMUG Update (Viktor) VMware

Nadere informatie

INFITT01 - Internettechnologie WEEK 8

INFITT01 - Internettechnologie WEEK 8 INFITT01 - Internettechnologie WEEK 8 Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de

Nadere informatie

CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES

CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES Day WEB 1APP FOR CONTAINERS 04-10-2018 Lead - Consultant Cloud Infra & Apps@ InSpark Twitter: @Johanbiere Community blog: talkingazure.com

Nadere informatie

Monitoring. SolidBE B.V. Maarten Schoutenstraat SV Waddinxveen

Monitoring. SolidBE B.V. Maarten Schoutenstraat SV Waddinxveen Monitoring SolidBE B.V. Maarten Schoutenstraat 19 2741SV Waddinxveen 1 Inhoudsopgave Monitoring...3 Introductie...3 Netwerkcomponenten...4 Back-up...4 Discovery...4 Poller...5 SNMP-traps...5 Maintenance...5

Nadere informatie

Waarmaken van Leibniz s droom

Waarmaken van Leibniz s droom Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais

Nadere informatie

Haaglanden Medisch Centrum

Haaglanden Medisch Centrum Cloud oplossing in Haaglanden Medisch Centrum 26 september 2016 Agenda I. Introductie Haaglanden MC II. Situatieschets (voor implementatie) III. Probleemstelling huidige situatie IV. Doelstelling V. Pakket

Nadere informatie

Wat kan BIM betekenen voor de gebouwbeheerder?

Wat kan BIM betekenen voor de gebouwbeheerder? Wat kan BIM betekenen voor de gebouwbeheerder? Tim Lemoine WTCB Hoofdadviseur Dienst BIM en informatietechnieken tim.lemoine@bbri.be Wat kan BIM betekenen voor de gebouwbeheerder? - 13-05-16 - Pagina 1

Nadere informatie

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen?? Vragen?? Vandaag Hoofdstuk 4: threads (tentamenstof : 4.1 t/m 4.2) Kleine Opgaven 4.1 (niet alleen ja of nee, ook waarom!) en 4.4 inleveren maandag Centrale begrippen hoofdstuk 3 processen proces state:

Nadere informatie

Cloud & Licenties. Welkom bij BSA The Live Sessions De Live Session start binnen enkele minuten. Dank voor uw geduld.

Cloud & Licenties. Welkom bij BSA The Live Sessions De Live Session start binnen enkele minuten. Dank voor uw geduld. Cloud & Licenties Welkom bij BSA The Live Sessions De Live Session start binnen enkele minuten. Dank voor uw geduld. TIP: controleer of uw geluid aanstaat en uw browserinstellingen toestaan dat u beeld

Nadere informatie

Introduction to IBM Cognos Express = BA 4 ALL

Introduction to IBM Cognos Express = BA 4 ALL Introduction to IBM Cognos Express = BA 4 ALL Wilma Fokker, IBM account manager BA Ton Rijkers, Business Project Manager EMI Music IBM Cognos Express Think big. Smart small. Easy to install pre-configured

Nadere informatie

Kikkers en Heilige Koeien UvAConext & standaarden voor het primaire onderwijs en onderzoek proces

Kikkers en Heilige Koeien UvAConext & standaarden voor het primaire onderwijs en onderzoek proces Kikkers en Heilige Koeien UvAConext & standaarden voor het primaire onderwijs en onderzoek proces SURF Seminar September 2015 Frank Benneker, ICTS Universiteit van Amsterdam Perspectief ICTS & OO dienstverlening

Nadere informatie

Quickstart handleiding

Quickstart handleiding Inleiding Allereerst hartelijk bedankt voor het aanschaffen van. U heeft met deze aankoop een goede keuze gemaakt voor een zeer professionele E-mail marketing tool. In deze quickstart handleiding zullen

Nadere informatie

Delft-FEWS & Web Services

Delft-FEWS & Web Services Delft-FEWS & Web Services Presentatie Delft-FEWS Gebruikers dag 2018 Marc van Dijk, Rudie Ekkelenkamp, Stef Hummel 5 Juni 2018 Delft-FEWS & (Web) Services 1. Delft-FEWS 2. Roadmap 3. Standaarden Verzamelen

Nadere informatie

Onder de motorkap van Microsoft Azure Web Sites. Eelco Koster Software architect ORDINA

Onder de motorkap van Microsoft Azure Web Sites. Eelco Koster Software architect ORDINA Onder de motorkap van Microsoft Azure Web Sites Eelco Koster Software architect ORDINA Agenda Introductie Architectuur Project Kudu Azure Resource Manager Doel Dieper inzicht geven in de werking van Azure

Nadere informatie

Towards a competitive advantage

Towards a competitive advantage Towards a competitive advantage 9 Mei 2017 www.nxtport.eu PANTONE Blue 654 C 1 Agenda NxtPort Context NxtPort Concept, Spelregels, Inkomstenmodel Kort Overzicht van de Architectuur/Functionaliteit Praktisch:

Nadere informatie

Autodesk Vault: Van Ontwerp naar Productie. Peter Van Avondt Autodesk Technical Specialist Northern Europe

Autodesk Vault: Van Ontwerp naar Productie. Peter Van Avondt Autodesk Technical Specialist Northern Europe Autodesk Vault: Van Ontwerp naar Productie Peter Van Avondt Autodesk Technical Specialist Northern Europe Autodesk Vault helpt je om jouw ontwerp- en productdata te beheren, organiseren en op te volgen,

Nadere informatie

Presentatie Rapportage Met SAP Business Objects

Presentatie Rapportage Met SAP Business Objects Presentatie Rapportage Met SAP Business Objects Verzorgd door: Camille van Dongen, itelligence Fouad Allabari, i3 Woerden 4 februari 2011 Agenda Voorstellen itelligence & i3 Business Intelligence SAP Business

Nadere informatie

Documentatie Distributed Services Enterprise Service Bus

Documentatie Distributed Services Enterprise Service Bus Documentatie Distributed Services Enterprise Service Bus Pleun Willemsen en Walter Ebbers 19 april 2012 v1.0 1 Inhoudsopgave 1 Inleiding 4 1.1 Opdracht................................ 4 2 Analyse 5 3 Ontwikkelomgeving

Nadere informatie

Applicatie Integratie in de zorg: implementatie tips uit de praktijk

Applicatie Integratie in de zorg: implementatie tips uit de praktijk Applicatie Integratie in de zorg: implementatie tips uit de praktijk Veel zorginstellingen geven aan informatievoorziening te willen verbeteren. Om bijvoorbeeld de cliënt meer centraal te stellen of Het

Nadere informatie

Introductie in flowcharts

Introductie in flowcharts Introductie in flowcharts Flow Charts Een flow chart kan gebruikt worden om: Processen definieren en analyseren. Een beeld vormen van een proces voor analyse, discussie of communicatie. Het definieren,

Nadere informatie

Kickstart-aanpak. Een start maken met architectuur op basis van best practices.

Kickstart-aanpak. Een start maken met architectuur op basis van best practices. Kickstart-aanpak Een start maken met architectuur op basis van best practices. www.theunitcompany.com Kickstart-aanpak Soms is net dat extra duwtje in de rug nodig om te komen waar je wilt zijn. In onze

Nadere informatie

Security web services

Security web services Security web services Inleiding Tegenwoordig zijn er allerlei applicaties te benaderen via het internet. Voor bedrijven zorgt dit dat zei de klanten snel kunnen benaderen en aanpassingen voor iedereen

Nadere informatie

MES geïntegreerd binnen ERP in productie is de sleutel tot betaalbare flexibiliteit

MES geïntegreerd binnen ERP in productie is de sleutel tot betaalbare flexibiliteit MES geïntegreerd binnen ERP in productie is de sleutel tot betaalbare flexibiliteit VRAAG: Hoe implementeer je betaalbare en uitvoerbare Real-time-business-optimized-flexibility in uw productiebedrijf?

Nadere informatie

Rabobank: Service Architectuur in de Praktijk

Rabobank: Service Architectuur in de Praktijk abobank: Service Architectuur in de Praktijk Bert Bastenhof, Pieter Fortuin Computable, 21 september 2006 Inleiding 1. abobank omgeving 2. Architectuur binnen de abobank 3. Waarom Service Architectuur?

Nadere informatie

DATAMANAGEMENT MET OPEN SOURCE

DATAMANAGEMENT MET OPEN SOURCE DATAMANAGEMENT MET OPEN SOURCE Bart Hansen Solution Architect bij TUI Jacob Hoeflaken Technology Leader bij Axians 1 WIE ZIJN WIJ? Jacob Hoeflaken Technology Leader Axians Integrated Solutions Bart Hansen

Nadere informatie

Self Service BI. de business

Self Service BI. de business BI in de praktijk Self Service BI Breng de kracht van BI naar de business Luc Alix Sogeti Nederland B.V. Redenen voor Business Intelligence Sneller kunnen beslissen 42 % Beter kunnen beslissen 42 % Concurrentieel

Nadere informatie