Welcome to Community Server Sign in | Join | Help

High vs. Low Fidelity Subscription

Problem Description

Microsoft Communicator Mobile Edition 2007 R2 has introduced number of performance improvements over its predecessor related to battery power consumption and over the air bandwidth savings. In the following blog post, we’ll look at the concept of low vs. high fidelity subscription and how it helps in saving battery power in mobile devices and saving over the air traffic.

Let’s first look at the problem with traditional event subscription model. Typically, clients subscribe to an ad hoc list of contacts (buddy list) presence information at the server with non-zero expiration value. The message body of a SIP SUBSCRIBE message lists all the contacts user is subscribing to for their presence information. It conveys to the server that client is interesting in keeping up to date with the real time presence state updates of buddies. Whenever a contact’s presence state change is detected as a result of any part of user’s presence state (user devices’ machine state, calendar state, phone state, or user’s manual state) change publication, all the subscribing users get notified of the updated presence state. Essentially, it generates a notification stream from the server to the client, where every SIP NOTIFY message has to be processed by the client and acknowledged by a SIP 200 OK response.


The Communicator Mobile Edition 2007 RTM followed Office Communicator 2007 RTM/R2 running on laptop/desktop logic of subscribing to the full contact list at start up (of course not subscribing to unexpanded distribution groups in a contact list). The following scenarios prompted to look at possible improvements.

·         Communicator mobile edition runs on devices with small screens where hardly 10 or less contacts of a user’s long buddy list are visible at an instance

·         Over the air bandwidth is costly, especially when users are roaming in a GPRS network, thus notification stream wastes a lot of bandwidth

·         When back light goes off (Windows Mobile devices going into idle state), receiving every single NOTIFY causes device wake up, processing of notification, and then going back to sleep again, while user is not really paying attention to the update. It drains much needed battery power at a faster rate

Solution

It’s evident that a better subscription model is needed to fully optimize battery power and bandwidth usage. Communicator Mobile edition 2007 R2 introduced the concept of low vs. high fidelity subscriptions as described below.

·         Low fidelity subscription refers to performing a fetch/pull subscription, where a contact’s presence state is pulled from the server on an as needed basis. It doesn’t create a long lived subscription on the server, where server keeps on notifying client with an updated state. In a SIP SUBSCRIBE message a pull or fetch subscription carries an Expires value of 0. In this mode, client keep on pulling every 5 minutes, thus potentially a presence state could become stale up to 5 minutes

·         High fidelity subscription refers to a persistent subscription on the server, where a contact’s presence state is continuously synchronized at the client by server sending updated notification whenever contact state is updated. Before expiration of subscription, if user is still logged in, these subscriptions are refreshed with new expiration time

The Communicator Mobile Edition 2007 R2 performs usually low fidelity subscription in most of the scenarios. For example, low fidelity subscription happens for only the visible contacts on the buddy list. To account for a scrolling down/up of a rich buddy list viewing experience, it also subscribes to 3 contacts above and below the currently viewed contacts in the buddy list window. Therefore, it avoids subscribing to a complete buddy list of a user for no good reason and end up wasting bandwidth over the air and processing power on the client.

There’re following scenarios where still high fidelity subscriptions are performed to provide a rich user experience in the Communicator Mobile 2007 R2 client.

·         When a user tags a contact, it creates a high fidelity subscription. Thus, user gets a notification whenever tagged contact becomes available, hence providing real time presence information for tagged contacts

·         When a user opens a contact card of a contact, it again performs high fidelity subscription

·         When a user is in an active conversation with other user(s)

Thus, in above scenarios it makes perfect sense to perform high fidelity subscription for real time presence updates.

When the device goes idle (back light goes off) and user is still signed in to Communicator Mobile Edition 2007 R2, it further optimizes by suspending both low and high fidelity subscriptions, where:

·         Client stops fetching/pulling presence state every 5 minutes for low fidelity subscriptions

·         All high fidelity subscriptions are terminated at the server, therefore server doesn’t keep on sending updated notifications. Only exception is the tagged subscription, which still receives updated notifications to keep user informed of tagged contact’s availability

Therefore, Communicator Mobile Edition 2007 R2 provides rich user experience at the same time consumes much less battery power and over the air bandwidth.

 

This insight into Office Communications Server 2007 R2 was created as part of Mohammed Vakil’s participation in the Microsoft Certified Master program.

 

 

The Microsoft Certified Master Program: The Microsoft Certified Master: Microsoft Office Communications Server 2007 program provides the most in-depth and comprehensive training available today for Office Communications Server 2007. This three-week training program is delivered by recognized experts from Microsoft and Microsoft partner organizations.

Published Monday, May 11, 2009 1:22 PM by ocsteam
Filed Under:

Comments

 

zerenia said:

I've been using Communicator Mobile R2 for about a month and the battery savings are terrific.  I like the voice capabilities as well - being able to initiate a commuincator voice call from my cell phone is a nice touch.

Is there any timeout settings for Commuicator Mobile?  In other words, if I sign in and then don't access the client, is there an inactivity timer that will log me out of the server after the timer expires?
May 12, 2009 12:37 PM
Anonymous comments are disabled
Powered by Community Server, by Telligent Systems