并行处理框架 JPPF 1.1 支持多路复用及 JMX 监测

  • Srini Penchikala
  • 张龙

2008 年 4 月 12 日

话题:JavaDevOps语言 & 开发架构

JPPF是一个基于 java 的开源并行处理框架,其最新版包含一个叫做TCP 端口多路复用(TCP port multiplexer)的网络工具,它使得 JPPF 可以在安全的防火墙环境下工作。JPPF 小组发布的1.1 版还包含了基于 JMX 的节点监测和管理特性。

由于 JPPF 框架通信层固有的设计,在其最新版本之前尚不存在任何简单的方式得以将 JPPF 集成到安全的网络环境中。JPPF 至少需要 3 个独立的 TCP/IP 端口才能正常工作,然而很多防火墙只允许一个单独的端口。这样以来,防火墙通过阻止在未授权的端口上的传输进而对网络通信进行限制。

新的 TCP 多路复用通过一个单独的端口来路由来自多个端口的网络传输,以此突破防火墙端口限制。它可以通过 SSH 或者其他任何支持 TCP/IP 传输的协议来进行多路——多路(multiplexer-to-multiplexer)的传输。它还能将信息从一个单独的端口路由到网络另一端的多个端口。

最终的结果就是 JPPF 组件基本还会以之前的方式工作,唯一不同的是,他们将连接到本地的多路实例而非远程的 JPPF 服务器。这对安全性要求极高的环境的 JPPF 部署敞开了大门,使之无需再部署复杂的硬件 / 软件设备。

TCP 多路复用工具是 JPPF 组件(客户端、服务器及节点)中的较为独立的一个,因此无需对现存的 JPPF 客户端做任何改变就可以投入使用该多路复用工具。每个多路复用器实例都被部署为单独的进程。

多路复用器的第一个版本出现在 JPPF1.1 发布中,它提供的基本功能当前仅服务于 JPPF 传输。在将来的版本中,还会有另一个“特色(flavor)”将服务于任何 TCP/IP 传输。这使得用户可以与非标准端口的 web 服务器交互,还能直接对防火墙后的 J2EE 服务器进行 EJB 调用。TCP 多路复用器的未来版本还将具备应用独立开发的过滤器激活能力:

  • 多路到多路的数据的编码 / 解码
  • 在更高层协议中的封装,例如与 HTTP 与 SOCKS 代理协同工作

JPPF 中其他的新特性如下:

  • 增加了一个新的节点管理特性,这可以动态地更新一个节点的执行线程池。
  • 增加了一个基于 JMX 的节点监测特性。这使得管理员可以收集如节点的系统和 java 环境细节之类的统计数据。

节点监测特性用来获取如下信息:JVM 状态、系统和环境变量、可用的 CPU 等等。我们可以通过 JPPF管理控制台来得到这些统计数据。从 GUI 控制台还能查看到如下信息:节点状态、任务执行状态(任务是否已被执行)、执行的任务量等等。从管理控制台可以取消或者重启特定的任务。

对于系统的负载问题,管理员和开发者可以看到节点运行环境的概况及其当前状态。 我们可以通过 JPPF 监测控制台及专门的 API 来获得这些信息。

JPPF 小组的 Laurent Cohen 说这是为下一个主要版本中的一个新特性所作的铺垫,该新特性将帮助用户和管理员控制何时、何地及如何执行 JPPF 任务。JPPF 任务将与一个可以获得节点信息并对任务执行条件提供精确定义的“执行策略”相关联。

JPPF 项目未来的发展路线还包含了一些主要的集成工作:与Gigaspaces的集成以应对计算密集型的具有高容量事务的企业应用,以及与业务规则引擎的集成。其他的集成还将包括:业务流程处理(Business Process Management,即 BPM)及 Extract、Transform 与 Load(ETL)框架。当然,路线中还包括了向 JPPF 网格工具箱中添加多代理系统的能力。

查看英文原文:Parallel Processing Framework JPPF 1.1 Supports TCP Multiplexer and JMX Monitoring


译者简介:张龙,同济大学软件工程硕士,现就职于理光软件研究所。主要从事文档工作流和办公自动化解决方案的研发工作。热衷于 Java 轻量级框架的研究,对敏捷方法很感兴趣。曾有若干年的 J2EE 培训讲师经历。参与 InfoQ 中文站内容建设,请邮件至china-editorial[at]infoq.com

JavaDevOps语言 & 开发架构