Context Aware Computing – IV

This week’s Context Aware Computing post takes a look at what might be done to make Windows applications more context aware. It also give me the opportunity to introduce my first guest blogger; Citrix’s Orestes Melgarejo. Orestes is Sr. Director of Product Management in the XenApp Product Group, and leads product management activities around XenApp and Mobile Receivers.

Citrix has been all about application and desktop “centralization” since the very beginning.  The simple idea was to reduce the number of touch points that administrators had to go to for install and update/maintenance of user desktops and apps.  Rather than manage hundreds or thousands of dispersed endpoints, the IT staff could manage a relatively smaller number of centralized servers.  Those servers, of course, run a Windows operating system, which in turn serve up Windows desktops and applications to the end-users connecting from their various devices.

This model took off and works really well for just about any Windows app.  It makes those apps accessible usable over any network to just about any endpoint.  Over the years the endpoints have exploded to the point we find ourselves today where Windows (and UNIX, by the way, via our XenApp for UNIX product) apps can be delivered to a diverse set of devices from full PCs to notebooks/netbooks to Macs, Thin Clients and smaller handheld mobile devices like tablets and smartphones.

The main issue around context awareness and general-purpose Windows apps is that they are not context aware!  And who can blame Windows app developers and Citrix users and enthusiasts.  The whole point was to take off-the-shelf Windows apps and deliver them to any end point type without having to make any code changes.  The model is to use the app as-is and leverage the Citrix infrastructure to deliver it to the ever-expanding number of devices that you need to support.  Your CEO got an iPad and wants to access his Windows 7 desktop?  No problem.  This works great until you run into things like serious screen size constraints on smartphones and touch interfaces on mobile devices in general.  So we are currently faced with a dilemma – how do we continue to use off-the-shelf Windows apps, which are not context aware, and deliver them in a meaningful way to touch-enabled and small screen size devices?

The answer is not easy to come by on the small form factor side of things.  We’ll come to that in a moment.  For larger form factor devices like tablets that are 7” or larger, the path is pretty clear.  Presentation Virtualization, in the form of Citrix XenApp with Citrix Receiver running on the tablet device, proves to be an excellent way to access Windows apps and desktops and for some can completely replace a netbook or notebook device offering longer battery life and improved portability.  For smartphones with “Nirvana phone” features (e.g. Motorola’s Atrix) again we can look to Presentation Virtualization as the phone can be docked into a device that allows for larger display for video and full keyboard and mouse for input.  On some of these devices it will be possible to “dock” to all of these (video, keyboard and mouse) wirelessly via Bluetooth and other emerging technologies like DLNA.  Eventually most top notch Smartphones will have a way to extend their interfaces so they can be used as mobile “virtual thin clients” in this manner.

When it comes to viewing and interacting with Windows apps and desktops directly on a small form factor device, however, the story changes quite a bit.  Today the reality is that most of the time you want at least a tablet sized device to be able to interact with off-the-shelf Windows apps presented via a solution like XenApp.  With Smartphone’s it becomes an emergency use case scenario – end of the quarter and I have to approve expense reports and all I have with me is my iPhone.

To work around the small screen issue, Citrix has been experimenting with something we call Project Golden Gate for some time now.  The main idea behind Golden Gate is to provide app developers with an example of how to write a Windows app (in this case a Microsoft Exchange email client) that runs on a XenApp server but looks, acts and works well when accessed form a smartphone device.  It is a “best of both worlds” approach that leverages the centralized management and security features of presentation virtualization while still providing the user with an interface that is suitable for a smartphone form factor.  The drawback of course is that the application is no longer off-the-shelf.  It is re-written to fit the smaller device and to account for a touch-centric interface, which requires subtle but important interaction design modifications.  Golden Gate is great in that it shows what can be done – a very elegant solution that leverages the Citrix infrastructure on the back end without compromising on user experience on the endpoint.  The issue remains that this is not “context awareness”.

So what can be done about this?  Clearly existing applications are not going to somehow be made context aware so a solution lies perhaps in the next generation of Windows app development.  A new approach could be to introduce context awareness to development platforms and enable the developer to more easily design for different form factors as he is architecting his app.  Picture a plug-in or SDK added to a development platform like Visual Studio that easily enables a developer to build an app with 2 or more UI layers leveraging the same underlying functionality logic layer.  With this approach a developer could leverage the same code for underlying features and functions and build unique UIs for different target environments.  He would create a UI for a full Windows desktop experience and another for the “Presentation virtualization to smartphone” target.  This would still be Windows code that runs on a Windows server (i.e. XenApp) but would look more like a Golden Gate style UI which is more suitable for a phone screen with less clutter and larger buttons for touch interfaces.  The app itself could be designed such that it determines what platform it’s running on (i.e. context aware) and display the proper UI.  If running on a Windows desktop OS, then use full UI else (running on a XenApp server) use smartphone targeted UI.  Or this could be accomplished via command line switch.  In this way a developer can write a single app that can address the needs of both full Windows desktop users and smartphone users with limited compromise, full functionality, great user experience and data-center resident app and data security.

I do realize that this is easier said than done but it seems like the cleanest path to accomplishing what something like Golden Gate promises.  Rather than writing two or more versions of an app this would allow a single version with multiple UI layers to choose from in order to maximize user experience.  We would love to hear the thoughts of the community on this.

As Orestes says “this is easier said than done”,  but given the explosion in platforms that this year’s CES has delivered, it won’t be too long before IT organisations will start to feel pressure to match application experience to endpoint characteristics.

Context Aware Computing, Nirvana Phone

Trackbacks/Pingbacks

  1. Tweets that mention Context Aware Computing – IV | simonbramfitt.com -- Topsy.com - January 11, 2011

    [...] This post was mentioned on Twitter by John Carey. John Carey said: RT @SimonBramfitt: New blog post: Context Aware Computing – IV http://simonbramfitt.com/2011/01/context-aware-computing-iv.html [...]

Leave a Reply