Smart Client development with the Eclipse Rich Client Platform Nick Edgar and Pascal Rapicault IBM Rational Software Ottawa, Ontario Eclipse Platform Committers To contact us: news://news.eclipse.org/eclipse.platform.rcp 2005 by IBM; made available under the EPL v1.0 September 2005 IBM Corporation
What is Eclipse RCP? Rich Client Platform A Platform for building Client applications with Rich functionality Eclipse is open-source, free A Brief History of RCP Eclipse 2.1 (2003): Eclipse is an IDE platform. Hackers (aka smart people) in the eclipse community started building non-ide apps based on Eclipse IDE technology. Eclipse 3.0 (2004): We made this real by: factoring out the IDE-specific aspects from the workbench you get a blank slate: an empty workbench but with a very rich set of features to fill it with RCP-specific APIs for configuration and lifecycle notification integrating with the new OSGi runtime cleaning up dependencies in other components (e.g. Help and Update) Eclipse 3.1 (2005): improved tooling, some new APIs 2 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
What is in RCP? While the Eclipse Platform is designed to serve as an open tools platform, it is architected so that its components can be used to build just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the Rich Client Platform. A subset of the full Platform There are other subsets 3 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Characteristics of a Smart Client Application Desktop app (not in web browser) Run on multiple platforms, devices, and configurations Rich UI with consistent metaphors Tight integration with desktop OS (e.g. DnD, System Tray) Easy deployment and server-centric management -> lower TCO Makes use of local filesystem and other devices (printer, card reader) Makes use of server-side resources and data too Reduced round trips to the server Responsive UI Occasionally disconnected operation? Securely caching data, knowing when to invalidate Indicating potentially stale data to user 4 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Example RCP apps Highlighting Smart aspects 5 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
IBM Workplace Client Technology, Client Administrator Dynamic, user-based provisioning Locked-down desktop Strong security requirements Restricted customizability 6 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Maestro NASA Space Mission Management Responsive UI Open Platform for space mission monitoring Bringing together different teams in NASA/JPL 7 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Eclipse Technologies in action RCP components (base and optional) by theme: OSGi and Runtime UI SWT, JFace, Workbench, Text, Forms, GEF User Assistance Help, Intro, Cheat Sheets Deployment JNLP, Update Manager Modeling EMF Reporting BIRT Tooling (PDE, VE, WTP) Demo app and discussion Look for the Smart icon: 8 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Runtime Component Model OSGi: Open System Gateway Initiative Runtime: Extension / extension point model 9 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
OSGi Open System Gateway Initiative Brings modularity to Java Named, versioned bundles Dependency management Explicit imports/exports Built-in security Dynamic Independent industry standard Has become popular in cell phone system management and other areas These are exactly the characteristics we want for advanced Smart Clients References - www.osgi.org - www.eclipse.org/equinox Runtime Component Model 10 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Runtime Component Model Runtime: Extension / extension point model Declarative extensibility mechanism The extension-point defines the contract (markup and code) for the extensions Metaphor: disc spindle 11 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
UI Components SWT - Standard Widget Toolkit JFace Framework providing higher-level UI abstractions Workbench Provides reusable and extensible UI metaphors Text - Framework(s) for building high-function text editors UI Forms - Framework for building forms-based views and editors GEF - Framework for building rich graphical editors 12 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
SWT - Standard Widget Toolkit Platform-independent native widget toolkit UI Components 13 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
UI Components JFace Framework on top of SWT providing higher-level UI abstractions Application window: menu bar, tool bar, content area & status line Viewers (MVC pattern) Actions, action bars (abstracts menu items, tool items) Preference and wizard framework 14 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
UI Components Workbench Defines reusable and extensible UI metaphors Leverages extension point mechanism and JFace abstractions. Provides: -Views -Editors -Action sets -Perspectives -Wizards -Preference pages -Commands and Key Bindings -Undo/Redo support -Presentations and Themes -Activities (aka Capabilities) - Is Dynamic-aware: responds to registry changes and adds/removes views, action sets, etc. accordingly 15 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
UI Components Text Framework(s) for building high-function text editors document infrastructure text manipulation through text edits positions and linked position manager template support projection (aka folding) support source viewer framework provides Text-, SourceViewer and SourceViewerConfiguration concept of annotations, annotations painter, hovers concept of content assist incremental syntax coloring (presentation reconciler) incremental outline update (model reconciler) formatter infrastructure text editor framework leverages source viewer framework for use in workbench editors provides AbstractTextEditor no concrete editor is provided 16 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
UI Forms UI Components Framework for building forms-based views and editors Form consisting of multiple FormParts Extra widgets: FormText (marked-up text) ScrolledForm Section MasterDetailsBlock Extra layouts: TableWrapLayout (HTML-like) ColumnLayout (newspaper-like) Flat look, lightweight borders Forms-based multi-page editor Used extensively in PDE 17 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
GEF (Graphical Editor Framework) Framework for building rich graphical editors UI Components Draw2D - structured graphics drawing framework Graphical editor framework: MVC architecture Undo/Redo support Palette and common tools for manipulating objects Integration with Properties and Outline view 18 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
User Assistance Components Eclipse Help - Help UI on top of an extensible help content model Intro support Provides the welcome experience for your product Cheat sheets Provides guidance through complex tasks 19 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Eclipse Help User Assistance Help UI on top of an extensible help content model HTML and XML based system Context-sensitive (F1) help Dynamic content generation Search engine Dynamic-aware Highly scalable (used on ibm.com) Help UI User interface and dialogs Help Core API to access the documents plugin.xml! "#$ guide.xml %&& %&' % 20 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
User Assistance Eclipse Help UI 21 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
User Assistance Intro support Provides the welcome experience for your product HTML / CSS or SWT / Forms based Can run actions to drive the UI Full mode: Standby mode: 22 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
User Assistance Cheat sheets Guides the user through a series of complex tasks to achieve a goal Content written in XML Can run actions to drive the UI 23 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Lifecycle issues Deployment and Update (Update Manager, Web Start) Modeling (EMF) Reporting (BIRT) Security Tooling 24 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Deployment and Update Updating your application Feature-based Bundle-based Update UI Reusable dialogs Update Core APIs to programmatically update OSGi API Lowest level API to install/update plug-ins 25 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Updating your application Update UI Deployment and Update Reference - Eclipse.org article: How to Keep Up To Date (D. Glozic and D. Birsan) 26 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Deployment and Update Eclipse and Java Web Start RCP apps can be Java Web Start ed PDE Feature Export helps with JAR signing and creating JNLP manifests 27 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Modeling EMF (Eclipse Modeling Framework) Code generation from models Supports model-driven development Input models can come from: by hand (using EMF model editor and Properties view) from some existing design (e.g. UML from RAD or EclipseUML) from annotated Java interfaces some serialization schema (e.g. XSD, WSDL) generates efficient model code (incremental, non-destructive) efficient dynamic API for manipulating EMF objects and their metadata notification of changes to model objects (great for MVC) change recording and summarization serialization, e.g. to/from XML or XMI lazy-loading of objects linked across different resources understands: relationship arity, inverse relationships, strong containment vs simple reference framework for model validation 28 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Modeling EMF (Eclipse Modeling Framework) can generate supporting adapters for: showing EMF models in JFace viewers (with automatic update) enabling command-based (undoable) editing editing model objects in the Properties page can generate templates for JUnit tests can even generate a complete RCP app for editing instances of your model (good for rapid prototyping) 29 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
BIRT (Business Intelligence and Reporting Tools) Business Intelligence and Reporting Tools based on Eclipse Initially focused on embedded reporting for Java developers Proposal has 4 initial projects Reporting Eclipse Report Designer Web Based Report Designer Custom Report Designer Report Engine Custom Services Report Design Engine Data Transform. Services Generation Services Charting Services Presentation Services HTML PDF Print XML XML Report Design Data Report Document 30 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Security Eclipse can run under regular Java 2 security manager Can use regular Java 2 security mechanisms: JAAS (Java TM Authentication and Authorization Service) JCE (Java TM Cryptography Extension) In addition, OSGi provides: Bundle-level signing and permissions Dynamic permissions (changing as system runs) Can dynamically install/uninstall bundles based on user s role or other criteria Current work in progress: Adding fine-grained permissions to RCP plug-ins for strict sandboxing Tool to analyze bundles for required permissions (on IBM alphaworks) Have particular security requirements? Please participate in Equinox. Reference - eclipse.org/equinox - ongoing work on security, OSGi and other issues 31 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Tooling PDE (Plug-in Development Environment) New plug-in project wizard with templates 32 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Tooling PDE cont d Product configuration and branding editor Can easily test and export from here 33 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Tooling VE (Visual Editor) GUI builder and framework for creating GUI builders 34 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Tooling WTP (Web Tooling Project) Tools for developing Web and J2EE applications 35 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Demo and Discussion Go Wild Travel (Adventure Builder RCP Client Example) 36 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Summary Eclipse RCP is ready for Smart Client development Our smarts are your smarts rich set of components available for use in your smart client apps not just black box components -- many comprise open, extensible frameworks with well-defined APIs and extension points components are often layered: e.g. Help has core content model and Help UI layers e.g. Update has core headless update API and UI wizards and preference page if UI as provided via black box usage is not sufficient, you can roll your own on top of lower level APIs Your smarts are our smarts Eclipse is an open-source project with a healthy community behind it. Do participate! Eclipse is a Platform, and can be used to build open-ended platforms in your own domain, not just closed-form applications 37 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Pointers Eclipse RCP home page, app gallery, and newsgroup http://eclipse.org/rcp http://eclipse.org/community/rcp.html news://news.eclipse.org/eclipse.platform.rcp Eclipse Series books Eclipse Rich Client Platform by Jeff McAffer, Jean-Michel Lemieux The Java Developer's Guide to Eclipse by Jim d Anjou et al SWT: The Standard Widget Toolkit, Vol 1 by Steve Northover, Mike Wilson Official Eclipse 3.0 FAQs by John Arthorne and Chris Laffra Other recent Eclipse Projects and Proposals (http://eclipse.org/proposals/) BIRT (Reporting and Charting) Data Tools JavaServer Faces Tooling SOA Tools Supplemental Widgets for SWT IBM Lotus Workplace Managed Client http://www-128.ibm.com/developerworks/lotus/library/wmc-toolkit/ 38 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0