[JDEV] Add-on support from Jabber protocol

Ashvil ashvil at i3connect.net
Wed Aug 1 11:05:43 CDT 2001


Hi Julian,

MS Word was giving me headaches trying to get a decent HTML file out of it,
so I gave up
and published a PDF file. Here is the same message in text format, but the
formatted
PDF is a bit easier to read.

Regards,
Ashvil


Proposed Wire Protocol extensions to the Jabber protocol v0.1

Goal
This is a mini-project to create and document extensions to the Jabber wire
protocol. IM clients that support add-ons will use this. Once this is
complete (Target Date Sept. 1, 2001), this will be submitted to the
Jabber.org community. This proposal talks about creating three new envelope
messages with the intention of having client inter-op with other game
playing systems.

Disclaimer
This document is at a proposal stage only. The authors are not experts at
the Jabber protocol, so it is possible there may be serious errors in this
proposal.

Description
These are the proposed extensions to the Jabber wire format that we want to
use in Magrathea, our game playing system built using the Jabber protocol.
The reason behind documenting this and going thru a review process is to
encourage other clients to support the protocol and reap the benefits of an
open IM system. The thing we like most about Jabber is the open wire
protocol and we to keep it that way.

About Magrathea
Magrathea is an application that will support different game add-ons. Right
now, it supports tic-tac-toe and chess, but we envision many more different
games add-ons. The goal here is to document the wire protocol to as to
enable others gaming systems to talk to it. You can download Magrathea at
http://i3Connect.com.

NOTE - This protocol is not supported in Magrathea as of yet. We are looking
for feedback from the Jabber community before implementing it. It may change
substantially based on feedback from the Jabber community. We encourage you
to experiment with it and provide your feedback, but keep in mind this is
only a proposal.

To Do List
Propose this to the Jabber community and use the feedback to update the
protocol.
Document these protocol extensions in a more structured format.
Implement them in Magrathea beta and check if it works in the real world ;-)
Close the mini-project and submit the extensions to jabber.org
Test other clients for inter-op.





(contd.)
There are 3 different messages that we propose

Browsing
We need to find what add-ons the other client supports.

    Query for getting client information & supported add-ons by client
        <iq type='get' to='jid2'>
            <user xmlns='jabber:iq:browse'/>
        </iq>

    Response
        <iq type='result' to='jid1' from='jid2'>
            <user xmlns='jabber:iq:browse' type='client' name='i3c'>
                  <addon type='chess'>
<name>FireChess</name>
<displayname>Play FireChess</displayname>
     </addon>
    <addon type='bridge'>
..
                 <addon>
            </user>
        </iq>

The add-on type determines the actual game type. In this example, 'chess'
will determine the actual wire format used to transfer information.
FireChess is the name of the game that support the 'chess' wire protocol.

Issue - How do we ensure uniqueness of both names and type attribute of the
add-on element?


Establishing session between add-ons
Once a game is to be started, then a session is created. Session ids are
used to route messages to the right add-on.

    XML Protocol for asking peer to accept & create session.
        <iq type='set' to='jid2'>
            <session type='' name=''/>
        </iq>

    Response
        <iq type='result' to='jid1' from='jid2'>
            <session id=''100' type='chess' name='FireChess' />
        </iq>

Note - It is unclear to the authors (since they not involved with the
evolution of the Jabber protocol), why the concept of sessions was not
introduced. Would like feedback on this issue.


(contd.)
XML Protocol for exchanging Messages between add-ons over a session
This allows you to send  messages to different sessions.

    <iq type='set' to='jid2'>
        <message sessionid='100' xmlns='chess'>
            <Move From='D7' To='D5' />
        </message>
    </iq>


The child elements of the message are defined by the add-on type. They exist
in the add-on namespace and the add-on needs to decide what elements it
needs to support.

Please send us your feedback directly to the authors or the jdev mailing
list at jabber.org. We will announce new versions of the document at
http://dev.i3Connect.com.

Thanks in Advance,

Ashvil D'Costa (Ashvil at i3Connect.com)
Vijay Balani (Vijay at i3Connect.com)









----- Original Message -----
From: "Julian Missig" <julian at aspect.net>
To: <ashvil at i3connect.net>; <jdev at jabber.org>
Sent: Wednesday, August 01, 2001 8:28 PM
Subject: Re: [JDEV] Add-on support from Jabber protocol


> Well, to start, what do you need with a) that cannot be done with
jabber:iq:browse?
> (Sorry, I can't read the PDF here at work)
>
> Julian
>
> ---- Original Message ----
> From: Ashvil
> Date: Wed 8/1/01 9:42
> To: jdev at jabber.org
> Subject: [JDEV] Add-on support from Jabber protocol
>
> Based on the feedback we got from Thomas Charron on creating some open
> extensions to the Jabber protocol, we have a first draft on what we think
> would be needed for Magrathea.
>
> We need
> a) a way for the client to query what add-ons are installed
> b) a way to establish session to the add-on
> c) provide the communication envelope between the add-ons.
>
> Here is the proposal in PDF format.
> http://dev.i3connect.com/proposal.pdf
>
> I hope we can quickly create a simple wire protocol to support the above
> needs. We have tried to design the wire format in accordance with the
other
> jabber messages but we don't have the long history and expertise in
Jabber,
> you folks have. So your feedback is highly valued.
>
> Regards,
> Ashvil
>
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mailman.jabber.org/listinfo/jdev
>
>






More information about the JDev mailing list