Definieren von GeschäftsprozessenDefining Business Processes

Der Austausch von Nachrichten zwischen verschiedenen Systemen ist ein wichtiger Bestandteil Beheben der Probleme, die BizTalk ServerBizTalk Server Adressen.The exchange of messages between different systems is a necessary part of solving the problems that BizTalk ServerBizTalk Server addresses. Das wahre Ziel ist jedoch zum Definieren und Ausführen von Geschäftsprozessen basierend auf den Anwendungen.The real goal, however, is to define and execute business processes based on the applications. Die BizTalk ServerBizTalk Server -Engine verwendet Orchestrierungen zum Definieren der Logik dieser Geschäftsprozesse.The BizTalk ServerBizTalk Server engine uses orchestrations to define the logic of these business processes. Zum Erstellen und Auswerten von Gruppen von Geschäftsregeln, wird die Geschäftsregel-Engine verwendet.To create and evaluate groups of business rules, it uses the Business Rule Engine. Dieser Abschnitt beschreibt die Orchestrierungen und die Geschäftsregel-Engine.This section describes both orchestrations and the Business Rule Engine.

Verwenden von OrchestrierungenUsing Orchestrations

Die Logik eines automatisierten Geschäftsprozesses kann direkt in einer Sprache wie z. B. Microsoft Visual Basic oder Microsoft Visual c# implementiert werden.The logic of an automated business process can be implemented directly in a language such as Microsoft Visual Basic or Microsoft Visual C#. Erstellen, warten und Verwalten komplexer Geschäftsprozesse in konventionellen Programmiersprachen können noch eine Herausforderung darstellen.Yet creating, maintaining, and managing complex business processes in conventional programming languages can be challenging. Anders als die Vorgängerversionen BizTalk ServerBizTalk Server verwendet einen anderen Ansatz.Unlike its predecessors, BizTalk ServerBizTalk Server takes a different approach. Sie können Geschäftsleiter "oder" Entwickler ", um einen Geschäftsprozess grafisch dargestellt werden können.It enables business managers or developers to define a business process graphically. Auf diese Weise kann schneller als das Erstellen des Prozesses direkt in einer Programmiersprache sein, und sie macht auch den Prozess einfacher zu verstehen, erklären und zu ändern.Doing this can be faster than building the process directly in a programming language, and it also makes the process easier to understand, explain, and change. Auf diese Weise erstellte Geschäftsprozesse können auch sein, einfacher ist es möglich, einen Fakt, der von der Technologie (Business Activity Monitoring, BAM) ausgenutzt wird überwacht.Business processes built in this fashion can also be monitored more easily, a fact that is exploited by the Business Activity Monitoring (BAM) technology.

Für einen Entwickler beim Erstellen einer Orchestrierung basiert auf drei Haupttools zur Verfügung: der BizTalk-Editor zum Erstellen von XML-Schemas, BizTalk-Mapper zum Definieren von Übersetzungen zwischen diesen Schemas und der Orchestrierungs-Designer zum Angeben der Logik des Geschäfts verarbeitet.For a developer, creating an orchestration relies on three primary tools: the BizTalk Editor for creating XML schemas, the BizTalk Mapper for defining translations between those schemas, and the Orchestration Designer for specifying the logic of business processes. Alle diese Tools werden in gehostet Visual StudioVisual Studio, stellen eine konsistente Umgebung für Entwickler.All of these tools are hosted inside Visual StudioVisual Studio, providing a consistent environment for developers. In diesem Abschnitt wird beschrieben, was jedes dieser tools sowie ihr Zusammenspiel.This section describes what each of these tools does and how they work together.

Erstellen von Schemas: BizTalk-EditorCreating Schemas: The BizTalk Editor

Orchestrierungen arbeiten mit XML-Dokumenten, von die jeder zu einem XML-Schema entspricht.Orchestrations work with XML documents, each of which conforms to some XML schema. BizTalk-Editor ermöglicht Entwicklern das Definieren dieser Schemas, die im Wesentlichen die Struktur und die Typen der Informationen eines Dokuments zu definieren, verwenden die XML-Schemadefinition (XSD).The BizTalk Editor enables developers to define these schemas, which essentially define the structure and types of a document’s information, using the XML Schema Definition language (XSD).

