Microsoft BizTalk 2013 im Überblick März 2013 | Version 4.0 Andreas Winterer AURIS-CONSULT Enterprise Solutions GmbH Hamerlingstr. 28, A-3300 Amstetten FN 314552b, Landesgericht St. Pölten, UID: AT U64367045 Tel: +43-720-720 585-90, Fax: +43-720-720 585-77 www.auris-enterprise.at © Copyright 2011 AURIS-CONSULT Enterprise Solutions GmbH alle Rechte Vorbehalten Inhalt 1 Einleitung ........................................................................................................................................ 2 1.1 Was kann ich von Microsoft BizTalk Server 2013 erwarten? ................................................... 2 1.2 BizTalk in a Nutshell.................................................................................................................. 3 2 Anforderungen an eine EAI/BPM Plattform ................................................................................. 5 3 Einsatzszenarien ............................................................................................................................ 7 4 3.1 Automatisierung von unternehmensinternen Prozessen .......................................................... 7 3.2 Business to Business Integration (B2BI) .................................................................................. 8 3.3 Umfassendes Business Process Management ........................................................................ 9 Gesamtarchitektur und Module des BizTalk Servers ............................................................... 11 4.1 Messaging und Orchestration ................................................................................................. 13 4.2 Debugging von Geschäftsprozessen ...................................................................................... 15 4.3 Messaging Only Szenarien ..................................................................................................... 16 4.4 BizTalk Server Laufzeitumgebung .......................................................................................... 17 4.4.1 4.5 Enterprise Single Sign On ....................................................................................................... 20 4.6 Business Rules Engine ........................................................................................................... 21 4.7 Business Activity Monitoring ................................................................................................... 23 4.8 Entwicklungswerkzeuge .......................................................................................................... 24 4.8.1 Schema Editor ................................................................................................................. 24 4.8.2 Mapping Werkzeug .......................................................................................................... 25 4.8.3 Pipeline Designer ............................................................................................................. 26 4.8.4 Orchestration Designer .................................................................................................... 27 4.9 5 Weitere Funktionen der BizTalk Laufzeitumgebung ........................................................ 18 BizTalk Administrationsoberfläche .......................................................................................... 28 Abgrenzung des BizTalk Servers zu anderen Produkten von Microsoft ............................... 29 5.1 Abgrenzung des BizTalk Servers zu ETL Werkzeugen .......................................................... 29 5.2 Abgrenzung des BizTalk Servers zu Windows Server AppFabric .......................................... 30 5.2.1 Einführung in Windows Server AppFabric Hosting .......................................................... 30 5.2.2 Komponenten von Windows Server AppFabric Hosting ................................................. 31 5.2.3 BizTalk oder Windows Server AppFabric? ...................................................................... 33 5.3 Zusammenspiel von BizTalk und Windows Server AppFabric ............................................... 33 5.3.1 BizTalk Server 2013 AppFabric Connect ........................................................................ 34 6 Integration im Cloud-Computing Zeitalter ................................................................................. 35 7 Zusammenfassung....................................................................................................................... 37 Über den Autor .................................................................................................................................. 37 Andreas Winterer Page i 1 EINLEITUNG 1.1 Was kann ich von Microsoft BizTalk Server 2013 erwarten? Unternehmen, die im Stande sind, ihre Geschäftsprozesse effizient und jederzeit auszuführen, haben gegenüber ihren Mitbewerbern einen klaren Wettbewerbsvorteil. Weitere Erfolgsfaktoren im Bereich der Automatisierung von Geschäftsprozessen sind die Fähigkeit, Prozesse rasch an geänderte Rahmenbedingungen anpassen zu können und neue Prozesse in kurzer Zeit zu etablieren. Der größte Teil von heute existierenden Geschäftsprozessen basiert auf Software. Eine weitere Tatsache ist, dass es kaum ein Unternehmen gibt, welches eine vollkommen homogene Softwarelandschaft betreibt, in der alle wesentlichen Applikationen nahtlos ineinander greifen. Vielmehr sind in den verschiedenen Bereichen von Unternehmen oft zu verschiedenen Zeiten und auf verschiedensten Plattformen Softwarelösungen etabliert worden. Diese Lösungen wurden nach den Bedürfnissen des betroffenen Unternehmensbereiches im Laufe der Jahre mehr oder weniger modernisiert und weiterentwickelt. Enterprise Application Integration (EAI) und Business Process Management (BPM) Wenn nun unternehmensweit, konzernweit oder firmenübergreifend die Automatisierung von Geschäftsprozessen durchgeführt werden soll, ist neben der Abbildung des eigentlichen Prozesses auch die Anbindung verschiedenartigster Systeme an diese Prozesse eine große Herausforderung. Electronic Data Interchange (EDI) und Business to Business Integration (B2BI) Der elektronische Datenaustausch zwischen Unternehmen (EDI) und die Integration von Geschäftsprozessen über die Unternehmensgrenze hinweg (B2BI) ist zwar kein neues Thema, stellt jedoch nach wie vor, aus verschiedenen Gründen, für viele Unternehmen eine Herausforderung dar. Andreas Winterer Page ii BizTalk und Cloud Computing Das Thema BizTalk und Cloud Computing wird im Kapitel “Integration im Cloud-Computing Zeitalter” behandelt. 1.2 BizTalk in a Nutshell Dieses Dokument gibt einen Überblick über die Funktionalität und den Aufbau des BizTalk Servers in der aktuellen Version 2013. Die folgenden Ausführungen sollen einen Einstieg in die Thematik ermöglichen. Modern und ausgereift Der BizTalk Server von Microsoft ist ein modernes und dennoch ausgereiftes Produkt mit „Komplettausstattung“. Die aktuelle Version der BizTalk Server 2013 ist bereits die insgesamt achte Version und die sechste Version des Produktes, die auf dem .NET Framework basiert. Betrachtet man die Evolution des BizTalk Servers, sieht man den konsequenten Weg, den Microsoft bei der Unterstützung der jeweils aktuellsten Plattformen beschreitet. Für BizTalk 2013 bedeutet dies ein auf Windows Communication Foundation (WCF) basierendes Adapterframework und die Unterstützung von Windows Server 2012 und SQL Server 2012 als Infrastruktur für den Server, sowie Visual Studio 2012 als Entwicklungsumgebung. Verbindungsfähigkeit Microsoft hat seit der Einführung von BizTalk 2000 laufend in den Ausbau der Applikationsadapter investiert und liefert heute mehr als 40 verschiedene Adapter und Accelerators mit dem Produkt aus. Alle Adapter von Microsoft sind in allen Editionen (mit Ausnahme der Branch Edition) des BizTalk Servers ohne zusätzliche Lizenzkosten enthalten. Die Palette der verfügbaren Adapter und Accelerators umfasst unter anderem Adapter für SAP R/3, Oracle, Siebel und die Integration von Hostsystemen sowie Accelerators für SWIFT und HL7. Darüber hinaus verfügen alle Editionen des BizTalk Servers über eine ebenfalls in der Lizenz bereits enthaltene Unterstützung für RFID und eine komplette EDIFACT Lösung mit über 8.000 EDIFACT Schemas. Andreas Winterer Page iii Unterstützung für Anwender Microsoft stellt auch laufend neues Material zur Verfügung, um seine Partnern und Kunden bei der Implementierung des Produktes zu unterstützen. Als ein Beispiel dafür sei hier die Microsoft ESB (Enterprise Service Bus) Guidance angeführt. Die Microsoft ESB Guidance bietet einen Leitfaden für die Gestaltung der Architektur, „Patterns and Practices“ und ein Set von BizTalk Server und .NET Komponenten, welche die Entwicklung von ESB Lösungen verschiedener Größenordnungen auf der Microsoft Plattform vereinfachen. Für IT-Professionals, die BizTalk Server in unternehmenskritischen Umgebungen betreiben, bietet der „BizTalk Server Operations Guide“ wertvolle Unterstützung für das Deployment und den Betrieb des BizTalk Servers. Investitionsschutz Alle Adapter, die seit Version 2004 von einem Kunden zugekauft oder auf dem BizTalk Adapter Framework selbst entwickelt wurden, sind auch auf der aktuellsten Version des BizTalk Servers noch verwendbar. Alle Applikationen, die auf Basis BizTalk seit der Version 2004 entwickelt wurden, können ohne Veränderungen (sogar ohne Neukompilierung) auch auf der aktuellsten BizTalk Version ausgeführt werden. Große Auswahl an Spezialisten Microsoft investiert auch stark in seine Partnerlandschaft, um die Anzahl der Partner mit „SOA & Business Process“ Kompetenz auszubauen und die Qualifikation der bereits in diesem Bereich etablierten Partner weiter zu heben. Viele Microsoft Partner punkten auch durch ihr branchenspezifisches Know-How und können maßgeschneiderte Lösungen für spezielle Einsatzbereiche anbieten, welche dennoch auf Standardsoftware von Microsoft basieren. Mit dem Microsoft BizTalk Server 2013 steht also eine Plattform zur Verfügung, die sowohl die Abbildung von komplexen Geschäftsprozessen als auch die Anbindung verschiedenster Softwareapplikationen und das Management von elektronischem Datenaustausch mit Geschäftspartnern ermöglicht. Andreas Winterer Page iv 2 ANFORDERUNGEN AN EINE EAI/BPM PLATTFORM An eine Plattform, die sowohl den Bereich EAI (Enterprise Application Integration) als auch den Bereich BPM (Business Process Management) abdeckt, werden eine Reihe von Anforderungen gestellt, die nachfolgend aufgelistet werden. Kommunikation über verschiedene Protokolle und Anbindung an verschiedene Applikationen Viele moderne Anwendungen verfügen heute über Web Service Schnittstellen, es existieren jedoch auch noch viele Applikationen, die nur über simple Datei-Import / -Export Schnittstellen mit anderer Software kommunizieren können. In anderen Situationen ist eine Integration über Message-Queuing oder über direkten Zugriff auf die Datenbank die beste Option für eine Integration. Um diese breite Palette von Möglichkeiten abzudecken, muss die Plattform Unterstützung von Standardprotokollen, wie zum Beispiel FTP und http, sowie von herstellerspezifischen (proprietären) Protokollen (z.B. SAP-RFC) und den Zugriff auf Datenbanksysteme von verschiedenen Herstellern bieten. Des Weiteren sind standardisierte Datenformate (z.B. EDIFACT, SWIFT, HL7) und applikationsspezifische Datenformate (z.B. SAP IDOC) zu unterstützen. Eine Erweiterung der Plattform um zusätzliche Kommunikationsmodule und Datenformate muss möglich sein. Abbildung und Ausführung von Geschäftsprozessen Über den reinen Datenaustausch zwischen Systemen hinaus ist die Abbildung und zentrale Ausführung von Geschäftsprozessen ein wesentlicher Anspruch an eine BPM Plattform. Der Mehrwert für ein Unternehmen wird durch das übergreifende Orchestrieren von Geschäftsprozessen erreicht, deren Teilprozesse auf verschiedene Systeme verteilt sind. Für die Definition der Geschäftsprozessablauflogik sind grafische Werkzeuge gefordert, die sowohl die initiale Implementierung als auch eine spätere Änderung oder Erweiterung der Prozesse mit geringem Aufwand ermöglichen. Die höhere Effizienz bei der Entwicklung und Wartung ergibt sich nicht zuletzt aus der Tatsache, dass die grafischen Werkzeuge, im Gegensatz zu einer Darstellung nur in Programmcode, eine bessere Übersicht gewährleisten. Anbindung von Geschäftspartnern Die unternehmensübergreifende Abbildung von Geschäftsprozessen sollte so einfach wie möglich sein. Dazu müssen Standards zum Austausch von Daten zwischen Unternehmen, wie zum Beispiel EDIFACT, SWIFT oder RosettaNet, in die Plattform integriert sein. Skalierung & Ausfallssicherheit Eine BPM Plattform muss den Anforderungen der abzubildenden Geschäftsprozesse entsprechend skalierbar und ausfallsicher sein. Prozesse müssen im Falle einer Unterbrechung von ihrem letzten als konsistent bekannten Punkt aus wieder aufgenommen werden können. Prozesse deren „Lebensdauer“ sehr lang ist, die jedoch nur sehr kurze aktive Phasen haben, welche von längeren Wartephasen unterbrochen werden, dürfen sich nicht negativ auf die Leistungsfähigkeit des BPM Systems selbst auswirken und dürfen auch auf den beteiligten Systemen keine Ressourcen blockieren. Flexible Regeln für Prozesse Andreas Winterer Page v Da der Ablauf von Prozessen oft durch komplexe Regeln beeinflusst wird, besteht eine Aufgabe der Plattform in der Bereitstellung eines flexiblen Frameworks zur Abbildung dieser Regeln. Diese Regeln müssen unabhängig von der Prozessimplementierung änderbar sein und sollten von „nicht Programmierern“ erstell- und bearbeitbar sein. Echtzeit-Überwachung von Prozessen Abläufe, die über viele Systeme hinweg operieren, erfordern ein entsprechendes Überwachungswerkzeug. Die Überwachung gliedert sich in den technischen Bereich, welcher die Verfügbarkeit der Plattform selbst und die technische Fehlerbehandlung umfasst, sowie in den anwendungsorientierten Teil, der die Überwachung von KPI’s (Key Performance Indicators) und die Behandlung von Ausnahmesituationen beim Über- oder Unterschreiten von definierten Schwellwerten (z.B. Überschreitung der maximalen Zeitspanne für die Bearbeitung eines Kundenauftrags) umfasst. Der Nutzen von Informationen über Geschäftsprozesse steigt, wenn diese möglichst zeitnah zur Verfügung stehen und die Benutzer aktiv auf Ausnahmesituationen hingewiesen werden. Eine Echtzeit-Überwachung von KPI‘s ist somit wünschenswert. Plattform- und applikationsübergreifende Authentifizierung von Benutzern Die Interaktion mit verschiedensten Softwaresystemen auf unterschiedlichen Systemplattformen erfordert das Vorhandensein eines Moduls, welches den Zugriff auf diese Zielsysteme verwaltet. Da dieses Modul bzw. Subsystem der Plattform mit sensiblen Daten (Usernamen, Passwörter, etc.) operiert, sind diese Daten entsprechend sicher zu verwahren (Verschlüsselung des Datenspeichers). Der Microsoft BizTalk Server unterstützt Unternehmen dabei, diese und andere Aufgabenstellungen zu lösen und den Ablauf von Geschäftsprozessen zu optimieren. Andreas Winterer Page vi 3 EINSATZSZENARIEN Um die Funktionsweise des BizTalk Servers zu veranschaulichen, wird hier zunächst ein Überblick über die primären Einsatzbereiche des BizTalk Servers gegeben. 3.1 Automatisierung von unternehmensinternen Prozessen Die Automatisierung von Prozessen innerhalb von Unternehmen wird zunehmend von serviceorientierten Ansätzen geprägt. Der Ursprung für die Entwicklung im Bereich der Systemintegration, welcher in den Ideen der Service Oriented Architecture (SOA) mündet, liegt in der Tatsache begründet, dass in immer mehr Unternehmensbereichen spezialisierte Software zum Einsatz kommt. In den frühen Tagen dieser Entwicklung handelte es sich bei den eingesetzten Softwareprodukten sehr oft um Insellösungen, welche wenn überhaupt nur über einfache Datenimport/-Export Mechanismen miteinander ‚integriert‘ waren. In weiterer Folge wurden zumeist auf Batchverarbeitung basierende ‚Schnittstellen‘ entwickelt (vielfach Individualprogrammierung). Mit dem Bedürfnis, die meist rein datenmäßige Integration von Systemen zu standardisieren, entstanden die ersten Produkte in der Kategorie EAI (Enterprise Application Integration). Mit BizTalk Server lässt sich die Brücke zwischen „klassischem EAI“ und „moderner SOA“ schlagen, wie das folgende Beispiel zeigt: Ein Unternehmen betreibt seine Software für die Produktionsplanung und –Steuerung (PPS) sowie sein Lagerverwaltungssystem (LVS) auf einem IBM-Hostsystem. Einkauf, Finanz- und Anlagenbuchhaltung sowie Controlling erfolgen auf SAP R/3. Für Lieferanten, die keine elektronischen Bestellungen entgegennehmen und keine Auftragsbestätigungen und Lieferavisos elektronisch übermitteln, wird ein Lieferantenportal zur Verfügung gestellt. Das Lieferantenportal bietet den Lieferanten die Möglichkeit, neue Bestellungen über eine Web-Oberfläche herunterzuladen und Auftragsbestätigungen sowie Lieferavisos am Portal direkt einzugeben. Im Beispiel wird der Beschaffungsprozess für Materialien gezeigt, die von einem Lieferanten bezogen werden, der über das Lieferantenportal in den Beschaffungsprozess eingebunden ist. Andreas Winterer Page vii Prozessbeschreibung: Schritt Beschreibung 1 Das LVS erzeugt beim Unterschreiten eines Lagerstandschwellwertes eine Nachricht in einer MQSeries Messagequeue (die Nachricht enthält im Wesentlichen die betroffene Materialnummer) 2 Der BizTalk MQSeries Adapter nimmt die Nachricht entgegen und startet am BizTalk Server den Beschaffungsprozess 3 Die MQSeries Nachricht wird in eine Struktur konvertiert, welche als Input für das Anlegen der Bestellung am SAP R/3 System benötigt wird. (Mapping) 4 Die in Schritt 3 erzeugte Struktur wird an den BizTalk SAP R/3 Adapter übergeben. 5 Der BizTalk SAP R/3 Adapter startet über SAP-RFC das BAPI *), welches die Bestellung am SAP System anlegt. Das Ergebnis des BAPI Aufrufes wird an den Adapter (synchron) zurückgegeben. 6 Das Ergebnis des BAPI Aufrufes aus Schritt 5 wird vom Adapter an den Prozess zurückgegeben. 7 Die Daten aus Schritt 6 werden für den folgenden WebService Aufruf aufbereitet. (Mapping) 8 Die in Schritt 7 aufbereiteten Daten werden an den BizTalk SOAP Adapter übergeben. 9 Der SOAP Adapter ruft den WebService des Lieferantenportals auf und legt die Bestellung an, welche vom Lieferanten über einen Web-Browser angesehen und heruntergeladen werden kann. *) Ein ‚BAPI‘ (Business Application Programming Interface) kapselt eine Funktion des SAP Systems und kann von externen Systemen aufgerufen werden. Anmerkung: Hier wurde aus Platzgründen nur der erste Teilprozess dargestellt, für Auftragsbestätigung und Lieferaviso sind weitere Teilprozesse erforderlich, um den Gesamtablauf zu implementieren. 3.2 Business to Business Integration (B2BI) Schon seit langer Zeit beschränken sich Geschäftsprozesse nicht nur auf den Bereich innerhalb von Unternehmen, sondern laufen vielmehr unternehmensübergreifend ab. Als nur ein Beispiel sei hier die Automobilindustrie angeführt, wo zahlreiche Zulieferbetriebe in den Produktionsprozess des eigentlichen Fahrzeugherstellers eng eingebunden sind. Da sich der elektronische Datenaustausch zwischen Firmen (Electronic Data Interchange oder kurz EDI) schon lange vor der Entwicklung von XML und Web Services etablierte, wurden auch schon vor langer Zeit Standards dafür geschaffen. Obwohl man durchaus sagen könnte, dass EDI eine ‚alte Technologie‘ ist (die Anfänge gehen in die 1970er Jahre zurück), spielt EDI trotzdem eine große Rolle im Bereich der B2B Integration. Ein Grund für den - in Informationstechnologiezyklen gemessen - langen Bestand dieser Technologie sind die teilweise sehr hohen Investitionen die von Unternehmen in EDI Implementierungen getätigt wurden. Der in Europa meist genutzte EDI Standard ist wohl UN/EDIFACT (United Nations Electronic Data Interchange For Administration, Commerce and Transport). Das folgende Beispiel zeigt in vereinfachter Form eine real existierende B2B Implementierung, welche auf BizTalk Server basiert: Organisation A, ein Hersteller von Computersystemen (PC’s, Notebooks und Server sowohl für Privatkunden als auch für Firmenkunden) hat den Kundenservice (Garantietausch und Reparatur von Andreas Winterer Page viii Hardware, etc.) an einen Dienstleister die Organisation B ausgelagert. Die Kunden von Organisation A melden Störungen im Call-Center von Organisation A, die erstellten Tickets werden an Organisation B übermittelt, wo die Einsatzplanung der Servicetechniker und die Durchführung der Servicearbeiten für den Kunden (direkt beim Kunden Vorort oder bei ‚Bring-In‘ Reparaturen im Servicecenter von Organisation B) abgewickelt werden (Eine Variante des Ablaufes ist noch, dass ein Kunde von Organisation A auch ohne vorher im Call-Center anzurufen direkt zum Servicecenter von Organisation B kommen kann, um seine Hardware zur Reparatur abzugeben, dieser Fall wird, um das Beispiel überschaubar zu halten, hier nicht behandelt.). Der Hersteller (Org. A) verwendet SAP R/3 und eine individuell entwickelte Call-Center Applikation. Der Dienstleister (Org. B) hat das gesamte Servicemanagement in seinem Microsoft Dynamics NAV (Navison) System abgebildet (überwiegend Individualprogrammierung). Anmerkung: Das Bild zeigt den Teilprozess für die Übermittlung neuer Tickets. Bei der Bearbeitung der Tickets durch Org. B werden laufend Statusupdates im Navison System erzeugt (Terminvereinbarung mit dem Kunden erfolgt, Hardwaretausch erfolgt, bis hin zum Schließen des Tickets), diese Statusupdates werden in einem gesonderten Teilprozess an Org. A übermittelt. 3.3 Umfassendes Business Process Management Die Abbildung und effiziente Ausführung von Geschäftsprozessen ist eines der primären Ziele des BizTalk Servers. Bei der Automatisierung von Geschäftsprozessen – ob nun innerhalb des Unternehmens oder unternehmensübergreifend – handelt es ich aber nur um einen Teilbereich der Aufgaben aus dem weiten Feld des Geschäftsprozessmanagements, das auch als Business Process Management oder kurz BPM bezeichnet wird. Geschäftsprozessmanagement geht weit über das Integrieren von Systemen und das Ausführen von systemübergreifenden Prozessen hinaus. BPM ist selbst ein permanenter Optimierungsprozess, der zum Ziel hat, laufend die Effizienz von Prozessen zu steigern und Veränderungen im Umfeld in die Prozesssteuerung einfließen zu lassen. Um diesen Optimierungsprozess in Gang zu bringen, werden zwei Bausteine benötigt: ein ‚Sammelmechanismus‘, welcher laufend Messdaten aus den Geschäftsprozessen in einer Datenbank kumuliert zur Verfügung Andreas Winterer Page ix stellt, und ein Element, welches es ermöglicht, die aus den gesammelten Daten gewonnenen Erkenntnisse möglichst schnell wieder in die Steuerung des Prozesses einfließen zu lassen. Der Sammelmechanismus des BizTalk Servers ist das Business Activity Monitoring (BAM) und das steuernde Element die Business Rules Engine (BRE). Die folgende Abbildung soll den BPM-Kreislauf veranschaulichen. In den Kapiteln über das Business Activity Monitoring und die Business Rules Engine wird auf die Funktionalitäten und Aufgaben der beiden Module eingegangen. Andreas Winterer Page x 4 GESAMTARCHITEKTUR UND MODULE DES BIZTALK SERVERS Dieser Abschnitt beschreibt die Module und Werkzeuge, welche vom BizTalk Server zur Verfügung gestellt werden, um die im vorigen Abschnitt angesprochenen Aufgaben zu lösen. Die beiden wichtigsten Module des BizTalk Servers sind Messaging und Orchestrations. Messaging Die wesentliche Aufgabe des BizTalk Server Messaging ist es, Nachrichten (Messages) zu senden und zu empfangen. Der Anknüpfungspunkt an die sendenden und empfangenden Applikationen bilden die Adapter des BizTalk Servers, welche verschiedene Protokolle implementieren (FTP, HTTP, etc.) oder die Verbindung zu LOB (Line of Business Systemen, wie z.B. SAP) herstellen. Daten, die von Adaptern entgegengenommen oder versendet werden sollen, können innerhalb des Messagings in verschiedenster Weise verarbeitet werden. Zu den Möglichkeiten, die Daten zu verarbeiten, zählen unter Anderem die Konvertierung des Datenformates (z.B. CSV XML oder XML EDIFACT), das Daten-Mapping oder die Prüfung von Signaturen. Viele Aufgaben im EAI und B2B Bereich, die ein reines Austauschen von Nachrichten zwischen Systemen erfordern, lassen sich alleine mit den Mitteln lösen, welche vom BizTalk Messaging zur Verfügung gestellt werden. Orchestrations Mit Orchestrations lassen sich Aufgaben lösen, welche die Implementierung von Ablauflogik für Geschäftsprozesse erfordern. Sollen mehrere voneinander getrennte Applikationen Teile ihrer Funktionalität für einen Geschäftsprozess zur Verfügung stellen, wird eine Instanz benötigt, welche die Reihenfolge des Zugriffs auf die Systeme und Verzweigungen im Prozess festlegt. Eine weitere Aufgabe dieser zentralen Instanz ist es, im Fehlerfall entsprechende Vorgänge auszulösen, um die Datenkonsistenz auf den angeschlossenen Systemen sicherzustellen. Enterprise Single Sign On Sollen Systeme verschiedener (Software-) Hersteller integriert werden, müssen beim Zugriff auf diese Systeme entsprechende Benutzernamen, Passwörter, etc. zur Verfügung stehen. Einerseits sind diese Informationen entsprechend ihrer Sensibilität zu behandeln (verschlüsselte Abspeicherung), andererseits bedarf es eines Mechanismus um eine Zuordnung von Windows Accounts zu Benutzeraccounts auf Backend-Systemen zu bewerkstelligen. Zweiteres ist notwendig, wenn zum Beispiel ein Benutzer über eine Web-Applikation einen Geschäftsprozess initiiert, welcher über den BizTalk Server wiederum auf sensible Daten in einem ERP System wie SAP zugreift. In solchen Fällen ist es erforderlich den Windows Account einem personalisierten Benutzeraccount am ERP System zuzuordnen, um den Schutz der Daten im ERP System zu gewährleisten. Business Activity Monitoring BizTalk ermöglicht es, Geschäftsprozesse durch die Verbindung von mehreren Systemen zu implementieren. Die Benutzer dieser Geschäftsprozesse haben das Bedürfnis sich über den Status von Geschäftsprozessen informieren zu können. Um den Benutzern ein möglichst genaues Bild des momentanen Zustandes von einem oder auch einer Gruppe von Prozessen Andreas Winterer Page xi geben zu können, sammelt das Business Activity Monitoring permanent Daten aus den ablaufenden Prozessen und kumuliert diese in einer Datenbank. Für den Anwender steht das BAM Portal, eine Web-Anwendung, zur Verfügung, welche es erlaubt, vorgefertigte Auswertungen abzurufen und auch ad hoc Abfragen zu machen. Business Rules Engine Während die Ablauflogik eines Geschäftsprozesses zumeist relativ statisch ist und nur selten grundlegend abgeändert wird, sind die Regeln, welche den Prozess steuern, unter Umständen sehr kurzen Änderungszyklen unterworfen. Die Business Rules Engine (BRE) ermöglicht die Trennung von Ablauflogik (= Orchestration) und Steuerung der Ablauflogik (= BRE) in eigene Einheiten. EDI Services Die EDI Funktionalitäten des BizTalk Servers 2009 stellen eine komplett neue Implementierung einer an sich ‚alten‘ Technologie dar. Die Anfänge von EDI bzw. EDIFACT gehen in die 1970er Jahre zurück, damals haben Unternehmen begonnen elektronische Dokumente auszutauschen. Um diesen Dokumentenaustausch zu vereinheitlichen wurde der UN/EDIFACT (United Nations Electronic Data Interchange For Administration, Commerce and Transport) Standard geschaffen. Da viele, vor allem größere Unternehmen, in EDIFACT zum Teile erhebliche Investitionen getätigt haben, ist die Hemmschwelle diese EDI Implementierungen durch neue auf XML aufbauende Lösungen zu ersetzen sehr hoch. BizTalk verfügt über eine robuste EDI Komplettlösung die sehr gut in die Gesamtarchitektur integriert ist. Entwicklungswerkzeuge Die Entwicklungswerkzeuge des BizTalk Servers sind in das Visual Studio von Microsoft integriert und umfassen folgende Einzelwerkzeuge: Orchestration Designer (Ablauflogik) Schema Editor (Erstellung von Schemas für alle Datenformate inkl. EDIFACT und ‘FlatFiles’) Pipeline Designer (Prüfung und Bearbeitung von Nachrichten z.B. prüfen von Signaturen) Mapping (Umformen von Dokumenten von einem Quellformat in ein beliebiges Zielformat z.B. EDIFACT XML) Mit diesen Werkzeugen lassen sich alle Aufgaben im Bereich der Systemintegration und der Abbildung von Geschäftsprozessen lösen. Werkzeuge für Power User Die Werkzeuge zum Erstellen von Business Rules für die Business Rules Engine sowie die Designer des Business Activity Monitorings sind nicht im Visual Studio integriert, da sich diese Werkzeuge nicht nur an Softwareentwickler wenden sondern auch von „Power-Usern“ eingesetzt werden. Das Werkzeug zum Erstellen von Business Rules der Rules Designer ist ein ‚standalone Tool‘, welches unabhängig von anderen Werkzeugen des BizTalk Servers installiert und verwendet werden kann. Die Designwerkzeuge des Business Activity Monitorings sind in Visio bzw. Excel integriert. Andreas Winterer Page xii 4.1 Messaging und Orchestration Zur Abbildung von Geschäftsprozessen, die mehrere Applikationen umfassen bzw. verbinden, werden im Wesentlichen zwei Funktionalitäten des BizTalk Servers verwendet: die Orchestration zum Abbilden des eigentlichen Prozesses und das Messaging, welches den Transport der Daten von/zu den angebundenen Systemen übernimmt. Wie im Bild zu sehen ist, werden eingehende Nachrichten (Messages) durch einen Receive Adapter entgegengenommen. Verschiedene Adapter implementieren unterschiedliche Transportprotokolle wie z.B. FTP, SOAP oder den Zugriff auf eine Datenbank. Die Nachricht wird dann in einer Receive Pipeline verarbeitet. Eine Pipeline kann verschiedene Komponenten enthalten, welche zum Beispiel eine Nachricht von ihrem Ausgangsformat (z.B. CSV) in XML umwandeln, die Struktur der Nachricht überprüfen, eine digitale Signatur prüfen und vieles andere mehr. Die Kombination aus Receive Adapter und Receive Pipeline wird als Receive Location bezeichnet. Die Nachricht wird danach in einer SQL Server Datenbank - der MessageBox - gespeichert. Die MessageBox stellt die Transaktionssicherheit bzw. Konsistenz der Zustände zwischen den angebundenen Systemen her, da die Kommunikation mit den angebundenen Systemen über Transaktionen abgesichert wird. Ein Geschäftsprozess wird in der Form von einer oder mehreren Orchestrations dargestellt, welche aus einem ausführbarem Code bestehen. Diese Orchestrations werden jedoch nicht durch das Schreiben von Code in einer Sprache wie C# erstellt, sondern mit Hilfe eines grafischen Werkzeuges, das es ermöglichet, vordefinierte Bausteine zu einer Prozessablauflogik zusammenzusetzen. Einzelne Bausteine implementieren Funktionen wie Schleifen, Entscheidungen (if/then/else) oder Transaktionen. Andreas Winterer Page xiii Jede Orchestration meldet sich bei der MessageBox an und gibt bekannt, welche Messages an diese Orchestration übermittelt werden sollen. Dieser Mechanismus wird als das Erzeugen einer Subscription bezeichnet. Wenn nun eine entprechende Message in der MessageBox einlangt, wird diese den Orchestrations zugestellt, die eine Subscription für die entsprechende Nachricht erstellt haben. Die Orchestration wird in diesem Fall als Subscriber bezeichnet. Die Kriterien, nach denen Filter für eine Subscription gesetzt werden können, reichen von der Nachrichtenart über Eigenschaften der Nachricht, wie zum Beispiel dem Absender der Nachricht, bis hin zu Inhalten der Nachricht. Das Ergebnis der Verarbeitung in der Orchestration wird typischerweise wieder in Form einer neuen Nachricht in der MessageBox abgelegt. Als nächstes wird diese Nachricht einer Send Pipeline übermittelt. Eine Send Pipeline stellt das Gegenstück zu einer Receive Pipeline dar und übernimmt Aufgaben wie das Umwandeln der Nachricht von XML in ein applikationsspezifisches Format oder das Hinzufügen einer digitalen Signatur. Die Nachricht wird dann von einem Send Adapter an die Zielapplikation übermittelt. Send Adapter implementieren so wie Receive Adapter ein spezifisches Transportprotokoll. Konfiguration einer Receive Location die den WCF-WSHttp Adapter verwendet. Andreas Winterer Page xiv 4.2 Debugging von Geschäftsprozessen Der BizTalk Server verfügt über einen grafischen Debugger, der zwei Betriebsarten aufweist. In der ersten Betriebsart „Live-Modus“ können Geschäftsprozesse (Orchestrations) Schritt für Schritt ausgeführt werden. Dieser Modus ist vergleichbar mit einem normalen Code Debugger nur, dass hier keine Codezeilen einzeln ausgeführt werden sondern Orchestrations Prozess-Schritt für Prozess-Schritt untersucht werden können. In der zweiten Betriebsart „Reporting Modus“ können bereits beendete Orchestrations unter die Lupe genommen werden. Dies ist möglich, weil die Runtime des BizTalk Servers in der Tracking-Datenbank jeden Prozessschritt genau protokolliert. Dieser Modus kann zum Beispiel dazu verwendet werden, laufzeitintensive Prozessschritte zu identifizieren, da die Protokollierung den Beginn und das Ende jedes Prozessschrittes auf Millisekunden genau aufzeichnet. Debugger Live-Modus Andreas Winterer Page xv Debugger Reporting Modus 4.3 Messaging Only Szenarien Die Kombination aus Send Pipeline und Send Adapter wird in der Konfiguration des BizTalk Servers als Send Port bezeichnet. Ein Send Port kann genau so wie eine Orchestration Subscriptions erzeugen. Daher ist es ist nicht zwingend erforderlich, dass eine Verarbeitung auf dem BizTalk Server immer eine Orchestration enthält. Andreas Winterer Page xvi Receive Locations werden in Receive Ports gruppiert. Pro Receive Port kann ein Inbound Mapping konfiguriert werden, welches es ermöglicht, die eingehende Nachricht zu konvertieren. Analog zum Inbound Mapping gibt es auch ein Outbound Mapping, welches im Send Port konfiguriert werden kann. Send Ports können in Send Port Gruppen zusammengefasst werden. Das von einem Send Port verwendete Protokoll kann entweder bei der Definition des Ports durch den Administrator bzw. Entwickler festgelegt werden, oder aber auch zur Laufzeit dynamisch bestimmt werden. Neben diesen so genannten Dynamic Ports bietet der BizTalk Server noch weitere Features, welche in Kombination eine sehr mächtige „Routing Engine“ bilden. 4.4 BizTalk Server Laufzeitumgebung Eine BizTalk Applikation besteht aus verschiedenen Artefakten, wie z.B. Mappings, Schemas, Policies und Orchestrations. Ein weiterer Bestandteil von BizTalk Applikationen sind Send- und Receive-Ports sowie Receive-Locations. Die Laufzeitumgebung des BizTalk Servers muss Betriebssystemprozesse für die Ausführung („für das Hosting“) von folgenden Komponenten zur Verfügung stellen: - Orchestrations Receive-Locations Send-Ports Die anderen Artefakte werden als Teil der drei vorher genannten Artefakte ausgeführt, ein Mapping zum Beispiel kann in einer Orchestration, in einem Send-Port oder auch als Teil eines Receive-Ports ausgeführt werden. Andreas Winterer Page xvii Um in Mulitserverumgebungen keine Affinität zwischen einem physischen Server bzw. einem Betriebssystemprozess, der als Host dient, und einer bestimmten Orchestration, einem Send-Port oder einer Receive-Location zu schaffen, wird zwischen dem logischen Host und den zugehörigen Hostinstanzen unterschieden. Das folgende Bild soll dieses Konzept veranschaulichen. Über die Konfiguration einer BizTalk Applikation werden Zuordnungen von Orchestrations, ReceiveLocations und Send-Ports zu Hosts getroffen. Die Ausführung der zugeordneten Artefakte wird jedoch von den Hostinstanzen (= OS Prozesse) übernommen, welche auf verschiedenen Servern ausgeführt werden. Eine Orchestration zum Beispiel muss also nicht ‚wissen‘ welche Server es gibt, sondern die BizTalk Server Runtime führt ein Load Balancing durch und sorgt dafür, dass die Orchestration auf einer der Hostinstanzen des entsprechenden Hosts ausgeführt wird. 4.4.1 Weitere Funktionen der BizTalk Laufzeitumgebung 4.4.1.1 Persistenz Da Geschäftsprozesse unter Umständen Stunden, Tage, Wochen oder sogar Monate vom Zeitpunkt der Initiierung bis zum Beenden „am Leben“ bleiben, muss die Laufzeitumgebung eines BPM Servers entsprechende Funktionen zum Konservieren von Zuständen anbieten. Auf dem BizTalk Server übernimmt die MessageBox diese Aufgabe. Alle Nachrichten, die in Bearbeitung sind und noch nicht erfolgreich an ein Zielsystem übermittelt wurden, sind in der MessageBox zwischengespeichert. Orchestrations werden jedesmal wenn ein konsistenter Zustand erreicht wird, in der MessageBox persistiert. Orchestrations, die inaktiv sind, werden von der Laufzeitumgebung des BizTalk Servers aus dem Speicher genommen, da der Zustand von dem die Geschäftsprozesse wieder weiter ausgeführt werden können zuvor automatisch in der MessageBox konserviert wurde. Andreas Winterer Page xviii 4.4.1.2 Fehlertoleranz Systemübergreifende Geschäftsprozesse bergen ein großes Potential für Fehler, die während der Ausführung auftreten können. Unterbrochene Netzwerkverbindungen, Programmfehler auf Systemen, die an den Geschäftsprozess angebunden sind, und aus Wartungsgründen abgeschaltete Systeme sind nur einige wenige Beispiele für mögliche Ausnahmesituationen. Das Messaging des BizTalk Retry Mechanismus (Adapterunabhängig) Servers implementiert zahlreiche Funktionen, um im laufenden Betrieb mit diesen Fehlerquellen umzugehen. Zum Beispiel ist ein für alle Adapter verfügbarer automatischer „Retry Mechanismus“ vorhanden, der abgebrochene oder aus anderen Gründen nicht erfolgreiche Datenübertragungen zu einem Zielsystem wiederholt. Für jeden Send Port kann auch ein Backup Transport eingerichtet werden, der im Falle von wiederholten Übertragungsproblemen automatisch verwendet wird. 4.4.1.3 Tracking Konfiguration des Trackings Andreas Winterer Ein weiterer wichtiger Aspekt ist die Nach-vollziehbarkeit aller Vorgänge auf dem Integrationsserver. In B2BI Szenarien ist es unumgänglich, eine Kopie von jedem Dokument das an einen Geschäfts-partner übermittelt wurde inklusive der Zeitstempel zu archivieren. Zu diesem Zweck steht auf dem BizTalk Server das Tracking zur Verfügung. Es ermöglicht alle Vorgänge bis zu einem sehr hohen Detailierungs-grad in der Trackingdatenbank zu verewigen. Page xix 4.5 Enterprise Single Sign On Bei der Integration von heterogenen Systemen ist es notwendig, beim Zugriff auf diese Systeme die entsprechenden Authentisierungsmechanismen zu nutzen. Das Modul Enterprise Single Sign On des BizTalk Servers, im folgenden kurz SSO bezeichnet, stellt folgende Funktion zur Verfügung: Verschlüsselte Speicherung von o Port Konfigurationen für das Messaging o Anmeldeinformationen für „affiliate applications *)“ Mapping von Windows User Accounts auf affiliate application accounts *) als affiliate application wird jene Applikation bezeichnet, auf die ein Geschäftsprozess zugreifen soll z.B. ein Host oder SAP R/3 Die in der SSO Datenbank abgelegten Informationen werden verschlüsselt, d. h. die Datenbank selbst kann von Benutzern mit den entsprechenden Rechten normal benutzt werden. Jedoch sind die in den Tabellen enthaltenen Daten nur durch das SSO System, mit dem bei der Installation generierten Schlüssel, lesbar. Jedes BizTalk Server System benötigt einen SSO Master Secret Server, dieser ist im Besitz des Master Secret (dieser Schlüssel ist in der Registry des SSO Master Secret Servers abgelegt). Alle adapterspezifischen Konfigurationsparameter werden in der SSO Datenbank abgelegt und müssen zur Laufzeit durch das SSO System gelesen und entschlüsselt werden, daher ist es nicht möglich eine BizTalk Server Umgebung ohne Enterprise Single Sign On zu betreiben. Die Speicherung von adapterspezifischen Konfigurationsdaten (diese beinhalten ggf. auch Benutzernamen und Passwörter) stellt das Basisszenario für die Verwendung des SSO Systems dar. Das SSO System kann aber auch für Windows Initiated Single Sign On Szenarien eingesetzt werden. Unter Windows Initiated Single Sign On versteht man Szenarien, bei denen ein Windows Benutzer einen Geschäftsprozess auf dem BizTalk Server initiiert, in dessen Verlauf auf ein oder mehrere Systeme zugegriffen wird, die keine Active Directory Integration haben. Das folgende Bild zeigt einen Prozess, bei dem eine Nachricht von einem Windows Benutzer an den BizTalk Server gesendet wird. Die Nachricht wird von einer Orchestration verarbeitet und dann an eine Applikation gesendet, welche auf einem IBM Mainframe läuft. Die Aufgabe des SSO Systems ist es, gemeinsam mit der Nachricht die richtigen Anmeldeinformationen an den Host zu übergeben. Andreas Winterer Page xx Affiliate Application on Non-Windows System Credential 3) Get user X’s credentials for affiliate application Single Sign-On Server A Incoming Message 1) Get SSO ticket for user X 5) Send message with user X’s credentials for affiliate application Single Sign-On Server B 2) Redeem SSO ticket 4) Return user X’s credentials for affiliate application Outgoing Message Orchestration Receive Adapter Receive Pipeline Send Pipeline Send Adapter MessageBox Für Nachrichten, die über einen Adapter der Single Sign On unterstützt empfangen werden, kann der Adapter vom SSO System ein Ticket anfordern. Das verschlüsselte Ticket enthält die Information, welches Windows Benutzerkonto den Vorgang ausgelöst hat, weiters ist jedes Ticket nur eine bestimmte Zeit lang gültig. (Es handelt sich dabei NICHT um ein Kerberos Ticket!) Das Ticket wird der Nachricht hinzugefügt. Anschließend nimmt die Nachricht ihren Weg durch den BizTalk Server, in diesem Fall die Verarbeitung durch eine Orchestration. Erzeugt die Orchestration eine ausgehende Nachricht, so enthält diese ebenfalls das Ticket der eingehenden Nachricht. Die ausgehende Nachricht ist in diesem Fall für einen IBM Mainframe gedacht und muss mit den entsprechenden Benutzerinformationen an das Zielsystem bzw. die Zielapplikation übergeben werden. Der Send Adapter fordert nun mit Hilfe des Tickets die Benutzerinformationen für das Zielsystem vom SSO Server an. Der SSO Server überprüft das Ticket auf seine Gültigkeit und liefert die Zugangsdaten für den Host zurück, die dem Windows Benutzerkonto zugeordnet sind. Der Send Adapter benutzt nun diese Daten, um auf den Host zuzugreifen. 4.6 Business Rules Engine Die BizTalk Rules Engine (im Folgenden kurz BRE) ermöglicht es, Policies zu erstellen, welche sich aus einzelnen Rules (= Regeln) zusammensetzen. Die BRE kann Dokumente aufgrund der definierten Regeln überprüfen und die in den Regeln definierten Aktionen auf das Dokument anwenden. Die Policies können aus Orchestrations heraus aufgerufen werden. Policies können aber auch von jeder beliebigen Applikation verwendet werden, da die BRE ein entsprechendes Programmierinterface (API) zur Verfügung stellt. Andreas Winterer Page xxi Erstellen von Rules und Policies Das Erstellen von Regeln erfolgt über den Business Rules Composer. Die Policies werden bei deren Erstellung bzw. Pflege automatisch inkrementell versioniert. Sobald eine Policy einmal zur Ausführung freigegeben (= deployed) wurde kann sie nicht mehr verändert werden, es ist dann nur mehr möglich eine neue Version der Policy zu erstellen. Die zur Erstellung von Regeln nötigen Fakten (facts) können aus XML Schemas, .NET Klassen oder Datenbanken stammen. Die Felder aus diesen Datenquellen können mit sprechenden (fachbereichsspezifischen) Namen versehen und in so genannten Vocabularies zusammengefasst werden. Dies ermöglicht es, dass technisch weniger versierte Benutzer des Business Rules Composers die für die Erstellung einer Regel notwendigen Daten leichter auffinden können und kein Wissen über die tatsächliche Struktur bzw. den Ursprung der Daten benötigen. Durch die Verwendung von .NET Assemblies als Facts können praktisch beliebige Datenquellen (z.B. Oracle, Hostdaten, WebServices, etc.) eingebunden werden. Andreas Winterer Page xxii 4.7 Business Activity Monitoring Das Business Activity Monitoring kurz als „BAM“ bezeichnet, dokumentiert praktisch in Echtzeit den Ablauf von Prozessen, indem das Erreichen von Milestones protokolliert wird und zugleich KPI’s erfasst werden. Die Funktionalität von BAM lässt sich am besten folgendermaßen zusammenfassen: Business Activity Monitoring ist „Echtzeit Business Intelligence“ mit einem Geschäftsprozess-Kontext. BAM sammelt aber nicht nur Daten aus jenen Prozessteilen, die am BizTalk Server selbst ablaufen, sondern kann auch über sogenannte ‚Interceptoren‘, welche zum Beispiel in Applikationen die WF (Workflow Foundation) oder WCF (Windows Communication Foundation) verwenden, eingebunden werden. Erstellen von BAM Lösungen Die Erstellung von BAM Lösungen ist keine typische Aufgabe für einen Softwareentwickler. Daher sind die entsprechenden Werkzeuge auch nicht im Visual Studio integriert, sondern finden sich als AddOn’s in Visio und Excel. Die Überwachung der BizTalk Lösung mittels BAM kann entweder direkt über Excel erfolgen oder über das BAM Portal (siehe folgendes Bild). Business Activty Monitoring Portal Andreas Winterer Page xxiii 4.8 Entwicklungswerkzeuge BizTalk Lösungen bestehen im Wesentlichen aus XSD-Schemas, XSLT-Mappings, Pipelines und Orchestrations. Die Werkzeuge zur Erstellung dieser Artefakte sind in Visual Studio 2008 im BizTalk Projekt-Template eingebettet. 4.8.1 Schema Editor Mit dem Schema Editor werden XSD-Schemas für XML Dokumente und auch für alle anderen Dokumettypen wie Flat-Files (z.B. CSV), EDIFACT, SWIFT, SAP Idoc, etc. erstellt und bearbeitet. Um die „nicht XML Formate“ abbilden zu können, verwendet der BizTalk Server Erweiterungen in den XSD Definitionen, welche konform zu den W3C Standards sind. Erstellung von Schemas für „Flat-Files“ Für die Erstellung von beliebigen Flat-File-Schemas gibt es einen Wizard der aufgrund eines Beispielfiles die Erstellung eines Schemas sehr komfortabel werden lässt. Im Normalfall ist ein Flat-File-Schema mit der Hilfe des Wizards in wenigen Minuten erstellt. Andreas Winterer Page xxiv 4.8.2 Mapping Werkzeug Eine der häufigsten Aufgaben bei Integrationsprojekten ist die Umformung von Datenstrukturen, wie zum Beispiel das Mapping von einem SAP Idoc in ein EDIFACT Format oder die Transformation von einem XML-Format in ein anderes. Das BizTalk Mapping Werkzeug ist ein grafisches Werkzeug, welches dem Entwickler ermöglicht auf intuitive Weise Mappings zu erstellen. BizTalk Mapper Der Mapper stellt auch eine Toolbox mit 80 sogenannten „Functoids“ zur Verfügung. Mit dem „Scripting Functoid“ kann unter anderem auch C# Code in ein Mapping eingebettet werden. Andreas Winterer Page xxv Beispiele für Functoids 4.8.3 Pipeline Designer Ein wesentlicher Bestandteil des BizTalk Messagings sind Receive- und Send-Pipelines. Pipelines haben folgende Aufgaben: Receive Pipeline: - Prüfen von Signaturen Entschlüsseln von Nachrichten Validierung von Dokumenten Aufsplitten von Batches Parsen von Flat-Files, EDIFACT, SWIFT, etc. (Umwandlung aus dem Native-Format in XML) Ausführung von Custom Pipeline Components Send Pipeline: - Verschlüsseln/Signieren von Nachrichten Serialisieren von Nachrichten (Umwandlung von XML in Flat-File, EDIFACT, etc.) Ausführung von Custom Pipeline Components Die oben erwähnten Funktionen sind nur ein Überblick über jene Funktionen, die eine Send- oder Receive-Pipeline „Out of the Box“ beherrscht. Mit Custom Pipeline Components lassen sich beliebige Funktionen, wie zum Beispiel Dekomprimieren und Komprimieren von Daten implementieren. Custom Pipeline Components können in jeder beliebigen .NET Sprache implementiert werden. Andreas Winterer Page xxvi Beispiel: Eine CSV Datei welche mit ZIP Komprimiert wurde soll am BizTalk Server Verarbeitet werden. 4.8.4 Orchestration Designer Ein Geschäftsprozess kann natürlich einfach in Code (z.B. als C# Programm) abgebildet werden. Komplexe Abläufe, die in konventionellen Programmiersprachen erstellt und gewartet werden, können jedoch eine nicht unwesentliche Herausforderung darstellen. Mit dem Orchestration Designer wird die Ablauflogik eines Geschäftsprozesses mit einem grafischen Werkzeug modelliert. Die Erstellung der Ablauflogik ist so weniger zeitintensiv und das Ergebnis ist einfacher zu verstehen und zu warten. Für das Modellieren stehen verschiedene Shapes zur Verfügung, die mit „Drag & Drop“zu einem Gesamtprozess kombiniert werden. Umfangreiche Prozesse können in (wiederverwendbare) Teilprozesse aufgeteilt und aus einem Hauptprozess heraus synchron oder asynchron aufgerufen werden. Orchestration Designer Andreas Winterer Page xxvii 4.9 BizTalk Administrationsoberfläche Alle Aufgaben, die bei der Installation, Konfiguration und beim Betrieb von BizTalk Anwendungen auszuführen sind, werden über die BizTalk Administrationskonsole erledigt. Dieses Administrationswerkzeug kann über benutzerdefinierte Abfragen an die individuellen Bedürfnisse bei der Verwaltung einer Applikation angepasst werden. Andreas Winterer Page xxviii 5 ABGRENZUNG DES BIZTALK SERVERS ZU ANDEREN PRODUKTEN VON MICROSOFT Der BizTalk Server ist nicht das einzige Produkt von Microsoft, welches im weitesten Sinne zur Integration verschiedener Systeme und zum Implementieren von Geschäftsprozessen bzw. „Workflows“ einsetzbar ist. Mit Produkten und Technologien wie SQL Server Integration Services (SSIS) oder MSMQ, eröffnen sich für ein anstehendes Integrationsprojekt immer gleich mehrere Optionen bei der Wahl des Werkzeuges. Mit der Workflow Foundation (WF), Windows Communication Foundation (WCF) und Windows Server AppFabric gibt es auch im Bereich von Workflows und WebServices Technologien auf der Microsoft Plattform, die ähnliche oder teilweise sogar mit dem BizTalk Server überlappende Funktionalitäten anbieten. Die folgenden Abschnitte sollen eine Richtlinie für die Auswahl des „richtigen“ Werkzeuges geben und auch die Möglichkeiten aufzeigen, die BizTalk im Zusammenspiel mit WF, WCF und Windows Server AppFabric bietet. 5.1 Abgrenzung des BizTalk Servers zu ETL Werkzeugen ETL (Extract Transform Load) Werkzeuge kommen vor allem, aber nicht nur, bei Datawarehouse (DWH) Aufgabenstellungen zum Einsatz. Das ETL Werkzeug von Microsoft heißt SQL Server Integration Services (SSIS) und deckt neben den klassischen Aufgaben im ETL Bereich auch weitere Bereiche wie zum Beispiel die Erstellung von einfachen „Workflows“ und die Automatisierung von SQL Server Wartungsaufgaben ab. Betrachtet man nun Integrationsaufgaben in Bezug auf die Beschaffenheit der zu übertragenden Daten, so lassen sich diese Aufgaben grob in zwei Kategorien einteilen: nachrichtenbasierende und datenzentrierte Integrationen. Nachrichten basierend (Messaging) Daten-Integration Übertragung und Umformung von Nachrichten um Vorgänge auszulösen Kopieren und Umformen von Daten Senden, Empfangen und Verarbeiten „Bewegen“ von Daten Konzeptionell „kleine Häppchen“ Konzeptionell „große Brocken“ Applikationsabhängig Applikationsunabhängig AKTIV PASSIV Heterogene Systeme/Plattformen Heterogene Schemas (Strukturen) Andreas Winterer Page xxix Die erste Kategorie wird auch als „Messaging“ bezeichnet. Der BizTalk Server eignet sich für Aufgabenstellungen, die vorwiegend Eigenschaften aus der Nachrichten basierenden Kategorie aufweisen, während SSIS ein Vertreter der reinen Datenintegrationskategorie ist. Die folgende Tabelle ordnet Microsoft Produkte bzw. Technologien den beiden Kategorien zu: Produkte/Technologien Nachrichten basierend (Messaging) Daten-Integration MSMQ (Microsoft Message Queuing) SSIS (SQL Server Integration Services) WCF (Windows Communication Foundation) SQL Replication BizTalk Server SQL Service Broker 5.2 Abgrenzung des BizTalk Servers zu Windows Server AppFabric 5.2.1 Einführung in Windows Server AppFabric Hosting Im Kapitel „Gesamtarchitektur und Module des BizTalk Servers“ dieses Dokuments wird unter anderem die Laufzeitumgebung des BizTalk Servers dargestellt. Diese Laufzeitumgebung ist eine äußerst robuste und mit vielen Features (Tracking, Persistenz, Monitoring, etc.) ausgestatte Hosting Umgebung für BizTalk Lösungen. Sollen jedoch auf Basis von WF (Workflow Fondation) und/oder WCF (Windows Communication Foundation) Lösungen entwickelt werden, fehlte bislang diese Hosting Umgebung. Diese Lücke wird durch Windows Server AppFabric Hosting geschlossen. Bei Windows Server AppFabric Hosting handelt es sich um Infrastrukturkomponenten, die den Windows Server 2008R2 ergänzen und auf die Internet Information Services und SQL Server aufbauen. Andreas Winterer Page xxx 5.2.2 Komponenten von Windows Server AppFabric Hosting AppFabric Extensions Die Management Konsole des IIS wird durch die AppFabric Extensions um WCF Konfigurationsoptionen erweitert. Bisher mussten WCF Konfigurationen mit dem WCF Service Configuration Editor gemacht werden, was weder für Administratoren noch für Entwickler wirklich komfortabel war. AppFabric Dashboard Um im laufenden Betrieb einen schnellen Überblick über alle laufenden Prozesse und deren Status zu bekommen, wurde das AppFabric Dashbord geschaffen. Andreas Winterer Page xxxi Persistence Store Eine Workflow Instanz kann unter Umständen einen sehr langen Lebenszyklus haben. An dieser Stelle wird oft das Beispiel des WebShops genannt, wo der Einkaufsprozess samt zugehörigem Warenkorb als Workflow in WF implementiert ist. Wenn der Anwender seinen Einkauf im WebShop unterbricht und zum Beispiel erst am nächsten Tag zum WebShop zurückkehrt, ist es mit dem Persistence Store möglich, eine skalierbare Applikation zu entwickeln, da der Einkaufskorb und der Zustand des Workflows nicht die ganze Zeit im Speicher des Servers gehalten werden muss (abgesehen von der Tatsache, dass im Falle einer sehr langen Unterbrechung wie im vorliegenden Beispiel ein Halten des State im Hauptspeicher wohl kaum praktikabel wäre). Prinzipiell war es schon immer möglich einen Persistence Store für WF einzurichten. Mit Windows Server AppFabric wird jedoch sowohl das Einrichten als auch die Verwaltung des Persistence Stores wesentlich vereinfacht. Monitoring Database Die Monitoring Datenbank stellt die Datenbasis für das AppFabric Dashbord dar. Da jedoch das detaillierte Aufzeichnen von Events während der Ausführung von Services einen gewissen Performance Overhead darstellt, bleibt es dem Administrator überlassen, mit welcher Granularität (Level) Events in der Monitoring Datenbank aufgezeichnet werden. Levels für das Monitoring: - Troubleshooting (für die Diagnose von Problemen und zum „Debugging“) End-to-End Monitoring Healh Monitoring (Default für den Normalbetrieb) Errors only (Service Events sind nicht im Dashbord sichtbar) Off Andreas Winterer Page xxxii 5.2.3 BizTalk oder Windows Server AppFabric? Vergleicht man nun die Funktionalitäten von BizTalk und Windows Server AppFabric, ergeben sich einige Parallelen und es stellt sich die Frage, ob nun der kostenpflichtige BizTalk Server oder doch das „kostenlose“ AppFabric zum Einsatz kommen sollen. Die folgende Tabelle stellt die Features beider Lösungsoptionen gegenüber: Feature BizTalk Server Windows Server AppFabric Workflow Engine/Orchestration Business Rules Engine Business Activity Monitoring EAI & B2B Design Tools (EDIFACT, X12, SWIFT, etc.) Monitoring Database Failover Infrastructure Mapping Tools Adapter für LOB Systeme (SAP, Dynamics) Adapter für Hostsysteme Puplish and Subscribe Architektur BPM Tools Conclusio Wenn es darum geht, Workflows innerhalb einer Applikation abzubilden, die Kommunikation der Applikation mit anderen Applikationen rein über WebServices (SOAP, WCF) erfolgt und eine komplexe regelbasierte Steuerung des Prozesses nicht erforderlich ist, dann ist die Implementierung mit WF, WCF und das Hosting in Windows Server AppFabric sicher eine gute Option. Wenn die Lösung jedoch eine oder mehrere der folgenden Anforderungen erfüllen soll, dann ist der BizTalk Server trotz der einzukalkulierenden Lizenzkosten zumeist die günstigere Alternative. Anforderungen die den Einsatz von BizTalk indizieren: - B2B Applikationen Datenformate wie EDIFACT, X12, FlatFiles, SWIFT, HL7 Integration von LOB Applikationen wie z.B. SAP R/3 Integration von Hosts Steuerung der Applikation über komplexe Regeln 5.3 Zusammenspiel von BizTalk und Windows Server AppFabric In manchen Fällen wird durch die Breite der Anforderungen an eine Applikation die Frage „AppFabric oder BizTalk?“ sich jedoch gar nicht stellen. In diesem Fall lassen sich die beiden Technologien sehr gut kombinieren. Andreas Winterer Page xxxiii 5.3.1 BizTalk Server 2013 AppFabric Connect Das mit BizTalk Server 2013 eingeführte Feature „AppFabric Connect“ ermöglicht es zwei Lücken in WF und WCF zu schließen: - Fehlende LOB Adapter Fehlendes Mapping Werkzeug AppFabric Connect erlaubt es, den BizTalk Mapper sowie alle Adapter aus dem BizTalk Adapter Pack in WF Applikationen zu nutzen. Andreas Winterer Page xxxiv 6 INTEGRATION IM CLOUD-COMPUTING ZEITALTER Durch die immer stärkere Verbreitung von Cloud basierenden Lösungen entstehen neue Herausforderungen im Bereich der Integration von On-Premises und in der Cloud gehosteten Applikationen. Das folgende Bild zeigt ein typisches Szenario. Ein Unternehmen plant die Bereitstellung einer neuen Web-Applikation, welche in Windows Azure gehostet werden soll. Die Web-Applikation konsumiert „Composite Services“, welche sich aus SAP R/3 Funktionalitäten und den Services einer SQL Server basierenden Applikation zusammensetzen. Zusätzlich soll es Partnern des Unternehmens ermöglicht werden, ebenfalls die Composite Services zu konsumieren. Folgende Aufgabenstellungen und Herausforderungen sind zu lösen: - Konfigurationsänderungen an den Firewalls Management der Endpoints Erstellen der Composite Services o Zugriff auf die SAP R/3 Daten und Prozesse Mit folgenden Produkten und Technologien von Microsoft lässt sich eine Lösung für das Szenario aufbauen: - BizTalk Server Windows Server AppFabric AppFabric Connect AppFabric Connect for Azure Windows Azure AppFabric Service Bus Andreas Winterer Page xxxv Das folgende Bild zeigt die Lösungsarchitektur im Überblick. Composite Services Die Composite Services werden mit BizTalk Server, der in diesem Fall als Enterprise Service Bus zum Einsatz kommt, implementiert. Endpoints Die Endpoints der Composite Services werden in Windows Server AppFabric gehostet und bauen die Verbindung zum Azure AppFabric Service Bus auf. Da die Verbindung von den On Premises gehosteten Endpoints zum Azure AppFabric Service Bus von innen nach außen (Outbound) erfolgen, sind keine Änderungen an der Firewall notwendig. Clients Die Clients welche die Services konsumieren, verbinden sich zum Azure AppFabric Service Bus und benötigen somit keine direkte Verbindung in das Netzwerk des eigentlichen „Service Providers“. Andreas Winterer Page xxxvi 7 ZUSAMMENFASSUNG BizTalk Server 2013 ist ein Produkt, welches Unternehmen dabei unterstützt Geschäftsprozesse zu automatisieren, die über verschiedene Applikationen und Plattformen hinaus abgebildet werden müssen. Neben den Kernmodulen Messaging und Orchestration bringt das Produkt noch eine sehr mächtige Business Rules Engine mit und verfügt mit Business Activity Monitoring über ein Modul das Anwendern Einblick in laufende Prozesse gibt. Die Unterstützung für EDIFACT, das RFID Modul und Enterprise Single Sign On runden die Fähigkeiten des Produktes ab. Ausgehend von seinen Wurzeln in den Bereichen EAI und B2BI hat sich der BizTalk Server in seiner aktuellen Version zu einer umfassenden BPM und SOA Plattform entwickelt, welche auch Lösungen für aktuelle Herausforderungen bietet, die sich im Zuge der immer stärkeren Bedeutung von Cloud Computing ergeben. Über den Autor Andreas Winterer ist Gründer und Geschäftsführer der AURIS-CONSULT Enterprise Solutions GmbH und beschäftigt sich seit dem Jahr 2001 schwerpunktmäßig mit dem Thema Business Process Management auf der Microsoft Plattform. Als Senior Consultant bei Microsoft Consulting Services hatte er die Gelegenheit bei vielen Projekten Erfahrung mit dem Design, dem Performancetuning sowie der Hochverfügbarkeit von BizTalk Implementierungen zu sammeln. Vor dem Wechsel zu Microsoft hat Andreas Winterer sieben Jahre als Consultant im SAP Bereich gearbeitet. Er gibt sein Wissen als Trainer weiter und hält regelmäßig Vorträge bei verschiedenen IT-Konferenzen wie zum Beispiel der BASTA! (www.basta.net) und bei Veranstaltungen von Microsoft. Andreas Winterer Page xxxvii