IP Library Granted Patent US 7,590,743
Granted Patent B2
US 7,590,743 · App. 11/016,015 · Granted Sep 15, 2009

Method and system for associating a process on a multi-user device with a host address unique to a user session associated with the process

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,590,743
App. No.
11/016,015
Granted
Sep 15, 2009
Kind
B2
Abstract

A method and system for associating a process on a multi-user device with a host address unique to a user session associated with the process begins by allocating a unique host address for the user session and assigning it to a network adapter. Requests that may bind network resources are intercepted, and relevant bind request parameters are manipulated to specify the host address associated with the user session. The original target of the request is invoked with potentially modified parameters.

Claims (51)

1. A method for associating a process on a multi-user device with a host address unique to a user session in which said process is executing, the method comprising:

(a) allocating a unique host address for said user session, said user session emulating a single user workstation environment, said process executing in said user session;

(b) assigning said unique host address to a network adapter;

(c) intercepting a request from said process directed at a default function of the operating system;

(c-2) identifying a user session in which said process is executing;

(d) modifying said request by replacing a request host address with the unique host address of the user session in which said process is executing; and

(e) directing a modified request to said default function of the operating system;

whereby all network packets sent to or from said process use said unique host address associated with said user session.

2. The method of claim 1 wherein step (a) comprises allocating the host address using a dynamic host configuration protocol.

3. The method of claim 1 wherein step (a) comprises allocating the host address using configuration data accessible using services of the operating system.

4. The method of claim 1 wherein step (a) comprises allocating the host address from an existing pool of host addresses.

5. The method of claim 1 wherein step (c) comprises directing said request to an alternate function, said alternate function replacing said default function and having the same name and being called in the same way as said default function.

6. The method of claim 1 wherein step (c) comprises registering a layered service provider.

7. The method of claim 1 wherein step (c) comprises:

(c-a) installing a device driver in a multi-user operating system;

(c-b) attaching a first object related to said device driver to a second object related to a network driver of the operating system;

whereby network requests bound for said second object are routed first to said first object.

8. The method of claim 1 wherein step (d) further comprises:

(a) accessing a data table including a plurality of mappings between user sessions and host addresses;

(b) locating a mapping corresponding to said user session in which said process is executing;

(c) determining from the mapping entry said unique host address for said user session.

9. A computer readable storage medium that when executed on a processor performs instructions comprising:

(a) allocating a unique host address for said user session, said user session emulating a single user workstation environment, said process executing in said user session;

(b) assigning said unique host address to a network adapter;

(c) intercepting a request from said process directed at a default function of the operating system;

(c-2) identifying a user session in which said process is executing;

(d) modifying said request such that it comprises said unique host address of the user session in which said process is executing; and

(e) directing a modified request to said default function of the operating system;

whereby all network packets sent to or from said process will use said unique host address associated with said user session.

10. The computer readable storage medium of claim 9 that when executing on a processor further performs instructions comprising allocating the host address using a dynamic host configuration protocol.

11. The computer readable storage medium of claim 9 that when executing on a processor further performs instructions comprising allocating the host address using configuration data accessible using services of the operating system.

12. The computer readable storage medium of claim 9 that when executing on a processor further performs instructions comprising allocating the host address from an existing pool of host addresses.

13. The computer readable storage medium of claim 9 that when executing on a processor further performs instructions comprising directing said request to an alternate function, said alternate function replacing said default function and having the same name and being called in the same way as said default function.

14. The computer readable storage medium of claim 9 that when executing on a processor further performs instructions comprising registering a layered service provider.

15. The computer readable storage medium of claim 9 that when executing on a processor further performs instructions comprising:

(c-a) installing a device driver in a multiuser operating system;

(c-b) attaching a first object related to said device driver to a second object related to a network driver of the operating system;

whereby network requests bound for said second object are routed first to said first object.

16. The computer readable storage medium of claim 9 that when executing on a processor further performs instructions comprising:

(a) accessing a data table including a plurality of mappings between user sessions and host addresses;

(b) locating a mapping corresponding to said user session in which said process is executing;

(c) determining from the mapping entry said unique host address for said user session.

17. A system for associating a process on a multi-user device with a host address unique to a user session corresponding to the process, the method comprising:

(a) a processor;

(b) a module that allocates a unique host for the user session, whereby all network traffic sent to or from the corresponding process use the unique host address, said user session emulating a single user workstation environment, said process executing in said user session;

(c) a module that assigns the unique host address to a network adapter;

(d) an interceptor that registers a layered service provider, and intercepts a request sent from the process to a default function of an operating system by (i) installing a device driver in a multi-user operating system, and (ii) attaching a first object related to said device driver to a second object related to a network driver of the operating system, whereby network requests bound for said second object are routed first to said first object;

(e) a modifier that replaces a request host address of the request with the unique host address by (i) accessing a data table including a plurality of mappings between user sessions and host addresses (ii) locating a mapping corresponding to said user session in which said process is executing; and (iii) determining from the mapping entry said unique host address for said user session;

(f) a director that sends the modified request to the default function of the operating system.

18. The system of claim 17 , wherein module (b) comprises one from a set of modules, the set comprising, a module that allocates the host address using a dynamic host configuration protocol, a module that allocates the host address using configuration data accessible using services of the operating system, and a module that allocates the host address from an existing pool of host addresses.

19. The system of claim 18 , wherein the interceptor comprises a module to direct said request to an alternate function, said alternate function replacing said default function and having the same name and being called in the same way as said default function.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 11026015 PREVIOUSLY RECORDED ON REEL 039646 FRAME 0171. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 21, 2016
From: SOFTRICITY, INC.
To: MICROSOFT CORPORATION
Reel/Frame 040448/0761 →
MERGER Recorded Aug 11, 2016
From: SOFTRICITY, INC.
To: MICROSOFT CORPORATION
Reel/Frame 039646/0171 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
MERGER Recorded Feb 8, 2011
From: SOFTRICITY, INC.
To: MICROSOFT CORPORATION
Reel/Frame 025770/0572 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2008
From: WILLIS, MICHAEL JOHN
To: SOFTRICITY, INC.
Reel/Frame 021989/0535 →