(57)【特許請求の範囲】
【請求項１】
複数の装置がネットワークを介して相互に連携して処理を行う分散システムであって、
前記装置は、
前記複数の装置の各々について、当該分散システムの他装置と通信する際に使用するプロトコルのバージョン情報を記憶する記憶手段と、
前記記憶手段を管理するバージョン管理手段と、
自装置で使用するプロトコルのバージョン情報を他装置に送信するとともに、他装置から当該他装置で使用するプロトコルのバージョン情報を受信するバージョン流通手段と、を備え、
前記バージョン管理手段は、
自装置で使用するプロトコルのバージョンが変更された場合、前記記憶手段の自装置のバージョン情報を更新するとともに、変更後のバージョン情報を前記バージョン流通手段を用いて全ての他装置に通知し、
他装置から当該他装置で使用するプロトコルのバージョン情報の変更通知を、前記バージョン流通手段を用いて受信した場合、前記記憶手段の当該他装置のバージョン情報を更新すること、
を特徴とする分散システム。
【請求項２】
請求項１に記載の分散システムであって、
前記装置は、
他装置と通信する際に、前記記憶手段に記憶された自装置のバージョン情報と、通信相手の他装置のバージョン情報とを比較し、当該他装置との通信に用いるプロトコルのバージョンを選択するバージョン選択手段、をさらに有すること
を特徴とする分散システム。
【請求項３】
請求項１または２記載の分散システムであって、
前記バージョン流通手段は、
自装置で使用するプロトコルのバージョン情報を他装置に送信する際に、他のバージョン情報の送受信が完了してない場合は、前記他のバージョン情報の送受信の完了後、当該バージョン情報を送信すること
を特徴とする分散システム。
【請求項４】
請求項１から３のいずれか１項に記載の分散システムであって、
前記バージョン流通手段は、前記他装置と通信する際に使用するプロトコルとは異なるバージョン情報送受信用プロトコルを用いて、バージョン情報の送受信を行うこと
を特徴とする分散システム。
【請求項５】
複数の装置がネットワークを介して相互に連携して処理を行う分散システムにおいて、当該分散システムの他装置と通信する際に使用するプロトコルのバージョン情報の流通方法であって、
前記装置は、
前記複数の装置の各々について、前記プロトコルのバージョン情報を記憶する記憶部を備え、
自装置で使用するプロトコルのバージョンが変更された場合、
前記記憶部の自装置のバージョン情報を更新する更新ステップと、
自装置の変更後のバージョン情報を全ての他装置に通知する通知ステップとを行い、
他装置で使用するプロトコルのバージョンが変更された場合、
他装置から当該他装置で使用するプロトコルのバージョン情報の変更通知を受信する受信ステップと、
前記記憶部の当該他装置のバージョン情報を更新する更新ステップと、を行うこと、
を特徴とするバージョン情報の流通方法。
【請求項６】
請求項５に記載のバージョン情報の流通方法であって、
前記装置は、
他装置と通信する際に、前記記憶部に記憶された自装置のプロトコルのバージョン情報と、通信相手の他装置のプロトコルのバージョン情報とを比較し、当該他装置との通信に用いるプロトコルのバージョンを選択する選択ステップと、をさらに行うこと
を特徴とするバージョン情報の流通方法。
【請求項７】
請求項５または６記載のバージョン情報の流通方法であって、
前記装置は、
自装置で使用するプロトコルのバージョン情報を他装置に通知する際に、他のバージョン情報の通知処理が完了しているか否かを判別する判別ステップを、さらに行い、
前記通知ステップは、前記通知処理が完了してない場合、前記他のバージョン情報の送受信の完了後、当該バージョン情報を他装置に通知すること
を特徴とするバージョン情報の流通方法。
【請求項８】
複数の装置がネットワークを介して相互に連携して処理を行う分散システムにおける、前記装置が実行するバージョン情報流通プログラムであって、
前記装置を、
前記複数の装置の各々について、当該分散システムの他装置と通信する際に使用するプロトコルのバージョン情報を記憶する記憶手段、
前記記憶手段を管理するバージョン管理手段、および、
自装置で使用するプロトコルのバージョン情報を他装置に送信するとともに、他装置から当該他装置で使用するプロトコルのバージョン情報を受信するバージョン流通手段、として機能させ、
前記バージョン管理手段は、
自装置で使用するプロトコルのバージョンが変更された場合、前記記憶手段の自装置のバージョン情報を更新するとともに、変更後のバージョン情報を前記バージョン流通手段を用いて全ての他装置に通知し、
他装置から当該他装置で使用するプロトコルのバージョン情報の変更通知を、前記バージョン流通手段を用いて受信した場合、前記記憶手段の当該他装置のバージョン情報を更新すること、
を特徴とするバージョン情報流通プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の装置がネットワークを介して相互に連携する分散システムにおいて、各装置で利用するプロトコルのバージョン情報を流通させる分散システム、バージョン情報の流通方法、バージョン情報流通プログラムに関する。
【背景技術】
【０００２】
複数の装置間で通信を行う場合、各装置で通信に用いるプロトコルのバージョンが異なるために、通信エラーが発生する場合がある。このような通信エラーを回避するために、例えば、特許文献１には、プロトコルのバージョンを一元管理する機能を有し、アプリケーションがダイアログ開始要求送出を行う前に、要求するサービスにもとづいてプロトコルバージョン管理機能部に問い合わせ、自身がサポートしているプロトコルバージョンを選択して通信を行う技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2000-299713号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、引用文献１では、ダイアログ開始要求送出を行う度に、プロトコルのバージョンを一元管理するプロトコルバージョン管理機能部にアクセスし、バージョンを問い合わせる必要がある。すなわち、ダイアログ開始要求送出を行う度に、プロトコルバージョン管理機能部への通信が発生する。そのため、プロトコルバージョン管理機能部へアクセスすることによる通信遅延、また、ネットワークへの負荷が問題になる。
【０００５】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、外部システムにアクセスしてプロトコルのバージョン情報を取得することなく、プロトコルのバージョンの不一致による通信エラーを防止する分散システム、バージョン情報の流通方法、バージョン情報流通プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明は、複数の装置がネットワークを介して相互に連携して処理を行う分散システムであって、前記装置は、前記複数の装置の各々について、当該分散システムの他装置と通信する際に使用するプロトコルのバージョン情報を記憶する記憶手段と、前記記憶手段を管理するバージョン管理手段と、自装置で使用するプロトコルのバージョン情報を他装置に送信するとともに、他装置から当該他装置で使用するプロトコルのバージョン情報を受信するバージョン流通手段と、を備え、前記バージョン管理手段は、自装置で使用するプロトコルのバージョンが変更された場合、前記記憶手段の自装置のバージョン情報を更新するとともに、変更後のバージョン情報を前記バージョン流通手段を用いて全ての他装置に通知し、他装置から当該他装置で使用するプロトコルのバージョン情報の変更通知を、前記バージョン流通手段を用いて受信した場合、前記記憶手段の当該他装置のバージョン情報を更新する。
【０００７】
本発明は、複数の装置がネットワークを介して相互に連携して処理を行う分散システムにおいて、当該分散システムの他装置と通信する際に使用するプロトコルのバージョン情報の流通方法であって、前記装置は、前記複数の装置の各々について、前記プロトコルのバージョン情報を記憶する記憶部を備え、自装置で使用するプロトコルのバージョンが変更された場合、前記記憶部の自装置のバージョン情報を更新する更新ステップと、自装置の変更後のバージョン情報を全ての他装置に通知する通知ステップとを行い、他装置で使用するプロトコルのバージョンが変更された場合、他装置から当該他装置で使用するプロトコルのバージョン情報の変更通知を受信する受信ステップと、前記記憶部の当該他装置のバージョン情報を更新する更新ステップと、を行う。
【０００８】
本発明は、複数の装置がネットワークを介して相互に連携して処理を行う分散システムにおける、前記装置が実行するバージョン情報流通プログラムであって、前記装置を、前記複数の装置の各々について、当該分散システムの他装置と通信する際に使用するプロトコルのバージョン情報を記憶する記憶手段、前記記憶手段を管理するバージョン管理手段、および、自装置で使用するプロトコルのバージョン情報を他装置に送信するとともに、他装置から当該他装置で使用するプロトコルのバージョン情報を受信するバージョン流通手段、として機能させ、前記バージョン管理手段は、自装置で使用するプロトコルのバージョンが変更された場合、前記記憶手段の自装置のバージョン情報を更新するとともに、変更後のバージョン情報を前記バージョン流通手段を用いて全ての他装置に通知し、他装置から当該他装置で使用するプロトコルのバージョン情報の変更通知を、前記バージョン流通手段を用いて受信した場合、前記記憶手段の当該他装置のバージョン情報を更新する。
【発明の効果】
【０００９】
本発明によれば、外部システムにアクセスしてプロトコルのバージョン情報を取得することなく、プロトコルのバージョンの不一致による通信エラーを防止する分散システム、バージョン情報の流通方法、バージョン情報流通プログラムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る分散システムの全体構成図である。
【図２】本実施形態に係る内部装置の構成を示すブロック図である。
【図３】バージョン情報記憶部の一例を示す図である。
【図４】宛先情報記憶部の一例を示す図である。
【図５】初期起動時の動作を示すフローチャートである。
【図６】バージョンアップ時の動作を示すフローチャートである。
【図７】図６に示すバージョンアップ時の各内部装置の動作を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１２】
図１は、本実施形態の分散システムの全体構成を示す図である。図１に示す分散システム１は、複数の内部装置２を備え、これらの内部装置２は内部ネットワーク４に接続され、内部ネットワーク４を介して相互に連携するものである。また、分散システム１の所定の内部装置２（図示する例では、内部装置Ａ）は、外部ネットワーク５に接続され、外部装置３と接続可能であるものとする。なお、図示する分散システム１は、３つの内部装置２を例として示すが、内部装置の数は、これに限定されるものではない。
【００１３】
本実施形態の分散システム１では、各内部装置２のプログラムモジュールは、他の内部装置２（以下、「他装置」とする。）と連携して処理を行う場合、他装置と通信するための連携プロトコルモジュールを利用する。そして、本実施形態では、プログラムモジュール及び連携プロトコルモジュールをバージョンアップした際のバージョン情報を、分散システム１内の各内部装置２に流通させる。
【００１４】
図２は、本実施形態の内部装置２の構成を示すブロック図である。本実施形態では、各内部装置２が、分散システム１内の全ての内部装置２のバージョン情報を管理するとともに、自装置のバージョン情報を分散システム１内に流通・配信する。図示する内部装置２は、バージョン管理部２１と、バージョン流通部２２と、バージョンアップ部２３と、バージョン情報記憶部２４と、宛先情報記憶部２５と、プログラムモジュール２６と、バージョン選択部２７とを備える。
【００１５】
バージョン管理部２１は、バージョン情報記憶部２４に記憶される各内部装置２のバージョン情報を管理する。具体的には、初期起動時に自装置のバージョン情報をバージョン流通部２２を用いて、分散システム１内の全ての他装置に通知する。また、バージョン管理部２１は、バージョンアップ部２３を介してプログラムモジュール２６または連携プロトコルモジュールのバージョンアップ情報を取得し、バージョン情報記憶部２４の自装置のバージョン情報を更新する。また、バージョン管理部２１は、バージョン流通部２２を介して他装置のバージョン情報の変更通知を受信した場合、当該他装置の変更されたバージョン情報をバージョン情報記憶部２４に登録もしくは更新する。
【００１６】
バージョン情報記憶部２４には、自装置および他装置で動作する各プログラムモジュールと、当該プログラムモジュールが利用する連携プロトコルモジュールのバージョン情報とが記憶される。
【００１７】
図３は、バージョン情報記憶部２４の一例を示す図である。図示するバージョン情報記憶部２４には、内部装置名と、プログラムモジュールと、プログラムモジュールのバージョン情報と、プログラムモジュールが利用する連携プロトコルモジュールのバージョン情報とが、対応付けて記憶されている。
【００１８】
なお、内部装置名およびプログラムモジュールには、分散システム１内でユニークな名称（識別情報）が用いられる。また、自装置のバージョン情報を他装置に流通させるために、内部装置名には、どの内部装置が自装置であるかが識別可能な情報が付加されているものとする。図示する例では、内部装置名が「Ａ」には「自装置」の情報が付加され、内部装置Ａのバージョン情報記憶部２４であることを示している。
【００１９】
また、連携プロトコルモジュールのバージョン情報には、対応するプログラムモジュールが利用可能な全ての連携プロトコルモジュールのバージョンが設定される。図３に示す例では、内部装置ＡのMod2のプログラムモジュールが利用可能な連携プロトコルモジュールのバージョンは、「1」および「2」であることを示している。
【００２０】
また、プログラムモジュールと、当該プログラムモジュールが利用する連携プロトコルモジュールは、基本的には１対１であって、例えば、Mod1のプログラムモジュールに対応する連携プロトコルモジュールは、Mod1用連携プロトコルモジュールである。なお、１つのプログラムモジュールが、複数の連携プロトコルモジュールを使用する場合は、個々の連携プロトコルモジュールが分散システム内でユニークになるような識別情報を設定する。
【００２１】
バージョン流通部２２は、自装置のバージョン情報を他装置に通知するとともに、他装置から当該他装置のバージョン情報を受信し、バージョン管理部２１に送出する。具体的には、バージョン流通部２２は、バージョン管理部２１からバージョン情報が送出されると、宛先情報記憶部２５に登録された当該分散システム１の全ての他装置に、バージョン情報を通知・送信する。また、バージョン流通部２２は、他装置の各々が送信したバージョン情報を受信し、受信したバージョン情報をバージョン管理部２１に送出する。これにより、バージョン管理部２１は、バージョン情報記憶部２４に当該他装置のバージョン情報を登録または更新する。また、バージョン流通部２２は、自装置のバージョン情報を他装置に送信する際に、他のバージョン情報の送受信が完了してない場合は、キューイング処理を行うなどして、他のバージョン情報の送受信の完了後、当該バージョン情報を送信する。
【００２２】
なお、バージョン流通部２２が、バージョン情報を他装置に送受信する際に使用するプロトコルは、プログラムモジュールが他装置と通信・連携する際に使用する連携プロトコルとは別のプロトコル（例えば、TCP等）である。これにより、プログラムモジュールのバージョンアップなどによる影響を受けることなく、バージョン情報の送受信が可能となる。
【００２３】
また、通信異常やデータ破損等により、正常なバージョン情報が利用できない場合は、フォーキング等が実施される可能性がある。フォーキング等で通信した際のバージョン情報は、バージョン管理部２１とのインタフェースを経由して伝達し、反映することが考えられる。
【００２４】
また、バージョン流通部２２は、宛先情報記憶部２５を参照して、各他装置の宛先情報を取得し、取得した宛先情報を用いて自装置のバージョン情報を他装置へ送信する。
【００２５】
図４は、宛先情報記憶部２５の一例である。宛先情報記憶部２５には、分散システム１内の全ての他装置の宛先情報が記憶され、図示する宛先情報記憶部２５では、各他装置の内部装置名と宛先情報とが対応付けて記憶されている。内部装置名は、分散システム１内でユニークな識別情報である。宛先情報は、他装置と通信するために必要なアドレス情報であって、例えばＩＰアドレス、ポート番号などを用いることができる。
【００２６】
バージョンアップ部２３は、プログラムモジュールおよび連携プロトコルモジュールのバージョンアップを行う。
【００２７】
プログラムモジュール２６は、他装置と連携してアプリケーション処理を行うモジュールである。本実施形態のプログラムモジュール２６には、他装置と通信する際に利用可能な連携プロトコルモジュールが、サブモジュールとして組み込まれているものとする。この場合、プログラムモジュール２６には、当該プログラムモジュール２６のバージョンで利用可能な全てのバージョンの連携プロトコルモジュールが組み込まれているものとする。なお、連携プロトコルモジュールは、プログラムモジュール２６とは別の独立したモジュールであってもよい。連携プロトコルモジュールは、他装置と通信するためモジュールである。
【００２８】
バージョン選択部２７は、プログラムモジュール２６が、他装置と通信する際に、バージョン情報記憶部２４に記憶された自装置の連携プロトコルモジュールのバージョン情報と、通信相手の他装置の連携プロトコルモジュールのバージョン情報とを比較し、当該他装置との通信に用いる、相互に利用可能な連携プロトコルモジュールのバージョンを選択し、選択結果をプログラムモジュール２６に指示する。これにより、プログラムモジュール２６は、相互に利用可能な連携プロトコルモジュールのバージョンを用いて通信を行うことができる。すなわち、バージョンの不一致による通信エラーを防止することができる。
【００２９】
なお、バージョン選択部２７の機能は、各プログラムモジュール２６の中に組み込まれていてもよい。
【００３０】
上記説明した各内部装置２は、例えば、ＣＰＵと、メモリと、ＨＤＤ等の外部記憶装置と、入力装置と、出力装置とを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた内部装置２用のプログラムを実行することにより、内部装置２の各機能が実現される。また、内部装置２用のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００３１】
次に、本実施形態の動作について説明する。
【００３２】
図５は、初期起動時（例えば、電源ＯＮなど）の動作例を示すフローチャートである。
【００３３】
図５に示す動作例は、内部装置Ａの初期起動時に、自装置のバージョン情報を他装置である内部装置Ｂおよび内部装置Ｃに通知し、内部装置Ａのバージョン情報を受信した内部装置Ｂが、自装置のバージョン情報を含む応答を内部装置Ａに送信する動作である。Ｓ１１〜Ｓ１３、Ｓ１６〜Ｓ１８は内部装置Ａの動作であって、Ｓ１４およびＳ１５は内部装置Ｂの動作である。
【００３４】
まず、初期起動時において、内部装置Ａのバージョン管理部２１は、設定ファイル（例えば、Configurationファイルなど）から自装置のバージョン情報（自装置名、プログラムモジュール、プログラムモジュールのバージョン、連携プロトコルモジュールのバージョンなど）を読み出し、バージョン情報記憶部２４に自装置のバージョン情報として設定・登録する。そして、バージョン管理部２１は、バージョン情報記憶部２４に設定した自装置のバージョン情報を、バージョン流通部２２に送出する（Ｓ１１）。
【００３５】
内部装置Ａのバージョン流通部２２は、自装置のバージョン情報を受け付けると、当該バージョン情報を分散システム内の他装置へ流通させるために、宛先情報記憶部２５を参照し、全ての他装置の各宛先情報を取得する（Ｓ１２）。そして、バージョン流通部２２は、取得した各宛先情報を用いて他装置のそれぞれに、自装置のバージョン情報を送信する（Ｓ１３）。ここでは、バージョン流通部２２は、他装置である内部装置Ｂおよび内部装置Ｃに自装置のバージョン情報を送信するものとする。
【００３６】
内部装置Ｂのバージョン流通部２２は、Ｓ１３で送信された内部装置Ａのバージョン情報を受信し、受信したバージョン情報をバージョン管理部２１に送出する。バージョン管理部２１は、受信した内部装置Ａのバージョン情報をバージョン情報記憶部２４に設定する（Ｓ１４）。このとき、内部装置Ｂでは、Ｓ１１と同様の処理が行われていて、バージョン情報記憶部２４には自装置のバージョン情報が既に設定されているものとする。
【００３７】
内部装置Ａのバージョン情報の設定後、内部装置Ｂのバージョン管理部２１は、バージョン情報記憶部２４に設定された自装置（内部装置Ｂ）のバージョン情報をバージョン流通部２２に送出する。バージョン流通部２２は、自装置のバージョン情報を含む応答（返信）を、内部装置Ａに送信する（Ｓ１５）。
【００３８】
なお、内部装置Ｃにおいても、Ｓ１４およびＳ１５の処理が行われ、自装置（内部装置Ｃ）のバージョン情報を含む応答を、内部装置Ａに送信する。
【００３９】
Ｓ１３でバージョン情報を送信した内部装置Ａのバージョン流通部２２は、各他装置（内部装置Ｂ、Ｃ）から応答（返信）を監視し、応答を受信した他装置については（Ｓ１６：応答あり）、当該応答をバージョン管理部２１に送出する。バージョン管理部２１は、当該応答に含まれる内部装置Ｂ（または内部装置Ｃ）のバージョン情報をバージョン情報記憶部２４に設定する（Ｓ１７）。
【００４０】
一方、応答のない他装置、または、応答に他装置のバージョン情報が含まれていない場合は（Ｓ１６：応答なし）、バージョン情報記憶部２４への設定は行わない（Ｓ１８）。この場合、バージョン流通部２２は、応答がない旨をバージョン管理部２１に通知する。このように、初期起動時に他装置のバージョン情報が取得できなかった場合は、初期値を設定し、次回のバージョンアップ時に更新する等が考えられる。
【００４１】
図５では、内部装置Ａが自装置のバージョン情報を、内部装置Ｂ、Ｃに通知し、内部装置Ｂ、Ｃはその応答として、自装置のバージョン情報を内部装置Ａに送信する例を説明したが、内部装置Ｂ、Ｃも、それぞれ、自装置のバージョン情報を他装置に通知し、他装置がその応答として、自装置のバージョン情報を内部装置Ｂ、Ｃに送信するものとする。これにより、分散システム１の全ての内部装置において、自装置および他装置のバージョン情報を流通し、バージョン情報記憶部２４に保持することができる。
【００４２】
図６は、初期起動時のバージョン情報の流通後に、プログラムモジュール等のバージョンアップを実施した場合の動作を示すフローチャートである。図６では、内部装置Ａでバージョンアップを実施し、バージョンアップにより変更されたバージョン情報を、内部装置Ｂ、Ｃに通知する動作を例として説明する。
【００４３】
まず、内部装置Ａのバージョンアップ部２３は、所定のプログラムモジュールまたは連携プロトコルモジュールのバージョンアップを行う（Ｓ２１）。バージョン管理部２１は、バージョンアップ部２３からバージョンアップされたモジュールのバージョンアップ情報を取得する（Ｓ２２）。
【００４４】
バージョンアップ情報は、バージョンアップ部２３からバージョン管理部２１へ通知される場合、または、バージョン管理部２１がバージョンアップ部２３を監視すること等により取得される。バージョンアップ情報には、バージョンアップされたプログラムモジュール、プログラムモジュールのバージョン、連携プロトコルモジュールのバージョンなどが含まれる。
【００４５】
バージョンアップ情報を取得したバージョン管理部２１は、バージョン情報記憶部２４の自装置のバージョン情報を、バージョンアップ情報を用いて更新する（Ｓ２３）。図６に示す例では、プログラムモジュールMod1のバージョンが「1」から「2」に更新され、これによりバージョン2のMod1が利用可能なMod1用連携プロトコルモジュールのバージョンが「1」から「1および2」に更新されたことを示している。このように、連携プロトコルモジュールのバージョン情報に、利用可能な全てのバージョンが設定されることで、プログラムモジュールが他装置と通信する際に、相互に共通するバージョンを選択することができる。
【００４６】
バージョン管理部２１は、バージョン情報記憶部２４で更新した自装置のバージョン情報を、バージョン流通部２２に送出する（Ｓ２４）。
【００４７】
このとき、バージョン流通部２２は、当該バージョン情報以外の、他のバージョンアップにより更新されたプログラムモジュール等の他のバージョン情報の通知が実施中か否かを判定する（Ｓ２５）。なお、バージョン流通部２２は、自装置のバージョン情報を送信後に、他装置から応答を監視し、全ての他装置から応答を受信すると、バージョン情報の通知が完了したと判別し、全ての他装置からの応答を受信するまでは実施中であると判別する。
【００４８】
実施中の場合（Ｓ２５：ＹＥＳ）、バージョン流通部２２は、バージョン情報記憶部２４のデータ保証等のために、当該バージョン情報を図示しないメモリなどにキューイングし（Ｓ２６）、他のバージョン情報の通知が完了した後に、本バージョン情報を他装置（内部装置Ｂ、Ｃ）に送信する。キューイング以外に、データ管理やトランザクション等による方式を用いることも考えられる。
【００４９】
実施中でない場合（Ｓ２５：ＮＯ）、バージョンアップにより変更された自装置のバージョン情報を、図５のＳ１３からＳ１８と同様の処理により、各他装置（内部装置Ｂ、Ｃ）へ送信し、各他装置は受信したバージョン情報を用いて当該他装置のバージョン情報記憶部２４の内部装置Ａのバージョン情報を更新し、応答を内部装置Ａに送信する（Ｓ２７）。この場合の応答には、当該他装置のバージョン情報は含まれない。
【００５０】
内部装置Ａが全ての他装置からの応答を受信すると、バージョンアップ時のバージョン情報の流通は完了する。
【００５１】
図７は、図６に示すバージョンアップ時の各内部装置の動作を示すシーケンス図である。図示する例では、最初の状態では、内部装置Ａ、Ｂ、Ｃの所定のプログラムモジュールのバージョンは「1」であって、当該プログラムモジュールが利用可能な連携プロトコルモジュールのバージョンは「1」のみであるものとする。
【００５２】
この状態において、内部装置Ａでは、バージョンアップが行われ、プログラムモジュールのバージョンが「2」に更新されるとともに、対応する連携プロトコルモジュールのバージョンは「1および2」に更新される（Ｓ３１）。これにより、内部装置Ａのバージョン情報記憶部２４の自装置のバージョン情報が更新され、当該バージョン情報の変更通知が内部装置Ｂ、Ｃに送信される（Ｓ３２）。内部装置Ｂ、Ｃでは、バージョン情報の変更通知を受信すると、バージョン情報記憶部２４の内部装置Ａのバージョン情報を更新し、応答を内部装置Ａに送信する（Ｓ３３）。
【００５３】
この時点では、内部装置Ａと内部装置Ｂは、両者で共通するバージョン「1」の連携プロトコルモジュールを用いて通信が行われる（Ｓ３４）。すなわち、内部装置Ａでは、外部装置３から外部信号を受信すると（Ｓ３５）、バージョン選択部２７が、バージョン情報記憶部２４に記憶された自装置の連携プロトコルのバージョン情報と、通信相手の内部装置Ｂの連携プロトコルのバージョン情報とを比較し、相互に利用可能な連携プロトコルのバージョン「1」を選択し、選択したバージョンをプログラムモジュールに指示する。なお、相互に利用可能なバージョン（すなわち、共通するバージョン）が複数ある場合、最大のバージョンを選択するものとする。
【００５４】
内部装置Ａのプログラムモジュールは、バージョン選択部２７が選択したバージョン「1」の連携プロトコルモジュールを用いて連携信号を内部装置Ｂに送信し（Ｓ３６）、内部装置Ｂのプログラムモジュールも、バージョン「1」の連携プロトコルモジュールを用いて連携信号応答を内部装置Ａに送信する（Ｓ３７）。そして、内部装置Ａは、連携信号応答に基づいて外部信号応答を外部装置３に送信する（Ｓ３８）。
【００５５】
そして、内部装置Ｂでは、バージョンアップが行われ、プログラムモジュールのバージョンが「2」に更新されるとともに、対応する連携プロトコルモジュールのバージョンは「1および2」に更新される（Ｓ３９）。これにより、内部装置Ｂのバージョン情報記憶部２４の自装置のバージョン情報が更新され、当該バージョン情報の変更通知が内部装置Ａ、Ｃに送信される（Ｓ４０）。内部装置Ａ、Ｃでは、バージョン情報の変更通知を受信すると、バージョン情報記憶部２４の内部装置Ｂのバージョン情報を更新し、応答を内部装置Ｂに送信する（Ｓ４１）。
【００５６】
この時点では、内部装置Ａと内部装置Ｂは、両者で共通する連携プロトコルモジュールのバージョンは「1および2」である。そのうちの大きい方のバージョン「2」のプログラムモジュールを用いて通信が行われる（Ｓ４２）。すなわち、内部装置Ａが外部装置３から外部信号を受信すると（Ｓ４３）、バージョン選択部２７が、バージョン情報記憶部２４に記憶された自装置および内部装置Ｂの連携プロトコルのバージョン情報とを比較し、相互に利用可能なバージョンで最大の「2」を選択し、選択したバージョンをプログラムモジュールに指示する。
【００５７】
内部装置Ａのプログラムモジュールは、バージョン選択部２７が選択したバージョン「2」の連携プロトコルモジュールを用いて連携信号を内部装置Ｂに送信し（Ｓ４４）、内部装置Ｂのプログラムモジュールも、バージョン「2」の連携プロトコルモジュールを用いて連携信号応答を内部装置Ａに送信する（Ｓ４５）。そして、内部装置Ａは、連携信号応答に基づいて外部信号応答を外部装置３に送信する（Ｓ４６）。
【００５８】
Ｓ４７からＳ４９は、バージョンアップが行われた内部装置Ｃの動作であって、これについては、Ｓ３１からＳ３３の動作と同様であるため、ここでは説明を省略する。
【００５９】
このように本実施形態では、分散システム内の各内部装置が、初期起動またはバージョンアップを行うことで、バージョン情報が分散システム内の他装置に流通される。
【００６０】
以上説明した本実施形態では、分散システムにおいて内部装置間で連携（通信）するためのプログラムモジュール、またはプログラムモジュールが利用する連携プロトコルモジュールのバージョンアップの実施を契機に、バージョン情報を分散システム内の各内部装置へ自動的に流通（配布）する。これにより、本実施形態では、各内部装置が、自装置および他装置の連携プロトコルモジュールのバージョン情報が記憶されたバージョン情報記憶部２４を保持することができ、他装置についても最新のバージョン情報および過去のバージョン情報を管理することができる。
【００６１】
また、各内部装置がバージョン情報記憶部２４を保持することで、他装置との連携動作（通信等）を行う際に、管理装置などの外部システムにアクセスして他装置のバージョン情報を取得することなく、自装置内で連携先の他装置のバージョン情報を取得し、自装置と連携先の相互で利用可能な連携プロトコルのバージョンを選択し、その時点で最適な連携プロトコルのバージョンで通信を行うことができる。したがって、自装置と連携先とで、利用可能な連携プロトコルのバージョンに差異がある状態であっても、各内部装置が相互のバージョン情報を事前に共有することで、最適な連携プロトコルのバージョンを選択することができる。
【００６２】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【符号の説明】
【００６３】
１  ：分散システム
２  ：内部装置
２１：バージョン管理部
２２：バージョン流通部
２３：バージョンアップ部
２４：バージョン情報記憶部
２５：宛先情報記憶部
２６：プログラムモジュール
３  ：外部装置
４  ：内部ネットワーク
５  ：外部ネットワーク
【図１】
0005687225.tif 000002
【図２】
0005687225.tif 000003
【図３】
0005687225.tif 000004
【図４】
0005687225.tif 000005
【図５】
0005687225.tif 000006
【図６】
0005687225.tif 000007
【図７】
0005687225.tif 000008