C# WCF服务(一)

目录

WCF服务

概述

SOA

SOA的意图

SOA的实现

WCF的作用

WCF 的基本概念

WCF的优势


WCF服务

概述

Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。

WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。

WCF合并了Web服务、.Net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。

WCF专门用于面向服务开发。

SOA

面向服务的架构

SOA即为Service-Oriented Architecture缩写,翻译过来也就是面向服务的软件架构。通过将软件功能或者是业务流程进行服务化发布,从而达到一种面向于契约和服务,独立于使用平台的效果。而这种效果是跨平台,跨语言的。

如果要简述SOA,那么就必须去简述一下SOA的发展历史。如同设计模式每一个模式书写的那样,SOA的出现必然有其意图和”模式是做什么的”这两方面的内容。那么让我先来简述一下SOA出现的原因。

SOA的意图

SOA的出现主要是为了解决如下两个问题:

  1. 程序模块或者是软件之间调用关系杂乱,导致某个地方要进行修改,对于其他的调用方来说,也要进行一些反复的配置或者修改。通过隔离各个软件之间的关系,统一进行调用接口的管理,改变杂乱的调用关系

    C# WCF服务(一)

  2. 随着企业软件的日益发展,单模块已经不能满足发展的需要,从而重构形成了多模块的整体架构,这一步通常会使各个模块之间的调用更加的明确,也会使重复功能更加的少,使软件的模块代码功能更加的明确。于此同时对于各个模块所控制的数据库部分,也会进行相应的水平分库或者是进行垂直分表,来满足日益提高的业务需求。如果这样“模块化”之后,还是不能满足需求,那么就需要将一个软件的各个功能在进行相应的细化拆分。使得软件的各个功能从原来的模块化,变成为服务化。这样软件的功能可以分布在不同的服务器上,而不需要将一个软件的所有功能发布在同一个服务器上

    C# WCF服务(一)

SOA的实现

SOA的实现有很多种,例如:webservice、web api等等,我们比较常用的服务发布http接口,通过post json来进行交互。

WCF的作用

整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTPFTP的相关技术。

简单的归结为四大部分

  1. 网络服务的协议,即用什么网络协议开放客户端接入。

  2. 业务服务的协议,即声明服务提供哪些业务。

  3. 数据类型声明,即对客户端与服务器端通信的数据部分进行一致化。

  4. 传输安全性相关的定义。

通信双方的沟通方式,由合约来订定。通信双方所遵循的通信方法,由协议绑定来订定。通信期间的安全性,由双方约定的安全性层次来订定。

WCF 的基本概念

是以契约(Contract) 来定义双方沟通的协议,契约必须要以接口的方式来体现,而实际的服务代码必须要由这些契约接口派生并实现。契约分成了四种:

  1. 数据契约(Data Contract),订定双方沟通时的数据格式。

  2. 服务契约(Service Contract),订定服务的定义。

  3. 操作契约(Operation Contract),订定服务提供的方法。

  4. 消息契约(Message Contract),订定在通信期间改写消息内容的规范。

WCF 实现上已经支持了传输层次安全性 (Transport-level security) 以及消息层次安全性 (Message-level security) 两种。

传输层次安全性:在数据传输时期加密,例如 SSL。

消息层次安全性:在数据处理时就加密,例如使用数字签名,散列或是使用**加密法等。

WCF的优势

  1. 统一性:它是由多种技术的整合,但仍然可以向.net一样面向对象代码编写,因为它采用托管代码编写方式。

  2. 互操作性:它采用SOAP通讯机制,保证了系统之间的互操作性,可以跨进程、跨机制。甚至跨平台通信,只要他支持web Service。

  3. 安全与可靠性:因为它包含多种协议,故有多种协议的安全机制,尤其是SOAP的。

  4. 兼容性:它可以在新旧平台上使用。