1 <?xml version="1.0" encoding="UTF-8"?>
2 <section id="orte-internals">
3 <title>ORTE Implementation Issues</title>
6 ORTE is network middleware for distributed, real-time application development
7 that uses the real-time, publish-subscribe model. The middleware is available
8 for a variety of platforms including RTAI, RTLinux, Windows, and a several
9 versions of Unix. The compilation system is mainly based on autoconf.
13 ORTE is middleware composed of a database, and tasks.
14 On the top of ORTE architecture is application interface (API). By using API
15 users should write self application. The tasks perform all of the message
16 addressing serialization/deserialization, and transporting. The ORTE components
17 are shown in <xref linkend="cap:orte_internal_architecture"/>
19 <figure id="cap:orte_internal_architecture">
20 <title>ORTE Architecture
24 <imagedata align="center" fileref="&orte_internal_architecture_img;"
25 format="EPS" scale="35" srccredit="OCERA CTU 2004" />
32 The RTPS protocol defines two kinds of Applications:
38 <emphasis role="bold">Manager:</emphasis>
39 The manager is a special Application that helps applications automatically
40 discover each other on the Network.
45 <emphasis role="bold">ManagedApplication:</emphasis>
46 A ManagedApplication is an Application that is managed by one or more
47 Managers. Every ManagedApplication is managed by at least one Manager.
52 The manager is mostly designed like separate application. In RTPS architecture
53 is able to create application which contains manager and managedapplication, but
54 for easy managing is better split both. The ORTE contains a separate instance
55 of manager located in directory <filename>orte/manager</filename>.
58 <para>The manager is composed from five kinds of objects:</para>
62 <emphasis role="bold">WriterApplicationSelf:</emphasis>
63 through which the Manager provides information about its own parameters
64 to Managers on other nodes.
69 <emphasis role="bold">ReaderManagers:</emphasis>
70 CSTReader through which the
71 Manager obtains information on the state of all other Managers on the
77 <emphasis role="bold">ReaderApplications:</emphasis>
78 CSTReader which is used for the registration of local and remote
84 <emphasis role="bold">WriterManagers:</emphasis>
85 CSTWriter through which the Manager will send the
86 state of all Managers in the Network to all its managees.
91 <emphasis role="bold">WriterApplications:</emphasis>
92 CSTWriter through which the Manager will
93 send information about its managees to other Managers in the Network.
99 A Manager that discovers a new ManagedApplication
100 through its readerApplications must decide whether it must manage this
101 ManagedApplication or not. For this purpose, the attribute
102 managerKeyList of the Application is used. If one of the
103 ManagedApplication's keys (in the attribute managerKeyList) is equal
104 to one of the Manager's keys, the Manager accepts the Application as
105 a managee. If none of the keys are equal, the managed application is
106 ignored. At the end of this process all Managers have discovered their
107 managees and the ManagedApplications know all Managers in the Network.
110 <para>The managedApplication is composed from seven kinds of objects:</para>
114 <emphasis role="bold">WriterApplicationSelf:</emphasis>
115 a CSTWriter through which the ManagedApplication registers
116 itself with the local Manager.
121 <emphasis role="bold">ReaderApplications:</emphasis>
122 a CSTReader through which the ManagedApplication receives
123 information about another ManagedApplications in the network.
128 <emphasis role="bold">ReaderManagers:</emphasis>
129 a CSTReader through which the ManagedApplication receives
130 information about Managers.
135 <emphasis role="bold">WriterPublications:</emphasis>
136 CSTWriter through which the Manager will send the
137 state of all Managers in the Network to all its managees.
142 <emphasis role="bold">ReaderPublications:</emphasis>
143 a Reader through which the Publication receives information
149 <emphasis role="bold">WriterSubscriptions:</emphasis>
150 a Writer that provides information about Subscription to
156 <emphasis role="bold">ReaderSubscriptions:</emphasis>
157 a Reader that receives issues from one or more instances of
158 Publication, using the publish-subscribe service.
164 The ManagedApplication has a special CSTWriter writerApplicationSelf. The
165 Composite State (CS) of the ManagedApplication's writerApplicationSelf
166 object contains only one NetworkObject - the application itself. The
167 writerApplicationSelf of the ManagedApplication must be configured to
168 announce its presence repeatedly and does not request nor expect
172 The ManagedApplications now use the CST Protocol between the
173 writerApplications of the Managers and the readerApplications of the
174 ManagedApplications in order to discover other ManagedApplications in
175 the Network. Every ManagedApplication has two special CSTWriters,
176 writerPublications and writerSubscriptions, and two special CSTReaders,
177 readerPublications and readerSubscriptions.
180 Once ManagedApplications have discovered each other, they use the
181 standard CST protocol through these special CSTReaders and CSTWriter to
182 transfer the attributes of all Publications and Subscriptions in the
186 <para>The ORTE stores all data in local database per application. There isn't
187 central store where are data saved. If an application comes into communication,
188 than will be created local mirror of all applications parameters.
189 Parts of internal structures are shown in <xref linkend="cap:orte_attributes"/>.
191 <figure id="cap:orte_attributes">
192 <title>ORTE Internal Attributes
196 <imagedata align="center" fileref="&orte_attributes_img;"
197 format="EPS" scale="35" srccredit="OCERA CTU 2004" />
203 Following example shows communication between two nodes (N1, N2).
204 There are applications running on each node - MA1.2 on node
205 N1 and MA2.1, MA2.2 on node N2. Each node has it own manager (M1, M2). The
206 example shows, what's happen when a new application comes into communication
212 MA1.1 introduces itself to local manager M1
215 M1 sends back list of remote managers Mx and other local applications MA1.x
218 MA1.1 is introduced to all Mx by M1
221 All remote MAs are reported now to M1.1
224 MA1.1 is queried for self services (publishers and subscriberes) from others MAx.
227 MA1.1 asks for services to others MAx.
230 All MAs know information about others.
235 The corresponding publishers and subscribers with matching Topic
236 and Type are connected and starts their data communication.
239 <figure id="cap:orte_rtps_communication">
240 <title>RTPS Communication among Network Objects
244 <imagedata align="center" fileref="&orte_rtps_communication_img;"
245 format="EPS" scale="35" srccredit="OCERA CTU 2004" />