赵佳峰
文章编号: 2095-2163(2018)03-0140-04中图分类号: 文献标志码: A
摘要: 关键词: (School of Computer Science and Technology, Donghua University, Shanghai 201620, China)
Abstract: This paper analyzes the actual application integration requirements of a small and medium sized enterprise, and selects the integration of enterprise application based on the Mule ESB service bus as the basic framework.The running state of application integrated platform needs monitoring and management. This paper designs and implements a separate service monitoring module. With the help of JMX, the function of service monitoring and management and the API interface provided by Mule ESB, JMX is integrated with Mule ESB, and the service information monitoring and real-time display is realized, including application call to service, system resource occupancy status and so on.According to the internal mechanism of Mule ESB, this paper designs and develops a common application module, single sign in, which are encapsulated into Web Service services according to JAX-WS specification, and are registered on the application integration platform to provide services for the related applications. The existing applications of enterprises can be encapsulated into services based on this mode and register on this platform.
Key words:
作者简介:
收稿日期: 1需求分析
1.1企业应用集成
企业独立信息单元不断增长,但是彼此之间缺乏相应地关联,这可能会导致信息时效降低,存在重复操作,准确性不足等问题,这些问题成为业务、决策能力的短板。由于公司跟政府、企业、学校有很多合作,许多应用需要维护,然而每个应用之间的关联性不强,企业常出现信息重复处理,甚至导致更新不同步、不一致,因此需要将所有应用进行集成,耦合应用与应用之间的集成逻辑,并对应用的使用情况进行监控,以便管理者能及时发现并处理问题[1-4]。初期集成的应用包括单点登录与统一身份验证应用。
1.2服务监控
本文设计的系统需实现对Mule ESB的监控管理,即对Mule ESB主要信息的查看,如对服务器的内存情况、操作系统的消息、运行环境、类加载情况、线程总体情况的查看。通过系统运行,用户可以实时监控到Mule ESB的使用状况到确保企业级应用在合理范围内的使用,防止负载过多影响到运行效率[5-7]。同时,由于不同企业以及下属部门对监控管理的具体需求不同,而JMX代理服务可以编写自定义的监控界面,因此在设计实现监控系统时可以根据实际需求进行个性化设计,避免系统的单一性,提高系统的针对性和适用性。监控Mule ESB信息的同时,还要考虑到系统的健壮性及可靠性。
1.3单点登录
企业通常有多个网站,每个网站有独立的身份验证机制。如果用户通过身份登录访问网站,则需要在每个网站上分别进行注册,这不仅给用户带来不便,而且企业的网站也因重复此功能浪费性能[8-10]。如果所有成员网站,能够以一个通用的账户登录,即单点登录,不仅可以大大提高用户体验,也实现了企业中多个网站之间的互通性。单点登录使网站之间有机结合,更好地体现公司大平台,大渠道的理念,同时,也利于原网站之间的相互促进与相互宣传,实现互惠共利。因此,开发单点登录系统是亟待解決的问题。
另外,用户身份和认证信息的管理是应用系统建设中的关键部分。由于用户的需求不断变化和发展,企业内部的应用系统也会不断的增加或淘汰。因此,应用系统一般在不同平台、不同公司开发,所使用的技术不一致,这种情况很容易造成各个系统之间拥有独立的用户身份管理,每次登录不同应用系统就需要进行多次登录[11-13]。
2系统框架设计
本文基于Mule ESB的企业应用集成与开发的目的是将企业内部的应用集成到一个统一的平台,把企业各个信息孤岛进行集成,使不同应用系统中的信息可以在整个企业范围内共享[14-15]。由于现有的服务监控功能不能满足大部分用户的需要,因此在此基础上开发一个服务监控模块更能方便监控服务的使用情况,系统的框架结构如图1所示。
从图1中可以看出,服务注册通过Mule ESB中的组件,解析XML配置文件,每个服务都会有与之对应的类,使用Spring容器以IoC的形式注入与服务相应的类。当应用通过Mule ESB调用其他应用时,应用将请求发送至企业集成平台,通过路由功能将请求自动转发到相应的服务,服务会对接收的请求通过转化器进行处理后再转发到实际的请求地址。企业集成平台的监控管理模块将JMX与Mule ESB相结合,在服务中加入JMX框架,则监控管理模块可以调用Mule ESB提供的接口获得服务的参数实现服务监控。
本文分别集成了单点登录服务和统一身份验证服务,然后通过服务监控模块监控运行在Mule ESB平台上的服务。
单点登录服务基于Java Web应用,在系统中提供一个接口供第3方使用,该接口在Mule ESB中为单点登录服务创建JMX代理服务,系统通过JMX监控2个服务的使用情况。
服务监控管理模块基于Mule ESB开发,Mule ESB里面已经实现了JMX的内核架构,因此可以部署一个JMX的代理应用到Mule ESB的项目中,通过开发JMX的代理客户端实现系统的功能,从而对Mule ESB进行监控管理。
3服务监控模块和单点登录功能设计
3.1服务监控模块
本系统采用JMX技术框架实现监控功能,且可以自定义监控界面。Mule ESB实现了多种MBean接口,并提供了JMX接口;其中接口包括:获取服务内存信息、线程使用情况、CPU使用率、服务调用情况等等。本文采用JMX自带的jolokia在Mule中添加JMX代理來实现实时监控,具体配置方式如图2所示。
3.2单点登录功能设计
为了将单点登陆服务的监控信息反馈到监控系统,需要将系统提供接口封装为Mule ESB服务。在Mule ESB平台中设计一个JMX代理程序,能够让监控管理模块监控到单点登录服务的使用情况,然后部署运行,监控程序如图3所示。
此工作表示一个代理服务,单点登录功能提供的接口封装在此服务。当用户请求登录时,请求链结会传送到Mule ESB上,系统会把一个SOAP的Web Service请求转换成为一个POST的HTTP请求,向单点登陆系统发送请求,得到请求结果再返回给成员网站,在整个登录请求的过程中,会被服务监控系统监控。
4功能测试
本文设计并实现了企业应用集成平台,并设计开发了单点登录和统一身份验证服务,通过示范应用调用集成的服务,测试功能能够正常运行。通过对功能的逐项测试,可以对不足的地方进行修改和完善,以达到系统功能测试的目的。测试内容及测试结果见表1。
4查看内存情况显示内存信息是5查看操作系统信息显示操作系统信息是6查看运行环境显示运行环境信息是7查看类加载情况显示类加载情况是8查看线程总体情况显示线程信息是9关闭服务关闭成功是5结束语
随着计算机科学技术不断发展,企业信息化办公在逐步加快,越来越多的企业级应用被用到企业的实际生产生活中。由于不同软件之间存在着架构、协议等差别,使得交互和通信十分复杂,软件的重用也很难实现。Mule ESB作为开源企业服务总线,成功实现了企业级应用之间的互联,提高了软件运行效率,避免了企业资源的浪费。随着部署在Mule ESB上的应用不断增多,对于企业服务总线的监控管理变得尤为重要,设计实现一款企业自定义的监控管理功能十分必要。Java语言是目前使用最为广泛的编程语言之一,具有开发过程简单、类库丰富、且与平台无关等特点,因此,本文采用Java语言进行实现。在实际系统开发过程中,采用了MVC开发模式,使业务层与视图层分离,便于系统的升级和维护,且开发逻辑更加清晰,思路明确。本文研究工作主要有以下几点:
(1)设计开发的2个服务,单点登录和统一身份验证服务能够正常运行,方便企业后续应用集成。
(2)通过本集成平台,用户可以实时查看企业服务总线Mule的相关信息,同时,也可以管理Mule ESB服务(关闭以及重启)。
通过系统测试,平台可以稳定运行、准确监控到实时数据。同时,界面设计以简洁为主,便于用户操作和查看信息,具有良好的用户体验。在今后的工作中,将会从界面的美化以及功能的扩充和细化2方面进行改进。
参考文献
[1] 相鹏,段友祥. 企业服务总线(ESB)-企业集成关键技术初探[J]. 信息技术与信息化,2005(6):88-91.
[2] 金保华,和振远,张亮,等. 基于SOA的数据共享与交换平台分析与设计[J]. 郑州轻工业学院学报(自然科学版),2011,26(1):102-106.
[3] 周晓艳. 企业服务总线(ESB)在SOA中的应用研究[D]. 大连海事大学, 2009.
[4] Schmidt M T, Hutchison B,Lambros P, et al. The Enterprise Service Bus: Making service-oriented architecture real[J]. Ibm Systems Journal, 2005, 44(4):781-797.
[5] Java Management Extensions(JMX) Technology[EB/OL], http://www.oracle.com/technetwork/java/javase/tech/javamanage-men t-140525.html.
[6] 张昀. 基于SOA架构的分布式ESB总线的研究与实现[D]. 南京理工大学, 2009.
[7] 牛栩,荆泽泉.基于SOA的企业应用集成研究[J].数字技术与应用,2011(12):107-108.
[8] 高亮,杨林,胡映兵.基于ESB的企业应用集成研究[J].机械设计与制造,2008(1):221-223.
[9] 王云花. ServiceMix:一个开源ESB的剖析与应用[D]. 太原理工大学, 2012.
[10]Vinoski S. Java Business Integration[J]. IEEE Internet Computing, 2005, 9(4):89-91.
[11]刘迎春,兰雨晴,于乐乐.ESB中的数据交换技术[J].计算机系统应用,2005(10):42-45.
[12]谢继晖,白晓颖,陈斌,等. 企业服务总线研究综述[J].计算机科学,2007(11):13-18.
[13]http://www.mulesoft.org/what-mule-esb.
[14]Brebner P. Service-Oriented Performance Modeling the MULE Enterprise Service Bus (ESB) Loan Broker Application[C]// Software Engineering and Advanced Applications, 2009. Seaa '09. Euromicro Conference on. IEEE, 2009:404-411.
[15]郑鑫. 基于ESB企业应用集成架构研究与应用[D]. 太原理工大学, 2013.