(57)【要約】【課題】オブジェクト単位での更新を行うとともに、更新対象のオブジェクトを一元的に管理できる機能更新方式を実現するソフトウェア機能更新装置を得る。【解決手段】パッケージ１３０は、オブジェクト群とともにオブジェクトの接続関係のデータを有する構成管理プロファイル１３１を備えている。構成管理部１１１は、構成管理プロファイル１３１から構成情報を取り込んでリポジトリ１２２に登録する。さらに、コネクション管理部１１２は、構成情報に基づいてオブジェクト群に対して接続要求を行う。さらに、オブジェクト構成データ管理部１２１は、構成情報に基づいてオブジェクト間の接続制御を行う。このように構成管理プロファイル１３１に基づく構成情報を活用することにより、ユーザの指示なしに自動的にオブジェクト間のコネクションを確立してソフトウェア機能更新装置の機能を実現することができる。【選択図】図１
2005250892.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア機能をオブジェクトの集合として管理し、オブジェクトの入れ替え及びオブジェクト間の相互接続の切り替えによって種々のソフトウェア機能を実現するソフトウェア機能更新装置であって、
オブジェクト間の接続関係のデータを有する構成情報を記憶するデータベースと、
管理対象となるソフトウェア機能のオブジェクト間の接続関係のデータを有する構成管理プロファイルと、オブジェクトの集合であるオブジェクト群とを記憶する記憶部と、
前記記憶部から運用するソフトウェア機能に対応する構成管理プロファイルを読み取り、前記データベースに構成情報として登録する構成管理部と、
前記データベースに登録された前記構成情報に基づいて接続関係にある接続元オブジェクトを検出し、前記記憶部のオブジェクト群の中の接続元オブジェクトに対して接続先オブジェクトとの接続を確立するための接続要求を出力するコネクション管理部と、
前記接続元オブジェクトから接続先オブジェクトに対する接続指示を受け取ると、前記構成情報に基づいて接続関係にある接続先オブジェクトを検出し、接続元オブジェクトと接続先オブジェクトとの間の接続制御を行うオブジェクト構成データ管理部と
を備えたことを特徴とするソフトウェア機能更新装置。
【請求項２】
請求項１に記載のソフトウェア機能更新装置において、
新たなソフトウェア機能のオブジェクト間の接続関係のデータを有する構成管理プロファイルと、前記新たなソフトウェア機能に必要な新たなオブジェクトとを設定し、前記構成管理プロファイル及び前記新たなオブジェクトを前記記憶部に記憶させる入力部をさらに備えたことを特徴とするソフトウェア機能更新装置。
【請求項３】
請求項１または２に記載のソフトウェア機能更新装置において、
前記構成管理部は、接続元オブジェクトから参照先情報を受け取り、前記参照先情報を前記接続元オブジェクトと関連づけて前記データベース内の前記構成情報の一部として新たに追加登録し、
前記オブジェクト構成データ管理部は、接続元オブジェクトと接続先オブジェクトとの間の接続制御を行う際に、前記接続元オブジェクトが接続先オブジェクトとして指定した接続先のオブジェクト名を前記構成情報に登録されている前記参照先情報に付け替えることにより接続を確立する
ことを特徴とするソフトウェア機能更新装置。
【請求項４】
請求項１ないし３のいずれか１項に記載のソフトウェア機能更新装置において、
前記構成管理プロファイルは、各プロジェクト間の接続順序に関するデータをさらに有し、
前記オブジェクト構成データ管理部は、前記構成情報の中の前記接続順序に関するデータにしたがった順番で、オブジェクト間の接続制御を行う
ことを特徴とするソフトウェア機能更新装置。
【請求項５】
請求項１ないし４のいずれか１項に記載のソフトウェア機能更新装置において、
オブジェクトの更新時に、オブジェクトの更新順序あるいは更新タイミングに関する入力データを受け付けるスケジュール管理部をさらに備え、
前記構成管理部は、前記スケジュール管理部から受け取った前記入力データを前記コネクション管理部に出力し、
前記コネクション管理部は、前記データベースに登録された前記構成情報に対して前記構成管理部から受け取った前記入力データの情報を加味した情報に基づいてオブジェクト間の接続を確立するための接続要求を出力する
ことを特徴とするソフトウェア機能更新装置。
【請求項６】
請求項１ないし５のいずれか１項に記載のソフトウェア機能更新装置において、
前記データベース内の２つの構成情報の比較に基づいて更新オブジェクトの特定を行う差分解析部をさらに備え、
前記構成管理部は、新たなソフトウェア機能の運用に切り替えるときに更新するオブジェクトを特定するための解析要求を前記差分解析部に出力し、
前記差分解析部は、前記解析要求を受け取ると、前記データベース内にある現在運用中の構成情報と、新たなソフトウェア機能に対応する構成情報との比較に基づいて、更新対象となるオブジェクト及び前記更新対象となるオブジェクトに関連した接続関係を特定し、特定されたオブジェクト及び特定されたオブジェクトに関連した接続関係に基づく更新要求を前記コネクション管理部に出力する
ことを特徴とするソフトウェア機能更新装置。
【請求項７】
請求項６に記載のソフトウェア機能更新装置において、
前記記憶部は、前記構成管理プロファイルとともに、オブジェクト間で授受するデータからなるインタフェース定義情報をさらに備え、
前記構成管理部は、前記記憶部から前記構成管理プロファイルとともに前記インタフェース定義情報を読み取り、前記データベースに構成情報の一部として登録し、
前記差分解析部は、新たなソフトウェア機能の運用に切り替えるために前記構成管理部から前記解析要求を受け取ると、前記データベース内にある現在運用中の構成情報と、新たなソフトウェア機能に対応する構成情報との比較を行い、インタフェース定義情報の比較結果を加味して更新対象となるオブジェクト及び前記更新対象となるオブジェクトに関連した接続関係を特定する
ことを特徴とするソフトウェア機能更新装置。
【請求項８】
請求項６または７に記載のソフトウェア機能更新装置において、
前記構成管理部は、前記差分解析部の解析結果に基づいてソフトウェア機能の更新履歴を管理し、運用中のオブジェクトに不具合が発生したことにより前記オブジェクトから異常情報を受け取ると、前記更新履歴に基づいて現在運用中のソフトウェア機能に対応する構成情報に対して更新前の構成情報が存在すると判断した場合には、前記コネクション管理部に前記更新前の構成情報に基づくオブジェクトに切り替えるための切り替え要求を出力し、
前記コネクション管理部は、前記切り替え要求に基づいて前記更新前の構成情報に対応するオブジェクト間の接続を確立するための接続要求を出力する
ことを特徴とするソフトウェア機能更新装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの入れ替えによってソフトウェア機能を変更し、単一の機器を様々なシステムに適用可能とするソフトウェア機能更新装置に関し、特に分散オブジェクト技術における国際標準であるＣＯＲＢＡをベースとした機能更新方式によるソフトウェア機能更新装置に関連する。
【背景技術】
【０００２】
無線機におけるソフトウェア入れ替え（機能更新）の方法としては、これまでに様々な取り組みがなされている。一般的に、ダウンロードされたソフトウェアは、端末上のワークメモリあるいはフラッシュＲＯＭ（Read Only Memory）上のソフトウェア領域へダウンロードされる。そしてダウンロード後に、その領域のソフトウェアの動作検証などを実施して動作に問題がない場合に、現在運用中のソフトウェア領域と新規のソフトウェア領域とを切り替え、ソフトウェア全体を入れ替える方式が多く用いられている（例えば、特許文献１参照）。
【０００３】
また、分散オブジェクト技術における国際標準であるＣＯＲＢＡをベースとした方式では、オブジェクト単位の入れ替えを行っている。更新対象のオブジェクトがダウンロードされた場合は、運用中のオブジェクトは、システムが保有しているバージョン情報を管理するテーブルを参照することにより、自オブジェクトよりも新しいオブジェクト情報が格納されているか否かを判断できる。そして、新しいオブジェクト情報が格納されている場合には、運用中のオブジェクトは、自オブジェクトが更新される対象のオブジェクトであることを把握できる。
【０００４】
そこで、その運用中のオブジェクトは隣接しているオブジェクトからのリクエストをすべて拒否し、処理を停止する。その後の隣接オブジェクトからのリクエストは、新規オブジェクトが受け持つことにより、隣接オブジェクトは相手先の更新を意識せずに、オブジェクトを運用中に入れ替えるという方式が提案されている（例えば、特許文献２）。
【０００５】
【特許文献１】特開２００３−１２２５７４（第１頁、１図）
【特許文献２】特開２００２−３６６３８１（第１頁、１図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術には以下の問題があった。特許文献１によるソフトウェア全体を入れ替える方式は、端末上のワークメモリあるいはフラッシュＲＯＭのようなソフトウェア領域毎にソフトウェアを入れ替えるため、オブジェクトの接続等に関連する処理が不要である。しかし、その反面、パッケージ中のオブジェクトを一括して入れ替えるため、ダウンロードのオーバヘッドが発生する。
【０００７】
また、ワークメモリあるいはフラッシュＲＯＭの領域をまたぐような構成を構築することができないため、固定構成として機能更新することしかできないという問題点があった。さらに、ワークメモリあるいはフラッシュＲＯＭの領域に関してはソフトウェアで管理しているため、ワークメモリあるいはフラッシュＲＯＭのアドレス及びサイズなどの領域管理が必要となり、管理が複雑になるという問題点があった。
【０００８】
また、特許文献２によるオブジェクト自身が更新対象のオブジェクトであることを把握することにより機能更新する方式では、ソフトウェア全体を一括して入れ替えるときの問題は解消される。しかしながら、オブジェクトがそれぞれ更新対象のとき処理を停止し、新規オブジェクトへ処理を引き継ぐこととなるため、オブジェクトを一元的に管理することができず、接続に順序関係がある場合には対応できないという問題があった。
【０００９】
本発明はこのような問題点を解決するためになされたもので、オブジェクト単位での更新を行うとともに、更新対象のオブジェクトを一元的に管理できる機能更新方式を実現するソフトウェア機能更新装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るソフトウェア機能更新装置は、ソフトウェア機能をオブジェクトの集合として管理し、オブジェクトの入れ替え及びオブジェクト間の相互接続の切り替えによって種々のソフトウェア機能を実現するソフトウェア機能更新装置であって、オブジェクト間の接続関係のデータを有する構成情報を記憶するデータベースと、管理対象となるソフトウェア機能のオブジェクト間の接続関係のデータを有する構成管理プロファイルと、オブジェクトの集合であるオブジェクト群とを記憶する記憶部と、記憶部から運用するソフトウェア機能に対応する構成管理プロファイルを読み取り、データベースに構成情報として登録する構成管理部と、データベースに登録された構成情報に基づいて接続関係にある接続元オブジェクトを検出し、記憶部のオブジェクト群の中の接続元オブジェクトに対して接続先オブジェクトとの接続を確立するための接続要求を出力するコネクション管理部と、接続元オブジェクトから接続先オブジェクトに対する接続指示を受け取ると、構成情報に基づいて接続関係にある接続先オブジェクトを検出し、接続元オブジェクトと接続先オブジェクトとの間の接続制御を行うオブジェクト構成データ管理部とを備えたものである。
【発明の効果】
【００１１】
本発明によれば、構成管理プロファイルによってオブジェクト間の接続関係を規定することにより、オブジェクト間のコネクションを確立でき、オブジェクト単位での更新を行うとともに、更新対象のオブジェクトを一元的に管理できる機能更新方式を実現するソフトウェア機能更新装置を得ることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面に基づいて説明する。以下の実施の形態において、ソフトウェア機能更新装置は、無線機器として説明するものとする。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１における無線機器の機能更新を実現するための機能構成図である。無線機器１００は、ソフトウェアの入れ替えによって機能を変更するものであり、端末局、移動局あるいは基地局がこれに相当する。
【００１４】
無線機器１００は、オブジェクト管理部１１０、ミドルウェア１２０、パッケージ部１３０及びＯＳ１４０を備えている。また、無線機器１００は、入力部１５０と接続することにより、新規に作成したソフトウェアを入力部１５０からダウンロードすることができる。
【００１５】
ここで、オブジェクト管理部１１０は、運用するソフトウェア機能に対応してオブジェクト群を管理するものであり、構成管理部１１１、コネクション管理部１１２、スケジュール管理部１１３及び差分解析部１１４を備えている。
【００１６】
また、ミドルウェア１２０は、パッケージ内のオブジェクト間の通信をサポートするものであり、データベースに相当するリポジトリ１２２を有するオブジェクト構成データ管理部１２１を備えている。
【００１７】
また、パッケージ部１３０は、入力部１５０からダウンロードされるソフトウェアパッケージであり、構成管理プロファイル１３１、管理対象オブジェクト群１３２及びインタフェース定義情報１３３を備えている。このようなパッケージは、入力部からダウンロードされることにより、記憶部に記憶される。
【００１８】
さらに、ＯＳ１４０は、無線機器１００内のソフトウェアの基盤となるＯＳ（Operating System）である。
【００１９】
次に、オブジェクト管理部１１０内の個々の機能について説明する。
構成管理部１１１は、パッケージ１３０内の構成管理プロファイル１３１を読み取り、ミドルウェア１２０内のリポジトリ１２２へ構成情報として登録する。コネクション管理部１１２は、リポジトリ１２２に登録された構成情報に基づいてオブジェクト間の接続を確立するために、接続元オブジェクトに対して接続要求を行い、オブジェクト間の接続を管理する。
【００２０】
スケジュール管理部１１３は、入力部１５０からの指示によってオブジェクトの接続に順序関係が指示された場合に、指示された接続順序に基づいたオブジェクトの接続を確立するために、構成管理部１１１に対して接続順序を通知する管理部である。
【００２１】
さらに、差分解析部１１４は、オブジェクト更新時に、運用中のソフトウェア機能に対応する構成情報と新規のソフトウェア機能に対応する構成情報とを比較してその差分を解析する解析部である。この差分解析部１１４を用いた実施の形態については、実施の形態２で詳細に説明する。
【００２２】
次に、ミドルウェア１２０内の個々の機能について説明する。リポジトリ１２２は、分散して存在する具体的な構成情報の格納庫であり、構成管理プロファイル１３１内の構成情報が、構成管理部１１１によってリポジトリ１２２内に格納される。オブジェクト構成データ管理部１２１は、リポジトリ１２２内に格納された構成情報に基づいてオブジェクト間の接続確立を制御する。
【００２３】
次に、パッケージ１３０内の個々の機能について説明する。ここで、パッケージとは、アプリケーションのような機能を実現するために必要となるファイルなど関連する機能一式のことである。パッケージは、入力部１５０からダウンロードされ、無線機器１００の記憶部に記憶される。
【００２４】
構成管理プロファイル１３１は、ソフトウェア機能のオブジェクト間の接続関係がデータ化されている構成管理プロファイルデータである。管理対象オブジェクト群１３２は、パッケージ１３０内に含まれているオブジェクトの集合である。
【００２５】
インタフェース定義情報１３３は、各オブジェクトが提供するインタフェースの情報が記述されたＩＤＬ（Interface Definition Language）ファイルとしてのデータであり、ＩＤＬファイルは、ＣＯＲＢＡ標準の記述様式で記載されている。このＩＤＬファイルは、インタフェースの名前やインタフェースによる各オブジェクト間で授受されるデータ等のことであり、具体的には関数やその引数等がこれに相当する。このインタフェース定義情報１３３を用いた実施の形態については、実施の形態３で詳細に説明する。
【００２６】
上述の機能を備えた無線機器１００において、ソフトウェアの入れ替えによる機能更新を行うための具体的な動作について以下に説明する。複数のオブジェクトから構成されている新たなパッケージ１３０が入力部１５０からダウンロードされた場合の初期起動時の動作について、図１〜図５に基づいて説明する。
【００２７】
図２は、本発明の実施の形態１におけるオブジェクト構成を示した図である。図２のパッケージ１３０は、オブジェクトａ及びオブジェクトｂの２つで構成されている。ここでは、オブジェクトａ及びオブジェクトｂが互いに関連している場合を示している。また、図２において、（１）、（２）と記載されているものは、接続順序を示しており、詳細は後述する。
【００２８】
また、図３は、本発明の実施の形態１における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。構成管理プロファイル１３１は、Ｓｉｄｅ、オブジェクト名、接続先オブジェクト名、コネクション種別及び接続順序の５つのデータから構成されている。
【００２９】
Ｓｉｄｅは、管理対象であるパッケージの番号であり、ここでは「１」が設定されている。オブジェクト名は、図２に対応して、オブジェクトａ及びオブジェクトｂの２つのデータが設定されている。接続先オブジェクト名は、図２に対応して、それぞれ同じパッケージ内の相手のオブジェクト名が設定されている。コネクション種別は、接続先のオブジェクトが同じパッケージ内にあるため「internal」のデータが設定されている。さらに、接続順序は、接続元オブジェクトａから接続先オブジェクトｂへの接続をした後に、接続元オブジェクトｂから接続先オブジェクトａへの接続を行うこととして、その順番がそれぞれ「１」、「２」として設定されている。
【００３０】
また、図４は、本発明の実施の形態１におけるリポジトリ１２２内のデータテーブル構造を示す図である。図３で示した５つのデータに加えて、ＩＯＲ及びコネクションＩＤに関する２つのデータが追加されている。ＩＯＲ（Interoperable Object Referenceの略）は、自オブジェクトの参照先情報を示すデータであり、そのオブジェクト自身の接続先アドレスに相当する。コネクションＩＤは、オブジェクト間の接続が確立したことにより書き込まれるデータである。
【００３１】
さらに、図５は、本発明の実施の形態１における初期起動時の動作シーケンス図である。図５に示したステップにしたがって動作を説明する。ここでは、新たなパッケージ１３０がダウンロードされるとともに、そのソフトウェア機能を起動する場合を示しているが、ソフトウェアの起動タイミングは、ダウンロードのタイミングに依存せずに行うことも可能である。
【００３２】
新たなパッケージ１３０が入力部１５０からダウンロードされると、オブジェクト管理部１１０内の構成管理部１１１は、パッケージ１３０内の構成管理プロファイル１３１のデータを読み込む（Ｓ１００）。次に、構成管理部１１１は、読み込んだデータをミドルウェア１２０にあるオブジェクト構成データ管理部１２１のリポジトリ１２２に構成情報として登録する（Ｓ１０１）。これにより、図４のＩＯＲとコネクションＩＤを除き、図３の構成管理プロファイル１３１にて定義された情報がリポジトリ１２２に反映されたこととなる。
【００３３】
次に、起動を開始し、初期化完了した新規オブジェクトは、自オブジェクトの参照先情報であるＩＯＲを構成管理部１１１に通知する（Ｓ１０２）。具体的には、オブジェクトａとオブジェクトｂのそれぞれからＩＯＲ通知がなされる。
【００３４】
通知を受けた構成管理部１１１は、リポジトリ１２２に対して、通知されたＩＯＲを登録する（Ｓ１０３）。図４のＩＯＲが、このデータに相当する。ＩＯＲが登録されたことにより、各オブジェクトの接続先のアドレスがこのデータにより特定できることとなる。
【００３５】
次に、構成管理部１１１はパッケージ１３０のすべてのオブジェクトからＩＯＲ通知を受け取ったことにより、オブジェクト間のコネクション確立のための準備が完了したと判断し、コネクション管理部１１２に対してコネクション確立のリクエストとして接続要求を通知する（Ｓ１０４）。
【００３６】
通知を受けたコネクション管理部１１２は、構成情報をリポジトリ１２２から読み取り、対象となるオブジェクトのＩＯＲを検索する（Ｓ１０５）。コネクション管理部１１２は、構成情報とＩＯＲを利用してオブジェクトを制御することとなる。そして、コネクション管理部１１２は、オブジェクト間のコネクションを確立するため、管理対象のそれぞれの接続元オブジェクトに対してコネクション確立のための接続要求を行う（Ｓ１０６）。
【００３７】
次に、接続要求を受けたそれぞれの接続元オブジェクトは、接続先オブジェクトに対して接続指示を行う。図５の例では、ｂｉｎｄインタフェースにより、相手先のオブジェクト名を指定することで行っている（Ｓ１０７）が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
【００３８】
オブジェクト間の通信を司るミドルウェア１２０内のオブジェクト構成データ管理部は、ｂｉｎｄインタフェース中のオブジェクト名を基に、リポジトリ１２２から対応するオブジェクトのＩＯＲを検索し（Ｓ１０８）、オブジェクト名からＩＯＲへあて先情報を付け替えて、接続先オブジェクトに対してリクエストを送信する（Ｓ１０９）。
【００３９】
次に、接続指示のリクエストを受けた各接続先オブジェクトは、おのおの接続処理を実施し（Ｓ１１０）、処理完了後に接続元オブジェクトに対して応答を返す（Ｓ１１１）。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部１２１を介して行われる。
【００４０】
次に、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、コネクション管理部１１２に対して、各オブジェクト間のコネクションが確立したことを通知する（Ｓ１１２）。このコネクション確立の通知により、コネクション管理部１１２は、コネクションにＩＤをつけてリポジトリ１２２に登録し（Ｓ１１３）、その後の管理を行う。このＩＤは、図４のコネクションＩＤに相当し、オブジェクト間の接続が確立したことにより書き込まれることとなる。
【００４１】
ステップＳ１０３のＩＯＲ登録、及びステップＳ１１３のコネクションＩＤ登録により、図４で示したリポジトリ１２２におけるすべてのテーブル情報が格納されることとなる。コネクションＩＤ登録後、オブジェクト間のコネクションが確立され、通信可能な状態となる（Ｓ１１４）。
【００４２】
実施の形態１によれば、構成管理プロファイルに基づく構成情報を活用することにより、ユーザの指示なしに自動的にオブジェクト間のコネクションを確立して、新たなパッケージに含まれているオブジェクト群を実行するソフトウェア機能更新装置が実現できる。
【００４３】
さらに、構成管理プロファイルにて構成を自由に定義できるため、固定構成だけでなく任意構成によるオブジェクトの接続関係の構築が容易に行える。さらに、ワークメモリあるいはフラッシュＲＯＭなどの領域であるアドレス情報を管理する必要がないため、管理を容易にすることができる。
【００４４】
実施の形態２．
実施の形態１では、新たなパッケージ１３０を入力部１５０からダウンロードした際における初期起動時の動作について説明した。実施の形態２では、オブジェクトの更新（入れ替え）時における部分更新の動作について説明する。実施の形態２の構成は、実施の形態１における図１の構成と同一である。実施の形態１では具体的な説明をしなかった差分解析部１１４を中心に、以下詳細に説明する。
【００４５】
オブジェクトａ、ｂ、ｃの３つのオブジェクトで運用されているソフトウェア機能に対して、オブジェクトｂをオブジェクトｂ’に更新する場合について、図６〜図１０に基づいて説明する。
【００４６】
図６は、本発明の実施の形態２におけるオブジェクト構成を示した図である。現在運用中のオブジェクトは、ａ、ｂ、ｃの３つである。新たにダウンロードされたオブジェクトはｂ’であり、オブジェクトｂ’によってオブジェクトｂを更新する場合を示している。
【００４７】
図７は、本発明の実施の形態２における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。５種類のデータからなるデータ構成は、実施の形態１における図３と同一である。接続先オブジェクト名において「ｎｕｌｌ」と設定されているものは、接続先となるコネクションが存在しないことを意味する。
【００４８】
例えば、オブジェクトａは、図６に示すようにオブジェクトａから他のオブジェクトに向かう矢印が存在せず、接続先となるコネクションが存在しないことを意味しており、接続先オブジェクト名には「ｎｕｌｌ」が設定されている。
【００４９】
また、コネクション種別において「Ｅｘｔｅｒｎａｌ」と設定されているものは、同一の管理対象ではあるが、ハードウェアのドライバのような外部的な位置付けのオブジェクトとの接続関係を意味している。オブジェクトａがこの外部オブジェクトに相当する。
【００５０】
図８は、本発明の実施の形態２におけるリポジトリ１２２内の運用中のオブジェクト構成のデータテーブル構造を示す図である。また、図９は、本発明の実施の形態２におけるリポジトリ１２２内の新規オブジェクト構成のデータテーブル構造を示す図である。図８及び図９における７種類のデータからなるデータ構成は、実施の形態１における図４と同一である。
【００５１】
さらに、図１０は、本発明の実施の形態２における部分更新時の動作シーケンス図である。図１０に示したステップにしたがって動作を説明する。
【００５２】
新たなオブジェクトや構成管理プロファイル１３１が入力部１５０からダウンロードされると、オブジェクト管理部１１０内の構成管理部１１１は、パッケージ１３０内の構成管理プロファイル１３１のデータを読み込む（Ｓ２００）。次に、構成管理部１１１は、読み込んだデータをミドルウェア１２０にあるオブジェクト構成データ管理部１２１のリポジトリ１２２に登録する（Ｓ２０１）。これにより、図９のＩＯＲとコネクションＩＤを除き、図７の構成管理プロファイル１３１にて定義された情報がリポジトリ１２２に反映されたこととなる。
【００５３】
次に、起動を開始し、初期化完了した新規オブジェクトは、自オブジェクトの参照先情報であるオブジェクト・リファレンス（ＩＯＲ）を構成管理部１１１に通知する（Ｓ２０２）。このとき新規以外のオブジェクトはすでに通知済みのため再度の通知は行わない。具体的には、更新するための新規オブジェクトに相当するオブジェクトｂ’のＩＯＲ通知のみがなされる。
【００５４】
通知を受けた構成管理部１１１は、リポジトリ１２２に対して、通知されたＩＯＲを登録する（Ｓ２０３）。図９のＩＯＲが、このデータに相当する。
【００５５】
次に、構成管理部１１１は、差分解析部１１４に対して、運用中のソフトウェア機能に対応する構成情報と新規のソフトウェア機能に対応する構成情報との差分を解析するための解析要求を通知する（Ｓ２０４）。差分解析部１１４は、リポジトリ１２２内にある新規に登録した構成情報（図９に相当）と運用中の構成情報（図８に相当）とを比較し、変更箇所の解析を行う（Ｓ２０５）。
【００５６】
ここで、構成情報におけるオブジェクト名の欄には、オブジェクトのバージョンが更新されたことがわかるように、あらかじめ決められた識別名が付されているものとする。これにより、差分解析部１１４は、図８と図９の構成情報を比較することにより、オブジェクトｂがオブジェクトｂ’に変更されたことがわかる。
【００５７】
さらに、差分解析部１１４は、方向属性を解析することにより、接続先オブジェクト名にオブジェクトｂ’がないことから、オブジェクトｂ’への接続関係のあるオブジェクトは存在していないことがわかる。したがって、差分解析部１１４は、更新するオブジェクトの影響範囲としてはオブジェクトｂだけ変更しオブジェクトｂ’からのコネクションを確立すればよいことがわかる。
【００５８】
差分解析部１１４は、上述のような差分解析が完了すると、更新するオブジェクトの影響範囲を知らせるためのオブジェクト更新要求をコネクション管理部１１２に対して通知する（Ｓ２０６）。コネクション管理部１１２は、新規の構成情報に基づいたコネクション確立処理を開始する。コネクション管理部１１２は、更新するオブジェクトの影響範囲にあるオブジェクトのＩＯＲを検索し（Ｓ２０７）、現在運用中のオブジェクトに対して一旦コネクションの切断をするための切断要求を通知する（Ｓ２０８）。
【００５９】
コネクション管理部１１２は、切断要求に対応するコネクションＩＤを削除し（Ｓ２０９）、新たにコネクションの接続要求を行う（Ｓ２１１）。ここでの接続要求に対して、コネクション管理部１１２は、図９の接続先オブジェクト名を参照することにより、オブジェクトｂ’の接続先としてオブジェクトａ、ｃの２つが存在していることを判断できる。この場合に、コネクション管理部１１２は、パッケージ内部のオブジェクト間の接続を優先し、まずは接続元オブジェクトｂ’に対して接続先オブジェクトｃへの接続要求を行う。
【００６０】
一方、ステップＳ２０８で切断要求を受けたオブジェクトｂは、コネクションを切断し、通信処理を停止する（Ｓ２１０）。
【００６１】
また、ステップＳ２１１で接続要求を受けた接続元オブジェクトｂ’は、接続先オブジェクトｃに対して接続指示を行う。図１０の例では、ｂｉｎｄインタフェースにより、相手先のオブジェクト名を指定することで行っている（Ｓ２１２）が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
【００６２】
オブジェクト間の通信を司るミドルウェア１２０内のオブジェクト構成データ管理部１２１は、ｂｉｎｄインタフェース中のオブジェクト名を基に、リポジトリ１２２から対応するオブジェクトのＩＯＲを検索し（Ｓ２１３）、オブジェクト名からＩＯＲへあて先情報を付け替えて接続先オブジェクトｃに対してリクエストを送信する（Ｓ２１４）。
【００６３】
次に、接続指示のリクエストを受けた接続先オブジェクトｃは、接続処理を実施し（Ｓ２１５）、処理完了後に接続元オブジェクトｂ’に対して応答を返す（Ｓ２１６）。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部１２１を介して行われる。
【００６４】
次に、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、コネクション管理部１１２に対して、オブジェクト間のコネクションが確立したことを通知する（Ｓ２１７）。このコネクション確立の通知により、コネクション管理部１１２は、コネクションにＩＤをつけてリポジトリ１２２に登録し（Ｓ２１８）、その後の管理を行う。このＩＤは、図９のコネクションＩＤに相当する。
【００６５】
ステップＳ２０３のＩＯＲ登録、及びステップＳ２１８のコネクションＩＤ登録により、図９で示したリポジトリ１２２におけるオブジェクトｂ’とオブジェクトｃとの関係に相当するテーブル情報が格納されることとなる。コネクションＩＤ登録後、オブジェクトｂ’−ｃ間の内部コネクションが確立され、通信可能な状態となる（Ｓ２１９）。
【００６６】
コネクション管理部１１２は、パッケージ内部のオブジェクト間の接続が完了したのに引き続き、外部オブジェクトとの接続関係がある場合には、外部コネクションの確立を行う。通常、外部コネクションは、内部コネクションの後に確立する。しかし、リポジトリ１２２の接続順序において、外部が優先して指定されている場合にはリポジトリ１２２の接続順序に従う。
【００６７】
構成管理部１１１は、外部コネクションの構築が必要な場合には、コネクション管理部１１２に対してコネクション確立のリクエストとして接続要求を通知する（Ｓ２２０）。通知を受けたコネクション管理部１１２は、構成情報をリポジトリ１２２から読み取り、対象となるオブジェクトのＩＯＲを検索する（Ｓ２２１）。コネクション管理部１１２は、構成情報とＩＯＲを利用してオブジェクトを制御することとなる。
【００６８】
次に、コネクション管理部１１２は、外部オブジェクトａとのコネクションを確立するため、接続元オブジェクトｂ’に対して接続先オブジェクトａへの接続要求を行う（Ｓ２２２）。
【００６９】
次に、接続要求を受けた接続元オブジェクトｂ’は、接続先の外部オブジェクトａに対して接続指示を行う。図１０の例では、ｂｉｎｄインタフェースにより、相手先のオブジェクト名を指定することで行っている（Ｓ２２３）が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
【００７０】
オブジェクト間の通信を司るミドルウェア１２０内のオブジェクト構成データ管理部１２１は、ｂｉｎｄインタフェース中のオブジェクト名を基に、リポジトリ１２２から対応するオブジェクトのＩＯＲを検索し（Ｓ２２４）、オブジェクト名からＩＯＲへあて先情報を付け替えてリクエストを送信する（Ｓ２２５）。
【００７１】
次に、接続指示のリクエストを受けた接続先の外部オブジェクトａは、接続処理を実施し（Ｓ２２６）、処理完了後に接続元オブジェクトｂ’に対して応答を返す（Ｓ２２７）。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部１２１を介して行われる。
【００７２】
次に、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、コネクション管理部１１２に対して、各オブジェクト間のコネクションが確立したことを通知する（Ｓ２２８）。このコネクション確立の通知により、コネクション管理部１１２は、コネクションにＩＤをつけてリポジトリ１２２に登録し（Ｓ２２９）、その後の管理を行う。このＩＤは、図９のコネクションＩＤに相当する。
【００７３】
ステップＳ２０３のＩＯＲ登録、及びステップＳ２２９のコネクションＩＤ登録により、図９で示したリポジトリ１２２におけるオブジェクトｂ’と外部オブジェクトａとの関係に相当するテーブル情報が格納されることとなる。コネクションＩＤ登録後、オブジェクト間の外部および内部のすべてのコネクションが確立され、通信可能な状態となる（Ｓ２３０）。
【００７４】
実施の形態２によれば、差分解析部の働きにより、運用中の構成情報と新規の構成情報とを比較し、その差分を解析することで更新対象のオブジェクトとそのオブジェクトに関連するオブジェクトを特定し、影響範囲内のオブジェクトのみを部分入れ替えすることができる。これにより、入力部から全てのオブジェクトをダウンロードする必要がなく、更新に必要なオブジェクト及び新たなソフトウェア機能に対応する構成管理プロファイルのみをダウンロードすればよく、ダウンロード時間あるいはオブジェクトの再構築時間などにかかるオーバヘッドを短縮することができる。
【００７５】
さらに、構成管理プロファイルにて構成を自由に定義できるため、固定構成だけでなく任意構成によるオブジェクトの入れ替えが可能となる。
【００７６】
実施の形態３．
実施の形態２では、差分解析部１１４において、運用中の構成情報と新規の構成情報との比較に基づいて差分を解析することで、更新対象のオブジェクトとそのオブジェクトに関連するオブジェクトを特定し、影響範囲内のオブジェクトのみを部分更新する場合について説明した。これに対して、実施の形態３は、インタフェース定義情報１３３も活用して部分更新を行うものである。実施の形態３の構成は、実施の形態１における図１の構成と同一である。実施の形態１では具体的な説明をしなかったインタフェース定義情報１３３を中心に、以下詳細に説明する。
【００７７】
実施の形態３においては、オブジェクトが提供しているインタフェース定義情報１３３がパッケージ１３０にてＩＤＬファイルとして提供されていることを前提としている。ＩＤＬファイルは、構成管理プロファイルと同様にして、記憶部に記憶されるとともにリポジトリ１２２に構成情報の一部として書き込まれ、構成情報として管理できる。
【００７８】
この場合に、差分解析部１１４は、リポジトリ１２２に登録されたオブジェクトの接続関係だけではなく、ＩＤＬファイルに基づいて、運用中の構成情報と新規の構成情報との差分を解析することができる。この解析により、オブジェクト名あるいは接続関係の情報からは同一と判断されるオブジェクトであっても、ＩＤＬが異なる場合には更新対象のオブジェクト及びそのオブジェクトに関連するオブジェクトを特定し、影響範囲内のオブジェクトのみを部分更新することができる。
【００７９】
このようなインタフェース定義情報１３３を活用した部分更新の動作について、図１１〜図１５に基づいて説明する。図１１は、本発明の実施の形態３におけるオブジェクト構成を示した図である。現在運用中のオブジェクトは、ａ、ｂ、ｃの３つである。新たにダウンロードされたオブジェクトはｂ’、ｃ’の２つである。
【００８０】
ここで、オブジェクトｃ’は、オブジェクト名からオブジェクトｃを更新するものであることが識別できるものと仮定する。また、オブジェクトｂ’は、オブジェクトｃ’の提供するインタフェースがオブジェクトｃの提供するインタフェースから変更されたことに伴って更新されるオブジェクトであり、オブジェクト名の比較からだけでは識別できないものと仮定する。このような場合には、さらにＩＤＬファイルの比較を行うことにより、オブジェクトｂをオブジェクトｂ’に更新すべきことを判断することとなる。
【００８１】
図１２は、本発明の実施の形態３における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。５種類のデータからなるデータ構成及びその内容は、実施の形態１における図３及び実施の形態２における図７と同一である。
【００８２】
図１３は、本発明の実施の形態３におけるリポジトリ１２２内の運用中のオブジェクトのデータテーブル構造を示す図である。また、図１４は、本発明の実施の形態３におけるリポジトリ１２２内の新規オブジェクトのデータテーブル構造を示す図である。図１３及び図１４における７種類のデータからなるデータ構成は、実施の形態１における図４及び実施の形態２における図８、図９と同一である。
【００８３】
さらに、図１５は、本発明の実施の形態３における部分更新時の動作シーケンス図である。図１５に示したステップにしたがって動作を説明する。
【００８４】
実施の形態１、２と同様に、新たなオブジェクトや構成管理ファイル１３１、インタフェース定義情報１３３が入力部１５０からダウンロードされると、オブジェクト管理部１１０内の構成管理部１１１は、パッケージ１３０内の構成管理プロファイル１３１のデータを読み込む（Ｓ３００）。次に、構成管理部１１１は、読み込んだデータをミドルウェア１２０にあるオブジェクト構成データ管理部１２１のリポジトリ１２２に登録する（Ｓ３０１）。これにより、図１４のＩＯＲとコネクションＩＤを除き、図１２の構成管理プロファイル１３１にて定義された情報がリポジトリ１２２に反映されたこととなる。
【００８５】
次に、起動を開始し、初期化完了した新規オブジェクトは、自オブジェクトの参照先情報であるオブジェクト・リファレンス（ＩＯＲ）を構成管理部１１１に通知する（Ｓ３０２）。このとき新規以外のオブジェクトはすでに通知済みのため再度の通知は行わない。具体的には、オブジェクトｂ’とオブジェクトｃ’のＩＯＲ通知がなされる。
【００８６】
通知を受けた構成管理部１１１は、リポジトリ１２２に対して、通知されたＩＯＲを登録する（Ｓ３０３）。図１４のＩＯＲが、このデータに相当する。
【００８７】
次に、構成管理部１１１は、差分解析部１１４に対して、運用中のソフトウェア機能に対応する構成情報と新規のソフトウェア機能に対応する構成情報との差分を解析するための解析要求を通知する（Ｓ３０４）。そして、差分解析部１１４は、新規に登録したリポジトリ１２２の構成情報（図１４に相当）と運用中の構成情報（図１３に相当）とを比較し、変更箇所の解析を行う（Ｓ３０５）。この解析により、差分解析部１１４は、オブジェクトｃ’がオブジェクトｃを更新したものであることを判断できる。
【００８８】
さらに、差分解析部１１４は、インタフェース定義情報（ＩＤＬ）１３３についても調査し、各オブジェクトが提供しているインタフェース情報について変更箇所を解析する。ＩＤＬに変更箇所が見つからなければ、差分解析部１１４は、ＩＤＬを除いたデータから差分解析を行い、更新するオブジェクトの影響範囲を特定する。このＩＤＬを除いたデータからの差分解析は、実施の形態２と同様の処理である。
【００８９】
一方、ＩＤＬに変更箇所が見つかった場合、すなわちインタフェースとして関数の数や引数などに変更がある場合には、差分解析部１１４は、そのインタフェースを利用するオブジェクトを、インタフェース定義情報１３３および構成管理プロファイル１３１またはリポジトリ１２２より解析する。
【００９０】
差分解析部１１４は、ＩＤＬ解析の結果、オブジェクトｃ’の提供するインタフェースがオブジェクトｃの提供するインタフェースから変更されていることを判断できる。さらに、差分解析部１１４は、オブジェクト構成データ管理部１２１の運用中のリポジトリ１２２（図１３）及びＩＤＬから、更新前のオブジェクトｃと接続関係があるオブジェクトとしてオブジェクトｂがあることがわかる（Ｓ３０６）。
【００９１】
したがって、差分解析部１１４は、このような構成情報の解析及びＩＤＬ解析（Ｓ３０５及びＳ３０６に相当）により、オブジェクトｃからオブジェクトｃ’への更新に伴うインタフェース変更により、オブジェクトｂもオブジェクトｂ’に更新する必要があることがわかる。さらに、オブジェクトａはオブジェクトｃとの接続関係がないことから更新の必要がないこともわかる。そこで、以降のステップにおいては、オブジェクトｂ、ｃをオブジェクトｂ’、ｃ’に更新する動作を行うこととなる。
【００９２】
差分解析部１１４は、差分解析が完了すると、更新するオブジェクトの影響範囲を知らせるためのオブジェクト更新要求をコネクション管理部１１２に対して通知する（Ｓ３０７）。コネクション管理部１１２は、新規の構成情報に基づいたコネクション確立処理を開始する。コネクション管理部１１２は、更新するオブジェクトの影響範囲にあるオブジェクトのＩＯＲを検索し（Ｓ３０８）、現在運用中のオブジェクトに対して一旦コネクションの切断をするための切断要求を通知する（Ｓ３０９）。
【００９３】
コネクション管理部１１２は、切断要求に対応するコネクションＩＤを削除し（Ｓ３１０）、新たにコネクションの接続要求を行う（Ｓ３１２）。ここでの接続要求として、コネクション管理部１１２は、変更対象となるオブジェクトｂ’とオブジェクトｃ’に対して互いのオブジェクト間の接続要求を行う。
【００９４】
一方、ステップＳ３０９で切断要求を受けたオブジェクトｂは、コネクションを切断し、通信処理を停止する（Ｓ３１１）。
【００９５】
また、ステップＳ３１２で接続要求を受けた接続元のオブジェクトｂ’とオブジェクトｃ’は、接続先のオブジェクトに対して接続指示を行う。図１５の例では、ｂｉｎｄインタフェースにより、相手先のオブジェクト名を指定することで行っている（Ｓ３１３）が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
【００９６】
オブジェクト間の通信を司るミドルウェア１２０内のオブジェクト構成データ管理部１２１は、ｂｉｎｄインタフェース中のオブジェクト名を基に、リポジトリ１２２から対応するオブジェクトのＩＯＲを検索し（Ｓ３１４）、オブジェクト名からＩＯＲへあて先情報を付け替えて接続先のオブジェクトｃ’とオブジェクトｂ’に対してリクエストを送信する（Ｓ３１５）。
【００９７】
次に、接続指示のリクエストを受けた接続先であるオブジェクトｃ’とオブジェクトｂ’は、おのおの接続処理を実施し（Ｓ３１６）、処理完了後に接続元のオブジェクトｂ’とオブジェクトｃ’に対して応答を返す（Ｓ３１７）。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部１２１を介して行われる。
【００９８】
次に、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、コネクション管理部１１２に対して、オブジェクト間のコネクションが確立したことを通知する（Ｓ３１８）。このコネクション確立の通知により、コネクション管理部１１２は、コネクションにＩＤをつけてリポジトリ１２２に登録し（Ｓ３１９）、その後の管理を行う。このＩＤは、図１４のコネクションＩＤに相当する。
【００９９】
ステップＳ３０３のＩＯＲ登録、及びステップＳ３１９のコネクションＩＤ登録により、図１４で示したリポジトリ１２２におけるオブジェクトｂ’とオブジェクトｃ’との関係に相当するテーブル情報が格納されることとなる。コネクションＩＤ登録後、オブジェクトｂ’−ｃ’間の内部コネクションが確立され、通信可能な状態となる（Ｓ３２０）。
【０１００】
コネクション管理部１１２は、パッケージ内部のオブジェクト間の接続が完了したのに引き続き、外部オブジェクトとの接続関係がある場合には、外部コネクションの確立を行う。通常、外部コネクションは、内部コネクションの後に確立する。しかし、リポジトリ１２２の接続順序において、外部が優先して指定されている場合にはリポジトリ１２２の接続順序に従う。
【０１０１】
構成管理部１１１は、外部コネクションの構築が必要な場合には、コネクション管理部１１２に対してコネクション確立のリクエストとして接続要求を通知する（Ｓ３２１）。通知を受けたコネクション管理部１１２は、構成情報をリポジトリ１２２から読み取り、対象となるオブジェクトのＩＯＲを検索する（Ｓ３２２）。コネクション管理部１１２は、構成情報とＩＯＲを利用してオブジェクトを制御することとなる。
【０１０２】
次に、コネクション管理部１１２は、オブジェクト間のコネクションを確立するため、管理対象のオブジェクトに対してコネクション確立のための接続要求を行う（Ｓ３２３）。この場合は、外部オブジェクトａが既存のオブジェクトのため、コネクション管理部１１２は、外部オブジェクトａに対して再接続要求を行うこととなる。これにより、再接続要求を受けた外部オブジェクトａは、以前切断したオブジェクトｂに対してのみの接続処理を行えばよい。
【０１０３】
次に、接続要求を受けた外部オブジェクトａは、接続先のオブジェクトｂに対して接続指示を行う。図１５の例では、ｂｉｎｄインタフェースにより、相手先のオブジェクト名を指定することで行っている（Ｓ３２４）が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
【０１０４】
オブジェクト間の通信を司るミドルウェア１２０内のオブジェクト構成データ管理部１２１は、ｂｉｎｄインタフェース中のオブジェクト名を基に、リポジトリ１２２から対応するオブジェクトのＩＯＲを検索し（Ｓ３２５）、オブジェクト名からＩＯＲへあて先情報を付け替えてリクエストを送信する（Ｓ３２６）。
【０１０５】
ここで外部オブジェクトａは、以前のコネクションと同じもの（オブジェクトｂ）を引数として用いている。ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、オブジェクト名がオブジェクトｂからオブジェクトｂ’に変更されていることを識別できるため、オブジェクトｂ’に対応するＩＯＲを検索することでオブジェクトｂ’のＩＯＲに付け替えを行っている。
【０１０６】
すなわち、本処理では、ミドルウェア１２０内のオブジェクト構成データ管理部１２１の働きにより、既存オブジェクト（この場合は外部オブジェクトａ）は、新オブジェクト（この場合はオブジェクトｂ’）の名前を知らなくてもよく、以前にコネクション構築したときと同様の手段で新オブジェクトを意識せずに、自動的に新規オブジェクトへの切り替えができるようになる。
【０１０７】
次に、接続指示のリクエストを受けた接続先オブジェクトｂ’は、接続処理を実施し（Ｓ３２７）、処理完了後に接続元の外部オブジェクトａに対して応答を返す（Ｓ３２８）。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部１２１を介して行われる。
【０１０８】
次に、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、コネクション管理部１１２に対して、オブジェクトａ−ｂ’間のコネクションが確立したことを通知する（Ｓ３２９）。このコネクション確立の通知により、コネクション管理部１１２は、コネクションにＩＤをつけてリポジトリ１２２に登録し（Ｓ３３０）、その後の管理を行う。このＩＤは、図１４のコネクションＩＤに相当する。
【０１０９】
ステップＳ３０３のＩＯＲ登録、及びステップＳ３３０のコネクションＩＤ登録により、図１４で示したリポジトリ１２２におけるオブジェクトｂ’と外部オブジェクトａとの関係に相当するテーブル情報が格納されることとなる。コネクションＩＤ登録後、オブジェクト間の外部および内部のすべてのコネクションが確立され、通信可能な状態となる（Ｓ３３１）。
【０１１０】
実施の形態３によれば、実施の形態２で行ったオブジェクト構成の比較に加えて、さらにＩＤＬファイルの比較に基づいて差分を解析することができる。これにより、ＩＤＬの更新によっても、更新対象のオブジェクトとそのオブジェクトに関連するオブジェクトを特定し、影響範囲内のオブジェクトのみを部分入れ替えすることができる。したがって、入力部から全てのオブジェクトをダウンロードする必要がなく、更新に必要なオブジェクト、新たなソフトウェア機能に対応する構成管理プロファイル、及びＩＤＬファイルをダウンロードすればよく、ダウンロード時間あるいはオブジェクトの再構築時間などにかかるオーバヘッドを短縮することができる。
【０１１１】
さらに、ＩＯＲを管理するミドルウェア内のオブジェクト構成データ管理部の働きにより、オブジェクト構成データ管理部にてオブジェクト名から対応するＩＯＲへの付け替え処理を行うことができ、オブジェクトは接続先オブジェクトのＩＯＲを知ることなく、接続先オブジェクト名のみによってコネクションを確立することができる。さらに、既存オブジェクトは、新オブジェクトの名前を知らなくてもよく、以前のコネクションを構築するのと同様の手段、すなわち以前の接続先オブジェクト名を指定することによって、新オブジェクト名を意識せずに、自動的に新規オブジェクトへの切り替えを行うことが可能となる。
【０１１２】
この結果、ＣＯＲＢＡ標準のシステムにおいて一般的に利用されているネーミング・サービスによるＩＯＲの取得処理を省くことができ、複雑な検索処理を利用する必要が無いため、オブジェクトの処理負荷を下げることが可能となる。また、オブジェクトは相手先の名前さえ認識していれば、相手先の場所はどこにあっても意識せずにコネクションの確立が行える。
【０１１３】
さらに、オブジェクト自身によるＩＯＲ取得処理などが削減できるため、インタフェース削減の結果、開発の独立性が高められ、オブジェクト毎に別々の開発者、あるいは異なる会社間どの開発なども可能となり、開発効率を向上することができる。
【０１１４】
実施の形態４．
実施の形態４は、構成管理プロファイル１３１に接続順序があらかじめ設定されている場合において、ダウンロードされたオブジェクトの接続順序関係を考慮してオブジェクトのコネクション確立を行うものである。実施の形態４の構成は、実施の形態１における図１の構成と同一である。図１６〜１９に基づいて以下に説明する。
【０１１５】
図１６は、本発明の実施の形態４におけるオブジェクト構成を示した図である。図１６のパッケージ１３０は、実施の形態１における図２と同じように、オブジェクトａ及びオブジェクトｂの２つで構成されている。図２と図１６との異なる点は、接続順序が逆になっていることである。
【０１１６】
図１７は、本発明の実施の形態４における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。５種類のデータからなるデータ構成及びその内容は、実施の形態１における図３と同一である。しかしながら、図１７の接続順序は、図３の接続順序と逆になって定義されている。
【０１１７】
図１８は、本発明の実施の形態４におけるリポジトリ１２２内のデータテーブル構造を示す図である。図１８における７種類のデータからなるデータ構成は、実施の形態１における図４と同一である。しかしながら、図１８の接続順序及びコネクションＩＤは、図３の接続順序及びコネクションＩＤと逆になっている。
【０１１８】
さらに、図１９は、本発明の実施の形態４における初期起動時の動作シーケンス図である。図１９に示したステップにしたがって動作を説明する。
【０１１９】
図１９におけるステップＳ４００からＳ４０４までの処理は、実施の形態１の図５におけるステップＳ１００からＳ１０４までの処理と同様であるため説明を省略し、ステップＳ４０５以降を詳細に説明する。
【０１２０】
通知を受けたコネクション管理部１１２は、構成情報をリポジトリ１２２から読み取り、対象となるオブジェクトのＩＯＲを検索する（Ｓ４０５）。コネクション管理部１１２は、構成情報とＩＯＲを利用してオブジェクトを制御することとなる。
【０１２１】
このとき、図１８に示すような接続順序がリポジトリ１２２内のデータテーブル構造として定義されているため、コネクション管理部１１２は、この順序に従った接続の制御を行うこととなる。すなわち、コネクション管理部１１２は、オブジェクト間のコネクションを確立するため、管理対象のそれぞれの接続元オブジェクトに対して、オブジェクトｂ、オブジェクトａの順にコネクション確立のための接続要求を行う（Ｓ４０６）。
【０１２２】
次に、接続要求を受けたパッケージ１３０内のそれぞれの接続元オブジェクトは、接続先のオブジェクトに対して接続指示を行う。図１９の例では、ｂｉｎｄインタフェースにより、相手先のオブジェクト名を指定することで行っている（Ｓ４０７）が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
【０１２３】
オブジェクト間の通信を司るミドルウェア１２０内のオブジェクト構成データ管理部１２１は、ｂｉｎｄインタフェース中のオブジェクト名を基に、リポジトリ１２２から対応するオブジェクトのＩＯＲを検索し（Ｓ４０８）、オブジェクト名からＩＯＲへあて先情報を付け替えてリクエストを送信する（Ｓ４０９）。
【０１２４】
ここで、仮に接続元オブジェクトａからの接続指示が先にミドルウェア１２０に届いたとしても、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、リポジトリ１２２に定義されている順序にしたがって、接続先オブジェクトに対するリクエストを処理する。したがって、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、各オブジェクトからの接続指示の順番に依存せずに、接続順序に従った接続処理を実行することができる。
【０１２５】
次に、接続指示のリクエストを受けた各接続先オブジェクトは、おのおの接続処理を実施し（Ｓ４１０）、処理完了後に接続元オブジェクトに対して応答を返す（Ｓ４１１）。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部１２１を介して行われる。また、応答の際にも、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、ステップＳ４０８と同様にリポジトリ１２２に定義されている接続順序にしたがってリクエストを処理するため、順序が逆転することはない。
【０１２６】
次に、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、コネクション管理部１１２に対して、各オブジェクト間のコネクションが確立したことを通知する（Ｓ４１２）。このコネクション確立の通知により、コネクション管理部１１２は、コネクションにＩＤをつけてリポジトリ１２２に登録し（Ｓ４１３）、その後の管理を行う。このＩＤは、図１８のコネクションＩＤに相当する。
【０１２７】
ステップＳ４０３のＩＯＲ登録、及びステップＳ４１３のコネクションＩＤ登録により、図１８で示したリポジトリ１２２におけるすべてのテーブル情報が格納されることとなる。コネクションＩＤ登録後、オブジェクト間のコネクションが確立され、通信可能な状態となる（Ｓ４１４）。
【０１２８】
実施の形態４によれば、構成管理部及びコネクション管理部が、更新対象のオブジェクトを一元的に管理しているため、オブジェクトの接続に順序関係があるようなコネクションの場合においても対応でき、オブジェクトがどのような順序でダウンロードされてもコネクションを確立することができる。
【０１２９】
さらに、この接続順序は、コネクションの種別毎に定義できる。例えば、外部オブジェクト、パッケージ内部のオブジェクト、共有のオブジェクトなど様々な種別のコネクション毎に接続順序を設定できる。これにより、オブジェクトの多様な構成に適応でき、適用範囲の広い機能更新方式によるソフトウェア機能更新装置が実現できる。
【０１３０】
実施の形態５．
実施の形態４では、構成管理プロファイル１３１に接続順序が記述されている場合において、その接続順序に従ってコネクション確立を行う場合について説明した。これに対して、実施の形態５は、構成管理プロファイル１３１の情報すべてに従うのではなく、接続順序などの一部の情報をスケジュール管理部１１３からのスケジュールに基づいてオブジェクトのコネクションを確立するものである。実施の形態５の構成は、実施の形態１における図１の構成と同一である。
【０１３１】
図２０は、本発明の実施の形態５における初期起動時の動作シーケンス図である。図２０に示したステップにしたがって動作を説明する。
【０１３２】
図２０におけるステップＳ５００からＳ５０３までの処理は、実施の形態４の図１９におけるステップＳ４００からＳ４０３までの処理と同様であるため説明を省略し、ステップＳ５０４以降を詳細に説明する。
【０１３３】
スケジュール管理部１１３は、入力部１５０から接続のためのタイミング等の接続指示があるか否かを確認する（Ｓ５０４）。接続指示があった場合には、スケジュール管理部１１３は、指示に基づいた接続順序をリポジトリ１２２に登録し、構成管理部１１１に接続開始を指示する（Ｓ５０５）。ただし、コネクション確立の開始ポイント（時間）の指定が必要な場合は、入力部１５０からの指示があるまで構成管理部１１１への指示は行わない。
【０１３４】
図２０におけるステップＳ５０６からＳ５１６までの処理は、実施の形態４の図１９におけるステップＳ４０４からＳ４１４までの処理と同様であるため説明を省略する。このようにして、スケジュール管理部１１３の指示に基づいたコネクションが確立できる。
【０１３５】
実施の形態５によれば、スケジュール管理部は、入力部からの指示に基づいてオブジェクトの確立のタイミングあるいは接続順序などの指示を管理し、構成管理部に指示することが可能となる。これにより、構成管理プロファイルによらずに、任意のタイミングあるいは任意の接続順序でコネクションを確立し、オブジェクトの構築を自由に行える機能更新方式によるソフトウェア機能更新装置が実現できる。
【０１３６】
実施の形態６．
実施の形態６では、オブジェクト更新後の運用中に、コネクションの障害が発生した際の復旧機能を備えたソフトウェア機能更新装置について説明する。実施の形態６の構成は、実施の形態１における図１の構成と同一である。
【０１３７】
実施の形態６では、新規にダウンロードした新パッケージ１３０に更新し、オブジェクトの接続関係を変更して運用した後に、新パッケージ内のオブジェクトまたはオブジェクト間のコネクションに障害が発生した場合を想定している。この場合には、運用実績のある過去の構成に基づいて、復旧可能なオブジェクトのコネクション確立を行うことができ、その動作について図２１〜図２３に基づいて説明する。
【０１３８】
図２１は、本発明の実施の形態６におけるパッケージ１３０内のオブジェクト構成を示した図である。図２１は、運用するオブジェクトをａ、ｂ、ｃからａ、ｂ’、ｃ’に更新した後に、オブジェクトｂ’−ｃ’間で障害が発生したことにより、正常な運用を行うためにオブジェクトをａ、ｂ、ｃに復旧する場合を示している。なお、以下の説明においては、オブジェクトｂ、ｃを含むパッケージをパッケージ１、オブジェクトｂ’、ｃ’を含むパッケージをパッケージ２、そしてオブジェクトａを含むパッケージをパッケージ３と呼ぶこととする。
【０１３９】
図２２は、本発明の実施の形態６におけるリポジトリ１２２内の運用中のオブジェクトのデータテーブル構造を示す図である。図２２における７種類のデータからなるデータ構成は、実施の形態１における図４と同一である。図２２には、パッケージ１からパッケージ３までの情報が設定されている。
【０１４０】
さらに、図２３は、本発明の実施の形態６における部分更新時の動作シーケンス図である。図２３に示したステップにしたがって動作を説明する。
【０１４１】
パッケージ２とパッケージ３のコネクション確立後に、パッケージ２を構成するオブジェクトまたはコネクションに障害が発生した場合に、構成管理部１１１は、リポジトリ１２２を検索することにより、運用実績のある過去のパッケージにおけるオブジェクトの構成情報が登録されていることを確認する（Ｓ６００）。なお、構成管理部１１１は、差分解析部１１４の解析結果に基づいて更新処理を行った際の更新履歴を管理することによっても、運用実績のある過去の構成情報を割り出すことができる。
【０１４２】
リポジトリ１２２には、図２２で示したように、更新後のパッケージ２、３の情報とともに、更新前のパッケージ１の情報も登録されていると仮定する。この場合には、運用中にパッケージ２で障害が発生した際に、パッケージ２を元のパッケージ１に復旧することが考えられる。
【０１４３】
構成管理部１１１は、パッケージ１の切り替えをコネクション管理部１１２にリクエストする（Ｓ６０１）。コネクション管理部１１２は、更新するオブジェクトの影響範囲にあるオブジェクトのＩＯＲを検索し（Ｓ６０２）、現在運用中のオブジェクトに対して一旦コネクションの切断をするための切断要求を通知する（Ｓ６０３）。
【０１４４】
コネクション管理部１１２は、切断要求に対応するコネクションＩＤを削除し（Ｓ６０４）、オブジェクト間のコネクションを確立するため、管理対象のオブジェクトに対してコネクション確立のための再接続要求を行う（Ｓ６０６）。この場合は、オブジェクトａが既存のオブジェクトのため、コネクション管理部１１２は、接続元の外部オブジェクトａに対して再接続要求を行うこととなる。
【０１４５】
一方、コネクション切断要求を受けたオブジェクトはコネクションを切断し、通信処理を停止する（Ｓ６０５）。
【０１４６】
次に、接続要求を受けた接続元の外部オブジェクトａは、接続先オブジェクトｂに対して接続指示を行う。図２３の例では、ｂｉｎｄインタフェースにより、相手先のオブジェクト名を指定することで行っている（Ｓ６０７）が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
【０１４７】
オブジェクト間の通信を司るミドルウェア１２０内のオブジェクト構成データ管理部１２１は、ｂｉｎｄインタフェース中のオブジェクト名を基に、リポジトリ１２２から対応するオブジェクトのＩＯＲを検索し（Ｓ６０８）、オブジェクト名からＩＯＲへあて先情報を付け替えてリクエストを送信する（Ｓ６０９）。
【０１４８】
ここでオブジェクトａは、以前のコネクションと同じもの（オブジェクト名ｂ）を引数として用いている。ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、オブジェクト名がオブジェクトｂ’からオブジェクトｂに変更されていることを識別できるため、オブジェクトｂに対応するＩＯＲを検索することでオブジェクトｂのＩＯＲに付け替えを行っている。
【０１４９】
すなわち、本処理では、ミドルウェア１２０内のオブジェクト構成データ管理部１２１の働きにより、既存オブジェクト（この場合は外部オブジェクトａ）は、新オブジェクト（この場合はオブジェクトｂ）の名前を知らなくてもよく、以前にコネクション構築したときと同様の手段で新オブジェクトを意識せずに、自動的に新規オブジェクトへの切り替えができるようになる。
【０１５０】
次に、接続指示のリクエストを受けた接続先オブジェクトｂは、接続処理を実施し（Ｓ６１０）、処理完了後に接続元の外部オブジェクトａに対して応答を返す（Ｓ６１１）。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部１２１を介して行われる。
【０１５１】
次に、ミドルウェア１２０内のオブジェクト構成データ管理部１２１は、コネクション管理部１１２に対して、オブジェクトａ−ｂ間のコネクションが確立したことを通知する（Ｓ６１２）。このコネクション確立の通知により、コネクション管理部１１２は、コネクションにＩＤをつけてリポジトリ１２２に登録し（Ｓ６１３）、その後の管理を行う。このＩＤは、図２２のコネクションＩＤに相当する。
【０１５２】
コネクションＩＤ登録後、オブジェクト間の外部および内部のすべてのコネクションが確立され、通信可能な状態となる（Ｓ６１４）。これにより、パッケージ２からパッケージ１への切り替え（復旧）が完了する。
【０１５３】
実施の形態６によれば、構成管理部において複数のパッケージ毎のオブジェクトの構成を管理することにより、オブジェクト構成更新後にソフトウェアに不具合が見つかった場合においても、構成管理部の指示によりコネクション管理部がパッケージを切り替えて、元の構成に戻すことができる。これにより、障害が発生した場合におけるソフトウェアの機能復旧が実現できる。
【０１５４】
なお、上述においては、パッケージが３つの構成での切り替え処理を説明したが、これに限定されない。システムのリソース次第では、４つ以上のパッケージを管理してもよく、運用実績のある過去の構成に自由に戻すことができ、さらに安全なソフトウェアの機能更新が可能となる。
【０１５５】
また、過去の実績だけでなく、別々の機能として管理することにより、一旦ダウンロードしたパッケージであれば、任意のタイミングで何度でも自由にソフトウェア機能更新装置の機能を切り替えて使用することができ、再ダウンロードにかかるオーバヘッドを減らすことが可能となる。
【０１５６】
実施の形態７．
実施の形態７では、構成管理プロファイル１３１のオブジェクト構成を変更することにより管理対象パッケージを再構築する動作について説明する。実施の形態７の構成は、実施の形態１における図１の構成と同一である。
【０１５７】
オブジェクト追加の動作は、追加した新規オブジェクトの初期化完了後に自オブジェクトのＩＯＲをオブジェクト管理部１１０の構成管理部１１１に通知することで実現できる。それ以降の動作は、初期起動時の動作である実施の形態１と同様である。
【０１５８】
また、オブジェクト削除の動作は、削除対象のオブジェクトとオブジェクト管理部１１０の差分解析部１１４にて特定した影響範囲に対してコネクションを削除し、リポジトリ１２２に登録された構成情報に基づいてオブジェクト間のコネクションを新たに確立し直すことで実現できる。これは、一旦コネクションを削除して、再構築する差分入れ替えの動作である実施の形態２あるいは実施の形態３と同様である。
【０１５９】
実施の形態７によれば、構成管理プロファイルにてオブジェクトの構成を自由に定義できるため、固定構成だけでなく任意構成によるオブジェクトの接続関係の構築が行える。さらに、任意の構成変更が可能になるため、オブジェクトの追加及び削除が所望のタイミングで行え、ソフトウェア機能更新装置の構成変更の自由度が高くなり、機能向上が実現できる。
【図面の簡単な説明】
【０１６０】
【図１】本発明の実施の形態１における無線機器の機能更新を実現するための機能構成図である。
【図２】本発明の実施の形態１におけるオブジェクト構成を示した図である。
【図３】本発明の実施の形態１における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。
【図４】本発明の実施の形態１におけるリポジトリ内のデータテーブル構造を示す図である。
【図５】本発明の実施の形態１における初期起動時の動作シーケンス図である。
【図６】本発明の実施の形態２におけるオブジェクト構成を示した図である。
【図７】本発明の実施の形態２における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。
【図８】本発明の実施の形態２におけるリポジトリ内の運用中のオブジェクトのデータテーブル構造を示す図である。
【図９】本発明の実施の形態２におけるリポジトリ内の新規オブジェクトのデータテーブル構造を示す図である。
【図１０】本発明の実施の形態２における部分更新時の動作シーケンス図である。
【図１１】本発明の実施の形態３におけるオブジェクト構成を示した図である。
【図１２】本発明の実施の形態３における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。
【図１３】本発明の実施の形態３におけるリポジトリ内の運用中のオブジェクトのデータテーブル構造を示す図である。
【図１４】本発明の実施の形態３におけるリポジトリ内の新規オブジェクトのデータテーブル構造を示す図である。
【図１５】本発明の実施の形態３における部分更新時の動作シーケンス図である。
【図１６】本発明の実施の形態４におけるオブジェクト構成を示した図である。
【図１７】本発明の実施の形態４における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。
【図１８】本発明の実施の形態４におけるリポジトリ内のデータテーブル構造を示す図である。
【図１９】本発明の実施の形態４における初期起動時の動作シーケンス図である。
【図２０】本発明の実施の形態５における初期起動時の動作シーケンス図である。
【図２１】本発明の実施の形態６におけるオブジェクト構成を示した図である。
【図２２】本発明の実施の形態６におけるリポジトリ内の運用中のオブジェクトのデータテーブル構造を示す図である。
【図２３】本発明の実施の形態６における部分更新時の動作シーケンス図である。
【符号の説明】
【０１６１】
１１１構成管理部、１１２  コネクション管理部、１１３  スケジュール管理部、１１４  差分解析部、  １２１  オブジェクト構成データ管理部、１２２  リポジトリ群（データベース）、１３０  パッケージ、１３１  構成管理プロファイル、１３２  管理対象オブジェクト群（オブジェクト群）、１３３  インタフェース定義情報。
【図１】
2005250892.tif 000003
【図２】
2005250892.tif 000004
【図３】
2005250892.tif 000005
【図４】
2005250892.tif 000006
【図５】
2005250892.tif 000007
【図６】
2005250892.tif 000008
【図７】
2005250892.tif 000009
【図８】
2005250892.tif 000010
【図９】
2005250892.tif 000011
【図１０】
2005250892.tif 000012
【図１１】
2005250892.tif 000013
【図１２】
2005250892.tif 000014
【図１３】
2005250892.tif 000015
【図１４】
2005250892.tif 000016
【図１５】
2005250892.tif 000017
【図１６】
2005250892.tif 000018
【図１７】
2005250892.tif 000019
【図１８】
2005250892.tif 000020
【図１９】
2005250892.tif 000021
【図２０】
2005250892.tif 000022
【図２１】
2005250892.tif 000023
【図２２】
2005250892.tif 000024
【図２３】
2005250892.tif 000025