<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-4CE10DED-31B2-50B5-9D38-85CE86E8A8DE"><title>The Message Transport and Communication between Nodes</title><shortdesc>This topic introduces the Message Transport and the concept of communication between Nodes. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>Nodes communicate with other Nodes . Nodes normally use asynchronous communication, but <xref href="GUID-CF890168-0FCA-5BFD-AC86-E355B611A6B0.dita#GUID-CF890168-0FCA-5BFD-AC86-E355B611A6B0/GUID-0B0B61DE-AABC-5F87-8205-30F818F79C0A">Flow Nodes</xref> in the <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita">Data Plane</xref> use synchronous communication to communicate with other Flow Nodes. </p> <p>Nodes use messages and message queues to communicate asynchronously. Nodes use direct function calls to communicate synchronously. The <i>Node API</i> is the set of messages to which a Node responds. </p> <p>You can do operations on Nodes. The following list gives some of the features of an operation on a Node: </p> <ul><li id="GUID-78A11857-102C-50B9-B113-C4E4A0595B1F"><p>an operation is a sequence of messages sent to the Node. </p> </li> <li id="GUID-1CDF5638-EBD1-597D-9279-036A9C00463D"><p>a Node can run many operations at the same time </p> </li> <li id="GUID-85DC7B1F-5057-5626-9423-2A958A3A3BD8"><p>an operation can define if another operation can run on the Node at the same time. </p> </li> <li id="GUID-E4F9068A-229E-545C-930C-E6E6A329E291"><p>a Node can define the order that operations must occur. </p> </li> </ul> <p>A Node normally sends a message to second Node and expects a reply from the second Node. The first Node stops the operation until the first Node receives the reply. Some messages do not require a reply. For example, a message that signals that a Node must destroy itself does not require a reply. </p> <section id="GUID-F458E2D5-CF07-5D0C-A6C6-D9BA6DE9C999"><title>The Message Transport</title> <p>The Message Transport is the framework that allows messages to pass between Nodes. </p> <p>The Message Transport has the following features: </p> <ul><li id="GUID-D372317C-4148-5A95-B167-5E62B6E84A76"><p>the Message Transport guarantees the delivery of messages </p> </li> <li id="GUID-CF6A25C4-4BE1-5DCC-AE48-26A5F20CB171"><p>the design of the addressing system allows the Message Transport to deliver messages to any Node in the Communications Stack. </p> </li> <li id="GUID-B3B6913B-C820-5AF0-ACD4-1E7806BB4CD2"><p>the Message Transport can deliver messages across thread and process boundaries </p> </li> </ul> <p>The Message Transport must register Nodes before the Transport can deliver messages. When the Communications Framework creates the Nodes, the Framework registers the Nodes automatically with the Message Transport. </p> </section> <section id="GUID-5FD7F4BD-25F2-52ED-B742-34B88A1E1AA1"><title> Messages</title> <p>A <i>Message</i> is the data that passes asynchronously between nodes in the Communications Framework. The Communications Framework uses the class <xref href="GUID-AB865663-57C4-3DEC-8468-5EA504E99D4D.dita"><apiname>TCFSignalBase</apiname></xref> to represent a message. </p> </section> </conbody><related-links><link href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita"><linktext>Planes</linktext> </link> </related-links></concept>