[jdev] GSOC project : Student Proposal

probir roy probir04 at gmail.com
Wed Apr 2 14:44:06 CDT 2008

Hi all,

    I have submitted a GSOC project on "application sharing framework based
on XMPP for mobile devices (J2ME platform)".

    My project will work as a base for application shared to the instant
messaging contacts. It will extend existing XMPP library of miniim <
http://miniim.sourceforge.net>. The application will be loaded and running
in messaging server and keystrokes will be transmitted from and screen
changes will be transmitted to the participant mobiles. Users will be able
to send instant message while playing games in mobile !

Benefits to Community
    People will be able to use this framework to write their own
communication application. The library keeps the protocol implementation
invisible to the application. So the implementation of other communication
protocols (like SIP, AIM, YAHOO, MSN and more ) will be plugable without any
modification to the application. It will give the whole new idea of
messaging protocol based application development for mobiles. People already
writing games for mobile will be sharing the framework idea and enhancing
it. And XMPP will lead the specification to get the messaging protocol work
for communication application development. As hundreds of millions of mobile
users out there , may be it will be useful to a vast community. People will
be sharing a large variety of things than text messages to their network.


    - The miniim library will be enhanced to support multi-user-chat(MUC).
    - It will give the required user interface to test the facility of MUC.
    - It will create an interface of selectable components. And notify
      about the user event on a component.
    - It will create a server component that will act on an user event to
output an svg command.
    - There will be two turn based sample games written based on this
library, tick-tack-toe and a card game.


    My framework consists of a server application and a client application.
Any shared application needs to be in the server. I am thinking to write the
server as an XMPP component in perl. The shared application will be written
as CGI script. The xmpp component executes those scripts on client events.

                                        Shared Application Script
                               Execute CGI | A session id will identify
                                                   | this application
                                        | XMPP component |
                                        | ------------------- |
                                        | Server              |

/                                                                    \

         | Mobile-1
|                                                             | Mobile-2 |


    Figure: Two mobiles are in an shared application session.

    One thing I must say that the server component may be skipped and a bot
can be wrtten in perl to behave as the game server.

    The client application in mobile will communicate with the server. It
will enable user to seek for an application and invite other people to share
that(for example, play a game). Users using this client tool can accept
invitation of shared application too.

    This client will give a component-display. Some of the components can be
traversable and selectable. The figure below shows such a display.

    | +--+--+--+ |
    | |S |S |S | |
    | +--+--+--+ |
    | |S |S |S | |
    | +--+--+--+ |
    | |S |S |S | |
    | +--+--+--+ |
    Figure: A component display for tic-tac-toe. The boxes marked as 'S' are
selectable components when the game starts.

    This display will be implemented as rendered svg. The components are
analogous to the svg elements or element-groups. User may use the arrow keys
of the mobile phone to traverse those elements. And use the middle key to
initiate an event. This event will be notified to the server and server will
respond by modification to the svg data (creation and deletion of the svg

    Additionaly the server can respond with an xform. An xform will be
presented as midlet form in mobile. After user fills the form, the data is
passed to the server.

    I am not thinking about any client side scripting to aid the application
in order to keep things simple and suitable for mobile. I hope it will be
extensible for adding script support.

    I hope the proposal will change over time upto the most appropriate one
for this time.

    Im am choosing XMPP as communication protocol as it is extensible open
standard and there are successful shared application idea implementations
using XMPP. Finally it is also a widely accepted instant messaging standard.

Related Work
    - Psi Whiteboarding
    -- http://wiki.jabber.org/index.php/Psi_Whiteboarding
    This is a whiteboarding project based on XMPP. It is plugin written
for psi messaging client. It also transmits svg commands describing the
changes on the whiteboard. The scope of this application is bound to
whiteboarding. It has no server component to coordinate with shared
But it is pretty close to my idea of implementation.

- http://commons.oreilly.com/wiki/index.php/Programming_Jabber
-- specially http://commons.oreilly.com/wiki/index.php/JabChapter_9
- [Definition of application sharing]
- [User Gaming] http://www.xmpp.org/extensions/xep-0196.html
-- This extension does the task of inviting or publishing a game.
- [A simple game bot] http://www.stevegibson.com/main/?q=node/17

    I am waiting to hear any reviews and advices. Please tell me if there
any changes needed.


Probir Roy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.jabber.org/pipermail/jdev/attachments/20080403/c3006723/attachment-0002.htm>

More information about the JDev mailing list