Methods, devices, apparatuses, and media for service provision

By generating service identifiers in computing devices and combining them with traditional IP addressing, the problem of high signaling overhead in network and computing converged environments is solved, achieving efficient service deployment and improved transmission efficiency, while maintaining compatibility with traditional IP devices.

CN116346892BActive Publication Date: 2026-04-14ALCATEL LUCENT SHANGHAI BELL CO LTD +1
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ALCATEL LUCENT SHANGHAI BELL CO LTD
Filing Date
2021-12-24
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

Under the general trend of convergence between networks and computing, existing service delivery methods suffer from huge signaling overhead and unreasonable resource management, especially in terms of dynamic deployment of computing resources across operators and compatibility with traditional IP devices.

Method used

By generating service identifiers in computing devices and using service-oriented addressing based on these identifiers, combined with traditional IP addressing, signaling overhead is reduced, enabling dynamic service deployment and compatibility with traditional IP devices.

Benefits of technology

It effectively reduces signaling overhead, improves transmission efficiency, and supports compatibility with traditional IP devices, making it suitable for various scenarios without requiring all computing devices to be upgraded simultaneously.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116346892B_ABST
    Figure CN116346892B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to methods, devices, apparatuses and media for service provisioning. The method includes receiving, by a computing device, a request for a service from a client. Then, the computing device obtains an identification of the service. The identification of the service is associated with at least one of: a destination internet protocol address of the service, a destination port of the service, and an application layer identification of the service. Thereafter, the computing device determines whether the service can be provided to the client based on the identification of the service. In this way, signaling overhead can be greatly reduced, improving the efficiency of transmission.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of this disclosure relate to the field of communications, and more particularly to methods, apparatus, devices, and computer-readable storage media for service provision. Background Technology

[0002] In recent years, with the large-scale deployment of infrastructure by telecommunications operators, a significant trend of convergence between networks and computing has emerged. Telecommunications operators can open up and lease their computing resources to third parties, rather than simply providing network access services.

[0003] Therefore, the vision of computing power networks is to establish an open and unified computing resource management platform for resource consumers, to more efficiently support any service provided by them. Any resource provider, such as telecommunications operators, internet companies, cloud companies, universities, associations, or even individuals, can connect to this computing resource management platform and open their computing resources to potential resource consumers.

[0004] However, with the general trend of convergence between networking and computing, a high degree of collaboration between the two is required. How to implement reasonable service deployment and resource management while considering the location and service requirements of resource consumers, as well as the load and network performance of the computing resource management platform, remains an unresolved issue. Summary of the Invention

[0005] Overall, the embodiments of this disclosure relate to improved schemes for service delivery.

[0006] In a first aspect of this disclosure, a service provision method is provided. The method includes receiving a request for a service from a client by a computing device. The computing device then obtains an identifier for the service. The identifier for the service is associated with at least one of the following: the destination Internet Protocol address of the service, the destination port of the service, and the application layer identifier of the service. Furthermore, based on the identifier of the service, the computing device determines whether it is capable of providing the service to the client.

[0007] In a second aspect of this disclosure, a service provision method is provided. The method includes a service provider device receiving a request for a service from a client via one or more computing devices. The service provider device then selects a computing device from the at least one computing device for providing the service based on information included in the request regarding resources available for providing the service at at least one of the one or more computing devices. Furthermore, the service provider device sends an instruction to the selected computing device to provide the service.

[0008] In a third aspect of this disclosure, an apparatus is provided. The apparatus includes at least one processor; and a memory coupled to the at least one processor, the memory containing instructions stored therein, which, when executed by at least one processing unit, cause the first apparatus to perform the method of the first aspect.

[0009] In a fourth aspect of this disclosure, an apparatus is provided. The apparatus includes at least one processor; and a memory coupled to the at least one processor, the memory containing instructions stored therein, which, when executed by at least one processing unit, cause the second apparatus to perform the method of the second aspect.

[0010] In a fifth aspect of this disclosure, an apparatus is provided. The apparatus includes components for receiving a request for a service from a client using a computing device. Additionally, the apparatus includes components for obtaining an identifier of the service, the identifier of which is associated with at least one of: a destination Internet Protocol address of the service, a destination port of the service, and an application layer identifier of the service. The apparatus also includes components for determining, based on the identifier of the service, whether the service can be provided to the client.

[0011] In a sixth aspect of this disclosure, an apparatus is provided. The apparatus includes components for receiving a request for a service from a client via one or more computing devices. Additionally, the apparatus includes components for selecting a computing device from the at least one computing device for providing the service based on information included in the request regarding resources available at at least one of the one or more computing devices for providing the service. The apparatus further includes components for sending instructions to the selected computing device to provide the service.

[0012] In a seventh aspect of this disclosure, a computer-readable storage medium is provided having program code stored thereon, the program code being configured to cause a device to perform the method according to the first aspect when executed.

[0013] In an eighth aspect of this disclosure, a computer-readable storage medium is provided having program code stored thereon, the program code being configured to cause a device to perform the method according to the second aspect when executed.

[0014] It should be understood that the description in the Summary of the Invention section is not intended to limit the key or essential features of the embodiments of this disclosure, nor is it intended to restrict the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description

[0015] Embodiments of this disclosure are presented by way of example, and their advantages are explained in more detail below with reference to the accompanying drawings, wherein

[0016] Figure 1A A schematic diagram of a centralized service delivery method is shown;

[0017] Figure 1B A schematic diagram of a distributed service provision method is shown;

[0018] Figure 2 Example environments in which the various embodiments of this disclosure can be implemented are shown;

[0019] Figure 3 A flowchart illustrating example methods of service provision according to some embodiments of this disclosure is shown;

[0020] Figure 4 An example process for determining service provision according to some embodiments of this disclosure is shown;

[0021] Figure 5 A flowchart is shown illustrating an example method implemented at a computing device according to some embodiments of the present disclosure;

[0022] Figure 6 An example process for generating an identifier for a service according to some embodiments of this disclosure is shown;

[0023] Figure 7 A flowchart illustrating example methods implemented at a computing device according to other embodiments of the present disclosure is shown;

[0024] Figure 8 A flowchart illustrating example methods of service provision according to other embodiments of this disclosure is shown;

[0025] Figure 9 A simplified block diagram of an electronic device suitable for implementing embodiments of the present disclosure is shown; and

[0026] Figure 10 A schematic diagram of a computer-readable storage medium suitable for implementing embodiments of the present disclosure is shown.

[0027] In all the accompanying drawings, the same or similar reference numerals denote the same or similar elements. Detailed Implementation

[0028] The principles and spirit of this disclosure will now be described with reference to several exemplary embodiments illustrated in the accompanying drawings. It should be understood that these specific embodiments are described only to enable those skilled in the art to better understand and implement this disclosure, and are not intended to limit the scope of this disclosure in any way.

[0029] As used herein, the term "comprising" and similar expressions should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "an embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0030] As used herein, the term "determine" encompasses a wide variety of actions. For example, "determine" can include calculation, computation, processing, derivation, investigation, searching (e.g., looking in a table, database, or other data structure), ascertainment, etc. Furthermore, "determine" can include receiving (e.g., receiving information), accessing (e.g., accessing data in memory), etc. Additionally, "determine" can include parsing, selecting, choosing, building, etc.

[0031] As used herein, the term "circuit" refers to one or more of the following: (a) a hardware circuit implementation (such as an implementation of analog and / or digital circuits only); and (b) a combination of hardware circuits and software, such as (if applicable): (i) a combination of analog and / or digital hardware circuits with software / firmware; and (ii) any part of a hardware processor with software (including digital signal processors, software, and memory that work together to enable devices such as optical communication devices or other computing devices to perform various functions); and (c) a hardware circuit and / or processor, such as a microprocessor or a part of a microprocessor, which requires software (e.g., firmware) for operation, but may be without software when it is not required for operation.

[0032] The definition of "circuit" applies to all uses of this term in this application (including any claim). As another example, the term "circuit" as used herein also covers a hardware circuit or processor (or processors), or a portion thereof, or an implementation thereof with accompanying software or firmware. For instance, if applicable to a particular claim symbol, the term "circuit" also covers a baseband integrated circuit or processor integrated circuit, or a similar integrated circuit in an OLT or other computing device.

[0033] As used herein, the term "resource consumer" refers to a device or apparatus that consumes resources in a communication network. Examples of resource consumers may include businesses or individuals that have service needs but are unable to provide resources themselves or provide sufficient resources to provide those services.

[0034] As used herein, the term "service provider equipment" refers to the apparatus or device that a resource consumer provides to send requests for services. In a communication network, a service provider equipment may directly provide resources for a resource consumer's service, or it may lease resources from other equipment to provide services to the resource consumer.

[0035] As used herein, the term "computing device" refers to an apparatus or device in a communication network that provides resources to a resource consumer's service. Examples of computing devices or computing apparatuses may include those of telecommunications operators, internet or cloud companies, or personal devices.

[0036] As mentioned above, under the general trend of convergence between networking and computing, a high degree of collaboration between the two is required. Therefore, achieving reasonable service deployment and resource management is a crucial aspect of improving network performance. Regarding network resource management and service deployment, two different service delivery methods have been proposed: centralized and distributed service delivery. These will be discussed in more detail below. Figure 1A and Figure 1B We will have a detailed discussion.

[0037] Figure 1A A schematic diagram of a centralized service delivery method is shown. For example... Figure 1A As shown, the computing resources of computing devices 101-103 are jointly scheduled by a central management device 104. Each computing device has an independent resource spooler tool installed to provide additional computing / storage resources. Therefore, a computing device can act as a potential resource provider. The resource spooler tool periodically collects the resource status of the computing device and reports it to the central management device 104. The resource status may include, for example, computing load, deployed / running service status, etc. Accordingly, the central management device 104 manages resource scheduling and related network configurations based on the resource status reported by all computing devices 101-103.

[0038] However, this centralized service delivery method requires all computing devices 101-103 to periodically report their resource status to the central management device 104, which incurs significant signaling overhead. Furthermore, this centralized service delivery method requires static / semi-static physical deployment locations. Therefore, for a specific service, dynamic deployment among geographically distributed computing devices cannot use the same destination Internet Protocol (IP) address as a public service entry point; this is only applicable to cloud environments. Additionally, this centralized service delivery method is only suitable for a single operator. When the computing devices providing resources come from multiple different operators, it becomes difficult to achieve unified reporting and management of resource status information.

[0039] In addition, a network model with dynamic distributed computing and deep network integration, known as the Computation-First Network (CFN) framework, was proposed. Figure 1B A schematic diagram of this distributed service provision method is shown. Figure 1B The diagram illustrates a resource provisioning platform consisting of three computing devices 105-107. The CFN layer 108 can be optionally placed above or below the traditional IP layer 109.

[0040] Figure 1B The CFN layer 108 shown is used for the joint management of computing resources and services among computing devices. For example, CFN layer 108 can acquire and maintain the computing resource and service status of the computing devices themselves. CFN layer 108 can also run service-oriented routing protocols and generate corresponding routing / forwarding tables. Based on a request from client 110, CFN layer 108 can dynamically select the computing device that can provide the best service to provide the service, and perform related forwarding actions to notify the computing device to provide the service. Optionally, the CFN layer can run resource discovery protocols to exchange the status of computing resources and services between networks. Alternatively, IP layer protocols (e.g., Extended Border Gateway Protocol (BGP) or Segmentation Routing (SRv6)) can be extended to exchange the above information.

[0041] This distributed service delivery approach still has some significant drawbacks. For example, this distributed resource management incurs substantial signaling overhead. Resource / service status information from each computing device needs to be frequently broadcast and forwarded throughout the network, resulting in significant signaling overhead for the resource discovery and information exchange process. Furthermore, computing devices supporting distributed resource management cannot communicate directly with traditional IP devices. A dedicated gateway is required to perform protocol conversion and interconnection between the two types of devices. Additionally, these distributed resource management devices cannot be upgraded individually; all computing devices within the network must be upgraded together for inter-device interaction to occur.

[0042] It is evident that traditional service delivery methods inevitably incur significant signaling overhead. Currently, there is a lack of effective methods for achieving reasonable network resource management and service deployment for services.

[0043] Embodiments of this disclosure propose a scheme for service provision. In this scheme, a computing device receives a service request from a client. The computing device then obtains an identifier for the service. The service identifier is associated with at least one of the following: the destination Internet Protocol address of the service, the destination port of the service, and the application layer identifier of the service. For example, the computing device may generate a service identifier based on at least one of the above and add it to the request before sending an updated request to the next-hop computing device. For example, the computing device may receive a request from the previous-hop computing device and obtain the service identifier from the request. The computing device then determines whether it can provide the service to the client based on the service identifier.

[0044] By deploying relevant service instances on computing devices along the IP-addressed path from the client to the service provider device during the deployment phase, and by using the service identifier generated and added to the request, a service-oriented addressing method can be achieved. This scheme can significantly reduce signaling overhead and improve transmission efficiency. Furthermore, it is compatible with traditional IP-addressed methods and is applicable in various scenarios.

[0045] Figure 2 Example environment 200 in which various embodiments of this disclosure can be implemented is shown. For example... Figure 2 As shown, example environment 200 includes client 210, which can be a computer, virtual machine, smartphone, etc. Example environment 200 also includes computing devices 220-1 and 220-2 (hereinafter collectively referred to as 220 for ease of discussion). An example of computing device 220 can be a computing power device. Computing devices 220-1 and 220-2 constitute network 230. An example of network 230 can be a computing power network. Network 230 can be a network via wired or wireless media. Example environment 200 also includes service provider device 240 for services requested by client 210.

[0046] Client 210 and computing device 220 can communicate with each other via wired and / or wireless means. Computing device 220 and service provider device 240 can communicate with each other via wired and / or wireless means. Any communication methods currently known and developed in the future may be used herein, and the scope of this disclosure is not limited in this respect.

[0047] It should be understood that Figure 2 The environment 200 shown is merely exemplary and should not constitute any limitation on the functionality and scope of the implementation described in this disclosure. Figure 2The number of client, computing device, and service provider devices shown is for illustrative purposes. Environment 200 may include any suitable number of client, computing device, and service provider devices. For example, environment 200 may include additional devices communicating with client 210, computing device 220, and service provider device 240.

[0048] In some example embodiments, computing device 220 receives a service request from client 210. For example, computing device 220-1 may receive the request directly from client 210. Computing device 220-2 may receive the request from a previous-hop computing device, such as computing device 220-1. Then, computing device 220 obtains the service identifier and, based on the service identifier, determines whether it can provide service to client 210. The service identifier is associated with at least one of the service's destination IP address, the service's destination port, and the service's application layer identifier.

[0049] For example, computing device 220-1 can generate a service identifier based on at least one of the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier. Computing device 220-1 can then determine whether it can provide service to client 210 based on this service identifier. If computing device 220-1 determines that it can provide service to client 210, it will provide the service locally. If computing device 220-1 determines that it cannot provide service to client 210, it can update the request by adding the service identifier to the request and send the updated request to the next-hop computing device, such as computing device 220-2. It should be understood that adding the service identifier to the request only inserts the service identifier into the IP packet header and does not modify the traditional IP routing protocol; therefore, the request can still perform traditional IP-based routing based on the destination IP address.

[0050] Subsequently, computing device 220-2 can receive a request from computing device 220-1 and obtain a service identifier from the request. Computing device 220-2 can determine whether it can provide service to client 210 based on the service identifier. If computing device 220-2 determines that it can provide service to client 210 based on the obtained service identifier, then computing device 220-2 provides service to client 210 locally. If computing device 220-2 determines that it cannot provide service to client 210, it continues to send the request to the next-hop node. If all computing devices in network 230 are unable to provide service to client 210, the request will ultimately be sent to service provider device 240 for service provision.

[0051] During the service deployment phase, i.e., when the request from client 210 is the first request for the service, user equipment 220-1, upon receiving the service request, similarly determines the service identifier as described above and adds the service identifier to the request. For example, user equipment 220-1 may also update the request by adding information about resources available at computing device 220-1 that can be used to provide the service, and send the request to service provider device 240. Correspondingly, computing device 220-2 receives the request, updates the request by adding information about resources available at computing device 220-2 that can be used to provide the service, and sends the request to service provider device 240. Service provider device 240, based on the information obtained from the request about resources available at all computing devices that can be used to provide the service, selects a computing device from all computing devices to provide the service. Service provider device 240 may then send an instruction to provide the service to the selected computing device. Accordingly, the selected computing device may locally deploy a service instance for the service to provide the service when subsequent requests for the service arrive.

[0052] It should be understood that network 230 may include other conventional devices that only support IP addressing and do not support the functions implemented by the aforementioned technical devices. That is, between client 210 and computing device 220-1, between computing device 220-1 and computing device 220-2, and between computing device 220-2 and service provider device 240, there may be one or more other devices that only support conventional IP addressing. In such cases, these IP addressing-only devices can forward messages from the previous-hop computing device to the next-hop computing device, providing only conventional IP addressing operations.

[0053] Furthermore, it should be understood that during the service provision process, if the service-based addressing method fails due to reasons such as computing device 220-1 failing to generate the service identifier, or all service nodes being unable to provide services to client 210, or network 230 including traditional IP devices that only support IP-based addressing, the service provision process will not be terminated. In other words, even if the service-based addressing method fails, requests from client 210 can still reach service provider device 240 via IP addressing, and service provider device 240 will then provide the service.

[0054] This approach enables dual addressing, allowing for both service-based addressing and IP-based addressing. During service provision, frequent signaling interactions between devices and the network, or between devices themselves, are avoided, significantly reducing signaling overhead and improving transmission efficiency. Furthermore, this solution maintains compatibility with traditional IP routing protocols and is applicable in various scenarios. Moreover, this solution does not require a complete stack upgrade for all computing devices. Since any computing device is compatible with traditional IP protocols and user equipment, it can support the upgrade of a single traditional IP-based addressing device to a computing device capable of performing the aforementioned operations.

