WO2004029805A2 - A common scheduler web service for distributed network environments - Google Patents

A common scheduler web service for distributed network environments Download PDF

Info

Publication number
WO2004029805A2
WO2004029805A2 PCT/GB2003/003944 GB0303944W WO2004029805A2 WO 2004029805 A2 WO2004029805 A2 WO 2004029805A2 GB 0303944 W GB0303944 W GB 0303944W WO 2004029805 A2 WO2004029805 A2 WO 2004029805A2
Authority
WO
WIPO (PCT)
Prior art keywords
scheduler
web service
application
specified
wrap
Prior art date
Application number
PCT/GB2003/003944
Other languages
French (fr)
Other versions
WO2004029805A3 (en
Inventor
Paul Ming Chen
Michael Polan
Alex Tsui
Jerry Waikit Tsui
Original Assignee
International Business Machines Corporation
Ibm United Kingdom Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation, Ibm United Kingdom Limited filed Critical International Business Machines Corporation
Priority to JP2004539174A priority Critical patent/JP2006501543A/en
Priority to EP03798240A priority patent/EP1563378A2/en
Priority to AU2003263354A priority patent/AU2003263354A1/en
Publication of WO2004029805A2 publication Critical patent/WO2004029805A2/en
Publication of WO2004029805A3 publication Critical patent/WO2004029805A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Definitions

  • 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.
  • Scheduler applications 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.
  • the schedule may require that the specific task be 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.
  • the scheduler service can then command one or more applications to perform the specific task as requested.
  • scheduler services have been implemented as applications that are run on a local server. ' These applications schedule tasks from that server, and execute tasks on that server.
  • 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.
  • this computer is connected to other computing devices in a network, a problem with this built-in 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.
  • a web service can be defined as one or more application functions that can be invoked over the Internet using a protocol .
  • a protocol that may 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 scheduler web services provided to computing devices in distributed network environments .
  • a system for providing scheduler services for scheduling tasks to be performed by applications residing on computing devices in a distributed network comprising: a scheduler web service wrap adapted for coupling to a scheduler engine that resides on a first computing device, wherein the scheduler web 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 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 instruction to the wakeup web. service wrap coupled to the application
  • a method of providing scheduler services for scheduling tasks to be performed by applications residing on computing devices in a distributed network comprising the steps of: receiving a request for an 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 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 wakeup web service wrap, the wakeup web service wrap adapted for coupling to the application, wherein the application resides on a
  • the present invention relates to a common scheduler web service for use in distributed network environments .
  • 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.
  • the scheduling of tasks can be managed on a separate server.
  • the common scheduler web service is more flexible and more easily facilitates the remote scheduling of tasks in 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.
  • 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 service can be hosted, and its usage can be metered and provisioned as a billable service.
  • the present invention thus provides for a generic common scheduler web service, which is a web-based scheduler service that is distributed, remotely activated, and self-managed.
  • 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 themselves.
  • 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 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.
  • API application program interfaces
  • 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
  • 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
  • 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 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 network in an 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.
  • FIG. 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 20 that "wraps" or encapsulates a scheduler engine 22.
  • scheduler web service wrap 20 that "wraps" or encapsulates a scheduler engine 22.
  • 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 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 22.
  • 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".
  • 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 scheduler registry [not shown] .
  • the scheduler registry may be an XML file, or a database table, for example.
  • 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 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.
  • wakeup web service wrap 24 acts as a scheduler invoker.
  • scheduler engine 22 commands the application 26 associated with a given wakeup web service wrap 24 to 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 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.
  • 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.
  • 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.
  • 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 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 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.
  • the administrator may be more specifically referred to as a common scheduler administrator.
  • a common scheduler administrator may facilitate the scheduling of tasks on multiple remote machines from a single computing device.
  • scheduler web service wrap 20 and wakeup web service wrap 24 may be more easily understood by considering the analogy of a hotel wakeup call.
  • 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.
  • scheduler web service wrap 20 receives a request from an administrator, and subsequently at the scheduled time, a "wake-up call" will be communicated to wakeup web service wrap 24.
  • 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 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 servers, running a variety of different operating systems .
  • FIG. 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.
  • 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 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 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 Internet Mail Extensions (MIME) ) .
  • SOAP Hypertext Transfer Protocol
  • MIME Multipurpose Internet Mail Extensions
  • 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 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 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.
  • 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, 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.
  • scheduler web service wrap 20 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.
  • scheduler web service wrap 20 communicates an instruction to wakeup web service 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".
  • 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 module 36 to invoke application 26.
  • 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.
  • an application 26 in system 10 may itself utilize the scheduler engine 22 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 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 scheduler administrator) using scheduler management user interface (UI) 28 through scheduler web service interface 30 of scheduler web service wrap 20.
  • UI scheduler management user interface
  • FIGS 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.
  • FIGS 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 can be made that remain within the scope of the present invention.
  • 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 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.
  • 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 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 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.
  • scheduler web service wrap 20 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 .
  • 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 to make certain requests
  • scheduler management UI 28 is coupled to scheduler web service wrap 20.
  • Scheduler management UI 28 is remotely located from server 42 and provides remote users [not shown] with access to scheduler engine 22.
  • 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 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 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. 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 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, 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
  • a network of computing devices implementing more than one common scheduler web service.
  • more than one common scheduler web service may be configured.
  • 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.
  • a hub [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 embodiment of the invention.
  • 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.
  • 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 54 that may, optionally, be located on a remote computing device.
  • scheduler engine 22 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 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 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.
  • 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.
  • 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.
  • task information is retrieved from the scheduler registry.
  • the task information may include, for example, the task name, task location, and a session key.
  • the scheduler handler generates an instruction from the task information, which 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.
  • the wakeup web service wrap e.g. wakeup web service wrap 24 of Figure 2
  • the specified application e.g. application 26 of Figure 2
  • 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 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.
  • 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.
  • the scheduler web service interface e.g. scheduler web service interface 30 of Figure 4
  • a scheduler web service wrap e.g. scheduler web service wrap 20 of Figure 4
  • the request can be initiated by an application server administrator or by a common scheduler administrator.
  • 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. 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) .
  • a metering service e.g. metering service 54 of Figure 4
  • billing and/or rating service e.g. billing and rating service 56 of Figure 4
  • task information is retrieved from the scheduler registry.
  • the task information may include, for example, the task name, task location, and a session key.
  • the scheduler handler generates an instruction from the task information, which 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.
  • the scheduler handler 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 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.
  • 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 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 successfully may also be provided to a metering service, which in turn can be provided to a billing and/or rating service.
  • 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 .
  • 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 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.

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.

