| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| $pageTitle = ""; | |
| $pageKeywords = ""; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1>the embedded rich client platform | |
| (eRCP) </h1> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("Embedded Rich Client Platform"); | |
| ?> | |
| <p>This proposal is in the Project Proposal Phase (as defined in the <a href="/projects/dev_process/">Eclipse | |
| Development Process document</a>) 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 <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.ercp">http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.ercp</a> | |
| newsgroup. </p> | |
| <h2>Introduction</h2> | |
| <p>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 <a href="/technology/technology-charter.php">Technology | |
| Project Charter</a> and the <a href="ercpcharter.html">eRCP Project Charter</a>. | |
| A proposed project plan is also <a href="plan.html">available here</a>. | |
| </p> | |
| Background | |
| <p>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.<br> | |
| <br> | |
| 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.<br> | |
| <br> | |
| Since the term "embedded" means many things in the industry, | |
| we define the (minimum) characteristics of our targeted embedded devices | |
| as follows: <br> | |
| <br> | |
| Note: <i>this section is not meant to be normative or prescriptive. It | |
| is meant to provide a simple definition of "embedded" for this | |
| document.</i> | |
| </p> | |
| <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="90%" > | |
| <tr> | |
| <td width="19%"> </td> | |
| <td valign="top" width="17%">Display: </td> | |
| <td width="64%"> | |
| <ul> | |
| <li>8-bit color</li> | |
| <li>176x220 </li> | |
| </ul> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="19%"> </td> | |
| <td valign="top" width="17%">Input: </td> | |
| <td width="64%"> | |
| <ul> | |
| <li>T9, touch, or QWERTY</li> | |
| </ul> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="19%"> </td> | |
| <td valign="top" width="17%">Processing Power: </td> | |
| <td width="64%"> | |
| <ul> | |
| <li>ARM9 100Mhz or equivalent </li> | |
| </ul> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="19%"> </td> | |
| <td valign="top" width="17%">Memory Constraints: </td> | |
| <td width="64%"> | |
| <ul> | |
| <li>Total RAM: 8M</li> | |
| <li>Total ROM/Flash: 16M </li> | |
| <li>Heap: 2-4M</li> | |
| </ul> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="19%"> </td> | |
| <td valign="top" width="17%">Connectivity: </td> | |
| <td width="64%"> | |
| <ul> | |
| <li>Cellular: GPRS, EDGE, or 3G </li> | |
| <li>WiFi</li> | |
| </ul> | |
| </td> | |
| </tr> | |
| </table> | |
| <h2> | |
| Scope and Goals</h2> | |
| <p>Note: <i>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.</i><br> | |
| </p> | |
| <p><b>Scope</b></p> | |
| <p>As currently envisioned, the eRCP project would focus on adapting the | |
| following Eclipse components for the embedded space:</p> | |
| <ul> | |
| <li>eSWT</li> | |
| <li>The Extension Point Framework</li> | |
| <li>eJface</li> | |
| <li>eWorkbench</li> | |
| <li>eUpdate</li> | |
| </ul> | |
| <p> 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.<br> | |
| <br> | |
| Each of these components and their associated goals are discussed below.<br> | |
| <br> | |
| <b>eSWT Scope </b><br> | |
| Create a "fit-for-purpose," embedded version of SWT with the | |
| following characteristics:</p> | |
| <ul> | |
| <li>Create a set of mobile-phone-centric components. Other vertical industry | |
| specific components may also be addressed depending on the interests | |
| of the community.</li> | |
| <li>Evaluate the architecture of SWT and how it might be improved, with | |
| an emphasis on runtime efficiencies, re-factoring, and footprint. </li> | |
| <li> Retain the design philosophy of SWT (i.e. SWT layers a "native" | |
| user-interface, where "native" means the device's built-in | |
| user interface).</li> | |
| <li>Create a proper subset of SWT that can be used in the following ways: | |
| <ul> | |
| <li>As the basis of a primary user interface.</li> | |
| <li> As the basis for more abstract user-interface paradigms (e.g. | |
| an XML, or other declarative UI model).</li> | |
| <li> As a porting layer for other "fit-for-purpose," embedded, | |
| Java user interfaces.<br> | |
| </li> | |
| </ul> | |
| </li> | |
| <li>Create multiple ports to embedded user-interfaces. Possible candidates | |
| include Linux/GTK, Symbian/Series 90, etc.) </li> | |
| </ul> | |
| <p>For more details, see the following documents:</p> | |
| <ul> | |
| <li><a href="eSWT_Requirements_v0_9_2.pdf">eSWT Requirements and High-Level | |
| Architecture</a> (.pdf)</li> | |
| <li><a href="eSWT_UI_Proposal_v0_9_5.pdf">The eSWT User Interface - High-Level | |
| Design</a> (.pdf)</li> | |
| <li><a href="SWT_Mobile_Extensions_v0_9_3.pdf">Mobile Extensions for SWT | |
| - High-Level Design</a> (.pdf)</li> | |
| </ul> | |
| <p><b>Extension Point Framework</b><br> | |
| Utilize the Extension Point Framework as the basis of creating embedded | |
| client platforms. Possible work items include the following:<br> | |
| </p> | |
| <ul> | |
| <li>Evaluate the architecture of the Extension Point Framework and how | |
| it might be improved, with an emphasis on runtime efficiencies, re-factoring, | |
| and footprint</li> | |
| </ul> | |
| <p><b>eJFace</b><br> | |
| Utilize JFace as a means for providing model, view, controller paradigm | |
| widgets (i.e. DataGrid, DataTree). Possible work items are as follows</p> | |
| <ul> | |
| <li>Evaluate which parts of JFace are desktop only oriented and can be | |
| removed for footprint efficiency.</li> | |
| <li>Evaluate how JFace might be improved to provide better DataGrid functionality.<br> | |
| </li> | |
| </ul> | |
| <p><b>eWorkBench</b><br> | |
| 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.<br> | |
| <br> | |
| The scope of this project will concentrate on the following areas:</p> | |
| <ul> | |
| <li>Identify the "core pieces" of the Workbench that are broadly | |
| applicable to as many devices as possible.</li> | |
| <li>Create at least two eWorkbench implementations as reference implementations | |
| (i.e. a "quarter-VGA, PDA" workbench and a "smart phone" | |
| workbench.</li> | |
| <li>Identify common extension points applicable to as many workbenches | |
| as possible.<br> | |
| </li> | |
| </ul> | |
| <p><b>eUpdate</b><br> | |
| 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.</p> | |
| <p> </p> | |
| <p>Goals</p> | |
| <ul> | |
| <li>Whenever possible, re-factor the existing Platform's code to be efficient | |
| in the embedded space while maintaining structure and API signatures.</li> | |
| <li>Maintain consistency with Eclipse Platform </li> | |
| </ul> | |
| <p><b>Non-goals</b></p> | |
| <ul> | |
| <li>Substantial change to the code that creates an apparent "fork" | |
| or substantial change to the Platform.<br> | |
| </li> | |
| </ul> | |
| Organization | |
| <p>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.<br> | |
| <br> | |
| 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.<br> | |
| <br> | |
| Finally, since Technology Sub-projects are not meant to be ongoing, there | |
| are three possible evolutionary paths for the eRCP subproject:<br> | |
| </p> | |
| <ol> | |
| <li>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."</li> | |
| <li>The investigative work down by eRCP determines that RCP can not be | |
| made "fit-for-purpose" for embedded.</li> | |
| <li>Sufficient interest and uptake of the Eclipse community drive creation | |
| of a new top-level project for embedded. </li> | |
| </ol> | |
| <p>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. | |
| </p> | |
| <p><b>Suggested Project Leads and Committers</b><br> | |
| 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.<br> | |
| <br> | |
| Rather than canvas the Eclipse community at large, the submitters of this | |
| proposal welcome interested parties to post to the <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.ercp">eclipse.technology.ercp | |
| newsgroup</a> and ask to be added to the list as interested parties or | |
| to suggest changes to this document.<br> | |
| </p> | |
| <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="90%" > | |
| <tr> | |
| <td valign="top" width="22%"><b>Interim Leads</b></td> | |
| <td valign="top" width="78%"> </td> | |
| </tr> | |
| <tr> | |
| <td valign="top" width="22%">Jim Robbins, IBM<br> | |
| robbinsj <b>at</b> us.ibm.com<br> | |
| +1 512.838.9495 </td> | |
| <td valign="top" width="78%">Mark VandenBrink, IBM<br> | |
| vmark <b>at</b> us.ibm.com<br> | |
| +1 512.838.9262 <br> | |
| <br> | |
| </td> | |
| </tr> | |
| </table> | |
| <div align="left"><b>Component</b> </div> | |
| <b>Interested Parties</b> | |
| <div align="left">eSWT </div> | |
| <i>Nokia, Motorola, IBM</i> | |
| <div align="left">eJFace </div> | |
| | |
| <div align="left">Extension Point Framework</div> | |
| | |
| <div align="left">eWorkbench </div> | |
| | |
| <div align="left">eUpdate</div> | |
| | |
| </div> | |
| </div> | |
| <?php | |
| # Paste your HTML content between the EOHTML markers! | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> | |