Open standards and Service orientation

Open standards


Een open standaard is een norm (of standaard) die publiek beschikbaar is. De norm bestaat uit specificaties van een bepaald type product of dienst, zodat deze door veel partijen kan worden gehanteerd. De term wordt vooral gebruikt bij hard- en software, omdat daar ook veel niet-open standaarden worden gebruikt.

Doordat iedereen een open standaard kan gebruiken, neemt de uitwisselbaarheid tussen de verschillende soorten hardware- en software-onderdelen toe. Hierdoor kan ook een grotere diversiteit aan aanbieders ontstaan en is men minder afhankelijk van een bepaalde hardware- en/of softwareleverancier, dan wel dienstverlener.

In de ICT-branche zijn veel standaarden echter gesloten en niet open. Men dient een licentie aan te vragen bij de organisatie die in bezit is van de auteursrechten op het gebruik van de standaard, voordat men toegang krijgt tot de specificaties.

Dat een standaard open is hoeft niet te betekenen dat er geen licentie hoeft te worden aangevraagd, soms is er namelijk sprake van patentrechten. Om een voorbeeld te geven: de standaarden gepubliceerd door de grote internationaal erkende standaard-organen zoals de ITU, ISO, en IEC worden als open beschouwd, maar kunnen een vergoeding claimen voor de patentrechten op de implementatie van de standaard.

Definitie


Een Open Standaard refereert naar een formaat of protocol dat:

  • volledig geëvalueerd kan worden door het publiek, geen beperkingen kent in het gebruik en toegankelijk is voor alle betrokkenen zonder enige vorm van discriminatie;
  • geen onderdelen of uitbreidingen heeft die afhankelijk zijn van formaten of protocollen die zelf niet aan de definitie van een Open Standaard voldoen;
  • vrij is van juridische en technische clausules die het gebruik door andere betrokkenen of andere bedrijfsmodellen beperken;
  • onafhankelijk van één bepaalde producent beheert en verder ontwikkeld wordt in een proces dat volledig open staat voor concurrenten en andere derden;
  • beschikbaar is in verschillende volledige implementaties van concurrerende producenten of waarvan een volledige implementatie zonder discriminatie voor alle partijen beschikbaar is.


Service Oriënted Architecture


Enkele decennia geleden was het de gebruikelijke manier van automatiseren binnen bedrijven dat diverse business units door de centrale automatiseringsafdeling eigen informatiesystemen lieten bouwen. Deze informatiesystemen deden hun werk onafhankelijk van de informatiesystemen van de andere afdelingen. Uitwisseling van data tussen de diverse informatiesystemen was, zo daar al sprake van was, alleen mogelijk met ingewikkelde interfaces en nieuwe toepassingen werden gewoon toegevoegd aan de bestaande informatiesystemen. Hierdoor ontstond met het verstrijken van de jaren een complex geheel van ICT-toepassingen, dat moeilijk te doorgronden en onderhouden was. Toen het internet zijn intrede deed en elektronisch zakendoen aan belang won, werd het mogelijk én noodzakelijk de diverse informatiesystemen met elkaar te verbinden. Tegelijkertijd werd het mogelijk bepaalde softwarecomponenten te hergebruiken. Dit zorgde voor een grote stap voorwaarts in de ICT dienstverlening.

SOA is een architectuurconcept waarin systemen zijn onderverdeeld in eenvoudige elementen die, wanneer gecombineerd, er voor zorg dragen dat er een zeer flexibele en controleerbare IT omgeving ontstaat. Het basisidee is dat alle IT is opgebouwd uit diensten(services).Services zijn elementaire bouwstenen die redelijk onveranderd blijven ongeacht de dynamiek van de organisatie. Het hergebruik van deze bouwstenen door verschillende bedrijfsprocessen dragen er ook toe bij dat de management- en onderhoudskosten doorgaans kunnen worden verlaagd.

De services worden vaak ontsloten door gebruik te maken van webtechnologie. Men spreekt dan van webservices. Het gebruik van webtechnologie creëert ook de mogelijkheid om informatie en verschillende applicaties op innovatieve en creatieve wijze te combineren zoals in het gebruik van mash-up technology.SOA is overigens niet gebonden aan informatietechnologie, ook menselijke of manuele input kan als dienst worden beschreven en gebruikt.

soa.gif