Description

A COMMON SCHEDULER WEB SERVICE FOR
DISTRIBUTED NETWORK ENVIRONMENTS
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.
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 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 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 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.
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, in order to facilitate the scheduling of tasks on two or more machines, a traditional scheduler service 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 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 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 applications are of en 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 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 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 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 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 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 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 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 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. 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 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 service can be hosted, and its usage can be metered and provisioned as a billable service.
The present invention thus 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 "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 themselves.
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 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.
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 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;
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 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 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.
Detailed Description of the Preferred Embodiments
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 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 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 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 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 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 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 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.
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 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 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 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 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 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 "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 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 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. 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 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 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 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 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 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, 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.
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 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 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 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 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 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 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 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 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 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 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 . 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 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 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 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 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. 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 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, 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 implementation alternatives that are possible and within the scope of the present invention.
Referring 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 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 [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 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 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 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 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.
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.
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.
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 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 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.
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.
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.
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. 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) .
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 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. 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 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 successfully may also be provided to a metering service, which in turn can be provided to a billing and/or rating service.
In this embodiment, 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 .
In variant embodiments, 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 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 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 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 made without departing from the scope of the invention defined in the claims appended hereto.

Claims

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 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 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 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 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.
PCT/GB2003/003944 2002-09-30 2003-09-12 A common scheduler web service for distributed network environments WO2004029805A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004539174A JP2006501543A (en) 2002-09-30 2003-09-12 Common scheduler web service for distributed network environments
EP03798240A EP1563378A2 (en) 2002-09-30 2003-09-12 A common scheduler web service for distributed network environments
AU2003263354A AU2003263354A1 (en) 2002-09-30 2003-09-12 A common scheduler web service for distributed network environments

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002406089A CA2406089A1 (en) 2002-09-30 2002-09-30 A common scheduler web service for distributed network environments
CA2,406,089 2002-09-30

Publications (2)

