Language selection

Search

Patent 2406089 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2406089
(54) English Title: A COMMON SCHEDULER WEB SERVICE FOR DISTRIBUTED NETWORK ENVIRONMENTS
(54) French Title: SERVICE WEB DE PLANIFICATEUR COMMUN POUR ENVIRONNEMENTS DE RESEAU REPARTI
Status: Dead
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04L 12/16 (2006.01)
  • G06F 9/48 (2006.01)
  • H04L 12/24 (2006.01)
(72) Inventors :
  • CHEN, PAUL MING (Canada)
  • POLAN, MICHAEL G. (Canada)
  • TSUI, ALEX K.K. (Canada)
  • TSUI, JERRY WAIKIT (Canada)
(73) Owners :
  • IBM CANADA LIMITED-IBM CANADA LIMITEE (Canada)
(71) Applicants :
  • IBM CANADA LIMITED-IBM CANADA LIMITEE (Canada)
(74) Agent: WANG, PETER
(74) Associate agent:
(45) Issued:
(22) Filed Date: 2002-09-30
(41) Open to Public Inspection: 2004-03-30
Examination requested: 2003-10-10
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data: None

Abstracts

English Abstract



A system and method that facilitates the hosting of scheduler web services
provided to computing
devices in distributed network environments. According to one aspect of the
invention, the system
comprises a scheduler web service wrap adapted for coupling to a scheduler
engine that resides on
a first computing device, providing a common scheduler web service. The system
also comprises
a wakeup web service wrap adapted for coupling to an application that resides
on a second
computing device in the distributed network. When the scheduler engine
commands the application
to execute a specified scheduled task, the scheduler web service wrap
communicates an instruction
to the wakeup web service wrap, which then commands the application to execute
the specified
scheduled task in response to the instruction. The usage of the common
scheduler web service can
be metered and provisioned as a billable service.


Claims

Note: Claims are shown in the official language in which they were submitted.



The embodiments of the invention in which an exclusive property or privilege
is claimed are defined
as follows:
1. A system for providing scheduler services for scheduling tasks to be
performed by
applications residing on computing devices in a distributed network, the
system comprising:
a. a scheduler web service wrap adapted for coupling to a scheduler engine
that resides
on a first computing device, wherein said scheduler web service wrap comprises
a scheduler
web service interface, whereby said scheduler engine is programmed to command
applications to execute scheduled tasks according to a schedule; and
b. a wakeup web service wrap adapted for coupling to a first application that
resides on
a second computing device in said distributed network, wherein said second
computing
device is remotely located from said first computing device in said
distributed network, and
wherein each wakeup web service wrap comprises a wakeup web service interface;
wherein said scheduler web service wrap is further adapted to communicate with
said
wakeup web service wrap through said scheduler web service interface and said
wakeup web
service interface, such that when said scheduler engine commands said first
application to
execute a specified scheduled task,
i. said scheduler web service wrap communicates an instruction to the wakeup
web service wrap coupled to said first application, and
ii. the wakeup web service wrap commands said first application to execute
said
specified scheduled task in response to said instruction.
2. The system as claimed in claim 1, wherein said scheduler web service wrap
is coupled to
a metering service for monitoring usage of said scheduler engine.
3. The system as claimed in claim 2, wherein said metering service is coupled
to a billing
service to charge users of said system for said usage.
4. The system as claimed in claim 1, wherein said scheduler web service wrap
is further
18


adapted to
i. receive a request for said first application to execute said specified
scheduled task
according to a specified schedule from an administrator through said scheduler
web
service interface, and
ii. communicate said request to said scheduler engine, whereby said scheduler
engine
will command said first application to execute said specified scheduled task
according to said specified schedule.
5. The system as claimed in claim 4, wherein said scheduler web service
interface is adapted
to receive said request from a common scheduler administrator, wherein said
common
scheduler administrator is a user of said first computing device.
6. The system as claimed in claim 4, wherein said scheduler web service
interface is adapted
to receive said request from an application server administrator, wherein said
application
server administrator is said first application.
7. The system as claimed in claim 4, wherein said scheduler web service
interface is adapted
to receive said request from an application server administrator, wherein said
application
server administrator is a second application residing on a computing device in
said
distributed network.
8. The system as claimed in claim 4, wherein said scheduler web service wrap
is further
adapted to receive and to communicate to said scheduler engine one or more of
the following
requests selected from the following group: to cancel a specified scheduled
task, to suspend
a specified scheduled task, to resume a specified scheduled task, to obtain
the status of a
specified scheduled task, and to purge scheduled tasks from a scheduler
registry.
9. The system as claimed in claim 4, wherein said system also comprises at
least one time zone
mapping utility module, each coupled to at least one of said scheduler web
service wrap and
19



said wakeup web service wrap, wherein said time zone mapping utility module is
programmed to convert between a first scheduled time defined by said second
computing
device and a corresponding second scheduled time defined by said first
computing device.
10. A method of providing scheduler services for scheduling tasks to be
performed by
applications residing on computing devices in a distributed network, said
method comprising
the steps of:
a. receiving a request for a first application to execute a specified
scheduled task according
to a specified schedule from an administrator, wherein said request is
received through a
scheduler web service interface of a scheduler web service wrap, said
scheduler web service
wrap adapted for coupling to a scheduler engine residing on a first computing
device,
whereby said scheduler engine is programmed to command applications to execute
scheduled
tasks according to a schedule;
b. communicating said request to said scheduler engine, whereby said scheduler
engine will
command said first application to execute said specified scheduled task
according to said
specified schedule;
c, communicating an instruction to a wakeup web service wrap coupled to said
first
application when said scheduler engine commands said first application to
execute said
specified scheduled task, wherein said instruction is communicated through
said scheduler
web interface and a wakeup web service interface of said wakeup web service
wrap, said
wakeup web service wrap adapted for coupling to said first application,
wherein said first
application resides on a second computing device, wherein said second
computing device
is remotely located from said first computing device in said distributed
network; and
d. commanding said first application to execute said specified scheduled task
in response
to said instruction.
11. The method as claimed in claim 10, wherein said method further comprises
monitoring usage
of said scheduler engine using a metering service.


