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.

6.4 Distribution 187<br />

force to take decisions in an early phase <strong>of</strong> the analysis process to prevent iterations that<br />

would definitely occur later otherwise. Most conventional design methods postpone<br />

the mapping <strong>of</strong> processes or objects into an architecture structure to an implementation<br />

phase that follows the specification phase. At that time designers may very well be confronted<br />

with need to change the structure <strong>of</strong> the analysis model because it is impossible<br />

to perform this mapping.<br />

A complex system may be decomposed into several forms <strong>of</strong> logical as well as physical<br />

distribution simultaneously. So there may be various layers <strong>of</strong> distribution structures,<br />

and there may be inter-dependencies. Each layer <strong>of</strong> distribution must be designed at the<br />

appropriate level <strong>of</strong> abstraction. In order to gather enough information to take a liable<br />

design decision for distribution we must have performed some preliminary refinement.<br />

At a specific level <strong>of</strong> abstraction, this refinement must be performed to one or two levels<br />

deeper, than the current level. This preliminary refinement is subsequently changed<br />

and made consistent with the distribution structure that was decided upon.<br />

The design <strong>of</strong> a distribution structure itself is influenced by a lot <strong>of</strong> issues. Distribution<br />

can enhance availability, reliability and performance. On the other hand distributed<br />

architectures produce design cost that is not present in non-distributed (unitary) systems.<br />

An example <strong>of</strong> an attempt to find the considerations and critical design issues for a<br />

class <strong>of</strong> distributed systems is published by Adler [Adl95]. The following issues are<br />

mentioned:<br />

locating programs and data resources distributed across the network;<br />

establishing and maintaining inter-program communication on the network;<br />

co-ordinating the execution <strong>of</strong> distributed applications;<br />

synchronising replicated programs or data to maintain a consistent state;<br />

detecting and recovering from failures in an orderly and predictable manner;<br />

securing resources by limiting remote access to authorised users.<br />

Another complicating factor is that distributed systems can be quite heterogeneous systems.<br />

This means that ’different processor types and different programming languages use<br />

different representations for the data they manipulate. In distributed systems we see that a<br />

message is sent from one process, written in one programming language and running on one<br />

processor type, to another, written in another language and running on another processor type,<br />

the contents <strong>of</strong> the message will not be understood unless there has been prior agreement on the<br />

representation <strong>of</strong> the data in the message’ [Mul93].<br />

We do not focus specifically on the design issues <strong>of</strong> distributed systems. However we<br />

wanted to show here that distribution is a non-trivial design problem. In the following<br />

subsections we present definitions, concepts and primitives to describe various aspects<br />

and sorts <strong>of</strong> distribution.

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

Saved successfully!

Ooh no, something went wrong!