Erstellen von XSD-rohschemas ohne Unterstützung durch Tools ist nicht einfach.Creating raw XSD schemas without some tool support is not simple. Damit dieser erforderlichen Schritt vereinfacht wird, ermöglicht BizTalk Editor Benutzern – wahrscheinlich Entwickler – Erstellen eines Schemas durch definieren seiner Elemente in einer grafischen Hierarchie.To make this necessary step more approachable, the BizTalk Editor enables users—probably developers—to build a schema by defining its elements in a graphical hierarchy. Vorhandene Schemas können auch aus Dateien oder Webdienste zugegriffen werden kann, importiert werden.Existing schemas can also be imported from either files or accessible Web services. Unabhängig von ihrer Quelle dienen Schemas als Grundlage für BizTalk-Zuordnungen.However they’re acquired, schemas are used as the basis for BizTalk maps.

Zuordnung zwischen Schemas: Der BizTalk-MapperMapping Between Schemas: The BizTalk Mapper

Eine Orchestrierung, die in der Regel einen Geschäftsprozess implementiert einige Dokumente empfängt und sendet andere.An orchestration implementing a business process typically receives some documents and sends others. Häufig ist Teil der Informationen in den empfangenen Dokumenten an die gesendeten Dokumente, die möglicherweise auf irgendeine Weise transformiert übertragen.Often, part of the information in the received documents is transferred to the sent documents, perhaps transformed in some way. Ein auftragserfüllungsprozess kann z. B. einen Auftrag für eine bestimmte Anzahl von Elementen erhalten dann zurücksenden einer Nachricht, der angibt, dass die Reihenfolge aus irgendeinem Grund abgelehnt wurde.For example, an order fulfillment process might receive an order for some number of items, then send back a message indicating that the order was declined for some reason. Informationen aus der Bestellung, wie z. B. ein Anforderungsbezeichner und die Menge sortiert, möglicherweise aus Feldern in der empfangenen bestellungsnachricht in Felder in der Ablehnungsnachricht kopiert werden.Information from the order, such as a request identifier and the quantity ordered, might be copied from fields in the received order message into fields in the rejection message. Der BizTalk-Mapper kann verwendet werden, um eine Transformation aufgerufen, eine Zuordnung aus einem Dokument in den anderen zu definieren.The BizTalk Mapper can be used to define a transformation, called a map, from one document to the other.

Zuordnung zwischen SchemasMapping Between Schemas

Wie die Abbildung oben zeigt wird jede Zuordnung angegeben, als eine grafische Korrelation zwischen zwei XML-Schemas, die eine Beziehung zwischen Elementen in diesen Schemas definiert.As the figure above shows, each map is expressed as a graphical correlation between two XML schemas that defines a relationship between elements in those schemas. Spezifikation des World Wide Web Consortium (W3C) Extensible Stylesheet Language Transformation (XSLT) als ein Standardverfahren zum Ausdrücken dieser Art von Transformationen zwischen XML-Schemas definiert und diesem Grund werden Zuordnungen BizTalk ServerBizTalk Server werden als XSLT-Transformationen implementiert.The World Wide Web Consortium (W3C) has defined the Extensible Stylesheet Language Transformation (XSLT) as a standard way to express these kinds of transformations between XML schemas, and so maps in BizTalk ServerBizTalk Server are implemented as XSLT transformations.

