Wat is BizTalk Server?
BizTalk Server stelt bedrijven en instellingen in staat om tegen lage kosten, eenvoudig en in korte tijd:
- bedrijfsapplicaties te integreren;
- gegevens met handelspartners uit te wisselen;
- bedrijfsprocessen te automatiseren.
Met BizTalk Server zijn systemen, medewerkers en partners efficiënt en effectief met elkaar te integreren. Ook zijn bedrijfsprocessen op een flexibele manier te automatiseren en met elkaar te koppelen, waardoor een efficiëntere bedrijfsvoering is te realiseren.
Integratie van applicaties: intern en met partners
Op het gebied van applicatie-integratie zijn twee scenario’s van belang:
- enerzijds het koppelen van applicaties zoals die binnen een organisatie worden gebruikt (Enterprise Application Integration);
- anderzijds de geautomatiseerde berichtenuitwisseling tussen twee of meer verschillende organisaties (business-to-business of ketenintegratie).
Dergelijke integratieoplossingen worden onder andere mogelijk gemaakt door:
- connectiviteit met bestaande systemen via meegeleverde, los verkrijgbare of zelfontwikkelde adapters en webservices;
- berichttransport en routering (publish & subscribe) ten behoeve van berichtuitwisseling tussen systemen en applicaties;
- vertaling van berichten en berichtformaten tussen heterogene omgevingen (transformatie);
- beheer van handelspartners; dat wil zeggen het snel kunnen toevoegen, configureren, uitrollen en testen van connecties met nieuwe partners.
Automatisering bedrijfsprocessen
Elke organisatie heeft dagelijks te maken met tal van handmatige werkzaamheden, lange doorlooptijden, dubbele en foutieve gegevensinvoer, tijdrovende zoekacties naar informatie, hoge administratieve overheadkosten enzovoort.
Vaak is dat te verbeteren door die gestructureerde processen waarbij die problemen spelen, te automatiseren. Het resultaat is dat de juiste informatie altijd op het juiste moment bij de juiste personen en/of systemen beschikbaar is, wat sneller en efficiënter handelen mogelijk maakt.
Speciaal hiervoor biedt BizTalk Server naast de hierboven beschreven functionaliteit – de volgende functies:
- Orchestration Designer for Business Analysts; dit is een add-on voor Microsoft Visio waarmee een business-/process-analist bedrijfsprocessen in een grafische omgeving kan modelleren. Op basis van het gecreëerde model kunnen ontwikkelaars de processen vervolgens koppelen aan applicaties, berichten en andere processen en interactief samenwerken met analisten;
- Business Activity Monitoring; dit biedt eindgebruikers via Microsoft Excel real-time inzicht in key-performance-indicators, door het beschikbaar stellen van informatie over transacties en processen (bijvoorbeeld gedetailleerde transactievolumes en doorlooptijden);
- Business Rules; deze maken geautomatiseerde bedrijfsprocessen extreem flexibel, door eindgebruikers de mogelijkheid te geven zelf regels te wijzigen en te activeren, waardoor bedrijfsprocessen onmiddellijk zijn aan te passen aan omstandigheden, zonder dat een nieuwe applicatie uitgerold dient te worden.
Overzicht BizTalk Server techniek
Het hart van BizTalk Server is de server-engine.
De server-engine bestaat uit twee delen:
- een messagingcomponent die de communicatie met een grote range aan systemen mogelijk maakt. Er wordt gebruikgemaakt van adapters die allerlei protocollen en dataformaten aankunnen, zoals webservices, CRM, SAP, FTP, SOAP, SqlServer, File etc.;
- de orchestraties, die de weergave zijn van de businessprocessen. Deze worden in een grafische omgeving gemodelleerd en geïmplementeerd, gebruikmakend van de messagingcomponent en de logica van de bedrijfsprocessen.
Procesintegratie
De grote meerderheid van moderne bedrijfsprocessen hangt op zijn minst voor een deel af van software. Terwijl sommige van deze processen door één enkele applicatie worden ondersteund, baseren vele andere zich op diverse softwaresystemen. In veel gevallen is deze software gecreëerd in verschillende tijden, op verschillende platforms, en maken ze gebruik van verschillende technologieën.
Het automatiseren van die bedrijfsprocessen vereist aansluiting tussen diverse systemen. Deze uitdaging heeft diverse namen: onder meer bedrijfsprocesautomatisering (BPA) en bedrijfsprocesbeheer (BPM). Ongeacht de naam, zijn twee scenario’s het meest belangrijk voor applicatie-integratie:
- het verbinden van applicaties binnen één enkele organisatie, wat Enterprise Application Integration (EAI) wordt genoemd;
- business-to-business (B2B)-integratie, die applicaties in verschillende organisaties verbindt.
EAI
De afbeelding hierboven geeft een eenvoudig voorbeeld van BizTalk Server dat op een EAI-probleem wordt toegepast. In dit scenario merkt een voorraadsysteem – bijvoorbeeld werkend op een IBM-systeem – op dat de voorraad van een product laag is en geeft daarna een bestelorderverzoek. Dit verzoek wordt verzonden naar een orchestratie van BizTalk Server, dat op zijn beurt een inkooporderverzoek uitstuurt naar de ERP-applicatie.
De ERP-toepassing, die bijvoorbeeld op Unix draait, stuurt de gevraagde inkooporder terug, en de orchestratie van BizTalk Server informeert vervolgens een fulfillment-applicatie, die bijvoorbeeld als Windows-applicatie op het .Net-framework is gebouwd.
B2B
Verbinden van applicaties binnen een organisatie is belangrijk, maar applicaties die organisaties overspannen, kunnen minstens zoveel waarde hebben. Dit figuur toont een eenvoudig voorbeeld van dit soort business-to-business-integratie. In dit geval runt de kopende organisatie boven in het figuur een BizTalk Server-orchestratie die met twee leveranciersorganisaties in verbinding staat. Leverancier A gebruikt BizTalk Server, die indirecte toegang tot zijn applicatie verleent. Leverancier B gebruikt een integratieplatform van een andere partij, die met de orchestratie van de kopende organisatie verbonden wordt door bijvoorbeeld webservices.
BizTalk Server in de praktijk
Heeft u het voorgaande gelezen, dan beseft u waarschijnlijk dat BizTalk Server geen leightweight component is om berichten uit te wisselen tussen uw MS Outlook- en een MS Access-database.
BizTalk Server is een serverproduct dat tot zijn recht komt bij grote, complexe of snel wisselende integratievraagstukken. We zullen hier drie praktijkvoorbeelden geven waar Delta-N het gebruik van BizTalk Server zou adviseren.
- Grote integratieomgeving
Een middelgrote tot grote organisatie heeft al snel een groot aantal applicaties in gebruik. Van oudsher nog een legacysysteem, misschien een AS400- of Unix-systeem, een aantal websites, een groot aantal zelf ontwikkelde of aangekochte Windows-applicaties en waarschijnlijk ook nog een aantal – al dan niet in kaart gebrachte – desktopapplicaties. Al snel loopt het aantal op tot 100 stuks of meer, en allemaal hebben ze toegevoegde waarde binnen uw bedrijf. Sommige zou u wel willen vervangen, maar dat is te duur of te complex; andere draaien naar volle tevredenheid en weer andere zijn binnenkort aan vervanging toe. In ieder geval worden ze bijna allemaal gebruikt en hebben ze diverse raakpunten met elkaar. Productie-, uren-, klant- en leveranciergegevens: ze komen op veel plaatsen voor in verschillende databases en bestanden. Zou u de interfaces en koppelingen modelleren in een diagram, dan zou er al snel een wirwar van lijnen ontstaan van applicaties die elkaars gegevens gebruiken. Vaak via geautomatiseerde point-to-point interfaces, maar ook vaak genoeg nog met (veel) handmatige acties; vaak gedocumenteerd, maar even vaak ook niet. In een dergelijk scenario zou BizTalk Server een oplossing bieden.
BizTalk Server fungeert in dit geval – als enterprise-service-bus – als een spin in het web tussen alle applicaties. Koppelingen worden niet meer point-to-point opgeleverd, maar worden allemaal gerouteerd via BizTalk Server. Hiermee wordt uw integratiestroom inzichtelijk en zijn gegevens makkelijker te hergebruiken.
Het probleem bij een dergelijke implementatie is vaak het vinden van een sponsor binnen uw bedrijf. De IT-architect wil graag een geoliede integratieoplossing, vooral als de zoveelste point-to-point koppeling wordt geïmplementeerd. Echter, vaak wordt de beslissing voor een integratieproduct opgehangen aan één project. Bij dat ene project is vaak geen budget om een integratieproduct in de organisatie op te zetten, en kiest men toch vaak om maar weer een point-to-point koppeling te ontwikkelen. De keuze voor een integratie-oplossing zal in dit geval als apart project gestart dienen te worden, en de IT-architect zal zich sterk moeten maken om budget te verkrijgen voor deze diepte-investering. Want dat is BizTalk Server in dit geval: een investering nu om er later de vruchten van te plukken.
- Complexe omgeving
Stel: uw bedrijf biedt een dienst aan die onder andere inhoudt dat uw klanten berichten op uw systeem achterlaten en berichten uit uw systeem retour ontvangen.
Idealiter leveren uw klanten de berichten in uw formaat af op uw webservice, en halen zij de berichten in uw formaat weer op. Zoals wel vaker, is de praktijk waarschijnlijk iets weerbarstiger. Klanten willen graag uw dienst afnemen, maar willen dat uw dienst zich aanpast aan hun systeem en niet andersom. Dit betekent voor u dat u met meerdere systemen moet koppelen en deze koppelingen allemaal moet onderhouden. Als het systeem van de klant verandert, moet u direct de koppeling aanpassen. Als uw dienst koppelt met tien of meer systemen die dan ook nog voor elke klant een eigen inrichting hebben, bijvoorbeeld een systeem als SAP of Oracle, waar het product bij veel klanten gelijk is, maar de inrichting en daarmee de berichtenstroom zeer divers), dan is de integratie al snel te complex om te vangen in de C#-code van een webservice.
In een situatie als deze is BizTalk Server een goede keuze om uw integratie- en koppelinguitdagingen mee aan te pakken.
- Snel wisselende gegevensstromen
Idealiter wordt de logica van een programma niet vermengd met de workflow of snel wisselende logica als mapping, transformatie en validatie.
Als u wel eens een applicatie heeft gezien die als doel heeft 20 of meer brondocumenten om te zetten naar 30 of meer doelberichten, dan weet u dat C# niet de taal is om een dergelijk proces volledig mee op te zetten. De C#-code zit vol met condities en voorwaarden en als er dagelijks wijzigingen zijn in de routering, de mapping van data, de voorwaarden, de validatie etc., dan is de applicatie al snel een bron van ergernis.
In dat geval is de situatie zo complex, dat u een domain specific language als BizTalk Server nodig heeft. Dit serverproduct is ontwikkeld met als doel om genoemde veelzijdige en sterk wisselende gegevensstromen beheersbaar te maken. Met grafische tools om de mapping weer te geven, een configuratie-omgeving om start- en eindpunten van berichtstromen te configureren en een business-rules-engine om beslispunten in te definiëren, is BizTalk Server bij uitstek geschikt om een dergelijk probleem het hoofd te bieden.