IP Library Granted Patent US 7,490,137
Granted Patent B2
US 7,490,137 · App. 10/392,420 · Granted Feb 10, 2009

Vector-based sending of web content

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 7,490,137
App. No.
10/392,420
Granted
Feb 10, 2009
Kind
B2
Abstract

A web server arrangement includes user-mode web application logic that is configured to receive a web request and process the web request and generate a web request response. Vector send logic is then employed to identify a location of content of the web request response using a vector array. Kernel-mode vector receive logic then assembles the web request response in a contiguous section of kernel-mode or other like memory based on the vector array. Kernel mode universal listener logic then sends the assembled web request response to the requesting client application logic.

Claims (35)

1. A method comprising:

causing a user-mode web application in a web server to:

process a web request,

generate a web request response having static and dynamic content, and

store said static and dynamic content in a plurality of non-contiguous sections of user-mode memory;

identifying said static and dynamic content within said plurality of non-contiguous sections of user-mode memory with a vector array, said vector array comprising a plurality of identifiers, each identifier associated with one of said plurality of non-contiguous sections of user-mode memory, and each identifier having an index ranging from zero to n, said vector array allowing a kernel-mode process to retrieve said static and dynamic content in said web request response from within said plurality of non-contiguous sections of user-mode memory;

causing a kernel-mode process to assemble said static and dynamic content of said web request response in a contiguous section of memory associated with said kernel-mode process based on said vector array and without first assembling said static and dynamic content into a contiguous section of user-mode memory; and

causing said kernel-mode process to send said vector array to a requesting client application.

2. The method as recited in claim 1 , wherein said plurality of identifiers includes at least one identifier selected from a group of identifiers comprising a pointer, a tag, a handle, an offset, a length, a size, a memory address, a disk drive location, and a buffer identifier.

3. The method as recited in claim 1 , wherein user-mode vector send logic is used to identify said static and dynamic content in said web request response and generate said vector array.

4. The method as recited in claim 1 , wherein kernel-mode vector receive logic is used to assemble said static and dynamic content of said web request response in said contiguous section of memory associated with said kernel-mode process based on said vector array.

5. The method as recited in claim 1 , wherein said kernel-mode process includes a universal listener (UL) service.

6. One or more computer-readable media storing computer-executable instructions that, when executed on one or more processors, perform acts comprising:

causing a user-mode web application in a web server to:

process a web request,

generate a web request response having static and dynamic content, and

store said static and dynamic content in a plurality of non-contiguous sections of user-mode memory;

identifying said static and dynamic content within said plurality of non-contiguous sections of user-mode memory with a vector array, said vector array comprising a plurality of identifiers, each identifier associated with one of said plurality of non-contiguous sections of user-mode memory, and each identifier having an index ranging from zero to n, said vector array allowing a kernel-mode process to retrieve said static and dynamic content in said web request response from within said plurality of non-contiguous sections of user-mode memory;

causing a kernel-mode process to assemble said static and dynamic content of said web request response in a contiguous section of memory associated with said kernel-mode process based on said vector array and without first assembling said static and dynamic content into a contiguous section of user-mode memory; and

causing said kernel-mode process to send said vector array to a requesting client application.

7. One or more computer-readable media as recited in claim 6 , wherein said plurality of identifiers includes at least one identifier selected from a group of identifiers comprising a pointer, a tag, a handle, an offset, a length, a size, a memory address, a disk drive location, and a buffer identifier.

8. One or more computer-readable media as recited in claim 6 , wherein user-mode vector send logic is used to identify said static and dynamic content in said web request response and generate said vector array.

9. One or more computer-readable media as recited in claim 6 , wherein kernel-mode vector receive logic is used to assemble said static and dynamic content of said web request response in said contiguous section of memory associated with said kernel-mode process based on said vector array.

10. One or more computer-readable media as recited in claim 6 , wherein said kernel-mode process includes a universal listener (UL) service.

11. A computer system comprising:

one or more processors;

memory, accessible by the one or more processors;

a user-mode web application logic module stored in memory and executable on the one or more processors:

receive a web request, process said web request,

generate a web request response having static and dynamic content, and

store said static and dynamic content in a plurality of non-contiguous sections of user-mode memory;

cause vector send logic operatively coupled to said web application logic to identify a location within said plurality of non-contiguous sections of user-mode memory of said static and dynamic content of said web request response using a vector array, said vector array comprising a plurality of identifiers, each identifier associated with one of said plurality of non-contiguous sections of user-mode memory, and each identifier having an index ranging from zero to n, said vector array allowing a kernel-mode vector receive logic to retrieve said static and dynamic content in said web request response from within said plurality of non-contiguous sections of user-mode memory;

cause kernel-mode vector receive logic operatively coupled to said vector send logic to copy said static and dynamic content of said web request response into a contiguous section of memory associated with said kernel-mode vector receive logic based on said vector array and without first assembling said static and dynamic content into a contiguous section of user-mode memory; and

cause a kernel-mode universal listener logic configured to send said web request response to a requesting client application.

12. The computer system as recited in claim 11 , wherein said plurality of identifiers includes at least one identifier selected from a group of identifiers comprising a pointer, a tag, a handle, an offset, a length, a size, a memory address, a disk drive location, and a buffer identifier.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2003
From: MITRA, ASIM; DEML, THOMAS; RUIA, ANIL; ALAM, BILAL; HILMO, WADE
To: MICROSOFT CORPORATION
Reel/Frame 013895/0403 →