Conceptueel bestaat SOA uit twee elementen in drie lagen. De twee elementen zijn een centrale dienstenbibliotheek(web service repository)en eenbusiness process management system (BPMS).Men zou kunnen stellen dat de repository de ‘server’ in de oude client-server architectuur vervangt en de BPMS fungeert als de nieuwe ‘client’.
De drie lagen zijn allereerste de repository, daaronder als tweede laag de BPMS en als derde en onderste laag de (business) applicaties zoals ERP- en CRM-systemen. Het is deze laatste laag die de functionaliteiten levert die via de web services door de BPMS worden aangeroepen.

SOA-services worden beschreven in een standaard genaamdweb services description language(WSDL). Communicatie tussen soa-services onderling vindt plaats op basis van XML-berichten(XML Schema).DeRepositoryis beschreven met behulp vanuniversal dexription, definition and integration (uddi).Voor iedere service wordt eenquality of servcie(qos) gedefinieerd op het gebied van beschikbaarheid, betrouwbaarheid en beveiliging.

Business Process Management en de Enterprise Service Bus (ESB) vormen het hart van SOA. Zonder goed georganiseerde bedrijfsprocessen (BPM), centraal afgestemde Master en Meta Data Management (MDM) en een generiek technisch koppelvlak (ESB) is SOA niet in te richten.

De beschrijving van bedrijfsprocessen is essentieel. Een belangrijk voordeel van SOA is dat invoering niet in een big bang scenario hoeft te geschieden maar dat men met een redelijk eenvoudig bedrijfsproces kan beginnen om dit geleidelijk bedrijfsbreed uit te breiden.

Het verdient aanbeveling een SOA Autoriteit te benoemen die de service catalogus beheert, de prioriteiten stelt en de integriteit van MDM bewaakt. Tevens is het wenselijk een centraal aanspreekpunt voor beheer in te richten dat als ontkoppelpunt fungeert voor het functioneel en applicatiebeheer. Op deze wijze worden zij zelf niet met de complexiteit van de serviceafhankelijkheden geconfronteerd.

Voordelen SOA

  • Flexibiliteit: Door de beschreven principes van de services wordt het veel eenvoudiger om services te veranderen en nieuwe varianten te combineren zonder consequenties voor andere onderdelen.
  • Governance: Grip hebben op kosten en scheiding van verantwoordelijkheden.
  • Kosten: Standaardisatie zorgt voor één implementatie van een dienst, welke weer gerationaliseerd kan worden. Combineren van diensten tot een nieuwe dienst is relatief goedkoop.
  • Specialisatie: Focus op strategische waarden: massaproductie van een standaard of combineren van jouw unieke combinatie
  • Business-procesvereenvoudiging: diensten vormen ontkoppelpunten binnen businessprocessen. Hierdoor kunnen proceseigenaren (diensteigenaren) concreter worden aangewezen. De verantwoordelijkheid van de (deel)proceseigenaar is te overzien. De proceseigenaar weet precies waar hij/zij aan moet voldoen (service contract).

Nadelen SOA

  • De Business Process Management Systemen (BMPS-en) van de verschillende leveranciers sluiten maar ten dele op elkaar aan. De klant moet daarom kiezen voor een SOA-platform van Oracle, SAP, IBM, Microsoft óf nog een andere partij.
  • De ERP-leveranciers hebben hun web service repositories nog maar in beperkte mate ingevuld. End-to-end software-ondersteuning van bedrijfsprocessen is daardoor nog niet plug-and-play mogelijk.
  • SOA is als techniek nog niet volwassen. Zo zijn er nog onopgeloste problemen rond de veiligheid, de betrouwbaarheid, het uitvoeren van upgrades, en het testen.
  • Opsplitsing van bedrijfssoftware in los gekoppelde web services kan een (sterk) nadelige invloed hebben op de performance.
  • Het change management wordt een enorme uitdaging. Hoe spelen de gebruikers in op software-ondersteuning die voortdurend verandert?

XML

XML (extended markup language) is een familie van talen en ontworpen om wereldwijde gegevensuitwisseling tussen computersystemen mogelijk te maken, los van specifieke besturingssystemen en programmeertalen. Zodoende kan men computertoepassingen (bijvoorbeeld een moderne Java-toepassing onder Windows of een ouderwetse mainframetoepassing) als het ware inpakken in een schil (interface), waarbij die schillen onderling in XML communiceren. En dat allemaal op basis van dezelfde onderliggende internettechnologie waar ook het world wide web van gebruikmaakt.
Een belangrijk aspect van XML is dat de betekenis van gegevens wordt losgekoppeld van hun (eventuele) presentatie, een groot verschil met HTML. Hoe de informatie (denk hierbij aan uiteenlopende media, van pc tot internettelefoon) wordt gepresenteerd, wordt in aparte stylesheets (al dan niet geschreven in een XML-taal) opgeslagen.

