Shortest-path most recently updated (SP-MRU) endpoint selection for service routing
The network apparatus with a service address router optimizes service routing by determining paths based on service and network policies for linear order, addressing inefficiencies in existing technologies and achieving reduced latency and congestion by ensuring a single request/response exchange for service requests across multiple instances.
Patent Information
- Application Number
- PCT/EP2023/067902
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-06-29
- Publication Date
- 2025-01-02
AI Technical Summary
Existing service routing technologies face inefficiencies in delivering data for service requests, particularly when multiple service instances provide data under a linear order, leading to congestion and high latency due to multiple responses from various service instances.
The implementation of a network apparatus with a service address router that determines a path to a selected service instance based on a service-based and network-based routing policy, optimized for linear order, allowing for efficient traffic utilization and minimal latency by ensuring only one request/response exchange for a desired service result across all instances.
This approach optimizes traffic utilization and latency by routing requests to the best service instance for a desired linear order-based service result, reducing congestion and ensuring minimal latency through a single request/response exchange.
Smart Images

Figure EP2023067902_02012025_PF_FP_ABST
Abstract
Description
[0001] SHORTEST-PATH MOST RECENTLY UPDATED (SP-MRU) ENDPOINT SELECTION FOR SERVICE ROUTING
[0002] TECHNICAL FIELD
[0003] The present disclosure relates, in general, to efficient delivery of data relating to a service request.
[0004] BACKGROUND
[0005] Services configured to perform a function can be deployed as service instances at various network locations, where the number of instances per service may be entirely independent from each other and vary widely. As such, service instances can be instantiated in topologically different network locations. Some services can provide collaborative control of one or more devices and / or measurements from, e.g., environmental sensors. For example, in a building with multiple temperature sensors, a client can issue a service request to use a service configured to provide temperature values within the building, where the temperature values are determined directly or indirectly from data received from the sensors for example. The client would then typically receive a set of results from the service that was invoked, which can comprise temperature readings from all of the temperature sensors within the building.
[0006] SUMMARY
[0007] An objective of the present disclosure is to enable the efficient provision of a desired linear order-based service request.
[0008] The foregoing and other objectives are achieved by the features of the independent claims.
[0009] Further implementation forms are apparent from the dependent claims, the description and the Figures.
[0010] A first aspect of the present disclosure provides a network apparatus comprising a service address router for a service function in a network, the network apparatus configured to receive request data representing a service request for the service function, the service request comprising a request for a service-based result provided according to a linear order for a service-based metric of the service function, determine, using the request data and a service routing policy, a path to a selected service instance apparatus of the network, wherein the path to the selected service instance apparatus of the network is defined on the basis of a servicebased component of the service routing policy and a network-based component of the service routing policy, wherein the service-based component of the service routing policy is determined on the basis of the linear order for the service-based metric of the service function, whereby to provide an availability of the selected service instance apparatus of the network, and wherein the network-based component of the service routing policy comprises a routing policy determined on the basis of one or more network routing metrics.
[0011] Accordingly, optimal traffic utilization and latency can be provided. That is, there can be exchange of just one request / response through a routing-based selection that provides a final service result to service request under a desired linear order across all service instances.
[0012] In an implementation of the first aspect, the availability of the selected service instance apparatus of the network is provided in the form of a service-based result for the selected service instance apparatus of the network.
[0013] A service selection policy therefore becomes a service routing policy.
[0014] In an example, the network apparatus can comprise an ingress service address router for a service instance of the service function in the network. The network apparatus can propagate the service routing policy to one or more other service address routers for the service function in the network. The network apparatus can receive, from the selected service instance apparatus of the network, data representing an updated service-based result, the data representing an updated service-based result further comprising a name-based address for the selected service instance apparatus of the network, a network-layer address for the selected service instance apparatus of the network, and service routing policy.
[0015] A second aspect of the present disclosure provides a method for providing a service-based result provided according to a linear order for a service-based metric of the service function, the method comprising receiving request data representing a service request for the service function, the service request comprising a request for the service-based result provided according to the linear order for the service-based metric of the service function, determining, using the request data and a service routing policy, a path to a selected service instance apparatus of the network, wherein the path to the selected service instance apparatus of the network is defined on the basis of a service-based component of the service routing policy and a network-based component of the service routing policy, and wherein the service-based component of the service routing policy is determined on the basis of the linear order for the service-based metric of the service function, whereby to provide an availability of the selected service instance apparatus of the network, and wherein the network-based component of the service routing policy comprises a routing policy determined on the basis of one or more network routing metrics, and providing, using the path to the selected service instance apparatus of the network, the service-based result according to the linear order for the service-based metric of the service function.
[0016] In an implementation of the second aspect, the availability of the selected service instance apparatus of the network can be provided in the form of a service-based result for the selected service instance apparatus of the network. The method can further comprise receiving the request data representing a service request for the service function at a network apparatus comprising an ingress service address router for a service instance of the service function in the network. The method can further comprise propagating the service routing policy to one or more service address routers for the service function in the network. The method can further comprise receiving, from the selected service instance apparatus of the network, data representing an updated service-based result, the data representing an updated service-based result further comprising a name-based address for the selected service instance apparatus of the network, a network-layer address for the selected service instance apparatus of the network, and service routing policy.
[0017] A third aspect of the present disclosure provides a machine-readable storage medium comprising instructions for determining a routing path to service instance apparatus of a network, the instructions executable by a processor of a network apparatus comprising a service address router for the service function, whereby to cause the processor to receive request data representing a service request for the service function, the service request comprising a request for a service-based result provided according to a linear order for a service-based metric of the service function, determine, using the request data and a service routing policy, a path to a selected service instance apparatus of the network, wherein the path to the selected service instance apparatus of the network is defined on the basis of a service-based component of the service routing policy and a network-based component of the service routing policy, wherein the service-based component of the service routing policy is determined on the basis of the linear order for the service-based metric of the service function, whereby to provide an availability of the selected service instance apparatus of the network, and wherein the networkbased component of the service routing policy comprises a routing policy determined on the basis of one or more network routing metrics.
[0018] In an implementation of the third aspect, the machine-readable storage medium can further comprise instructions executable by the processor, whereby to cause the processor to propagate the service routing policy to one or more other service address routers for the service function in the network. The machine-readable storage medium can further comprise instructions executable by the processor, whereby to cause the processor to receive, from the selected service instance apparatus of the network, data representing an updated service-based result, the data representing an updated service-based result further comprising a name-based address for the selected service instance apparatus of the network, a network-layer address for the selected service instance apparatus of the network, and service routing policy. The machine- readable storage medium can further comprise instructions executable by the processor, whereby to cause the processor to determine the availability of the selected service instance apparatus of the network on the basis of a service-based result for the selected service instance apparatus of the network. The machine-readable storage medium can further comprise instructions executable by the processor, whereby to cause the processor to generate the service routing policy according to a combination of one or more service-based components and one or more network-based components.
[0019] These and other aspects of the invention will be apparent from the embodiment s) described below.
[0020] BRIEF DESCRIPTION OF THE DRAWINGS
[0021] In order that the present disclosure may be more readily understood, embodiments will now be described, by way of example, with reference to the accompanying drawings, in which:
[0022] Figure l is a schematic representation of a Routing on Service Address (ROSA) network; Figure 2 is a flowchart of a method for providing a service-based result according to a linear order for a service-based metric of the service function, according to an example;
[0023] Figures 3a, 3b and 3c are a schematic representations of a method for providing a service-based result according to a linear order for a service-based metric of the service function, according to an example; and
[0024] Figure 4 is a schematic representation of a machine according to an example.
[0025] DETAILED DESCRIPTION
[0026] Example embodiments are described below in sufficient detail to enable those of ordinary skill in the art to embody and implement the systems and processes herein described. It is important to understand that embodiments can be provided in many alternate forms and should not be construed as limited to the examples set forth herein.
[0027] Accordingly, while embodiments can be modified in various ways and take on various alternative forms, specific embodiments thereof are shown in the drawings and described in detail below as examples. There is no intent to limit to the particular forms disclosed. On the contrary, all modifications, equivalents, and alternatives falling within the scope of the appended claims should be included. Elements of the example embodiments are consistently denoted by the same reference numerals throughout the drawings and detailed description where appropriate.
[0028] The terminology used herein to describe embodiments is not intended to limit the scope. The articles “a,” “an,” and “the” are singular in that they have a single referent, however the use of the singular form in the present document should not preclude the presence of more than one referent. In other words, elements referred to in the singular can number one or more, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and / or “including,” when used herein, specify the presence of stated features, items, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, items, steps, operations, elements, components, and / or groups thereof. The term “and / or” is only an association relationship for describing associated objects and represents that three relationships may exist such that A and / or B may indicate that A exists alone, A and B exist at the same time, or B exists alone. The character “ / ” generally represents that the associated objects are in an “or” relationship.
[0029] Unless otherwise defined, all terms (including technical and scientific terms) used herein are to be interpreted as is customary in the art. It will be further understood that terms in common usage should also be interpreted as is customary in the relevant art and not in an idealized or overly formal sense unless expressly so defined herein.
[0030] The following contains specific information related to implementations of the present disclosure. The drawings and their accompanying detailed disclosure are merely directed to implementations. However, the present disclosure is not limited to these implementations. Other variations and implementations of the present disclosure will be obvious to those skilled in the art.
[0031] The phrases “in one implementation,” or “in some implementations,” may each refer to one or more of the same or different implementations. The term “coupled” is defined as connected whether directly or indirectly through intervening components and is not necessarily limited to physical connections. The expression “at least one of A, B and C” or “at least one of the following: A, B and C” means “only A, or only B, or only C, or any combination of A, B and C”.
[0032] The terms “system” and “network” may be used interchangeably.
[0033] For the purposes of explanation and non-limitation, specific details such as functional entities, techniques, protocols, and standards are set forth for providing an understanding of the present disclosure. In other examples, detailed disclosure of well-known methods, technologies, systems, and architectures are omitted so as not to obscure the present disclosure with unnecessary details.
[0034] Persons skilled in the art will immediately recognize that any network fimction(s) or algorithm(s) disclosed may be implemented by hardware, software or a combination of software and hardware. Disclosed functions may correspond to modules which may be software, hardware, firmware, or any combination thereof. A software implementation may include machine- and / or computer- readable and / or executable instructions stored on a machine- and / or computer-readable medium such as memory or other types of storage devices. One or more microprocessors or general-purpose computers with communication processing capability may be programmed with corresponding executable instructions and perform the disclosed network function(s) or algorithm(s).
[0035] The microprocessors or general-purpose computers may include Applications Specific Integrated Circuitry (ASIC), programmable logic arrays, and / or using one or more Digital Signal Processor (DSPs). Although some of the disclosed implementations are oriented to software installed and executing on computer hardware, alternative implementations implemented as firmware or as hardware or as a combination of hardware and software are well within the scope of the present disclosure. The computer readable medium includes but is not limited to Random Access Memory (RAM), Read Only Memory (ROM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), flash memory, Compact Disc Read-Only Memory (CD-ROM), magnetic cassettes, magnetic tape, magnetic disk storage, or any other equivalent medium capable of storing computer-readable instructions.
[0036] The following terminology may be used herein.
[0037] Service: A monolithic functionality that is provided according to the specification for said service. A composite service can be built by orchestrating a combination of monolithic services.
[0038] Service Instance: A running environment (e.g., a node, a virtual instance) that provides the expected service. One service can involve several instances running within the same network at different network locations.
[0039] Service Address: An identifier for a specific service.
[0040] Service Transaction: A sequence of higher-layer requests for a specific service, consisting of at least one service request, addressed to the service address, and zero or more affinity requests.
[0041] Service Request: A request for a specific service, addressed to a specific service address, which is directed to at least one of possibly many service instances. Affinity Request: A request to a specific service, following an initial service request, requiring steering to the same service instance chosen for the initial service request.
[0042] ROSA (Routing on Service Addresses) Provider: Realizing the ROSA-based traffic steering capabilities over at least one infrastructure provider.
[0043] ROSA Domain: Domain of reachability for services supported by a single ROSA provider.
[0044] ROSA Endpoint: A node accessing or providing one or more services through one or more ROSA providers.
[0045] ROSA Client: A ROSA endpoint accessing one or more services through one or more ROSA providers, thus issuing services requests directed to one of possible many service instances that have previously announced the service address provided by the ROSA client in the service request.
[0046] Service Address Router (SAR): A node supporting the operations for steering service requests to one of possibly many service instances.
[0047] Service Address Gateway (SAG): A node supporting the operations for steering service requests to service addresses not previously announced to SARs of the same ROSA domain to suitable endpoints in the Internet.
[0048] A service (SF) can provide a result, in response to a service request from a client, in the form of, e.g., data based on a (partial) linear order, such as a most recent sensor reading, most recently updated computation (over some data set), minimum or maximum value (over some data set), and so on. As noted above, the SF in question may be deployed as service instances SF1, ... SFn at various network locations. For example, the service instances may provide physical replication to measure sensor data of a certain type under the linear order (e.g., maximum temperature) of the service, such as temperature sensors in certain area (e.g., hallway). The service instances may provide logical replication to parallelize computation under a linear order (e.g., most recent update, max / min over a data set, and so on). When a client, C, issues a service request to the SF in the presence of replication, with the final response according to the aforementioned linear order, receiving multiple responses in close time proximity may cause significant (incast) congestion, e.g., if the response size is sufficiently large. According to an example, a method for providing a service result in response to a service request enables the efficient (in terms of, e.g., the number of messages and / or message latency) provision of a desired linear order-based service request, i.e., at an optimal message count (for example, only one request / reply) and minimal latency (e.g., single round trip time (RTT) to best service instance).
[0049] Accordingly, optimal traffic utilization and latency can be achieved, since there can be the exchange of just one request / response through a routing-based selection that provides a final service result under a desired linear order across all service instances.
[0050] Figure 1 is a schematic representation of a Routing on Service Address (ROSA) network. In the network 100 of figure 1, services are addressed rather than network interfaces. That is, for example, for a service 103, the address is service.org / service (in binary form), not the IP address of service.org / service. Many instances of one service can be registered in the network 100 and all can receive requests for, e.g., service.org / service, possibly as forward multicast. A client 101 can maintain affinity with particular instance after a first (service) request. Any affinity request (of a longer transaction) will go directly to a service endpoint via IPv6, and a new scheduling decision requires a service request (again) with affinity followed.
[0051] According to an example, service result selection is considered across all service instances as an anycast problem, where the anycast selection follows the linear order of the result selection. Accordingly, a service selection policy becomes a service routing policy. That is, the service’s selection of the desired service result is represented as a (linear order) routing policy. Furthermore, in an example, the service can be represented as a ‘service address’ SF and the service instances can announce their (result) availability under that service address with the routing policy noted above as a path selection constraint. Upon any instance-local result availability or change (e.g., new local sensor value or new computation finished), the service instance in question can (re-)announce the service address with the new result as part of the (linear order) routing policy. This can impact the path selection to the ‘best’ service instance, with ‘best’ defined through the result selection policy. Any client can send a service request to a SF address, where the request is then routed according to the (converged) linear order routing policy. As such, given the equivalence of routing order with result order, the request is steered to the service instance holding the desired overall service result according to the linear order to the service’s result selection. Thus, one request is sent with one result being delivered, providing optimal message exchange and latency at the time of the client request.
[0052] Figure 2 is a flowchart of a method for providing a service-based result according to a linear order for a service-based metric of the service function, according to an example. In block 201 a routing policy is formulated. In an example, the selection of a desired service response follows a linear order, such as time-ordered (e.g., most recently updated), maximum (e.g., highest computed value over data set), minimum (e.g., lowest computed value over data set), checkpoint (e.g., computation over data set reached certain checkpoint, e.g., for ledger validation in Distributed Ledger Technologies (DLTs)), and so on. In an example, multiple linear orders can be combined through, e.g., Boolean operations. The selection policy is combined with any possible routing policy through, e.g., Boolean operations, such as shortest latency (minimum order), highest bandwidth available (maximum order). The overall service routing policy (SRP) can then be formulated as a combination of the two above separate linear orders. This formulation can be done locally at each service instance based on some, e.g., predetermined, computation or it may be provided to the service instances through means of configuration.
[0053] In block 203, service (and result) availability is announced. That is, according to an example, each service instance can announce its availability towards its ingress SAR of a ROSA overlay, providing its own IP address, the service address, and the service result together with the service selection policy. The ROSA overlay can use, e.g., a distant vector-based propagation, applying the provided linear order policy SRP over the provided service result for each propagation step in the network. The result will be (overlay) routing entries in each SAR of the ROSA overlay according to the linear order policy SRP, thus any converged service route will follow the selection policy provided by the service instance.
[0054] In block 205, service (and result) availability can be re-announced. According to an example, upon any result change at any service instance, said instance will re-announce its availability to its ingress SAR, similar to the initial announcement albeit updated with the now valid service result. The ROSA overlay can again propagate the result under the provided linear order policy SRP and thus converge to the now value route according to this (now updated) result information. The result will be updated (overlay) routing entries in each SAR of the ROSA overlay according to the linear order policy SRP, thus any route will follow the selection policy provided by the service instance under the updated service result
[0055] In block 207, the service result is obtained. At any time of availability, a client 101 can issue a service request towards SF, sent to its ingress SAR 105 and routed to the appropriate service instance according to the converged route state in each intermediary SAR towards the service instance. The result will now be retrieved from the service instance that provides the appropriate service result under the overall service selection policy. According to an example, only one request / response exchange happens to determine the best result across all service instances.
[0056] A method, as described with reference to figure 2 for example, therefore represents result selection (which would usually happen at either client or aggregator) as (part of) a routing policy to enable selection of the service instance that holds the ‘best’ value under the given selection policy. For example, in a situation where multiple devices provide temperatures in different locations of a building, a service instance can return a result in response to a service request that provides the best result (such as the highest temperature for example).
[0057] Routing convergence (using any, e.g., DV-based linear order protocol) will thus point to the service instance with the best value under the given routing / selection policy. As such, any client request for the best value under the given policy will result in one request / reply, thus providing minimal exchange and the best end to end latency possible. This avoids any incast congestion since only one response is being delivered instead of responses from all service instances. Utilizing additional routing table entries at an ingress SAR for a client can further reduce latency to a single client-SAR hop, albeit at cost of needing to change the message exchange between client and server.
[0058] Figures 3a, 3b and 3c are schematic representations of a method for providing a service-based result according to a linear order for a service-based metric of the service function, according to an example. In the example of figures 3a, 3b and 3c, ingress SARs (303, 305) are depicted, which can form network apparatus according to an example.
[0059] With reference to figure 3a, a service instance 307 announces its availability towards its ingress SAR 305 of a ROSA overlay 309 in a network. In the example of figure 3a, the service instance 307 provides a service announce message comprising its own IP address (SI IP), the service address (SID), and the service result (serviceResult) together with the service selection policy (SRP). The ROSA overlay 309 uses a distant vector-based (DV) propagation, applying the provided linear order policy SRP over the provided service result for each propagation step in the network. As noted above, the result will be (overlay) routing entries in each SAR of the ROSA overlay according to the linear order policy SRP, thus any converged service route will follow the selection policy provided by the service instance.
[0060] With reference to figure 3b, upon any result change at the service instance 307, said instance 307 re-announces its availability to its ingress SAR 305, similarly to the initial announcement described above with reference to figures 2 and 3a for example, albeit updated with the now valid service result. In such a case, the service announce message includes the updated service result (updated serviceResult). As before, the ROSA overlay can again propagate the (now updated) result under the provided linear order policy SRP and thus converge to the now value route according to this (now updated) result information. The result will be updated (overlay) routing entries in each SAR of the ROSA overlay according to the linear order policy SRP, thus any route will follow the selection policy provided by the service instance under the updated service result.
[0061] With reference to figure 3c, the service result is obtained. In the example of figure 3c, client 301 issues a service request towards the service SF, sent to its ingress SAR 303 and routed to the appropriate service instance 307 according to the converged route state in each intermediary SAR towards the service instance. That is, the service request is sent to the service SF, while the ingress routes the request to the instance according to the linear order.
[0062] The service request can comprise a message service request that comprises the SID of the service instance 307, the address of the ingress SAR 303, and the address (e.g., IP address) of the client 301. The result (result) is retrieved from the service instance 307 that provides the appropriate service result under the overall service selection policy in the form of a service response message comprising the result, SI IP, SID, the client IP and the address of the ingress SAR 305 of the service instance 307.
[0063] Examples in the present disclosure can be provided as methods, systems or machine-readable instructions, such as any combination of software, hardware, firmware or the like. Such machine-readable instructions may be included on a computer readable storage medium (including but not limited to disc storage, CD-ROM, optical storage, etc.) having computer readable program codes therein or thereon.
[0064] The present disclosure is described with reference to flow charts and / or block diagrams of the method, devices and systems according to examples of the present disclosure. Although the flow diagrams described above show a specific order of execution, the order of execution may differ from that which is depicted. Blocks described in relation to one flow chart may be combined with those of another flow chart. In some examples, some blocks of the flow diagrams may not be necessary and / or additional blocks may be added. It shall be understood that each flow and / or block in the flow charts and / or block diagrams, as well as combinations of the flows and / or diagrams in the flow charts and / or block diagrams can be realized by machine readable instructions.
[0065] The machine-readable instructions may, for example, be executed by a machine such as a general-purpose computer, a network apparatus, a platform comprising user equipment such as a smart device, e.g., a smart phone, a special purpose computer, an embedded processor or processors of other programmable data processing devices to realize the functions described in the description and diagrams. In particular, a processor or processing apparatus may execute the machine-readable instructions. Thus, modules of apparatus (for example, a module implementing a network function or a service function) may be implemented by a processor executing machine readable instructions stored in a memory, or a processor operating in accordance with instructions embedded in logic circuitry. The term 'processor' is to be interpreted broadly to include a CPU, processing unit, ASIC, logic unit, or programmable gate set etc. The methods and modules may all be performed by a single processor or divided amongst several processors.
[0066] Such machine-readable instructions may also be stored in a computer readable storage that can guide the computer or other programmable data processing devices to operate in a specific mode. For example, the instructions may be provided on a non-transitory computer readable storage medium encoded with instructions, executable by a processor.
[0067] Figure 4 is a schematic representation of a machine according to an example. The machine 400 can be, e.g., a system or apparatus, user equipment, a network apparatus (or part thereof) such as an ingress SAR. The machine 400 comprises a processor 403, and a memory 405 to store instructions 402, executable by the processor 403. The machine comprises a storage 409 that can be used to store data 401 representing routing tables, service results and so on as described herein.
[0068] The instructions 407, executable by the processor 403, can cause the machine 400 to receive request data representing a service request for a service function, the service request comprising a request for a service-based result provided according to a linear order for a service-based metric of the service function, determine, using the request data and a service routing policy, a path to a selected service instance apparatus of the network, wherein the path to the selected service instance apparatus of the network is defined on the basis of a service-based component of the service routing policy and a network-based component of the service routing policy, wherein the service-based component of the service routing policy is determined on the basis of the linear order for the service-based metric of the service function, whereby to provide an availability of the selected service instance apparatus of the network, and wherein the networkbased component of the service routing policy comprises a routing policy determined on the basis of one or more network routing metrics.
[0069] Accordingly, the machine 400 can implement a method for determining a routing path to a service instance apparatus of a network.
[0070] Such machine-readable instructions may also be loaded onto a computer or other programmable data processing devices, so that the computer or other programmable data processing devices perform a series of operations to produce computer-implemented processing, thus the instructions executed on the computer or other programmable devices provide an operation for realizing functions specified by flow(s) in the flow charts and / or block(s) in the block diagrams.
[0071] Further, the teachings herein may be implemented in the form of a computer or software product, such as a non-transitory machine-readable storage medium, the computer software or product being stored in a storage medium and comprising a plurality of instructions, e.g., machine readable instructions, for making a computer device implement the methods recited in the examples of the present disclosure.
[0072] In some examples, some methods can be performed in a cloud-computing or network-based environment. Cloud-computing environments may provide various services and applications via the Internet. These cloud-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) may be accessible through a web browser or other remote interface of the user equipment for example. Various functions described herein may be provided through a remote desktop environment or any other cloud-based computing environment.
[0073] In an example, instead of ROSA-based operations in the forwarding of service requests / responses, dynamic anycast (dyncast) may be used (for example, with reference to figure 3c for obtaining a service result). Other source routing approaches beyond SRv6 may also be used (e.g., path-based forwarding through pathlets). DV-based routing over a (partial) linear order can use any suitable embodiment for an IP-level or overlay routing protocol, such as AODV.
[0074] In an example, instead of the mechanism described with reference to figure 3c, the SAR may implement an additional routing entry for the ‘latest value’, provided as input to the routing convergence process (refer to figures 3a and 3b) but representing the actual service value. The SAR can act as an aggregator albeit using routing convergence, not polling all sensors, to obtain best value, which is more efficient than an aggregator at an app level for example. An additional routing table entry can then be returned directly to the client - this requires, however, a change in message flow compared to the existing response from the server. To preserve privacy, i.e., prevent leaking service results to network nodes, the result announcements could be encrypted to prevent reading by any other nodes that (overlay) routers and endpoints.
[0075] While various embodiments have been described and / or illustrated herein in the context of fully functional computing systems, one or more of these exemplary embodiments may be distributed as a program product in a variety of forms, regardless of the particular type of computer- readable-storage media used to actually carry out the distribution. The embodiments disclosed herein may also be implemented using software modules that perform certain tasks. These software modules may include script, batch, or other executable files that may be stored on a computer-readable storage medium or in a computing system. In some embodiments, these software modules may configure a computing system to perform one or more of the exemplary embodiments disclosed herein. In addition, one or more of the modules described herein may transform data, physical devices, and / or representations of physical devices from one form to another. The preceding description has been provided to enable others skilled in the art to best utilize various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or to be limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the instant disclosure. The embodiments disclosed herein should be considered in all respects illustrative and not restrictive. Reference should be made to the appended claims and their equivalents in determining the scope of the instant disclosure.
Claims
CLAIMS1. A network apparatus comprising a service address router for a service function in a network, the network apparatus configured to: receive request data representing a service request for the service function, the service request comprising a request for a service-based result provided according to a linear order for a service-based metric of the service function; determine, using the request data and a service routing policy, a path to a selected service instance apparatus of the network, wherein the path to the selected service instance apparatus of the network is defined on the basis of a service-based component of the service routing policy and a network-based component of the service routing policy, wherein the service-based component of the service routing policy is determined on the basis of the linear order for the service-based metric of the service function, whereby to provide an availability of the selected service instance apparatus of the network, and wherein the network-based component of the service routing policy comprises a routing policy determined on the basis of one or more network routing metrics.
2. The network apparatus as claimed in claim 1, wherein the availability of the selected service instance apparatus of the network is provided in the form of a service-based result for the selected service instance apparatus of the network.
3. The network apparatus as claimed in claim 1 or 2, wherein the network apparatus comprises an ingress service address router for a service instance of the service function in the network.
4. The network apparatus as claimed in any preceding claim, wherein the network apparatus is configured to: propagate the service routing policy to one or more other service address routers for the service function in the network.
5. The network apparatus as claimed in any preceding claim, wherein the network apparatus is configured to:receive, from the selected service instance apparatus of the network, data representing an updated service-based result, the data representing an updated service-based result further comprising a name-based address for the selected service instance apparatus of the network, a network-layer address for the selected service instance apparatus of the network, and service routing policy.
6. A method for providing a service-based result provided according to a linear order for a service-based metric of the service function, the method comprising: receiving request data representing a service request for the service function, the service request comprising a request for the service-based result provided according to the linear order for the service-based metric of the service function; determining, using the request data and a service routing policy, a path to a selected service instance apparatus of the network, wherein the path to the selected service instance apparatus of the network is defined on the basis of a service-based component of the service routing policy and a network-based component of the service routing policy, and wherein the service-based component of the service routing policy is determined on the basis of the linear order for the service-based metric of the service function, whereby to provide an availability of the selected service instance apparatus of the network, and wherein the network-based component of the service routing policy comprises a routing policy determined on the basis of one or more network routing metrics; and providing, using the path to the selected service instance apparatus of the network, the service-based result according to the linear order for the service-based metric of the service function.
7. The method as claimed in claim 6, wherein the availability of the selected service instance apparatus of the network is provided in the form of a service-based result for the selected service instance apparatus of the network.
8. The method as claimed in claim 6 or 7, further comprising: receiving the request data representing a service request for the service function at a network apparatus comprising an ingress service address router for a service instance of the service function in the network.
9. The method as claimed in any of claims 6 to 8, further comprising: propagating the service routing policy to one or more service address routers for the service function in the network.
10. The method as claimed in any of claims 6 to 9, further comprising: receiving, from the selected service instance apparatus of the network, data representing an updated service-based result, the data representing an updated service-based result further comprising a name-based address for the selected service instance apparatus of the network, a network-layer address for the selected service instance apparatus of the network, and service routing policy.
11. A machine-readable storage medium comprising instructions for determining a routing path to service instance apparatus of a network, the instructions executable by a processor of a network apparatus comprising a service address router for the service function, whereby to cause the processor to: receive request data representing a service request for the service function, the service request comprising a request for a service-based result provided according to a linear order for a service-based metric of the service function; determine, using the request data and a service routing policy, a path to a selected service instance apparatus of the network, wherein the path to the selected service instance apparatus of the network is defined on the basis of a service-based component of the service routing policy and a network-based component of the service routing policy, wherein the service-based component of the service routing policy is determined on the basis of the linear order for the service-based metric of the service function, whereby to provide an availability of the selected service instance apparatus of the network, and wherein the network-based component of the service routing policy comprises a routing policy determined on the basis of one or more network routing metrics.
12. The machine-readable storage medium as claimed in claim 11, further comprising instructions executable by the processor, whereby to cause the processor to: propagate the service routing policy to one or more other service address routers for the service function in the network.
13. The machine-readable storage medium as claimed in claim 11 or 12, further comprising instructions executable by the processor, whereby to cause the processor to: receive, from the selected service instance apparatus of the network, data representing an updated service-based result, the data representing an updated service-based result further comprising a name-based address for the selected service instance apparatus of the network, a network-layer address for the selected service instance apparatus of the network, and service routing policy.
14. The machine-readable storage medium as claimed in any of claims 11 to 13, further comprising instructions executable by the processor, whereby to cause the processor to: determine the availability of the selected service instance apparatus of the network on the basis of a service-based result for the selected service instance apparatus of the network.
15. The machine-readable storage medium as claimed in any of claims 11 to 14, further comprising instructions executable by the processor, whereby to cause the processor to: generate the service routing policy according to a combination of one or more servicebased components and one or more network-based components.
Citation Information
Patent Citations
Service request routing
US20210135983A1
Service demand redirection in ingress-based service routing
WO2023025387A1