0% found this document useful (0 votes)
156 views

Smart Client Development With RCP

Eclipse is open-source, free A Brief History of RCP Eclipse is an IDE platform. Hackers (aka smart people) in the eclipse community started building non-IDE apps based on Eclipse IDE technology. The minimal set of plug-ins needed to build a rich client application is collectively known as the rich client Platform.

Uploaded by

Rajeev Mishra
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
156 views

Smart Client Development With RCP

Eclipse is open-source, free A Brief History of RCP Eclipse is an IDE platform. Hackers (aka smart people) in the eclipse community started building non-IDE apps based on Eclipse IDE technology. The minimal set of plug-ins needed to build a rich client application is collectively known as the rich client Platform.

Uploaded by

Rajeev Mishra
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

2005 by IBM; made available under the EPL v1.

0 | September 2005 | IBM Corporation


Nick Edgar and Pascal Rapicault
IBM Rational Software
Ottawa, Ontario
Eclipse Platform Committers
To contact us: news://news.eclipse.org/eclipse.platform.rcp
Smart Client development
with the Eclipse Rich Client Platform
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
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 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
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
?
5
Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Example RCP apps
Highlighting Smart aspects
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 provisioning
Locked-down desktop
Strong security requirements
Restricted customizability
7
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
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:
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
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 we
want for advanced Smart Clients
Brings modularity to Java
Runtime Component Model
11
Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
<exfens1on-po1nf 1d=v1eWs
name=v1eWs
schema="schema/v1eWs.exsd/>
<exfens1on 1d=cafa1ogv1eW"
po1nf=og.ec11pse.u1.v1eWs>
<v1eW name=Cafa1og
1con=1cons/cafv1eW.g1f
c1ass=com.acme.Cafa1ogv1eW/>
</exfens1on>
Runtime: Extension / extension point model
Extensionpointdeclaration Extensionpointdeclaration Extensionpointdeclaration Extensionpointdeclaration- -- - plugin plugin plugin plugin. .. .xml xml xml xml
Extensiondeclaration Extensiondeclaration Extensiondeclaration Extensiondeclaration- -- - plugin plugin plugin plugin. .. .xml xml xml xml
Declarative extensibility mechanism
The extension-point defines the contract (markup and code) for the extensions
Metaphor: disc spindle
Runtime Component Model
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
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
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
15
Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
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
UI Components
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
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
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 tools
for manipulating objects
Integration with Properties
and Outline view
UI Components
Framework for building rich graphical editors
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
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)
<exfens1on po1nf="og.ec11pse.he1p.foc">
<foc p1may=fue"
f11e="doc/gu1de.xm1"/>
<foc f11e="doc/f1psAnd11cks.xm1"/>
</exfens1on>
<foc 1abe1="Go W11d use Gu1de">
<fop1c 1abe1="Geff1ng 5fafed">
<ancho 1d="geff1ngsfafed"/>
</fop1c>
<fop1c 1abe1="Commands"
hef="doc/cmds.hfm1"/>
</foc>
plugin.xml guide.xml
Help UI
User interface and dialogs
Help Core
API to access the documents
User Assistance
Help UI on top of an extensible help content model
21
Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
Eclipse Help UI
User Assistance
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 to
drive the UI
User Assistance
Full mode:
Standby
mode:
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
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
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 UI
Reusable dialogs
Update Core
APIs to programmatically update
OSGi API
Lowest level API to install/update plug-ins
Deployment and Update
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
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 helps
with JAR signing
and creating JNLP manifests
Deployment and Update
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, strong
containment vs simple reference
framework for model validation
Modeling
Code generation from models
Supports model-driven development
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
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
Generation
Services
Presentation
Services
Eclipse
Report
Designer
Report Design Engine
Web Based
Report
Designer
Custom
Report
Designer
XML
Report
Design
Report
Document
HTML
PDF
Print
XML

Data Transform.
Services
Charting
Services
Custom
Services

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 (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 users 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
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
33
Smart Client Development with Eclipse RCP 2005 by IBM; made available under the EPL v1.0
PDE contd
Product configuration and branding editor
Can easily test and export from here
Tooling
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
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
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)
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 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
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/

You might also like