Logo 

C H A I M S: Compiling High-level Access Interfaces for Multi-site Software

Towards the Science of Component Engineering 
Logo 

CHAIMS compliant megamodules

A megamodule that is fully CHAIMS_compliant must fulfill all of the following requirements:
  1. CHAIMS protocol:

  2. It must know and react properly to all the CHAIMS primitives of the used protocol. Not all primitives are equally relevant for each megamodule. Yet all primitives must be implemented in the megamodule and produce decent results, e.g.: The actual type of the parameters and the way how they are packaged of course differ between the various CHAIMS protocols (e.g. a gentype is packaged differently in the RMI protocol than in the CORBA protocol).
     
     
  3. State management and asynchrony:

  4. In the CHAIMS protocol the traditional CALL statement has been split up into several primitives. For the megamodule this has the following consequences:  
  5. Data transformation:

  6. Many of the parameters in the CHAIMS protocol are of type blob (i.e. a bytestream that contains a BER-encoded Gentype). There exist routines for en-/decoding a blob into a Java or C++ Gentype. Yet the marshalling of this Gentype into the type required by a specific method of the megamodule must be coded manually, even when using the wrapper templates.
 

A megamodule that does not fulfill all of these requirements is not fully CHAIMS compliant. Partial compliancy can be tolerated for certain megamodules in CHAIMS prototypes (e.g. when we know exactly that we will never ever perform a certain call in a specific demo), but it should never be confused with full CHAIMS compliancy. A partial CHAIMS compliant megamodule cannot be used outside of a specific demo setting, because CHAIMS does not allow to put additional restrictions not given by the CHAIMS protocol on the usage of a megamodule.


Logo Back to the CHAIMS homepage
6/5/98/db