IP Library Granted Patent US 9,954,799
Granted Patent B2
US 9,954,799 · App. 14/711,823 · Granted Apr 24, 2018

Adaptive service chain management

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,954,799
App. No.
14/711,823
Granted
Apr 24, 2018
Kind
B2
Abstract

Embodiments of the present invention provide methods, computer program products, and systems for fulfilling a service chain request. Embodiments of the present invention can be used to collect network data of a plurality of instances of services and connections between the plurality of instances of services and redefine service chains to direct flow to an alternative instance of a service responsive to determining that an instance of a service in a service chain has become inaccessible. Embodiments of the present invention can be used to fulfill a service chain request and avoid one or more instances of services (and/or connections there between) that could cause a delay between transmitting data packets through the service chain.

Claims (70)

1. A method for fulfilling a service chain request, the method comprising:

collecting, by one or more computer processors, network data of a plurality of instances of services and connections between the plurality of instances of services;

receiving, by one or more computer processors, a service chain request requiring a first service chain;

responsive to determining that an instance of a service in the first service chain is inaccessible, dynamically redefining, by one or more computer processors, the first service chain to direct flow to an alternative instance of the service; and

installing the redefined first service chain to direct flow to the alternative instance of the service.

2. The method of claim 1 , wherein responsive to determining that an instance of a service in the first service chain is inaccessible, dynamically redefining, by one or more computer processors, the first service chain to direct flow to an alternative instance of the service comprises:

invalidating, by one or more computer processors, the inaccessible instance of the service in the first service chain;

excluding, by one or more computer processors, the inaccessible instance of the service in the first service chain from future service chain calculations; and

identifying, by one or more computer processors, an alternative instance of the service in the plurality of instances of services.

3. The method of claim 2 , wherein invalidating, by one or more computer processors, the inaccessible instance of the service in the first service chain comprises:

transmitting, by one or more computer processors, an instruction to one or more of the plurality of instances of services to remove the inaccessible instance of the service from flow tables of the one or more of the plurality of instances of services.

4. The method of claim 3 , further comprising:

receiving, by one or more computer processors, a query from a first instance of service having a first flow table from which the inaccessible instance of the service was removed; and

responsive to receiving the query, transmitting, by one or more computer processors, an instruction to the first instance of service to install the alternative instance of the service in the first flow table.

5. The method of claim 2 , wherein identifying, by one or more computer processors, an alternative instance of the service in the plurality of instances of services comprises:

generating, by one or more computer processors, a weighted graph, wherein instances of services that are assigned a greater point value are weighted more heavily in the weighted graph than instances of services that are assigned a lesser point value, and connections that are assigned a greater point value are weighted more heavily in the weighted graph than connections that are assigned a lesser point value; and

selecting, by one or more computer processors, an alternative instance of the service having a greatest weight in the weighted graph.

6. The method of claim 1 , wherein determining that an instance of a service in the first service chain is inaccessible comprises:

receiving, by one or more computer processors, an error message from a first instance of service of the plurality of instances of services; and

responsive to receiving the error message, determining, by one or more computer processors, that the first instance of service is inaccessible.

7. The method of claim 1 , wherein determining that an instance of a service in the first service chain is inaccessible comprises:

specifying, by one or more computer processors, a threshold for network data of a first instance of service of the plurality of instances of services; and

responsive to determining that usage details of the first instance of service satisfy the specified threshold, determining, by one or more computer processors, that the first instance of service is inaccessible.

8. A computer program product for fulfilling a service chain request, the computer program product comprising:

one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising:

program instructions to collect network data of a plurality of instances of services and connections between the plurality of instances of services;

program instructions to receive a service chain request requiring a first service chain;

program instructions to, responsive to determining that an instance of a service in the first service chain is inaccessible, dynamically redefine the first service chain to direct flow to an alternative instance of the service; and

program instructions to install the redefined first service chain to direct flow to the alternative instance of the service.

9. The computer program product of claim 8 , wherein the program instructions to, responsive to determining that an instance of a service in the first service chain is inaccessible, dynamically redefine the first service chain to direct flow to an alternative instance of the service comprise:

program instructions to invalidate the inaccessible instance of the service in the first service chain;

program instructions to exclude the inaccessible instance of the service in the first service chain from future service chain calculations; and

