NAVmoble - the pocket-sized ERP
Optimized for Microsoft Dynamics NAV and Windows Mobile powered devices

Friday, July 13, 2007

Windows Mobile Device Management

Developing and deploying a software solution is almost never a single act.
After the solution is deployed, it has to be monitored and continuously updated to meet the ever-changing business environment. So, what we developers do is to utilize existing or implementing a custom strategy for automatic software updating.
However, sometimes the business needs to update not only a particular application, but also changing the application environment (underlying OS for example).
The remote computer management is a common practice(there are a lot of tools) these days. However, the remote management of mobile devices(like PDA-s and smart phones ) is not so common. For example on the Windows platform, we have a Remote Desktop and Terminal Services out of the box. And this is not the case for the Windows Mobile devices (there are third party solutions).
Fortunately, there is a solution for this kind of problems, when dealing with Windows Mobile based devices. The out-of-the-box solution is called Windows Mobile Device Management. Windows Mobile provides infrastructure for remote management based on an industry standards published by Open Mobile Aliance(OMA) . Windows Mobile devices support additional extras as well - not mentioned in the OMA specifications.

The term used in the literature is actually provisioning.

Windows Mobile supports 2 OMA standards for provisioning:

The first one is based on a client-server conversation by using a communication session between the device(client) and a special DM(device management) server. During this conversation the server may query device in order to get data from it and may send provisioning instructions to change particular settings over the device. The communication is based on TCP/IP ,so any TCP/IP capable infrastructure may be used(GPRS,WiFi,...). This post will not talk about this kind of provisioning...

The second one called OMA Client Provisioning is based on deploying(sending) a special xml file on the device ,which contains provisioning instructions. There are various instructions supported by Windows Mobile, which allows for:
- Managing connectivity (GPRS,VPN,WiFi,...) settings of the device
- Managing e-mail accounts in he Pocket Outlook
- Managing Pocket IE favorites
- Managing device registry(adding,modifying and deleting registry keys)
- Managing security settings
... and even more...

The instructions are grouped by functional areas and referred as Configuration Providers. The Configuration Provider actually is the software component, which processes particular type of instructions.
Check out the available configuration providers.

The provisioning files may be delivered to the device throughout the following channels:
  • ROM image
    provisioning files may be deployed in the device's ROM and applied on cold boot.

  • RAPI and ActiveSync
    the rapiconfig.exe is placed in the tools directory of the SDK

  • Deployment as .CAB or .CPF file
    Provisioning files may be packaged in a CAB files and deployed on the device like any other CAB file( ActiveSync,LAN, SD/MMC card, etc)

  • OTA (Over-the-air) Provisioning
    this includes various techniques like DM Server, WAP Push, SMS, E-mail, HTTP(web site download)

  • Custom file delivery and the Windows Mobile Configuration Manager API
    The developers may use the managed WindowsMobile.Configuration.ConfigurationProvider (Part from the Windows Mobile 5 SDK) to "execute" provisioning files. Your application may receive provisioning files through various comm channels( SMS, E-mails, Web Services ,... what ever) and pass them to the configuration provider for execution.
Open Mobile Aliance
OMA DM Provisioning for Windows Mobile
OMA Client Provisioning for Windows Mobile
Configuration providers supported by Windows Mobile
Managing Windows Mobile 5.0

No comments: