Geschäftsaktivitätsüberwachung (BAM)

Das folgende Diagramm veranschaulicht die Architektur für die Geschäftsaktivitätsüberwachung (Business Activity Monitoring, BAM).

Abbildung, die die Architektur für das Feature Zur Überwachung von Geschäftsaktivitäten (BUSINESS ACTIVITY MONITORING, BAM) zeigt.

Tools

Mit den folgenden Tools können Sie BizTalk-Lösungen zur Integration mit BAM entwerfen, entwickeln und bereitstellen.

  • Microsoft Excel: Das BAM-Add-In für Excel stellt eine Benutzeroberfläche bereit, die Wirtschaftsanalytiker durch den Prozess des Erstellens von Ansichten und Aktivitäten führt. Excel dient zum einen als Designtool für Wirtschaftsanalytiker und zum anderen als Datennutzungstool für Geschäftsbenutzer. Weitere Informationen zum BAM-Add-In für Excel finden Sie unter Anforderungen für die Verwendung des BAM-Add-In für Excel.

  • BAM-Verwaltungsprogramm. Das BAM-Verwaltungsdienstprogramm ist ein Bereitstellungstool. Es ermöglicht die Erstellung von BAM-Definitionen in Excel, die im Unternehmen bereitgestellt werden können. Das BAM-Verwaltungsdienstprogramm erstellt die erforderlichen SQL Server-Datenbanken, Analysis Services-Cubes, Datenbanken für SQL Notification Services und DTS- oder SSIS-Aufgaben (je nachdem, welche Version von SQL Server installiert ist). Weitere Informationen zum BAM-Manager finden Sie unter BAM-Verwaltungsprogramm.

  • Nachverfolgungsprofil-Editor. Mit dem Überwachungsprofil-Editor können BizTalk-Entwickler die Datenelemente, die von Wirtschaftsanalytikern definiert werden, der BizTalk-Implementierung einschließlich Orchestrierungen und Messaging zuordnen. Weitere Informationen zum Nachverfolgungsprofil-Editor finden Sie unter Nachverfolgungsprofil-Editor.

  • Hilfsprogramm für die Bereitstellung von Überwachungsprofilen. Mit dem Dienstprogramm für die Bereitstellung des Überwachungsprofils können IT-Experten neue und aktualisierte Überwachungsprofile in der BAM-Infrastruktur bereitstellen. Weitere Informationen zum Tool zum Bereitstellen von Überwachungsprofilen finden Sie unter Hilfsprogramm zur Bereitstellung von Überwachungsprofilen.

Präsentation

Die Darstellungsebene besteht aus den folgenden Elementen:

  • BAM-Portal. Das BAM-Portal in Microsoft BizTalk Server bietet End-to-End-Einblicke in einen Geschäftsprozess in Echtzeit. Es handelt sich dabei um ein webbasiertes Feature, das sich aus einer Sammlung von ASP.NET 2.0-Seiten zusammensetzt. Sie können BAM zur Steigerung der Leistung und Verbesserung der Benutzerfreundlichkeit anpassen. Weitere Informationen zum BAM-Portal finden Sie unter BAM-Portal.

  • Microsoft Excel: Das BAM-Add-In für Excel stellt eine Benutzeroberfläche bereit, die Wirtschaftsanalytiker durch den Prozess des Erstellens von Ansichten und Aktivitäten führt. Excel dient zum einen als Designtool für Wirtschaftsanalytiker und zum anderen als Datennutzungstool für Geschäftsbenutzer. Weitere Informationen zum BAM-Add-In für Excel finden Sie unter Anforderungen für die Verwendung des BAM-Add-In für Excel.

  • Benutzerdefinierte Benutzeroberfläche. ISVs (Independent Software Vendors, unabhängige Softwareanbieter) und Entwickler können benutzerdefinierte Anwendungen erstellen, die BAM-Daten anzeigen.

Verarbeitung