Die Transformation definiert, die in einer Zuordnung kann einfach sein, beispielsweise das Kopieren von Werten aus einem Dokument in ein anderes unverändert sein.The transformation defined in a map can be simple, such as copying values unchanged from one document to another. Direkte Datenkopien wie diese wird über einen Link an, die in der BizTalk-Mapper als Linie die entsprechenden Elemente im Quellschema mit ihren Gegenstücken im Zielschema angezeigt wird.Direct data copies like this are expressed using a link, which is shown in the BizTalk Mapper as a line connecting the appropriate elements in the source schema with their counterparts in the destination schema. Komplexere Transformationen sind auch möglich, die mithilfe von Funktoiden.More complex transformations are also possible using functoids. Ein Funktoid ist ein Block mit ausführbarem Code, der beliebig komplexe Zuordnungen zwischen XML-Schemas definieren kann, und wie oben gezeigt, stellt der BizTalk-Mapper diese als Feld auf die Verbindungslinie zwischen die Elementen, die transformiert werden.A functoid is a chunk of executable code that can define arbitrarily complex mappings between XML schemas, and as shown above, the BizTalk Mapper represents it as a box on the line connecting the elements being transformed. Da einige dieser Transformationen recht häufig verwendet werden BizTalk ServerBizTalk Server umfasst eine Reihe von integrierten Funktoide.Because some of those transformations are fairly common, BizTalk ServerBizTalk Server includes a number of built-in functoids. Diese integrierten Funktoide sind in Kategorien gruppiert, darunter die folgenden:These built-in functoids are grouped into categories, which include the following:

  • Mathematische Funktoide, die Vorgänge wie z. B. hinzufügen, multiplizieren, Dividieren der Werte von Feldern im Quelldokument und das Ergebnis in einem Feld im Zieldokument speichern.Mathematical functoids that perform operations such as adding, multiplying, and dividing the values of fields in the source document and storing the result in a field in the target document.

  • Konvertierungsfunktoide, die einen numerischen Wert in seine ASCII-Gegenstück und umgekehrt zu konvertieren.Conversion functoids that convert a numeric value to its ASCII equivalent and vice-versa.

  • Logische Funktoide, die verwendet werden kann, um festzustellen, ob ein Element oder Attribut sollte im Zieldokument basierend auf einem logischen Vergleich von angegebenen Werten im Quelldokument erstellt werden.Logical functoids that can be used to determine whether an element or attribute should be created in the target document based on a logical comparison between specified values in the source document. Diese Werte können für gleich, größer als/kleiner als oder auf andere Weise verglichen werden.Those values can be compared for equality, greater than/less than, and in other ways.

  • Kumulative Funktoide, die Durchschnittswerte, Summen oder andere Werte aus verschiedenen Feldern im Quelldokument zu berechnen, und klicken Sie dann das Ergebnis in einem einzelnen Feld im Zieldokument speichern.Cumulative functoids that compute averages, sums, or other values from various fields in the source document, then store the result in a single field in the target document.

  • Datenbankfunktoide, die in einer Datenbank gespeicherte Informationen zugreifen können.Database functoids that can access information stored in a database.

    Es ist auch möglich, benutzerdefinierte Funktoide direkt in XSLT oder mithilfe von erstellen. NET-fähige Sprachen wie Visual C# und Visual Basic.It is also possible to create custom functoids directly in XSLT or using .NET-enabled languages like Visual C# and Visual Basic. Funktoide vom Typ kann auch in Sequenzen kombiniert werden, wobei die Ausgabe des Eingaben einer anderen.Functoids can also be combined in sequences, cascading the output of one into the input of another.

    Es ist wichtig, dass Sie eine Möglichkeit zum Definieren von eines Dokuments XML-Schema als auch einen Mechanismus für die Zuordnungsinformationen für Dokumente mit unterschiedlichen Schemas verfügen.It is essential that you have a way to define a document’s XML schema, as well as a mechanism for mapping information across documents with different schemas. Die BizTalk-Editor und BizTalk-Mapper lösen diese beiden Probleme.The BizTalk Editor and BizTalk Mapper address these two problems. Definieren von Schemas und Zuordnungen noch ist nur ein Teil des Prozesses.Yet defining schemas and maps is only part of the process. Sie müssen auch die Geschäftslogik angeben, die die Schemas und die Zuordnungen aufruft.You must also specify the business logic that will use the schemas and invoke the maps.

Definieren von Geschäftslogik: Der Orchestrierungs-DesignerDefining Business Logic: The Orchestration Designer

