Architecture

From JPPFWiki

Jump to: navigation, search

Contents

Main Page > Architecture

High Level Architecture View

JPPF-Architecture.gif


Components description

From the diagram, we can see the framework has a 3-tiered architecture, made of 3 distinct layers:

  • client layer: provides an API and communication tools to use the framework to submit tasks, to execute in parallel.
  • service layer: responsible for the communication between with the clients and the nodes, along with the management of the execution queue, the load-balancing and recovery features, and the dynamic loading of both framework and application classes onto the appropriate nodes.
  • execution layer: these are the nodes. They execute individual tasks, return the execution results, and dynamically request, from the JPPF driver, the code they need to execute the client tasks.


Execution Flow

JPPF-Flow.gif


Class loading in JPPF

JPPF-Classloading.gif


Extended Grid Topology

JPPF-Topology.gif

JPPF can be extended to include many servers, communicating together in a peer-to-peer topology.

In this topology, each server is seen by its peers as a node, and sees its peers as clients.

There are a number of major advantages to this design:

  • It overcomes the limitation of the maximum number of nodes that can connect to a server. With a single server, the theoretical limit is 30,000 nodes, whereas with multiple server it is 30,000 * the number of servers
  • It enables the servers to balance their workload, by delegating part of it to their peers
  • 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
Personal tools