SlideShare ist ein Scribd-Unternehmen logo
1 von 17
PR0006 - 2008-01-28
Redistribution and other use of this material is covered by EPL.
Lessons Learned from an Enterprise RCP Application
During the implementation of a major financial application for a large
financial institution, we learned a lot about how to use Eclipse RCP as
an application platform and especially some of the short-comings of the
current platform.
This long talk goes through some of the lessons we learned and
discusses some of the changes that could be made to Eclipse RCP to get
a better platform for enterprise applications.
2
Agenda
 The Application
 Lesson 1: All end-users are not engineers
 Lesson 2: All windows are not equal
 Lesson 3: Editors are no good
 Lesson 4: Views are only a little better
 Lesson 5: Update must be dynamic
 Lesson 6: Security is King
 Lesson 7: Some frameworks are still missing
3
The Application
 Nordea is one of primary financial institutions in the Nordic countries
with branches in Denmark, Sweden, Norway and Finland
 The business includes banking, pensions and insurance
 The long-term aim of the project is to replace all the existing banking
applications in one common integrated desktop
 Customer management
 Teller
 Product Provisioning (loans, credit cards, pensions, insurances,…)
 End-users are all branch and call center personnel (clerks and managers)
 Organized in a number of levels with different working areas
 First version will cover provisioning of non-collateral loans, credit cards
and other types of short-term loans
4
The Business Case
 The business cases is based two advantages:
 One client instead of 4-5 clients
 Higher productivity

1 minute saved per case equals 30 extra resources
DK SE NO FI
ESB
...
Branches CC
BPM
Clients
internet
Intranet
Stock
CMS
Teller
PSD
A&A
5
The Requirements
 Business requirements
 Provide process support
 Show/hold all functionality and information in one place

Seamlessly integration between the functional areas

Data re-use
 External peripherals
 High usability

Follow the OS

Standard keyboard navigation, icon, help, drag & drop
 High performance
 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
6
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)
7
Nordea Banking Desktop (prototype)
8
Main Idea behind Application
 One primary window – the ”banking desktop” with access to all primary
input sources
 Secure mail received via home banking
 Activities forwarded by other clerks or created by a BPE
 Meetings created by other clerks on your behalf
 Perspectives used for each functional area:

Mail

Search

News

General information such as account rates, product details
 A secondary window for each ”open” customer
 Perspectives for each type of engagement

Ordinary accounts, loans, credit cards, etc

Pensions

Insurences
 End-users can work on many concurrent tasks – but only one per
customer
 End-users are often interrupted by other work or phone calls
9
Lesson 1: All End-Users are not Engineers
 Not an obvious lesson!
 The end-users of an entreprise application can be divided into
two groups
 The specialists – often a very small group of the organisation

Very much like engineers in the mindset
 The rest () – normally 95% of the end-users

Sometimes no formal education – e.g. in tele-marketing
 Our Solution:
 Avoid all workbench configuration
The specialists The ”ordinary” users
Work controlled by
Creativity – often very few
formalized processes
Processes – often based
on law
Number of end-users Few Many
Task lengh 1-5 days 10-60 minutes
”Mindset” Somewhat anacistic Very diciplined
Need for workbench
configuration
Like to configure
“everything”
Like the same desktop
every time
10
Lesson 2: All windows are not equal
 The content of workbench windows can differ a lot
 Our application contained four types of windows:

“Banking Desktop” window

“Customer” windows

“Search” window

“Development” window
 Different content on different windows
 It is very important that the data for different customers is not
mixed on the same window
 Closing the “banking desktop” windows, closes the application
 Our Solution:
 Simple parameterization of workbench advisors
 Re-creation of windows not trivial
11
Lesson 3: Editors are no good
 Eclipse uses two different types of workbench parts:
 Editors

Has state and a built-in life-cycle management

Menu and toolbar merged with top-level menu and tools

Is put in a designated ”editor area” that can only contain editors
 Views

Has no state (only configuration)

Has private menu and toolbar

Is put in ”view stacks” that can only contain views
 Editors and views cannot be combined in a single stack in a window!
 Editors cannot be restricted to a specific perspective
 In the banking desktop, it has been impossible to explain how the