Die Verarbeitungsebene besteht aus den folgenden Elementen:

  • BAM-Verwaltungswebdienst. Dieser Webdienst wird von der BAM-Portalanwendung verwendet, um mit den PRIMÄREN BAM-Importtabellen (PIT) zu kommunizieren. Die Kommunikation mit der Datenbank erfolgt mithilfe von Anmeldeinformationen, bei denen eine Identität angenommen wird. Diese Anmeldeinformationen sind in der Registrierung gespeichert, die bei der Konfiguration erstellt wird. Methoden, die von diesem Webdienst verfügbar gemacht werden, können von benutzerdefinierten Clients verwendet werden, um Ansichten und ihre Details, verwandte Aktivitäten und Pivottabellenlayouts für jeden Benutzer abzurufen. Außerdem können damit Warnungen in der Datenbank verwaltet werden.

  • Event Bus . Der BAM-Ereignisbusdienst verarbeitet in einer Quelldatenbank gespeicherte Überwachungsdaten (Streams) und speichert diese Daten dauerhaft in einem Abfragetabellenformat in der Zieldatenbank.

  • SQL Notification Services. SQL Notification Services werten die Instanz- und Aggregationsbenachrichtigungen für BAM aus, die vom Geschäftsbenutzer definiert werden.

    Das folgende Diagramm veranschaulicht die physikalischen Prozesse, die der BAM-Architektur zugrunde liegen.

    Abbildung, die die zugrunde liegenden physischen Prozesse für die BAM-Architektur zeigt.

Entwurfszeitumgebung

Das folgende Diagramm veranschaulicht die Entwurfszeitumgebung.

Abbildung, die die Entwurfszeiterfahrung zeigt.

Die folgenden Schritte beschreiben den Ablauf, der in der oben stehenden Abbildung dargestellt ist.

  1. Der Überwachungsprofil-Editor nimmt an, dass BizTalk Server konfiguriert, bereits mindestens eine BAM-Definition bereitgestellt (mithilfe von BM.exe) und die Infrastruktur (einschließlich der primären Importdatenbank) erstellt wurde. Mithilfe eines Registrierungsschlüssels, der während der BizTalk-Konfiguration festgelegt wird, bestimmt der Überwachungsprofil-Editor, wo sich die Verwaltungsdatenbank befindet.

    1. BAM zählt die Aktivitäten in der primären Importdatenbank auf, nachdem diese ermittelt wurde. BizTalk-Entwickler wählen die bereitgestellten Aktivitäten aus, die aus der primären BAM-Importdatenbank entnommen werden.

    2. Der BizTalk-Entwickler ordnet dies einer physikalischen Implementierung zu, indem er die bereitgestellten Assemblys durchsucht, die aus der BizTalk-Verwaltungsdatenbank abgerufen werden.

    3. Nach Abschluss der visuellen Zuordnung zu den BizTalk-Elementen werden Metadaten an das BizTalk Server-Laufzeitmodul übertragen, um die Daten zu erfassen und zu speichern. Dies geschieht über Anmerkungen (für Messaginginformationen zum Decodieren der erfassten Daten) und das Überwachungsprofil (mit dem die Laufzeitdaten abgerufen werden).

  2. Microsoft Excel wird einerseits als Entwurfszeittool und andererseits als Datennutzungs- oder Darstellungstool verwendet. Im Entwurfszeitmodus in Excel können Benutzer eine BAM-Definition entwerfen, indem sie BAM-Aktivitäten und -Ansichten erstellen. Außerdem haben Benutzer die Möglichkeit, Pivot-Steuerelemente und Diagramme zu erstellen, die schließlich im BAM-Portal angezeigt werden.

Bereitstellung