[0055] Figure 3 A flowchart of an example service provision method 300 according to some embodiments of the present disclosure is shown. For example, method 300 may be provided by, for example... Figure 2 The method is executed by the computing device 220 shown. It should be understood that the method 300 can also be executed by other devices, and the scope of this disclosure is not limited in this respect. It should also be understood that the method 300 may also include additional actions not shown and / or the actions shown may be omitted, and the scope of this disclosure is not limited in this respect.

[0056] like Figure 3 As shown, in box 310, computing device 220 receives a service request from client 210. The destination IP address of the request is set to service provider device 240. Therefore, for example, the request from client 210 can be addressed to determine which next-hop computing device it will be forwarded to based on the IP address that can be resolved from the request via domain name resolution. For example, computing device 220-1 can receive the request directly from client 210. Computing device 220-2 can receive the request from computing device 220-1.

[0057] In box 320, computing device 220 obtains an identifier for a service. This identifier is associated with at least one of the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier. For example, computing device 220-1 may generate the service identifier based on at least one of the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier. For example, a request received by computing device 220-2 from computing device 220-1 may include the service identifier, and therefore, computing device 220-2 can directly obtain the service identifier from that request.

[0058] In some embodiments, computing device 220 may maintain a library that records a set of identifiers of the services it can support. Based on this library, computing device 220 can determine the identifiers of all service instances already deployed on it. For example, the library may be implemented as a Local Service Table (LST).

[0059] In some embodiments, computing device 220 can determine whether the request is the first request for a service. For example, if computing device 220 determines that the request is the first request for a service, it means that a service instance for that service has not yet been deployed, and computing device 220 accordingly performs deployment phase actions, which will be described in detail below. If computing device 220 determines that the request is not the first request for a service, it means that a service instance for that service has been previously deployed. Therefore, computing device 220 can determine whether it can provide services to client 210 based on the service's identifier, which will be discussed in detail below.

[0060] In box 330, computing device 220 determines whether it can provide service to client 210 based on the service's identifier. For example, computing device 220 can determine whether it can provide service to client 210 by querying a database using the acquired service identifier. The following will combine... Figure 4 The process will be discussed in detail.

[0061] Figure 4 Example processes for determining service provision according to some embodiments of this disclosure are illustrated. For example... Figure 4 As shown, at 402, computing device 220 performs a process of obtaining the identifier of the service. If the acquisition process is successful, then at 404, computing device 220 uses the obtained service identifier to query a database. For example, if the database includes the identifier of the service, that is, the query process is successful, then computing device 220 can determine that it can provide services to client 210, and then at 406, computing device 220 provides services to client 210 locally.

[0062] If the identifier for the service is not found in the database, the query process fails, and computing device 220 cannot provide service to client 210. Subsequently, at 408, computing device 220 can send the request to the next-hop computing device. Alternatively, if the retrieval process fails, computing device 220 can send the request to the next-hop computing device at 408.

[0063] As described above, the next-hop computing device can be determined based on IP address addressing. For example, the next-hop computing device can be a device that supports service-based addressing or a device that only supports IP addressing. Alternatively, if network 230 includes only one computing device 220, the next-hop computing device can be a service provider device 240.

[0064] Reference Figure 3In some embodiments, if computing device 220-1 determines that it cannot provide service to client 210, it can update the request by adding a service identifier to the request and send the updated request to the next-hop computing device. The next-hop computing device can perform the service identifier acquisition and service provision determination process as described above. If the next-hop computing device also cannot provide service to client 210, it continues to send the request to its next-hop computing device. If none of the computing devices in network 230 can provide service to client 210, the request is ultimately sent to service provider device 240 for service provision.

[0065] In some embodiments, during the service deployment phase, i.e., if computing device 220 determines that the request is the first request for the service, it updates the request by adding at least some information about the resources available at computing device 220 for providing the service. For example, information about the resources available at computing device 220 for providing the service may include available memory, bandwidth, latency, and resource prices. As an example, this information may be added to the Extended Internet Protocol Version 6 (IPv6) protocol stack. Then, computing device 220 may send the updated request to service provider device 240. For example, computing device 220-1 can update the request by adding the service identifier and information about the resources to the request, and send the updated request to service provider device 240.

[0066] In some embodiments, computing device 220 may receive instructions to provide services from service provider device 240. Accordingly, computing device 220 may deploy a service instance for the service locally and add the service's identifier to a maintained library that records identifiers of the services it can support. Subsequently, when a subsequent request for the service arrives, computing device 220 may provide the service locally to client 210.

[0067] Figure 5 A flowchart illustrating an example method 500 implemented at a computing device according to some embodiments of the present disclosure is shown. For example, method 500 may be implemented by, for example... Figure 2 The method is executed by the computing device 220-1 shown. It should be understood that method 500 can also be executed by other devices, and the scope of this disclosure is not limited in this respect. It should also be understood that method 500 may also include additional actions not shown and / or the actions shown may be omitted, and the scope of this disclosure is not limited in this respect.

[0068] like Figure 5 As shown, in box 510, computing device 220-1 receives a service request from client 210.

[0069] Subsequently, in block 520, computing device 220-1 generates a service identifier based on at least one of the following: the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier. For example, computing device 220-1 may generate the service identifier based on a mapping relationship between the service identifier and at least one of the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier. This mapping relationship can be determined in any way, and embodiments of this disclosure are not limited thereto.

[0070] In box 530, computing device 220-1 determines whether it can provide service to client 210 based on the generated service identifier. For example, computing device 220-1 can determine whether it can provide service to client 210 by querying a database using the generated service identifier. If the database contains the service identifier, computing device 220-1 can determine that it can provide service to client 210. If the database does not contain the service identifier, computing device 220-1 can determine that it cannot provide service to client 210. Furthermore, computing device 220-1 can update the request by adding the service identifier to the request. Computing device 220-1 can then send the updated request to the next-hop computing device.