12. The method as claimed in claim 11, wherein said method further comprises
charging users
for said usage using a billing service coupled to said metering service.
13. The method as claimed in claim 10, wherein said scheduler web service
interface is adapted
to receive said request from a common scheduler administrator, wherein said
common
scheduler administrator is a user of said first computing device.
14. The method as claimed in claim 10, wherein said scheduler web service
interface is adapted
to receive said request from an application server administrator, wherein said
application
server administrator is said first application.
15. The method as claimed in claim 10, wherein said scheduler web service
interface is adapted
to receive said request from an application server administrator, wherein said
application
server administrator is a second application residing on a computing device in
said
distributed network.
16. The method as claimed in claim 10, wherein said method further comprises
the steps of
receiving and communicating to said scheduler engine one or more of the
following requests
selected from the following group: to cancel a specified scheduled task, to
suspend a
specified scheduled task, to resume a specified scheduled task, to obtain the
status of a
specified scheduled task, and to purge tasks from a scheduler registry.
17. The method as claimed in claim 10, wherein said method further comprises
the step of
converting between a first scheduled time defined by said second computing
device and a
corresponding second scheduled time defined by said first computing device
using a time
zone mapping utility module, said time zone mapping utility module coupled to
at least one
of said scheduler web service wrap and said wakeup web service wrap.
18. A computer-readable medium containing instructions to perform steps of a
method of
21



providing scheduler services for scheduling tasks to be performed by
applications residing
on computing devices in a distributed network, wherein said method comprises
the following
steps:
a. receiving a request for a first application to execute a specified
scheduled task according
to a specified schedule from an administrator, wherein said request is
received through a
scheduler web service interface of a scheduler web service wrap, said
scheduler web service
wrap adapted for coupling to a scheduler engine residing on a first computing
device,
whereby said scheduler engine is programmed to command applications to execute
scheduled
tasks according to a schedule;
b. communicating said request to said scheduler engine, whereby said scheduler
engine will
command said first application to execute said specified scheduled task
according to said
specified schedule;
c. communicating an instruction to a wakeup web service wrap coupled to said
first
application when said scheduler engine commands said first application to
execute said
specified scheduled task, wherein said instruction is communicated through
said scheduler
web interface and a wakeup web service interface of said wakeup web service
wrap, said
wakeup web service wrap adapted for coupling to said first application,
wherein said first
application resides on a second computing device, wherein said second
computing device
is remotely located from said first computing device in said distributed
network; and
d. commanding said first application to execute said specified scheduled task
in response to
said instruction.
19. The computer-readable medium of claim 18, wherein said method further
comprises
monitoring usage of said scheduler engine using a metering service.
20. The computer-readable medium of claim 19, wherein said method further
comprises
charging users for said usage using a billing service coupled to said metering
service.
21. The computer-readable medium of claim 18, wherein said scheduler web
service interface
22



is adapted to receive said request from a common scheduler administrator,
wherein said
common scheduler administrator is a user operating said first computing
device.
22. The computer-readable medium of claim 18, wherein said scheduler web
service interface
is adapted to receive said request from an application server administrator,
wherein said
application server administrator is said first application.
23. The computer-readable medium of claim 18, wherein said scheduler web
service interface
is adapted to receive said request from an application server administrator,
wherein said
application server administrator is a second application residing on a
computing device in
said distributed network.
24. The computer-readable medium of claim 18, wherein said method further
comprises the steps
of receiving and communicating to said scheduler engine one or more of the
following
requests selected from the following group: to cancel a specified scheduled
task, to suspend
a specified scheduled task, to resume a specified scheduled task, to obtain
the status of a
specified scheduled task, and to purge tasks from a scheduler registry.
25. The computer-readable medium of claim 18, wherein said method further
comprises the steps
of converting between a first scheduled time defined by said second computing
device and
a corresponding second scheduled time defined by said first computing device.
23

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02406089 2002-09-30
A COMMON SCHEDULER WEB SERVICE FOR DISTRIBUTED
NETWORK ENVIRONMENTS
s FIELD OF THE INVENTION
The present invention relates generally to web-based scheduler applications,
and is more
particularly concerned with a system and method that facilitates the hosting
of scheduler web
services provided to computing devices in distributed network environments.
i o BACKGROUND OF THE INVENTION
Scheduler applications (also referred to as "scheduler services") provide both
users and
computing applications with the ability to request the execution of specific
tasks according to a
schedule. This schedule may require that a specific task be executed at a
particular time or upon the
occurrence of a particular event. Alternatively, the schedule may require that
the specific task be
is executed on a recurring basis, at multiple times (possibly at a pre-
determined interval) or upon the
occurrence of a repetitive event or of a series of different events.
Subsequently, in accordance with
the schedule, the scheduler service can then command one or more applications
to perform the
specific task as requested.
Traditionally, scheduler services have been implemented as applications that
are run on a
20 local server. These applications schedule tasks from that server, and
execute tasks on that server.
For example, Microsoft Corporation's Windows~ operating system provides a
built-in
general-purpose scheduler service, which can be used to schedule one or more
application tasks that
are run locally within the computer in which the operating system is
installed. However, if this
computer is connected to other computing devices in a network, a problem with
this built-in
a s scheduler service is that a task cannot be remotely scheduled from a
different computing device in
the network. Similarly, this built-in scheduler service cannot remotely
command that a task be
executed on a different computing device in the network.
J Many traditional scheduler services such as the built-in general-purpose
scheduler described
above are not easily adapted to function efficiently in distributed network
environments. Typically,
3 o in order to facilitate the scheduling of tasks on two or more machines, a
traditional scheduler service
CA9-2002-0053

