Microsoft is implementing some interesting services for the Windows 8 experience, blending mobile technology with a desktop-esque experience. This time, the Building Windows 8 blog is detailing how the new Windows Push Notification Service brings constant real-time tiles to Windows 8 tablets and computers, without draining the battery. Here’s the scoop…
If you’re using any modern smart phone made in the last 3 years, you’re familiar with push notifications. They’re pop ups that alert you to information and messages in real time. But push notifications on desktop computers hasn’t been so much of an issue since it’s no big deal to write code that checks a server every couple of seconds. Computers are typically plugged in all the time and have far more resources to consume than their mobile counterparts.
Now, the challenge: A server-checking process running on a tablet or phone would rapidly drain the battery. As Windows 8 yearns to be no-compromise tablet-ready, Microsoft has to rethink how to build smartphone-like features that are developer-friendly while also being power-efficient.
Enter the Windows Push Notification Service. Not a new concept, but certainly new for Windows. Microsoft has built a server (a lot like Apple has) to allow developers to take advantage of push notifications with a few simple lines of code. And push notifications are key to making use of Microsoft’s much touted live tiles on the all new Start Screen. The Windows 8 team has developed live tile code to highly power efficient, taking up almost no CPU or memory to run, meaning the whole Start Screen can always be running and always current.
The Windows 8 team has also built in an ability to view tile history in the task manager. Administrators and users can see which tiles have consumed the most cycles and network activity in the last 30 days. That’s especially helpful for detecting any problems as an IT manager, developer or a user.
The bigger picture here is that Microsoft, in a small way, is blurring the lines between desktop operating systems and mobile ones. Apple has tried to bring iOS elements to Mac OS X Lion, but Microsoft might actually be making the first leap towards an OS that is ubiquitously the same across all form factors.
Read More About This Topic
Share This Post
Tags: Building Windows 8 blog | desktop tablet operating system | Windows 8 on tablets
Interact: Add a Comment | Trackback Link | Permalink
Subscribe: RSS Feed

Don't miss Charlene O'Hanlon's weekly columns...
I can see some problems with this. It’s trying to avoid having the device do polling by getting the server to notify the device when there’s an event of interest. That means the server has to know how to reach every device.
But mobile phones are often not on public-facing Internet addresses; as I understand it, the carriers make heavy use of NAT. Which means the device has to initiate the connection to the server in the first place, so the carrier’s routers will set up a port mapping that allows the server to reply back to the device.
But how long will this mapping last? The carrier’s routers might time it out if it goes unused for, say, several minutes or several hours. So then when the server finally has something to say to the device, it cannot get through.
The only way around this is to ensure the port mapping is kept alive by—you guessed it—doing periodic polling. Which brings us right back to square one.
HI Lawrence,
Thanks for reading.
That’s definitely some interesting food for though. I hadn’t considered the situation you’ve described. But I have some hope Microsoft will do a good job. Let’s see how this plays out when Win 8 tablets hit the market.
Just a further thought, keeping the connection alive would require a lower frequency of polling from the server—perhaps once every 1 minute or 5 minutes might be enough.
That would still represent a battery saving over polling every few seconds if you want to receive a notification with a latency no greater than that.
Well,
WNS probably will keep a single connection for all apps. Hence saving a lot of power just for that. Moreover, there are ways to keep connection alive with not a lot of power (keep alive packets every ~60secs). Protocols such as XMPP come to mind.
So, WNS will be a lot less resource intesive than polling. Which, btw, is why everybody in mobile is using the same idea…