Information Technology Reference
In-Depth Information
first turned on and afterwards the dim value is set to 0.5. But, this sequence of
actions can only be constructed knowing the internals of the lamp, namely that it
must be switched on before dimming. As shown below, our system allows to specify
the goal state as: (dimValue Lamp3 0.5) This will result in exactly the same
sequence of actions, but this time, not the caller, but the lamp, needs to know
its internals. To abstract things further, we can also specify goals with respect to
properties of the environment: (luminosity stage 0.5) In this example stage
is an abstract location and the goal is forwarded to all objects at the stage .
Different types of goals are discussed in the literature. In [9], for example, the
authors distinguish three types of goals: achieve, maintain and perform goals.
An achieve goal is used to ask for a certain state, that is in our case to ask an
object to achieve the given internal state. Maintain goals indicate the desire to
keep the state, either for a given period of time, or until cancellation. Perform
goals are used to indicate the request to perform a given sequence of actions.
As discussed below, other types of goals are needed as well. In particular
while asking for optimised results. Therefore, we propose to extend the list of
types to include minimise , maximise and repeat goals. Minimise and maximise
goals are used to ask the object to optimise a given value function, mapping the
internal state to some real value. Repeat goals ask the object to repeat a given
goal in a given frequency. Before discussing a larger example, we describe the
agentification of objects using our deployment system.
3.3 Agentification of Objects
After describing the conceptual ingredients of our approach in the previous sec-
tions, we discuss now the agentification of objects. We are currently working
on an implementation of the proposed ideas, which already covers most of the
aspects presented below. As argued above, most agent-specific functionality is
embedded into the deployment system, not in the published objects. This al-
lows to use existing legacy code without modification and to connect different
components in a very flexible manner.
Object Creation and Initialisation. An object is created using some unique
id and a specification of the object. For this, we rely on our middleware described
in [1], which allows to create arbitrary Java objects using a simple format based
on S-Expressions [18]. In addition to the creation of the object, we allow to
annotate it with positions and additional properties, like a human readable name.
Publication of the Object. After creating the object, it is published using
different options. Currently, we support the publication via publish/subscribe,
plain sockets and http. The publish/subscribe system ensures that all events
generated by the object are distributed to all interested subscribers. Such events
are used to trigger reactions and to update the internal state of the object.
The socket and HTTP-interface allow the invocation of methods as well as the
specification of goals for the published object. In addition, all published objects
are registered with a lookup-system allowing to locate objects in the network.
Search WWH ::




Custom Search