一起学WCF【1】

来源:互联网 发布:mysqlbinlog 恢复数据 编辑:程序博客网 时间:2024/05/01 05:20


SOA

说WCF,就不能不提SOA。SOA(Service-Oriented Architecture)面向服务架构,可理解为一种架构方法或一种编程模式。在这种架构中,应用程序是由具有一定行为(即服务)的功能单元组成的。

服务是一组方法,可以被调用从而执行其逻辑。它们的具体操作是不可见的,客户端程序可以调用它们公开的签名。

SOA架构允许用户以一定的方式组织分布式应用程序。分布式是指客户端程序可以运行在与服务不同的计算机上。为了在SOA中实现这个功能,需要在计算机间传送包含数据的结构化消息。

SOA的基本思想是构建一个松散耦合的系统,在这个系统中,服务的使用者与服务的实现唯一共同拥有的东西,就是公开的服务操作列表和参数的结构定义。因此客户端和服务端可以采用不同的开发平台和编程语言。

SOA的技术基础是SOAP标准,SOAP用用XML语言来定义一个服务操作所发送和接收的消息的内容。消息是由参数所值或返回值组成的,数据需要转换成SOAP格式。

通过SOA,用户界面与业务逻辑就可以实现分离。这样UI和服务的开发就可同时进行。

SOA作为构建分布式系统的一个方法,具有松散耦合的消息和严格定义的接口。每个服务接口都需要一个可靠的定义。服务契约需要被多方认可且在开发过程中不再变化。

SOA的底层技术采用SOAP、WS-*Protocols、WSDL。

服务

一个服务包含若干方法,这些方法通过一个通道来与服务的使用者建立通信。服务的使用者也使用一个与服务通道相匹配的通道调用方法,发送服务所需要的数据。通道是模式、契约和策略的结合,在运行时使用的就是协议(Http或MSMQ)。客户端把消息放在通道的另一端,发布服务的平台所在的宿主栈在另一端读取消息,通道是消息流动的管道。

通道将被绑定到由契约定义的模式上,在模式和契约中,对元数据进行定义。通道还需要知道服务使用者必须要实现的策略。

服务的生态系统

如上图所示的服务生态系统和它们之间的关系,其中的概念组成了SOA的一部分。

 

应用程序由服务组成。

服务通过调用数据库来持久的保存状态。

服务制定与服务用法逻辑用法有关的策略,即客户端与服务通信之前必须达成的协议。

通过定义策略,服务可以调用平台的操作要求。

服务是由契约绑定的。

契约描述了消息交换模式。

契约包含模式,而模式定义消息的结构。

消息交换模式是一个消息集。

服务交换信息。

 

组织工作流中的服务

工作流中的顺序结构和分支结构等是用元语言进行显示定义的,元语言可以理解为应用程序运行时各个组件之间的集成。它以这种方式来描述一个功能化且复杂的消息交换模式。SOA的主要目的是构建应用程序中可重用的组件,而工作流则是集成逻辑与业务流程的实现者。

为了实现某个业务流程,工作流负责组织使用者与服务之间的交互动作,它知道自身正在调用和实现的服务的契约和模式。

契约优先原则

设计服务,首先是进行需求分析。

首先需要明确定义服务的契约,而非绘出用户界面和表格及其关系图。

功能分析的结果是应用程序的3个基本层面,即UI层、逻辑层和数据库层。在SOA方法中,首先需要分析业务逻辑,服务中的逻辑模块独立于UI和数据库层。

契约优先的原则即第一个分析的是契约,所以必须了解:从服务能够得出什么结果,服务有哪些方法,这些方法的参数需要哪些数据结构。

契约的设计受业务影响,由业务驱动。

WCF

建立一个完全基于SOA的通信框架是微软推出WCF的主要动机。它整合了现有的通信技术,包括COM/DCOM、Enterprise Service、.NET Remoting、XML Web服务、MSMQ等。

这些单一的技术产品专注于某一特定的领域,具有完全不同的应用编程接口,使开发人员很难从一种转移到另一种。WCF将上述的通信技术完全整合在一起,提供了一套统一的API。

 

本节说明了一些准备知识,下面将开始关于WCF的正题。

原创粉丝点击