1 / 17

Lessons Learned from an Enterprise RCP Application

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.

urban
Télécharger la présentation

Lessons Learned from an Enterprise RCP Application

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. BPM 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 Branches CC A & A Teller Clients CMS internet Intranet PSD Stock ESB DK SE NO FI ...

  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 Start (early 2006) Decision (late 2007) Now Evaluation Platform components Business req Prototyping/testing First project

  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

  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

More Related