Applications consist of an application microservice and a factory that launches instances of that microservice. Application factories register network-wide with a special registry. This plugin contains that registry.
Applications are instantiated and started via a message. The message is sent to the application registry and forwarded to a factory in the network. This then creates the instance and starts the application.
Multiple instances of the same factory can be registered. When the start request is received, the registry then selects a factory and forwards the message to it (load balancing).
Launching applications often requires special user rights, which are checked before they are launched. Which rights these are, the factory tells the registry when logging in.
For UI programs (RemoteSkin Swing or Web), the UI output is of course on the user's client node. The client's address is provided with the start request. It is not necessary for the client to be directly adjacent to the application node, it can be located far away from it.