Smart Client development with the Eclipse Rich Client Platform

Similar documents
inside eclipse Erich Gamma Eclipse Project Management Committee Member IBM Distinguished Engineer IBM Rational Software

Regular Forum of Lreis. Speechmaker: Gao Ang

Getting the Most from Eclipse

The Eclipse Rich Client Platform

ECLIPSE RICH CLIENT PLATFORM

Tools to Develop New Linux Applications

Developing Eclipse Rich-Client Applications Tutorial

AD105 Introduction to Application Development for the IBM Workplace Managed Client

Eclipse 4.0. Jochen Krause EclipseSource

Building JavaServer Faces Applications

Expeditor Client for Desktop. Client Platform Overview

RAP (The Rich Ajax Platform)

eclipse rich ajax platform (rap)

e4 Project 0.9 Release Review

Introduction to Eclipse

Index. Symbols. /**, symbol, 73 >> symbol, 21

The p2 Provisioning Platform. Eclipse European Summit - Ludwigsburg. Oct 27-29, 2009 Henrik Lindberg, Cloudsmith Inc

From the RCP Book To Reality. Jean-Michel Lemieux IBM Rational, Ottawa, Canada

Outline. Tutorial III. Eclipse. Basics. Eclipse Plug-in Feature

Application Integration with WebSphere Portal V7

Getting started with WebSphere Portlet Factory V7.0.0

The Eclipse Rich Ajax Platform

Rich Client GUI's with RCP & RAP

Workbench and JFace Foundations. Part One, of a two part tutorial series

Getting started with WebSphere Portlet Factory V6.1

The Graphical Editing Framework

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

BIRT: Introduction to the Eclipse Business Intelligence & Reporting Tools Project

McAffer_Index.qxd 9/20/2005 9:39 AM Page 495. Index

Part 2: Notes Plug-in Development

Advanced User Interface Programming Using the Eclipse Rich Client Platform

Strategic Developer Report

Foundations of User Interface Programming Using the Eclipse Rich Client Platform

IBM Rational Developer for System z Version 7.5

IBM Workplace Client Technology API Toolkit

Eclipse Project 3.2 Release Review. Eclipse Project PMC

Customized Enterprise Installation of IBM Rational ClearCase Using the IBM Rational ClearCase Remote Client plug-in and the Eclipse SDK

Eclipse SOA Tooling Platform: Project Overview. An Overview of the Eclipse STP (SOA Tooling Platform) Project

An Eclipse-based Environment for Programming and Using Service-Oriented Grid

The Definitive Guide to. NetBeans Platform 7. Heiko Bock. Apress*

Eclipse as a Web 2.0 Application Position Paper

The JSF Tools Project

About Tom. CEO BestSolution Systemhaus GmbH. Eclipse Committer. Platform UI EMF. Projectlead: UFaceKit, Nebula. Member of the Architectual Council

Business Intelligence and Reporting Tools

Zest: Move Review. Transition from Mylyn to GEF. Component Lead: R. Ian Bull. University of Victoria & IBM Centre for Advanced Studies

Lessons learned from building Eclipse-based add-ons for commercial modeling tools

Equinox OSGi: Pervasive Componentization

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

EMC Documentum Composer

IBM Rational Software Architect

IBM Lotus Design Tools

When Modeling meets Productivity. Sven Efftinge - itemis

Getting started with WebSphere Portlet Factory V6

20. Eclipse and Framework Extension Languages

Comparing graphical DSL editors

Eclipse in Embedded. Neha Garg : Prerna Rustagi :

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

Eclipse and Framework Extension Languages

Model Driven Development with EMF and EclipseLink (experiences in MDD and generating user interfaces)

Leverage the Power of Progress Developer Studio for OpenEdge. 8 th Oct, 2013

IBM Workplace Managed Client API Toolkit

IBM Rational Application Developer for WebSphere Software, Version 7.0

EMC Documentum Composer

open source RCP Eclipse based Visualization analysis Python Workflow

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009

Embedded Rich Client Platform (ercp) 1.0 Release Review

WindowBuilder Graduation & Release Review

Implementation of a 2D Graph Viewer

Eclipse SOA Tools Platform Project

Addressing Security In The Eclipse Core Runtime (RCP)

The Galilean Moons of Eclipse

EMC Documentum Composer

202 Index. Data dictionary, 25 Data items defined, 25 overview, 26 Data Language/I (DL/I), 7 Data parts, 25 Data tables compared to dictionaries, 33

Eclipse Platform Technical Overview

Eclipse Building Commercial-Quality Plug-ins Second Edition

Workplace Client Technology, Micro Edition. WCTME Enterprise Offering Application Developer s Guide

Introduction to Eclipse Rich Client Platform Support in IBM Rational HATS. For IBM System i (5250)

USER GUIDE. MADCAP FLARE 2018 r2. Eclipse Help

Introduction to Eclipse Rich Client Platform Support in IBM Rational HATS For IBM System i (5250)

Web Applica+on Development. Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Equinox Project Update

Supervisor : Germán Cancio Meliá. Towards a GUI for CDB-CLI

Eclipse Data Tools Platform (DTP) 0.7 Release Review. Eclipse DTP PMC March 8, 2006

Target Management New and Noteworthy. Martin Oberhuber, Wind River

Oliopäivät Modelling Now and in the Future, with Acronyms or without = RSA

Introduction to Eclipse

Equinox Framework: How to get Hooked

Overview and Demonstration

The Great SharePoint 2016/2013 Adventure for Developers

Web Applications: A Simple Pluggable Architecture for Business Rich Clients

Apply a Design Pattern

ADT: Eclipse development tools for ATL

Eclipse 4. Brian de Alwis. Abstract

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

Oracle ADF: The technology behind project fusion. Lynn Munsinger Principal Product Manager Application Development Tools Oracle Corporation

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

OSGi on the Server. Martin Lippert (it-agile GmbH)

Mobile Application Workbench. SAP Mobile Platform 3.0 SP02

Simplifying Enterprise Installation of IBM Rational ClearCase

Transcription:

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