GSoC idea : WebPurple platform

Orphis orphis at
Wed Mar 19 14:08:43 EDT 2008

Hello, here is some idea for a GSoC project I'd like to submit to the 
pidgin organization. Anyone is free to comment it and make some critics, 
that's why I submit it.

With today enterprise firewalls becoming more and more restrictive, 
using some IM client while at work (for development purpose with remote 
co-workers obviously) as become quite difficult. I've found myself last 
summer while working in some company having to discuss really simple 
things by email where IM would have been more than valuable. The kind of 
firewall they've used blocked every outbound connection if it wasn't 
initiated on port 80, in other words for the HTTP protocol. That's why I 
think there is a need for a web messaging platform.

I know there already are some services to use some IM (mostly MSN 
protocol) on a web page but all these sites are often filtered (address 
blocked or the client don't use port 80) or act more like a messenger 
without installation. Moreover, these sites all use, in my knowledge, a 
proprietary solution that prevent the users to setup new mirrors.

That's why, I'd like to submit an idea for approval : creating an open 
source messaging web platform based on libpurple. This platform would 
only use HTTP communication to bypass the firewalls settings and no 
special software (no java or flash object), all the client coding would 
have to be DHTML (HTML, ECMAscript and then "Ajax" solutions).

The platform would be separated in 3 parts :
- the main software using libpurple in C
- the client side DHTML site using Javascript
- a message broker that would connect the two above

As I see it, the Jetty web server will be used to host all the DHTML 
files and with its ContinuationCometdServlet, be also the message 
broker. Jetty is a highly optimized java server with some features to 
highly reduce the server load when using Ajax and Comet. You can read 
this paper to be convinced : .
It also has a BayeuxService which is a JSON protocol for publish and 
subscribe event delivery. The Bayeux protocol has good support in the 
Dojo javascript toolkit provided by the Dojo foundation. It can also be 
used to create powerful DHTML sites, you can watch the DojoMail demo 
there :
The last think to do would be to establish a communication layer between 
the libpurple based server and the jetty server. A first solution would 
be to use a simple protocol between the message broker and the purple 
server programmed in Java and C. A second solution is to implement some 
C Bayeux layer the server could use to connect to the message broker and 
then dispatch and fetch the messages from.

The aim of the project would be to do the basic setup for all the three 
parts I've mentionned.
 - As a new UI is already a lot for a three months job, doing a full 
featured web based IM client seems impossible. That's why I only aim for 
some basic features : connecting to some network using the user 
credentials, displaying the buddy list and sending and receiving 
messages. I don't promise the UI to be a piece of (graphical) art but 
since there's a lot more work to do on the project, that's only fair. I 
expect to work at most 2 weeks on it.
 - The message broker and web server is done by Jetty, some simple 
configuration will be enough. It's a matter of day to make it work.
 - The purple server needs the most attention. The message loop needs to 
be connected to the message broker. I expect to spend 5 weeks on it.
If my planning is correct, I'll have 5 more weeks to test the platform, 
plug holes and submit it to testers and get some feedback.

I already have some experience in this kind of platform. I've worked in 
internship for a company to extend and fix bugs in their messaging 
platform. All client side code was javascript in the very early days of 
ajax. I know the pros and the cons of this technology and that's why I 
think I'm the perfect student to apply for this idea.

Now I'd like to know the pidgin devel mailing list opinion on all that 
and if I'll get some support if I submit that kind of project. I'll be 
following the mailing list with attention the next days. You can also 
contact me on IRC : Orphis on Freenode

Best regards,

Florent Castelli, last year student in Master CS degree

More information about the Devel mailing list