BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

并行处理框架JPPF提供负载平衡,故障转移和J2EE集成

| 作者 Srini Penchikala 关注 36 他的粉丝 ,译者 戴垚 关注 0 他的粉丝 发布于 2007年12月4日. 估计阅读时间: 7 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

在上个星期,JAVA并行处理框架(JPPF) 项目组发布了1.0版本的第一个发布候选(RC1)。JPPF是一个开放源码的网格计算框架,它可以在一个分布执行环境中同时运行多个java应用。

JPPF架构由客户端,服务器和节点三部分组成。这个架构工作的原则是它将多个任务分配到多个节点上去执行,并在完成所有的步骤之后,重新组合结果并将之发还给客户端。

JPPF也提供了负载平衡,故障转移和错误恢复等服务。并提供一个基于JMX的管理控制台,它既可以监视节点也可以管理执行的任务。你可以远程取消和重启任务,或配置令其超时的截止日期或时间间隔。

JPPF框架使用一个兼容JCA 1.5规范的资源适配器与J2EE应用服务器进行集成,这个适配器为服务器提供了到原始网格服务的访问。适配器通过实现异步任务提交从而避免了JTA事务超时的风险。JPPF支持以下的应用服务器:

InfoQ就JPPF并行处理能力和项目今后的发展方向与创始人Laurent Cohen进行了交谈,Laurent 说他的团队正在计划12月推出1.0版本的GA发布。

针对关于JPPF框架与JDK1.5中的java.util.concurrent API之间的比较,Laurent指出在一个有多处理器的单个机器中,相对于直接使用java.util.concurrent类,JPPF会比较慢。但如果架构在多机器的网络中,相比之下JPPF是一个好的解决方案。在每一个JPPF架构组件内部都使用了java.util.concurrent APIs。其中节点被配置成使用ExecutorService接口来进行多线程处理。

作为java concurrency API的一部分,Java 7将会为细粒度的并行处理的需求引入一个关键特性,即fork-join框架。InforQ问是否JPPF将来会有类似的特性。以下是Laurent的回答:

JPPF正是为此而生的。JPPF接受多个任务,并将之分配到不同的节点执行,最后再将结果重组成合适的格式。从这个角度来讲,我们可以把JPPF看作一个扩展的、分布式的fork-join框架。

关于如何比较JPPF与其他开源的并行处理框架如GigaSpacesTerracottaGridGain时,Laurent说:

从范围和功能上来讲,GridGain是与JPPF最相近的开源框架。区别是它们的实施架构:GridGain使用一个peer-to-peer拓扑结构,而JPPF是一个为达到分布处理的多层次架构。

Terracotta有着非常不同的哲学。他们对一个分布式JVM的实现是一个非比寻常的成就,但目前来讲这并不能使它成为一个网格计算框架。在集群和对一些关键特性的提供方面,例如分布式缓存,事务管理,复制等,Terracotta做的非常好。

将JPPF应用在单个组织的局部拓扑中,而用GigaSpaces或Globus Toolkit管理更大的范围,JPPF会和这些框架合作的非常好。

关于JPPF负载平衡的实施细节,他解释说:

应用将任务分组成“任务包(task bundle)”,并将之提交到一个中心JPPF服务器。基于一个动态计算的节点性能概要,任务包被分成子包后发送到每一个节点。子包的大小根据节点的历史性能记录来决定。性能概要被不断的重新计算,所以可以使框架自动适应新的和变化的状况,包括任务的类型和数量,实际在服务器注册的节点数量等。

关于故障转移的能力:

JPPF所有的架构组件都实现了故障转移,它依赖与三个主要的机制:动态拓扑,故障检测和自动重新提交。JPPF组件可以在任何时间以任何顺序在网络中添加或从网络中移除。

Laurent谈到了两个典型的关于故障转移的例子,并解释JPPF如何在这种情况下切换到一个不同的节点。

第一个例子中,一个节点突然停止工作,或失去与服务器的连接。服务器会检测到这个故障,并自动将未完成的工作转移到另外一个节点。

在第二个例子中,客户端失去了与服务器的连接。客户端将自动试图重建连接直到成功,或在一个随意指定的超时到达。同时,一个客户端可以配置多个可连接的服务器,通过将这些服务器组织成一个层次结构来定义一个有效的故障转移策略。客户端这时从这个层次结构中找到下一个服务器,并重新提交工作请求。

关于JPPF框架如何支持应用级安全性的问题,他说JPPF将会以透明的方式使用任何应用使用的安全框架。另外,JPPF节点可以定义一个可配置的安全策略,用来指定客户代码在节点主机上可以做什么和不可以做什么(例如对文件系统的写或读,对其他服务器建立连接等)。

最后谈到JPPF框架将会在未来版本引入的新特性时,Laurent说JPPF将会与业务规则引擎(例如 ILOG Inc. 和 JBoss Rules)和 Web Services进行集成。也将会与ETL,商业智能(BI)和数据挖掘这些分布式处理正在发挥重要作用的领域中的工具进行集成,在这些领域中,需要分布式处理从数据仓库中的大量数据中提取数据。

作为SourceForge.net的一部分,JPPF开始于两年前。它使用Apache License Version 2.0许可证,并可以从SourceForge项目的网站上下载。

查看英文原文:Parallel Processing Framework JPPF offers Load Balancing, Failover and J2EE Integration


译者简介:戴垚,2000年计算机硕士毕业后一直从事软件开发管理工作,目前在一家大型外企担任开发部门经理。关心软件技术和相关工具的动态,深信技术的使用应以创造价值为根本。目前致力于SOA的研究,希望能对业以复杂的企业环境有所帮助。参与InfoQ中文站内容建设,请邮件至china-editorial@infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT