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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

194 Modelling <strong>of</strong> Concurrent <strong>Reactive</strong> Behaviour<br />

can be specified once for that class even if the instances are scattered over distributed<br />

subsystems. The price for the relative independence and autonomy <strong>of</strong> a distributed<br />

subsystem is that sharing <strong>of</strong> code becomes expensive and inefficient. So, although from<br />

a specification point <strong>of</strong> view the behaviour <strong>of</strong> a collection <strong>of</strong> objects can be specified in<br />

one single class, this may not be feasible in a distributed implementation. Distribution<br />

considerations can force to make identical but separate classes for each module, because<br />

this is the only way to share the code <strong>of</strong> classes efficiently.<br />

6.4.7.2 Inheritance<br />

We consider inheritance as an implementation <strong>of</strong> a strategy to enable sharing <strong>of</strong> code.<br />

Inheritance is in fact a completely orthogonal concept for object-based methods. Inheritance<br />

is a problem in physically distributed systems. Instead <strong>of</strong> being a mechanism that<br />

realises sharing reasonable efficiently, it will become an inefficient mechanism that must<br />

collect shared information from remote places via a communication channel. A communication<br />

protocol on the channel may cause substantial overhead. Zondag [Zon90]<br />

refers to [Her90] where properties that make that inheritance conflicts with distribution<br />

are described. A treatment <strong>of</strong> this subject is beyond the scope <strong>of</strong> this thesis.<br />

6.4.7.3 Travelling Objects<br />

The concept <strong>of</strong> travelling objects that has been introduced in Subsection 4.4.5 has consequences<br />

in physically distributed systems. Where logically distributed systems consist<br />

<strong>of</strong> objects that can reach each other efficiently, this is more difficult for physically distributed<br />

systems. Travelling objects typically represent items that must be transformed<br />

at different places in the system. It is efficient when they can communicate as directly as<br />

possible with the objects that collaborate to perform the required transformations. However<br />

these collaborating objects may be dispersed over the distributed system. In this<br />

case they would like to share the object to be transformed. Travelling objects can be used<br />

typically to move objects in a distributed system from one subsystem to another. This<br />

solves the problem <strong>of</strong> inefficient communication over distribution boundaries. Notice<br />

however that the classes needed to create deep copies need to be locally available.<br />

6.4.7.4 Summary<br />

Various concepts that characterise distributed systems have been defined such that they<br />

support our method. The concepts <strong>of</strong> physical and logical distribution support system<br />

structure design. Clusters are used to denote modules <strong>of</strong> distribution. Physical distribution<br />

is specified by distribution boundaries on clusters. To what extent a system<br />

is distributed depends on the sort <strong>of</strong> links between entities. Distribution is related to<br />

communication, and more specific to name spaces <strong>of</strong> process object identifiers, and the<br />

use <strong>of</strong> channels. Weakly distributed modules communicate using object identifiers to<br />

determine the receiver <strong>of</strong> every messages. In contrast, strongly distributed modules<br />

communicate autistically via static links. Channels, message names and process object<br />

identifiers are used to specify either static or dynamic links between collaborating

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

Saved successfully!

Ooh no, something went wrong!