PR0017 - 2009-09-29
Redistribution and other use of this material requires written permission from The RCP Company.
Fra forretningside til bundlinie:
Eclipse følger dig hele vejen
”Har du tænkt på at skifte til et leverandøruafhængigt udviklingsmiljø? Det er gratis, og du får ét udviklingsmiljø, som du kan programmere alt fra Java, C, C++ og PHP til databaser og webserver i. Vi får dig til at se værdien af værktøjet, og se flere forskellige eksempler på brugen af Eclipse i praksis.
Kom og hør formanden for eclipse.dk, Tonny Madsen, Direktør, RCP Kompaniet fortælle om Eclipse.
Eclipse er component-baseret, og du får indsigt i hvordan du sammensætter Eclipse til netop dine behov.”
PR0017 - 2009-09-29
2
Agenda
Introduction
Eclipse is… what exactly?
A little about the Eclipse architecture
Demonstration of some relevant Eclipse features
The Eclipse Ecosystem
Why use Eclipse for a Banking System?
This is a technical talk rather than a business oriented talk…
PR0017 - 2009-09-29
3
About Me
Founder and Owner of The RCP Company
20 years of experience in system development in major companies
Regnecentralen (now ICL) Digital (now HP) Anritsu (previously NetTest)
9 years experience as the Systems Architect of an 20+ MLoC project
7 years of experience with Eclipse and Eclipse RCP
Add-in Provider Member of the Eclipse Foundation Chairman of Eclipse.dk Extern Lecturer at IT-University on MDD and DSL
PR0017 - 2009-09-29
4
Eclipse is… what exactly?
PR0017 - 2009-09-29
5
Eclipse – The Java IDE
PR0017 - 2009-09-29
6
Eclipse – The Tools Platform
PR0017 - 2009-09-29
7
Eclipse – The Application Platform Nordea Banking Desktop
L0019 - 2008-11-28
8
IBM Lotus NotesVersion 8
PR0017 - 2009-09-29
9
Eclipse Tools IDE
The Eclipse development environment is many things depending on your particular needs
Java development environment C/C++ development environment Enterprise development environment A Python IDE, A PHP IDE, An AJAX IDE, … Self-hosted development environment for Eclipse IDE and Eclipse RCP
based applications
PR0017 - 2009-09-29
10
A little about the Eclipse architecture
EclipsePlatform
Res
ourc
esW
orks
pace
Hel
pU
pdat
e
Tea
m
Web
S
erve
r
File
syst
em
s
Apa
che
Sea
rch
Nav
igat
or
Intr
oT
ext
Edi
tor
s
JDT
CV
S
WT
PD
ata
too
lsV
EB
IRT
Myl
yn
PD
E
Eclipse RCP
Run-time/OSGiSWTJFaceWorkbe
nch Pre
fer
ence
sJo
bsIC
UC
omm
and
sR
egis
try
CD
T
PR0017 - 2009-09-29
11
Basically…
We need an architecture that supports distributed development over a large number of autonomous development groups
We need a component concept where components are loosely coupled and can be started (and stopped) independently
We need a way to describe external interfaces of components and dependencies between components
We need a way to only start the components as they are needed – also known as late activation
We need all this to work over multiple generations of components
PR0017 - 2009-09-29
12
Eclipse Architecture
Goals for the Eclipse architecture Be able to host any number of 3rd party applications Scalability in terms of size and complexity of hosted applications Alignment with native UI look-n-feel
Flexible architecture, structured around Plug-ins – the basic unit of functionality Extension points – the defined interfaces between plug-ins
This architecture allows for Implementation of 3rd party applications on top of the basic platform
(Eclipse RCP) Additional tools to be integrated in the platform Integrated tools to be further extended
PR0017 - 2009-09-29
13
EclipsePlatform
Res
ourc
es
Wor
ksp
ace
Hel
p
Upd
ate
Tea
m
Web
Ser
ver
File
syst
ems
Apa
che
Sea
rch
Nav
igat
or
Intr
o
Tex
t E
dito
rs
Eclipse Architectural Components
JDT
CV
S
WT
P
Da
tato
ols
VE
BIR
T
Myl
yn
PD
E
Eclipse RCP
Run-time/OSGi
SWT
JFace
WorkbenchP
refe
renc
es
Jobs
ICU
Com
man
ds
Reg
istr
y
CD
T
PR0017 - 2009-09-29
14
The Basic RCP Components
In the Eclipse, everything is a plug-in including the run-time platform itself It is a small kernel that represents the base of the platform Built on top of OSGi
All subsystems built on the run-time platform follows the rules of plug-ins: They are plug-ins themselves
RCP includes: Component Management Resources Management Preferences Workbench (include SWT and JFace)
RCP does not include functionality that are not commonly needed: Update Help This can be included from the Eclipse platform
Eclipse RCP
Run-time/OSGi
SWT
JFace
WorkbenchP
refe
renc
es
Jobs
ICU
Com
man
ds
Reg
istr
y
PR0017 - 2009-09-29
15
ApplicationPlatform
Com
m.
Log
ging
Hel
p
Upd
ate
Aut
h.
Aud
itin
g
Apa
che
Intr
o
Your Typical RCP Application
Ba
se
Ad
d-o
n
Ad
d-o
n
Ad
d-o
n
Ad
d-o
n
De
bu
g T
oo
ls
Da
ta M
od
el
Eclipse RCP
Run-time/OSGi
SWT
JFace
WorkbenchP
refe
renc
es
Jobs
ICU
Com
man
ds
Reg
istr
y
Ad
d-o
n
PR0017 - 2009-09-29
16
Organizing the Platform
The software of an Eclipse system is based on the following terms: Plug-ins – a plug-in is the basic unit of software Fragments – a fragment is an add-on to an existing plug-in with
additional functionality Features – a feature is a number of plug-ins that is distributed and
updated as a whole Applications – an application is a Java class that implements a specific
interface and is declared as such in the plug-in Products – a product is a set of features or plug-ins along with the
appropriate branding
PR0017 - 2009-09-29
17
Extension Points
Describe additional functionality that could be integrated with the platform External tools extend the platform to bring specific functionality Java Development Tooling (JDT) and Plug-in Development Environment (PDE)
are external tools integrated with the platform Extension points are used to
Add an implementation for a generic feature Extend the workbench Extend common object factory
Advantages: Allows for late load and startup of plug-ins Provides a common “registry” for most extensions like views, perspectives,
commands, etc Disadvantages:
Makes it harder to understand flow of control ID Hell!
Extension points may have corresponding API interface Describes what should be provided in the extension
PR0017 - 2009-09-29
18
Demonstration of some relevant Eclipse RCP features
PR0017 - 2009-09-29
19
What to Show
The Java IDE – what can you do in the editor Call Hierarchy Class Hierarchy Refactoring of class Externalize strings
Create python application Creating a small Eclipse RCP based application Mylyn
PR0017 - 2009-09-29
20
The Eclipse Ecosystem
PR0017 - 2009-09-29
21
The Eclipse Foundation and its Activities
A professional not-for-profit corporation that provides IT Infrastructure IP Management Development Process Ecosystem Development.
Several large conferences and vertical industry every year EclipseCon in Santa Clara, CA Eclipse Summit Europe in Germany Banking days, Insurance Days, …
Training and Services Training series twice every year – includes classes in Denmark,
Sweden, UK, Germany, …
PR0017 - 2009-09-29
22
The Eclipse Foundation Members
14 Strategic members – IBM, SAP, Oracle, Nokia…
3 Enterprise members – Cisco, Motorola and Blackberry
86 Solution members – Google, Ericsson, Tieto, Sybase, Siemens, us…
63 Associate members – OSGi, OMG, Fujitsu, Addison Wesley…
Yearly fees used to finance the activities of the foundation
PR0017 - 2009-09-29
23
Some Numbers on Eclipse
The Eclipse Modeling Tools 1099 plug-ins 229 features
All Eclipse Projects >45 projects in the Galileo release train 29 MLoC >500 active committers >25 countries >140 locations
PR0017 - 2009-09-29
24
Project Activity
PR0017 - 2009-09-29
25
Why use Eclipse for a Banking System?
NowStart (early 2006)
Business req
Evaluation Platform components
Prototyping/testing First project
Decision (late 2007)
PR0017 - 2009-09-29
26
Choosing Eclipse RCP
Business Requirements
IT/Project Requirements
The Basic Architecture
The Process
PR0017 - 2009-09-29
27
Business Requirements
Provide process support Show/hold all functionality and information in one place
Seamlessly integration between the functional areas Data re-use
Integration Support Integration with existing applications such as 3270, browser based
and native Windows (word, excel etc.) External peripherals High usability
Follow the OS Standard keyboard navigation, icon, help, drag & drop
High performance
PR0017 - 2009-09-29
28
IT/Project Requirements
Parallel development No hard decencies to the other projects Different release dates for the a functional area (projects) Different dependencies to the back-end Nordea is a bank, - not a major IT product company Mature and well tested framework Go out and buy the funtionality
PR0017 - 2009-09-29
29
Banking Desktop Architectural Components
BankingPlatform
UI
Err
or
Help
Upd
ate
Use
r M
ng
Audit
Secu
rity
Data
Mod
el
SO
A/E
SB
Telle
r
PSD
2
???
PSD
1
Eclipse RCP
Run-time/OSGi
SWT
JFace
WorkbenchPre
fere
nce
sJo
bs
ICU
Com
mands
Regis
try
CM
S
PR0017 - 2009-09-29
30
The Process
Project started in 2006 with an evaluation Several different frameworks were evaluated
Portal based Eclipse RCP NetBeans Platform
Several Eclipse RCP frameworks were evaluated Major part of the evaluation was a fully functional prototype
Access to ”real” data Divided into functional areas as a number of independent plug-ins
NowStart (early 2006)
Business req
Evaluation Platform components
Prototyping/testing First project
Decision (late 2007)
PR0017 - 2009-09-29
31
Q&A
PR0017 - 2009-09-29
32
If you want to know more
The foundation: http://eclipse.org
The Danish User Group: http://eclipse.dk
The training: http://www.eclipse.org/community/training/classes.php
Resources on Eclipse http://www.eclipse.org/resources/
Consolidated Blog: http://planeteclipse.org/
Top Related