Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

ECF/EPL YAHOO

< ECF
Revision as of 04:27, 2 April 2009 by Rjvranga.gmail.com (Talk | contribs) (Eclipse Public Licensed Yahoo implementation and a provider)

Eclipse Public Licensed Yahoo implementation and a provider

This page contains the project proposal created by [Rajeev Sampath] for the GSoC idea taken from [GSoC 2009 Ideas list]. You are welcome to comment and modify this page.

Summary

Eclipse Communication Framework supports several messaging protocols at the moment, including Yahoo, MSN and XMPP, which are plugged in as providers. However, the current Yahoo provider is based on a third party Yahoo protocol implementation (jYMSG) which is distributed under GNU GPL. This is problematic for the ECF due to the incompatibility between licenses - EPL and GPL. This project aims to implement the Yahoo protocol and a provider under EPL.


Details

The project consists of 3 major tasks:

  1. Studying the protocol
  2. Implementing the protocol
  3. Implementing the ECF provider

The first task, studying the protocol will be the most challenging. To accomplish this, there are a few methods available:

  1. Reading online articles/blogs which describe the protocol
  2. Black-Box testing – this can be done by doing various activities (Login, Logout, Sending instant messages etc) and observing the underlying requests made and responses arrived. For observing requests and responses, a network protocol analyzer can be used. There are several such open source protocol analyzers available at the moment.
  3. Examining the existing open source Yahoo protocol implementations.

In addition to these methods, some other controversial methods like reverse engineering the code of the client/ assembly level debugging are also available. I do not intend to use such methods for this project.

Out of the above 3 methods, I plan to use (1) and (2) as appropriate for studying the protocol. Also, there is a possibility of using (3) if there are BSD-style licensed implementations available. However, the most popular ones are under GPL, so I plan to study the protocol without depending on this method.

First step will be to read online articles and get an overall idea of the protocol. Then for each activity supported by the protocol (i.e. Login, IM, Add/Remove contacts etc), I will study the underlying requests responses closely by reading the articles. Then validity of what I study needs to be recognized by using either black-box testing or writing a simple program to do the request. In case when information I’ve collected are out-of-date or invalid, black-box testing will be used for observing several requests/responses. Using these observations, protocol can be studied. This procedure will repeatedly apply to study all portions of the protocol I’ll be implementing.

My plan is to carry out both the tasks , studying and implementing the protocol, simultaneously as appropriate, rather than two sequential separate tasks.

After testing the implementation, ECF provider will be implemented. For this task, one of the existing provider implementations such as XMPP or MSN can be taken as a reference.


Scope of the Project

The must have items are as follows:

  • ECF provider
  • Yahoo protocol implementation with following features supported*:
    • Login/ Logout
    • Contact list (includes initial list receipt and updates)
    • Add/Remove contacts
    • Instant messages – send/receipt
    • Conferences
    • Chat rooms
    • Status
    • Proxy support – both HTTP and SOCKS

* These features will be implemented for both HTTP and direct connections. All the implemented features will have relevant documentation.

The following are optional and will be implemented if there’s time remaining:

  • Typing notifications
  • File transfer – both P2P and via-server
  • Yahoo mail notifications

The following will not be implemented:

  • Voice, Webcam and mobile chat.
  • Games, Calendar and extra features.


Deliverables

  • Yahoo protocol implementation
  • ECF Yahoo provider
  • Documentation


Challenges

Studying the protocol can be tricky. There are a few barriers to overcome, mostly licensing problems. To overcome these problems, I’ve moved some of the features out of the scope and have made some features optional. This is done to ensure I’ve got enough time to tackle potential problems.


References

  1. Wikipedia – http://en.wikipedia.org/wiki/YMSG
  2. Yahoo Coder’s Cookbook – http://ycoderscookbook.com
  3. ECF mailing list
  4. ECF source and documentation – http://eclipse.org/ecf
  5. EPL definitions and FAQ page – http://www.eclipse.org/legal
  6. GPL definitions and FAQ page - http://www.gnu.org/copyleft/gpl.html

Back to the top