Ein Geschäftsprozess handelt es sich um eine Reihe von Aktionen, die zusammen eine sinnvolle geschäftsanforderung erfüllen.A business process is a set of actions that together meet some useful business need. Mit BizTalk ServerBizTalk Server, Entwickler können den Orchestrierungs-Designer zum grafischen definieren dieser Aktionen.With BizTalk ServerBizTalk Server, a developer can use the Orchestration Designer to define these actions graphically. Anstelle von Ausdrücken, die Schritte in einer Programmiersprache, kann ein Entwickler eine Orchestrierung erstellen, indem eine Reihe von Formen auf logische Weise verbinden.Instead of expressing the steps in some programming language, a developer can create an orchestration by connecting together a series of shapes in a logical way. Die Formen im Orchestrierungs-Designer verfügbar sind:The shapes available in the Orchestration Designer include:

  • Die Form "empfangen", die die Orchestrierung zum Empfangen von Nachrichten ermöglicht.The Receive shape, which allows the orchestration to receive messages. Eine Form "empfangen" haben einen Filter, der die Nachrichtentypen definiert, die empfangen werden, und es kann auch um eine neue Instanz einer Orchestrierung zu starten, wenn eine neue Nachricht eintrifft konfiguriert werden.A Receive shape can have a filter that defines the types of messages that will be received, and it can also be configured to start a new instance of an orchestration when a new message arrives.

  • Die Form "Senden", die die Orchestrierung zum Senden von Nachrichten ermöglicht.The Send shape, which allows the orchestration to send messages.

  • Die Anschluss-Form, die definiert, wie Nachrichten übertragen werden.The Port shape, which defines how messages are transmitted. Jede Instanz von einer Form "Port" ist mit einem senden oder empfangen-Form verbunden.Each instance of a Port shape is connected to either a Send or Receive shape. Jeder Port verfügt ebenfalls über einen Typ, der Dinge wie z. B. die Arten von Meldungen definiert, die der Port empfangen kann. eine Richtung, z. B. das Senden oder empfangen; und eine Bindung, die bestimmt, wie eine Nachricht gesendet oder Empfangen von, z. B. Angeben einer bestimmten URL und andere Informationen.Each port also has a type, which defines things such as the kinds of messages the port can receive; a direction, such as send or receive; and a binding, which determines how a message is sent or received by, for example, specifying a particular URL and other information.

  • Die Form "Entscheidung", die eine If-Then-else-Anweisung darstellt, die eine Orchestrierung verschiedene Aufgaben, die basierend auf wahrheitsbedingungen ausführen zu können.The Decide shape, which represents an if-then-else statement that allows an orchestration to perform different tasks based on Boolean conditions. Ein Ausdrucks-Editor, einen Teil des Orchestrierungs-Designer kann zum Angeben dieser bedingungsanweisung verwendet werden.An Expression Editor, part of the Orchestration Designer, can be used to specify this conditional statement.

  • Die Form "Schleife", die steuert, die wiederholte Ausführung einer Aktion, während eine Bedingung wahr ist.The Loop shape, which controls the repeated performing of an action while some condition is true.

  • Der Form Nachricht erstellen, die ermöglicht, eine Nachricht zu erstellen.The Construct Message shape, which allows building a message.

  • Die Form Transformation, die die Übertragung von Informationen von einem Dokument in ein anderes sowie das Transformieren von Aufrufen mit BizTalk-Mapper definierte Zuordnungen ermöglicht.The Transform shape, which allows the transfer of information from one document to another, and transforming it by invoking maps defined with the BizTalk Mapper.

  • Die Parallelaktionen-Form, der ein Entwickler angeben, dass mehrere Vorgänge parallel anstatt nacheinander ausgeführt werden soll.The Parallel Actions shape, which allows a developer to specify that multiple operations should be performed in parallel rather than in sequence. Das Shape, das Anschluss wird nicht ausgeführt, bis alle parallelen Aktionen abgeschlossen sind.The shape that follows this one is not executed until all of the parallel actions have completed.

  • Die Form "Bereich", die die Gruppierung von Vorgängen zu Transaktionen und Definieren von ausnahmehandlern für die Fehlerbehandlung zulässt.The Scope shape, which allows the grouping of operations into transactions and defining exception handlers for error handling. Sowohl traditionelle atomare Transaktionen und lang ausgeführte Transaktionen werden unterstützt.Both traditional atomic transactions and long-running transactions are supported. Im Gegensatz zu atomaren Transaktionen nutzen lang ausgeführte Transaktionen kompensierende Programmlogik anstelle von Rollback auf unerwartete Ereignisse zu verarbeiten.Unlike atomic transactions, long-running transactions rely on compensating logic rather than rollback to handle unexpected events.

  • Die Form "Nachrichtenzuweisung", wodurch Zuweisen von Werten zu Orchestrierungsvariablen.The Message Assignment shape, which allows assigning values to orchestration variables. Diese Variablen dienen zum Speichern von Zustandsinformationen, die von der Orchestrierung, z. B. eine Nachricht erstellt wird oder eine Zeichenfolge verwendet.These variables can be used to store state information used by the orchestration, such as a message being created or a character string.

    Die folgende Abbildung zeigt eine Orchestrierung im Orchestrierungs-Designer erstellt und mit einigen dieser Formen.The figure below shows an orchestration created in the Orchestration Designer using a few of these shapes. In diesem einfachen Beispiel eine Nachricht empfangen wird, wird entschieden basierend auf dem Inhalt der Nachricht und einer von zwei Pfaden als Ergebnis dieser Entscheidung ausgeführt wird.In this simple example, a message is received, a decision is made based on the content of that message, and one of two paths is executed as a result of that decision. Orchestrierungen, die echte Probleme lösen können erheblich komplexer als dieses werden; Wenn Sie diesen komplexeren Diagrammen einfacher zusammenarbeiten können, enthält der Orchestrierungs-Designer die Möglichkeit zum Vergrößern und verkleinern. Entwickler können nur die Teile einer Orchestrierung anzeigen, denen sie zurzeit interessiert sind.Orchestrations that solve real problems can be significantly more complex than this; to make these more complex diagrams easier to work with, the Orchestration Designer includes the ability to zoom in and out. Developers can view only those parts of an orchestration that they are currently interested in.

    Nachdem ein Entwickler eine Orchestrierung definiert hat, wird die Gruppe von Formen und die Beziehungen zwischen ihnen in der Microsoft Intermediate Language (MSIL) verwendet, durch die .NET Framework Common Language Runtime (CLR) konvertiert.After a developer has defined an orchestration, the group of shapes and relations between them is converted into the Microsoft Intermediate Language (MSIL) used by the .NET Framework’s Common Language Runtime (CLR). Letztlich wird die Gruppe der von einem BizTalk Server-Entwickler definierten Formen nur ein standardmäßiges. NET-fähigen Assembly.Ultimately, the group of shapes defined by a BizTalk Server developer becomes just a standard .NET-enabled assembly. Sie können auch expliziten Code an eine Orchestrierung, die bei Bedarf hinzufügen, durch den Aufruf einer COM oder .NET Objekt aus einer Form.You can also add explicit code to an orchestration when necessary by calling a COM or .NET object from inside a shape.

