Architecture
From JPPFWiki
| Main Page > Architecture |
[edit]
High Level Architecture View
[edit]
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.
[edit]
Execution Flow
[edit]
Class loading in JPPF
[edit]
Extended Grid Topology
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