above can be used in a consistent manner
 Our Solution:
 We decided to not use editors at all!
 Happily, the editor life-cycle management can be emulated in views
12
Lesson 4: Views are only a little better
 Views have their own problems though!
 The menu and toolbar of a view is part of the view itself
 All usability tests performed with the prototype (50 persons tested)
showed the view-local toolbar and menu has always ignored!
 If is not possible to limit the “Show View…” command to only present a
limited set of views based on the current window and perspective
 E.g. a specific view – representing a specific type of pension – should
only be presented if relevant for the customer
 Our solution:
 Add all view-local menu and toolbar actions to the main menu and
toolbar as well
 We might completely remove the view-local actions in the future if
not used
 Disable the “Show View…” command – and create all relevant views
when a customer window is shown
13
Lesson 5: Update must be dynamic
 When problems are detected in the application, it must be possible to
provide fixes to all users – if not immediately, then very fast
 Updates should be pushed
 End-users must be able to choose when to update
 Our Solution:
 Simple use of the update manager
 Looking forward to see if Eclipse Provisioning Project (p2) will help
on the performance
14
Lesson 6: Security is King
 The banking desktop is a banking application, so security is paramount
 Individual end-users have different – rather fine-grained – roles
 Controls the access to different functional areas and actions

Can you access to the stock portfolio of a customer?

Can you request a new credit assessment for a customer?

Which types of loans and credit cards can you grant to a
customer?

How big a loan can you grant?
 We need to control access to perspectives, views, commands, sections
of views, choices in views, and some sizes (e.g. amounts)
 The security department is a separate entity from the development
group
 Consequently it is necessary to handle security issues very late in
the development cycle
 It is best be able to be able to change role definitions without
invoking the development group itself
15
Lesson 6: Security is King (continued)
 How do you ensure all the bundles used in the application are in fact
sanctioned by the security zsars?
 Our Solution:
 We use activities to control access to most UI “things”

Safe as long as you keep from certain built-in actions such as
“Show view” and “Show perspective”

Declarations put in separate plug-ins
 We use signing and MD5 checksums to protect the application

The solution isn’t exactly simple, so why isn’t there any
framework in place for this?
 Side note: it seems there will be something present in 3.4 on both
accounts
16
Lesson 7: Some frameworks are still missing
 During the development two frameworks was identified that could have
helped on the development:
 A transformation layer between an EMF model and the WSDL of web-
services
 Support for screen-flows and processes in views
17
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
 5 years of experience with Eclipse and Eclipse RCP
 Add-in Provider Member of the Eclipse Foundation
 Chairman of Eclipse.dk

Weitere ähnliche Inhalte

Was ist angesagt?

Software engg. pressman_ch-1
Software engg. pressman_ch-1Software engg. pressman_ch-1
Software engg. pressman_ch-1
Dhairya Joshi
 
Mobile User Experience
Mobile User ExperienceMobile User Experience
Mobile User Experience
Thomas Memmel
 
Software engineering
Software engineeringSoftware engineering
Software engineering
Mukul Goyal
 
IBM Rational Developer for System z Quick Start Sales Presentation
IBM Rational Developer for System z Quick Start Sales PresentationIBM Rational Developer for System z Quick Start Sales Presentation
IBM Rational Developer for System z Quick Start Sales Presentation
IBM Rational software
 

Was ist angesagt? (20)

A Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationA Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements Specification
 
Scott Apeland Intel Keynote
Scott Apeland Intel KeynoteScott Apeland Intel Keynote
Scott Apeland Intel Keynote
 
Project Management with Usability Engineering Methods
Project Management with Usability Engineering MethodsProject Management with Usability Engineering Methods
Project Management with Usability Engineering Methods
 
The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Software engg. pressman_ch-1
Software engg. pressman_ch-1Software engg. pressman_ch-1
Software engg. pressman_ch-1
 
Make software like they make cars!
Make software like they make cars!Make software like they make cars!
Make software like they make cars!
 
