The present disclosure relates generally to network communication, and more specifically to a system and method for interaction resiliency in the metaverse.
Institutions across different categories of business lines may be adopting a metaverse ecosystem. As a number of customers using metaverse platforms increases, loads to the metaverse server may increase. It is challenging to make a metaverse server that is capable of serving multiple users simultaneously without any downtime. It is further challenging to handle interactions with users on a metaverse server notwithstanding issues the metaverse server is experiencing.
The system and methods implemented by the system as disclosed in the present disclosure provide technical solutions to the technical problems discussed above by handling requests from metaverse users in a resilient manner by a metaverse server in a metaverse environment. The disclosed system and methods provide several practical applications and technical advantages.
For example, the disclosed system and methods provide the practical application of handling requests from metaverse users in an interaction resilient manner by a metaverse server in the metaverse environment. An interaction resiliency of a system may indicate that the system is capable of serving multiple users simultaneously without significant downtime and further capable of handling interactions with users notwithstanding issues the metaverse server is experiencing. Institutions across different categories of business lines may be adopting a metaverse ecosystem. As a number of customers using metaverse platform increases, loads to the metaverse server may increase. Thus, the interaction resiliency of the metaverse server may become important. An application object in a metaverse environment may be heavy because the application object needs to provide a metaverse experience to the users as well as perform back-end processes. A single application instance may not be able to maintain the interaction resiliency while serving a large number of users simultaneously. The system and methods disclosed herein may split operations required to fulfill a task requested by a user into two sets. A first set of operations may be executed by an edge node processor of the metaverse server, and a second set of operations may be executed by a remote node processor of the metaverse server. A metaverse user should be able to submit a request for a task asynchronously. The metaverse server should be able to perform the task in a manner such that the metaverse server may complete different portions of the task.
A metaverse server may comprise an edge node processor and a remote node processor. The edge node processor may be configured to receive a request of a metaverse user to log into a metaverse environment managed by the metaverse server from a client device associated with a metaverse user. The edge node processor may retrieve user information associated with the metaverse user from a database communicatively connected to the remote node processor to a cache communicatively connected to the edge node processor. The user information at the cache may be updated in an eventually-consistent manner. A change to the user information at the database associated with the remote node processor may not be immediately reflected to the user information at the cache but reflected when the edge node processor performs a cache synchronization. The edge node processor may authenticate the metaverse user based on the user information. The edge node processor may send a response indicating a successful authentication to the client device.
The edge node processor of the metaverse server may be configured to receive a request to perform a task from the client device. The task may comprise a first set of one or more operations and a second set of one or more operations. The first set of one or more operations may be executed by the edge node processor. The second set of one or more operations may need to be executed by the remote node processor. The edge node processor may be configured to execute the first set of one or more operations. In particular embodiments, the first set of one or more operations may comprise presenting at least a part of the user information at the cache to the metaverse user in the metaverse environment. In particular embodiments, the first set of one or more operations may comprise refreshing a metaverse environment the metaverse user is accessing. The refreshing of the metaverse environment may comprise updating a visual representation of a part of the metaverse environment or updating audio effects in the metaverse environment. The edge node processor may be configured to send a first notification to the client device indicating that the task is being performed. The edge node processor may be configured to forward to the remote node processor the second set of one or more operations.
The remote node processor of the metaverse server may be configured to receive the second set of one or more operations from the edge node processor. In particular embodiments, the second set of one or more operations may comprise an operation involving an interaction with an external computing device. In particular embodiments, the second set of one or more operations may comprise an operation permanently changing data associated with the metaverse user. In particular embodiments, the second set of one or more operations may comprise a particular operation that needs to wait for longer than a pre-determined amount of time before conditions for executing the particular operation are satisfied. In particular embodiments, the second set of one or more operations may comprise an operation that takes more than a pre-determined amount of time to execute. The remote node processor may be configured to execute each of the second set of one or more operations when conditions for executing the operation are satisfied. To execute each of the second set of one or more operations, the remote node processor may be configured to store a record associated with the operation to a waiting queue until the conditions for executing the operation are satisfied. The remote node processor may be configured to determine that the conditions for executing the operation are satisfied. The remote node processor may be configured to execute the operation in response to the determination. The remote node processor may be configured to remove the record associated with the operation from the waiting queue. The remote node processor may be configured to send a second notification indicating that the task has been completed to the client device upon completion of the second set of one or more operations.
In particular embodiments, the metaverse server may further comprise a plurality of additional edge node processors. Each of the plurality of additional edge node processors may be assigned to one or more active metaverse users. In particular embodiments, the metaverse server may further comprise a plurality of additional remote node processors. Each of the plurality of additional remote node processors may be assigned to one or more active metaverse users.
Thus, the disclosed system and method generally improve the technology related to performing interactions in the metaverse environment. The disclosed system and method distributes loads into multiple processors in a distributed manner so that a potential processing bottleneck may be avoided in responding to the metaverse users. Furthermore, the disclosed system and method provide interaction resiliency by employing queuing and retrying at the remote node processor, which may reduce or eliminate retransmissions of the task request from the metaverse user and complete tasks with reduced delay.
For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
As described above, previous technologies fail to provide an interaction resiliency of a metaverse server in the metaverse environment. This disclosure presents a system and methods for handling requests from metaverse users in a resilient manner by a metaverse server in a metaverse environment by referring to
In some embodiments, the system 100 may be implemented by the server 104 to provide resilient interactions in a metaverse environment 130. The server 104 may receive an interaction request 144 for an application service from the client device 102. The application service may comprise one or more operations. A first set of one or more operations may be executed by an edge node processor 108a and a second set of one or more operations may be executed by a remote node processor 108b in a distributed manner. The server 104 may retrieve user information 134 stored in the memory 114 upon receiving a first interaction request 144. The server 104 may authenticate the user based on login credentials 136 within the retrieved user information 134. The server 104 may generate a metaverse meeting area 140 with an entity avatar 132 associated with the entity device 101 while authenticating the user. The server 104 may present interaction objects 160 associated with the client device 102 and the entity avatar 132 in the metaverse meeting area 140 on a graphical user interface (GUI) of the client device 102.
The network 106 may include any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding. The network 106 may include all or a portion of a local area network, a metropolitan area network, a wide area network, an overlay network, a software-defined network a virtual private network, a packet data network (e.g., the Internet), a mobile telephone network (e.g., cellular networks, such as 4G or 5G), a Plain Old Telephone network, a wireless data network (e.g., Wi-Fi, WiGig, WiMax, etc.), a Long Term Evolution network, a Universal Mobile Telecommunications System network, a peer-to-peer network, a Bluetooth network, a Near Field Communication network, a Zigbee network, and/or any other suitable network. The network 106 may be configured to support any suitable type of communication protocol as would be appreciated by one of ordinary skill in the art.
A client device 102 is a hardware device that is generally configured to provide hardware and software resources to a user. Examples of a client device 102 include, but are not limited to, a VR device, an AR device, a laptop, a computer, a smartphone, a tablet, a smart device, an Internet-of-Things (IoT) device, or any other suitable type of device. The client device 102 may comprise a graphical user interface (e.g., a display), a touchscreen, a touchpad, keys, buttons, a mouse, or any other suitable type of hardware that allows a user to view data and/or to provide inputs into the client device 102.
Each client device 102 is configured to display a 2D or 3D representation of a metaverse environment 130 to a user. Each client device 102 is further configured to allow a user to send a request for the client device 102 to access and navigate through virtual meeting areas 140 in the metaverse environment 130 to interact with the server 104. As another example, a user may use a client device 102 to send an interaction request 144 to perform a task to the server 104. Example processes are described in more detail below.
Each client device 102 is configured to display a 2D or 3D representation of a metaverse environment 130 to a user. Examples of a metaverse environment 130 include, but are not limited to, a graphical or virtual representation of a metaverse, a map, a city, a building interior, a landscape, a fictional location, an alternate reality, or any other suitable type of location or environment. A metaverse environment 130 may be configured to use realistic or non-realistic physics for the motion of objects within the metaverse environment 130. Within the metaverse environment 130, each user may be associated with a client device 102 and an avatar 132. An avatar 132 is a graphical representation of the client device 102 and the user within the metaverse environment 130. Examples of the avatars 132 include, but are not limited to, a person, an animal, or an object. In some embodiments, the features and characteristics of the avatar 132 may be customizable and user defined. For example, the size, shape, color, attire, accessories, or any other suitable type of appearance features may be specified by a user. By using the avatar 132, a user or the client device 102 can move within the metaverse environment 130 to interact with an entity associated with the server 104 or other avatars 132 and objects within the metaverse environment 130.
The server 104 comprises one or more hardware devices that is generally configured to provide services and software and/or hardware resources to client devices 102. The server 104 is generally a server, or any other device configured to process data and communicate with client devices 102 via the network 106. In particular embodiments, the server 104 may be implemented in the cloud or may be organized in either a centralized or distributed manner.
The processors 108 are hardware devices that comprises a plurality of processors operably coupled to the memory 114. The processors 108 may comprise one or more edge node processors 108a and one or more remote node processors 108b. The processors 108 are any electronic circuitry including, but not limited to, state machines, one or more central processing unit (CPU) chips, logic units, cores (e.g., a multi-core processor), field-programmable gate array (FPGAs), application-specific integrated circuits (ASICs), or digital signal processors (DSPs). The processors 108 may be a programmable logic device, a microcontroller, a microprocessor, or any suitable combination of the preceding. The processors 108 are communicatively coupled to and in signal communication with the memory 114 and the network interface 112. The one or more processors are configured to process data and may be implemented in hardware or software. For example, the processors 108 may be 8-bit, 16-bit, 32-bit, 64-bit, or of any other suitable architecture. The processors 108 may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components. The plurality of processors are configured to implement various instructions. The processors 108 may be a special-purpose computer designed to implement the functions disclosed herein.
The memory 114 stores any of the information described above with respect to
The memory 114 is operable to store user information 134, application profile 148 including contextual objects 150, virtual environment information 118, real-world information 120, avatars 132, virtual meeting areas 140 including corresponding virtual locations 142, metaverse environment 130, and/or any other data or instructions 170. A user information 134 includes login credentials 136, interaction requests 144, and user data 146. A plurality of user information 134 may be stored by the processors 108 in the memory 114. The login credentials 136 are associated with a client device 102 and are configured to register the client device 102 to interact with systems or platforms associated with an entity at a plurality of physical locations in a real-world environment. The login credentials 136 are configured to provide authentication for the client device 102 to communicate with an entity in a real-world environment and for an avatar 132 associated with the client device 102 to navigate in a metaverse environment 130.
The virtual environment information 118 comprises user information 122 and environment information 124. The user information 122 generally comprises information that is associated with any user profiles associated with user accounts that can be used within a metaverse environment 130. The environment information 124 include data of virtual meeting areas 140a-140d and corresponding virtual locations 142. For example, user information 122 may comprise user profile information, online account information, digital assets information, or any other suitable type of information that is associated with a user within a metaverse environment 130. The environment information 124 generally comprises information about the appearance of a metaverse environment 130. For example, the environment information 124 may comprise information associated with objects, landmarks, buildings, structures, avatars 132, virtual meeting areas 140, or any other suitable type of element that is present within a metaverse environment 130. In some embodiments, the environment information 124 may be used to create a representation of a metaverse environment 130 for users. In this case, a metaverse environment 130 may be implemented using any suitable type of software framework or engine.
Examples of a metaverse environment 130 include, but are not limited to, a graphical or virtual representation of a metaverse, a map, a city, a building interior, a landscape, a fictional location, an alternate reality, or any other suitable type of location or environment. A metaverse environment 130 may be configured to use realistic or non-realistic physics for the motion of objects within the metaverse environment 130.
The real-world information 120 comprises user information 126 and environment information 128. The user information 126 generally comprises information that is associated with user profiles and user accounts that can be used within the real world. For example, user information 126 may comprise user profile information, account information, or any other suitable type of information that is associated with a user within a real-world environment. The environment information 128 generally comprises information that is associated with an entity within the real-world that the user is a member of or is associated with. For example, the environment information 128 may comprise physical addresses, GPS based locations, phone numbers, email addresses, contact names, or any other suitable type of information that is associated with an entity. Since the server 104 has access to both the virtual environment information 118 and the real-world information 120, the server 104 may link the virtual environment information 118 and the real-world information 120 together for a user such that changes to the virtual environment information 118 affect or propagate to the real-world information 120 and vice-versa. The server 104 may be configured to store one or more maps that translate or convert different types of interactions between the real-world environment and the metaverse environment 130 and vice-versa.
The network interface 112 is a hardware device that is configured to enable wired and/or wireless communications. The network interface 112 is configured to communicate data between client devices 102 and other devices, systems, or domains. For example, the network interface 112 may comprise an NFC interface, a Bluetooth interface, a Zigbee interface, a Z-wave interface, a radio-frequency identification (RFID) interface, a WIFI interface, a LAN interface, a WAN interface, a PAN interface, a modem, a switch, or a router. The processors 108 are configured to send and receive data using the network interface 112. The network interface 112 may be configured to use any suitable type of communication protocol as would be appreciated by one of ordinary skill in the art.
In particular embodiments, an edge node processor 108a may be configured to receive an interaction request 144 of a metaverse user to log into a metaverse environment 130 managed by the metaverse server 104 from a client device 102 associated with a metaverse user. The edge node processor 108a may retrieve user information 134 associated with the metaverse user from the database 220 communicatively connected to the remote node processors 108b to a cache 230 communicatively connected to the edge node processor 108a. The edge node processor 108a may authenticate the metaverse user based on login credentials 136 within the retrieved user information 134. The edge node processor 108a may generate a metaverse meeting area 140 with an entity avatar 132 associated with the entity device 101 while authenticating the metaverse user. The edge node processor 108a may send a response indicating a successful authentication to the client device 102 associated with the metaverse user. The edge node processor 108a may also present interaction objects 160 in the metaverse meeting area 140 on a graphical user interface (GUI) of the client device 102.
The retrieved user information at the cache 230 may be updated in an eventually-consistent manner. A change to the user information 134 at the database 220 communicatively connected with the remote node processor 108b may not be immediately reflected to the user information at the cache 230. The change of the user information 134 may be reflected to the cache 230 when the edge node processor 108a performs a cache synchronization.
In particular embodiments, the metaverse user may want the metaverse server 104 to perform a task comprising a plurality of operations. Based on input from the metaverse user indicating to send an interaction request 144 to perform the task, the client device 102 associated with the metaverse user may send the interaction request 144. The edge node processor 108a of the metaverse server 104 may be configured to receive the interaction request 144 to perform a task from the client device 102. The task may comprise a first set of one or more operations and a second set of one or more operations. The first set of one or more operations may be executed by the edge node processor 108a. The second set of one or more operations may need to be executed by the remote node processor 108b. The edge node processor 108a may be configured to identify the first set of one or more operations and the second set of one or more operations among operations to be performed to complete the task. The edge node processor 108a may be configured to execute the first set of one or more operations. The edge node processor 108a may be configured to forward the second set of one or more operations to the remote node processor 108b. The edge node processor 108a may be configured to execute the second set of one or more operations.
In an example illustrated in
The edge node processor 108a may execute the first set of one or more operations at operation 202. As an example and not by way of limitation, the first set of one or more operations may comprise presenting at least a part of the user information at the cache 230 to the metaverse user in the metaverse environment 130. As another example and not by way of limitation, the first set of one or more operations may comprise refreshing the metaverse environment 130 that the metaverse user is accessing. The refreshing of the metaverse environment 130 may comprise updating a visual representation of a part of the metaverse environment 130 or updating audio effects in the metaverse environment 130. In particular embodiments, the refreshing of the metaverse environment 130 may comprise updating the interaction objects 160 associated with the client device presented on the GUI of the client device 102. In particular embodiments, the refreshing of the metaverse environment 130 may comprise updating the entity avatar 132 presented on the GUI of the client device 102.
The edge node processor 108a may be configured to forward the second set of one or more operations to the remote node processor 108b at operation 206. In particular embodiments, the remote node processor 108b may be determined among one or more available remote node processors 108b in the metaverse server 104 when the metaverse user logs into the metaverse server 104. In particular embodiments, a module within the metaverse server 104 may select a remote node processor 108b to execute the second set of one or more operations among available remote node processors in the metaverse server 104. In particular embodiments, the module may be a load-management module. The edge node processor 108a may forward the second set of one or more operations to the instantly selected remote node processor 108b. In such a case, a number of different remote node processors 108b may perform operations for the metaverse user in a single login session.
The edge node processor 108a may be configured to send a first notification 204 to the client device 102 indicating that the task is being performed. Upon receiving the first notification 204, the client device 102 may present an indication to the metaverse user indicating that the interaction request 144 has been successfully submitted to the metaverse server 104 and the interaction request 144 is being processed by the metaverse server 104. Based on the indication, the metaverse user may not need to submit duplicated interaction requests 144 for the same task even when a second notification 210 indicating a task completion is being delayed.
The remote node processor 108b of the metaverse server 104 may be configured to receive the second set of one or more operations from the edge node processor 108a at operation 206. In particular embodiments, the remote node processor 108b may be associated with the metaverse user when the metaverse user logs into the metaverse server 104. In particular embodiments, the remote node processor 108b may be instantly selected by a module immediately before the edge node processor 108a send the second set of one or more operations. At operation 208, the remote node processor 108b may execute the second set of one or more operations. In particular embodiments, the second set of one or more operations may comprise an operation involving an interaction with an external computing device 240. As an example and not by way of limitation, the second set of one or more operations may comprise sending data to an external computing device 240. As another example and not by way of limitation, the second set of one or more operations may comprise exchanging data with an external computing device 240. In particular embodiments, the second set of one or more operations may comprise an operation permanently changing user data 146 associated with the metaverse user. As an example and not by way of limitation, the second set of one or more operations may comprise updating user contact information such as a mailing address, a phone number, or an email address. As another example and not by way of limitation, the second set of one or more operations may comprise updating user data 146 based on the data exchange with the external computing device 240. In particular embodiments, the second set of one or more operations may comprise a particular operation that needs to wait for longer than a pre-determined amount of time before conditions for executing the particular operation are satisfied. As an example and not by way of limitation, the second set of one or more operations may comprise sending a message to an external computing device 240 at a pre-determined time instance. The remote node processor 108b may set a timer to the pre-determined time instance and send the message to the external computing device 240 when the timer expires. In particular embodiments, the second set of one or more operations may comprise an operation that takes more than a pre-determined amount of time to execute. As an example and not by way of limitation, the second set of one or more operations may comprise performing extensive computations that may take more than several seconds. Also, the extensive computations may require the remote node processor 108b to wait until required computing resources become available. As another example and not by way of limitation, the second set of one or more operations may comprise exchanging a series of messages with one or more external computing devices 240, which may take more than several seconds. Upon completing the second set of one or more operations, the remote node processor 108b may be configured to send a second notification 210 indicating that the task has been completed to the client device 102.
In particular embodiments, each of the second set of one or more operations may be associated with conditions for executing the operation. As an example and not by way of limitation, an operation in the second set of one or more operations may be executed on or after a pre-determined time. As another example and not by way of limitation, an operation in the second set of one or more operations may be executed when a pre-determined computing resources are available. As yet another example and not by way of limitation, an operation in the second set of one or more operations may be executed when a network connection is established with an external computing device 240. The remote node processor 108b may be configured to execute each of the second set of one or more operations when conditions for executing the operation are satisfied. To execute each of the second set of one or more operations, the remote node processor 108b may be configured to determine whether conditions for executing the operation are met. If the conditions for executing the operation are not satisfied, the remote node processor 108b may store a record associated with the operation to a waiting queue until the conditions for executing the operation are satisfied. In particular embodiments, the remote node processor 108b may set a triggering event for each record associated with an operation in the waiting queue. As an example and not by way of limitation, the remote node processor 108b may set a timer to a time instance when the operation is to be executed on or after the time instance. When the timer expires, the remote node processor 108b may determine that the conditions for executing the operation are satisfied. The remote node processor 108b may be configured to execute the operation in response to the determination. As another example and not by way of limitation, the remote node processor 108b may setup an event-driven notification for a network connection establishment with an external computing device 240 when the operation is to be executed when the network connection is established. As yet another example and not by way of limitation, the remote node processor 108b may set a random timer associated with each record in the waiting queue. When the timer associated with a record expires, the remote node processor 108b may determine whether conditions for execution an operation corresponding to the record are satisfied. If not, the remote node processor 108b may set another random timer associated with the record. If the conditions are satisfied, the remote node processor 108b may execute the operation corresponding to the record. The remote node processor 108b may be configured to remove the record associated with the operation from the waiting queue after successfully executing the operation. When all of the second set of one or more operations are successfully executed, the remote node processor 108b may send the second notification 210 indicating that the task has been completed to the client device 102 associated with the metaverse user.
In particular embodiments, the metaverse server 104 may further comprise a plurality of additional edge node processors 108a. Each of the plurality of additional edge node processors 108a may be assigned to one or more active metaverse users. In particular embodiments, the metaverse server 104 may further comprise a plurality of additional remote node processors 108b. Each of the plurality of additional remote node processors 108b may be assigned to one or more active metaverse users.
At operation 310, the edge node processor 108a may receive a request to perform a task from a client device associated with a metaverse user. The task may comprise a first set of one or more operations that are executed by the edge node processor 108a and a second set of one or more operations that need to be executed by the remote node processor 108b. Upon receiving the request, the edge node processor 108a may identify a plurality of operations to be executed to complete the task. The edge node processor 108a may determine a first set of one or more operations to be executed by the edge node processor 108a among the plurality of operations. The edge node processor 108a may also determine a second set of one or more operations to be executed by the remote node processor 108b among the plurality of operations. At operation 320, the edge node processor 108a may execute the first set of one or more operations. In particular embodiments, the first set of one or more operations may comprise presenting at least a part of the user information at the cache 230 to the metaverse user in the metaverse environment. In particular embodiments, the first set of one or more operations may comprise refreshing the metaverse environment that the metaverse user is accessing. The refreshing of the metaverse environment may comprise updating a visual representation of a part of the metaverse environment or updating audio effects in the metaverse environment. At operation 330, the edge node processor 108a may send a first notification to the client device associated with the metaverse user indicating that the task is being performed. Based on the first notification, the metaverse user may not need to submit duplicated requests for the same task even when a second notification indicating a task completion is being delayed. At operation 340, the edge node processor 108a may forward the second set of one or more operations to the remote node processor 108b. Because operations 320, 330 and 340 are not depending on each other, the operations 320, 330, and 340 may occur in any suitable order. At operation 350, the remote node processor 108b may receive the second set of one or more operations from the edge node processor 108a. At operation 360, the remote node processor 108b may execute each of the second set of one or more operations when conditions for executing the operation are satisfied. To execute each of the second set of one or more operations, the remote node processor 108b may determine whether conditions for executing the operation are met. If the conditions for executing the operation are not satisfied, the remote node processor 108b may store a record associated with the operation to a waiting queue until the conditions for executing the operation are satisfied. If the conditions for executing the operation are satisfied, the remote node processor 108b may execute the operation. At operation 370, the remote node processor 108b may determine whether the second set of one or more operations has been completed. If any of the second set of one or more operations is yet to be executed, the remote node processor 108b may go to operation 360. If the second set of one or more operations has been completed. the remote node processor 108b may proceed to operation 380, where the remote node processor 108b may send a second notification to the client device indicating that the task has been completed.