January 1999 CHAIMS1 Primitives in CPAM Pre-invocation: SETUP: set up a connection to a megamodule SET-, GETPARAM: preset / get parameters in a megamodule ESTIMATE: get cost estimation for optimization Invocation and result gathering: INVOKE: start a specific method EXAMINE: test status and progress of an invoked method EXTRACT: extract results from an invoked method TERMINATE: terminate a method invocation TERMINATEALL: terminate the connection to a megamodule Termination:
January 1999 CHAIMS2 Why... presetting of parameters? »avoiding redundancy »exploiting parallelism estimate? »choosing most economical service »scheduling based on run-time information (see parallelism / scheduling) splitting up invoke and extract? »faking asynchrony, easy parallelism (see parallelism) »partial extraction of results »extracting results from monitoring processes
January 1999 CHAIMS3 Partial Extract Extracting only some results –if not all results are ready yet ==> exploiting parallelism –only some results are needed at all ==> avoiding unnecessary data transfer Extracting preliminary result –if preliminary results are made available (e.g., by simulation servers) and can be used by megaprogram, e.g., for determining future actions ==> avoiding unnecessary waits of megaprogram or unnecessary work by server Partial extract goes together with EXAMINE.
January 1999 CHAIMS4 Example: parameters of method xz general default values client-specific settings for client A method xz, client A: invocation-specific settings client-specific settings for client B fromdest start- date end- date number 1JAN1998 6OCT19984OCT1998 7OCT19984OCT1998 LASBWI1 2 actual values used in invocation xz1 SJOZRH SFO 1 1 SJO6OCT19984OCT1998ZRH actual values used in invocation xz2 FRA 7OCT1998 9DEC19981DEC1998 9DEC19981DEC19982LASFRA actual values used in invocation xz1 method xz, client A: invocation-specific settings method xz, client B: invocation-specific settings Hierarchical Setting of Parameters
June 1998 CHAIMS5 Parameter Values Parameter values of megamodules are triples of: –descriptive name, ==> representation –type, ==> flexibility –value, where value is either a simple type or a list of other gentypes (i.e. a complex type). For transfer, these triples are ASN.1/BER encoded. Example: Person_Information Name of Person complex First Name string Joe Last Name string Smith Personal Data complex Address …. Date of Birthdate 13JUN1934 Soc.Sec.No string