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.

6.4 Distribution 191<br />

links to each other. They are in the same name space. Objects in X cannot know objects<br />

in Y and vice versa. As a result they cannot collaborate using identifiers <strong>of</strong> objects from<br />

the other name space.<br />

Wegner [Weg90] describes an approach that differs from our approach. A module in<br />

a strongly distributed system knows only the names <strong>of</strong> its own communication ports.<br />

’The names <strong>of</strong> modules with which it communicates, are stored as data in its own communication<br />

ports, and may be viewed as pointers to ports <strong>of</strong> other modules that cannot be dereferenced to<br />

determine the name <strong>of</strong> non-local ports’.<br />

We <strong>of</strong>fer channels that connect objects. Channels can enable communication purely by<br />

their existence. A static link is enough to communicate with an unknown process object.<br />

It is enough that an object knows what services can be provided by what message to the<br />

objects on the other side <strong>of</strong> the channel. It is not necessary to know who <strong>of</strong>fers them.<br />

Figure 6.16 shows objects that know each other within a distribution boundary. The<br />

channel forms a connection surpassing the distribution boundaries. B in module X can<br />

communicate with A in module Y over the channel solely by message passing without<br />

using object identifiers. Notice that we even used the same identifiers A and B in both X<br />

and Y. This is allowed since the name spaces are separated by distribution boundaries.<br />

6.4.4.3 Relation with other Concepts<br />

It is interesting to relate weak and strong distribution to the concepts <strong>of</strong> physical distribution,<br />

clusters, abstraction and aggregate. Physical distribution is an orthogonal<br />

concept. Physical distribution specifies an independence between modules. Strong<br />

distribution adds another notion <strong>of</strong> independence. Depending on the implementation<br />

technology a strongly distributed approach may be suitable to realise an adequate model<br />

for a physically distributed system. In practice awareness about these aspects helps in<br />

selecting the proper communication constructs.<br />

We can impose a restriction on the knowledge (name space) <strong>of</strong> a group <strong>of</strong> objects when<br />

we cluster them into an aggregate. Recall that an aggregate is a composite whose<br />

communication with the outside is performed by one representative aggregate object. So<br />

the objects, that are outside the cluster do not know the identifiers <strong>of</strong> the part objects. This<br />

does however not make the cluster a part <strong>of</strong> a strongly distributed structure. The cluster<br />

can still communicate with the use <strong>of</strong> object identifiers. Strong distribution requires that<br />

the cluster communicates autistically.<br />

An aggregate is an abstraction boundary which specifies hiding. A cluster that is not<br />

an aggregate does not serve as an abstraction boundary. A cluster then represents the<br />

weakest form <strong>of</strong> clustering <strong>of</strong> objects in terms <strong>of</strong> a so-called domain boundary. This is<br />

independent <strong>of</strong> the decision to make the cluster strongly distributed from the rest <strong>of</strong> the<br />

system.<br />

The concepts <strong>of</strong> weak distribution and strong distribution appeared to be related to the<br />

concepts <strong>of</strong> static links and dynamic links. Strongly distributed communication uses

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

Saved successfully!

Ooh no, something went wrong!