Connection Manager Architecture for Portable Navigation Devices

Windows CE 5.0 Not SupportedWindows Embedded NavReady 2009 Supported

10/16/2008

Applies to Windows Embedded NavReady

In the Connection Manager architecture, an application informs Connection Manager of the destination network type it wants to use for a connection. Connection Manager provides a fast and transparent way of making the connection choices for the application. The application does not have to know which connection path is chosen and yet they can be assured that the most optimal path is used at all times.

Architecture Overview

The following illustration shows the Connection Manager architecture.

Connection Manager for Windows CE 5.0

The Connection Manager architecture consists of the following main parts:

  • Application that requests a connection
  • Connection Manager application
  • Connection Planner component
  • Connection service providers

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 Application Overview

The Connection Manager application is ConnMgr.exe. It can interact with multiple applications on the device to schedule and manage network connections. It also maintains a list of all connection requests, their 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 Windows Embedded NavReady powered device to the target network.

Next, the Connection Manager application 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, the Connection Manager application schedules this connection, also considering other scheduled connections and their priorities and security levels. This behavior enables multiple applications to 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 application might create as many as 10 connections to the same location every hour. With this optimization, the Connection Manager application 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, the Connection Manager application 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, the Connection Manager application 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 connections that best serve a connection request. Connection Planner receives end-to-end path information from the Connection Manager application. 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, the 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 can handle the following connection types, provided that the corresponding configuration service provider is installed:

  • Bluetooth data connections that use the Dial-Up Networking (DUN) profile
  • Bluetooth voice calls that use the Hands-Free Phone (HFP) profile
  • Desktop Pass-through connections that connect to a desktop PC through ActiveSync

Overview of Connection Service Providers

A connection service provider performs the following tasks:

  • Provides connection information, such as route and cost, to the Connection Manager application
  • 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 for Portable Navigation Devices.

Connection service providers are implemented as dynamic link libraries (DLLs). Connection service providers are private OS sub-components of the Connection Manager application.

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 Bluetooth DUN profile to connect to the Internet by using Remote Access Service (RAS).

CSPBtVoice

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

Enables Connection Manager to manage hands-free phone voice calls that are made by using a paired Bluetooth-enabled phone.

CSPNet

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

Enables Connection Manager to make connections that use Desktop Pass-through (DTPT) and a wired network adapter. For more information about DTPT, see ActiveSync Desktop Pass-through (DTPT) for Portable Navigation Devices.

See Also

Other Resources

Connection Manager Application Development for Portable Navigation Devices
Connection Manager for Portable Navigation Devices