Monday, June 9, 2008

Orchestrated windows communication foundation service (WCF + WF = BizTalk Content Routing)

These days... I start looking back to interesting .net 3.5 stuff, really impressive. Especially I can say with .net 3.5 sequential workflow and its two data shapes (receive and send) and their promotion to WCF services. Infect this is very good functionality toward integrating more complex collaborated scenarios with different domain application. Previously, it was really hard and time consuming to collaborate using open standards like web services, EAI (BizTalk), MSMQ etc, and it was bit effort consuming as well as contain higher risk on success of the design. Here I feel very nice and good solution towards such complex collaboration scenarios' integration to cross domain.

WCF itself is well functionality talk as open with open standards like WSE 2.0+, Queuing (MSMQ/JMS), .net Remoting, TCP/IP and web HTTP/HTTPs, etc. I must say this deadly combination will transform much complex scenarios in very simple WF/WCF solutions.

I tried to build one very simple collaborative solution. This can receive message through WCF Service which is simple passthrough service and routing incoming messages to WF. I found WF is very much flexible towards handling external events, tracking, hosting (with multi-threading).

I tried to draw one quick diagram which might help to understand the concept.

I also tried and simulate some work load on the sample application with the concept and I got surprised with really great performance. I pumped around 200 messages per second with approx size of 50kb and really it went smooth with some complex resource consuming XSLT transformation and file delivery. Where while building the application I programmed to raise max 5 threads for the transformations and delivering WF services. My correlation and Initializing WFs was working on single instance thread. But I was calling other WFs from main WF to performs transformation and delivery services.

Just thought this would be great to share with MS Developer community. I hope Microsoft is planning to put WF and WCF into future version of BizTalk on the same basis. Now, after success of the POC sample, I am analysing the replacement of content routing from BizTalk Server to WF + WCF and planning shift much load from BizTalk to standalone WF Hosting servers.

Let's see how it may go! I am very hopeful for this implementation and success of it as cost wise and performance wise too.

If anyone is interested in POC code most welcome to request on


No comments: