The Push Router component of the device management scheme is the central location for receiving, authenticating, and forwarding all of the incoming WAP push messages, including provisioning messages sent over a WAP push. The Push Router is responsible for determining the type of incoming push message and for passing the message to the matching client application to run the push content.
Push Router tasks include the following:
Accept push messages, and authenticate the origin by using the Security Module that is part of the Push Router component.
Assign a security role to the message, through the Security Module, based on the origin of the push message and authentication method. For information about roles, see Security Roles.
Forward the relevant message with the assigned security role to the client application push client.
The Push Router can accept data over the air through the Push Proxy Gateway (PPG) over the Global System for Mobile Communications (GSM) and Code Division Multiple Access (CDMA) Short Message Service (SMS) networks.
The following diagram illustrates the Push Router architecture for Windows Mobile Professional and Windows Mobile Standard.
- SMS Router
The Short Message Service (SMS) Router is the first OS-level software component to receive incoming SMS messages from the network. It accepts SMS messages, determines their final destination, and delivers them to the appropriate software component on the device for processing. SMS messages move from the SMS Router to the appropriate layers of the WAP stack. The SMS Router is designed to route messages to one client per provider.
- WAP Stack
The WAP component decodes the WAP push message and sends it to the Push Router.
- WSP Push Source
The Push Router accepts and processes push messages from a Wireless Session Protocol (WSP) push source. This entry point receives push messages and passes information to the Push Router Core by means of the Source Interface.
The WSP push source accepts only WAP connectionless non-secure push messages that conform to the WAP push message format. For more information about the WAP Push Message, see WAP Push Message Format.
- Push Router Core
The Push Router Core initially processes an incoming push message, routes the message, and exposes the communication interfaces for the client and source components.
When the Push Router Core receives a new message, it is forwarded to the Security Module for authentication and role assignment. After the Security Module processes the message, it sends the message back to the Push Router Core as configuration request that is encoded in an XML document format. The Push Router Core then routes the message to the Configuration Manager. For more information, see Routing Messages for Mobile Operators.
- Security Module
This is an autonomous component within the Push Router Core.
It is a generic module that can authenticate messages depending on what they are signed with. Currently, the two authentication methods supported by this module are WAP authentication and OMA-DM trigger notification authentication. All other methods are passed through the default security provider instead of the OMA Client Provisioning security provider or OMA DM security provider.
The Security Module authenticates an incoming push message and assigns a security role to it. The Push Router handles submissions to the Security Module.
As a guideline, Windows Mobile devices use all authentication methods defined in the OMA Client Provisioning specification: Provisioning Bootstrap (OMA-WAP-ProvBoot-V1_1-20050428-C) available from this OMA Web site.
Authentication is transparent to the user. One of the following occurs:
If authentication fails, the message is discarded.
If authentication succeeds, the Security Module sends the message back to the Push Router Core. For more information, see Security for Windows Mobile Devices.
- If authentication fails, the message is discarded.
- OMA DM Transport Client
OMA DM Transport Client receives and executes OMA DM notification push messages. OMA DM transport client receives the push payloads through the Client Interface of the Push Router Core.
- ConfigHost Push Client
The ConfigHost Push Client accepts OMA Client Provisioning messages from the Push Router. If the message is wbxml encoded, the ConfigHost push client invokes the wbxml decoder, which decodes it. The push client then sends the provisioning XML to the Configuration Manager.