Gerben van Loon

Random thoughts on Microsoft Software Development and other related stuff

BizTalk vs AppFabric

Lately I hear more and more people saying that BizTalk server has become obsolete. This because of the developments in the WCF4, WF4 and AppFabric space. While there is some truth in there, BizTalk server offers the following things today that makes it useful for several scenarios that are not in WCF4/WF4/AppFabric:

- Publish / Subscribe model (messagebox)
- Adapters (Legacy application access, non based WCF ones)
- EDI, RFID, EDIFACT, ANSCI X12, HL7, HIPAA, RosettaNet and SWIFT support
- Configurable retry logic with send and receive of messages
- Flat file parsing
- Debatching of messages
- Business Activity Monitoring (BAM)
- Visual mapper (BizTalk mapper)
- Business Rules Engine (BRE)

The new things in the WCF4, WF4 and AppFabric space that where previously unique to BizTalk:

- Host out of the Box: Scalable, reliable, load balancedmonitorable
- Durability and persistence
- Suspend / resume functionality
- Extensive set of tools provided for IT pros to administer and track execution
- Health monitoring
- Failed-message management
- Message tracking + archiving and purging
- Long running and atomic (ACID) transactions with compensation mechanisms

So I think for quite some projects that I’m doing I’ll pick AppFabric now as the preferred platform where previously I would choose BizTalk. I prefer AppFabric since the development frameworks (WCF + WF) are more close to the core .NET platform.

Let me know if you have any remarks or things to add.

Comments

Dennis van der Stelt said:

How does BizTalk handle versioning? Because AppFabric and WF4 don't do anything about it.

# June 28, 2010 9:41 AM

Gerben van Loon said:

No special features in BizTalk for that as far as I know. Just relies on assembly versioning.

# June 28, 2010 10:06 AM

Jean-Paul Smit said:

I agree that BizTalk is more and more positioned as a platform integration solution instead of an application integration solution.

For many projects regarding .NET to .NET integration now there is the AppFabric with WF4/WCF4 alternative and I would only pick BizTalk if there are demands that can't be met using AppFabric.

Als the pricing of BizTalk is off course something to keep in mind.

# June 28, 2010 10:33 AM

Patrick Wellink said:

Well here we go again... we had this discussion several times.

1. Want REAL reliability there is only one choice

2. want REAL scalability there is only one choice

BizTalk tracking is much more performant compared to WF (You know it hops along on a commit of the parent process so there is very little extra overhead)

Lot of people seem to forget that AppFabric is a kind of Buffed Up IIS server. Did IIS 6 or 7 make BizTalk Obsolete ? no it didn't and nothing has changed there.

- The Publish subscribe mechanism is still the only one that I know of produced by MS.

- The queueing stuff in BizTalk is quite good.

- Throtteling happens automatic.

- BAM is still quite unique

- Rule engine is still the most powerfull

- I believe the Context of BizTalk message (all the props Promote etc) is still quite unique. And this flexible system makes BizTalk so powerfull.

