Symbian3/SDK/Source/GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
equal deleted inserted replaced
6:43e37759235e 7:51a74ef9ed63
       
     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>