Resource scheduling for remote real-time robot adaptive repair based on dynamic network slicing

Through dynamic slicing technology and M/M/1 queuing theory, the problem of low wireless communication efficiency in robot repair is solved, real-time repair and high throughput requirements are achieved, which significantly reduces latency and improves network resource utilization.

CN119111095APending Publication Date: 2024-12-10SIEMENS AG
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280095179.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-04-22
Publication Date
2024-12-10

Smart Images

  • Figure CN119111095A_ABST
    Figure CN119111095A_ABST
Patent Text Reader

Abstract

According to the method, the dynamic slicing technology can be executed to allocate network resources for various robot repair subtasks with different priorities, and various real-time requirements and high throughput requirements are met at the same time. In some cases, an M / M / 1 queuing theory is applied to effectively improve the utilization rate of network resources, reduce queuing delay and propagation delay, and balance loads between different network slices to perform robot repair operations.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Adaptive repair in robotics generally refers to modifying a component to maintain or update the component in a changed or changing environment. In some cases, a wireless robotic arm can be used to repair the component. Example components include, but are not limited to, shafts, pistons, blades, and molds. It is recognized herein that, among other technical shortcomings, current methods of using wireless communication technology in robotic repair lack efficiency. For example, some current methods result in increased latency, making the resulting repair too slow to be effectively performed for various industrial protocols. Summary of the invention

[0002] Embodiments of the present invention address and overcome one or more of the shortcomings described herein by providing methods, systems, and apparatus for implementing dynamic slicing techniques to allocate network resources to various robot repair subtasks with different priorities while meeting various real-time requirements and high throughput requirements. In some cases, M / M / 1 queuing theory is applied to effectively improve the utilization of network resources, reduce queuing delay and propagation delay, and balance the load between different network slices.

[0003] In one example aspect, robotic repair is performed by a node within a core network defining multiple network slices. Example operations include obtaining a directed acyclic graph (DAG) and an arrival time associated with a first user equipment (UE). The arrival time can indicate when the first UE is connected to the core network. Based on the DAG, the node can calculate a task priority associated with the first UE. Based on the arrival time and the task priority, the node can calculate a UE priority associated with the first UE. Based on the UE priority, the node can assign the first UE to a first network slice among multiple network slices. The node can calculate an average load defined by user plane functions within the first network slice and compare the average load with a predetermined threshold. In one instance, when the average load is less than a predetermined threshold, the node executes an objective function to determine that a first user plane function among user plane functions within the first network slice has more available resources than other user plane functions within the first network slice.

[0004] In some cases, the node is capable of identifying a new connection between the first UE and the core network and obtaining a DAG in response to the new connection. In addition, the node is capable of storing task priorities in a sorted list. The sorted list is capable of defining tasks and corresponding priorities associated with each task. The node is further capable of calculating UE priorities based on the sorted list. In another example aspect, based on the task priorities, the node is capable of creating or preparing a user plane function (UPF) pool associated with each of a plurality of network slices, wherein the UPF pool associated with the first network slice defines a first user plane function. In addition, the node is capable of determining whether the UE waiting list is empty, thereby determining that the UE waiting list does not include an available UE. When the UE waiting list is not empty, thereby determining that the UE waiting list includes at least one available UE, the node is capable of assigning the first UE to the first network slice. The node is also capable of determining whether the first network slice is empty, thereby determining that the first network slice does not include a user plane function. When the first network slice is not empty, the node is capable of calculating an average load defined by a user plane function within the first network slice. The node is capable of pre-assigning the first UE to the first user plane function to define a new average load defined by the user plane function within the first network slice. In addition, the node is capable of comparing the new average load with a predetermined threshold. When the new average load is less than a predetermined threshold, the node can assign the first UE to the first user plane function. When the first network slice is empty, or when the average load or the new average load is greater than a predetermined threshold, the node can determine whether the UPF pool associated with the first network slice is empty. When the UPF pool associated with the first network slice is empty, the node can wait for an available UPF from the UPF pool associated with the first network slice. When the UPF pool associated with the first network slice is not empty, the node can assign a second UPF from the UPF pool to the first network slice, and can assign the first UE to the second UPF. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] The foregoing and other aspects of the present invention can be best understood from the following detailed description when read in conjunction with the accompanying drawings. For the purpose of illustrating the invention, there are shown in the accompanying drawings presently preferred embodiments, however, it should be understood that the invention is not limited to the specific means disclosed. The accompanying drawings include the following drawings:

[0006] Figure 1 is a block diagram of an example system defining a core network including an SDN controller configured to perform dynamic network slicing for robotic repair according to an example implementation.

[0007] Figure 2 is a diagram showing that according to an example embodiment, Figure 1 A flowchart of the operations performed by the system.

[0008] Figure 3is a diagram of an example of a directed acyclic graph (DAG) and an ordered list that can be derived from the DAG, according to an example embodiment.

[0009] Figure 4 A computing environment is shown in which embodiments of the invention can be implemented. DETAILED DESCRIPTION

