Resources | Resources |



Components and modules


Brew MP is a component-based framework. Applications and services used by the applications are essentially various types of components. A component is a logical concept of one or more classes that are self-contained and allow for dynamic linkability and inter-changeability at the binary level.

If the implementation of a class has to be statically linked to other pieces of software outside of the class to perform certain functionality, that class itself does not qualify as a component. However, the class along with other pieces of software together can be built into a component if those pieces of software do not have other external static dependencies. In other words, software within a component can be tightly coupled and statically dependent on one another.


Brew MP modules are the fundamental unit of code loading. A module is a software distribution format, which includes the MOD file (the executable), the MIF, and any other optional resource files, such as a signature file. The MOD file is executable binary file that consists of one or more components compiled into a single image. The module is a single point of entry for the AEE shell to request classes owned by the module.

A module can contain other files in its module directory. These files can be part of the initial (install-time) state of the module or may be created after the module is installed.

Modules can be statically linked (LIB files), or stored in the file system (EFS) as dynamically loaded modules (see MOD, MOD1, DLL, and DLL1).

  • All dynamic modules are digitally signed. A SIG file provides a digital signature that verifies that the module is from a trusted source.
  • Dynamic modules are loaded into RAM when needed and unloaded when no longer in use.

APIs are exposed by modules as objects associated with interfaces and classes. Each module can contain implementations for one or more classes, and must have a corresponding MIF associated with it. The MIF contains information about the contents of the module, such as supported classes, supported applets, applet privileges, and applet details (such as the title and icon). The MIF also contains unique ClassIDs for each of the module's classes, and specifies which classes are exported for use by other modules. See the Resource File and Markup Reference and the Tools Reference in on the Brew MP website for details on creating new MIFs.