论文部分内容阅读
摘要:Web Service体系的日趋成熟化使得该技术广泛应用于网络信息的传输,该文在深入研究Web Service体系架构及所对应技术框架的基础上,通过分析Web Service体系的优点以及SOA系统架构面向服务的设计思想,从面向服务的技术架构出发,提出了一种基于SOA的Web Service框架体系。
關键词:Web Service体系;SOA;面向服务;层次模型
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)29-0026-03
1 概述
近些年,随着B2B、B2C等电商模式的迅猛发展,越来越多的传统企业都加入到该行列中,当然这种发展离不开Internet的普及,更离不开Web Service技术的支持,Web Service正在改变着Internet,而Internet正改变着世界。Web Service技术将不同类型 、构建于不同时期的异构系统进行灵活的整合,这使得跨平台的操作更加容易。
同时,逐渐兴起的软件工程方法SOA(面向服务的架构)具有松散耦合、粗粒度、共享服务等特点,这为多业务、跨平台间的应用通信提供了一种很好的解决方案。而Web Service体系的成功应用使得SOA这一理论架构模型得到很好的验证。
2 Web Service
2.1 Web Service的逻辑架构
利用层次化的方法进行分析,我们可以将Web Service的工作流程抽象为一个三层结构的模型,其结构如图1所示。
其中每一层次都对应着本层的工作核心,它们可以由一个或多个工作核心并行组成。在这个抽象模型中,每个层次都有其独立的接口,各层服务通过接口向下调用服务并向上提供服务,各层功能如下所示。
1) 应用层。提供使用界面,方便用户进行操作。将Web Service的业务逻辑进行封装,使其成为传统的桌面应用程序,并对系统功能的提供者进行隔离。
2) 业务层。是整个Web Service系统的核心。实现具体的业务流程以及对传输的数据进行处理,并将处理结果返回给应用层。
3) 数据层。提供Web Service系统中的数据服务,实现所有数据的存储和验证,保证整个系统中有充足的数据信息和数据逻辑[1]。
层次化的模型,使非常抽象的Web Service系统具体化,可视化,从而让系统的搭建、扩展、维护更加方便。但为了更加具体的研究Web service系统,我们将业务层及数据层进行更详细的层次划分。
2.1.1 业务层及技术架构
业务层是整个Web Service系统的核心。在此对该层进行详细的划分,各层分别实现不同的功能,高层调用下层服务,而下层向高层提供服务。具体业务层及技术架构如图2所示。
1) 服务工作流层。此层主要利用Web Service工作流语言(WSFL)对Web Service在工作流中如何相互作用进行描述,并对系统中处理服务到服务的通信进行标准化定义。
2) 服务发现层。服务发现层通过静态方式获取WSDL文档从而发现服务。WSDL文档是服务发布层所发布的以本地文件形式存在的一种文档。该层是基于服务发布层的,只有服务通过发布层发布,才能发现该服务。
3) 服务发布层。该层主要用于服务的发布,服务提供者将WSDL文档发送给服务客户端,或者,服务提供者也可以将WSDL文档发布到本地的WSDL注册库或UDDI注册中心。服务客户端也可以通过这些注册库来获取该文档。
4) 服务描述层。该层提供了Web Service具体的调用方法。虽然WSDL已经对服务进行了描述,但这种描述仅是一个基本的服务描述手段,它仅仅将服务分为服务实现和服务接口这两部分。所以该层给出了更为详细的服务调用方法。
5) 消息层。该层又称为基于XML的消息层,即该层使用的是基于XML的消息协议SOAP。通过SOAP协议,对Web Service系统中的服务消息进行发布(Publish)、查找(Find)、绑定(Bind)等操作。
6) 数据模型层。该层主要采用基础的数据表现方式XML来对Web Service系统中的数据结构进行模型化的描述。
7) 数据表现层。该层使用全球通用的可扩展标注语言XML对整个Web Service上层协议所提供的数据或信息进行统一的描述,保证了数据在传输过程中格式的一致性,对数据进行标准化处理。
8) 网络传输层。该层是Web Service的基础。Web Service要进行服务的共享和数据的传输,前提是保证不同数据从一台主机发送到另一台主机之前其格式是能被相互识别的,而网络传输层就是在数据传输前利用统一的、标准的HTTP、SMTP、FTP等网络协议对数据进行最后的封装,从而对所传输的数据进行标准化的分类。
2.1.2 数据层及技术架构
数据层是Web Service的底层基础,它为整个系统提供了数据支持。数据层可以详细划分为数据访问层和数据存储层。数据层逻辑架构及技术如图3所示。
1) 数据访问层。该层又叫做DAL(Data Access Layer)层,其主要功能是实现对数据库的访问并通过数据访问接口对数据表进行增、删、改、查等操作。
2) 数据存储层。该层主要负责对数据进行存储,通过数据访问层既可以将数据存储到该层,也可以对该层的数据进行访问,从而将数据返回到数据访问层进行处理。传统意义上该层主要使用SQL、Oracle等数据库进行数据的存储。
2.2 Web Service的优点
Web Service系统的优点使得Web Service在各个平台上都能得到广泛的应用,我们通过对 Web Service系统框架的研究并对其进行详细的层次划分,可以很明显看出这种框架及技术体系所具有的巨大优势,其主要优点如下。 1) 跨平台性。Web Service这种分层的体系结构使得该结构更注重服务的模块化与功能化,而不再关注具体技术的实现细节,从而保证了 Web Service系统的跨平台性,比如使用Ubuntu操作系统的用户,即能够访问一台Windows服务器上的Web服务,也能够请求一台Linux服务器上的Web服务。
2) 跨防火墙的通信。利用Web Service进行信息的传输,这样用户就可以在客户端直接调用中间层组件与服务器端进行通信,此时Web Service作为通信过程中的中间层组件,从而可以跨越客户端和服务器之间的防火墙或者代理服务器。
3) 应用程序集成。Web Service将应用程序的逻辑部分进行分类并加以整合,这样就可以让不同平台上不同的服务重用这些应用程序。这种形式充分体现了Web Service系统模块化、分层的思想,使得在开发过程中更加高效。
3 基于SOA的Web Service
3.1 SOA的概念
从概念上来讲,面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互[2]。
同以往以技术实现为核心的组件模式、对象模式相比,SOA不再考虑这种细粒度的方式,而是更注重以服务为模块的粗粒度的实现。它根据用户所需的服务对服务组件进行松散耦合的粗粒度的分布式部署,从而对不同的服务模块进行组合和使用。
SOA是一种松散耦合的、粗粒度的服务框架。该框架不涉及底层编程和底层通信,它只是对服务之间的通信进行简单、精确的接口定义。所以SOA框架可以快速、高效的设计出Web Service所需的各种组件及部署形式,从而可以搭建出一个更加可靠、更具有重用性的业务系统。
3.2 SOA的体系结构
SOA是一种松散藕合的软件体系结构,在这种体系结构中,由各自独立可重用的服务去构成系统功能。这些服务向外公布的接口有着明确的意义,软件的开发是通过对这些实现透明的接口的调用来完成。其体系结构由服务请求者、服务提供者、服务注册中心这三层构成,如图4所示[3]。
在SOA体系结构中,层次体系包括服务请求者、服务注册中心、服务提供者这三层。
服务请求者一般是指进行服务请求的应用程序或服务,包括浏览器、客户端等。它对注册中心所记录的服务信息进行查询后,若找到所需服务便会根据查询到的接口说明信息将与服务提供者所对应的服务进行绑定并调用该服务。
服务注册中心处于中心位置,该层提供了展示服务的功能[4]。服务请求者通过查询存储有服务信息的注册中心发现所要调用服务的接口信息,并将查询结果返回给服务请求者。同时,服务注册中心存储服务提供者所发布的服务信息,且服务提供者可以对服务注册中心进行相关操作。
服務提供者是创建服务的实体。该层向服务注册中心发布服务接口信息以供服务请求者在服务注册中心发现该服务,同时,从服务请求者处接受服务绑定请求,若绑定请求通过则向服务请求者提供服务,并且可以远程执行所请求的服务。
3.3 两者结合的可行性
Web Service是一种自描述、自包含、模块化的软件组件系统,它使用通用、标准的可扩展标记语言(XML)来描述服务功能,提供数据信息,以简单对象访问协议(SOAP)在分布式环境下进行信息交换,形成一个在线应用服务API。
SOA系统架构是一种模型,它的出现克服了面向对象架构模型以功能为核心的紧密耦合的缺点。SOA的整体设计思想是面向服务的,所以说SOA是更高层次意义上的架构。
这种基于标准、松散藕合、共享服务、粗粒度的架构思想与Web Service体系结构有着高度的一致性[5]。可以说Web Service是SOA架构的具体实现,而SOA为Web Service提供了架构理论基础[6]。所以依据SOA体系架构将Web Service层次进行重组,进而让Web Service系统架构与SOA体系架构保持高度的一致性,这样使得在以后搭建Web Service系统时更加高效、迅速,这样的结合在Web Service系统的传播方面有着非常高的实用价值。
3.4 基于SOA的Web 框架
Web Service系统执行流程从逻辑上总体可分为应用层、业务层和数据层,对应的业务层和数据层也可划分为更加详细的层次,但这种分层从本质上来说是面向功能的分层,它更注重的是需求的实现,所以我们将SOA架构与Web Service体系相结合,将Web Service重新划分为一个基于SOA的三层模型结构,使其面向流程,并且可以很好地适应需求的变化,在需求改变的基础上,只需要增加新需求的功能模块,而不是将整个体统都进行重新搭建。基于SOA的Web系统架构如图5所示,这样就为具体的Web Service系统的搭建提供了一个定义良好、可操作的技术框架。
4 结束语
本文在深入研究 Web Service系统架构的基础上,分析Web Service系统存在的优缺点,结合已有的SOA体系架构,通过研究这两者之间的关系,提出了一种基于SOA的Web Service体系架构。该架构将Web Service系统于SOA架构相结合,使得新的架构结构合理,简单实用,能够满足各子系统的业务异构性和灵活性的需求,这样保证了系统的易扩展性。并且该系统架构利用多接口的数据调用可以有效地缓解数据处理的压力,减少了对业务的干扰,提高了系统的鲁棒性,有利于系统的扩展、重组和维护,进一步将Web Service系统的工作集中在服务和应用的封装上。
参考文献:
[1] 郭文越,陈虹,刘万军.基于SOA的数据共享与交换平台[J].计算机工程,2010(10).
[2] 邢少敏,周伯生.SOA研究进展[J].计算机科学,2008,35(9):185-188.
[3] 郎炯,刘宴兵,熊仕勇.基于SOA软件架构的数据集成方法[J].计算机应用,2010,30(9):102-105.
[4] 陈刚,马志远,郭昊翾.SOA技术在标准资源服务平台中的应用研究[J].标准科学,2013(1).
[5] 王先平,张永芬.基于SOA架构的分布式聚类算法的Web服务模型研究[J].数字技术与应用,2014(4).
[6] 刘永庆.一种基于SOA架构的访问控制安全服务模型研究[J].网络安全技术与应用,2016(5).
關键词:Web Service体系;SOA;面向服务;层次模型
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)29-0026-03
1 概述
近些年,随着B2B、B2C等电商模式的迅猛发展,越来越多的传统企业都加入到该行列中,当然这种发展离不开Internet的普及,更离不开Web Service技术的支持,Web Service正在改变着Internet,而Internet正改变着世界。Web Service技术将不同类型 、构建于不同时期的异构系统进行灵活的整合,这使得跨平台的操作更加容易。
同时,逐渐兴起的软件工程方法SOA(面向服务的架构)具有松散耦合、粗粒度、共享服务等特点,这为多业务、跨平台间的应用通信提供了一种很好的解决方案。而Web Service体系的成功应用使得SOA这一理论架构模型得到很好的验证。
2 Web Service
2.1 Web Service的逻辑架构
利用层次化的方法进行分析,我们可以将Web Service的工作流程抽象为一个三层结构的模型,其结构如图1所示。
其中每一层次都对应着本层的工作核心,它们可以由一个或多个工作核心并行组成。在这个抽象模型中,每个层次都有其独立的接口,各层服务通过接口向下调用服务并向上提供服务,各层功能如下所示。
1) 应用层。提供使用界面,方便用户进行操作。将Web Service的业务逻辑进行封装,使其成为传统的桌面应用程序,并对系统功能的提供者进行隔离。
2) 业务层。是整个Web Service系统的核心。实现具体的业务流程以及对传输的数据进行处理,并将处理结果返回给应用层。
3) 数据层。提供Web Service系统中的数据服务,实现所有数据的存储和验证,保证整个系统中有充足的数据信息和数据逻辑[1]。
层次化的模型,使非常抽象的Web Service系统具体化,可视化,从而让系统的搭建、扩展、维护更加方便。但为了更加具体的研究Web service系统,我们将业务层及数据层进行更详细的层次划分。
2.1.1 业务层及技术架构
业务层是整个Web Service系统的核心。在此对该层进行详细的划分,各层分别实现不同的功能,高层调用下层服务,而下层向高层提供服务。具体业务层及技术架构如图2所示。
1) 服务工作流层。此层主要利用Web Service工作流语言(WSFL)对Web Service在工作流中如何相互作用进行描述,并对系统中处理服务到服务的通信进行标准化定义。
2) 服务发现层。服务发现层通过静态方式获取WSDL文档从而发现服务。WSDL文档是服务发布层所发布的以本地文件形式存在的一种文档。该层是基于服务发布层的,只有服务通过发布层发布,才能发现该服务。
3) 服务发布层。该层主要用于服务的发布,服务提供者将WSDL文档发送给服务客户端,或者,服务提供者也可以将WSDL文档发布到本地的WSDL注册库或UDDI注册中心。服务客户端也可以通过这些注册库来获取该文档。
4) 服务描述层。该层提供了Web Service具体的调用方法。虽然WSDL已经对服务进行了描述,但这种描述仅是一个基本的服务描述手段,它仅仅将服务分为服务实现和服务接口这两部分。所以该层给出了更为详细的服务调用方法。
5) 消息层。该层又称为基于XML的消息层,即该层使用的是基于XML的消息协议SOAP。通过SOAP协议,对Web Service系统中的服务消息进行发布(Publish)、查找(Find)、绑定(Bind)等操作。
6) 数据模型层。该层主要采用基础的数据表现方式XML来对Web Service系统中的数据结构进行模型化的描述。
7) 数据表现层。该层使用全球通用的可扩展标注语言XML对整个Web Service上层协议所提供的数据或信息进行统一的描述,保证了数据在传输过程中格式的一致性,对数据进行标准化处理。
8) 网络传输层。该层是Web Service的基础。Web Service要进行服务的共享和数据的传输,前提是保证不同数据从一台主机发送到另一台主机之前其格式是能被相互识别的,而网络传输层就是在数据传输前利用统一的、标准的HTTP、SMTP、FTP等网络协议对数据进行最后的封装,从而对所传输的数据进行标准化的分类。
2.1.2 数据层及技术架构
数据层是Web Service的底层基础,它为整个系统提供了数据支持。数据层可以详细划分为数据访问层和数据存储层。数据层逻辑架构及技术如图3所示。
1) 数据访问层。该层又叫做DAL(Data Access Layer)层,其主要功能是实现对数据库的访问并通过数据访问接口对数据表进行增、删、改、查等操作。
2) 数据存储层。该层主要负责对数据进行存储,通过数据访问层既可以将数据存储到该层,也可以对该层的数据进行访问,从而将数据返回到数据访问层进行处理。传统意义上该层主要使用SQL、Oracle等数据库进行数据的存储。
2.2 Web Service的优点
Web Service系统的优点使得Web Service在各个平台上都能得到广泛的应用,我们通过对 Web Service系统框架的研究并对其进行详细的层次划分,可以很明显看出这种框架及技术体系所具有的巨大优势,其主要优点如下。 1) 跨平台性。Web Service这种分层的体系结构使得该结构更注重服务的模块化与功能化,而不再关注具体技术的实现细节,从而保证了 Web Service系统的跨平台性,比如使用Ubuntu操作系统的用户,即能够访问一台Windows服务器上的Web服务,也能够请求一台Linux服务器上的Web服务。
2) 跨防火墙的通信。利用Web Service进行信息的传输,这样用户就可以在客户端直接调用中间层组件与服务器端进行通信,此时Web Service作为通信过程中的中间层组件,从而可以跨越客户端和服务器之间的防火墙或者代理服务器。
3) 应用程序集成。Web Service将应用程序的逻辑部分进行分类并加以整合,这样就可以让不同平台上不同的服务重用这些应用程序。这种形式充分体现了Web Service系统模块化、分层的思想,使得在开发过程中更加高效。
3 基于SOA的Web Service
3.1 SOA的概念
从概念上来讲,面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互[2]。
同以往以技术实现为核心的组件模式、对象模式相比,SOA不再考虑这种细粒度的方式,而是更注重以服务为模块的粗粒度的实现。它根据用户所需的服务对服务组件进行松散耦合的粗粒度的分布式部署,从而对不同的服务模块进行组合和使用。
SOA是一种松散耦合的、粗粒度的服务框架。该框架不涉及底层编程和底层通信,它只是对服务之间的通信进行简单、精确的接口定义。所以SOA框架可以快速、高效的设计出Web Service所需的各种组件及部署形式,从而可以搭建出一个更加可靠、更具有重用性的业务系统。
3.2 SOA的体系结构
SOA是一种松散藕合的软件体系结构,在这种体系结构中,由各自独立可重用的服务去构成系统功能。这些服务向外公布的接口有着明确的意义,软件的开发是通过对这些实现透明的接口的调用来完成。其体系结构由服务请求者、服务提供者、服务注册中心这三层构成,如图4所示[3]。
在SOA体系结构中,层次体系包括服务请求者、服务注册中心、服务提供者这三层。
服务请求者一般是指进行服务请求的应用程序或服务,包括浏览器、客户端等。它对注册中心所记录的服务信息进行查询后,若找到所需服务便会根据查询到的接口说明信息将与服务提供者所对应的服务进行绑定并调用该服务。
服务注册中心处于中心位置,该层提供了展示服务的功能[4]。服务请求者通过查询存储有服务信息的注册中心发现所要调用服务的接口信息,并将查询结果返回给服务请求者。同时,服务注册中心存储服务提供者所发布的服务信息,且服务提供者可以对服务注册中心进行相关操作。
服務提供者是创建服务的实体。该层向服务注册中心发布服务接口信息以供服务请求者在服务注册中心发现该服务,同时,从服务请求者处接受服务绑定请求,若绑定请求通过则向服务请求者提供服务,并且可以远程执行所请求的服务。
3.3 两者结合的可行性
Web Service是一种自描述、自包含、模块化的软件组件系统,它使用通用、标准的可扩展标记语言(XML)来描述服务功能,提供数据信息,以简单对象访问协议(SOAP)在分布式环境下进行信息交换,形成一个在线应用服务API。
SOA系统架构是一种模型,它的出现克服了面向对象架构模型以功能为核心的紧密耦合的缺点。SOA的整体设计思想是面向服务的,所以说SOA是更高层次意义上的架构。
这种基于标准、松散藕合、共享服务、粗粒度的架构思想与Web Service体系结构有着高度的一致性[5]。可以说Web Service是SOA架构的具体实现,而SOA为Web Service提供了架构理论基础[6]。所以依据SOA体系架构将Web Service层次进行重组,进而让Web Service系统架构与SOA体系架构保持高度的一致性,这样使得在以后搭建Web Service系统时更加高效、迅速,这样的结合在Web Service系统的传播方面有着非常高的实用价值。
3.4 基于SOA的Web 框架
Web Service系统执行流程从逻辑上总体可分为应用层、业务层和数据层,对应的业务层和数据层也可划分为更加详细的层次,但这种分层从本质上来说是面向功能的分层,它更注重的是需求的实现,所以我们将SOA架构与Web Service体系相结合,将Web Service重新划分为一个基于SOA的三层模型结构,使其面向流程,并且可以很好地适应需求的变化,在需求改变的基础上,只需要增加新需求的功能模块,而不是将整个体统都进行重新搭建。基于SOA的Web系统架构如图5所示,这样就为具体的Web Service系统的搭建提供了一个定义良好、可操作的技术框架。
4 结束语
本文在深入研究 Web Service系统架构的基础上,分析Web Service系统存在的优缺点,结合已有的SOA体系架构,通过研究这两者之间的关系,提出了一种基于SOA的Web Service体系架构。该架构将Web Service系统于SOA架构相结合,使得新的架构结构合理,简单实用,能够满足各子系统的业务异构性和灵活性的需求,这样保证了系统的易扩展性。并且该系统架构利用多接口的数据调用可以有效地缓解数据处理的压力,减少了对业务的干扰,提高了系统的鲁棒性,有利于系统的扩展、重组和维护,进一步将Web Service系统的工作集中在服务和应用的封装上。
参考文献:
[1] 郭文越,陈虹,刘万军.基于SOA的数据共享与交换平台[J].计算机工程,2010(10).
[2] 邢少敏,周伯生.SOA研究进展[J].计算机科学,2008,35(9):185-188.
[3] 郎炯,刘宴兵,熊仕勇.基于SOA软件架构的数据集成方法[J].计算机应用,2010,30(9):102-105.
[4] 陈刚,马志远,郭昊翾.SOA技术在标准资源服务平台中的应用研究[J].标准科学,2013(1).
[5] 王先平,张永芬.基于SOA架构的分布式聚类算法的Web服务模型研究[J].数字技术与应用,2014(4).
[6] 刘永庆.一种基于SOA架构的访问控制安全服务模型研究[J].网络安全技术与应用,2016(5).