On Platform-Plugin Architecture Take Eclipse as an Example 魏恒峰.

Slides:



Advertisements
Similar presentations
Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
Advertisements

Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
Natural Business Services for Construct Users Mark Barnard R&D Manager – Natural Business Services.
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
H Apr-01 Clark Thomborson Software Security CompSci 725 Handout 28: Report Writing #2 (Sample Titles & Abstracts) Clark Thomborson University of.
Goals Give you a feeling of what Eclipse is.
Eclipse Architecture Dwight Deugo Nesa Matic
Eclipse Introduction Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Views Dwight Deugo Nesa Matic
1 Plug-in Development Environment (PDE) Guide. 2 Introduction to PDE l What is PDE: »a tool designed to help you develop platform plug-ins while working.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
User Group 2015 Version 5 Features & Infrastructure Enhancements.
Microsoft ® Application Virtualization 4.6 Infrastructure Planning and Design Published: September 2008 Updated: February 2010.
Android Core Logging Application Keith Schneider Introduction The Core Logging application is part of a software suite that is designed to enable geologic.
Client/Server Architectures
DYNAMICS CRM AS AN xRM DEVELOPMENT PLATFORM Jim Novak Solution Architect Celedon Partners, LLC
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Microsoft Confidential Office as a Development Platform Tim Heuer
1 Copyright © 2004, Oracle. All rights reserved. Introduction to Oracle Forms Developer and Oracle Forms Services.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
Copyright © IBM Corp., All rights reserved; made available under the EPL v1.0 | March 20, 2008 | Short Talk Standards based systems management: An.
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
Copyright © 2011 EMC Corporation. All Rights Reserved. MODULE – 6 VIRTUALIZED DATA CENTER – DESKTOP AND APPLICATION 1.
 Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application.
