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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Enterprisearchitectuur

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

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

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

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

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

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

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

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

Ontwerpen van een Enterprise Service Bus

Ontwerpen van een Enterprise Service Bus Applicatie-ontwikkeling waarbij integratie met andere systemen niet van toepassing is komt zelden meer voor. Daarom komt steeds prominenter naar voren de vraag naar een Enterprise Service Bus (ESB). Maar

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Praktijkcasus Identity management. Bert Dondertman 14 september 2010

Praktijkcasus Identity management. Bert Dondertman 14 september 2010 Praktijkcasus Identity management Bert Dondertman 14 september 2010 Agenda Praktijkcasus: Waarom? Hoe? Score op de diverse dimensies OGh IAM presentatie juli 2010 2 Waarom? Centraal klantportaal waar mogelijkheden

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

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

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

Weblogic 10.3 vs IAS 10.1.3

Weblogic 10.3 vs IAS 10.1.3 Vision ~ Knowledge ~ Results Weblogic 10.3 vs IAS 10.1.3 OGh Fusion Middleware/ SOA Dag 19 Mei 2010, Het Oude Tolhuys Edwin Biemond email edwin.biemond@whitehorses.nl Web http://blogs.whitehorses.nl/,

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

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

Droom of werkelijkheid? Integratie VMware NSX en F5 zorgt voor effectieve uitrol van applicaties.

Droom of werkelijkheid? Integratie VMware NSX en F5 zorgt voor effectieve uitrol van applicaties. Droom of werkelijkheid? Integratie VMware NSX en F5 zorgt voor effectieve uitrol van applicaties. Ralph Wanders Datacenter Solutions Manager IT SECURITY IS TOPSPORT! Datacenter solutions componenten Orchestrate

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

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

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

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

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

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

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

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

Belangrijkste ideeën/concepten uit OS, incl. proces

Belangrijkste ideeën/concepten uit OS, incl. proces Operating System Overview (Hfst 2) Wat is een OS? Wat was een OS? Evolutie van OS. OS als virtuele machine OS als beheerder van hulpbronnen (resources) Belangrijkste ideeën/concepten uit OS, incl. proces

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

Overheidsservicebus (OSB) Paul Schlotter Architect OSB

Overheidsservicebus (OSB) Paul Schlotter Architect OSB Overheidsservicebus (OSB) Overheidsservicebus Paul Schlotter Architect OSB De OSB faciliteert de elektronische overheid Onderwerpen Waarom een OSB Positionering in eoverheid Inrichting Binnen vs Buiten

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

Internettechnlogie, systteem- en netwerkbeheer MODULECODE STUDIEPUNTEN 10 VRIJSTELLING MOGELIJK ja

Internettechnlogie, systteem- en netwerkbeheer MODULECODE STUDIEPUNTEN 10 VRIJSTELLING MOGELIJK ja ECTS fiche Module info OPLEIDING STUDIEGEBIED AFDELING MODULE Handelswetenschappen en bedrijfskunde HBO Informatica MODULENAAM Internettechnlogie, systteem- en netwerkbeheer MODULECODE C4 STUDIEPUNTEN

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

FEDICT IAM SERVICE LEVEL AGREEMENT

FEDICT IAM SERVICE LEVEL AGREEMENT FEDICT IAM SERVICE LEVEL AGREEMENT Table of Content 1. Inleiding Dit ( SLA or Agreement ) is geldig voor de IAM Service tussen de klant (Fedict) en de nieuwe opdrachtnemer van het M1016 contract. Dit document

Nadere informatie

Turn-key platform Newz. Big Content & Semantics

Turn-key platform Newz. Big Content & Semantics Introduction Michel de Ru Solution architect @ Dayon 16 years experience in publishing Among others Wolters-Kluwer, Sdu (ELS) and Dutch Railways Specialized in Content related Big Data challenges Specialized

Nadere informatie

Het gebruik van OSB ebms contracten in complexe infrastructuren

Het gebruik van OSB ebms contracten in complexe infrastructuren Inleiding Het gebruik van OSB ebms contracten in complexe infrastructuren Whitepaper Ernst Jan van Nigtevecht Maart 2009 Contracten die gepubliceerd worden voor een OSB ebms service hebben tot doel om

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren Maart 2015 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 2 December 2014 Yannick Verschueren

Nadere informatie

Digikoppeling Glossary

Digikoppeling Glossary Digikoppeling Glossary Verklarende woordenlijst Digikoppeling documentatie Versie 1.1 Datum 5 januari 2010 Colofon Projectnaam Versienummer Organisatie Digikoppeling Definitief Servicecentrum Logius Postbus

Nadere informatie

Agentschap NL Bodem+ naar Azure. 2 maart 2011 Microsoft Applicatie Platform Congres, Zeist

Agentschap NL Bodem+ naar Azure. 2 maart 2011 Microsoft Applicatie Platform Congres, Zeist Agentschap NL Bodem+ naar 2 maart 2011 Microsoft Applicatie Platform Congres, Zeist Agentschap NL Bodem+ is een onderdeel van de directie NL Milieu & Leefomgeving van Agentschap NL. Agentschap NL is begin

Nadere informatie

De dynamiek van Middleware (in het HBO onderwijs)

De dynamiek van Middleware (in het HBO onderwijs) De dynamiek van Middleware (in het HBO onderwijs) Before I came here, I was confused about this subject. Having listened to your lecture, I m still confused, but on a higher level -- Enrico Fermi 1 Agenda

Nadere informatie

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium Zelftest OOAD/UML Document: N0767Test.fm 30/08/2010 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is gebaseerd op de inhoud van onze cursus OO

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

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

Offshore Outsourcing van Infrastructure Management

