the embedded rich client platform (eRCP)

The project has been created. Please visit the project page.

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare the intent and scope of a proposed project called the Embedded Rich Client Platform, or eRCP. In addition, this proposal is written to solicit additional participation and inputs from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.ercp newsgroup.

Introduction

The Embedded Rich Client Platform Subproject is a proposed open source project under the Eclipse Technology Project . This document describes the Background, Scope and Goals and Organization of the proposed project. The eRCP project is managed by Project Leads under the Technology PMC. For more information read the Technology Project Charter and the eRCP Project Charter. A proposed project plan is also available here.

Background

The Eclipse Project has become one of the most successful open-source projects in the world, establishing preeminence in the tooling/IDE arena. In addition, there has been a recent launch of the Rich Client Platform (RCP) that extends the domain of the Eclipse platform into non-IDE arenas.

Up until this point, the Eclipse Platform has been aimed at desktop computers; however, we believe that many of the same principles and design goals of the Platform are applicable to the embedded space. This project proposal outlines the organization, scope, and work items needed to investigate the suitability of RCP for embedded clients.

Since the term "embedded" means many things in the industry, we define the (minimum) characteristics of our targeted embedded devices as follows:

Note: this section is not meant to be normative or prescriptive. It is meant to provide a simple definition of "embedded" for this document.

Display:
  • 8-bit color
  • 176x220
Input:
  • T9, touch, or QWERTY
Processing Power:
  • ARM9 100Mhz or equivalent
Memory Constraints:
  • Total RAM: 8M
  • Total ROM/Flash: 16M
  • Heap: 2-4M
Connectivity:
  • Cellular: GPRS, EDGE, or 3G
  • WiFi

Scope and Goals

Note: in order to gain embedded perspectives and maintain the Platform's integrity, we envision that the eRCP subproject would be staffed with a mixture of existing Eclipse committers (to leverage their expertise in current Eclipse architecture) and new committers from the embedded industry.

Scope

As currently envisioned, the eRCP project would focus on adapting the following Eclipse components for the embedded space:

  • eSWT
  • The Extension Point Framework
  • eJface
  • eWorkbench
  • eUpdate

Much like the desktop RCP, wherever possible, each of these components should be useable independently of the other components. More specifically, eSWT should have no dependencies on the other components of eRCP that would preclude its (eSWT's) usage in non-eRCP use cases.

Each of these components and their associated goals are discussed below.

eSWT Scope
Create a "fit-for-purpose," embedded version of SWT with the following characteristics:

  • Create a set of mobile-phone-centric components. Other vertical industry specific components may also be addressed depending on the interests of the community.
  • Evaluate the architecture of SWT and how it might be improved, with an emphasis on runtime efficiencies, re-factoring, and footprint.
  • Retain the design philosophy of SWT (i.e. SWT layers a "native" user-interface, where "native" means the device's built-in user interface).
  • Create a proper subset of SWT that can be used in the following ways:
    • As the basis of a primary user interface.
    • As the basis for more abstract user-interface paradigms (e.g. an XML, or other declarative UI model).
    • As a porting layer for other "fit-for-purpose," embedded, Java user interfaces.
  • Create multiple ports to embedded user-interfaces. Possible candidates include Linux/GTK, Symbian/Series 90, etc.)

For more details, see the following documents:

Extension Point Framework
Utilize the Extension Point Framework as the basis of creating embedded client platforms. Possible work items include the following:

  • Evaluate the architecture of the Extension Point Framework and how it might be improved, with an emphasis on runtime efficiencies, re-factoring, and footprint

eJFace
Utilize JFace as a means for providing model, view, controller paradigm widgets (i.e. DataGrid, DataTree). Possible work items are as follows

  • Evaluate which parts of JFace are desktop only oriented and can be removed for footprint efficiency.
  • Evaluate how JFace might be improved to provide better DataGrid functionality.

eWorkBench
We believe concept of the "workbench" from the RCP effort is applicable to the embedded market; however, there are some significant differences too-the embedded workbench is likely to be device or industry specific. For example, it is unlikely that a PDA "workbench" would be the same as the workbench of a mobile phone.

The scope of this project will concentrate on the following areas:

  • Identify the "core pieces" of the Workbench that are broadly applicable to as many devices as possible.
  • Create at least two eWorkbench implementations as reference implementations (i.e. a "quarter-VGA, PDA" workbench and a "smart phone" workbench.
  • Identify common extension points applicable to as many workbenches as possible.

eUpdate
One of the strengths of the RCP is that is can be updated "in the field." This subproject would look at using the "Update component" of the RCP and extend its use for embedded devices.

 

Goals

  • Whenever possible, re-factor the existing Platform's code to be efficient in the embedded space while maintaining structure and API signatures.
  • Maintain consistency with Eclipse Platform

Non-goals

  • Substantial change to the code that creates an apparent "fork" or substantial change to the Platform.
Organization

Given the differences between embedded devices and desktop computers, we propose that this project be undertaken as a Technology Subproject rather than part of the Eclipse Platform Project. Being a Technology subproject gives the project room to experiment with the technology without disruption to the mainline Eclipse developers and users. In addition, we feel that it is vitally important to involve developers from the embedded market so we create a truly "fit-for-purpose" embedded client platform.

With that said, it is also important to retain as much continuity as possible with the existing Eclipse Platform; therefore, we propose that existing committers from the Eclipse Platform also be part of this project.

Finally, since Technology Sub-projects are not meant to be ongoing, there are three possible evolutionary paths for the eRCP subproject:

  1. The project is merged back into the mainline Eclipse RCP project. In other words, the eRCP work identifies a clean, proper subset of existing Eclipse code, and the existing Eclipse code is "fit-for-purpose" for embedded or refactored to be "fit-for-purpose."
  2. The investigative work down by eRCP determines that RCP can not be made "fit-for-purpose" for embedded.
  3. Sufficient interest and uptake of the Eclipse community drive creation of a new top-level project for embedded.

These three paths are not mutually exclusive. Some combination of some or all of these paths may be the result of the work done in this sub-project.

Suggested Project Leads and Committers
This section captures the list of companies that have expressed interest in the project and/or its components, and as such will be updated periodically to reflect the growing interest in this project.

Rather than canvas the Eclipse community at large, the submitters of this proposal welcome interested parties to post to the eclipse.technology.ercp newsgroup and ask to be added to the list as interested parties or to suggest changes to this document.

Interim Leads
Jim Robbins, IBM
robbinsj at us.ibm.com
+1 512.838.9495
Mark VandenBrink, IBM
vmark at us.ibm.com
+1 512.838.9262

Component
Interested Parties
eSWT
Nokia, Motorola, IBM
eJFace
 
Extension Point Framework
 
eWorkbench
 
eUpdate