CA 02406089 2002-09-30
must be installed and run on each of the machines. Furthermore, in order for a
user to delete or
change a scheduled task for two or more machines, that user is often required
to log on to each
machine, and delete or change the task scheduled on each machine.
Typically, the functions provided by traditional scheduler services are
limited. Many of these
s traditional scheduler services are capable of only scheduling and executing
specific commands, but
are not easily adaptable to schedule or execute other executable applications
or tasks. Moreover,
many of these traditional scheduler services lack a mechanism to monitor their
usage, which would
allow users to be billed for that usage, for example.
Accordingly, there is a need for a more flexible scheduler service,
particularly for use in
io distributed network environments.
SUMMARY OF THE INVENTION
The popularity of conducting transactions over the Internet has led to an
increasing demand
for businesses to integrate their applications with applications of other
businesses. These
is applications are often implemented using proprietary software written in
differing programming
languages.
One known solution for integrating heterogeneous Internet-based applications
or services
introduced the concept of a "web service". A web service can be defined as one
or more application
functions that can be invoked over the Internet using a protocol. One example
of a protocol that may
2 o be used in this context is the Simple Object Access Protocol (SOAP), which
may be used by
Internet-based application servers, also known as web servers, to provide web
services. SOAP is
a protocol that is often used in the exchange of information in decentralized,
distributed network
environments.
The present invention is directed to a system and method that facilitates the
hosting of
as scheduler web services provided to computing devices in distributed network
environments.
According to a first aspect of the invention, there is provided a system for
providing
scheduler services for scheduling tasks to be performed by applications
residing on computing
devices in a distributed network, the system comprising: a scheduler web
service wrap adapted for
coupling to a scheduler engine that resides on a first computing device,
wherein the scheduler web
CA9-2002-0053

CA 02406089 2002-09-30
service wrap comprises a scheduler web service interface, whereby the
scheduler engine is
programmed to command applications to execute scheduled tasks according to a
schedule; and a
wakeup web service wrap adapted for coupling to an application that resides on
a second computing
device in the distributed network, wherein the second computing device is
remotely located from
s the first computing device in the distributed network, and wherein each
wakeup web service wrap
comprises a wakeup web service interface; wherein the scheduler web service
wrap is further
adapted to communicate with the wakeup web service wrap through the scheduler
web service
interface and the wakeup web service interface, such that when the scheduler
engine commands the
application to execute a specified scheduled task, the scheduler web service
wrap communicates an
i o instruction to the wakeup web service wrap coupled to the application, and
the wakeup web service
wrap commands the application to execute the specified scheduled task in
response to the instruction.
According to another aspect of the invention, there is provided a method of
providing
scheduler services for scheduling tasks to be performed by applications
residing on computing
devices in a distributed network, the method comprising the steps of receiving
a request for an
i5 application to execute a specified scheduled task according to a specified
schedule from an
administrator, wherein the request is received through a scheduler web service
interface of a
scheduler web service wrap, the scheduler web service wrap adapted for
coupling to a scheduler
engine residing on a first computing device, whereby the scheduler engine is
programmed to
command applications to execute scheduled tasks according to a schedule;
communicating the
a o request to the scheduler engine, whereby the scheduler engine will command
the application to
execute the specified scheduled task according to the specified schedule;
communicating an
instruction to a wakeup web service wrap coupled to the application when the
scheduler engine
commands the application to execute the specified scheduled task, wherein the
instruction is
communicated through the scheduler web interface and a wakeup web service
interface of the
is wakeup web service wrap, the wakeup web service wrap adapted for coupling
to the application,
wherein the application resides on a second computing device, wherein the
second computing device
is remotely located from the first computing device in the distributed
network; and commanding the
application to execute the specified scheduled task in response to the
instruction.
CA9-2002-0053

CA 02406089 2002-09-30
According to a further aspect of the invention, instructions to perform the
steps of a method
of an embodiment of the present invention may be stored on computer-readable
media.
The present invention relates to a common scheduler web service for use in
distributed
network environments. In preferred embodiments of the invention, the common
scheduler web
service is implemented as a web service, so that it can be invoked remotely by
a client application
on computing devices in the distributed network through a web service
interface. As a result, the
scheduling of tasks can be managed on a separate server. Compared to
traditional scheduler services
that require extensive configuration of scheduled tasks that must be executed
locally, the common
scheduler web service is more flexible and more easily facilitates the remote
scheduling of tasks in
i o distributed network environments. The common scheduler web service can
command tasks to be
performed on multiple machines, without the need to configure a separate
scheduler service on each
machine. This may be particularly advantageous in a web hosting environment.
As a web service, the common scheduler web service can take advantage of the
fact that web
services can typically tunnel easily through firewalls. Furthermore, the
common scheduler web
i5 service can be hosted, and its usage can be metered and provisioned as a
billable service.
In a preferred embodiment of the invention, the common scheduler web service
is a set of
web service application program interfaces (API) that can be used to "wrap"
any traditional
scheduler service so that the traditional scheduler service can be shared by
client applications as a
hosted web service. Therefore, in accordance with the present invention,
different scheduler engines
2 o can be encapsulated or "wrapped" and served to users and computing
applications as a common
scheduler web service. Since the common scheduler web service provides a
common web service
interface to users and computing applications, computing devices running on
different operating
systems can schedule tasks using the same scheduler engine.
2s BRIEF DESCRIPTION OF THE DRAWINGS
For a better understanding of the present invention, and to show more clearly
how it may be
carried into effect, reference will now be made, by way of example, to the
accompanying drawings
which show preferred and variant embodiments of the present invention, and in
which:
Figure 1 is a conceptual, schematic diagram of a system in which a common
scheduler web
CA9-2002-0053

