Claims
- 1. A method for partitioning network data services among multiple subscribers, to allow multiple source subscribers to selectively access a plurality of destination subscribers who provide data services, each destination subscriber being located at a destination address, the method comprising:
(a) defining a plurality of independent networks, each independent network comprising a set of access ports and a unique set of destination addresses and being logically separate from all other independent networks so that no information can pass from one independent network to another independent network; (b) when a source subscriber with an identity makes a request to use a first independent network to connect to a destination subscriber and access a resource, using the identity to determine whether the source subscriber has permission to use the first independent network; (c) if the source subscriber has permission to use the first independent network, determining whether the source subscriber or a destination subscriber has control over the resource; (d) if a destination subscriber has control over the resource, using information in the request to identify a destination subscriber and a response port; and (e) if the source subscriber has control over the resource, using the identity to determine whether the source subscriber can access the resource.
- 2. The method of claim 1 wherein the identity identifies an access port by which the source subscriber is accessing the first independent network.
- 3. The method of claim 1 wherein step (a) comprises storing in a first database information for each source subscriber defining each independent network to which that source subscriber has access.
- 4. The method of claim 3 wherein step (b) comprises using the identity to access the first database and to determine whether information concerning the first independent network resides in the first database and, if so, to retrieve that information.
- 5. The method of claim 4 wherein step (c) comprises using the information concerning the first network to determine whether the source subscriber or a destination subscriber has control over the resource.
- 6. The method of claim 5 wherein step (d) comprises using the information concerning the first network and information in the request to access a second database and to retrieve an identify of a destination subscriber and a response port.
- 7. The method of claim 5 wherein step (e) comprises using the identity to access a third database to determine whether information concerning the source subscriber resides in the third database and, if so, to retrieve permission information from the third database.
- 8. The method of claim 1 further comprising:
(f) using a fourth database to store information entered by an administrator of the data center defining a plurality of file systems; (g) using a fifth database to store information entered by an administrator of the data center defining access privileges of the multiple subscribers to file systems defined by information in the first database; (h) using a sixth database to store information entered by the multiple subscribers defining subgroups of subscribers and assigning each subgroup to a file system defined by the first database; and (i) reconciling the information in the sixth database to the information in the fourth database to prevent the multiple subscribers from accessing a file system to which they do not have access.
- 9. The method of claim 8 wherein the sixth database is structured in accordance with a management information base protocol.
- 10. A method for partitioning network data services among multiple subscribers, each of whom makes requests to selectively access a plurality of data services, the method comprising:
(a) defining at least one session for each of the multiple subscribers, during which session requests from the each subscriber can be generated; (b) assigning to each session a throughput metric that measures quality of service; (c) assigning at least one active session list and one inactive list to each of the multiple subscribers and placing sessions defined for each subscriber on the active session list assigned to that subscriber; and (d) ordering the active session lists from a first list to a last list and servicing pending requests in sessions in the first active session list.
- 11. The method of claim 10 wherein step (a) comprises opening a session for one of the multiple subscribers when the one subscriber generates a request and closing the session when no further requests are generated.
- 12. The method of claim 10 wherein step (a) comprises assigning each session to a session group defined by a set of resources used by the each session.
- 13. The method of claim 12 wherein step (d) comprises checking the session group prior to servicing pending requests in the each session to determine whether the resources assigned to the each session group have reached capacity and bypassing the session when the set of resources has reached capacity.
- 14. The method of claim 10 wherein step (b) comprises assigning to each session a throughput metric that is related to a fraction of the currently available throughput capacity that is allocated to the each session.
- 15. The method of claim 14 wherein an application responds to a request for service by returning an estimate of the resource capacity that will be necessary to respond to the request and wherein step (b) comprises adjusting the throughput metric based on the estimate.
- 16. The method of claim 15 further comprising (e) selecting the next eligible subscriber for servicing requests when a throughput adjustment results in a subscriber exceeding an allocated capacity.
- 17. The method of claim 10 wherein step (d) comprises servicing pending requests in an active session on the first active session list until the throughput consumed by all requests serviced is estimated to exceed a predetermined amount of allocated capacity or all requests have been serviced.
- 18. The method of claim 17 wherein step (d) further comprises removing the active session from the first active session list and placing the active session on another session list when the throughput consumed by all requests serviced is estimated to exceed a predetermined amount of capacity allocated to the active session.
- 19. The method of claim 17 wherein step (d) further comprises removing the active session from the first active session list and placing the active session on the inactive list when all requests have been serviced.
- 20. Apparatus for partitioning network data services among multiple subscribers, to allow multiple source subscribers to selectively access a plurality of destination subscribers who provide data services, each destination subscriber being located at a destination address, the apparatus comprising:
means for defining a plurality of independent networks, each independent network comprising a set of access ports and a unique set of destination addresses and being logically separate from all other independent networks so that no information can pass from one independent network to another independent network; when a source subscriber with an identity makes a request to use a first independent network to connect to a destination subscriber and access a resource, first means for using the identity to determine whether the source subscriber has permission to use the first independent network; if the source subscriber has permission to use the first independent network, means for determining whether the source subscriber or a destination subscriber has control over the resource; if a destination subscriber has control over the resource, second means for using information in the request to identify a destination subscriber and a response port; and if the source subscriber has control over the resource, third means for using the identity to determine whether the source subscriber can access the resource.
- 21. The apparatus of claim 20 wherein the identity identifies an access port by which the source subscriber is accessing the first independent network.
- 22. The apparatus of claim 20 wherein the means for defining a plurality of independent networks comprises a first database and means for storing in the first database information for each source subscriber defining each independent network to which that source subscriber has access.
- 23. The apparatus of claim 22 wherein the first using means comprises means for using the identity to access the first database and to determine whether information concerning the first independent network resides in the first database and, if so, to retrieve that information.
- 24. The apparatus of claim 23 wherein the means for determining comprises using the information concerning the first network to determine whether the source subscriber or a destination subscriber has control over the resource.
- 25. The apparatus of claim 24 wherein the second means for using comprises a second database and means for using the information concerning the first network and information in the request to access the second database and to retrieve an identify of a destination subscriber and a response port.
- 26. The apparatus of claim 24 wherein the third means for using comprises a third database and means for using the identity to access the third database to determine whether information concerning the source subscriber resides in the third database and, if so, to retrieve permission information from the third database.
- 27. The apparatus of claim 20 further comprising:
a fourth database and means for using the fourth database to store information entered by an administrator of the data center defining a plurality of file systems; a fifth database and means for using the fifth database to store information entered by an administrator of the data center defining access privileges of the multiple subscribers to file systems defined by information in the first database; a sixth database and means for using the sixth database to store information entered by the multiple subscribers defining subgroups of subscribers and assigning each subgroup to a file system defined by the first database; and means for reconciling the information in the sixth database to the information in the fourth database to prevent the multiple subscribers from accessing a file system to which they do not have access.
- 28. The apparatus of claim 27 wherein the sixth database is structured in accordance with a management information base protocol.
- 29. Apparatus for partitioning network data services among multiple subscribers, each of whom makes requests to selectively access a plurality of data services, the method comprising:
means for defining at least one session for each of the multiple subscribers, during which session requests from the each subscriber can be generated; means for assigning to each session a throughput metric that measures quality of service; means for assigning at least one active session list and one inactive list to each of the multiple subscribers and placing sessions defined for each subscriber on the active session list assigned to that subscriber; and means for ordering the active session lists from a first list to a last list and servicing pending requests in sessions in the first active session list.
- 30. The apparatus of claim 29 wherein the means for defining at least one session comprises means for opening a session for one of the multiple subscribers when the one subscriber generates a request and means for closing the session when no further requests are generated.
- 31. The apparatus of claim 29 wherein the means for defining comprises means for assigning each session to a session group defined by a set of resources used by the each session.
- 32. The apparatus of claim 31 wherein the means for ordering the active session lists comprises means for checking the session group prior to servicing pending requests in the each session to determine whether the resources assigned to the each session group have reached capacity and means for bypassing the session when the set of resources has reached capacity.
- 33. The apparatus of claim 29 wherein the means for assigning to each session a throughput metric comprises means for assigning to each session a throughput metric that is related to a fraction of the currently available throughput capacity that is allocated to the each session.
- 34. The apparatus of claim 33 wherein an application responds to a request for service by returning an estimate of the resource capacity that will be necessary to respond to the request and wherein the means for assigning to each session a throughput metric comprises means for adjusting the throughput metric based on the estimate.
- 35. The apparatus of claim 34 further comprising means for selecting the next eligible subscriber for servicing requests when a throughput adjustment results in a subscriber exceeding an allocated capacity.
- 36. The apparatus of claim 29 wherein the means for ordering the active session lists comprises means for servicing pending requests in an active session on the first active session list until the throughput consumed by all requests serviced is estimated to exceed a predetermined amount of allocated capacity or all requests have been serviced.
- 37. The apparatus of claim 36 wherein the means for ordering the active session lists further comprises means for removing the active session from the first active session list and means for placing the active session on another session list when the throughput consumed by all requests serviced is estimated to exceed a predetermined amount of capacity allocated to the active session.
- 38. The apparatus of claim 36 wherein the means for ordering the active session lists further comprises means for removing the active session from the first active session list and means for placing the active session on the inactive list when all requests have been serviced.
- 39. A computer program product for partitioning network data services among multiple subscribers, to allow multiple source subscribers to selectively access a plurality of destination subscribers who provide data services, each destination subscriber being located at a destination address, the computer program product comprising a computer usable medium having computer readable program code thereon, including:
program code for defining a plurality of independent networks, each independent network comprising a set of access ports and a unique set of destination addresses and being logically separate from all other independent networks so that no information can pass from one independent network to another independent network; first program code operable when a source subscriber with an identity makes a request to use a first independent network to connect to a destination subscriber and access a resource, for using the identity to determine whether the source subscriber has permission to use the first independent network; program code operable if the source subscriber has permission to use the first independent network, for determining whether the source subscriber or a destination subscriber has control over the resource; second program code operable if a destination subscriber has control over the resource, for using information in the request to identify a destination subscriber and a response port; and third program code operable if the source subscriber has control over the resource, for using the identity to determine whether the source subscriber can access the resource.
- 40. The computer program product of claim 39 wherein the identity identifies an access port by which the source subscriber is accessing the first independent network.
- 41. The computer program product of claim 39 wherein the program code for defining a plurality of independent networks comprises program code for storing in a first database information for each source subscriber defining each independent network to which that source subscriber has access.
- 42. The computer program product of claim 41 wherein the first program code for using comprises program code for using the identity to access the first database and to determine whether information concerning the first independent network resides in the first database and, if so, to retrieve that information.
- 43. The computer program product of claim 42 wherein the determining means comprises means for using the information concerning the first network to determine whether the source subscriber or a destination subscriber has control over the resource.
- 44. The computer program product of claim 43 wherein the second program code for using comprises program code for using the information concerning the first network and information in the request to access a second database and to retrieve an identify of a destination subscriber and a response port.
- 45. The computer program product of claim 43 wherein the third program code for using comprises program code for using the identity to access a third database to determine whether information concerning the source subscriber resides in the third database and, if so, to retrieve permission information from the third database.
- 46. The computer program product of claim 39 further comprising:
program code for using a fourth database to store information entered by an administrator of the data center defining a plurality of file systems; program code for using a fifth database to store information entered by an administrator of the data center defining access privileges of the multiple subscribers to file systems defined by information in the first database; program code for using a sixth database to store information entered by the multiple subscribers defining subgroups of subscribers and assigning each subgroup to a file system defined by the first database; and program code for reconciling the information in the sixth database to the information in the fourth database to prevent the multiple subscribers from accessing a file system to which they do not have access.
- 47. A computer program product for partitioning network data services among multiple subscribers, each of whom makes requests to selectively access a plurality of data services, the computer program product comprising a computer usable medium having computer readable program code thereon, including:
program code for defining at least one session for each of the multiple subscribers, during which session requests from the each subscriber can be generated; program code for assigning to each session a throughput metric that measures quality of service; program code for assigning at least one active session list and one inactive list to each of the multiple subscribers and placing sessions defined for each subscriber on the active session list assigned to that subscriber; and program code for ordering the active session lists from a first list to a last list and servicing pending requests in sessions in the first active session list.
- 48. A computer data signal embodied in a carrier wave for partitioning network data services among multiple subscribers, to allow multiple source subscribers to selectively access a plurality of destination subscribers who provide data services, each destination subscriber being located at a destination address, the computer data signal comprising:
program code for defining a plurality of independent networks, each independent network comprising a set of access ports and a unique set of destination addresses and being logically separate from all other independent networks so that no information can pass from one independent network to another independent network; first program code operable when a source subscriber with an identity makes a request to use a first independent network to connect to a destination subscriber and access a resource, for using the identity to determine whether the source subscriber has permission to use the first independent network; program code operable if the source subscriber has permission to use the first independent network, for determining whether the source subscriber or a destination subscriber has control over the resource; second program code operable if a destination subscriber has control over the resource, for using information in the request to identify a destination subscriber and a response port; and third program code operable if the source subscriber has control over the resource, for using the identity to determine whether the source subscriber can access the resource.
- 49. A computer data signal embodied in a carrier wave for partitioning network data services among multiple subscribers, each of whom makes requests to selectively access a plurality of data services, the computer data signal comprising:
program code for defining at least one session for each of the multiple subscribers, during which session requests from the each subscriber can be generated; program code for assigning to each session a throughput metric that measures quality of service; program code for assigning at least one active session list and one inactive list to each of the multiple subscribers and placing sessions defined for each subscriber on the active session list assigned to that subscriber; and program code for ordering the active session lists from a first list to a last list and servicing pending requests in sessions in the first active session list.
RELATED APPLICATIONS
[0001] This application is related to, and claims priority of, U.S. provisional patent application serial No. 60/284,439, filed on Apr. 18, 2001 by Joris J. Wills, Beth K. Miaoulis and Jack J. Stiffler.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60284439 |
Apr 2001 |
US |