Es gibt zwei Bereitstellungskategorien.

  • Ausbau der dynamischen Infrastruktur

  • Instrumentieren der Laufzeit zum Erfassen von Daten

    Das folgende Diagramm veranschaulicht die BAM-Bereitstellung.

    Abbildung, die die BAM-Bereitstellung zeigt.

    Die folgenden Schritte beschreiben den Ablauf, der in der oben stehenden Abbildung dargestellt ist.

  1. Mit dem BAM-Verwaltungsdienstprogramm kann die dynamische Infrastruktur ausgebaut werden. Mithilfe der BAM-Definition oder einer Excel-Entwurfszeit-Arbeitsmappe sowie der BAM-XML-Konfigurationsdatei erstellt das BAM-Verwaltungsdienstprogramm alle erforderlichen Datenbanken und die entsprechenden DTS- oder SSIS-Aufgaben, die für das Funktionieren des Systems benötigt werden.

    1. Die primäre BAM-Importdatenbank und alle unterstützenden gespeicherten Prozeduren, Trigger und DTS- oder SSIS-Aufgaben werden erstellt.

    2. Die BAM-Archivdatenbank wird definiert, jedoch bis zum Ausführen der archivierenden DTS- oder SSIS-Aufgabe nicht erstellt.

    3. Die BAM-Sternschema-Datenbank wird erstellt, wenn BAM-OLAP-Aggregationen definiert wurden. Sie können feststellen, ob Aggregationen definiert wurden, wenn die Schaltfläche Echtzeitaggregation in der Excel-Tabelle deaktiviert ist oder der CreateOlapCube in der BAM-Definition auf true festgelegt ist und die XML-Konfigurationsdatei eine Bereitstellungseinheit für AnalysisDatabase enthält.

    4. Damit ein BAM-OLAP-Cube erstellt werden kann, muss für die BAM-Definition und die XML-Konfigurationsdatei eine Aggregation definiert sein, die keine Echtzeitaggregation ist.

    5. Die Ansicht des BAM-Manager-Prozesses zeigt, dass der Notification Services-Prozess (nscontrol.exe) aufgerufen wird, um die SQL-NS-Datenbanken zu erstellen.

  2. Auf der Benutzeroberfläche des Überwachungsprofil-Editors finden Sie einen Bereitstellungsbefehl, der die Laufzeit instrumentiert, sodass Daten aus den Laufzeitsystemen überwacht und decodiert werden. In diesem Fall werden Anmerkungen in die primäre BAM-Importdatenbank gepusht (wenn Daten aus dem Messagingsystem abgerufen werden). In die BizTalk-Verwaltungsdatenbank wird ein Überwachungsprofil eingefügt, mit dessen Hilfe das BizTalk-Laufzeitmodul bestimmt, welche Daten im BAM-System veröffentlicht werden sollen.

  3. Mit dem Befehlszeilenprogramm für die Bereitstellung der BizTalk-Überwachung können Überwachungsprofile in der primären BAM-Importdatenbank und der Verwaltungsdatenbank bereitgestellt werden, ähnlich wie im Überwachungsprofil-Editor. Das Befehlszeilenprogramm verfügt jedoch nicht über Zuordnungsfunktionen.

Nutzung der Daten

Der Begriff Datennutzung bezieht sich auf den Prozess, bei dem ein Geschäftsbenutzer die von der BAM-Infrastruktur erfassten Informationen verwendet. Es wird angenommen, dass die BAM-Definition zu diesem Zeitpunkt erstellt wurde (d. h., es ist definiert, welche Daten erfasst und wie diese angezeigt werden sollen) und bereitgestellt wurde (d. h., die Infrastruktur wird dynamisch erstellt). Außerdem wird vorausgesetzt, dass die BAM-Definition der physikalischen Implementierung zugeordnet wurde (d. h., es wurde definiert, wo die Daten erfasst werden sollen, und in einigen Fällen wird Code zur Ablage im System geschrieben).

Das folgende Diagramm veranschaulicht den Prozess der Datennutzung.

Abbildung, die den Prozess der Datennutzung zeigt.