Mobile User Experience
Mobile User ExperienceMobile User Experience
Mobile User Experience
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Xsemble - Make software like they make cars!
Xsemble - Make software like they make cars!Xsemble - Make software like they make cars!
Xsemble - Make software like they make cars!
 
Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 
SDLC
SDLCSDLC
SDLC
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
IBM Rational Developer for System z Quick Start Sales Presentation
IBM Rational Developer for System z Quick Start Sales PresentationIBM Rational Developer for System z Quick Start Sales Presentation
IBM Rational Developer for System z Quick Start Sales Presentation
 
01lifecycles
01lifecycles01lifecycles
01lifecycles
 
Pega robotics best practices building solutions (1)
Pega robotics best practices   building solutions (1)Pega robotics best practices   building solutions (1)
Pega robotics best practices building solutions (1)
 
System Development Life Cycle Models
System Development Life Cycle ModelsSystem Development Life Cycle Models
System Development Life Cycle Models
 
Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologies
 
Course summary
Course summaryCourse summary
Course summary
 
New User Interfaces & Channels for the Enterprise
New User Interfaces & Channels for the EnterpriseNew User Interfaces & Channels for the Enterprise
New User Interfaces & Channels for the Enterprise
 

Andere mochten auch

TARGET Authoring Tools
TARGET Authoring ToolsTARGET Authoring Tools
TARGET Authoring Tools
georgo
 
EclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user groupEclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user group
Tonny Madsen
 

Andere mochten auch (20)

ITU - MDD - XText
ITU - MDD - XTextITU - MDD - XText
ITU - MDD - XText
 
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
 
Eclipse Summit Europe '10 - Test UI Aspects of Plug-ins
Eclipse Summit Europe '10 - Test UI Aspects of Plug-insEclipse Summit Europe '10 - Test UI Aspects of Plug-ins
Eclipse Summit Europe '10 - Test UI Aspects of Plug-ins
 
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureEclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
 
L0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse PlatformL0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse Platform
 
L0018 - SWT - The Standard Widget Toolkit
L0018 - SWT - The Standard Widget ToolkitL0018 - SWT - The Standard Widget Toolkit
L0018 - SWT - The Standard Widget Toolkit
 
ITU - MDD - EMF
ITU - MDD - EMFITU - MDD - EMF
ITU - MDD - EMF
 
ITU - MDD - Textural Languages and Grammars
ITU - MDD - Textural Languages and GrammarsITU - MDD - Textural Languages and Grammars
ITU - MDD - Textural Languages and Grammars
 
ITU - MDD – Modeling Techniques
ITU - MDD – Modeling TechniquesITU - MDD – Modeling Techniques
ITU - MDD – Modeling Techniques
 
TARGET Authoring Tools
TARGET Authoring ToolsTARGET Authoring Tools
TARGET Authoring Tools
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
 
notesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Toolsnotesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Tools
 
IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)
 
IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)
 
EclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user groupEclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user group
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
 
Battle
BattleBattle
Battle
 
Accenture Supply Chain Academy
Accenture Supply Chain AcademyAccenture Supply Chain Academy
Accenture Supply Chain Academy
 
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
 
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformEclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
 

Ähnlich wie EclipseCon '08 - Lessons Learned from an Enterprise RCP Application

Different Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsDifferent Methodologies Used By Programming Teams
Different Methodologies Used By Programming Teams
Nicole Gomez
 
Selection And Implementation Of An Enterprise Maturity...
Selection And Implementation Of An Enterprise Maturity...Selection And Implementation Of An Enterprise Maturity...
Selection And Implementation Of An Enterprise Maturity...
Jenny Calhoon
 
zaid ppt.pptx
zaid ppt.pptxzaid ppt.pptx
zaid ppt.pptx
aasim40
 
COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON
Jitender Suryavansh
 

Ähnlich wie EclipseCon '08 - Lessons Learned from an Enterprise RCP Application (20)

construction management system final year report
construction management system final year reportconstruction management system final year report
construction management system final year report
 
Software process model
Software process modelSoftware process model
Software process model
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Project Proposal Service Center Management software
Project Proposal  Service Center Management softwareProject Proposal  Service Center Management software
Project Proposal Service Center Management software
 
Chapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.pptChapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.ppt
 
Different Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsDifferent Methodologies Used By Programming Teams
Different Methodologies Used By Programming Teams
 