media.gif

De gewenste of toegestane vorm van een XML-document is afhankelijk van de toepassing. Om te garanderen dat een XML-document de juiste vorm heeft en geen fouten veroorzaakt bij verwerking, wordt het getoetst aan een XML-grammatica. Het oudste en meest eenvoudige type grammatica heet DTD (document type definition)

Voordelen


  • scheiding van structuur/betekenis <> inhoud <> presentatie/opmaak
  • controle mogelijk op document-structuur en -inhoud
  • maakt intelligente documenten mogelijk
    (automatische inhoudsopgaven en indexen, retrieval, meer versies in één, publishing-on-demand ...)
  • flexibiliteit (toepassingen op maat te maken)
  • basis voor hergebruik
  • basis voor uitwisseling
  • non-proprietary (open standaard) > > grote portabiliteit
  • wereldwijd zeer algemeen geaccepteerd
  • kans dat het tot "digitale duurzaamheid" leidt
  • systeem- en platform-onafhankelijk
  • door zoekmachines selectief/gestructureerd op de tags doorzoekbaar

XBRL


XBRL of eXtensible Business Reporting Language is een open standaard om financiële gegevens uit te wisselen via het internet. XBRL is gebaseerd op XML. De standaard wordt beheerd door de non-profit-organisatie "XBRL International".

Het gaat om rapportering naar controle-instanties toe alsook om uitwisseling van gegevens tussen bedrijven (rapportering aan moedermaatschappij, tussen business units...) en/of software applicaties.

Organisaties wisselen bedrijfsinformatie uit op de meest uiteenlopende manieren (op papier of elektronisch, als Word-document of als een bestand voor een spreadsheet, etc.). Het ontbreken van een algemene standaard voor het uitwisselen van deze gegevens beperkt de mogelijkheden om deze gegevens op eenvoudige wijze te verzamelen, elektronisch uit te wisselen, te analyseren en zonodig nader te bewerken. XBRL biedt hiervoor een oplossing.

XBRL is een op XML (EXtensible Markup Language) gebaseerde open standaard voor het samenstellen en elektronisch uitwisselen van business rapportages en gegevens via het internet. Het initiatief voor deze ontwikkeling is in 1998 genomen door het Amerikaanse accountantsinstituut. Op dit moment zijn ca. 150 organisaties wereldwijd lid; daarnaast kent XBRL International inmiddels 8 formele jurisdicties die, met uitzondering van de International Accounting Standards Board, de activiteiten op het gebied van XBRL op nationaal niveau ondersteunen en coördineren.

Het gebruik van XBRL biedt vele voordelen:
  • Het kunnen realiseren van aanzienlijke kostenbesparingen omdat gegevens in XBRL-formaat op basis van taxonomieën (beschrijving van de structuur, de onderlinge relaties en de inhoud van de te rapporteren gegevenselementen) kunnen worden geselecteerd, afhankelijk van de behoefte of vraag.
  • Het verhogen van de kwaliteit van de gegevens, omdat extra handelingen, zoals het opnieuw invoeren van gegevens, niet meer nodig is.
  • Het op eenvoudige wijze elektronisch kunnen uitwisselen, analyseren en zonodig nader bewerken van gegevens die op basis van dezelfde taxonomie zijn geselecteerd en gerapporteerd.
  • Op XBRL-gebaseerde gegevens kunnen in principe door alle, XBRL-enabled software, worden verwerkt.

Het gebruik van XBRL biedt vele voordelen: kostenbesparing, kwaliteitsverhoging gegevens, eenvoudiger elektronisch uitwisselen gegevens.


SOAP


