Source: http://www.google.com/patents/US7197749?ie=ISO-8859-1&dq=7,346,539
Timestamp: 2015-04-19 03:23:37
Document Index: 785265361

Matched Legal Cases: ['art 108', 'art 108', 'art 108', 'art 110', 'art 110', 'art 108', 'art 112', 'art 112', 'art 112', 'art 112', 'art 108', 'art 110', 'art 126', 'art 108', 'art 126', 'art 210', 'art 108', 'art 210', 'art 210', 'art 218', 'art 120', 'art 108', 'art 112', 'art 108', 'art 108', 'art 108', 'art 108', 'art 110', 'art 108']

Patent US7197749 - Method and system for executing batch jobs by delegating work to independent ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA job management apparatus for use in a batch job execution system is provided. The job management apparatus includes a client communications part which receives a batch job from a client, an extracting part which extracts a task from the batch job, and an assigning part which receives signals from the...http://www.google.com/patents/US7197749?utm_source=gb-gplus-sharePatent US7197749 - Method and system for executing batch jobs by delegating work to independent service providersAdvanced Patent SearchPublication numberUS7197749 B2Publication typeGrantApplication numberUS 09/740,076Publication dateMar 27, 2007Filing dateDec 19, 2000Priority dateDec 19, 2000Fee statusPaidAlso published asEP1217521A2, EP1217521A3, US20020078130Publication number09740076, 740076, US 7197749 B2, US 7197749B2, US-B2-7197749, US7197749 B2, US7197749B2InventorsJames D. Thornton, Richard R. BurtonOriginal AssigneeXerox CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (22), Non-Patent Citations (4), Referenced by (27), Classifications (9), Legal Events (5) External Links: USPTO, USPTO Assignment, EspacenetMethod and system for executing batch jobs by delegating work to independent service providers
U.S. patent application Ser. No. 09/740,487, filed on Dec. 19, 2000 by Michelle Q. Wang Baldonado, Richard R. Burton, Steve B. Cousins, Kenneth A. Pier, and James D. Thornton, entitled a �SYSTEM FOR CREATING EFFICIENT MULTI-STEP DOCUMENT CONVERSION SERVICES.�
Users of modern day computer systems and networks are imposing increasing demands on such systems to perform wider varieties and larger quantities of work. Because of these demands, it is becoming important to structure the work of a job in some organized form for processing. A �batch job� is one organized form in which work may be structured. A batch job may be any combination or grouping of files, documents or other information that work is to be performed on. The work is generally divided into a predefined series of tasks for processing.
Batch jobs are to be contrasted with actions or commands in interactive applications which often require only a single function or key stroke to complete the entire job. For example, a �cut� or �paste� technique provided by a word processor program is one such command. Immediate feedback is possible with commands like cut or paste. After a user selects some text in a document, the cut operation is performed by a single press of a mouse button or function key on a computer keyboard. The user can immediately see the change to the document he is editing.
FIG. 1 is a batch job execution system 100, according to an embodiment of the present invention. Batch job execution system 100 communicates with a plurality of clients 102 a�102 c. Batch job execution system 100 receives batch jobs from clients 102 a�102 c and performs the jobs for these clients. Batch job execution system 100 is compatible with a broad range of clients. For example, in FIG. 1, client 102 a is a World Wide Web (�web�) server, client 102 b is a facsimile transmission (�fax�) server, and client 102 c is some other type of server. Clients 102 a�102 c each have interfaces for communication with users. For example, web server 102 a has a graphical user comprising a set of a web pages. The web pages are uniquely identifiable by Uniform Resource Locators (�URL�), so server 102 a is easily accessible by a user operating a personal computer with a modern and Internet access software. Similarly, fax server 102 b has a user interface to communicate with a user operating a personal computer or fax machine.
In FIG. 1, batch job execution system 100 includes a job management apparatus 104 which is responsible for communicating with clients 102 a�102 c and managing the execution of batch jobs submitted by the clients. This includes delegating tasks to a plurality of independent service providers 106 a�106 c, and monitoring the progress of independent service providers 106 a�106 c in performing the tasks.
In FIG. 1, job management apparatus 104 includes an assigning part 108 which communicates with the service providers 106 a�106 c. Assigning part 108 receives request_work signals from service providers 106 a�106 c and responds as described below. Other embodiments of job management apparatus 104 include additional assigning parts which are on the same or different servers from assigning part 108.
In FIG. 1, job management apparatus 104 further includes a contact part 110 to which the various service providers 106 a�106 c send signals to report on the status of work in progress. In other embodiments, additional contact parts are employed, some or all of which are on different servers than contact part 110. When additional contact parts are incorporated, each time a unit of work is delegated to a particular service provider, assigning part 108 identifies a specific contact part to which report messages should be sent in a response signal to the request for work.
In FIG. 1, job management apparatus 104 of batch job execution system 100 includes a client communications part 112 as an interface for communications with clients 102 a�102 c. Client communications part 112 receives batch jobs, requests, documents and other information from clients 102 a�102 c and sends signals to clients 102 a�102 c indicating the progress of a batch job
In FIG. 1, batch job execution system 100 includes a job database 114. When a batch job is received from one of clients 102 a�102 c by client communications part 112, the job is stored in job database 114. The batch job stored in job database 114 includes various types of information and parameters including references to particular documents, the status of jobs, names and other information identifying clients 102 a�102 c, and options for performing jobs. The information stored in job database 114 is regularly updated as existing jobs are executed by batch job execution system 100 and new jobs are received. The presence of job database 114 is desirable to maintain a persistent and reliable record of the jobs as they are executed by job execution system 100. Other useful information may be stored within job database 114, as will be appreciated by the skilled artisan.
In FIG. 1, a repository 116 is also provided. The repository 116 is a database built on a file system or other suitable storage medium. The repository 116 may be situated on either the same computer or on a different computer than batch job execution system 100. Documents and other various files are stored in repository 116. When documents and files are submitted with a batch job by clients 102 a�102 c, these documents and files are stored in repository 116. Batch jobs, received by client communications part 112 from clients 102 a�102 c, often include information identifying one or more of the documents stored in repository 116. In one example, this information is a path name identifying the location of a particular document within the hierarchy of repository 116. When job management apparatus 104 manages the execution of various batch jobs, these jobs may use some of the same documents in repository 116 for processing, and may create new documents in repository 116.
In FIG. 1, independent service providers 106 a�106 c communicate with assigning part 108 and contact part 110 of job management apparatus 104. In the present embodiment, service providers 106 a�106 c all provide the same service, namely �Service X.� In this way, service providers can be easily added and removed, and provider manager 124 can easily manage its various service providers.
In FIG. 1, service providers 106 a�106 c operate independent from one another and from job execution system 100. Service providers may �start� or �stop� operations without any involvement from job execution system 100. Thus, operation of job execution system 100 is simplified. That is, the job execution system need not determine when a particular service provider is available to perform work, or otherwise attempt to �push� tasks to the service providers. Nor does the job execution system need to monitor the service providers as they perform the tasks delegated by the job execution system.
In FIG. 1, the various service providers 106 a�106 c are operating on different machines or computers while communicating with the job management apparatus 104 which operates on another machine. In another embodiment, job management apparatus 104 and service providers 106 a�106 c operate on the same machine, such as an Internet server. In different embodiments, various data networks are used to provide the connection between the service providers 106 a�106 c and job management apparatus 104, such as private networks and public networks like the Internet. In other embodiments, data networks including local area networks, frame relay networks, and ATM networks are used.
In FIG. 1, a provider manager 124 is associated with the service providers 106 a�106 c. The provider manager 124 functions as a communications link between job management apparatus 104 and the service providers 106 a�106 c. In one embodiment, provider manager 124 is implemented on the same server as job management apparatus 104. In other embodiments, provider manager 124 is on the same server as one or more of service providers 106 a�106 c, or on a different server. The job management apparatus 104 instructs provider manager 124 as to which assigning part the service providers 106 a�106 c are to communicate with. In an embodiment, additional assigning parts may be implemented as part of the batch job execution system 100.
In FIG. 1, job management apparatus 104 sends control messages to provider manager 124 using provider communications part 126. For example, provider manager 124 can receive an �increase_capacity� signal from job management apparatus 104 indicating a backlog of work in the system. This condition arises when the rate at which service providers 106 a�106 c are sending request_work signals is slower than the rate at which tasks are being queued in queue 122, or when the number of jobs stored in job database 114 exceeds a certain threshold. Provider manager 124 may then contact other service providers to arrange to have some of the backlog work done. In other embodiments, provider manager 124 is in communication with other provider managers and essentially �drives� these managers. That is, provider manager 124 is configured to send signals to these other provider managers instructing them to have their associated service providers send request_work signals to assigning part 108.
If an increase_capacity signal is received from job management apparatus 104, provider manager 124 responds with a signal indicating that provider manager 124 is already operating at full capacity. In an embodiment, service providers 106 a�106 c may send control messages to provider manager 124. For example, a service provider may send provider manager 124 a signal indicating that it is operating at full capacity.
In alternative embodiments, provider manager 124 is used to stop the service providers from performing the tasks associated with a batch job. For example, after provider manager 124 has distributed tasks associated with a particular batch job to service providers 106 a�106 c, the user may signal web server 102 a that he does not want the job done after all. This information is communicated through provider communications part 126 to provider manager 124 which signals service providers 106 a�106 c to stop working. Such is advantageous especially when the tasks involved are computationally complex and, therefore, time consuming. Service providers 106 a�106 c are immediately available to start working on tasks associated with other batch jobs.
In FIG. 1, provider manager 124 is identified in a registry 128 with other provider managers and indexed by a unique address. In some embodiments, Service X, the service provided by provider manager 124, is also provided by other provider managers identified in registry 128. In other embodiments, provider manager 124 is the only provider manager having associated service providers 106 a�106 c which offer Service X. In one embodiment, the registry is integrated with the job execution system, while in other embodiments, the registry is maintained by some external service. A provider manager registers by supplying its address, information describing the function it provides and, in some embodiments, other related information about the service providers associated with it. In other embodiments, the registry includes other information such as parameters used by the various service providers associated with the respective provider managers.
FIG. 2 is a generalized block diagram of a batch job execution system 200 constructed according to another embodiment of the present invention. Job execution system 200 is similar to job execution system 100 in some respects, but system 200 is different due to the number �N� of various services provided, as well as the configuration of service providers. The N services are different from one another, providing a broad range of services so job execution system 200 can service many different batch jobs.
In FIG. 2, a job management apparatus 204 includes an assigning part 210 which functions similar to assigning part 108 of FIG. 1. A first plurality of service providers 206 a�206 c are associated with Service A, a second plurality of service providers 208 a�208 c are associated with Service B, and so on. Service providers 206 a�206 c provide identical functions. Thus, it is more likely that at least one of service providers 206 a�206 c will be sending request_work signals to assigning part 210 at any given time. In this way, assigning part 210 can immediately delegate tasks queued in queue 122 to the requesting service provider, reducing the likelihood of a backlog of work developing.
In FIG. 2, some of the service providers operate on different machines from one another. This is because job execution system 200 imposes no constraints on the nature of service providers which can request work from job execution system 200. Batch job execution system supports a variety of service providers. In one example, service provider 206 a operates on a UNIX machine, and service provider 206 b operates on a Windows NT machine. In another example, service providers 206 a�206 c operate on the UNIX machine, and service providers 208 a�208 c all operate on the Windows NT machine. In yet another example, service provider 208 a operates on the same machine as service provider 206 a, service provider 208 b operates on the same machine as service provider 206 b, and so on.
In FIG. 2, a first provider manager 214 is associated with service providers 206 a�206 c, and a second provider manager 216 is associated with service providers 208 a�208 c. Each provider manager functions similar to provider manager 124 in FIG. 1 in managing communications between the respective service providers and provider communications part 218. As with the provider manager 124 of FIG. 1, provider managers 214, and 216 in system 200 are also identified in a registry.
In one example of FIG. 3, subcontractor 304 is a �print shop� which provides a printing service for documents sent to service provider 302. In another example, subcontractor 304 is a translator which translates the document from one language to another. Service provider 302 receives documents for translation from the job management apparatus and sends the documents to the subcontractor 304 for translation by human translators. After translation, subcontractor 304 sends the translated documents to some designated recipient, or sends the translated documents back to service provider 302 which may report these results to a user.
The method illustrated in FIG. 4 is described with reference to batch job execution system 100 of FIG. 1. In step 402, a user submits a job to one of clients 102 a�102 c. The user also submits any processing parameters needed by the job management apparatus to perform the job.
In step 412 of FIG. 4, one or more tasks are extracted by extracting part 120 from the batch job. In an embodiment, the tasks are identified using a program transmitted by the client to job management apparatus 104 with the batch job. The program contains sets of definitions or �steps� which identify the particular services required to complete the tasks of the batch job. The program contains references to documents and other files stored in repository 116 on which services are to be performed, as well as other input parameters for processing. The program may be one of a library of programs maintained on some suitable storage medium accessible by job management apparatus 104. The user requests a particular program from the library when he submits the batch job and sends any parameters needed for the program to function properly.
In step 414 of FIG. 4, the extracted tasks are queued in queue 122. In step 416, assigning part 108 determines whether there are any existing tasks in queue 122 that have not been executed. If there are outstanding tasks, in step 418, the batch job is ultimately completed by executing the tasks stored in queue 122. Each task is executed by delegating the task to an independent service provider upon receiving a request for work from the independent service provider. In this way, minimal information is exchanged between job management apparatus 104 and the service providers, and maximal independence of the service providers is preserved. In step 418, as the batch job is executed, status information regarding the batch job, stored in job database 114, is updated. In some embodiments, this information is made available to the clients 102 a�102 c so the user can monitor the status of the job as it is executed.
In step 416 of FIG. 4, if there are no outstanding tasks queued in queue 122, this indicates that all of the tasks of the batch job have been completed, as shown in step 420. Status information regarding the batch job is updated to reflect that the job has been completed, in step 422. In some embodiments, client communications part 112 then sends a signal to clients 102 a�102 c indicating that the job is complete and communicates any additional information regarding the executed batch job in which the user may be interested, for example, the time of completion, cost, delivery information and other information. In other embodiments, the user requests information regarding the executed batch job from the system through clients 102 a�102 c. In step 424, this information is reported to the clients 102 a�102 c which may in turn report to the user.
FIG. 5 is a generalized flow diagram illustrating a method of delegating tasks of a batch job for execution by service providers according to an embodiment of the present invention. The method illustrated in FIG. 5 is described with reference to batch job execution system 100 of FIG. 1. In step 502 of FIG. 5, a service provider requests work by sending a request_work signal to assigning part 108 of job management apparatus 104. Generally the service provider sends the request_work signal only when that service provider is available to perform work. In this way, the job execution system need not �start� a service provider or some other software or hardware to force the service provider to perform the tasks needed to complete the job. This improves the efficiency of job execution system 100, as job management apparatus 104 does not need any information that would otherwise be required to drive the service providers. This, in turn, maximizes the independence of job management apparatus 104 because there are no constraints on the types of service providers which may be used and interchanged with one another.
Later, when a task capable of being performed by the requesting service provider is queued in queue 122, in step 514, assigning part 108 sends a �work_available� signal to provider manager 124 indicating that a task, appropriate for the particular service provider which received the idle_assignment signal, is queued in queue 122. The provider manager then signals the service provider which received the idle_assignment signal that work is available. If the service provider is ready, the service provider resumes sending request_work messages to assigning part 108. The idle_assignment feature reduces the time and costs associated with the service provider repeatedly sending request_work messages to a job management apparatus having no tasks available to delegate.
Some exemplary service providers used with batch job execution systems constructed according to an embodiment of the present invention have the ability to adjust their capacities, such as by changing the number of people on duty to provide a particular function. When a backlog condition arises, as described above, job management apparatus 104 sends an �increase_capacity� signal to provider manager 124 indicating that a backlog is developing and specifying the size of the backlog. The increase_capacity signal also identifies a particular assigning part 108 to which request_work signals should be sent. Provider managers then respond by taking the necessary steps to increase their capacity, such as increasing the number of service providers running simultaneously. Some provider managers simply reply with an indication that capacity cannot be increased.
A service provider to which a task has been assigned may fail to complete the task. Such may occur, for example, if the machine on which the service provider is operating shuts down. In this situation, the service provider preferably sends a �task_incomplete� signal to contact part 110 of the job execution system Assigning part 108 of job management apparatus 104 then redistributes the task, which the particular service provider failed to complete, to another service provider upon request.
In one example, an �abort_assignment� signal is sent by the provider communications part to the provider manager when work in progress should be stopped. The abort_assignment signal includes information identifying the particular task involved and the name of the service provider that received the assignment. The assigning part of the job management apparatus then redistributes the task which the particular service provider failed to complete to a different service provider, upon request from the different service provider.
In another example, when no status_report signal has been received from a particular service provider by the contact part for some predetermined period of time, the provider communications part sends a �report_now� signal to the provider manager to request an immediate report. When no status report is received after the report_now signal is sent, the job management apparatus redistributes the task to a different service provider upon request. The provider communications part then sends a �provider_abandoned� signal to the provider manager indicating that the job management apparatus has assigned the work elsewhere, so the service provider can stop working on the assignment. In some embodiments, no new assignments will be given to the service provider which failed to provide the status report.
The following examples refer to the systems shown in FIGS. 1 and 3 by way of illustration. In these examples, a user has Internet access software operating on a personal computer. In one embodiment, the user simply dials the number of a local Internet service provider over a public switched telephone network (�PSTN�) using a modern A communications path is established over the PSTN between the personal computer with the Internet service provider. In another embodiment, the user has a direct connection to the Internet. The user then accesses web server 102 a through the Internet service provider.
Upon accessing web server 102 a, the user then transmits or �uploads� a number of computer files or documents to web server 102 a using a file upload function of his Internet access software. The user then specifies parameters for breaking the batch job into individual tasks and processing the batch job. These parameters may be transmitted with the batch job, although the parameters are preferably transmitted independently via an interface such as a web page. After delivering the file to web server 102 a, the user does not need to concern himself with the management and execution of the batch job.
Referring to FIG. 2, service providers 206 a�206 c, operating on Windows NT machines, provide spell check and grammar check applications. Service providers 208 a�208 c provide document format conversion services, also using software applications operating on Windows NT machines. A third group of service providers cooperates with a print shop subcontractor 304, as shown in FIG. 3, for printing and delivery services.
In a second example, service providers 206 a�206 c provide electronic document format conversion from Microsoft Word to Corel WordPerfect. Service providers 208 a�208 c include human translators who translate documents from English to French and corrects style as needed. A third group of service providers are print shops which handle printing and delivery of letters.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5581691Aug 18, 1995Dec 3, 1996Digital Equipment CorporationWork flow management system and methodUS5781711Aug 12, 1997Jul 14, 1998Xerox CorporationDocument server for processing a distribution job in a document processing systemUS5937388Mar 21, 1997Aug 10, 1999Hewlett-Packard CompanySystem and method for performing scalable distribution of process flow activities in a distributed workflow management systemUS5974462 *Mar 28, 1997Oct 26, 1999International Business Machines CorporationMethod and apparatus for controlling the number of servers in a client/server systemUS6009455Apr 20, 1998Dec 28, 1999Doyle; John F.Distributed computation utilizing idle networked computersUS6112225 *Mar 30, 1998Aug 29, 2000International Business Machines CorporationTask distribution processing system and the method for subscribing computers to perform computing tasks during idle timeUS6112243Dec 30, 1996Aug 29, 2000Intel CorporationMethod and apparatus for allocating tasks to remote networked processorsUS6125390Aug 25, 1997Sep 26, 2000Intel CorporationMethod and apparatus for monitoring and controlling in a networkUS6230183 *Mar 11, 1998May 8, 2001International Business Machines CorporationMethod and apparatus for controlling the number of servers in a multisystem clusterUS6549936 *Apr 21, 2000Apr 15, 2003Hitachi, Ltd.Method and system for transferring a job between two computers submitted as a request containing a plurality of scripts to be executedUS6598067Jul 26, 1999Jul 22, 2003American Management Systems, Inc.Application server frameworkUS6632251Dec 30, 1998Oct 14, 2003Polydoc N.V.Document producing support systemUS6711616 *May 1, 2000Mar 23, 2004Xilinx, Inc.Client-server task distribution system and methodUS6757730 *May 31, 2000Jun 29, 2004Datasynapse, Inc.Method, apparatus and articles-of-manufacture for network-based distributed computingUS6826753 *Oct 7, 1999Nov 30, 2004Oracle International CorporationManaging parallel execution of work granules according to their affinityUS7003547 *Mar 30, 2000Feb 21, 2006United Devices, Inc.Distributed parallel processing system having capability-based incentives and associated methodEP0942363A2Feb 22, 1999Sep 15, 1999International Business Machines CorporationMethod and apparatus for controlling the number of servers in a multisystem clusterJP2003296125A * Title not availableJPH0659913A * Title not availableJPH0895810A * Title not availableJPH0916521A * Title not availableJPH08286778A * Title not available* Cited by examinerNon-Patent CitationsReference1"DocuPrint 1.5 Job Pool Manager API Programming Guide and Reference," Xerox Corporation, Feb. 3, 1998.2"DocuPrint NPS 7.0 Job Pool Manager Application Programming Interface Programming Guide and Reference," Xerox Corporation, El Segundo, California, Nov. 1999.3"LSF Batch User's Guide," XP-002336279, 6<SUP>th </SUP>ed., Platform Computing Corporation (Aug. 1998).4Fischer, M., "Parallelstrategie," CT Magazin Fuer Computer Technik, Verlag Heinz Heise GMBH., Hannover, DE, No. 9, Apr. 26, 1999, pp. 148-151, XP000823045, ISSN: 0724-8679.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS7318222 *Aug 27, 2003Jan 8, 2008Sun Microsystems, Inc.Methods for execution control acquistion of a program and for executing an optimized version of a programUS7519239 *Feb 11, 2004Apr 14, 2009The Code CorporationSystems and methods for concurrent image capture and decoding of graphical codesUS7774435 *Feb 15, 2002Aug 10, 2010Oracle America, Inc.System and method for batch tuning intelligent devicesUS7912893 *Oct 25, 2006Mar 22, 2011Sony CorporationSystem, method, and computer program product for media publishing request processingUS7945041 *May 27, 2005May 17, 2011International Business Machines CorporationMethod, system and program product for managing a customer requestUS8037122 *Feb 18, 2009Oct 11, 2011Oracle International CorporationProcessing of service-oriented tasks within a grid computing environmentUS8245229Sep 30, 2008Aug 14, 2012Microsoft CorporationTemporal batching of I/O jobsUS8266624 *Nov 30, 2006Sep 11, 2012Red Hat, Inc.Task dispatch utility coordinating the execution of tasks on different computersUS8341014Dec 28, 2007Dec 25, 2012International Business Machines CorporationRecovery segments for computer business applicationsUS8346931Dec 28, 2007Jan 1, 2013International Business Machines CorporationConditional computer runtime control of an information technology environment based on pairing constructsUS8346995Sep 30, 2008Jan 1, 2013Microsoft CorporationBalancing usage of hardware devices among clientsUS8365185Dec 28, 2007Jan 29, 2013International Business Machines CorporationPreventing execution of processes responsive to changes in the environmentUS8375244Dec 28, 2007Feb 12, 2013International Business Machines CorporationManaging processing of a computing environment during failures of the environmentUS8428983Dec 28, 2007Apr 23, 2013International Business Machines CorporationFacilitating availability of information technology resources based on pattern system environmentsUS8447859Dec 28, 2007May 21, 2013International Business Machines CorporationAdaptive business resiliency computer system for information technology environmentsUS8549536 *Nov 30, 2009Oct 1, 2013Autonomy, Inc.Performing a workflow having a set of dependancy-related predefined activities on a plurality of task serversUS8645592Oct 30, 2012Feb 4, 2014Microsoft CorporationBalancing usage of hardware devices among clientsUS8677174Dec 28, 2007Mar 18, 2014International Business Machines CorporationManagement of runtime events in a computer environment using a containment regionUS8682705Dec 28, 2007Mar 25, 2014International Business Machines CorporationInformation technology management based on computer dynamically adjusted discrete phases of event correlationUS8751283Dec 28, 2007Jun 10, 2014International Business Machines CorporationDefining and using templates in configuring information technology environmentsUS8763006Dec 28, 2007Jun 24, 2014International Business Machines CorporationDynamic generation of processes in computing environmentsUS8775591Dec 22, 2010Jul 8, 2014International Business Machines CorporationReal-time information technology environmentsUS8782662Dec 28, 2007Jul 15, 2014International Business Machines CorporationAdaptive computer sequencing of actionsUS8788575Apr 30, 2010Jul 22, 2014Sony CorporationSystem, method, and computer program product for media publishing request processingUS8826077Dec 28, 2007Sep 2, 2014International Business Machines CorporationDefining a computer recovery process that matches the scope of outage including determining a root cause and performing escalated recovery operationsUS8868441Dec 28, 2007Oct 21, 2014International Business Machines CorporationNon-disruptively changing a computing environmentUS20110131448 *Nov 30, 2009Jun 2, 2011Iron Mountain, IncorporatedPerforming a workflow having a set of dependancy-related predefined activities on a plurality of task servers* Cited by examinerClassifications U.S. Classification718/101, 718/104, 709/201International ClassificationG06F9/50, G06F9/46, G06F15/16Cooperative ClassificationG06F2209/509, G06F9/5055European ClassificationG06F9/50A6SLegal EventsDateCodeEventDescriptionAug 18, 2014FPAYFee paymentYear of fee payment: 8Jul 20, 2010FPAYFee paymentYear of fee payment: 4Oct 31, 2003ASAssignmentOwner name: JPMORGAN CHASE BANK, AS COLLATERAL AGENT, TEXASFree format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;REEL/FRAME:015134/0476Effective date: 20030625Owner name: JPMORGAN CHASE BANK, AS COLLATERAL AGENT,TEXASFree format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100216;REEL/FRAME:15134/476Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100402;REEL/FRAME:15134/476Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100413;REEL/FRAME:15134/476Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100420;REEL/FRAME:15134/476Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100504;REEL/FRAME:15134/476Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100518;REEL/FRAME:15134/476Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;REEL/FRAME:15134/476Jul 30, 2002ASAssignmentOwner name: BANK ONE, NA, AS ADMINISTRATIVE AGENT, ILLINOISFree format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;REEL/FRAME:013111/0001Effective date: 20020621Owner name: BANK ONE, NA, AS ADMINISTRATIVE AGENT,ILLINOISFree format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100216;REEL/FRAME:13111/1Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100413;REEL/FRAME:13111/1Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100420;REEL/FRAME:13111/1Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;US-ASSIGNMENT DATABASE UPDATED:20100518;REEL/FRAME:13111/1Free format text: SECURITY AGREEMENT;ASSIGNOR:XEROX CORPORATION;REEL/FRAME:13111/1Dec 19, 2000ASAssignmentOwner name: XEROX CORPORATION, CONNECTICUTFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:THORNTON, JAMES D.;BURTON, RICHARD R.;REEL/FRAME:011391/0787Effective date: 20001206RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services