MarcoPolo - super context awareness for your mobile computer

By Jon Mountjoy (8 posts) on November 20, 2007 at 10:50 am

As the docs say, "MarcoPolo's concept of contexts is a generalisation of a location, and encompasses more than just where your computer is. A context might represent what you are doing, or what else is going on around you." In other words, a context is a generalization of a location - it's not just where you are, it's what you're doing with your computer too.

What's important here is not so much this particular application, but what it teaches about building mobile awareness into applications.

Overview and Concepts

The basic idea is that you have set of contexts, determined by a fuzzy matching rules that use some evidence sources. For example, you may have a rule that says if your IP address is 192.168.1.11, then you're in the "Home" context, or if you're running Skype then you're in a "Meeting" context, or if your power is disconnected and you don't have an IP address that you're in a "Mobile" context....you get the idea. You can even nest contexts. Here's a list of some of the evidence sources (add Wifi):

evidence

Rules determine your context from these evidence sources. They're pretty smart rules too, taking into account the type of evidence, parameters and a confidence (letting them be a little fuzzy). An example from the docs is that if you have a bluetooth device connected, then you can be 80% confident that you're at home (with your bluetooth mouse ;-)).

Here's a rule I set up:
rules

It states that if I have a particular IP address (10.63.138.*), then I know I'm in the BeanScene context (my local coffee shop). The rules can get pretty funky. For example, you can select contexts based on whether:

and so on. The fact that rules have confidences, and that you can have multiple rules, leads to a very powerful context setup. (I imagine a future release will include a rule that lets me set a threshold on the battery power level)

MarcoPolo periodically monitors these rules and then changes context accordingly. That brings us to the final piece of functionality. Actions that you can carry out when in a particular context. Here is a list of default actions:

actions

So for example, I can mount an internal network drive as soon as I move into the "Work" context, change my network configuration, and open up my mail after a suitable delay.
You can also run scripts instead of using the default actions. Because a considerable number of applications are scriptable on OS X (Leopard ;-) ), I can pretty much get my computer to sing or dance, depending on context. Having said that, I don't yet know how to script my Mac to put the display to sleep sooner - something I'd like to do if I'm not connected to a power source.

Relationships with MPSDK

The MPSDK offers some functionality with which to code an application like MarcoPolo. I love the way MarcoPolo generalizes the notion of mobile awareness to something much broader though. The documentation for MarcoPolo states that it loops, checking resources against rules. I know MPSDK has some event-based processing on, which may improve the operation of MarcoPolo. Somethings are intrinsically expensive though - like scanning your wifi network.

Summary

ISN Mobility is all about mobile awareness of applications. It seems to me that MarcoPolo offers that kind of functionality in spades. In fact, it's a generic framework that can sit on top of your computer *and* its applications, manipulating them depending on context. Now I really can tell my Mac to disable the virus scan if I'm not connected to the power supply.

I want the generic functionality that MarcoPolo offers standard, out of the box in my operating system. It's an awesome app, which has taught me about some new aspects of being "mobile aware".

Categories: Mobility

Comments (3)

April 21, 2008 11:20 PM PDT

jaydeep1111
Really...?

The MPSDK offers some functionality with which to code an application like MarcoPolo. I love the way MarcoPolo generalizes the notion of mobile awareness to something much broader though. The documentation for MarcoPolo states that it loops, checking resources against rules. I know MPSDK has some event-based processing on, which may improve the operation of MarcoPolo. Somethings are intrinsically expensive though - like scanning your wifi network.

reply must...!
April 26, 2008 7:38 AM PDT

ersunny
Features are great, I would like to have a full fledged features document with all types of functionalities Marco

Thx in advance
June 3, 2008 5:03 AM PDT


Balaji.M
Marcopolo is very good tool for changes the context.......

Trackbacks (1)


Leave a comment  

To obtain technical support, please go to Software Support.
Name (required)*

Email (required; will not be displayed on this page)*

Your URL (optional)


Comment*