首页 > 范文大全 > 正文

基于ESB的交通信息服务系统的研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于ESB的交通信息服务系统的研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:随着社会生活对交通信息需求的增多,如何把现存的种类繁多的交通信息整合在一起,以满足出行者对交通信息的要求,构建一个集成的交通信息平台是必要的。于是提出了一种基于esb交通信息服务系统,集成遗留系统的功能,不仅解决了“信息孤岛”的问题,还实现了服务的重用,达到了信息共享的目的。

关键词:ESB;遗留系统;信息孤岛;重用

中图分类号:TP14 文献标识码:A文章编号:1009-3044(2011)22-5477-03

Research of Traffic Information Service System Based on ESB

SU Xiao-hui, LIU Yun

(Xi'an Technological University, Xi'an 710032, China)

Abstract: With the increase in demand for traffic information, how to together the wide variety of existing information, it is necessary to build an integrated transportation information platform in order to meet the traveler's requirements for traffic information. So it presents a ESB-based traffic information service system, which integrates the legacy system function, not only solve the "information island" problem, but also to achieve the reuse of services, to the purposes of sharing information.

Key words: Enterprises Services Bus; legacy systems; information island; reuse

社会进入信息化时代后,产生了很多信息化系统,在网络共享盛行的今天,这些遗留系统的整合成为一个难题,如何把这些“信息孤岛”整合在一起,实现信息共享、功能共用成为今天的当务之急。

本文使用SOA架构,以ESB为纽带,以Web Services技术为底层实现技术,设计并实现了一种对交通信息管理系统进行信息共享、功能共用的方案,基本解决了交通部门、普通大众以及其他各种使用到交通信息的用户对交通信息共享、功能共用的要求。

1 SOA架构(service-oriented architecture,面向服务的企业集成架构)

随着以业务流程为中心的企业集成在越来越多的企业和组织间成为目标和一种趋势,企业集成架构从基于消息中间件模型逐渐转向面向服务的企业集成架构SOA(Service-Oriented Architecture)。

1.1 SOA的定义

面向服务的体系结构(service-oriented architecture,SOA) 是一种面向服务的企业应用体系结构,是一种分布式的软件组件架构模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来,这使得构建在各种系统中的服务可以以一种统一和通用的方式进行交互,其中接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。这种架构中的服务单元可以是位于一个集成应用中,也可以是分布在互联网上的;可以是建立在同一种环境中的,还可以是位于异构平台的。

SOA本质上就是服务的集合,服务定义为一些有明确定义的、相互独立的、封装完善的应用函数。服务之间的通信可以是简单的数据传输,也可以通过各种服务之间协调来进行。

1.2 SOA的模型

SOA实现的核心是将应用程序的不同功能组件从复杂的环境中独立出来,并将其组件化封装为服务。其参考模型如图1所示,其中包括了服务提供者、服务注册中心和服务使用者三个角色,它们分别执行、查找和绑定三种操作,具有简单、动态和开放的特性。

2 ESB(Enterprise Service Bus,企业服务总线)

随着企业SOA的逐步成熟,业务功能会从各种源头被挖掘和发现出来。这些服务的提供者可能是遗留的应用,第三方软件包或者主要解决方案提供的功能。虽然理想状态是所有这些服务都使用相同的技术,这样在使用这些服务的时候,就很简单了,但是现实情况并不是这样的,很有可能是这些服务使用了各自不同的技术,如何最大限度的复用不同的服务,ESB技术提供了一种选择。

2.1 ESB概述

企业服务总线(ESB)是一种在松耦合的服务和应用之间基于标准的集成方式。服务是SOA的基本元素,如何让服务最大限度地灵活复用是SOA的核心价值,ESB恰恰能为分散的服务提供交互、组合和治理的基础架构,有了ESB,才能释放出SOA的最大价值。

企业服务总线(ESB)就是一条企业架构的总线,所有的企业服务都挂接到该总线上对外公布,企业服务总线负责管理服务目录,解析服务请求者的请求方法、消息格式,并对服务提供者进行寻址,转发服务请求。也就是说ESB就是服务的请求者和服务的提供者之间的一个中间件,就是对服务使用者屏蔽服务提供方的技术实现方式。

ESB可以说是搭建SOA架构所必须实现的核心功能组件。ESB提供的功能主要有图2所示。

ESB属于SOA的基础设施,主要用于集成异构应用系统,它为SOA提供关于服务的交互和通信、协作和组合,是面向服务的集成总线。

2.2 ESB技术优势

与传统的企业信息集成平台相比,ESB具有明显的技术优势。它不但隐藏了底层通信平台、线程分配调度、资源管理等细节,为用户提供透明的服务组合平台,还通过标准而丰富的各类服务组件,为用户提供一个功能强大的集成工具和运行平台,从而使得用户只需关注应用逻辑,实现了基于服务组合的快速应用开发与部署。

ESB可以提供集成中间件服务的组合,同时,ESB还提供可扩展的、基于标准的连接,这样就可以轻易的穿过企业的防火墙;而且ESB提供的消息路由机制和消息转换机制可以实现信息的及时准确的传递,满足系统实时性的要求。

3 ESB在SOA具体应用―基于ESB的交通信息管理的系统

3.1 系统总体设计方案

