1. A method for servicing a print request from a specific client system of a plurality of client systems, said print request being able to be serviced on a plurality of printer server systems, said printer server systems being connected via a network, said method comprising:
in response to receiving said print request from said specific client system, setting up a network connection between said specific client system and the plurality of printer server systems;
reading, from a database accessible to each printer server system, client-specific information from a client profile, printer server information from a server profile, and printer information from a printer profile, wherein said client-specific information pertains to the specific client system, wherein the printer server information pertains to each print server system of the plurality of printer server systems, and wherein the printer information pertains to a plurality of printers utilized by said printer server systems;
ascertaining at least one best-suited printer of the plurality of printers to be used for servicing said print request, wherein said ascertaining comprises utilizing said client-specific information, said printer server information, and said printer information; and
in response to said ascertaining, servicing said print request, said servicing performed by said at least one best suited printer,
wherein said client-specific information comprises:
server identifiers identifying each printer server system of the plurality of printer server systems, a home server identifier identifying which printer server system of the plurality of printer server systems is the specific client system’s home server,
the specific client system’s geographic location,
a favorite time span reflecting when the specific client system has previously been connected to the network,
an amount of data reflective of a quantity of data previously printed within a given historical time span,
a maximum data transfer rate at which the specific client system can transfer data to the network, and
a minimum speed required for printing data received from the specific client system by each printer server system of the plurality of printer server systems.
2. The method of claim 1, wherein said printer server information comprises:
each printer server system’s geographic location,
a data transfer rate between each printer server system and a respective printer of the plurality of printers,
a current percent usage of each printer server system, and
an activity schedule of all services currently scheduled for each printer server system.
3. The method of claim 1, wherein said printer information comprises:
each printer’s geographic location,
a printing speed of each printer,
a maximum number of pages of each printer’s queue, and
a current number of pages currently in each printer’s queue.
4. The method of claim 1, wherein said at least one best suited printer consists of a single printer of the plurality of printers.
5. The method of claim 1, wherein said at least one best suited printer comprises at least two printers of the plurality of printers, and wherein said servicing said print request comprises said at least two printers generating printed output required by said print request.
6. A computer program product, comprising a computer readable storage medium having program instructions stored therein, said storage medium being hardware, said program instructions configured to be executed by a computer processor of a computer system to implement a method for servicing a print request from a specific client system of a plurality of client systems, said print request being able to be serviced on a plurality of printer server systems, said printer server systems being connected via a network, said method comprising:
in response to receiving said print request from said specific client system, setting up a network connection between said specific client system and the plurality of printer server systems;
reading, from a database accessible to each printer server system, client-specific information from a client profile, printer server information from a server profile, and printer information from a printer profile, wherein said client-specific information pertains to the specific client system, wherein the printer server information pertains to each print server system of the plurality of printer server systems, and wherein the printer information pertains to a plurality of printers utilized by said printer server systems;
ascertaining at least one best-suited printer of the plurality of printers to be used for servicing said print request, wherein said ascertaining comprises utilizing said client-specific information, said printer server information, and said printer information; and
in response to said ascertaining, servicing said print request, said servicing to be performed by said \\at least one best suited printer,
wherein said client-specific information comprises:
server identifiers identifying each printer server system of the plurality of printer server systems, a home server identifier identifying which printer server system of the plurality of printer server systems is the specific client system’s home server,
the specific client system’s geographic location,
a favorite time span reflecting when the specific client system has previously been connected to the network,
an amount of data reflective of a quantity of data previously printed within a given historical time span,
a maximum data transfer rate at which the specific client system can transfer data to the network, and
a minimum speed required for printing data received from the specific client system by each printer server system of the plurality of printer server systems.
7. The computer program product of claim 6, wherein said printer server information comprises:
each printer server system’s geographic location,
a data transfer rate between each printer server system and a respective printer of the plurality of printers,
a current percent usage of each printer server system, and
an activity schedule of all services currently scheduled for each printer server system.
8. The computer program product of claim 6, wherein said printer information comprises:
each printer’s geographic location,
a printing speed of each printer,
a maximum number of pages of each printer’s queue, and
a current number of pages currently in each printer’s queue.
9. The computer program product of claim 6, wherein said at least one best suited printer consists of a single printer of the plurality of printers.
10. The computer program product of claim 6, wherein said at least one best suited printer comprises at least two printers of the plurality of printers, and wherein said servicing said print request comprises said at least two printers generating printed output required by said print request.
11. A computer system, comprising a computer processor and a computer readable storage medium having program instructions stored therein, said storage medium being hardware, said program instructions configured to be executed by the computer processor to implement a method for servicing a print request from a specific client system of a plurality of client systems, said print request being able to be serviced on a plurality of printer server systems, said printer server systems being connected via a network, said method comprising:
in response to receiving said print request from said specific client system, setting up a network connection between said specific client system and the plurality of printer server systems;
reading, from a database accessible to each printer server system, client-specific information from a client profile, printer server information from a server profile, and printer information from a printer profile, wherein said client-specific information pertains to the specific client system, wherein the printer server information pertains to each print server system of the plurality of printer server systems, and wherein the printer information pertains to a plurality of printers utilized by said printer server systems;
ascertaining at least one best-suited printer of the plurality of printers to be used for servicing said print request, wherein said ascertaining comprises utilizing said client-specific information, said printer server information, and said printer information; and
in response to said ascertaining, servicing said print request, said servicing to be performed by said at least one best suited printer,
wherein said client-specific information comprises:
server identifiers identifying each printer server system of the plurality of printer server systems, a home server identifier identifying which printer server system of the plurality of printer server systems is the specific client system’s home server,
the specific client system’s geographic location,
a favorite time span reflecting when the specific client system has previously been connected to the network,
an amount of data reflective of a quantity of data previously printed within a given historical time span,
a maximum data transfer rate at which the specific client system can transfer data to the network, and
a minimum speed required for printing data received from the specific client system by each printer server system of the plurality of printer server systems.
12. The computer system of claim 11, wherein said printer server information comprises:
each printer server system’s geographic location,
a data transfer rate between each printer server system and a respective printer of the plurality of printers,
a current percent usage of each printer server system, and
an activity schedule of all services currently scheduled for each printer server system.
13. The computer system of claim 11, wherein said printer information comprises:
each printer’s geographic location,
a printing speed of each printer,
a maximum number of pages of each printer’s queue, and
a current number of pages currently in each printer’s queue.
14. The computer system of claim 11, wherein said at least one best suited printer consists of a single printer of the plurality of printers.
15. The computer system of claim 11, wherein said at least one best suited printer comprises at least two printers of the plurality of printers, and wherein said servicing said print request comprises said at least two printers generating printed output required by said print request.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
I claim:
1. A method for caching data associated with entries in a data store accessed in response to a request assigned to a thread of execution, said method comprising the steps of:
(a) interpreting a first command arising from said request to call for access to a data store entry in said data store; and
(b) accessing a first entry in a cache object in response to said first command,
wherein said first entry corresponds to said data store entry,
wherein said cache object is associated with said thread of execution, and
wherein said cache object is only accessed in response to commands arising from requests assigned to said thread of execution.
2. The method of claim 1, further including the step of:
(c) destroying said cache object in response to said request being completed.
3. The method of claim 1, wherein said first command calls for writing a value to said data store entry, wherein said step (b) includes the steps of:
(1) writing said value to said first entry in said cache object; and
(2) writing said value to said data store entry.
4. The method of claim 3, wherein a second command arising from said request calls for a query from said data store entry, wherein said method further includes the step of:
(d) retrieving said value from said first entry in said cache object.
5. The method of claim 1, wherein said thread of execution contains a thread local storage with a pointer to said cache object.
6. The method of claim 5, wherein said thread of execution exists in an Identity Server in communication with said data store.
7. The method of claim 6, wherein said data store is in communication with an Access Server.
8. The method of claim 1, further including the steps of:
(e) determining that said cache object does not contain an entry corresponding to said data store entry; and
(f) creating said first entry in said cache object.
9. The method of claim 1, wherein said cache object cannot be accessed in response to commands arising from requests other than said request assigned to said thread of execution.
10. The method of claim 1, wherein said cache is not updated in response to entries in said data store being changed in response to requests other than said request assigned to said thread of execution.
11. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method for caching data associated with entries in a data store accessed in response to a request assigned to a thread of execution, said method comprising the steps of:
(a) interpreting a first command arising from said request to call for access to a data store entry in said data store; and
(b) accessing a first entry in a cache object in response to said first command,
wherein said first entry corresponds to said data store entry,
wherein said cache object is associated with said thread of execution, and
wherein said cache object is only accessed in response to commands arising from requests assigned to said thread of execution.
12. One or more processor readable storage devices according to claim 11, wherein said method further includes the step of:
(c) destroying said cache object in response to said request being completed.
13. One or more processor readable storage devices according to claim 11, wherein said first command calls for writing a value to said data store entry, wherein said step (b) includes the steps of:
(1) writing said value to said first entry in said cache object; and
(2) writing said value to said data store entry.
14. One or more processor readable storage devices according to claim 13, wherein a second command arising from said request calls for a query from said first data store entry, wherein said method further includes the step of:
(d) retrieving said value from said first entry in said cache object.
15. One or more processor readable storage devices according to claim 11, wherein said thread of execution contains a thread local storage with a pointer to said cache object.
16. One or more processor readable storage devices according to claim 15, wherein said thread of execution exists in an Identity Server in communication with said data store, and wherein said data store is in communication with an Access Server.
17. One or more processor readable storage devices according to claim 11, wherein said method further includes the steps of:
(e) determining that said cache object does not contain an entry corresponding to said data store entry; and
(f) creating said first entry in said cache object.
18. One or more processor readable storage devices according to claim 11, wherein said cache object cannot be accessed in response to commands arising from requests other than said request assigned to said thread of execution.
19. One or more processor readable storage devices according to claim 11, wherein said cache is not updated in response to entries in said data store being changed in response to requests other than said request assigned to said thread of execution.
20. A system having a server in communication with a data store, said system comprising:
one or more communication interfaces;
one or more storage devices;
a thread local storage in said server, wherein said thread local storage is associated with a thread of execution on said server;
a cache object associated with said thread local storage; and
one or more processors in communication with said one or more storage devices and said one or more communication interfaces, wherein said one or more processors perform a method for caching data associated with entries in said data store accessed in response to a request assigned to said thread of execution, said method comprising the steps of:
(a) interpreting a first command arising from said request to call for access to a data store entry in said data store; and
(b) accessing a first entry in a cache object in response to said first command,
wherein said first entry corresponds to said data store entry,
wherein said cache object is associated with said thread of execution, and
wherein said cache object is only accessed in response to commands arising from requests assigned to said thread of execution.
21. The system of claim 20, further including the step of:
(c) destroying said cache object in response to said request being completed.
22. The system of claim 20, wherein said first command calls for writing a value to said data store entry, wherein said step (b) includes the steps of:
(1) writing said value to said first entry in said cache object; and
(2) writing said value to said data store entry.
23. The system of claim 22, wherein a second command arising from said request calls for a query from said first data store entry, wherein said method further includes the step of:
(d) retrieving said value from said first entry in said cache object.
24. The system of claim 20, wherein said thread of execution contains a thread local storage with a pointer to said cache object.
25. The system of claim 20, wherein said method further includes the steps of:
(e) determining that said cache object does not contain an entry corresponding to said first data store entry; and
(f) creating said first entry in said cache object.
26. The system of claim 20, further including:
a Web Server in communication with said server computer, wherein said server computer is an Identity Server; and
an Access System in communication with said Identity Server, wherein said Access System includes a Web Server in communication with an Access Server, wherein said Access Server is in communication with said data store.
27. The system of claim 20, wherein said cache object cannot be accessed in response to commands arising from requests other than said request assigned to said thread of execution.
28. The system of claim 20, wherein said cache is not updated in response to entries in said data store being changed in response to requests other than said request assigned to said thread of execution.
29. A method for caching data associated with entries in a data store accessed in response to a request assigned to a thread of execution, said method comprising the steps of:
(a) interpreting a first command arising from said request to call for access to a data store entry in said data store;
(b) accessing a first entry in a cache object in response to said first command,
wherein said first entry corresponds to said data store entry,
wherein said cache object is associated with said thread of execution,
wherein said thread of execution contains a thread local storage with a pointer to said cache object,
wherein said cache object is only accessed in response to commands arising from said request assigned to said thread of execution,
wherein said first command calls for writing a value to said data store entry, and
wherein said step (b) includes the steps of:
(1) writing said value to said first entry in said cache object, and
(2) writing said value to said data store entry;
(c) retrieving said value from said first entry in said cache object in response to a second command arising from said request, wherein said second command calls for a query from said data store entry; and
(d) destroying said cache object in response to said request being completed.
30. The method of claim 29, wherein said thread of execution exists in an Identity Server in communication with said data store, and said data store is in communication with an Access Server.
31. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method for caching data associated with entries in a data store accessed in response to a request assigned to a first thread of execution, said method comprising the steps of:
(a) interpreting a first command arising from said request to call for access to a data store entry in said data store;
(b) accessing a first entry in a cache object in response to said first command,
wherein said first entry corresponds to said data store entry,
wherein said cache object is associated with said thread of execution,
wherein said thread of execution contains a thread local storage with a pointer to said cache object,
wherein said cache object is only accessed in response to commands arising from requests assigned to said thread of execution,
wherein said first command calls for writing a value to said data store entry, and
wherein said step (b) includes the steps of:
(1) writing said value to said first entry in said cache object; and
(2) writing said value to said data store entry;
(c) retrieving said value from said first entry in said cache object in response to a second command arising from said request, wherein said second command calls for a query from said data store entry; and
(d) destroying said cache object in response to said request being completed.
32. One or more processor readable storage devices according to claim 31, wherein said thread of execution exists in an Identity Server in communication with said data store, and said data store is in communication with an Access Server.
33. A system having a server in communication with a data store, said system comprising:
one or more communication interfaces;
one or more storage devices;
a thread local storage in said server, wherein said thread local storage is associated with a thread of execution on said server;
a cache object associated with said thread local storage; and
one or more processors in communication with said one or more storage devices and said one or more communication interfaces, wherein said one or more processors perform a method for caching data associated with entries in said data store accessed in response to a request assigned to said thread of execution, said method comprising the steps of:
(a) interpreting a first command arising from said request to call for access to a data store entry in said data store;
(b) accessing a first entry in a cache object in response to said first command,
wherein said first entry corresponds to said data store entry,
wherein said cache object is associated with said thread of execution,
wherein said thread local storage contains a pointer to said cache object,
wherein said cache object is only accessed in response to commands arising from said request assigned to said thread of execution,
wherein said first command calls for writing a value to said data store entry, and
wherein said step (b) includes the steps of:
(1) writing said value to said first entry in said cache object, and
(2) writing said value to said data store entry;
(c) retrieving said value from said first entry in said cache object in response to a second command arising from said request, wherein said second command calls for a query from said data store entry; and
(d) destroying said cache object in response to said request being completed.
34. The system of claim 33, further including:
a Web Server in communication with said server computer, wherein said server computer is an Identity Server; and
an Access System in communication with said Identity Server, wherein said Access System includes a Web Server in communication with an Access Server, wherein said Access Server is in communication with said data store.