Method and system for managing resources for multi-service jobs based on location

A system and method generate and select an optimal job plan in response to a user's job request. The system may be implemented with an orchestrator that includes a user interface, a job plan generation manager, a job plan selector, and a job plan manager. The user interface communicates with a requesting user to receive a job request, user location and preference data, and provide a user with job plan status data. The job plan generator generates the permutations of job plans for implementing the requested job. The job plan selector computes the job plan scores for each of the generated job plans and selects the one that corresponds to the best score for some criterion. Data regarding the selected job plan may be provided to the user interface for communication to the user. The job plan manager supervises the service sites in accordance with the selected job plan and provides status information to the user interface for communication to the user.

FIELD OF THE INVENTION

The present invention relates generally to job management systems in a computer network, and more particularly, to systems for managing jobs that require multiple services available through a computer network.

BACKGROUND OF THE INVENTION

Computer communication networks enable multiple computers to communicate with one another to facilitate the exchange of information and to increase productivity. Such networks make a variety of computer services available to a user including databases, email, voicemail, scanners, and fax machines. Typically, a user is coupled to a network through a computer that is either a work station or a laptop. Increasingly, users are accessing computer communication networks through personal digital assistants (PDAs) and cellular telephones. These devices and laptop computers facilitate user mobility; however, they sometimes frustrate a user's ability to use a network efficiently.

One example of mobility impacting a user's effective use of service sites on a network occurs when a user travels from one local area network (LAN) to another LAN that the user may use. This type of mobility occurs when a user who may be typically stationed at a firm's home office travels to a branch location. Though the user may bring a PDA or laptop computer for coupling to the LAN at the branch, the user does not know what services sites are available through the branch network. Although authorized to access the branch LAN, the user does not know what service sites are coupled to the branch LAN, such as a scanner or shared printer, for example. Furthermore, the user does not know where any of the network service sites are located. Thus, even if the user is able to identify a service site and send a job to it, the user may not be able to find the service site to retrieve the finished product.

LANs may also be coupled together with a wide area network (WAN). In the scenario discussed above, the home office LAN and the branch LAN may be coupled together through a wide area network (WAN). The WAN may be the Internet or an enterprise operated WAN. Thus, a user coupled to the branch LAN may be able to access service sites coupled to the home office LAN through the WAN to obtain documents and other communications at the user's location on the branch LAN. Should the user need the information obtained from the home office LAN to be printed or formatted at the branch LAN for physical distribution at the branch office, the document needs to be routed to a service site, such as a printer, on the branch LAN. Only with the help of a branch LAN user who knows the locations of the available printers and the identifiers by which the printers are distinguished can the visiting user send the print job to the printer physically closest to the user's current location.

The visiting user's ability to employ effectively the resources on the branch LAN may be further frustrated by the lack of information regarding the capabilities of the resources on the branch LAN. For example, the visiting user may desire to print the documents in a color format, but may be unable to determine which of the printers, if any of them, on the branch LAN are color printers. The inability of mobile users to know where service devices are physically located for obtaining product from the devices and the lack of readily available knowledge regarding the capabilities of service devices on an unfamiliar network adversely impact effective utilization of a network.

In an effort to make some information regarding the identification of service sites available to users, directory entries may be available on the network or information may be posted in hard copy form at an access point for the network. However, such static information may quickly become dated and no longer accurately identify locations, capabilities, or the types of devices available at service sites. The topology and implementation of computer networks are fluid, both expanding and shrinking to accommodate new equipment and users as they are added and subtracted from the network.

SUMMARY OF THE INVENTION

The present invention addresses the need for assisting users in the exploitation of a network's resources by providing a method for selecting an optimal plan for implementing a user's job request for network services. The method includes receiving a job request and user location data, generating a plurality of plans to implement the job request, and selecting a generated job plan that best comports with the user location data. This method does not require the user to select the site services for performing a job nor does the user need to know his or her location and the relative locations of the services required to implement the job.

The method may also include managing performance of the job in accordance with the selected job plan. Status information regarding the performance of the job plan may be generated and provided to the user as job status data. The user location data may also include user preference data so that the method of the present invention delivers a product of the completed job to a location other than the one from which the user sent the job request.

The selection of a generated job plan includes weighting a distance value assigned to each service in a generated job plan and computing a job plan score for each generated job plan. The selected job plan has the best job plan score according to some criterion. In one embodiment of the present invention, the criterion is the shortest distance to the user and the distance value of the last service site is most heavily weighted in the computation of the job plan score.

The generation of job plans includes obtaining capability and location data for the services available on a computer network. The capability and location data may be obtained from a directory service or from locally stored system service configuration data. A directory service may be the system service that publishes all the system service configuration data. Alternatively, the method may include the communication of configuration data from the service sites so that the data may be locally stored or cached. Thereafter, the locally stored configuration data may be accessed for job plan generation. Periodically, the locally stored configuration data may be updated or it may be updated as part of any removal or installation of a service site device.

The method of the present invention may be performed with an orchestrator program that may execute on a network controller or server coupled to a computer network. The orchestrator may be comprised of system components and include a user interface, a job plan generator, a job plan selector, and a job plan manager. These components may be modules or data objects of an orchestrator program that are implemented in known computer programming languages. The user interface communicates with a requesting user to receive a job request, user location and preference data, and provide a user with job plan status data. The job plan generator generates the permutations of job plans for implementing the requested job. The job plan selector computes the job plan scores for each of the generated job plans and selects the one that corresponds to the best score for some criterion. Data regarding the selected job plan may be provided to the user interface for communication to the user. The job plan manager supervises the service sites in accordance with the selected job plan and provides status information to the user interface for communication to the user.

