《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > JAVA、SOAP构建服务集成平台

JAVA、SOAP构建服务集成平台

2008-12-19
作者:方 洋

1、引言 

随着计算机技术的飞速发展,软件的开发在经历了面向对象、面向组件和面向领域后,如今进一步要求面向服务、面向工作流。面向服务的软件开发将不再局限于单个企业部门,而需要考虑到整个企业,整个行业以及与行业运作相关的政府职能部门。这样,集成技术就显得越来越重要,不仅需要有企业内部的A2A集成,还需要有企业间的B2B以及政府职能部门与整个企业的G2B集成,甚至还包括政府各部门间的G2G集成。 

在传统的集成技术中,开发人员一直通过集成本地系统服务来构建应用系统" title="应用系统">应用系统。分布式的应用系统建立需要使用分布式的组件对象模型。如目前应用比较广泛DCOM和CORBA。这两种系统使用了不同的数据表达方式,互不兼容。并且,无法扩展到互联网上,它们要求通信两端有同类基本结构,紧密耦合,一旦一方的执行机制发生变化,那么另一方就会崩溃,它们穿透互联网上各种各样的防火墙的能力不能令人满意。 

2、JAVA中的SOAP分布式结构 

面向服务和工作流的集成技术通常需要的是松耦合、跨平台、语言无关、与特定服务无关的。而SOAP恰恰能做到这一点。SOAP简单、轻量级的协议,它把成熟的基于HTTP的Web技术和XML的灵活性、可扩展性结合在一起。方便的实现多种异构平台之间的相互访问。JAVA是一种跨平台语言,它为SOAP提供了一个开放源代码的简单易操作的Java实现。JAVA中的SOAP分布式结构" title="分布式结构">分布式结构如图1所示: 

这种结构有利于软件组件的重复使用,例如,一个商业逻辑存在于一个分布式系统中,它可以被一个用交互分布计算协议的远程系统所使用。允许外部机构访问包含在无法通过防火墙障碍的分布式系统内的也是有效方法。类似地,分布式结构可以用于组成企业应用程序集成(EAI)方案和企业间的B2B集成方案。 

3、SOAP机制下服务集成平台结构 

服务集成平台是业务服务运作的支撑平台,它使得业务服务最终面向公众,是一个为公众提供与之密切相关的各种业务服务,如查询,消费和各种申请服务的一站式服务平台" title="服务平台">服务平台。 

本文构建了基于SOAP的服务集成平台结构,以实现各种业务服务。其结构如图2所示: 

SOAP机制[1]在服务集成平台中充当了底层通信的角色,其作用是作为消息的载体,实现分布式对象访问和应用系统之间的调用,从而将企业内部,企业间,政府内部,企业与政府间各个分散的、独立的服务能按一定的业务规范连接起来,组成一个有机的整体,完成更多的功能,以实现企业自动化、商务流程自动化、B2B电子商务和电子政务。 

服务集成平台结构有两部分组成;服务集成平台和后台服务系统。 

后台服务系统由服务运营商提供各种功能组件,以完成各种具体逻辑操作,该组件以服务形式对外发布,在注册库中注册其服务描述文档,以供平台系统动态调用。它对应图1中Web服务器和实现具体功能的Java对象。 

服务集成平台主要完成服务的集成,它主要实现图1中SOAP客户机的作用,该平台主要包括两大子系统:业务服务支撑系统" title="支撑系统">支撑系统和业务服务集成系统。 

应用集成层(Application Integration Layer,简称AIL)是服务集成系统中的核心模块,它动态的加载在注册库(Register&Repository,简称RR)中注册的各个服务的说明及描述文档以及各服务之间的业务关系、常用规范(即工作流文档),来完成流程的建立,信息的协调和数据的传输,动态的协同各个独立的服务等服务集成的主要工作。 

业务服务支撑系统是提供一个业务服务的集成和运行环境,它主要包括由客户端" title="客户端">客户端环境(Client Environment)和服务器环境(Server Environment)共同建立的业务服务运行环境。业务服务运行环境的主要功能如下: 

(1)       业务服务管理;包括服务的注册、注销,服务的扩展接口以及服务文件的传送。 

(2)       界面管理;包括平台系统界面和业务服务界面的管理。 

(3)       数据资源管理;主要是本地数据和业务服务数据的存储、传输管理。 

(4)       通信管理;负责完成终端与服务器的数据通信。 

(5)       安全管理;负责通信过程中的数据安全,以及平台各终端的身份认证。 

(6)       在较复杂的业务服务平台中,还可能有对终端硬件的管理,如卡类服务所需的插卡机。 

