The Meta-Environment API

Package toolbus

This package implements the ToolBus coordination architecture.

See:
          Description

Interface Summary
IOperations This interface holds all the operation codes that are used to identify the request / response types.
StateElement The interface StateElement captures all operations that can be performed on an element of a State.
 

Class Summary
AbstractTBTerm  
AtomList  
DirectConnectionHandler  
FunctionDescriptor  
Functions  
Main  
PropertyManager  
SocketConnectionHandler This class handles the establishing and closing of all TCP/IP connections.
State class State represents one state in the state diagram of a process.
TBTermFactory  
TBTermFactory.InstanceKeeper  
TBTermVar  
ToolBus ToolBus implements the behaviour of one ToolBus.
ToolBus.ProcessInstanceIterator Custom iterator class.
ToolInstanceManager This class manages all the tool instances.
 

Package toolbus Description

This package implements the ToolBus coordination architecture. The ToolBus is a coordination architecture that supervises the cooperation of a number of tools (software components). The tools may be implemented in a variety of programming languages and may run on different computers. Truly heterogeneous, distributed, applications can thus be implemented. The ToolBus is based on two essential concepts: Tscripts and ATerms.

Tscripts are the scripting language used to describe the coordination of the various tools. It has the following characteristics:

  • a concurrent language with a solid theoretical foundation: the Algebra of Cooperating Processes (ACP).
  • primitives for process creation, synchronous and asynchronous messaging.
  • primitives for starting, terminating external tools and for communicting with them.
  • strongly typed.
  • automatic generation of tool interfaces.
  • ATerms (for Annotated Terms) are a language-independent data exchange format for hierarchically structured data. Key features:

  • ATerms can represent directed, acyclic, graphs and support maximal subterm sharing. This means that common substructures are always shared and memory is preserved.
  • ATerms may contain annotations that are also ATerms. In this way, tools can attach specific information to ATerms, such as source code location, highlighting and coloring, dataflow, etc.
  • ATerms have been implemented for C, Java, Perl, Python and other languages.

  • The Meta-Environment API