[0010] First, it is recognized here that current robotic repair technology generally cannot meet the real-time requirements of robotic repair. In some cases, the delay in ZigBee-based methods is 600 milliseconds (ms), which may be about sixty times the real-time requirement. As another example, a Bluetooth-based monitoring process for milling may involve delays during data transmission and delays during device discovery. In various embodiments described herein, dynamic network slicing is used to perform scanning, detection, path generation, robotic milling, and milling monitoring in parallel to meet the real-time requirements of robotic repair. In some cases, robotic repair requires end-to-end latency of less than 10ms.

[0011] refer to Figure 1 , an example system or network 100 is shown, which includes a 5G core network 102 communicatively coupled to a radio access network (RAN) 104. The RAN 104 is capable of communicating with various user equipment (UE) 106 over an air interface 108 using a radio technology (e.g., E-UTRA). The UE 106 can include, for example, but not limited to: a camera 106a, a robotic arm 106b, and various edge devices 106c. The core network entities are identified by the names given to those entities in the existing 3GPP specifications, however, it should be understood that the 5G core network or entities within the core network will be able to be identified by other names in the future (or that functions or entities can be combined). Therefore, it should be understood that the 5G entities and functions are provided in an exemplary manner, and the embodiments described herein can be implemented or realized in similar communication systems currently defined or defined in the future, and all such systems are considered to be within the scope of the present invention.

[0012] The RAN 104 can include multiple base stations 110, which include one or more transceivers for communicating with the UE 106 over the air interface 108. The base stations 110 can define eNBs, gNBs, etc. Each base station 110 can be associated with a specific cell and can be configured to handle radio resource management decisions, handover decisions, user scheduling in uplink and / or downlink, etc. The base stations 110 can communicate with each other over an X2 interface.

[0013] The 5G core network 102 can include a mobility management gateway (MME), a serving gateway, and a packet data network (PDN) gateway. The 5G core network 102 can further include an access and mobility management function (AMF) 112, a session management function (SMF) 114, a user plane function (UPF) 116, a user data management function (UDM) 118, an authentication server function (AUSF) 120, a network slice selection function (NSSF) 122, a policy control function (PCF) 124, a network function (NF) repository function (NRF) 126, a unified data repository (UDR) 128, and a software defined network (SDN) controller 130.

[0014] Although each of the foregoing elements is depicted as part of the 5G core network 102, it should be understood that any of these elements can be owned and / or operated by an entity other than a core network operator. It should also be understood that the 5G core network 102 can be composed of fewer elements, alternative elements, or additional elements, and all such core networks are considered to be within the scope of the present invention.

[0015] Continue to refer Figure 1 , AMF 112 can be connected to RAN 104 via N2 interface, and AMF 112 can act as a control node. For example, AMF 112 can be responsible for registration management, connection management, reachability management, access authentication and access authorization. AMF 112 can generally route and forward NAS packets to UE 106, or route and forward NAS packets from UE 106 to AMF 112. SMF 114 can be connected to AMF 112 via a switching stack or multilayer switch 132 (e.g., Open vSwitch). SMF 114 can be connected to PCF 124 via switch 132. Additionally or alternatively, SMF 114 can be connected to UPF 116 via N4 interface. SMF 114 can act as a control node. For example, SMF 114 can be responsible for session management, IP address allocation of UE 106, configuration of traffic steering rules in UPF 116, and generation of downlink data notification. SMF 114 can also be connected to UPF 116, which can provide UE 106 with access to a data network, such as the Internet, for communications between UE 104 and IP-enabled devices.

[0016] Continue to refer Figure 1, SMF 114 can manage and configure traffic steering rules in UPF 116 via N4 interface. UPF 116 can be responsible for interconnecting packet data unit (PDU) sessions with data networks, packet routing and forwarding, policy rule implementation, quality of service processing of user plane traffic, and downlink packet buffering. AMF 112 can also be connected to base station 110 via N2 interface. Base station 110 can facilitate the connection between UE 104 and 5G core 102 via various radio interface technologies. PCF 124 can be connected to SMF 114, AMF 112 and AUSF 120 via switch 132. In some instances, PCF 124 can provide policy rules to control plane nodes (e.g., AMF 112 and SMF 114) so ​​that the control plane nodes can implement these rules. UDM 118 can act as a repository for authentication credentials and subscription information. The UDM 118 can be connected to other functions such as the AMF 112, the SMF 114, and the AUSF 120 via the switch 132. The AUSF 120 can perform authentication-related operations and can be connected to the UDM 118 and the AMF 112 via the switch 132.

[0017] Continue to refer Figure 1 , example robotic repair operations can be performed by the system 100. These operations can include, but are not limited to, workpiece milling, defect detection, tool path generation, and milling monitoring. In one instance, a camera 106a (e.g., a 5G camera) scans a target workpiece 134 to collect data related to the target workpiece 134. The camera 106a can send data related to the target workpiece 134 to an edge device 106c via a network (e.g., a 5G network including the RAN 104 and the 5G core network 102). Based on the data, the edge device 106c can identify defects of the target workpiece 134. In particular, for example, the edge device 106c can compare the scan data with standard workpiece data to identify defects. Based on the defects, the edge device 106c can determine a comprehensive repair tool path for repairing the target workpiece 134. The edge device 106c can send the comprehensive repair tool path to the robotic arm 106b via the 5G network. In response to receiving the repair tool path, the robotic arm 106b can mill the target workpiece 134. While the robot arm 106b mills the target workpiece 134, the camera 106a can monitor the milling, for example to prevent accidents. It should be understood that this repair process is given as an example, and various repair or other robotic operations can be performed over the network, and all of these operations are considered to be within the scope of the present invention.