Offshore Outsourcing van Infrastructure Management Offshore Outsourcing van Infrastructure Management an emerging opportunity dr. Erik Beulen Atos Origin/Tilburg University 1 Agenda Introductie Ontwikkelingen Risicovergelijking Best practices Conclusies

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

Verwerken van binnenkomende bedrijfsdocumenten met OpenText Business Center

Verwerken van binnenkomende bedrijfsdocumenten met OpenText Business Center Verwerken van binnenkomende bedrijfsdocumenten met OpenText Business Center Inleiding Een belangrijk component van SAP Invoice Management (SIM) is de herkenning en extractie van relevante velden van een

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

ArchiMate voor kennismodellen van NORA en haar dochters. Marc Lankhorst 16 oktober 2013

ArchiMate voor kennismodellen van NORA en haar dochters. Marc Lankhorst 16 oktober 2013 ArchiMate voor kennismodellen van NORA en haar dochters Marc Lankhorst 16 oktober 2013 Agenda 13:00 introductie ArchiMate-status en -ontwikkelingen en NORA-kennismodel 14:00 parallelle workshops rond de

Nadere informatie

EAI Consultancy bij Ordina

EAI Consultancy bij Ordina EAI Consultancy bij Ordina Gastcollege Ordina voor HRO Door: Linda Terlouw 9-mei-06 1 Even voorstellen Naam: Opleiding: Linda Terlouw Technische Informatica en Bedrijfsinformatietechnologie aan Universiteit

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

Red Spider Next Generation: Identity Management voor gevorderden. Bert van Daalen René Visser Ronald Zierikzee

Red Spider Next Generation: Identity Management voor gevorderden. Bert van Daalen René Visser Ronald Zierikzee Red Spider Next Generation: Identity Management voor gevorderden Bert van Daalen René Visser Ronald Zierikzee Constateringen rijp en groen Hoge ontwikkelkosten en lange doorlooptijd nieuwe functionaliteit

Nadere informatie

ONZE INTERPRETATIE VAN HET KNOOPPUNT PLATFORM

ONZE INTERPRETATIE VAN HET KNOOPPUNT PLATFORM MEMO: ONZE INTERPRETATIE VAN HET KNOOPPUNT PLATFORM Boek.be 1 INHOUDSTAFEL 1 INHOUDSTAFEL... 2 2 ALGEMENE INFORMATIE... 3 2.1 DOCUMENT INFO... 3 2.2 NASCOM INFO... 3 2.3 KLANT INFO... 3 3 INTERPRETATIE

Nadere informatie

Technologieverkenning

Technologieverkenning Technologieverkenning Videocontent in the cloud door de koppeling van MediaMosa installaties Versie 1.0 14 oktober 2010 Auteur: Herman van Dompseler SURFnet/Kennisnet Innovatieprogramma Het SURFnet/ Kennisnet

Nadere informatie

openelectronic Health Record

openelectronic Health Record openehr openelectronic Health Record Kwaliteitsverbetering door standaardisatie Martin van der Meer woensdag 17 november 2010 1 Agenda Huidige stand van zaken? Wat moet er gebeuren? openehr architectuur

Nadere informatie

Service Virtualization @RABOBANK

Service Virtualization @RABOBANK Service Virtualization @RABOBANK TMA Dag 2015 eter Claassen RABOBANK Marc van Lint - IBM Agenda 1. Rabobank Context 2. DevOps Vision 3. roof en Implementeren 4. Voorbeelden 5. Ervaringen & Best ractices

Nadere informatie

Curriculum Vitae Gianni Stefano

Curriculum Vitae Gianni Stefano Curriculum Vitae Gianni Stefano Naam Gianni Stefano adres Heukelomdorp 51B, 3770 Riemst geboortedatum 9 maart 1978 huidige functie functioneel analyst - kredietapplicaties beschikbaarheid 1 juli 2015 ervaring

Nadere informatie

Mobile Devices, Applications and Data

Mobile Devices, Applications and Data Mobile Devices, Applications and Data 1 Jits Langedijk Senior Consultant Jits.langedijk@pqr.nl Peter Sterk Solution Architect peter.sterk@pqr.nl Onderwerpen - Rol van Mobile IT in Tomorrow s Workspace

Nadere informatie

tot oplevering (thuis e maken met ondersteuning via forum) Cursus Moodle, boek, internet

tot oplevering (thuis e maken met ondersteuning via forum) Cursus Moodle, boek, internet ECTS fiche Module info OPLEIDING STUDIEGEBIED AFDELING MODULE MODULENAAM Programmeren 4 MODULECODE B3 STUDIEPUNTEN 10 VRIJSTELLING MOGELIJK Handelswetenschappen en bedrijfskunde HBO Informatica Evaluatie

Nadere informatie

Acht stappen voor JSF

Acht stappen voor JSF Acht stappen voor JSF Inleiding In deze tutorial zullen we JSF (Java server faces) installeren. Wat we niet beschrijven is hoe te werken met JSF, over dit onderwerp zijn er genoeg boeken en internetsites

Nadere informatie

Software Mobiliteit. UAMS - 6 maart 2001. Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel http://prog.vub.ac.

Software Mobiliteit. UAMS - 6 maart 2001. Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel http://prog.vub.ac. Software Mobiliteit Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel http://prog.vub.ac.be/~tjdhondt p. 1 Overzicht Stelling Objecttechnologie Distributie Mobiliteit Evolutie Besluit p.

Nadere informatie

Customer Case: WoningNet

Customer Case: WoningNet Customer Case: WoningNet WoningNet en Webservices Woonruimtebemiddeling Shared service center Business uitdaging Architectuur visie Woonruimtebemiddeling Woningzoekende Corporatiemedewerker Corporatiemedewerker

Nadere informatie