Publication Number Publication Date
WO2004029805A2 true WO2004029805A2 (en) 2004-04-08
WO2004029805A3 WO2004029805A3 (en) 2005-06-16

Family

ID=32034683

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2003/003944 WO2004029805A2 (en) 2002-09-30 2003-09-12 A common scheduler web service for distributed network environments

Country Status (7)

Country Link
EP (1) EP1563378A2 (en)
JP (1) JP2006501543A (en)
CN (1) CN1751293A (en)
AU (1) AU2003263354A1 (en)
CA (1) CA2406089A1 (en)
TW (1) TWI224916B (en)
WO (1) WO2004029805A2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007142710A1 (en) * 2006-03-01 2007-12-13 Computer Associates Think, Inc. Method and system for scheduling computer processes using a common scheduling interface
US8054487B2 (en) 2004-12-16 2011-11-08 International Business Machines Corporation Mechanism to create a reservation against a future scheduling object instantiation
CN103337003A (en) * 2013-05-07 2013-10-02 山西太钢不锈钢股份有限公司 Centralized scheduling method based on distributed terminal
EP2846503A4 (en) * 2013-07-02 2015-07-08 Huawei Tech Co Ltd Service scheduling method and apparatus, and network devices
US9716580B2 (en) 2012-05-31 2017-07-25 E&C Holding Company, Llc Virtual classroom management delivery system and method
EP3285458A1 (en) * 2011-02-10 2018-02-21 Trilliant Holdings, Inc. Device and method for facilitating secure communications over a cellular network
US10200444B1 (en) * 2005-08-24 2019-02-05 Jpmorgan Chase Bank, N.A. System and method for controlling a screen saver
CN110968401A (en) * 2018-09-28 2020-04-07 北京国双科技有限公司 Task scheduling method and device based on Quartz

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0426509D0 (en) 2004-12-03 2005-01-05 Ibm An email transaction system
CN101499995B (en) * 2008-01-29 2012-05-23 华为技术有限公司 Service scheduling method, system and apparatus for service scheduling
CN108446141B (en) * 2018-02-28 2021-01-12 武汉智博创享科技股份有限公司 Web front-end plug-in and method for scheduling and communicating based on same
CN109144478B (en) * 2018-07-12 2022-02-25 北京猫眼文化传媒有限公司 Component frame system and method of using the same
CN114706672B (en) * 2022-06-06 2022-09-16 安徽三禾一信息科技有限公司 Satellite autonomous mission planning system and method based on event-driven dynamic assembly

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010000194A1 (en) * 1998-08-21 2001-04-05 Sequeira William J. System and method for a master scheduler
WO2001082075A2 (en) * 2000-04-25 2001-11-01 Icplanet Acquisition Corporation System and method for scheduling execution of cross-platform computer processes
WO2002015006A1 (en) * 2000-08-14 2002-02-21 International Business Machines Corporation Accessing legacy applications from the internet
US20020029238A1 (en) * 1999-08-12 2002-03-07 Fujitsu Limited Scheduler, schedule adjusting method, distributed scheduler system and storage medium storing schedule adjusting program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010000194A1 (en) * 1998-08-21 2001-04-05 Sequeira William J. System and method for a master scheduler
US20020029238A1 (en) * 1999-08-12 2002-03-07 Fujitsu Limited Scheduler, schedule adjusting method, distributed scheduler system and storage medium storing schedule adjusting program
WO2001082075A2 (en) * 2000-04-25 2001-11-01 Icplanet Acquisition Corporation System and method for scheduling execution of cross-platform computer processes
WO2002015006A1 (en) * 2000-08-14 2002-02-21 International Business Machines Corporation Accessing legacy applications from the internet

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8054487B2 (en) 2004-12-16 2011-11-08 International Business Machines Corporation Mechanism to create a reservation against a future scheduling object instantiation
US10200444B1 (en) * 2005-08-24 2019-02-05 Jpmorgan Chase Bank, N.A. System and method for controlling a screen saver
US8972993B2 (en) 2006-03-01 2015-03-03 Ca, Inc. Method and system for scheduling computer processes using a common scheduling interface
WO2007142710A1 (en) * 2006-03-01 2007-12-13 Computer Associates Think, Inc. Method and system for scheduling computer processes using a common scheduling interface
US10198257B2 (en) 2011-02-10 2019-02-05 Trilliant Networks, Inc. Device and method for facilitating secure communications over a cellular network
EP3285458A1 (en) * 2011-02-10 2018-02-21 Trilliant Holdings, Inc. Device and method for facilitating secure communications over a cellular network
US10749658B2 (en) 2012-05-31 2020-08-18 E&C Holding Company, Llc Virtual classroom management delivery system and method
US9716580B2 (en) 2012-05-31 2017-07-25 E&C Holding Company, Llc Virtual classroom management delivery system and method
US10187192B2 (en) 2012-05-31 2019-01-22 E&C Holding Company, Llc Virtual classroom management delivery system and method
CN103337003A (en) * 2013-05-07 2013-10-02 山西太钢不锈钢股份有限公司 Centralized scheduling method based on distributed terminal
EP3364617A1 (en) * 2013-07-02 2018-08-22 Huawei Technologies Co., Ltd. Service scheduling method and apparatus, and network device
KR101617323B1 (en) * 2013-07-02 2016-05-02 후아웨이 테크놀러지 컴퍼니 리미티드 Service scheduling method and apparatus, and network device
US10489194B2 (en) 2013-07-02 2019-11-26 Huawei Technologies Co., Ltd. Dynamic generation and adjustment of scheduling logic for packet processing
EP2846503A4 (en) * 2013-07-02 2015-07-08 Huawei Tech Co Ltd Service scheduling method and apparatus, and network devices
US11016806B2 (en) 2013-07-02 2021-05-25 Huawei Technologies Co., Ltd. Dynamic generation and adjustment of scheduling logic for packet processing by sets of processing modules
CN110968401A (en) * 2018-09-28 2020-04-07 北京国双科技有限公司 Task scheduling method and device based on Quartz

