logo_kerberos.gif

Projects/Plugin support improvements

From K5Wiki
< Projects(Difference between revisions)
Jump to: navigation, search
(Participants)
(Participants)
Line 32: Line 32:
 
within the architecture.
 
within the architecture.
   
'''Plugin Manager''': The plugin manager provides a set of generic capabilities that are independent of individual pluggable interfaces. The plugin manager implements operations that manage plugin configuration and plugin registry services. It is responsible for managing plugin handles and provide ''discovery'' capabilities for consumers or callers.
+
'''Plugin Manager''': The plugin manager provides a set of generic capabilities that are independent of individual pluggable interfaces. The plugin manager implements operations that manage plugin configuration and plugin registry services. It is responsible for managing plugin handles and provides ''discovery'' capabilities for consumers or callers.
   
 
'''Plugin Interface''': A plugin interface is an interface that can be implemented by a third party in a modular manner. An implementation of a plugin interfaces is referred to as a ''plugin module''.
 
'''Plugin Interface''': A plugin interface is an interface that can be implemented by a third party in a modular manner. An implementation of a plugin interfaces is referred to as a ''plugin module''.
Line 38: Line 38:
 
'''Plugin Module''': A plugin module is an implementation of a pluggable interface.
 
'''Plugin Module''': A plugin module is an implementation of a pluggable interface.
   
'''Consumer''':
+
'''Consumer''': The consumer or caller is the entity that uses the plugin module. The consumer or caller may also perform discovery of available modules prior to using them.
   
 
=== Domain-specific and Domain-independent Interfaces and Modules ===
 
=== Domain-specific and Domain-independent Interfaces and Modules ===

Revision as of 11:08, 21 July 2010

Contents

Motivations, Priorities & Requirements

Motivations: there are a number of motivations behind the creation of the plugin architecture framework.

  • Desire to separate plugin interface from its implementation;
  • Desire to provide simple and clear mechanism that facilitates additions of new plugin interfaces and their implementations(modules);
  • Handles both built-in and dynamic plugin modules;
  • Allows multiple implementation of the same plugin interface;
  • Provides uniform way to supply parameters for plugin configuration;
  • Allows one plugin implementation to use services provided by the other plugin implementations.

Requirements: from these items we have developed a more formal set of requirements covering the design and the implementation of the framework to support the plugins. These are as follows:

  1. Allow third parties to implement multiple plugin modules for each pluggable interface.
  2. Allow a plugin module to build as dynamic or built-in from the same source code.
  3. Allow third parties to more easily create new plugin modules.
  4. Provide a uniform method for configuring discovery of plugin modules.
  5. Improve readability of code that calls pluggable interfaces.
  6. Allow easier creation of new pluggable interfaces.
  7. Allow incremental transition of existing pluggable interfaces to the new framework.

Architecture Overview

Introduction

Participants

The following is a list of participants and components within the architecture.

Plugin Manager: The plugin manager provides a set of generic capabilities that are independent of individual pluggable interfaces. The plugin manager implements operations that manage plugin configuration and plugin registry services. It is responsible for managing plugin handles and provides discovery capabilities for consumers or callers.

Plugin Interface: A plugin interface is an interface that can be implemented by a third party in a modular manner. An implementation of a plugin interfaces is referred to as a plugin module.

Plugin Module: A plugin module is an implementation of a pluggable interface.

Consumer: The consumer or caller is the entity that uses the plugin module. The consumer or caller may also perform discovery of available modules prior to using them.

Domain-specific and Domain-independent Interfaces and Modules

Interfaces

Sample Code and Proof of Concept

Deliverables

Personal tools