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.
Links
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

Comments

# re: Windows Mobile Device Management

Tuesday, July 17, 2007 11:05 AM by Absalon

Hi, good post!

I'm coming a bit crazy trying to know if Windows Mobile based devices really implements the SyncML Synchronization Protocol.

The point is, can I start a synchronization session from the device?

As I know, it is only possible access to the server by a link in order to download the .cpf files.

I want to start the synchronization whenever I want from the device... is it possible to do it with some Windows API? or I have to implement the whole SyncML Synchronization Protocol?

Is because I must implement a SyncML client, but I don't know with which sever I have to work.. I only know that the server behavior will be according to the SyncML protocol

Thanks

# re: Windows Mobile Device Management

Tuesday, July 17, 2007 11:23 AM by xman892

Unfortunatelly , Windows Mobile does not support SyncML out of the box!+

You have to implement the SyncML protocol by your self or google for a third party solution as well

Checkout this ones: http://gsmsync.net/pocketpc_syncml.html

Note that I haven't tried them.

I will be glad to hear from you if you implement or use a third party solution.

# re: Windows Mobile Device Management

Thursday, August 16, 2007 7:01 AM by Mike McMinn

Nice post, I found while searching for a DM solution that contain an embeded kiosk solution. Your post of course focuses more on FOTA which is rapidly becoming one of my favourite subjects as the reduction in manufacturers costs is apparent. It just remains to be seen how long takes to be able to upgrade lets say a WM 5.0 device to WM 6.0 OTA. Perhaps I'm just dreaming? Check my link out if you like a higher level point of view on DM.  Thanks.............

# re: Windows Mobile Device Management

Thursday, August 16, 2007 3:54 PM by xman892

Thank you for sharing your post with me. I will check it out.

I do not beleive your dream will come true ... soon :)

# re: Windows Mobile Device Management

Thursday, October 04, 2007 2:43 AM by V.Nayak

Hi,

 Nice Post! I tried to query device information such as memory operating system and Battery strength using OMA client provisioning.(Using characteristic type=DeviceInformation)But it will only works with smartphone 06. Is there any alternative service provider which does same on WM05?

Thanks

# re: Windows Mobile Device Management

Thursday, October 04, 2007 10:02 AM by xman892

DeviceInformation Configuration Service Provider is available for the SP platform only.

On WM5, you may try to obtain the battery level by using the Registry Configuration Service Provider

and lookup the values under key  \HKEY_LOCAL_MACHINE\System\State\Battery

I'm not sure if you may query the memory through OMA on WM.

# re: Windows Mobile Device Management

Monday, October 08, 2007 12:49 AM by V.Nayak

Hi,

 Thanks for your reply. I did not get ang service provider to obtain battery level and operating systen information for WM05. So i wanted to try OMA DM provisioning. I got funambol DM server on net. Is that works? And how do i set client side settings on the PDA?

Thanks.

The leading UI suite for ASP.NET - Telerik radControls
Outstanding performance. Full ASP.NET AJAX support. Nearly codeless development.