InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Parallel Processing Framework JPPF 1.1 Supports TCP Multiplexer and JMX Monitoring

Posted by Srini Penchikala on Apr 09, 2008

Sections
Operations & Infrastructure,
Enterprise Architecture,
Development,
Architecture & Design
Topics
Java ,
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.

Srini Penchikala currently works as Security Architect and has 17 yrs of experience in software product management.

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.