人们在日常生活中总是和交通信息是息息相关的,交通信息的实时使用显得越来越重要,因此各个交通部门都建立了自己的交通信息管理系统。虽然这些系统达到了方便人们的目的,但是信息的共享也成为新的问题,使得跨部门协作难以实现。在这种情况下,为了更好的实现部门协作和信息共享,建立一个交通信息管理系统是必要的。

通过对目前交通信息系统的分析,为了实现遗留系统的集成,本文中给出了一种基于ESB的交通信息服务系统技术实现的架构,如图3所示。

3.2 系统UML建模

这里只简单的对系统的部分功能为例进行建模。系统管理员的用例图如图4所示。

以用户对自驾车出行诱导路径查询为例得出相应的顺序图,如图5所示。

3.3 系统具体实现过程

考虑到遗留系统的异构性,在封装成Web服务之前可以先使用JNI技术进行封装,以解决这个问题。JNI(Java Native Interface)指的是Java本地程序接口,它是JDK的一部分。通过使用Java本地接口书写程序,可以确保程序在不同的平台上方便移植。JNI能够调用本地方法中的库文件的内部方法,这样可以使Java实现和本地机器的密切联系,以便调用系统级的各接口方法。假设遗留系统是用C++开发的平台,现在要调用遗留系统中的车辆管理服务这一块。实现的调用过程如下:

1)定义服务接口

根据服务标识,车辆报废审核服务的服务接口定义如下,其中仅包含一个getJudgeVehicleRemove()方法的声明:

package com. vehicle;

public interface VehicleRemoveMgr{

Boolean getJudgeVehicleRemove(String Vehicle_num );

};

2)定义java本地接口

定义java本地接口,也就是定义JNI的调用程序接口。在接口中声明所有需要调用的C++库名称VehicleManagement(后缀名不必写),方法getJudgeVehicleRemove只做声明,具体的实现代码是在本地C++的库函数中。定义如下:

public interface JVehicleRemoveSO{

static{

System. loadLibrary(“VehicleManagement”);

}public native static Boolean getJudgeVehicleRemove(String Vehicle_num );

};

3)实现java本地接口

实现java本地接口的步骤如下:

首先用JAVAH命令生成C++头文件:vehicle _JVehicleRemoveSO.h。操作如下:

% javah- jni vehicle. JVehicleRemoveSO.class

然后在C++程序中将头文件生成库文件,并将其放到系统库文件下。

4)封装服务接口生成WSDL文件

可以使用AXIS提供的org.apache.axis.wsdl.Java2WSDL工具,根据已有的Java编辑的Web Services接口来产生相应的WSDL文件。

5)生成Web Services的服务器端

WSDL文件生成之后,就可以通过AXIS中的另一个工具org.apache.axis.wsdl.WSDL2Java使得VehicleRemoveMgr.wsdl文件自动生成Web Services的服务器端和客户端程序。

6)生成Web Services的客户端

可以和生成Web Services的服务器端一样,借用AXIS中的另一个工具org.apache.axis.wsdl.WSDL2Java生成Web Services的客户端。

7)Web Services

在控制台上输入如下命令:% java org.apache.axis. client.AdminClient deploy.wsdd

当看到命令行中显示了Done processing时,则表示这个Web Services己经成功。

8)将封装好的服务部署到ESB上

这样就将遗留系统中车辆报废审核服务的封装完成了,并将封装好的服务部署到企业服务总线ESB上,这样服务请求者只需与ESB发生联系,而无需了解服务提供者的准确位置,实现了ESB的服务位置透明化。

上述过程就是通过ESB将遗留系统中的服务封装为Web服务的过程。当客户端向其需要调用的服务发送请求消息时,首先要发送到ESB中的服务(Proxy Service),Proxy Service收到这个请求后,将它转给与其对应的业务服务(Business Service),再由它进一步转给外部的服务提供者。这样就将遗留系统中的服务转换为Web服务,实现了服务的重用。这个过程中,ESB充当了一个中介的角色,用来与服务调用层交互,服务调用层中就是封装着服务的调用代码。

3.4 系统实现测试

系统最终实现的就是具体使用各种服务的平台,服务都是部署在JBoss企业服务总线上,可以通过调用来实现,平台本身不提供服务,只是作为一个服务展示的中介。启动应用服务器JBoss,在浏览器的地址栏输入:127.0.0.1:8080/traffic/citytraffic即可访问交通信息服务平台,其效果图如图6所示。

登陆后,用户便可以按照不同的分类浏览服务,对该平台中的服务进行使用和管理,包括删除、添加、修改等。

4 结论

SOA和 ESB是 IT软件开发、部署与应用领域的新趋势,使企业可大范围整合已有的系统和新的系统,提高组织敏捷性和运行效率。ESB可通过消息、事件处理、业务流程管理等集成各类服务,通过加强安全和事务管理,基于 ESB的应用将在分布式、异构的各类电子商务、电子政务等各类软件设计、实现、集成、部署及应用方面提供更高效的、高可用的、可扩展的平台和工具。

参考文献:

[1] 毛新生.SOA原理・方法・实践[M].北京:电子工业出版社,2007.

[2] 李安渝.Web Services技术与实现[M].北京:国防工业出版社,2003.

[3] 周晓燕.企业服务总线(ESB)在SOA中的应用研究[D].大连:大连海事大学,2009.

[4] 刘涛,侯秀萍.基于ESB的SOA架构的企业应用研究[J].计算机技术与发展,2010(5).

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文