# US 10,771,564 B2 · Sharing system managed HTTP client sessions across processes

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,771,564 B2
- Document ID: US10771564B2
- Status: Granted
- Kind: B2
- Application number: 15/820,498
- Filed: 2017-11-22
- Published: 2019-05-23
- Granted: 2020-09-08
- Earliest claimed: 2017-11-22
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: James V. Farmer; Mark R. Gambino; Bradd A. Kadlecik; Daniel L. Yee
- Web page: https://patentgrep.com/patent/US10771564B2

## CPC

- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/14: Session management (for real-time applications in data packet communications networks H04L65/1066)
- H04L 67/141: Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70)
- H04L 67/143: Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L 69/14: Multichannel or multilink protocols
- G06F 2209/5016: Session
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Technical solutions are described for sharing HTTP client sessions among multiple processes being executed by a client computing device. An example method includes creating a set of HTTP client sessions for a remote server. The method further includes, in response to receiving an HTTP request from an application process, the HTTP request is for communicating with the remote server, assigning an HTTP client session from the set of HTTP client sessions to the application process, and sending the HTTP request from the application process to the remote server via the HTTP client session that is assigned. The method further includes, in response to receiving a reply from the remote server, deselecting the HTTP client session from the application process, and sending the reply from the remote server to the application process.

## Claims

### Claim 1

A computer-implemented method for sharing HTTP client sessions among multiple processes being executed by a client computing device, the method comprising:
creating, by an operating system of the client computing device, a set of HTTP client sessions for a remote server, wherein the set of HTTP client sessions for the remote server are created at startup of the client computing device in response to a frequency of communication of the client computing device with said remote server prior to the startup is at least a predetermined threshold;
in response to receiving an HTTP request from an application process, the HTTP request is for communicating with the remote server:
assigning an HTTP client session from the set of HTTP client sessions to the application process; and
sending the HTTP request from the application process to the remote server via the HTTP client session that is assigned; and
in response to receiving a reply from the remote server:
disassociating the HTTP client session from the application process; and
sending the reply from the remote server to the application process.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, the application process being a first application process, the HTTP request being a first HTTP request, the method further comprising:
in response to receiving a second HTTP request from a second application process, the second HTTP request is for communicating with said remote server:
assigning said HTTP client session from the set of HTTP client sessions to the second application process; and
sending the second HTTP request from the second application process to said remote server via said HTTP client session.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the set of HTTP client sessions includes a predetermined number of HTTP client sessions.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein the predetermined number is specific to the remote server based on the frequency of communication with the remote server.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein assigning the HTTP client session to the application process comprises setting an in-use flag associated with the HTTP client session and configuring an application-identifier parameter of the HTTP client session to an identifier of the application process.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the HTTP client session is stored in a shared memory accessible by multiple application processes on the client computing device.

### Claim 7

A system comprising:
a server; and
a client device that communicates with the server using HTTP, the client device configured to share HTTP client sessions among multiple application processes being executed by the client device, the client device configured to:
create a set of HTTP client sessions for the server at startup of the client device, wherein the set of HTTP client sessions for the remote server are created at startup of the client device in response to a frequency of communication of the client device with said remote server prior to the startup being at least a predetermined threshold;
in response to receiving an HTTP request from an application process, the HTTP request is for communicating with the server:
assign an HTTP client session from the set of HTTP client sessions to the application process; and
send the HTTP request from the application process to the server via the HTTP client session that is assigned; and
in response to receiving a reply from the server:
deselect the HTTP client session from the application process; and
send the reply from the server to the application process.

### Claim 8 (depends on 7)

The system of claim 7, wherein the application process is a first application process, the HTTP request is a first HTTP request, the client device further configured to:
in response to receiving a second HTTP request from a second application process, the second HTTP request is for communicating with said server:
assign said HTTP client session from the set of HTTP client sessions to the second application process; and
send the second HTTP request from the second application process to said server via said HTTP client session.

### Claim 9 (depends on 7)

The system of claim 7, wherein the set of HTTP client sessions includes a predetermined number of HTTP client sessions.

### Claim 10 (depends on 9)

The system of claim 9, wherein the predetermined number is specific to the server based on the frequency of communication with said server.

### Claim 11 (depends on 7)

The system of claim 7, wherein assigning the HTTP client session to the application process comprises setting an in-use flag associated with the HTTP client session and configuring an application-identifier parameter of the HTTP client session to an identifier of the application process.

### Claim 12 (depends on 7)

The system of claim 7, wherein the HTTP client session is stored in a shared memory accessible by multiple application processes on the client device.

### Claim 13

A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processing circuit of a client computing device to cause the processing circuit to share HTTP client sessions among multiple processes, the processing circuit configured to perform:
creating a set of HTTP client sessions for a remote server at startup of the client computing device, wherein the set of HTTP client sessions for the remote server are created at startup of the client computing device in response to a frequency of communication of the client computing device with said remote server prior to the startup is at least a predetermined threshold;
in response to receiving an HTTP request from an application process, the HTTP request is for communicating with the remote server:
assigning an HTTP client session from the set of HTTP client sessions to the application process; and
sending the HTTP request from the application process to the remote server via the HTTP client session that is assigned; and
in response to receiving a reply from the remote server:
deselecting the HTTP client session from the application process; and
sending the reply from the remote server to the application process.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the application process being a first application process, the HTTP request being a first HTTP request, the processing circuit configured to perform:
in response to receiving a second HTTP request from a second application process, the second HTTP request is for communicating with said remote server:
assigning said HTTP client session from the set of HTTP client sessions to the second application process; and
sending the second HTTP request from the second application process to said remote server via said HTTP client session.

### Claim 15 (depends on 13)

The computer program product of claim 13, wherein the set of HTTP client sessions includes a predetermined number of HTTP client sessions, the predetermined number is specific to the remote server.

### Claim 16 (depends on 13)

The computer program product of claim 13, the HTTP client session is stored in a shared memory accessible by multiple application processes on the client computing device.

### Claim 17 (depends on 13)

The computer program product of claim 13, wherein assigning the HTTP client session to the application process comprises setting an in-use flag associated with the HTTP client session and configuring an application-identifier parameter of the HTTP client session to an identifier of the application process.

### Claim 18 (depends on 1)

The computer-implemented method of claim 1, wherein the set of HTTP client sessions for the remote server are created in response to the frequency of communication of the application process with said remote server is at least the predetermined threshold.

### Claim 19 (depends on 7)

The system of claim 7, wherein the frequency of communication is representative of a number of communications of the application process with said server.

### Claim 20 (depends on 13)

The computer program product of claim 13, wherein the frequency of communication is representative of a number of communications of the application process with said remote server.
