Search code examples
c#integrationbiztalksoabiztalk-rule-engine

General questions about Biztalk


  1. What is different between Business rules engine and Orchestration?

  2. When working with Biztalk, does it focus more in drop and click then doing hard coding in C#?

  3. If coding possible, what are you coding? I understand when you are coding a function for instance a pressed button display images in an application but in Biztalk it must be different.


Solution

    1. Those two have completely different purpose.

      • Orchestration drives the process - it defines messaging choreography where you can coordinate message retrieval and sending from multiple systems and include some custom processing. The example can be orchestration which waits for Order message, transforms the message to another format and sends it to ERP system. Then dehydrates (waits serialized in database) until ERP system process the order to send some notification back.

      • Business rules engine is evaluation system. Your orchestration can need some decision making which should be controlled from outside. This is what business rule engine allows. Business user can define some complex rule sets including rules like: if Order.Price > 10.000 set Order.Price = Order.Price * 0,95. Such rules can be chained and injected to existing processes.

    2. BizTalk is about developing biztalk project and about configuring everything correctly but it still includes programming. First what you should be aware of is XML related stuff - XSD, XPath, XSLT. Defining messages and transformation is all about these three but BizTalk templates in visual studio make this really easy (for example transformation can be done completely graphically). Next is C# and XLang (some very special variant of C# used directly for expressions in orchestrations).

    3. BizTalk is about developing biztalk project and about configuring everything correctly. BizTalk offers a lot of out of the box features so you can use prepared shapes in orchestrations or you can use prepared functoids in maps but in the same time you can develop your own shapes, functoinds, pipeline components, adapters, etc. Also orchestration allows calling custom .NET code.

    At least this was how it worked when I worked with BizTalk 2006 R2 two years ago.