1、基于 SOA 架构的 Web Service 体系研究 陈建虎 肖成龙 宋好 魏春林 辽宁工程技术大学软件学院 辽宁工程技术大学工商学院 摘 要: Web Service 体系的日趋成熟化使得该技术广泛应用于网络信息的传输, 该文在深入研究 Web Service 体系架构及所对应技术框架的基础上, 通过分析 Web Service 体系的优点以及 SOA 系统架构面向服务的设计思想, 从面向服务的技术架构出发, 提出了一种基于 SOA 的 Web Service 框架体系。关键词: Web Service 体系; SOA; 面向服务; 层次模型; 作者简介:陈建虎 (1992) , 男, 硕
2、士, 主要研究方向为面向服务架构、Web服务;作者简介:肖成龙, 副教授;作者简介:宋好, 软件学院学生;作者简介:魏春林, 讲师。收稿日期:2017-08-05基金:国家自然科学青年基金项目 (61404069) Received: 2017-08-051 概述近些年, 随着 B2B、B2C 等电商模式的迅猛发展, 越来越多的传统企业都加入到该行列中, 当然这种发展离不开 Interne 的普及, 更离不开 Web Service 技术的支持, Web Service 正在改变着 Internet, 而 Internet 正改变着世界。Web Service 技术将不同类型、构建于不同时期的
3、异构系统进行灵活的整合, 这使得跨平台的操作更加容易。同时, 逐渐兴起的软件工程方法 SOA (面向服务的架构) 具有松散耦合、粗粒度、共享服务等特点, 这为多业务、跨平台间的应用通信提供了一种很好的解决方案。而 Web Service 体系的成功应用使得 SOA 这一理论架构模型得到很好的验证。2 Web Service2.1 Web Service 的逻辑架构利用层次化的方法进行分析, 我们可以将 Web Service 的工作流程抽象为一个三层结构的模型, 其结构如图 1 所示。图 1 Web Service 总逻辑架构 下载原图其中每一层次都对应着本层的工作核心, 它们可以由一个或多个
4、工作核心并行组成。在这个抽象模型中, 每个层次都有其独立的接口, 各层服务通过接口向下调用服务并向上提供服务, 各层功能如下所示。1) 应用层。提供使用界面, 方便用户进行操作。将 Web Service 的业务逻辑进行封装, 使其成为传统的桌面应用程序, 并对系统功能的提供者进行隔离。2) 业务层。是整个 Web Service 系统的核心。实现具体的业务流程以及对传输的数据进行处理, 并将处理结果返回给应用层。3) 数据层。提供 Web Service 系统中的数据服务, 实现所有数据的存储和验证, 保证整个系统中有充足的数据信息和数据逻辑1。层次化的模型, 使非常抽象的 Web Serv
5、ice 系统具体化, 可视化, 从而让系统的搭建、扩展、维护更加方便。但为了更加具体的研究 Web service 系统, 我们将业务层及数据层进行更详细的层次划分。2.1.1 业务层及技术架构业务层是整个 Web Service 系统的核心。在此对该层进行详细的划分, 各层分别实现不同的功能, 高层调用下层服务, 而下层向高层提供服务。具体业务层及技术架构如图 2 所示。图 2 业务层及技术架构 下载原图1) 服务工作流层。此层主要利用 Web Service 工作流语言 (WSFFLL) ) 对对WWeebb SSeerrvviiccee 在在工工作作流流中中如如何何相相互互作作用用进进行
6、行描描述述, , 并并对对系系统统中中处处理理服服务务到到服服务务的的通通信信进进行行标标准准化化定定义义。2) 服务发现层。服务发现层通过静态方式获取 WSDL 文档从而而发发现现服服务务。WWSSDDLL 文文档档是是服服务务发发布布层层所所发发布布的的以以本本地地文文件件形形式式存存在在的的一一种种文文档档。该该层层是是基基于于服服务务发发布布层层的的, , 只只有有服服务通过发布层发布, 才能发现该服务。3) 服务发布层。该层主要用于服务的发布, 服务提供者将 WSDL 文档发送给服务客户端, 或者, 服务提供者也可以将 WS-DL 文档发布到本地的 WSDL 注册库或UDDI 注册中
7、心。服务客户端也可以通过这些注册库来获取该文档。4) 服务描述层。该层提供了 Web Service 具体的调用方法。虽然 WSDL 已经对服务进行了描述, 但这种描述仅是一个基本的服务描述手段, 它仅仅将服务分为服务实现和服务接口这两部分。所以该层给出了更为详细的服务调用方法。5) 消息层。该层又称为基于 XML 的消息层, 即该层使用的是基于 XML 的消息协议 SOAP。通过 SOAP 协议, 对 Web Service 系统中的服务消息进行发布 (Publish) 、查找 (Find) 、绑定 (Bind) 等操作。6) 数据模型层。该层主要采用基础的数据表现方式 XML 来对 Web
8、 Service 系统中的数据结构进行模型化的描述。7) 数据表现层。该层使用全球通用的可扩展标注语言 XML 对整个 Web Service上层协议所提供的数据或信息进行统一的描述, 保证了数据在传输过程中格式的一致性, 对数据进行标准化处理。8) 网络传输层。该层是 Web Service 的基础。Web Service 要进行服务的共享和数据的传输, 前提是保证不同数据从一台主机发送到另一台主机之前其格式是能被相互识别的, 而网络传输层就是在数据传输前利用统一的、标准的HTTP、SMTP、FTP 等网络协议对数据进行最后的封装, 从而对所传输的数据进行标准化的分类。2.1.2 数据层及技
9、术架构数据层是 Web Service 的底层基础, 它为整个系统提供了数据支持。数据层可以详细划分为数据访问层和数据存储层。数据层逻辑架构及技术如图 3 所示。图 3 数据层逻辑架构及技术 下载原图1) 数据访问层。该层又叫做 DAL (Data Access Layer) 层, 其主要功能是实现对数据库的访问并通过数据访问接口对数据表进行增、删、改、查等操作。2) 数据存储层。该层主要负责对数据进行存储, 通过数据访问层既可以将数据存储到该层, 也可以对该层的数据进行访问, 从而将数据返回到数据访问层进行处理。传统意义上该层主要使用 SQL、Oracle 等数据库进行数据的存储。2.2 W
10、eb Service 的优点Web Service 系统的优点使得 Web Service 在各个平台上都能得到广泛的应用, 我们通过对 Web Service 系统框架的研究并对其进行详细的层次划分, 可以很明显看出这种框架及技术体系所具有的巨大优势, 其主要优点如下。1) 跨平台性。Web Service 这种分层的体系结构使得该结构更注重服务的模块化与功能化, 而不再关注具体技术的实现细节, 从而保证了 Web Service 系统的跨平台性, 比如使用 Ubuntu 操作系统的用户, 即能够访问一台 Windows 服务器上的 Web 服务, 也能够请求一台 Linux 服务器上的 W
11、eb 服务。2) 跨防火墙的通信。利用 Web Service 进行信息的传输, 这样用户就可以在客户端直接调用中间层组件与服务器端进行通信, 此时 Web Service 作为通信过程中的中间层组件, 从而可以跨越客户端和服务器之间的防火墙或者代理服务器。3) 应用程序集成。Web Service 将应用程序的逻辑部分进行分类并加以整合, 这样就可以让不同平台上不同的服务重用这些应用程序。这种形式充分体现了Web Service 系统模块化、分层的思想, 使得在开发过程中更加高效。3 基于 SOA 的 Web Service3.1 SOA 的概念从概念上来讲, 面向服务的架构 (SOA) 是
12、一个组件模型, 它将应用程序的不同功能单元 (称为服务) 通过这些服务之间定义良好的接口系起来。接口是采用中立的方式进行定义的, 它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互2。同以往以技术实现为核心的组件模式、对象模式相比, SOA 不再考虑这种细粒度的方式, 而是更注重以服务为模块的粗粒度的实现。它根据用户所需的服务对服务组件进行松散耦合的粗粒度的分布式部署, 从而对不同的服务模块进行组合和使用。SOA 是一种松散耦合的、粗粒度的服务框架。该框架不涉及底层编程和底层通信, 它只是对服务之间的通信进行简单、精确的接口
13、定义。所以 SOA 框架可以快速、高效的设计出 Web Service 所需的各种组件及部署形式, 从而可以搭建出一个更加可靠、更具有重用性的业务系统。3.2 SOA 的体系结构SOA 是一种松散藕合的软件体系结构, 在这种体系结构中, 由各自独立可重用的服务去构成系统功能。这些服务向外公布的接口有着明确的意义, 软件的开发是通过对这些实现透明的接口的调用来完成。其体系结构由服务请求者、服务提供者、服务注册中心这三层构成, 如图 4 所示3。图 4 SOA 体系结构 下载原图在 SOA 体系结构中, 层次体系包括服务请求者、服务注册中心、服务提供者这三层。服务请求者一般是指进行服务请求的应用程
14、序或服务, 包括浏览器、客户端等。它对注册中心所记录的服务信息进行查询后, 若找到所需服务便会根据查询到的接口说明信息将与服务提供者所对应的服务进行绑定并调用该服务。服务注册中心处于中心位置, 该层提供了展示服务的功能4。服务请求者通过查询存储有服务信息的注册中心发现所要调用服务的接口信息, 并将查询结果返回给服务请求者。同时, 服务注册中心存储服务提供者所发布的服务信息, 且服务提供者可以对服务注册中心进行相关操作。服务提供者是创建服务的实体。该层向服务注册中心发布服务接口信息以供服务请求者在服务注册中心发现该服务, 同时, 从服务请求者处接受服务绑定请求, 若绑定请求通过则向服务请求者提供
15、服务, 并且可以远程执行所请求的服务。3.3 两者结合的可行性Web Service 是一种自描述、自包含、模块化的软件组件系统, 它使用通用、标准的可扩展标记语言 (XML) 来描述服务功能, 提供数据信息, 以简单对象访问协议 (SOAP) 在分布式环境下进行信息交换, 形成一个在线应用服务 API。SOA 系统架构是一种模型, 它的出现克服了面向对象架构模型以功能为核心的紧密耦合的缺点。SOA 的整体设计思想是面向服务的, 所以说 SOA 是更高层次意义上的架构。这种基于标准、松散藕合、共享服务、粗粒度的架构思想与 Web Service 体系结构有着高度的一致性5。可以说 Web Se
16、rvice 是 SOA 架构的具体实现, 而SOA 为 Web Service 提供了架构理论基础6。所以依据 SOA 体系架构将 Web Service 层次进行重组, 进而让 Web Service 系统架构与 SOA 体系架构保持高度的一致性, 这样使得在以后搭建 Web Service 系统时更加高效、迅速, 这样的结合在 Web Service 系统的传播方面有着非常高的实用价值。3.4 基于 SOA 的 Web 框架Web Service 系统执行流程从逻辑上总体可分为应用层、业务层和数据层, 对应的业务层和数据层也可划分为更加详细的层次, 但这种分层从本质上来说是面向功能的分层,
17、 它更注重的是需求的实现, 所以我们将 SOA 架构与 Web Service 体系相结合, 将 Web Service 重新划分为一个基于 SOA 的三层模型结构, 使其面向流程, 并且可以很好地适应需求的变化, 在需求改变的基础上, 只需要增加新需求的功能模块, 而不是将整个体统都进行重新搭建。基于 SOA的 Web 系统架构如图 5 所示, 这样就为具体的 Web Service 系统的搭建提供了一个定义良好、可操作的技术框架。4 结束语本文在深入研究 Web Service 系统架构的基础上, 分析 Web Service 系统存在的优缺点, 结合已有的 SOA 体系架构, 通过研究这
18、两者之间的关系, 提出了一种基于 SOA 的 Web Service 体系架构。该架构将 Web Service 系统于 SOA 架构相结合, 使得新的架构结构合理, 简单实用, 能够满足各子系统的业务异构性和灵活性的需求, 这样保证了系统的易扩展性。并且该系统架构利用多接口的数据调用可以有效地缓解数据处理的压力, 减少了对业务的干扰, 提高了系统的鲁棒性, 有利于系统的扩展、重组和维护, 进一步将 Web Service 系统的工作集中在服务和应用的封装上。图 5 基于 SOA 的 Web 系统架构 下载原图参考文献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) .