IP Library › Granted Patent US 11,063,823
Granted Patent B2
US 11,063,823 · App. 16/445,753 · Granted Jul 13, 2021

Inter-service data transportation through data fragmentation and socket replication

Inventors: Gireesh Punathil (Kannur, IN); Vipin M V (Palakkad, IN); Subrahmanya Chari Paradani (Horamavu, IN); Jayashree Shamkoor Kumar (Bangalore, IN)
Assignee: International Business Machines Corporation
H04L41/0823
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 11,063,823
App. No.
16/445,753
Granted
Jul 13, 2021
Kind
B2
Abstract

Embodiments of the present invention are directed towards optimizing two or more services that exchange data over a communication network to send, receive and record data across a plurality of network connections, where each network connection is between two sockets, and modifying the communication network to, at least temporarily, assign a plurality of sockets for use by the two services to exchange data between them.

Claims (44)

1. A computer-implemented method (CIM) for use with a computer network including a plurality of network sockets, the method comprising:

receiving a software services data set including at least a first service and a second service, where each service includes a corresponding set of machine language and the first and second service are connected by a first network socket;

determining, through machine logic, for at least the first and second service, that the first service writes a first data set to the second service over the computer network;

optimizing, automatically and without human intervention through machine logic: (i) at least some of the set of machine language of the first service to write the first data set in a plurality of data set fragments over the computer network, and (ii) at least some of the set of machine language of the second service to receive and recompile the plurality of data set fragments into the first data set, where the size of a given data set fragment is based, at least in part, on socket buffer size of the plurality of network sockets; and

modifying, automatically and without intervention through machine logic, the computer network to assign, between the first service and the second service a subset of the plurality of network sockets for communicating the plurality of data set fragments in addition to the first network socket, where the number of sockets in the subset is based, at least in part, on the socket buffer size and quantity of data set fragments in the plurality of data set fragments.

2. The CIM of claim 1 , further comprising transporting the plurality of data set fragments over the modified computer network.

3. The CIM of claim 2 , further comprising responsive to transporting the plurality of data set fragments over the modified computer network between the first service and the second service, recomposing the transported plurality of data set fragments into the first data set.

4. The CIM of claim 3 , wherein modifying the computer network further includes:

filtering at least some network sockets of the plurality of network sockets of the computer network from inclusion in the assigned subset of the plurality of network sockets based, at least in part, on previously assigned usage of the at least some network sockets.

5. The CIM of claim 1 , wherein optimizing at least some of the machine language of the second service further includes transforming buffering sites into a series of incremental data writes.

6. The CIM of claim 1 , wherein each service of the software services data set is a microservice.

7. A computer program product (CPP) for use with a computer network including a plurality of network sockets, the CPP comprising:

a machine readable storage device; and

computer code stored on the machine readable storage device, with the computer code including instructions for causing a processor(s) set to perform operations including the following:

receiving a software services data set including at least a first service and a second service, where each service includes a corresponding set of machine language and the first and second service are connected by a first network socket,

determining, through machine logic, for at least the first and second service, that the first service writes a first data set to the second service over the computer network,

optimizing, automatically and without human intervention through machine logic:

(i) at least some of the set of machine language of the first service to write the first data set in a plurality of data set fragments over the computer network, and (ii) at least some of the set of machine language of the second service to receive and recompile the plurality of data set fragments into the first data set, where the size of a given data set fragment is based, at least in part, on socket buffer size of the plurality of network sockets, and

modifying, automatically and without intervention through machine logic, the computer network to assign, between the first service and the second service, a subset of the plurality of network sockets for communicating the plurality of data set fragments in addition to the first network socket, where the number of sockets in the subset is based, at least in part, on the socket buffer size and quantity of data set fragments in the plurality of data set fragments.

8. The CPP of claim 7 wherein the computer code further includes instructions for causing the processor(s) set to perform the following operations:

transporting the plurality of data set fragments over the modified computer network.

9. The CPP of claim 8 , wherein the computer code further includes instructions for causing the processor(s) set to perform the following operations:

responsive to transporting the plurality of data set fragments over the modified computer network between the first service and the second service, recomposing the transported plurality of data set fragments into the first data set.

10. The CPP of claim 9 , wherein modifying the computer network further includes:

filtering at least some network sockets of the plurality of network sockets of the computer network from inclusion in the assigned subset of the plurality of network sockets based, at least in part, on previously assigned usage of the at least some network sockets.

11. The CPP of claim 7 , wherein optimizing at least some of the machine language of the second service further includes transforming buffering sites into a series of incremental data writes.

12. The CPP of claim 7 , wherein each service of the software services data set is a microservice.

13. A computer system (CS) for use with a computer network including a plurality of network sockets, comprising:

a processor(s) set;

a machine readable storage device; and

computer code stored on the machine readable storage device, with the computer code including instructions for causing the processor(s) set to perform operations including the following:

receiving a software services data set including at least a first service and a second service, where each service includes a corresponding set of machine language and the first and second service are connected by a first network socket,

determining, through machine logic, for at least the first and second service, that the first service writes a first data set to the second service over the computer network,

optimizing, automatically and without human intervention through machine logic:

(i) at least some of the set of machine language of the first service to write the first data set in a plurality of data set fragments over the computer network, and (ii) at least some of the set of machine language of the second service to receive and recompile the plurality of data set fragments into the first data set, where the size of a given data set fragment is based, at least in part, on socket buffer size of the plurality of network sockets, and

modifying, automatically and without intervention through machine logic, the computer network to assign, between the first service and the second service, a subset of the plurality of network sockets for communicating the plurality of data set fragments in addition to the first network socket, where the number of sockets in the subset is based, at least in part, on the socket buffer size and quantity of data set fragments in the plurality of data set fragments.

14. The CS of claim 13 wherein the computer code further includes instructions for causing the processor(s) set to perform the following operations:

transporting the plurality of data set fragments over the modified computer network.

15. The CS of claim 14 , wherein the computer code further includes instructions for causing the processor(s) set to perform the following operations:

responsive to transporting the plurality of data set fragments over the modified computer network between the first service and the second service, recomposing the transported plurality of data set fragments into the first data set.

16. The CS of claim 15 , wherein modifying the computer network further includes:

filtering at least some network sockets of the plurality of network sockets of the computer network from inclusion in the assigned subset of the plurality of network sockets based, at least in part, on previously assigned usage of the at least some network sockets.

17. The CS of claim 13 , wherein optimizing at least some of the machine language of the second service further includes transforming buffering sites into a series of incremental data writes.

18. The CS of claim 13 , wherein each service of the software services data set is a microservice.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2019
From: PUNATHIL, GIREESH; MV, VIPIN; PARADANI, SUBRAHMANYA CHARI; KUMAR, JAYASHREE SHAMKOOR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049520/0169 →
Continuity (1)
Related Publication 20200403868A1 · Dec 24, 2020
Cited By (2)
US 12,368,736 US 12,549,571