IP Library Patent Application 17959161
Patent Application
App. No. 17/959,161

MULTI-THREADED PROTOCOL-AGNOSTIC PROACTOR FACADE FOR HTTP/2 SERVER IMPLEMENTATIONS

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 None
App. No.
17/959,161
Abstract

Some embodiments provide a method of facilitating a multi-stream protocol for a split web server that includes a reactor core and a proactor interface. At a session object of the web server, the method generates an internal stream for a new incoming web-based protocol stream. The method transfers a set of data associated with the new incoming web-based protocol stream to a buffer of the internal stream from which a user-facing interface of the web server reads the data. In response to a first data byte sent by the user-facing interface, the method initiates an active write loop for the new web-based protocol stream.

Claims (47)

1 . A method of facilitating a multi-stream protocol for web server, the method comprising:

at a session object of the web server:

generating an internal stream for a new incoming web-based protocol stream;

transferring a set of data associated with the new incoming web-based protocol stream to a buffer of the internal stream, wherein a user-facing interface of the web server reads data from the buffer; and

in response to a first data byte sent by the user-facing interface, initiating an active write loop for the new web-based protocol stream.

2 . The method of claim 1 , wherein the web server comprises a split web server that includes rising a reactor core and a proactor interface, and the reactor core of the web server comprises the session object and the internal stream, while the proactor interface comprises the user-facing interface.

3 . The method of claim 2 , wherein:

the session object and the user-facing interface share a reference to the internal stream; and

the internal stream has a reference to the session object.

4 . The method of claim 3 , wherein the user-facing interface releases the reference to the internal stream after sending a final data byte.

5 . The method of claim 1 , wherein the session object implements an HTTP/2 state machine (i) that fetches and packages data bytes from the internal stream to generate encoded frames and (ii) that returns the encoded frames to the session object.

6 . The method of claim 5 , wherein the HTTP/2 state machine registers the internal stream as a data source.

7 . The method of claim 1 further comprising:

determining that the user-facing interface has sent a final data byte to the internal stream; and

returning the internal stream to an internal stream pool of the session object.

8 . The method of claim 1 further comprising:

receiving a notification from the internal stream that the user-facing interface has been destroyed; and

terminating the new incoming web-based protocol stream.

9 . The method of claim 1 further comprising:

receiving a notification from the internal stream that the user-facing interface has been destroyed; and

autocompleting the internal stream.

10 . The method of claim 1 , wherein the internal stream is a first internal stream associated with a web-based protocol connection, and the user-facing interface is a first user-facing interface, the method further comprising:

generating a second internal stream for a second new web-based protocol stream associated with the web-based protocol connection;

transferring a set of data associated with the second new web-based protocol stream to a buffer of the second internal stream, wherein a second user-facing interface of the web server reads data from the buffer; and

in response to a first data byte sent by the second user-facing interface, initiating an active write loop for the second new web-based protocol stream.

11 . The method of claim 10 , wherein:

the user-facing interface is one of a plurality of user-facing interfaces; and

each stream is associated with a respective user-facing interface in the plurality of user-facing interfaces.

12 . The method of claim 1 , wherein the session is a first session associated with a first web-based protocol connection, wherein the web server comprises a plurality of sessions each associated with a different web-based protocol connection in a plurality of web-based protocol connections.

13 . The method of claim 1 , wherein the web-based protocol connection is an HTTP/2 connection.

14 . A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for facilitating a multi-stream protocol for a split web server comprising a reactor core and a proactor interface, the program comprising sets of instructions for:

at a session object of the web server:

generating an internal stream for a new incoming web-based protocol stream;

transferring a set of data associated with the new incoming web-based protocol stream to a buffer of the internal stream, wherein a user-facing interface of the web server reads data from the buffer; and

in response to a first data byte sent by the user-facing interface, initiating an active write loop for the new web-based protocol stream.

15 . The non-transitory machine readable medium of claim 14 , wherein:

the reactor core of the web server comprises the session object and the internal stream; and

the proactor interface comprises the user-facing interface.

16 . The non-transitory machine readable medium of claim 15 , wherein:

the session object and the user-facing interface share a reference to the internal stream; and

the internal stream has a reference to the session object.

17 . The non-transitory machine readable medium of claim 16 , wherein the user-facing interface releases the reference to the internal stream after sending a final data byte.

18 . The non-transitory machine readable medium of claim 14 , wherein the session object implements an HTTP/2 state machine (i) that fetches and packages data bytes from the internal stream to generate encoded frames and (ii) that returns the encoded frames to the session object.

19 . The non-transitory machine readable medium of claim 18 , wherein the HTTP/2 state machine registers the internal stream as a data source.

20 . The non-transitory machine readable medium of claim 14 , the program further comprising sets of instructions for:

determining that the user-facing interface has sent a final data byte to the internal stream; and

returning the internal stream to an internal stream pool of the session object.

Assignments (1)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →