CHAIMS: An acronym for Compiling High-level Access Interfaces
for Multi-site Software. Main components are CLAM and CPAM, and the infrastructure
supporting it (CHAIMS compiler, wrapper templates, repository).
CHAIMS Compliant: A megamodule or megaprogram that
correctly implements the CHAIMS protocol.
CHAIMS Complier: Builds a megaprogram client stub. See
CHAIMS Language: The programming language used to write CHAIMS
clients. Consists of several key primitives: setup, setparam, getparam,
estimate, invoke, examine, extract, and terminate, plus two shortcut primitives:
invex (for invoke-extract) and exwdone (for extract-when-done).
CHAIMS Protocol: The interfaces between the compiled megaprogram (client) and the megamodules (services) including the primitive statements. There exists a slightly different CHAIMS protocol for each distribution system like CORBA, RMI or DCE.
CLAM: Acronym for: Composition Language for Autonomous Megamodules.
See CHAIMS Language.
ClientID: A system maintained data structure used to uniquely
identify a megaprogram as a client. The clientID is part of the
CHAIMS protocol and is needed by the megamodules.
Composer: synonym to megaprogrammer.
CPAM: Acronym for: CHAIMS Protocols for Automonous Megamodules. See CHAIMS Protocol.
CSRT: An acronym for Client Side Run Time. The executable client
consisting of the compiled megaprogram plus all necessary stubs.
Getparam: One of the CHAIMS language primitives used to
get default values of methods' input parameters within a megamodule
as well as of global variables of a megamodule.
Estimate: One of the CHAIMS language primitives used to
establish performance characteristics of a megamodule's method
Examine: One of the CHAIMS language primitives used to
query the status of availability of potential results from a megamodule's
Extract: One of the CHAIMS language primitives used to
obtain results from a megamodule's method execution.
Exwdone: For Extract-when-done. One of the CHAIMS language primitive shotcuts used to obtain results from a megamodule's method execution in case the results are necessary to go further in the sequence of methods' invocations in the megaprogram (avoids the wait loop to examine if results are ready before extracting them).
Helper Modules: Helper modules are megamodules that offer basic functions like general input/output or simple arithmetic over basic CHAIMS types. Helper modules are part of the CHAIMS system. Some of them are implemented as local megamodules.
Invocation Handle: A system maintained data structure used to
uniquely identify an invocation (within a megamodule). The megaprogram
uses invocation handles, the CHAIMS protocol and the wrappers use callID's.
The invocation handles of the megaprogram are mapped into callID's by the
Invocation: Thread of execution generated by a method
Invoke: One of the CHAIMS language primitives used to
initiate remote execution of a megamodule's method.
Invex: For Invoke-Extract. One of the CHAIMS
language primitive shotcuts used to initiate remote execution of a
megamodule's method and get back the results. Used to synchronously
get the results in case they are needed at the method's invocation
Local Megamodules: Most megamodules in CHAIMS are distributed
and autonomous. Certain megamodules (e.g. some helper modules) can be local
to the megaprogram. They are accessed by one of the local CHAIMS protocols,
and, in contrast to distributed megamodules, there exists one instance
of a local megamodule for each instance of a megaprogram. Helper modules
often are but do not have to be local megamodules.
Megaprogram: A client program written in the CHAIMS language.
Megaprogrammer: A programmer that writes megaprograms.
Synonym to composer.
Megaprogramming: What a megaprogrammer does.
Megamodule: A service on a server that understands the CHAIMS
Megamodule Handle: A system maintained data structure used to
uniquly identify a megamodule. Used in the megaprogram.
Method: One available service for a megamodule.
Module: See megamodule.
Opaque Data: Data generated and consumed by megamodule
services but not visible to the megaprogram client. Encoded using
Primitive Statement: One of the following statements: setup,
setparam, getparam, estimate, invoke, examine, extract, terminate, invex,
and exwdone. See CHAIMS Language.
Repository: Logical database where meta information about megamodules
is located. The repository is filled by the megamodule providers, and is
read by the megaprogrammer as well as by the CHAIMS compiler. So far, the
repository is a mere text file.
Scheduler: A model free optimizer that uses the estimate primitive
to establish execution order.
Setparam: One of the CHAIMS language primitives used to
define global variables of a megamodule or any of its methods'
Setup: One of the CHAIMS language primitives used to establish
connection between a megaprogram and a megamodule as a thread
Terminate: One of the CHAIMS language primitives used
to end the execution of a particular invocation of a megamodule,
or of all invocations within a megamodule along with the connection to
Wrappers: A technique to bring a non-CHAIMS service into a CHAIMS
10/30/98 db: changing definition for helper modules. Old definition: Helper modules are megamodules that offer basic functions like input/output or arithmetic. Certain helper modules (e.g. the general I/O-megamodule) are part of the CHAIMS system.