Implementation: Application (Macro)
Administrators view an application program both as an executable program, and also as a set of process instances of that program, running on one or more host computers. Arranging process instances on various host computers is one of the administrator’s responsibilities.
All the process instances of an application program use the same set of endpoints. Developers hard-code that requirement into the program by creating publishers and subscribers, and by calling their methods.
However, from an administrator’s perspective, it could be necessary or advantageous for some of the process instances to implement those endpoints using a different set of transports. For example, process instances on some computers have access to hardware required to use RDMA transports, while processes on other computers must use TCP transports. To arrange these variations, administrators define application definitions and application instance definitions within the realm.
- Application Definitions
An application definition is a configuration within the realm that represents an application program, declares its endpoints and formats, and configures endpoint implementation for its process instances. - Application Instance Definitions
Application instance definitions configure the implementation of endpoints for process instances of an application. - Default Instance and Named Instances
Every application definition has a default instance definition. You may also define an optional ordered list of named instance definitions. - Instance Matching
A matching algorithm dynamically determines a set of process instances. - Instances Determine Subscribers and Durables
When an application uses persistence stores and durables, application instances determine, for each endpoint, the mapping from subscriber names to static durables.