[0018] In the example robotic repair operation described above, as well as in various other robotic repair operations, it is recognized that network traffic may be so large that each step in the operation defines its own network requirements. Therefore, according to various embodiments, multiple network slices 136 can balance data plane traffic to meet network needs. In particular, in some cases, for example, the camera 106a, the robotic arm 106b, and the edge device 106c can dynamically change or adjust their network slices based on their respective request rates and packet lengths (e.g., in Figure 2 218 and 232). In some instances, each step in the repair operation is associated with a specific request rate and packet length. For example, the UPFs can belong to different network slices, so that each network slice has multiple UPFs. According to various example embodiments, operation 200 (see Figure 2 ) enables the UE 106 to select a network slice, for example based on the next task of a given UE.

[0019] Reference now Figure 2 , in order to perform dynamic network slicing, for example, to perform the above-described example robotic repair operation, the system 100 can perform operation 200. In one example, operation 200 defines a dynamic network slicing scheduling method performed by an SDN controller 130 communicatively coupled to a switch 132 (e.g., Open vSwitch). It should be understood that operation 200 can be performed by additional or alternative nodes or entities, such as additional or alternative 5G functions in the core network 102, and all such implementations of operation 200 are considered to be within the scope of the present invention.

[0020] Still reference Figure 2 At 202, the SDN controller 130 can identify a new connection between one of the UEs 106 (e.g., the first UE 106d) and the core network 102. In response to the new connection, at 204, the SDN controller 130 can obtain a directed acyclic graph (DAG) and an arrival time associated with the first UE 106d. In one example, the arrival time indicates when the first UE 106d is connected to the core network 102. In some cases, the SCN controller 130 can obtain the arrival time from a UE waiting list stored and maintained by the AMF 112. For example, the AMF 112 can define a matrix that stores various connection states and priorities associated with the UE 106. Also refer to Figure 3, a DAG (e.g., example DAG 300) can define topological relationships of various repair operations or tasks, such as the above-mentioned robotic repair operations with respect to the target workpiece 134. In particular, for example, DAG 300 can define relationships between workpiece scanning tasks 302, defect detection tasks 304, robotic milling tasks 306, and milling monitoring tasks 308. A given DAG can be stored in a matrix D, which can be represented as {d 00 ,d 01 ,...,d ss}, where s represents the total number of tasks, d 01 Represents an edge from task 0 to task 1. The edge from task 0 to task 1 indicates that task 0 occurs earlier than task 1 in a given robot repair operation. The task ID and the number of tasks of the robot repair operation can be input into a topological classification algorithm. At 206, based on the DAG 300, the SDN controller 130 can calculate the task priority associated with the first UE 106d. Specifically, for example, the SDN controller can apply a topological classification algorithm on the DAG 300 to calculate the respective task priority for each of the workpiece scanning task 302, the defect detection task 304, the robot milling task 306, and the milling monitoring task 308. For example, a sorted list can be generated, which includes the task ID in the order of the calculated task priority. Specifically, for example, a task ID presented earlier in the list can indicate that the related task occurs earlier, and the task ID presented earlier has a higher task priority than the task associated with the task ID later in the list.

[0021] Continue to refer Figure 2 and Figure 3 At 208, the SDN controller 130 can store each task priority in a sorted list 310 that defines the tasks and the corresponding task priorities associated with each task. For example, the sorted list 310 indicates that the milling monitoring task 308 is the highest priority task, the robot milling task 306 is the second highest priority task, and the workpiece scanning task 302 is the lowest priority task. The sorted list or task priority list can be represented as S = {(task1, tp1), (task2, tp2), (task3, tp3), ..., (task s ,tp s )}, where s represents the total task; task s is the ID of the sth task; and tp sis the task priority of the sth task. Based on the task priority, at 210, the SDN controller 120 can create a UPF pool. The UPF pool can include multiple preconfigured UPFs. In some cases, a network slice responsible for a higher priority task has more UPFs in the UPF pool than other network slices. The coefficient of the number of UPFs in the UPF pool can be defined as α, that is: Among them, in the UPF pool, there are αtp1 UPFs prepared for the first network slice; and the range of UPFs in the first network slice can be expressed as [1, αtp1]. In addition, there can be αtp prepared for the sth network slice. s UPFs, and the range of the sth network slice in the UPF pool can be expressed as

[0022] Therefore, the UPF pool can include UPFs 116 that can be used for network slicing. For example, the generated or prepared UPF pool can be expressed as UPF_Pool={upf1,upf2,upf3,...,upf r}, where r represents the total UPF 116, upf r is the ID of the rth UPF. At 212, based on the ranked list and arrival time associated with a given UE (e.g., the first UE 106d), the SDN controller 130 can calculate a UE priority associated with the first UE 106d. In some instances, the SDN controller 130 can obtain a buffer status of the first UE 106d and can calculate the priority of the first UE 106d based on its buffer status, the associated task priority, and the arrival time. In some instances, the UE priority can be expressed as For example, the UE buffer can have an idle state and a service state. In one example, if the SDN controller 130 detects 0 bytes in the buffer of the first UE 106d, the SDN controller 130 can set the first UE 106d to an idle state, which indicates that the first UE 106d has completed its previous job and is waiting for a new job. Alternatively, if the SDN controller does not detect 0 bytes in the buffer of the first UE 106d, the SDN controller 130 can set the first UE 106d to a service state, which indicates that the first UE 106d is still working on the current job. Therefore, a UE (e.g., the first UE 106d) can have an open state and a closed state. For example, if a given UE buffer is in an idle state, the associated UE can be set to a closed state. Otherwise, the associated UE can be set to an open state. In some cases, only UEs in a closed state are added to a UE waiting list.

