Friday, April 27, 2012

P2P Routing in OpenMonitor : GSoC 2012

As April approaches, the adrenalin level rises in every students’ body for one reason - The Google Summer of Code aka GSoC. GSoC is getting bigger every year and I am proud to be part of it this year.

My name is Narendran Thangarajan and I am implementing the P2P routing algorithm for the OpenMonitor project as part of GSoC 2012. This blog will give a short description of the process I went through to make it to coding for OpenMonitor project through GSoC 2012.

I chose Umit as my organisation. Why? Take a look at their list of interesting projects and you would understand the reason. Among all these projects, the relatively new "OpenMonitor" project is my favorite. I loved their idea. As it sounds, its a Monitor for the Internet. It keeps track of all the connections on the Internet and has the ability to trace back the reason of a network blockage or blackout during crises. Simply put, it frames a nervous system of the Internet by implementing a peer-to-peer topology of nodes scattered around the globe. And that’s totally awesome! I really wanted to be part of this wonderful project. So, when did I start to get involved? It was last year (2011) May. I worked with Luis A. Bastiao Silva, who is a mentor at Umit. He was really, really helpful. He guided me right from basics of git and helped me out at every stage of the project. I hacked a bit on Umit Network Scanner, Packet Manipulator and OpenMonitor then. I even made a talk on Umit Network Scanner at Pycon India 2011.

Then came the news of GSoC 2012. And Umit made its way to the selected organisations list this time too! My joy knew no bounds to know that I had the chance to work on my favourite project as part of the legendary Google Summer of Code.

I studied the code of Desktop Agent and Mobile Agent of OpenMonitor and I found that the inter-peer routing was in a prototype-like stage and it really needed to be tweaked up for further enhancements to happen. Thus I started discussing the problem with Zubair Nabi, Luis and Adriano and finally settled with implementing a Kademlia based P2P implementation for the inter-peer communication among the desktop agents, mobile agents and the aggregator. We initially planned to make our own implementation from scratch in Python, but later planned to use C++ Kademlia libraries and writing wrappers in Python and Java.

And after all the discussions, I was able to fine tune my project proposal and submit my proposal. The list of accepted proposals were out by GMT 1900 hours on April 23rd, 2012 on the Google melange site and I was glad to see my name on the list. Now, I am going to work in one of the coolest projects in the open source world as part of the Google Summer of Code. I am really proud and happy to be at this place.

No comments:

Post a Comment