throbber
7i/Iulr
`
`i/I/ledia
`
`2.2mgam
`
`fzfiipumk
`C
`SOClETY@
`
`
`
`mmqummqaomuemmmum
`
`oaoqm
`
`M1
`
`
`
`pomshrew:rum
`
`
`
`HH4mrmbmwzawemm
`
`zH22m¢worHm:2mm»mm:ommH
`
`
`
`
`
`zwramxmmwnwrmmmonmmmazn
`
`THE INSHTUTE OF
`ELECTRICAL AND
`ELECTROMCS
`E E R5, INC.
`
`RPX Exhi it 1127 M"
`
`RPX Exhibit 1127
`RPX v. DAE
`
`RPX V. DAE
`
`IEE-E
`SNmAENUMMOC
`SOCIETY
`
`
`
`
`
`

`
`' Editor in Chief
`Rameshjain
`
`University afcoiifbnrio, .Sroi- Diego
`
`Submissions: P1_e'ja_se 'so_b__m_1t six copies of all articles and_pro-
`posals for special issues to Rarnesh Jain, UC San Diego, Dept.
`ot'Eler:t_r1;':a1ancl Computer Eliglneerlng, MC 0407, 9.500
`Giirnan Dr.-, La Jolla,_ CA 92093-0407, ]ain@'ece.ucsd.ed1.1. All
`_su_bmissions'are subject to_edltin'g "for style, clarity, and space.
`
`_ Associate Edi_tors._ln Chlei
`Ralf S.tein'm‘etz-
`Masao Sakauchi
`Editorial Board
`
`_
`IBM European Networirirtg Ctr."
`U. Tokyo‘
`
`Meera Blattner
`Glorianna Davenport
`Wolfgang Effelsberg
`Christos Faloutsos
`Simon Gibbs
`Athula Ginige
`Forouzan Golshani
`William Groslcy
`Wendy Hall
`Thomas Little
`Pelya Liu
`P. Venkat R-angan
`Dipankar Raychaudhuri
`Sore] Reisman
`Charles Rich
`Arturo A. Rodriguez
`Harrlck Vin
`Jeff Derby
`
`U. Coliflnrnia, Davis; LLNL
`MIT
`U. Moinilleiin
`U. Maryland‘
`GMD
`U. Technology Sydney
`Arizonrr State U.
`Wayne State U.
`U. Soutlunnpton
`Boston U.
`Siemens Corporate Research
`U. Cnlifomio, Son Diego
`NEC USA
`Cnlifonur: State U., Fullerton
`Mitsubishi Electric Research Labs
`Scienn'fic-Atlrmto
`U. ofTexos, Austin
`IBM, and
`Comrmnnrotions Society representative
`
`Managing Editor
`Associate Editor
`Assistant Editor
`Art Direction
`
`Publisher
`Assistant Publisher
`Advertising Manager
`Advertising Coordinator
`Member;'Clrc. Promos Mgr.
`Editorial Secretary
`
`Nancy Hays
`Linda World
`Anne C. Lear
`Joseph Daigle
`
`True Seaborn
`Matt Loeb
`Patricia Garvey
`Marian Tibayan
`Georgann Carter
`Alkenia Winston
`
`Magazine Operations Committee
`James J. Farrel III (chair), Gui Agha, Stephen E. Cross, Alan M.
`Davis, Stephen L. Diamond, Bertram Herzog, Ramesh Jain,
`john A.N. Lee, Edward Parrish, Ahmed Sarneh, Ken Wagner
`Publications Board
`Ronald Williams (chair), Anlello Cimilile, James J. Farrell Ill,
`Tadao lchikawa, Mary Jane Irwin, Raymond Miller, Michael C.
`Mulder, Alice C. Parker, Theo Pavlidis, Walter Tichy, Mladen A.
`Vouk
`
`
`
`Editor-in-Chiefs Message
`Romesh lain
`CAD for Creative People
`
`Web_Sight
`Sorei Reismon
`
`
`
`Keeping an Eye on the Web
`
`in the News
`
`William Grosky
`
`IO
`
`Visions and Views
`
`Glorionno Davenport
`Smarter Tools for Storytelling
`
`74
`
`Multimedia at Work
`
`Charles T. Hemphfll, Philip R. Thrift,
`and john C. Linn
`Speech-Aware Multimedia
`
`79
`
`Project Reports
`Thomas G. Aguierre Smith
`Multimedia Lab Supports
`Sustainable Development
`
`Standards
`
`Bronko ,1‘. Gerovac and David C. Carver
`
`Standardizing Headers in the Quest
`for Interoperability
`
`89
`
`Upcoming Events
`
`Media Reviews
`
`New Products
`
`Advertiser/ Product Index
`
`Computer Society information, C3
`Reader Service Cord, pp. 96a 81 b
`
`E R
`
`,i:ee3
`'aai§a3;;§e,3:laé§o;f6yl:ne3:'-angles"aiia'a1e,ss'r£Hrents;.as.we1|'_ss: descriptions of"products and services, reflect the authorlsgor firmls opinion; inclu-
`,
`__
`
`‘
`_'n‘-_1n t_l_1is_'publ|cat_lon does not'néces‘ranly'constitutc endorsement by the l£EE'or-the computer.so;iety.
`
`5 zcopyrlgfit and .rE§:rlnt permission: Abstracting‘-is-permitted with.-.crefl,;- to the source. libraries are pennltted to photocopy beyond the limits of US copyright
`.
`ljaw tor"p‘,'ri\rat'e-use" of patrons those articles -that carry a code at the-bottom of the first page, provided the per-copy fee Indicated In the code is paid through the
`Copyrlghtclearance Center, 29 Congress St, Salem, MA 01970". Instructors are permitted to photocopy isolated articles for noncommercial classroom use with
`out fee. For other copying, reprint, or republication permission, write to Permissions Editor,
`IEEE Multilviedio, 10662 Los Vaqueros Circle, PO Box 3014, Los
`Alamltos, CA 90720-1264'. All rights reserved. Copyright 9 1996 by the Institute of Electrical and Electronics Engineers, inc.
`
`Circulation: lEEE Mw'tiMeo'lo (l5SN 1070-986X) is published quarterly by the IEEE Computer Society. IEEE Headquarters: 345 East 47th St., New York, NY 1001 F-
`2394. IEEE Computer Society Publications Office: 10662 Los Vaqueros Circle, PO Box 3014, Los Alamitos, CA 90720-1264; (714) 821-5380. IEEE Computer Soci-
`ety Headquarters: 1730 Massachusetts Ave., Washington, DC 20036-1903. Annual subscription: $22 in addition to any IEEE group or society dues. Members of
`other technical organizations: $31. Nonmember subscription rates are available on request. Single copies: members, 310; nonmembers, $20. This journal is also
`available in microfiche form.
`
`i’oslmaster: Send address changes and undelivered copies to IEEE Multimedia, IEEE Computer Society, 10662 Los Vaqueros Circle, PO Box 3014, Los Alamitos,
`CA 90?20-1264. Second class postage is paid at New York, NY, and at additional mailing sites. Canadian GST ii12S634188. Printed in USA..
`
`
`
`

`
`This material may be protected by Copyright law (Title 17 U.S. Code)
`
`

`
`
`
`audio in a traditional conferencing environment.
`The three documents on the table and the wall dis-
`
`play are active, displaying text and graphics cou-
`pled to external tools in the outside (real) world.
`
`Interaction with individual objects
`An interactive multiuser VE, in which partici-
`pants interact with objects constituting a 3D
`scene, must support the creation and modification
`of individual objects. Information is distributed
`on a per object basis, where individual objects are
`addressable and may be requested and retrieved
`over the network.
`
`In a truly interactive environment, participants
`must be able to dynamically create, modify, and
`remove objects, as well as enable others to do the
`same. This means that objects are not owned by a
`creator—once introduced, an object may be
`accessed and modified by any participant.
`if combined with autonomic behaviors, such a
`
`shared environment has enormous power. For
`example, an object created and released in a world
`can perform actions by itself and be picked up and
`used by other participants.
`
`Why networking is important
`Peers of such an advanced distributed applica-
`tion need to exchange large amounts of informa-
`tion,
`including object and world definitions,
`navigation commands, audio, and bitmaps. Over
`an internet, messages might have to be delivered
`among many participants over high-latency
`paths. Recent round-trip estimates measured in
`DIVE experiments range from 25 milliseconds
`within Sweden, 200 ms to American sites, and 800
`ms to Japan.
`In such an environment, it is crucial that par-
`ticipants experience “acceptable" delays. The ulti-
`
`Figure 1. A world seen from a user's
`viewpoint. The scene irrclmles two
`otlrer actors embodied very simply, as
`“blockies.”
`
`
`
`mate endpoints of communication are the human
`senses and the brain's actual perception of sound
`and pictures. Typically, end-to-end latency as
`experienced by a human user has an upper bound
`for acceptability. For audio this limit is roughly on
`the order of 100 ms, while interactive manipula-
`tion requiring feedback has an even lower bound.
`Unfortunately, network and physical realities
`make these limits unreachable for global distrib-
`uted systems. Other properties, such as object
`motion and presentation, might be less sensitive
`to latency, especially if described by behaviors
`evaluated locally at each peer.
`System designers must therefore address pro-
`tocol and performance issues and design the com-
`munication between peers to take advantage of
`the network's available bandwidth. In short, the
`
`amount of traffic between peers must be reduced
`and end-to-end latencies minimized.
`
`two distinguishing features
`Summarizing,
`make interactive multiuser VEs possible: interac-
`tion with individual objects and scalable net-
`working. We will later return to how these issues
`were addressed in DIVE.
`
`For a discussion of networked multiuser VF. sys
`tems, see the sidebar on the next page.
`
`Figure 2. A conferencing
`applicntiorr with three
`actors who can com-
`
`municate rising text and
`audio. The documents
`on the table and wall
`
`display are active,
`displaying text and
`gmplrics coupled to
`external tools. (See the
`
`sidebar on p. 39 to find
`three forms of this
`example on the Web.)
`
`
`
`966i5U!JdS
`
`31
`
`

`
`Ne__twor_ke_d Multiuser-VE Systems
`:Several other multiuser VEs_ take distribution and multiuser aspects into"
`consideration. The VUE system’ is a distributed client-server architecture
`where processes communicate via asynchronous message passing. In the
`Minimal" Reality (MR) Toolkit,’ a set of master processes is connected pair-
`wise to other master processes." Messages may be sent unreliably between
`one process and the other peers.
`Several systems are based on an object-request broker approach. Their
`interfaces let objects be accessed remotely (by asynchronous message pass-
`ing) through a client-server system. Massive‘ and Bricl<Net5 are examples of
`such systems.
`Many systems rely on the DIS protocol,‘ originally designed for multi-
`_ party training in combat situations. With this approach, multiple immobile
`objects form a static background, such as landscapes and buildings, while
`the movements of a smaller set of dynamic objects, such as vehicles, are dis-
`tributed to all connected peers. One such system is NPSNet (Naval
`Postgraduate School Net),’ in which large-scale distribution issues were taken
`very seriously. For example, NPSNet is currently addressing how to increase
`the number of participants and information space to the range of thousands
`of participants over an internet.
`
`The DIVE software model
`To understand the fundamentals of the DIVE
`
`environment, let’s briefly consider the platform's
`software model.
`
`Distributed entities
`DIVE entities form the basic units of distri-
`
`bution that can be addressed, requested, and dis-
`tributed. Figure 3 shows a class hierarchy {used
`only for modeling—DlVE is implemented in plain
`C) where the entity class is the top-level abstrac-
`tion. An entity has a
`globally unique iden-
`tifier used for address-
`
`dive_object
`
`view
`
`world
`
`light
`
`actor
`
`line
`
`box
`
`polygon
`
`cylinder
`
`ing, a name, a behavior
`description, and a set
`of properties usable for
`application-specific
`data. The entity and
`view classes are abstract
`
`while views and a light (a light bulb} are depicted
`graphically. The active object has an associated
`behavior triggered by user interaction. For exam.
`ple, selecting or stepping up close to the light acti.
`vates the light bulb.
`
`DIVE objects
`DIVE objects carry the essential logical, inter.
`action, and dynamic information in a world. This
`includes geometrical orientation, material descrip-
`tions, and variables controlling interaction and.
`rendering. When DIVE objects are composed hier-
`archically, their own geometrical transformation 2
`is composed with the rotation and translation of _'
`the object at the next level in the hierarchy.
`"
`The following DIVE file format definition spec-_I
`ifies the lamp obiect with a default black material"
`and a displacement of 10 meters in the z-axis-
`direction:
`'
`
`object {
`name "lamp"
`trarislation v 0 0 10
`material "black"
`
`,
`Graphical representations: Views
`Lines, spheres, cylinders, boxes, grids, anti?
`polygons are examples of subclasses of the view‘;
`class. Views are passive graphical 3D representa-
`tions that may be dynamically created and modi-
`fied. When a user interacts with a view, typically:
`by pointing to it, the DIVE object closest to it in;
`the hierarchy handles the actual interaction. For
`example, the active object in Figure 4 defines the.‘
`behavior of the views and lights below it.
`i
`The lamp pole in Figure 4 is an example of ai
`cylinder:
`
`view {
`CYLINDER
`0.02
`0.02
`1.3
`
`Figure 3. Class
`hr'erm'chy of'DIl/E
`entities.
`
`that
`classes;
`instantiations
`allowed.
`
`is, no
`are
`
`}
`
`Entities are structured hierarchically in a tree:
`a world is a root, while dive_objects are nodes,
`views are leaves with 3D graphical representa-
`tions, and lights are leaves with a light model def-
`inition.
`
`Figure 4 shows an example of an entity hierar-
`chy of the active lamp object shown in Figure 1.
`lamp and active are examples of clive_objects,
`
`where 0.02 denotes the two radii and 1.3 th'
`
`height of the cylinder.
`
`Multicast domains: Worlds
`
`A world represents a separate virtual space dis—.
`joint from other worlds, with its own set of
`obiects, actors, and views. The world information
`
`is common to all entities within the space, such
`as background light, fog, and spatial boundaries.
`
`

`
`Behavior in objects: The D|VE,fTc|
`interface
`
`DIVE worlds are not passive.
`Entities
`are
`somewhat autono-
`
`Lamp
`
`
`
`Figure 4. An entity
`hierarchy showing two
`obiects, active and
`lamp, with their
`graphical
`representations.
`
`
`
`966Lfiuuds
`
`33
`
`mous-—-they react to stimuli, move,
`transform, and adapt to the chang—
`ing environment. This degree of
`autonomy is achieved by associating
`'I‘ci scripts“ with entities. Typically,
`an event in the system triggers 3
`DlVE.»'Tcl script, resulting in a set of
`actions. Because Tcl is portable and
`interpretative, scripts are replicated along with the
`entities and can be executed immediately on any
`platform without compilation.
`simplified)
`In the following (somewhat
`DIVE,I’Tcl example‘ script, an object selection starts
`a simple motion:
`
`c
`
`proc move_up {id type actor srcid }
`for {set i 0}{$i < 1DO}{incr i}{
`div-e__s1eep 100
`dive__move $id D 0.5 0 LOCALFC
`
`}
`
`{
`
`} d
`
`ive:__r eg i ster selec t: rnove_up
`
`The move_up Tcl procedure is registered by
`divegregister, which is invoked when a DIVE
`
`select occurs at the object containing the script.
`When the move_up procedure is called, the para-
`meters identify which actor and object invoked
`the script. The div:-.~_move procedure itself dis-
`places the object 0.5 meters in the local coordi-
`nate system every 100 ms. Really powerful event-
`and timer-driven behaviors are s pecified by hav-
`ing access to the complete IJIVF. functional inter-
`face in combination with Tcl
`iterations and
`functions.
`.
`We have found autonomous behavior to be
`
`extremely useful in "programming" VES. Graphi-
`cal modeling is a smaller problem; normally a
`standard 3!) modeling tool will serve. A more
`important aspect of modeling is how to animate
`and put life into the objects constituting the VEs.
`
`Collision detection
`
`Collision detection is an essential service in a
`
`VE system. Consequently, collision detection
`forms the basis of many DIVE functions, includ-
`ing gateway detection, interaction, and commu-
`nication support.
`The Massive‘ approach influenced us to have a
`collision manager. Processes register interest in
`certain objects and actors, and the collision man-
`
`The following “park” world is defined with a
`
`fog and a default {grey} background color:
`
`world {
`name
`start
`info
`
`"park”
`v 0 0 -5
`"A test world
`
`showing a niCe_park"
`background. 0.2 0.2 0.2
`fog
`0.0002
`
`}
`
`A world defines a separate spatial domain and
`is therefore naturally assigned a multicast address.
`Only peers that have joined a world-specific mul-
`ficast address can listen to events occurring in that
`world. Requests of entities belonging to the world
`can be made by sending a message to the world’s
`multicast address. A DIVE name server handles
`
`the assignment of multicast addresses and nan1e-
`to-address lookup.
`
`User representations: Actors
`
`An actor, typically a user or an automated
`process, represents a process-bound entity that
`performs actions within a world. The actor modi-
`fies objects and parameters and sends messages to
`other entities within the world. Messages either
`result in concrete changes in the database, such as
`“moving an object,” or are more abstract, such as
`
`“an actor has picked up an object." _
`Since objects can be modified by any actor, not
`only the creator, concurrent modification requests
`must be resolved. Here, we assume that actors
`
`"own” object.s for a long time and that concurrent
`modifications seldom occur. Entities are therefore
`
`protected from concurrent “writes" by a simple
`object—based tokenpassing algorithm: In the rare
`case of a conflict, one actor blocks until it receives
`the token.
`
`An actor can change worlds by entering a gate-
`way, an object serving as a portal to another
`world. When the actor passes through the object,
`a collision manager signals a collision, a name
`server is queried for a multicast group to join, and
`the actor is transferred with its embodiment to the
`new world.
`
`Dynamic interaction and behavior
`The software model described above forms the
`
`basis upon which essential VE functions are
`implemented, such as collision detection, dynam-
`ic object behavior, user interface support, and
`audio.
`I will now describe these functions as
`
`implemented in DIVE.
`
`

`
`
`
`a visor, which is just an invisible object acting as a
`placeholder for the user’s icons. Usually, the visor
`is placed just in front of the actor's eyes, so actor
`and icons move together. The visor thus forms an "
`"2D” working area providing easy access to con-
`trol and monitoring icons.
`Vehicles help users navigate in 3D space. The
`vehicle icons, placed above the three buttons,
`include the rectangle—a "walking-style” vehicle—-. I
`and the triangle—-a "flying-style" vehicle. For
`example, users interacting with the flying-style-= .
`vehicle see their embodiments move as if carriedij ,
`by an airplane.
`'
`The icons in Figure 6 are autonomous objects-_
`defined by DIVE/TCI scripts. When a user interacts} "I
`with these objects, things happen—the user's;
`embodiment moves, menus appear, and other-,
`objects are affected. The car in the foreground has;
`a steering wheel, an ignition button, and a speed
`meter. These control the car's movement, and 5-,":
`user may manipulate them. An actor can attach
`the car and follow it as it drives along. Other actor
`
`also may enter the car and control its movement.-
`Figure 6 also shows another actor controlling a
`different car. As a consequence of the dynamic-
`environment, an actor can change embodiments
`at will. For example, an actor could select the heli- :
`copter as a new embodiment.
`
`Communication by text and audio
`It
`is essential
`to support communication '
`between participants in multiuser \/Es. Dumb par-.
`ticipants can only communicate through body
`language, which is extremely limited given the
`constrained embodiments. Therefore, we made it
`
`possible for DIVE actors to communicate directly
`using text messages and live audio.
`The endpoints of audio communication are
`associated with entities in the 3D environment».
`
`Thus, audio sources, including microphones an '
`Internet audio conferences, can have physical rep-
`resentations such as a mouth or a radio, respec-
`tively. The location and orientation of the entities
`can then be used to model 3D audio—or at leas'
`attenuate audio with distance.
`
`In several 3D audio and speech synthesis"
`experiments, the spatial properties of entities were
`given as input to external tools. Using this tech‘
`nique, current versions of DIVE use standard
`audio conferencing tools, such as Nevot (Network
`Voice Terrninal)," to convey real-time audio. Thus,
`DIVE does not distribute or process the audio data
`itself, but has the ability to feed external tools the
`necessary 3D location information.
`
`
`
`
`
`
`
`age: generates collision
`signals for the regis-
`tered entities as their
`volumes intersect.
`
`system
`In DIVE,
`servers implement col-
`lision managers and
`the handling of colli-
`sion events,
`so the
`semantics can be al-
`
`Figure 5. An actor
`
`approaching a lmup
`intersects a surrounding
`volume. As :1 result, the
`lamp is tumed on.
`
`tered easily to satisfy
`different
`application
`needs. This approach supports different models,
`including the spatial interaction model developed
`by Fahlén and Benfordfi and the use of geograph-
`ical areas in simulation}
`
`Intersecting volumes and behaviors can be
`used in simple interfaces. As an example, Figure 5
`illustrates the use of volumes in animating a VB
`scene. In the figure, an actor is approaching a
`lamp. The system detects the actor's penetration
`of the volume surrounding the lamp (an aura),
`indicated by the yellow lines. The lamp—an
`autonomous object—reacts to the collision by
`turning on the light, as defined with the follow-
`ing DIVEITCI script:
`
`turn_on {idl id2 type} {
`proc:
`set id [dive-_fi.ncl_subobj sidl
`"bulb“]
`
`dive_light $id on
`
`ivt-3__regis tier Col 1 is i0n_on l:urn_on
`
`} d
`
`where the turn_on procedure is called when a
`collision signal occurs and dive_l ight turns the
`actual light source on.
`
`User interface
`
`A process with a 3D rendering module that
`associates a real human user with a virtual user-
`
`an actor-—is called a visualizer. A visualizer pre-
`sents a graphical representation of a virtual world
`and lets the user interact with that world by select-
`
`ing and grabbing objects, sending messages to
`actors, setting up audio connections, and so forth.
`DIVE provides many visualizers, each suited for
`different interface requirements. For example,
`with an immersive interface, magnetic trackers
`
`monitor body movements, and an HMD provides
`the world view. With a nonimmersive interface,
`
`the regular mouse and keyboard are used, and the
`world is viewed on a regular screen.
`Figure 6 shows a typical DIVE user interface. It
`has three buttons and two vehicle icons placed on
`
`
`
`IEEEMultilvledia
`
`
`
`34
`
`

`
`Multimedia documents
`
`An interesting capability is enabled by the
`DIVE Web interface. Apart from the fact that ini-
`tial descriptions of DIVE worlds and objects may
`be read via Web protocols in VRML'° or DIVE. for-
`
`mat, general-purpose multimedia {Mime} ‘docu-
`ments can be presented by external tools. In this
`way, a DIVE world can contain virtually any
`multimedia document, including-MPEG movies
`and bitmaps, that can be activated by DlVE‘.fTcl
`scripts. Sound is especially useful in a VE, since it
`can enhance worlds: the sound of a door opening,
`the click of a button, and background music.
`Further, a standard Web browser can be inter-
`faced to DIVE so that the browser accesses "tradi-
`tional” 2D documents while VE documents are
`
`traversed in DIVE. This arrangement resembles
`the approach taken by many VRML viewers.
`Let us now proceed to the distributed domain.
`First I'll discuss general issues, then describe how
`DIVE entities are distributed and how networking
`capabilities are used.
`
`Networking issues in shared VEs
`Many existing approaches to i/Es are inherent-
`ly single-user approaches extended to the multi-
`user domain. These systems might offer some sort
`of primitive distribution mechanism such as asyn-
`chronous message passing, which gives little help
`to a programmer because all distribution and
`synchronization problems must be dealt with
`explicitly.
`We believe that a distributed multiuser VE sys-
`tem should be designed from the start to be fully
`distributed, with the focus on performance and
`scaling considerations.
`
`Programming distributed applications is diffi-
`cult because of their inherent concurrency. This is
`especially true when objects are fully distributed
`and any process in the system can access them.
`Consistency requirements include {loosely} that
`all processes see the same data and that corrup-
`tions do not occur because of concurrent modifi-
`
`cations of the same data. Several techniques exist
`to ensure consistency, such as distributed trans-
`actions, distributed readlwrite locks, and so on.
`
`One important performance criterion for dis-
`tributed VE systems is latency, that is, the time it
`takes for a message to reach its destination.
`Network latencies range from under a millisecond
`On local area networks up to several hundred
`milliseconds on a wide area network. A related
`
`Performance factor is throughput. On a network
`With bounded bandwidth, only a limited amount
`
`of data may be serviced per time unit.
`It is therefore important to design the distribu-
`tion architecture of distributed VES so as to mini-
`
`mize latency. At the same time, the applications
`should not violate the bandwidth limits of the
`
`internetwork, since doing so causes congestion and
`loss of packets, or overrun of the receiving hosts.
`
`
`
`Xl‘lCLl'SE
`
`Distribution techniques
`A client-server application is based on an asym-
`metric model where a large set of clients connect
`to a small set of servers, often only a single server.
`Repiicas of data reside on servers, from which
`clients request the data. Updates from clients are
`sent to a server before they are distributed to or
`requested by other clients. Thus each message
`must be sent at least twice, which might increase
`latency. Client-server architectures have an advan-
`tage, however: Consistency requirements are eas-
`ily satisfied, since data is modified centrally and
`then distributed to clients.
`
`In peer-to-peer distribution, each peer in the
`distributed environment communicates with
`
`other peers on an "equal" basis. Replicas of data
`exist in each peer, and updates need only be sent
`once. A common peer-to-peer distribution tech-
`nique is full replication, where each participating
`peer actively manages its own complete copy of
`the data. Applications modify data in what they
`
`perceive as a shared database, while modifications
`are transparently distributed among all peers. Full
`replication achieves a high degree of availability
`(no need for remote access) and some degree of
`fault tolerance. It is also conceptually simple.
`
`Figure 6. Example ofn
`user nrterfnce and a set
`of vehicles and actors.
`The three buttons in the
`
`foregromrd are placed
`on an invisible visor
`
`belonging to the viewer.
`
`
`
`966i.5“!-Ids
`
`35
`
`

`
`Multicast protocois potentially use network
`resources better than unicast protocols and thus
`
`{indirectly} reduce latency and increase through-
`put on a network with limited resources. (Note
`that multicast on a transport level, such as reliable
`multicast, may or may not utilize network-level
`multicast.) In a clientlsingle-server architecture,
`multicast provides no benefit when the client
`communicates with the server, since there is only
`one recipient. However, multicast can be used
`when sending to a group of peers, such as in serv-
`er-to-client and peer-to-peer communication.
`Therefore, peer-to-peer distribution combined
`with network-level multicast minimizes latency
`
`and uses system resources well. Thus it is a suit-
`able distribution technique for large-scale distrib-
`uted I/Es.
`
`How VEs scale
`
`As the number of peers increases in a distrib-
`uted VB system, the number of messages needed
`to communicate between these peers increases.
`This increases the load on sending and receiving
`peers, as well as on the network. A system is
`scaierrbie if it can handle a large number of peers
`before its overall performance degrades. Even with
`network-level multicast and peer-to-peer commu-
`nication employed, a system might fail to scale.
`Perhaps the most important scaling criterion,
`then, is how the application itself is designed.
`For example, a distributed VE system using
`unreliable multicast might scale better than one
`using reliable multicast. This happens because reli-
`able multicast protocols using positive acknowl-
`edgments
`suffer
`from the "ack implosion”
`problem-—even though the data is sent by multi-
`cast, the acknowledgments are sent using point-to-
`point messages from each receiving host, leading
`to an increased number of messages as the number
`of peers increases. In reliable multicast protocols
`using negative acknowledgments, or necks,
`receivers send nacks when they discover that pack-
`ets have been lost. This approach has more poten-
`tial for scaling, but it is an ongoing research
`problem to find plausible solutions that scale well.
`Applications can send less information, for
`example by employing compression or using
`dead-reckoning techniques, where kinematic
`equations of the objects may be used to locally
`compute successive positions and orientations.
`DIS-based systems, for example, employ dead-
`reckoning techniques.“
`
`Another technique is to receive less informa-
`tion. In an "optimal" application, peers only
`
`receive exactly the data of interest to them. If the
`data is partitioned in some way, each partition
`can be sent on a separate network connection,
`Then hosts need only process messages from
`those connections of interest to them. In fine-
`
`grained partitioning, a process could, for example,
`register interest in specific objects or even aspects j
`of objects, and then receive updates to just that set
`of objects. In a coarse-grained partitioning, data
`could be separated in disjoint sets, for example
`into completely separated worlds, or partitioned -
`into geographical areas.’
`|
`Whatever the approach, future distributed VE
`systems will require hundreds or thousands of
`multicast addresses that can be simultaneously 1
`connected.“ in comparison, current network
`interfaces have a relatively low limit on the num-
`ber of multicast addresses to which they can con- '
`nect simultaneously. In the case of IP multicast,“
`it
`is unclear whether thousands of multicast
`
`addresses per application are feasible. Despite an‘
`extended address space, routers might not be able I
`to handle the required amount of state.
`Hierarchical encoding techniques provide a
`plausible approach, in which several leveis of res-
`olution are sent; the highest levels are discarded
`at gateways with limited bandwidth. However,
`
`this method might be hard to carry out when the]
`degree of resolution requires knowledge of appli-'
`cation semantics. For example, a peer might want
`low resolution for objects further away in virtual
`space and high resolution for objects that are
`close. But being far away in virtual space might
`have no correlation with being far away in "net-
`working” space.
`Many of the scaling issues in distributed VEs
`depend on how the application is designed.
`Increasing network capacity and processing power.
`make distributed VE. systems possible, but to sup-
`port hundreds or thousands of simultaneous users
`requires software solutions to decrease the num-
`ber of messages.
`
`Distribution In DIVE
`
`DIVE addresses scaling considerations by using-
`a negative acknowledgment reliable multicast pro
`tocol, partial replication, and a simple dead—reck-
`oning module. The distribution model‘ is based
`on peer-to-peer distribution, multicast protocols,
`and coarse-grained partitioning of data. Peers
`connected to the same multicast group interact by
`making concurrent accesses to replicated data
`(entities) and by sending messages. Messages
`addressed to a group are relayed by multicast pro-
`
`IIEEEMuItiMedia
`
`
`
`

`
`I
`
`I
`
`r
`
`i
`
`r
`
`J
`
`3 JOEL-1'3‘: "°—
`
`130
`
`100
`
`80
`
`60
`
`40
`
`20
`
`fr['.«:1aic,ss]
`
`
`
`Since several approaches exist on this issue, the
`semantics of object replication is not part of the
`core DIVE system. Typically, objects are requested
`based on visual range, such as all objects seen by
`an actor, or collisions, such as detected by a colli-
`sion manager controlling a geographical region.
`When a DIVE peer intends to join a world, it
`contacts a name server in order to retrieve a multi-
`
`cast address and thereby join a session. An initial
`world description might exist on a remote system,
`accessible by a universal resource locator (URL).
`However, only the first member of a session loads
`the initial description—all subsequent members
`request world state from an already connected
`peer. The new peer requests initial world state
`over the multicast address and receives an up-to-
`date replica from the closest peer with the latest
`version of the world. This brief initial world state
`
`contains bounding box approximations that serve
`as input on which entities can be requested.
`Since partial replication means that not all
`state is replicated at each peer, data can be lost if
`peers leave the group. In a fault-tolerant applica-
`tion, therefore, the partial replication scheme
`might not be adequate. In this case, a world serv-
`er can keep track of all events in a group and log
`changes to persistent storage.
`To keep the number of messages low, DIVE
`also implements a simple dead-reckoning module
`based on linear and angular velocity. These work
`fine for regular motion, such as vehicle models,
`but such a simple model cannot correctly define
`general human motion.
`
`Sample session
`Figure 7 illustrates a sample DIVE session,
`
`50
`
`Figure 7. Traflic
`received by one peer in a
`DIVE session with three
`
`pm'tic1'pm1t.s. Elapsed
`time is shown on the x
`
`axis, wlrile the received
`
`rate in Kbytes per
`second appears on the y
`axis.
`
`
`
`96-ISLfiuuds
`
`37
`
`tocols to each peer.
`Earlier versions of DIVE use a full replication
`model where peers communicate by a reliable
`multicast protocol using positive acknowledg-
`ments. This approach worked fine for to peers in
`one simultaneous session on a local area network,
`
`but failed beyond this limit. (Note, however, that
`several worlds can run in parallel as well.).Current
`versions use par

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket