Connection Manager Architecture (Windows Embedded CE 6.0)

1/6/2010

In the Connection Manager architecture, an application informs Connection Manager of the destination network type it wants to use for a connection. Then, in a manner transparent to the application, Connection Manager quickly chooses the optimal connection for the network type requested.

Architecture Overview

The following illustration shows the Connection Manager architecture.

Connection Manager for Windows Embedded CE 6.0 R3

The Connection Manager architecture illustration consists of the following main parts:

  • Applications that request a connection.
  • The following Connection Manager components:
    • ConnMgr.exe, which interacts with the applications requesting network connections. ConnMgr.exe maintains a list of all connection requests, connection priorities, and configuration information.
    • The Connection Planner component, ConnPlan.dll, which calculates the best connection path to take for all the connection requests.
    • The RAS connection service provider component, CSPRas.dll, which implements support for RAS connections over, Point-to-Point Protocol (PPP) by using Bluetooth Dial-up Networking (DUN) data calls and GPRS data connections using a built-in GSM radio.
    • The Bluetooth connection service provider, CSPBTVoice.dll, which implements support for managing Bluetooth connections.
    • The Net connection service provider, CSPNet.dll, which implements support for ActiveSync Desktop Pass-through (DTPT) connections and Wireless LAN (WLAN) connections.
  • Networking layer.
  • Device driver layer.

Connection Manager can handle various connection types, and each connection type is assigned a security level.

To choose a connection directly instead of requesting that Connection Manager choose the connection, an application can use the ConnMgrMapConRef function.

Connection Manager Overview

The ConnMgr.exe Connection Manager component interacts with multiple applications on a Windows Embedded CE powered device to schedule and manage network connections. ConnMgr.exe also maintains a list of all connection requests, connection priorities, and the Connection Manager configuration service providers that are available.

When an application requests a connection from Connection Manager, Connection Manager first determines the end-to-end paths from the device to the target network, such as the Internet. Connection Manager finds the paths by retrieving a list of all possible connections from the Connection Manager configuration service providers, and by finding all the paths from the device to the target network.

Next, Connection Manager uses Connection Planner to determine the best connection to the target network. Connection Planner determines which connection requests should be connected at a specific time and which paths those requests should use to connect to their destinations.

When Connection Planner has determined the optimal connection and establishes it, Connection Manager schedules this connection, also considering other scheduled connections and their priorities and security levels. In this way, multiple applications can use the same connection on an interval basis instead of establishing separate connections, which reduces the number of redundant connections.

For example, without this optimization, if five applications request a connection to the same network at an interval of every half hour, the Connection Manager might create as many as 10 connections to the same location every hour. With this optimization, the Connection Manager tries to schedule the connections so that only two actual connections are needed per hour.

When a network connection enters an idle state for a specified period, Connection Manager automatically disconnects the connection. This mechanism frees applications from having to handle low-level connection tasks.

When an application requests a scheduled connection to a certain destination network with a specified time period interval, Connection Manager wakes up the device application when a connection to the specified destination network is available, or at the end of each time-period interval. When a connection to the destination network is available, the application can make use of the available connection. Notice that the application must request that Connection Manager establish the connection to the destination network.

Connection Planner Overview

Connection Planner (ConnPlann.dll) selects the connection that best serve a connection request. Connection Planner receives end-to-end path information from ConnMgr.exe. It then queries each Connection Manager configuration service provider to determine the cost, bandwidth, and latency of each path. With this information, Connection Planner decides which connection is optimal, based upon a selected heuristic.

Connection Planner also determines which connection has the highest priority and establishes that connection. For example, if a low-priority connection is active, Connection Planner disconnects it if a connection request for a higher-priority connection is made, unless the high-priority request is the same connection as the low-priority request. Then, Connection Planner calculates the optimal path to the higher-priority connection and activates that connection. After the high-priority connection has finished, Connection Planner re-establishes the lower-priority connection. To override this behavior, an application must use the ConnMgrMapConRef function.

Connection Planner notifies all applications of active connections, regardless of which application triggered the request for connection. For example, if five applications request the same Internet connection, Connection Planner notifies all five applications when this connection is active and available for use.

Overview of Connection Types

Connection Manager handles the following connection types, provided that the corresponding configuration service provider is installed:

  • Bluetooth data connections that use the dial-up networking (DUN) profile.
  • Desktop Pass-through (DTPT) connections that connect to a Windows®-based computer through ActiveSync.
  • GPRS data connections that use the built-in GSM radio in the device.
  • Wireless LAN (WLAN) connections.

Overview of Connection Service Providers

Connection service providers are private OS subcomponents of the Connection Manager implemented as dynamic link libraries (DLLs).

A connection service provider performs the following tasks:

  • Provides connection information, such as route and cost, for the Connection Manager.
  • Binds connection requests to the Network Driver Interface Specification (NDIS) User-Mode I/O (NDISUIO) Driver.

A connection service provider must be configured specifically for Connection Manager. For more information about configuring a connection service provider, see Connection Manager Configuration.

The following table enumerates the connection service providers that Windows Embedded CE supports and shows the configuration information associated with each provider.

Provider name GUID Types of connections

CSPRas

{7C4B7A38-5FF7-4bc1-80F6-5DA7870BB1AA}

Enables Connection Manager to make connections that use the Bluetooth DUN profile and GPRS to connect to the Internet by using remote access service (RAS).

CSPBtVoice

{207ED252-1E14-4bb2-B2B5-85EBB774E10F}

Enables Connection Manager to manage Bluetooth connections.

CSPNet

{f792e23c-dc19-4668-9be4-f8688b4c18d6}

Enables Connection Manager to make connections that use DTPT and wireless LAN (WLAN) connections.

See Also

Other Resources

Connection Manager
Connection Manager Application Development