SOAP (Simple Object Access Protocol); een eenvoudige standaard voor het versturen van XML-gebaseerde verzoeken tussen componenten of webdiensten. SOAP maakt het mogelijk dat applicaties, ongeacht technologische afkomst, elkaar berichten sturen en zo van elkaars diensten gebruik maken. SOAP gebruikt het algemeen geaccepteerde en eenvoudig te genereren en lezen XML als berichtformaat. Als transportlaag kan SOAP het populaire HTTP-protocol gebruiken, waardoor componenten kunnen integreren zonder last te hebben van firewalls.
SOAP wordt gesteund door een groot aantal bedrijven en organisaties waaronder Sun, IBM, Novell, Microsoft, BEA Systems, Oracle, Apache Software Foundation. SOAP is een protocol dat Extensible Markup Language (XML-berichten stuurt, meestal over HTTP, maar ook over SMTP, HTTPS of FTP.

Het SOAP-protocol bestaat uit drie onderdelen:

  • Een envelop die een raamwerk definieert voor het beschrijven van wat in een bericht staat en hoe het te verwerken.
  • Een set van encodeerregels voor de expressie van 'instanties' van applicatiegedefinieerde datatypen.
  • Een conventie voor de representatie van 'remote procedure calls' en antwoorden. SOAP kan in potentie worden gebruikt in combinatie met een grote verscheidenheid aan andere protocollen.

SOAP is ook een heleboel niét. SOAP-componenten moeten het stellen zonder een standaard programmeer model, waardoor ze niet portabel zijn tussen verschillende SOAPimplementaties.
Daarnaast biedt SOAP een magere infrastructuur, waarbij diensten voor bijvoorbeeld transacties of persistentie ontbreken. Het tekst-gebaseerde gegevensformaat kan tenslotte wat snelheid betreft niet op tegen de binaire berichtformaten van CORBA of DCOM.

De tekortkomingen van SOAP zijn niet onoverkomelijk en hangen, net als de tekortkomingen van andere technologieën, voornamelijk samen met de wijze van gebruik. SOAP heeft vooral waarde in de context van webdiensten, met grote aantallen door Internet van de server gescheiden clients en grove componenten. In zo’n situatie is het gebruikte gegevensformaat (en de verwerkingssnelheid daarvan) minder van belang gezien de vertraging door lange responsetijd van het netwerk.


UDDI EN WSDL


UDDI (Universal Description, Discovery and Integration) biedt een bibliotheek van beschikbare web services over de hele wereld. Om die reden wordt UDDI ook wel de White Pages genoemd. Behalve beschrijvingen worden ook de locatie en de specificaties van de betreffende web service vastgelegd.
UDDI is een initiatief van grote jongens als IBM, Microsoft en Ariba, en is inmiddels uitgegroeid tot een wereldwijde community waarin ook anderen als Sun en SAP deelnemen. Vooralsnog is UDDI een gratis te gebruiken tool.

Web Service Description Language, of kortweg WSDL is een XML-taal waarmee de interfaces van webservices kunnen worden beschreven. Over het algemeen zullen deze WSDL-documenten voornamelijk door applicaties gelezen worden en beschikbaar zijn voor aanroepende applicaties. WSDL kan middels XML de interface van webservices beschrijven. Dit is ook te zien aan de naam achter de afkorting, namelijk Web Services Description Language. WSDL beschrijft een collectie van endpoints of ports. Een port is hierin een netwerk adres met daaraan gekoppeld een binding. Een collectie van ports is dan weer een service.




Voor het beschrijven, aanropen en registreren van webservices, wordt gebruik gemaakt van gestandaardiseerde protocollen, welke volledig open en vrij te gebruiken zijn. Deze betreffen de standaarden XML en WSDL voor het beschrijven van een webservice, XML, HTTP en SOAP voor het aanroepen van een webservice en UDDI voor het registreren.

Webservice Lagen Model


Naamloos.jpg

Dit model geeft een collectie van standaard protocollen en applicatie-programmeerinterfaces (API's)weer, die door applicaties gebruikt worden om webservices te vinden en te gebruiken.
Een korte uitleg van elke laag met de technieken erbij:

Netwerk:

Deze laag is de onderste laag van het model. hierin bevinden zich de transport protocollen. Alhoewel webservices niet specifiek verbonden zijn aan een transportprotocol, verloopt de communicatie tussen de applicaties voornamelijk via HTTP, hetzelfde protocol dat gebruikt wordt door webbrowers en webservers.

XML-based Messaging:

Bovenop de netwerklaag bevindt zich de XML-berichtenlaag, waarin de communicatie tussen webservices en applicaties beschreven wordt. XML (eXtensible Markup Language) wordt gebruikt als formaat om de informatie, die uitgewisseld wordt, te beschrijven. XML is een opmaaktaal, wordt aangeprezen als de nieuwe standaard voor het beschrijven van gestructureerde gegevens. XSL en XML Schema, aanvullingen op de XML-standaard, worden respectievelijk gebruikt voor het beschrijven van de opmaak en het definiëren van documenttypes.

Service Description:

De derde laag bevat de beschrijving van de webservices. WSDL (Web Services Description Language) is een XML-taal voor het beschrijven van de berichten, die webservices kunnen ontvangen en versturen. Met WSDL wordt in feite de interface van de webservice beschreven, welke aangeeft hoe de webservice aangesproken moet worden.
De drie hierboven beschreven lagen zijn noodzakelijk voor het opzetten en exploiteren van een webservice via het Internet. De lagen erboven zijn optioneel en zullen naargelang de behoeften van de afnemers en leveranciers gebruikt worden.

Service Publication & Service Discovery:

Om een webservice te publiceren, moet het WSDL-document, waarin de interface van de webservice beschreven is, beschikbaar zijn voor de afnemers van de webservice. De leverancier van de webservice kan hiervoor het WSDL-document of een URL naar het WSDL- document sturen naar een ontwikkelaar, die het invoert in de applicatie van de afnemer. Publicatie is ook mogelijk door het WSDL-document op te nemen in een UDDI-register van een tussenpersoon. UDDI definieert drie soorten informatie:

1. White Pages, met algemene informatie over bedrijven;
2. Yellow Pages, met identificaties en classificaties van bedrijven, producten en diensten;
3. Green Pages, met de services, die door een bedrijf aangeboden worden.

Het register bevat niet de WSDL-documenten van de webservice, maar slechts een verwijzing daarnaar. Afnemers kunnen (al dan niet automatisch) het UDDI-register bevragen om webservices van bedrijven te vinden en te gebruiken.

Service Flow:

In de bovenste laag van het lagenmodel bevindt zich de beschrijving van de composities van webservices. Veelal wordt in een bedrijfsproces niet slechts een enkele webservice aangeroepen, maar een hele reeks en voor elk van deze webservices kan de interactie bestaan uit een serie opeenvolgende aanroepen met elk eigen berichten en resultaten. Ook kan er hierbij sprake zijn van keuzemomenten en verschillende paden, die gevolgd kunnen worden, afhankelijk van de resultaten die een webservice eerder in het proces heeft opgeleverd. Om dergelijke composities te beschrijven zijn er een aantal standaarden ontwikkeld, waaronder WSFL (Web Services Flow Language), XLANG en BPEL4WS (Business Process Execution Language For Web Services). Naast deze standaarden, die voornamelijk betrekking hebben op het technisch inrichten van de samenwerking tussen bedrijven door middel van webservices, zijn er ook standaarden op het gebied van zakelijke transacties en onderhandelingen in ontwikkeling, zoals ebXML (electronic business XML), BPSS (Business Process Specification Schema) en PIP (Partner Interface Processes).


Bronvermeldingen



Open Standard
http://fsfe.org/projects/os/def.html

http://nl.wikipedia.org/wiki/Open_standaard

http://en.wikipedia.org/wiki/Open_standard

http://www.openstandards.net/viewOSnet3C.jsp?showModuleName=about

http://nl.wikibooks.org/wiki/Open_standaarden




SOA
http://en.wikipedia.org/wiki/Service-oriented_architecture

http://nl.wikipedia.org/wiki/Service-ori%C3%ABntatie

http://www.ou.nl/eCache/DEF/2/03/041.html

http://www.axtion.nl/kennisgebieden/soa

http://www.leerwiki.nl/Wat_is_Service_Oriented_Architecture

http://www.procesverbeteren.nl/flexibilisering/webservices/SOAflex.php

http://www.itsmf.nl/node/72


XBRL
http://nl.wikipedia.org/wiki/XBRL




XML
http://www.xml.com/pub/a/98/10/guide0.html?page=2#AEN58

http://xml.beginthier.nl/

http://www.ou.nl/eCache/DEF/2/03/041.html


SOAP
http://nl.wikipedia.org/wiki/SOAP


UDDI
http://www.r20.nl/artikel_UDDI.htm

http://naarvoren.nl/artikel/web_services_deel_1/

http://www.roes.nl/files/ROES%20WebDevelopment%20-%20Wat%20zijn%20Webservices.pdf


WSDL
http://www.w3.org/TR/wsdl

http://nl.wikipedia.org/wiki/Web_Services_Description_Language

http://www.w3schools.com/wsdl/wsdl_intro.asp