|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-F43A54C0-E82B-5790-8493-1372D214C642" xml:lang="en"><title>What |
|
13 are Planes</title><shortdesc>This topic describes the concept of a <i>Plane</i> in the Communications |
|
14 Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
15 <p>The transmission of data and the management of connections is divided into |
|
16 separate operations. Symbian platform gives the name <i>Plane</i> to |
|
17 these operations. The Communications Framework defines three Planes. Each |
|
18 Plane has a separate role and a separate responsibility. Each Plane matches |
|
19 a Sockets Server API. </p> |
|
20 <p>The Planes are called: the Data Plane, the Control Plane and the Management |
|
21 Plane. </p> |
|
22 <p>Layers span all three Planes. Code in each Plane operates together to deliver |
|
23 the required Communications protocol behaviour. </p> |
|
24 <p>A connection can have a number of subconnections. Subconnections can be |
|
25 called channels. The concepts of connection and subconnection make it useful |
|
26 to divide the Control Plane into two parts. The following diagram shows the |
|
27 concept. The blue arrows indicate dependencies. The vertical dotted lines |
|
28 indicate the division of Planes. </p> |
|
29 <fig id="GUID-258000D9-1BC3-5A61-8235-4183D4A759C5"> |
|
30 <title> Planes in the Communications Framework </title> |
|
31 <image href="GUID-3D8FE2A7-E544-51B9-9572-492A3B61377C_d0e83043_href.png" placement="inline"/> |
|
32 </fig> |
|
33 <p>The following diagram overlays the Planes with an example series of Layers </p> |
|
34 <fig id="GUID-1758E53D-2A62-5C4C-93B9-8FE5DE67BBAA"> |
|
35 <title> Planes and Layers in the Communications Framework |
|
36 </title> |
|
37 <image href="GUID-47EF98E9-7833-5E94-ADFF-198401463A8C_d0e83054_href.png" placement="inline"/> |
|
38 </fig> |
|
39 <ul> |
|
40 <li id="GUID-45F19CFA-9B96-53B3-9B15-428BB3226BAA"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref> </p> </li> |
|
41 <li id="GUID-461678D6-3198-55CF-B07E-94F5E1086BAC"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control Plane</xref> </p> </li> |
|
42 <li id="GUID-6B98DEAB-F245-5533-A05A-957FADE0C120"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management Plane</xref> </p> </li> |
|
43 </ul> |
|
44 <section id="GUID-E8250BBE-8529-5C45-BCA3-92A87C013580"><title>Data Plane</title> <p>The |
|
45 Data Plane carries data and uses Communications protocols. The Data Plane |
|
46 handles conversations with remote peers.The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control |
|
47 Plane</xref> and the <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management |
|
48 Plane</xref> exist to serve the Data Plane. </p> <p>The Data Plane exists |
|
49 to minimise interruptions to the flow of data. The Data Plane assigns the |
|
50 response to interruptions to the Control Plane. Interruptions include: the |
|
51 start of a new network connection, the management of a timeout and the management |
|
52 of changes to the status of the network. </p> <p>To make sure that interruptions |
|
53 cannot interfere with the Data Plane, a thread divide exists between the Data |
|
54 Plane and the Control/Management Planes. The thread division allows the Communications |
|
55 Framework to give the Data Plane thread a higher priority than the Control |
|
56 and Management Plane thread. The difference in thread priorities allows the |
|
57 Communications Framework to give the task of data transfer the highest priority. </p> <p>The |
|
58 Communications Framework provides a mechanism to send messages between the |
|
59 threads. The mechanism is called the <xref href="GUID-4CE10DED-31B2-50B5-9D38-85CE86E8A8DE.dita">Message |
|
60 Transport</xref>. The Transport sends and delivers the messages asynchronously. |
|
61 Threads can continue their work until the threads are prepared to process |
|
62 messages. The Transport always makes sure of the delivery of messages. </p> <p>The |
|
63 Data Plane corresponds to the Sockets Server API: <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>. </p> <p>The |
|
64 following diagram shows the thread divide. </p> <fig id="GUID-A440C4F8-199E-575A-9922-D90059CA69C3"> |
|
65 <title> Data Plane in the Communications Framework </title> |
|
66 <image href="GUID-337FA49D-DE53-5568-9A5C-D6AE3F25E0A6_d0e83124_href.png" placement="inline"/> |
|
67 </fig> <p><b>Features </b> </p> <p>The Data Plane: </p> <ul> |
|
68 <li id="GUID-70DDF365-81B9-5D30-BEA1-B338074CF097"><p>exchanges data with |
|
69 remote peers and uses data transfer protocols </p> </li> |
|
70 <li id="GUID-E8A426F5-98AD-5BFA-9D8C-820B1656140C"><p>allows any number of |
|
71 conversations at the same time through many protocols </p> </li> |
|
72 <li id="GUID-6748E1E2-5FF3-52BC-9FC7-6759F52B59D2"><p>enables the transfer |
|
73 of data to clients of the protocol stack and from clients of the protocol |
|
74 stack </p> </li> |
|
75 <li id="GUID-1073D70B-80FA-55E7-96E9-C9B51A701BC4"><p>enables the transfer |
|
76 of data to hardware and from hardware </p> </li> |
|
77 </ul> </section> |
|
78 <section id="GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5"><title>Control Plane</title> <p>The |
|
79 Control Plane establishes, maintains and modifies the traffic, or conversations |
|
80 in the Data Plane. Specifically, the Control Pane establishes, controls, re-binds |
|
81 and tears down the Communications protocol stack based on commands from the |
|
82 application and from the Management Plane. </p> <p>The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref> sends the status of the link and other control information |
|
83 to the Control Plane. The Control Plane processes the status of the link and |
|
84 other control information, and allows the Data Plane to give the task of data |
|
85 transfer the highest priority. </p> <p>A connection can have a number of subconnections. |
|
86 Subconnections can be called channels. The concepts of connection and subconnection |
|
87 make it useful to divide the Control Plane into two parts. </p> <p>The Data |
|
88 Plane corresponds to the Sockets Server APIs: <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. </p> <p><b>Features </b> </p> <p>The Control Plane: </p> <ul> |
|
89 <li id="GUID-EE232AB1-E916-54AB-B658-19B1A3F62B7C"><p>creates the Data Plane </p> </li> |
|
90 <li id="GUID-F5E545D5-7954-5F20-B8A4-4C9B7F4B06CC"><p>configures the Data |
|
91 Plane modules from information provided by the client application or the Management |
|
92 Plane </p> </li> |
|
93 <li id="GUID-3C4FF301-30D7-5064-BD45-5A05C962E1DE"><p>starts the Data Plane </p> </li> |
|
94 <li id="GUID-BB2A8489-38D7-5D0B-A272-0C04DDE9B2FF"><p>controls and monitors |
|
95 the Data Plane: </p> <ul> |
|
96 <li id="GUID-7D7E7B38-34C4-53F6-A545-774DEEE07403"><p>acts on information |
|
97 received from the data protocols </p> </li> |
|
98 <li id="GUID-805AE125-F139-5E65-9912-DCA92926F1EF"><p>notifies the Management |
|
99 Plane or the client application about changes to the state of the Control |
|
100 Plane or the Data Plane. </p> </li> |
|
101 </ul> </li> |
|
102 <li id="GUID-ACDF9227-7286-5092-AF85-503BA30A2B45"><p>stops the Data Plane </p> </li> |
|
103 <li id="GUID-54C50C8C-4CFB-5C02-89CE-754EF2F858E2"><p>destroys the Data Plane </p> </li> |
|
104 <li id="GUID-8FC8ED8A-71DA-546A-8548-D6979B0F8CD7"><p>manages connection session |
|
105 timers </p> </li> |
|
106 <li id="GUID-C316844B-3046-599E-967C-085D79F9DA01"><p>manages connection data |
|
107 channels and their properties </p> </li> |
|
108 <li id="GUID-7CF74684-F4C8-54FC-9BA0-EA68D081E5AF"><p>handles changes to the |
|
109 status of the network and handles error reports </p> </li> |
|
110 </ul> </section> |
|
111 <section id="GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442"><title>Management |
|
112 Plane</title> <p>The Management Plane maintains the configuration of the device, |
|
113 monitors the availability of the network and makes policy decisions for the |
|
114 Communications Framework. The Management Plane is the main location where |
|
115 phone creators can customise the behaviour of the Communications protocol |
|
116 stack. </p> <p>The Management Plane corresponds to the Sockets Server API: <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref> </p> <p><b>Features </b> </p> <p>The Management Plane: </p> <ul> |
|
117 <li id="GUID-3FB67172-7DC3-5621-AADB-02AE601D4EAF"><p>selects, constructs |
|
118 and manages the Communications protocol stack: </p> <ul> |
|
119 <li id="GUID-003EFE03-849E-5168-AAC3-8CFB6E07436C"><p>selects the correct |
|
120 protocol stack for a connection based on client and configuration preferences </p> </li> |
|
121 <li id="GUID-2E1CBE6C-2CCE-51E7-AE9C-F4EFAC0A426B"><p>manages the Control |
|
122 Plane connections based on the policy set either in the configuration or at |
|
123 run-time. </p> </li> |
|
124 </ul> </li> |
|
125 <li id="GUID-DA0FE037-69DB-586D-8809-C4D5A8D22C67"><p>notifies interested |
|
126 clients about the state of the Communications protocol stack, for example, |
|
127 bearer and service availability </p> </li> |
|
128 <li id="GUID-3B36F963-CCF5-5E75-9486-04CBEF27DFC1"><p>provides an entry point |
|
129 for third-party plugins to customise and control the Communications protocol |
|
130 stack </p> </li> |
|
131 <li id="GUID-D7A39FA9-1C88-5E8E-A566-E030971CCF0A"><p>controls the Communications |
|
132 protocol stack. This control is based on policy decisions </p> </li> |
|
133 <li id="GUID-8BBADB62-AB50-5B9D-B0E8-9546488E12DD"><p>communicates with the |
|
134 Control Plane to influence the behaviour of Control or Data flow operations |
|
135 in the Communications protocol stack </p> </li> |
|
136 <li id="GUID-86CAD544-2B60-5713-B8C1-1FB14806FC31"><p>supplies configuration |
|
137 information to the Layer. </p> </li> |
|
138 </ul> </section> |
|
139 </conbody><related-links> |
|
140 <link href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita"><linktext>Socket Server</linktext> |
|
141 </link> |
|
142 </related-links></concept> |