U.S. patent application number 10/156443 was filed with the patent office on 2003-12-04 for method and implementation for message-driven job processing.
Invention is credited to Seifi, Mustafa.
Application Number | 20030223090 10/156443 |
Document ID | / |
Family ID | 29586319 |
Filed Date | 2003-12-04 |
United States Patent
Application |
20030223090 |
Kind Code |
A1 |
Seifi, Mustafa |
December 4, 2003 |
Method and implementation for message-driven job processing
Abstract
A method and implementation for job managing is disclosed which
enables the creating of a job in a client system and sending a job
creation instruction message to a job manager to notify that a new
job has entered a processing queue. At least one processing message
is sent from the job manager to at least one respective component.
A first job state change message is sent from the respective
component to the job manager to notify the job manager when the
component begins to process a given job. A second job state change
message is sent to the job manager from the component to notify the
job manager when the component is done processing the given
job.
Inventors: |
Seifi, Mustafa; (Irvine,
CA) |
Correspondence
Address: |
TUCKER, ELLIS & WEST LLP
1150 HUNTINGTON BUILDING
925 EUCLID AVENUE
CLEVELAND
OH
44115-1475
US
|
Family ID: |
29586319 |
Appl. No.: |
10/156443 |
Filed: |
May 28, 2002 |
Current U.S.
Class: |
358/1.15 |
Current CPC
Class: |
G06F 9/4843 20130101;
Y10S 707/959 20130101; Y10S 707/99945 20130101; H04N 1/00915
20130101; H04N 1/00954 20130101; Y10S 707/99931 20130101; Y10S
707/99944 20130101; G06F 3/1211 20130101; H04N 1/32502 20130101;
H04N 1/32529 20130101; Y10S 707/954 20130101; G06F 9/546 20130101;
Y10S 707/915 20130101; G06F 3/126 20130101; G06F 3/1285
20130101 |
Class at
Publication: |
358/1.15 |
International
Class: |
B41J 001/00; G06F
015/00 |
Claims
I claim:
1. A method for job managing comprising: creating a job in a client
system, sending a job creation instruction message to a job manager
to notify that a new job has entered a processing queue; sending at
least one processing message from the job manager to at least one
respective component; sending a first job state change message from
the respective component to the job manager to notify the job
manager when the component begins to process a given job; sending a
second job state change message to the job manager from the
component to notify the job manager when the component is done
processing the given job.
2. The method of claim 1 wherein receipt of one of a job creation
message and a job state change message by the job manager will
cause the job manager to process all the jobs in the queue.
3. The method of claim 1 wherein if processing of the job is
interrupted, an "interrupt" message is sent from the component to
the job manager, who then reports the interruption to one of a user
and a system administrator.
4. The method of claim 1 wherein, upon receipt of a message with a
configurable interval of time (T), the job manager will process any
jobs in the queue if the current time (CT) minus T is greater than
the last time (LT) when the job manager received a "job create" or
a "state change" message such that ((CT-T)>LT).
5. The method of claim 1 wherein the job is a printing job and the
respective component for completing the job is a network
printer.
6. The method of claim 1 wherein a respective component is assigned
to process jobs in the queue for each respective client.
7. The method of claim 1 wherein the messages are sent and received
using any type of conventional messaging system.
8. A job manager comprising: an implementation for creating a job
in a client system, an implementation for sending a job creation
instruction message to a job manager to notify that a new job has
entered a processing queue; an implementation for sending at least
one processing message from the job manager to at least one
respective component; an implementation for sending a first job
state change message from the respective component to the job
manager to notify the job manager when the component begins to
process a given job; an implementation for sending a second job
state change message to the job manager from the component to
notify the job manager when the component is done processing the
given job.
9. The job manager of claim 8 further comprising an implementation
wherein receipt of one of a job creation message and a job state
change message by the job manager will cause the job manager to
process all the jobs in the queue.
10. The job manager of claim 8 further comprising an implementation
wherein if processing of the job is interrupted, an "interrupt"
message is sent from the component to the job manager, who then
reports the interruption to one of a user and a system
administrator.
11. The job manager of claim 8 further comprising an implementation
wherein, upon receipt of a message with a configurable interval of
time (T), the job manager will process any jobs in the queue if the
current time (CT) minus T is greater than the last time (LT) when
the job manager received a "job create" or a "state change" message
such that ((CT-T)>LT).
12. The job manager of claim 8 wherein the job is a printing job
and the respective component for completing the job is a network
printer.
13. The job manager of claim 8 wherein a respective component is
assigned to process jobs in the queue for each respective
client.
14. The job manager of claim 8 wherein any type of conventional
messaging system is employed for sending and receiving messages.
Description
BACKGROUND OF THE INVENTION
[0001] In a network, it is common to process jobs, e.g. printing
jobs, in a queue. Jobs are assigned a position in the queue and a
network device, e.g. a network printer, processes each of the jobs
in a predetermined order. Fort example, the jobs can be processed
in the order they have been received. Also, the jobs can be
processed in accordance with priority, with high priority jobs
being given preference.
[0002] In a network, the operation of the queue can be implemented
in a number of different ways. In one common previous-type method
of processing jobs in a queue, the system constantly loops through
all the jobs in the queue to insure that the jobs are being
processed quickly. However, this method requires that the queue be
monitored at all time, even when no jobs are awaiting processing.
This approach therefore uses up lots of CPU time by monitoring the
queue at all times, and therefore inefficiently manages system
resources.
[0003] In another previous-type method of job processing, a
"daemon" process can be implemented that "wakes up" in predefined
time intervals and processes any jobs that are waiting in the
queue. While this method puts less demand on the CPU, it suffers
from the drawback that jobs may sit idle for an undesirable period
of time until the daemon process wakes up to service the waiting
jobs. In this way, this approach is inefficient at managing the
performance of the system.
SUMMARY OF THE INVENTION
[0004] The difficulties and drawbacks of the previous-type
approaches are resolved by the method and implementation for job
managing of the present invention which enables the creation of a
job in a client system and sending a job creation instruction
message to a job manager to notify that a new job has entered a
processing queue. At least one processing message is sent from the
job manager to at least one respective component. A first job state
change message is sent from the respective component to the job
manager to notify the job manager when the component begins to
process a given job. A second job state change message is sent to
the job manager from the component to notify the job manager when
the component is done processing the given job.
[0005] As will be realized, the invention is capable of other and
different embodiments and its several details are capable of
modifications in various respects, all without departing from the
invention. Accordingly, the drawing and description are to be
regarded as illustrative and not restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 is a block diagram showing the process flow of the
job manager in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0007] The present invention includes a job manager that ensures
continuous and timely attendance to the jobs in the queue. In the
present method and implementation, as particularly shown in FIG. 1,
a job (e.g. a printing job) is created by a client system, and a
job creation instruction message is sent to the job manager to
notify that a new job has entered the queue. The message can be
sent and received using any type of conventional messaging system.
The job manager then sends processing messages to one or more
components that are assigned to process the jobs in the queue for
each specific client. A job state change message is sent from a
component to the job manager to notify the job manager when the
component begins to process a given job. Another job state change
message is sent to the job manager from the component to notify the
job manager when the component is done processing the given
job.
[0008] Any "job create" and "job state change" message to the job
manager will cause the job manager to process all the jobs in the
queue. As long as components continue to process of their
respective jobs and notify job manager of their progress the jobs
in the queue will be processed. If the processing of a job is
interrupted for any reason, e.g. if a printer runs out of paper, an
"interrupt" message is sent from the component to the job manager,
who then reports the interruption to a user or system
administrator. All other jobs in the queue will be processed
normally.
[0009] To ensure communication continuity between the job manager
and other components, the job manager will receive a message from a
thread within its process based on a configurable amount of time
(T). This message will cause the job manager to process all the
jobs in the queue if the current time (CT) minus T is greater than
the last time (LT) when the job manager received a "job create" or
a "state change" message. The above condition can also be written
as: job processing if ((CT-T)>LT).
[0010] As described hereinabove, the present invention solves many
problems associated with previous type devices. However, it will be
appreciated that various changes in the details, materials and
arrangements of parts which have been herein described and
illustrated in order to explain the nature of the invention may be
made by those skilled in the area within the principle and scope of
the invention will be expressed in the appended claims.
* * * * *