building applications for multiple platforms using the eclipse

34
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary 1 November 28, 2006 Building Applications for Multiple Platforms Using the Eclipse Rich Client Platform Wayne Beaton, Eclipse Foundation, Evangelist Jeff McAffer, IBM Rational, Eclipse RCP and Equinox Lead (Martin Lippert, akquinet agile GmbH, Equinox Incubator Committer)

Upload: others

Post on 12-Sep-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building Applications for Multiple Platforms Using the Eclipse

© 2002 IBM Corporation

Confidential | Date | Other Information, if necessary

1

November 28, 2006

Building Applications for Multiple Platforms Using the Eclipse Rich Client Platform

Wayne Beaton, Eclipse Foundation, Evangelist

Jeff McAffer, IBM Rational, Eclipse RCP and Equinox Lead

(Martin Lippert, akquinet agile GmbH, Equinox Incubator Committer)

Page 2: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 2

Agenda

What is a rich client?

What is Eclipse RCP?

Equinox

Building platforms

Outlook

Page 3: Building Applications for Multiple Platforms Using the Eclipse

© 2002 IBM Corporation

Confidential | Date | Other Information, if necessary

3

November 28, 2006

What is a Rich Client?

Page 4: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 4

Evolution of the Client: Fat Client

All application logic on the client

Relatively difficult to update

Rich user experience

Monolithic application

Platform dependentFat Client

View

Bus

ines

s Lo

gic

and

Proc

ess

Con

trol

Data

ok

Page 5: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 5

Evolution of the Client: Thin Client

All application logic on the server

Relatively easy to update

Massively concurrent application

Very simplistic user experience

Client platform independentClients run in browser

Application ServerThin Client

View

Bus

ines

s Lo

gic

and

Proc

ess

Con

trol

DataView

Page 6: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 6

What is a Rich Client?

An application that uses the windowing and GUI features of the operating system

Native widgets

Drag & drop

Integration with platform component model

Much, much, more…

http://udig.refractions.net/confluence/display/UDIG/Homehttp://udig.refractions.net/confluence/display/UDIG/Home

Page 7: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 7

Three-tier Rich Client Application

Some business logic stored remotelyAccessible through web service or other mechanism

WSDL-based web services, RESTful, IIOP, ECF, etc.

Application ServerRich Client

Remote Data and

LogicCon

trol

Viewok

Con

trol

web services, IIOP, …

Remote Data

Page 8: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 8

Combinations are Possible (and Likely)

Access data from a variety of sources

Cache remote data locally for offline work

Application ServerRich Client

Remote Data and

LogicCon

trol

Viewok

Con

trol

Local Data and

Logic

web services, IIOP, …

Remote Data

Remote Data

Local Data

Page 9: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 9

Example: ForeFlight

Displays critical information graphically and prominently

Displays alerts when conditions are near or exceeding the user's preferred limits

Connects via the web to weather and information services

Multiple ergonomic views of the weather that affects the go/no-go flight decision

http://www.foreflight.com/http://www.foreflight.com/

Page 10: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 10

Example: Lotus Notes “Hannover”

Page 11: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 11

Example: RSS SolutionsAdvanced planning and scheduling (APS) solutions

http://www.eclipse.org/community/casestudies/RSSfinal.pdfhttp://www.eclipse.org/community/casestudies/RSSfinal.pdf

Page 12: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 12

What is a Rich Client?

Rich user experience

Typically (though not necessarily) a client for some backend service

Platform independentRuns with little or no modification on multiple platforms and devices

Component model

Integrated update mechanism

ExtensibleApplication Server

Rich Client

Bus

ines

s Lo

gic

and

Proc

ess

Con

trol

DataView

ok

Page 13: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 13

Rich or Thin Clients?

Thin clientCasual users don’t want to install software

Online banking, auction browsing

Rich clientPower users demand responsive, rich, powerful user interfaces

Teller, bank manager, power auctioneer

I like all my clients to be rich!

Page 14: Building Applications for Multiple Platforms Using the Eclipse

© 2002 IBM Corporation

Confidential | Date | Other Information, if necessary

14

November 28, 2006

What is Eclipse Rich Client Platform?

Page 15: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 15

Eclipse is a Composition of Components

Equinox

SWTJFace

UIUpdate

Runtime

IDE UI

LTK

Search

Debug

Help

Team

Ant

JDT

PDE

Eclipse SDK/Java IDE

Page 16: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 16

Generic IDE Components

Equinox

SWTJFace

UIUpdate

Runtime

IDE UI

LTK

Search

Debug

Help

Team

Ant

JDT

PDE

Eclipse IDE

Page 17: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 17

Eclipse Rich Client Platform

Equinox

SWTJFace

UIUpdate

