(57)【要約】【課題】分散ネットワーク環境内のコンピューティング装置に提供されるスケジューラ・ウェブ・サービスのホスティングを容易にするシステムおよび方法を提供すること。【解決手段】本発明の第１の態様によれば、システムは、第１のコンピューティング装置上に存在するスケジューラ・エンジンに結合するように適合され、共通スケジューラ・ウェブ・サービスを提供するスケジューラ・ウェブ・サービス・ラップを含む。システムはまた、分散ネットワーク内の第２のコンピューティング装置上に存在するアプリケーションに結合するように適合されるウェークアップ・ウェブ・サービス・ラップも含む。スケジューラ・エンジンが、指定のスケジュール・タスクを実行するようアプリケーションにコマンドを発行する時、スケジューラ・ウェブ・サービス・ラップが、ウェークアップ・ウェブ・サービス・ラップに命令を送信し、ウェークアップ・ウェブ・サービス・ラップが、命令に応答して、指定のスケジュール・タスクを実行するようアプリケーションにコマンドを発行する。共通スケジューラ・ウェブ・サービスの使用量を計測し、料金請求可能サービスとして提供することができる。
2006501543.tif 000002
【特許請求の範囲】
【請求項１】
分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためのシステムであって、
ａ．第１のコンピューティング装置上に存在するスケジューラ・エンジンに結合するように適合されるスケジューラ・ウェブ・サービス・ラップであって、スケジューラ・ウェブ・サービス・インターフェースを含み、それによって、前記スケジューラ・エンジンが、スケジュール・タスクをスケジュール通りに実行するようアプリケーションにコマンドを発行するようにプログラムされるスケジューラ・ウェブ・サービス・ラップと、
ｂ．前記分散ネットワーク内の第２のコンピューティング装置上に存在する第１のアプリケーションに結合するように適合されるウェークアップ・ウェブ・サービス・ラップであって、前記分散ネットワーク内で、前記第２のコンピューティング装置が、前記第１のコンピューティング装置からリモートに配置され、各ウェークアップ・ウェブ・サービス・ラップが、ウェークアップ・ウェブ・サービス・インターフェースを含むウェークアップ・ウェブ・サービス・ラップと、
前記スケジューラ・ウェブ・サービス・ラップがさらに、前記スケジューラ・ウェブ・サービス・インターフェースおよび前記ウェークアップ・ウェブ・サービス・インターフェースを介して、前記ウェークアップ・ウェブ・サービス・ラップと通信するように適合され、それによって、前記スケジューラ・エンジンが、指定のスケジュール・タスクを実行するよう前記第１のアプリケーションにコマンドを発行する時に、
ｉ．前記スケジューラ・ウェブ・サービス・ラップが、前記第１のアプリケーションに結合された前記ウェークアップ・ウェブ・サービス・ラップに命令を送信し、
ｉｉ．前記ウェークアップ・ウェブ・サービス・ラップが、前記命令に応答して、前記指定のスケジュール・タスクを実行するよう前記第１のアプリケーションにコマンドを発行するシステム。
【請求項２】
前記スケジューラ・ウェブ・サービス・ラップが、前記スケジューラ・エンジンの使用量を監視するための計測サービスに結合される、請求項１に記載のシステム。
【請求項３】
前記計測サービスが、前記使用量に応じて前記システムのユーザに料金請求する請求サービスに結合される、請求項２に記載のシステム。
【請求項４】
前記スケジューラ・ウェブ・サービス・ラップがさらに、
ｉ．前記指定のスケジュール・タスクを指定のスケジュール通りに実行するよう前記第１のアプリケーションに求める要求をアドミニストレータから前記スケジューラ・ウェブ・サービス・インターフェースを介して受信し、
ｉｉ．前記要求を前記スケジューラ・エンジンに送信し、それによって、前記スケジューラ・エンジンに、前記指定のスケジュール・タスクを前記指定のスケジュール通りに実行するよう前記第１のアプリケーションにコマンドを発行させるように適合される、請求項１に記載のシステム。
【請求項５】
前記スケジューラ・ウェブ・サービス・インターフェースが、前記要求を共通スケジューラ・アドミニストレータから受信するように適合され、前記共通スケジューラ・アドミニストレータが、前記第１のコンピューティング装置のユーザである、請求項４に記載のシステム。
【請求項６】
前記スケジューラ・ウェブ・サービス・インターフェースが、前記要求をアプリケーション・サーバ・アドミニストレータから受信するように適合され、前記アプリケーション・サーバ・アドミニストレータが、前記第１のアプリケーションである、請求項４に記載のシステム。
【請求項７】
前記スケジューラ・ウェブ・サービス・インターフェースが、前記要求をアプリケーション・サーバ・アドミニストレータから受信するように適合され、前記アプリケーション・サーバ・アドミニストレータが、前記分散ネットワーク内のコンピューティング装置上に存在する第２のアプリケーションである、請求項４に記載のシステム。
【請求項８】
前記スケジューラ・ウェブ・サービス・ラップがさらに、指定のスケジュール・タスクの取り消し、指定のスケジュール・タスクの中断、指定のスケジュール・タスクの再開、指定のスケジュール・タスクのステータスの取得、およびスケジューラ・レジストリからのタスクの消去からなる群から選択される１つまたは複数の要求を受信し、前記スケジューラ・エンジンに送信するように適合される、請求項４に記載のシステム。
【請求項９】
前記システムが、前記スケジューラ・ウェブ・サービス・ラップと前記ウェークアップ・ウェブ・サービス・ラップのうちの少なくとも一方に結合される、少なくとも１つの時差帯マッピング・ユーティリティ・モジュールを含み、前記時差帯マッピング・ユーティリティ・モジュールが、前記第２のコンピューティング装置によって定義される第１のスケジュール時刻と、前記第１のコンピューティング装置によって定義される対応する第２のスケジュール時刻とを相互に変換するようにプログラムされる、請求項４に記載のシステム。
【請求項１０】
分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供する方法であって、
ａ．指定のスケジュール・タスクを指定のスケジュール通りに実行するよう第１のアプリケーションに求める要求をアドミニストレータから受信するステップであって、前記要求がスケジューラ・ウェブ・サービス・ラップのスケジューラ・ウェブ・サービス・インターフェースを介して受信され、前記スケジューラ・ウェブ・サービス・ラップが、第１のコンピューティング装置上に存在するスケジューラ・エンジンに結合するように適合され、前記スケジューラ・エンジンが、スケジュール・タスクをスケジュール通りに実行するようアプリケーションにコマンドを発行するようにプログラムされるステップと、
ｂ．前記要求を前記スケジューラ・エンジンに送信し、それによって、前記スケジューラ・エンジンが、前記指定のスケジュール・タスクを前記指定のスケジュール通りに実行するよう前記第１のアプリケーションにコマンドを発行するステップと、
ｃ．前記スケジューラ・エンジンが、前記指定のスケジュール・タスクを実行するよう前記第１のアプリケーションにコマンドを発行した時に、前記第１のアプリケーションに結合されたウェークアップ・ウェブ・サービス・ラップに命令を送信するステップであって、前記命令が前記スケジューラ・ウェブ・サービス・インターフェースおよび前記ウェークアップ・ウェブ・サービス・ラップのウェークアップ・ウェブ・サービス・インターフェースを介して送信され、前記ウェークアップ・ウェブ・サービス・ラップが、前記第１のアプリケーションに結合されるように適合され、前記第１のアプリケーションが、第２のコンピューティング装置上に存在し、前記分散ネットワーク内で、前記第２のコンピューティング装置が、前記第１のコンピューティング装置からリモートに配置されるステップと、
ｄ．前記命令に応答して、前記指定のスケジュール・タスクを実行するよう前記第１のアプリケーションにコマンドを発行するステップとを含む方法。
【請求項１１】
前記方法が、計測サービスを使用して、前記スケジューラ・エンジンの使用量を監視するステップをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記方法が、前記計測サービスに結合された請求サービスを使用して、前記使用量に応じてユーザに料金請求するステップをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記スケジューラ・ウェブ・サービス・インターフェースが、前記要求を共通スケジューラ・アドミニストレータから受信するように適合され、前記共通スケジューラ・アドミニストレータが、前記第１のコンピューティング装置のユーザである、請求項１０に記載の方法。
【請求項１４】
前記スケジューラ・ウェブ・サービス・インターフェースが、前記要求をアプリケーション・サーバ・アドミニストレータから受信するように適合され、前記アプリケーション・サーバ・アドミニストレータが、前記第１のアプリケーションである、請求項１０に記載の方法。
【請求項１５】
前記スケジューラ・ウェブ・サービス・インターフェースが、前記要求をアプリケーション・サーバ・アドミニストレータから受信するように適合され、前記アプリケーション・サーバ・アドミニストレータが、前記分散ネットワーク内のコンピューティング装置上に存在する第２のアプリケーションである、請求項１０に記載の方法。
【請求項１６】
前記方法が、指定のスケジュール・タスクの取り消し、指定のスケジュール・タスクの中断、指定のスケジュール・タスクの再開、指定のスケジュール・タスクのステータスの取得、およびスケジューラ・レジストリからのタスクの消去からなる群から選択される１つまたは複数の要求を受信し、前記スケジューラ・エンジンに送信するステップをさらに含む、請求項１０に記載の方法。
【請求項１７】
前記方法が、時差帯マッピング・ユーティリティ・モジュールを使用して、前記第２のコンピューティング装置によって定義される第１のスケジュール時刻と、前記第１のコンピューティング装置によって定義される対応する第２のスケジュール時刻とを相互に変換するステップをさらに含み、前記時差帯マッピング・ユーティリティ・モジュールが、前記スケジューラ・ウェブ・サービス・ラップと前記ウェークアップ・ウェブ・サービス・ラップのうちの少なくとも一方に結合される、請求項１０に記載の方法。
【請求項１８】
分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供する方法のステップを実行する命令を含むコンピュータ可読媒体であって、前記方法が、
ａ．指定のスケジュール・タスクを指定のスケジュール通りに実行するよう第１のアプリケーションに求める要求をアドミニストレータから受信するステップであって、前記要求がスケジューラ・ウェブ・サービス・ラップのスケジューラ・ウェブ・サービス・インターフェースを介して受信され、前記スケジューラ・ウェブ・サービス・ラップが、第１のコンピューティング装置上に存在するスケジューラ・エンジンに結合するように適合され、前記スケジューラ・エンジンが、スケジュール・タスクをスケジュール通りに実行するようアプリケーションにコマンドを発行するようにプログラムされるステップと、
ｂ．前記要求を前記スケジューラ・エンジンに送信し、それによって、前記スケジューラ・エンジンが、前記指定のスケジュール・タスクを前記指定のスケジュール通りに実行するよう前記第１のアプリケーションにコマンドを発行するステップと、
ｃ．前記スケジューラ・エンジンが、前記指定のスケジュール・タスクを実行するよう前記第１のアプリケーションにコマンドを発行した時に、前記第１のアプリケーションに結合されたウェークアップ・ウェブ・サービス・ラップに命令を送信するステップであって、前記命令が前記スケジューラ・ウェブ・サービス・インターフェースおよび前記ウェークアップ・ウェブ・サービス・ラップのウェークアップ・ウェブ・サービス・インターフェースを介して送信され、前記ウェークアップ・ウェブ・サービス・ラップが、前記第１のアプリケーションに結合されるように適合され、前記第１のアプリケーションが、第２のコンピューティング装置上に存在し、前記分散ネットワーク内で、前記第２のコンピューティング装置が、前記第１のコンピューティング装置からリモートに配置されるステップと、
ｄ．前記命令に応答して、前記指定のスケジュール・タスクを実行するよう前記第１のアプリケーションにコマンドを発行するステップとを含むコンピュータ可読媒体。
【請求項１９】
前記方法が、計測サービスを使用して、前記スケジューラ・エンジンの使用量を監視するステップをさらに含む、請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記方法が、前記計測サービスに結合された請求サービスを使用して、前記使用量に応じてユーザに料金請求するステップをさらに含む、請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記スケジューラ・ウェブ・サービス・インターフェースが、前記要求を共通スケジューラ・アドミニストレータから受信するように適合され、前記共通スケジューラ・アドミニストレータが、前記第１のコンピューティング装置のユーザである、請求項１８に記載のコンピュータ可読媒体。
【請求項２２】
前記スケジューラ・ウェブ・サービス・インターフェースが、前記要求をアプリケーション・サーバ・アドミニストレータから受信するように適合され、前記アプリケーション・サーバ・アドミニストレータが、前記第１のアプリケーションである、請求項１８に記載のコンピュータ可読媒体。
【請求項２３】
前記スケジューラ・ウェブ・サービス・インターフェースが、前記要求をアプリケーション・サーバ・アドミニストレータから受信するように適合され、前記アプリケーション・サーバ・アドミニストレータが、前記分散ネットワーク内のコンピューティング装置上に存在する第２のアプリケーションである、請求項１８に記載のコンピュータ可読媒体。
【請求項２４】
前記方法が、指定のスケジュール・タスクの取り消し、指定のスケジュール・タスクの中断、指定のスケジュール・タスクの再開、指定のスケジュール・タスクのステータスの取得、およびスケジューラ・レジストリからのタスクの消去からなる群から選択される１つまたは複数の要求を受信し、前記スケジューラ・エンジンに送信するステップをさらに含む、請求項１８に記載のコンピュータ可読媒体。
【請求項２５】
前記方法が、前記第２のコンピューティング装置によって定義される第１のスケジュール時刻と、前記第１のコンピューティング装置によって定義される対応する第２のスケジュール時刻とを相互に変換するステップをさらに含む、請求項１８に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ウェブ・ベースのスケジューラ・アプリケーションに関し、より詳細には、分散ネットワーク環境内のコンピューティング装置に提供されるスケジューラ・ウェブ・サービス（scheduler web service）のホスティングを容易にするシステムおよび方法に関する。
【背景技術】
【０００２】
スケジューラ・アプリケーション（「スケジューラ・サービス」とも呼ばれる）は、ユーザとコンピューティング・アプリケーションの両方に、スケジュールに従って特定のタスクを実行するよう要求する能力を提供する。このスケジュールは、特定の時刻に、または特定のイベントが発生した時に、特定のタスクが実行されるよう要求することができる。あるいは、スケジュールは、反復して複数の時刻に（おそらく所定の時間間隔で）、または反復するイベントもしくは一連の異なるイベントが発生するたびに、特定のタスクが実行されるよう要求することができる。その後、スケジュールに従って、スケジューラ・サービスは、特定のタスクを要求されたように実行するよう、１つまたは複数のアプリケーションにコマンドを発行することができる。
【０００３】
従来、スケジューラ・サービスは、ローカル・サーバ上で実行されるアプリケーションとして実施されてきた。これらのアプリケーションは、当該サーバのタスクをスケジュールし、当該サーバ上でタスクを実行する。例えば、マイクロソフト・コーポレーションのＷｉｎｄｏｗｓ（商標）オペレーティング・システムは、組み込みの汎用スケジューラ・サービスを提供し、そのスケジューラ・サービスを使用して、オペレーティング・システムがインストールされているコンピュータ内でローカルに実行される１つまたは複数のアプリケーション・タスクをスケジュールすることができる。しかし、当該コンピュータがネットワーク内の他のコンピューティング装置に接続されている場合、ネットワーク内の別のコンピューティング装置からリモートにタスクをスケジュールできないことが、上記の組み込みスケジューラ・サービスの問題点になっている。同様に、上記の組み込みスケジューラ・サービスは、ネットワーク内の別のコンピューティング装置上でタスクが実行されるようリモートでコマンドを発行することができない。
【０００４】
上述した組み込みの汎用スケジューラなど、従来のスケジューラの多くは、分散ネットワーク環境内で有効に機能するように適合させることが容易ではない。一般に、２以上のマシン上でタスクのスケジュールを円滑に行えるようにするには、従来のスケジューラ・サービスを各マシンにインストールし、それを各マシン上で実行しなければならない。さらに、２以上のマシン用にスケジュールされたタスクを削除または変更するのに、ユーザはしばしば、各マシンにログオンし、各マシン上でスケジュールされたタスクを削除または変更するよう求められる。
【０００５】
一般に、従来のスケジューラ・サービスによって提供される機能は限られている。これらの従来のスケジューラ・サービスの多くは、特定のコマンドのスケジュールと実行が行えるだけであり、その他の実行可能アプリケーションまたはタスクをスケジュールし、実行するように適合させることは容易ではない。さらに、これらの従来のスケジューラ・サービスの多くは、スケジューラ・サービスの使用量を監視するメカニズムを備えておらず、例えば、使用量に応じてユーザに料金を請求することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、より柔軟性のあるスケジューラ・サービスが、特に分散ネットワーク環境で使用されるスケジューラ・サービスで必要とされている。
【課題を解決するための手段】
【０００７】
取引がインターネット上で広く行われるようになったことで、企業が自社のアプリケーションと他社のアプリケーションとを統合することへの要求が高まってきた。これらのアプリケーションはしばしば、異なるプログラミング言語で記述された企業独自のソフトウェアを使用して実装されている。
【０００８】
異種のインターネット・ベースのアプリケーションまたはサービスを統合するための周知の解決策の１つ、「ウェブ・サービス」という概念を導入した。ウェブ・サービスは、プロトコルを使用してインターネットを介して起動できる１つまたは複数のアプリケーション機能として定義することができる。このコンテキストで使用できるプロトコルの一例は、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ：Simple Object Access Protocol）であり、ＳＯＡＰは、ウェブ・サービスを提供するため、ウェブ・サーバとしても知られるインターネット・ベースのアプリケーション・サーバによって使用することができる。ＳＯＡＰは、非集中化された分散ネットワーク環境で情報を交換するためにしばしば使用されるプロトコルである。
【０００９】
本発明は、分散ネットワーク環境内のコンピューティング装置に提供されるスケジューラ・ウェブ・サービスのホスティングを容易にするシステムおよび方法に関する。
【００１０】
本発明の第１の態様によれば、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためのシステムが提供され、このシステムは、第１のコンピューティング装置上に存在するスケジューラ・エンジン（scheduler engine）に結合するように適合されるスケジューラ・ウェブ・サービス・ラップ（scheduler webservice wrap）であって、スケジューラ・ウェブ・サービス・インターフェース（scheduler web service interface）を含み、それによって、スケジューラ・エンジンが、スケジュール・タスク（scheduledtask）をスケジュール通りに実行するようアプリケーションにコマンドを発行するようにプログラムされるスケジューラ・ウェブ・サービス・ラップと、分散ネットワーク内の第２のコンピューティング装置上に存在するアプリケーションに結合するように適合されるウェークアップ・ウェブ・サービス・ラップであって、分散ネットワーク内で、第２のコンピューティング装置が、第１のコンピューティング装置からリモートに配置され、各ウェークアップ・ウェブ・サービス・ラップが、ウェークアップ・ウェブ・サービス・インターフェースを含むウェークアップ・ウェブ・サービス・ラップとを含み、スケジューラ・ウェブ・サービス・ラップがさらに、スケジューラ・ウェブ・サービス・インターフェースおよびウェークアップ・ウェブ・サービス・インターフェースを介して、ウェークアップ・ウェブ・サービス・ラップと通信するように適合され、それによって、スケジューラ・エンジンが、指定のスケジュール・タスクを実行するようアプリケーションにコマンドを発行する時に、スケジューラ・ウェブ・サービス・ラップが、アプリケーションに結合されたウェークアップ・ウェブ・サービス・ラップに命令を送信し、ウェークアップ・ウェブ・サービス・ラップが、命令に応答して、指定のスケジュール・タスクを実行するようアプリケーションにコマンドを発行する。
【００１１】
本発明の別の態様によれば、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供する方法が提供され、この方法は、指定のスケジュール・タスクを指定のスケジュール通りに実行するようアプリケーションに求める要求をアドミニストレータから受信するステップであって、要求がスケジューラ・ウェブ・サービス・ラップのスケジューラ・ウェブ・サービス・インターフェースを介して受信され、スケジューラ・ウェブ・サービス・ラップが、第１のコンピューティング装置上に存在するスケジューラ・エンジンに結合するように適合され、スケジューラ・エンジンが、スケジュール・タスクをスケジュール通りに実行するようアプリケーションにコマンドを発行するようにプログラムされるステップと、要求をスケジューラ・エンジンに送信し、それによって、スケジューラ・エンジンが、指定のスケジュール・タスクを指定のスケジュール通りに実行するようアプリケーションにコマンドを発行するステップと、スケジューラ・エンジンが、指定のスケジュール・タスクを実行するようアプリケーションにコマンドを発行した時に、アプリケーションに結合されたウェークアップ・ウェブ・サービス・ラップに命令を送信するステップであって、命令がスケジューラ・ウェブ・サービス・インターフェースおよびウェークアップ・ウェブ・サービス・ラップのウェークアップ・ウェブ・サービス・インターフェースを介して送信され、ウェークアップ・ウェブ・サービス・ラップが、アプリケーションに結合されるように適合され、アプリケーションが、第２のコンピューティング装置上に存在し、分散ネットワーク内で、第２のコンピューティング装置が、第１のコンピューティング装置からリモートに配置されるステップと、命令に応答して、指定のスケジュール・タスクを実行するようアプリケーションにコマンドを発行するステップとを含む。
【００１２】
本発明のさらなる実施形態によれば、本発明の一実施形態の方法のステップを実行する命令は、コンピュータ可読媒体に格納することができる。
【００１３】
本発明は、分散ネットワーク環境で使用する共通スケジューラ・ウェブ・サービスに関する。本発明の好ましい実施形態では、共通スケジューラ・ウェブ・サービスは、ウェブ・サービスとして実施され、ウェブ・サービス・インターフェースを介して、分散ネットワーク内のコンピューティング装置上のクライアント・アプリケーションによってリモートに起動することができる。その結果、タスクのスケジューリングを、別々のサーバ上で管理することができる。ローカルに実行しなければならないスケジュール・タスクの拡張構成を必要とする従来のスケジューラ・サービスと比べて、共通スケジューラ・ウェブ・サービスは、より柔軟性があり、分散ネットワーク環境においてタスクのリモート・スケジューリングをより容易に行えるようになる。共通スケジューラ・ウェブ・サービスは、各マシン上に別々のスケジューラ・サービスを構成する必要なく、複数のマシン上で実行されるようタスクにコマンドを発行することができる。これは、ウェブ・ホスティング環境において特に有利である。
【００１４】
ウェブ・サービスとして、共通スケジューラ・ウェブ・サービスは、ウェブ・サービスが一般に容易にファイアウォールをくぐり抜けられることを利用することができる。さらに、共通スケジューラ・ウェブ・サービスは、ホストされることができ、その使用量を計測し、料金請求可能サービスとして提供することができる。
【００１５】
したがって、本発明は、分散され、リモートに起動され、自己管理されるウェブ・ベースのスケジューラ・サービスである、汎用的な共通スケジューラ・ウェブ・サービスを提供する。概念的に、「ウェークアップ・コール（wake-up call）」モデルが、特定のタスクを実行するようにスケジュールされたプロセスおよびアプリケーションを起動するために使用される。リモート・プロセスおよびリモート・アプリケーションは、ウェブ・ベースのスケジューラ・サービスに自らを登録することで、それまでスケジューラが認識していなかったプロセスおよびアプリケーションでも、単発的なスケジューリングのために、基礎をなすスケジューリング・エンジンを使用することができる。タスクをどうスケジュールするかの決定は、スケジューリング・エンジンによって行われるのではなく、代わりに、プロセスおよびアプリケーション自体によって行われる。
【００１６】
本発明の好ましい一実施形態では、共通スケジューラ・ウェブ・サービスは、従来のスケジューラ・サービスをホステッド・ウェブ・サービスとしてクライアント・アプリケーション間で共用できるように、任意の従来のスケジューラ・サービスを「ラップ」するのに使用できる、ウェブ・サービス・アプリケーション・プログラム・インターフェース（ＡＰＩ）の集まりである。したがって、本発明によれば、異なるスケジューラ・エンジンをカプセル化または「ラップ」し、共通スケジューラ・ウェブ・サービスとして、ユーザおよびコンピューティング・アプリケーションに提供することができる。共通スケジューラ・ウェブ・サービスは、共通ウェブ・サービス・インターフェースをユーザおよびコンピューティング・アプリケーションに提供するので、異なるオペレーティング・システム上で動作するコンピューティング装置は、同じスケジューラ・エンジンを使用して、タスクをスケジュールすることができる。
【００１７】
本発明をより良く理解するため、またどのようにすれば本発明を実行できるかをより明確に示すため、本発明の好ましい実施形態および変形実施形態を示した添付の図面を、例として参照する。
【発明を実施するための最良の形態】
【００１８】
図１は、１０として全体が示される、本発明の好ましい一実施形態による、共通スケジューラ・ウェブ・サービスが使用されるシステムの概念概略図である。システム１０は、スケジューラ・エンジン２２を「ラップ」またはカプセル化するスケジューラ・ウェブ・サービス・ラップ２０によって提供される、共通スケジューラ・ウェブ・サービスを含む。このようにして、スケジューラ・エンジン２２の管理機能にアクセスを求める様々なユーザおよびコンピューティング・アプリケーションに、スケジューラ・ウェブ・サービス・ラップ２０によるスケジューラ・ウェブ・サービス・インターフェースを提供することによって、異なるスケジューラ・エンジン２２をカプセル化し、スケジューラ・ウェブ・サービスとして提供することができる。
【００１９】
システム１０はまた、１つまたは複数のウェークアップ・ウェブ・サービス（wakeupweb service）を含み、各ウェークアップ・ウェブ・サービスは、少なくとも１つのアプリケーション２６を「ラップ」またはカプセル化するウェークアップ・ウェブ・サービス・ラップ２４によって提供される。各ウェークアップ・ウェブ・サービス・ラップ２４は、指定のスケジュール・タスクを実行するよう、それがラップするアプリケーション２６にコマンドを発行するために使用される。
【００２０】
スケジューラ・ウェブ・サービス・ラップ２０とウェークアップ・ウェブ・サービス・ラップ２４は、システム１０において、それぞれ異なる役割を担う。スケジューラ・ウェブ・サービス・ラップ２０は、共通スケジューラ・ウェブ・サービスを提供し、このサービスは、スケジューラ・エンジン２２を使用して、スケジュール・タスクがアプリケーション２６によってスケジュール通りに実行されるように管理する。例えば、スケジュール・タスクは、「週報の作成」または「カタログの大規模ロード／ストア」といった指定のタスクを実行する、アプリケーションによって生成されたプログラムとすることができる。
【００２１】
指定のタスクがスケジュールされる場合、スケジューラ・ジョブ（schedulerjob）が生成され、従来のスケジューラ・サービスによって一般に実行されるように、スケジューラ・エンジン２２は、現在時刻とスケジュール時刻が一致した時に、スケジューラ・ジョブを実行する責任をもつ。スケジューラ・ジョブに関する情報は、スケジューラ・レジストリ（schedulerregistry）（図示せず）に保存される。スケジューラ・レジストリは、例えば、ＸＭＬファイルまたはデータベース・テーブルとすることができる。スケジューラ・ジョブが実行される場合、スケジューラ・エンジン２２は、指定のスケジュール・タスクを実行するよう、スケジューラ・ジョブに関連するアプリケーションにコマンドを発行する。スケジュール・タスクの管理は、スケジュール・タスクの生成、およびスケジュール・タスクを実行するよう命じるアプリケーションへのコマンド発行に限定する必要はなく、例えば、指定のスケジュール・タスクの取り消し、指定のスケジュール・タスクの中断、先に中断された指定のスケジュール・タスクの再開、指定のスケジュール・タスクのステータスの取得、およびスケジューラ・レジストリからのタスクの消去を求める要求の処理を含むこともできる。
【００２２】
一方、ウェークアップ・ウェブ・サービス・ラップ２４は、スケジューラ起動者として動作する。スケジューラ・エンジン２２が、指定のスケジュール・タスクを実行するよう、あるウェークアップ・ウェブ・サービス・ラップ２４に関連するアプリケーション２６にコマンドを発行する場合、スケジューラ・ウェブ・サービス・ラップ２０は、ウェークアップ・ウェブ・サービス・ラップ２４に命令を送信する。ウェークアップ・ウェブ・サービス・ラップ２４は、スケジューラ・ウェブ・サービス・ラップ２０から受信した命令に応答して、指定のスケジュール・タスクを実行するアプリケーション２６を起動する。ウェークアップ・ウェブ・サービス・ラップ２４は次に、スケジューラ・レジストリに保存するため、タスクの正常終了または異常終了を通知するステータス情報を、スケジューラ・ウェブ・サービス・ラップ２０とスケジューラ・エンジン２２に返送することもできる。
【００２３】
本発明の好ましい実施形態では、スケジューラ・ウェブ・サービス・ラップ２０とウェークアップ・ウェブ・サービス・ラップ２４は、異なるコンピューティング装置上に存在する。したがって、アプリケーションを、スケジューラ・エンジン２２によってリモートで起動することができる。
【００２４】
システム１０内のアプリケーション２６は、それ自体が、スケジューラ・ジョブの生成を要求することによって、共通スケジューラ・ウェブ・サービスによって提供されるスケジューラ・エンジン２２を利用して、指定のアプリケーションが指定のスケジュール・タスクを指定のスケジュール通りに実行するよう要求することができる。スケジューラ・エンジン２２に対する要求は、スケジューラ・ウェブ・サービス・ラップ２０を介して行われる。このようにして、スケジュール・タスクをスケジュール通りに実行するよう求める要求を遠隔から行うことができる。多くの場合、スケジューラ・ジョブの生成を要求するアプリケーションと、関連するスケジュール・タスクを実行するアプリケーションとは同じであるが、そうである必要はない。１つのアプリケーションは、１つまたは複数の異なるアプリケーションがスケジュール・タスクを実行するよう要求することができ、これらのアプリケーションは、分散ネットワーク内の同じコンピューティング装置上に存在することも、または異なるコンピューティング装置上に存在することもできる。
【００２５】
スケジューラ・ジョブを生成するよう求める要求は、スケジューラ管理ユーザ・インターフェース（ＵＩ）（scheduler management user interface）２８を介して、ユーザが行うこともでき、スケジューラ管理ユーザ・インターフェースは、リモート・コンピューティング装置に存在することも、またはスケジューラ・エンジンが存在するのと同じコンピューティング装置に存在することもできる。スケジューラ・エンジン２２に対する要求は、スケジューラ・ウェブ・サービス・ラップ２０を介して行われる。このようにして、スケジュール・タスクをスケジュール通りに実行するよう求める要求をリモートに行うことができる。
【００２６】
スケジューラ・ジョブを生成するよう要求するユーザまたはコンピューティング・アプリケーションは、アドミニストレータと呼ばれることがある。アプリケーション２６が要求を行う第１のケースでは、アドミニストレータは、より具体的に、アプリケーション・サーバ・アドミニストレータ（application server administrator）と呼ばれることがある。アプリケーション・サーバ・アドミニストレータは、要求を自動的に発行するアプリケーションとすることができる一方、アプリケーションを使用して要求を発行する人間（すなわち、手動プロセス）とすることもできる。ユーザがスケジューラ管理ＵＩ２８を介して要求を行う第２のケースでは、アドミニストレータは、より具体的に、共通スケジューラ・アドミニストレータ（commonscheduler administrator）と呼ばれることがある。図４を参照しながら以下で説明するように、共通スケジューラ・アドミニストレータは、単一のコンピューティング装置から、複数のリモート・マシン上のタスクを容易にスケジュールできるようにする。
【００２７】
スケジューラ・ウェブ・サービス・ラップ２０およびウェークアップ・ウェブ・サービス・ラップ２４の動作は、ホテルのモーニング・コールとの類似性を考えることによって、より容易に理解することができるであろう。一般的なホテルのモーニング・コールのシナリオでは、ホテルの宿泊客は、ホテルが提供するモーニング・コール・サービスにモーニング・コールを掛けてくれるよう要求する。翌朝、宿泊客は、指定の時刻にモーニング・コールを受け、指定の仕事をこなすことができる。本発明では、スケジューラ・ウェブ・サービス・ラップ２０は、アドミニストレータから要求を受信し、その後、スケジュール時刻に、「ウェークアップ・コール」が、ウェークアップ・ウェブ・サービス・ラップ２４に送信される。このケースでは、ウェークアップ・ウェブ・サービスは、アプリケーション・サーバ上の特定のアプリケーションを起動して、指定のタスクを実行させる責任をもつクライアント・エージェントの役割を果たす。
【００２８】
ただ１つのスケジューラ・サービスを１つのコンピューティング装置上に構成しさえすればよいので、共通スケジューラ・ウェブ・サービスは、従来のスケジューラ・サービスよりも容易に構成される。スケジューラ・エンジン２２の機能を利用したいと望む他のコンピューティング装置上のアプリケーションは、共通スケジューラ・ウェブ・サービスを共用する。したがって、共通スケジューラ・ウェブ・サービスは、有利には、分散ネットワーク環境での使用に適合させることができる。さらに、スケジューラ・ウェブ・サービス・ラップ２０とウェークアップ・ウェブ・サービス・ラップ２４はともに、様々な異なるオペレーティング・システムを実行する様々なタイプのクライアントおよびサーバにサービスを提供できるように、（例えば、図２に示すような）プラットフォーム独立なスケジューラ・ウェブ・サービス・インターフェースを提供する。
【００２９】
図２は、１０として全体が示される、本発明の一実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためのシステムを示した概略図である。図２は、図１に図示された概念的要素についてより詳細な概観を提供する。
【００３０】
図２に示すように、スケジューラ・ウェブ・サービス・ラップ２０は、スケジューラ管理ＵＩ２８を介するリモート・ユーザとアプリケーション２６からのスケジューラ・エンジン２２へのアクセスを制御することによって、スケジューラ・エンジン２２を効果的に「ラップ」する。スケジューラ・ウェブ・サービス・ラップ２０とスケジューラ・エンジン２２は、一般に同一サーバ（図示せず）上に存在するが、状況に応じて別々のコンピューティング装置上に存在してもよい。スケジューラ・ウェブ・サービス・ラップ２０は、ユーザおよびアプリケーション２６に、スケジューラ・ハンドラ（scheduler handler）３２へのスケジューラ・ウェブ・サービス・インターフェース３０を介して、スケジューラ・エンジン２２の機能へのアクセスを提供する。
【００３１】
スケジューラ・ウェブ・サービス・インターフェース３０は、ウェブ・サービス定義言語（ＷＳＤＬ）を使用して実装される。ＷＳＤＬは、ネットワーク・サービスを、文書指向または手続き指向情報を含むメッセージに基づいて動作する１組のエンドポイントとして記述するための拡張マークアップ言語（ＸＭＬ）フォーマットである。動作およびメッセージは、抽象的に記述され、その後、エンドポイントを定義するため、具体的なネットワーク・プロトコルおよびメッセージ・フォーマットに結び付けられる。関連する具体的なエンドポイントは、抽象的なエンドポイント（すなわち、サーバ）に組み込まれる。ＷＳＤＬは、（例えば、ＳＯＡＰ、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、多目的インターネット・メール拡張（ＭＩＭＥ）など）どのようなメッセージ・フォーマットやネットワーク・プロトコルが通信で使用されるかに関わらず、エンドポイントおよびメッセージを記述できるように拡張可能である。「生成」や「取り消し」といった動作およびメッセージを記述するＷＳＤＬファイルは、スケジューラ・ウェブ・サービス・インターフェース３０によって利用される。このインターフェースを介して、アプリケーション２６およびスケジューラ管理ＵＩ２８は、タスクをスケジュールし、管理するため、スケジューラ・ハンドラ３２を呼び出すことができ、このインターフェースは、プラットフォーム独立である。
【００３２】
スケジューラ・ハンドラ３２は、デフォルトのスケジューラ・ウェブ・サービス実装（schedulerweb service implementation）３３から拡張された、スケジューラ動作を処理する個別の実装であり、特定のスケジューラ・エンジン２２向けとなっている。図２には、１つのスケジューラ・エンジン２２しか示されていないが、スケジューラ・ウェブ・サービス・ラップ２０は、複数のスケジューラ・エンジンに結合するように適合することができる。例えば、スケジューラ・ウェブ・サービス・ラップ２０内に、デフォルトのスケジューラ・ウェブ・サービス実装３３から拡張された異なるスケジューラ・ハンドラ３２を備えることによって、システム１０内で、（様々な従来のスケジューラ・エンジンを含む）異なるスケジューラ・エンジンを使用することができる。異なるスケジューラ・エンジンは異なる挙動をとることができるが、こうした差異は、単一のスケジューラ・ウェブ・サービス・インターフェース３０の背後にカプセル化したほうが望ましいので、このケースでは、異なるスケジューラ・ハンドラを使用するのが好ましい。
【００３３】
同様に、各ウェークアップ・ウェブ・サービス・ラップ２４も、共通スケジューラ・ウェブ・サービスからの、より具体的には、スケジューラ・ウェブ・サービス・ラップ２０のスケジューラ・ウェブ・サービス・インターフェース３０からのアプリケーション２６へのアクセスを制御することによって、アプリケーション２６を効果的に「ラップ」する。ウェークアップ・ウェブ・サービス・ラップ２４とアプリケーション２６は、一般に同一サーバ（図示せず）上に存在するが、状況に応じて別々のコンピューティング装置上に存在してもよい。ウェークアップ・ウェブ・サービス・ラップ２４は、スケジューラ・ウェブ・サービス・インターフェース３０のために、ウェークアップ・ウェブ・サービス・インターフェース３４、およびアプリケーション２６を起動するウェークアップ・ウェブ・サービスを実施するモジュール３６を介した、アプリケーション２６へのインターフェースを提供する。
【００３４】
スケジューラ・ウェブ・サービス・ラップ２０とウェークアップ・ウェブ・サービス・ラップ２４の通信は、それぞれスケジューラ・ウェブ・サービス・インターフェース３０およびウェークアップ・ウェブ・サービス・インターフェース３４を介して達成される。スケジューラ・エンジン２２が、指定のスケジュール・タスクを実行するよう、特定のアプリケーション２６にコマンドを発行する場合、スケジューラ・ウェブ・サービス・ラップ２０は、命令をウェークアップ・ウェブ・サービス・ラップ２４に送信し、その後、ウェークアップ・ウェブ・サービス・ラップ２４のモジュール３６が、命令に応答して、指定のスケジュール・タスクを実行するよう、アプリケーション２６にコマンドを発行する。この命令の送信は、「ウェークアップ・コール」と呼ばれる。本発明のこの好ましい実施形態では、命令は、セッション・キーと、指定のスケジュール・タスクに関連するスケジュール・ジョブのタスク名だけを含み、モジュール３６にアプリケーション２６を起動させるために、追加のアプリケーション関連情報を提供する必要はない。共通スケジューラ・ウェブ・サービスは、タスクのスケジュールだけに責任をもつので、スケジューラ・エンジン２２によって使用されるスケジューラ・レジストリ（図示せず）に、その他のアプリケーション関連情報を保存する必要はない。しかし、本発明の変形実施形態では、追加のアプリケーション関連情報を保存または送信する実施を提供できることは、当業者には明らかであろう。さらに、本発明の変形実施形態では、あるウェークアップ・ウェブ・サービス・ラップ２４の単一のウェークアップ・ウェブ・サービス・インターフェース３４を介して複数のアプリケーションを管理するため、モジュール３６を拡張して、複数のアプリケーションのうち１つまたは複数を起動できるようにすることができる。
【００３５】
図１を参照して指摘したように、システム１０内のアプリケーション２６は、それ自体が、スケジューラ・ジョブの生成を要求することによって、スケジューラ・エンジン２２を利用して、指定のアプリケーションが指定のスケジュール・タスクを指定のスケジュール通りに実行するよう要求することができる。（アプリケーション・サーバ・アドミニストレータとしての）アプリケーション２６のスケジューラ・エンジン２２に対する要求は、スケジューラ・ウェブ・サービス・ラップ２０のスケジューラ・ウェブ・サービス・インターフェース３０を介して行われ、本発明の好ましい実施形態では、アプリケーション２６に結合されたウェークアップ・ウェブ・サービス・ラップ２４のウェークアップ・ウェブ・サービス・インターフェース３４を介して行われる。スケジューラ・ジョブの生成の要求は、スケジューラ管理ＵＩ２８を使用し、スケジューラ・ウェブ・サービス・ラップ２０のスケジューラ・ウェブ・サービス・インターフェース３０を介して、（共通スケジュール・アドミニストレータとしての）ユーザによっても行うことができる。上記およびその他のシナリオによる、システム１０内のスケジューラ・サービスにおけるコマンドおよび情報の流れについて、図３から図５を参照しながらさらに説明する。
【００３６】
図３、図４、および図５は、本発明の代替実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためにシステムのコンポーネント間を流れるコマンドの流れを示した概略図である。これらの図は、代替実施形態のいくつかの例を示しているが、その他の構成も可能であり、本発明の範囲から逸脱しない変更が可能であることは、当業者には明らかであろう。
【００３７】
図３を参照すると、各アプリケーション２６は、それぞれ別個のウェークアップ・ウェブ・サービス・ラップ２４に結合され、アプリケーションとウェークアップ・ウェブ・サービス・ラップの各組は、それぞれ別個のクライアント・サーバ４０上に存在している。クライアント・サーバ４０は、システム１０の分散ネットワーク内の、スケジューラ・ウェブ・サービス・ラップ２０とそれに結合されたスケジューラ・エンジン２２が存在するサーバ４２にリモートに結合される。アプリケーション・サーバ・アドミニストレータとして動作するアプリケーション２６は、アプリケーション・サーバ・アドミニストレータによって指定されたスケジュール通りにスケジュール・タスクを実行するよう、指定のアプリケーション（または複数のアプリケーション）に対して要求する。先に指摘したように、スケジュール・タスクを実行する指定のアプリケーションは、アプリケーション・サーバ・アドミニストレータとして動作するアプリケーションと同じでもよいが、代替として、指定のアプリケーションは、分散ネットワーク内の異なるアプリケーションとすることもできる。要求は、スケジューラ・ウェブ・サービス・ラップ２０によって受信され、スケジューラ・ウェブ・サービス・ラップは、要求をスケジューラ・エンジン２２に送信する。スケジューラ・エンジン２２は、ジョブをスケジュールし、スケジュール・ジョブの情報を独自のスケジューラ・レジストリ（図示せず）に保存する。スケジューラ・エンジン２２は、スケジューラ・ジョブに関連するスケジュール・タスクをスケジュール通りに実行するようアプリケーションにコマンドを発行するため、周知の方法でプログラムすることができる。したがって、スケジューラ・エンジン２２が、指定のスケジュール・タスクを指定のスケジュール通りに特定の時刻に実行するよう指定のアプリケーション２６にコマンドを発行する場合、コマンドは、スケジューラ・ウェブ・サービス・ラップ２０によって受信され、スケジューラ・ウェブ・サービス・ラップは、指定のアプリケーション２６に結合されたウェークアップ・ウェブ・サービス・ラップ２４に命令を送信する。ウェークアップ・ウェブ・サービス・ラップ２４は、命令に応答して、指定のスケジュール・タスクを実行するよう指定のアプリケーション２６にコマンドを発行し、これを起動する。共通スケジューラ・アドミニストレータは、この実施形態には存在しない。
【００３８】
アプリケーション・サーバ・アドミニストレータも、スケジューラ・ウェブ・サービス・ラップ２０のスケジューラ・ウェブ・サービス・インターフェース３０によって提供されるような、例えば、指定のスケジュール・タスクの取り消し、指定のスケジュール・タスクの中断、先に中断された指定のスケジュール・タスクの再開、指定のスケジュール・タスクのステータスの取得、およびスケジューラ・レジストリからのタスクの消去を要求することができる。（例えば、特定のアプリケーション２６だけが特定の要求を行えるようにするなど）個別にアクセス許可を制御する手段も、スケジューラ・ウェブ・サービス・インターフェース３０によって周知の方法で実施することができる。可能であり、本発明の範囲から逸脱しない異なる代替の実施が存在することは、当業者には明らかであろう。
【００３９】
図４を参照すると、スケジューラ管理ＵＩ２８が、スケジューラ・ウェブ・サービス・ラップ２０に結合されている。スケジューラ管理ＵＩ２８は、サーバ４２からリモートに配置され、リモート・ユーザ（図示せず）にスケジューラ・エンジン２２へのアクセスを提供する。この実施形態では、ユーザは、スケジューラ管理ＵＩ２８を使用して、共通スケジューラ・アドミニストレータとして動作することができる。共通スケジューラ・アドミニストレータは、共通スケジューラ・アドミニストレータによって指定されたスケジュール通りにスケジュール・タスクを実行するよう、指定のアプリケーション（または複数のアプリケーション）に対して要求する。要求は、スケジューラ・ウェブ・サービス・ラップ２０によって受信され、スケジューラ・ウェブ・サービス・ラップは、要求をスケジューラ・エンジン２２に送信する。スケジューラ・エンジン２２は、ジョブをスケジュールし、スケジュール・ジョブの情報を独自のスケジューラ・レジストリ（図示せず）に保存する。
【００４０】
スケジューラ・エンジン２２は、スケジューラ・ジョブに関連するスケジュール・タスクをスケジュール通りに実行するようアプリケーションにコマンドを発行するため、周知の方法でプログラムすることができる。したがって、スケジューラ・エンジン２２が、指定のスケジュール・タスクを指定のスケジュール通りに特定の時刻に実行するよう指定のアプリケーション２６にコマンドを発行する場合、コマンドは、スケジューラ・ウェブ・サービス・ラップ２０によって受信され、スケジューラ・ウェブ・サービス・ラップは、指定のアプリケーション２６に結合されたウェークアップ・ウェブ・サービス・ラップ２４に命令を送信する。ウェークアップ・ウェブ・サービス・ラップ２４は、命令に応答して、指定のスケジュール・タスクを実行するよう指定のアプリケーション２６にコマンドを発行し、これを起動する。したがって、共通スケジューラ・アドミニストレータは、単一のコンピューティング装置から、複数のリモート・マシン上のタスクを容易にスケジュールできるようにすることができる。
【００４１】
この実施形態では、アプリケーション２６は、アプリケーション・サーバ・アドミニストレータとしても動作してよく、動作しなくてもよい。また、２以上のスケジューラ管理ＵＩ２８、または２以上の共通スケジューラ・アドミニストレータが同時に存在してよく、両方がそれぞれ２以上同時に存在してもよい。アプリケーション・サーバ・アドミニストレータおよび共通スケジューラ・アドミニストレータからのスケジューラ・エンジン２２へのアクセスは、スケジューラ・ウェブ・サービス・ラップ２０のスケジューラ・ウェブ・サービス・インターフェース（図２の３０）を介して制御することができる。
【００４２】
共通スケジューラ・アドミニストレータも、スケジューラ・ウェブ・サービス・ラップ２０のスケジューラ・ウェブ・サービス・インターフェース３０によって提供されるような、例えば、指定のスケジュール・タスクの取り消し、指定のスケジュール・タスクの中断、先に中断された指定のスケジュール・タスクの再開、指定のスケジュール・タスクのステータスの取得、およびスケジューラ・レジストリからのタスクの消去を要求することができる。（例えば、特定のアプリケーション２６または特定のユーザだけが特定の要求を行えるようにするなど）個別にアクセス許可を制御する手段も、スケジューラ・ウェブ・サービス・インターフェース３０によって周知の方法で実施することができる。可能であり、本発明の範囲から逸脱しない異なる代替の実施例が存在することは、当業者には明らかであろう。
【００４３】
図５を参照すると、２以上の共通スケジューラ・ウェブ・サービスを実施する、コンピューティング装置のネットワークが示されている。例えば、１つのスケジューラ・エンジン２２で複数の要求を受信して処理すると非効率になるような場合、または複数のスケジューラ・エンジン２２が異なるコンピューティング装置上に存在するような場合に、２以上の共通スケジューラ・ウェブ・サービスを構成することができる。図示した実施形態では、スケジュール・タスクの生成時に、ネットワーク・ディスパッチ・サーバ（network dispatch server）４４を使用して、システム１０のネットワーク内のどの共通スケジューラ・ウェブ・サービスが、より低い負荷バランスをもつかを決定することができる。スケジュール・タスクの生成の要求は、最適なパフォーマンスを実現するため、選択された共通スケジューラ・ウェブ・サービスに中継することができる。
【００４４】
反対に、本発明の変形実施形態では、ハブ（図示せず）を使用して、１つまたは複数のスケジューラ・ウェブ・サービス・ラップ２０から命令を受信し、それをハブに接続された複数のクライアント・サーバ４０に中継したほうが効率的なこともある。
【００４５】
図６は、本発明の一実施形態による、共通スケジューラ・ウェブ・サービスの使用量を監視する手段をさらに含む分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためのシステムを示した概略図である。ウェブ・サービスとして、共通スケジューラ・ウェブ・サービスは、料金請求可能なサービスとしてホストされ、提供されることができる。ホステッド・サービスとして、共通スケジューラ・ウェブ・サービスは、計測することができ、サービス使用量に応じて、ユーザに料金請求を行うことができる。本発明の一実施形態では、共通スケジューラ・ウェブ・サービス、より具体的には、スケジューラ・エンジン２２の使用量を監視する手段は、状況に応じてリモート・コンピューティング装置上に配置できる計測サービス（metering service）５４に結合される、事前インターセプタ・モジュール（pre-interceptor module）５０と事後インターセプタ・モジュール（post-interceptormodule）５２によって提供される。
【００４６】
タスクを生成した場合、スケジューラ・エンジン２２の使用量が、スケジューラ・エンジン２２へのアクセスを監視し、そのようなアクセスを通知するデータを計測サービス５４に送信することによって計測される。スケジューラ・エンジン２２が、スケジュール・タスクに実行されるよう命令した場合にも、スケジューラ・エンジン２２の使用量が、同様に計測される。スケジュール・タスクが正常に実行されたかどうかについてのステータス情報が、スケジューラ・レジストリに保存するため、スケジューラ・エンジン２２に返送された場合にも、スケジューラ・エンジン２２の使用量が、同様に計測される。計測サービス５４は、受信したデータに基づいて、アプリケーション（２６）ごと、またはスケジューラ管理ＵＩ２８を操作するユーザごとに、スケジューラ・エンジンの使用量のレベルを決定する。使用量のレベルについての情報は、請求／評価サービス（billing and rating service）５６に中継することができ、請求／評価サービスは、リモート装置上に配置することもできる。こうすることで、スケジューラ・エンジン２２の使用量に応じて、システム１０のユーザに料金請求を行うことができる。
【００４７】
図７は、本発明の一実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供する方法のステップを示したフローチャートである。この方法は、ステップ６０から開始する。
【００４８】
ステップ６２で、スケジューラ・ウェブ・サービス・ラップ（例えば、図２のスケジューラ・ウェブ・サービス・ラップ２０）のスケジューラ・ウェブ・サービス・インターフェース（例えば、図２のスケジューラ・ウェブ・サービス・インターフェース３０）は、指定のスケジュール通りに指定のスケジュール・タスクを実行するようアプリケーションに求める要求を、アドミニストレータから、ＳＯＡＰコールによって受信する。要求は、アプリケーション・サーバ・アドミニストレータまたは共通スケジューラ・アドミニストレータによって発行することができる。
【００４９】
ステップ６４で、スケジューラ・ウェブ・サービス・インターフェースは、スケジューラ・ハンドラ（例えば、図２のスケジューラ・ハンドラ３２）をロードし、スケジューラ・ハンドラは、スケジュールを行うため、スケジューラ・エンジン（例えば、図２のスケジューラ・エンジン２２）に要求を送信する。スケジューラ・エンジンは、スケジュール・タスクをそのタスクに関する指定のスケジュール通りに実行するようアプリケーションにコマンドを発行するようにプログラムされる。要求についての情報は、スケジューラ・レジストリに保存される。
【００５０】
ステップ６６で、スケジューラ・エンジンが、指定のスケジュール・タスクを指定のスケジュール通りに実行するようアプリケーションにコマンドを発行すると、タスク情報が、スケジューラ・レジストリから取り出される。タスク情報には、例えば、タスク名、タスク・ロケーション、およびセッション・キーなどを含むことができる。
【００５１】
ステップ６８で、スケジューラ・ハンドラが、タスク情報から命令を生成し、スケジューラ・ウェブ・サービス・ラップが、その命令を、指定のスケジュール・タスクに関連する指定のアプリケーション（例えば、図２のアプリケーション２６）に結合されたウェークアップ・ウェブ・サービス・ラップ（例えば、図２のウェークアップ・ウェブ・サービス・ラップ２４）に、ＳＯＡＰコールによって送信する。
【００５２】
ステップ７０で、ウェークアップ・ウェブ・サービス・ラップが、命令に応答して、アプリケーションを起動することによって、指定のスケジュール・タスクを実行するよう指定のアプリケーションにコマンドを発行する。このステップでは、指定のスケジュール・タスクが正常に実行されたかどうかを表す情報を、スケジューラ・エンジンに返送することもできる。これによって、指定のスケジュール・タスクが正常に実行されなかった場合に、エラー・メッセージを生成することができる。また、これによって、必要であれば、異常終了タスクを再スケジュールすることもできる。
【００５３】
ステップ６２から７０は、繰り返すことができる。ステップ７２で、本発明の一実施形態による方法は終了する。
【００５４】
図８は、本発明の別の実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供する方法のステップを示したフローチャートである。この方法は、ステップ８０から開始する。
【００５５】
ステップ８２で、スケジューラ・ウェブ・サービス・ラップ（例えば、図６のスケジューラ・ウェブ・サービス・ラップ２０）のスケジューラ・ウェブ・サービス・インターフェース（例えば、図６のスケジューラ・ウェブ・サービス・インターフェース３０）は、指定のスケジュール通りに指定のスケジュール・タスクを実行するようアプリケーションに求める要求を、アドミニストレータから、ＳＯＡＰコールによって受信する。要求は、アプリケーション・サーバ・アドミニストレータまたは共通スケジューラ・アドミニストレータによって発行することができる。
【００５６】
ステップ８４で、スケジューラ・ウェブ・サービス・インターフェースは、スケジューラ・ハンドラ（例えば、図６のスケジューラ・ハンドラ３２）をロードし、スケジューラ・ハンドラは、スケジューラ・ジョブを生成することによってスケジュールを行うため、スケジューラ・エンジン（例えば、図６のスケジューラ・エンジン２２）に要求を送信する。スケジューラ・エンジンは、スケジュール・タスクをそのタスクに関する指定のスケジュール通りに実行するようアプリケーションにコマンドを発行するようにプログラムされる。要求についての情報は、スケジューラ・レジストリに保存される。この実施形態では、スケジューラ・ハンドラへのアクセスを監視し、それによって、スケジューラ・エンジンの使用量を計測する。スケジューラ・エンジンの使用量についての情報は、このステップでスケジューラ・ジョブが生成される時に、計測サービス（例えば、図６の計測サービス５４）に提供され、さらに、請求サービスまたは評価サービスあるいはその両方（例えば、図６の請求／評価サービス５６）に提供することもできる。
【００５７】
ステップ８６で、スケジューラ・エンジンが、指定のスケジュール・タスクを指定のスケジュール通りに実行するようアプリケーションにコマンドを発行すると、タスク情報が、スケジューラ・レジストリから取り出される。タスク情報には、例えば、タスク名、タスク・ロケーション、およびセッション・キーなどを含むことができる。
【００５８】
ステップ８８で、スケジューラ・ハンドラが、タスク情報から命令を生成し、スケジューラ・ウェブ・サービス・ラップが、その命令を、指定のスケジュール・タスクに関連する指定のアプリケーション（例えば、図６のアプリケーション２６）に結合されたウェークアップ・ウェブ・サービス・ラップ（例えば、図６のウェークアップ・ウェブ・サービス・ラップ２４）に、ＳＯＡＰコールによって送信する。この実施形態では、スケジューラ・ハンドラへのアクセスを監視し、それによって、スケジューラ・エンジンの使用量を計測する。スケジューラ・エンジンの使用量についての情報は、スケジューラ・エンジンが、指定のスケジュール・タスクを実行するようアプリケーションにコマンドを発行する時に、計測サービスに提供され、さらに、請求サービスまたは評価サービスあるいはその両方に提供することもできる。
【００５９】
ステップ９０で、ウェークアップ・ウェブ・サービス・ラップが、命令に応答して、アプリケーションを起動することによって、指定のスケジュール・タスクを実行するよう指定のアプリケーションにコマンドを発行する。このステップでは、指定のスケジュール・タスクが正常に実行されたかどうかを表す情報を、スケジューラ・エンジンに返送することもできる。これによって、指定のスケジュール・タスクが正常に実行されなかった場合に、エラー・メッセージを生成することができる。また、これによって、必要であれば、異常終了タスクを再スケジュールすることもできる。スケジューラ・エンジンの使用量についての情報は、スケジューラ・エンジンが、指定のスケジュール・タスクが正常に実行されたかどうかを示す通知を受信する時に、計測サービスに提供され、さらに、請求サービスまたは評価サービスあるいはその両方に提供することもできる。
【００６０】
この実施形態では、セッション・キーは、一意のセッション識別子、ユーザ識別子、およびスケジューラ・エンジンの使用量に応じて請求するために使用されるサービス関連情報を含む。
【００６１】
ステップ８２から９０は、繰り返すことができる。ステップ９２で、本発明の一実施形態による方法は終了する。
【００６２】
本発明の変形実施形態では、時差帯マッピング・ユーティリティ・モジュール（timezone mapping utility module）を、システム１０で使用するために提供することができる。時差帯マッピング・ユーティリティ・モジュールは、好ましくは、スケジューラ・ウェブ・サービス・ラップまたはその中のコンポーネントに結合され、リモート・コンピューティング装置で定義された第１のスケジュール時刻と、スケジューラ・エンジンが存在するコンピューティング装置で定義された対応する第２のスケジュール時刻とを相互に変換するようにプログラムされる。これによって、共通スケジューラ・ウェブ・サービスは、スケジューラ・エンジンによって使用される時差帯とは異なる時差帯に配置されたリモート・クライアントのために、タスクを適切にスケジュールすることができる。
【００６３】
本発明の方法は、コンピュータ可読媒体に格納された１つまたは複数の命令によって実施することもできる。
【００６４】
本明細書で説明したシステムの要素に関して、本発明に関連する様々なタスクは、本発明の好ましい実施形態および変形実施形態の説明で指定された特定のコンポーネントによって必ずしも実行する必要がないことは、当業者には明らかであろう。例えば、スケジューラ・ウェブ・サービス・ラップのコンポーネントによるタスクの実行は、単一のモジュール、または複数のコンピューティング装置に分散していてもいなくてもよい別々のモジュールによっても行うことができる。さらなる例として、スケジューラ管理ユーザ・インターフェースは、本発明の変形実施形態のスケジューラ・ウェブ・サービス・インターフェースに直接組み込むこともできる。
【００６５】
本発明を具体的な実施形態に関して説明してきた。しかし、本明細書に添付の特許請求の範囲で確定される本発明の範囲から逸脱することなく、様々な変形および修正を施すことができることは、当業者には明らかであろう。
【図面の簡単な説明】
【００６６】
【図１】本発明の好ましい一実施形態による、共通スケジューラ・ウェブ・サービスが使用されるシステムの概念概略図である。
【図２】本発明の一実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためのシステムを示した概略図である。
【図３】本発明の代替実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためにシステムのコンポーネント間を流れるコマンドの流れを示した概略図である。
【図４】本発明の代替実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためにシステムのコンポーネント間を流れるコマンドの流れを示した概略図である。
【図５】本発明の代替実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためにシステムのコンポーネント間を流れるコマンドの流れを示した概略図である。
【図６】本発明の一実施形態による、共通スケジューラ・ウェブ・サービスの使用量を監視する手段をさらに含む分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供するためのシステムを示した概略図である。
【図７】本発明の一実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供する方法のステップを示したフローチャートである。
【図８】本発明の別の実施形態による、分散ネットワーク内のコンピューティング装置上に存在するアプリケーションによって実行されるタスクをスケジュールするスケジューラ・サービスを提供する方法のステップを示したフローチャートである。
【図１】
2006501543.tif 000003
【図２】
2006501543.tif 000004
【図３】
2006501543.tif 000005
【図４】
2006501543.tif 000006
【図５】
2006501543.tif 000007
【図６】
2006501543.tif 000008
【図７】
2006501543.tif 000009
【図８】
2006501543.tif 000010
【国際調査報告】
2006501543.tif 000011
2006501543.tif 000012