Your SlideShare is downloading. ×
0

IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen

1,944

Published on

”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.”

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,944
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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…
  • Transcript of "IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen"

    1. 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. 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. 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
    4. 4. PR0017 - 2009-09-29 4 Eclipse is… what exactly?
    5. 5. PR0017 - 2009-09-29 5 Eclipse – The Java IDE
    6. 6. PR0017 - 2009-09-29 6 Eclipse – The Tools Platform
    7. 7. PR0017 - 2009-09-29 7 Eclipse – The Application Platform Nordea Banking Desktop
    8. 8. L0019 - 2008-11-28 8 IBM Lotus Notes Version 8
    9. 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. 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. 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. 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
    13. 13. PR0017 - 2009-09-29 13 Eclipse Platform Resources Workspace Help Update Team WebServer Filesystems Apache Search Navigator Intro TextEditors Eclipse Architectural Components JDT CVS WTP Datatools VE BIRT Mylyn PDE Eclipse RCP Run-time/OSGi SWT JFace Workbench Preferences Jobs ICU Commands Registry CDT
    14. 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
    15. 15. PR0017 - 2009-09-29 15 Application Platform Comm. Logging Help Update Auth. Auditing Apache Intro Your Typical RCP Application Base Add-on Add-on Add-on Add-on DebugTools DataModel Eclipse RCP Run-time/OSGi SWT JFace Workbench Preferences Jobs ICU Commands Registry Add-on
    16. 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. 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
    18. 18. PR0017 - 2009-09-29 18 Demonstration of some relevant Eclipse RCP features
    19. 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
    20. 20. PR0017 - 2009-09-29 20 The Eclipse Ecosystem
    21. 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. 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. 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
    24. 24. PR0017 - 2009-09-29 24 Project Activity
    25. 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. 26. PR0017 - 2009-09-29 26 Choosing Eclipse RCP  Business Requirements  IT/Project Requirements  The Basic Architecture  The Process
    27. 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. 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. 29. PR0017 - 2009-09-29 29 Banking Desktop Architectural Components Banking Platform UI Error Help Update UserMng Audit Security DataModel SOA/ESB Teller PSD2 ??? PSD1 Eclipse RCP Run-time/OSGi SWT JFace Workbench Preferences Jobs ICU Commands Registry CMS
    30. 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)
    31. 31. PR0017 - 2009-09-29 31 Q&A
    32. 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/
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×