[0023] Thus, the SDN 130 is able to update the UE status based on their respective buffer status (e.g., the status of the first UE 106d). Specifically, for example, at 214, the SDN controller 130 is able to obtain a UE waiting list, for example, from the AMF 112, and is able to add the UE 106 in an idle state to the UE waiting list. At 216, the SDN controller 130 is able to determine whether the UE waiting list is empty, thereby determining that the UE waiting list does not include an available UE 106. When the SDN controller 130 determines that the UE waiting list includes an available UE to define a non-empty waiting list, the SDN controller 130 is able to assign the UE to a network slice (at 218). For example, at 218, based on the UE priority of the first UE 106d, the SDN controller 130 is able to assign the first UE 106d to a first network slice 140a of the plurality of network slices 140 to define an assigned network slice 140a. Thus, each UE in the UE waiting list is able to be assigned to a respective network slice based on their respective UE priority. At 220, the SDN controller 130 can determine whether the allocated network slice is empty, thereby determining that the allocated network slice does not include a UPF 116. When the SDN controller 130 determines that a given allocated network slice is not empty, the process can proceed to 222, where the SDN controller 130 can calculate the average load defined by the UPF 116 within the corresponding allocated network slice. For example, at 220, the SDN controller 130 can determine that the first network slice 140a is not empty, and then the SDN 130 can calculate the average load defined by the first UPF 116a and the second UPF 116b within the first network slice 140a (at 222).

[0024] In one example, UE request arrival follows a Poisson process, such that the jth UPF (θ j ) can be expressed as Where n represents the number of UEs 106; i represents the request rate of the i-th UE; X k represents the UE's request for the UPF allocation matrix of the kth network slice, i.e. x ij =1 indicates that the i-th user sends a request to the j-th UPF. Therefore, in some instances, SDN 130 can calculate the average load between all UPFs in the k-th network slice as: The coefficient of the number of UPFs in the UPF pool is For example, in the UPF pool, there can be αtp1 UPFs prepared for the 1st network slice, where the range of UPFs in the first network slice in the UPF pool is [1, αtp1]. In addition, there can be αtp1 UPFs prepared for the sth network slice. s , and the range of the sth network slice in the UPF pool is

[0025]

[0026] Reference again Figure 2 At 224, the SDN controller 130 can compare the average load to a predetermined threshold, which can be expressed as where τ represents the threshold for a given UPF load, and θ max Represents the maximum load of the UPF. The maximum load and the threshold can vary based on different hardware or software. In one example, when implemented as a specific network or test bed, the maximum load and the threshold can be fixed. In one example, the predetermined threshold (τ) is about 80%, so that when the average load is greater than 80% of the maximum load, the average load is greater than the predetermined threshold, but it should be understood that the predetermined threshold can vary as needed, and all such thresholds are considered to be within the scope of the present invention. When the average load is less than the predetermined threshold, the operation can proceed to 226, where the SDN controller executes the objective function F(X) to determine that one of the UPFs 116 of the first network slice 140a (e.g., the first UPF 116a) has more available resources than other UPFs 116 (e.g., the second UPF 116b) using the first network slice 140a.

[0027] At 226, the SDN controller 130 can execute the objective function F(X) to calculate the objective function value for each UPF within the assigned network slice. Specifically, for example, the SDN controller 130 can execute the objective function F(X) to determine that the first UPF 116a within the first network slice 140a has more available resources than other UPFs 116 within the first network slice 140a.

[0028] In various examples, the objective function or optimization function F(X) aims to minimize the delay (e.g., average and tail) while making optimal use of the networked computing resources. Thus, as described herein, the objective function can define an optimization problem formulation. For example, the propagation delay W t Can be expressed as Among them l i,j represents the length of the data packet from the i-th UE to the j-th UPF; d ij represents the transmission rate between the i-th UE and the j-th UPF; n is the number of user equipment (UE). The total delay can be expressed as where μ represents the service rate of all UPFs. The expected queuing time before a request from a UE is served can be expressed as The expected end-to-end response time is the sum of the request queuing time and the UPF service time and can be expressed as The average queuing delay and propagation delay of all UPFs in the kth network slice can be expressed as The changes in the queuing delay and propagation delay of the UPF in the kth network slice can be expressed as Therefore, the objective function F(X) can be defined as follows: Where w1 and w2 are weight factors that can be adjusted accordingly. As shown, the SDN controller 130 can solve the objective function F(X) to minimize the average UE queuing delay and the average propagation delay in the standalone 5G network. When doing so, the objective function may be subject to various constraints, such as: for each UPF, the sum of the request rates from all connected UEs should be less than the processing rate μ of the UPF; each UE can only be connected to one UPF at a time; the UE connection decision is encoded in a matrix x with binary elements ij and the number of UPFs is limited, and tasks with higher priorities will have more ready UPFs in the UPF pool.

