Over a million developers have joined DZone.

JPPF 4.0 brings the power of Grid Computing

DZone's Guide to

JPPF 4.0 brings the power of Grid Computing

· ·
Free Resource

JPPF 4.0 brings volunteer computing, dynamic scripting, easier configuration management, awesome new demos, and a lot more.

What's new in JPPF 4.0

Support for Java 7 and later

As of this release, JPPF will stop supporting Java 6 and will only run on Java 7 and later.
Application code written and compiled with Java 6 will still run as is.

Full support for volunteer computing

"JPPF@home" is now a reality. Build your volunteer computing project with all the benefits of a JPPF Grid and the underlying Java technologies. This is made possible with the addition of new capabilities which can be combined or used individually and enhance the scalability and reliability of JPPF grids:

Support for dynamic scripting

JPPF 4.0 leverages the JSR 223 specification and corresponding javax.script APIs to enable dynamic scripting and raise its capabilities to a new level:

  • scripted tasks allow you to execute tasks entirely written in any JSR 223-compliant dynamic script language
  • scripted execution policies make node and server channel filtering easier and more powerful than ever

Management console enhancements

  • Every tab in the administration console can be displayed in a separate view
  • New statistics were added to the server statistics view: class loading requests from the node and to the client, inbound and outbound network traffic to and from the nodes and clients
  • Statistics can now be exported to the clipboard from the server statistics view, as either CSV or formatted plain text
  • The statistics view now uses a flow layout for a better usability and user experience

Revamped task API

  • The base class for JPPF tasks was genericized and expanded into an interface/abstract class pattern. This results in documented API changes. A best effort was made to keep backward compatibility with JPPF 3.3, with a single and rare exception. The vast majority of existing applications will still run with the old deprecated APIs
  • Exception handling: the getException() / setException() methods have been deprecated in favor of the more generic getThrowable() / setThrowable()
  • Tasks now have the native ability to send notifications to locally registered listeners, remote JMX listeners, or both


  • The configuration plugin API was extended to enable reading the configuration from character streams (Java readers) in addition to byte streams
  • Configuration sources can now include other sources at any level of nesting, to enhance the readability, modularity and maintenance of JPPF configuration files

J2EE connector enhancements

New and enhanced extension points

  • A new serialization scheme API was implemented, to enable integration with a broader range of serialization frameworks, while keeping backward compatibility with older serialization schemes. A new sample illustrates how the integration with the Kryo framework can result in a major performance improvement.
  • Listeners to task notifications can now be registered with the nodes via the service provider interface
  • A screen saver can now be associated with a node, for use in a volunteer computing model, to add meaningful animated graphics, or even just for fun

New and enhanced samples

Automated testing coverage

Automated testing is a vital part of the JPPF development life cycle. Our automated testing framework creates small, but real, JPPF grids on the spot and uses the JPPF documented APIs to execute test cases based on JUnit.

  • The range of automated test cases was broadened to include all major features, and most minor ones
  • Various grid topologies are now included in the tests, incuding single servers or multiple servers in P2P, offline nodes, etc., with and without SSL/TLS communication
  • The J2EE connector is now automatically tested using scripts which download and install the application server, deploy the connector and test application, execute the JUnit-based tests and report the results

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}