Paul J. Cornelisse ESB Les 3 IBK3ESB01
ESB Connectiviteit OxI0K_I
Canonical Model A design pattern used to communicate between different data formats. A form of enterprise application integration, intended to reduce costs and standardize on agreed data definitions associated with integrating business systems. In the simplest form possible based on a standard, application integration solution. Most organizations also adopt a set of standards for message structure and content
CMM Canonical Message Model (CMM) De ESB is de kern van de architectuur in een Service-Oriented Architecture (SOA) De ESB verzorgt de connectiviteit tussen potentiele heterogene service clients en services
Historisch hebben de meeste organisaties te maken met bestaande (legacy) toepassingen Deze toepassingen gebruiken vaak merkgebonden modellen en metamodellen (syntaxis) van informatie (semantiek) in de berichten die zij verzenden of ontvangen
Zelfs als alle deelnemers gebruik maken van hetzelfde metamodel; bijvoorbeeld XML Schema Definition Language (XSD), kunnen ze nog steeds een ander message model gebruiken, bijvoorbeeld een ander schema
Problemen ontstaan wanneer de gebruikte applicaties in een organisatie meerdere proprietary message models en metamodels gebruiken om dezelfde soort informatie te beschrijven, zoals bijvoorbeeld NAW gegevens Zelfs als ze exact hetzelfde metamodel, zoals XSD, gebruiken, kan het veel moeite kosten om het berichtenverkeer af te stemmen en te ‘mappen’
Zo kan de ene toepassing de naam van een persoon in een enkel attribuut opslaan, terwijl een ander programma deze in twee attributen opslaat: een attribuut voor de voornaam en een ander voor de achternaam
Eventueel verschillende semantiek in berichten compliceren het probleem nog meer: Een marketing campagne applicatie kan een ‘klant’ anders definiëren (ook potentiële klanten) dan een call center applicatie (waarbij een klant is een persoon die een product heeft gekocht)
SOA behandelt de uitlijning van zakelijke en IT-behoeften en het maximaliseren van service hergebruik Door de benodigde zakelijke services te identificeren en specificeren, heeft een onderneming de flexibiliteit om best-of- breed services te kiezen en deze te gebruiken
Op deze wijze wordt de SOA binnen een organisatie steeds volwassener Uitdaging: Naarmate er meer services gevraagd en aangeboden worden groeit het communicatieprobleem
De rol van de ESB is loose coupling tussen de diverse services te ondersteunen Een deel van die rol behelst de transformatie tussen de verschillende message- en metamodellen
Naarmate het aantal interacties tussen services met eigen messagemodellen toeneemt, wordt de uitdaging van het beheer van noodzakelijke transformaties exponentieel groter Dit is een van de belangrijkste drijfveren voor het inrichten van CMM
ESB - mapping
ESB - complexiteit Het gaat er dus om de complexiteit in het berichtenverkeer tussen de diverse componenten (over de ESB) te verminderen
CMM – een voorbeeld Stel je voor: de zitting van de VN, om de Franse ambassadeur van informatie te voorzien is een hele batterij aan tolken nodig (Engels-Frans, Chinees-Frans, etc) Stel nu dat de voertaal binnen de VN op Esparanto wordt ingesteld. Dan heeft de ambassadeur alleen nog maar een tolk Esperanto-Frans nodig In dit simpele voorbeeld is Esperanto het CMM
CMM in een ESB
CMM – beetje techniek Vanuit technisch perspectief, bestaat een CMM uit: Een gedefinieerde semantische set, die de business entiteiten en hun zakelijke attributen gebruiken in alle berichten Een gedefinieerde reeks berichten met een specifieke syntax set die de business entiteiten beschrijven
CMM – stapje dieper Elke syntaxis set bevat een bijbehorende set van de gedefinieerde typen, elementen en attributen, gestructureerd om een zakelijk document te voorzien van een specifieke semantische betekenis en context Dit betekent niet dat iedere requestor of provider exact dezelfde boodschap set heeft, maar de berichten zijn consistent en allemaal gebaseerd op dezelfde syntax
CMM voordeel Naarmate het speelveld rondom de ESB een meer heterogeen karakter biedt het implementeren van een CMM binnen SOA steeds meer voordeel
CMM – de ESB vertaalt
Voordelen Bestaande services hoeven niet aangepast te worden Typische aanpak voor ESB in SOA. Er hoeven alleen een aantal mediators gecreerd te worden. (Niet N*M naar N+M) De ESB centraliseert het management en de governance met betrekking tot alle transformaties Eenvoudiger uitbreiding van het aantal services Nadelen Nog steeds dubbele transformatie De noodzaak tot ombouwen van proprietary message models vervalt (Zo komen we nooit tot een standaard)
CMM – de services vertalen
The service requester's infrastructuur vertaalt de eigen proprietary message naar het CMM De ESB is alleen maar verantwoordelijk voor routering en, eventuele, protocol conversie De infrastructuur van de provider vertaalt zijn proprietary model naar het CMM
CMM – de services vertalen Voordelen Transformatie van ESB overgeheveld naar services Eliminatie van management and operational load op de ESB. Zeer bruikbaar voor ondernemingen met voldoende development staff mbt applicatieontwikkeling maar met gelimiteerde support staff mbt de ESB. (bv. B2B of gedecentraliseerde organisaties) Nadelen Er moeten wijzigingen worden aangebracht in de services Soms te kostbaar In geval van externe seviceaanbieders soms ongenegen tot aanpassing
CMM – Ideaal scenario
Voordelen Ideaal voor de ontwikkeling van nieuwe applicaties De ESB kan zich concentreren op security en connectiviteit Lagere management- en operationele load op de ESB Gereduceerde kosten en betere performance van de ESB Nadelen Utopie Hoge kosten voor het aanpassen van bestaande applicaties en services Er moet consensus gevonden worden tussen alle deelnemende partijen
CMM – realistisch scenario
CMM CMM vermindert de complexiteit mbt connectiviteit tussen services door toepassing van heterogene berichtstructuren Je hebt kennisgemaakt met vier verschillende topologieen en oplossingsrichtingen