[0029] Reference again Figure 2 At 228, after executing the objective function, the SDN controller 130 can pre-assign the UE with the minimum objective function value to the UPF. For example, the first UE 106d can be pre-assigned to the first UPF 140a to define a new average load defined by the UPFs 106 (e.g., UPFs 106a and 106b) within the first network slice 140a. Such pre-assignment can indicate that the corresponding UE is temporally and logically assigned to the UPF for calculating the new average load. At 230, the SDN controller 130 can compare the new average load with a predetermined threshold or a predetermined threshold. At 232, when the new average load is less than a predetermined threshold (e.g., a percentage of the maximum load), the SDN controller 130 can physically assign the UE to the UPF. For example, the first UE 106d can be assigned to the first UPF 116a. In some cases, the UPF 116a can be released from the UPF pool. Therefore, if the SDN controller 130 detects that there is no UPF connected to any UE, the SDN controller can release the UPF to the UPF pool. After allocation, the process can return to 216, where the SDN controller 130 can determine whether the UE waiting list is empty. When the UE waiting list is empty, the process can return to 214.

[0030] Still reference Figure 2, when it is determined (at 224) that the average load is greater than a predetermined threshold, the SDN controller 130 can identify that the UPF within the allocated network slice is at risk of being overloaded. In response, the process can proceed to 234, where the SDN controller 130 determines whether the UPF pool within the allocated network slice is empty. For example, the SDN controller 130 can determine whether the UPF pool associated with the first network slice 140a is empty. Similarly, when it is determined (at 230) that the new average load is greater than a predetermined threshold, the process can proceed to 234, where the SDN controller 130 can determine whether the UPF pool associated with the allocated network slice is empty. In addition, when it is determined (at 220) that the allocated network slice (e.g., the first network slice 140a) is empty, the process can proceed to 234. At 234, when the SDN controller determines that the UPF pool associated with the allocated network slice is empty, the process can proceed to 236. At 236, the SDN controller 130 can pull or allocate UPFs from the UPF pool in the allocated network slice range to the allocated network slice to push the UPF to the allocated network slice and define a new allocated UPF. In addition, at 236, the SDN controller 130 can allocate a UE (e.g., the first UE 106d) to the newly allocated UPF. In some cases, the SDN controller 130 can release an empty UPF within the allocated network slice to the UPF pool when performing UE allocation.

[0031] After completing the UE allocation, the SDN controller can return to 216 to determine whether the UE waiting list is empty and repeat the UE allocation step. When (at 234) the SDN controller 130 determines that the UPF pool within the allocated network slice range is not empty, the process can proceed to 238, where the SDN controller waits for an available UPF from the UPF pool within the allocated network slice range. In some instances, at 238, if the allocated network slice range of the UPF pool runs out of resources, the SDN 130 can add a UPF from a network slice range with a lower priority to a network slice range with a higher priority.

[0032] Therefore, as described herein, various embodiments implement dynamic slicing techniques to allocate network resources to various repair subtasks with different priorities while meeting various real-time requirements and high throughput requirements. The embodiments described herein can apply M / M / 1 queuing theory to effectively improve the utilization of network resources, reduce queuing delay and propagation delay, and balance the load between different network slices.

[0033] Figure 4An example of a computing environment in which embodiments of the present invention can be implemented is shown. Computing environment 300 includes a computer system 510, which can include a communication mechanism such as a system bus 521 or other communication mechanism for passing information within computer system 510. Computer system 510 also includes one or more processors 520 coupled to system bus 521 for processing information. System 100 can include one or more processors 520 or be coupled to one or more processors 520.

[0034] The processor 520 can include one or more central processing units (CPUs), graphics processing units (CPUs), or any other processors known in the art. More generally, the processor described herein is a device for executing machine-readable instructions stored on a computer-readable medium for performing tasks, and can include any one or combination of hardware and firmware. The processor can also include a memory storing machine-readable instructions, which can be executed to perform tasks. The processor acts on information by manipulating, analyzing, modifying, converting, or transmitting information to an executable program or information device for use, and / or by routing information to an output device. The processor can use or include the capabilities of, for example, a computer, a controller, or a microprocessor, and can be adjusted to use executable instructions to complete special functions that cannot be completed by a general-purpose computer. The processor can include any type of suitable processing unit, including but not limited to a central processing unit, a microprocessor, a reduced instruction set computer (RISC) microprocessor, a complex instruction set computer (CISC) microprocessor, a microcontroller, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a system on a chip (SoC), a digital signal processor (DSP), etc. In addition, processor 520 can have any suitable micro-architecture design, and this design comprises any number of components, for example register, multiplexer, arithmetic logic unit, cache controller, branch predictor etc. that are used to control the read / write operation to cache memory.The micro-architecture design of processor can support various instruction sets.Processor can be coupled (electrically coupled and / or comprise executable component) with any other processor, to realize the interaction and / or communication between them.User interface processor or generator are a kind of known element, and this element comprises electronic circuit or software or the combination of both that are used to produce display image or its part.User interface comprises one or more display images, enables user to interact with processor or other equipment.

[0035] The system bus 521 can include at least one of a system bus, a memory bus, an address bus, or a message bus, and can allow information (e.g., data (including computer executable code), signaling, etc.) to be exchanged between various components of the computer system 510. The system bus 521 can include, but is not limited to, a memory bus or a memory controller, a peripheral bus, an accelerated graphics port, etc. The system bus 521 can be associated with any suitable bus architecture, including, but not limited to, an Industry Standard Architecture (ISA), a Micro Channel Architecture (MCA), an Enhanced ISA (EISA), a Video Electronics Standards Association (VESA) architecture, an Accelerated Graphics Port (AGP) architecture, a Peripheral Component Interconnect (PCI) architecture, a PCI-Express architecture, a Personal Computer Memory Card International Association (PCMCIA) architecture, a Universal Serial Bus (USB) architecture, etc.

[0036] Continue to refer Figure 4 , the computer system 510 can also include a system memory 530 coupled to the system bus 521 for storing information and instructions to be executed by the processor 520. The system memory 530 can include computer-readable storage media in the form of volatile and / or non-volatile memory, such as read-only memory (ROM) 531 and / or random access memory (RAM) 532. RAM 532 can include other dynamic storage devices (e.g., dynamic RAM, static RAM, and synchronous DRAM). ROM 531 can include other static storage devices (e.g., programmable ROM, erasable PROM, and electrically erasable PROM). In addition, the system memory 530 can be used to store temporary variables or other intermediate information during the execution of instructions by the processor 520. The basic input / output system 533 (BIOS) contains basic routines that help transfer information between elements within the computer system 510, such as at startup, which can be stored in ROM 531. RAM 532 can contain data and / or program modules that are immediately accessible and / or currently being operated on by the processor 520. System memory 530 can additionally include, for example, operating system 534, application programs 535, and other program modules 536. Application programs 535 can also include a user portal for developing applications, allowing parameters to be entered and modifications to be performed as desired.

[0037] The operating system 534 can be loaded into the memory 530 and can provide an interface between other application software executing on the computer system 510 and the hardware resources of the computer system 510. More specifically, the operating system 534 can include a set of computer executable instructions for managing the hardware resources of the computer system 510 and for providing common services to other applications (e.g., managing memory allocations between various applications). In certain example embodiments, the operating system 534 can control the execution of one or more program modules described as being stored in the data store 540. The operating system 534 can include any operating system currently known or that may be developed in the future, including but not limited to any server operating system, any mainframe operating system, or any other proprietary or non-proprietary operating system.

[0038] The computer system 510 can also include a disk / media controller 543 coupled to the system bus 521 to control one or more storage devices for storing information and instructions, such as a magnetic hard disk 541 and / or a removable media drive 542 (e.g., a floppy disk drive, an optical drive, a tape drive, a flash drive, and / or a solid-state drive). The storage device 540 can be added to the computer system 510 using an appropriate device interface (e.g., Small Computer System Interface (SCSI), Integrated Device Electronics (IDE), Universal Serial Bus (USB), or FireWire). The storage devices 541, 542 can be located external to the computer system 510.

[0039] The computer system 510 can also include a field device interface 565 coupled to the system bus 521 to control field devices 566, such as devices used in a production line. The computer system 510 can include a user input interface or GUI 561, which can include one or more input devices, such as a keyboard, touch screen, tablet, and / or pointing device, for interacting with a computer user and providing information to the processor 520.

[0040] The computer system 510 can perform some or all of the processing steps of an embodiment of the present invention in response to the processor 520 executing one or more instruction sequences stored in a memory such as system memory 530, for example, system memory 530. Such instructions can be read into the system memory 530 from another computer-readable storage medium 540 (such as a magnetic hard disk 541 or a removable media drive 542). The magnetic hard disk 541 (or solid-state drive) and / or the removable media drive 542 can contain one or more data stores and data files used by embodiments of the present invention. The data store 540 can include, but is not limited to, a database (e.g., relational, object-oriented, etc.), a file system, a flat file, a distributed data store in which data is stored on more than one node of a computer network, a peer-to-peer network data store, etc. The data store can store various types of data, such as skill data, sensor data, or any other data generated according to embodiments of the present invention. The data store contents and data files can be encrypted for increased security. The processor 520 can also be employed in a multi-processing arrangement to execute one or more instruction sequences contained in the system memory 530. In alternative embodiments, hard-wired circuits can be used instead of software instructions or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.

[0041] As described above, the computer system 510 can include at least one computer-readable medium or memory for storing instructions programmed according to embodiments of the present invention, and for containing data structures, tables, records, or other data described herein. The term "computer-readable medium" used herein refers to any medium that participates in providing instructions to the processor 520 for execution. Computer-readable media can take a variety of forms, including but not limited to non-temporary, non-volatile media, volatile media, and transmission media. Non-limiting examples of non-volatile media include optical disks, solid-state drives, magnetic disks, and magneto-optical disks (such as magnetic hard disks 541 or removable media drives 542). Non-limiting examples of volatile media include dynamic memory, such as system memory 530. Non-limiting examples of transmission media include coaxial cables, copper wires, and optical fibers, including wires that constitute the system bus 521. Transmission media can also take the form of sound waves or light waves, such as those generated during radio wave and infrared data communications.

[0042] The computer-readable medium instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​(such as Smalltalk, C++, etc.) and traditional process programming languages ​​(such as "C" programming languages ​​or similar programming languages). Computer-readable program instructions can be executed completely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, by using the Internet of an Internet service provider). In some embodiments, the electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) can be personalized electronic circuits to perform computer-readable program instructions by utilizing the state information of computer-readable program instructions, to complete aspects of the present invention.

[0043] Here, various aspects of the present invention are described with reference to the flow chart and / or block diagram of the method, device (system) and computer program product according to the embodiment of the present invention. It will be understood that each frame of the flow chart and / or block diagram, and the combination of multiple frames in the flow chart and / or block diagram can be realized by computer-readable medium instructions.

[0044] The computing environment 300 can also include a computer system 510 operating in a networked environment using a logical connection to one or more remote computers (such as a remote computing device 580). The network interface 570 can enable, for example, communication with other remote devices 580 or systems and / or storage devices 541, 542 via a network 571. The remote computing device 580 can be a personal computer (notebook or desktop), a mobile device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer system 510. When used in a network environment, the computer system 510 can include a modem 572 for establishing communication through a network 571 (such as the Internet). The modem 572 can be connected to the system bus 521 via the user network interface 570 or via another appropriate mechanism.

[0045] The network 571 can be any network or system known in the art, including the Internet, an intranet, a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a direct connection or a series of connections, a cellular telephone network, or any other network or medium that can facilitate communication between the computer system 510 and other computers (e.g., a remote computing device 580). The network 571 can be wired, wireless, or a combination thereof. A wired connection can be achieved using Ethernet, a universal serial bus (USB), RJ-6, or any other wired connection known in the art. A wireless connection can be achieved using Wi-Fi, WiMAX, and Bluetooth, infrared, cellular networks, satellites, or any other wireless connection methods known in the art. In addition, several networks can work alone or communicate with each other to facilitate communication in the network 571.

[0046] It should be understood that Figure 4 The program modules, applications, computer executable instructions, codes, etc., shown as stored in the system memory 530 are merely illustrative and not exhaustive, and the processing described as supported by any particular module may be alternatively distributed across multiple modules or performed by different modules. In addition, various program modules, scripts, plug-ins, application programming interfaces (APIs), or any other suitable computer executable code can be provided, hosted locally on the computer system 510, on the remote device 580, and / or hosted on other computing devices accessible via one or more networks 571, to support the processing by Figure 4 The functions and / or additional or alternative functions provided by the program modules, applications or computer executable codes depicted in the embodiment of the present invention can be modularized in different ways, so that the functions described as being composed of Figure 4 The processing supported by the set of program modules shown can be performed by a smaller or larger number of modules, or the function described as supported by any particular module can be supported at least in part by another module. In addition, the program modules supporting the functions described herein can form part of one or more applications that can be executed across any number of systems or devices according to any suitable computing model, such as a client-server model, a peer-to-peer model, etc. In addition, any function described as supported by any program module shown in FIG. 7 can be implemented at least in part in hardware and / or firmware on any number of devices.

[0047] It should also be understood that, without departing from the scope of the present invention, the computer system 510 can include alternative and / or additional hardware, software or firmware components other than those described or shown. More specifically, it should be understood that the software, firmware or hardware components depicted as forming a part of the computer system 510 are merely illustrative, and in various embodiments, some components may not exist or can provide additional components. Although various illustrative program modules have been depicted and described as software modules stored in the system memory 530, it should be understood that the functions described as supported by the program modules can be implemented by any combination of hardware, software and / or firmware. It should also be understood that in various embodiments, each of the above modules can represent a logical partition of the supported functions. This logical partition is described for the convenience of explaining the functions, and may not represent the structure of the software, hardware and / or firmware used to implement the functions. Therefore, it should be understood that in various embodiments, the functions described as provided by a specific module can be provided at least in part by one or more other modules. In addition, in some embodiments, there may be no one or more described modules, while in other embodiments, there may be additional modules that are not described, and these additional modules can support at least a part of the described functions and / or additional functions. Furthermore, while certain modules may be depicted and described as sub-modules of another module, in certain embodiments, such modules may be provided as independent modules or sub-modules of other modules.

[0048] Although specific embodiments of the present invention have been described, it will be appreciated by those of ordinary skill in the art that many other modifications and alternative embodiments are also within the scope of the present invention.For example, any function and / or processing capability described for a particular device or component can be performed by any other device or component.In addition, although various illustrative implementations and architectures have been described according to embodiments of the present invention, it will be appreciated by those of ordinary skill in the art that many other modifications to the illustrative implementations and architectures described herein are also within the scope of the present invention.In addition, it should be understood that any operation, element, component, data, etc. described herein as based on another operation, element, component, data, etc. can be based on one or more other operations, elements, components, data, etc. in addition.Therefore, phrase "based on" or its variants should be interpreted as "based at least in part on".

[0049] Although embodiments have been described with language specific to structural features and / or method actions, it should be understood that the present invention is not necessarily limited to the specific features or actions described. Instead, specific features and actions are disclosed as illustrative forms of implementing embodiments. Conditional language, such as "can", "may", "possibly" or "can", unless otherwise specifically stated or otherwise understood in the context of use, is generally intended to convey that certain embodiments can include certain features, elements and / or steps, while other embodiments do not. Therefore, such conditional language is generally not intended to imply that one or more embodiments require features, elements and / or steps in any way, or that one or more embodiments must include logic for determining whether these features, elements and / or steps are included in any particular embodiment or will be executed with or without user input or prompting.

