Reflection

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
研究如何扩展WCF,其实是想更深入的了解一下WCF的架构,以及它的一些设计思想。所以在下面的几篇文章中,我想和大家一起探讨一下我们可以如何来扩展WCF,如何往它的体系结构中加入我们的东西。由于本人也才疏学浅,所以有讲的不对的地方,还希望大家不吝赐教。

好,言归正传,我们首先来看看WCF的一个runtime architecture。

把这个图上的内容搞清楚了,我想对于WCF的编程模型和如何来扩展就会比较清晰了。
对于这个图上的内容,我觉得有这么几点是需要了解了的:
1. 客户端和服务端不是直接打交道的,在客户端有一个代理将client调用的对象、方法等信息组合成一个消息(Message)。服务端有一个Dispatcher,它接受到消息以后,更具消息中的内容去调用对应的服务端实例及方法。所以WCF的世界是消息的世界,所有信息都是以消息的形式进行传播。
2. Proxy和Dispatcher就像两个拦截机,所有消息都会被他们截获并进行处理。所以他们俩也就会是我们进行扩展的最佳位置。
3. 消息在传输的过程中是需要处理的,至于如何处理要根据Binding的类型来进行。在Binding中我们定义了编码的类型、传输的协议、安全的协议等等。
4. 在Channel Stack中我们看到,从下至上分别是transport, encoder和protocol。protocol就是我们在传输过程中需要遵循的一些规范、协议。我们可以往里面加入自己想要的一些protocol。

上面这个图看完了,我们就可以开始研究如何来进行扩展了。
posted on 2008-05-21 13:08  Reflection  阅读(614)  评论(1编辑  收藏  举报