program instructions to identify an alternative instance of the service in the plurality of instances of services.

10. The computer program product of claim 9 , wherein the program instructions to invalidate the inaccessible instance of the service in the first service chain comprise:

program instructions to transmit an instruction to one or more of the plurality of instances of services to remove the inaccessible instance of the service from flow tables of the one or more of the plurality of instances of services.

11. The computer program product of claim 10 , wherein the program instructions stored on the one or more computer readable storage media further comprise:

program instructions to receive a query from a first instance of service having a first flow table from which the inaccessible instance of the service was removed; and

program instructions to, responsive to receiving the query, transmit an instruction to the first instance of service to install the alternative instance of the service in the first flow table.

12. The computer program product of claim 9 , wherein the program instructions to identify an alternative instance of the service in the plurality of instances of services comprise:

program instructions to generate a weighted graph, wherein instances of services that are assigned a greater point value are weighted more heavily in the weighted graph than instances of services that are assigned a lesser point value, and connections that are assigned a greater point value are weighted more heavily in the weighted graph than connections that are assigned a lesser point value; and

program instructions to select an alternative instance of the service having a greatest weight in the weighted graph.

13. The computer program product of claim 8 , wherein the program instructions to determine that an instance of a service in the first service chain is inaccessible comprise:

program instructions to receive an error message from a first instance of service of the plurality of instances of services; and

program instructions to, responsive to receiving the error message, determine that the first instance of service is inaccessible.

14. The computer program product of claim 8 , wherein the program instructions to determine that an instance of a service in the first service chain is inaccessible comprise:

program instructions to specify a threshold for network data of a first instance of service of the plurality of instances of services; and

program instructions to, responsive to determining that usage details of the first instance of service satisfy the specified threshold, determine that the first instance of service is inaccessible.

15. A computer system for fulfilling a service chain request, the computer system comprising:

one or more computer processors;

one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:

program instructions to collect network data of a plurality of instances of services and connections between the plurality of instances of services;

program instructions to receive a service chain request requiring a first service chain;

program instructions to, responsive to determining that an instance of a service in the first service chain is inaccessible, dynamically redefine the first service chain to direct flow to an alternative instance of the service; and

program instructions to install the redefined first service chain to direct flow to the alternative instance of the service.

16. The computer system of claim 15 , wherein the program instructions to, responsive to determining that an instance of a service in the first service chain is inaccessible, dynamically redefine the first service chain to direct flow to an alternative instance of the service comprise:

program instructions to invalidate the inaccessible instance of the service in the first service chain;

program instructions to exclude the inaccessible instance of the service in the first service chain from future service chain calculations; and

program instructions to identify an alternative instance of the service in the plurality of instances of services.

17. The computer system of claim 16 , wherein the program instructions to invalidate the inaccessible instance of the service in the first service chain comprise:

program instructions to transmit an instruction to one or more of the plurality of instances of services to remove the inaccessible instance of the service from flow tables of the one or more of the plurality of instances of services.

18. The computer system of claim 17 , wherein the program instructions stored on the one or more computer readable storage media further comprise:

program instructions to receive a query from a first instance of service having a first flow table from which the inaccessible instance of the service was removed; and

program instructions to, responsive to receiving the query, transmit an instruction to the first instance of service to install the alternative instance of the service in the first flow table.

19. The computer system of claim 16 , wherein the program instructions to identify an alternative instance of the service in the plurality of instances of services comprise:

program instructions to generate a weighted graph, wherein instances of services that are assigned a greater point value are weighted more heavily in the weighted graph than instances of services that are assigned a lesser point value, and connections that are assigned a greater point value are weighted more heavily in the weighted graph than connections that are assigned a lesser point value; and

program instructions to select an alternative instance of the service having a greatest weight in the weighted graph.

20. The computer system of claim 15 , wherein the program instructions to determine that an instance of a service in the first service chain is inaccessible comprise:

program instructions to receive an error message from a first instance of service of the plurality of instances of services; and

program instructions to, responsive to receiving the error message, determine that the first instance of service is inaccessible.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2015
From: BEN-ITZHAK, YANIV; BISWAS, AMITABHA; LEVIN, ANNA; RAICHSTEIN, ERAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035635/0819 →