CA 02406089 2002-09-30
service is used in accordance with a preferred embodiment of the invention;
Figure 2 is a schematic diagram illustrating a system for providing scheduler
services for
scheduling tasks to be performed by applications residing on computing devices
in a distributed
network in an embodiment of the invention;
s Figures 3A, 3B, and 3C are schematic diagrams illustrating the flow of
commands between
components of a system for providing scheduler services for scheduling tasks
to be performed by
applications residing on computing devices in a distributed network in
alternative embodiments of
the invention;
Figure 4 is a schematic diagram illustrating a system for providing scheduler
services for
i o scheduling tasks to be performed by applications residing on computing
devices in a distributed
network further comprising means to monitor the usage of the common scheduler
web service in an
embodiment of the invention;
Figure 5 is a flowchart illustrating the steps of a method of providing
scheduler services for
scheduling tasks to be performed by applications residing on computing devices
in a distributed
i s network in an embodiment of the invention; and
Figure 6 is a flowchart illustrating the steps of a method of providing
scheduler services for
scheduling tasks to be performed by applications residing on computing devices
in a distributed
network in another embodiment of the invention.
a o DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention is directed to a system and method that facilitates the
hosting of
scheduler web services provided to computing devices in distributed network
environments.
The present invention provides for a generic common scheduler web service,
which is a
web-based scheduler service that is distributed, remotely activated, and self
managed. Conceptually,
a s a "wake-up call" model is used to activate processes and applications that
are scheduled to execute
specific tasks. The remote processes and applications can self register to the
web-based scheduler
service, enabling the underlying scheduling engine to be used for ad hoc
scheduling, by processes
and applications previously unknown to the scheduler. The decision to schedule
tasks does not
originate from the scheduling engine, but instead originates from the
processes and applications
CA9-2002-0053

CA 02406089 2002-09-30
themselves.
Figure 1 is a conceptual, schematic diagram of a system in which a common
scheduler web
service is used in accordance with a preferred embodiment of the invention,
shown generally as 10.
System 10 comprises a common scheduler web service provided by a scheduler web
service wrap
s 20 that "wraps" or encapsulates a scheduler engine 22. In this manner,
different scheduler engines
22 can be encapsulated and served as scheduler web services, by providing a
scheduler web service
interface through scheduler web service wrap 20 to different users and
computing applications who
may wish to have access to the management capabilities of the scheduler
engines 22.
System 10 also comprises one or more wakeup web services, each provided by a
wakeup web
io service wrap 24 that "wraps" or encapsulates at least one application 26.
Each wakeup web service
wrap 24 is used to command its respective application 26 to perform a
specified scheduled task.
Scheduler web service wrap 20 and wakeup web service wrap 24 perform different
roles in
system 10. Scheduler web service wrap 20 provides a common scheduler web
service that manages
scheduled tasks to be executed by applications 26 according to a schedule,
using scheduler engine
i s 22. For example, a scheduled task may be a program created by applications
to perform a specified
task such as "generate weekly report" or "mass load store catalogs".
When a specified task is to be scheduled, a scheduler job is created, which
scheduler engine
22 is responsible to run when the current time is matched with the scheduled
time, as would typically
be performed by a traditional scheduler service. Information on the scheduler
job is stored in a
2 o scheduler registry [not shown). The scheduler registry may be an XML file,
or a database table, for
example. When the scheduler job is run, scheduler engine 22 commands the
application associated
with the scheduler job to perform the specified scheduled task. The management
of scheduled tasks
need not be limited to the creation of scheduled tasks and the commanding of
applications to execute
the scheduled tasks, but may also include the handling of requests to cancel a
specified scheduled
25 task, to suspend a specified scheduled task, to resume a previously
suspended specified scheduled
task, to obtain the status of a specified scheduled task, and to purge tasks
from the scheduler registry,
for example.
On the other hand, wakeup web service wrap 24 acts as a scheduler invoker.
When scheduler
engine 22 commands the application 26 associated with a given wakeup web
service wrap 24 to
CA9-2002-0053

CA 02406089 2002-09-30
perform a specified scheduled task, scheduler web service wrap 20 will
communicate an instruction
to the wakeup web service wrap 24. Wakeup web service wrap 24 will then invoke
application 26
to execute the specified scheduled task in response to the instruction it
received from scheduler web
service wrap 20. Wakeup web service wrap 24 may then also communicate status
information back
s to scheduler web service wrap 20 and scheduler engine 22, to indicate
whether the task was
successfully or unsuccessfully executed, for storage in the scheduler
registry.
In preferred embodiments of the invention, scheduler web service wrap 20 and
wakeup web
service wrap 24 reside on different computing devices. Accordingly,
applications may be invoked
remotely by scheduler engine 22.
to Applications 26 in system 10 may themselves utilize the scheduler engine 22
provided by
the common scheduler web service to request that a specified application
execute a specified
scheduled task according to a specified schedule, by requesting the creation
of a scheduler job. The
request to the scheduler engine 22 is made through scheduler web service wrap
20. In this manner,
requests to execute scheduled tasks according to a schedule may be made
remotely. Although in
i5 many instances the same application that requests the creation of a
scheduler job is the same
application that will perform the associated scheduled task, this is not
required. One application can
request that one or more different applications execute a scheduled task, and
these applications may
reside on the same computing device or on different computing devices in a
distributed network.
Requests to create scheduler jobs may also be made by a user through a
scheduler
a o management user interface (UI) 28, which may reside on a remote computing
device, or which may
reside on the same computing device on which the scheduler engine resides. The
request to the
scheduler engine 22 is made through scheduler web service wrap 20. In this
manner, requests to
execute scheduled tasks according to a schedule may be made remotely.
The user or computing application that makes requests to create scheduler jobs
may be
2 s referred to as an administrator. In the first case where application 26
makes the request, the
administrator may be more specifically referred to as an application server
administrator. While an
application server administrator can be an application that automatically
generates requests, it may
also be a person (i.e. a manual process), which generates requests using an
application. In the second
case where a user makes the request through scheduler management UI 28, the
administrator may
CA9-2002-0053

