Eclipse as a Runtime Catalog

Eclipse began as a tooling platform. In the 3.0 timeframe it emerged as a Rich Client Platform (RCP). Eclipse continues to evolve and is now being used more and more as a runtime technology. This is not entirely new; various projects such as Equinox, eRCP and ECF have been around a while and are entirely runtime focused. More recently however there has been a flurry of activity in the space: RAP shipped 1.0, the Swordfish, Riena and EclipseLink projects have been proposed, ... And that's not to mention the commercial adoption of various Eclipse runtime technologies.

Despite this success, the Eclipse community can do more. One idea is to create a catalog of runtime-related technologies in Eclipse projects today. For example, projects such as EMF and BIRT have non-trivial runtime components but this goes largely unnoticed or underrated by many. This wiki page is an effort to informally gather a list of such technologies so the community can get a bigger view of the overall picture.

Runtimes

B2J

B2J provides translation of BPEL 2.0 into Java for execution within a runtime framework. B2J natively supports BPEL, WSDL, XSD, SOAP, HTTP(S) and WS-Addressing. In addition to providing a framework within which BPEL runtimes tailored to specific requirements can be built the project also provides two sample runtimes - one to run BPEL 2.0 processes within a single JVM and another to run BPEL 2.0 processes remotely or distributed across multiple machines.

BIRT

BIRT is a BI and Reporting Tools platform. In addition to a graphical report designer, it has a OSGi based runtime component to allow developers to deploy BIRT reports as well as BIRT extensions: such as data access ODA drivers, business logic calculation components, security/encryption extensions, output format emitters, charting library, and report library to application servers.

Buckminster

Buckminster is a set of features for automating build, assemble, and deploy development processes in component-based development. Buckminster has a compact headless runtime component built on top of the Eclipse runtime. It contains the core parts of the Eclipse update manager and can configure itself with headless extensions for JDT, PDE, various team providers and repository types to become a streamlined component for use in unattended build and test scenarios.

Eclipse Communication Framework (ECF)

ECF is a framework for building messaging and communications into Eclipse-based tools. ECF APIs allow runtimes to communicate as well as allow people to communicate. For example, the discovery API, remote services API, and datashare API enable remote service discovery and access. These as well as other components of ECF provide runtime support for the creation of distributed applications.

Eclipse Modeling Framework (EMF)

EMF is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor. EMF 2.2's core runtime works with Foundation 1.1, including the XML/XMI serialization support, when a DOM/SAX library is available, so it's device capable. EMF also includes Model Query, Model Transaction, and a Validation Framework. More...

Eclipse Persistence Services Project (EclipseLink)

EclipseLink is a comprehensive persistence solution for Java developers. Delivering support around leading standards (JPA, JAXB, and SDO) as well as going beyond these to deliver high performance, scalability, flexibility, and developer productivity. EclipseLink was initiated from the contribution of the complete functionality of Oracle's TopLink product providing a enterprise-class solution with over 12 years of industry usage.

Equinox

Equinox is the base runtime for Eclipse. It includes an implementation of the OSGi framework as well as many standard and additional services. It is also home to p2, the new provisioning technology, the Eclipse server-side infrastructure and work in security support, componentized aspect-oriented support and other runtime infrastructure.

CDO (Connected Data Objects)

CDO is a 3-tiers solution for distributed shared models and a complete model repository server. With CDO you can easily enhance your existing EMF models in such a way that they can be stored and subsequently maintained in a central model repository. While object relational mapping against a JDBC data source on the server side is the shipped default CDO provides for pluggable storage adapters that allow you to develop and use different mappers (like Hibernate- or OODB-based). On the client side CDO provides a default integration with EMF, the Eclipse Modeling Framework, although other model integrations on top of the CDO protocol are imaginable as well.

Higgins

Higgins is a collaborative project focused on the creation of interoperable, protocol- and platform-independent identity components. Upper-level components can be assembled to create three kinds of identity selectors --user-centric applications for presenting, selecting, and managing a person's multiple, partial identities using the i-card metaphor. Lower-level components can be used to create identity services such as identity providers, security token services and relying party websites and services. See deployment configurations for a complete list of the solutions can be created using Higgins components.

Net4j

Net4j is an extensible client-server communications platform based on OSGi but also executable stand alone. You can easily extend the protocol stack with Eclipse plugins that provide new transport or application protocols. Net4j's focus on performance and scalability is featured by non-blocking I/O, zero-copy signals and multiplexed binary protocols. Net4j was originally developed to support the CDO technology for distributed shared and persistent EMF models but can also multiplex your own user-supplied application protocols through the same socket connection.

Swordfish

The goal of the Swordfish project is to provide an extensible service-oriented architecture (SOA) framework that can be complemented by additional open source or commercial components such as a service registry, a messaging system, a BPEL engine etc. to form a comprehensive open source SOA runtime environment based on both established and emerging open standards.

Rich Ajax Platform (RAP)

The RAP project enables developers to build rich, Ajax-enabled Web applications by using the Eclipse development model, plug-ins with the well known Eclipse workbench extenstion points, JFace, and a widget toolkit with SWT API.

Rich Client Platform (RCP)

The minimal set of plug-ins needed to build a rich client application is collectively known as the Rich Client Platform. The RCP includes the Equinox OSGi implementation, the Equinox extension registry (see also above), the Workbench, JFace, Data Binding, and SWT. The last three (SWT, JFace, and Data Binding) can also be used in standalone applications independent of Equinox or the Workbench.

Riena

The Riena platform will be the foundation for building multi-tier enterprise client/server applications. As such Riena will broaden the usage of the service oriented architecture of OSGi/Equinox by providing access to local and remote services in a transparent way. Using this uniform programming model, the components of Riena and the business components of the enterprise application can be developed regardless of their target location. The Platform will provide components to support building applications from user interface to backend integration.

TPTP

The Test and Performance Tools Platform (TPTP) project provides extensible frameworks and services, spanning the entire test and performance lifecycle, from developer testing through production application monitoring. The Agent Controller is a flexible stand-alone service (local or remote) or integrated with the TPTP workbench (called the Integrated Agent Controller) used to launch and manage processes and attach to agents that coexist within processes. It also provides an extensible agent architecture for control capabilities (for example, launch, pause and attach) and native data collection by monitoring clients. TPTP provides an extensible common data collection and execution framework built on the Agent Controller for local or remote test execution from the TPTP workbench, including deployment, execution, and results collection. In addition, the Automatable Services Framework (ASF) is provided to launch tests programmatically via scripts (for example, shell and ANT) and external applications (for example, Java). Finally, TPTP provides an extensible Profiler Agent based on JVMTI for stand-alone or Eclipse-integrated profiling of Java, Eclipse, or Web applications to collect performance, memory, and threading data.