EBZ306 Advanced Business Process Automation Using BizTalk Server 2004 David Fong Program Manager
Agenda Scopes and Transactions Atomic Long-Running Compensation Correlation Partner Management
Transactions Sequence of operations that acts as a single logical unit of work Entire Orchestration as a Transaction Scopes can be transactions Atomic, Long-Running, Non-Transactional Also used for Exception Handling Compensation
Atomic Transactions Scope is a single DTC Transaction A.C.I.D. Properties Transactional Resources enlist in txn MSMQ, SQL – automatic rollback All transactional components will commit or abort as appropriate.NET components Non-Serializable components must be in atomic transaction
Atomic Transaction Properties Timeout Retry Isolation Level Synchronized
Long-Running Transactions Business processes typically last longer than just a few seconds Locking approaches as used in Atomic transactions are too resource intensive to scale
Nested Transactions Atomic Transactions cannot nest transactions Long-running Transactions can include a many levels of nesting Outer transaction is not automatically aborted when a inner transactions abort Inner Transaction have a compensation
Compensation Example Atomic automatic rollback Atomic Txn 1 Compensation Long-Running Transaction Exception Process
Transactions in Orchestration Designer demo demo
Correlation Route an incoming message to it’s correct running instance. Property Promotion Correlation Sets Initializing Correlation Sets Following Correlation Sets
Buyer My Computer Parts Inventory Scenario Sales Order Inventory Check Inventory Avail Order Status
Correlation demo demo
Partner Management I need to ship 5,000 parts to Boston. Who can I use? I am a shipper! I can ship your parts to your customer. Service Link I have a great international reputation! I may also need to ship parts to the London assembly plant! Service Link
Service Link Types Service link types define the set of interaction between business processes They also define the role played by each partner Terminology: ServiceLinkType and ServiceLink
Identify roles and parties Role example:Role= “Shipper” Party Party = “FedEx” Party = “UPS” Party = “DHL” Party = “USPS”
Creating a role
Creating Parties example: Party = “FedEx” SendPort = Certificate = “1A90 F4C2 …” Alias = “FedEx”
Orchestration with Roles
Enlist parties into roles
Custom logic to lookup a party String shipperName = ExplorerOM.GetPreferredShipper(); shipper(Microsoft.XLANGs.BaseTypes.DestinationParty) = new Microsoft.XLANGs.BaseTypes.Party(shipperName, "Organization"); Orchestration Designer Expression
Partner Management demo demo
Community Resources Most Valuable Professional (MVP) Newsgroups Converse online with Microsoft Newsgroups, including Worldwide User Groups Meet and learn with your peers
evaluations evaluations
© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.