Creating extended reality applications with application programming interface calls
The use of interoperable APIs and LLMs allows for rapid, platform-agnostic creation of XR applications, addressing the challenges of development time and interoperability, enabling efficient and cost-effective deployment across diverse platforms.
Patent Information
- Application Number
- PCT/SE2024/050761
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-02
- Publication Date
- 2026-03-05
AI Technical Summary
Existing XR applications require significant development time and lack platform-agnostic interoperability, necessitating code rewriting for different platforms, which is time-consuming and costly.
Utilizing a set of interoperable APIs, such as RESTful APIs, to create XR applications in a platform-agnostic manner, allowing developers to build XR applications through HTTP calls and leveraging LLMs for on-the-fly experience creation, with a data model that includes assets and instructions.
Enables rapid development and deployment of XR applications across multiple platforms without code rewrites, reducing time and cost, and facilitating seamless integration and interoperability.
Smart Images

Figure SE2024050761_05032026_PF_FP_ABST
Abstract
Description
CREATING EXTENDED REALITY APPLICATIONS WITH APPLICATION PROGRAMMING INTERFACE CALLSTECHNICAL FIELD
[0001] The present disclosure is related to wireless communication systems and more particularly to creating extended reality applications with application programming interface (“API”) calls.BACKGROUND
[0002] FIG. 1 illustrates an example of a new radio (“NR”) network (e.g., a 5th Generation (“5G”) network) including a 5G core (“5GC”) network 130, network nodes 120a-b (e.g., 5G base station (“gNB”)), multiple communication devices 110 (also referred to as user equipment (“UE”)).
[0003] In some examples, the UE includes an extended reality (“XR”) device. XR encompasses a spectrum of immersive technologies that blend the physical and digital worlds, including virtual reality (“VR”), augmented reality (“AR”), and mixed reality (“MR”). XR has garnered significant attention across various industries due to its potential to revolutionize human-computer interaction, training and education, healthcare, entertainment, and more. By overlaying virtual elements onto the real world or creating entirely synthetic environments, XR technologies offer users unprecedented levels of immersion and interactivity, opening new opportunities for enhancing productivity, learning, and entertainment experiences. With advancements in hardware, software, and content development, XR has become increasingly accessible and capable, driving its widespread adoption and spurring innovation in diverse fields.
[0004] As XR continues to evolve, its impact on society, human behavior, and technology adoption is a subject of growing interest and investigation. The convergence of XR with fields such as computer vision, human-computer interaction, and artificial intelligence presents unique challenges and opportunities, prompting research into areas such as user experience design, spatial computing, multimodal interaction, and ethical considerations. Furthermore, the potential applications of XR in areas such as healthcare, architecture, remote collaboration, and training necessitate interdisciplinary research to address technical, social, and ethical implications.
[0005] The development and deployment of XR applications are increasingly reliant on a diverse set of technologies and standards, each playing a crucial role in shaping the interoperability and accessibility of immersive experiences. OpenXR, WebXR, and the ETSI Augmented Reality Framework (“ARF”) represent key pillars in the XR ecosystem, offering standardized approaches to interoperability and integration within XR applications.SUMMARY
[0006] According to some embodiments, a method of operating an extended reality, XR, device is provided. The method includes obtaining a data model from a server via an application programming interface, API, provided by a server. The method further includes determining an XR runtime function to be executed based on the data model. The method further includes executing the XR runtime function.
[0007] According to other embodiments, a method of operating a server is provided. The method includes receiving a message requesting a data model, via an application programming interface, API, from an extended reality, XR, device. The method further includes, responsive to receiving the message, transmitting the data model to the XR device.
[0008] According to other embodiments, a XR device, a developer device, a server, a communication device, a network node, a computer program, computer program product, non- transitory computer readable medium, host, or system is provided to perform one of the above methods.
[0009] Certain embodiments may provide one or more of the following technical advantages. In some embodiments, the creation of XR applications may be allowed, even at runtime, in a platform-agnostic manner through APIs. In additional or alternative embodiments, an application can be written that can target multiple platforms without changing the code base. In some examples these innovations reduce development and deployment time as well as cost for XR applications. In additional or alternative examples, these innovations allow for easy creation of XR applications using LLMs, feeding the API specification in the context, as well as a textual description of the wanted application.BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The accompanying drawings, which are included to provide a further understanding of the disclosure and are incorporated in and constitute a part of this application, illustrate certain non-limiting embodiments of inventive concepts. In the drawings:
[0011] FIG. 1 is a schematic diagram illustrating an example of a 5thgeneration (“5G”) network;
[0012] FIG. 2 is a block diagram illustrating an example of a system that enables creating XR applications with API calls in accordance with some embodiments;
[0013] FIG. 3 is diagram illustrating an example of a data model returned by an API in accordance with some embodiments;
[0014] FIG. 4 is a table illustrating an example of methods for managing assets and applications in accordance with some embodiments;
[0015] FIG. 5 is a signal flow diagram illustrating an example of an interaction between an XR device and a server in accordance with some embodiments;
[0016] FIG. 6 is a signal flow diagram illustrating an example of execution of an XR application in accordance with some embodiments;
[0017] FIG. 7 is a schematic diagram illustrating an example of an XR display in accordance with some embodiments;
[0018] FIG. 8 is a diagram illustrating an example of an output of a curl command line interface in accordance with some embodiments;
[0019] FIG. 9 is a signal flow diagram illustrating an example of an interaction between a developer and a server for creation of an XR application in accordance with some embodiments;
[0020] FIG. 10 is a signal flow diagram illustrating an example of an interaction between a developer and a LLM for creation of an XR application in accordance with some embodiments;
[0021] FIG. 11 is a flow chart illustrating an example of operations performed by a XR device in accordance with some embodiments;
[0022] FIG. 12 is a flow chart illustrating an example of operations performed by a server in accordance with some embodiments;
[0023] FIG. 13 is a block diagram of a communication system in accordance with some embodiments;
[0024] FIG. 14 is a block diagram of a user equipment in accordance with some embodiments;
[0025] FIG. 15 is a block diagram of a network node in accordance with some embodiments; and
[0026] FIG. 16 is a block diagram of a virtualization environment in accordance with some embodiments.DETAILED DESCRIPTION
[0027] Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. Embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art, in which examples of embodiments of inventive concepts are shown. Inventive concepts may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of present inventive concepts to those skilled in theart. It should also be noted that these embodiments are not mutually exclusive. Components from one embodiment may be tacitly assumed to be present / used in another embodiment.
[0028] Interoperability in XR applications, particularly with a focus on the OpenXR standard, is a pivotal area of research and development as XR technologies continue to evolve. OpenXR is designed to address the challenge of interoperability by providing a common set of APIs and guidelines for XR hardware integration, aiming to streamline the development process and enhance compatibility across various XR devices.
[0029] Interoperability in XR applications, with a particular focus on the WebXR standard, is a critical area of study as XR technologies continue to gain prominence and accessibility. WebXR enables the delivery of immersive experiences through web browsers, offering a platform-agnostic approach to building XR applications that can be accessed across a wide range of devices. By leveraging web technologies such as WebGL and Web Assembly, WebXR facilitates the creation of interactive and engaging XR experiences without the need for additional installations or downloads.
[0030] Interoperability in XR applications, with a specific focus on the Augmented Reality Framework (“ARF”) is a crucial area of study as XR technologies continue to advance and expand into various domains. ETSI ARF offers a comprehensive set of specifications and guidelines aimed at standardizing the interfaces and interactions between AR components, devices, and services, with the goal of promoting seamless interoperability and integration of AR technologies. Embodiments herein are generally described in relation to the ETSI ARF specification.
[0031] The term asset is used herein to refer to any kind of content positioned and oriented in the real world that alters the user's experience. Content types include 3D models, images, videos, text, sounds sources, etc.
[0032] The term trackable is used herein to refer to a model of parts of the real world. Trackables are elements of the real world of which features are available and / or could be extracted. Trackables provide a Coordinate Reference System in which a pose can be expressed. Examples of trackables are QR code markers, images, 3D meshes, etc.
[0033] The term world anchor is used herein to refer to a fixed position in relation to one or more elements of the real world. It has a Coordinate Reference System in which assets are spatially registered.
[0034] The term world link is used herein to represent and define a relative 3D position and orientation between elements (Trackables and / or World Anchors).
[0035] Generative Al (“GenAI”) involves two key stages: training and inference. During training, the Al model learns patterns and structures from the input data, and inference is whenthe model applies what it has learned to generate new content. Training involves feeding into the Al model vast amounts of data, text, images, audio, and / or video. The model learns patterns, structures, and relationships within the data, which forms the basis for its understanding of the content. Inference is the stage where the trained model generates new content. It applies the learned patterns and structures to create something original while staying within the boundaries of the training data. This process allows the model to generate text, images, or other forms of data with a high degree of variety and complexity.
[0036] Generative Al, particularly Large Language Models (“LLMs”), are predominantly accessed through APIs. APIs provide this solution by offering an abstraction layer that simplifies integration. APIs provide mechanisms for tweaking output responses and also allow in some cases for both structured and unstructured input and output.
[0037] When it comes to structured inputs / outputs, some LLMs are particularly apt at conforming to specific data models given to them. They can also populate outputs given certain guidelines. Although pre-trained models may be prone to hallucinations, they can be adjusted using fine-tuning.
[0038] There currently exist certain challenges. In XR, significant challenges faced by developers include the development time and the lack of interoperability solutions at the application layer. In fact, an XR application needs to be developed in specific platforms (e.g., game engines such as Unity or Godot), be deployed (e.g., through an app-store or similar), and only then the user may run the application. It is understood that this process is time consuming, hence costly.
[0039] Additionally, as the code written to create XR application is developed on specific platforms, it is seldom reusable. This leads to situation where part, or the entirety, of the code must be re-written to satisfy different platforms’ requirements. This situation is common when optimizing the XR application for specific platform and may improve if better interoperability solutions were to be provided. Ideally, an XR application should be written in a platformagnostic language that adapts seamlessly to the underlying platforms. Thus, a solution to optimize the creation of XR applications may significantly benefit the XR ecosystem.
[0040] Various embodiments herein address some of these challenges by allowing the creation of XR applications in a platform-agnostic manner. At the server side, this is done by leveraging a set of interoperable APIs (e.g., RESTful), that expose atomic functionalities for the creation of XR applications, e.g., CRUD operations of domain entities. In some embodiments, the APIs can be invoked by any capable HTTP client. In additional or alternative embodiments, the APIs can be invoked by any suitable protocol (e.g., constrained application protocol (“CoAP”), websocket, or file transfer protocol (“FTP”)).
[0041] At the client side, a software component on the XR device interacts with the APIs by means of HTTP calls exchanging a novel data model that includes necessary information. Such client maps platform-specific functionalities to the instructions provided in the data model, and executes them with the support of an XR runtime.
[0042] Furthermore, such method enables large language models (LLM) to use the proposed APIs to build XR experiences on-the-fly. For example, this may be achieved by prompting the API specification, e.g., OpenAPI, as well as a textual description of the desired XR application.
[0043] Various embodiments herein are described in relation to an XR device, a software client on the XR device, and a remote server. The server exposes a set of APIs, e.g., REST, that allows the creation of XR applications. A client or an application developer or a software agent can use such APIs to build an XR application. A client may fetch such applications by using the API exposed by the server. The server instructs the client on what to do (e.g., render a to-do list next to a rack), in a predefined format (e.g., JSON data model). The client interprets the server’s instructions and creates the XR application at runtime. Some embodiments described herein may be implemented by expanding the ETSI ARF API endpoints. Additional or alternative embodiments may use two additional endpoints: / assets and / applications, / assets can be used to upload / download assets, which are 3D models used in the XR application (e.g., a 3D model of a humidity sensor). The system assigns a unique identifier to the uploaded asset, and this can be used in the next step, / applications can be used to link together assets and the ETSI ARF entities (trackables, world anchors and links) with instructions on the assets. Instructions are used to tell the XR client on the headset what to do with the assets, e.g., grabbing a specific asset changes its color.
[0044] Additionally, a data model may be needed to transfer the above information between client and server. Specifically, the data model includes assets and instructions. Assets provide references to 3D models used in the application; Instructions tells the client what to do with the referenced assets. The remaining parameters of the data model are included and defined as per ETSI ARF.
[0045] FIG. 2 illustrates an example of a system for creating XR applications with API calls. In this example, the system includes two components: a client on the XR device and an API exposed through a remote server. In some embodiments, the remote server can act as API endpoint for an LLM or XR model that allows the creation and manipulation of 3D assets, interactive assets, or trackables and applications.
[0046] The API exposes endpoints that are generic enough to express the intent of an XR applications. Such API’s endpoints return data models encoded in well-known formats, such asJavaScript Object Notation (“JSON”); the client on the XR device maps the information included in the data models to specific functions provided by the XR runtime. For example, the information from the data model may instruct the application to render a 3D asset with a text within it; the client would parse the information and invoke the functions from the XR runtime that delivers the requested functionalities.
[0047] Some embodiments herein define a new data model. The new data model may include six root objects: version, assets, trackables, world anchors, world links and instructions. Assets, trackables, world anchors and world links are lists containing all the assets, trackables, world anchors and world links respectively, used in the applications. The root object instructions contain all the instructions to be executed by the XR runtime. The purpose of the version root is to obtain new versions of the same data model, allowing the XR client to simply calculate the differences between the data models.
[0048] FIG. 3 illustrates an example of a possible data model returned by the API on a (remote) server. In this example, an asset is a 3D model, and a trackable an overlay (e.g., a gauge or a text, on top of the asset). The instructions defined are defining the grab action: when the user grabs an object with ID asset: 1, the XR runtime must change the color of such object to the value kAABBCCOF.
[0049] The current ETSI ARF API specification does not define any method for assets and applications creation. Some embodiments herein extend the specification by defining new endpoints for assets and applications managements. The definition of applications as a list of relations between assets and trackables makes it easier for developers to create XR applications. Trackables define properties, such as location in the (virtual or real) world, and interaction with the surroundings. FIG. 4 is a table illustrating an example of new methods for managing assets.
[0050] FIG. 5 illustrates an example of a signal flow between a user (e.g., via an XR device and / or XR application) and an API of a server for retrieving an application from the server. In some embodiments, an XR application may be retrieved by a user through an XR device running an application (e.g., the client in FIG. 2). At operation 510, the user may authenticate themself to the server using login credentials. At operation 520, upon authentication, the server replies with a positive message and delivers the list of all the UUIDs of the applications that the user is allowed to fetch. In this example, only one application with UUID app: 1 is returned to the user. At operation 530, call the GET / applications endpoint with the UUID app: l. At operation 540, the user obtains the data model describing the specific application.
[0051] FIG. 6 illustrates an example of a signal flow for executing the XR applications in the XR clients. The figure shows a high-level interaction diagram between the main components of the system when the XR application, through the client, requests the execution ofa specific application, stored at the server, via APIs. At operation 610, upon the request of the application, the API sends to the client one (or more) data model containing assets (e.g., 3D object in glTF format), and the instructions that describe the application. At block 620, upon reception of the data model, the client parses the content of the data model to determine one or more instructions in the data model. For each instruction in the data model, the client can perform operations 630, 640, and 650. At operation 630 the client calls the XR runtime function associated with an instruction parsed from the data model. Here, an XR runtime is a software component (e.g., a library from a game engine, that provides common functionalities for XR applications, for example collision detection or object rendering). At operation 640, the instructions are executed by the XR runtime function. In some examples, executing the XR runtime function can influence the internal state of the application (e.g., the progress of the application completion), and at operation 650, execution of the XR runtime function can change a state of the XR display (e.g., by assigning a new color to an asset).
[0052] FIG. 7 illustrates an example of a view through an XR display including a real-world network switch and a virtual reality overlay of a maintenance panel. Some embodiments enable a developer to build an XR application which includes the visualization of a popup frame with maintenance instructions for the network switch when the user is in the proximity of the hosting rack. FIG. 8 illustrates an example of an output of a curl command line interface that could be available to an application developer interacting with an API via a terminal emulator and the curl command line interface. In this interaction with the terminal emulator, the symbol “$” marks the input of the developer, while the symbol “>” marks the value returned by the API running on the server. For the sake of legibility some details have been omitted from the terminal output.
[0053] FIG. 9 illustrates an example of a signal flow diagram including more detail of the interaction associated with the instructions illustrated in FIG. 8. At operation 910, the developer (via a developer device (e.g., an XR device, a terminal associated with the server, or a remote device) calls an HTTP POST request on the / assets endpoint to submit the 3D model, in JSON glTF format, of the popup frame used to deliver the instructions for fixing the network switch. At operation 920, the API replies with a positive message and the unique identifier, UUTD, for the submitted asset, asset: 1 in this case. At operation 930, the developer then calls the POST / trackables endpoint to submit the instructions for fixing the network switch. At operation 940, the API replies with a positive message and the UUTD for the submitted trackable, namely, trackable: 1. At operation 950, the developer finalizes the application by calling the POST / applications endpoint together with the UUIDs of the previously submitted asset and trackable. At operation 960, the API replies with a positive message and the UUID of the newly createdapplication. Any XR application can now call the GET / applications endpoint with the UUID and get the data model to run such application.
[0054] Various embodiments herein describe a system where XR assets and XR applications can be created via API calls to a server. In additional or alternative embodiments, the server acts as an API endpoint for an LLM or XR model that allows the creation and manipulation of 3D assets, interactive assets or trackables and applications.
[0055] FIG. 10 illustrates an example of a signal flow diagram showing an interaction between a developer and the API endpoints of a server and / or LLM.
[0056] In some embodiments, a developer can leverage an LLM for 3D assets generation to POST such assets to the endpoints of the proposed APIs (see e.g., operations 1010, 1020, and 1030). This way, a LLM can produce detailed descriptions of 3D models, textures, and materials that integrates with the proposed innovations. In some examples, an LLM can generate a description of a ‘car’ asset based on user input and contextual information. The developer can send this description to the POST / assets endpoint to create this new asset. The description can be as simple as a prompt, or can be a structured query with other metadata and specifics about the object. It may also use a seed value of previous 3D objects to create variations that match the original shape.
[0057] In additional or alternative embodiments, once created, its UUID can be used to further interact with the asset through the API (see e.g., operations 1040 and 1050). For example, the developer can use an assets UUID to change its color to '#AABBCCOF' upon a specific event, such as when a user 'grabs' the asset in the XR environment.
[0058] In additional or alternative embodiments, LLMs can be used to automatically generate trackables given an existing asset (see e.g., operations 1060, 1070, 1080, and 1090). By calling the POST / trackables endpoint (from ETSI ARF) with parameters generated by the LLM, developers can create new interactive elements. LLMs could infer trackable metadata given existing examples to provide suggestions or modifications.
[0059] In additional or alternative embodiments, LLMs can be used to create an XR application using the POST / applications endpoint, over an existing set of assets and trackables and based on a user intent, developers will bundle together assets and trackables by their UUIDs to form a cohesive application which is prompted together to the LLM (see e.g., operations 1092 and 1094). The LLM can be particularly useful in this phase to rapidly prototype different configurations, suggesting how assets and trackables might be combined based on user input or predefined templates.
[0060] Operations of a communication device 1400 (implemented using the structure of FIG. 14) will now be discussed with reference to the flow chart of FIG. 11 according to someembodiments of inventive concepts. For example, modules may be stored in memory 1410 of FIG. 14, and these modules may provide instructions so that when the instructions of a module are executed by respective communication device processing circuitry 1402, communication device 1400 performs respective operations of the flow chart.
[0061] FIG. 11 illustrates an example of operations performed by an XR device (herein described as part of a communication device).
[0062] At block 1110, processing circuitry 1402 obtains, via communication interface 1412, a data model from a server via an API provided by a server. In some embodiments, obtaining the data model includes transmitting a request, via the API, to execute an application stored at the server. Responsive to transmitting the request to execute the application, the server receives the data model.
[0063] In additional or alternative embodiments, the data model is device agnostic.
[0064] In additional or alternative embodiments, obtaining the data model includes receiving the data model without receiving an explicit indication of the XR runtime function.
[0065] In additional or alternative embodiments, obtaining the data model includes transmitting a HTTP GET message.
[0066] At block 1120, processing circuitry 1402 determines an XR runtime function to be executed based on the data model. In some embodiments, determining the XR runtime function to be executed includes identifying an instruction within the data model; and determining the XR runtime function to be executed based on the instruction.
[0067] At block 1130, processing circuitry 1402 executes the XR runtime function. In some embodiments, obtaining the data model includes obtaining the data model associated with an asset displayable by the XR device. In some examples, the asset includes a three-dimensional model displayable by the XR device. In additional or alternative embodiments, executing the runtime function includes adjusting an output of an XR display relative to the asset based on the instruction. In additional or alternative embodiments, obtaining the data model includes transmitting information associated with the asset to the server. In some examples, obtaining the data model further includes generating, via a machine learning, ML, module, the information.
[0068] Various operations from the flow chart of FIG. 11 may be optional with respect to some embodiments of communication devices and related methods.
[0069] Operations of a network node 1500 (implemented using the structure of FIG. 15) will now be discussed with reference to the flow chart of FIG. 12 according to some embodiments of inventive concepts. For example, modules may be stored in memory 1504 of FIG. 15, and these modules may provide instructions so that when the instructions of a moduleare executed by respective network node processing circuitry 1502, network node 1500 performs respective operations of the flow chart.
[0070] FIG. 12 illustrates an example of operations performed by a server (herein described as part of a network node).
[0071] At block 1210, processing circuitry 1502 receives, via communication interface 1506, a first message requesting that the server store an application and provide access to the application to the XR device via an API. In some embodiments, the first message is received from a developer device. In some examples, the developer device includes an XR device or a remote device. In additional or alternative embodiments, receiving the first message includes receiving a HTTP POST message.
[0072] At block 1220, processing circuitry 1502 receives, via communication interface 1506, a second message requesting the data model via the API from the XR device. In some embodiments, receiving the message requesting the data model includes: receiving a request, via the API, to run an application stored on the server; and providing the application for execution on the XR device.
[0073] In additional or alternative embodiments, the data model is device agnostic.
[0074] In additional or alternative embodiments, receiving the message requesting the data model includes receiving a HTTP GET message.
[0075] In additional or alternative embodiments, the data model is associated with an asset displayable by the XR device. Receiving the request for the data model includes: receiving information associated with the asset from the XR device; and generating the data model based on the information associated with the asset. In some examples, generating the data model includes generating, via a machine learning, ML, module, the data model based on the information. In additional or alternative examples, the information includes an identifier of the asset. In additional or alternative examples, the asset includes a three-dimensional, 3D, model displayable by the XR device.
[0076] At block 1230, processing circuitry 1502 transmits, via communication interface 1506, the data model to the XR device. In some embodiments, transmitting the data model includes transmitting the data model without transmitting an explicit indication of the XR runtime function.
[0077] Various operations from the flow chart of FIG. 12 may be optional with respect to some embodiments of communication devices and related methods.
[0078] FIG. 13 shows an example of a communication system 1300 in accordance with some embodiments.
[0079] In the example, the communication system 1300 includes a telecommunication network 1302 that includes an access network 1304, such as a radio access network (RAN), and a core network 1306, which includes one or more core network nodes 1308. The access network 1304 includes one or more access network nodes, such as network nodes 1310a and 1310b (one or more of which may be generally referred to as network nodes 1310), or any other similar 3rdGeneration Partnership Project (3 GPP) access nodes or non-3GPP access points. Moreover, as will be appreciated by those of skill in the art, a network node is not necessarily limited to an implementation in which a radio portion and a baseband portion are supplied and integrated by a single vendor. Thus, it will be understood that network nodes include disaggregated implementations or portions thereof. For example, in some embodiments, the telecommunication network 1302 includes one or more Open-RAN (ORAN) network nodes. An ORAN network node is a node in the telecommunication network 1302 that supports an ORAN specification (e.g., a specification published by the O-RAN Alliance, or any similar organization) and may operate alone or together with other nodes to implement one or more functionalities of any node in the telecommunication network 1302, including one or more network nodes 1310 and / or core network nodes 1308.
[0080] Examples of an ORAN network node include an open radio unit (O-RU), an open distributed unit (O-DU), an open central unit (O-CU), including an O-CU control plane (O-CU- CP) or an O-CU user plane (O-CU-UP), a RAN intelligent controller (near-real time or non-real time) hosting software or software plug-ins, such as a near-real time control application (e.g., xApp) or a non-real time control application (e.g., rApp), or any combination thereof (the adjective “open” designating support of an ORAN specification). The network node may support a specification by, for example, supporting an interface defined by the ORAN specification, such as an Al, Fl, Wl, El, E2, X2, Xn interface, an open fronthaul user plane interface, or an open fronthaul management plane interface. Moreover, an ORAN access node may be a logical node in a physical node. Furthermore, an ORAN network node may be implemented in a virtualization environment (described further below) in which one or more network functions are virtualized. For example, the virtualization environment may include an O-Cloud computing platform orchestrated by a Service Management and Orchestration Framework via an O-2 interface defined by the O-RAN Alliance or comparable technologies. The network nodes 1310 facilitate direct or indirect connection of user equipment (UE), such as by connecting UEs 1312a, 1312b, 1312c, and 1312d (one or more of which may be generally referred to as UEs 1312) to the core network 1306 over one or more wireless connections.
[0081] Example wireless communications over a wireless connection include transmitting and / or receiving wireless signals using electromagnetic waves, radio waves, infrared waves,and / or other types of signals suitable for conveying information without the use of wires, cables, or other material conductors. Moreover, in different embodiments, the communication system 1300 may include any number of wired or wireless networks, network nodes, UEs, and / or any other components or systems that may facilitate or participate in the communication of data and / or signals whether via wired or wireless connections. The communication system 1300 may include and / or interface with any type of communication, telecommunication, data, cellular, radio network, and / or other similar type of system.
[0082] The UEs 1312 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and / or operable to communicate wirelessly with the network nodes 1310 and other communication devices. Similarly, the network nodes 1310 are arranged, capable, configured, and / or operable to communicate directly or indirectly with the UEs 1312 and / or with other network nodes or equipment in the telecommunication network 1302 to enable and / or provide network access, such as wireless network access, and / or to perform other functions, such as administration in the telecommunication network 1302.
[0083] In the depicted example, the core network 1306 connects the network nodes 1310 to one or more host computing systems, such as host 1316. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts. The core network 1306 includes one more core network nodes (e.g., core network node 1308) that are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, network nodes, and / or hosts, such that the descriptions thereof are generally applicable to the corresponding components of the core network node 1308. Example core network nodes include functions of one or more of a Mobile Switching Center (MSC), Mobility Management Entity (MME), Home Subscriber Server (HSS), Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Subscription Identifier De-concealing function (SIDF), Unified Data Management (UDM), Security Edge Protection Proxy (SEPP), Network Exposure Function (NEF), and / or a User Plane Function (UPF).
[0084] The host 1316 may be under the ownership or control of a service provider other than an operator or provider of the access network 1304 and / or the telecommunication network 1302. The host 1316 may host a variety of applications to provide one or more service. Examples of such applications include live and pre-recorded audio / video content, data collection services such as retrieving and compiling data on various ambient conditions detected by a plurality of UEs, analytics functionality, social media, functions for controlling or otherwise interacting withremote devices, functions for an alarm and surveillance center, or any other such function performed by a server.
[0085] As a whole, the communication system 1300 of FIG. 13 enables connectivity between the UEs, network nodes, and hosts. In that sense, the communication system may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM); Universal Mobile Telecommunications System (UMTS); Long Term Evolution (LTE), and / or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G); wireless local area network (WLAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (WiFi); and / or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, LiFi, and / or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox.
[0086] In some examples, the telecommunication network 1302 is a cellular network that implements 3GPP standardized features. Accordingly, the telecommunications network 1302 may support network slicing to provide different logical networks to different devices that are connected to the telecommunication network 1302. For example, the telecommunications network 1302 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and / or Massive Machine Type Communication (mMTC) / Massive loT services to yet further UEs.
[0087] In some examples, the UEs 1312 are configured to transmit and / or receive information without direct human interaction. For instance, a UE may be designed to transmit information to the access network 1304 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network 1304. Additionally, a UE may be configured for operating in single- or multi -RAT or multi-standard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio) and LTE, i.e. being configured for multi -radio dual connectivity (MR-DC), such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio - Dual Connectivity (EN-DC).
[0088] In the example, the hub 1314 communicates with the access network 1304 to facilitate indirect communication between one or more UEs (e.g., UE 1312c and / or 1312d) and network nodes (e.g., network node 1310b). In some examples, the hub 1314 may be a controller, router, content source and analytics, or any of the other communication devices described herein regarding UEs. For example, the hub 1314 may be a broadband router enabling access to the core network 1306 for the UEs. As another example, the hub 1314 may be a controller that sends commands or instructions to one or more actuators in the UEs. Commands or instructions may bereceived from the UEs, network nodes 1310, or by executable code, script, process, or other instructions in the hub 1314. As another example, the hub 1314 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data. As another example, the hub 1314 may be a content source. For example, for a UE that is a VR device, display, loudspeaker, or other media delivery device, the hub 1314 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub 1314 then provides to the UE either directly, after performing local processing, and / or after adding additional local content. In still another example, the hub 1314 acts as a proxy server or orchestrator for the UEs, in particular if one or more of the UEs are low energy loT devices.
[0089] The hub 1314 may have a constant / persistent or intermittent connection to the network node 1310b. The hub 1314 may also allow for a different communication scheme and / or schedule between the hub 1314 and UEs (e.g., UE 1312c and / or 1312d), and between the hub 1314 and the core network 1306. In other examples, the hub 1314 is connected to the core network 1306 and / or one or more UEs via a wired connection. Moreover, the hub 1314 may be configured to connect to an M2M service provider over the access network 1304 and / or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with the network nodes 1310 while still connected via the hub 1314 via a wired or wireless connection. In some embodiments, the hub 1314 may be a dedicated hub - that is, a hub whose primary function is to route communications to / from the UEs from / to the network node 1310b. In other embodiments, the hub 1314 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node 1310b, but which is additionally capable of operating as a communication start and / or end point for certain data channels.
[0090] FIG. 14 shows a UE 1400 in accordance with some embodiments. The UE 1400 presents additional details of some embodiments of the UE 1312 of Figure 1. As used herein, a UE refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or other UEs. Examples of a UE include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage / playback device, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), an Augmented Reality (AR) or Virtual Reality (VR) device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP), including a narrowband internet of things (NB-IoT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE.
[0091] A UE may support device-to-device (D2D) communication, for example by implementing a 3 GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), or vehicle-to- everything (V2X). In other examples, a UE may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, a UE may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller). Alternatively, a UE may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).
[0092] The UE 1400 includes processing circuitry 1402 that is operatively coupled via a bus 1404 to an input / output interface 1406, a power source 1408, a memory 1410, a communication interface 1412, and / or any other component, or any combination thereof. Certain UEs may utilize all or a subset of the components shown in FIG. 14. The level of integration between the components may vary from one UE to another UE. Further, certain UEs may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
[0093] The processing circuitry 1402 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 1410. The processing circuitry 1402 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry 1402 may include multiple central processing units (CPUs).
[0094] In the example, the input / output interface 1406 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the UE 1400. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball,a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.
[0095] In some embodiments, the power source 1408 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source 1408 may further include power circuitry for delivering power from the power source 1408 itself, and / or an external power source, to the various parts of the UE 1400 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 1408. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 1408 to make the power suitable for the respective components of the UE 1400 to which power is supplied.
[0096] The memory 1410 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 1410 includes one or more application programs 1414, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 1416. The memory 1410 may store, for use by the UE 1400, any of a variety of various operating systems or combinations of operating systems.
[0097] The memory 1410 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and / or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUICC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’ The memory 1410 may allow the UE 1400 to access instructions, application programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data. Anarticle of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 1410, which may be or comprise a device-readable storage medium.
[0098] The processing circuitry 1402 may be configured to communicate with an access network or other network using the communication interface 1412. The communication interface 1412 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 1422. The communication interface 1412 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another UE or a network node in an access network). Each transceiver may include a transmitter 1418 and / or a receiver 1420 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 1418 and receiver 1420 may be coupled to one or more antennas (e.g., antenna 1422) and may share circuit components, software or firmware, or alternatively be implemented separately.
[0099] In the illustrated embodiment, communication functions of the communication interface 1412 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short- range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and / or standards, such as IEEE 802.11, Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (WCDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol / internet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.
[0100] Regardless of the type of sensor, a UE may provide an output of data captured by its sensors, through its communication interface 1412, via a wireless connection to a network node. Data captured by sensors of a UE can be communicated through a wireless connection to a network node via another UE. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).
[0101] As another example, a UE comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfacesor rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.
[0102] A UE, when in the form of an Internet of Things (loT) device, may be a device for use in one or more application domains, these domains comprising, but not limited to, city wearable technology, extended industrial application and healthcare. Non-limiting examples of such an loT device are a device which is or which is embedded in: a connected refrigerator or freezer, a TV, a connected lighting device, an electricity meter, a robot vacuum cleaner, a voice controlled smart speaker, a home security camera, a motion detector, a thermostat, a smoke detector, a door / window sensor, a flood / moisture sensor, an electrical door lock, a connected doorbell, an air conditioning system like a heat pump, an autonomous vehicle, a surveillance system, a weather monitoring device, a vehicle parking monitoring device, an electric vehicle charging station, a smart watch, a fitness tracker, a wearable for tactile augmentation or sensory enhancement, a water sprinkler, an animal- or item-tracking device, a sensor for monitoring a plant or animal, an industrial robot, an Unmanned Aerial Vehicle (UAV), and any kind of medical device, like a heart rate monitor or a remote controlled surgical robot. A UE in the form of an loT device comprises circuitry and / or software in dependence of the intended application of the loT device in addition to other components as described in relation to the UE 1400 shown in FIG. 14.
[0103] As yet another specific example, in an loT scenario, a UE may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another UE and / or a network node. The UE may in this case be an M2M device, which may in a 3GPP context be referred to as an MTC device. As one particular example, the UE may implement the 3GPP NB-IoT standard. In other scenarios, a UE may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.
[0104] In practice, any number of UEs may be used together with respect to a single use case. For example, a first UE might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second UE that is a remote controller operating the drone. When the user makes changes from the remote controller, the first UE may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second UE can also include more than one of the functionalities described above. For example, a UE might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.
[0105] FIG. 15 shows a network node 1500 in accordance with some embodiments. As used herein, network node refers to equipment capable, configured, arranged and / or operable tocommunicate directly or indirectly with a UE and / or with other network nodes or equipment, in a telecommunication network. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)), O-RAN nodes or components of an O-RAN node (e.g., O-RU, O-DU, O-CU).
[0106] Base stations may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. A base station may be a relay node or a relay donor node controlling a relay. A network node may also include one or more (or all) parts of a distributed radio base station such as centralized digital units, distributed units (e.g., in an O-RAN access node) and / or remote radio units (RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS).
[0107] Other examples of network nodes include multiple transmission point (multi-TRP) 5G access nodes, multi-standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi-cell / multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and / or Minimization of Drive Tests (MDTs).
[0108] The network node 1500 includes a processing circuitry 1502, a memory 1504, a communication interface 1506, and a power source 1508. The network node 1500 may be composed of multiple physically separate components (e.g., a NodeB component and a RNC component, or a BTS component and a BSC component, etc.), which may each have their own respective components. In certain scenarios in which the network node 1500 comprises multiple separate components (e.g., BTS and BSC components), one or more of the separate components may be shared among several network nodes. For example, a single RNC may control multiple NodeBs. In such a scenario, each unique NodeB and RNC pair, may in some instances be considered a single separate network node. In some embodiments, the network node 1500 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be duplicated (e.g., separate memory 1504 for different RATs) and some components may be reused (e.g., a same antenna 1510 may be shared by different RATs). The network node 1500 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 1500, for example GSM, WCDMA,LTE, NR, WiFi, Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node 1500.
[0109] The processing circuitry 1502 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and / or encoded logic operable to provide, either alone or in conjunction with other network node 1500 components, such as the memory 1504, to provide network node 1500 functionality.
[0110] In some embodiments, the processing circuitry 1502 includes a system on a chip (SOC). In some embodiments, the processing circuitry 1502 includes one or more of radio frequency (RF) transceiver circuitry 1512 and baseband processing circuitry 1514. In some embodiments, the radio frequency (RF) transceiver circuitry 1512 and the baseband processing circuitry 1514 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry 1512 and baseband processing circuitry 1514 may be on the same chip or set of chips, boards, or units.
[0111] The memory 1504 may comprise any form of volatile or non-volatile computer- readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and / or any other volatile or non-volatile, non-transitory device-readable and / or computer-executable memory devices that store information, data, and / or instructions that may be used by the processing circuitry 1502. The memory 1504 may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, and / or other instructions capable of being executed by the processing circuitry 1502 and utilized by the network node 1500. The memory 1504 may be used to store any calculations made by the processing circuitry 1502 and / or any data received via the communication interface 1506. In some embodiments, the processing circuitry 1502 and memory 1504 is integrated.
[0112] The communication interface 1506 is used in wired or wireless communication of signaling and / or data between a network node, access network, and / or UE. As illustrated, the communication interface 1506 comprises port(s) / terminal(s) 1516 to send and receive data, for example to and from a network over a wired connection. The communication interface 1506 also includes radio front-end circuitry 1518 that may be coupled to, or in certain embodiments a part of, the antenna 1510. Radio front-end circuitry 1518 comprises filters 1520 and amplifiers 1522.The radio front-end circuitry 1518 may be connected to an antenna 1510 and processing circuitry 1502. The radio front-end circuitry may be configured to condition signals communicated between antenna 1510 and processing circuitry 1502. The radio front-end circuitry 1518 may receive digital data that is to be sent out to other network nodes or UEs via a wireless connection. The radio frontend circuitry 1518 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters 1520 and / or amplifiers 1522. The radio signal may then be transmitted via the antenna 1510. Similarly, when receiving data, the antenna 1510 may collect radio signals which are then converted into digital data by the radio front-end circuitry 1518. The digital data may be passed to the processing circuitry 1502. In other embodiments, the communication interface may comprise different components and / or different combinations of components.
[0113] In certain alternative embodiments, the network node 1500 does not include separate radio front-end circuitry 1518, instead, the processing circuitry 1502 includes radio front-end circuitry and is connected to the antenna 1510. Similarly, in some embodiments, all or some of the RF transceiver circuitry 1512 is part of the communication interface 1506. In still other embodiments, the communication interface 1506 includes one or more ports or terminals 1516, the radio front-end circuitry 1518, and the RF transceiver circuitry 1512, as part of a radio unit (not shown), and the communication interface 1506 communicates with the baseband processing circuitry 1514, which is part of a digital unit (not shown).
[0114] The antenna 1510 may include one or more antennas, or antenna arrays, configured to send and / or receive wireless signals. The antenna 1510 may be coupled to the radio front-end circuitry 1518 and may be any type of antenna capable of transmitting and receiving data and / or signals wirelessly. In certain embodiments, the antenna 1510 is separate from the network node 1500 and connectable to the network node 1500 through an interface or port.
[0115] The antenna 1510, communication interface 1506, and / or the processing circuitry 1502 may be configured to perform any receiving operations and / or certain obtaining operations described herein as being performed by the network node. Any information, data and / or signals may be received from a UE, another network node and / or any other network equipment. Similarly, the antenna 1510, the communication interface 1506, and / or the processing circuitry 1502 may be configured to perform any transmitting operations described herein as being performed by the network node. Any information, data and / or signals may be transmitted to a UE, another network node and / or any other network equipment.
[0116] The power source 1508 provides power to the various components of network node 1500 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component). The power source 1508 may further comprise, or be coupled to,power management circuitry to supply the components of the network node 1500 with power for performing the functionality described herein. For example, the network node 1500 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of the power source 1508. As a further example, the power source 1508 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail.
[0117] Embodiments of the network node 1500 may include additional components beyond those shown in FIG. 15 for providing certain aspects of the network node’ s functionality, including any of the functionality described herein and / or any functionality necessary to support the subject matter described herein. For example, the network node 1500 may include user interface equipment to allow input of information into the network node 1500 and to allow output of information from the network node 1500. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node 1500. In some embodiments providing a core network node, such as core network node 108 of FIG. 13, some components, such as the radio front-end circuitry 1518 and the RF transceiver circuitry 1512 may be omitted.
[0118] FIG. 16 is a block diagram illustrating a virtualization environment 1600 in which functions implemented by some embodiments may be virtualized. In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments 1600 hosted by one or more of hardware nodes, such as a hardware computing device that operates as a network node, UE, core network node, or host. Further, in embodiments in which the virtual node does not require radio connectivity (e.g., a core network node or host), then the node may be entirely virtualized. In some embodiments, the virtualization environment 1600 includes components defined by the O-RAN Alliance, such as an O-Cloud environment orchestrated by a Service Management and Orchestration Framework via an O-2 interface. Virtualization may facilitate distributed implementations of a network node, UE, core network node, or host.
[0119] Applications 1602 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) are run in the virtualization environment Q400 to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein.
[0120] Hardware 1604 includes processing circuitry, memory that stores software and / or instructions executable by hardware processing circuitry, and / or other hardware devices as described herein, such as a network interface, input / output interface, and so forth. Software may be executed by the processing circuitry to instantiate one or more virtualization layers 1606 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs 1608a and 1608b (one or more of which may be generally referred to as VMs 1608), and / or perform any of the functions, features and / or benefits described in relation with some embodiments described herein. The virtualization layer 1606 may present a virtual operating platform that appears like networking hardware to the VMs 1608.
[0121] The VMs 1608 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer 1606. Different embodiments of the instance of a virtual appliance 1602 may be implemented on one or more of VMs 1608, and the implementations may be made in different ways. Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV). NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment.
[0122] In the context of NFV, a VM 1608 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, non-virtualized machine. Each of the VMs 1608, and that part of hardware 1604 that executes that VM, be it hardware dedicated to that VM and / or hardware shared by that VM with others of the VMs, forms separate virtual network elements. Still in the context of NFV, a virtual network function is responsible for handling specific network functions that run in one or more VMs 1608 on top of the hardware 1604 and corresponds to the application 1602.
[0123] Hardware 1604 may be implemented in a standalone network node with generic or specific components. Hardware 1604 may implement some functions via virtualization. Alternatively, hardware 1604 may be part of a larger cluster of hardware (e.g. such as in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration 1610, which, among others, oversees lifecycle management of applications 1602. In some embodiments, hardware 1604 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radiounits may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station. In some embodiments, some signaling can be provided with the use of a control system 1612 which may alternatively be used for communication between hardware nodes and radio units.
[0124] Although the computing devices described herein (e.g., UEs, network nodes) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.
[0125] In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored on in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer- readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device-readable storage medium, such as in a hard-wired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer-readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device, but are enjoyed by the computing device as a whole, and / or by end users and a wireless network generally.
Claims
CLAIMSWhat is claimed is:
1. A method of operating an extended reality, XR, device, the method comprising: obtaining (1110) a data model from a server via an application programming interface,API, provided by a server; determining (1120) an XR runtime function to be executed based on the data model; and executing (1130) the XR runtime function.
2. The method of Claim 1, wherein obtaining the data model comprises: transmitting a request, via the API, to execute an application stored at the server; responsive to transmitting the request to execute the application, receiving the data model.
3. The method of any of Claims 1-2, wherein determining the XR runtime function to be executed comprises: identifying an instruction within the data model; and determining the XR runtime function to be executed based on the instruction.
4. The method of any of Claims 1-3, wherein obtaining the data model comprises obtaining the data model associated with an asset displayable by the XR device.
5. The method of Claim 4, wherein the asset comprises a three-dimensional model displayable by the XR device.
6. The method of Claim 5, wherein executing the runtime function comprises: adjusting an output of an XR display relative to the asset based on the instruction.
7. The method of any of Claims 4-6, wherein obtaining the data model comprises: transmitting information associated with the asset to the server.
8. The method of Claim 7, wherein obtaining the data model further comprises: generating, via a machine learning, ML, module, the information.
9. The method of any of Claims 1-8, wherein the data model is device agnostic.
10. The method of any of Claims 1-9, wherein obtaining the data model comprises receiving the data model without receiving an explicit indication of the XR runtime function.
11. The method of any of Claims 1-10, wherein obtaining the data model comprise transmitting a HTTP GET message.
12. A method of operating a server, the method comprising: receiving (1220) a message requesting a data model, via an application programming interface, API, from an extended reality, XR, device; and responsive to receiving the message, transmitting (1230) the data model to the XR device.
13. The method of Claim 12, wherein receiving the message requesting the data model comprises: receiving a request, via the API, to run an application stored on the server; and providing the application for execution on the XR device.
14. The method of any of Claims 12-13, wherein the data model is device agnostic.
15. The method of any of Claims 12-14, wherein transmitting the data model comprises transmitting the data model without transmitting an explicit indication of the XR runtime function.
16. The method of any of Claims 12-15, wherein receiving the message requesting the data model comprise receiving a HTTP GET message.
17. The method of any of Claims 12-16, wherein the data model is associated with an asset displayable by the XR device, and wherein receiving the request for the data model comprises: receiving information associated with the asset from the XR device; and generating the data model based on the information associated with the asset.
18. The method of Claim 17, wherein generating the data model comprises generating, via a machine learning, ML, module, the data model based on the information.
19. The method of any of Claims 17-18, wherein the information includes an identifier of the asset.
20. The method of any of Claims 17-19, wherein the asset comprises a three-dimensional, 3D, model displayable by the XR device.
21. The method of any of Claims 12-20, wherein the message is a second message, the method further comprising: receiving (1210) a first message requesting that the server store an application and provide access to the application to the XR device, via the API.
22. The method of Claim 21, wherein receiving the first message comprises receiving a HTTP POST message.
23. An extended reality, XR, device (1400) adapted to perform operations comprising: obtaining (1110) a data model from a server via an application programming interface,API, provided by a server; determining (1120) an XR runtime function to be executed based on the data model; and executing (1130) the XR runtime function.
24. The XR device of Claim 23, the operations further comprising any of the operations of Claims 2-11.
25. A computer program comprising program code to be executed by processing circuitry (1402) of an XR device (1400), whereby execution of the program code causes the XR device to perform operations comprising: obtaining (1110) a data model from a server via an application programming interface, API, provided by a server; determining (1120) an XR runtime function to be executed based on the data model; and executing (1130) the XR runtime function.
26. The computer program of Claim 25, the operations further comprising any of the operations of Claims 2-11.
27. A computer program product comprising a non-transitory storage medium (1410)including program code to be executed by processing circuitry (1402) of an XR device (1400), whereby execution of the program code causes the XR device to perform operations comprising: obtaining (1110) a data model from a server via an application programming interface, API, provided by a server; determining (1120) an XR runtime function to be executed based on the data model; and executing (1130) the XR runtime function.
28. The computer program product of Claim 27, further comprising any of the operations of Claims 2-11.
29. A server (1400, 1500) adapted to perform operations comprising: receiving (1210) a message requesting a data model, via an application programming interface, API, from an extended reality, XR, device; and responsive to receiving the message, transmitting (1220) the data model to the XR device.
30. The server of Claim 29, the operations further comprising any of the operations of Claims 13-22.
31. A computer program comprising program code to be executed by processing circuitry (1402, 1502) of a server (1400, 1500), whereby execution of the program code causes the server to perform operations comprising: receiving (1210) a message requesting a data model, via an application programming interface, API, from an extended reality, XR, device; and responsive to receiving the message, transmitting (1220) the data model to the XR device.
32. The computer program of Claim 31, the operations further comprising any of the operations of Claims 13-22.
33. A computer program product comprising a non-transitory storage medium (1410, 1506) including program code to be executed by processing circuitry (1402, 1502) of a server (1400, 1500), whereby execution of the program code causes the server to perform operations comprising: receiving (1210) a message requesting a data model, via an application programming interface, API, from an extended reality, XR, device; and responsive to receiving the message, transmitting (1220) the data model to the XR device.
34. The computer program product of Claim 33, further comprising any of the operations of Claims 13-22.
Citation Information
Patent Citations
Virtual design environment
US20220334562A1