[0050] Flowchart and block diagram in the figure illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present invention.In this regard, each frame in flow chart or block diagram can represent the module, fragment or part of instruction, which includes one or more executable instructions for realizing the specified logical function.In some alternative embodiments, the function marked in the frame can not occur according to the order marked in the figure.For example, two frames shown continuously can actually be performed substantially at the same time, or these frames can sometimes be performed in reverse order, depending on the function involved.It will also be noted that the combination of each frame in the block diagram and / or flow chart illustration and the frame in the block diagram and / or flow chart illustration can be realized by a system based on special-purpose hardware, which performs the specified function or action or performs the combination of special-purpose hardware and computer instruction.

Claims

1. A robotic repair method performed by a node within a core network defining a plurality of network slices, the method comprising: obtaining a directed acyclic graph (DAG) and an arrival time associated with a first user equipment (UE), the arrival time indicating when the first UE was connected to the core network; Based on the DAG, calculating the task priority related to the first UE; Calculate a UE priority associated with the first UE based on the arrival time and the task priority; Based on the UE priority, assigning the first UE to a first network slice among the multiple network slices; calculating an average load defined by user plane functions within the first network slice; comparing the average load to a predetermined threshold; and When the average load is less than the predetermined threshold, an objective function is performed to determine that a first user plane function of the user plane functions within the first network slice has more available resources than other user plane functions within the first network slice.

2. The method according to claim 1, further comprising: identifying a new connection between the first UE and the core network; and A DAG responsive to the new connection is obtained.

3. The method according to claim 1, further comprising: storing the task priorities in an ordered list, the ordered list defining the tasks and the corresponding priority associated with each task; and The UE priority is further calculated based on the ranked list.

4. The method according to claim 1, further comprising: Based on the task priority, a user plane function (UPF) pool associated with each of the multiple network slices is created, and the UPF pool associated with the first network slice defines the first user plane function.

5. The method according to claim 4, further comprising: Determining whether the UE waiting list is empty, thereby determining that the UE waiting list does not include an available UE; and When the UE waiting list is not empty, so that the UE waiting list includes at least one available UE, the first UE is allocated to the first network slice.

6. The method according to claim 5, further comprising: determining whether the first network slice is empty, thereby determining that the first network slice does not include a user plane function; and When the first network slice is not empty, calculating the average load defined by the user plane function within the first network slice.

7. The method according to claim 6, further comprising: pre-assigning the first UE to the first user plane function to define a new average load defined by the user plane function within the first network slice; comparing the new average load to the predetermined threshold; and When the new average load is less than the predetermined threshold, the first UE is allocated to the first user plane function.

8. The method according to claim 7, further comprising: When the first network slice is empty, or when the average load or the new average load is greater than the predetermined threshold, determine whether the UPF pool associated with the first network slice is empty.

9. The method according to claim 8, further comprising: When the UPF pool associated with the first network slice is empty, wait for an available UPF from the UPF pool associated with the first network slice.

10. The method according to claim 8, further comprising: When the UPF pool associated with the first network slice is not empty, allocating a second UPF from the UPF pool to the first network slice; and The first UE is assigned to the second UPF.

11. A core network comprising: A plurality of core network functions, wherein the plurality of core network functions define a plurality of network slices; processor; and a memory storing instructions that, when executed by the processor, cause the core network to: obtaining a directed acyclic graph (DAG) and an arrival time associated with a first user equipment (UE), the arrival time indicating when the first UE was connected to the core network; Based on the DAG, calculating the task priority related to the first UE; Calculate a UE priority associated with the first UE based on the arrival time and the task priority; Based on the UE priority, assigning the first UE to a first network slice among the multiple network slices; calculating an average load defined by a user plane function within the first network slice; comparing the average load to a predetermined threshold; and When the average load is less than the predetermined threshold, an objective function is performed to determine that a first user plane function of the user plane functions within the first network slice has more available resources than other user plane functions within the first network slice.

12. The core network of claim 11, wherein the memory further stores instructions, which, when executed by the processor, further cause the core network to: identifying a new connection between the first UE and the core network; and A DAG responsive to the new connection is obtained.

13. The core network of claim 11, wherein the memory further stores instructions, which, when executed by the processor, further cause the core network to: storing the task priorities in an ordered list, the ordered list defining the tasks and the corresponding priority associated with each task; and The UE priority is further calculated based on the ranked list.

14. The core network of claim 11, wherein the memory further stores instructions, which, when executed by the processor, further cause the core network to: Based on the task priority, a user plane function (UPF) pool associated with each of the multiple network slices is created, and the UPF pool associated with the first network slice defines the first user plane function.

15. The core network of claim 14, wherein the memory further stores instructions, and when the processor executes the instructions, the instructions further cause the core network to: determining whether the UE waiting list is empty, thereby determining that the UE waiting list does not include an available UE; and When the UE waiting list is not empty, so that the UE waiting list includes at least one available UE, the first UE is allocated to the first network slice.