(57)【特許請求の範囲】
【請求項１】
複数の端末装置によって構成されるネットワークにおける通信方法であって、
当該ネットワーク内の第一の端末装置は、ジョブの実行に関する問合せを行うためのジョブ実行問合せデータと有効期限を示す第一の有効期限データとを互いに対応付けて当該ネットワーク内の各第二の端末装置に送信し、
前記各第二の端末装置は、前記第一の端末装置からの前記ジョブ実行問合せデータに対応する前記第一の有効期限データに示される有効期限が切れていない場合に、当該ジョブ実行問合せデータに関する回答を示す回答データと有効期限を示す第二の有効期限データとを対応付けて当該第一の端末装置に返信し、
前記第一の端末装置は、前記各第二の端末装置からの前記回答データおよび当該回答データに対応する前記第二の有効期限データに基づいて、当該ネットワーク内のいずれの前記第二の端末装置に対して前記ジョブを実行させるのかを決定し、
前記第一の端末装置は、決定した前記第二の端末装置に対して前記ジョブの実行を依頼するためのジョブ実行依頼データを送信する、
ことを特徴とする通信方法。
【請求項２】
前記第二の端末装置は、前記回答データとして、当該第二の端末装置のスペック、当該第二の端末装置のリソースの使用状況、または当該第二の端末装置において前記ジョブを開始することが可能な時期に関するデータを返信する、
請求項１に記載の通信方法。
【請求項３】
前記第二の端末装置は、前記ジョブ実行問合せデータを受信すると、当該ジョブ実行問合せデータに関する前記回答データに対応する前記第二の有効期限に示される有効期限が切れまたは前記ジョブの前記ジョブ実行依頼データを受信するまで、当該ネットワーク内の他の端末装置からの他のジョブの実行の依頼の受付を制限する、
請求項１または請求項２に記載の通信方法。
【請求項４】
前記第一の端末装置は、前記第二の端末装置からの前記第二の有効期限データに示される有効期限が切れている場合は、当該第二の端末装置を除外して、前記ジョブを実行させる端末装置を決定する、
請求項１ないし請求項３のいずれかに記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信の方法などに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置（ノード）を複数台、通信回線で繋いでネットワークを形成し、これらの情報処理装置同士で通信を行う技術が、広く普及している。通信の技術として、特許文献１〜３に記載されるような方法が提案されている。
【０００３】
特許文献１に記載される方法によると、ネットワーク内の各端末装置は、ネットワーク内に形成されたグループの公開鍵を保持している。このネットワーク内において、ある端末装置が他の端末装置に対して当該他の端末装置がグループのメンバであるか否かについての問合せを行うと、当該他の端末装置は、この問合せに対する応答として、所定の暗号化されたデータを送信する。問合せを行った端末装置は、この暗号化されたデータをグループの公開鍵によって復号することにより当該他の端末装置がグループのメンバであることを確認する。
【０００４】
特許文献２に記載される方法によると、一つのノードの問合せ処理を第一のノード群に分割する過程と、問合せ処理制限時間Ｑｔを与えたとき、Ｑｔ以内に処理を終了するのに必要なノード数Ｐを決定する過程と、第一のノード群から実際のデータベースをアクセスする第二のノード群にデータベース処理を依頼するとき、第一のノード群の処理負荷を均等化する処理依頼関係を決定する過程と、上記処理依頼関係でなお第一のノード群の処理負荷に不均衡が生じる時、第二のノード群をノードの中まで分割することによって、第一のノード群の処理負荷をさらに均衡化する処理依頼関係を決定する過程と、第二のノード群から返される処理結果を第一のノード群がユーザに返す応答方法を決定する過程からなる。
【０００５】
特許文献３に記載される方法によると、あるホストコンピュータがジョブの実行に使用するリソースの予約をネットワークを介して接続されたリソースプロキシに対して行う過程において、そのリソースプロキシは、予約の要求をしたホストコンピュータに対して予約プロセス証明書発行要求を送信する。そして、そのホストコンピュータは、予約プロセス証明書をリソースプロキシに対して返信することにより予約を確定する。
【特許文献１】特開２００４−１５９２９８号公報
【特許文献２】特開平６−３０９２８４号公報
【特許文献３】特開２００５−１６５５６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、一般に、通信は、一方のノードから他方のノードに対してデータを送信するだけの場合もあれば、一方のノードから他方のノードに対して問合せのためのデータ（以下、「問合せデータ」と記載する。）を送信し、他方のノードから一方のノードに対してその問合せデータについての回答を示すデータ（以下、「回答データ」と記載する。）を送信する場合もある。
【０００７】
後者の場合において、一方のノードは、問合せデータを問合せ先の他方のノードに送信してから長い時間が経過した後に、それに対する回答データを当該他方のノードから受信することがある。
【０００８】
このように長い時間を経過してから得た回答データは、問合せ元のノードにとって無駄になってしまう場合がある。なぜなら、問合せ元のノードが、必要な回答データを別のノードから得ているかもしれないからである。または、回答データが送信されて来るのを待たずに、処理を済ませてしまっているかもしれないからである。
【０００９】
そうすると、無駄な回答データのやり取りがノード間で行われることになるので、ネットワークの負荷を増大させてしまうことになる。また、両ノードは、無駄な通信処理を行うので、自らのＣＰＵなどの資源を無駄に使ってしまうことになる。
【００１０】
しかし、特許文献１〜３に記載されるような従来の方法では、これらの課題を解決することはできない。
【００１１】
本発明は、このような問題点に鑑み、複数のノードによって構成されるネットワークの負荷および各ノードの処理の負荷を従来よりも軽減することを目的とする。
【課題を解決するための手段】
【００１３】
または、複数の端末装置によって構成されるネットワークにおける通信方法であって、当該ネットワーク内の第一の端末装置は、ジョブの実行に関する問合せを行うためのジョブ実行問合せデータと有効期限を示す第一の有効期限データとを互いに対応付けて当該ネットワーク内の各第二の端末装置に送信し、前記各第二の端末装置は、前記第一の端末装置からの前記ジョブ実行問合せデータに対応する前記第一の有効期限データに示される有効期限が切れていない場合に、当該ジョブ実行問合せデータに関する回答を示す回答データと有効期限を示す第二の有効期限データとを対応付けて当該第一の端末装置に返信し、前記第一の端末装置は、前記各第二の端末装置からの前記回答データおよび当該回答データに対応する前記第二の有効期限データに基づいて、当該ネットワーク内のいずれの前記第二の端末装置に対して前記ジョブを実行させるのかを決定し、前記第一の端末装置は、決定した前記第二の端末装置に対して前記ジョブの実行を依頼するためのジョブ実行依頼データを送信する、ことを特徴とする。
【発明の効果】
【００１４】
本発明によると、複数のノードによって構成されるネットワークの負荷および各ノードの処理の負荷を従来よりも軽減することができる。
【発明を実施するための最良の形態】
【００１５】
図１はネットワーク１の全体的な構成の例を示す図、図２は端末装置２のハードウェア構成の例を示す図、図３は端末装置２の機能的構成の例を示す図、図４は端末装置２の論理的なトポロジーの例を示す図である。
【００１６】
本発明に係るネットワーク１は、図１に示すように、複数台の端末装置２（２１、２２、…、２ｎ）、スイッチングハブ３、およびルータ４などのノードによって構成されるＬＡＮ（Local Area Network）である。これらの端末装置２は、スイッチングハブ３にツイストペアケーブルによってスター型に繋がれている。スイッチングハブ３およびルータ４も、ツイストペアケーブルによって繋がれている。以下、これらのノードのうちの端末装置２同士がデータ通信を行う場合について説明する。
【００１７】
端末装置２は、パーソナルコンピュータ、ワークステーション、またはプリンタなどのような、他の装置との間でデータの入出力の処理を実行する装置である。以下、端末装置２としてパーソナルコンピュータが用いられる場合を例に説明する。
【００１８】
端末装置２は、図２に示すように、ＣＰＵ２０ａ、ＲＡＭ２０ｂ、ＲＯＭ２０ｃ、ハードディスク２０ｄ、通信インタフェース２０ｅ、画像インタフェース２０ｆ、入力インタフェース２０ｇ、その他の種々の回路または装置などによって構成される。
【００１９】
通信インタフェース２０ｅは、ＮＩＣ（Network Interface Card）であって、ツイストペアケーブルを介してスイッチングハブ３のいずれかのポートに繋がれている。画像インタフェース２０ｆは、モニタと繋がれており、画面を表示するための映像信号をモニタに送出する。入力インタフェース２０ｇは、キーボードまたはマウスなどの入力装置と繋がれており、これらの入力装置からユーザの操作内容を示す信号が入力される。
【００２０】
ハードディスク２０ｄには、図３に示すようなデータ操作管理部２０１、データ受信部２０２、有効期限判定部２０３、時計機能部２０４、データ解析部２０５、ジョブ実行可否判断部２０６、ジョブ依頼先決定部２０７、ジョブ予約部２０８、接続テーブル保存部２０９、接続テーブル管理部２１０、データ保存部２１１、ジョブ開始日時算出部２１２、システム情報取得部２１３、有効期限設定部２１４、送信データ生成部２１５、データ送信部２１６、およびコマンド受付部２１７などの機能を実現するためのプログラムおよびデータが格納されている。これらのプログラムおよびデータは必要に応じてＲＡＭ２０ｂに読み出され、ＣＰＵ２０ａによってプログラムが実行される。なお、一部の機能については、専用の回路などによってハードウェア的に実現されることもある。
【００２１】
各端末装置２には、それぞれ、他の端末装置２との識別のために、ホスト名（マシン名）、ＩＰアドレス、およびＭＡＣアドレスが与えられている。ホスト名は、ネットワーク１の管理者などが自由に付けることができる。ＩＰアドレスは、ネットワーク１の規則に従って与えられる。ＭＡＣアドレスは、その端末装置２の通信インタフェース１０ｅに対して固定的に与えられているアドレスである。本実施形態では、端末装置２１、２２、…ごとに「ＰＣ１」、「ＰＣ２」、…のようなホスト名が付されているものとする。以下、これらの端末装置２をホスト名によって記載することがある。
【００２２】
また、これらの端末装置２は、図４に示すように、仮想空間に配置されているものと仮想されている。そして、点線で示すように、仮想空間内の近隣の少なくとも１台の他の端末装置２と関連付けられている。かつ、これらの関連付けによって、すべての端末装置２が互いに直接的にまたは間接的に関係するようになっている。なお、「直接的に関係する」とは、図４において１本の点線で繋がれていること（例えば、図４のＰＣ１とＰＣ２およびＰＣ９とのような関係）を言い、「間接的に関係する」とは、２本以上の点線および１つ以上のノードで繋がれていること（例えば、図４のＰＣ１とＰＣ４とのような関係）を言う。端末装置２は、自らに直接的に関連付けられている他の端末装置２に対してデータを送信する。以下、「関連付けられている」とは、特に断りのない限り、直接的に関連付けられていることを言う。
【００２３】
端末装置２は、自分に関連付けられている他の端末装置２に対してジョブを実行するように依頼することができる。例えば、端末装置２は、自分のスペックまたは現在のリソースの使用状況などの関係で、自分では実行することができないジョブを、他の端末装置２に対して実行するように依頼することができる。または、ユーザの指令に基づいて、他の端末装置２に対してジョブを実行するように依頼する場合もある。
【００２４】
ここで、ＰＣ７が自分に関連付けられているいずれかの他の端末装置２（つまり、ＰＣ２，ＰＣ６，ＰＣ８およびＰＣ９のうちのいずれか）に対してジョブの依頼を行う場合を例に、処理の流れおよびデータのやり取りを簡単に説明しておく。
【００２５】
ＰＣ７は、ジョブの実行を依頼するための問合せデータＩＲをＰＣ２、ＰＣ６、ＰＣ８、およびＰＣ９に送信する。この問合せデータＩＲには、ジョブの内容（ジョブの種類および処理条件など）を示すデータのほか、その内容の処理を実行することが可能であるか否かの問合せおよびそのジョブをいつから実行することができるかの問合せのデータが含まれている。
【００２６】
ＰＣ２、ＰＣ６、ＰＣ８、およびＰＣ９は、問合せデータＩＲを受信すると、それぞれ、その問合せデータＩＲに示される問合せに対する回答を、回答データＤＴＡとして、問合せ元であるＰＣ７に送信する。
【００２７】
ＰＣ７は、各端末装置２から回答データＤＴＡを受信すると、これらの回答データＤＴＡに基づいて、ジョブを依頼する端末装置２を決定し、正式にジョブの実行を依頼する旨のデータ（以下、「正式依頼データＲＱ」と記載する。）を、決定した端末装置２に送信する。
【００２８】
正式依頼データＲＱを受信した端末装置２は、ジョブの実行依頼を受け付けた旨のデータ（以下、「受付通知データＡＣ」と記載する。）をＰＣ７に送信する。そして、そのジョブの実行が完了した後、実行結果および完了した旨を含むデータ（以下、「ジョブ完了報告データＣＰ」と記載する。）を、依頼元であるＰＣ７に送信する。
【００２９】
図５は図４のように関連付けられた端末装置２の接続テーブルＴＬの例を示す図、図６はＰＣ７のジョブ管理テーブルＴＪの例を示す図、図７はＰＣ７の依頼ジョブ管理テーブルＴＩの例を示す図、図８はＰＣ７の回答管理テーブルＴＡの例を示す図である。以下、図３に示す端末装置２の各部の処理内容について詳細に説明する。
【００３０】
接続テーブル保存部２０９は、その端末装置２自身に関連付けられている他の端末装置２のホスト名、ＩＰアドレス、およびＭＡＣアドレスなどの属性の一覧を示す接続テーブルＴＬを保存している。例えば、図４におけるＰＣ１、ＰＣ２、ＰＣ６、ＰＣ７、ＰＣ８、およびＰＣ９の接続テーブル保存部２０９には、図５に示すような接続テーブルＴＬ１、ＴＬ２、ＴＬ６、ＴＬ７、ＴＬ８、およびＴＬ９がそれぞれ保存されている。これらの接続テーブルＴＬの内容は、各端末装置２の関連付けに基づいて管理者によって予め作成される。
【００３１】
接続テーブル管理部２１０は、接続テーブル保存部２０９に保存されている接続先の情報を管理する。
【００３２】
データ保存部２１１は、ＯＳまたはアプリケーションソフトなどが使用するデータ、ユーザがアプリケーションソフトによって作成したデータ、その端末装置２において実行されるジョブに関するデータ（以下、「ジョブデータＤＴＪ」と記載する。）、他の端末装置２に実行を依頼したジョブに関するデータ（以下、「依頼ジョブデータＤＴＩ」と記載する。）、他の端末装置２に送信した問合せデータＩＲに対する回答データＤＴＡ、その他種々のデータを、ファイルとして保存している。
【００３３】
ここで、ジョブデータＤＴＪを管理するためのジョブ管理テーブルＴＪ、依頼ジョブデータＤＴＩを管理するための依頼ジョブ管理テーブルＴＩ、および回答データＤＴＡを管理するための回答管理テーブルＴＡについて説明する。
【００３４】
ジョブ管理テーブルＴＪには、図６に示すように、その端末装置２において実行するジョブごとに、ジョブデータＤＴＪが格納される。
【００３５】
ジョブデータＤＴＪの「ジョブ番号」は、ジョブを識別するために割り振られる番号である。「依頼元」は、そのジョブを依頼して来た他の端末装置２のホスト名を示す。ただし、そのジョブが他の端末装置２から依頼されたものではなくその端末装置２自身で発生したものである場合には、その端末装置２自身のホスト名を示す。
【００３６】
「状態」は、そのジョブについての現在の処理の状態を示す。このフィールドには、処理の状態に応じて「実行中」、「処理待ち」、または「依頼通知待ち」などが示される。「実行中」は、そのジョブが現在その端末装置２において実行中であることを意味する。「処理待ち」は、そのジョブが実行待ちの状態であることを意味する。「処理待ち」のジョブは、「実行中」のジョブが完了されると順次実行される。「依頼通知待ち」は、他の端末装置２からの、そのジョブに関する問合せ（実行の可否および開始可能時期）に回答した後、そのジョブについての正式な依頼を待っている状態を意味する。
【００３７】
「有効期限」は、そのジョブが「依頼通知待ち」の状態である場合に、正式な依頼をいつまで待つのかを示している。その端末装置２自身で発生したジョブのジョブデータＤＴＪについては、このフィールドが空欄となる。「ジョブ種類」は、そのジョブの種類を示す。ジョブの種類としては、ファイル検索またはデータ処理などがある。
【００３８】
依頼ジョブ管理テーブルＴＩには、図７に示すように、その端末装置２が他の端末装置２に実行を依頼したジョブごとに、依頼ジョブデータＤＴＩが格納される。
【００３９】
依頼ジョブデータＤＴＩの「依頼ジョブ番号」は、他の端末装置２に実行を依頼したジョブを識別するために割り振られる番号である。
【００４０】
「状態」は、そのジョブに対する現在の処理の状態を示す。このフィールドには、処理の状態に応じて「問合せ中」、「受付通知待ち」、または「依頼済み」などが示される。「問合せ中」は、そのジョブの実行の可否および開始可能時期を問い合わせるための問合せデータＩＲを他の端末装置２に送信した後で、その問合せデータＩＲに対する回答データＤＴＡが返信されて来るのを待っている状態を意味する。「受付通知待ち」は、そのジョブの実行を正式に依頼するための正式依頼データＲＱを他の端末装置２に送信した後で、その正式依頼データＲＱに対する受付通知データＡＣが返信されて来るのを待っている状態を意味する。「依頼済み」は、そのジョブについて他の端末装置２から受付通知データＡＣを受信したことを意味する。つまり、そのジョブについての他の端末装置２への実行依頼の処理が完了し、当該他の端末装置２よりそのジョブの実行結果が送信されて来るのを待っている状態を意味する。
【００４１】
「有効期限」は、送信した問合せデータＩＲまたは正式依頼データＲＱについての有効期限を示す。すなわち、「状態」が「問合せ中」の依頼ジョブデータＤＴＩについては、送信した問合せデータＩＲに対する回答の期限を示す。また、「状態」が「受付通知待ち」の依頼ジョブデータＤＴＩについては、そのジョブの依頼の受付可否についての回答を受け付ける期限を示す。
【００４２】
「ジョブ種類」は、そのジョブの種類を示す。ジョブの種類としては、ファイル検索またはデータ処理などがある。
【００４３】
回答管理テーブルＴＡには、図８に示すように、その端末装置２が他の端末装置２から受信した回答データＤＴＡが格納される。回答データＤＴＡの内容については、後に説明する。
【００４４】
データ受信部２０２は、ネットワーク１を流れるパケットのうち、その端末装置２に必要なものを受信する。
【００４５】
有効期限判定部２０３は、データ受信部２０２が受信したデータ（以下、「受信データ」と記載する。）に有効期限が対応付けられている場合に、その有効期限と現在の日時（日付および時刻）とに基づいて、その受信データが有効期限切れでないかどうかを判定する。
【００４６】
時計機能部２０４は、有効期限判定部２０３および有効期限設定部２１４に現在の日時を提供する。
【００４７】
データ解析部２０５は、受信データから必要な情報を抽出してその内容を解析することによって、その受信データの種類を判別する。つまり、その受信データが、「問合せデータ」、「回答データ」、「正式依頼データ」、「受付通知データ」、または「ジョブ完了報告データ」などのうちのいずれであるかを判別する。
【００４８】
データ操作管理部２０１は、データ解析部２０５、ジョブ実行可否判断部２０６、ジョブ予約部２０８、有効期限設定部２１４、またはコマンド受付部２１７などからの要求に基づいて、ジョブ管理テーブルＴＪ、依頼ジョブ管理テーブルＴＩ、または回答管理テーブルＴＡのデータに関する処理を行う。
【００４９】
例えば、ジョブデータＤＴＪを新たにジョブ管理テーブルＴＪに登録し、依頼ジョブデータＤＴＩを新たに依頼ジョブ管理テーブルＴＩに登録し、または回答データＤＴＡを回答管理テーブルＴＡに新たに登録する処理を行う。そのほか、これらのデータの内容を更新する処理、不要になったデータをテーブルから削除する処理、要求されたデータをこれらのテーブルから検索して要求元に与える処理などを行う。
【００５０】
また、ジョブ管理テーブルＴＪおよび依頼ジョブ管理テーブルＴＩを常時監視しまたは定期的に確認することによって、有効期限が切れたジョブデータＤＴＪまたは依頼ジョブデータＤＴＩを検出する。
【００５１】
ジョブ実行可否判断部２０６およびジョブ開始日時算出部２１２は、受信データがデータ解析部２０５によって問合せデータＩＲであると判別された場合に、その問合せデータＩＲに対する回答を出すための処理を行う。すなわち、ジョブ実行可否判断部２０６は、その問合せデータＩＲに示される内容のジョブを実行することができるか否かを判断する。実行することができると判断された場合に、ジョブ開始日時算出部２１２は、そのジョブをいつから開始することができるか、すなわち、そのジョブの開始可能日時を、算出する。
【００５２】
ジョブ依頼先決定部２０７は、ジョブを正式に依頼する端末装置２（依頼先）を決定するための処理を行う。
【００５３】
ジョブ予約部２０８は、他の端末装置２からのジョブの正式な依頼を受け付け、そのジョブの予約のための処理を行う。
【００５４】
システム情報取得部２１３は、端末装置２自身のＣＰＵ２０ａのクロック周波数およびデータ処理単位、ＲＡＭ２０ｂの容量、ハードディスク２０ｄの容量、搭載されているソフトウェアおよびハードウェアの種類、および実現可能な機能などのスペックに関する情報を取得する。また、これらのリソースの現在の使用状況に関する情報を取得する。以下、取得したこれらの情報を「システム情報ＳＩ」と記載する。
【００５５】
有効期限設定部２１４は、他の端末装置２に送信するデータに有効期限を必要に応じて設定する。
【００５６】
送信データ生成部２１５は、ジョブ実行可否判断部２０６、ジョブ依頼先決定部２０７、およびジョブ予約部２０８などの指示に基づいて、他の端末装置２に送信するためのデータ（以下、「送信データ」と記載する。）を生成する。
【００５７】
データ送信部２１６は、送信データ生成部２１５によって生成された送信データをパケット化して他の端末装置２に送信する。
【００５８】
コマンド受付部２１７は、ユーザがキーボードまたはマウスなどを操作して指定したコマンドを受け付け、そのコマンドに応じた処理を各部に実行させる。
【００５９】
そのほか、端末装置２には、端末装置２自身のノード認証またはユーザ認証を行うように他の端末装置２に対して申請しネットワーク１に参加するための処理を行う機能、ネットワーク１から離脱するための処理を行う機能、および他の端末装置からの申請に基づいて当該他の端末装置２のノード認証またはユーザ認証を行う機能などが設けられている。
【００６０】
図９および図１０はＰＣ７が自らに関連付けられているいずれかの端末装置２に対してジョブの実行依頼を行う場合の、各端末装置２の処理の流れの例を説明するフローチャートである。
【００６１】
次に、図３の各部の処理内容を、ＰＣ７が他の端末装置２に対してジョブの依頼を行う場合を例に、図９および図１０のフローチャートを参照してさらに詳細に説明する。なお、図９、図１０、およびフローチャートの処理のための制御は、ＣＰＵ２０ａによって行われる。
【００６２】
ユーザは、ＰＣ７のキーボードなどを操作して、ジョブを他の端末装置２に実行させるように指令を与える。この際に、ユーザは、ジョブの種類および処理条件などを指定しておく。すると、ＰＣ７において、コマンド受付部２１７は、これらの指令および処理条件を受け付け、他の端末装置２にそのジョブを実行させるための処理を開始するように、データ操作管理部２０１に対して要求する（図９の＃７−１）。
【００６３】
データ操作管理部２０１は、コマンド受付部２１７からの要求を受け付けると、そのジョブに対してユニークなジョブ番号を発行し、そのジョブについての問合せデータＩＲを生成するように送信データ生成部２１５に対して指示する。なお、図９の例においては、ジョブ番号に「０００３」が発行されたものとする。
【００６４】
すると、送信データ生成部２１５は、問合せデータＩＲを生成する（＃７−２）。この問合せデータＩＲには、ユーザが指定したそのジョブの種類および処理条件、データ操作管理部２０１が発行したジョブ番号、そのジョブを実行することが可能であるか否かの回答を求める旨のメッセージ、およびそのジョブをいつから実行することができるかについての回答を求める旨のメッセージなどが含まれる。さらに、これらの問合せに対する回答の期限を設定する処理を有効期限設定部２１４に実行させ、その期限を、その問合せデータＩＲの有効期限として採用する（＃７−３）。具体的には、有効期限設定部２１４によって設定された期限を示すデータをその問合せデータＩＲに含めるようにする。この有効期限は、例えば、時計機能部２０４から知らされた現在の日時に所定の時間を加算することによって決めるようにすればよい。または、ジョブごとにユーザが指定することができるようにしてもよい。
【００６５】
また、問合せデータＩＲを生成する処理と並行してまたは前後して、データ操作管理部２０１は、そのジョブについての依頼ジョブデータＤＴＩを新たに生成し、依頼ジョブ管理テーブルＴＩに登録する（＃７−４）。依頼ジョブデータＤＴＩの内容は前に説明した通りであるが、この時点では、依頼ジョブデータＤＴＩの「状態」は、「問合せ中」としておく。また、「依頼ジョブ番号」、「有効期限」、および「ジョブ種類」には、それぞれ、データ操作管理部２０１によって発行されたジョブ番号、有効期限設定部２１４によって設定された期限、およびユーザによって指定されたジョブの種類を示す情報を格納しておく。
【００６６】
データ送信部２１６は、生成された問合せデータＩＲを、ＰＣ７自身の接続テーブルＴＬ７に基づいて、ＰＣ７自身に関連付けられているＰＣ２、ＰＣ６、ＰＣ８、およびＰＣ９に宛てて送信する（＃７−５）。
【００６７】
ＰＣ２、ＰＣ６、ＰＣ８、およびＰＣ９において、それぞれのデータ受信部２０２は、ＰＣ７から送信されて来た問合せデータＩＲを受信する（＃２−１、＃６−１、＃８−１、＃９−１）。有効期限判定部２０３は、その問合せデータＩＲに示される期限と現在の日時とを比較することによって、その問合せデータＩＲが有効期限切れでないかどうかを判定する（＃２−２、＃６−２、＃８−２、＃９−２）。
【００６８】
現在の日時が問合せデータＩＲに示される期限を過ぎていれば、その問合せデータＩＲが有効期限切れであると判定する。この場合は、その問合せデータＩＲを廃棄する。一方、現在の日時が問合せデータＩＲに示される期限を未だ過ぎていなければ、その問合せデータＩＲが未だ有効期限切れではないと判定する。この場合は、フローチャートの続きの処理が継続される。
【００６９】
ただし、図９の例では、ＰＣ２、ＰＣ６、ＰＣ８においては有効期限切れではないと判定され、ＰＣ９においては有効期限切れであると判定されたものとする。したがって、ＰＣ９のみ、ここで問合せデータＩＲを廃棄し処理を終了する。
【００７０】
データ解析部２０５は、データ受信部２０２が受信した問合せデータＩＲを解析することによってデータの種類を判別する。ここでは、当然、「問合せデータ」であると判別される。「問合せデータ」であると判別した場合は、データ解析部２０５は、その問合せデータＩＲに係るジョブの実行が端末装置２自身にとって可能であるか否かを判断するようにジョブ実行可否判断部２０６に対して要求する。
【００７１】
すると、ジョブ実行可否判断部２０６は、端末装置２自身のスペックおよび現在のリソースの状況を示すシステム情報ＳＩをシステム情報取得部２１３に取得させる。そして、そのシステム情報ＳＩに基づいて、その問合せデータＩＲに示される種類および処理内容のジョブを実行するスペックが端末装置２自身に備わっているか否かをチェックする。備わっていれば、その問合せデータＩＲに係るジョブの実行が可能であると判断し、備わっていなければ、実行が不能であると判断する（＃２−３、＃６−３、＃８−３）。
【００７２】
その問合せデータＩＲに係るジョブの実行が可能であると判断された場合は、ジョブ開始日時算出部２１２は、そのジョブを開始することができる時期を算出する。その時期は、その端末装置２自身のシステム情報ＳＩに示されるスペックおよびリソースの状況のほか、現在その端末装置２において処理待ちである他のジョブに鑑みて算出すればよい。なお、その端末装置２自身のリソースの状況および通信回線３のトラフィックなどは常に変化するので、正確な値を算出することは難しい。よって、推測値を算出することができればよい。
【００７３】
これらの処理によって、問合せデータＩＲに示される問合せに対する回答が得られる。つまり、問合せデータＩＲに係るジョブの実行の可否についての回答および実行可能である場合はその実行を開始することができる時期についての回答が得られる。
【００７４】
送信データ生成部２１５は、問合せデータＩＲに係るジョブについてのこれらの回答およびそのジョブ番号を示す回答データＤＴＡを生成する（＃２−４、＃６−４、＃８−４）。ただし、図９の例では、ＰＣ２およびＰＣ６はそのジョブの実行が可能であると判別し、ＰＣ８は実行が不能であると判別したものとする。よって、ＰＣ２およびＰＣ６は、そのジョブの実行が可能である旨、実行を開始することができる時期、およびジョブ番号を示す回答データＤＴＡを生成する。一方、ＰＣ８は、そのジョブの実行が不能である旨およびジョブ番号を示す回答データＤＴＡを生成する。また、ＰＣ２およびＰＣ６は、実行を開始することができる時期を、それぞれ、「２００５年１０月１日７時３分２０秒に開始可能」および「２００５年１０月１日７時１０分３０秒に開始可能」と算出したものとする。
【００７５】
さらに、実行可能である旨を回答する端末装置２つまりＰＣ２およびＰＣ６においては、そのジョブの正式な依頼の受付の期限を設定する処理を有効期限設定部２１４によって実行し、その期限を、その回答データＤＴＡの有効期限として対応付ける（＃２−５、＃６−５）。具体的には、有効期限設定部２１４によって設定された期限を示すデータをその回答データＤＴＡに含めるようにする。この有効期限は、例えば、現在の日時に所定の時間を加算することによって決めるようにすればよい。
【００７６】
ＰＣ２およびＰＣ６において、データ操作管理部２０１は、回答データＤＴＡを生成する処理と並行してまたは前後して、そのジョブについてのジョブデータＤＴＪを新たに生成し、ジョブ管理テーブルＴＪに登録する（＃２−６、図１０の＃６−６）。この時点では、ジョブデータＤＴＪの「状態」は、「依頼通知待ち」としておく。また、「ジョブ番号」、「依頼元」、「有効期限」、および「ジョブ種類」には、それぞれ、問合せデータＩＲに示されるジョブ番号（つまり、「０００３」）、有効期限設定部２１４によって設定された期限、問合せデータＩＲの送信元の端末装置２のホスト名（つまり、「ＰＣ７」）、および問合せデータＩＲに示されるジョブの種類を示す情報を格納しておく。
【００７７】
ＰＣ２、ＰＣ６、およびＰＣ８において、データ送信部２１６は、生成された回答データＤＴＡを問合せデータＩＲの送信元であるＰＣ７に宛てて送信する（図９の＃２−７、図１０の＃６−７、＃８−５）。
【００７８】
ところで、ジョブデータＤＴＪをジョブ管理テーブルＴＪに登録してからそのジョブデータＤＴＪを廃棄するまでの間に、別のジョブの問合せデータＩＲが新たに送信されて来た場合は、ジョブ実行可否判断部２０６は、そのジョブの実行が不能であると判断する。それは、登録済のジョブデータＤＴＪに係るジョブ（つまり、先に問合せがあったジョブ）の実行を確実にするためである。したがって、ジョブデータＤＴＪをジョブ管理テーブルＴＪに登録することは、ジョブを仮予約することであると言える。以下、ジョブデータＤＴＪをジョブ管理テーブルＴＪに登録することを「仮予約」と記載することがある。
【００７９】
ＰＣ７において、データ受信部２０２は、ＰＣ２、ＰＣ６、およびＰＣ８から送信されて来た回答データＤＴＡを受信する（図９の＃７−６、図１０の＃７−９、＃７−１２）。有効期限判定部２０３は、その回答データＤＴＡに示される期限と現在の日時とを比較することによって、その回答データＤＴＡが有効期限切れでないかどうかを判定する（図１０の＃７−７、＃７−１０）。なお、本例では、前に述べた通り、ＰＣ８から送信されて来た回答データＤＴＡには、有効期限が設定されていない。よって、この回答データＤＴＡについては、有効期限切れについての判定を行わない。
【００８０】
現在の日時が回答データＤＴＡに示される期限を過ぎていれば、その回答データＤＴＡが有効期限切れであると判定される。この場合は、その回答データＤＴＡを廃棄する。一方、現在の日時が回答データＤＴＡに示される期限を未だ過ぎていなければ、その回答データＤＴＡが未だ有効期限切れではないと判定される。この場合は、その回答データＤＴＡは、データ解析部２０５によって解析される。また、有効期限が設定されていない回答データＤＴＡも、データ解析部２０５によって解析される。
【００８１】
データ解析部２０５は、データ受信部２０２が受信した回答データＤＴＡを解析することによってデータの種類を判別する。ここでは、当然、「回答データ」であると判別される。データ解析部２０５は、「回答データ」であると判別した場合は、データ操作管理部２０１に対してその回答データＤＴＡに示される内容を回答管理テーブルＴＡに登録するように要求する。
【００８２】
データ操作管理部２０１は、データ解析部２０５からの要求に基づいて回答データＤＴＡを回答管理テーブルＴＡに登録する（図１０の＃７−８、＃７−１１、＃７−１３）。ここで、回答管理テーブルＴＡについて説明する。
【００８３】
図８の回答管理テーブルＴＡにおいて、回答データＤＴＡの「依頼ジョブ番号」は、回答データＤＴＡに係るジョブのジョブ番号を示す。この回答データＤＴＡの「依頼ジョブ番号」が示すジョブ番号は、依頼ジョブ管理テーブルＴＩの中のいずれかの依頼ジョブデータＤＴＩの「依頼ジョブ番号」のジョブ番号と同じである。ジョブ番号が同じである回答データＤＴＡと依頼ジョブデータＤＴＩとは、同一のジョブに関するデータである。
【００８４】
「送信元」は、回答データＤＴＡを送信して来た端末装置２つまり回答者である端末装置２のホスト名を示す。「メッセージ内容」は、回答データＤＴＡに含まれる回答の内容つまりジョブの実行の可否および実行開始時期を示す。
【００８５】
図９の例においては、ジョブ番号が「０００３」である問合せデータＩＲに対してＰＣ２、ＰＣ６、およびＰＣ８が回答データＤＴＡを返信した。したがって、回答管理テーブルＴＡには、図８に示すように、「依頼ジョブ番号」が「０００３」である回答データＤＴＡが３件登録される。そして、これら３件の回答データＤＴＡの「送信元」は、それぞれ、送信して来た端末装置２のホスト名である「ＰＣ２」、「ＰＣ６」、または「ＰＣ８」となる。また、「メッセージ内容」は、それぞれ、回答データＤＴＡに示される回答の内容に対応する。つまり、「２００５年１０月１日７時３分２０秒に開始可能」、「２００５年１０月１日７時１０分３０秒に開始可能」、または「ジョブ実行不可」となる。
【００８６】
データ操作管理部２０１は、問合せデータＩＲを送信した先の端末装置２のすべてから回答データＤＴＡが返信されて来たら、その旨をジョブ依頼先決定部２０７に通知する。データ操作管理部２０１は、回答データＤＴＡが送信されて来るたびに、接続テーブルＴＬ７に登録されている端末装置２のホスト名と回答管理テーブルＴＡの該当する「依頼ジョブ番号」の回答データＤＴＡに示される「ホスト名」とを照合する。これによって、問合せデータＩＲを送信した先の端末装置２のすべてから回答データＤＴＡを受信したかどうかを検出することができる。
【００８７】
また、データ操作管理部２０１は、依頼ジョブ管理テーブルＴＩを常時監視しまたは定期的に確認することにより、他の端末装置２に問い合わせ中であるジョブの依頼ジョブデータＤＴＩ（つまり、「状態」が「問合せ中」である依頼ジョブデータＤＴＩ）のうち回答の期限が過ぎたものを検出する。そして、そのような依頼ジョブデータＤＴＩが検出で来たら、その旨をジョブ依頼先決定部２０７に通知する。
【００８８】
ジョブ依頼先決定部２０７は、依頼したいジョブに関する問合せデータＩＲを送信した先の端末装置２のすべてから回答データＤＴＡを受信した旨の通知または回答の期限が過ぎた依頼ジョブデータＤＴＩを検出した旨の通知をデータ操作管理部２０１から受け取ると、そのジョブの依頼先を決定するための処理を、次のように行う（＃７−１４）。
【００８９】
前者の通知を受け取った場合は、これらの回答データＤＴＡの中からジョブの開始可能時期が最も早いものを選出し、その回答データＤＴＡを送って来た端末装置２を依頼先に決定する。ジョブ番号が「０００３」であるジョブについて図９と図１０のように３つの回答データＤＴＡが得られている場合は、ＰＣ２を依頼先として決定する。
【００９０】
一方、後者の通知を受け取った場合は、その時点で回答管理テーブルＴＡに登録されている回答データＤＴＡの中から、その通知に係る依頼ジョブデータＤＴＩの依頼ジョブ番号と同じ値のジョブ番号を有する回答データＤＴＡを抽出する。そして、前者の通知を受け取った場合と同様に、抽出した回答データＤＴＡの中からジョブの開始可能時期が最も早いものを選出し、その回答データＤＴＡを送って来た端末装置２を依頼先に決定する。
【００９１】
なお、この時点までに、依頼したいジョブに関する回答データＤＴＡを全く受信していない場合は、そのジョブを自ら実行しまたは再度そのジョブに関する問合せデータＩＲを送信するなど、そのときの状況に応じた適切な処理を行う。
【００９２】
送信データ生成部２１５は、ジョブ依頼先決定部２０７が決定した依頼先の端末装置２であるＰＣ２にジョブの実行を正式に依頼するための正式依頼データＲＱを生成する（＃７−１５）。正式依頼データＲＱには、そのジョブのジョブ番号および正式な依頼のメッセージなどが含まれる。そして、この依頼に対する返信の期限を設定する処理を有効期限設定部２１４に実行させ、その期限を、この正式依頼データＲＱの有効期限として設定する（＃７−１６）。具体的には、有効期限設定部２１４によって設定された期限を示すデータをその正式依頼データＲＱに含めるようにする。この有効期限は、例えば、時計機能部２０４から知らされた現在の日時に所定の時間を加算することによって決めるようにすればよい。
【００９３】
また、正式依頼データＲＱを生成する処理と並行してまたは前後して、データ操作管理部２０１は、依頼ジョブ管理テーブルＴＩの中の、その正式に依頼するジョブに対応する依頼ジョブデータＤＴＩについて、「有効期限」を正式依頼データＲＱに今回設定した返信の期限に更新し、「状態」を「問合せ中」から「受付通知待ち」に更新する。
【００９４】
データ送信部２１６は、生成された正式依頼データＲＱを、ＰＣ２に宛てて送信する（＃７−１７）。
【００９５】
ＰＣ２において、データ受信部２０２は、ＰＣ７が送信した正式依頼データＲＱを受信する（＃２−８）。有効期限判定部２０３は、その正式依頼データＲＱに示される期限と現在の日時とを比較することによって、その正式依頼データＲＱが有効期限切れでないかどうかを判定する（＃２−９）。現在の日時が問合せデータＩＲに示される期限を過ぎていれば、その正式依頼データＲＱは有効期限切れであると判定する。この場合は、その正式依頼データＲＱを廃棄する。一方、現在の日時が正式依頼データＲＱに示される期限を未だ過ぎていなければ、その正式依頼データＲＱは未だ有効期限切れではないと判定する。この場合は、ステップ＃２−１０以降の処理が継続される。図９の例では、有効期限切れではないと判定されたものとする。
【００９６】
データ解析部２０５は、データ受信部２０２が受信した正式依頼データＲＱを解析することによってデータの種類を判別する。ここでは、当然、「正式依頼データ」であると判別される。「正式依頼データ」であると判別した場合は、データ解析部２０５は、正式依頼データＲＱが受信された旨をジョブ予約部２０８に対して通知する。
【００９７】
ジョブ予約部２０８は、データ解析部２０５からの通知を受け取ると、正式依頼データＲＱに示されるジョブ番号のジョブの依頼を正式に受け付けた旨の受付通知データＡＣを生成するように送信データ生成部２１５に対して指示する。
【００９８】
すると、送信データ生成部２１５は、受付通知データＡＣを生成する（＃２−１１）。この受付通知データＡＣには、依頼を受け付けたジョブのジョブ番号および受け付けた旨のメッセージなどが含まれる。
【００９９】
また、受付通知データＡＣを生成する処理と並行してまたは前後して、ジョブ予約部２０８は、受信した正式依頼データＲＱのジョブを予約する（＃２−１０）。すなわち、ジョブ管理テーブルＴＪの中のそのジョブに対応するジョブデータＤＴＪの「状態」を「依頼通知待ち」から「処理待ち」に更新する。これにより、仮予約されていたそのジョブが、正式に予約される。その後、そのジョブは、順番が回って来たら実行される。
【０１００】
データ送信部２１６は、生成された受付通知データＡＣを、依頼元であるＰＣ７に宛てて送信する（＃２−１２）。ここでは、受付通知データＡＣに対する応答をＰＣ７から受け取る必要はないので、有効期限の設定は行わない。
【０１０１】
ＰＣ７において、データ受信部２０２は、ＰＣ２からの受付通知データＡＣを受信する（＃７−１８）。すると、データ解析部２０５は、その受付通知データＡＣを解析することによってデータの種類を判別する。ここでは、当然、「受付通知データ」であると判別される。データ解析部２０５は、「受信通知データ」であると判別した場合は、この受付通知データＡＣに係るジョブの依頼が受け付けられた旨を登録するようにデータ操作管理部２０１に対して要求する。
【０１０２】
データ操作管理部２０１は、データ解析部２０５の要求に従って、登録のための処理を行う。具体的には、依頼ジョブ管理テーブルＴＩの中のそのジョブの依頼ジョブデータＤＴＩの「状態」を「受付通知待ち」から「依頼済み」に変更する。これにより、そのジョブの依頼先が確定する。
【０１０３】
ＰＣ２において、ＰＣ７より依頼されたジョブの実行が完了すると（＃２−１３）、そのジョブのジョブ番号およびジョブの実行結果のデータなどを含むジョブ完了報告データＣＰが送信データ生成部２１５によって生成され、データ送信部２１６によってＰＣ７に送信される（＃２−１４）。ＰＣ７において、そのジョブ完了報告データＣＰがデータ受信部２０２によって受信されると、データ解析部２０５による解析処理を経て、そのジョブ完了報告データＣＰに係るジョブに対応する依頼ジョブデータＤＴＩを依頼ジョブ管理テーブルＴＩから削除する。
【０１０４】
一方、そのジョブの実行が可能である旨などを示す回答データＤＴＡをＰＣ７に対して返信した他の端末装置２すなわちＰＣ６においては、その後（＃６−７の後）、次のような処理が行われる。
【０１０５】
データ操作管理部２０１は、現在の日時がそのジョブのジョブデータＤＴＪの有効期限を過ぎていないかどうか常時または定期的にチェックする（＃６−８）。有効期限を過ぎてもなお、そのジョブの正式依頼データＲＱがＰＣ７から来なければ、そのジョブの正式な依頼は他の端末装置２に対してなされたものとみなし、そのジョブデータＤＴＪをジョブ管理テーブルＴＪから削除する（＃６−９）。つまり、そのジョブの仮予約をキャンセルする。
【０１０６】
なお、そのジョブの正式な依頼先が依頼元（ここでは、ＰＣ７）において確定したときに、依頼先として選ばれなかった端末装置２（ここでは、ＰＣ６）に対してその旨が通知されるように構成してもよい。そして、その通知を受けたら、有効期限が過ぎるのを待たずにそのジョブのジョブデータＤＴＪを削除するように、構成してもよい。
【０１０７】
また、通信回線の負荷の増大またはジョブの正式な依頼先（ここでは、ＰＣ２）の故障などの異常の発生によって、依頼元（ここでは、ＰＣ７）にジョブの受付通知データＡＣが、そのジョブの依頼ジョブデータＤＴＩに示される有効期限までに送信されて来ない場合がある。このような場合は、次のような方法によって対処することが考えられる。
【０１０８】
１つの方法は、正式依頼データＲＱをＰＣ２に再送することによって対処する方法である。または、そのジョブをＰＣ７自らが実行するようにしてもよい。または、そのジョブの実行が可能である旨の回答を行った端末装置２の中から、ＰＣ２以外の端末装置２を選び直し、正式依頼データＲＱを送信し直すようにもよい。これらの対処方法のうちのいずれを採用するのかは、そのときの状況に応じて決定してもよい。
【０１０９】
以上のようにして、ＰＣ７で発生したジョブに関する処理が、各端末装置２において実行される。
【０１１０】
図１１は問合せデータＩＲを送信する際の依頼元端末装置２Ｘにおける処理の流れを説明するためのフローチャート、図１２は回答データＤＴＡを受信した後の依頼元端末装置２Ｘにおける処理の流れを説明するためのフローチャート、図１３は回答データＤＴＡを送信する際の関連端末装置２Ｙにおける処理の流れを説明するためのフローチャート、図１４は仮予約後の関連端末装置２Ｙにおける処理の流れを説明するためのフローチャートである。
【０１１１】
次に、ある端末装置２が自らに関連付けられている他の端末装置２に対してジョブを依頼するときの全体的な処理の流れを、図１１ないし図１４のフローチャートを参照して説明する。以下、図１１ないし図１３のフローチャートの説明において、依頼を行う端末装置２を「依頼元端末装置２Ｘ」と記載し、依頼元端末装置２Ｘに関連付けられている端末装置２を「関連端末装置２Ｙ」と記載する。
【０１１２】
ジョブの依頼に際して、依頼元端末装置２Ｘは、依頼対象のジョブに関する問合せデータＩＲを生成し（図１１の＃１０）、これに有効期限を設定し（＃１１）、各関連端末装置２Ｙに送信する（＃１２）。
【０１１３】
その後、依頼元端末装置２Ｘは、その有効期限が過ぎるまでの間（＃１３でＹｅｓ）、各関連端末装置２Ｙからその問合せデータＩＲに対する回答データＤＴＡが送信されて来るのを待つ。そして、回答データＤＴＡが送信されて来たら、これを回答管理テーブルＴＡに登録しておく（＃１４）。有効期限内にすべての関連端末装置２Ｙの回答データＤＴＡが揃ったら（＃１６でＹｅｓ）、依頼先の決定など処理を開始する。これについては、後に図１２で説明する。
【０１１４】
有効期限が過ぎたら（＃１４でＹｅｓ）、一部の関連端末装置２Ｙの問合せデータＩＲが得られていなくても、依頼先の決定など処理を開始する。その後に送信されて来た問合せデータＩＲは、回答管理テーブルＴＡに登録せず、破棄する（＃１５）。
【０１１５】
図１２において、依頼元端末装置２Ｘは、一部または全部の関連端末装置２Ｙから得られた回答データＤＴＡに基づいて好適な依頼先を決定する。具体的には、各回答データＤＴＡに示される開始可能時期同士を比較し（＃２１）、最も早い開始可能時期を示す回答データＤＴＡを送信して来た関連端末装置２Ｙを依頼先に決定する（＃２２）。
【０１１６】
正式依頼データＲＱを生成し（＃２３）、これに有効期限を設定し（＃２４）、決定した依頼先の関連端末装置２Ｙに送信する（＃２５）。その後、依頼先の関連端末装置２Ｙから受付通知データＡＣが送信されて来るのを待つ（＃２６）。
【０１１７】
有効期限内に受付通知データＡＣが送信されて来たら（＃２７でＹｅｓ）、依頼先の関連端末装置２Ｙにおいて正式依頼データＲＱが受け付けられ正式にジョブの予約が行われたことを意味する。よって、これにより、ジョブの依頼のための処理が完了する。その後、依頼したジョブ完了報告データＣＰが依頼先の関連端末装置２Ｙから送信されて来たら（＃２９）、そのジョブに関する各種のデータを各テーブルから削除するなどの後処理を行い、そのジョブに関する全処理が完了する。
【０１１８】
有効期限内に受付通知データＡＣが送信されて来なかったら（＃２７でＮｏ）、正式依頼データＲＱを再送信し、依頼先を決め直し、または自らジョブを実行するなどの対策を行う（＃２８）。
【０１１９】
図１３において、関連端末装置２Ｙは、依頼元端末装置２Ｘからの問合せデータＩＲを受信すると（＃３１）、現在の日時がその問合せデータＩＲに示される有効期限を過ぎていないかどうか判定する（＃３２）。
【０１２０】
有効期限を過ぎている場合は（＃３２でＮｏ）、その問合せデータＩＲを破棄しそのまま処理を終了する。有効期限を過ぎていない場合は（＃３２でＹｅｓ）、その問合せデータＩＲに示されるジョブが実行可能であるかどうかを判断する（＃３３）。
【０１２１】
実行可能である場合は（＃３３でＹｅｓ）、そのジョブの開始可能日時を算出し（＃３４）、ジョブの実行が可能である旨およびその開始可能日時のメッセージを含む回答データＤＴＡを生成してそれに有効期限を設定し（＃３５）、依頼元端末装置２Ｘに送信する（＃３６）。回答データＤＴＡを送信する処理と前後してまたは並行して、そのジョブのジョブデータＤＴＪをジョブ管理テーブルＴＪに追加登録する（＃３７）。これにより、そのジョブの仮予約がなされる。
【０１２２】
一方、問合せデータＩＲに係るジョブを実行できないと判断した場合は（＃３３でＮｏ）、その旨のメッセージを含む回答データＤＴＡを依頼元端末装置２Ｘに送信する（＃３８）。
【０１２３】
ジョブの仮予約を行った関連端末装置２Ｙは、引き続き、図１４のフローチャートの処理を行う。
【０１２４】
すなわち、そのジョブについての正式依頼データＲＱを待つ。そして、そのジョブの問合せデータＩＲに設定した有効期限までに依頼元端末装置２Ｘから正式依頼データＲＱが送信されて来たら（＃４１でＹｅｓ）、そのジョブを、仮予約の状態から正式予約の状態に変更し（＃４２）、順番が回って来たらそのジョブを実行する（＃４３）。そして、実行後、処理結果を含むジョブ完了報告データＣＰを依頼元端末装置２Ｘに送信する（＃４４）。
【０１２５】
一方、有効期限までに関連端末装置２Ｙから正式依頼データＲＱが送信されて来なかった場合は（＃４１でＮｏ）、そのジョブのジョブデータＤＴＪをジョブ管理テーブルＴＪから削除し、仮予約の状態を解除する（＃４５）。
【０１２６】
本実施形態によると、端末装置２は、レスポンスを必要とするデータを他の端末装置２に送信する場合は、そのデータに有効期限を設定する。そして、そのデータを受信した当該他の端末装置２は、その有効期限が切れていない場合はそのデータに対するレスポンスを送信するが、有効期限が切れている場合はそのデータを破棄し、レスポンスを送信しない。これにより、古くなったデータについての無駄なレスポンスのやり取りが行われなくなるので、ネットワーク１における通信の負荷を従来よりも軽減することができる。加えて、双方の端末装置２は無駄なレスポンスのやり取りの処理を行わなくて済むので、従来よりも端末装置２における負荷を軽減しリソースを効率的に使用することができる。
【０１２７】
図１５は問合せ先から受信した回答データＤＴＡおよびシステム情報ＳＩを格納した回答管理テーブルＴＡ２の例を示す図、図１６は特定のファイルを送信するジョブの依頼を受けた場合の端末装置２の処理の流れの例を説明するためのフローチャートである。
【０１２８】
本実施形態では、ジョブの依頼元であるＰＣ７は、ジョブの実行の開始可能時期についての問合せを行い、最も早い開始可能時期を回答した端末装置２をジョブの依頼先に決定した。ジョブの依頼先を決定するための情報として、開始可能時期の情報だけでなく、依頼先の候補である各端末装置２のスペックおよびリソースの使用状況に関する情報つまりシステム情報ＳＩを用いてもよい。この場合は、次のように端末装置２を構成すればよい。
【０１２９】
依頼対象のジョブに関する問合せデータＩＲを受信した端末装置２は、そのジョブの実行が可能である旨を示す回答データＤＴＡを返す場合は、その回答データＤＴＡとともに、自らのシステム情報ＳＩを問合せ元に送信する。
【０１３０】
ジョブの依頼を行おうとしている端末装置２は、図１５に示すように、受信した回答データＤＴＡおよびシステム情報ＳＩを、その送信元の端末装置２のホスト名およびそのジョブのジョブ番号と対応付けて、回答管理テーブルＴＡ２に格納する。そして、問合せデータＩＲの有効期限つまり問合せデータＩＲの回答の期限までに得られた回答データＤＴＡおよびシステム情報ＳＩに基づいて、次のようにそのジョブの依頼先を決定する。
【０１３１】
そのジョブの実行が可能である旨を示す回答データＤＴＡを返信して来た端末装置２を、依頼先の候補に残し、実行不能である旨を示す回答データＤＴＡを返信して来た端末装置２を、依頼先の候補から除外する。候補に残った各端末装置２がそのジョブを実行するのに要する時間（以下、「処理時間」を、そのジョブの内容およびそれぞれのシステム情報ＳＩに基づいて算出（予測）する。処理時間は、公知の方法を用いて算出すればよい。
【０１３２】
候補に残った各端末装置２がそのジョブを完了する予測日時を、それぞれの問合せデータＩＲに示される開始可能時期（開始可能日時）に予測した処理時間を加算することによって算出する。そして、このようにして算出された予測日時のうち最も早い予測日時である端末装置２を、依頼先に決定にする。
【０１３３】
または、依頼対象のジョブが分散処理を行うことができるものである場合は、そのジョブに含まれる処理単位（以下、「タスク」と記載する。）ごとに、他の端末装置２に実行の可否および実行開始時期を問い合わせ、それに対する回答およびシステム情報ＳＩに基づいて依頼先を決定してもよい。このようにタスクごとに依頼先を決定する場合は、公知の並列処理の手法を採用し、依頼元の端末装置２はジョブ全体の管理を行うメインのＣＰＵの役割を担い、他の端末装置２は依頼元の端末装置２から依頼されたタスクを実行しその結果を依頼元の端末装置２に返すように、構成すればよい。
【０１３４】
本実施形態では、ジョブの依頼を行おうとしている端末装置２は、自らに直接関連付けられている他の端末装置２のみにそのジョブに関する問合せデータＩＲを送信した。そして、これらの他の端末装置２から回答データＤＴＡを収集し、依頼先を決定した。つまり、直接関連付けられている他の端末装置２のみを依頼先の候補とした。しかし、本発明は、間接的に関連付けられている他の端末装置２も、依頼先の候補として含めるようにしてもよい。この場合は、これらの他の端末装置２からも回答データＤＴＡを取得するために、これらの他の端末装置２に問合せデータＩＲを送信する必要がある。そこで、端末装置２を、問合せデータＩＲを受信したら、自らの接続テーブルＴＬに示される端末装置２のうちの、その問合せデータＩＲの送信元以外の端末装置２に、問合せデータＩＲを転送するように構成すればよい。これにより、ジョブの依頼を行おうとしている端末装置２から発信された問合せデータＩＲは、直接関連付けられている他の端末装置２だけでなく、間接的に関連付けられている他の端末装置２にも届けられる。ただし、問合せデータＩＲがループしないように、同じ問合せデータＩＲについては１回のみ転送されるようにする。また、ネットワーク１に含まれる端末装置２の台数が多い場合は、問合せデータＩＲの有効期限を短めに設定しまたはＴＴＬ（Time To Live）を設定することによって、問合せデータＩＲが届けられる範囲を制限してもよい。
【０１３５】
また、この場合において、回答データＤＴＡ、正式依頼データＲＱ、受付通知データＡＣ、およびジョブ完了報告データＣＰなどのデータは、依頼元である端末装置２および正式な依頼先である端末装置２が直接的に関連付けられていない場合は、他の端末装置２を経由して両装置間でやり取りされる。その経路は、各端末装置２の接続テーブルＴＬに基づいて公知の方法によって決めることができる。
【０１３６】
または、ジョブの種類によっては、問合せデータＩＲを受信した端末装置２は、その問合せデータＩＲに係るジョブを実行することができる場合は、直ちにそのジョブを実行し、その実行結果を問合せデータＩＲのレスポンスとして返信するようにしてもよい。以下、この場合の構成を、図４のように各端末装置２が配置されており、ＰＣ７が他の端末装置２から特定のファイルをダウンロードしようとしている場合、つまり、ＰＣ７が他の端末装置２に対してその特定のファイルをＰＣ７に送信するジョブを実行するように依頼しようとしている場合を例に、図１６のフローチャートを参照しながら説明する。
【０１３７】
ＰＣ７は、そのジョブの実行の可否に関する問合せデータＩＲを、自らに直接関連付けられている端末装置２（つまり、ＰＣ２、ＰＣ６、ＰＣ８、およびＰＣ９）に送信する。この際に、この問合せデータＩＲには、有効期限を設定しておく。さらに、問合せデータＩＲには、ＴＴＬを設定しておく。
【０１３８】
問合せデータＩＲを受信した端末装置２は、まず、受信した問合せデータＩＲの有効期限を判定する（＃５０、＃５２）。
【０１３９】
受信した問合せデータＩＲが有効期限切れでない場合は（＃５２でＹｅｓ）、その問合せデータＩＲに係るジョブの実行の可否を判断する（＃５３）。つまり、そのジョブの処理対象のファイルを有しているか否かを、ローカルのハードディスク２０ｄを検索するなどして判断する。
【０１４０】
ファイルが見つかった場合つまりジョブの実行が可能である場合は（＃５３でＹｅｓ）、ＰＣ７に宛ててそのファイルを送信する（＃５６）。つまり、ジョブを実行する。
【０１４１】
ファイルが見つからなかった場合は（＃５３でＮｏ）、ジョブの実行が不能であるので、自らの接続テーブルＴＬを参照し、問合せデータＩＲを送信して来た端末装置以外の関連付けられている端末装置２に問合せデータＩＲを転送する（＃５５）。例えば、ＰＣ２がＰＣ７から問合せデータＩＲを受信した場合は、図５（ｂ）の接続テーブルＴＬ２を参照し、ＰＣ３、ＰＣ４、およびＰＣ７に転送する。ただし、ＴＴＬが０よりも大きくない場合は（＃５４でＮｏ）、転送を中止し、問合せデータＩＲを廃棄する。また、過去に同一の問合せデータＩＲを受信したことがある場合は（＃５１でＹｅｓ）、ステップ＃５２〜＃５６の一連の処理を中止し、問合せデータＩＲを廃棄する。
【０１４２】
問合せデータＩＲが転送されて来た端末装置２も、ステップ＃５０〜＃５６の処理を実行する。このような構成によって、ネットワーク１内の端末装置２に問合せデータＩＲを効率的に配布することができる。
【０１４３】
本実施形態では、問合せデータＩＲまたは回答データＤＴＡなどのような送信されて来るデータについて、その有効期限の判定を受信の直後に行うようにした。しかし、データを受信して有効期限を確認した後、内部の処理に時間を要してしまったために、受信したデータに対する返信を有効期限内に行えない場合がある。そうすると、返信を行ったとしても、有効期限が既に切れているために、その返信データは受信側の端末装置２にて破棄されてしまい、この返信が無駄になってしまう。このようなことを回避するために、返信のための処理を行っている間に、受信したデータの有効期限の判定を適宜行うようにしてもよい。そして、処理の途中で有効期限が切れた場合は、その時点で処理を中断するようにしてもよい。これにより、有効期限の切れたデータを無駄に返信することを、一層効果的に防止できる。
【０１４４】
本実施形態では、ジョブの仮予約を行った後、その仮予約をキャンセルしまたは正式な予約に更新するまでの間は、新たに別のジョブに関する問合せがあっても、その仮予約を拒否するように構成したが、その別のジョブの内容が短時間で完了できるようなものである場合は、その別のジョブの仮予約を受け付けるように構成してもよい。
【０１４５】
また、本実施形態では、端末装置２としてパーソナルコンピュータを例に挙げて説明したが、本発明を、ネットワーク内の他のノードからのジョブの実行依頼を受け付けることができるＭＦＰ（Multi Function Peripherals）などのような画像形成装置、ワークステーション、その他の種々の処理装置に適用することが可能である。
【０１４６】
その他、ネットワーク１、端末装置２の全体または各部の構成、処理内容、処理順序、テーブルの内容などは、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【０１４７】
【図１】ネットワークの全体的な構成の例を示す図である。
【図２】端末装置のハードウェア構成の例を示す図である。
【図３】端末装置の機能的構成の例を示す図である。
【図４】端末装置の論理的なトポロジーの例を示す図である。
【図５】図４のように関連付けられた端末装置の接続テーブルの例を示す図である。
【図６】ＰＣ７のジョブ管理テーブルの例を示す図である。
【図７】ＰＣ７の依頼ジョブ管理テーブルの例を示す図である。
【図８】ＰＣ７の回答管理テーブルの例を示す図である。
【図９】ＰＣ７が自らに関連付けられているいずれかの端末装置に対してジョブの実行依頼を行う場合の、各端末装置の処理の流れの例を説明するフローチャートである。
【図１０】ＰＣ７が自らに関連付けられているいずれかの端末装置に対してジョブの実行依頼を行う場合の、各端末装置の処理の流れの例を説明するフローチャートである。
【図１１】問合せデータを送信する際の依頼元端末装置における処理の流れを説明するためのフローチャートである。
【図１２】回答データを受信した後の依頼元端末装置における処理の流れを説明するためのフローチャートである。
【図１３】回答データを送信する際の関連端末装置における処理の流れを説明するためのフローチャートである。
【図１４】仮予約後の関連端末装置における処理の流れを説明するためのフローチャートである。
【図１５】問合せ先から受信した回答データおよびシステム情報を格納した回答管理テーブルの例を示す図である。
【図１６】特定のファイルを送信するジョブの依頼を受けた場合の端末装置の処理の流れの例を説明するためのフローチャートである。
【符号の説明】
【０１４８】
１  ネットワーク
２  端末装置（ノード、情報処理装置）
２０２  データ受信部（第一の受信手段、第二の受信手段）
２１６  データ送信部（第一の送信手段、第二の送信手段）
ＡＣ  受付通知データ（第二のデータ）
ＤＴＡ  回答データ（回答データ、第二のデータ）
ＩＲ  問合せデータ（問合せデータ、ジョブ実行問合せデータ、第一のデータ）
ＲＱ  正式依頼データ（ジョブ実行依頼データ、第一のデータ）
【図１】
0004395776.tif 000002
【図２】
0004395776.tif 000003
【図３】
0004395776.tif 000004
【図４】
0004395776.tif 000005
【図５】
0004395776.tif 000006
【図６】
0004395776.tif 000007
【図７】
0004395776.tif 000008
【図８】
0004395776.tif 000009
【図９】
0004395776.tif 000010
【図１０】
0004395776.tif 000011
【図１１】
0004395776.tif 000012
【図１２】
0004395776.tif 000013
【図１３】
0004395776.tif 000014
【図１４】
0004395776.tif 000015
【図１５】
0004395776.tif 000016
【図１６】
0004395776.tif 000017