28.06.2013 Views

Papers in PDF format

Papers in PDF format

Papers in PDF format

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.2 A new Protocol for IRC<br />

The protocol used by the VRML browsers to exchange <strong>in</strong><strong>format</strong>ion needs to be embedded with<strong>in</strong> the standard<br />

communication allowed by the IRC protocol. Thus all the people <strong>in</strong> SharedRoom can use the facilities of the IRC:<br />

they can talk to all other participants, they can directly talk to each other on private l<strong>in</strong>es and perform personal<br />

<strong>in</strong>teraction. Furthermore, there is a special protocol of VRML messages, which conta<strong>in</strong>s the icon description and<br />

the movements and actions of a user. These VRML messages are sent us<strong>in</strong>g a standard IRC PRIVMSG command,<br />

but they are marked as VRML messages by a start<strong>in</strong>g exclamation mark (’!’) followed by a three digit code. (If<br />

the user enters a message start<strong>in</strong>g with a ’!’ it should be sent as ”!!”, with the second ’!’ removed by the receiv<strong>in</strong>g<br />

VRML browser).<br />

To implement our proposal, only the follow<strong>in</strong>g codes need to be implemented:<br />

!000 Sign on message<br />

!001 Icon def<strong>in</strong>ition<br />

!002 Position def<strong>in</strong>ition<br />

!003 Icon redef<strong>in</strong>ition<br />

!004 Position redef<strong>in</strong>ition (movement)<br />

!005 Log out message<br />

!006 Click on icon<br />

All these messages are of the form:<br />

!nnn[]<br />

For example:<br />

"!000Separator {Cube{}}"<br />

"!005"<br />

MultipleVRML messages with<strong>in</strong> one IRC message are allowed, each start<strong>in</strong>g with a !nnn. If a user enters a channel,<br />

the viewer sends a !000 followed by a VRML Separator conta<strong>in</strong><strong>in</strong>g the description of his icon. As a response to<br />

this all other users which are already on this channel send a !001 followed by a VRML Separator conta<strong>in</strong><strong>in</strong>g the<br />

description of their icons and a !002 followed by a VRML Transform which describes their absolute position and<br />

orientation. This way the VRML browser gets all the <strong>in</strong><strong>format</strong>ion it needs to visualize the other participants of<br />

this shared room. A mov<strong>in</strong>g participant will send a !004 followed by a VRML Transform, which conta<strong>in</strong>s the new<br />

position and orientation of the user. The IRC protocol provides the necessary <strong>in</strong><strong>format</strong>ion to assign this movement<br />

to the correspond<strong>in</strong>g icon. It is up to the VRML browser to prevent the icon from popp<strong>in</strong>g around by smoothly<br />

<strong>in</strong>terpolat<strong>in</strong>g between successive positions.<br />

Code !003 is used to redef<strong>in</strong>e the icon of a user. This may be used to express some (m<strong>in</strong>imal) gesture by<br />

chang<strong>in</strong>g the icon accord<strong>in</strong>g to the mood of the user. If a user clicks on an icon represent<strong>in</strong>g another participant, a<br />

!006 message with no parameters will be sent to him. F<strong>in</strong>ally the VRML browser will send a !005 if the user leaves<br />

the bound<strong>in</strong>g volume of this SharedRoom.<br />

There are two special cases for the def<strong>in</strong>ition of icons: It is allowed to use the DEF/USE mechanism of VRML<br />

to avoid resend<strong>in</strong>g the icon of a user, so this would be a legal sequence:<br />

"!000uni-bonn.de:DEF std Separator {Cube {}}"<br />

"!003uni-bonn.de:DEF smile Separator {Sphere{}}"<br />

"!003uni-bonn.de:USE std"<br />

Another case is the usage of WWWInl<strong>in</strong>e, which should be allowed to send a description which exceeds the<br />

maximum l<strong>in</strong>e length of 511 for an IRC message.<br />

To summarize, the advantages of choos<strong>in</strong>g IRC are:<br />

1. Efficiency: IRC has an established network of IRC servers, which build a backbone for broadcast<strong>in</strong>g<br />

messages of each IRC client around the world. Comb<strong>in</strong>ation techniques bundle many small messages <strong>in</strong>to<br />

larger packets by which the IRC network avoids send<strong>in</strong>g a message twice over the net. For example imag<strong>in</strong>e<br />

two users A1 and A2 <strong>in</strong> the USA and two other users G1 and G2 <strong>in</strong> Germany. If A1 sends a message it is<br />

sent over the ocean once by the american IRC server to the german server which <strong>in</strong> turn distributes it to G1<br />

and G2. Theoretically the same effect could be achieved by an IP Multicast message [MB94], but actually

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!