Die folgenden Schritte beschreiben den Ablauf, der in der oben stehenden Abbildung dargestellt ist.

  1. Das BAM-Portal ist in zwei Prozesse unterteilt: Internet Explorer und den BAM-Webportalprozess (der in den Internetinformationsdiensten gehostet wird).

    1. Internet Explorer verwendet den Sicherheitskontext des Geschäftsbenutzers, der eine Verbindung zur BAM-Portalwebsite herstellt. Die BAM-Portalwebsite ist eine ASPX-Anwendung, die mithilfe des BAM-Verwaltungswebdiensts Informationen erfasst.

    2. Das BAM-Portal ruft den BAM-Verwaltungswebdienst auf, um Informationen abzurufen, z. B. zu den BAM-Aktivitäten/Ansichten, die für einen bestimmten Geschäftsbenutzer sichtbar sind. Der BAM-Verwaltungswebdienst muss die Identität des Geschäftsbenutzers annehmen können. Aus diesem Grund werden BAM-Portal und Webdienst bei der Bereitstellung normalerweise auf demselben Computer gehostet.

      Hinweis

      Wenn Ihr Unternehmen Kerberos unterstützt, und wenn zur Unterstützung der Delegierung Active Directory eingerichtet ist, können Portal und Webdienst auf verschiedenen Computern gehostet werden.

    3. Der Webdienst ruft gespeicherte Prozeduren in der primären BAM-Importdatenbank auf, um Sicherheitsüberprüfungen durchzuführen und Metadaten sowie Informationen zu BAM-Echtzeitaggregationen abzurufen.

      Hinweis

      Derzeit verwendet das BAM-Portal einen nicht dokumentierten Webdienst namens Abfragewebdienst. Für diesen wird keine Unterstützung angeboten, und er wird voraussichtlich in der nächsten Version nicht mehr vorhanden sein.

    4. Internet Explorer hostet OWC (Office Web Controls) zum Herstellen direkter Verbindungen mit den BAM-Analysis Services-Cubes.

  2. Excel

Typ

Ist die BAM-Definition erstellt, die Infrastruktur ausgebaut, und hat der Entwickler die erforderlichen Systeme zur Aktivierung der Anzeige instrumentiert, können Daten durch das System fließen.

Dateneinfügung

Einer der Hauptwege, auf dem Daten in das BAM-System fließen, führt durch den BizTalk-Dienst (BTSNTSvc.exe). Die Architektur des BizTalk-Diensts ist so gestaltet, dass der Dienst logische Subsysteme enthalten kann.

Dieser Prozess wird anhand des folgenden Diagramms veranschaulicht.

Abbildung, die den Dateneinfügungsflow in das BAM-System zeigt.

Die folgenden Schritte beschreiben den Ablauf, der in der oben stehenden Abbildung dargestellt ist.

  1. Eines der Subsysteme hostet die eigentliche BizTalk Server-Engine. Die Engine ist verantwortlich für das Ausführen von Orchestrierungen und Messaging.

  2. Ein weiteres Subsystem ist der Ereignisbusdienst. Der Ereignisbusdienst ist verantwortlich für das Schreiben von "BufferedEventStream"-Daten in die primäre BAM-Importdatenbank.

Starten des Laufzeitmoduls

Wenn der BizTalk-Dienst startet, lädt jedes Subsystem Metadaten, die für das Funktionieren der Subsysteme erforderlich sind.

Dieser Prozess wird anhand des folgenden Diagramms veranschaulicht.

Abbildung, die zeigt, wie das Subsystem Metadaten lädt, die für den Betrieb der Subsysteme erforderlich sind.

Die folgenden Schritte beschreiben den Ablauf, der in der oben stehenden Abbildung dargestellt ist.

  1. Wenn die BizTalk-Engine ausgeführt wird (entweder Orchestrierungen oder Messaging), ruft es Interceptors auf, die den Datenfluss von der Engine in BAM regulieren. Wenn die Engine den Interceptor aufruft, analysiert dieser, an welcher Stelle der Ausführungsreihenfolge für die Orchestrierungs- oder Messagingelemente sich die Engine befindet. Liegen Daten vor, die von dem Speicherort, an dem die Engine derzeit ausgeführt wird, abgerufen werden müssen, erfasst der Interceptor die entsprechenden Daten. Die Metadaten, die bestimmen, welche Daten wo erfasst werden müssen, sind im Überwachungsprofil abgelegt. Beim Start des BizTalk-Diensts kontaktieren die Interceptors der Engine die BizTalk-Verwaltungsdatenbank und entnehmen das entsprechende Überwachungsprofil für die ausgeführten Elemente.

  2. Die Hauptfunktion des Ereignisbusdiensts besteht darin, Datenblobs (die von der BizTalk-Engine erstellt werden) in verwendbare Datenelemente zu konvertieren und die Daten in die primäre BAM-Importdatenbank einzufügen. Der Messaging-Interceptor schreibt die Rohdaten in einem komprimierten Format. Damit soll verhindert werden, dass ein großes Speicher-Workingset entsteht. Damit der Ereignisbusdienst Messagingdaten in verwendbare Datenelemente konvertieren kann, muss er zunächst Metadaten laden, die die Rohdaten interpretieren können. Diese Metadaten werden als Anmerkungen bezeichnet. Die Anmerkungsmetadaten wurden über den Überwachungsprofil-Editor oder das Befehlszeilenprogramm zum Bereitstellen des Überwachungsprofils abgelegt. Wenn die bereitgestellte Lösung keine Messagingdaten abruft, liegen keine Anmerkungen vor. Interceptors für Orchestrierungen codieren genügend Informationen im Rohformat, sodass der Ereignisbusdienst eine ordnungsgemäße Decodierung ohne zusätzliche Anmerkungen vornehmen kann.

Speichern von Daten

In diesem Abschnitt wird erläutert, wie Daten aus dem BizTalk-Dienst erfasst werden.

Dieser Prozess wird anhand des folgenden Diagramms veranschaulicht.

Abbildung, die zeigt, wie Daten aus dem BizTalk Service erfasst werden.

Die folgenden Schritte beschreiben den Ablauf, der in der oben stehenden Abbildung dargestellt ist.

  1. In der BizTalk-Engine gibt es (wie zuvor beschrieben) Interceptors, die während der Ausführung von Orchestrierungen und Messaginglösungen zur Laufzeit aufgerufen werden. Auf der Grundlage der Überwachungsprofilinformationen bestimmen die Interceptors, welche Daten zu erfassen sind, und senden diese Daten dann im Binärformat an die BizTalk-MessageBox. Dort sind in einer "TrackingData"-Tabelle serialisierte Blobdaten gespeichert, die zur Laufzeit erfasst wurden. Während der Verarbeitung muss die Engine mitunter Daten speichern, die sich während der Ausführung im Arbeitsspeicher befinden. Dies geschieht an den sogenannten Persistenzspeicherpunkten. Wann diese Punkte auftreten, entscheidet die Engine. An einem Persistenzspeicherpunkt werden die Daten, die von den Interceptors erfasst wurden, im Rahmen derselben Transaktion geleert und persistent gespeichert. Auf diese Weise wird die Konsistenz der Daten in der Engine sichergestellt und letztlich die Konsistenz dessen, was für BAM sichtbar ist. Tritt ein Fehler auf und für die Transaktion wird ein Rollback durchgeführt, wird auch für die entsprechenden BAM-Daten ein Rollback durchgeführt.

  2. Der Ereignisbusdienst ist im selben ausführbaren Prozess wie die Engine untergebracht. Die in den Dienst eingespeisten Daten stammen aus der "TrackingData"-Tabelle, die von der BTS-Engine gespeichert wird (oder einer beliebigen "BufferedEventStream"-Datenquelle). Die Abbildung zeigt eine Assembly – Microsoft.BizTalk.Bam.EventObservation. Diese Assembly macht keine Methode zum Abrufen der Daten aus dem BufferedEventStream verfügbar. Dieser Code befindet sich im Ereignisbusdienst selbst. Die Daten werden abgerufen und dann auf die Speicherung in der primären Importdatenbank vorbereitet. Die Binärdaten sind größtenteils serialisierte .NET-Objekte, die reaktiviert werden. Anschließend werden Eigenschaften aus dem Objekt in formatierte SQL-Anweisungen verschoben.

  3. Beim Speichern der Daten versucht der Ereignisbusdienst, einen großen Batch zu erstellen. Der Batch enthält Aufrufe für gespeicherte Prozeduren, die vom Bereitstellungstool für den BAM-Manager generiert wurden. Es ist möglich, dass die Speicherung des Batches aufgrund hoher Datenbankaktivität oder anderer Probleme im Zusammenhang mit Tabellensperren fehlschlägt. Tritt ein Fehler auf, werden zwei weitere Versuche unternommen, den Batch zu erstellen. Schlagen diese Versuche fehl, wird der Batch in kleinere Batches aufgeteilt. Daraufhin wird der Versuch wiederholt. Wenn auch dieser Versuch erfolglos bleibt, wird der Batch in die "FailedTracking"-Tabelle verschoben.

