Talking in XLANG
A year anda half ago, just as we were completing the development of PeopleSoft’s suite ofintegration solutions, Microsoft began pitching its own solution forintegrating long-running business processes. At the time, the Microsoft BizTalkserver sounded similar in capability to PeopleSoft’s suite, and we were happywith our year-plus lead on Redmond. BizTalk is still not a finished product.Microsoft recently released its beta version (see Nov. 8 Trials &Profiles). But as BizTalk takes shape, it is primed to solve many remainingbusiness-to-business interchange problems, and provide a pretty complete set ofworkflow tools that are missing in many other solutions.
Forbusinesses to share data effectively, they must have tools to both transmitdata between enterprises as well as massage the data’s format. BizTalk handlesboth tasks effectively. When transforming data, it’s usually preferable to usedeclarative data transformations, but sometimes you need the power offunctional transformations. BizTalk provides declarative transformations bydragging a connection between related fields. Functional transformations includean object called a “functoid” along the connector, which can containsimple arithmetic transformations or a transformation script.
Despite thebevy of features for manipulating messages, the most interesting feature fordevelopers is BizTalk’s ability to create long-running business processes.Microsoft created a new language called XLANG -- pronounced slang -- fordescribing any business process. XLANG is a complete language that uses XML asthe written format for the definition. Interestingly, Microsoft claims it choseXML so businesses can share process definitions across multiple platforms,presumably even non-Microsoft platforms.
Althoughyou can read and edit XLANG code in any editor, you’ll most likely work with itusing the BizTalk Application Designer. The designer is a graphical businessprocess flow-charting tool that produces executable XLANG schedules. It isrefreshing to finally see analysis, design, and coding converge into a simpleprocess. While most complex desktop applications still defy efforts to usemodeling tools in place of manual coding, I found that integrating businessprocesses works naturally in the BizTalk environment. The added bonus of usinga visual designer to create a business process is that the resulting design isself-documenting.
XLANGschedules execute inside the BizTalk Orchestration engine. The orchestrationengine is a finite-state machine that can process the various operations codedin XLANG. These operations include decisions, loops, forks, joins, actions, andtransactions.
BizTalk hasan interesting concept of a transaction. Transactions are typically groups ofall-or-nothing events. Many of us have been trained that executing transactionsacross enterprises requires a two-stage commit, requiring all involved applicationsto ensure that they can commit individually before the overarching transactioncan commit. However, a two-stage commit can cause performance bottlenecks andforce applications to stop functioning if any dependent process is unavailable.
Because BizTalkservices typically involve loosely coupled processes running at multipleenterprises, there really isn’t any reasonable way to implement a two-phasecommit. Instead, transaction failures are handled by creating balancingtransactions. To roll back an incomplete transaction, BizTalk performsoperations that reverse those operations that completed, thereby balancing thetransaction. Balancing transactions, which are the responsibility of theimplementer, may be fully automated or as simple as sending an e-mail to anadministrator explaining the failed transaction. If this seems odd, think ofthe analogy of writing a check. A business will typically accept a check eventhough it is not guaranteed to clear, depending on the bank to manually handlethe cases in which payment fails.
Theusefulness of BizTalk does not have to end with business-to-businessprocessing. Microsoft is quick to point out that BizTalk can be used toautomate any process. I’ve worked in offices that have many manual stepsconnecting various batch file operations. With BizTalk’s ability to route andmake decisions based on message content, it is a great candidate forstreamlining tedious manual processes. The ability to automate generic file,message, and COM component processing separates BizTalk from ERP specificsolutions from vendors like PeopleSoft and SAP. Of course, BizTalk won’tnecessarily integrate as tightly with an ERP as the vendor-specific solution.
BizTalk hasthe potential to rewrite the rules of business process automation. However, asmentioned in our review of BizTalk last issue, it is not a simple product toinstall or manage. You won’t necessarily want to choose BizTalk to simplyreplace a handful of .BAT files. However, if you have a need to automate bothinternal and external processes, primarily on Windows and Internet platforms,BizTalk will soon have you talking in XLANG. --Eric Binary Anderson has led projects at a number of enterprisesoftware companies and is the senior architect at IBT Financial (Bend, Ore.),an Internet-based training company. Contact him at firstname.lastname@example.org.