Also Published As

Publication number Publication date
WO2004029805A3 (en) 2005-06-16
JP2006501543A (en) 2006-01-12
TW200412772A (en) 2004-07-16
EP1563378A2 (en) 2005-08-17
AU2003263354A1 (en) 2004-04-19
TWI224916B (en) 2004-12-01
CN1751293A (en) 2006-03-22
CA2406089A1 (en) 2004-03-30

Similar Documents

Publication Publication Date Title
JP3965185B2 (en) Scheduler that supports web service calls
US5881315A (en) Queue management for distributed computing environment to deliver events to interested consumers even when events are generated faster than consumers can receive
AU2002362654B2 (en) System for application server messaging with multiple dispatch pools
EP1438674B1 (en) System for integrating java servlets with asynchronous messages
JP4507620B2 (en) System for routing a service request to a service instance of a service providing infrastructure that provides resources for hosting the execution of a distributed service, and method and computer program thereof
AU2002362654A1 (en) System for application server messaging with multiple dispatch pools
US20040249950A1 (en) Transmitting and receiving messages through a customizable communication channel and programming model
EP1563378A2 (en) A common scheduler web service for distributed network environments
US20020116505A1 (en) Content provider and method for a computer system
WO2005106666A1 (en) A system and method for modeling and dynamically deploying services into a distributed networking architecture
US7191232B2 (en) Extendable provisioning mechanism for a service gateway
EP1523151A2 (en) Method, application server, computer program and corresponding product for automatic creation and configuration of license models and policies
US8458716B2 (en) Enterprise resource planning with asynchronous notifications of background processing events
EP1198101A1 (en) Provisioning mechanism for a service gateway
Moon et al. Real-time event kernel architecture for home-network gateway set-top-box (HNGS)
Krimmel et al. SAP NetWeaver Process Integration
Rooney et al. Edge server software architecture for sensor applications
Du et al. Research on service bus for distributed real-time control systems
EP1569106A2 (en) A scheduler supporting web service invocation
US20020124087A1 (en) System and method for providing dynamic service using front-end
Ahmed et al. The Cluster as Server
Lee et al. Service-oriented runtime infrastructure on grid
Dogdu An Extended Web Services Framework.
Lui et al. Endpoints and Adapters
Eryigit A highly adaptable generic event-based message channel design for loosely coupling software modules

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 167252

Country of ref document: IL

WWE Wipo information: entry into national phase

Ref document number: 929/DELNP/2005

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2004539174

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 20038234335

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2003798240

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2003798240

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2003798240

Country of ref document: EP