GSoC idea : WebPurple platform
Orphis
orphis at free.fr
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 :
http://www.webtide.com/downloads/whitePaperAjaxJetty.html .
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 : http://dojotoolkit.org/demos/email-using-1-0
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