The Eclipse Foundation has strong history based upon its rich client platform (RCP) framework. The Eclipse platform (eclipse-platform) distribution provides the frameworks needed to host client-side applications and components. However, many of the frameworks contained within the platform are suitable for a server-side environment as well. This proposal is provide a server-side Eclipse runtime distribution that parallels the Eclipse (RCP) platform.
The Eclipse server-side platform is an Eclipse runtime environment. It shares the same architecture used by the Eclipse RCP, minus all UI components. The same concepts of bundles, plug-ins, and features are supported across both the client and server environments. The Eclipse server-side platform also supports the OSGi Application concept to manage the runtime lifecycle of a server application component. The Eclipse server-side platform consists of the following categories of components:
- Eclipse core runtime
- Service Application Manager (specific to server-side platform)
Beginning with Eclipse v3.3, a new application model was introduced:
- The platform runtime provides an application container for controlling and executing applications. The runtime application container implements the Application Admin service specification included in the OSGi R4 specification. The application container is responsible for discovering all available applications and registering an ApplicationDescriptor OSGi service for each application that is available. An ApplicationDescriptor service can be used to launch an application. When an application is launched an ApplicationHandle OSGi service is registered to represent the instance of the running application. An ApplicationHandle service can be used to shutdown an application. See the org.osgi.service.application package and the OSGi R4.1 specification for more information.
The Service Application Manager (SAM) is the primary OSGi service application used to manage all other OSGi service applications. SAM would execute on the main application thread. Additional service applications, registered via the org.eclipse.core.runtime.applications extension point, would be configured to run on any thread. SAM would be responsible to start/stop service applications as configured (i.e. as server-side platform applications, scheduled jobs, etc...).