ECE 452 / CS 446 / SE464 Design Patterns: Part 2 - Answers A Tutorial By Peter Kim Partially based on the tutorial by Michał Antkiewicz.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Integrated Development Environment for Policies Anjali B Shah Department of Computer Science and Electrical Engineering University of Maryland Baltimore.
Extending the Eclipse Framework and Rich Client Platform Jeff Myers Languages for Lunch 10/13/2004.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
[________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This.
Copyright © IBM Corp., All rights reserved. From SWT to RCP: Experiences implementing RSSOwl 2.0 with RCP Benjamin Pasero.
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
CMSC 466 / 666 Yong Rao Feb. 11, 2004 Revised Mar. 15, 2004.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
DEV-8: OpenEdge® Architect – Extensibility & Third Party Integration Sunil Belgaonkar Principal Software Engineer Architect Phillip Magnay.
Migrating Desktop Marcin Płóciennik Marcin Płóciennik Kick-off Meeting, Santander, Graphical.
Kuali Rice at Indiana University From the System Owner Perspective July 29-30, 2008 Eric Westfall.
CSS – Control System Studio
Architecture for an Ontology and Web Service Modelling Studio Michael Felderer & Holger Lausen DERI Innsbruck Frankfurt,
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Introduction 1 Lars Vogel 4/22/2009.  Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace.
Tool Integration with Data and Computation Grid “Grid Wizard 2”
EUFORIA FP7-INFRASTRUCTURES , Grant Migrating Desktop Uniform Access to the Grid Marcin Płóciennik Poznan Supercomputing and Networking Center.
Chapter 8 Object Design Reuse and Patterns. More Patterns Abstract Factory: Provide manufacturer independence Builder: Hide a complex creation process.
ETICS All Hands meeting B ologna, October , 2006 WP4 Test and Metrics Plugin Framework (WP4) (WP4) Eva TAKACS.
Migrating Desktop Uniform Access to the Grid Marcin Płóciennik Poznan Supercomputing and Networking Center Poznan, Poland EGEE’07, Budapest, Oct.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Eclipse.NET An Integration Platform for ProjectIT-Studio João Saraiva IST & INESC-ID (GSI)
Pranav Ainavolu VSTO Developer, Conrep Solutions |
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
Introduction to Oracle Forms Developer and Oracle Forms Services
Chapter 6: Securing the Cloud
Goals Give you a feeling of what Eclipse is.
Introduction to Oracle Forms Developer and Oracle Forms Services
Introduction to Oracle Forms Developer and Oracle Forms Services
Chapter 18 MobileApp Design
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Architecture, Components, Configuration
Genome Workbench Chuong Huynh NIH/NLM/NCBI New Delhi, India
a middleware implementation
An Introduction to Eclipse
Plug-In Architecture Pattern
Presentation transcript:

On Platform-Plugin Architecture Take Eclipse as an Example 魏恒峰

Overview Motivations for Plugins What is platform-plugin architecture? Eclipse Example  platform  plugin  extension model Runtime consideration Some challenging issues

Motivation for Plugins(1) Customers' requirements control the creation and deployment of software. rapid changes in requirements upgradeablity support for integrating other vendor's compents at any time more flexible and extensible

Motivation for Plugins(3) What can we do …… ? traditional software architecture  add new functionality  modify existing functionality  add new functionality again  modify existing functionality again  …… What a mess!

Motivation for Plugins(4) How about Platform-Plugin Architecture?  providing modular functionality to users  platform is small + integrated  offer a consistent use experience  Support composing a larger system that is not pre-structured, or to extend it in ways you don't foresee. Maybe elegant

What is Platform-Plugin? Sounds familiar…… History: While working on Silicon Beach Software’s Digital Dark-room--one of the first digital imaging programs--programmers envisioned using XCMD-like bits of software to extend Digital Darkroom’s capabilities to include access to flat-bed scanners and software “filters” that could manipulate a photograph’s look. They called this concept a “plug-in” and the name stuck.

What is Platform-Plugin? more familiar…… Actually , it is much more than a wonderful IDE……

What is Platform-Plugin? A platform describes some sort of hardware architecture or software framework (including application frameworks), that allows software to run. —— from Wikipedia A plug-in is a structured component that contributes code (or documentation or both) to the system and describes it in a structured way.

Eclipse Platform Architecture(1) Platform Runtime: Finding,loading,and running the right plugin code. Maintaining a registry of installed plugins and the functions they provide. Managing the plugin extension model and inter-plugin dependencies. org.eclipse.osgiorg.eclipse.core.runtime

Eclipse Platform Architecture(2) core plugin Model  Workspace(Model)  Resource  Project  File  SWT  JFace View  Workbench(View)  View  Editor  Perspectives  Wizards  Action Sets

Eclipse Platform Architecture(3) The JDT is implemented by a group of plugins,with the user interface in a UI plugin and the non-UI infrastructure in a separate core plugin.

Eclipse Plugin Plugin structured  A plug-in is a structured component that contributes code (or documentation or both) to the system and describes it in a structured way. extension points extension manifest (plugin.xml) file  Plug-ins can define extension points, well-defined function points that can be extended by other plug-ins. When a plug-in contributes an implementation for an extension point, we say that it adds an extension to the platform. These extensions and extension points are declared in the plug-ins's manifest (plugin.xml) file. —— From Eclipse online Help

Eclipse Extension Model Define Extension Point Host Plugin Interface Extender Plugin Extension Class Implements extends looking up its extenders, instantiating the associated callback class, invoking the interface methods

Extension Model(con.) the extensibility of plugins by plugins Much like defining any contractual obligation:  an extension model provides a structured way for plugins to describe the ways they can be extended and for client plugins to describe the extensions they supply. Interface Schema

Extension Model(an example:popupMenus) org.eclipse.ui plugin extension point —— popupMenus CONFORMANCE RULE: Contributions must conform to expected interfaces. public class RunTestAction implements IObjectActionDelegate

Extension Model(an example:popupMenus)

Eclipse Extension Model Define Extension Point Host Plugin Interface Extender Plugin Extension Class Implements extends looking up its extenders, instantiating the associated callback class, invoking the interface methods

Extension Model(Extension Processing) In extension model,the host plugin is responsible for:  looking up  looking up its extenders  instaniating  instaniating the associated callback class  invoking  invoking the appropriate interface methods The extension declarations in all plugins that extend it must be processed.  Contributing to host plugin's UI  what callback objects to call

Extension Model(Extension Processing) Platform Runtime

Extension Model(Extension Processing) Contributing to host plugin's UI Code is not necessary!

Extension Model(Extension Processing) A principal function of extension processing is the instantiation and initializing of an extension's callback objects. instantiation: Actually,it is performed in a lazy manner initializing:

Plugin Runtime Considerations (Lazy Loading) LAZY LOADING RULE: LAZY LOADING RULE: needed  Contributions are only loaded when they are needed. declarative  This requires support for plugin declarative functionality.

Plugin Runtime Considerations (Lazy Loading) virtual proxy virtual proxy  may cache additional information about the real subject so that they can postpone accessing it. The Eclipse workbench populates a PluginAction from the information in the manifest (title, icon, tooltip). UI PluginAction loads the extension class and forwards the run() request to it. Action On Demand

Challenging Issues(1) Installing and updating  the ability to roll back,migrate existing program data and preferences,or ensure the installation is not corrupted  various providers => do not test fully Security  downloading from third parties (digitally signed)  controlling a plugin's access to other code and data (sandbox)

Challenging Issues(2) Concurrent plugin version support  confusing UI  versions are part of plugin dependency specifications  eclipse's solution: Generally,the latest version first. Scalability,up and down  too many plugins (fast start-up) features  install/update(changed,features)  scaling down(limited resources,minimal configuration)

Epilogue Motivations for Plugins What is platform-plugin architecture? Eclipse Example  platform  plugin  extension model Runtime consideration Some challenging issues