”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.”
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
1. Redistribution and other use of this material requires written permission from The RCP Company.
PR0017 - 2009-09-29
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.”
2. 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…
3. 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
9. 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
10. PR0017 - 2009-09-29
10
A little about the Eclipse architecture
Eclipse
Platform
Resou
rces
Works
pace
Help
Updat
e
Team
Web
Server
Filesy
stems
Apach
e
Searc
h
Navig
ator
Intro
Text
Editor
s
JDT
CVS
WTP
Datatools
VE
BIRT
Mylyn
PDE
Eclipse RCP
Run-time/OSGi
SWT
JFace
Workbe
nch
Prefer
ences
Jobs
ICU
Comm
ands
Regist
ry
CDT
11. 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
12. 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
14. 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
Workbench
Preferences
Jobs
ICU
Commands
Registry
16. 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
17. 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
19. 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
21. 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, …
22. 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
23. 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
25. PR0017 - 2009-09-29
25
Why use Eclipse for a Banking System?
Now
Start (early 2006)
Business req
Evaluation Platform components
Prototyping/testing First project
Decision (late 2007)
26. PR0017 - 2009-09-29
26
Choosing Eclipse RCP
Business Requirements
IT/Project Requirements
The Basic Architecture
The Process
27. 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
28. 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
29. PR0017 - 2009-09-29
29
Banking Desktop Architectural Components
Banking
Platform
UI
Error
Help
Update
User
Mng
Audit
Security
Data
Model
SOA/ESB
Teller
PSD2
???
PSD1
Eclipse RCP
Run-time/OSGi
SWT
JFace
Workbench
Preferences
Jobs
ICU
Commands
Registry
CMS
30. 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
Now
Start (early 2006)
Business req
Evaluation Platform components
Prototyping/testing First project
Decision (late 2007)
32. 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/