smart client development with rcp
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/