CA 02406089 2002-09-30
be more specifically referred to as a common scheduler administrator. As will
be explained below
with reference to Figure 3B, a common scheduler administrator may facilitate
the scheduling of tasks
on multiple remote machines from a single computing device.
The operations of scheduler web service wrap 20 and wakeup web service wrap 24
may be
s more easily understood by considering the analogy of a hotel wakeup call. In
a typical hotel wakeup
call scenario, a hotel customer makes a request to the wakeup call service
offered at the hotel for a
morning call. The next morning, at the scheduled time, the customer will
receive the morning call,
allowing the customer to perform a specified task. In the present invention,
scheduler web service
wrap 20 receives a request from an administrator, and subsequently at the
scheduled time, a
io "wake-up call" will be communicated to wakeup web service wrap 24. In this
case, the wakeup web
service plays the role of a client agent responsible for invoking a specific
application on an
application server to perform a specified task.
A common scheduler web service is easier to configure than traditional
scheduler services
since only one scheduler service needs to be configured on one computing
device. Applications on
i5 other computing devices that want to utilize the functionality of scheduler
engine 22 can share the
common scheduler web service. Accordingly, the common scheduler web service
can be
advantageously adapted for use in distributed network environments. Further,
both scheduler web
service wrap 20 and wakeup web service wrap 24 provide platform-independent
scheduler web
service interfaces (e.g. as shown in Figure 2), allowing them to serve various
types of clients and
2 o servers, running a variety of different operating systems.
Figure 2 is a schematic diagram illustrating a system for providing scheduler
services for
scheduling tasks to be performed by applications residing on computing devices
in a distributed
network in an embodiment of the invention, shown generally as 10. Figure 2
provides a more
detailed view of the conceptual elements illustrated in Figure 1.
2s As shown in Figure 2, scheduler web service wrap 20 effectively "wraps"
scheduler engine
22 by controlling access to scheduler engine 22 by remote users through
scheduler management UI
28 and applications 26. Scheduler web service wrap 20 and scheduler engine 22
will typically reside
on the same server [not shown], but may optionally reside on separate
computing devices. Scheduler
web service wrap 20 provides users and applications 26 with access to the
functionality of scheduler
CA9-2002-0053

CA 02406089 2002-09-30
engine 22, through a scheduler web service interface 30 to a scheduler handler
32.
Scheduler web service interface 30 is implemented using Web Service Definition
Language
(WSDL). WSDL is an Extensible Markup Language (XML) format for describing
network services
as a set of endpoints operating on messages containing either document-
oriented or
s procedure-oriented information. The operations and messages are described
abstractly, and then
bound to a concrete network protocol and message format to define an endpoint.
Related concrete
endpoints are combined into abstract endpoints (i.e. services). WSDL is
extensible to allow
description of endpoints and their messages regardless of what message formats
or network protocols
are used in communications (e.g. SOAP, Hypertext Transfer Protocol (HTTP) and
Multipurpose
io Internet Mail Extensions (MIME)). A WSDL file is utilized by scheduler web
service interface 30
that describes operations and messages such as "create", "cancel", and so on.
This interface allows
applications 26 and scheduler management UI 28 to call scheduler handler 32 to
schedule and
manage tasks, and is platform-independent.
Scheduler handler 32 is a specific implementation to handle scheduler
operations that is
i5 extended from a default scheduler web service implementation 33, and that
is suitable for a specific
scheduler engine 22. Although only one scheduler engine 22 is shown in Figure
2, scheduler web
service wrap 20 may be adapted for coupling to multiple scheduler engines. For
example, different
scheduler engines (including a variety of traditional scheduler engines) can
be used in system 10,
by providing different schedule handlers 32 within scheduler web service wrap
20, each extended
2 o from the default scheduler web service implementation 33. The use of
different scheduler handlers
is preferable in this case, since the different scheduler engines may behave
differently, making it
desirable to encapsulate these differences behind the single scheduler web
service interface 30.
Similarly, each wakeup web service wrap 24 effectively "wraps" application 26
by
controlling access to application 26 by the common scheduler web service, and
more particularly,
2 5 by scheduler web service interface 30 of scheduler web service wrap 20.
Wakeup web service wrap
24 and application 26 will typically reside on the same server [not shown),
but may optionally reside
on separate computing devices. Wakeup web service wrap 24 provides an
interface to application
26 for scheduler web service interface 30, through a wakeup web service
interface 34 and a module
36 implementing the wakeup web service to invoke application 26.
CA9-2002-0053

