Welcome to WindowsClient.net | Sign in | Join

Zuker On Foundations

The realm of .NET (WPF, WCF and all around)

Building a WCF Smart Router - The Beginning

In one of my projects I was working on building a smart router facade using WCF.

The general idea -
The consumer will have an actual endpoint to the router.
The router intercepts the client messages, performs all sort of necessary operations and processing, then sends the message to the actual service.

This is called a "smart" router since it's not playing the part as a simple pass-through router.
It actually provides service virtualization, interception of messages and passing it along to the appropriate endpoint, taking into mind Management, Monitoring and Governance. A sort of ESB.
The idea was to support most configurations and profiles of common services all around.

The project was not trivial to write. Plus, it's pretty far from being truly 100% complete.

I will write a series of posts illustrating the key points I had encountered throughout the project, there were quite many.

For the meantime, a good place to start would be reading the following articles by Michele Leroux Bustamante -

Building a WCF Router, Part 1

Building a WCF Router, Part 2

Posted: Jul 25 2008, 06:04 PM by zuker | with 3 comment(s)
Filed under:

Comments

Bob Slaski said:

WS-I Basic Profile 1.2 seems to provide for WS-Addressing in conjunction with the SOAP actor concept (see citation below).  In Basic Profile 1.1, "Values of the soap:actor attribute ... represent a private agreement between parties of the web service.". The use of SOAP actor and multiple wsa:To elements would seem like the preferred approach.  

Any thoughts?  Does the current version of WCF support this concept?

WS-Addressing 1.0 - SOAP Binding (except for sections 2, 3, 5.1.2, 5.2.2 and 6.1)

Extensibility points:

E0027 - Use of soap:actor and WS-Addressing - WS-Addressing allows multiple instances of headers such as wsa:To, wsa:ReplyTo, and wsa:FaultTo, so long as they are targeted to different SOAP roles.

# October 6, 2008 12:42 PM

zuker said:

WCF currently supports two specifications of WS-Addressing out of the box - 10th August 2004 & Version 1.0 (9th May 2006)

If this is part of the specification then it should support it though WCF programming model gives you access to a single 'To' message header.

# October 6, 2008 1:28 PM

Bob Slaski said:

WS-I Basic Profile 1.2 support is rumored to be planned for .NET 4.0.  The extensibility point describing the use of SOAP actor (BP 1.2 E0027) was only published with BP 1.2.  That said, this extension was in theory possible with earlier versions (BP 1.1/.NET 3.5) and could have been implemented. The .NET Framework Class Library SoapHeader.Actor Property has the following description which seems to imply that multiple actor instances can be created, each with a unique wsa:To.

"The recipient(s) for the Body element and each of the SOAP headers within the Header element of a SOAP message need not be the same. If a Header element exists in the SOAP message, it represents additional data that can be sent to and from the XML Web service method or an intermediary. The recipient of that data, known as the SOAP Actor in version 1.1, can be a different URI than the URI for the XML Web service method."

# October 6, 2008 2:30 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

Page view counter