《WCF技术内幕》翻译19:第1部分_第4章_WCF101:从内部剖析WCF和本章小结
来源:互联网 发布:spark python pdf 编辑:程序博客网 时间:2024/05/16 05:28
从内部剖析WCF
当检查WCF程序(地址、绑定和契约)外部的时候,很自然的就会想知道WCF如何使用地址、绑定和契约来发送和接收消息。从目前为止我们看到的代码,很少有代码与发送和接收消息有直接关系。事实上,地址、绑定和契约本身不会做太多的实际工作。当我们仔细研究WCF程序的时候,我们看到另外一个使用地址、绑定和契约发送和接收消息的基础结构。从大的层次考虑,本书的剩余部分会专注于解释这个底层基础结构,所以我们将会在本章里介绍这个底层基础结构的主要部分。
当我们看完整个地址、绑定和契约的内容,发现实际只有2个主要的架构层的基础结构。这2个层次的名字分别为服务模型层(ServiceModel layer)和 通道层(Channel layer)。服务模型层是用户代码和通道层之间的桥梁。换句话说,它是标准API的一部分。通道层,换句话说,做了真正的消息相关的工作。通道层是知道特定传输方式和WS-*消息编排的层。WCF拥有丰富的通道层功能。通常来说,通道层是底层基础结构开发人员的编程领域,所以完全可以不使用通道层代码写出完整功能的WCF程序。
注释:虽然这种划分有一点简单,但是我把开发人员分为2类:应用程序开发人员和基础结构开发人员。应用程序开发人员编写应用程序代码,而基础结构开发人员编写应用程序开发人员使用的代码。一个应用程序开发人员或许开发订单处理系统,而基础结构开发人员也许会开发一个被订单处理系统使用的可复用的组件。在WCF里,应用程序开发人员编写消息应用,但是基础结构开发人员编写自定义通道。
图4-2说明了服务层和通道层如何协同工作
图4-2:服务层和通道层
注意到服务模型层调用发送者上的代理(Proxy,也被称为Client)和接受者上的分发器(Dispatcher)。代理和分发器有不同的作用,尽管它们是相同架构层的不同部分。代理负责创建消息,并发送给通道层。分发器,换句话说,负责反序列化接收到的消息、实例化对象并分发反序列化的消息内容到此对象。代理和分发器与其它对象相比承担了更多的工作,我们会再第10章里详细描述它们的作用。
服务模型层和通道层与地址、绑定和契约的范围不同。作用上说,地址、绑定和契约式应用程序开发人员API的一部分,它们可以影响这2个层。最初接触WCF层的时候,弄清楚地址、绑定和契约作用的层次非常有用。在消息接收者上,地址告诉通道侦听请求消息的地址。在发送者上,地址告诉通道消息接收者的地址。绑定,换句话说,是创建通道层的工厂对象的集合。契约是消息序列化和反序列化使用的,它们同样会被用来确定接受程序的消息交换模式(MEP)。通常来说,契约是一个服务模型层的结构。行为(Behaviors),换句话说,可以影响服务模型层和通道层。图4-3如图所示:
图4-3:ABC如何影响服务模型层和通道层
本章小结
在这一章里,我们构建了一个简单的WCF程序,并分解为几个主要的运行时组件。我们看到面向开发者的WCF API,简单而又不失灵活性。我们同样看到地址、绑定、契约和行为,提供了WCF2个主要架构层:服务模型层和通道层,使用的API。此书的剩余部分将会详细介绍这2个层次。
- 《WCF技术内幕》翻译19:第1部分_第4章_WCF101:从内部剖析WCF和本章小结
- 《WCF技术内幕》翻译18:第1部分_第4章_WCF101:从外部剖析WCF
- 《WCF技术内幕》翻译17:第1部分_第4章_WCF101:WCF快速启动
- 《WCF技术内幕》翻译5:第1部分_第1章_蓝月亮:WCF介绍和本章小结
- 《WCF技术内幕》翻译16:第1部分_第4章_WCF101:概述
- 《WCF技术内幕》翻译36:第2部分_第6章_通道:创建自定义通道和本章小结
- 《WCF技术内幕》翻译39:第2部分_第7章_通道管理器:通道工厂和本章小结
- 《WCF技术内幕》翻译39:第2部分_第7章_通道管理器:通道工厂和本章小结
- 《WCF技术内幕》翻译36:第2部分_第6章_通道:创建自定义通道和本章小结
- 《WCF技术内幕》翻译13:第1部分_第2章_面向服务:为什么SO有意义和本章小结
- 《WCF技术内幕》翻译15:第1部分_第3章_消息交换模式、拓扑与编排:消息拓扑、消息编排和本章小结
- 《WCF技术内幕》翻译30:第2部分_第5章_消息:复制消息、消息清理和本章小结
- 《WCF技术内幕》翻译4:第1部分_第1章_蓝月亮:商业示例
- 《WCF技术内幕》翻译8:第1部分_第2章_面向服务:消息剖析、消息传输
- 《WCF技术内幕》翻译21:第2部分_第5章_消息:WCF XML Stack 和 XmlDictionary
- 《WCF技术内幕》翻译3:第1部分_第1章_蓝月亮:普遍需求和普遍概念
- 《WCF技术内幕》翻译22:第2部分_第5章_消息:XmlDictionaryWriter
- 《WCF技术内幕》翻译32:第2部分_第6章_通道:通道状态机
- 自我鉴定
- BusyBox 的配置
- js获取图片长和宽
- 自我鉴定
- EL表达式
- 《WCF技术内幕》翻译19:第1部分_第4章_WCF101:从内部剖析WCF和本章小结
- struts2动态方法调用
- [转]戴尔发布首款手机Mini 3i 售价3980元
- JavaScript能将页面中的图片导出到excel中吗?!!!!!(截出来的)
- 程序设计大赛—文字游戏
- [快乐android2]Android工程的构成
- javascript两个select控件内容互相移动
- 剖析“金山崩溃门”的根源
- 物流管理误区从IMS改变吗