Runtime

IDE UI

LTK

Search

Debug

Help

Team

Ant

JDT

PDE

Page 18: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 18

Why Use Eclipse Rich Client Platform?

A consistent and native look and feel across applications and featuresProvides common application services

Native look and feelWindow managementStandardized component model (Equinox)

Pervasive extensibility – Extension registryUpdate Manager

Help systemFirst-class development toolsMiddleware for building rich client applications!

Allows programmers to focus on core application not the plumbingDon’t reinvent the wheel

Page 19: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 19

Native Look and FeelSuSE Linux (KDE)

Fedora Linux (GNOME)

Windows XP

Page 20: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 20

Equinox (1/2)

Equinox is the Eclipse component modelBased on OSGi R4 specification

Standard Java lacks an explicit notion of components

Components == Bundles == Plug-inVersioned

Defined declaratively

Dynamically loadable/unloadable

Support dynamic update and install

Explicitly define Dependencies

Runtime visibility

Interactions (extension points/extensions) Eclipse RCP

Page 21: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 21

Equinox (2/2)

Components integrate without interferingRequired components explicitly set

Unrelated components do not have direct access to one-another

Downstream components can access upstream components through the extension mechanism

Downstream component registers (declaratively) an extension point

Dependent components register (declaratively) extensions

Page 22: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 22

Eclipse RCP as an Integration Point

Integrating completely independent components is easyViews from independent components can easily share the workspace

Menus populated by multiple components

Integrating loosely coupled components requires planningSharing selection information

Drag and drop between views from different components

Extension point/extension mechanism for more intimate integrationProvide hooks to let downstream plug-ins participateNot artificially restricted in any way

Page 23: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 23

Trade offs

Equinox provides the infrastructure to make components workArchitects and developers must factor the application into components

Fine-grained components Extreme example: one class per componentReduced start up timeEasier updates and reuse

Coarse-grained componentsExtreme example: entire application in a single componentGenerally easier to configure and maintain

BalanceBest solution somewhere in betweenLogical groupings of classes and resources

Page 24: Building Applications for Multiple Platforms Using the Eclipse

© 2002 IBM Corporation

Confidential | Date | Other Information, if necessary

24

November 28, 2006

Building Platforms

Page 25: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 25

Your App

Building Platforms (1/2)

It all starts with plug-insEclipse RCP applications are composed of components that plug into the platform

When starting development on RCP, it is common to provide a handful of domain-specific components that sit directly on top of RCP

Eclipse RCP

Page 26: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 26

Building Platforms (2/2)

It’s natural for RCP development to spawn one or more “platforms”

A custom base for multiple development teams to build their applications upon

All of the examples in this presentation all have an underlying domain-specific platform

DomainPlatform

App 1

Eclipse RCP

App 2

Page 27: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 27

Example: Maestro – NASA Space Mission Management

http://www.eclipse.org/community/casestudies/NASAfinal.pdfhttp://www.eclipse.org/community/casestudies/NASAfinal.pdf

Page 28: Building Applications for Multiple Platforms Using the Eclipse

© 2002 IBM Corporation

Confidential | Date | Other Information, if necessary

28

November 28, 2006

Outlook – Beyond client side applications

Page 29: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 29

Eclipse Rich Server Platform (RSP)

Equinox

SWTJFace

UIUpdate

Runtime

IDE UI

LTK

Search

Debug

Help

Team

Ant

JDT

PDE

Page 30: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 30

Server-side Eclipse

Why use the Equinox component technology only on the client side?

Component model

Update mechanism

Extensibility

All interesting for server-side applications as well

Combination with Spring possible

Page 31: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 31

Middle-tiers on Equinox

Equinox can be used to implement middle-tiersSame component model on both sides

Same extensibility for both sides

Client and server could share the same components

Integration with web-/app-servers possible

Page 32: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 32

Equinox-based web apps

Equinox can run inside a web app or the web-app can run on top of Equinox

Web-app can be componentized

Web-app can be designed and implemented for extensibility (Extension-Points)

Page 33: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 33

Examples

WAS 6.1

Adobe Version Cue

Apache Harmony

Eclipse Rich AJAX Platform

Page 34: Building Applications for Multiple Platforms Using the Eclipse

Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 34

Recommended Reading

Eclipse Rich Client PlatformBy Jeff McAffer and Jean-Michel Lemieux

Addison-Wesley Professional

ISBN: 0321334612

SWT : The Standard Widget Toolkit, Volume 1 By Steve Northover, Mike Wilson

Addison-Wesley Professional

ISBN: 0321256638

Contributing to Eclipse: Principles, Patterns, and PluginsBy Erich Gamma, Kent Beck

Addison-Wesley Professional

ISBN: 0321205758