Over a million developers have joined DZone.

JPPF 3.2 Released

DZone's Guide to

JPPF 3.2 Released

Free Resource

 JPPF 3.2 brings client-side scheduling and SLA, class loader performance and resilience improvements, IPv6 readiness.

What's new in JPPF 3.2

Load balancing in the client

As for the server with the nodes, the client can now distribute jobs over multiple server channels and the local execution channel. This opens up a broad variety of distribution capabilities, including:

  • distribution through connections to multiple servers
  • distribution through multiple connections to the same server
  • distribution to the client-local execution channel
  • any combination of the above
Load-balancing / scheduling is applied in exactly the same way as within the server, with the same APIs and configuration properties and the ability to implement custom class loaders.

Client-side SLA

All jobs now have a distinct service level agreement for the client-side dispatching of their tasks. This provides the ability for each job to specifiy:

  • a start and expiration schedule on the client side
  • an execution policy to determine through which channels a job can be dispatched (channel filtering)
  • the maximum number of channels to dispatch to
  • as a result, the ability to specifiy local vs. remote execution on a per job basis

Executor services enhancements

Class loading improvements

  • Parallel class loading requests from the same node are now batched and sent together to the server, providing a sigificant speed-up of the nodes performance
  • Nodes maintain a cache of classes and resources not found in the remote classpath, avoiding costly network requests and improving class loading performance overall
  • Local cache of resources found in remote classpaths can now be switched from file system to memory storage with automatic fallback strategy. This addresses environments where disk space available to the node is minimal or inexistant.

New JPPF task APIs

Two very useful methods were added to JPPFTask:

  • isInNode() determines whether the task is executing within a node or in the client's local executor
  • compute(JPPFCallable) enables the execution of a callback in the client. This replaces the ClientDataProvider API which is now deprecated.

IPv6 ready

All areas of JPPF networking have been updated to handle IPv6 addresses properly and transparently:

  • discovery information broadcast by the server
  • connectivity from the nodes and clients
  • JMX-based connections for management and monitoring of the Grid

Automated testing

A major effort has taken place to provide automated testing of the JPPF features, to ensure that the quality of each release meets the expectations. This results in a large and growing set of tests based on JUnit and integrated into our development process.
An additional module was created to perform stress testing of JPPF grids and improve its stability and resilience under high-throughput and highly unstable networking conditions.

JPPF Links: Web Site - Downloads - Documentation - User forums - Issue tracker

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}