[0071] In some embodiments, during the deployment phase, i.e., if computing device 220-1 determines that the request is the first request for a service, it updates the request by adding a service identifier and information about resources available at computing device 220-1 to provide the service. Then, computing device 220-1 can send the updated request to service provider device 240. For example, computing device 220-1 may receive instructions to provide the service from service provider device 240. Accordingly, computing device 220-1 can deploy a service instance for the service locally and add the service identifier to a maintained library recording the identifiers of the services it can support. Subsequently, when subsequent requests for the service arrive, computing device 220-1 can provide the service locally to client 210.

[0072] The following will refer to Figure 6 Here is a specific example of the process for generating the service identifier, 600. Figure 6 As shown, at 602, computing device 220-1 performs a mapping process for the service identifier. For example, computing device 220-1 may perform the mapping process for the service identifier based on a mapping relationship between the service identifier and at least one of the following: the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier.

[0073] If the mapping process is successful, computing device 220-1 can successfully generate a service identifier. Then, computing device 220-1 can determine whether it can provide service to client 210 based on the generated identifier. For example, if computing device 220-1 determines that it can provide service to client 210, then computing device 220-1 provides the service locally to client 210. If computing device 220-1 determines that it cannot provide service to client 210, then at 604, computing device 220-1 adds the identifier to the request. Then, at 606, computing device 220-1 sends a request with the identifier to the next-hop computing device.

[0074] If the mapping process fails, computing device 220-1 cannot generate a service identifier, and subsequently at 606, computing device 220-1 can send a request without an identifier to the next-hop computing device. This means that the service-based addressing method has failed, so the client 210's request can only be served using the traditional IP-based addressing method.

[0075] Figure 7 A flowchart illustrating an example method 700 implemented at a computing device according to some embodiments of the present disclosure is shown. For example, method 700 may be implemented by, for example... Figure 2 The method 700 is executed by the computing device 220-2 shown. It should be understood that the method 700 can also be executed by other devices, and the scope of this disclosure is not limited in this respect. It should also be understood that the method 700 may also include additional actions not shown and / or the actions shown may be omitted, and the scope of this disclosure is not limited in this respect.

[0076] like Figure 7 As shown, in block 710, computing device 220-2 receives a service request from client 210. For example, computing device 220-2 may receive the request from a previous-hop computing device, such as computing device 220-1. In some embodiments, the received request may include an identifier of the service.

[0077] In box 720, computing device 220-2 obtains the identifier of the service from the request. The identifier of the service is associated with at least one of the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier.

[0078] In box 730, computing device 220-2 determines whether it can provide service to client 210 based on the service's identifier. For example, computing device 220-2 can determine whether it can provide service to client 210 by querying a database using the acquired service identifier. For example, if the database contains the service's identifier, computing device 220-2 can determine that it can provide service to client 210, and will provide the service locally to client 210. Otherwise, if the database does not contain the service's identifier, computing device 220-2 can determine that it cannot provide service to client 210. Then, computing device 220-2 can send the request to the next-hop computing device.

[0079] In some embodiments, during the deployment phase, i.e., if computing device 220-2 determines that the request is the first request for a service, it updates the request by adding a service identifier and information about resources available at computing device 220-2 to provide the service. Then, computing device 220-2 can send the updated request to service provider device 240. For example, computing device 220-2 may receive instructions to provide the service from service provider device 240. Accordingly, computing device 220-2 can deploy a service instance for the service locally and add the service identifier to a maintained library recording the identifiers of the services it can support. Subsequently, when subsequent requests for the service arrive, computing device 220-2 can provide the service locally to client 210.

[0080] Figure 8 A flowchart of an example service provision method 800 according to some embodiments of the present disclosure is shown. For example, method 800 may be provided by, for example... Figure 2 The service provider device 240 shown is used to perform the method. It should be understood that the method 800 can also be performed by other devices, and the scope of this disclosure is not limited in this respect. It should also be understood that the method 800 may also include additional actions not shown and / or the actions shown may be omitted, and the scope of this disclosure is not limited in this respect.

[0081] like Figure 8 As shown, in block 810, service provider device 240 receives a service request from client 210 via one or more computing devices. For example, the request may include information about resources available at at least one of the computing devices to provide the service. For instance, service provider device 240 may receive the service request from client 210 via computing devices 220-1 and 220-2.

[0082] In box 820, service provider device 240 selects a computing device from at least one computing device to provide the service based on information included in the request regarding resources available for providing the service at at least one of the one or more computing devices. For example, service provider device 240 may select the computing device to provide the service based on factors such as network status and price included in the information about the resources, and for example, based on quality of service requirements.

[0083] In some embodiments, service provider device 240 may negotiate with the owner of computing device 220. If the negotiation is successful, service provider device 240 may deploy service instances for the service on computing device 220. For example, if the owner of computing device 220 is a traditional telecommunications operator, service provider device 240 may negotiate with a central management system. This central management system may be, for example, an operations / business support system (OSS / BSS). Alternatively, if the owner of computing device 220 is another third party, service provider device 240 may negotiate with other resource trading platforms (e.g., blockchain trading platforms).

[0084] Subsequently, in box 830, service provider device 240 sends an instruction to the selected computing device to provide the service. Accordingly, the selected computing device can receive the instruction and deploy a service example for the service to provide the service to client 210 locally.

[0085] Figure 9 This is a simplified block diagram of a device 900 suitable for implementing embodiments of the present disclosure. The device 900 can be provided to implement a communication device, such as... Figure 2 The client 210, computing device 220, and service provider device 240 are shown. As shown, device 900 includes one or more processors 910, one or more memories 940 coupled to processor 910, and one or more transmitters and / or receivers (TX / RX) 940 coupled to processor 910.

[0086] The TX / RX 940 is used for bidirectional communication. The TX / RX 940 has at least one antenna to facilitate communication. The communication interface can represent any interface necessary for communication with other network components.

[0087] Processor 910 can be any type suitable for a local technology network and can include, but is not limited to, one or more of a general-purpose computer, a special-purpose computer, a microcontroller, a digital signal controller (DSP), and a controller-based multi-core controller architecture. Device 900 can have multiple processors, such as application-specific integrated circuit chips, which are time-subordinate to a clock synchronized with the main processor.

