一起学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的正题。
- 一起学WCF【1】
- 一起学WCF【2】
- 一起学WCF【3】
- 一起学WCF【4】
- 一起学WCF【5】
- 一起学WCF【6】
- 那些年,我们一起学WCF--(1)wcf初识
- 那些年,我们一起学WCF--(2)wcf服务契约
- 跟我一起从零开始学WCF系列课程
- 那些年,我们一起学WCF--(3)消息通信模式
- 那些年,我们一起学WCF--(4)数据契约
- 那些年,我们一起学WCF--(5)数据契约继承
- 那些年,我们一起学WCF--(6)PerCall实例行为
- 那些年,我们一起学WCF--(7)PerSession实例行为
- 那些年,我们一起学WCF--(8)Single实例行为
- 那些年,我们一起学WCF--(9)会话行为
- 那些年,我们一起学WCF--(10)并发行为
- 那些年,我们一起学WCF--(11)自定义会话
- 离散卷积运算的DSP实现
- WPF自定义控件之仿Win8滚动条
- socket 编程TCP,UDP建立连接过程详解
- 在TQ2440实验板上进行linux+qtopia++ov9650+opencv的图像处理系统
- 20-数据结构_树-操作-遍历_树的应用
- 一起学WCF【1】
- 数据的游戏:冰与火
- ASP.NET Web API的消息处理管道: HttpRoutingDispatcher
- 麻木的IT公民:293个公司人压力和心理调查
- 改变指标改变图(FusionChart)
- android使用SharedPreferences读取xml数据
- Hive 里面的 UDTF
- unix进程间的通信方式
- jstl中<c:forEach>的用法