CA 02406089 2002-09-30
Communication between scheduler web service wrap 20 and wakeup web service
wrap 24
is effected through scheduler web service interface 30 and wakeup web service
interface 34
respectively. When scheduler engine 22 commands a specific application 26 to
execute a specified
scheduled task, scheduler web service wrap 20 communicates an instruction to
wakeup web service
s wrap 24, after which module 36 of wakeup web service wrap 24 commands
application 26 to execute
the specified scheduled task in response to the instruction. The communication
of this instruction
may be referred to as a "wake-up call". In this preferred embodiment of the
invention, the
instruction comprises only a session key and task name of the scheduled job
associated with the
specified scheduled task, and no additional application-related information
need be provided for
io module 36 to invoke application 26. Since the common scheduler web service
is only responsible
to schedule tasks, it need not store any other application-specific
information in the scheduler
registry [not shown] used by scheduler engine 22. It will be obvious to those
skilled in the art,
however, that implementations in which additional application-related
information is stored or
communicated may be provided for in variant embodiments of the invention.
Furthermore, in
i s variant embodiments of the invention, module 36 may be extended to manage
multiple applications
through a single wakeup web service interface 34 of a given wakeup web service
wrap 24, allowing
one or more of the multiple applications to be invoked.
As indicated with reference to Figure 1, an application 26 in system 10 may
itself utilize the
scheduler engine 22 to request that a specified application execute a
specified scheduled task
2o according to a specified schedule, by requesting the creation of a
scheduler job. The request of
application 26 (i.e. as application server administrator) to the scheduler
engine 22 is made through
scheduler web service interface 30 of scheduler web service wrap 20, and in
preferred embodiments
of the invention, through wakeup web service interface 34 of wakeup web
service wrap 24 coupled
to application 26. Requests to create scheduler jobs may also be made by a
user (i.e. as common
2 s scheduler administrator) using scheduler management user interface (UI) 28
through scheduler web
service interface 30 of scheduler web service wrap 20. The flow of commands
and communications
in the provision of scheduler services in system 10 in accordance with these
and other scenarios are
further illustrated with reference to Figures 3A to 3C.
Figures 3A, 3B, and 3C are schematic diagrams illustrating the flow of
commands between
CA9-2002-0053 i o

CA 02406089 2002-09-30
components of a system for providing scheduler services for scheduling tasks
to be performed by
applications residing on computing devices in a distributed network in
alternative embodiments of
the invention. These figures illustrate several examples of alternative
embodiments; however, it will
be obvious to those skilled in the art that other arrangements are possible
and other modifications
s can be made that remain within the scope of the present invention.
Referring to Figure 3A, applications 26 are coupled to their respective wakeup
web service
wraps 24, and both reside on respective client servers 40. Client servers 40
are remotely coupled to
a server 42 upon which scheduler web service wrap 20 and coupled scheduler
engine 22 reside, in
a distributed network of system 10. An application 26 acting as an application
server administrator
io makes a request for a specified application (or multiple applications) to
execute a scheduled task,
according to a schedule specified by the application server administrator. As
indicated earlier, the
specified application that is to execute the scheduled task may be the same
application acting as the
application server administrator, but alternatively, the specified application
could instead be a
different application within the distributed network. The request is received
by scheduler web
i s service wrap 20, which communicates the request to scheduler engine 22.
'The scheduler engine 22
schedules the job, storing the information on the scheduled job in its
scheduler registry [not shown].
Scheduler engine 22 is programmed to command applications to execute scheduled
tasks
associated with scheduled jobs according to a schedule, in known manner.
Accordingly, when
scheduler engine 22 commands a specified application 26 to execute the
specified scheduled task
a o at a specific time according to the specified schedule, the command will
be received by scheduler
web service wrap 20, which will communicate an instruction to wakeup web
service wrap 24
coupled to the specified application 26. Wakeup web service wrap 24 will
command and invoke the
specified application 26 to execute the specified scheduled task in response
to the instruction. A
common scheduler administrator is not present in this embodiment.
2 s The application server administrator may also make requests to cancel a
specified scheduled
task, to suspend a specified scheduled task, to resume a previously suspended
specified scheduled
task, to obtain the status of a specified scheduled task, and to purge tasks
from the scheduler registry,
for example, as may be provided by scheduler web service interface 30 of
scheduler web service
wrap 20. Means to control specific access permissions (e.g. to allow only
certain applications 26
CA9-2002-0053 i i

CA 02406089 2002-09-30
to make certain requests) may also be implemented in the scheduler web service
interface 30 in
known manner. It will be obvious to those skilled in the art that there are
different implementation
alternatives that are possible and within the scope of the present invention.
Referring to Figure 3B, scheduler management UI 28 is coupled to scheduler web
service
s wrap 20. Scheduler management UI 28 is remotely located from server 42 and
provides remote
users [not shown] with access to scheduler engine 22. In this embodiment, a
user can act as a
common scheduler administrator using scheduler management UI 28. The common
scheduler
administrator makes requests for a specified application (or multiple
applications) to execute a
scheduled task according to a schedule specified by the common scheduler
administrator. The
i o request is received by scheduler web service wrap 20, which communicates
the request to scheduler
engine 22. The scheduler engine 22 schedules the job, storing the information
on the scheduled job
in its scheduler registry [not shown].
Scheduler engine 22 is programmed to command applications to execute scheduled
tasks
associated with scheduled jobs according to a schedule, in known manner.
Accordingly, when
i s scheduler engine 22 commands a specified application 26 to execute the
specified scheduled task
at a specific time according to the specified schedule, the command will be
received by scheduler
web service wrap 20, which will communicate an instruction to wakeup web
service wrap 24
coupled to the specified application 26. Wakeup web service wrap 24 will
command and invoke the
specified application 26 to execute the specified scheduled task in response
to the instruction.
a o Accordingly, a common scheduler administrator can facilitate the
scheduling of tasks on multiple
remote machines from a single computing device.
Applications 26 may or may not also act as application server administrators
in this
embodiment, and more than one scheduler management UI 28 and/or common
scheduler
administrators may co-exist. Access to scheduler engine 22 by application
server administrators and
2 s common scheduler administrators can be controlled through the scheduler
web service interface (30
of Figure 2) of scheduler web service wrap 20.
The common scheduler administrator may also make requests to cancel a
specified scheduled
task, to suspend a specified scheduled task, to resume a previously suspended
specified scheduled
task, to obtain the status of a specified scheduled task, and to purge tasks
from the scheduler registry,
CA9-2002-0053 12

