InfoQ

News

Parallel Processing Framework JPPF 1.1 Supports TCP Multiplexer and JMX Monitoring

Posted by Srini Penchikala on Apr 09, 2008 02:00 PM

Community
Java
Topics
Grid Computing
Tags
Concurrency ,
Parallel Programming

The latest version of JPPF, a java based open source parallel processing framework, includes a networking tool called TCP port multiplexer to enable JPPF work in secure firewall environments. JPPF team released the version 1.1 of the framework which also includes JMX based node monitoring and management features.

Prior to the latest version of JPPF framework, there was no easy way to integrate JPPF in secure network environments, due to the inherent design of the communication layer. JPPF requires at least 3 separate TCP/IP ports to function but many firewalled environments only allow a single port. This blocks the network communication by preventing any traffic through the unauthorized ports.

The new TCP multiplexer addresses this limitation by enabling the routing of network traffic coming from multiple ports through a single port. It is then possible to tunnel the multiplexer-to-multiplexer traffic through SSH or any other protocol that allows tunneling of TCP/IP traffic. It also routes the same traffic from a single port to multiple ones on the other side of the network.

The end result is that JPPF components will continue to work in exactly the same way, except that they will connect to local multiplexer instances, rather than to remote JPPF servers. This opens the door to the deployment of JPPF in heavily secured environments, without having to deploy a complex hardware/software infrastructure.

TCP multiplexer tool comes as a separate component from JPPF components (clients, servers, and nodes) so it can be used without any changes to the existing JPPF client code. Each multiplexer instance is deployed as a separate process.

The first version of the multiplexer, released with JPPF 1.1, provides the basic functionality which currently only works for JPPF traffic. In a subsequent version, there will be another "flavor" that will work with any TCP/IP traffic. This will allow users to interact with web servers configured with non-standard ports or to make direct EJB calls to a J2EE server behind a firewall. The future versions of TCP multiplexer will also include the ability to apply independently developed filters enabling:

  • Encryption/decryption of the data routed from multiplexer to multiplexer
  • Encapsulation within higher-level protocols, for instance to work with HTTP and SOCKS proxies

Other new features in JPPF release include the following:

  • A new node management feature was added, that enables updating a node's execution thread pool dynamically.
  • A JMX based node monitoring feature was also added. This allows the administrators to collect the statistics like the node's system and java environment details.

The node monitoring feature is used to capture the information such as the state of the JVM, system and environment variables, available CPUs, and so forth. These statistics are accessible from the JPPF administration console. Other information available from the GUI console includes the node status, task execution status (whether a task has been executed or not), number of tasks executed etc. Specific tasks can be canceled or restarted from the admin console.

The admins and developers can get a overview of what environment a node runs in, as well as useful snapshots of its state, allowing for an understanding of how the load is handled. This information is available from the JPPF monitoring console as well as through dedicated APIs.

Laurent Cohen from JPPF team said that this is a preliminary step laying the ground for a new feature in the next major version, that will enable users and admins to control when, where and how JPPF jobs will be executed. JPPF jobs will be associated with an "execution policy" that will have access to the nodes' information and provide a fine-grained definition of the conditions in which a job can be executed.

The future roadmap of JPPF project also includes some major integration work, with a focus on integration with Gigaspaces for high volume transactional enterprise applications with computation-intensive needs, and business rules engines integration. Other future integrations include Business Process Management (BPM) and Extract, Transform and Load (ETL) frameworks. Also included in the roadmap is adding the multi-agent system capabilities to JPPF grid toolkit.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.