IP Library Granted Patent US 9,830,334
Granted Patent B2
US 9,830,334 · App. 13/606,845 · Granted Nov 28, 2017

Client to client resource sharing in a client-server file-system

Inventor: Eric Van Hensbergen (Austin, TX)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F17/30203
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 9,830,334
App. No.
13/606,845
Granted
Nov 28, 2017
Kind
B2
Abstract

A request is received from a first client, at a file-server, to use a handle available at the file-server, the handle corresponding to a resource available at a second client. A response message is selected, the selected response being specified in a file-system protocol. The request is multiplexed with the selected response. An identifier is added to the multiplexed response, the identifier associating a set of requests and responses between the first client and the second client concerning the resource. The multiplexed response is sent to the second client. A second response is received from the second client. Responsive to the request from the first client, and further responsive to the second response from the second client, a third response is sent to the first client, the third response enabling the client to client resource sharing in the client-server file-system.

Claims (52)

1. A computer implemented method for client to client resource sharing in a client-server file-system, the method comprising:

receiving, from a first client in the client-server file-system, at a file-server in the client-server file-system, a request to use a handle available at the file-server, the handle corresponding to a resource at a second client in the client-server file-system, wherein the second client is distinct from the first client, the second client is distinct from the file-server, the second client is distinct from the resource, a protocol to reach the second client is distinct from a protocol of the handle to reach the resource, and the file-server file-system does not include the resource;

selecting a response message, forming a selected response, to send to the second client, the selected response being specified in a file-system protocol established between the second client and the file-server, wherein a connection established between the second client and the server allows a normal flow of messages and a reverse flow of messages, and where the server sending the selected response to the second client is according to the normal flow of messages;

multiplexing the request from the first client with the selected response, forming a multiplexed response to the second client;

adding an identifier to the multiplexed response directed to the second client, the identifier associating a set of requests and responses between the first client and the second client concerning the resource;

sending the multiplexed response to the second client;

receiving, responsive to the multiplexed response, a second response from the second client; and

sending, responsive to the request from the first client, and further responsive to the second response from the second client, a third response to the first client, the third response enabling the client to client resource sharing in the client-server file-system.

2. The computer implemented method of claim 1 , wherein the file-server cannot initiate a connection with a client in the client-server file-system, wherein each of the first client and the second client initiates a first and a second connection respectively with the file-server, and wherein the first client cannot establish a direct connection with the second client in the client-server file-system, further comprising:

receiving a post message from the second client to post the handle at the file-server.

3. The computer implemented method of claim 2 , wherein the post message is an export of a part of a file-system namespace of the second client.

4. The computer implemented method of claim 1 , wherein the request from the first client conforms to a different file-system protocol, wherein the multiplexing comprises:

modifying the request from the different file-system protocol to conform the file-system protocol, to form a modified request from the first client; and

combining the modified request from the first client with the selected response.

5. The computer implemented method of claim 1 , further comprising:

creating the identifier.

6. The computer implemented method of claim 5 , wherein the creating occurs responsive to the receiving the request to use the handle from the first client.

7. The computer implemented method of claim 1 , wherein the second response forms the reverse flow between the second client and the file-server, and wherein the reverse flow utilizes the connection already established between the second client and the file-server according to the file-system protocol.

8. The computer implemented method of claim 1 , wherein the sending the third response allows the first client to use the resource of the second client.

9. The computer implemented method of claim 1 , wherein the sending the third response declines a use of the resource of the second client by the first client.

10. The computer implemented method of claim 1 , wherein the third response to the first client conforms to a different file-system protocol, wherein the sending the third response further comprises:

modifying the second response from the file-system protocol to conform the different file-system protocol, forming the third response.

11. A computer usable program product comprising a computer usable storage device including computer usable code for client to client resource sharing in a client-server file-system, the computer usable code comprising:

computer usable code for receiving, from a first client in the client-server file-system, at a file-server in the client-server file-system, a request to use a handle available at the file-server, the handle corresponding to a resource at a second client in the client-server file-system, wherein the second client is distinct from the first client, the second client is distinct from the file-server, the second client is distinct from the resource, a protocol to reach the second client is distinct from a protocol of the handle to reach the resource, and the file-server file-system does not include the resource;

computer usable code for selecting a response message, forming a selected response, to send to the second client, the selected response being specified in a file-system protocol established between the second client and the file-server, wherein a connection established between the second client and the server allows a normal flow of messages and a reverse flow of messages, and where the server sending the selected response to the second client is according to the normal flow of messages;

computer usable code for multiplexing the request from the first client with the selected response, forming a multiplexed response to the second client;

computer usable code for adding an identifier to the multiplexed response directed to the second client, the identifier associating a set of requests and responses between the first client and the second client concerning the resource;

computer usable code for sending the multiplexed response to the second client;

computer usable code for receiving, responsive to the multiplexed response, a second response from the second client; and

computer usable code for sending, responsive to the request from the first client, and further responsive to the second response from the second client, a third response to the first client, the third response enabling the client to client resource sharing in the client-server file-system.

12. The computer usable program product of claim 11 , wherein the file-server cannot initiate a connection with a client in the client-server file-system, wherein each of the first client and the second client initiates a first and a second connection respectively with the file-server, and wherein the first client cannot establish a direct connection with the second client in the client-server file-system, further comprising:

computer usable code for receiving a post message from the second client to post the handle at the file-server.

13. The computer usable program product of claim 12 , wherein the post message is an export of a part of a file-system namespace of the second client.

14. The computer usable program product of claim 11 , wherein the request from the first client conforms to a different file-system protocol, wherein the multiplexing comprises:

computer usable code for modifying the request from the different file-system protocol to conform the file-system protocol, to form a modified request from the first client; and

computer usable code for combining the modified request from the first client with the selected response.

15. The computer usable program product of claim 11 , further comprising:

computer usable code for creating the identifier.

16. The computer usable program product of claim 15 , wherein the creating occurs responsive to the receiving the request to use the handle from the first client.

17. The computer usable program product of claim 11 , wherein the second response forms the reverse flow between the second client and the file-server, and wherein the reverse flow utilizes the connection already established between the second client and the file-server according to the file-system protocol.

18. The computer usable program product of claim 11 , wherein the computer usable code is stored in a computer readable storage device in a data processing system, and wherein the computer usable code is transferred over a network from a remote data processing system.

19. The computer usable program product of claim 11 , wherein the computer usable code is stored in a computer readable storage device in a server data processing system, and wherein the computer usable code is downloaded over a network to a remote data processing system for use in a computer readable storage device associated with the remote data processing system.

20. A data processing system for client to client resource sharing in a client-server file-system, the data processing system comprising:

a storage device including a storage medium, wherein the storage device stores computer usable program code; and

a processor, wherein the processor executes the computer usable program code, and wherein the computer usable program code comprises:

computer usable code for receiving, from a first client in the client-server file-system, at a file-server in the client-server file-system, a request to use a handle available at the file-server, the handle corresponding to a resource at a second client in the client-server file-system, wherein the second client is distinct from the first client, the second client is distinct from the file-server, the second client is distinct from the resource, a protocol to reach the second client is distinct from a protocol of the handle to reach the resource, and the file-server file-system does not include the resource;

computer usable code for selecting a response message, forming a selected response, to send to the second client, the selected response being specified in a file-system protocol established between the second client and the file-server, wherein a connection established between the second client and the server allows a normal flow of messages and a reverse flow of messages, and where the server sending the selected response to the second client is according to the normal flow of messages;

computer usable code for multiplexing the request from the first client with the selected response, forming a multiplexed response to the second client;

computer usable code for adding an identifier to the multiplexed response directed to the second client, the identifier associating a set of requests and responses between the first client and the second client concerning the resource;

computer usable code for sending the multiplexed response to the second client;

computer usable code for receiving, responsive to the multiplexed response, a second response from the second client; and

computer usable code for sending, responsive to the request from the first client, and further responsive to the second response from the second client, a third response to the first client, the third response enabling the client to client resource sharing in the client-server file-system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DOORDASH, INC.
Reel/Frame 057826/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2012
From: HENSBERGEN, ERIC VAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028923/0228 →
Continuity (1)
Related Publication 20140074898A1 · Mar 13, 2014