And with faster disks (SSD) rapidly becoming main stream, the performance will increase even more. (Although it's quite fast already given good hardware)

And although there is some overlap in functionality like suspend / resume , persistence, i do belive you have to program all that in WF, where in BizTalk it comes by nature. So less coding.

And finally BizTalk is streaming by nature so very performant. Even now I run into problems with performance if I have to call a webservice. The problem is just that BizTalk is calling too fast and too many (you know parallel) instances of a poorly designed/programmed webservice.

# June 28, 2010 12:00 PM

Gerben van Loon said:

Thanks for your comments guys.

Jean-Paul: I don’t only see AppFabric for .NET to .NET integration. More and more systems have the HTTP protocol available. Also more adapters are coming available for WCF like IBM WMQ which we use for legacy system access.

Patrick: Good points, some additional questions.

- Well yes, here we go again. Though think this discussion is useful now since recent developments and shipping of AppFabric changes this space quite a bit.

- What differences do you mean with REAL reliability and scalability? You can also setup AppFabric in a farm setup [1]. How is BizTalk better then?

- What do you exactly mean with the BizTalk queuing stuff?

- On coding suspend / resume, persistence functionality: This is true for .NET 3.x, WF4 + AppFabric changes this quite a bit. Do you still think this holds for WF4 + AppFabric?

[1] blogs.msdn.com/.../new-appfabric-web-farm-guide.aspx

# June 29, 2010 8:42 AM

Charles Young said:

AppFabric is service-orientated.    BizTalk Server is message-orientated with good support for service-orientation.   For example, AppFabric developers use code contracts whereas BizTalk developers primarily use schema contracts and annotations.

AppFabric extends WAS/IIS to provide an application server for WCF-based services with service-level persistence, monitoring and recoverability.  It also provides a distributed caching framework.    

BizTalk Server is an enterprise-level integration server that mediates messages between the widest range of systems, services, transports, formats, etc.   BizTalk Server supports both message- and service-level persistence, monitoring, tracking and recoverability together with advanced features for managing performance mismatches (e.g., via various types of throttling), spate conditions, etc.   It is built around a pub/sub model and asynchronous, persisted, transactional message queues.   It has a deeply integrated service orchestration engine and several model-driven development tools.   It provides centralised administration of distributed integration and service orchestration artefacts and distributed hosts.   It provides a wide range of adapters and accelerators including out-of-the-box support for host integration, EDI and partner management, industry standards such as HL7, HIPPA, RosettaNet and Swift.   It provides a Single Sign-On service, a complete BAM framework, a Rules framework including a rule engine, a repository, tooling and a deployment service.   It ships with an RFID-orientated event processing framework.  It offers additional support for building dynamic ESB solutions based on itineraries and resolution features.   It ships with a UDDI 3.0 service directory.  It supports bi-directional flat-file/XML parsing.   It provides a variety of metadata harvesting tools.  It provides good support for WCF, etc., etc.   This is what the licence price pays for.

For the last couple of years, much of our effort has centred on building ESB solutions that utilise BizTalk Server and WCF together.   AppFabric is a great advance on the WCF side and allows us to build far more convincing service bus solutions that combine various Microsoft technologies effectively, allowing us, for example, to avoid the overhead of the message box for certain types of service interaction.   I'm looking forward to seeing the impact that AppFabric (and the new WF) will undoubtedly have on future versions of BizTalk Server, and it's great to see the beginnings of this in BizTalk Server 2010 (e.g., the ability to use the BTS mapper is conjunction with WF services hosted in AppFabric).

# June 29, 2010 1:51 PM

fico score said:

I'm working with Visual Studio 2010 and have a workflow where I'm trying to resume a bookmark. The bookmark appears to be getting set just fine, but when I try to run the code below to resume it, I get an entry in the InstancesTable in the persistence database with the SurrogateLockOwnerID field set to an integer, usually this field is null, and I can no longer do anything with the workflow.

# August 20, 2010 3:55 AM

Roost said:

Read this article.....empressionz.blogspot.com/.../appfabric-and-biztalk.html.....a little summary about the above points

# February 7, 2011 10:43 PM

Ariel ITzhaky said:

Hi all,

I realy don't understand why microsoft compete with microsoft.

Instead of providing the market with unified products and integration platforms (e.g. enhance biztalk capabilities), they confusing it.

What should do a customer that invested in BizTalk as his integration platform.

I prefer one integration platform with lots of options, then lots of products with specific option and even some overlap between them.

# May 25, 2011 1:53 PM

Good Online Casino said:

It has a deeply integrated service orchestration engine and several model-driven development tools and they as a platform integration solution instead of an application integration solution.

# May 30, 2011 1:08 PM

biztalk programmer blog said:

I very interested in your post. that is very needful and helpful for the developers. so, thank you for share it.

# December 7, 2011 8:07 AM
Leave a Comment

(required) 

(required) 

(optional)

(required) 


Please add 8 and 6 and type the answer here: