1、本科毕业论文(20 届)企业服务总线 Mule 监控管理系统的研究与实现Research and Implementation of Mule ESB Monitoring Management System 所在学院 专业班级 计算机科学与技术 学生姓名 学号 指导教师 职称 完成日期 年 月 企业服务总线 Mule 监控管理系统的研究与实现I摘 要在 企 业 级 应 用 不 断 增 多 的 今 天 , 面 向 服 务 的 架 构 应 运 而 生 。 在 面 向 服 务 的 架 构思 想 下 , 企 业 服 务 总 线 真 正 体 现 了 一 切 皆 是 服 务 的 理 念 。 Mule 作
2、 为 一 个 以Java 为 基 础 的 消 息 框 架 , 以 其 开 源 的 特 性 和 强 大 的 功 能 , 深 受 Java 程 序 员 的 欢迎 。 通 过 将 各 个 服 务 部 署 在 总 线 上 , 可 以 实 现 不 同 服 务 的 互 相 连 通 , 有 效 利 用 已有 的 资 源 。 为 了 方 便 地 监 控 和 管 理 Mule 上 的 服 务 , 需 要 一 个 可 视 化 的 监 控 管 理平 台 。 但 目 前 没 有 免 费 的 软 件 供 人 们 使 用 , 因 此 , 开 发 一 款 免 费 的 监 控 管 理 软 件对 于 使 用 者 来 说 十 分
3、 必 要 。本 文 借 助 JMX( Java Management Extensions) 提 供 的 对 软 件 监 控 管 理 的 功能 , 利 用 Mule 中 提 供 的 API(Application Programming Interface)接 口 , 将 JMX与 Mule 进 行 整 合 , 通 过 对 JMX 的 开 发 , 实 现 了 对 服 务 信 息 的 监 控 , 具 体 功 能 包括 服 务 器 状 态 的 实 时 展 示 、 项 目 应 用 的 调 用 、 ESB(Enterprise Service Bus)的 管理 等 。 同 时 , 为 了 方 便 监
4、控 管 理 , 采 用 B/S 架 构 , 使 用 JSP 技 术 可 视 化 地 将 监控 到 的 信 息 显 示 在 页 面 上 。本 系 统 使 用 Myeclipse 开 发 工 具 , 采 用 Java 语 言 编 码 , 同 时 采 用 MySQL数 据 库 存 储 数 据 , 初 步 实 现 了 一 款 可 视 化 的 企 业 服 务 总 线 Mule 的 监 控 管 理 平 台 。系 统 经 过 测 试 , 可 以 实 现 正 常 的 监 控 管 理 工 作 , 为 企 业 的 信 息 化 管 理 工 作 提 供 服务 。关键词:企业服务总线;Mule;JMX;监控管理企业服务
5、总线 Mule 监控管理系统的研究与实现IIABSTRACTAs the developing of the enterprise applications, service-oriented architecture was arisen at the historic moment. At the idea of the service-oriented architecture, the enterprise service bus completely reflects the concept that everything is service. As a Java based me
6、ssage frame, with the characteristics of its open source and powerful function, Mule is popular among Java programmers. By deploying the service on the bus, different services can be connected to each other, so the existing resources can be effective used. In order to easily monitor and manage the s
7、ervices on the Mule, a visual monitoring and management platform is needed. However, there is no free software for people to use, therefore, to develop a free monitoring management software is necessary for the user.In this paper, by using the function of monitoring that the JMX(Java Management Exte
8、nsions) provided, and using the provided API(Application Programming Interface) interface in the Mule, Mule and JMX were integrated. With the development of JMX, the monitoring of service information was realized, including the real-time displaying of the server status, the calling of the project ap
9、plication, the management of ESB(Enterprise Service Bus) and so on. At the same time, to facilitate the monitoring and management, B/S structure was adopted, and by using JSP technology, the information was visually displayed on the pages. By using Myeclipse, Java language, and MySQL database, The s
10、ystem was preliminarily realized the Mule monitoring management platform which was visual. After the test of the system, it can normally realize the monitoring and management functions, and it can provide services for the information management work of the enterprise.Key words: ESB; Mule; JMX; Monit
11、oring management企业服务总线 Mule 监控管理系统的研究与实现III目 录第 1 章 绪论 .11.1 课题研究背景 .11.2 研究目的和意义 .31.3 国内外研究现状综述 .41.4 课题研究内容 .51.5 论文组织结构 .5第 2 章 相关技术介绍 .62.1 Mule ESB 技术研究 .62.1.1 Mule ESB 简介 .62.1.2 Mule ESB 的基本概念 .62.1.3 Mule ESB 的结构 .92.1.4 Mule ESB 的主要功能 .102.1.5 Mule ESB 的主要优点 .112.2 JMX 技术研究 .112.2.1 JMX 技
12、术简介 .112.2.2 JMX 的基本概念 .112.2.3 JMX 的结构 .132.2.4 JMX 的主要优点 .132.3 MVC 开发模型介绍 .142.4 本章小结 .15第 3 章 系统的需求分析与概要设计 .163.1 系统需求分析 .163.1.1 Mule ESB 监控技术介绍 .163.1.2 业务需求 .173.1.3 功能需求 .183.1.4 性能需求 .183.2 系统概要设计 .183.2.1 系统架构设计 .193.2.2 功能模块设计 .203.2.3 系统界面设计 .203.2.4 数据库设计 .223.3 环境搭建 .23企业服务总线 Mule 监控管理
13、系统的研究与实现IV3.3.1 配置 mule-standalone-3.4.0 环境 .233.3.2 配置 JDK 与 Tomcat 环境 .233.4 本章小结 .23第 4 章 系统的详细设计与实现 .244.1 系统功能概述 .244.2 系统流程图 .244.3 系统详细设计及实现 .254.3.1 所需监控的 Mule 工作流的设计 .254.3.2 Mule 与 JMX 的整合的设计 .254.3.3 监控内存使用情况的设计与实现 .264.3.4 监控操作系统信息的设计与实现 .294.3.5 监控运行环境信息的设计与实现 .304.3.6 监控类加载情况的设计与实现 .30
14、4.3.7 监控线程总体情况的设计与实现 .304.3.8 项目的调用的设计与实现 .324.3.9 ESB 状态查询功能的设计与实现 .324.3.10 ESB 关闭及重启的设计与实现 .334.4 本章小结 .33第 5 章 系统功能测试 .345.1 测试目的 .345.2 测试环境 .345.2.1 硬件环境 .345.2.2 软件环境 .345.3 测试步骤 .345.4 测试结果与分析 .355.4.1 软件测试用例 .355.4.2 软件测试结论 .365.5 本章小结 .38结论 .39参考文献 .40攻读学士学位期间发表的论文和取得的科研成果 .42致谢 .43第 1 章 绪
15、论1第 1 章 绪论1.1 课题研究背景随着计算机技术的不断发展,越来越多的软件被设计和应用于企业办公中,这大大提高了企业对日常信息进行管理的工作效率。但与此同时,早先所建立的各种信息系统通常都是根据企业本身业务发展水平和相关的系统需求建设的,用途、范围各不相同,所采用的软件技术、数据格式都存在着很大的差异 1,要想让信息能走不一样的自动化系统之间交换,过程会很繁琐。如果在开发新的系统时,想要利用现有的软件也很难。这不仅会浪费已有资源,也给企业的软件更新带来了很大的成本,不利于企业的长久发展。当各个企业开始寻找在不同自动化系统之间交换信息以及重用软件的方法时,市场对企业级应用集成的需求也就随之
16、产生了。企业应用集成(EAI)技术是计算机领域第一次尝试把各种不一样的中间件解决方案整合成一个产品套件的技术。在二十世纪九十年代的时候,企业范围内比如像企业资源计划 (ERP) 或者客户关系管理 (CRM) 等设计都是加速 EAI 系统产生的重要动力来源。但是 EAI 的架构有着本身的局限性,所以削弱了其在企业应用方面实现良好的解决方案方面的作用。它的交换方式为集中式交换,所有的数据都需要被编写为规范的格式进行管理,也就造成了很多处理上的负担。因此,需要一种更优的方法去实现企业级应用的集成。在不断研究和发展的过程中,面向服务的架构(SOA)的思想起到了很大的作用,SOA 将业务应用拆分为动态的
17、和可重用的服务,它的出现,为计算机行业提供了为解决规模较大型程序的管理问题而产生的解决办法,具有松散耦合,协议独立,位置不可知,粗粒度等优点。可以利用 SOA 的思想把各种服务提取出来,并暴露出来接口以备使用。调用的体系结构有网状、星型等等,而网状仍然是节点间的互联,服务的提供者和服务的请求者之间仍需要显式的点到点调用。星型架构采用了一个中间层,这个中间层类似于中央管理器的作用,可以智能进行管理不同的服务,服务的请求者不需要了解服务提供的细节。这看似是一个很好的结构,但是和 EAI 有着同样的问题。为了研究出一个较好的 SOA 架构,企业服务总线( ESB)应运而生了。企业服务总线是由几种技术
18、综合起来的,包括 XML、Web 服务与传统中间件技术,用来实现对于企业级系统中信息的安全、高效和准确传递。它是一种规定性的根本架构,它在一个开放的标准基础上,提供一个可靠的、可度量的和高度安全的环境 2。到第 1 章 绪论2现在,制造业、金融业、电信和零售等许多行业中都加入了 ESB。ESB 比星型的模式开放很多,它的总线结构有着很强的扩展的性能。它把 SOA 中一切都是服务的理念体现的淋漓尽致,各种不同的服务在总线中的地位都是一样的。如果需要一些中央管理器,这些管理器也是作为服务来部署在总线上的。企业服务总线就如同是一根具有智慧的管道,它可以用将各种节点联系在一起。ESB 做了转换传输协议
19、、路由消息、转换消息格式、处理来自各种异构源的业务事件等工作,让不同的服务互联互通,用以集成不同系统,不同协议的服务。ESB 本身可以是单个引擎,还可以是由许多同级和下级 ESB 组成的分布式系统 3。因为 ESB 的架构通常都是分布式的,因此可以通过世界任意位置来访问这些服务,获取数据。这个体系是基于一个由可以通过远距离消息进行配置、部署、管理和监控的轻量级服务架构构成的系统上的。这些服务通过一个实现了持续可用性、可扩展性、安全一致、低延时处理和服务质量的标准化的消息总线组合在了一起。在众多的 ESB 产品中,Mule ESB 作为一个轻量级的开源 ESB,是一个轻量级的整合平台和消息框架。
20、Mule 的核心组件是 Componse,用以实现整合逻辑。Componse可以是 JavaBean,POJO(Plain Old Java Object)等等。它整合了许多流行的开源项目,比如 Spring,ActiveMQ,CXF,Axis,Drools 等。同时,它支持 20 多种传输协议,由于它提供了 JBI 适配器,应此可以很好地与 JBI 容器整合在一起。Mule 非常注重它的性能。比如高效能性、灵敏性以及易操作性。因此,Mule ESB 成为了开源 ESB 中的一支独秀,它吸引了众多的关注者。当企业使用了 Mule ESB 进行生产工作之后,随着众多的服务和应用被放置到Mule
21、ESB 中,对它的监控以及一些服务的管理就非常重要了,它直接影响到企业的工作效率,越来越多的人们开始认识到监控管理技术的重要性并加以重视。因此,对于企业服务总线 Mule 的监控管理系统的需求就出现了。监控系统主要包括基于 B/S(浏览器和服务器)和 C/S(客户端和服务器)这两种形式,在 Soap 等网络协议的基础上,具有简单、高效等优点,已经成为信息网络的一种最普遍应用的信息交互平台 4。 在 监 控 管 理 方 面 , JMX 是 一 款 功 能 强 大 的 软 件 。 它为 在 Java 平台上的软件的管理给出标准的管理框架。JMX 是 一 个 标 准 的 代 理 以 及服 务 , 事
22、 实 上 , 可 以 在 所 有 Java 项 目 程 序 中 利 用 其 中 的 代 理 和 服 务 来 进 行 监控 。 JMX 这 个 概 念 是 Sun 公 司 提 出 来 的 , 它 面 向 程 序 、 应 用 以 及 系 统 的 监 控架 构 。 因 为 Mule ESB 里 面 有 对 JMX 的 支 持 , 所 以 使 用 JMX 的 接 口 可 以 容 易地 对 Mule ESB 进 行 监 控 管 理 活 动 。 本 文 就 是 利 用 JMX 提 供 的 接 口 进 行 扩 展 设第 1 章 绪论3计 , 实 现 了 对 企 业 服 务 总 线 Mule 的 监 控 管
23、理 。 用 JMX 来 实 现 在一个系统中不同模块之间的相互连接以及监控,是最好的方法。它可以带来的第一点好处是面向接口,远程调用对于开发人员都是透明的,在调用 JMX 接口时,与调用本地方法几乎是相同的。第二点好处是可以开发可视化的监控管理界面,可以对系统进行实时监控并且可以实时调用一些方法进行某些操作。1.2 研究目的和意义Mule ESB 作为 Sun 公司的产品,有其自带的监控管理系统 MMC,但是这个系统是需要付费才能使用的。本次毕业设计旨在研究和实现一款对于企业服务总线Mule 监控和管理的系统。监控管理是一个管理上的概念,它对于企业中的应用和资源提供用监控的平台和管理的的工具。
24、对于大型的企业,监控管理系统是一个报告企业级应用使用状况的一个工具。基于服务的健康状况,企业监控管理人员可以对系统中的错误和紧急事件作出反应。尤其是在分布式系统中,有时系统要监控不同项目的状态,比如想获取 ESB 的运行情况怎么样,如果遇到状况即可调用应急的操作,比如将服务关闭、删除已存在的项目等相关的操作。还可以对于主服器进行监控管理,这在 Java中在使用 JConsole 来查看就行了。当前许多企业对于应用的监控和管理方案不仅难以实现而且成本比较高,管理环境也缺少对于应用的快速及时的响应。但是如果借助于 JMX,就会发现创建这样的监控管理程序是非常简单的。开发人员不需要为程序来开发界面,
25、因为已经存在通用的 JMX 管理软件。开发人员要做的只是把需要被管理和监控的类按照 JMX 的规范进行修改即可使用。本文利用 JMX 所提供的监控管理功能,对于 JMX 扩展模块进行开发,采用 B/S 架构来实现这样一款有着非常重要的意义的监控管理软件。 中国软件产业发展的主要方向之一就是企业级应用系统,它占有着非常重要的地位。同时,它也受着整个 IT 行业发展潮流的影响,由于信息技术的不断发展和成熟使各个企业有可能在广阔的范围中对已有的资源进行整合,以提高企业经生产工作效率。SOA 和 ESB 是目前计算机行业中的主流技术。提供一款免费的监控管理系统不仅可以通过使企业实现实时监控、也可以使企
26、业的花销减少,降低运营成本和重复性消耗、降低销售和售后服务成本,起到降低各种成本的作用 5。同时,也可以按照企业的需求个性化地监控所需的信息。第 1 章 绪论41.3 国内外研究现状综述随着企业信息化程度的不断提高,很多企业都开始建设和完善自己的信息化管理系统。例如,企业内部或企业与其他企业之间的业务合作,集成工作业务流程,以及各业务系统的整合都是通过业务流程实现的 6,这需要 EAI 技术的支持。EAI 技术的发展随着需求的增加已经日趋成熟,先后经历了点对点模式、星型模式、基于消息的模式以及 ESB 模式。在不断的去粗取精的过程中,目前,最常用的是 ESB 模式,它成为了解决企业级应用集成问
27、题所使用的主要技术手段。ESB 不仅可以满足企业内外的数据流、信息流与业务流的整合的要求,还可以利用架构实现数据集成和业务流程的集成,以及流程重组与发布 7。Mule ESB 非常受欢迎的开源企业服务总线,它的下载数量和已经发布了的产品的数目非常巨大。因为 Mule ESB 开发形式非常简单,并且结构非常的轻量级,程序员可以在短期内进行开发工作、实现企业应用的集成。Mule ESB 使得集成变得简单,使程序员可以便捷地构建多协议交互、高性能的异构服务和系统 8 。同时,Mule ESB 在国内有着优秀的技术交流社区,在交流中会促使对 Mule ESB 的学习更加容易。从上面可以看出 Mule
28、ESB 在未来会不断发展,在企业中得到广泛使用。 JMX 技术在由 Sun 公司发布了规范之后,很多的大公司都开始实现该规范或是开发基于 JMX 的监控管理系统。例如,IBM Tivoli 实现了 JMX 规范的产品为TivoliJMX,它为管理应用程序和网络提供了架构、设计模式、API 集和一些服务 9。JBoss 实现的 J2EE 应用服务器用 JMX 作为微内核,不同的模块以管理构件的形式提供相应的服务 10。BEA 公司 Web logic 应用服务器也把 JMX 技术作为管理的基础 11。在 Sun 公司发布规范之前,中国对于应用服务的监控管理并不存在特定的监控模型,而且功能单一,没有给用户提供一个综合性的解决方案。与国外相比,起步晚,发展也比较慢 12。但是随着信息技术的不断发展,企业对监控系统会有很大的需求,国内IT 公司也开始使用 JMX 技术来实现企业级应用的监控管理,例如,金蝶公司的产品Apusic 是一个以 JMX 为内核开发出的 J2EE 应用服务器 13。随着 JMX 技术的不断发展发展以及企业级应用的不断增多,相信