RSS 2.0
 Friday, October 29, 2010

For those of you who may have missed Sriram's blog post, there will be a CTP of the Integration as a Service version of BizTalk appearing in Azure sometime before July 2011 (interestingly, the blog entry was posted at 10am on October 28th, i.e. an hour after PDC10 started…!).

Additionally, BizTalk vNext will transition to being AppFabric based.

To anyone who’s been watching AppFabric for a while now, this will come as no surprise: when Dublin was announced, it was clear that there were too many striking similarities between Dublin (now called Windows Server AppFabric) and BizTalk to be a coincidence.

Sriram's post makes one thing clear: Microsoft won’t be abandoning BizTalk customers (10,000+ at last count) who have a large investment in the product and are understandably concerned about the future of their investment. And this is a very important message to get across: At one client I’m working with, Microsoft have been saying that AppFabric is now the choice-du-jour for low-latency integration solutions – not BizTalk.

This can be very worrying to an organisation that may have spent significant sums on BizTalk/SQL Licenses, and the associated infrastructure: BizTalk is not a cheap product, but AppFabric is free, and so this is a message that Microsoft has to be careful in spreading. And I think that Sriram has hit the right tone here.

Will AppFabric replace BizTalk?
I think that’s the wrong way to look at it: I think the way that Sriram has phrased it is better: BizTalk will migrate to AppFabric. That is, AppFabric will not replace BizTalk, and this is an important distinction to make. BizTalk 2010 has the ability to integrate (partly) with AppFabric, whilst BizTalk vNext will actually be part of AppFabric.

Why AppFabric won't replace BizTalk
A reasonable question to ask would be: why can't I write an AppFabric application today which effectively replaces what BizTalk does? The answer is: you can. Sort of. For the right kind of application.

Let's look at some of the features of BizTalk, and their equivalents in AppFabric today (note: this is not an exhaustive list, I'm just trying to prove a point):

Feature

BizTalk 2010

App Fabric

Workflow engine

XLANG/s

WF4

Concurrent/scheduled service instances

Yes

No Yes (see below)

Adapters

Yes

Yes (via AppFabric Connect and BTS Adapters)

Persistence

Yes

Yes

SQL Based Persistence

Yes

Yes

Distributed in-memory persistence

No

Yes

Pub/Sub mechanism

Yes

No

Transforms

Yes

Yes (via AppFabric Connect and BTS transforms)

Rules Engine

Yes

Yes*

* Notes:
The WF Rules activity has the ability to perform simple business rules; the BizTalk BRE has the ability to perform complex rules. Which ones is better depends on the situation: the WF engine requires you to write C# classes (i.e. little visibility of rules), whilst the BRE provides the Rules Composer which, while arcane as it can be, still gives powerful visibility of rules (for a comparison of BRE with the earlier version of WF Rules, see Charles Young's post)

Looking at the features above, we can only see three differences:

a) Concurrent/scheduled service instances
This is an interesting one: If you want to support concurrency in WF4, you have to code it yourself. For example, if from inside a workflow you wanted to make two concurrent service calls, you'd need to do all the thread plumbing yourself. The WF4 engine is inherently single-threaded, so you don't get much out of the box support. UPDATE: Matt Winkler (in the comments below) has corrected me on this: WF4 offers the Parallel and ParallelForEach activities which will schedule tasks to be performed in parallel: although a workflow instance is single-threaded, the WF4 engine is multithreaded - much good work has gone on for the WF4 release.  In BizTalk, however, the pub-sub mechanism looks after this for you: you can drop multiple messages to the message box, multiple service instances spin up to process them, and then you correlate the results back when finished (much like the await-all functionality in the Visual Studio Asynchronous talk the Anders did at the PDC yesterday).

b) Distributed in-memory persistence
This has always been BizTalk's Achilles heel (whilst also being one of its strengths): BizTalk persists everything to SQL server. This gives reliability at the cost of performance. AppFabric, on the other hand, can use AppFabric Caching as its persistence mechanism. Which is why AppFabric is a better choice for true low-latency situations, where latency and throughput is more important than the security of persisting everything to disk.

c) Pub/Sub mechanism
This is the one major piece missing from AppFabric (to my mind): a flexible pub-sub style mechanism (or something that allows store-and-forward) and which allows us to spin up multiple concurrent subscribing workflows to process messages... and which implements comprehensive throttling.

AFAIK there is nothing like this in Windows Server AppFabric yet (although you could implement it in Azure via Message Buffering). But I wouldn’t be surprised if we see something soon. This functionality would provide the last piece in the puzzle: It would now be possible to write a services-based application that can process multiple concurrent requests in a reliable, distributed, and throttle-able manner; which could activate business workflows, call rules; and make use of BizTalk Adapters.

Conclusion
As you can see, Microsoft are very close. However there’s still a lot of work to do. Providing Integration as a Service doesn't come without its difficulties: AppFabric is not yet feature rich or mature enough to provide the same functionality that BizTalk does. In the meantime, BizTalk is still a great platform to develop integration solutions on, and as Biztalk Architects and Developers we now have more tools to use to develop those solutions.

Friday, October 29, 2010 11:37:12 AM (GMT Standard Time, UTC+00:00)  #    Comments [6] - Trackback
AppFabric | BizTalk General
Navigation
Archive
<October 2010>
SunMonTueWedThuFriSat
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2014
Daniel Probert
Sign In
Statistics
Total Posts: 44
This Year: 0
This Month: 0
This Week: 0
Comments: 26
Themes
Pick a theme:
All Content © 2014, Daniel Probert
DasBlog theme 'Business' created by Christoph De Baene (delarou)