Tale of two adapters -- BizTalk WCF Adapter and WCF LOB Adapter

The Microsoft BizTalk Server 2006 R2 will ship with a BizTalk WCF Adapter. The BizTalk WCF Adapter is a bridge between BizTalk and WCF.

*NEW* You can download a great paper written by Aaron Skonnard on Windows Communication Foundation Adapters in Microsoft BizTalk Server 2006 R2 from this link.

It supports features such as:

Feature

 

Description

Consume metadata exposed by WCF services

 

At design-time, in a BizTalk Project, right-click, select Add > Add Generated Items > Consume WCF Service, click on Add to invoke BizTalk WCF Service Consuming Wizard. This wizard will import schemas and BizTalk port binding info XML files into the BizTalk projects. The port binding info XML files can be used to create properly configured send ports for communicating with WCF services.

Send messages to WCF services

 

 

BizTalk WCF Adapter includes a WCF transmitter for sending messages to the WCF services. The BizTalk Send Port needs to be configured with WCF client endpoint information (address, binding and contract). In BizTalk Administration Console, select one of the following available transport adapters to configure access to WCF services.

 

- WCF-BasicHttp

- WCF-NetNamedPipe

- WCF-NetTcp

- WCF-WSHttp

- WCF-NetMsmq (one-way only)

- WCF-Custom

Receive messages from WCF clients

 

 

BizTalk WCF Adapter includes a WCF receiver for receiving messages from WCF clients. The BizTalk Receive Location needs to be configured with WCF service endpoint information (address, binding and contract). In BizTalk Administration Console, select one of the following available transport adapters for enabling receiving messages from WCF clients.

 

- WCF-BasicHttp

- WCF-NetNamedPipe

- WCF-NetTcp

- WCF-WSHttp

- WCF-NetMsmq (one-way only)

- WCF-Custom

- WCF-CustomIsolated

Publish BizTalk orchestrations and schemas as WCF services

 

From Visual Studio, click on Tools from main menu and select BizTalk WCF Service Publishing Wizard. This wizard is also available along with other tools in Start > All Programs > Microsoft BizTalk Server 2006.

 

This feature also allows hosting a non-HTTP service within BTSNtSvc.exe by simply configuring a Receive Location and enabling it within the BizTalk Administration Console (no publishing necessary).

 

BizTalk WCF Adapter Architecture and WCF LOB Adapter SDK

BizTalk WCF Adapter provides full support for the WS-* stack including the various security, reliable messaging and transaction specifications. The following diagram shows the high level architecture of BizTalk WCF Adapter.

Under the covers, the adapter built using the Adapter SDK i.e. the WCF LOB Adapter, is a transport channel, enriched with the metadata expressed by the adapter. The WCF LOB Adapter is surfaced as a WCF binding. In BizTalk, this adapter is consumed via the BizTalk WCF Adapter.

(You must be thinking - What? One adapter consuming another adapter .. why is the adapter not a first-class citized in BizTalk? This gives me a topic for another "rant" post. :-))

 

Here are some key points -

  • To consume metadata exposed by the WCF LOB Adapter in BizTalk Project, use Consume Adapter Service BizTalk Project Add-In, which provides similar functionality to BizTalk Consume WCF Service with an added value of exploring and filtering the adapter metadata. The end-result is generation of XML Schemas and port binding info XML files.
  • To send messages to the WCF LOB adapter from BizTalk Server, configure Send Port using WCF-Custom Transport Type and select the adapter binding. 
  • To receive inbound messages from the LOB (target system), configure Receive Location using WCF-Custom Transport Type and select the adapter binding

 The following diagram shows where the WCF-based adapter fits with the BizTalk WCF Adapter Architecture.