23.08.2013 Views

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.8 Properties <strong>of</strong> Composites 93<br />

When a whole needs the services <strong>of</strong> a part, to perform a task <strong>of</strong> the composite, the whole<br />

is dependent <strong>of</strong> the part. This does not imply that a part needs to return a reply to a<br />

whole. A whole can be dependent because a task is delegated to a part, even when the<br />

part performs its tasks autonomously. An autonomous object can perform actions and<br />

take initiative for communication on its own when it needs the service <strong>of</strong> another object.<br />

An entity is independent <strong>of</strong> another entity if it does not need a service <strong>of</strong> the latter entity.<br />

However, other entities can send requests to an independent entity. The others are<br />

then dependent <strong>of</strong> the independent entity. This independent entity may return a result.<br />

Notice that sending a result is not considered to be a request for a service. So, the sending<br />

<strong>of</strong> a result does not make an entity dependent.<br />

The parts <strong>of</strong> a composite that are processes are in principle autonomous entities. In<br />

general, we may expect that a whole needs its parts. A whole is dependent <strong>of</strong> its parts.<br />

Parts, however, may be independent. Parts may or may not be autonomous entities.<br />

This difference leads to interesting types <strong>of</strong> composites that we can distinguish.<br />

Parts can be designed such that they either take initiative or not. We call a part whole<br />

dominated when it does not take initiative for communication with the whole without an<br />

explicit request <strong>of</strong> a whole. So the part may solely give replies as a response on a request,<br />

and not send other messages on its own initiative. Whole dominated parts respond to<br />

commands which may not require an answer, or produce answers on explicit request.<br />

Such parts are passive unless activated by a message from a whole. An example <strong>of</strong> a part<br />

that is whole dominated is a passive part that has a whole with subordinate temporal<br />

visibility. Such a part can only give answers on an explicit request <strong>of</strong> this whole.<br />

Based on this approach we redefine Civello’s [Civ93] concepts <strong>of</strong> whole independence,<br />

<strong>of</strong> peer independence and <strong>of</strong> separate part. We define a part <strong>of</strong> a whole to be whole<br />

independent when it is independent <strong>of</strong> the whole. A whole independent part can be<br />

either whole dominated or autonomous. An autonomous whole independent object is<br />

an active object that determines by itself what incoming requests will be serviced and<br />

when this will happen.<br />

We call a part peer independent when it is independent <strong>of</strong> other parts. We define a separate<br />

part as a part that is both whole-independent and peer-independent.<br />

4.8.5 Sharing<br />

Civello defines the concept <strong>of</strong> sharing based on the concept <strong>of</strong> reference. ’An object<br />

is shared if two or more objects hold references to it’ [Civ93]. We define sharing based on<br />

communication as follows. Two or more disjoint entities (objects, clusters or composites)<br />

share another entity when each <strong>of</strong> them is dependent <strong>of</strong> that entity. The dependent entities<br />

all need the services <strong>of</strong> the shared entity. Having a reference to an object (temporarily)<br />

is not enough to describe sharing in our point <strong>of</strong> view. It does not necessarily mean that<br />

a service is needed from that object. Also one does not require a reference to an object<br />

to share this object.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!