[0088] Memory 920 may include one or more non-volatile memories and one or more volatile memories. Examples of non-volatile memories include, but are not limited to, read-only memory (ROM) 924, erasable programmable read-only memory (EPROM), flash memory, hard disk, optical disc (CD), digital video disc (DVD), and other magnetic and / or optical storage. Examples of volatile memories include, but are not limited to, random access memory (RAM) 922 and other volatile memories that do not persist during power-off periods.

[0089] Computer program 930 includes computer-executable instructions that are executed by associated processor 910. Program 930 may be stored in ROM 920. Processor 910 can perform any suitable actions and processes by loading program 930 into RAM 920.

[0090] The embodiments of this disclosure can be implemented by means of program 930, enabling device 900 to perform as described in the reference. Figures 2 to 8 Any process discussed in this disclosure. Embodiments of this disclosure may also be implemented by hardware or by a combination of software and hardware.

[0091] In some example embodiments, program 930 may be tangibly contained in a computer-readable storage medium, which may include in device 900 (such as in memory 920) or other storage devices accessible by device 900. Program 930 may be loaded from the computer-readable storage medium into RAM 922 for execution. The computer-readable storage medium may include any type of tangible non-volatile memory, such as ROM, EPROM, flash memory, hard disk, CD, DVD, etc.

[0092] Figure 10 An example of a computer-readable storage medium 1000 in the form of a CD or DVD is shown. A program 930 is stored on the computer-readable storage medium.

[0093] Generally, the various embodiments of this disclosure can be implemented in hardware or dedicated circuitry, software, logic, or any combination thereof. Some aspects can be implemented in hardware, while others can be implemented in firmware or software, which can be executed by a controller, microprocessor, or other computing device. Although various aspects of the embodiments of this disclosure are shown and described as block diagrams, flowcharts, or represented using some other illustration, it should be understood that the blocks, apparatuses, systems, techniques, or methods described herein can be implemented as, as in the non-limiting examples, hardware, software, firmware, dedicated circuitry or logic, general-purpose hardware or controllers or other computing devices, or some combination thereof.

[0094] This disclosure also provides at least one computer program product tangibly stored on a non-transitory computer-readable storage medium. The computer program product includes computer-executable instructions, such as instructions included in program modules, which execute in a device on a target's real or virtual processor to perform the above-referenced... Figure 3 , Figure 5 , Figure 7 and Figure 8 Methods 300, 500, 700, and 800 are described. Typically, a program module includes routines, programs, libraries, objects, classes, components, data structures, etc., that perform specific tasks or implement specific abstract data types. In various embodiments, the functionality of program modules can be combined or divided among program modules as needed. The machine-executable instructions for a program module can execute on a local or distributed device. In a distributed device, program modules can reside on local and remote storage media.

[0095] Computer program code used to implement the methods of this disclosure may be written in one or more programming languages. This computer program code may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, such that when executed by the computer or other programmable data processing apparatus, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be performed. The program code may be executed entirely on a computer, partially on a computer, as a stand-alone software package, partially on a computer and partially on a remote computer, or entirely on a remote computer or server.

[0096] In the context of this disclosure, computer program code or related data may be carried on any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable storage media, and so on. Examples of signals may include electrical, optical, radio, sound, or other forms of propagation signals, such as carrier waves, infrared signals, etc.

[0097] A computer-readable storage medium can be any tangible medium that contains or stores a program for or relating to an instruction execution system, apparatus, or device. A computer-readable storage medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. More detailed examples of computer-readable storage media include electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0098] Furthermore, although the operation of the methods of this disclosure is described in a specific order in the accompanying drawings, this does not require or imply that these operations must be performed in that specific order, or that all of the operations shown must be performed to achieve the desired result. Rather, the steps depicted in the flowcharts may be performed in a different order. Additionally or alternatively, certain steps may be omitted, multiple steps may be combined into one step, and / or one step may be broken down into multiple steps. It should also be noted that the features and functions of two or more devices according to this disclosure may be embodied in one device. Conversely, the features and functions of one device described above may be further divided and embodied by multiple devices.

[0099] While this disclosure has been described with reference to several specific embodiments, it should be understood that this disclosure is not limited to the specific embodiments disclosed. This disclosure is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.

[0100] In some aspects, a service provisioning method is provided, comprising: receiving a request for a service from a client by a computing device; obtaining an identifier for the service, the identifier of the service being associated with at least one of the following: a destination Internet Protocol address of the service, a destination port of the service, and an application layer identifier of the service; and determining, based on the identifier of the service, whether the service can be provided to the client.

[0101] In some embodiments, the request is received from the client, and obtaining the service identifier includes generating the service identifier based on at least one of the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier.

[0102] In some embodiments, the method further includes: if it is determined that service cannot be provided to the client, updating the request by adding an identifier of the service to the request; and sending the updated request to the next-hop computing device.

[0103] In some embodiments, the next-hop computing device is determined based on Internet Protocol address addressing.

[0104] In some embodiments, the request is received from the previous hop computing device, and obtaining the identifier of the service includes obtaining the identifier of the service from the request.

[0105] In some embodiments, determining whether a service can be provided to a client includes: querying a database of service identifiers, which records a set of identifiers of services that the computing device can support.

[0106] In some embodiments, determining whether a service can be provided to a client includes: determining whether the request is the first request for the service; and if the request is determined to be a non-first request for the service, determining whether a service can be provided to the client based on the service's identifier.

[0107] In some embodiments, the method further includes: if it is determined that the request is the first request for the service, updating the request by adding at least information about resources available at the computing device for providing the service; and sending the updated request to the service provider device.

[0108] In some embodiments, the request is received from a client, and updating the request includes updating the request by adding the identifier of the service and information about the resource to the request.

[0109] In some embodiments, the method further includes: receiving instructions to provide services from a service provider device; deploying a service instance for the service; and adding the service identifier to a library for recording identifiers of services that the computing device can support.

[0110] In some aspects, a service provisioning method is provided, comprising: receiving a request for a service from a client via one or more computing devices; selecting a computing device for providing the service from the at least one computing device based on information included in the request regarding resources available for providing the service at at least one of the one or more computing devices; and sending an instruction to the selected computing device to provide the service.

