(57)【特許請求の範囲】
【請求項１】
複数台の端末装置によって分散的に実行するジョブを管理するジョブ管理システムであって、
前記複数台の端末装置は、前記端末装置のグループに属するとともに前記ジョブを実行するグループメンバ端末、前記グループメンバ端末に対して前記ジョブを配布するグループ管理端末、および前記グループ管理端末に対して前記ジョブを配布するジョブ配布端末を含み、
前記グループ管理端末は、前記グループに属する前記グループメンバ端末のＩＤを列挙したメンバリストを保持しており、
前記グループ管理端末は、前記グループに対して新規参入する前記端末装置からその旨のメッセージおよびその端末装置のＩＤを記述した新規参入メッセージを受け取ると、その端末装置のＩＤを前記メンバリストに対して追加し、
前記グループ管理端末は、前記グループから脱退する前記端末装置からその旨のメッセージおよびその端末装置のＩＤを記述した脱退メッセージを受け取ると、その端末装置のＩＤを前記メンバリストから削除し、
前記グループ管理端末は、前記メンバリストが列挙している前記端末装置に対して、前記ジョブ配布端末から受け取った前記ジョブを配布し、
前記グループ管理端末は、前記ジョブ配布端末のＩＤ、および自端末を代行する他の前記端末装置である代行端末のＩＤを保持しており、
前記グループ管理端末は、前記ジョブを前記ジョブ配布端末から受け取らない停止状態に移行するときは、前記代行端末に対して代行依頼メッセージを送信し、前記代行端末から前記代行依頼メッセージに対する応答として代行を許可する旨の応答を受け取った場合は、前記ジョブ配布端末に対して、その旨のメッセージ、自端末のＩＤ、および前記代行端末のＩＤを記述した代行通知を送信し、
前記ジョブ配布端末は、前記グループ管理端末から前記代行通知を受け取った場合は、前記グループ管理端末に代えて前記代行端末に対して前記ジョブを配布し、
前記代行端末は、前記ジョブ配布端末から前記ジョブを受け取ると、前記グループメンバ端末に対して前記ジョブを配布する
ことを特徴とするジョブ管理システム。
【請求項２】
前記グループ管理端末は、前記停止状態に移行した後、前記ジョブ配布端末から前記ジョブを受け取る配布状態に復帰する場合は、その旨を記述した復帰メッセージを前記ジョブ配布端末に対して送信し、
前記ジョブ配布端末は、前記グループ管理端末から前記復帰メッセージを受け取った場合は、前記代行端末に代えて前記グループ管理端末に対して前記ジョブを配布する
ことを特徴とする請求項１記載のジョブ管理システム。
【請求項３】
前記グループ管理端末は、前記代行端末から前記代行依頼メッセージに対する応答として代行を許可する旨の応答を受け取った場合は、前記代行端末が自端末を代行する旨を記述した代行メッセージを前記グループメンバ端末に対して送信し、
前記グループメンバ端末は、前記グループ管理端末から前記代行メッセージを受け取ると、前記グループ管理端末のＩＤに対応付けて前記代行端末のＩＤを保持する
ことを特徴とする請求項１記載のジョブ管理システム。
【請求項４】
前記グループ管理端末は、前記停止状態に移行した後、前記ジョブ配布端末から前記ジョブを受け取る配布状態に復帰する場合は、その旨を記述した復帰メッセージを前記代行端末に対して送信し、
前記代行端末は、前記グループ管理端末から前記復帰メッセージを受け取った場合は、前記グループメンバ端末に対して前記ジョブを配布しない状態に移行する
ことを特徴とする請求項１記載のジョブ管理システム。
【請求項５】
前記グループ管理端末および前記代行端末は、前記グループメンバ端末が動作中であるか否かを記述する状態データを保持しており、
前記代行端末は、前記グループ管理端末から前記復帰メッセージを受け取った場合は、前記状態データを前記グループ管理端末に対して送信し、前記グループ管理端末は前記代行端末から受け取った前記状態データを自端末の前記状態データに対して上書する
ことを特徴とする請求項４記載のジョブ管理システム。
【請求項６】
前記端末装置は、自端末を使用するユーザの属性を記述するユーザ属性データを保持しており、
前記ジョブ配布端末は、前記ジョブを実行すべきユーザの属性を指定する実行者指定メッセージとともに前記ジョブを配布し、
前記グループメンバ端末は、前記ユーザ属性データが記述している属性と前記実行者指定メッセージが指定する属性とが一致する場合は受け取った前記ジョブを実行し、一致しない場合は前記ジョブを受け取っても実行しない
ことを特徴とする請求項１記載のジョブ管理システム。
【請求項７】
前記グループメンバ端末は、前記代行端末のＩＤを保持していない場合は、前記グループ管理端末を介して、前記グループに属さない端末装置に対するメッセージを発信し、
前記グループメンバ端末は、前記代行端末のＩＤを保持している場合は、前記代行端末を介して、前記グループに属さない端末装置に対するメッセージを発信する
ことを特徴とする請求項３記載のジョブ管理システム。
【請求項８】
前記複数台の端末装置はさらに、前記端末装置の第２グループに属するとともに前記ジョブを実行する第２グループメンバ端末、および前記第２グループメンバ端末に対して前記ジョブを配布する第２グループ管理端末を含み、
前記メンバリストは、前記グループに属する前記グループメンバ端末のＩＤとして、前記第２グループ管理端末のＩＤを記述しており、
前記第２グループ管理端末は、前記第２グループに属する前記第２グループメンバ端末のＩＤを列挙した第２メンバリストを保持しており、
前記第２グループ管理端末は、前記第２グループに対して新規参入する前記端末装置からその旨のメッセージおよびその端末装置のＩＤを記述した第２新規参入メッセージを受け取ると、その端末装置のＩＤを前記第２メンバリストに対して追加し、
前記第２グループ管理端末は、前記第２グループから脱退する前記端末装置からその旨のメッセージおよびその端末装置のＩＤを記述した第２脱退メッセージを受け取ると、その端末装置のＩＤを前記第２メンバリストから削除し、
前記グループ管理端末は、前記メンバリストの記述にしたがって、前記第２グループ管理端末に対して前記ジョブ配布端末から受け取った前記ジョブを配布し、
前記第２グループ管理端末は、前記第２メンバリストが列挙している前記端末装置に対して、前記グループ管理端末から受け取った前記ジョブを配布する
ことを特徴とする請求項１記載のジョブ管理システム。
【請求項９】
前記ジョブ配布端末は、前記ジョブ管理システムが実行すべき前記ジョブを受け取り、そのジョブを前記グループ管理端末に対して配布する
ことを特徴とする請求項１記載のジョブ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数台の端末装置によって分散的に実行するジョブを管理する技術に関するものである。
【背景技術】
【０００２】
近年、クライアントＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）や超小型コンピュータなどのハードウェアの高性能化、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリなどのソフトウェアの高機能化、無線環境やクラウドなどのインフラの整備拡大などの時代背景にともない、（ａ）センサなどの端末装置が検知した情報を活用する、（ｂ）従来サーバが実施していたデータの加工や抽出などの業務の一部を端末装置が実施する、などのように、業務システムの拡大分散化が進んでいる。
【０００３】
一方、コンピュータが実行するジョブを自動実行するジョブ管理システムにおいては、ジョブを管理するマネージャマシンが、ジョブを実行するマシンに対して指示を出すことによりジョブの実行を制御する、集中管理方式が一般的に用いられている。集中管理方式を用いた場合、マネージャマシンの負荷が増大する懸念がある。また、例えばジョブの複雑化などにともない、マネージャマシン上でジョブ管理システムを操作する工数が増大する懸念がある。
【０００４】
下記特許文献１は、ジョブの実行スケジュールを変更する際の作業量を軽減し、作業漏れを防止するシステムについて開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−０６４８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ジョブを実行する複数台の端末装置を集中管理する場合、端末装置の増設、交換、撤去などに起因して端末構成に変更があった場合、ジョブ定義を管理するジョブ管理者は、その変更の度にジョブ定義を変更後の端末構成に合わせて変更しなければならない。端末装置の台数が多くなるほどその作業量は膨大となり、人的にも費用的にも負担が大きい。
【０００７】
上記特許文献１は、端末装置を集中管理する方式を採用しているので、上記課題が発生し得る。同文献においては、ジョブの実行スケジュールを変更する際の作業量などを軽減することについては考慮されているものの、ジョブを実行する端末装置の構成変更については考慮されていない。したがって同文献記載の技術を用いたとしても、端末装置の構成変更に関する上記課題は残存すると考えられる。
【０００８】
本発明は、上記のような課題に鑑みてなされたものであり、ジョブを分散実行する端末装置の構成に変更があった場合、その変更を効率的に反映することができる、自律分散型のジョブ管理システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るジョブ管理システムにおいて、グループに属するグループメンバ端末は前記グループに対して新規参入または前記グループから脱退する旨のメッセージを発信し、前記グループメンバ端末に対してジョブを配布するグループ管理端末は前記メッセージにしたがって前記ジョブの配布先を管理する。
【発明の効果】
【００１０】
本発明に係るジョブ管理システムによれば、ジョブを実行する端末装置の構成に変更があった場合、その変更を効率的に反映する自律分散型のジョブ管理システムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】ジョブ管理システム１０００のシステム構成図である。
【図２】クライアント端末３００Ａ〜３００Ｉの構成を説明する機能ブロック図である。
【図３】クライアント端末３００が所属するグループの構成図である。
【図４】クライアント端末３００が保持する自端末データ３５０の構成とデータ例を示す図である。
【図５】クライアント端末３００が保持するグループデータ３６０の構成とデータ例を示す図である。
【図６】クライアント端末３００が保持するメンバリスト３７０の構成とデータ例を示す図である。
【図７】宛先リスト３３４の構成とデータ例を示す図である。
【図８】ジョブ配布データ８００の構成とデータ例を示す図である。
【図９】ジョブ定義データ９００の構成とデータ例を示す図である。
【図１０】子端末がグループに新規参入および脱退する手順を説明するシーケンス図である。
【図１１】リーダが使用する端末の役割を別の端末に引き継いでグループから脱退する手順を説明するシーケンス図である。
【図１２】親端末がジョブを配布する手順を説明するシーケンス図である。
【図１３】リーダが使用する端末が他端末に対して代行を依頼し、その後に復帰する手順を説明するシーケンス図である。
【発明を実施するための形態】
【００１２】
図１は、本発明に係るジョブ管理システム１０００のシステム構成図である。情報システム部門１００は、ジョブ管理システム１０００の運用を集中管理している。データセンタ／クラウド２００は、データベースサーバやＷｅｂサーバなどの各種サーバをホストしており、これらサーバはジョブ管理システム１０００が管理するデータなどを保持している。クライアント端末３００Ａ〜３００Ｉは、データセンタ／クラウド２００がホストしているサーバに対してアクセスし、これらサーバが提供する業務システムを利用する。クライアント端末３００Ａ〜３００Ｉには、自律分散型ジョブ管理プログラムがインストールされている。情報システム部門１００は、各クライアント端末に対してジョブを割り当て、各クライアント端末はそのジョブを分散的に実行する。
【００１３】
図１に示すシステム構成において、クライアント端末３００Ａ〜３００Ｉに、例えば毎晩ログファイルを収集するなどのジョブを分散的に実行させることを考える。分散ジョブを実行するためには、情報システム部門１００において各クライアント端末が実行するジョブを定義する必要がある。しかしクライアント端末の構成は、機器の増設、交換、撤去などによって頻繁に変更される可能性がある。したがって、情報システム部門１００がクライアント端末３００Ａ〜３００Ｉの構成を逐次把握してその変更をジョブ定義に対して反映するのは、膨大な手間がかかる可能性がある。
【００１４】
そこで本発明においては、クライアント端末３００Ａを代表端末とみなし、情報システム部門１００はクライアント端末３００Ａのみを管理する。すなわち情報システム部門１００は、ジョブ管理システム１０００に対して実行させたいジョブを、クライアント端末３００Ａに対してのみ配布する。さらにクライアント端末３００Ａは、クライアント端末３００Ｂのみを管理する。すなわちクライアント端末３００Ａは、受け取ったジョブをクライアント端末３００Ｂに対してのみ配布する。
【００１５】
このようにジョブ管理システム１０００においては、自端末とその管理対象である下位端末によって構成されるグループを、各端末が自ら管理する。したがって、クライアント端末の機器構成が変更になった場合であっても、その変更はグループを形成するクライアント端末同士で管理しておけばよく、情報システム部門１００としてはクライアント端末３００Ａの変更のみ把握すれば足りることになる。これによりジョブ管理システム１０００は、ジョブを分散的に実行することに加えて、端末構成をクライアント端末３００のグループ内で管理する自律性を備えることができる。
【００１６】
図２は、クライアント端末３００Ａ〜３００Ｉの構成を説明する機能ブロック図である。各クライアント端末は同様の構成を備えるので、これらを総称するときはアルファベットの添え字を省略する。クライアント端末３００は、ユーザインターフェース部３１０、ジョブ実行制御部３２０、グループ構成管理部３３０、連携部３４０を備える。
【００１７】
ユーザインターフェース部３１０は、ユーザがクライアント端末３００を操作するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を、例えばクライアント端末３００が備えるディスプレイなどの表示端末上において提供する。ユーザはそのＧＵＩを用いて、新規ジョブの定義を作成することができる。ジョブの種類としては、例えば（ａ）業務に関連するジョブ（ログ取得など）、（ｂ）他のクライアント端末３００に対してジョブを配布するジョブ、（ｃ）グループに対する新規参入または脱退、（ｄ）一時停止および一時停止からの復帰、（ｅ）役割の引き継ぎ、などのジョブがある。上記（ｂ）〜（ｅ）の詳細については図１０以降で改めて説明する。ＧＵＩに代えてコマンドラインインターフェースなどのその他ユーザインターフェースを用い、またはこれらを併用することもできる。
【００１８】
ジョブ実行制御部３２０は、割り当てられたジョブを実行する機能部である。ジョブ実行制御部３２０は、定義読込部３２１、スケジュール算出部３２２、ジョブ実行処理部３２３を備える。
【００１９】
定義読込部３２１は、ユーザインターフェース部３１０から入力されたジョブ定義を読み込む。スケジュール算出部３２２は、そのジョブ定義にしたがってジョブの実行スケジュールを算出する。ジョブ実行処理部３２３は、そのスケジュールにしたがってジョブを実行し、その結果を実行結果ログ３２４として出力する。ジョブ定義の詳細については、後述の図８と図９で説明する。
【００２０】
グループ構成管理部３３０は、クライアント端末３００のグループを管理する機能部である、グループ構成管理部３３０は、テーブル読込部３３１、テーブル更新部３３２、宛先リスト生成部３３３を備える。
【００２１】
テーブル読込部３３１は、後述の図４〜図７で説明する各テーブルを読み込む。テーブル更新部３３２は、後述の図１０以降で説明する動作シーケンスにしたがって、各テーブルを更新する。宛先リスト生成部３３３は、各テーブルの記述にしたがってグループに属するクライアント端末３００を把握し、メッセージを送信すべきクライアント端末３００の一覧を記述した宛先リスト３３４を生成する。
【００２２】
連携部３４０は、他のクライアント端末３００との間でメッセージを送受信する機能部である。連携部３４０は、宛先リスト読込部３４１、メッセージ通信部３４２を備える。宛先リスト読込部３４１は、宛先リスト３３４を読み込む。メッセージ通信部３４２は、宛先リスト３３４が記述している宛先に対して、ネットワーク４００を介してメッセージを送信する。またネットワーク４００を介してメッセージを受信する。
【００２３】
クライアント端末３００の各機能部は、例えば自律分散型ジョブ管理プログラムの一部をなすソフトウェアモジュールとして構成し、これをＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置が実行することにより実現することができる。これに代えて各機能部のうち全部または一部を、回路デバイスなどのハードウェアによって実装することもできる。
【００２４】
図３は、クライアント端末３００が所属するグループの構成図である。グループは階層的に構成することもできる。各クライアント端末３００は、複数のグループに所属することもできる。ここでは会社の部門に所属する各ユーザが使用するクライアント端末３００を、当該部門の組織構造にしたがってグループ分けした例を示した。
【００２５】
主任Ｂが用いるクライアント端末３００Ｂは、主任Ｂが所属する第１グループ（以下第１Ｇ）に対応するグループ５１０に所属する。主任Ｂは、第１Ｇ内のサブグループである第２ユニット（以下第２Ｕ）のリーダである。したがってクライアント端末３００Ｂ〜３００Ｅは、グループ５１０の下位グループであるグループ５１１にも所属する。クライアント端末３００Ｂは、上記グループ構造を反映して、クライアント端末３００Ａを親端末とし、第２Ｕに属する担当Ｃ〜Ｅが用いるクライアント端末３００Ｃ〜３００Ｅを子端末とする。
【００２６】
主任Ｂと担当Ｃ〜Ｅはさらに、労働組合横浜地区にも所属する。したがってクライアント端末３００Ｂ〜３００Ｅは、これに対応するグループ５２０にも所属する。労働組合横浜地区の責任者は職長Ｘである。職長Ｘが使用するクライアント端末３００Ｘは、クライアント端末３００Ｂ〜３００Ｅの親端末である。
【００２７】
図４は、クライアント端末３００が保持する自端末データ３５０の構成とデータ例を示す図である。自端末データ３５０は、端末グループの構成に依拠しない自端末単体の属性を記述したデータである。自端末データ３５０は、自端末ＩＤ３５１、自端末名３５２、ＩＰアドレス３５３、メールアドレス３５４、プロフィール３５５を有する。
【００２８】
自端末ＩＤ３５１は、クライアント端末３００をジョブ管理システム１０００内で一意に識別するＩＤである。自端末名３５２は、クライアント端末３００の名称である。ＩＰアドレス３５３は、ジョブ管理システム１０００内におけるクライアント端末３００のネットワークアドレスである。メールアドレス３５４は、当該クライアント端末３００を使用するユーザの電子メールアドレスである。プロフィール３５５は、クライアント端末３００のその他属性を記述するパラメータであり、例えばクライアント端末３００が設置されている場所などを記述することができる。プロフィール３５５は、端末グループの構成に依拠しない属性を記述することが望ましい。
【００２９】
自端末データ３５０の内容は、当該クライアント端末３００を使用するユーザが自らセットすることもできるし、例えば情報システム部門１００がユーザに対してクライアント端末３００を配布する際にあらかじめセットしてもよい。
【００３０】
図５は、クライアント端末３００が保持するグループデータ３６０の構成とデータ例を示す図である。グループデータ３６０は、自端末が所属するグループに関する情報を記述したデータである。グループデータ３６０は、後述の図１０で説明するように、グループに対して新規参入する際にユーザが入力するデータである。グループデータ３６０は、グループ名３６１、リーダグループ名３６２、親端末ＩＤ３６３、代理端末ＩＤ３６４、プロフィール３６５を有する。
【００３１】
グループ名３６１は、自端末が所属するグループの名称である。リーダグループ名３６２は、自端末がリーダとなっているグループの名称である。親端末ＩＤ３６３は、自端末の親端末のＩＤである。代理端末ＩＤ３６４は、自端末が動作停止する際に自端末を代行する代行端末のＩＤである。プロフィール３６５は、自端末のその他属性を記述するパラメータであり、例えばグループ内における役職などを記述することができる。
【００３２】
図５に示すデータ例は、クライアント端末３００Ｂのものである。主任Ｂは第１Ｇと労働組合横浜地区に所属し、クライアント端末３００Ｂもこれに対応してグループ５１０と５２０に所属するので、これら２つのグループに関する情報が各レコードに記述されている。
【００３３】
１行目のレコードは第１Ｇに関するものである。主任Ｂは第２Ｕのリーダであるので、リーダグループ名３６２はその旨を記述している。親端末ＩＤ３６３はクライアント端末３００ＡのＩＤである。代理端末ＩＤ３６４は、グループに対して新規参入する際に主任Ｂが任意にセットすることができる。ここではクライアント端末３００ＣのＩＤとした。
【００３４】
２行目のレコードは労働組合横浜地区に関するものである。労働組合横浜地区において主任Ｂはリーダではないので、リーダグループ名３６３はセットされていない。親端末ＩＤ３６３はクライアント端末３００ＸのＩＤである。
【００３５】
図６は、クライアント端末３００が保持するメンバリスト３７０の構成とデータ例を示す図である。メンバリスト３７０は、自端末と同じグループに所属するクライアント端末３００を列挙するデータである。メンバリスト３７０の各レコードは、グループに属する各端末に対応する。メンバリスト３７０は、グループ名３７１、リーダグループ名３７２、端末ＩＤ３７３、代理端末ＩＤ３７４、状態３７５を有する。
【００３６】
グループ名３７１は、当該端末が所属するグループの名称である。複数のグループに所属する端末については、それぞれのグループ名を記述してもよい。リーダグループ名３７２は、当該端末がリーダとなっているグループの名称である。端末ＩＤ３７３は、当該端末のＩＤである。代理端末ＩＤ３７４は、当該端末を代行する端末のＩＤである。状態３７５は、当該端末が動作中であるか否かを示す。
【００３７】
図６に示すデータ例は、クライアント端末３００Ｂのものである。図３に示すグループ構成にしたがって、クライアント端末３００が保持する、３００Ａ、３００Ｃ、３００Ｄ、３００Ｅ、３００Ｘに関するレコードが記述されている。
【００３８】
メンバリスト３７０は、自端末と同じ階層に所属する他端末に関するレコードを保持しないものとする。例えば、第２Ｕに所属するクライアント端末３００Ｃは、同じく第２Ｕに所属するクライアント端末３００Ｄと３００Ｅに関するレコードを持たない。
【００３９】
メンバリスト３７０は、処理上の便宜のため、子端末に関する情報とともに親端末に関する情報を保持することができる。図６に示すデータ例においては、クライアント端末３００Ｂの親端末であるクライアント端末３００Ａと３００Ｘについての情報も記述されている。これにより、自端末が通信すべき相手方を特定するためにグループデータ３６０を逐一参照する必要がなくなるので、処理の簡易化の観点から便宜である。
【００４０】
さらにメンバリスト３７０内において、各端末のＩＤなどに加えて当該端末のユーザの組織上における属性（すなわちグループ名３７１とリーダグループ名３７２）を併せて記述することにより、組織上のグループに対してジョブを配布する作業を効率的に実施することができる。
【００４１】
メンバリスト３７０は、主に自端末の子端末を列挙する意義がある。ただし処理の便宜上、親端末についてのレコードを保持することもできる。メンバリスト３７０内のいずれの端末が親端末であるかについては、グループデータ３６０を参照することにより判断することができる。
【００４２】
図７は、宛先リスト３３４の構成とデータ例を示す図である。宛先リスト３３４は、クライアント端末３００が通信する他端末の通信先アドレスを記述するデータである。宛先リスト３３４は、端末ＩＤ３３４１、端末名３３４２、ＩＰアドレス３３４３、メールアドレス３３４４を有する。
【００４３】
端末ＩＤ３３４１と端末名３３４２は、それぞれ宛先端末のＩＤと名称である。ＩＰアドレス３３４３とメールアドレス３３４４は、それぞれ宛先端末のアドレスである。これらアドレスは、通信手段に対応するものを保持していればよい。例えば通信手段として電子メールのみを用いる場合は、メールアドレス３３４４があれば足りる。宛先端末のＩＰアドレスに対して直接接続する場合はＩＰアドレス３３４３が必要である。その他通信手段を用いる場合はその手段に応じたアドレスを記述すればよい。アドレスの具体的な値は各端末が新規参入する際に後述の図１０で説明するシーケンスにしたがって通知することができる。
【００４４】
宛先リスト３３４が保持すべきレコード（すなわち宛先端末の一覧）は、グループデータ３６０とメンバリスト３７０から抽出することができる。クライアント端末３００は、後述するシーケンス図で説明するように、代行端末との間で通信する。したがって代理端末ＩＤ３６４は宛先端末のＩＤとして用いることができる。さらにクライアント端末３００は、グループの各メンバ端末との間で通信する。したがって端末ＩＤ３７３は宛先端末のＩＤとして用いることができる。
【００４５】
宛先リスト３３４は、メッセージを送信する際にその宛先を列挙するように都度作成することもできるし、あらかじめ宛先候補となる全端末を列挙して事前作成することもできる。
【００４６】
図８は、ジョブ配布データ８００の構成とデータ例を示す図である。ジョブ配布データ８００は、ジョブを配布する端末が各クライアント端末３００に対して配布するデータである。ジョブ配布データ８００は、配布ジョブ８０１、配布先グループ８０２、配布先プロフィール８０３、配布成功条件８０４を有する。
【００４７】
配布ジョブ８０１は、配布するジョブの名称である。配布先グループ８０２は、当該ジョブを配布する宛先グループの名称である。配布先プロフィール８０３は、当該ジョブを受け取るべき端末のプロフィールである。配布成功条件８０４は、例えば（ａ）配布先グループ８０２に属する端末のうち何％に対して当該ジョブを配布できれば配布成功とみなすか、（ｂ）配布先グループ８０２に属する端末のうち何台に対して当該ジョブを配布できれば配布成功とみなすか、などの条件を記述することができる。
【００４８】
ジョブを配布するユーザは、自身が使用するクライアント端末３００のユーザインターフェース部３１０を介して、図８に例示するようなデータを入力する。当該端末は、配布先グループ８０２が指定するグループに属する端末に対して、配布するジョブとともに当該ジョブ配布データ８００を配布する。グループに属する端末のリストはメンバリスト３７０から取得できる。ジョブ配布データ８００を受け取ったクライアント端末３００は、例えば自端末のプロフィールが配布先プロフィール８０３と一致すれば当該ジョブを実行し、一致しなければ実行しない。配布先プロフィール８０３は、プロフィール３５５とプロフィール３６５いずれか一方のみを指定することもできるし、双方を指定することもできる。双方指定した場合は、双方とも一致するときのみジョブを実行することとしてもよいし、いずれか一方が一致すればジョブを実行することとしてもよい。
【００４９】
図９は、ジョブ定義データ９００の構成とデータ例を示す図である。ジョブ定義データ９００は、配布するジョブの内容を定義するデータである。ジョブを配布するユーザは、自身が使用するクライアント端末３００のユーザインターフェース部３１０を介して、図９に例示するようなジョブ定義を入力する。
【００５０】
ジョブ定義は、例えば実行スケジュールとジョブフローによって記述することができるが、これに限らない。実行スケジュールは、例えば実行日と実行時刻によって定義することができる。ジョブフローは、当該ジョブ内において実行すべき処理をその実行順にしたがってユーザインターフェース部３１０上で接続することにより定義される。各処理の内容を記述したプログラムは、当該ジョブとともに配布することもできるし、あらかじめ配布しておくこともできる。
【００５１】
図１０は、子端末がグループに新規参入および脱退する手順を説明するシーケンス図である。ここではクライアント端末３００Ｅがグループ５１１に対して新規参入し、その後にグループ５１１から脱退する例を説明する。
【００５２】
（図１０：ステップＳ１００１）
担当Ｅは、クライアント端末３００Ｅのユーザインターフェース部３１０を介して、グループに対して新規参入するためのジョブを実行する。このとき、（ａ）親端末であるクライアント端末３００ＢのＩＰアドレス３３４３またはメールアドレス３３４４、（ｂ）新規参入するグループの名称、（ｃ）自端末がリーダ端末であればリーダグループ名、を指定する。クライアント端末３００Ｅは、当該ジョブを実行する過程において、クライアント端末３００Ｂに対してグループに新規参入する旨のメッセージを送信する。当該メッセージ内には、クライアント端末３００Ｅの自端末データ３５０の内容、および指定したグループ名とリーダグループ名を記述する。
【００５３】
（図１０：ステップＳ１００２：その１）
クライアント端末３００Ｂは、新規参入メッセージを受信すると、メッセージ内に記述されているクライアント端末３００Ｅの自端末データ３５０の内容を宛先リスト３３４に対して追加する。さらにクライアント端末３００Ｂは、指定されたグループ名およびリーダグループ名とクライアント端末３００Ｅの端末ＩＤを、メンバリスト３７０のレコードとして追加する。追加したレコードの状態３７５は「起動中」にする。クライアント端末３００Ｂは、クライアント端末３００Ｅに対して確認メッセージを送信する。
【００５４】
（図１０：ステップＳ１００２：その２）
クライアント端末３００Ｂが送信する確認メッセージ内には、クライアント端末３００Ｂの自端末データ３５０の内容、およびクライアント端末３００Ｂのグループデータ３６０の内容を記述する。クライアント端末３００Ｅは、確認メッセージを受信すると、メッセージ内に記述されているクライアント端末３００Ｂの自端末データ３５０の内容を宛先リスト３３４に対して追加する。さらにクライアント端末３００Ｅは、クライアント端末３００Ｂのグループデータ３６０の内容、およびクライアント端末３００Ｂの端末ＩＤをメンバリスト３７０のレコードとして追加する。追加したレコードの状態３７５は「起動中」にする。
【００５５】
（図１０：ステップＳ１００３）
担当Ｅは、クライアント端末３００Ｅのユーザインターフェース部３１０を介して、グループにから脱退するためのジョブを実行する。このとき、脱退しようとするグループのグループ名を指定する。クライアント端末３００Ｅは、当該ジョブを実行する過程において、クライアント端末３００Ｂに対してグループから脱退する旨のメッセージを送信する。当該メッセージ内には、クライアント端末３００Ｅの端末ＩＤ３５１、クライアント端末３００Ｅが保持しているグループデータ３６０のグループ名３６１、自端末がリーダ端末である場合はさらにリーダグループ名３６２を記述する。
【００５６】
（図１０：ステップＳ１００４：その１）
クライアント端末３００Ｂは、脱退メッセージを受信すると、メッセージ内に記述されているクライアント端末３００Ｅの自端末ＩＤ、グループ名、およびリーダグループ名に一致するレコードを、メンバリスト３７０から削除する。さらにクライアント端末３００Ｂは、グループデータ３６０内およびメンバリスト３７０内において存在していない端末に関するレコードを、宛先リスト３３４から削除する。クライアント端末３００Ｂはその後、クライアント端末３００Ｅに対して確認メッセージを送信する。
【００５７】
（図１０：ステップＳ１００４：その２）
クライアント端末３００Ｅは、確認メッセージを受信すると、グループデータ３６０から脱退するグループに関するレコードを削除し、メンバリスト３７０から親端末に関するレコードを削除する。さらにクライアント端末３００Ｅは、グループデータ３６０内およびメンバリスト３７０内において当該親端末に関するレコードが存在していない場合、当該親端末に関するレコードを宛先リスト３３４から削除する。
【００５８】
図１１は、リーダが使用する端末の役割を別の端末に引き継いでグループから脱退する手順を説明するシーケンス図である。ここではクライアント端末３００Ｂがその役割をクライアント端末３００Ｅに対して引き継ぎ、グループ５１１から脱退する例を説明する。例えば主任Ｂが別のグループへ異動になる場合に本例のような状況が発生する。グループ５１１におけるクライアント端末３００Ｂはクライアント端末３００Ｃ〜３００Ｅの親端末であるので、クライアント端末３００Ｂはこれら端末に対してジョブを配布する役割を有する。
【００５９】
（図１１：ステップＳ１１０１）
主任Ｂは、クライアント端末３００Ｂのユーザインターフェース部３１０を介して、役割を引き継ぐためのジョブを実行する。このとき、（ａ）脱退するグループ名、（ｂ）役割を引き継ぐよう依頼する端末のＩＤ、を指定する。クライアント端末３００Ｂは、当該ジョブを実行する過程において、クライアント端末３００Ｅに対して引き継ぎ依頼メッセージを送信する。当該メッセージ内には、クライアント端末３００Ｂが保持しているグループデータ３６０、メンバリスト３７０、および宛先リスト３３４のレコードのうち、当該グループに関するものを全て抽出して記述する。
【００６０】
（図１１：ステップＳ１１０２）
クライアント端末３００Ｅは、引き継ぎ依頼メッセージを受信すると、メッセージ内に記述されている上記各レコードを自端末が保持している各データに対して追加し、クライアント端末３００Ｂに対して確認メッセージを送信する。
【００６１】
（図１１：ステップＳ１１０３）
クライアント端末３００Ｂは、確認メッセージを受信すると、宛先リスト３３４が記述している各端末（ただし引き継ぎ先であるクライアント端末３００Ｅを除く）に対して、役割をクライアント端末３００Ｅへ引き継いだ旨を通知するメッセージを送信する。メッセージを受信した各端末は、クライアント端末３００Ｂに関するレコードをクライアント端末３００Ｅに関するレコードによって上書きする。これにより、クライアント端末３００Ｂが実施していた役割はクライアント端末３００Ｅに引き継がれることになる。
【００６２】
図１２は、親端末がジョブを配布する手順を説明するシーケンス図である。ここではクライアント端末３００Ａが図８〜図９に例示するジョブ定義にしたがってジョブを配布する例を説明する。
【００６３】
（図１２：ステップＳ１２０１：その１）
課長Ａは、クライアント端末３００Ａのユーザインターフェース部３１０を介して、図８〜図９で例示したジョブ定義などを入力し、そのジョブ（すなわちジョブ配布データ８００とジョブ定義データ９００）を配布するよう指示する。クライアント端末３００Ａは、グループデータ３６０およびメンバリスト３７０の記述にしたがって自身の子端末であるクライアント端末３００Ｂを特定し、これに対してジョブ配布データ８００とジョブ定義データ９００を配布する。ここでは図８のデータ例に示すように、配布先プロフィール８０３としてプロフィール３５５のみを指定したものとする。
【００６４】
（図１２：ステップＳ１２０１：その２）
クライアント端末３００Ｂは、受け取ったジョブ配布データ８００の配布先プロフィール８０３と、自端末のプロフィール３５５とを比較する。図４と図８に示すデータ例においては、配布先プロフィール８０３は「担当」であるので、役職が「担当」である者が当該ジョブを受け取るべきであることが分かる。プロフィール３５５は「主任」であるためクライアント端末３００Ｂは当該ジョブの宛先ではない。したがってクライアント端末３００Ｂは、受け取ったジョブを自身の子端末に対してさらに送信する。
【００６５】
（図１２：ステップＳ１２０２）
クライアント端末３００Ｂが保持するグループデータ３６０およびメンバリスト３７０によれば、クライアント端末３００Ｂの子端末はクライアント端末３００Ｃ〜３００Ｅである。クライアント端末３００Ｂは、受け取ったジョブをこれら端末に対して配布する。
【００６６】
（図１２：ステップＳ１２０３）
クライアント端末３００Ｃ〜３００Ｅは、プロフィール３５５が「担当」であるため、受け取ったジョブを自端末が実行すべきものとみなし、その実行スケジュールにしたがって実行予定ジョブとして自端末上に登録する。クライアント端末３００Ｃ〜３００Ｅは、クライアント端末３００Ｂに対して、ジョブ受付が完了した旨のメッセージを送信する。
【００６７】
（図１２：ステップＳ１２０４）
クライアント端末３００Ｂは、子端末からジョブ受付完了メッセージを受信すると、配布成功条件８０４を満たすか否かを判定する。例えば全ての子端末からジョブ受付完了メッセージを受信した場合、配布成功率は１００％となる。クライアント端末３００Ｂは、ジョブ配布元であるクライアント端末３００Ａに対して、判定結果を通知する。クライアント端末３００Ａはその通知を受け取る。配布成功であればジョブ配布は完了し、配布失敗であれば例えば所定時間間隔を空けて再配布するなどの措置をとる。
【００６８】
図１３は、リーダが使用する端末が他端末に対して代行を依頼し、その後に復帰する手順を説明するシーケンス図である。ここでは図５の１行目のレコードにしたがって、クライアント端末３００Ｂがクライアント端末３００Ｃに対して代行を依頼する場合の例を説明する。
【００６９】
（図１３：ステップＳ１３０１）
主任Ｂは、例えば出張などの理由で第２Ｕの業務を一時的に停止するとき、クライアント端末３００Ｂのユーザインターフェース部３１０を介して、クライアント端末３００Ｂの親端末としての役割をクライアント端末３００Ｃに代行させるジョブを実行する。クライアント端末３００Ｂは、そのジョブの実行過程において、クライアント端末３００Ｃに対して代行依頼メッセージを送信する。当該メッセージ内には、（ａ）クライアント端末３００Ｂの親端末であるクライアント端末３００ＡのＩＤ、（ｂ）メンバリスト３７０内で同じグループに属するクライアント端末３００Ｄと３００ＥそれぞれのＩＤ、を記述する。クライアント端末３００Ｃ自身についての情報は不要である。
【００７０】
（図１３：ステップＳ１３０２）
クライアント端末３００Ｃは、代行依頼メッセージを受信すると、メッセージ内に記述されている端末ＩＤをそれぞれグループデータ３６０とメンバリスト３７０に対して反映し、確認メッセージを返信する。
【００７１】
（図１３：ステップＳ１３０３：その１）
クライアント端末３００Ｂは、クライアント端末３００Ｃから確認メッセージを受信すると、自端末の親端末（３００Ａ）と子端末（３００Ｄと３００Ｅ）に対して、自端末の動作を停止しクライアント端末３００Ｃへ引き継ぐ旨のメッセージを送信する。当該メッセージ内には、クライアント端末３００Ｃの自端末データ３５０の内容を記述する。
【００７２】
（図１３：ステップＳ１３０３：その２）
クライアント端末３００Ｂから停止メッセージを受信した各端末は、（ａ）メンバリスト３７０におけるクライアント端末３００Ｂの状態３７５を「停止中」に変更し、（ｂ）メンバリスト３７０におけるクライアント端末３００Ｂの代理端末ＩＤ３７４にクライアント端末３００ＣのＩＤを設定し、（ｃ）宛先リスト３３４にクライアント端末３００Ｃの自端末データ３５０の内容を追加する。
【００７３】
（図１３：ステップＳ１３０４）
課長Ａが、図１２で説明したものと同様にジョブを配布するものと仮定する。クライアント端末３００Ａは、メンバリスト３７０の記述にしたがって自身の子端末であるクライアント端末３００Ｂに対しジョブを配布するのが原則であるが、ここではクライアント端末３００Ｂの状態３７５が「停止中」であるため、代理端末ＩＤ３７４の記述にしたがって代わりにクライアント端末３００Ｃに対してジョブを配布する。
【００７４】
（図１３：ステップＳ１３０５〜Ｓ１３０７）
クライアント端末３００Ｃは、配布先プロフィール８０３の記述にしたがって、受け取ったジョブを自端末が実行すべきものとみなし、その実行スケジュールにしたがって実行予定ジョブとして自端末上に登録する。さらにクライアント端末３００Ｃは、メンバリスト３７０の記述にしたがって、クライアント端末３００Ｂの子端末であるクライアント端末３００Ｄと３００Ｅに対してジョブを配布する。ジョブ受付完了メッセージ（Ｓ１３０６）と判定結果通知（ｃ）Ｓ１３０７）については、動作主体がクライアント端末３００Ｃであることを除き図１２のステップＳ１２０３〜Ｓ１２０４と同様である。
【００７５】
（図１３：ステップＳ１３０８）
主任Ｂは、第２Ｕの業務を再開するとき、クライアント端末３００Ｂのユーザインターフェース部３１０を介して、クライアント端末３００Ｂの親端末としての役割を復帰させるジョブを実行する。クライアント端末３００Ｂは、そのジョブの実行過程において、各端末に対して復帰メッセージを送信する。復帰メッセージを受信した各端末は、メンバリスト３７０におけるクライアント端末３００Ｂの状態３７５を「起動中」に変更するとともに、代理端末ＩＤ３７４をクリアする。
【００７６】
（図１３：ステップＳ１３０９）
クライアント端末３００Ｃは、復帰メッセージを受信すると、メンバリスト３７０が記述している子端末に関するレコードをクライアント端末３００Ｂに対して送信する。クライアント端末３００Ｂが停止中にこれら端末の状態３７５や代理端末ＩＤ３７４などが変わっている可能性があるからである。例えばクライアント端末３００Ｂが停止中に、クライアント端末３００Ｄが３００Ｅに対して本図と同様の引き継ぎを実施した場合、これら端末の状態３７５や代理端末ＩＤ３７４がその引き継ぎを反映しているので、これを通知する必要がある。
【００７７】
＜本発明のまとめ＞
本発明に係るジョブ管理システム１０００において、クライアント端末３００は階層構造を有するグループに分けられており、グループに属する端末の構成は当該グループ内における新規参入メッセージと脱退メッセージによって管理される。これにより、グループ内の端末構成を集中管理する必要がなくなり、各グループの自律的動作に委譲することができる。したがって、ジョブ管理システムを自律分散的に構成することができる。
【００７８】
本発明に係るジョブ管理システム１０００において、グループメンバ端末に対してジョブを配布する端末は、他の端末に対してその役割を引き継ぐことができる。引き継ぎは一時的なものであってもよいし（図１３）、例えばユーザ自身が異動するような場合は確定的に引き継いでもよい（図１１）。この引き継ぎ動作は当該グループ内およびリーダ端末の親端末との間のみで実施される。したがって、ジョブ管理システム１０００の自律分散性を損なうことなく、端末構成を柔軟に変更することができる。
【００７９】
本発明に係るジョブ管理システム１０００において、メンバリスト３７０はグループメンバ端末のＩＤなどとともに、当該端末のユーザの組織上におけるプロファイルを併せて記述することができる。これにより、ジョブを配布するユーザは組織上のプロファイルを参照しながら配布先を指定することができるので、ジョブ配布作業の効率を高めることができる。すなわち、端末のＩＤなどのように機械的動作のために設けられたパラメータを参照しながら作業するのではなく、ユーザが理解し易いパラメータを参照しながら作業することができるので、作業効率がよい利点がある。
【００８０】
＜本発明の変形例について＞
本発明は上記した実施形態の形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【００８１】
上記実施形態において、子端末は親端末を介して、他グループに属する端末に対してメッセージを送信することもできる。例えばクライアント端末３００Ｅは、クライアント端末３００Ｂを介して、第１Ｕに属するクライアント端末３００に対してメッセージを送信することもできる。クライアント端末３００Ｂが動作を一時停止してクライアント端末３００Ｃが代行している場合は、クライアント端末３００Ｂに代えて３００Ｃを介して同様にメッセージ発信することもできる。
【００８２】
上記実施形態において、グループ階層を多層的に構成することもできる。例えば図１に示すように、クライアント端末３００Ｂは子端末としてクライアント端末３００Ｃと３００Ｆを管理し、クライアント端末３００Ｃは子端末としてクライアント端末３００Ｄを管理することができる。いずれの場合であっても、親端末は自身の子端末の構成のみを管理し、親端末のさらに上位の端末は子端末の構成について関与しない。したがって、例えばクライアント端末３００Ａが保持するメンバリスト３７０は、クライアント端末３００Ｂの子端末についての情報を保持しない。これにより、各端末グループの構成が当該グループ内部で完結することになり、自律動作性を高めることができる。
【００８３】
上記実施形態において、端末装置のプロフィールとしてプロフィール３５５とプロフィール３６５を設けているが、これらはいずれか一方（例えば自端末データ３５０内）に統合してもよい。
【００８４】
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【符号の説明】
【００８５】
１００：情報システム部門、２００：データセンタ／クラウド、３００：クライアント端末、３１０：ユーザインターフェース部、３２０：ジョブ実行制御部、３３０：グループ構成管理部、３４０：連携部、３５０：自端末データ、３６０：グループデータ、３７０：メンバリスト、１０００：ジョブ管理システム。
【図１】
0006437414.tif 000002
【図２】
0006437414.tif 000003
【図３】
0006437414.tif 000004
【図４】
0006437414.tif 000005
【図５】
0006437414.tif 000006
【図６】
0006437414.tif 000007
【図７】
0006437414.tif 000008
【図８】
0006437414.tif 000009
【図９】
0006437414.tif 000010
【図１０】
0006437414.tif 000011
【図１１】
0006437414.tif 000012
【図１２】
0006437414.tif 000013
【図１３】
0006437414.tif 000014