Meta-Model

In the service agent oriented model, a software system is constructed from a set of services, which are written in a deployable compilation unit called caste. Such services (i.e. castes) are templates for the creation of runtime instances, which is called agents.

Agents are runtime instances of castes. They can be created dynamically in CAOPLE program code in a way like the creation of objects in object oriented programming languages. However, an agent can be put to run on a specified but dynamically determined machine in your cluster. They can also be terminated, suspended, resumed even change its casteship dynamically.

Agents are active in the sense that each agent has its own execution process.

Agents are autonomous in the sense the state variables of an agent cannot be modified by any other agents but itself. Here, a state variable is similar to a property of an object. It represents the state of the agent during execution.

Agents communicates with other agents through taking actions to generate events and observing other agents' actions. It is an event driven approach. It is also network transparent, i.e. the agents does not need to know the locations of other agents in the network. An agent can obtain the value of a state variable of another agent no matter where the observed agent is located in the network.

A state variable of an agent can be either visible so that its value can be observed by other agents, or internal so that other agents cannot observes its value.

An action of an agent can also be either visible so that the event generated by the action can be observed by other agents, or internal so that the event cannot be observed by other agents.