CA 02406089 2002-09-30
for example, as may be provided by scheduler web service interface 30 of
scheduler web service
wrap 20. Means to control specific access permissions (e.g. to allow only
certain applications 26
or certain users to make certain requests) may also be implemented in the
scheduler web service
interface 30 in known manner. It will be obvious to those skilled in the art
that there are different
s implementation alternatives that are possible and within the scope of the
present invention.
Refernng to Figure 3C, there is illustrated a network of computing devices
implementing
more than one common scheduler web service. For example, in scenarios where it
is inefficient to
handle the number of requests being received by a scheduler engine 22, or
where multiple scheduler
engines 22 exist on different computing devices, more than one common
scheduler web service may
io be configured. In the illustrated embodiment, during the creation of a
scheduler task, a network
dispatch server 44 can be used to determine which common scheduler web service
in the network
of system 10 has a lower load balance. The request to create the scheduler
task can be relayed to the
selected common scheduler web service in order to obtain optimum performance.
Conversely, in variant embodiments of the invention, it may be efficient to
implement a hub
i s [not shown] to receive instructions from one or more scheduler web service
wraps 20 to be relayed
to multiple client servers 40 connected to the hub.
Figure 4 is a schematic diagram illustrating a system for providing scheduler
services for
scheduling tasks to be performed by applications residing on computing devices
in a distributed
network further comprising means to monitor the usage of the common scheduler
web service in an
a o embodiment of the invention. As a web service, the common scheduler web
service can be hosted
and provisioned as a billable service. As a hosted service, it can be metered,
and therefore users can
be charged for using the service. In one embodiment of the invention, means
for monitoring the
usage of the common scheduler web service, and more particularly, scheduler
engine 22, is provided
for by a pre-interceptor module 50 and a post-interceptor module 52, coupled
to a metering service
a s 54 that may, optionally, be located on a remote computing device.
When a task is created, the usage of scheduler engine 22 is metered by
monitoring access to
scheduler engine 22, and by sending data indicating such access to metering
service 54. When
scheduler engine 22 commands a scheduled task to be executed, the usage of
scheduler engine 22
can also be similarly metered. When status information regarding whether or
not the scheduled task
CA9-2002-0053 i 3

CA 02406089 2002-09-30
was successfully executed is communicated back to scheduler engine 22 for
storage in a scheduler
registry, the usage of scheduler engine 22 may also be metered. Metering
service 54 determines the
level of usage of scheduler engine for each application 26 or users operating
scheduler management
UI 28, based on the data it receives. Information on the level of usage can be
relayed to a billing and
s rating service 56, which may also be located on a remote device. This allows
users of system 10 to
be charged for their usage of scheduler engine 22.
Figure 5 is a flowchart illustrating the steps of a method of providing
scheduler services for
scheduling tasks to be performed by applications residing on computing devices
in a distributed
network in an embodiment of the invention. The method commences at step 60.
io At step 62, the scheduler web service interface (e.g. scheduler web service
interface 30 of
Figure 2) of a scheduler web service wrap (e.g. scheduler web service wrap 20
of Figure 2) receives
a request for an application to execute a specified scheduled task according
to a specified scheduler
from an administrator, by way of a SOAP call. The request can be initiated by
an application server
administrator or by a common scheduler administrator.
i5 At step 64, the scheduler web service interface loads the scheduler handler
(e.g. scheduler
handler 32 of Figure 2), which communicates the request to the scheduler
engine (e.g. scheduler
engine 22 of Figure 2) for scheduling. The scheduler engine is programmed to
command
applications to execute scheduled tasks, according to a specified schedule
associated with those
tasks. Information pertaining to the requests is stored in a scheduler
registry.
2 o At step 66, when the scheduler engine commands an application to execute
the specified
scheduled task according to the specified schedule, task information is
retrieved from the scheduler
registry. The task information may include, for example, the task name, task
location, and a session
key.
At step 68, the scheduler handler generates an instruction from the task
information, which
2 s the scheduler web service interface communicates to the wakeup web service
wrap (e.g. wakeup web
service wrap 24 of Figure 2) coupled to the specified application (e.g.
application 26 of Figure 2)
associated with the specified scheduled task, by way of a SOAP call.
At step 70, the wakeup web service wrap commands the specified application to
execute the
specified scheduled task in response to the instruction by invoking the
application. Information that
CA9-2002-0053 14

CA 02406089 2002-09-30
indicates whether or not the specified scheduled task was successfully
executed may also be sent
back to the scheduler engine at this step. This allows error messages to be
generated if the specified
scheduled tasks fails to be executed successfully. This also allows failed
tasks to be rescheduled if
desired.
s Steps 62 to 70 may be repeated. Step 72 marks the end of the method in
accordance with one
embodiment of the invention.
Figure 6 is a flowchart illustrating the steps of a method of providing
scheduler services for
scheduling tasks to be performed by applications residing on computing devices
in a distributed
network in another embodiment of the invention. The method commences at step
80.
io At step 82, the scheduler web service interface (e.g. scheduler web service
interface 30 of
Figure 4) of a scheduler web service wrap (e.g. scheduler web service wrap 20
of Figure 4) receives
a request for an application to execute a specified scheduled task according
to a specified scheduler
from an administrator, by way of a SOAP call. The request can be initiated by
an application server
administrator or by a common scheduler administrator.
i5 At step 84, the scheduler web service interface loads the scheduler handler
(e.g. scheduler
handler 32 of Figure 4), which communicates the request to the scheduler
engine (e.g. scheduler
engine 22 of Figure 4) for scheduling by creating a scheduler job. The
scheduler engine is
programmed to command applications to execute scheduled tasks, according to a
specified schedule
associated with those tasks. Information pertaining to the requests is stored
in a scheduler registry.
a o In this embodiment, access to the scheduler handler is monitored, thereby
metering the usage of the
scheduler engine. Information pertaining to the usage of the scheduler engine
when a scheduler job
is created at this step, is provided to a metering service (e.g. metering
service 54 of Figure 4), which
in turn can be provided to a billing and/or rating service (e.g. billing and
rating service 56 of Figure
4).
25 At step 86, when the scheduler engine commands an application to execute
the specified
scheduled task according to the specified schedule, task information is
retrieved from the scheduler
registry. The task information may include, for example, the task name, task
location, and a session
key.
At step 88, the scheduler handler generates an instruction from the task
information, which
CA9-2002-0053 i s

