| <?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); |
| ?> |
| |