Die Rolle der WebdiensteThe Role of Web Services

Webdienste ermöglichen es Anwendungen, die exchange-XML-Dokumenten mithilfe von SOAP und erhebliche Auswirkungen auf Integrationsplattformen hatten.Web services allow applications to exchange XML documents using SOAP, and have had a significant impact on integration platforms. Um einen externen Webdienst zuzugreifen, kann Ersteller von einer Orchestrierung verwenden Sie die Option Webverweis hinzufügen in Visual StudioVisual Studio zusammen mit der Web Services-Adapter, um Vorgänge direkt aufzurufen.To access an external Web service, an orchestration’s creator can use the Add Web Reference option in Visual StudioVisual Studio along with the Web Services adapter to directly invoke operations. Auf ähnliche Weise BizTalk ServerBizTalk Server bietet einen Webdienstpublishing-Assistenten, der ein ASP.NET-Webdienstprojekt verfügbar machen, eine oder mehrere der Vorgang von einer Orchestrierung als SOAP aufrufbare Webdienste generieren kann.Similarly, BizTalk ServerBizTalk Server provides a Web Services Publishing wizard that can generate an ASP.NET Web service project exposing one or more of an orchestration’s operations as SOAP-callable Web services. Diese beiden Optionen können Entwickler sowohl vorhandene Webdienste aus einem Geschäftsprozess zugreifen und die Funktionen einer Orchestrierung als Webdienst für andere Geschäftsprozesse bereitstellen.These two options allow developers to both access existing Web services from within a business process and expose an orchestration’s functionality as a Web service to other business processes.

  • Der Aufstieg von Webdiensten wirkt sich auch auf, wie Geschäftsprozesse definiert werden.The rise of Web services also has an impact on how business processes are defined. Z. B. der Fall überlegen, zwei Organisationen interagieren mithilfe von Webdiensten.For example, think about the case where two organizations interact using Web services. Damit die Zusammenarbeit effektiv, kann es erforderlich sein für jede Partei, die an Interaktion etwas über den Geschäftsprozess zu kennen, die die andere verwendet wird.To interoperate effectively, it might be necessary for each party to the interaction to know something about the business process the other is using. Wenn beide Organisationen verwenden BizTalk ServerBizTalk Server, dies ist ein großes Problem nicht; Tools wie z. B. die Handelspartner-verwaltungstechnologie können zur Verbreitung dieses Wissens verwendet werden.If both organizations use BizTalk ServerBizTalk Server, this isn’t a big problem; tools such as the Trading Partner Management technology can be used to distribute this knowledge. Aber was geschieht, wenn sie verschiedene Produkte verwenden?But what if they use different products? Für diesen Fällen ist es sinnvoll, eine Möglichkeit, die verschiedenen Aspekte der Geschäftsprozesse in ein nicht herstellerspezifisches Verfahren beschrieben.For cases like this, it is useful to have a way to describe aspects of business processes in a non-vendor specific way.

    Um dies zu ermöglichen, haben Microsoft, IBM und anderen Business Process Execution Language (BPEL) erstellt.To allow this, Microsoft, IBM, and others have created the Business Process Execution Language (BPEL). Ein Geschäftsprozess definiert, mit dem Orchestrierungs-Designer kann in BPEL, exportiert werden und BizTalk ServerBizTalk Server können auch in BPEL definierte Prozesse importieren.A business process defined using the Orchestration Designer can be exported to BPEL, and BizTalk ServerBizTalk Server can also import processes defined in BPEL. Obwohl die Sprache zum Beschreiben und gemeinsamen äußerlich sichtbare Teilen des Geschäftsprozesses sinnvoll ist, BPEL mehr konzentriert sich lösen dieses Problems als auf plattformübergreifende Ausführung vollständiger Geschäftsprozesse.While the language is useful for describing and sharing externally visible parts of a business process, BPEL is focused more on solving this problem than on cross-platform execution of complete business processes. Es ist auch wichtig um zu verstehen, dass BPEL vollständig auf Webdiensten basiert, während er sich BizTalk ServerBizTalk Server und geben Sie weitere andere Produkte, die diese Sprache unterstützt.It’s also important to understand that BPEL is built entirely on Web services, while BizTalk ServerBizTalk Server and other products that support this language provide more. Z. B. BizTalk ServerBizTalk Server unterstützt die Zuordnung zwischen verschiedenen XML-Schemas, das Aufrufen von Methoden in lokalen Objekten und anderen Features, die in BPEL nicht verfügbar sind.For example, BizTalk ServerBizTalk Server supports mapping between different XML schemas, calling methods in local objects, and other features that aren’t available in BPEL. Für diesen und anderen Gründen ist BPEL keine vollständige Sprache zum Definieren von Geschäftsprozessen.For these and other reasons, BPEL isn’t a complete language for defining business processes. Und da sich BPEL außerdem noch im Standardisierungsprozess von der Organisation für die Weiterentwicklung von Structured Information Standards (OASIS), es ist schwierig, die sie heute als ausgereifte Technologie anzeigen.And given that BPEL is still in the process of being standardized by the Organization for the Advancement of Structured Information Standards (OASIS), it’s hard to view it today as a fully mature technology.

  • Orchestrierungen sind der grundlegende Mechanismus zum Erstellen von Geschäftsprozessen in BizTalk Server.Orchestrations are the fundamental mechanism for creating business processes in BizTalk Server. Einige Aspekte einer Orchestrierung tendenziell häufiger als andere, jedoch ändern.Some aspects of an orchestration tend to change more often than others, however. Insbesondere die Entscheidungen, die eingebettet in einem Geschäftsprozess – die Geschäftsregeln – sind häufig sein unbeständigster Aspekt.In particular, the decisions embedded in a business process—the business rules—are commonly its most volatile aspect. Ausgabengrenze eines Managers wurde $ und 100.000 $ letzte Woche, aber Zahlungsmoral bis zu 500.000 USD oder einen Kunden mit schlechter des maximal zulässigen Reihenfolge sinkt von 100 Einheiten auf 10.A manager’s spending limit was $100,000 last week, but her promotion bumps this up to $500,000, or a slow-paying customer’s maximum allowed order decreases from 100 units to only 10. Sie können angeben, und aktualisieren diese Regeln mithilfe der Geschäftsregel-Engine.You can specify and update these rules using the Business Rule Engine.

