“Push” Functionality for SCMDM

By this time people have gotten used to the term “Push” when referring to e-mail on mobile devices. And it’s easy to explain it as a concept to newbies as well. “Look how the server magically pushes content to your mobile device.” Customers I talk to have basically agreed with themselves that if there is a client-server solution for mobile devices it had better be push. We’re not going into discussing Line-Of-Business (LOB) applications and their relation to push as it’s difficult to give a generic answer to specific business needs. Although I think push is very neat for PIM it’s different with MDM.

People are often surprised when they ask a question regarding the push functionality of an MDM solution, and I tell them it’s not push-based. It’s pull-based, and every 4 hours or what have you, the device connects to the server. And I say to them that I don’t consider that to be an issue either. Now why is that? Well, an MDM solution is somewhat more static than a PIM solution. You may very well be receiving e-mails every five minutes, but you are most likely not changing your security policies or distributing new applications every hour. And if you have changed something most likely it’s not a problem if it takes another hour to apply to the devices.

Ok, we can buy into that. But wouldn’t it be nice to have anyway? Well, there are a few technicalities involved in providing push functionality.
- You can keep an HTTP session open all the time. You may run into the same problem both ActiveSync, OneBridge, Intellisync, etc have struggled with; battery life. (Side note: they have all improved drastically, but it took a few iterations. BlackBerry are really good at this game.)
- You can “ping” the device over IP to wake up. Which works nice on a LAN where all IP addresses are registered in DNS/DHCP and routable. And works less nice over a NATed GPRS network with ever changing IP addresses…
- You can send an SMS/WAP push to the device to wake it up. (This is what Exchange 2003 pre-SP2 used and it was called Always-Up-To-Date.) You can either have SMTP-to-SMS if your operator provides this service. (Where I live all operators have discontinued this offering.) Or you can use an SMS gateway or SMS modem. Let’s just hope you pay a really low rate for your SMS’s if you choose that route.

All of the above may work well for your scenario. And indeed there are MDM solutions offering push based on these alternatives. But here’s a quick tip: ask the vendor how well this scales.
How many devices can an Exchange 2007 Client Access Server provide push for? Let’s just say it requires more than one server to reach five digits. And how do you think your average SMS modem handles a queue sending out “pings” to a couple of thousand devices. If you don’t need to have all devices being able to apply a policy within seconds, wouldn’t you rather reduce the number of servers and improve the number of clients one server can handle?

Now I can’t read Microsoft’s minds, but I’m guessing some of these thoughts crossed their minds when designing System Center Mobile Device Manager (SCMDM). And this is also the mindset you are working with in Afaria from Sybase (which is most definitely made for Enterprise, and not limited to your average small business). Now I’m a big fan of Afaria for other reasons, but we will see if that’s something we will explore in greater detail at another opportunity as it’s not the topic for the day.

It sure would come in handy though if you could work out a compromise. Not necessarily true push, but being able to reach a given device “now” instead of waiting for the next schedule to occur. Once again – Afaria delivers on this premise. You can use SMTP-to-SMS, IP-based trigger, or SMS gateway/modem.

But I want this in SCMDM as well! How can I fix that? I like a thorough background explanation which I believe I have provided here, but let’s get down to the bits and bytes folks. At PDC a few weeks back Microsoft announced their cloud offering dubbed Azure. I applied for an invite, and what do you know, I received an e-mail some time later with the code I needed to gain access to the cloud.

image

Is there a point to this? Well, I’ve played around a little, read through some documents, and I am still working with understanding all the concepts. But I had an idea running through some of the training labs. Would it not be possible to have a component on your devices which has a connection open to the cloud at all times, and also have a component on your server. So on your server you have a list of devices, and even though you don’t know if it’s online or any connection details you can fire off a ping to the cloud. The device will pick up on the ping, and basically perform a “Connect Now”.

But Andreas, did you not state just a few moments ago that there were challenges to having this HTTP connection alive at all times? And are you buying into this whole “cloud computing” buzzword? Well, here’s the thing. As I said things have improved on this front, and even though I don’t know yet what the impact will be I’m willing to try it out. And although I know this could be implemented without any assistance from Microsoft I do like having someone providing a ready infrastructure for me, and components that are already implemented, giving me an shorter path to achieving something.

I haven’t implemented any code at this point in time, and haven’t gotten all the implementation details down either. So maybe I’ll actually find out that it simply doesn’t work. Maybe it’s a dead end, and I’m wasting time on something that’s not going to work as expected. For all I know, maybe it’s just a silly idea not worth pursuing. (We have all seen solutions in search of problems to fix.) Even if I do manage to get something to work Azure is still just a CTP at the moment. What business model Microsoft will adopt, and what the pricing structure for using the cloud will be is also vague at the time being. (There’s obviously a limit for what people will be willing to spend for this feature.)

But what do you think? Is this something you would like to see? I’d be interesting in hearing different takes on this subject. (If you have inside info about future releases of SCMDM, and know that this feature will be available in some form, point me in the direction of some other project I can keep myself occupied with :) ) I’ll keep you posted if I make any progress, and if you adapt it to a product before that time occurs I want royalties for providing the concept :)

2 Responses to ““Push” Functionality for SCMDM”


  1. 1 Marco

    This indeed would be very cool and an excellent feature for MDM Andreas! I guess the one of the first steps would perhaps be to understand how the ConnectNow tool works on the device, and how to either spawn it silently or call the same APIs, then write an agent for the device to listen to either the Azure, SMS messages, or other triggers..

  2. 2 Andreas

    There are a few challenges to be solved yes :)
    I’m guessing that since SCMDM is based on OMA DM there should be a way to trigger a DM session from the device without “hacking” it - probably solvable in some standard way.
    The detail I don’t have control of at the moment is whether I’m able to connect the device to the cloud. MSFT has provided some dlls, but I don’t know if they will work on Windows Mobile.
    I’ll most likely learn something from trying even if I find out that it’s not feasible at the moment.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*