(57)【特許請求の範囲】
【請求項１】
ソフトウェアのコンポーネントのイベント転送関係を結ぶことにより構成される分散型計算機システムにおいて、
インスタンス化されたことを計算機のプラットフォームに対して通知する機能、オブジェクトの状態がバイト列化されるときにイベント転送経路上の下流に接続された第２のコンポーネントをバイト列化するか否かを選択する機能、およびイベント転送経路上の下流に接続された第２のコンポーネントについての情報を計算機のプラットフォームに提供する機能、すなわち、イベント配送経路上の下流に位置するコンポーネントの参照、下流に位置するコンポーネントを削除する関数、下流に新規のコンポーネントを追加する関数、配送されるイベントの種類の情報を提供する機能を有する、第１のイベント転送経路上に配置された第１のコンポーネントと、
システムの実行時に該第１のコンポーネントのイベント転送経路上の下流に配置され、異なる計算機との間でイベントを送受信する機能を有する第２のコンポーネントと、
前記異なる計算機との間でイベントを送受信する機能を有する第２のコンポーネントのイベント転送を一旦停止する機能と、イベント転送経路上で前記第１のコンポーネントと前記第２のコンポーネントに挟まれた区間に位置する少なくとも１つのコンポーネントをバイト列に変換した後、他の計算機上で稼動している計算機上のプラットフォームに転送する機能と、他の計算機上で稼動しているプラットフォームから送られたバイト列からコンポーネントを再インスタンス化する機能と、他の計算機上で稼動しているプラットフォームとの間でイベントを送受信する機能を有するコンポーネントを使ってイベント転送経路を再構築する機能を有するプラットフォームと
備える分散型計算機システム。
【請求項２】
サブネット内に存在するプラットフォーム、および各プラットフォームに存在する移動単位を調べるコマンドを受けると、プラットフォームを管理するサブシステムであるドメイン・マネージャに通信して、サブネットに存在するプラットフォームを把握し、各プラットフォーム上に存在する移動単位を問い合わせて画面に表示し、対象となる移動単位と移動先のプラットフォームとを指定したマイグレーション・コマンドが発行されると、該当の移動単位に対して移動コマンドを送るシェルと、
前記マイグレーション・コマンドを受け取ると、自身の上流側に位置する境界部品で関数呼出しをブロックしてイベントの配送を一旦停止し、前記移動単位に含まれる境界候補部品に対してマイグレーションの開始を通知する関数を呼び出し、自身をバイト列に変換して移動先のプラットフォームに転送する移動単位とをさらに有し、
移動先のプラットフォームは、受け取ったバイト列をオブジェクトに戻し、
このバイト列に含まれている前記境界候補部品は、該プラットフォームに対してインスタンス化されたことを通知し、
該プラットフォームは、前記境界候補部品に対してマイグレーションの終了を通知する関数を呼び出し、
境界部品のイベント転送先を変更し、境界部品以外の移動元の部品を消し、
上流の境界部品のイベント配送を開始する、請求項１に記載の分散型計算機システム。
【請求項３】
移動単位に含まれる境界候補部品に対してマイグレーションの開始を通知する関数に、マイグレーションの前に特に必要な処理を記述し、
境界候補部品に対してマイグレーションの終了を通知する関数に、マイグレーションの後に特に必要な処理を記述する、請求項２に記載の分散型計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信網管理システムの開発技術に関し、特にソフトウェアのコンポーネント指向の概念が導入された分散型計算機システムに関する。
【０００２】
【従来の技術】
コンポーネント指向の概念を導入した通信網管理システムについては、依田等による報告（１９９８年電子情報通信学会通信ソサイエティ大会Ｂ−１４−１８）がある。この報告は、多様な管理プロトコルに対応するために、通信網管理システムにコンポーネント指向の概念を導入することを提案されたもので、再利用可能なソフトウェアを機能ごとにバイナリのコンポーネントとして部品化して、イベント送受経路で接続し、コンポーネントの組合わせにより、新たなプログラムを殆ど作ることなくオペレーションシステムのソフトウェアを構築することができる。
【０００３】
すなわち、コンポーネントとは、仕様を取り出すことができるそれ自体で完結したバイナリのソフトウェア部品のことで、以下単に「部品」ともいう。
【０００４】
このコンポーネント指向を導入した通信網管理システム用のデータ変換部品と、プロトコル部品の設計と実装、コンポーネント指向ＯｐＳのプロトタイプについてもこの大会で報告された。
【０００５】
また、近年、Ｊａｖａ言語等の出現により、モバイル・エージェントやオブジェクト・マイグレーション等、ネットワーク上を移動してソフトウェアを実装することが容易となり、この機能を応用した技術も報告されている。
【０００６】
【発明が解決しようとする課題】
ＴＭＮ等の通信網管理システム（ＯｐＳ）には、分散システムの考えが導入されており、システムは最初から分割した状態で設計されている。分散システムはサブシステム間を分離することにより、マルチベンダの製品を導入できる利点がある反面、インターフェースの設計が複雑となり、そのために多大の時間と労力が消費され、従って一旦定められたインターフェースを再変更することは現実的に不可能である。
【０００７】
また、ＯｐＳの負荷は、ネットワーク・サービスの運用時期によって過負荷となる部位が変化する。例えば、サービス開始時には回線の開通業務が主となるが、サービスが成熟すると品質を維持するための監視警報業務が主となる。これらを処理する分散システムの理想的な配置は、明らかにそれぞれ異なる。
【０００８】
また、ＯｐＳは、長時間の無停止運用が求められるシステムである。そのために高価な二重化システムが必要な場合もあるが、二重化されない既存のシステムでは、ハードウェアのメンテナンス、電源工事、設置場所の移動などの場合には必然的にサービスの停止を伴なう。
【０００９】
本発明の目的は、コンポーネント指向とネットワーク上を移動するソフトウェアの概念をＯｐＳに導入することにより、サービス停止を伴なわない計算機メンテナンス、オペレーションフェーズに応じた分散運用、及び設計の簡略化を図ることができる分散型計算機システムを提供することにある。
【００１０】
【課題を解決するための手段】
本発明の分散型計算機システムは、ソフトウェアのコンポーネントのイベント転送関係を結ぶことにより構成される分散型計算機システムにおいて、
インスタンス化されたことを計算機のプラットフォームに対して通知する機能、オブジェクトの状態がバイト列化されるときにイベント転送経路上の下流に接続された第２のコンポーネントをバイト列化するか否かを選択する機能、イベント転送経路上の下流に接続された第２のコンポーネントについての情報を計算機のプラットフォームに提供する機能第1のイベント転送経路上に配置された、すなわち、イベント配送経路上の下流に位置するコンポーネントの参照、下流に位置するコンポーネントを削除する関数、下流に新規のコンポーネントを追加する関数、配送されるイベントの種類の情報を提供する機能を有する、第1のイベント転送経路上に配置された第１のコンポーネントと、
システムの実行時に該第１のコンポーネントのイベント転送経路上の下流に、異なる計算機との間でイベントを送受信する機能を有する第２のコンポーネントと、
異なる計算機との間でイベントを送受信する機能を有する第２のコンポーネントのイベント転送を一旦停止する機能と、イベント転送経路上で第１のコンポーネントと第２のコンポーネントに挟まれた区間に位置する少なくとも１つのコンポーネントをバイト列に変換した後、他の計算機上で稼動している計算機上のプラットフォームに転送する機能と、他の計算機上で稼動しているプラットフォームから送られたバイト列からコンポーネントを再インスタンス化する機能と、他の計算機上で稼動しているプラットフォームとの間でイベントを送受信する機能を有するコンポーネントを使ってイベント転送経路を再構築する機能を有するプラットフォームとを備える。
【００１１】
また、異なる計算機間でイベントを送受信する機能を有するコンポーネントのイベント転送を一旦停止する機能と、イベント転送経路上で該コンポーネントに挟まれた区間に位置する少なくとも１つ以上のコンポーネントをバイト列に変換した後、他の計算機上で稼動している計算機上のプラットフォームに転送する機能と、他の計算機上で稼動しているプラットフォームから送られたバイト列からコンポーネントを再インスタンス化する機能と、他の計算機上で稼動しているプラットフォームとの間でイベントを送受信する機能を有するコンポーネントを使ってイベント転送経路を再構築する機能を有するプラットフォームを計算機上に備えることができる。
【００１２】
本発明の実施態様によれば、分散型計算機システムは、
サブネット内にどのようなプラットフォームが存在するか、および、各プラットフォームにはどのような移動単位が存在するかを調べるコマンドを受けると、プラットフォームを管理するサブシステムであるドメイン・マネージャに通信して、サブネットに存在するプラットフォームを把握し、次に各プラットフォーム上に存在する移動単位を問い合わせて画面に表示し、対象となる移動単位と移動先のプラットフォームとを指定して、マイグレーション・コマンドがシェルを通して発行されると、シェルが移動単位に対して移動コマンドを送るシェルと、
コマンドを受け取ると、自身の上流側に位置する境界部品で関数呼出しをブロックしてイベントの配送を一旦停止し、移動単位に含まれる境界候補部品に対して、マイグレーションの開始を通知する関数を呼び出し、自身をバイト列に変換し、変換されたバイト列を移動先のプラットフォームに転送する移動単位をさらに有し、
移動先のプラットフォームは、受け取ったバイト列をオブジェクトに戻し、
このバイト列に含まれている前記境界候補部品は、プラットフォームに対してインスタンス化されたことを通知し、
プラットフォームは、前記境界候補部品に対してマイグレーションの終了を通知する関数を呼び出し、
境界部品のイベント転送先を変更し、
境界部品以外の移動元の部品を消し、
上流の境界部品のイベント配送を開始することを特徴とする。
【００１４】
なお、この本明細書においてコンポーネント・マイグレーションとは、実行時にコンポーネント単位でアプリケーションプログラム（ＡＰ）の一部を他のプロセスや計算機上に転送し、同時にコンポーネント間で交換されているデータの転送経路を構築してＡＰの動作を継続させるものである。
【００１５】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【００１６】
図１は本発明によりシステムを設計する１実施例の画面表示例、図２は本発明の１実施例の構成を示すブロック図、図３は移動可能な移動単位を示す図である。この実施例は、特に分散アプリケーションを作成することを前提としていない汎用のコンポーネント・ソフトウェア構成ツールを用いて構成した。
【００１７】
図１において、ボタン（ＪＢｕｔｔｏｎ１）を押すと、イベントが矢印で示すように、アンサー・リセプター部品ＡＲＣ、境界候補部品（Ｓ１）を経由して流れ、通信部品（ＮＥｍａｎａｇｅｒ１）に届けられる。
【００１８】
通信部品にイベントが届くと、この部品は通信装置Ｂから各インターフェースの統計情報を取得し、合計した値をイベントに挿入して次の境界候補部品（Ｓ２）に渡す。最後には、表示フィールド（ＪＬａｂｅｌ１）にその値が表示される。
【００１９】
図２において、Ｓ１、Ｓ２は境界候補部品である。境界候補部品は、（１）インスタンスされたことをプラットフォームに通知する機能、（２）バイト列化されるときに下流に接続された部品をバイト列化するか否かを選択する機能、（３）下流のイベント経路にある部品についての情報を提供する機能の各機能を有する部品である。
【００２０】
（１）は、インスタンス化されたとき、すなわち、「コンストラクタで生成されたとき、及びバイト列からインスタンスに復元されたとき」にプラットフォームに通知する機能である。
【００２１】
（２）は、バイト列化されるときに、イベント転送経路で下流に位置する部品をバイト列化するか否かを選択する機能である。この機能により、バイト列化をこの部品で選択的にとめることができる。これにより、アプリケーションを構成する部品構成する部品回路の内の一部分のみをバイト列化することが可能になる。
【００２２】
（３）は、Ａ．イベント配送経路上の下流に位置する部品の参照、Ｂ．下流に位置する部品を削除する関数、Ｃ．下流に新規の部品を追加する関数、Ｄ．配送されるイベントの種類の情報を提供する機能である。この機能により、当該境界候補部品の下流に新たな部品を挿入することができる。
【００２３】
プラットフォームは、組み立てツールの出力したファイルを元に、オブジェクトをインスタンス化し、アプリケーション・プログラムの実行を開始する。
【００２４】
プラットフォームは、上記（１）の機能により、このファイル中に含まれている境界候補部品を全て検出することができる。また、プラットフォームは、上記（２）の機能を用いて図３に示すように、検出した境界候補部品の後ろに境界部品を挟み込むことができる。境界部品はアプリケーション・プログラムの移動単位の境界となり、境界部品と境界部品に挟まれた部分を移動することができる。
【００２５】
境界部品は、その境界部品に入力されたイベントを遠隔イベントで包み、遠隔呼出しを用いて他の計算機上に位置する他の境界部品に対して送出する。この遠隔イベントには、Ａ．包まれるイベント、Ｂ．イベントを伝達する際に呼び出す関数名、Ｃ．イベント送出元を識別するための文字列が含まれる。
【００２６】
イベント送出元は、通常オブジェクトへの参照という形でイベントの中に保持されているが、参照するオブジェクトが他の計算機上にあるためにイベント送出元を保持できない場合がある。このような場合には、Ｃ．の送出元のオブジェクト識別用の文字列を保持させる。
【００２７】
次に、図３の移動単位が移動するときの手順について、図４の経路図及び図５のフローチャートにより説明する。
【００２８】
（１）オペレータは、ユーザが指示を送るためのキャラクタ・ユーザ・インターフェース（ＣＵＩ）であるシェルからコマンドを投入し、サブネット内にどのようなプラットフォームが存在するか、また、それぞれのプラットフォームにはどのような移動単位が存在するかを調べる。
【００２９】
このコマンドが投入されると、シェルはドメイン・マネージャ（プラットフォームを管理するサブシステム）に通信して、サブネットに存在するプラットフォームを把握し、次に各プラットフォーム上に存在する移動単位を問い合わせて画面に表示する。
【００３０】
（２）オペレータは、対象となる移動単位と移動先のプラットフォームとを指定して、シェルを通してマイグレーション・コマンドを発行する。シェルは、移動単位に対して移動コマンドを送る。
【００３１】
（３）移動単位は、コマンドを受け取ると、先ず、移動単位の上流側に位置する境界部品で関数呼出しをブロックしてイベントの配送を一旦停止する。
【００３２】
（４）移動単位に含まれる境界候補部品に対して、マイグレーションの開始を通知する関数を呼び出す。部品の実装者は、マイグレーションの前に特に必要な処理があれば、ここに記述しておくことができる。
【００３３】
（５）移動単位をバイト列に変換する。
【００３４】
（６）変換されたバイト列を移動先のプラットフォームに転送する。
【００３５】
（７）移動先のプラットフォームは、受け取ったバイト列をオブジェクトに戻す。このバイト列に含まれている境界候補部品は、プラットフォームに対してインスタンス化されたことを通知する。
【００３６】
（８）プラットフォームは、境界候補部品に対してマイグレーションの終了を通知する関数を呼び出す。マイグレーションの後に特に必要な処理があれば、部品の実装者がここに記述しておくことができる。
【００３７】
（９）境界部品のイベント転送先を変更する。
【００３８】
（１０）境界部品以外の移動元の部品を消す。
【００３９】
（１１）上流の境界部品のイベント配送を開始する。
【００４０】
以上の手順により、アプリケーションを終了することなく図３の移動可能部品の移動を行うことができる。
【００４１】
上述のようにコンポーネント・マイグレーション・プラットフォームを構成することにより、高価な二重化システムを用いることなくアプリケーションプログラムを構成する全ての部品を他計算機に一旦移動することができ、サービスを停止することなく当該計算機を停止してメンテナンスを行なうことができる。
【００４２】
また、コンポーネント・マイグレーションにより、高負荷の計算機上の部品を低負荷の計算機に移したり、細い神経網上の通話量を減らすように部品を移すことができる。
【００４３】
また、特に分散アプリケーションを作成することを前提としていない汎用のコンポーネント・ソフトウェア構成ツールを用いて構成することができる。
【００４４】
【発明の効果】
上述のように本発明は、コンポーネント指向のＯｐＳのアプリケーション・プログラムにおいて、コンポーネント単位でのマイグレーションを実現することにより、従来、コンポーネントを組合わせて構成され、分散運用することができなかったネットワーク管理システムを容易に分散して低コストで構築し、運用することができる効果がある。
【図面の簡単な説明】
【図１】本発明の１実施例のシステム設計の画面表示例である。
【図２】本発明の1実施例の構成を示すブロック図である。
【図３】移動可能な移動単位を示す図である。
【図４】移動単位の移動時の経路を示す図である。
【図５】移動単位の移動時の動作を示すフローチャートである。
【符号の説明】
Ｓ１．Ｓ２  境界候補部品
ＡＲＣ  アンサー・リセプター部品
１〜１１  ステップ
【図１】
0003688928.tif 000002
【図２】
0003688928.tif 000003
【図３】
0003688928.tif 000004
【図４】
0003688928.tif 000005
【図５】
0003688928.tif 000006