Verwenden die Geschäftsregel-EngineUsing the Business Rule Engine

Die Orchestrierungs-Designer zusammen mit den BizTalk-Editor und BizTalk-Mapper bieten eine effektive Möglichkeit zum Definieren eines Geschäftsprozesses und der darin verwendeten Regeln.The Orchestration Designer, together with the BizTalk Editor and the BizTalk Mapper, provide an effective way to define a business process and the rules it uses. Es kann jedoch nützlich, sein, um eine einfachere Möglichkeit zum Definieren und Ändern von Geschäftsregeln zu erhalten.It can be useful, however, to have an easier way to define and change business rules. Zu diesem Zweck stellt BizTalk Server (Business Rule Engine, BRE) bereit.To allow this, BizTalk Server provides the Business Rule Engine (BRE). Entwickler verwenden clientbereitstellungsansichten zumeist die Geschäftsregel-Engine, aber weitere geschäftsorientiertere Benutzer erstellen und Ändern von Geschäftsregeln, die mithilfe eines Tools namens Geschäftsregelersteller können.Developers will most often use the BRE, but more business-oriented users can create and modify sets of business rules using a tool called the Business Rule Composer.

Eine Situation, in denen die Geschäftsregel-Engine nützlich ist, ist bei der eine komplexe Sammlung von Geschäftsregeln ausgewertet werden muss.One situation in which the BRE is useful is when a complex set of business rules must be evaluated. Entscheiden, ob Sie die Gewährung eines Darlehens kann z. B. arbeiten, einen Satz von Regeln basierend auf der Kreditwürdigkeit des Kunden, Einkommen und anderen Faktoren gelten.Deciding whether to grant a loan, for example, might entail working through a large set of rules based on the customer’s credit history, income, and other factors. Auf ähnliche Weise bestimmt wird, ob eine Reihe von Faktoren, einschließlich Alter, Geschlecht und Integrität des Antragstellers Life Insurance an einen Antragsteller verkaufen abhängt.Similarly, determining whether to sell life insurance to an applicant depends on a number of things, including the applicant’s age, gender, and health. Ausdrücken alle diese Regeln als bedingte Anweisungen, sind z. B. eine Orchestrierung die Form "Entscheidung" eventuell möglich allerdings recht komplex, um zu implementieren.Expressing all of these rules as conditional statements using, say, an orchestration’s Decide shape might be possible, but would be fairly complex to implement. Für regelintensive Prozesse wie diesen kann das Geschäftsregelmodul Entwicklern das Leben vereinfachen.For rule-intensive processes like these, the BRE can make a developer’s life simpler.

