《WCF技术内幕》翻译19:第1部分_第4章_WCF101:从内部剖析WCF和本章小结

简介:
从内部剖析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个层次。


 本文转自 frankxulei 51CTO博客,原文链接: http://blog.51cto.com/frankxulei/318601 ,如需转载请自行联系原作者

相关文章
|
10月前
|
前端开发
WCF更新服务引用报错的原因之一
WCF更新服务引用报错的原因之一
|
9月前
|
C# 数据安全/隐私保护
c#如何创建WCF服务到发布(SqlServer版已经验证)
c#如何创建WCF服务到发布(SqlServer版已经验证)
38 0
|
9月前
|
安全 数据库连接 数据库
WCF服务创建到发布(SqlServer版)
在本示例开始之前,让我们先来了解一下什么是wcf? wcf有哪些特点? wcf是一个面向服务编程的综合分层架构。该架构的项层为服务模型层。 使用户用最少的时间和精力建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案。且能与已有系统兼容写作。 简单概括就是:一组数据通信的应用程序开发接口。
62 0
|
10月前
Visual Studio 2022 创建 WCF服务 找不到
Visual Studio 2022 创建 WCF服务 找不到