DCSIMG
WCF 4 Routing Service – O/W Operation and Corresponding Channel Shapes - Zuker On Foundations

Zuker On Foundations

The realm of .NET (WPF, WCF and all around)
WCF 4 Routing Service – O/W Operation and Corresponding Channel Shapes

O/W operations require to be invoked through the ISimplex contracts which represent O/W channel shapes.
When I say O/W operations, I mean that the channel shape reflects that too.
E.g. TCP protocol is by nature a duplex channel, you should invoke O/W operations through IDuplexSessionRouter contract.

I couldn’t manage to call a O/W operation for a back-end service which is exposed with WsHttpBinding with Reliable Session enabled! That is the second point of failure.

In addition, At my router facade I have rich meta data regarding the target back-end service and operation by managing information from the service registry in an optimized manner.
This means that according to the ‘To’ header and the message ‘Action’, I can determine if the target operation is one-way or not in runtime.

Unfortunately, I didn’t find a way to intervene and control the channel shape that the router service uses to call the back-end service with.

This means that I still have to expose the relevant contract for each endpoint in the router service without having the ability to control it down the calling chain, that is the third point of failure.

That’s just too bad, this means that the client needs to talk to different endpoints if the operation itself requires O/W or not. if there’s a service implemented with a contract that has both R/R and O/W operations, the client can’t call it using the same proxy. (I guess you can manage the address of the proxy each call to direct it to a different address but that brings up a whole other set of issues)

Concluding failure points so far:

  1. WebHttp isn’t supported as much as I could tell
  2. I didn’t succeed with calling a O/W operation on a back-end service exposed with WsHttpBinding and Reliable Session enabled
  3. I didn’t find a way to control the contract of the channel shape used by the router service down the chain when calling to the back-end service. That prevented me from controlling the invocation pattern if I have more information regarding the target back-end service and operation.

I will continue with the series of posts where I will discuss what I believe to be missing furthermore. However, I do know for sure that I can’t be using this as the base implementation for our base router facade instead of the one I had written which does support all of these things.

Published Tuesday, January 19, 2010 2:21 PM by Amir Zuker

תגים:,

Comments

# re: WCF 4 Routing Service – O/W Operation and Corresponding Channel Shapes@ Sunday, February 14, 2010 4:34 AM

Nice story as for me. I'd like to read something more concerning this matter. Thnx for sharing that information.

MarkRight

Leave a Comment

(required) 
(required) 
(optional)
(required) 

Enter the numbers above: