SOA和WCF基础

1.SAO 架构简要介绍:

1.1什么是SOA:

           面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

         理解:SOA追求的是服务提供方和使用方的高度解耦。

1.2.一个合格的SOA系统至少存在的4个特性:

           1.每一个服务具有明确的服务边界:所谓的服务边界是指服务的公共接口与内部实现之间的界线,明确的服务边界使得服务个位置和技术无关。客户端无法知道服务的内部实现技术,地理位置和运行平台,从而达到服务和客户端之间的耦合降低。

           2.服务是独立的:是指服务运行时的独立,不需要依靠任何外部服务或者组件。服务自身的部署和版本不会影响到整个SOA系统,客户端和其他服务也不需要知道服务边界内的变化,业务逻辑上面服务和服务之间只可以相互访问的。

           3.采用标准的契约定义和通信协议:SOA系统的特点之一就是可以每个服务使用各自的技术和平台来实现,在这种情况下要求服务之间可以相互交互,就必须要求服务的企契约定义和通信协议都是行业标准。任何特定的技术平台协议都是不合用在SOA系统之中。

           4.服务是自解释:根据W3C对系统的定义,服务的内容必须是自解释的。


2.WCF的简要介绍:

 2.1什么是WCF:

   全称:WIn通信基础,融合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTPFTP的相关技术。,本质上来说WCF,是一套软件开发包,WCF设计的目的是为了分布式计算提供可以管理的方法,供广泛的互操作性,并未服务定位提供直接的支持。WCF帮助程序员在.NET的环境中开发服务,或是开发访问服务的客户端,基于SOA的技术平台无关性,WCF并不要求整个系统的服务都由WCF来开发。


2.2 WCF体系框架:

  




协定和说明(契约)

协定定义消息系统的各个方面。数据协定描述组成某一服务可创建或使用的每则消息的每个参数。消息参数由 XML 架构定义语言 (XSD) 文档定义,这使得任何理解 XML 的系统均可处理该文档。消息协定使用 SOAP 协议定义特定消息部分,当互操作性要求对消息的某些部分进行更精细的控制时,消息协定可实现这种控制。服务协定指定服务的实际方法签名,并以支持的编程语言之一(例如 Visual Basic 或 Visual C#)作为接口进行分发。

策略和绑定规定与某一服务进行通信所需的条件。例如,绑定必须(至少)指定所使用的传输(例如 HTTP 或 TCP)和编码。策略包括安全要求和其他条件,必须满足这些要求和条件才能与服务进行通信。

服务运行时

服务运行时层包含仅在服务实际运行期间发生的行为,即该服务的运行时行为。遏制控制处理的消息数,如果对服务的需求增长到预设限制,该消息数则会发生变化。错误行为指定服务出现内部错误时应采取的操作,例如控制传递给客户端的信息(信息过多会向恶意用户提供攻击的机会)。元数据行为控制是否以及如何向外部提供元数据。实例行为指定可运行的服务实例的数目(例如,singleton 指定只能用单一实例来处理所有消息)。通过事务行为,可以在失败时回滚已进行事务处理的操作。调度行为用于控制 WCF 基础结构处理消息的方式。

通过扩展性功能可以自定义运行时进程。例如,消息检查功能用于检查消息的各个部分,使用参数筛选功能可以根据作用于消息头的筛选器来执行预设操作。

消息传递

消息传递层由通道组成。通道是以某种方式对消息进行处理(例如通过对消息进行身份验证)的组件。一组通道也称为“通道堆栈”。通道对消息和消息头进行操作。这与服务运行时层不同,服务运行时层主要涉及对消息正文内容的处理。

有两种类型的通道:传输通道和协议通道。

传输通道读取和写入来自网络(或外部的某些其他通信点)的消息。某些传输通道使用编码器来将消息(表示为 XML Infoset)转换为网络所使用的字节流的表示形式,或将字节流表示形式转换为消息。传输通道的示例包括 HTTP、命名管道、TCP 和 MSMQ。编码的示例包括 XML 和优化的二进制文件。

协议通道经常通过读取或写入消息的其他头的方式来实现消息处理协议。此类协议的示例包括 WS-Security 和 WS-Reliability。

消息传递层说明数据的可能格式和交换模式。WS-Security 是对在消息层启用安全性的 WS-Security 规范的实现。通过 WS-Reliable Messaging 通道可以保证消息的传递。编码器提供了大量的编码,可使用这些编码来满足消息的需要。HTTP 通道指定应使用超文本传输协议来传递消息。同理,TCP 通道指定 TCP 协议。事务流通道控制已经过事务处理的消息模式。通过命名管道通道可以进行进程间通信。使用 MSMQ 通道可以与 MSMQ 应用程序进行互操作。

承载和激活

服务的最终形式为程序。与其他程序类似,服务必须在可执行文件中运行。这称为“自承载”服务。

某些服务(如 IIS 或 Windows 激活服务 (WAS))“被承载”,即在外部代理管理的可执行文件中运行。通过 WAS,可以在运行 WAS 的计算机上部署 WCF 应用程序时自动激活该应用程序。还可通过可执行文件(.exe 文件)的形式来手动运行服务。服务也可作为 Windows 服务自动运行。COM+ 组件也可作为 WCF 服务承载。



3.WCF基础介绍:

     3.1地址:在WCF框架中每一个服务都是有一个唯一的URL地址的,在SQA系统中,其他的服务和客户端通过服务的地址来对服务进行访问。

     3.2绑定:绑定定义了服务和外部的通信的方式,它由一组成为绑定元素的的元素构成,这些元素组合起来就形成了通信基础结构,一个绑定可以包含以下内容:

                      通信所使用的协议,如http,tcp,p2p等,消息编码方式,消息安全保障策略,通信堆栈的其他使用元素。

     3.3契约:契约属于一种服务的公开接口的一部分,一个服务的契约,定义了服务端的公开的服务方法,使用的传输协议,可访问的地址,传输信息的格式等内容。基本上,契约的定义描述了该服务的功能和作用。一共包含4中契约:

                1.服务契约:服务契约将多个相关操作关联起来,组成一个功能单元,契约可以定义服务级设置。

                2.数据契约:服务中使用的数据类型必须在元数据中进行描述,使得其他个地方的可以与该服务交互操作。

                3.错误契约:可以将错误契约与服务操作进行关联,一指示可能返回到调用方的错误。

                4.消息契约:消息契约描述信息的格式。


     3.4 终结点:一个终节点由三个要素主城,分别就是,地址,绑定,契约。终节点用来发送或者接受消息的构造。一个终节点相当于服务的公开接口,么一个服务可以拥有一个或者多个终节点,但是共享一个url。

     3.5 元数据:服务的元数据描述服务的特性,外部的实体必须了解这些特性以便于服务之间通信,服务所公开的元数据包括XML架构文档和WSDL文档。启用元数据后,WCF通过检查服务及其终节点自动生成服务的元数据。若要发布服务的元数据,必须显示启用元数据行为。

    3.6 宿主:服务必须承载于某个进程,宿主是控制服务的生存期的应用程序。服务可以自寄存的,也可以由现有的宿主进程进行管理。从内部实现来看,一个服务宿主进程,可以包括一个或者多个应用程序区域。而对于每一个应用程序区域理论上又可以被放入任意个服务宿主,每个宿主可以拥有任意个上下文,每一个宿主可以有0个或者1个服务实例。



  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值