Java Parallel Processing Framework (JPPF)

JPPF is an open source grid computing framework that can be used to run multiple java applications in parallel in a distributed execution environment. It also written in java

JPPF features

·        A JPPF grid can be up and running in minutes

·        Simple programming model for abstracts the complexity of distributed and parallel processing.

·        Highly scalable, distributed framework for the parallel execution of CPU intensive tasks.

·        Graphical and programmatic tools for fine-grained monitoring and administration

·        Fault-tolerance and self-repair capabilities ensure service and reliability.

·        A set of fully documented sample applications of JPPF to real-life problems

·        Very flexible and business-friendly open source licensing

·        Multiple built-in load-balancing algorithms are available at client and server levels.

Requirements and install

Current version of JPPF is v6.0 (alpha).Java 1.7 or later and Apache Ant 1.7.0 or later should already be installed on your machine.

·        You need to download and install the following JPPF components:

·        JPPF application template: this is the JPPF-x.y.z-application-template.zip file

·        JPPF driver: this is the JPPF-x.y.z-driver.zip file

·        JPPF node: this is the JPPF-x.y.z-node.zip file

·        JPPF administration console: this is the JPPF-x.y.z-admin-ui.zip file


JPPF Topology

A JPPF grid is made of three different types of components,

·        clients are entry points to the grid and enable developers to submit work

·        servers are the components that receive work from the clients, dispatch it to the nodes, receive the results from the nodes, and redirect the results to the clients

·        nodes perform the job execution


To mitigate single point of failure, JPPF provides the ability to connect multiple servers together in a peer-to-peer network and additional connectivity options for clients and nodes, as illustrated in this figure:


There are a number of major advantages to this design:

·        It enables a greater scalability of the JPPF grid, by allowing the "pluging-in" of additional servers dynamically. This way, a server can delegate a part of its load to other servers.

·        No matter how many servers are present, nodes and clients communicate with them in the exact same way

·        Peer server connections benefit from the same failover and recovery features available to nodes and clients


How it works

There are 2 steps.

·        Dividing an application into smaller parts that can be executed independently and in parallel. 

JPPF provides facilities that make this effort a lot easier, faster and much less painful than without them. The result is a JPPF object called a "job", itself made of smaller independent parts called "tasks".

·        Executing the application on the JPPF Grid.

The simplest possible JPPF Grid is made of a server, to which any number of execution nodes are attached. A node is a JPPF software component that is generally installed and running on a separate machine. This is commonly called a master/slave architecture, where the work is distributed by the server (aka "master") to the nodes (aka "slaves"). In JPPF terms, a unit of work is called a "job", and its constituting "tasks" are distributed by the server among the nodes for parallel execution. 


JPPF Supported Platforms

JPPF will run on any system that supports Java: MacOS, Windows, Linux, zOS, on any hardware from a simple laptop up to a mainframe computer. JPPF is not only limited to running Java jobs. You can run any application that is available on your platform as a JPPF job. For instance, you might want to run your favorite graphics suite in batch mode, to render multiple large, complex images all at once.


There are similar framework as JPPF such as GigaSpacesTerracotta and GridGain.

Reference :www.JPPF.org

To view or add a comment, sign in

More articles by Sudarshani Perera

  • Comparable Vs. Comparator

    Comparable and Comparator in Java are very useful for sorting collection of objects. Java provides Comparable interface…

  • Angular 4

    First of all, I’m going to tell you what kind of thing you are going to read. As an internet user, you must have…

  • Multithreading in Java

    Multitasking is a process of executing multiple tasks simultaneously. We use multitasking to utilize the CPU…

  • String in Java

    String is an object that represents a sequence of characters. There are two ways of creating String, 1.

    2 Comments

Others also viewed

Explore content categories