Software Process Model in software engineering
Software Process Model in software engineeringSoftware Process Model in software engineering
Software Process Model in software engineering
 
Selection And Implementation Of An Enterprise Maturity...
Selection And Implementation Of An Enterprise Maturity...Selection And Implementation Of An Enterprise Maturity...
Selection And Implementation Of An Enterprise Maturity...
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
zaid ppt.pptx
zaid ppt.pptxzaid ppt.pptx
zaid ppt.pptx
 
SDLC
SDLCSDLC
SDLC
 
1c
1c1c
1c
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
ASSIGNMENT
ASSIGNMENT ASSIGNMENT
ASSIGNMENT
 
2
22
2
 
COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON
 
SofTools 2009
SofTools 2009SofTools 2009
SofTools 2009
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Enterprise Architecture in Practice: from Datastore to APIs and Apps
Enterprise Architecture in Practice: from Datastore to APIs and AppsEnterprise Architecture in Practice: from Datastore to APIs and Apps
Enterprise Architecture in Practice: from Datastore to APIs and Apps
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 

Mehr von Tonny Madsen

Mehr von Tonny Madsen (13)

L0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard ViewsL0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard Views
 
L0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse ConfigurationL0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse Configuration
 
L0036 - Creating Views and Editors
L0036 - Creating Views and EditorsL0036 - Creating Views and Editors
L0036 - Creating Views and Editors
 
L0033 - JFace
L0033 - JFaceL0033 - JFace
L0033 - JFace
 
L0020 - The Basic RCP Application
L0020 - The Basic RCP ApplicationL0020 - The Basic RCP Application
L0020 - The Basic RCP Application
 
L0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-inL0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-in
 
PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?
 
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An IntroductionEclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
 
eclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hoodeclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hood
 
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platform
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejenIDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

