Server System for Virtual Space Concurrency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems for processing virtual 3D spaces face challenges in efficiently managing complex navigation and concurrency, especially in maintaining a seamless shared virtual reality experience across multiple devices with low latency and high scalability.
Innovation Solution
A server system is implemented with a back-end and front-end architecture, where the virtual 3D space is divided into tiles, with each back-end server maintaining definitive copies of nodes and using high-capacity networks for communication between servers, allowing for efficient message routing and processing across multiple back-end and front-end servers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple independent servers are used to simulate different regions or object groups in the virtual space, then scalability and concurrency are improved, but system complexity and communication overhead increase
Solution Approach 1:
The virtual space is divided into multiple regions, with each region assigned to a separate server for independent simulation and processing. This segmentation enables concurrent processing across multiple servers while maintaining manageable system complexity through clear spatial boundaries and dedicated server responsibilities.
Solution Approach 2:
A server assignment system acts as an intermediary that manages the mapping between virtual objects and physical servers. This mediator handles the complexity of distributing objects across servers, managing region assignments, and coordinating communication between servers, thereby reducing the overall system complexity burden.
2Loss of time
If the virtual space is divided into multiple regions with different servers simulating each region, then latency is reduced and responsiveness is improved, but navigation complexity and organization difficulty increase
Solution Approach 1:
The virtual space is segmented into discrete regions that can be independently managed by different servers. This segmentation reduces simulation latency by allowing parallel processing of region-specific events while providing a structured framework for navigation and organization through clear regional boundaries.
Solution Approach 2:
The server assignment system provides universal functionality that works across all regions and object types. It handles diverse operations including object creation, movement, deletion, and region management through a unified interface, thereby reducing navigation and organization complexity despite the multi-region architecture.
3Power
If a custom coded client application with multicomputer server back-end is used, then processing power and graphical capability are improved, but development cost and maintenance complexity increase
Solution Approach 1:
The system architecture is segmented into independent client and server components with clearly defined interfaces. This segmentation allows for modular development where the client application can be developed separately from the server backend, reducing overall development cost and maintenance complexity while preserving high processing power capabilities.
Solution Approach 2:
The server assignment system provides universal functionality that works across different client platforms and server configurations. This multi-functional approach reduces development costs by providing a standardized interface that handles various operations uniformly, simplifying both initial development and ongoing maintenance.
Data Source
Figure 1
Figure 2
AI summary
A server system (100) for processing a virtual space, the virtual space comprising a plurality of entities (A-E), the server system (100) comprising: one or more back-end servers (108); and one or more front-end servers (114); wherein each back-end server (108) stores a respective subset of the plurality of entities (A-E); each front-end server (114) is communicatively coupled to each back-end server (108); each front-end server (114) is configured to be communicatively coupled to one or more client devices (106); each front-end server (114) stores one or more entity references (RefA-RefE); and each entity reference (RefA-RefE) comprises a first identifier for identifying a respective entity (A-E) and a second identifier for identifying the back-end server (108) on which the entity (A-E) identified by the first identifier is stored.