系统内部各模块间,以及与后台服务间均采用XML做为数据交换,平台系统与后台服务间以SOAP做为底层通信协议,XML和SOAP的结合使得整个服务平台具有松耦合、跨平台、语言无关、与特定服务无关的特点。业务服务极易升级及扩展。 

4、服务集成平台实例 

电子化城市服务亭系统就是建立在图2结构上的一个服务集成平台。它是上海市社会保障中心重点科研项目,它通过分布在社区和各种公众场所的终端向公众提供一系列与之生活相关的各类服务,例如,天气信息、卡类信息等查询服务;缴纳水费、电费的各种缴费服务;订票、旅游、购车等消费服务;以及申请失业保障、就业培训等申请服务。 

下面将以一个汽车消费服务为例来讲述其在此平台上的实现。这里将汽车消费服务简化为只包括汽车消费申请和车牌申请两个子服务的一个简单流程服务。这里将不涉及到电子交易。汽车消费服务的实现流程图如图3所示。 

 

              

1.发起请求;用户通过客户端环境的平台界面和汽车销售业务服务界面向服务器环境发起请求,请求消息包括用户的基本信息及所希望购买的汽车信息。客户端环境将请求信息和业务服务支撑系统运行时的必要信息(如业务服务绑定名)一起封装成XML文档,传给服务器环境,其XML文档如下: 

… 

 

         

        … 

 

 

         

        … 

 

 

… 

2.查询业务服务描述信息;服务器环境根据业务服务绑定名新建一个业务服务实例,代码如:BusinessService carsalling = new BusinessService(“car”); 

接着向注册库查询汽车销售业务服务描述信息。业务服务描述信息包括业务服务的应用程序包,启动主类程序以及端口消息类型等调用信息。其代码如:carsalling.find(“car”); 

3.启动业务服务;服务器环境通过注册库的汽车销售业务服务的描述信息自动加载业务服务程序包,启动汽车销售业务服务,并将用户请求信息传递给该业务服务。其代码如: 

carsalling.load(“car”,userXMLinformation); 

4.查询子服务描述信息;汽车销售业务服务AIL向注册库查询汽车消费申请和车牌申请两个子服务的描述信息。AIL将根据汽车销售业务逻辑及注册库中各服务之间的业务关系、常用规范及服务流程,来完成具体操作。汽车销售业务服务只是简单的顺序执行两个子服务。 

5.完成汽车申请服务; AIL根据汽车申请服务的描述信息来生成SOAP请求调用该服务,从而完成用户请求信息在汽车销售商处的具体操作。其主要Java代码如下: 

… 

Call call = new Call(); 

Vector vctParamers = new Vector(); 

Response response; 

Try{ 

        call.setTargetObjectURI(“urn:carApply”);  //设定服务名 

        call.setMethodName(“carApply”);        //设定方法名 

        call.setEncodingStyleURI(Constants.NS-URI-SOAP-ENC); 

        vctParamers.addElement(new Parameter 

(“inputXML”,Element.class,elementInput,Constant.NS-URI-LITERAL-XML)); 

        call.setParamers(vctParameters);         //设定需提交的参数 

        response = call.invoke(url,””)              //调用汽车申请服务 

}catch{} 

… 

6.完成车牌申请服务;AIL根据车牌申请服务的描述信息来生成SOAP请求调用该服务,从而完成用户请求信息在交通管理部门的具体操作,其Java代码与5中基本相似。 

7.服务返回信息整合;AIL将服务调用的返回信息进行整合,形成返回消息。并将此消息传递给平台服务器环境。该返回消息包括汽车申请的成功与否及车牌申请的成功与否等具体信息。 

8.返回用户信息;服务器环境将AIL的返回信息进行XML封装,同样加上支撑系统的运行信息一起返回给客户端环境,客户端环境将用户所需的信息解析出后通过服务界面最终返回给用户。 

5、结束语 

服务平台是一种世界潮流,它在城域网内实现公众所需的各种业务服务,它将是作为城市信息化的重要组成部分,对城市的信息化建设起推动作用,并且有利于电子商务的推广。本文提出基于SOAP的服务集成平台结构。并在此结构上给出了一个汽车销售服务的Java实现。Java和SOAP都具有与平台无关的优良特性,这使得此服务集成平台具有了良好的通用性,各个功能模块间的松散耦合又使得此平台具有了良好的扩展性。

参考文献 

[1] 施明辉,用基于XML的SOAP机制构建应用系统,计算机应用,2002.4 

[2] Bilal Siddiqui ,Developing Web services, Part 3: SOAP interoperability,http://www-106.ibm.com/developerworks/webservices/library/ws-intwsdl3.html,2002.9 

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。