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.3 Communication 165<br />

channel-name ? message-name (parameters ¡ condition)<br />

The exclamation mark denotes the notion <strong>of</strong> <strong>of</strong>fering a message. The question mark<br />

denotes that the statement asks for a message. The channel name can replace the need to<br />

know the name <strong>of</strong> the object at the other side. The simple existence <strong>of</strong> a channel is enough<br />

to be able to communicate. (See Figure 6.2 POOSL rendezvous). The channel with name<br />

a connects a sender process and a receiver process. The sender’s behaviour description<br />

contains a message-send statement a!ready. The receiver’s description contains a?ready.<br />

The message ready is handed over on the moment that both POOSL statements can be<br />

executed simultaneously. It is possible to pass the name <strong>of</strong> a destination process as a<br />

Sender:<br />

a!ready<br />

a<br />

Receiver:<br />

a?ready<br />

Figure 6.2: POOSL Rendezvous<br />

parameter. In Section 6.4 about distribution, various aspects related to this subject are<br />

covered. The condition in the message-receive statement gives the expressive power<br />

to perform a conditional message reception. In this case the message is only received<br />

if the condition expression evaluates to true. The message-receive statement waits for<br />

execution if the condition expression evaluates to false.<br />

Notice that we did not redefine one way synchronous message passing. We use this<br />

concept consistently with the definition in Subsection 6.3.4. We showed how it can be<br />

expressed and used on channels. The next question is: how can we use this primitive to<br />

show and describe the various sorts <strong>of</strong> communication on channels? We <strong>of</strong>fer a collection<br />

<strong>of</strong> so-called message flow symbols for use in Message Flow Diagrams. The message flow<br />

symbols are presented in Figure 6.3. Each <strong>of</strong> the symbols represents a possible flow <strong>of</strong><br />

messages between process objects.<br />

6.3.6.1 Single Message Flow Symbol<br />

The single message flow symbol (see Figure 6.4) represents a very basic communication<br />

primitive, which is synchronous communication without reply. This basic primitive corresponds<br />

directly to one way synchronous message passing. Notice that without reply does<br />

not mean that the sender misses confirmation about the success <strong>of</strong> the message passing.<br />

The mere fact that the communication took place makes sure that the other party participated<br />

successfully. The information in the message may be substantial in the form<br />

<strong>of</strong> data (objects), or may be simply the arrival <strong>of</strong> the message with a particular message<br />

name without data.<br />

Data transport is modelled by denoting the class names <strong>of</strong> the data objects that contain

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

Saved successfully!

Ooh no, something went wrong!