DETAILED DESCRIPTION

FIG. 1shows an example of a network10in which the principles of the present invention may be implemented. Network10includes network devices14and a network controller18. The network devices14may be user devices that access the network10for communication with other user devices or to request jobs requiring multiple services to be completed from network controller18. Such devices include personal computers, document scanners, personal digital assistants (PDAs), and the like. A document imaging device, such as a scanner, may also be coupled to the network10through a network device14. Service sites20are also coupled to the network10. Service sites20provide data or document services to network devices. Service sites20include email servers, voicemail servers, document reproductions systems, fax machines, and the like. The network devices14, service sites20, and the network controller18communicate in a peer-to-peer relationship.

Using like numerals to identify like components, another example of a network24in which the principles of the present invention may be implemented is shown inFIG. 2. The network24includes network devices14, a server28, and service sites20. The server28performs the functions of the network controller18as well as those functions typically performed by a server in a server/client network. The network devices14and the service sites20communicate with the server28in a server/client relationship. The server20may also be coupled to a common gateway interface for access to other networks and devices.

A depiction of the data flow that may be used to implement a system and method of the present invention is shown inFIG. 3. In the figure, data are communicated between a user requesting service30and a location-aware orchestrator34. The user requesting service30may be a user application program on a user network device14. The location-aware orchestrator34is a supervisory program that executes on the network controller18or the server28. User preferences36are data regarding a user and possible locations. For example, the user preference data may include a reference to a user email address at a particular office so that the orchestrator34can determine that a completed job should be sent by email to the address regardless of where the user was located when the job request was submitted. Another type of user preference may reference a calendar program so that the orchestrator34may determine where the user will be located when a job is completed and route the finished product accordingly. These preference data may be stored on the device executing the user service requesting program or another enterprise wide data server. The services381to38Nare programs that execute on a device at a service site20to perform all or part of a service supported by the service site.

According toFIG. 3, the user submits a job request to the location-aware orchestrator34(path1). The orchestrator34determines the user's physical location (path2). The location data may be obtained through an electronic device, such as a GPS locator that is part of the network device14, or a manual interactive method, such as a data object sent to the network device14and executed by the user requesting application. The current user location data may also be supplemented by user preference data, if the user wants the finished product delivered somewhere other than the user's current location. The orchestrator34determines potential plans for implementing the requested job with the capabilities available at the service sites20(path3). The orchestrator34selects an optimal plan based on the location of the user (path4). The method for determining which plan is optimal with respect to location is presented more fully below. The orchestrator34manages the execution of the selected plan by distributing the appropriate service requests at the correct times (path5). The orchestrator34communicates the status of the job to the user based on the user's location and, possibly, the user preferences (path6).

As shown inFIG. 4, the orchestrator34receives a job request (block100) and determines the services required for implementing a job request (block104). The orchestrator34obtains user location data and preference data, if any (block108). Based upon the user current address or an indicated preference for delivery of the finished product, a distance is assigned to a service (block110). The orchestrator34generates a plurality of job plans, each one comprised of a set of services sites for support services that are required to implement the requested job (block114). A job score is computed for a job plan (block118) and the process determines whether job scores need to be computed for other job plans (block120). Preferably, the distance value for each service in a job plan is weighted and the services used for finishing a job plan are more heavily weighted so those that are more closely located to the delivery site for the finished job are favored. The job plan corresponding to the best job plan score is selected for performing the requested job (block124).

For example, the table shown inFIG. 5depicts two plans, each of which consists of three services to implement a requested job. Although the total distance score for the two plans is the same, the weighted score favors the second plan, P2. The weighting scheme depicted inFIG. 5favors the plan having the last service for implementing the requested job at the shortest distance from the user's requesting location. This type of weighting scheme may be preferred for jobs that produce physical output, such as a printed document, and the user wants to travel the shortest distance to obtain the output. Another weighting scheme may favor an output device having a higher throughput so that less time is required for printing the document. Of course, other weighting schemes may be developed without departing from the principles of the present invention.

The orchestrator34may be comprised of system components, such as shown inFIG. 6. There, orchestrator34includes a user interface60, a job plan generator64, a job plan selector68, and a job plan manager70. These components may be modules or data objects of an orchestrator program that are implemented in known computer programming languages. The user interface60communicates with a requesting user to receive a job request, user location and preference data, and provide a user with job plan status data. The job plan generator64generates the permutations of job plans for implementing the requested job. The job plan selector68computes the job plan scores for each of the generated job plans and selects the one that corresponds to the best score for some criterion. Data regarding the selected job plan may be provided to the user interface60for communication to the user. The job plan manager supervises the service sites in accordance with the selected job plan and provides status information to the user interface60for communication to the user.

The orchestrator34may obtain data regarding the services available for performing jobs from either a directory service or by locally associating a store of such information with the orchestrator. For example, the directory service may be the system service that publishes all the system service configuration data. Orchestrator34may communicate with the directory service to obtain relevant data regarding service capabilities. Another method is to have the services provide their configuration data to the orchestrator so that the data may be locally stored or cached. The orchestrator may then access local memory to ascertain the available services, their capabilities, and their locations.

While the present invention has been illustrated by the description of exemplary processes and system components, and while the various processes and components have been described in considerable detail, applicant does not intend to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will also readily appear to those skilled in the art. The invention in its broadest aspects is therefore not limited to the specific details, implementations, or illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the spirit or scope of applicant's general inventive concept.