VRML network communications

Don Brutzman (brutzman@cs.nps.navy.mil)
Sat, 10 Sep 94 09:01:02 PDT


Dave Cake asked about the protocol for communicating with vrml scenes.
I agree this is a key question and see two general approaches.

(1) Client/server. A vrml query retrieves a bunch of information which
includes a 3D scene description, "behaviors," and embedded vrml links to
perform other queries.

(2) Connection to a group. The vrml application joins a data channel
which permits listening to/sending out information that is not specifically
requested by other vrml entities.

The client/server approach is basically what occurs today with html.
By defining geometric objects, adding dynamic behaviors, and permitting
user interaction via vrml links to request new info, the interactivity &
"liveness" of a vrml scene will be higher than the static nature of
current html data transfers.

The connection approach implies that network bandwidth, multi-user and
entity interaction protocols have to be addressed. This is much harder.
Of great interest is the fact that it currently appears to be possible.
To learn more about how to do this, I recommend that you investigate
two areas: Multicast Backbone (MBone) and the IEEE Distributed Interactive
Simulation (DIS) protocol.

References follow. The short story on MBone/DIS is that
MBone permits applications to join multicast groups which can send
relatively high-bandwidth streams (e.g. audio, video) over the Internet.
It also permits applications to selectively listen to individual channels
so that your machine is not trying to listen to every possible channel at
once. DIS is a long-standing effort that provides entity-interaction
communication mechanisms. Although these are primarily oriented arount
representing physical entities, there is a lot of flexibility and some
extensibility. The genesis of DIS to support military applications does
not preclude more general applications.

Both MBone and DIS have free implementations and code available. Both
have oversight by open standards groups (Internet Engineering Task Force IETF
and IEEE DIS standards committee, respectively).

I recommend that vrml employ the basic client/server approach for starters.
It is well understood and in daily use by potential vrml users/scenewriters.
Smart folks will figure out ways of implementing the second approach
as we go. Follow-on generations of vrml are a better time to attempt
to converge on mechanisms for the group connection approach.
We need to walk before we try to run. You also need something to
connect to before you can connect.

There are other ways to do things besides MBone & DIS. I recommend them
to this group because they work, there is already a lot of momentum there,
and (most importantly) they permit usage to scale to many (hopefully
many thousands) of simultaneous users/entities without crashing the Internet.

My personal opinion is that we want the following functionality for vrml:
- a scene description language (e.g. OpenInventor OI)
- existing World-Wide Web WWW (e.g. html)
- behavioral descriptions (e.g. OI & extensions, Behavior Engine perhaps)
- multicast communications (e.g. MBone)
- entity interaction protocols (e.g. DIS)
End of list. With those components you do just about anything, and
we'll all be able to create populate & interact with Web-wide worlds.

Standard VRML List Legal Disclaimer: these are opinions. Other ways of doing
this are welcome, particularly if they are compatible, since it is a big world.
No one put money in my pocket to recommend specific things. Have a nice day! :)

references:

"MBone Provides Audio and Video Across the Internet"
Michael R. Macedonia and Donald P. Brutzman, _IEEE COMPUTER_, pp. 30-36,
April 1994.
PostScript, text, and hypertext versions of this article are available as
ftp://taurus.cs.nps.navy.mil/pub/mbmg/mbone.ps
ftp://taurus.cs.nps.navy.mil/pub/mbmg/mbone.txt
ftp://taurus.cs.nps.navy.mil/pub/mbmg/mbone.html
We wrote this article for two reasons. The first was to clarify
terminology and technical questions about how the MBone works.
The second was to help people get their sites connected and use
the tools more effectively. Hopefully the article is of value
in these respects to you.

Mike's recent paper on how to solve the 10,000 player problem:
ftp://taurus.cs.nps.navy.mil/pub/NPSNET_MOSAIC/
Exploiting.Reality.with.Multicast.Groups.ps

DIS references appeared in a recent post. Documentation is admittedly
a pain to obtain, but the marked-up draft of the next version
reference manual is available by ftp and is not dissimilar to the current
manual. Caution: the text reads like a standard, not WiReD magazine.

Additional pointers to MBone, the NPSNET virtual world, DIS libraries
and related issues can be found via the NPS home page
ftp://taurus.cs.nps.navy.mil/pub/mosaic/nps_mosaic.html

regards, Don

Don Brutzman work (408) 656-2149
Code OR/Br Naval Postgraduate School [Glasgow 204] fax (408) 656-2595
Monterey California 93943-5000 USA home (408) 372-0190