A communication method and device
By splitting and deploying computing instances between terminal devices and servers, the performance and power consumption limitations of terminal devices in high-computational-demand applications are resolved, enabling the decoupling of high-computational-demand services and resource optimization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2020-07-31
- Publication Date
- 2026-04-28
AI Technical Summary
Existing terminal devices are limited by computing performance and power consumption in applications with high computing requirements, resulting in a degraded user experience, and low-configuration devices cannot run these applications.
By dividing computationally demanding services into multiple computing instances and deploying them on servers, terminal devices can select and install versions that match their own computing performance and process the data through the computing instances on the servers, thus decoupling computing performance.
Terminal devices are no longer limited by computing performance, enabling them to run computationally demanding services, reduce power consumption and resource consumption, and improve user experience.
Smart Images

Figure CN114064254B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a communication method and device. Background Technology
[0002] The development of artificial intelligence (AI), virtual reality (VR), augmented reality (AR), and 3D reconstruction technologies, along with in-depth research into deep learning and computer vision, has greatly enriched the application scenarios of terminal devices. Because these technologies involve a large amount of image computation and AI algorithms, many terminal devices are equipped with high-performance central processing units (CPUs), graphics processing units (GPUs), and neural network processing units (NPUs) to meet their ever-increasing computing demands. However, these high-performance computing devices have a significant impact on the power consumption of terminal devices.
[0003] Some terminal devices with requirements for size and power consumption, such as smartphones and wearable devices, are subject to significant limitations when configuring computing devices.
[0004] Furthermore, as functionality continues to improve and computational complexity increases, many AI, VR / AR, and 3D applications are placing increasingly stringent demands on computing power and real-time performance. Therefore, even high-configuration terminal devices have to make significant sacrifices and cuts to application performance and functionality, greatly reducing the user experience.
[0005] Some low-configuration terminal devices, due to limited computing power, are almost unable to run these types of applications.
[0006] Therefore, how to implement the functions of applications with high computing requirements (such as the applications mentioned above) on terminal devices with various configurations is an urgent problem to be solved in this field. Summary of the Invention
[0007] This application provides a communication method and device for decoupling high-computation-requirement services from the computing performance of terminal devices.
[0008] In a first aspect, this application provides a communication method, which includes the following steps:
[0009] The terminal device acquires a computing request and data, wherein the data is data of a target service, the target service is implemented by at least one computing instance, the computing request is used to notify the terminal device to process the data through the target computing instance, and the target computing instance is included in the at least one computing instance; the terminal device determines the identifier of the target computing instance according to the computing request; when the terminal device determines that the target computing instance is not saved according to the computing instance configuration information of the target service, the terminal device sends the data to be processed and the identifier of the target computing instance to the server, enabling the data to be processed by the target computing instance saved by the server; the terminal device receives the processing result of the data from the server.
[0010] This method allows software developers to divide computationally demanding target services into multiple computing instances. Each instance handles a portion of the computational tasks for that target service, and some or all of these instances are deployed on a server. Terminal devices can then choose to install a version of the target service that matches their computing performance. If a particular computing instance is not configured in that version, it can be processed directly using the instance deployed on the server. This method frees terminal devices from computing performance limitations, enabling them to handle various computationally demanding services and ultimately decoupling these services from the terminal device's computing capabilities. Furthermore, this method allows terminal devices to offload some computationally demanding instances from the target service to the server, significantly reducing power consumption and resource usage when executing that service.
[0011] In one possible design, the computation request carries the identifier of the target computation instance; or when the computation request carries information about the target computation instance, the terminal device can determine the identifier of the target computation instance based on the information about the target computation instance in the computation request.
[0012] Through this design, the terminal device can determine the identifier of the target computing instance that needs to be processed based on the computing request.
[0013] In one possible design, if it is determined that the target computing instance has not been saved, the terminal device may also send a computing instruction to the server, the computing instruction being used to notify the server to schedule computing resources for running the target computing instance.
[0014] With this design, the terminal device can notify the server to schedule computing resources via computing instructions.
[0015] In one possible design, when the server is a multi-access edge computing (MEC) server, the terminal device sends the data to be processed and the identifier of the target computing instance to the MEC server via a mobile communication system; and the terminal device receives the processing result from the MEC server via the mobile communication system.
[0016] MEC servers are deployed in the core network of mobile communication systems. Since the interaction between terminal devices and MEC servers does not require the use of the wide area internet, and the network distance between terminal devices and MEC servers is shorter than that of ordinary servers, the real-time performance of data transmission between terminal devices and MEC servers is strong, which can meet the requirements of low latency, high stability and smoothness of various services.
[0017] Secondly, embodiments of this application also provide a communication method, which includes the following steps:
[0018] The server receives data and an identifier of a target computing instance sent by the terminal device; the server processes the data using the target computing instance indicated by the identifier of the target computing instance; and the server sends the processing result to the terminal device.
[0019] Because servers possess high computing power, abundant computing resources, and the ability to implement various parallel computing strategies, they can significantly reduce the latency for terminal devices to obtain computing results compared to terminal devices running computing instances themselves. Through this method, terminal devices can overcome computing performance limitations and implement various computationally demanding services, ultimately decoupling computationally demanding services from the terminal device's computing capabilities. Furthermore, this method allows terminal devices to offload some computationally demanding instances of a target service to the server, thereby significantly reducing power consumption and resource consumption when the terminal device executes that target service.
[0020] In one possible design, before the server processes the data through the target computing instance, the server can also determine the target computing resources used to run the target computing instance; in this way, the server can use the target computing resources to run the target computing instance.
[0021] With this design, the server can schedule resources to run the target computing instance so that the target computing instance can run successfully.
[0022] In one possible design, after receiving the computing instruction sent by the terminal device, the server determines the target computing resources used to run the target computing instance based on the computing instruction. The computing instruction is used to instruct the server to schedule computing resources for running the target computing instance.
[0023] With this design, the terminal device can notify the server to schedule computing resources via computing commands.
[0024] In one possible design, when the server is a multi-access edge computing (MEC) server, the MEC server receives the data to be processed and the identifier of the target computing instance sent by the terminal device through a mobile communication system; and the MEC server sends the processing result to the terminal device through the mobile communication system.
[0025] MEC servers are deployed in the core network of mobile communication systems. Since the interaction between terminal devices and MEC servers does not require the use of the wide area internet, and the network distance between terminal devices and MEC servers is shorter than that of ordinary servers, the real-time performance of data transmission between terminal devices and MEC servers is strong, which can meet the requirements of low latency, high stability and smoothness of various services.
[0026] Thirdly, embodiments of this application provide a communication device, including a unit for performing the steps in the first or second aspect above.
[0027] Fourthly, embodiments of this application provide a communication device including at least one processing element and at least one storage element, wherein the at least one storage element is used to store programs and data, and the at least one processing element is used to execute the methods provided in the first or second aspect of this application.
[0028] Fifthly, embodiments of this application also provide a communication system, including a terminal device for performing the method provided in the first aspect of this application, and a server for performing the method provided in the second aspect of this application.
[0029] Sixthly, embodiments of this application also provide a computer program that, when run on a computer, causes the computer to perform the methods provided in any of the above aspects.
[0030] In a seventh aspect, embodiments of this application also provide a computer-readable storage medium storing a computer program that, when executed by a computer, causes the computer to perform the method provided in any of the above aspects.
[0031] Eighthly, embodiments of this application also provide a chip for reading a computer program stored in a memory and executing the method provided in any of the above aspects.
[0032] Ninthly, embodiments of this application also provide a chip system including a processor for supporting a computer device in implementing the methods provided in any of the above aspects. In one possible design, the chip system further includes a memory for storing programs and data necessary for the computer device. The chip system may be composed of chips or may include chips and other discrete devices. Attached Figure Description
[0033] Figure 1 An example diagram illustrating version differences in an application provided for an embodiment of this application;
[0034] Figure 2 A schematic diagram of a communication network provided in an embodiment of this application;
[0035] Figure 3 A flowchart illustrating a communication method provided in an embodiment of this application;
[0036] Figure 4A A computational offloading system architecture diagram provided in this application embodiment;
[0037] Figure 4B An example diagram of a parallel operation strategy provided in an embodiment of this application;
[0038] Figure 4C A flowchart of a calculation unloading method provided in an embodiment of this application;
[0039] Figure 5A An example flowchart of a terminal device executing an AR interactive APP is provided in an embodiment of this application;
[0040] Figure 5B An example AR image provided for an embodiment of this application;
[0041] Figure 6 A structural diagram of a communication device provided in an embodiment of this application;
[0042] Figure 7 This is a structural diagram of a communication device provided in an embodiment of this application. Detailed Implementation
[0043] This application provides a communication method and apparatus for decoupling the high computational requirements of applications from the performance limitations of terminal devices. The method and apparatus are based on the same technical concept. Since the principles underlying the problems solved by the method and apparatus are similar, their implementations can be mutually referenced, and repeated details will not be elaborated further.
[0044] In the solution provided in this application embodiment, if the terminal device determines that no target computing instance for processing the data to be processed is stored locally during the execution of a target service, it sends the data to be processed and the identifier of the target computing instance to the server. The data to be processed is then processed by the target computing instance stored on the server to obtain the processing result. Clearly, through this method, software developers can divide a target service with high computing requirements into multiple computing instances. Each computing instance is responsible for a portion of the computing tasks of the target service, and some or all of the computing instances of the target service are deployed on the server. In this way, the terminal device can select a version of the target service that matches its own computing performance for installation. If a certain computing instance is not configured in that version, it can directly process the data through the computing instance deployed on the server. Through this method, the terminal device can overcome the limitations of computing performance and implement various services with high computing requirements, ultimately decoupling the high computing requirements of the service from the terminal device's computing performance. Furthermore, through this method, the terminal device can offload some computing instances with high computing requirements from the target service to the server, thereby significantly reducing the power consumption and resource consumption when the terminal device executes the target service.
[0045] The following explanations of some terms used in this application are provided to facilitate understanding by those skilled in the art.
[0046] 1) A terminal device is a device that provides business services to users and has voice or data connectivity functions. A terminal device can also be called a terminal equipment, user equipment (UE), mobile station (MS), mobile terminal (MT), etc., and can also be a chip. In the subsequent embodiments and descriptions of this application, a terminal equipment will be used as an example for specific description.
[0047] For example, terminal devices can be handheld devices, in-vehicle devices, etc., with wireless connectivity. Currently, some examples of terminal devices include: mobile phones, tablets, laptops, PDAs, mobile internet devices (MIDs), point-of-sale (POS) terminals, wearable devices, virtual reality (VR) devices, augmented reality (AR) devices, wireless terminals in industrial control, wireless terminals in self-driving cars, wireless terminals in remote medical surgery, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, and various smart meters (smart water meters, smart electricity meters, smart gas meters), etc.
[0048] 2) Business refers to the transactions or activities that a terminal device performs or processes in order to achieve certain functions or services.
[0049] The forms of business can include various types: for example, the main functions that come pre-installed on the terminal device, such as call services and SMS services; or applications (APPs) that can only be implemented by downloading and installing software programs on the terminal device, such as video applications, music applications, game applications, AR applications, VR applications, AI applications, etc.
[0050] Typically, a business requires a series of processing tasks to be completed. Therefore, the business can be composed of at least one computing instance, each of which is used to execute at least one processing task.
[0051] Taking an AR interactive application that enables interaction between real and virtual characters as an example, to achieve this interactive function, the application can be broken down into the following processing tasks:
[0052] a1. Image Acquisition: Acquire scene images captured by the camera.
[0053] a2. Ground detection: Perform ground detection on the scene image to determine the location of the ground so that the virtual character can be placed on the ground of the scene image.
[0054] a3. Real Person Recognition: Perform person recognition on the scene image to identify the real people in the scene image.
[0055] a4. Action Recognition: Perform skeletal key point detection on the real person in the scene image to determine the position of multiple skeletal key points of the real person, thereby determining the real person's action.
[0056] a5. Virtual Character Generation: Generates virtual characters whose actions are the same as or correspond to those of real characters.
[0057] a6. AR Image Generation: This involves merging virtual characters with real-world figures to generate AR images for display on the terminal device's screen.
[0058] Each of the above processing tasks can be completed through a single computing instance.
[0059] 3) A computational instance is a software program or computing resource designed to complete one or more processing tasks in a business process. It can also be called a computational model, computational module, algorithm instance, etc. Once run or loaded, the computational instance can process the data to be processed and obtain the computational results.
[0060] 4) A server is a device that provides data connectivity services. Since a server can respond to and process service requests from terminal devices, it should generally have the capability to undertake and guarantee services.
[0061] In this application, the server can be a server located in a data network (DN), such as a regular server or a server in a cloud platform; or a multi-access edge computing (MEC) server located in the core network, etc.
[0062] 5) A mobile communication system that uses wireless access technology to connect terminal devices to a data network and has the function of transmitting user plane data between the terminal devices and the data network to realize the corresponding services of the terminal devices. This mobile communication system can also be referred to as a 3rd Generation Partnership Project (3GPP) communication system.
[0063] The mobile communication system includes an access network and a core network. The access network is used to connect terminal devices to the core network via wireless access technology. The core network is used to connect terminal devices to the data network.
[0064] It should also be noted that this application does not limit the type of the mobile communication system, which can be third-generation (3G) mobile communication system. rd Generation 3G) communication system, fourth generation (4G) thGeneration 3G) communication system, fifth generation (5G) th This refers to a generation (5G) communication system, or a future communication system, or a communication system that evolves from any generation of communication systems.
[0065] 6) Multiple refers to two or more.
[0066] 7) At least one refers to one or more.
[0067] 8) "And / or" describes the relationship between related objects, indicating that there can be three relationships. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.
[0068] In addition, it should be understood that in the description of this application, the words "first" and "second" are used only for the purpose of distinguishing descriptions and should not be construed as indicating or implying relative importance or order.
[0069] The embodiments of this application will now be described in detail with reference to the accompanying drawings.
[0070] In this embodiment, the developer of the service (taking an application as an example) can set up multiple versions of the application based on different market functional requirements and the different hardware and software capabilities / computing performance of different electronic devices in the market, thus achieving version differentiation. In this way, users can choose the appropriate version to install based on their own functional requirements for the application and the hardware and software capabilities / computing performance of the electronic device they are using. Continuing with the example of an AR interactive application, such as... Figure 1 As shown, all computational instances of this application developed by the developer are as follows: Figure 1 The six compute instances shown in (a) each implement one of the six processing tasks of the application. The developer can configure multiple versions based on all the compute instances of the application: such as... Figure 1 The full-featured version shown in (b) is as follows: Figure 1 The lightweight version shown in (c) and as shown in Figure 1 The ultra-lightweight version is shown in (d) above. The full-featured version contains all compute instances of the application, the lightweight version contains a subset of compute instances, and the ultra-lightweight version contains fewer compute instances or none at all.
[0071] To enable terminal devices with incomplete or non-full-featured versions (such as lightweight or ultra-lightweight versions) to complete the service correctly, the server can store all computational instances for the service, or all computational instances missing from all incomplete or non-full-featured versions. In this way, terminal devices with incomplete or non-full-featured versions can utilize the computational instances on the server to process the service and obtain the results.
[0072] Figure 2 This illustration shows a possible communication network to which the communication method provided in the embodiments of this application is applicable. (See also...) Figure 2 As shown, the communication network includes: terminal equipment, servers, and mobile communication systems.
[0073] The terminal device can install any version of the target service, thereby enabling the implementation of the target service. The target service can be any type of service. Optionally, the version of the target service installed on the terminal device can be configured with some or all of the computing instances of the target service. After installing the version of the target service, the terminal device acquires and saves the computing instance configuration information of the target service. This computing instance configuration information represents the computing instances included in the version of the target service (i.e., the computing instances of the application stored locally on the terminal device). The computing instance configuration information can be included in the program installation package of the version of the target service, or generated by the terminal device based on the computing instances configured in that version when installing the version of the target service.
[0074] The server stores some or all of the computing instances for the target service. For example, the server may store all computing instances for the service, or all computing instances missing from all incomplete versions. Additionally, the server may also store some or all of the computing instances for other services.
[0075] Since the server is configured with computing instances for various services, when a terminal device executes a computing offload process for a specific computing instance, there is no need for the terminal device or other devices to upload the computing instance to the server in real time. The server can process the computing instance in a timely manner, avoiding bandwidth pressure and computing latency caused by transmitting computing instances.
[0076] It's important to note that when different applications contain the same computing instance, these applications can share that same computing instance. For example, if both AR and VR applications contain a real-person recognition computing instance, the server can store that same instance. Then, both the AR and VR application's terminal devices can use that computing instance on the server to perform real-person recognition processing and obtain the results.
[0077] As described above, a service can contain at least one computing instance, and a computing instance stored on a server can be shared by multiple services.
[0078] Because servers have high computing power, abundant computing resources, and the ability to implement various parallel computing strategies, they can significantly reduce the latency for terminal devices to obtain computing results compared to terminal devices running computing instances on their own.
[0079] The mobile communication system connects the terminal device to the server and enables data transmission between the terminal device and the server. The mobile communication system includes an access network and a core network. The access network connects the terminal device to the core network via wireless access technology. The core network connects the terminal device to the server.
[0080] When a terminal device needs to process data to be processed using a target computing instance during the execution of the target service, it determines whether the target computing instance is stored locally based on the saved target service computing instance configuration information. If the terminal device determines that the target computing instance is not stored locally, it sends the data to be processed and the identifier of the target computing instance to the server via the mobile communication system. The server can then process the data to be processed based on the saved target computing instance, obtain the processing result, and return the result to the terminal device via the mobile communication system, enabling the terminal device to continue subsequent processing based on the result to achieve the target service.
[0081] It should be noted that the server can be located in the core network of the mobile communication system, for example, the server can be an MEC server; the server can also be a server located in the data network.
[0082] Since data networks belong to the Wide Area Network (WAN), which suffers from weak real-time performance and low agility, if the server in this embodiment is a regular server, the interaction between the terminal device and the regular server needs to be via the WAN. Therefore, due to the influence of the WAN, the real-time performance of the terminal device in obtaining the calculation results will be slightly worse.
[0083] When the server is a MEC server deployed in the core network of a mobile communication system, the interaction between the terminal device and the MEC server does not need to go through the wide area Internet. Moreover, the network distance between the terminal device and the MEC server is shorter than that of ordinary servers. Therefore, the real-time performance of data transmission between the terminal device and the MEC server is strong, which can meet the requirements of low latency, high stability and smoothness of various services.
[0084] This application provides a communication method that can be applied to, for example... Figure 2 In the communication network shown. See below. Figure 3 The flowchart shown illustrates the communication method provided in the embodiments of this application.
[0085] S301: During the execution of the target service, the terminal device acquires a calculation request and data to be processed, wherein the data to be processed is the data of the target service.
[0086] The target service is implemented by at least one computing instance, and the computing request is used to notify the terminal device to process the data to be processed through the target computing instance among the at least one computing instance. It should be noted that the number of target computing instances can be one or more. When there are multiple target computing instances, the processing performed through the target computing instances is essentially performing multiple consecutive processing operations on the data to be processed; when there is only one target computing instance, the processing performed through the target computing instance is essentially performing a single processing operation on the data to be processed.
[0087] The computation request may be generated by the terminal device during the execution of the target service, for example, during the process of the terminal device running the software program of the target service.
[0088] S302: The terminal device determines the identifier of the target computing instance based on the computing request.
[0089] In one implementation, the computing request may include information about the target computing instance, such as the name and serial number of the target computing instance. In this way, the terminal device can determine the identifier of the target computing instance based on the information of the target computing instance.
[0090] In another implementation, the computing request may include the identifier of the target computing instance, so that the terminal device can directly obtain the identifier of the target computing instance from the computing request.
[0091] S303: The terminal device determines whether to locally store the target computing instance based on the computing instance configuration information of the target service. When the terminal device determines that the target computing instance is not locally stored, the terminal device obtains the processing result of the target computing instance processing the data to be processed through S304a1-S304a3. When the terminal device determines that the target computing instance is locally stored, the terminal device executes S304b to obtain the computing result.
[0092] As described above regarding the version differences of the service, the developer of the target service can develop multiple versions of the target service. Each version's installation package can contain the corresponding computing instance configuration information, which indicates the computing instances configured in that version. Thus, when a terminal device installs any version of the target service, it can determine the locally stored (installed) computing instance of the target service based on the corresponding computing instance configuration information.
[0093] S304a1: If the terminal device has not saved the target computing instance, the terminal device sends the data to be processed and the identifier of the target computing instance to the server, enabling the data to be processed to be processed by the target computing instance saved by the server. The server receives the data to be processed and the identifier of the target computing instance sent by the terminal device.
[0094] Optionally, if the terminal device determines that the target computing instance is not stored locally, it may send a computing instruction to the server. This computing instruction notifies the server to schedule computing resources for running the target computing instance. Upon receiving the computing instruction from the terminal device, the server determines the target computing resources used to run the target computing instance based on the instruction.
[0095] Optionally, the terminal device may send the data to be processed, the identifier of the target computing instance, and the computing instruction to the server through multiple messages respectively; or the terminal device may send any combination of the data to be processed, the identifier of the target computing instance, and the computing instruction to the server in a single message. This application does not limit this.
[0096] S304a2: The server processes the data to be processed through the target computing instance indicated by the identifier of the target computing instance, and obtains the processing result.
[0097] Before executing S304a2, the server also needs to determine the target computing resources used to run the target computing instance, so as to make better use of the target computing resources to run the target computing instance. Optionally, the server can determine the target computing resources itself; or the server can determine the target computing resources according to the computing instructions sent by the terminal device. In this way, the server can use the scheduled target computing resources to run the target computing instance.
[0098] Because servers have high computing power, abundant computing resources, and the ability to implement various parallel computing strategies, they can significantly reduce the latency for terminal devices to obtain the computing results compared to terminal devices running the target computing instance themselves.
[0099] S304a3: The server sends the processing result to the terminal device. The terminal device receives the processing result sent by the server.
[0100] S304b: When the terminal device saves the target computing instance, the terminal device processes the data to be processed through the target computing instance to obtain the processing result.
[0101] Similar to the server, the terminal device also needs to determine the target computing resources used to run the target computing instance in order to use those resources to run the target computing instance.
[0102] S305: The terminal device performs subsequent processing of the target service based on the obtained processing result until the target service is completed. For example, the terminal device can continue running the software program of the target service based on the processing result, so that the software program generates the next calculation request. In addition, the processing result can also serve as the pending data for the processing requested by the next calculation request.
[0103] In the method provided in this application embodiment, the terminal device and the server communicate and interact via a mobile communication system. Optionally, to ensure communication efficiency, the mobile communication system can be a 5G communication system. Due to the high bandwidth and low latency transmission characteristics of the 5G communication system, communication between the terminal device and the server via the 5G communication system can further reduce the latency for the terminal device to obtain processing results, thereby reducing the overall latency for the terminal device to execute the target service. In addition, communication between the terminal device and the server via the 5G communication system can also improve the refresh rate of the target service of the terminal device, for example, the number of frames per second (FPS) can reach 60Hz or even 120Hz.
[0104] It should also be noted that the server involved in the embodiments of this application can be an MEC server or a regular server located in a data network.
[0105] This application provides a communication method. The method includes: when a terminal device is executing a target service, if it determines that no target computing instance for processing data is stored locally, it sends the data to be processed and the identifier of the target computing instance to a server. The data to be processed is then processed by the target computing instance stored on the server to obtain a processing result. Clearly, through this method, software developers can divide a target service with high computing requirements into multiple computing instances. Each computing instance is responsible for a portion of the computing tasks of the target service, and some or all of the computing instances of the target service are deployed on a server. In this way, the terminal device can install a software version of the target service that matches its own performance, and when a certain computing instance is not configured in that version of the software program, it can directly process the data through the computing instance deployed on the server. Through this method, the terminal device can overcome the limitations of computing power and implement various high-computation-requirement services, ultimately decoupling high-computation-requirement services from the terminal device's performance. Furthermore, through this method, the terminal device can offload some high-computation-requirement computing instances of the target service to a server, thereby significantly reducing the power consumption, computing resources, and storage resources of the terminal device when executing the target service. In this way, terminal devices with lower computing performance can run computationally demanding applications, such as AI applications and VR / AR applications, through the computation offloading process in this method; while terminal devices with higher computing performance can also obtain higher computing performance and better user experience through the above computation offloading process.
[0106] In addition, the computation unloading process in this method is designed to unload specific computation instances in the business, which on the one hand can achieve relative decoupling between computation instances and business development, and on the other hand can improve the developer's flexibility in business development.
[0107] based on Figure 2 The communication network shown and Figure 3 The communication method shown in this application also provides a computing offloading system architecture, which will be discussed below. Figure 4A The system architecture is described in detail. Solid lines in the diagram represent the local computing process of the terminal device, while dashed lines represent the computing offloading process of the terminal device. In this embodiment, a business application is used as an example for illustration.
[0108] Each application developer can create multiple versions of the application, achieving version differentiation. Different versions of the same application can have different numbers of compute instances configured. Terminal devices can choose the appropriate application version to install based on user needs or their own performance capabilities. Furthermore, each application developer can configure all compute instances of the application, or the compute instances missing in a non-full-featured version, onto the server. This allows terminal devices without a specific compute instance installed to utilize the instance stored on the server when needed, thus achieving compute offloading for the application on the terminal device without the user's awareness.
[0109] like Figure 4A As shown, the terminal device includes: an installed APP, a computing uninstallation control module, its own computing resources, and a communication module.
[0110] Each APP in the terminal device is installed by installing any version of the APP, and the version may contain all or part of the computing instances of the APP.
[0111] The computation unloading control module can maintain the computation instances obtained by the terminal device through the installation of an APP, and can also process computation instances stored on a remote server while the terminal device is executing an APP. The computation unloading control module can be built into the terminal device's operating system, or it can be obtained as a separate application by the terminal device through the download and installation process.
[0112] As shown in the figure, the computation unloading control module specifically includes an unloading switch and a computation instance library. The computation instance library can uniformly manage computation instances (including the software program and identifier of each computation instance) in all apps installed on the terminal device. The unloading switch maintains the computation instance configuration information for each app. The unloading switch can determine the computation instances stored in the local computation instance library based on the computation instance configuration information of any app. Therefore, when an app requests processing from a particular computation instance, it can determine whether the computation instance is stored locally (i.e., whether the computation instance needs to be unloaded) based on the app's computation instance configuration information. If the computation instance is not stored locally, the unloading switch is turned on, and the computation instance is run on the server through the computation unloading process. If the computation instance is stored locally, the unloading switch is turned off, and the processing is performed through the local computation process.
[0113] The computing resources of the terminal device include processors, such as CPUs, GPUs, and NPUs, for providing processing and computing functions.
[0114] The communication module in the terminal device is used to transmit data to be transmitted through a mobile communication system, thereby transmitting the data to be transmitted to the server; and to receive data transmitted by the server through the mobile communication system.
[0115] like Figure 4A As shown, the server includes a communication module, a computing instance library, a computing control module, a resource management module, and computing resources managed by the server.
[0116] The communication module in the server is used to transmit the data to be transmitted through a mobile communication system, thereby transmitting the data to be transmitted to the server; and to receive the data transmitted by the server through the mobile communication system.
[0117] The compute instance library is used to manage compute instances (including the software program and identifier of the compute instance) across multiple apps.
[0118] The computing control module is used to instruct the resource management module to schedule computing resources for the computing instance to be loaded, load the computing instance according to the computing resources scheduled by the resource management module, and after obtaining the processing result of the computing instance, return the processing result to the terminal device through the communication module.
[0119] As shown in the figure, the resource management module may include, but is not limited to, the following functions: resource scheduling, resource virtualization, resource isolation, resource monitoring, container management, etc.
[0120] The resource scheduling function is as follows: to schedule resources for the computing instance that is about to be loaded so that the target computing instance can run successfully using the computing resources managed by the server.
[0121] The resource virtualization function is as follows: Based on resource virtualization technology, the computing resources of the server and the computing resources in multiple resource nodes managed by the server are abstracted into virtual computing resources, thereby realizing the integration of computing resources.
[0122] The resource isolation function is as follows: virtual computing resources integrated through resource virtualization technology form a virtual computing resource pool, and the virtual computing resources in the virtual computing resource pool are isolated into virtual machines or other virtual containers to be provided to computing instances.
[0123] The resource monitoring function monitors the number of idle virtual computing resources and the load status of occupied virtual computing resources.
[0124] The container management function includes: managing the lifecycle of each virtual container generated through resource isolation and managing the amount of virtual computing resources allocated to that virtual container.
[0125] Furthermore, the computing control module also supports a parallel computing strategy for multiple computing instances, meaning it can simultaneously provide computing offloading services to multiple computing instances on at least one terminal device. In other words, the computing control module can simultaneously run multiple identical or different computing instances for one or more terminal devices through multiple processes. For example, Figure 4B The parallel operation strategies described may specifically include: AI core computing parallel strategy, single-chip multi-request parallel strategy, and multi-chip single-request parallel strategy.
[0126] Among them, the AI core computing parallel strategy is to run multiple computing instances for AI computing based on the parallel computing characteristics of the AI core itself.
[0127] The single-chip multi-request parallel strategy allows the computing control module to run multiple computing instances in parallel on the same chip based on multiple computing instance requests from one or more terminal devices, so that the chip can perform multiple processes in parallel.
[0128] Multi-chip single-request parallel measurement means that after the computing control module receives multiple computing instance requests from one or more terminal devices, it runs multiple computing instances in parallel on multiple chips, so that each chip can run at least one computing instance, thereby enabling multiple chips to perform multiple processes in parallel.
[0129] based on Figure 4A In addition to the system architecture shown, this application also provides a computational download method, which is described below. Figure 4C The flowchart of the calculation and unloading method shown herein provides a detailed description of the method provided in this application.
[0130] S401: During operation, the target application on the terminal device generates a computation request and pending data; the target application sends the computation request and pending data to the uninstallation switch. The computation request requests processing of the pending data by a target computation instance. The target application is implemented by at least one computation instance, and the target computation instance is contained within the at least one computation instance.
[0131] S402: The unloading switch sends the computing request to the computing instance library, so that the computing instance library determines the identifier of the target computing instance based on the computing request.
[0132] S403: When the computing request carries information about the target computing instance, the computing instance library can determine the identifier of the target computing instance based on the information about the target computing instance.
[0133] In another implementation, when the computing request contains the identifier of the target computing instance, the unloading switch can obtain the identifier of the target computing instance from the computing request without going through S402 and S403.
[0134] S404: The uninstall switch determines whether to save the target computing instance locally based on the computing instance configuration information of the target APP. The computing instance configuration information of the target APP indicates the computing instance of the target APP saved in the computing instance library of the terminal device.
[0135] Specifically, when the unloading switch determines that the target computing instance is stored locally, the terminal device processes the data to be processed using the target computing instance stored locally by executing a local computing process, i.e., process a in the figure; when the unloading switch determines that the target computing instance is not stored locally, the terminal device processes the data to be processed using the target computing instance stored on the server by executing a computing unloading process, i.e., process b in the figure.
[0136] The following will explain steps S405a-S408a in process a.
[0137] S405a: The unloading switch determines that the target computing instance is stored locally, the unloading switch is set to disable the computing unloading function, and the target computing resources are scheduled for the target computing instance in the local computing resources.
[0138] S406a: The computing instance library uses the target computing resource to load the target computing instance.
[0139] S407a: The target computing instance obtains the data to be processed from the unloading switch.
[0140] S408a: The target computing instance processes the data to be processed, obtains the processing result, and sends the processing result to the target APP.
[0141] The following describes steps S405b-S413b in process b.
[0142] S405b: When the unloading switch determines that the target computing instance is not saved locally, the unloading switch is set to enable the computing unloading function, generate an unloading command, and send the unloading command, the identifier of the target computing instance, and the data to be processed to the communication module of the terminal device, so that the communication module sends the above information to the server through the mobile communication system.
[0143] The uninstallation command is... Figure 3The computation instructions in the illustrated embodiment are used to instruct the server to schedule computational resources for running the target computing instance.
[0144] S406b: After receiving the unload instruction, the identifier of the target computing instance, and the data to be processed from the terminal device via the mobile communication system, the communication module in the server sends the above information to the computing control module.
[0145] S407b: The computing control module generates a resource scheduling instruction based on the unloading instruction and sends the resource scheduling instruction to the resource management module. The resource scheduling instruction is used to instruct the resource management module to schedule target computing resources for the target computing instance.
[0146] S408b: The resource management module schedules target computing resources for the target computing instance from local computing resources according to the resource scheduling instruction.
[0147] S409b: The computing control module sends the identifier of the target computing instance to the computing instance library, so that the computing instance library can determine the target computing instance based on the identifier of the target computing instance.
[0148] S410b: The computing instance library uses the target computing resource to load the target computing instance.
[0149] S411b: The target computing instance obtains the data to be processed from the computing control module.
[0150] S412b: The target computing instance processes the data to be processed, obtains the processing result, and sends the processing result to the communication module in the server, so that the communication module sends the processing result to the terminal device through the mobile communication system.
[0151] S413b: After receiving the processing result sent by the server through the mobile communication system, the communication module in the terminal device sends the processing result to the target APP.
[0152] Thus, the terminal device can process the data to be processed by the target computing instance through the above two processes and return the processing result to the target APP. The target APP can then perform further processing or output the result to the user.
[0153] Based on the above embodiments, this application also provides a computational offloading example when a terminal device performs services. (See also...) Figure 5AAs shown, this example uses an AR interactive app as an example to illustrate the business executed by the terminal device. Based on the above description of the processing tasks of the AR interactive application, it can be seen that the AR interactive app is implemented by the following 6 computational instances: image acquisition (identified as ID1), ground detection (identified as ID2), real-person recognition (identified as ID3), motion recognition (identified as ID4), virtual character generation (identified as ID5), and AR image generation (identified as ID6).
[0154] Because motion recognition computing instances have high computational performance requirements, the AR interactive APP version installed on the terminal device lacks motion recognition computing instances, meaning that motion recognition computing instances are not configured / saved in the terminal device's computing instance library.
[0155] After the terminal device launches the AR interactive APP, the AR interactive APP processes the calculation instances in the order shown in the figure.
[0156] When the terminal device determines that it needs to process through image acquisition calculation instance, ground detection calculation instance, and real person recognition calculation instance, the calculation unloading control module of the terminal device can be set to disable the calculation unloading function and use the local calculation process for processing.
[0157] When the terminal device determines that processing needs to be performed through an action recognition computing instance, its computational offloading control module can be configured to enable the computational offloading function and employ a computational offloading process. The terminal device can send the data to be processed, the identifier (ID4) of the action recognition computing instance, and the offloading command to the MEC server via a 5G mobile communication system. Upon receiving the offloading command, the MEC server allocates computing resources to the action recognition computing instance (12 computational processes across 4 chips are computed in parallel), and loads the action recognition computing instance using computing resources based on the ID4, enabling the instance to infer the action recognition data and obtain the action recognition result. The MEC server then sends the action recognition result back to the terminal device via the 5G mobile communication system. Furthermore, after sending the action recognition result back, the MEC server can stop the computational offloading process, achieving deinitialization.
[0158] When the terminal device determines that it needs to process computational instances through virtual character generation and AR image generation, the computational offloading control module of the terminal device can be set to disable the computational offloading function and continue to use the local computational process for processing.
[0159] Ultimately, the terminal device can obtain AR images of real and virtual characters interacting through a series of computational instances in the AR interactive APP, such as... Figure 5BAs shown, the left side represents a real person, and the right side represents a virtual person. The terminal device then displays the AR image on its screen. The local computation process performed by the terminal device can be referenced... Figure 4C The description of steps S405a-S408a in the illustrated embodiment, and the process of the terminal device executing the calculation offloading procedure, can be referred to Figure 4C The descriptions of steps S405b-S413b in the illustrated embodiments will not be repeated here.
[0160] Through simulation experiments, the traditional terminal device configured with six computing instances of an AR interactive app and the terminal device in this example are compared in the following aspects:
[0161] 1. Calculation of latency: In this example, the terminal device transmits more than 120 frames per second (FPS) during the execution of the AR interactive APP, and the linkage latency between virtual characters and real characters is less than 100ms; the FPS of traditional terminal devices during the execution of AR interactive APP is about 7.5Hz, and the linkage latency between virtual characters and real characters is about 150ms.
[0162] 2. Power consumption and resource consumption: In this example, the terminal device's power consumption, computing resources, and memory resources increased by 24mA, 0.5%, and 39M respectively during the execution of the AR interactive APP; while the traditional terminal device's power consumption, computing resources, and memory resources increased by 156mA, 4%, and 1105M respectively during the execution of the AR interactive APP.
[0163] Clearly, the terminal device in this example can significantly reduce the processing latency during the execution of the AR interactive APP, and can greatly reduce the power consumption and resource usage of the terminal device, thereby improving the battery life of the terminal device.
[0164] Based on the same technical concept, this application also provides a communication device. The structure of the device is as follows: Figure 6 As shown, it includes a communication unit 601 and a processing unit 602. The communication device 600 can be applied to... Figure 2 The terminal devices or servers in the communication network shown can implement the communication methods provided in the above embodiments and examples.
[0165] The communication unit 601 is used to receive and send messages.
[0166] When the communication device 600 is used in a server, the communication unit 601 can also be referred to as a physical interface, communication module, communication interface, or input / output interface. The communication device 600 can connect to a network cable or electrical cable through this communication unit to establish a physical connection with other devices.
[0167] When the communication device 600 is applied to a terminal device, the communication unit 601 can also be called a transceiver, which can be implemented through a mobile communication module and / or a wireless communication module.
[0168] The mobile communication module can provide solutions for wireless communication applications, including 2G / 3G / 4G / 5G, on the terminal device. The mobile communication module may include at least one antenna, at least one filter, a switch, a power amplifier, a low-noise amplifier (LNA), etc. The terminal device can access the mobile communication network through the mobile communication module, and then connect to the server through the mobile communication system.
[0169] The wireless communication module can provide solutions for wireless communication applications on terminal devices, including wireless local area networks (WLANs) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), and near field communication (NFC). The wireless communication module may include one or more devices such as at least one antenna and at least one communication processing module. The terminal device can access the wireless communication system through the wireless communication module, and then access the server through the wireless communication system.
[0170] The specific functions of each unit when the communication device 600 is applied to a terminal device are described below.
[0171] The processing unit 602 is used for:
[0172] Obtain computing requests and data, wherein the data is data of a target service, the target service is implemented by at least one computing instance, and the computing request is used to notify the terminal device to process the data through the target computing instance, the target computing instance being included in the at least one computing instance;
[0173] Based on the computation request, determine the identifier of the target computation instance;
[0174] When it is determined, based on the computing instance configuration information of the target service, that the target computing instance has not been saved, the communication unit 601 is controlled to send the data and the identifier of the target computing instance to the server, enabling the data to be processed by the target computing instance saved by the server;
[0175] And control the communication unit 601 to receive the processing result of the data from the server;
[0176] The communication unit 601 is configured to: send the data to be processed and the identifier of the target computing instance to the server; and receive the computing result sent by the server.
[0177] In one possible implementation, the computation request carries an identifier of the target computation instance; or the computation request carries information about the target computation instance.
[0178] When the calculation carries information about the target computing instance, the processing unit 602, when determining the identifier of the target computing instance based on the calculation request, specifically performs the following:
[0179] The identifier of the target computing instance is determined based on the information of the target computing instance.
[0180] In one possible implementation, the processing unit 602 is further configured to:
[0181] When it is determined that the target computing instance has not been saved, the communication unit 601 is controlled to send a computing instruction to the server. The computing instruction is used to notify the server to schedule computing resources for running the target computing instance.
[0182] In one possible implementation, the server is a multi-access edge computing server;
[0183] When the processing unit 602 controls the communication unit 601 to send the data to be processed and the identifier of the target computing instance to the server, it is specifically used for:
[0184] The communication unit 601 is controlled to send the data to be processed and the identifier of the target computing instance to the MEC server through a mobile communication system;
[0185] When the processing unit 602 controls the communication unit 601 to receive the processing result from the server, it is specifically used for:
[0186] The communication unit 601 is controlled to receive the processing result from the MEC server through the mobile communication system.
[0187] The specific functions of each unit when the communication device 600 is applied to a server are described below.
[0188] The processing unit 602 is used for:
[0189] The communication unit 601 is controlled to receive data and the identifier of the target computing instance sent by the terminal device;
[0190] The data is processed using the target computing instance indicated by the identifier of the target computing instance;
[0191] The communication unit 601 is controlled to send the processing result of the processing to the terminal device;
[0192] The communication unit 601 is configured to: receive the data to be processed and the identifier of the target computing instance sent by the terminal device; and send the computing result to the terminal device.
[0193] In one possible implementation, the processing unit 602 is further configured to: determine the target computing resources used to run the target computing instance before processing the data through the target computing instance;
[0194] Run the target computing instance using the target computing resources.
[0195] In one possible implementation, the processing unit 602 is further configured to: control the communication unit 601 to receive a computing instruction sent by the terminal device, the computing instruction being used to notify the server to schedule computing resources for running the target computing instance;
[0196] The processing unit 602, when determining the target computing resources used to run the target computing instance, is specifically used for:
[0197] Based on the computation instructions, the target computing resources used to run the target computing instance are determined.
[0198] In one possible implementation, the server is a multi-access edge computing (MEC) server;
[0199] The processing unit 602, when controlling the communication unit 601 to receive the data to be processed and the identifier of the target computing instance sent by the terminal device, is specifically used for:
[0200] The communication unit 601 is controlled to receive the data to be processed and the identifier of the target computing instance sent by the terminal device through the mobile communication system;
[0201] When the processing unit 602 controls the communication unit 601 to send the processing result to the terminal device, it is specifically used for:
[0202] The communication unit 601 is controlled to send the processing result to the terminal device through the mobile communication system.
[0203] It should be noted that the module division in the above embodiments of this application is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods. Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, exist as separate physical entities, or have two or more units integrated into one unit. The integrated units described above can be implemented in hardware or as software functional units.
[0204] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0205] Based on the same technical concept, this application also provides a communication device, which can be applied to, for example... Figure 2 The terminal devices or servers in the communication network shown can implement the communication methods provided in the above embodiments and examples, and have... Figure 6 The function of the communication device shown. (See also...) Figure 7 As shown, the communication device 700 includes a communication module 701, a processor 702, and a memory 703. The communication module 701, the processor 702, and the memory 703 are interconnected.
[0206] Optionally, the communication module 701, the processor 702, and the memory 703 are interconnected via a bus 704. The bus 704 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 7 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0207] The communication module 701 is used to receive and send data, enabling communication and interaction with other devices. For example, when the communication device 700 is applied to a server, the communication module 701 can be implemented through a physical interface. Alternatively, when the communication device 700 is applied to a terminal device, the communication module 701 can also be implemented through a transceiver.
[0208] In one embodiment, the communication device 700 is applied in a terminal device, and the processor 702 is specifically used for:
[0209] Obtain computing requests and data, wherein the data is data of a target service, the target service is implemented by at least one computing instance, and the computing request is used to notify the terminal device to process the data through the target computing instance, the target computing instance being included in the at least one computing instance;
[0210] Based on the computation request, determine the identifier of the target computation instance;
[0211] When it is determined, based on the computing instance configuration information of the target service, that the target computing instance has not been saved, the communication module 701 sends the data to be processed and the identifier of the target computing instance to the server, enabling the data to be processed by the target computing instance saved by the server.
[0212] And receive the processing results of the data from the server through the communication module 701.
[0213] In one embodiment, the communication device 700 is used in a server, and the processor 702 is specifically used for:
[0214] The communication module 701 receives the data to be processed and the identifier of the target computing instance sent by the terminal device.
[0215] The data is processed using the target computing instance indicated by the identifier of the target computing instance;
[0216] The processing result is sent to the terminal device through the communication module 701.
[0217] The processor 702 can be described with reference to the communication methods provided in the above embodiments and examples, and Figure 6 The specific functional description of the communication device 600 in the illustrated embodiment will not be repeated here.
[0218] The memory 703 is used to store program instructions and data. Specifically, the program instructions may include program code, which includes computer operation instructions. The memory 703 may include random access memory (RAM) and may also include non-volatile memory, such as at least one disk storage device. The processor 702 executes the program instructions stored in the memory 703 and uses the data stored in the memory 703 to implement the above functions, thereby realizing the communication method provided in the above embodiments.
[0219] It is understood that this application Figure 7 The memory 703 can be volatile memory or non-volatile memory, or may include both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DR RAM). It should be noted that the memory used in the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0220] Based on the above embodiments, this application also provides a computer program that, when run on a computer, causes the computer to execute the communication method provided in the above embodiments.
[0221] Based on the above embodiments, this application also provides a computer-readable storage medium storing a computer program, which, when executed by a computer, causes the computer to perform the communication method provided in the above embodiments.
[0222] The storage medium can be any available medium that a computer can access. For example, but not limited to, a computer-readable medium can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage media or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
[0223] Based on the above embodiments, this application also provides a chip for reading computer programs stored in a memory and implementing the communication method provided in the above embodiments.
[0224] Based on the above embodiments, this application provides a chip system including a processor for supporting a computer device in implementing the functions involved in the service equipment, forwarding equipment, or site equipment in the above embodiments. In one possible design, the chip system further includes a memory for storing necessary programs and data of the computer device. This chip system may be composed of chips or may include chips and other discrete components.
[0225] In summary, this application provides a communication method and device. The method involves a terminal device, during the execution of a target service, if it determines that no target computing instance for processing the data to be processed is stored locally, sending the data to be processed and the identifier of the target computing instance to a server. The data to be processed is then processed by the target computing instance stored on the server to obtain the processing result. Clearly, through this method, software developers can divide a target service with high computing requirements into multiple computing instances. Each computing instance is responsible for a portion of the computing tasks of the target service, and some or all of the computing instances of the target service are deployed on a server. In this way, the terminal device can select a version of the target service that matches its own computing performance for installation, and if a certain computing instance is not configured in that version, it can directly process the data through the computing instance deployed on the server. Through this method, the terminal device can overcome the limitations of computing performance and implement various high-computation-requirement services, ultimately decoupling high-computation-requirement services from the terminal device's computing performance. Furthermore, through this method, the terminal device can offload some high-computation-requirement computing instances from the target service to the server, thereby significantly reducing the power consumption and resource consumption when the terminal device executes the target service.
[0226] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0227] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0228] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0229] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0230] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.
Claims
1. A communication method, characterized in that, include: The terminal device acquires a computing request and data, wherein the data is data of a target service, the target service is implemented by multiple computing instances, each computing instance of the target service is responsible for a portion of the computing tasks of the target service, and the computing request is used to notify the terminal device to process the data through the target computing instance, the target computing instance being included in the multiple computing instances; The terminal device determines the identifier of the target computing instance according to the computing request; wherein, the terminal device determines the identifier of the target computing instance according to the computing request, including: if the computing request carries the identifier of the target computing instance, the terminal device obtains the identifier of the target computing instance from the computing request; or if the computing request carries information of the target computing instance, the terminal device determines the identifier of the target computing instance according to the information of the target computing instance in the computing request; When the terminal device determines, based on the stored computing instance configuration information of the target service, that the target computing instance has not been saved, the terminal device sends the data and the identifier of the target computing instance to the server, enabling the data to be processed by the target computing instance stored by the server; wherein, the version of the target service installed on the terminal device is a first version, and the computing instance configuration information is used to indicate the computing instance configured in the first version of the target service stored in the terminal device; the server stores all computing instances implementing the target service, or other computing instances among all computing instances besides the computing instance configured in the first version of the target service; The terminal device receives the processing results of the data from the server.
2. The method as described in claim 1, characterized in that, When it is determined that the target computing instance has not been saved, the method further includes: The terminal device sends a calculation instruction to the server, which is used to notify the server to schedule computing resources for running the target computing instance.
3. The method as described in claim 1 or 2, characterized in that, The server is a multi-access edge computing server; The terminal device sends the data and the identifier of the target computing instance to the server, including: The terminal device sends the data and the identifier of the target computing instance to the multi-access edge computing server through a mobile communication system; The terminal device receives the processing result from the server, including: The terminal device receives the processing result from the multi-access edge computing server through the mobile communication system.
4. A communication method, characterized in that, include: When a terminal device that has installed the first version of the target service does not save the target computing instance of the target service, the server receives data sent by the terminal device and the identifier of the target computing instance; wherein, the server saves all computing instances implementing the target service, or other computing instances among all computing instances besides the computing instances configured in the first version of the target service; the identifier of the target computing instance is obtained by the terminal device from a computing request, or determined based on the information of the target computing instance in the computing request; the computing request is used to notify the terminal device to process the data through the target computing instance; the target service is implemented by multiple computing instances, and each computing instance of the target service is responsible for a part of the computing tasks of the target service; The server processes the data through the target computing instance indicated by the identifier of the target computing instance; The server sends the processing result to the terminal device.
5. The method as described in claim 4, characterized in that, Before the server processes the data through the target computing instance, the method further includes: The server determines the target computing resources used to run the target computing instance; The server uses the target computing resources to run the target computing instance.
6. The method as described in claim 5, characterized in that, The method further includes: The server receives a computing instruction sent by the terminal device, the computing instruction being used to instruct the server to schedule computing resources for running the target computing instance; The server determines the target computing resources used to run the target computing instance, including: The server determines the target computing resources used to run the target computing instance based on the computing instructions.
7. The method according to any one of claims 4-6, characterized in that, The server is a multi-access edge computing server; The server receives data sent by the terminal device and the identifier of the target computing instance, including: The multi-access edge computing server receives the data and the identifier of the target computing instance sent by the terminal device through a mobile communication system. The server sends the processing result to the terminal device, including: The multi-access edge computing server sends the processing result to the terminal device through the mobile communication system.
8. A terminal device, characterized in that, include: A communication unit, used for receiving and sending messages; Processing unit, used for: Obtain computing requests and data, wherein the data is data of a target service, the target service is implemented by multiple computing instances, each computing instance of the target service is responsible for a portion of the computing tasks of the target service, the computing request is used to notify the terminal device to process the data through the target computing instance, and the target computing instance is included in the multiple computing instances; Based on the computation request, determine the identifier of the target computation instance; wherein, determining the identifier of the target computation instance based on the computation request includes: if the computation request carries the identifier of the target computation instance, obtaining the identifier of the target computation instance from the computation request; or if the computation request carries information of the target computation instance, determining the identifier of the target computation instance based on the information of the target computation instance in the computation request; When it is determined, based on the saved computing instance configuration information of the target service, that the target computing instance has not been saved, the communication unit is controlled to send the data and the identifier of the target computing instance to the server, enabling the data to be processed by the target computing instance saved by the server; wherein, the version of the target service installed on the terminal device is the first version, and the computing instance configuration information is used to indicate the computing instance configured in the first version of the target service saved by the terminal device; the server saves all computing instances that implement the target service, or other computing instances among all computing instances besides the computing instances configured in the first version of the target service; And control the communication unit to receive the processing results of the data from the server.
9. The terminal device as described in claim 8, characterized in that, The processing unit is further configured to: If it is determined that the target computing instance has not been saved, the communication unit is controlled to send a computing instruction to the server. The computing instruction is used to notify the server to schedule computing resources for running the target computing instance.
10. The terminal device as described in claim 8 or 9, characterized in that, The server is a multi-access edge computing server; When the processing unit controls the communication unit to send the data and the identifier of the target computing instance to the server, it is specifically used for: The communication unit is controlled to send the data and the identifier of the target computing instance to the multi-access edge computing server via a mobile communication system; The processing unit, when controlling the communication unit to receive the processing result from the server, is specifically used for: The communication unit is controlled to receive the processing result from the multi-access edge computing server through the mobile communication system.
11. A server, characterized in that, include: A communication unit, used for receiving and sending messages; Processing unit, used for: When a terminal device that has installed the first version of the target service has not saved the target computing instance of the target service, the communication unit is controlled to receive data sent by the terminal device and the identifier of the target computing instance; wherein, the server stores all computing instances implementing the target service, or other computing instances among all computing instances besides the computing instances configured in the first version of the target service; the identifier of the target computing instance is obtained by the terminal device from the computing request, or determined according to the information of the target computing instance in the computing request; the computing request is used to notify the terminal device to process the data through the target computing instance; the target service is implemented by multiple computing instances, and each computing instance of the target service is responsible for a part of the computing tasks of the target service; The data is processed using the target computing instance indicated by the identifier of the target computing instance; The communication unit is controlled to send the processing result to the terminal device.
12. The server as described in claim 11, characterized in that, The processing unit is further configured to: Before processing the data through the target computing instance, the target computing resources used to run the target computing instance are determined; Run the target computing instance using the target computing resources.
13. The server as described in claim 12, characterized in that, The processing unit is further configured to: control the communication unit to receive a computing instruction sent by the terminal device, the computing instruction being used to notify the server to schedule computing resources for running the target computing instance; The processing unit, when determining the target computing resources used to run the target computing instance, specifically performs the following: Based on the computation instructions, the target computing resources used to run the target computing instance are determined.
14. The server as described in any one of claims 11-13, characterized in that, The server is a multi-access edge computing server; The processing unit, when controlling the communication unit to receive data sent by the terminal device and the identifier of the target computing instance, is specifically used for: The communication unit is controlled to receive the data and the identifier of the target computing instance sent by the terminal device through the mobile communication system; The processing unit, when controlling the communication unit to send the processing result to the terminal device, is specifically used for: The communication unit is controlled to send the processing result to the terminal device via a mobile communication system.
15. A communication device, characterized in that, include: Memory, used to store program instructions; A processor for executing program instructions stored in memory to implement the method described in any one of claims 1-7.
16. A communication system, characterized in that, include: A terminal device for implementing the method according to any one of claims 1-3; A server for implementing the method according to any one of claims 4-7.
17. A computer storage medium, characterized in that, The computer storage medium stores a computer program that, when executed by a computer, causes the computer to perform the method as described in any one of claims 1-7.
18. A chip, characterized in that, The chip is used to read a computer program stored in a memory and execute the method as described in any one of claims 1-7.
Citation Information
Patent Citations
Edge calculation method and system for satellite-ground cooperative network
CN110647391A
Cluster scheduling method, device and system and electronic equipment
CN111459653A