”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.”
In Danish
Eclipse talk covers architecture, features and benefits for banking systems
1. 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.”
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
rcesWorks
paceHelp
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
encesJobs
ICU
Comm
andsRegist
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
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
NowStart (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/
Notas del editor
Just to make everybody aware that they actually know about Eclipse already. It is known technology – not new technology. ESB, web services and BPM are all considered new technology…
This is the prototype of the banking desktop. It looks and feels like an Eclipse application. Just see the L&F. No serious presentation branding has been performed… yet…
Is this Eclipse RCP?
The perspective switcher is different!
Views in the “same position” of the perspective – a so-called folder – are shown differently.
The “Launch” button
Based on Eclipse RCP!
Early demo based on Eclipse RCP 3.1
Look of some native widgets has been changed!
UI is a mix of SWT and Native Notes® windows
The workbench is recognizable yet different
Domino, IBM, Lotus, Notes and Workplace Client Technology are trademarks or registered trademark of International Business Machines Corp. in the United States, other countries, or both.
IBM Lotus Notes was designed by Mary Beth Raven.
More introduction to the tool platform Eclipse. It is not just an Java IDE…
The basic goals for the Eclipse architecture means – among other things – that the complete platform must be equally accessible for all parties. So all parts of the basic platform must be
Free of charge
Fully documented
No licensing attached to any of the software apart from the basic EPL – Eclipse Public License
The basic unit of functionality in Eclipse is the plug-in. A single plug-in can encompass a complete application, but it can also be a functional independent part of an application.
The interfaces between plug-ins is defined via extension points Extension points are well-defined places in the system where other plug-ins can contribute functionality.
Each major subsystem in Eclipse IDE and Eclipse RCP is itself structured as a set of plug-ins that implement some key function and define extension points. The Eclipse system itself is built by contributing to the same extension points that third party plug-in providers can use. Plug-ins can define their own extension points or simply add extensions to the extension points of other plug-ins.
Note that the concepts of plug-ins and extension points runs very deep in the Eclipse platform: even the very basic parts of the platform are organized as plug-ins with extension points. The only Eclipse RCP plug-in that does not provide or use extensions is SWT.
Eclipse products are built in layers.
At the bottom there are Eclipse RCP with the bare necessities. The RCP subsystems typically add visible features to the platform and provide APIs for extending their functionality. Some of these components supply additional class libraries that do not directly relate to an extension point, but can be used to implement extensions. For example, the workbench UI supplies the JFace UI framework and the SWT widget toolkit.
The platform layer adds the generic features needed for an Integrated Development Environment (IDE).
The different language support sits on top of the platform. The basic IDE features (known under the misleading name Eclipse SDK) includes two major tools that are useful for plug-in development. The Java development tooling (JDT) implements a full featured Java development environment. The Plug-in Developer Environment (PDE) adds specialized tools that streamline the development of plug-ins and extensions.
Likewise for the many features of Calisto, Europa and now Ganymede. They are also layered to provide a set of basic features that are used by other features to provide better and more specialized tools.
The Resources, Workspace and Update components shown above is not really part of the very basic RCP component set. They are used very often in RCP applications.
The platform run-time core implements the run-time engine that starts the platform base and dynamically discovers plug-ins. A plug-in is a structured component that describes itself to the system using a manifest (plugin.xml) file. The platform maintains a registry of installed plug-ins and the functions they provide.
Functionality is added to the system using a common extension model. Extension points are well-defined function points in the system that can be extended by plug-ins. When a plug-in contributes an implementation for an extension point, we say that it adds an extension to the platform. Plug-ins can define their own extension points, so that other plug-ins can integrate tightly with them.
The extension mechanisms are the only means of adding function to the platform and other plug-ins. All plug-ins use the same mechanisms. Plug-ins provided with the Eclipse SDK do not use any private mechanisms in their implementation.
Extensions are typically written in Java using the platform APIs. However, some extension points accommodate extensions provided as platform executables, ActiveX components, or developed in scripting languages. In general, only a subset of the full platform function is available to non-Java extensions.
A general goal of the run-time is that the end user should not pay a memory or performance penalty for plug-ins that are installed, but not used. A plug-in can be installed and added to the registry, but the plug-in will not be activated unless a function provided by the plug-in has been requested according to the user's activity.
Using Eclipse RCP in an application is typically done the very same way as when used in Eclipse IDE.
At the bottom there are Eclipse RCP with the bare necessities.
The platform layer adds the generic features needed for any application in the specific environment.
The application itself is then placed at the top.
The terms listed above are central to an Eclipse system and it is rather important to understand them in order to implement a big Eclipse application.
The Nordea business requirements
And the IT requirements
Some of the known components of the banking desktop…