In any BizTalk solution, there is an element of conditional logic. Many of these solutions effectively implement a form of business logic in a programming language such as C#.
When this business logic is subject to change or when the owners of such business rules want to have control to make changes on their own terms, the Rules Engine can be a very powerful technology, as it enables the business logic to be abstracted from the code.
BizTalk Server 2004 introduced the Business Rules Engine (BRE), which introduced no major changes for the 2006 release. The BRE is a standard forward-inferencing rules engine that implements the Rete algorithm. (We cover what this really means in Chapter 7.)
Nontechnical business users can define rules using the Business Rule Composer. Within this graphical user interface (GUI) tool they can define policies — a concept used to group multiple rules together. These rules will each rely on any combination of data source; valid data sources are XML documents, SQL Server database tables/rows, or .NET classes.
Data sources present a problem for business users, because they won't know where data they rely on to evaluate a rule exists and how to get hold of it. Imagine, for example, a user writing an XPath statement! To avoid this, the BRE uses what are known as vocabularies, which enable developers to map business-friendly names onto the underlying data. Business users can simply drag the logical data item onto their rule without knowing ...