论文部分内容阅读
摘 要:近几年来各企业希望在信息化建设及其部门业务整合上能广泛使用SOA。因此为了实现SOA面向服务的目的,采用融合了.NET Web Service等相关技术后的WCF方法,做了用.NET的分布式开发技术WCF实现SOA面向服务的过程实验,获得了用WCF实现SOA面向服务程序时更加容易管理、更能实现系统整合优势的结果,得到用WCF实现SOA面向服务,可以对事物、安全、编码等统一管理和协调各服务器之间系统操作的结论。
关键词:WCF;SOA;.Net框架;面向服务
中图分类号:TP311.52
1 WCF及相关技术
1.1 WCF
WCF即Windows Communication Foundation的简写,被译为Windows通信基础,它是一组数据通信的应用程序接口。通常在程序开发中,往往是在Windows平台上开发和部署服务的软件开发包SDK(Software Development Kit)。WCF提供了服务运行时的环境(Runtime Environment),从而使程序开发时,程序员既可以将CLR类型公开为服务,又可以以CLR类型的方式使用服务。理论上来说,创建服务并一定需要WCF,但是由于面向服务架构(Service-Oriented Architecture)在软件工业中的广泛应用,微软基于这些通信方法并重新设计了一个统一的程序开发模型WCF[1]。
WCF既是对包括服务交互、类型转换、封送(Marshaling)以及各种协议的管理又是微软对一系列产业标准定义的实现。允许程序与本机或互联网上的计算机中的其他程序通过消息实现通讯,其整合了.NET平台的分布式系统技术,为程序开发者提供了大多数应用程序需要的基础功能模块。
1.2 WCF技术
Windows通信基础(WCF)是.NET平台实现SOA的利器。由于WCF是面向服务的框架,因此服务便是WCF的核心,也就是说对于WCF的程序设计需要更多的考虑其服务端构成框架服务类(Service Class)、宿主(Host)和端点(Endpoint),如图1WCF服务端构成框架所示。
服务类:一个标记了WCF属性的特有类,用来具体实现服务的业务逻辑。其包含多个方法。理论上其除了标记了一些WCF特有的属性外,与一般的面向组件类没有区分。
宿主:是应用程序进程,也是承载WCF服务运行的环境。如可用环境包括IIs方式、WAS方式、系统服务方式等。
端点:可以是一个,也可以是一组,是WCF实现通信的核心要素。其组成元素是地址(Address)、契约(Contract)和绑定(Binding)。在WCF中类Service Endpoint就代表一个Endpoint来交换消息。
地址:包含服务位置与传输协议,或者是用于服务通信的传输样式元素。对于WCF的每一个服务都具有唯一的地址。地址通常采用格式为:[传输协议]://[机器名或域名][:可选端口]/[可选的URI]。其中URI即统一资源标识,它可以是任意的唯一标识的字符串,例如服务名称或GUID。
绑定:WCF引入绑定(Binding)技术将服务之前的多种通信方式组合在一起,来保持一致性。例如一个绑定可能封装了传输协议、通信模式、消息编码、可靠性、安全性、事务传播以等相关选项的集合。当然也可以自己编写定制绑定。
契约:是用来描述服务功能的标准方式,定义双方沟通的协议,其所有的服务都会公开为一个或多个契约并以接口的方式来体现。WCF定义了服务传输数据类型的数据契约;定义了Client Endpoint使用服务操作的服务合约;定义了服务引发的错误信息的错误处理契约;定义了允许操控服务消息内容规范的消息合约。
2 SOA简述及相关技术
SOA是一种遵照开放的互操作协议的软件工程方法,通过组合可重用的软件资产实现软件系统[4]。在理论层面上,SOA与面向对象、面向组件一样都是软件组建及开发的方式,是一种思想、一种体系,而不是某种具体的软件产品。在技术层面上,SOA是一种“抽象的、松耦合的粗粒度软件架构”。在业务层面上,SOA的核心概念是“重用”和“互操作”。
SOA是一个组件模型,是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和合约联系起来,接口是采用中立的方式进行定义的,具有服务之间的松耦合性。因此,SOA和其它企业级架构的不同取决于SOA提供的业务灵活性。对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个可以满足当前还未知的业务需求的IT架构。使用WCF实现SOA,正好可以利用WCF的灵活性,把业务层封装,发布为Web服务。这样可以降低系统的耦合度,加大对未知业务的扩展性。
3 用WCF实现SOA面向服务过程
Web服务本来就是没有区分代码的,因此用WCF实现SOA面向服务程序时多开发了一个Service Interface,目的是为了让系统更加容易管理。在程序开发过程中,Service是不断更改的,如果是在UI层上直接调用服务层,其更改是频密的,所以在这里开发一个Service Interface层目的是为了把WSDL集成在同一个DLL程序集里面,进行统一修改。最后UI层只要直接调用Service Interface,就可以对系统直接进行操作。
在实现多功能分布式开发的时候,用WCF实现SOA的开发方式更能展示其优势。在企业级系统开发过程中,系统往往会使用B/S,C/S混合的开发模式。而在以往的开发过程,开发人员往往把B/S,C/S分开来实现。在使用WCF技术后,开发人员可以把功能模块统一发布为WCF,然后绑定不同的端点进行发布,将B/S和C/S方式的业务逻辑层真正地融合在一起,从而降低开发难度。
3 结束语
本文分析了使用WCF实现SOA面向服务,可以对事务、安全、编码等进行统一管理,协调了各服务器之间的系统操作。概述了WCF及其相关技术、SOA及其相关技术,指出了WCF既支持具有互操作性的Web服务,也能实现.NET客户端与.NET服务端的通信。
参考文献:
[1]CRAIG Mcmurty,MARC Mercuri,MATT Winkler.Windows communication foundation (WCF) unleashed[M].Indianapolis,Ind:Sams,2007.
[2]SCOTT Klein.Professional WCF Programming:.NET Development with the Windows Communication Foundation[M].Birmingham,UK:Wrox Press,2007.
[3]JUVAL Lowy.张逸,徐宁,译.WCF服务编程[M].北京:机械工业出版社,2008.
作者简介:赵新华(1980.07-),女,甘肃兰州人,电子与信息工程系,硕士研究生,讲师,研究方向:计算机应用;张克柱(1982.03-),男,甘肃兰州人,现代服务系,硕士研究生,讲师,研究方向:软件工程。
作者单位:兰州职业技术学院,兰州 730020
关键词:WCF;SOA;.Net框架;面向服务
中图分类号:TP311.52
1 WCF及相关技术
1.1 WCF
WCF即Windows Communication Foundation的简写,被译为Windows通信基础,它是一组数据通信的应用程序接口。通常在程序开发中,往往是在Windows平台上开发和部署服务的软件开发包SDK(Software Development Kit)。WCF提供了服务运行时的环境(Runtime Environment),从而使程序开发时,程序员既可以将CLR类型公开为服务,又可以以CLR类型的方式使用服务。理论上来说,创建服务并一定需要WCF,但是由于面向服务架构(Service-Oriented Architecture)在软件工业中的广泛应用,微软基于这些通信方法并重新设计了一个统一的程序开发模型WCF[1]。
WCF既是对包括服务交互、类型转换、封送(Marshaling)以及各种协议的管理又是微软对一系列产业标准定义的实现。允许程序与本机或互联网上的计算机中的其他程序通过消息实现通讯,其整合了.NET平台的分布式系统技术,为程序开发者提供了大多数应用程序需要的基础功能模块。
1.2 WCF技术
Windows通信基础(WCF)是.NET平台实现SOA的利器。由于WCF是面向服务的框架,因此服务便是WCF的核心,也就是说对于WCF的程序设计需要更多的考虑其服务端构成框架服务类(Service Class)、宿主(Host)和端点(Endpoint),如图1WCF服务端构成框架所示。
服务类:一个标记了WCF属性的特有类,用来具体实现服务的业务逻辑。其包含多个方法。理论上其除了标记了一些WCF特有的属性外,与一般的面向组件类没有区分。
宿主:是应用程序进程,也是承载WCF服务运行的环境。如可用环境包括IIs方式、WAS方式、系统服务方式等。
端点:可以是一个,也可以是一组,是WCF实现通信的核心要素。其组成元素是地址(Address)、契约(Contract)和绑定(Binding)。在WCF中类Service Endpoint就代表一个Endpoint来交换消息。
地址:包含服务位置与传输协议,或者是用于服务通信的传输样式元素。对于WCF的每一个服务都具有唯一的地址。地址通常采用格式为:[传输协议]://[机器名或域名][:可选端口]/[可选的URI]。其中URI即统一资源标识,它可以是任意的唯一标识的字符串,例如服务名称或GUID。
绑定:WCF引入绑定(Binding)技术将服务之前的多种通信方式组合在一起,来保持一致性。例如一个绑定可能封装了传输协议、通信模式、消息编码、可靠性、安全性、事务传播以等相关选项的集合。当然也可以自己编写定制绑定。
契约:是用来描述服务功能的标准方式,定义双方沟通的协议,其所有的服务都会公开为一个或多个契约并以接口的方式来体现。WCF定义了服务传输数据类型的数据契约;定义了Client Endpoint使用服务操作的服务合约;定义了服务引发的错误信息的错误处理契约;定义了允许操控服务消息内容规范的消息合约。
2 SOA简述及相关技术
SOA是一种遵照开放的互操作协议的软件工程方法,通过组合可重用的软件资产实现软件系统[4]。在理论层面上,SOA与面向对象、面向组件一样都是软件组建及开发的方式,是一种思想、一种体系,而不是某种具体的软件产品。在技术层面上,SOA是一种“抽象的、松耦合的粗粒度软件架构”。在业务层面上,SOA的核心概念是“重用”和“互操作”。
SOA是一个组件模型,是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和合约联系起来,接口是采用中立的方式进行定义的,具有服务之间的松耦合性。因此,SOA和其它企业级架构的不同取决于SOA提供的业务灵活性。对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个可以满足当前还未知的业务需求的IT架构。使用WCF实现SOA,正好可以利用WCF的灵活性,把业务层封装,发布为Web服务。这样可以降低系统的耦合度,加大对未知业务的扩展性。
3 用WCF实现SOA面向服务过程
Web服务本来就是没有区分代码的,因此用WCF实现SOA面向服务程序时多开发了一个Service Interface,目的是为了让系统更加容易管理。在程序开发过程中,Service是不断更改的,如果是在UI层上直接调用服务层,其更改是频密的,所以在这里开发一个Service Interface层目的是为了把WSDL集成在同一个DLL程序集里面,进行统一修改。最后UI层只要直接调用Service Interface,就可以对系统直接进行操作。
在实现多功能分布式开发的时候,用WCF实现SOA的开发方式更能展示其优势。在企业级系统开发过程中,系统往往会使用B/S,C/S混合的开发模式。而在以往的开发过程,开发人员往往把B/S,C/S分开来实现。在使用WCF技术后,开发人员可以把功能模块统一发布为WCF,然后绑定不同的端点进行发布,将B/S和C/S方式的业务逻辑层真正地融合在一起,从而降低开发难度。
3 结束语
本文分析了使用WCF实现SOA面向服务,可以对事务、安全、编码等进行统一管理,协调了各服务器之间的系统操作。概述了WCF及其相关技术、SOA及其相关技术,指出了WCF既支持具有互操作性的Web服务,也能实现.NET客户端与.NET服务端的通信。
参考文献:
[1]CRAIG Mcmurty,MARC Mercuri,MATT Winkler.Windows communication foundation (WCF) unleashed[M].Indianapolis,Ind:Sams,2007.
[2]SCOTT Klein.Professional WCF Programming:.NET Development with the Windows Communication Foundation[M].Birmingham,UK:Wrox Press,2007.
[3]JUVAL Lowy.张逸,徐宁,译.WCF服务编程[M].北京:机械工业出版社,2008.
作者简介:赵新华(1980.07-),女,甘肃兰州人,电子与信息工程系,硕士研究生,讲师,研究方向:计算机应用;张克柱(1982.03-),男,甘肃兰州人,现代服务系,硕士研究生,讲师,研究方向:软件工程。
作者单位:兰州职业技术学院,兰州 730020