CA 02406089 2002-09-30
the scheduler web service interface communicates to the wakeup web service
wrap (e.g. wakeup web
service wrap 24 of Figure 4) coupled to the specified application (e.g.
application 26 of Figure 4)
associated with the specified scheduled task, by way of a SOAP call. In this
embodiment, access
to the scheduler handler is monitored, thereby metering the usage of the
scheduler engine.
s Information pertaining to the usage of the scheduler engine when the
scheduler engine commands
an application to execute a specified scheduled task, is provided to a
metering service, which in turn
can be provided to a billing and/or rating service.
At step 90, the wakeup web service wrap commands the specified application to
execute the
specified scheduled task in response to the instruction by invoking the
application. Information that
io indicates whether or not the specified scheduled task was successfully
executed may also be sent
back to the scheduler engine at this step. This allows error messages to be
generated if the specified
scheduled task fails to be executed successfully. This also allows failed
tasks to be rescheduled if
desired. Information pertaining to the usage of the scheduler engine when the
scheduler engine
receives an indication of whether the specified scheduled task was executed
successfixlly may also
i5 be provided to a metering service, which in turn can be provided to a
billing and/or rating service.
In this embodiment of the invention, the session key includes a unique session
identifier, user
identifier, and service-related information that is used to charge for usage
of the scheduler engine.
Steps 82 to 90 may be repeated. Step 92 marks the end of the method in
accordance with one
embodiment of the invention.
a o In variant embodiments of the invention, a time zone mapping utility
module may be
provided for use in system 10. The time zone mapping utility module is
preferably coupled to the
scheduler web service wrap or a component therein, where the time zone mapping
utility module is
programmed to convert between a first scheduled time defined on a remote
computing device, and
a corresponding second scheduled time defined on the computing device in which
the scheduler
a s engine resides. This allows a common scheduler web service to properly
schedule tasks for any
remote clients that are located in a time zone other than the one used by the
scheduler engine.
A method of the present invention may also be embodied in one or more
instructions stored
on computer-readable media.
With respect to elements of the systems described herein, it will be apparent
to those skilled
CA9-2002-0053 1 s

CA 02406089 2002-09-30
in the art that the execution of various tasks associated with the present
invention need not be
performed by the particular component specified in the description of the
preferred and variant
embodiments of the invention. For example, it will be obvious to those skilled
in the art that the
performance of tasks by components of the scheduler web service wrap may be
performed by a
s single module or by different modules, which may or may not be distributed
across multiple
computing devices. As a further example, a scheduler management user interface
may be integrated
directly integrated into the schedule web service interface in variant
embodiments of the invention.
The present invention has been described with regard to specific embodiments.
However,
it will be obvious to persons skilled in the art that a number of variants and
modifications can be
io made without departing from the scope of the invention defined in the
claims appended hereto.
CA9-2002-0053

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date Unavailable
(22) Filed 2002-09-30
Examination Requested 2003-10-10
(41) Open to Public Inspection 2004-03-30
Dead Application 2010-09-13

Abandonment History

Abandonment Date Reason Reinstatement Date
2009-09-14 FAILURE TO PAY FINAL FEE
2010-09-30 FAILURE TO PAY APPLICATION MAINTENANCE FEE

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $300.00 2002-09-30
Registration of a document - section 124 $100.00 2002-11-25
Request for Examination $400.00 2003-10-10
Maintenance Fee - Application - New Act 2 2004-09-30 $100.00 2004-06-16
Maintenance Fee - Application - New Act 3 2005-09-30 $100.00 2005-06-27
Maintenance Fee - Application - New Act 4 2006-10-02 $100.00 2006-06-28
Maintenance Fee - Application - New Act 5 2007-10-01 $200.00 2007-06-29
Maintenance Fee - Application - New Act 6 2008-09-30 $200.00 2008-06-19
Maintenance Fee - Application - New Act 7 2009-09-30 $200.00 2009-04-14
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
IBM CANADA LIMITED-IBM CANADA LIMITEE
Past Owners on Record
CHEN, PAUL MING
POLAN, MICHAEL G.
TSUI, ALEX K.K.
TSUI, JERRY WAIKIT
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Drawings 2002-09-30 8 160
Claims 2002-09-30 6 277
Abstract 2002-09-30 1 27
Representative Drawing 2003-01-20 1 8
Description 2002-09-30 17 1,034
Cover Page 2004-03-03 2 46
Representative Drawing 2008-10-29 1 11
Correspondence 2002-11-14 1 27
Assignment 2002-10-03 2 86
Assignment 2002-11-25 3 141
Prosecution-Amendment 2003-10-10 1 42
Correspondence 2007-06-07 3 140
Correspondence 2007-06-07 3 142
Correspondence 2007-07-09 1 14
Correspondence 2007-07-09 1 15
Prosecution-Amendment 2007-09-11 4 130
Prosecution-Amendment 2008-03-10 3 184