IP Library Granted Patent US 7,649,902
Granted Patent B2
US 7,649,902 · App. 11/604,086 · Granted Jan 19, 2010

Method and apparatus for performing syntax-directed application layer data buffering

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,649,902
App. No.
11/604,086
Granted
Jan 19, 2010
Kind
B2
Abstract

One embodiment of the present invention provides a system that facilitates buffering data at a kernel in a computer system, wherein the data is buffered based on the structure of a message contained in the data. The system operates by receiving data at a computer system from an external source. Next, the system buffers the data at a kernel on the computer system. As the system buffers the data, the system also determines if the buffered data constitutes a complete message as defined by a communication protocol. If so, the system forwards the buffered data to an application on the computer system.

Claims (57)

1. A method for buffering data at a kernel, wherein the data is buffered based on the structure of a message contained in the data, the method comprising:

receiving data at a computer system from an external source;

buffering the data at a kernel on the computer system;

determining if the buffered data constitutes a complete message as defined by a communication protocol; and

if so, forwarding the buffered data to an application on the computer system;

if not, forwarding the buffered data to the application prior to reaching a timeout interval associated with the application, thereby avoiding the application terminating a session associated with the buffered data.

2. The method of claim 1 , further comprising forwarding the buffered data to the application layer on the computer system when a specified amount of data has been buffered.

3. The method of claim 1 , further comprising forwarding the buffered data to the application layer on the computer system when a specified amount of time has elapsed.

4. The method of claim 1 , wherein the external source is a resource-constrained computing device.

5. The method of claim 1 , wherein the communication protocol can include:

Hypertlext Transfer Protocol (HTTP);

Secure HypertText Transfer Protocol (HTTPS);

File Transfer Protocol (FTP);

Simple Network Management Protocol (SNMP);

Simple Mail Transfer Protocol (SMTP);

Network News Transfer Protocol (NNTP);

Remote Desktop Protocol (RDP);

Internet Message Access Protocol (IMAP);

Post Office Protocol (POP3);

Secure Shell (SSH);

Real-time Transport Protocol (RTP); and TELNET.

6. The method of claim 1 , wherein buffering the data at the kernel involves buffering the data in a software buffer.

7. The method of claim 1 , wherein buffering the data at the kernel involves buffering the data in a hardware buffer.

8. The method of claim 1 , further comprising forwarding the buffered data to a second computer system.

9. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for buffering data at a kernel, wherein the data is buffered based on a communication protocol message contained in the data, the method comprising:

receiving data at a computer system from an external source;

buffering the data at a kernel on the computer system;

determining if the buffered data constitutes a complete message as defined by a communication protocol; and

if so, forwarding the buffered data to an application on the computer system;

if not, forwarding the buffered data to the application prior to reaching a timeout interval associated with the application, thereby avoiding the application terminating a session associated with the buffered data.

10. The computer-readable storage medium of claim 9 , wherein the method further comprises forwarding the buffered data to the application layer on the computer system when a specified amount of data has been buffered.

11. The computer-readable storage medium of claim 9 , wherein the method further comprises forwarding the buffered data to the application layer on the computer system when a specified amount of time has elapsed.

12. The computer-readable storage medium of claim 9 , wherein the external source is a resource-constrained computing device.

13. The computer-readable storage medium of claim 9 , wherein the communication protocol can include:

HypertText Transfer Protocol (HTTP);

Secure HypertText Transfer Protocol (HTTPS);

File Transfer Protocol (FTP);

Simple Network Management Protocol (SNMP);

Simple Mail Transfer Protocol (SMTP);

Network News Transfer Protocol (NNTP);

Remote Desktop Protocol (RDP);

Internet Message Access Protocol (IMAP);

Post Office Protocol (POP3);

Secure Shell (SSH);

Real-time Transport Protocol (RTP); and TELNET.

14. The computer-readable storage medium of claim 9 , wherein buffering the data at the kernel involves buffering the data in a software buffer.

15. The computer-readable storage medium of claim 9 , wherein buffering the data at the kernel involves buffering the data in a hardware buffer.

16. The computer-readable storage medium of claim 9 , wherein the method further comprises forwarding the buffered data to a second computer system.

17. An apparatus configured for buffering data at a kernel, wherein the data is buffered based on a communication protocol message contained in the data, comprising:

a receiving mechanism configured to receive data at a computer system from an external source;

a buffering mechanism configured to buffer the data at a kernel on the computer system;

a determination mechanism configured to determine if the buffered data constitutes a complete message as defined by a communication protocol;

a forwarding mechanism configured to forward the buffered data to an application on the computer system if the buffered data constitutes a complete message; and

a second forwarding mechanism configured to forward the buffered data to an application on the computer system prior to reaching a timeout interval associated with the application, if the buffered data does not constitute a complete message, thereby avoiding the application terminating a session associated with the buffered data.

18. The apparatus of claim 17 , wherein the forwarding mechanism is further configured to forward the buffered data to the application layer on the computer system when a specified amount of data has been buffered.

19. The apparatus of claim 17 , wherein the forwarding mechanism is further configured to forward the buffered data to the application layer on the computer system when a specified amount of time has elapsed.

20. The apparatus of claim 17 , wherein the forwarding mechanism is further configured to forward the buffered data to a second computer system.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037305/0133 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2006
From: CURTIS, BRUCE W.; JOHNSON, DARRIN P.; SMAALDERS, BART
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018615/0005 →