基于SOA的Web服务应用研究

时间:2022-10-06 07:28:57

基于SOA的Web服务应用研究

摘要:研究面向服务的体系架构的原理方法。针对Web服务技术的具体应用研究基于SOA体系架构的实现方法,着重解决不同平台,不同语言开发的Web服务之间的相互通信。

关键词:SOA;Web服务;WSDL;SOAP

中图分类号:TP311.11 文献标识码:A文章编号:1007-9599 (2011) 14-0000-02

Web Services Application Research on SOA

Chen Tao,Zhou Zhurong

(1.No.722 Research Institute of CSIC,Wuhan430079,China;2.Wuhan Railway Vocational College of Technology,Wuhan430205,China)

Abstract:Research theory of SOA,Study the implementation methods of SOA aim at concrete applications of Web Services technology.Focus on intercommunication of Web services technology.Focus on intercommunication of Web Services between distinct operating systems and programming languages.

Keywords:SOA;Web services;WSDL;SOAP

一、引言

在船舶通信系统内部通信中,由于各种管理和应用终端的不断地增加,有限的站位无法满足各种物理形态设备的安装需求,传统的系统集成和交互方式显示出越来越大的局限性。各个系统软件平台的差异性以及缺乏统一的信息交互机制,导致了各个管理和应用系统不弄公用硬件平台,缺乏一个能够实现快速开发、集成和重用的体系结构框架。面向服务架构SOA(Service Oriented Architecture)为解决以上问题提供了可能性。

图1:通信系统体系架构

SOA可以把关系非常松散的系统以服务的形式管理起来,我们可以这样理解SOA:SOA是一种组件模型,它将应用程序的不同功能单元(服务)通过定义良好的接口和契约将这些服务联系起来。接口是采用中立的方式定义的,独立于实现服务的硬件平台、操作系统和编程语言。使得构建在各种各样的系统中的服务可以一种统一和通用的方式进行交互,不必考虑其后台具体实现的技术和运行平台等,从而最大限度地重用了应用程序中的服务,有利于异构系统之间的相互通信、交换数据的符合开放标准的架构,是可以采用虚拟化技术的架构,是一种扩大了互操作性概念的架构。

SOA从本质上说是一种理念和体系架构,它的思想体现在:可以根据需求通过网络对松散耦合的粗粒度的应用组件(即服务)进行分布式部署、组合和使用。服务的具体作用可以理解为:服务提供者完成一组工作,为服务调用者交付所需的最终结果,最终结果通常会使调用者的状态发生变化,但也可能改变提供者的状态,或者双方都产生变化。不难看出,SOA就是服务的集合,在这个集合里服务之间是粗粒度、松耦合的关系,它们通过简单、精确定义的接口进行通信。

二、SOA的架构与技术分析

作为分布式信息处理技术中的最新开发项目,在SOA中,应用程序可以通过网络调用其他应用程序的功能,该功能在网络上,因为网络提供了两个重要的能力――“发现”(找到功能的能力)以及“绑定”(连接功能的能力)。

(一)SOA的基本架构。SOA包含三个操作,分别是(Publish)、发现(Find)和绑定/调用(Bind/Invoke)。这些操作定义了SOA角色之间的约定关系。

操作是一种服务注册或者服务宣传的行为,它起着服务注册中心与服务提供者之间的连接作用。当服务提供者在服务注册处其服务后,服务注册中心就将此服务的细节通知给服务请求者。API的实际细节取决于服务注册中信的实现。简单的是将服务描述到应用服务器的目录结构中,复杂的操作则通过独立的单元来管理服务描述,如UDDI。

查找操作是过的服务的调用细节信息,起着服务注册中心和服务请求者之间连接作用。在进行查找操作时,服务请求者向服务注册中心获取如服务类型、服务质量保证、安全验证等等。服务注册中心根据查找条件在所的服务描述集合中进行搜索,查找与标准匹配的服务描述。

绑定操作体现了服务请求者与服务提供者之间的“客户――服务器”关系。绑定操作可以是十分复杂和动态的,如基于服务描述、动态生成客户方用于调用服务的操作,也可以是静态模型,开发者对客户应用程序调用服务的方式进行手工编码操作。

(二)SOA的实现方法。以前的技术如CORBA、DCOM和JAVA RMI等都要求更多的协定兵共享业务系统的上下文。所提供的功能常常被直接链接到用于实现该功能的软件对象中。但随着Web Services技术的日趋成熟,Web服务的粗粒度集成更适合与开发的Internet上的分布式信息处理。越来越被人们所关注,成为实现SOA结构最主要的技术。Web Services的接口和执行是明确分离,开发者可以在任何软件系统上调用服务,不必了解内部执行的具体细节,从而实现了不同编程语言和不同操作系统直接按无缝的互操作性。

Web Services技术中包括:WSDL、UDDI和SOAP。WSDL是用来描述服务,UDDI为服务提供者提供注册的服务,为消费者提供查找的服务,SOAP是为服务提供者与消费者之间相互通讯传递信息。服务提供者用WSDL来描述服务,消费者可以通过UDDI查找所需服务的WSDL,通过SOAP来调用服务。起具体技术实现原理如图2所示。

图2:Web服务核心技术框架

(三)SOA的数据访问。数据访问服务是SOA架构中最常见的使用最广泛的服务,数据层和应用层的分离通常是很直接的。随着数据资源的广泛访问和共享,他们已成为服务实现的首要目标。

数据访问服务允许访问、集成、翻译以及转换整个组织的各种数据资源。这些服务通常隐藏了基本格式的复杂性,也隐藏了数据的直接转换和操纵。它们提供了一个统一的接口、松散耦合、一个公共的数据模型以及整个应用中一致信息的重用。

XML广泛应用于应用程序间的数据交换。一个可以对任何数据源进行抽象的、统一的数据访问的基础结构对于SOA实现是很有价值的。基于XML的数据库就是以SOA的方式提供了对多种数据资源的访问服务,物理数据向逻辑数据的转换以及对逻辑数据的基于XML的访问服务。

三、Web服务的技术分析及其实现

Web服务从根本上说就是一个分布式解决方案,Web服务的设计依赖于Internet标准(HTTP和XML)。在Web服务之前,第三方是通过组件来提供服务,使用时需要购买安装相应的组件以便在自己的解决方案中实用该组件,当通过Web服务来访问时,就无需在本地服务器上安装任何组件,因为Web服务位于Internet上的中心位置。在通过Web服务访问服务时,开发人员可以使用第三方的开发工具,根据定义好的接口可以用任意的编程语言编写。开发人员可以根据系统需求实施开发,从而摆脱技术的约束。

(一)Web服务技术。Web服务就是通过Web接口提供的某个功能程序段。通过标准的Internet协议可以很容易地访问该功能。这就意味着所有客户机都可以实用Internet进行远程过程调用(Remote Procedure Call,RPC)操作,该操作将对Internet上的服务器进行请求,并接受以XML格式的返回响应。这些在客户机和服务器之间来回传递的消息被编码到一个特殊的XML语句中,这些语句被称为简单对象访问协议(Simple Object Access Protocol,SOAP)。该协议定义了访问远程计算机功能的标准方式。

SOAP协议的优点在于它是在HTTP协议之上传输的。大多数的防火墙都支持HTTP通信,这样便允许最终用户浏览Internet。SOAP协议并不是一个私有协议,相反,它是一个XML标准,该标准定义了在客户机和Web服务之间传递的消息。因此,所有的Web服务能够与所有技术解决方案交互,并在技术解决方案中使用Web服务。这样可以增强分布式系统的功能,使之无需依赖于某一项技术。

(二)Web服务实现。Web服务更多是作为一种标准,而不是一门具体的技术,不同的平台,不同的语言大都提供Web服务的开发实现。

1.Java Axis。在JAVA领域,Web服务的一个成熟实现是AXIS。Apache Axis是Web服务核心引擎的重要改进,目标是成为Web服务和SOA的下一代平台。作为一个干净的可扩展的开放源代码的Web服务平台,Axis的体系结构高度灵活,支持很多附加功能,如可靠消息传递和安全性等。Axis具有模块化体系结构,由核心模块和非核心模块组成。

具体创建一个服务基本包括一下4个步骤:(1)编写实现代码;(2)用service.xml来解释这个服务;(3)创建一个“*.aar”服务部署包;(4)服务。

的服务可以完成各种各样的功能,使用Web服务可通过服务端提供的WSDL信息来生成客户端的调用框架。

2.微软.net framework。微软的.net技术也是最为流行的Web服务开发技术之一。不仅延续了微软一贯的编程风格为广大编程人员所接受,而且还增加了许多支持Web服务的关键性技术,使得.net在操作的简单性和执行的稳定性、高效性上达到了一个非常好的结合。

.net技术中用于Web服务开发的主要工具是,在.net后续版本中新增了WCF这一强大的通信组件也提供了对Web服务开发的功能支持。

3.C/C++语言。基于非.net平台的C/C++语言的实现,可以借助一些开源的编译工具,如gSOAP编译工具,它提供了一个SOAP/XML关于C/C++语言的实现,从而让C/C++语言开发Web服务或客户端程序变得轻松,绝大多数的C++Web服务工具包提供一族API函数类库来处理特定的SOAP数据结构,这就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来。gSOAP的编译器能够自动的将用户定义的本地化的C或C++数据类型转变为符合XML语法的数据结构,反之亦然。这样,只用一组简单的API就将用户从SOAP细节实现工作中解脱了出来,可以专注与应用程序逻辑的实现工作。

gSOAP使编写Web服务的工作最小化了。gSOAP编译器生成SOAP的代码来序列化或反序列化C/C++的数据结构。gSOAP包含一个WSDL生成器,用它来生成Web服务的解释。gSOAP的解释器及导入器可以使用户不需要分析Web服务的细节就可以实现一个客户端或服务器端程序。

四、结语

SOA作为一个新型的体系架构,基于Web服务的SOA应用研究还在不断深入,其技术不断发展与更新,本文对SOA的应用研究进行了一些粗浅的论述,主要针对Web服务技术。从概念到方法,从开发技术到开发工具。从具体时间的角度加以阐述。

本文通过对Web服务在不同平台之上,利用多种编程语言的不同实现方法进行具体研究并加以实现,通过实际应用并在应用中实现了Web服务在不同平台之上,多语言之间的相互通信。主要侧重于基于现有技术提出应用的解决方案,因此具有局限性,下一步的工作就是根据在应用中发现的问题,完善解决方案,从而达到进一步简化SOA的开发,提高效率。

参考文献:

[1]岳冰,刘勇,付伟庆.基于Web服务的SOA应用研究[J].中国新技术新产品,2010,NO.2

[2]王远帆.以Web服务为中心的SOA研究[J].宁德师专学报(自然科学版),2010,2

[3]朱振杰.SOA的关键技术的研究与应用实现[D].成都:电子科技大学硕士论文,2006,11

[4]卡罗纳.C#Web Services――Building Web Services Remoting And [M].北京:清华大学出版社,2002

[5]肖潇.基于SOA的网络服务平台的研究与设计[D].北京:北京交通大学硕士论文,2009,9

[作者简介]陈涛,男,助理工程师,研究方向:信息网络;周著荣,女,武汉铁路职业技术学院,研究方向:铁道信号与工程。

上一篇:模糊控制在加热炉二级系统中的应用 下一篇:在NS2中植入新的802.11接入算法的研究