Server Guide

Dual module (base/dependent) packaging for OS/390

For OS/390, a dual load module configuration exists when a set of classes is packaged with a Smalltalk virtual machine to create a single load module that is intended to be used by other separately packaged Smalltalk applications. This chapter uses the following terms to describe the separate components of a dual load module configuration:

Base load module
A module consisting of portions of the Smalltalk virtual machine and a set of classes and methods that can be used by multiple Smalltalk application programs. A base module must be packaged before the dependent modules that plan to share it.

Dependent load module
A module consisting of a Smalltalk application that uses one or more classes or methods residing in a base load module. A dependent load module relies on the presence of a base load module to run.

For OS/390, only one dependent load module can use the classes of only one base load model at the same time. You can build several dependent load modules that share the classes of one base load module, but that base load module can only be used by one dependent load module at a time. Further, more than one base load module can exist across a set of applications in a given environment, though each dependent module can share the classes of only one base load module.

Tip icon
A change in the base requires a rebuild of all dependent modules. Place stable code in the base module.

The figure below illustrates the relationship among dependent and base load modules for MVS (or OS/390).
Relationship among dependent and base load modules for OS/390

By packaging a set of classes in a base load module that are common to multiple applications, you can realize some benefits:

Though the content of a base load module is completely determined by the needs of an installation, likely candidates include the Smalltalk Kernel and central feature classes such as the CICS, IMS, OS/390 Native, or DB2 access classes. Other candidates for the base load module are any classes that are determined to be common across a certain set of applications.

Arriving at the correct mix of shared and nonshared classes will generally require an understanding of the applications and will require evaluation and planning to determine an optimal configuration for a given installation's application environment.

Note that if a class exists in a base module, it cannot be extended with any of the following methods into a dependent module:

+ - < <= >
>= = ~= == //
\\ * / \ &
at: at:put: value value: not
new new: size value:value: class
between:and:



[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]