Einfügen benutzerdefinierter Daten

Im vorangegangenen Abschnitt wurde detailliert erläutert, wie BAM mithilfe verschiedener Methoden Daten aus dem BizTalk Server-Host abruft. Auf indirektem Wege geschieht dies mit dem Überwachungsprofil-Editor zum Erstellen eines Profils. Ein direkteres Verfahren ist das Anwenden der "EventStream"-Methoden direkt im Code. Nicht alle für BAM relevanten Daten sind jedoch notwendigerweise in BizTalk verfügbar. Daher steht für geschriebene benutzerdefinierte Anwendungen eine Assembly bereit.

Dieser Prozess wird anhand des folgenden Diagramms veranschaulicht.

Abbildung, die den Prozess zum Einfügen benutzerdefinierter Daten zeigt.

Die folgenden Schritte beschreiben den Ablauf, der in der oben stehenden Abbildung dargestellt ist.

  1. Die benutzerdefinierte Anwendung muss in der Lage sein, die Microsoft.BizTalk.Bam.EventObservation-Assembly zu laden, um auf die BAM-Methoden zum Einfügen von Daten in eine BAM-Aktivität zuzugreifen. Es werden zwei primäre Klassen bereitgestellt: "DirectEventStream" und "BufferedEventStream". In der oben stehenden Abbildung ist die Klasse "DirectEventStream" hervorgehoben. Diese Klasse schreibt direkt in die primäre Importdatenbank. Dies ist die gebräuchlichste Methode zum Schreiben von Daten in eine BAM-Aktivität.

  2. Ähnlich der Methode, mit der BizTalk Daten speichert, schreibt die Klasse "BufferedEventStream" Binärblobs in eine indirekte Datenbank. In diesem Fall wird die BizTalk-MessageBox als Zwischenspeicher verwendet. Welche Klasse Sie auswählen, hängt von verschiedenen Faktoren ab. Überlegungen zur Leistung sollten hierbei jedoch im Vordergrund stehen. Die Klasse "BufferedEventStream" fasst Daten in Batches zusammen und gewährleistet langfristig einen höheren Durchsatz. Der Nachteil ist, dass die Daten nicht sofort geschrieben werden.

  3. Wie bei der BizTalk-Methode zum Einfügen von Daten verarbeitet der Ereignisbusdienst die Binärdaten, decodiert sie und speichert sie schließlich in der primären BAM-Importdatenbank. Dies ist nur für Daten erforderlich, die über die Klasse "BufferedEventStream" geschrieben wurden.

Verteilte Navigation

Mit dem Feature zur verteilten Navigation im BAM-Portal können Benutzer die Beziehungen zwischen Aktivitäten über Remotegrenzen hinweg anzeigen.

Weitere Informationen

Verwaltungs- und Überwachungsarchitektur