smart client development with rcp

Upload: rajeev-mishra

Post on 06-Apr-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 Smart Client Development With RCP

    1/38

    2005 by IBM; made available under the EPL v1.0 | September 2005 | IBM Corporation

    Nick Edgar and Pascal Rapicault

    IBM Rational SoftwareOttawa, Ontario

    Eclipse Platform Committers

    To contact us: news://news.eclipse.org/eclipse.platform.rcp

    Smart Client development

    with the Eclipse Rich Client Platform

  • 8/2/2019 Smart Client Development With RCP

    2/38

    2 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    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

  • 8/2/2019 Smart Client Development With RCP

    3/38

    3 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 anyclient application. The minimal set of plug-ins needed to build a rich clientapplication is collectively known as the Rich Client Platform.

    A subset of the full Platform There are other subsets

  • 8/2/2019 Smart Client Development With RCP

    4/38

    4 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

    ?

  • 8/2/2019 Smart Client Development With RCP

    5/38

    5 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Example RCP apps

    Highlighting Smart aspects

  • 8/2/2019 Smart Client Development With RCP

    6/38

    6 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 provisioningLocked-down desktopStrong security requirementsRestricted customizability

  • 8/2/2019 Smart Client Development With RCP

    7/38

    7 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Maestro NASA Space Mission Management

    Responsive UIOpen Platform for space mission monitoring

    Bringing together different teams in NASA/JPL

  • 8/2/2019 Smart Client Development With RCP

    8/38

    8 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/2/2019 Smart Client Development With RCP

    9/38

    9 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

  • 8/2/2019 Smart Client Development With RCP

    10/38

    10 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    OSGi Open System Gateway Initiative

    Named, versioned bundles

    Dependency management

    Explicit imports/exports

    Built-in security

    Dynamic

    References- www.osgi.org

    - www.eclipse.org/equinox

    Independent industry standard

    Has become popular in cell phone system

    management and other areas

    These are exactly the characteristics wewant for advanced Smart Clients

    Brings modularity to Java

    Runtime Component Model

  • 8/2/2019 Smart Client Development With RCP

    11/38

    11 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Runtime: Extension / extension point model

    Declarative extensibility mechanism

    The extension-point defines the contract (markup and code) for the extensions

    Metaphor: disc spindle

    Runtime Component Model

  • 8/2/2019 Smart Client Development With RCP

    12/38

    12 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

  • 8/2/2019 Smart Client Development With RCP

    13/38

    13 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

  • 8/2/2019 Smart Client Development With RCP

    14/38

    14 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    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

    UI Components

  • 8/2/2019 Smart Client Development With RCP

    15/38

    15 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Workbench Defines reusable andextensible UI metaphors

    Leverages extension point mechanismand 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 toregistry changes and adds/removesviews, action sets, etc. accordingly

    UI Components

  • 8/2/2019 Smart Client Development With RCP

    16/38

    16 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    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

    UI Components

    Text Framework(s) for building high-function text editors

  • 8/2/2019 Smart Client Development With RCP

    17/38

    17 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    UI Forms

    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

    UI Components

    Framework for building forms-based views and editors

  • 8/2/2019 Smart Client Development With RCP

    18/38

    18 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    GEF (Graphical Editor Framework)

    Draw2D - structured graphics drawing framework

    Graphical editor framework:

    MVC architecture

    Undo/Redo support

    Palette and common toolsfor manipulating objects

    Integration with Propertiesand Outline view

    UI Components

    Framework for building rich graphical editors

  • 8/2/2019 Smart Client Development With RCP

    19/38

    19 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

  • 8/2/2019 Smart Client Development With RCP

    20/38

    20 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Eclipse Help

    HTML and XML based system

    Context-sensitive (F1) help Dynamic content generation Search engine Dynamic-aware Highly scalable (used on ibm.com)

    !

    "#$

    %&&%&'

    %

    plugin.xml guide.xml

    Help UI

    User interface and dialogs

    Help CoreAPI to access the documents

    User Assistance

    Help UI on top of an extensible help content model

  • 8/2/2019 Smart Client Development With RCP

    21/38

    21 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Eclipse Help UI

    User Assistance

  • 8/2/2019 Smart Client Development With RCP

    22/38

    22 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Intro support

    Provides the welcome experience for your product

    HTML / CSS or

    SWT / Forms based

    Can run actions todrive the UI

    User Assistance

    Full mode: Standby

    mode:

  • 8/2/2019 Smart Client Development With RCP

    23/38

    23 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    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

    User Assistance

  • 8/2/2019 Smart Client Development With RCP

    24/38

    24 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

  • 8/2/2019 Smart Client Development With RCP

    25/38

    25 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Updating your application

    Feature-based

    Bundle-based

    Update UIReusable dialogs

    Update CoreAPIs to programmatically update

    OSGi APILowest level API to install/update plug-ins

    Deployment and Update

  • 8/2/2019 Smart Client Development With RCP

    26/38

    26 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Updating your application Update UI

    Reference- Eclipse.org article: How to Keep Up To Date (D. Glozic and D. Birsan)

    Deployment and Update

  • 8/2/2019 Smart Client Development With RCP

    27/38

    27 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    Eclipse and Java Web Start

    RCP apps can be Java Web Started

    PDE Feature Export helpswith JAR signingand creating JNLP manifests

    Deployment and Update

  • 8/2/2019 Smart Client Development With RCP

    28/38

    28 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    EMF (Eclipse Modeling Framework)

    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, strongcontainment vs simple reference

    framework for model validation

    Modeling

    Code generation from modelsSupports model-driven development

  • 8/2/2019 Smart Client Development With RCP

    29/38

    29 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    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)

    Modeling

  • 8/2/2019 Smart Client Development With RCP

    30/38

    30 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    BIRT (Business Intelligence and Reporting Tools)

    Reporting

    Business Intelligence and Reporting Tools based on Eclipse Initially focused on embedded reporting for Java developers Proposal has 4 initial projects

    Data

    Report Engine

    GenerationServices

    PresentationServices

    EclipseReportDesigner

    Report Design Engine

    Web BasedReportDesigner

    CustomReportDesigner

    XMLReportDesign

    ReportDocument

    HTMLPDFPrintXML

    Data Transform.Services

    ChartingServices

    CustomServices

  • 8/2/2019 Smart Client Development With RCP

    31/38

    31 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 (JavaTM Authentication and Authorization Service)

    JCE (JavaTM Cryptography Extension)

    In addition, OSGi provides:

    Bundle-level signing and permissions

    Dynamic permissions (changing as system runs)

    Can dynamically install/uninstall bundles based on users role or othercriteria

    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

  • 8/2/2019 Smart Client Development With RCP

    32/38

    32 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    PDE (Plug-in Development Environment)

    Tooling

    New plug-in project wizard

    with templates

  • 8/2/2019 Smart Client Development With RCP

    33/38

    33 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    PDE contdProduct configuration and branding editor

    Can easily test and export from here

    Tooling

  • 8/2/2019 Smart Client Development With RCP

    34/38

    34 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    VE (Visual Editor)GUI builder and framework for creating GUI builders

    Tooling

  • 8/2/2019 Smart Client Development With RCP

    35/38

    35 Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0

    WTP (Web Tooling Project)Tools for developing Web and J2EE applications

    Tooling

  • 8/2/2019 Smart Client Development With RCP

    36/38

    36 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)

  • 8/2/2019 Smart Client Development With RCP

    37/38

    37 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 preferencepage

    if UI as provided via black box usage is not sufficient, you can roll your own on topof 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

  • 8/2/2019 Smart Client Development With RCP

    38/38

    38 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 dAnjou 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/