[0111] In some aspects, an apparatus for service provision is provided, comprising: at least one processor; and at least one memory coupled to the at least one processor, the at least one memory containing instructions stored therein, the at least one memory and the instructions being further configured, together with the at least one processor, to cause the apparatus to: receive a request for a service from a client; obtain an identifier of a service, the identifier of the service being associated with at least one of: a destination Internet Protocol address of the service, a destination port of the service, and an application layer identifier of the service; and, based on the identifier of the service, determine whether the service can be provided to the client.

[0112] In some embodiments, the request is received from a client, and at least one memory and instructions are further configured, together with at least one processor, to cause the device to obtain the identifier of the service by generating the identifier of the service based on at least one of the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier.

[0113] In some embodiments, at least one memory and instructions are further configured, together with at least one processor, to cause the device to: update the request by adding an identifier of the service to the request if it is determined that the service cannot be provided to the client; and send the updated request to the next-hop computing device.

[0114] In some embodiments, the next-hop computing device is determined based on Internet Protocol address addressing.

[0115] In some embodiments, the request is received from the previous-hop computing device, and at least one memory and instructions are further configured, together with at least one processor, to cause the device to obtain the identifier of the service by retrieving the identifier of the service from the request.

[0116] In some embodiments, at least one memory and instructions are further configured, together with at least one processor, to cause the device to determine whether it is able to provide services to a client by querying a library containing the identifiers of services that the computing device can support.

[0117] In some embodiments, at least one memory and instructions are further configured, together with at least one processor, to cause the device to determine whether it is able to provide services to a client by: determining whether the request is the first request for the service; and if the request is determined to be a non-first request for the service, determining whether it is able to provide services to the client based on the service's identifier.

[0118] In some embodiments, at least one memory and instructions are further configured, together with at least one processor, to cause the device to: update the request by adding at least information about resources available at the computing device for providing the service if it is determined that the request is the first request for the service; and send the updated request toward the service provider device.

[0119] In some embodiments, the request is received from a client, and at least one memory and instructions are further configured, together with at least one processor, to cause the device to update the request by adding an identifier of the service and information about the resource to the request.

[0120] In some embodiments, at least one memory and instructions are further configured, together with at least one processor, to cause the device to: receive instructions to provide services from a service provider device; deploy service instances for the services; and add service identifiers to a library for recording identifiers of services that the computing device can support.

[0121] In some aspects, an apparatus for service provision is provided, comprising: at least one processor; and at least one memory coupled to the at least one processor, the at least one memory containing instructions stored therein, the at least one memory and the instructions being further configured, together with the at least one processor, to cause the apparatus to: receive a request for a service from a client via one or more computing devices; select a computing device from the at least one computing device for providing the service based on information included in the request regarding resources available for providing the service at at least one of the one or more computing devices; and send instructions to the selected computing device to provide the service.

[0122] In some aspects, an apparatus for service provision is provided, comprising: components for receiving a request for a service from a client by a computing device; components for obtaining an identifier of a service, the identifier of which is associated with at least one of: a destination Internet Protocol address of the service, a destination port of the service, and an application layer identifier of the service; and components for determining, based on the identifier of the service, whether the service can be provided to the client.

[0123] In some embodiments, the request is received from a client, and the component for obtaining the identifier of the service includes: a component for generating the identifier of the service based on at least one of the service's destination Internet Protocol address, the service's destination port, and the service's application layer identifier.

[0124] In some embodiments, the apparatus further includes: a component for updating the request by adding an identifier of the service to the request if it is determined that the service cannot be provided to the client; and a component for sending the updated request to a next-hop computing device.

[0125] In some embodiments, the next-hop computing device is determined based on Internet Protocol address addressing.

[0126] In some embodiments, the request is received from the previous-hop computing device, and the component for obtaining the identifier of the service includes: a component for obtaining the identifier of the service from the request.

[0127] In some embodiments, the component for determining whether a service can be provided to a client includes: a component for determining whether a service can be provided to a client by querying a library of service identifiers, the library recording a set of identifiers of services that the computing device can support.

[0128] In some embodiments, the component for determining whether a service can be provided to a client includes: a component for determining whether a request is the first request for the service; and a component for determining whether a service can be provided to a client based on the service's identifier if the request is determined to be a non-first request for the service.

[0129] In some embodiments, the apparatus further includes: components for updating the request by adding at least information about resources available at the computing device for providing the service if it is determined that the request is the first request for the service; and components for sending the updated request toward the service provider device.

[0130] In some embodiments, the request is received from a client, and the component for updating the request includes a component for updating the request by adding an identifier of the service and information about the resource to the request.

[0131] In some embodiments, the apparatus further includes: components for receiving instructions to provide services from a service provider device; components for deploying service instances for the service; and components for adding service identifiers to a library for recording identifiers of services that the computing device can support.

[0132] In some aspects, an apparatus for providing a service is provided, comprising: components for receiving a request for a service from a client via one or more computing devices by a service provider device; components for selecting a computing device for providing the service from the at least one computing device based on information included in the request regarding resources available for providing the service at at least one of the one or more computing devices; and components for sending an instruction to the selected computing device to provide the service.

[0133] In some aspects, a computer-readable storage medium is provided having program code stored thereon, the program code being configured to cause a device to perform the steps according to the above aspects when executed.

Claims

1. A service delivery method, comprising: The computing device receives service requests from the client. Obtain the identifier of the service, which is associated with at least one of the following: the destination Internet Protocol address of the service, the destination port of the service, and the application layer identifier of the service; as well as Based on the identifier of the service, determining whether the service can be provided to the client, wherein determining whether the service can be provided to the client includes: Determine whether the request is the first request for the service; If it is determined that the request is not the first request for the service, then based on the identifier of the service, it is determined whether the service can be provided to the client. If it is determined that the request is the first request for the service, the request is updated by adding at least information about the resources available at the computing device to provide the service; and Send the updated request to the service provider's equipment.

