Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform


Published on

Eclipse RCP as an Application Platform held at Eclipse Banking Day in Copenhagen 2010-06-01

Published in: Technology, Business
  • Be the first to comment

Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform

  1. 1. PR0029 - 2010-05-31 1 Eclipse RCP as an Application Platform Eclipse is probably best known as a world-class Java IDE, but it is so much more if you just scratch the surface. Deep in the core of Eclipse, you find Eclipse RCP - the “Rich Client Platform" - that provides all the essential services for almost all types of client applications. This talk explores the services built into Eclipse RCP and shows some examples of what is possible with the platform. At the end, we also touch on the future of Eclipse RCP with the advent of Eclipse 4.0. Redistribution and other use of this material requires written permission from The RCP Company. PR0029 - 2010-05-31
  2. 2. PR0029 - 2010-05-31 2 Agenda Eclipse is… what exactly? The Eclipse Architecture The timeline for Eclipse 4.0 2 PR0029 - 2010-05-31
  3. 3. PR0029 - 2010-05-31 3 Eclipse is… what exactly? 3 PR0029 - 2010-05-31
  4. 4. PR0029 - 2010-05-31 4 Eclipse – The Sweets 4 PR0029 - 2010-05-31
  5. 5. PR0029 - 2010-05-31 5 ECLIPSE – The Mitsubishi Car 5 PR0029 - 2010-05-31
  6. 6. PR0029 - 2010-05-31 6 Eclipse – The Java IDE 6 PR0029 - 2010-05-31 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…
  7. 7. PR0029 - 2010-05-31 7 Eclipse – The Tools Platform 7 PR0029 - 2010-05-31 The current view of Eclipse according to the Eclipse Foundation. Really, the same view as when Eclipse was first conceived.
  8. 8. PR0029 - 2010-05-31 8 Eclipse – The Application Platform 8 PR0029 - 2010-05-31
  9. 9. PR0029 - 2010-05-31 9 IBM Lotus Notes Version 8 9 PR0029 - 2010-05-31 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 look&feel was designed by Mary Beth Raven. Would have been easier with e4, as this would have eased the structural changes as well.
  10. 10. 10 PR0029 - 2010-05-31 JDT Eclipse Platform PDE Team Resourc CVS Workspa es SWT Eclipse RCP Help ce CDT JFace Update WTP Workbench Apache Datatools Preferen Filesyste Web VE Run-time/OSGi Jobs ces ms ICU Text Server BIRT Intro Editors A Little About Comma Registry nds Navigato Search r Mylyn The Eclipse Architecture PR0029 - 2010-05-31 10
  11. 11. PR0029 - 2010-05-31 11 The Eclipse Story 1994: IBM develops VisualAge for Smalltalk – programmed in Smalltalk 1995: Java is released to a select group 1996: IBM develops VisualAge for Java – still programmed in Smalltalk November 1998: OTI (Object Technology International – part of IBM) is commissioned to develop new development platform for Java First known as VisualAge Micro Edition (VAME) and later Eclipse 7. November 2001: Eclipse 2.0 made Open Source 25. June 2004: Eclipse 3.0 released introducing Eclipse RCP Framework make-over introducing OSGi 2009: Eclipse 3.5 released – known as Galileo 27. June 2010: Eclipse 3.6 will be released Also known as Helios End of July, 2010: Eclipse SDK 4.0 Early Adopter Release First release of e4 technology June 2011: Eclipse 3.7 will be released June 2012: Eclipse 4.x will be released 11 PR0029 - 2010-05-31 Also an outline of the history of Eclipse See
  12. 12. PR0029 - 2010-05-31 12 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 when they are needed, and not before – also known as late activation We need all this to work over multiple generations of components 12 PR0029 - 2010-05-31 What are the main drivers for the Eclipse architecture?
  13. 13. PR0029 - 2010-05-31 13 Eclipse Architectural Components Datatools Mylyn BIRT WTP CDT PDE CVS JDT VE Eclipse Text Editors Filesystems Web Server Workspace Resources Navigator Platform Apache Update Search Team Help Intro Eclipse RCP Preferences Commands Registry Workbench Jobs ICU JFace SWT Run-time/OSGi 13 PR0029 - 2010-05-31 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.
  14. 14. PR0029 - 2010-05-31 14 Your Typical RCP Application Debug Tools Data Model Add-on Add-on Add-on Add-on Add-on Base Application Platform Auditing Logging Apache Comm. Update Auth. Help Intro Eclipse RCP Preferences Commands Registry Workbench Jobs ICU JFace SWT Run-time/OSGi 14 PR0029 - 2010-05-31 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.
  15. 15. PR0029 - 2010-05-31 15 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 15 PR0029 - 2010-05-31 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.
  16. 16. PR0029 - 2010-05-31 16 The Goals and History of e4 16 PR0029 - 2010-05-31 Tooling yet a little rough
  17. 17. PR0029 - 2010-05-31 17 Why A New Eclipse Framework Simplify the Eclipse programming model This will reduce development and maintenance costs and enable a larger developer community to leverage the platform in their own Eclipse-based applications Enable the platform for use on emerging web-based runtime technologies This will ensure the platform remains a compelling and viable application framework in a rapidly changing web technology landscape, and it will allow e4-based applications to leverage web technologies, while remaining insulated from specific technology choices that may quickly become obsolete Broaden participation in development of the platform This reduces the risks associated with building on a platform largely funded from a single source. Having a large and diverse group of commercial backers, will ensure the platform remains vibrant and viable over the long term 17 PR0029 - 2010-05-31 We all know a new framework is expensive, so why do this? Simplify the Eclipse programming model We want more models in Eclipse – e.g. the workbench itself – as this will • Ease the support for alternative UI – a new look for Eclipse ☺ • Separate appearance from content The Eclipse API is 13 years old (!) and is beginning to show its age • Too many singletons • Accumulated garbage • Complicated class hierarchy Enable the platform for use on emerging web-based runtime technologies • Communication getting faster and faster • Web Browsers have a fast JavaScript engine • RAP on steroids Broaden participation in development of the platform • There are vastly more people programming for the web than for Eclipse – what if we could simplify the model for Eclipse to tap into these resources Support for • JavaScript for Plug-ins • Skinnable UI • OpenSocial gadgets • Scripting • The 20 things From the official whitepaper for e4
  18. 18. PR0029 - 2010-05-31 18 Main Technical Differences between Eclipse 3.x and e4 Application Model in EMF Complete live model for the application – changes are reflected immediately in the application Rendering the Application Maps the model to the UI Allows for a completely new look and feel without touching the internals Allows support for different widget sets – even Adobe Flash or Microsoft Silverlight Context Contains the context/environment for all contributions Brokers interaction with the framework: service lookup, service registration Dependency Injection Allows for POJOs for all contributions 18 PR0029 - 2010-05-31 Context •Also eases the testing of application code – you “just” need to fake the environment
  19. 19. PR0029 - 2010-05-31 19 The e4 Story First presented at EclipseCon ’08 20. May 2008: Mail to e4-dev „A radical approach to explore new paths for e4“ Platform designed from Scratch Based upon an EMF-Application-Model No statics, no singletons, usage of Dependency Injection Based on OSGi-Services 14. January 2010: 1.0M3 released End of July, 2010: Eclipse SDK 4.0 Early Adopter Release 19 PR0029 - 2010-05-31
  20. 20. PR0029 - 2010-05-31 20 – The Danish Eclipse Society was created in Marts 2007 as a meeting place for everyone interested in the Eclipse ( platform. The purpose of is as follows: To promote the knowledge of Eclipse in Denmark. To create networks amongst danish Eclipse-users and developers. To build knowledge on Eclipse in Denmark, especially In danish institutes of higher education. Between danish companies developing applications based on Eclipse. Create and maintain a web site on Eclipse for danish users – Strengthen the relations between danish and international Eclipse-users and organizations. The society has members representing not only vendors of Eclipse- based products and services, but also users of the platform and representatives from institutions of higher education. 20 PR0029 - 2010-05-31
  21. 21. PR0029 - 2010-05-31 21 Q&A 21 PR0029 - 2010-05-31
  22. 22. PR0029 - 2010-05-31 22 About Me Tonny Madsen, Founder and Owner of The RCP Company 20 years of experience in system development in major companies 9 years experience as the Systems Architect of an 20+ MLoC project 8 years of experience with Eclipse and Eclipse RCP Solutions Member of the Eclipse Foundation Chairman of Extern Lecturer at IT-University on Model Driven Development and Domain Specific Languages Regular speaker at EclipseCon, Eclipse Summit, etc 22 PR0029 - 2010-05-31
  23. 23. PR0029 - 2010-05-31 23 If You Want to Know More about Eclipse The foundation: The Danish User Group: The training: Resources on Eclipse: Consolidated Blog: 23 PR0029 - 2010-05-31
  24. 24. PR0029 - 2010-05-31 24 If You Want to Know More about e4 The Project: Downloading e4: The Wiki: The training: Not yet, but coming after the Summer Tutorials on e4: A “create an application” tutorial from Lars Vogel 24 PR0029 - 2010-05-31