EclipseCon '08 - Lessons Learned from an Enterprise RCP Application

  • 1. PR0006 - 2008-01-28 Redistribution and other use of this material is covered by EPL. Lessons Learned from an Enterprise RCP Application During the implementation of a major financial application for a large financial institution, we learned a lot about how to use Eclipse RCP as an application platform and especially some of the short-comings of the current platform. This long talk goes through some of the lessons we learned and discusses some of the changes that could be made to Eclipse RCP to get a better platform for enterprise applications.
  • 2. 2 Agenda  The Application  Lesson 1: All end-users are not engineers  Lesson 2: All windows are not equal  Lesson 3: Editors are no good  Lesson 4: Views are only a little better  Lesson 5: Update must be dynamic  Lesson 6: Security is King  Lesson 7: Some frameworks are still missing
  • 3. 3 The Application  Nordea is one of primary financial institutions in the Nordic countries with branches in Denmark, Sweden, Norway and Finland  The business includes banking, pensions and insurance  The long-term aim of the project is to replace all the existing banking applications in one common integrated desktop  Customer management  Teller  Product Provisioning (loans, credit cards, pensions, insurances,…)  End-users are all branch and call center personnel (clerks and managers)  Organized in a number of levels with different working areas  First version will cover provisioning of non-collateral loans, credit cards and other types of short-term loans
  • 4. 4 The Business Case  The business cases is based two advantages:  One client instead of 4-5 clients  Higher productivity  1 minute saved per case equals 30 extra resources DK SE NO FI ESB ... Branches CC BPM Clients internet Intranet Stock CMS Teller PSD A&A
  • 5. 5 The Requirements  Business requirements  Provide process support  Show/hold all functionality and information in one place  Seamlessly integration between the functional areas  Data re-use  External peripherals  High usability  Follow the OS  Standard keyboard navigation, icon, help, drag & drop  High performance  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
  • 6. 6 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)
  • 8. 8 Main Idea behind Application  One primary window – the ”banking desktop” with access to all primary input sources  Secure mail received via home banking  Activities forwarded by other clerks or created by a BPE  Meetings created by other clerks on your behalf  Perspectives used for each functional area:  Mail  Search  News  General information such as account rates, product details  A secondary window for each ”open” customer  Perspectives for each type of engagement  Ordinary accounts, loans, credit cards, etc  Pensions  Insurences  End-users can work on many concurrent tasks – but only one per customer  End-users are often interrupted by other work or phone calls
  • 9. 9 Lesson 1: All End-Users are not Engineers  Not an obvious lesson!  The end-users of an entreprise application can be divided into two groups  The specialists – often a very small group of the organisation  Very much like engineers in the mindset  The rest () – normally 95% of the end-users  Sometimes no formal education – e.g. in tele-marketing  Our Solution:  Avoid all workbench configuration The specialists The ”ordinary” users Work controlled by Creativity – often very few formalized processes Processes – often based on law Number of end-users Few Many Task lengh 1-5 days 10-60 minutes ”Mindset” Somewhat anacistic Very diciplined Need for workbench configuration Like to configure “everything” Like the same desktop every time
  • 10. 10 Lesson 2: All windows are not equal  The content of workbench windows can differ a lot  Our application contained four types of windows:  “Banking Desktop” window  “Customer” windows  “Search” window  “Development” window  Different content on different windows  It is very important that the data for different customers is not mixed on the same window  Closing the “banking desktop” windows, closes the application  Our Solution:  Simple parameterization of workbench advisors  Re-creation of windows not trivial
  • 11. 11 Lesson 3: Editors are no good  Eclipse uses two different types of workbench parts:  Editors  Has state and a built-in life-cycle management  Menu and toolbar merged with top-level menu and tools  Is put in a designated ”editor area” that can only contain editors  Views  Has no state (only configuration)  Has private menu and toolbar  Is put in ”view stacks” that can only contain views  Editors and views cannot be combined in a single stack in a window!  Editors cannot be restricted to a specific perspective  In the banking desktop, it has been impossible to explain how the above can be used in a consistent manner  Our Solution:  We decided to not use editors at all!  Happily, the editor life-cycle management can be emulated in views
  • 12. 12 Lesson 4: Views are only a little better  Views have their own problems though!  The menu and toolbar of a view is part of the view itself  All usability tests performed with the prototype (50 persons tested) showed the view-local toolbar and menu has always ignored!  If is not possible to limit the “Show View…” command to only present a limited set of views based on the current window and perspective  E.g. a specific view – representing a specific type of pension – should only be presented if relevant for the customer  Our solution:  Add all view-local menu and toolbar actions to the main menu and toolbar as well  We might completely remove the view-local actions in the future if not used  Disable the “Show View…” command – and create all relevant views when a customer window is shown
  • 13. 13 Lesson 5: Update must be dynamic  When problems are detected in the application, it must be possible to provide fixes to all users – if not immediately, then very fast  Updates should be pushed  End-users must be able to choose when to update  Our Solution:  Simple use of the update manager  Looking forward to see if Eclipse Provisioning Project (p2) will help on the performance
  • 14. 14 Lesson 6: Security is King  The banking desktop is a banking application, so security is paramount  Individual end-users have different – rather fine-grained – roles  Controls the access to different functional areas and actions  Can you access to the stock portfolio of a customer?  Can you request a new credit assessment for a customer?  Which types of loans and credit cards can you grant to a customer?  How big a loan can you grant?  We need to control access to perspectives, views, commands, sections of views, choices in views, and some sizes (e.g. amounts)  The security department is a separate entity from the development group  Consequently it is necessary to handle security issues very late in the development cycle  It is best be able to be able to change role definitions without invoking the development group itself
  • 15. 15 Lesson 6: Security is King (continued)  How do you ensure all the bundles used in the application are in fact sanctioned by the security zsars?  Our Solution:  We use activities to control access to most UI “things”  Safe as long as you keep from certain built-in actions such as “Show view” and “Show perspective”  Declarations put in separate plug-ins  We use signing and MD5 checksums to protect the application  The solution isn’t exactly simple, so why isn’t there any framework in place for this?  Side note: it seems there will be something present in 3.4 on both accounts
  • 16. 16 Lesson 7: Some frameworks are still missing  During the development two frameworks was identified that could have helped on the development:  A transformation layer between an EMF model and the WSDL of web- services  Support for screen-flows and processes in views
  • 17. 17 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  5 years of experience with Eclipse and Eclipse RCP  Add-in Provider Member of the Eclipse Foundation  Chairman of Eclipse.dk