Mithilfe des Geschäftsregelmoduls können Entwickler schnell und problemlos Regeln ändern, je nach Bedarf.Using the BRE, developers can quickly and easily change rules as needed. Überlegen Sie sich um Warum sehen, was erforderlich ist, so ändern Sie eine Geschäftsregel, die in einer Orchestrierung implementiert wird.To see why, think about what’s required to change a business rule that’s implemented within an orchestration. Ein Entwickler muss die Orchestrierung in zum ersten Mal öffnen Visual StudioVisual Studio, die jeweiligen Formen ändern (und vielleicht die .NET- oder COM-Objekte diese aufrufen), und klicken Sie dann erstellen und Bereitstellen die geänderte Assembly.A developer must first open the orchestration in Visual StudioVisual Studio, modify the appropriate shapes (and perhaps the .NET or COM objects they invoke), and then build and deploy the modified assembly. Zu diesem Zweck muss auch beenden und Neustarten der BizTalk-Anwendung, die diese Orchestrierung enthält.Doing this also requires stopping and restarting the BizTalk application that includes this orchestration. Wenn stattdessen diese Geschäftsregel implementiert wird, mithilfe des Geschäftsregelmoduls können sie ohne erneute Kompilierung oder Neustart geändert werden.If instead this business rule is implemented using the BRE, it can be modified without recompiling or restarting anything. Alles, was erforderlich ist, ändern Sie die gewünschte Regel aus, und erneutes Bereitstellen den neuen Satz von Regeln im Geschäftsregelersteller mit ist.All that’s needed is to use the Business Rule Composer to change the desired rule, then redeploy the new set of rules. Die Änderung wird sofort wirksam.The change takes effect immediately. Und während der Orchestrierungen sind in der Regel erstellt und verwaltet, die von Entwicklern, Geschäftsregeln lesbar genug, dass in einigen Fällen diese von Wirtschaftsanalytikern ohne Technisches Personal umfassen geändert werden können.And while orchestrations are typically created and maintained by developers, business rules are readable enough that in some cases they can be modified by business analysts without the need to involve more technical people.

