Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Talk discussion resolved

The relationship between packages, modules, components and interfaces is summarised in this graph.

Gliffy Diagram
namePluginStructure

Package

A package consists of a manifest file and the files required for the module(s) within the package. Typically package to function and a cryptographically signed manifest file which is used to validate package files. Typically a package represents an entire product or system of functionality such as Web Proxy Filter product, Script Engine or Logging.  Packages typically contain executable module files (DLLs), help files, and/or other ancilliary files.

Module

Within A module refers to an executable DLL file within a package you have modules that represent distinct parts of your package/product. If you require engine side functionality you will have a module that is loaded and runs in the WinGate engine process. If you need to present a user interface then you may also decide want to have a separate UI module that runs in the WinGate Management Console process. Each module shows up in the Modules panel of the WinGate Management Console and can be enabled or disabled by the administrator if the appropriate setting is in the manifest file for that module.

As an exampleTo expand on the example graph above, you may be providing a product called "Ultimate Monitoring System" that may consist of modules for:

  • Malware scanning of HTTP and email traffic by the WinGate engine.
  • Monitoring of chat protocols like MSN Messenger and Google Chat.
  • Global threat assessment that coalesces information from around the globe on a schedule to warn administrators of trending threats.
  • WinGate Management Console UI modules for all three of these that display information to the user on their results.

In this example you would have a total of 6 modules in your package.

Modules can be loaded either in the WinGate Engine process (system service on Windows), or in the WinGate Management Console process, or both.

Info

Anchor
EntryPointDescription
EntryPointDescription
Packages have at least one Module called the Entry Point DLL which is the module loaded by the host framework (either WinGate process and/or WinGate Management Console process) and initialised via the Mandatory module functions.

Info

Modules can have dependency files which are specified in the Manifest file. Specifying a dependency in a manifest file does several things:

  • It ensures the file is protected against tampering by placing a hash of the file inside the signed manifest file. If the hash in the manifest doesn't match the hash of the file on disk, the module won't load.
  • It controls whether a file is synchronised between the WinGate Engine and WinGate Management Console. See Package Synchronisation for more information.

Component

Within a module you have components which are sets of common functionality that you register with WinGate. Although in practice there is normally only one component registered for each module, a module can register more than one component if it wishes just like the Qbik Schema module which houses the components for both the engine and UI in one moduleany number of components.

Components in turn register interfaces.

Interface

One or more groups of functionality that your components register with WinGate via RegisterInterface, often to make it available for others to use. Using our "Ultimate Monitoring System" example, the Malware scanning engine component may decide to provide a couple of interfaces for client software to use.

...