A package is a set of components that perform related application functions and are grouped together inside MTS. A package can be either a library package or a server package.
The CML application uses packages to allow MTS to manage the CML components. CML components are independently functional, with two exceptions, the TableQueue and MTSEnvironment objects. The TableQueue object is only instantiated from the User and the Admin COM components. The MTSEnvironment object is only instantiated from the User, Admin, and Search COM components. One approach would be to combine the TableQueue and User objects into one package, the TableQueue and Admin objects into a second package, and the Search component into a third package. However, the CML developers decided to package the three components Admin, User, and Search into one MTS package, CML.pak, because it simplifies security and improves performance. See Installing the CML MTS Package for directions on configuring package properties.
Strictly speaking, it is not correct to describe the TableQueue and MTSEnvironment objects as being included in a package. MTS cannot see the TableQueue and MTSEnvironment objects because they are private objects. The TableQueue object is not explicitly added to the MTS package, but is available to the User and Admin components.
MTS uses roles to assign privileges to MTS packages. These roles are lists of Microsoft Windows NT® user groups and accounts that have access to a component. You can create roles, assign roles to packages, and map MTS roles to CML users and groups. Roles can also be mapped to individual components within a package. The CML application has defined two roles — Admin and User. Assigning MTS Roles describes how to create MTS roles.
All components in a package run together in the same MTS process. Because the MTS package CML.pak contains all components for the CML application, no marshaling is needed among components.