Der Ersteller eines Satzes von Geschäftsregeln beginnt in der Regel mithilfe des Geschäftsregelerstellers ein Vokabular zur Verwendung in die Angabe dieser Regeln zu definieren.The creator of a set of business rules typically begins by using the Business Rule Composer to define a vocabulary for use in specifying those rules. Jeder Begriff des Vokabulars stellt einen benutzerfreundlichen Namen für einige Informationen bereit.Each term in the vocabulary provides a user-friendly name for some information. Ein Vokabular kann z. B. Bedingungen wie z. B. Anzahl versandt oder maximale Menge von Elementen oder Genehmigungsgrenzwert definieren.For example, a vocabulary might define terms such as Number Shipped or Maximum Quantity of Items or Approval Limit. Jeder dieser Begriffe kann auf eine Konstante festgelegt werden, oder um ein bestimmtes Element oder Attribut in einem XML-Schema (und daher in einer eingehenden Nachricht) oder auf das Ergebnis einer SQL-Abfrage für eine Datenbank oder sogar einen Wert in einem .NET-Objekt zugeordnet werden.Each of these terms can be set to a constant or be mapped to a particular element or attribute in some XML schema (and thus in an incoming message) or to the result of a SQL query against some database or even to a value in a .NET object.

Nachdem ein Vokabular definiert wurde, kann der Geschäftsregelersteller verwendet werden, um Business-Richtlinien zu erstellen, die dieses Vokabular verwenden.After a vocabulary has been defined, the Business Rule Composer can be used to create business policies that use this vocabulary. Jede Richtlinie kann eine oder mehrere Geschäftsregeln enthalten.Each policy can contain one or more business rules. Eine Regel verwendet die definierten im Vokabular zusammen mit logischen Operatoren wie größer als, kleiner als, gleich und andere Begriffe definieren, wie ein Geschäftsprozess arbeitet.A rule uses the terms defined in some vocabulary together with logical operators such as Greater Than, Less Than, Is Equal To, and others to define how a business process operates. Eine Geschäftsregel kann Werte in einem empfangenen XML-Dokument Auswirkungen sollten die Werte in einem XML-Dokument, das gesendet wird erstellt, oder wie diese empfangenen Werte beeinflussen, welcher Wert in einer Datenbank oder andere Dinge geschrieben ist.A business rule can define how values contained in a received XML document should affect the values created in an XML document that’s sent, or how those received values should affect what value is written in a database, or other things.

Zum Ausführen einer Geschäftsrichtlinie verwendet eine Orchestrierung eine Form "CallRules".To execute a business policy, an orchestration uses a CallRules shape. Diese Form erstellt eine Instanz des Geschäftsregelmoduls, gibt an, welche Richtlinie ausgeführt werden, dann übergibt die Informationen, die diese Richtlinie, z. B. ein empfangenes XML-Dokument muss.This shape creates an instance of the BRE, specifies which policy to execute, then passes in the information this policy needs, such as a received XML document. Die Geschäftsregel-Engine kann auch programmgesteuert mithilfe von aufgerufen werden ein. NET-basierten Objektmodell, das von Anwendungen aufgerufen werden, die nicht verwenden kann BizTalk ServerBizTalk Server.The BRE can also be invoked programmatically using a .NET-based object model, which allows it to be called from applications that don’t use BizTalk ServerBizTalk Server. Dies bedeutet, dass, Windows Forms-Anwendungen, Software, die Webdienste bereitstellt und alle anderen basiert auf .NET Framework das Geschäftsregelmodul potenziell verwenden können, wenn dadurch das vorliegende Problem zu lösen.This means that Windows Forms applications, software exposing Web services, and anything else built on the .NET Framework can potentially use the BRE whenever it helps solve the problem at hand.

Vokabulare und Geschäftsregeln können wesentlich komplizierter werden – und leistungsfähiger, als die einfachen Beispiele, die hier beschriebenen.Both vocabularies and business rules can be much more complicated—and much more powerful—than the simple examples described here. Aber die Kernidee, ein Vokabular zu definieren, und definieren Regeln, die dieses Vokabular verwenden, ist das Herzstück der Geschäftsregel-Engine.But the core idea of defining a vocabulary, then defining sets of rules that use that vocabulary is the heart of the Business Rule Engine.

Siehe auchSee Also

Die BizTalk Server-Messaging-EngineThe BizTalk Server Messaging Engine