| <!-- |
| This document is provided as a template along with some guidance for creating |
| your project proposal. This is just a template. Feel free to change it as |
| you see fit (add sections, remove section). We feel, however, that the |
| suggestions represented in this document represent the reasonable minimum |
| amount of information to move forward. |
| |
| Please keep the formatting in this document simple. Please do not edit |
| this document in Microsoft Word as it adds huge piles of markup that make |
| it difficult to restyle. |
| |
| More information is available here: |
| |
| http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase |
| |
| Direct any questions about this template to emo@eclipse.org |
| --> |
| |
| <html> |
| <head> |
| |
| <!-- |
| Include the title here. We will parse it out of here and include it on the |
| rendered webpage. Do not duplicate the title within the text of your page. |
| --> |
| |
| <title>Scout</title> |
| </head> |
| |
| <body> |
| <p>The Scout project is a proposed open source project under the |
| <a href="http://www.eclipse.org/technology/">Eclipse Technology |
| Project</a>.</p> |
| |
| |
| <p>This proposal is in the Project Proposal Phase (as defined in the |
| Eclipse Development Process) and is written to declare its intent and |
| scope. We solicit additional participation and input from the Eclipse |
| community. Please send all feedback to the <a href="http://www.eclipse.org/forums/eclipse.scout">Scout</a> |
| Eclipse Forum.</p> |
| |
| <h2>Background</h2> |
| |
| Business application developers face many recurring requirements. |
| Implementing these should not require a significant amount of time. |
| Instead, developers should be able to concentrate on understanding and |
| implementing business cases. |
| <p> |
| The Scout framework substantially reduces development time for fully SOA and |
| J2EE compliant solutions in the following areas: |
| |
| <ul> |
| <li>Client Server Communication</li> |
| <li>Defining Interfaces for third party applications (server- and client-side)</li> |
| <li>Data binding</li> |
| <li>Implementing and layouting screens</li> |
| <li>Support of a common CICD (Corporate Identity Corporate Design)</li> |
| </ul> |
| |
| In addition, architecture driven issues are addressed: |
| |
| <ul> |
| <li>Integration of existing applications</li> |
| <li>Support of SOA and usage of services</li> |
| <li>Ensure a common architecture over a company's application landscape</li> |
| <li>Facilitate the exchange of developers across different projects</li> |
| </ul> |
| |
| |
| <h2>Scope</h2> |
| |
| <!-- |
| The goal of the Scout framework is to support developers with tooling and |
| features to implement business applications. |
| |
| --> |
| <!-- |
| |
| What is covered by Scout: |
| <ul> |
| <li>An application model that definition of the any type of business application.</li> |
| <li>Exchangeable client server communication including a reference |
| implementation based on the http(s) protocol.</li> |
| </ul> |
| --> |
| |
| |
| This proposal covers two main parts: Scout and Scout SDK, both are realized as |
| fully compliant Eclipse plugin set. |
| An overview of the application building process with the Scout framework is |
| provided below. For more detailed information also see our |
| <a href="http://wiki.eclipse.org/scout">Scout wiki</a>. |
| |
| <p> |
| <b>Scout</b> provides an application model, a reference implementations, and |
| utilities proven to be useful for business application development. |
| Main aspects included in Scout are listed below: |
| </p> |
| <ul> |
| <li>Scout application model supporting a clear and simple definition of |
| business applications.</li> |
| <li>Abstract UI component model including implementations |
| for its Swing and SWT/JFace representations.</li> |
| <li>Exchangeable client server communication. |
| A reference implementation using the HTTP(S) protocol.</li> |
| <li>Remote service infrastructure. Calls to services do not assume a specific |
| location (client or server).</li> |
| <li>Client notification for communication from the server to the clients</li> |
| <li>Support for integrating 3rd party libraries and applications</li> |
| </ul> |
| |
| <p> |
| The <b>Scout SDK</b> provides the tooling to build/manage applications based |
| on Scout. |
| This is achieved by generating pure Java code. |
| Main aspects included in Scout SDK are listed below: |
| </p> |
| <ul> |
| <li>Wizard support for managing the Scout application model.</li> |
| <li>Real time synchronization of the application model and the generated Java |
| application code.</li> |
| <li>Tooling for providing/consuming web services, implementation of |
| application services, and multi-language support. |
| </li> |
| <li>Build and launch support for Scout applications.</li> |
| </ul> |
| |
| |
| |
| <p> |
| Out of scope for this proposal: |
| </p> |
| <ul> |
| <li>Scout does not provide a persistence layer. The Scout data transfer |
| objects (DTOs) represent the link to a percistence layer.</li> |
| <li>Scout is not a GUI builder. The Scout client manages the mapping from the |
| application model to a specific UI implementation depending on the |
| UI plugin representation that is shipped with the application.</li> |
| </ul> |
| |
| |
| <h2>Outlook e4</h2> |
| <p> |
| Several concepts from Eclipse e4 are already integrated in the Scout framework |
| such as a fully OSGi service oriented architecture (no singletons) and the usage of a |
| UI independ application model (analog to the e4's <code>IPresentationEngine</code> concept). |
| </p> |
| <p> |
| The Scout application model will become an extension of the e4 workbench model and include |
| the UI component layer (e.g. <code>SmartField</code>, <code>TextField</code>, <code>TableField</code>, …). |
| Based on e4 and Scout users may create complete and sound application models (EMF). |
| </p> |
| |
| <h2>Description</h2> |
| <img src="ScoutGlossar1_1.png" /> |
| <h3>Scout</h3> |
| |
| <p> |
| Scout is the base of applications that may be developed with or without the Scout SDK. |
| Scout applications are built on top of the Scout runtime layer. |
| Maintenance of such applications and maintenance of the Scout runtime layer is |
| only loosely coupled as illustrated in the diagram above. |
| </p> |
| <p> |
| As Scout is written in pure Java/J2EE and satisfies the OSGi paradigm, integration of |
| 3rd party libraries or applications is fully supported. |
| The Scout runtime both provides a large amount of reusable functionality and a library |
| of abstract UI component models. |
| </p> |
| <p> |
| The extension point registry is reused to define Scouts extension points. |
| An Eclipse compliant extension point defines the UI representation of every component model. |
| This simplifies adding and changing of specific component representations as well as the |
| application representation. |
| With a Swing and a SWT/JFace representation Scout already provides two UI implementations. |
| </p> |
| |
| <p>Functionality overview:</p> |
| |
| <TABLE BORDER="1"> |
| <TR> |
| <TH>Topic</TH> |
| <TH>Description</TH> |
| </TR> |
| <TR> |
| <TD>Architecture</TD> |
| <TD>Sound and correct SOA architecture. Client- and server-side SOA.</TD> |
| </TR> |
| <TR> |
| <TD>Communication</TD> |
| <TD>Exchangeable communication layer with a HTTP(S) implementation.</TD> |
| </TR> |
| <TR> |
| <TD>Services</TD> |
| <TD>J2EE session safe service registries and the ability to remote a service. Service calls look equal on both client and server side.</TD> |
| </TR> |
| <TR> |
| <TD>Internationalization</TD> |
| <TD>Multi language support, number, date and currency formats.</TD> |
| </TR> |
| <TR> |
| <TD>Components</TD> |
| <TD>Approx. 35 main UI components cover most requirements of real live business applications. Both Swing and SWT/JFace representations are available.</TD> |
| </TR> |
| <TR> |
| <TD>Session Context</TD> |
| <TD>Enables J2EE backend session handling.</TD> |
| </TR> |
| <TR> |
| <TD>Client Notification</TD> |
| <TD>Inverse communication (from server to client).</TD> |
| </TR> |
| <TR> |
| <TD>Extensions</TD> |
| <TD>The ability to extend the framework in functionality and behaviour through the Eclipse extension mechanism.</TD> |
| </TR> |
| </TABLE> |
| |
| <h3>Scout SDK</h3> |
| |
| Scout SDK is an Eclipse plugin set that boosts developer productivity in building |
| complete applications. Examples of such applications are: |
| |
| <ul> |
| <li>Standalone rich client platforms (Equinox, SWT/Swing)</li> |
| <li>SOA/ESB node consisting of J2EE with service registry and web services (Equinox)</li> |
| <li>Rich client platforms with a J2EE Backend (Equinox, SWT/Swing)</li> |
| </ul> |
| |
| Scout SDK operates on top of both the Eclipse JDT/PDE model. |
| Scout SDK guides the developer in building Scout based SOA compliant applications. |
| Instead of implementing the same patterns of an application again and again, |
| Scout SDK helps to reduce development time by offering tooling and outline views to |
| navigate the application. |
| As a consequence, developers can focus their work on the business logic of the application. |
| In the background Scout SDK takes care of the sound architecture and complete structure |
| of the Java project. |
| |
| <p>The result of a solution developed with Scout SDK is a pure Java solution consisting of one or more Equinox/Eclipse based applications. </p> |
| <p>Functionality overview:</p> |
| |
| <TABLE BORDER="1"> |
| <TR> |
| <TH>Topic</TH> |
| <TH>Description</TH> |
| </TR> |
| <TR> |
| <TD>Application Model</TD> |
| <TD>Wizard support to add/remove/modify the application model. Drag and drop support.</TD> |
| </TR> |
| <TR> |
| <TD>Template Support</TD> |
| <TD>Reuse enriched components. Create a template of forms.</TD> |
| </TR> |
| <TR> |
| <TD>Internationalization</TD> |
| <TD>Editor to browse, create, and edit multilingual application texts. </TD> |
| </TR> |
| <TR> |
| <TD>Extensions</TD> |
| <TD>The ability to extend Scout SDK to manage new components or add new SDK functionality on existing components.</TD> |
| </TR> |
| <TR> |
| <TD>Build and Launch</TD> |
| <TD>Support to export the application and launch both server and client in the context of the SDK.</TD> |
| </TR> |
| </TABLE> |
| |
| <h3>Relationship with other Eclipse Projects</h3> |
| |
| Scout applications are pure OSGi based Java/J2EE project. |
| Therefore, any Eclipse project may be reused in Scout applications. |
| Eclipse projects with a significant dependency to this proposal are listed below. |
| <p> |
| |
| <TABLE BORDER="1"> |
| <TR> |
| <TH>Project</TH> |
| <TH>Description</TH> |
| <TH>Impact</TH> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=eclipse.pde">PDE</a></TD> |
| <TD>The Plug-in Development Environment provides tools to build Eclipse plug-ins, fragments, features, update sites and RCP products.</TD> |
| <TD>Scout SDK strongly depends on PDE and uses functionality provided by PDE including the plugin model.</TD> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=eclipse.jdt">JDT</a></TD> |
| <TD>The Java Development Tools project provides the tool plug-ins that implement a Java IDE supporting the development of any Java application, including Eclipse plug-ins.</TD> |
| <TD>Scout SDK strongly depends on JDT and uses functionality provided by JDT such as the type and compilation unit abstraction.</TD> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=rt.equinox">Equinox</a></TD> |
| <TD>The Equinox project represents a first class OSGi community and fosters the vision of Eclipse as a landscape of bundles.</TD> |
| <TD>Scout applications are fully OSGi compliant. The Equinox implementation is used on both the client and the server side.</TD> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=birt">BIRT</a></TD> |
| <TD>Business Intelligence and Reporting Tools is an Eclipse-based reporting system for web applications.</TD> |
| <TD>Scout SDK support for BIRT is scheduled. Currently, BIRT functionality may be integrated in Scout applications without Scout SDK tooling support.</TD> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=rt.riena">Riena</a></TD> |
| <TD>The Riena platform provides a foundation for building multi-tier enterprise client/server applications.</TD> |
| <TD>Riena and Scout have evaluated their impact to each other. A friendly co-existence is intended and |
| a common interest in the development of components useful to both projects has been identified.</TD> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=rt.ecf">ECF</a></TD> |
| <TD>Eclipse Communication Framework. Supports the development of distributed Eclipse-based tools and applications.</TD> |
| <TD>The Scout project evaluates the ECF project to use as a communication framework.</TD> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=rt.rap">RAP</a></TD> |
| <TD>Rich Ajax Platform. The RAP project enables developers to build rich, Ajax-enabled Web applications.</TD> |
| <TD>Scout SDK RAP support is scheduled. Currently, a demo Scout application that uses RAP is available.</TD> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=rt.swordfish">Swordfish</a></TD> |
| <TD>Swordfish provides an extensible SOA framework based on the proven Eclipse Equinox runtime technology.</TD> |
| <TD>The Scout project is evaluating Swordfish to orchestrate business process on the BEPL standard.</TD> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=rt.eclipselink">EclipseLink</a></TD> |
| <TD>The Eclipse Persistence Services Project (EclipseLink) provides a complete persistence framework that is both comprehensive and universal</TD> |
| <TD>Scout project is evaluating to integrate EclipseLink as a standard persistence layer. Today EclipseLink and others are and can be used as a persistence layer. Currently, Scout SDK provides no tooling for the persistence layer.</TD> |
| </TR> |
| <TR> |
| <TD><a href="http://www.eclipse.org/projects/project_summary.php?projectid=modeling.emf">EMF</a></TD> |
| <TD>The Eclipse Modeling Framework project supports modeling and code generation for building tools and other applications based on a structured data model.</TD> |
| <TD>Starting with e4, the Scout application model will become an extension of the e4 workbench model. |
| </TD> |
| </TR> |
| </TABLE> |
| |
| <h2>Legal Issues</h2> |
| |
| <!-- |
| Please describe any potential legal issues in this section. Does somebody else |
| own the trademark to the project name? Is there some issue that prevents you |
| from licensing the project under the Eclipse Public License? Are parts of the |
| code available under some other license? Are there any LGPL/GPL bits that you |
| absolutely require? |
| --> |
| |
| <p> |
| Apart from dependencies to existing Eclipse plugins, the initial code contribution from |
| BSI AG relies on the availability of the following libraries. As part of the code contribution |
| review, BSI AG will also submit these for approval per the Eclipse development process. |
| </p> |
| |
| <TABLE BORDER="1"> |
| <TR> |
| <TH>Plugin</TH> |
| <TH>External Part</TH> |
| <TH>Licence</TH> |
| </TR> |
| <TR> |
| <TD>javax.mail</TD> |
| <TD>All</TD> |
| <TD>Sun Java</TD> |
| </TR> |
| <TR> |
| <TD>javax.mail.fragment.jre1_5</TD> |
| <TD>All</TD> |
| <TD>Sun Java</TD> |
| </TR> |
| <TR> |
| <TD>javax.mail.fragment.jre1_6</TD> |
| <TD>All</TD> |
| <TD>Sun Java</TD> |
| </TR> |
| <TR> |
| <TD>org.eclipse.scout.sdk.ant</TD> |
| <TD>Apache Ant</TD> |
| <TD>Apache Licence 2.0</TD> |
| </TR> |
| </TABLE> |
| |
| <h2>Committers and Project Lead</h2> |
| |
| <p>The following individuals are proposed as initial committers to the project:</p> |
| |
| <ul> |
| <li>Matthias Zimmermann, Co-Lead (BSI AG)</li> |
| <li>Andreas Hoegger, Co-Lead, Committer (BSI AG)</li> |
| <li>Ivan Motsch, Committer (BSI AG)</li> |
| <li>Hannes Müller, Committer (BSI AG)</li> |
| <li>Stephan Leicht, Committer (BSI AG)</li> |
| </ul> |
| |
| <h2>Initial Contributions</h2> |
| |
| Functionality described in this proposal will be provided by BSI AG. |
| The Community is asked for input on the existing code base, feature requests |
| for new functionality, and bug requests. |
| |
| <h2>Mentors</h2> |
| |
| <p>The following Architecture Council members will mentor this |
| project:</p> |
| |
| <ul> |
| <li>Jochen Krause, Innoopract</li> |
| <li>Markus Knauer, Innoopract</li> |
| <li>Thomas Schindl, BestSolution.at</li> |
| </ul> |
| |
| <h2>Interested Parties</h2> |
| |
| <!-- |
| Provide a list of individuals, organisations, companies, and other Eclipse |
| projects that are interested in this project. This list will provide some |
| insight into who your project's community will ultimately include. Where |
| possible, include affiliations. Do not include email addresses. |
| --> |
| |
| <p>The following companies have |
| expressed interest in this project:</p> |
| |
| <ul> |
| <li>compeople</li> <!-- gem�ss j�rgen wiesmaier, 6.1.10 --> |
| <li>EclipseSource</li> <!-- gem�ss jochen, 7.1.10 --> |
| <li>Weigle Wilczek</li> <!-- gem�ss joern, 8.01.10 --> |
| <li>Schlag & Rahm</li> <!-- gem�ss mischa, 4.02.10 --> |
| </ul> |
| |
| <p>The following individuals have |
| expressed interest in this project:</p> |
| |
| <ul> |
| <li>Aleksey V. Zapparov</li> |
| <li>Gilles Iachelini, CSC</li> |
| <li>Benjamin Muskalla, EclipseSource</li> |
| <li>Frank Gerhardt, Gerhardt Informatics Kft.</li> |
| <li>Michael Pucher, affinis</li> |
| <li>Tonny Madsen, The RCP Company</li> |
| <li>Ricco Deutscher, Sopera</li> |
| </ul> |
| |
| <h2>Project Scheduling</h2> |
| |
| <!-- |
| Describe, in rough terms, what the basic scheduling of the project will |
| be. You might, for example, include an indication of when an initial contribution |
| should be expected, when your first build will be ready, etc. Exact |
| dates are not required. |
| --> |
| |
| <ol> |
| <li>February-2010: Scout proposal under eclipse.org</li> |
| <li>March-2010: Provisional code in Eclipse repository</li> |
| <li>Mai-2010: Scout project status, code in Eclipse repository</li> |
| <li>2011: Scout as a formal part of the Eclipse release train</li> |
| </ol> |
| |
| <h2>Changes to this Document</h2> |
| |
| <!-- |
| List any changes that have occurred in the document here. |
| You only need to document changes that have occurred after the document |
| has been posted live for the community to view and comment. |
| --> |
| |
| <table> |
| <tr> |
| <th>Date</th> |
| <th>Change</th> |
| </tr> |
| <tr> |
| <td>30-March-2010</td> |
| <td>Updated list of interested parties</td> |
| </tr> |
| <tr> |
| <td>18-March-2010</td> |
| <td>Updated comments regarding Riena and list of interested parties</td> |
| </tr> |
| <tr> |
| <td>08-February-2010</td> |
| <td>Updated according to comments from Wayne Beaton</td> |
| </tr> |
| <tr> |
| <td>03-February-2010</td> |
| <td>Updated according to comments from Markus Knauer and Tom Schindl</td> |
| </tr> |
| <tr> |
| <td>21-January-2010</td> |
| <td>Updated according to comments from Wayne Beaton</td> |
| </tr> |
| <tr> |
| <td>07-January-2010</td> |
| <td>Updated according to comments from Tom Schindl, and Jochen Krause</td> |
| </tr> |
| <tr> |
| <td>05-January-2010</td> |
| <td>Document created</td> |
| </tr> |
| </table> |
| </body> |
| </html> |