Nodes
A Node is the runtime Environment for Applications. Nodes exist in an Environment and are managed by Hosts. When managed by a Host, a Node runs in its own OS process and JVM. You can configure a Host with multiple Nodes. Nodes act as sandboxes for Applications.
The reasons to use multiple Nodes include:
- Increase throughput.
- Run different versions of software and limit the set of affected Application fragments when updating software versions.
- Allow Applications to use different Resource Instance configurations of the same name.
- Enable fault tolerance.
- Implement various security policies by limiting access to certain Nodes and resources.
The reasons to share a node include:
- Share Resource Instances between Applications such as thread pools and database connection pools.
- Communication between components in a Node avoids serialization overheads.
- Reduced overall memory utilization.
Application fragments are components or bindings of an application that are distributed and deployed to Nodes. A fragment can be distributed to many Nodes, and a single Node can run many fragments. To increase throughput for a component or binding you can deploy multiple copies of the fragment to multiple Nodes.
A Node has a set of product and features shared by Resource Instances and Application fragments running on the Node. You can upgrade or downgrade the features to match the feature versions to those available in the software repository.