OverviewOverview
A high level overview of modules
Home > Books > Solutions Developer Guide > Modules > Overview

Rate this page:
Really useful
Satisfactory
Not helpful
Confusing
Incorrect
Unsure
Extra comments:


Module Overview

Modules are physical containers. When brought into memory and commissioned, they create a private logical address space which can be populated with resources and services. Modules also contain physical level components such as Java classes, script code, files, images, etc. Physical level components are not automatically made a part of the private address space, they must be explicitly mapped into the private logical address space in the module's definition file.

A module's private address space is empty until the module's definition file populates it with entries (resource mappings, service definitions, imports of other modules, etc.).

Java class resources are loaded into memory with the module's own custom classloader. Java classes are not a part of the private address space, they reside within the classloader and may be mapped to a logical resource or service, or exported as a pure Java class by the module's export definitions.

Physical resources are made available to the logical level through the ffcpl: scheme, which is implemented by the virtual file system accessor. Resource requests may be one of three types:

  • External - requests arrive through the module's exported public address space.
  • Internal - requests are internally generated sub-requests.
  • Root - requests delivered from a transport registered in the module.

External Requests

External requests originate from an importing module and are routed into an imported module if they match the export declaration. Once a request is routed to a module, it passes through a rewrite section before it is sent to the interior private address space.

Internal Requests

Requests may be issued by code running in the private address space. These are generally called sub-requests and are directed back to the private address space defined by the mapping section. The mapping section defines entries that are used to match a requests URI address. It may direct the search into an imported module or delegate the search to the super-stack.

Root Requests

Transports may be registered with a module. Requests injected by a transport are called root requests are directed to the private address space for processing. Modules that host transports are called fulcrum modules.

© 2003-2007, 1060 Research Limited. 1060 registered trademark, NetKernel trademark of 1060 Research Limited.