2. The method of claim 1, wherein the request is received from the client, and obtaining the identifier of the service comprises: The identifier of the service is generated based on at least one of the destination Internet Protocol address of the service, the destination port of the service, and the application layer identifier of the service.

3. The method according to claim 2, further comprising: If it is determined that the service cannot be provided to the client, the request is updated by adding the identifier of the service to the request; as well as The updated request is sent to the next-hop computing device.

4. The method according to claim 3, wherein the next-hop computing device is determined based on Internet Protocol address addressing.

5. The method of claim 1, wherein the request is received from the previous-hop computing device, and obtaining the identifier of the service comprises: Obtain the identifier of the service from the request.

6. The method according to any one of claims 1 to 5, wherein determining whether the service can be provided to the client comprises: The ability to provide the service to the client is determined by using the identifier lookup library of the service, which records a set of identifiers of services that the computing device can support.

7. The method of claim 1, wherein the request is received from the client, and updating the request comprises: The request is updated by adding the identifier of the service and the information about the resource to the request.

8. The method according to claim 1 or 7, further comprising: Receive instructions to provide the service from the service provider's equipment; Deploy service instances for the aforementioned service; as well as Add the identifier of the service to a library used to record identifiers of services that the computing device can support.

9. A service delivery method, comprising: The service provider's device receives a request for the service from a client via one or more computing devices that can be used to provide the service; Based on information about resources available for providing the service at at least one of the one or more computing devices that can be used to provide the service, which is added to the request by at least one of the one or more computing devices that can be used to provide the service, a computing device for providing the service is selected from the at least one computing device; as well as Send instructions to the selected computing device to provide the service.

10. An apparatus for providing a service, comprising: At least one processor; as well as At least one memory coupled to the at least one processor, the at least one memory containing instructions stored therein, the at least one memory and the instructions being further configured, together with the at least one processor, to cause the device to: The computing device receives service requests from the client. Obtain the identifier of the service, which is associated with at least one of the following: the destination Internet Protocol address of the service, the destination port of the service, and the application layer identifier of the service; as well as Based on the identifier of the service, determine whether the service can be provided to the client. Determining whether the service can be provided to the client includes: Determine whether the request is the first request for the service; If it is determined that the request is not the first request for the service, then based on the identifier of the service, it is determined whether the service can be provided to the client. If it is determined that the request is the first request for the service, the request is updated by adding at least information about the resources available at the computing device to provide the service; and Send the updated request to the service provider's equipment.

11. The device of claim 10, wherein the request is received from the client, and the at least one memory and the instructions are further configured, together with the at least one processor, to cause the device to obtain the identifier of the service by: The identifier of the service is generated based on at least one of the destination Internet Protocol address of the service, the destination port of the service, and the application layer identifier of the service.

12. The device of claim 11, wherein the at least one memory and the instructions are further configured, together with the at least one processor, to cause the device to: If it is determined that the service cannot be provided to the client, the request is updated by adding the identifier of the service to the request; and The updated request is sent to the next-hop computing device.

13. The device of claim 12, wherein the next-hop calculation device is determined based on Internet Protocol address addressing.

14. The device of claim 10, wherein the request is received from a previous-hop computing device, and the at least one memory and the instructions are further configured, together with the at least one processor, to cause the device to obtain the identifier of the service by: Obtain the identifier of the service from the request.

15. The device according to any one of claims 10 to 14, wherein the at least one memory and the instructions are further configured, together with the at least one processor, to cause the device to determine whether it is capable of providing the service to the client: The ability to provide the service to the client is determined by using the identifier lookup library of the service, which records a set of identifiers of services that the computing device can support.

16. The device of claim 10, wherein the request is received from the client, and the at least one memory and the instructions are further configured, together with the at least one processor, to cause the device to update the request by: The request is updated by adding the identifier of the service and the information about the resource to the request.

17. The device of claim 10 or 16, wherein the at least one memory and the instructions are further configured, together with the at least one processor, to cause the device to: Receive instructions to provide the service from the service provider's equipment; Deploy service instances for the service; and Add the identifier of the service to a library used to record identifiers of services that the computing device can support.

18. An apparatus for providing a service, comprising: At least one processor; as well as At least one memory coupled to the at least one processor, the at least one memory containing instructions stored therein, the at least one memory and the instructions being further configured, together with the at least one processor, to cause the device to: The service provider's device receives a request for the service from a client via one or more computing devices that can be used to provide the service; Based on information about resources available for providing the service at at least one of the one or more computing devices that can be used to provide the service, which is added to the request by at least one of the one or more computing devices that can be used to provide the service, a computing device for providing the service is selected from the at least one computing device; as well as Send instructions to the selected computing device to provide the service.

19. An apparatus for providing a service, comprising: A component used by a computing device to receive service requests from a client; Components for obtaining the identifier of the service, wherein the identifier of the service is associated with at least one of the following: the destination Internet Protocol address of the service, the destination port of the service, and the application layer identifier of the service; as well as Components used to determine whether the service can be provided to the client based on the identifier of the service. Determining whether the service can be provided to the client includes: Determine whether the request is the first request for the service; If it is determined that the request is not the first request for the service, then based on the identifier of the service, it is determined whether the service can be provided to the client. If it is determined that the request is the first request for the service, the request is updated by adding at least information about the resources available at the computing device to provide the service; and Send the updated request to the service provider's equipment.

20. An apparatus for providing a service, comprising: A component for receiving requests for the service from a client via one or more computing devices that can be used to provide the service; A component for selecting a computing device for providing the service from the at least one computing device, based on information about resources available for providing the service at the at least one of the one or more computing devices added to the request by at least one of the one or more computing devices that can be used to provide the service; as well as A component for sending instructions to the selected computing device to provide the service.

21. A computer-readable storage medium having program code stored thereon, the program code being configured to cause a device to perform the method according to any one of claims 1 to 8 when executed.

22. A computer-readable storage medium having program code stored thereon, the program code being configured to cause a device to perform the method according to claim 9 when executed.

Citation Information

Patent Citations

  • Method and apparatus for locating services within peer-to-peer networks

    US20110153634A1

  • Service processing method, device and system

    US20150103823A1