7.2. Buckle

Intent

Load DLL plug-ins, which match your level of trust, into your own process to increase the flexibility of your architecture without compromising security.

AKA

None known

7.2.1. Problem

7.2.1.1. Context

You need to provide a simple-to-use but secure extension point in your component to easily allow future upgrades or customization.

7.2.1.2. Summary
  • Architectural extensibility has to be provided.

  • The potential damage caused by plug-ins needs to be limited by minimizing the capabilities with which they execute (principle of least privilege).

7.2.1.3. Description

A plug-in is a component loaded into a framework at run time so as to provide a certain, usually very specific, function. Frameworks support plug-ins for many reasons which include:

  • enabling yourself or other vendors to provide additional functionality that extends an application or service

  • easing porting of the application or service to different devices.

One possible way to achieve this is by having a configuration file that allows new settings to be specified after a component has been released. However, this is normally quite restrictive and so a mechanism by which additional code can be plugged in is needed.

This problem is seen by all types of developer whether they're a device creator or a third-party application developer.

7.2.1.4. Example

If you are creating a service for a mobile phone, then it's unlikely that your code will include a full graphical UI. Despite this, there are occasions where ...

Get Common Design Patterns for Symbian OS: The Foundations of Smartphone Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.