Open Monitor: Building a World Wide Internet Connectivity Monitor through Google Summer of Code 2011
Friday, February 24, 2012
Despite all the magnificent improvements to both technology and the internet these days, we lack a free and open source real time internet connectivity monitor from which anyone can tell what the connectivity conditions are in any part of the world. Solving this problem is a huge undertaking, but at Umit Project, we saw a chance to start developing such a solution through the Google Summer of Code when we were chosen as a mentoring organization for the 2011 program.
We chose a hybrid P2P approach that would consist of hybrid peers and a centralized server that we call the aggregator. The hybrid peers would be able to communicate with each other and pass along reports even if direct connection to the aggregator is blocked, acting as both a server and client and promoting themselves to super peers as needed. The aggregator would be responsible for gathering all the connectivity reports from the peers and showing them in real time in a Google App Engine based site using the Google Maps API.
We also thought of having three different kinds of peers: desktop peer, desktop super peer and mobile peer. The desktop peer runs on top of the same code base but promotion to super peer status is based on the peer's availability. The desktop version is very portable (runs on Mac, Linux and Windows) and is written in Python, while the mobile peer is Android based, can not turn into a super peer and is focused on getting us a view from inside mobile ISPs.
We were given three talented students for the three month long Google Summer of Code, and each of them tackled the different pieces of the system. Despite the overwhelming amount of work and the short time frame they were working with, the students managed to get these systems to form a network, communicate, run connectivity tests and share reports.
The Umit Project team has been working very hard since Google Summer of Code ended in August to deliver our first version of Open Monitor and we're very close to releasing an alpha in the next few weeks for selected trusted testers.
If you're interested in knowing more about the project, its motivation, and more technical details about it, we have released a video on YouTube of a presentation given about the project at the Creativity World Forum 2011 and another talk given at the Chicago Python User Group Meeting. Slides of the CWF11 presentation are also available to view.
Special thanks to Google for their amazing Google Summer of Code program!
By Adriano Marques, Director of Umit Project and Google Summer of Code mentor