chapter eight - internet networked virtual environments vrml-based virtual environments 251 some...
TRANSCRIPT
Chapter Eight - Internet Networked Virtual Environments
VRML-Based Virtual VRML-Based Virtual Environments 251Environments 251
• Some Existing Networked Some Existing Networked VRML Worlds 253VRML Worlds 253
virtual reality transfer virtual reality transfer protocol 262protocol 262
VRML-Based Virtual VRML-Based Virtual Environments 251Environments 251
• Some Existing Networked Some Existing Networked VRML Worlds 253VRML Worlds 253
virtual reality transfer virtual reality transfer protocol 262protocol 262
Internet Gaming 263Internet Gaming 263
• Overview of Online Overview of Online Gaming Services 264Gaming Services 264
• Internet Gaming Software Internet Gaming Software Architectures 266Architectures 266
• Future Internet Gaming Future Internet Gaming Directions 269Directions 269
Conclusion 271Conclusion 271
References 271References 271
Internet Gaming 263Internet Gaming 263
• Overview of Online Overview of Online Gaming Services 264Gaming Services 264
• Internet Gaming Software Internet Gaming Software Architectures 266Architectures 266
• Future Internet Gaming Future Internet Gaming Directions 269Directions 269
Conclusion 271Conclusion 271
References 271References 271
VRML-Based Net-VEsAre already dead but the xml/x3d look quite Are already dead but the xml/x3d look quite promising ...promising ...Are already dead but the xml/x3d look quite Are already dead but the xml/x3d look quite promising ...promising ...
Internet Game ArchitecturesOverview of Online Gaming ServicesOverview of Online Gaming Services
Internet Gaming Software ArchitecturesInternet Gaming Software Architectures
Future Internet Gaming DirectionsFuture Internet Gaming Directions
Overview of Online Gaming ServicesOverview of Online Gaming Services
Internet Gaming Software ArchitecturesInternet Gaming Software Architectures
Future Internet Gaming DirectionsFuture Internet Gaming Directions
Excerpt from technical feasibility document to the VCs ...• XXX has plans to develop a fully-3D web portal. We XXX has plans to develop a fully-3D web portal. We
plan on multiple 3D virtual channels operating in plan on multiple 3D virtual channels operating in parallel. Each VR channel will have its own content and parallel. Each VR channel will have its own content and our customers will be able to smoothly transition our customers will be able to smoothly transition between channels via environment selection off of our between channels via environment selection off of our web presence. There will be entertainment channels, web presence. There will be entertainment channels, where complex, multiplayer 3D worlds are navigated where complex, multiplayer 3D worlds are navigated in adventure fashion. There will be e-commerce in adventure fashion. There will be e-commerce channels and 3D storefronts. channels and 3D storefronts.
• XXX has plans to develop a fully-3D web portal. We XXX has plans to develop a fully-3D web portal. We plan on multiple 3D virtual channels operating in plan on multiple 3D virtual channels operating in parallel. Each VR channel will have its own content and parallel. Each VR channel will have its own content and our customers will be able to smoothly transition our customers will be able to smoothly transition between channels via environment selection off of our between channels via environment selection off of our web presence. There will be entertainment channels, web presence. There will be entertainment channels, where complex, multiplayer 3D worlds are navigated where complex, multiplayer 3D worlds are navigated in adventure fashion. There will be e-commerce in adventure fashion. There will be e-commerce channels and 3D storefronts. channels and 3D storefronts.
Excerpt from technical feasibility document to the VCs ...• The 3D storefronts will allow our customers to examine The 3D storefronts will allow our customers to examine
and purchase products in full 3D. Our virtual and purchase products in full 3D. Our virtual storefronts will have the ability to be staffed by storefronts will have the ability to be staffed by knowledgeable clerks able to answer questions via an knowledgeable clerks able to answer questions via an audio channel inside of the virtual environment. Virtual audio channel inside of the virtual environment. Virtual community channels will be available depending on community channels will be available depending on the synchronicity of customer interests. Our customers the synchronicity of customer interests. Our customers will be able to homestead in our virtual communities. will be able to homestead in our virtual communities.
• The 3D storefronts will allow our customers to examine The 3D storefronts will allow our customers to examine and purchase products in full 3D. Our virtual and purchase products in full 3D. Our virtual storefronts will have the ability to be staffed by storefronts will have the ability to be staffed by knowledgeable clerks able to answer questions via an knowledgeable clerks able to answer questions via an audio channel inside of the virtual environment. Virtual audio channel inside of the virtual environment. Virtual community channels will be available depending on community channels will be available depending on the synchronicity of customer interests. Our customers the synchronicity of customer interests. Our customers will be able to homestead in our virtual communities. will be able to homestead in our virtual communities.
Excerpt from technical feasibility document to the VCs ...• They will be able to meet with their friends in virtual They will be able to meet with their friends in virtual
space for interest area discussions or just chat. Our space for interest area discussions or just chat. Our customers will be able to create their own corner of customers will be able to create their own corner of the virtual space they desire to occupy. We will have the virtual space they desire to occupy. We will have virtual education channels where our customers will be virtual education channels where our customers will be able to attend lecturers and presentations in virtual able to attend lecturers and presentations in virtual space. space.
• They will be able to meet with their friends in virtual They will be able to meet with their friends in virtual space for interest area discussions or just chat. Our space for interest area discussions or just chat. Our customers will be able to create their own corner of customers will be able to create their own corner of the virtual space they desire to occupy. We will have the virtual space they desire to occupy. We will have virtual education channels where our customers will be virtual education channels where our customers will be able to attend lecturers and presentations in virtual able to attend lecturers and presentations in virtual space. space.
Chapter Nine - Perspective and Predictions
Better Library Support 275Better Library Support 275
• Bamboo 276Bamboo 276
• High Level Architecture High Level Architecture 279279
• Java-Based Toolkits 283Java-Based Toolkits 283
• Toolkits Being Developed Toolkits Being Developed Everywhere . . . 284Everywhere . . . 284
Better Library Support 275Better Library Support 275
• Bamboo 276Bamboo 276
• High Level Architecture High Level Architecture 279279
• Java-Based Toolkits 283Java-Based Toolkits 283
• Toolkits Being Developed Toolkits Being Developed Everywhere . . . 284Everywhere . . . 284
Toward a Better Internet Toward a Better Internet 285285
Research Frontiers 287Research Frontiers 287
Past, Present, and Future Past, Present, and Future 289289
References 290References 290
Toward a Better Internet Toward a Better Internet 285285
Research Frontiers 287Research Frontiers 287
Past, Present, and Future Past, Present, and Future 289289
References 290References 290
Better Library SupportBambooBamboo
High Level ArchitectureHigh Level Architecture
Java-Based ToolkitsJava-Based Toolkits
Toolkits Being Developed Everywhere ...Toolkits Being Developed Everywhere ...
BambooBamboo
High Level ArchitectureHigh Level Architecture
Java-Based ToolkitsJava-Based Toolkits
Toolkits Being Developed Everywhere ...Toolkits Being Developed Everywhere ...
Networked Virtual Environments - A Vision
Eventually, there will exist a persistent virtual Eventually, there will exist a persistent virtual environment simultaneously shared by millions.environment simultaneously shared by millions.
There can never be a global reboot.There can never be a global reboot.
All modifications must happen on the fly.All modifications must happen on the fly.
The development of participant programs (live & The development of participant programs (live & autonomous characters) for that VE must be as simple autonomous characters) for that VE must be as simple as writing a web page is today ...as writing a web page is today ...
Eventually, there will exist a persistent virtual Eventually, there will exist a persistent virtual environment simultaneously shared by millions.environment simultaneously shared by millions.
There can never be a global reboot.There can never be a global reboot.
All modifications must happen on the fly.All modifications must happen on the fly.
The development of participant programs (live & The development of participant programs (live & autonomous characters) for that VE must be as simple autonomous characters) for that VE must be as simple as writing a web page is today ...as writing a web page is today ...
Requirements for that Vision - Network Software Architecture
Extensible/Composable/InteroperableExtensible/Composable/Interoperable
• Cross-platform, component frameworksCross-platform, component frameworks
• Dynamic Behavior ProtocolsDynamic Behavior Protocols
Ability to Suspend/Resume StateAbility to Suspend/Resume State
• Persistent UniversePersistent Universe
Large-Scale/Infinite Number of PlayersLarge-Scale/Infinite Number of Players
• Area of Interest ManagementArea of Interest Management
Extensible/Composable/InteroperableExtensible/Composable/Interoperable
• Cross-platform, component frameworksCross-platform, component frameworks
• Dynamic Behavior ProtocolsDynamic Behavior Protocols
Ability to Suspend/Resume StateAbility to Suspend/Resume State
• Persistent UniversePersistent Universe
Large-Scale/Infinite Number of PlayersLarge-Scale/Infinite Number of Players
• Area of Interest ManagementArea of Interest Management
NSA Requirements - Extensible, Composable & Interoperable
Motivation - Cross-platform, component Motivation - Cross-platform, component frameworksframeworks
• The motivation behind cross-platform component The motivation behind cross-platform component frameworks is that we want to build systems that frameworks is that we want to build systems that are changeable overtime, systems whose updates are changeable overtime, systems whose updates are downloadable over the Internet, systems that are downloadable over the Internet, systems that can work on multiple platforms, systems whose can work on multiple platforms, systems whose pieces are small-enough that they are pieces are small-enough that they are understandable & reusable.understandable & reusable.
Motivation - Cross-platform, component Motivation - Cross-platform, component frameworksframeworks
• The motivation behind cross-platform component The motivation behind cross-platform component frameworks is that we want to build systems that frameworks is that we want to build systems that are changeable overtime, systems whose updates are changeable overtime, systems whose updates are downloadable over the Internet, systems that are downloadable over the Internet, systems that can work on multiple platforms, systems whose can work on multiple platforms, systems whose pieces are small-enough that they are pieces are small-enough that they are understandable & reusable.understandable & reusable.
NSA Requirements - Extensible, Composable & Interoperable
More Than Just Extending More Than Just Extending MemoryMemory
• Dynamically loaded modules Dynamically loaded modules require a consistent require a consistent framework in which to plug framework in which to plug into.into.
• The system must establish a The system must establish a convention such that modules convention such that modules can integrate into already can integrate into already running applications.running applications.
More Than Just Extending More Than Just Extending MemoryMemory
• Dynamically loaded modules Dynamically loaded modules require a consistent require a consistent framework in which to plug framework in which to plug into.into.
• The system must establish a The system must establish a convention such that modules convention such that modules can integrate into already can integrate into already running applications.running applications.
Netscape Portable Runtime
Bamboo Kernel
Lang-1Loader
Lang-NLoader
Lang-2Loader
Dynamic Behavior ProtocolsDesire - each entity in the VE able to define its own Desire - each entity in the VE able to define its own protocol modules, modules that are dynamically protocol modules, modules that are dynamically loadable from the web.loadable from the web.
• easy to maintaineasy to maintain
• always fully implementedalways fully implemented
• always optimized per individualalways optimized per individual
• never consumes unused system resourcesnever consumes unused system resources
• updateable in real-time!updateable in real-time!
Desire - each entity in the VE able to define its own Desire - each entity in the VE able to define its own protocol modules, modules that are dynamically protocol modules, modules that are dynamically loadable from the web.loadable from the web.
• easy to maintaineasy to maintain
• always fully implementedalways fully implemented
• always optimized per individualalways optimized per individual
• never consumes unused system resourcesnever consumes unused system resources
• updateable in real-time!updateable in real-time!
Dynamic Behavior Protocol Architecture
Object i
Object i Server
Object j Client Stub
Object kClient Stub
Object j
Object j Server
Object i Client Stub
Object kClient Stub
Object k
Object k Server
Object i Client Stub
Object jClient Stub
A Three-Tier Approach Seems the Way to Go ...
Global - An environment registryGlobal - An environment registry
• (help me find an environment (help me find an environment i.e. DNS, MAAS)i.e. DNS, MAAS)
Environment - An object registryEnvironment - An object registry
• (what objects are out there?)(what objects are out there?)
Object - A module registryObject - A module registry
• (input/output channels)(input/output channels)
Global - An environment registryGlobal - An environment registry
• (help me find an environment (help me find an environment i.e. DNS, MAAS)i.e. DNS, MAAS)
Environment - An object registryEnvironment - An object registry
• (what objects are out there?)(what objects are out there?)
Object - A module registryObject - A module registry
• (input/output channels)(input/output channels)
A Persistent UniverseMotivation - Motivation -
• By using dynamic protocols, along with components of the By using dynamic protocols, along with components of the existing Internet architecture, we can support the existing Internet architecture, we can support the persistence of a large-scale distributed virtual environment.persistence of a large-scale distributed virtual environment.
http Statelets - A platform independent file containing:http Statelets - A platform independent file containing:
• Names of archived classesNames of archived classes
• URLs of the modules containing the classesURLs of the modules containing the classes
• Archived classesArchived classes
Motivation - Motivation -
• By using dynamic protocols, along with components of the By using dynamic protocols, along with components of the existing Internet architecture, we can support the existing Internet architecture, we can support the persistence of a large-scale distributed virtual environment.persistence of a large-scale distributed virtual environment.
http Statelets - A platform independent file containing:http Statelets - A platform independent file containing:
• Names of archived classesNames of archived classes
• URLs of the modules containing the classesURLs of the modules containing the classes
• Archived classesArchived classes
Area of Interest Management - Large-Scale, Infinite Players
Multicast and area of Multicast and area of interest managers - to interest managers - to facilitate many-to-many facilitate many-to-many communications while communications while using limited bandwidth. using limited bandwidth.
Multicast and area of Multicast and area of interest managers - to interest managers - to facilitate many-to-many facilitate many-to-many communications while communications while using limited bandwidth. using limited bandwidth.
4 Keys to Success for Very Large Virtual Environments
Receive Receive onlyonly what you need to process. what you need to process.
Must be expandable Must be expandable
• dynamicallydynamically add new protocols, environments add new protocols, environments
Must have the ability to handle ‘crowd’ Must have the ability to handle ‘crowd’ situations.situations.
LowLow overhead for interest management. overhead for interest management.
Receive Receive onlyonly what you need to process. what you need to process.
Must be expandable Must be expandable
• dynamicallydynamically add new protocols, environments add new protocols, environments
Must have the ability to handle ‘crowd’ Must have the ability to handle ‘crowd’ situations.situations.
LowLow overhead for interest management. overhead for interest management.
Interest Management Issues• Network Latency, BandwidthNetwork Latency, Bandwidth
• The time to join a multicast group (0.5 seconds typical)The time to join a multicast group (0.5 seconds typical)
• Multicast Address Space/Allocation --> IPv6Multicast Address Space/Allocation --> IPv6
• Number of multicast groups supported by workstation/PC Number of multicast groups supported by workstation/PC NICsNICs
• Number of multicast routes supported by network Number of multicast routes supported by network routers.routers.
• Unreliable nature of large-scale multicast --> Need QoS Unreliable nature of large-scale multicast --> Need QoS supportsupport
• Network Latency, BandwidthNetwork Latency, Bandwidth
• The time to join a multicast group (0.5 seconds typical)The time to join a multicast group (0.5 seconds typical)
• Multicast Address Space/Allocation --> IPv6Multicast Address Space/Allocation --> IPv6
• Number of multicast groups supported by workstation/PC Number of multicast groups supported by workstation/PC NICsNICs
• Number of multicast routes supported by network Number of multicast routes supported by network routers.routers.
• Unreliable nature of large-scale multicast --> Need QoS Unreliable nature of large-scale multicast --> Need QoS supportsupport
Standards for Interoperability
We must be designing standards for We must be designing standards for interoperability that are as simple to interoperability that are as simple to use as writing a web page …use as writing a web page …
• So once we have done all the net-VE work So once we have done all the net-VE work on the previous slides, we can then think on the previous slides, we can then think about standardization ...about standardization ...
We must be designing standards for We must be designing standards for interoperability that are as simple to interoperability that are as simple to use as writing a web page …use as writing a web page …
• So once we have done all the net-VE work So once we have done all the net-VE work on the previous slides, we can then think on the previous slides, we can then think about standardization ...about standardization ...
Appendix - Network Communications in C, C++, and Java
Using TCP/IP from C and Using TCP/IP from C and C++ 293C++ 293
Managing Concurrent Managing Concurrent Connections in C and C++ Connections in C and C++ 297297
Using TCP/IP from Java 300Using TCP/IP from Java 300
Managing Concurrent Managing Concurrent Connections in Java 303Connections in Java 303
Using UDP/IP from C and Using UDP/IP from C and C++ 305C++ 305
Using TCP/IP from C and Using TCP/IP from C and C++ 293C++ 293
Managing Concurrent Managing Concurrent Connections in C and C++ Connections in C and C++ 297297
Using TCP/IP from Java 300Using TCP/IP from Java 300
Managing Concurrent Managing Concurrent Connections in Java 303Connections in Java 303
Using UDP/IP from C and Using UDP/IP from C and C++ 305C++ 305
Using UDP/IP from Java Using UDP/IP from Java 308308
Broadcasting from C and Broadcasting from C and C++ 310C++ 310
Broadcasting from Java Broadcasting from Java 310310
Multicasting from C and C+Multicasting from C and C++ 311+ 311
Multicasting from Java 312Multicasting from Java 312
References 313References 313
Using UDP/IP from Java Using UDP/IP from Java 308308
Broadcasting from C and Broadcasting from C and C++ 310C++ 310
Broadcasting from Java Broadcasting from Java 310310
Multicasting from C and C+Multicasting from C and C++ 311+ 311
Multicasting from Java 312Multicasting from Java 312
References 313References 313