JP4541727B2 - ソフトウェア機能更新装置 - Google Patents

ソフトウェア機能更新装置 Download PDF

Info

Publication number
JP4541727B2
JP4541727B2 JP2004061000A JP2004061000A JP4541727B2 JP 4541727 B2 JP4541727 B2 JP 4541727B2 JP 2004061000 A JP2004061000 A JP 2004061000A JP 2004061000 A JP2004061000 A JP 2004061000A JP 4541727 B2 JP4541727 B2 JP 4541727B2
Authority
JP
Japan
Prior art keywords
connection
management unit
objects
configuration
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004061000A
Other languages
English (en)
Other versions
JP2005250892A (ja
Inventor
雄三 別所
美昭 寺島
勝 長島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004061000A priority Critical patent/JP4541727B2/ja
Publication of JP2005250892A publication Critical patent/JP2005250892A/ja
Application granted granted Critical
Publication of JP4541727B2 publication Critical patent/JP4541727B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、ソフトウェアの入れ替えによってソフトウェア機能を変更し、単一の機器を様々なシステムに適用可能とするソフトウェア機能更新装置に関し、特に分散オブジェクト技術における国際標準であるCORBAをベースとした機能更新方式によるソフトウェア機能更新装置に関連する。
無線機におけるソフトウェア入れ替え(機能更新)の方法としては、これまでに様々な取り組みがなされている。一般的に、ダウンロードされたソフトウェアは、端末上のワークメモリあるいはフラッシュROM(Read Only Memory)上のソフトウェア領域へダウンロードされる。そしてダウンロード後に、その領域のソフトウェアの動作検証などを実施して動作に問題がない場合に、現在運用中のソフトウェア領域と新規のソフトウェア領域とを切り替え、ソフトウェア全体を入れ替える方式が多く用いられている(例えば、特許文献1参照)。
また、分散オブジェクト技術における国際標準であるCORBAをベースとした方式では、オブジェクト単位の入れ替えを行っている。更新対象のオブジェクトがダウンロードされた場合は、運用中のオブジェクトは、システムが保有しているバージョン情報を管理するテーブルを参照することにより、自オブジェクトよりも新しいオブジェクト情報が格納されているか否かを判断できる。そして、新しいオブジェクト情報が格納されている場合には、運用中のオブジェクトは、自オブジェクトが更新される対象のオブジェクトであることを把握できる。
そこで、その運用中のオブジェクトは隣接しているオブジェクトからのリクエストをすべて拒否し、処理を停止する。その後の隣接オブジェクトからのリクエストは、新規オブジェクトが受け持つことにより、隣接オブジェクトは相手先の更新を意識せずに、オブジェクトを運用中に入れ替えるという方式が提案されている(例えば、特許文献2)。
特開2003−122574(第1頁、1図) 特開2002−366381(第1頁、1図)
しかしながら、従来技術には以下の問題があった。特許文献1によるソフトウェア全体を入れ替える方式は、端末上のワークメモリあるいはフラッシュROMのようなソフトウェア領域毎にソフトウェアを入れ替えるため、オブジェクトの接続等に関連する処理が不要である。しかし、その反面、パッケージ中のオブジェクトを一括して入れ替えるため、ダウンロードのオーバヘッドが発生する。
また、ワークメモリあるいはフラッシュROMの領域をまたぐような構成を構築することができないため、固定構成として機能更新することしかできないという問題点があった。さらに、ワークメモリあるいはフラッシュROMの領域に関してはソフトウェアで管理しているため、ワークメモリあるいはフラッシュROMのアドレス及びサイズなどの領域管理が必要となり、管理が複雑になるという問題点があった。
また、特許文献2によるオブジェクト自身が更新対象のオブジェクトであることを把握することにより機能更新する方式では、ソフトウェア全体を一括して入れ替えるときの問題は解消される。しかしながら、オブジェクトがそれぞれ更新対象のとき処理を停止し、新規オブジェクトへ処理を引き継ぐこととなるため、オブジェクトを一元的に管理することができず、接続に順序関係がある場合には対応できないという問題があった。
本発明はこのような問題点を解決するためになされたもので、オブジェクト単位での更新を行うとともに、更新対象のオブジェクトを一元的に管理できる機能更新方式を実現するソフトウェア機能更新装置を得ることを目的とする。
本発明に係るソフトウェア機能更新装置は、ソフトウェア機能をオブジェクトの集合として管理し、オブジェクトの集合に含まれる更新対象となるオブジェクトを旧オブジェクトから新規オブジェクトに入れ替えるとともに、更新対象となるオブジェクトに関連するオブジェクト間の相互接続の切り替えを行うことによって種々のソフトウェア機能を実現するソフトウェア機能更新装置であって、オブジェクト間の相互接続関係のデータを有する構成情報を記憶するデータベースと、管理対象となるソフトウェア機能のオブジェクト間の相互接続関係のデータを有する構成管理プロファイルと、管理対象オブジェクトの集合であるオブジェクト群とを含むパッケージデータを記憶する記憶部と、オブジェクトの入れ替え及びオブジェクト間の相互接続の切り替えを必要とする新たなソフトウェア機能について、オブジェクト間の相互接続関係のデータを有する構成管理プロファイルと、新たなソフトウェア機能に必要な新たなオブジェクト群とを含む新たなパッケージデータを設定し、記憶部にダウンロードして記憶させる入力部と、ダウンロードされたタイミングで記憶部から新たなパッケージデータに含まれている構成管理プロファイルを読み取り、データベースに構成情報として登録し、新たなパッケージデータ内のオブジェクト群に含まれている新規オブジェクトがダウンロードされたタイミングで起動した後の初期化完了に伴って、新規オブジェクトから自オブジェクトの参照先情報であるIORの通知を受信し、データベースにすでに登録された構成情報の一部としてIORの情報を新規オブジェクトと関連づけて新たに追加登録した後、オブジェクト間の接続を確立するためのリクエストとして第1接続要求を通知する構成管理部と、第1接続要求に応じて、新規オブジェクトと入れ替えられる旧オブジェクトに関連するオブジェクト間の相互接続を切断した後、データベースに登録されたIORの情報を含む構成情報に基づいて接続関係にある接続元オブジェクトを検出し、管理対象のそれぞれの接続元オブジェクトに対して接続先オブジェクトとの接続を確立するための第2接続要求を出力するコネクション管理部と、第2接続要求に応答した接続元オブジェクトから接続先オブジェクトに対する接続指示を受け取ると、IORの情報を含む構成情報に基づいて接続関係にある接続先オブジェクトを検出し、新たなパッケージデータで規定されたオブジェクト間の相互接続を確立し、新たなパッケージデータに応じたオブジェクトの入れ替え及びオブジェクト間の相互接続の切り替えを完了させるように、接続元オブジェクトと接続先オブジェクトとの間の接続制御を行うオブジェクト構成データ管理部とを備えたものである。

本発明によれば、構成管理プロファイルによってオブジェクト間の接続関係を規定することにより、オブジェクト間のコネクションを確立でき、オブジェクト単位での更新を行うとともに、更新対象のオブジェクトを一元的に管理できる機能更新方式を実現するソフトウェア機能更新装置を得ることができる。
以下、本発明の実施の形態を図面に基づいて説明する。以下の実施の形態において、ソフトウェア機能更新装置は、無線機器として説明するものとする。
実施の形態1.
図1は、本発明の実施の形態1における無線機器の機能更新を実現するための機能構成図である。無線機器100は、ソフトウェアの入れ替えによって機能を変更するものであり、端末局、移動局あるいは基地局がこれに相当する。
無線機器100は、オブジェクト管理部110、ミドルウェア120、パッケージ部130及びOS140を備えている。また、無線機器100は、入力部150と接続することにより、新規に作成したソフトウェアを入力部150からダウンロードすることができる。
ここで、オブジェクト管理部110は、運用するソフトウェア機能に対応してオブジェクト群を管理するものであり、構成管理部111、コネクション管理部112、スケジュール管理部113及び差分解析部114を備えている。
また、ミドルウェア120は、パッケージ内のオブジェクト間の通信をサポートするものであり、データベースに相当するリポジトリ122を有するオブジェクト構成データ管理部121を備えている。
また、パッケージ部130は、入力部150からダウンロードされるソフトウェアパッケージであり、構成管理プロファイル131、管理対象オブジェクト群132及びインタフェース定義情報133を備えている。このようなパッケージは、入力部からダウンロードされることにより、記憶部に記憶される。
さらに、OS140は、無線機器100内のソフトウェアの基盤となるOS(Operating System)である。
次に、オブジェクト管理部110内の個々の機能について説明する。
構成管理部111は、パッケージ130内の構成管理プロファイル131を読み取り、ミドルウェア120内のリポジトリ122へ構成情報として登録する。コネクション管理部112は、リポジトリ122に登録された構成情報に基づいてオブジェクト間の接続を確立するために、接続元オブジェクトに対して接続要求を行い、オブジェクト間の接続を管理する。
スケジュール管理部113は、入力部150からの指示によってオブジェクトの接続に順序関係が指示された場合に、指示された接続順序に基づいたオブジェクトの接続を確立するために、構成管理部111に対して接続順序を通知する管理部である。
さらに、差分解析部114は、オブジェクト更新時に、運用中のソフトウェア機能に対応する構成情報と新規のソフトウェア機能に対応する構成情報とを比較してその差分を解析する解析部である。この差分解析部114を用いた実施の形態については、実施の形態2で詳細に説明する。
次に、ミドルウェア120内の個々の機能について説明する。リポジトリ122は、分散して存在する具体的な構成情報の格納庫であり、構成管理プロファイル131内の構成情報が、構成管理部111によってリポジトリ122内に格納される。オブジェクト構成データ管理部121は、リポジトリ122内に格納された構成情報に基づいてオブジェクト間の接続確立を制御する。
次に、パッケージ130内の個々の機能について説明する。ここで、パッケージとは、アプリケーションのような機能を実現するために必要となるファイルなど関連する機能一式のことである。パッケージは、入力部150からダウンロードされ、無線機器100の記憶部に記憶される。
構成管理プロファイル131は、ソフトウェア機能のオブジェクト間の接続関係がデータ化されている構成管理プロファイルデータである。管理対象オブジェクト群132は、パッケージ130内に含まれているオブジェクトの集合である。
インタフェース定義情報133は、各オブジェクトが提供するインタフェースの情報が記述されたIDL(Interface Definition Language)ファイルとしてのデータであり、IDLファイルは、CORBA標準の記述様式で記載されている。このIDLファイルは、インタフェースの名前やインタフェースによる各オブジェクト間で授受されるデータ等のことであり、具体的には関数やその引数等がこれに相当する。このインタフェース定義情報133を用いた実施の形態については、実施の形態3で詳細に説明する。
上述の機能を備えた無線機器100において、ソフトウェアの入れ替えによる機能更新を行うための具体的な動作について以下に説明する。複数のオブジェクトから構成されている新たなパッケージ130が入力部150からダウンロードされた場合の初期起動時の動作について、図1〜図5に基づいて説明する。
図2は、本発明の実施の形態1におけるオブジェクト構成を示した図である。図2のパッケージ130は、オブジェクトa及びオブジェクトbの2つで構成されている。ここでは、オブジェクトa及びオブジェクトbが互いに関連している場合を示している。また、図2において、(1)、(2)と記載されているものは、接続順序を示しており、詳細は後述する。
また、図3は、本発明の実施の形態1における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。構成管理プロファイル131は、Side、オブジェクト名、接続先オブジェクト名、コネクション種別及び接続順序の5つのデータから構成されている。
Sideは、管理対象であるパッケージの番号であり、ここでは「1」が設定されている。オブジェクト名は、図2に対応して、オブジェクトa及びオブジェクトbの2つのデータが設定されている。接続先オブジェクト名は、図2に対応して、それぞれ同じパッケージ内の相手のオブジェクト名が設定されている。コネクション種別は、接続先のオブジェクトが同じパッケージ内にあるため「internal」のデータが設定されている。さらに、接続順序は、接続元オブジェクトaから接続先オブジェクトbへの接続をした後に、接続元オブジェクトbから接続先オブジェクトaへの接続を行うこととして、その順番がそれぞれ「1」、「2」として設定されている。
また、図4は、本発明の実施の形態1におけるリポジトリ122内のデータテーブル構造を示す図である。図3で示した5つのデータに加えて、IOR及びコネクションIDに関する2つのデータが追加されている。IOR(Interoperable Object Referenceの略)は、自オブジェクトの参照先情報を示すデータであり、そのオブジェクト自身の接続先アドレスに相当する。コネクションIDは、オブジェクト間の接続が確立したことにより書き込まれるデータである。
さらに、図5は、本発明の実施の形態1における初期起動時の動作シーケンス図である。図5に示したステップにしたがって動作を説明する。ここでは、新たなパッケージ130がダウンロードされるとともに、そのソフトウェア機能を起動する場合を示しているが、ソフトウェアの起動タイミングは、ダウンロードのタイミングに依存せずに行うことも可能である。
新たなパッケージ130が入力部150からダウンロードされると、オブジェクト管理部110内の構成管理部111は、パッケージ130内の構成管理プロファイル131のデータを読み込む(S100)。次に、構成管理部111は、読み込んだデータをミドルウェア120にあるオブジェクト構成データ管理部121のリポジトリ122に構成情報として登録する(S101)。これにより、図4のIORとコネクションIDを除き、図3の構成管理プロファイル131にて定義された情報がリポジトリ122に反映されたこととなる。
次に、起動を開始し、初期化完了した新規オブジェクトは、自オブジェクトの参照先情報であるIORを構成管理部111に通知する(S102)。具体的には、オブジェクトaとオブジェクトbのそれぞれからIOR通知がなされる。
通知を受けた構成管理部111は、リポジトリ122に対して、通知されたIORを登録する(S103)。図4のIORが、このデータに相当する。IORが登録されたことにより、各オブジェクトの接続先のアドレスがこのデータにより特定できることとなる。
次に、構成管理部111はパッケージ130のすべてのオブジェクトからIOR通知を受け取ったことにより、オブジェクト間のコネクション確立のための準備が完了したと判断し、コネクション管理部112に対してコネクション確立のリクエストとして接続要求を通知する(S104)。
通知を受けたコネクション管理部112は、構成情報をリポジトリ122から読み取り、対象となるオブジェクトのIORを検索する(S105)。コネクション管理部112は、構成情報とIORを利用してオブジェクトを制御することとなる。そして、コネクション管理部112は、オブジェクト間のコネクションを確立するため、管理対象のそれぞれの接続元オブジェクトに対してコネクション確立のための接続要求を行う(S106)。
次に、接続要求を受けたそれぞれの接続元オブジェクトは、接続先オブジェクトに対して接続指示を行う。図5の例では、bindインタフェースにより、相手先のオブジェクト名を指定することで行っている(S107)が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
オブジェクト間の通信を司るミドルウェア120内のオブジェクト構成データ管理部は、bindインタフェース中のオブジェクト名を基に、リポジトリ122から対応するオブジェクトのIORを検索し(S108)、オブジェクト名からIORへあて先情報を付け替えて、接続先オブジェクトに対してリクエストを送信する(S109)。
次に、接続指示のリクエストを受けた各接続先オブジェクトは、おのおの接続処理を実施し(S110)、処理完了後に接続元オブジェクトに対して応答を返す(S111)。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部121を介して行われる。
次に、ミドルウェア120内のオブジェクト構成データ管理部121は、コネクション管理部112に対して、各オブジェクト間のコネクションが確立したことを通知する(S112)。このコネクション確立の通知により、コネクション管理部112は、コネクションにIDをつけてリポジトリ122に登録し(S113)、その後の管理を行う。このIDは、図4のコネクションIDに相当し、オブジェクト間の接続が確立したことにより書き込まれることとなる。
ステップS103のIOR登録、及びステップS113のコネクションID登録により、図4で示したリポジトリ122におけるすべてのテーブル情報が格納されることとなる。コネクションID登録後、オブジェクト間のコネクションが確立され、通信可能な状態となる(S114)。
実施の形態1によれば、構成管理プロファイルに基づく構成情報を活用することにより、ユーザの指示なしに自動的にオブジェクト間のコネクションを確立して、新たなパッケージに含まれているオブジェクト群を実行するソフトウェア機能更新装置が実現できる。
さらに、構成管理プロファイルにて構成を自由に定義できるため、固定構成だけでなく任意構成によるオブジェクトの接続関係の構築が容易に行える。さらに、ワークメモリあるいはフラッシュROMなどの領域であるアドレス情報を管理する必要がないため、管理を容易にすることができる。
実施の形態2.
実施の形態1では、新たなパッケージ130を入力部150からダウンロードした際における初期起動時の動作について説明した。実施の形態2では、オブジェクトの更新(入れ替え)時における部分更新の動作について説明する。実施の形態2の構成は、実施の形態1における図1の構成と同一である。実施の形態1では具体的な説明をしなかった差分解析部114を中心に、以下詳細に説明する。
オブジェクトa、b、cの3つのオブジェクトで運用されているソフトウェア機能に対して、オブジェクトbをオブジェクトb’に更新する場合について、図6〜図10に基づいて説明する。
図6は、本発明の実施の形態2におけるオブジェクト構成を示した図である。現在運用中のオブジェクトは、a、b、cの3つである。新たにダウンロードされたオブジェクトはb’であり、オブジェクトb’によってオブジェクトbを更新する場合を示している。
図7は、本発明の実施の形態2における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。5種類のデータからなるデータ構成は、実施の形態1における図3と同一である。接続先オブジェクト名において「null」と設定されているものは、接続先となるコネクションが存在しないことを意味する。
例えば、オブジェクトaは、図6に示すようにオブジェクトaから他のオブジェクトに向かう矢印が存在せず、接続先となるコネクションが存在しないことを意味しており、接続先オブジェクト名には「null」が設定されている。
また、コネクション種別において「External」と設定されているものは、同一の管理対象ではあるが、ハードウェアのドライバのような外部的な位置付けのオブジェクトとの接続関係を意味している。オブジェクトaがこの外部オブジェクトに相当する。
図8は、本発明の実施の形態2におけるリポジトリ122内の運用中のオブジェクト構成のデータテーブル構造を示す図である。また、図9は、本発明の実施の形態2におけるリポジトリ122内の新規オブジェクト構成のデータテーブル構造を示す図である。図8及び図9における7種類のデータからなるデータ構成は、実施の形態1における図4と同一である。
さらに、図10は、本発明の実施の形態2における部分更新時の動作シーケンス図である。図10に示したステップにしたがって動作を説明する。
新たなオブジェクトや構成管理プロファイル131が入力部150からダウンロードされると、オブジェクト管理部110内の構成管理部111は、パッケージ130内の構成管理プロファイル131のデータを読み込む(S200)。次に、構成管理部111は、読み込んだデータをミドルウェア120にあるオブジェクト構成データ管理部121のリポジトリ122に登録する(S201)。これにより、図9のIORとコネクションIDを除き、図7の構成管理プロファイル131にて定義された情報がリポジトリ122に反映されたこととなる。
次に、起動を開始し、初期化完了した新規オブジェクトは、自オブジェクトの参照先情報であるオブジェクト・リファレンス(IOR)を構成管理部111に通知する(S202)。このとき新規以外のオブジェクトはすでに通知済みのため再度の通知は行わない。具体的には、更新するための新規オブジェクトに相当するオブジェクトb’のIOR通知のみがなされる。
通知を受けた構成管理部111は、リポジトリ122に対して、通知されたIORを登録する(S203)。図9のIORが、このデータに相当する。
次に、構成管理部111は、差分解析部114に対して、運用中のソフトウェア機能に対応する構成情報と新規のソフトウェア機能に対応する構成情報との差分を解析するための解析要求を通知する(S204)。差分解析部114は、リポジトリ122内にある新規に登録した構成情報(図9に相当)と運用中の構成情報(図8に相当)とを比較し、変更箇所の解析を行う(S205)。
ここで、構成情報におけるオブジェクト名の欄には、オブジェクトのバージョンが更新されたことがわかるように、あらかじめ決められた識別名が付されているものとする。これにより、差分解析部114は、図8と図9の構成情報を比較することにより、オブジェクトbがオブジェクトb’に変更されたことがわかる。
さらに、差分解析部114は、方向属性を解析することにより、接続先オブジェクト名にオブジェクトb’がないことから、オブジェクトb’への接続関係のあるオブジェクトは存在していないことがわかる。したがって、差分解析部114は、更新するオブジェクトの影響範囲としてはオブジェクトbだけ変更しオブジェクトb’からのコネクションを確立すればよいことがわかる。
差分解析部114は、上述のような差分解析が完了すると、更新するオブジェクトの影響範囲を知らせるためのオブジェクト更新要求をコネクション管理部112に対して通知する(S206)。コネクション管理部112は、新規の構成情報に基づいたコネクション確立処理を開始する。コネクション管理部112は、更新するオブジェクトの影響範囲にあるオブジェクトのIORを検索し(S207)、現在運用中のオブジェクトに対して一旦コネクションの切断をするための切断要求を通知する(S208)。
コネクション管理部112は、切断要求に対応するコネクションIDを削除し(S209)、新たにコネクションの接続要求を行う(S211)。ここでの接続要求に対して、コネクション管理部112は、図9の接続先オブジェクト名を参照することにより、オブジェクトb’の接続先としてオブジェクトa、cの2つが存在していることを判断できる。この場合に、コネクション管理部112は、パッケージ内部のオブジェクト間の接続を優先し、まずは接続元オブジェクトb’に対して接続先オブジェクトcへの接続要求を行う。
一方、ステップS208で切断要求を受けたオブジェクトbは、コネクションを切断し、通信処理を停止する(S210)。
また、ステップS211で接続要求を受けた接続元オブジェクトb’は、接続先オブジェクトcに対して接続指示を行う。図10の例では、bindインタフェースにより、相手先のオブジェクト名を指定することで行っている(S212)が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
オブジェクト間の通信を司るミドルウェア120内のオブジェクト構成データ管理部121は、bindインタフェース中のオブジェクト名を基に、リポジトリ122から対応するオブジェクトのIORを検索し(S213)、オブジェクト名からIORへあて先情報を付け替えて接続先オブジェクトcに対してリクエストを送信する(S214)。
次に、接続指示のリクエストを受けた接続先オブジェクトcは、接続処理を実施し(S215)、処理完了後に接続元オブジェクトb’に対して応答を返す(S216)。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部121を介して行われる。
次に、ミドルウェア120内のオブジェクト構成データ管理部121は、コネクション管理部112に対して、オブジェクト間のコネクションが確立したことを通知する(S217)。このコネクション確立の通知により、コネクション管理部112は、コネクションにIDをつけてリポジトリ122に登録し(S218)、その後の管理を行う。このIDは、図9のコネクションIDに相当する。
ステップS203のIOR登録、及びステップS218のコネクションID登録により、図9で示したリポジトリ122におけるオブジェクトb’とオブジェクトcとの関係に相当するテーブル情報が格納されることとなる。コネクションID登録後、オブジェクトb’−c間の内部コネクションが確立され、通信可能な状態となる(S219)。
コネクション管理部112は、パッケージ内部のオブジェクト間の接続が完了したのに引き続き、外部オブジェクトとの接続関係がある場合には、外部コネクションの確立を行う。通常、外部コネクションは、内部コネクションの後に確立する。しかし、リポジトリ122の接続順序において、外部が優先して指定されている場合にはリポジトリ122の接続順序に従う。
構成管理部111は、外部コネクションの構築が必要な場合には、コネクション管理部112に対してコネクション確立のリクエストとして接続要求を通知する(S220)。通知を受けたコネクション管理部112は、構成情報をリポジトリ122から読み取り、対象となるオブジェクトのIORを検索する(S221)。コネクション管理部112は、構成情報とIORを利用してオブジェクトを制御することとなる。
次に、コネクション管理部112は、外部オブジェクトaとのコネクションを確立するため、接続元オブジェクトb’に対して接続先オブジェクトaへの接続要求を行う(S222)。
次に、接続要求を受けた接続元オブジェクトb’は、接続先の外部オブジェクトaに対して接続指示を行う。図10の例では、bindインタフェースにより、相手先のオブジェクト名を指定することで行っている(S223)が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
オブジェクト間の通信を司るミドルウェア120内のオブジェクト構成データ管理部121は、bindインタフェース中のオブジェクト名を基に、リポジトリ122から対応するオブジェクトのIORを検索し(S224)、オブジェクト名からIORへあて先情報を付け替えてリクエストを送信する(S225)。
次に、接続指示のリクエストを受けた接続先の外部オブジェクトaは、接続処理を実施し(S226)、処理完了後に接続元オブジェクトb’に対して応答を返す(S227)。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部121を介して行われる。
次に、ミドルウェア120内のオブジェクト構成データ管理部121は、コネクション管理部112に対して、各オブジェクト間のコネクションが確立したことを通知する(S228)。このコネクション確立の通知により、コネクション管理部112は、コネクションにIDをつけてリポジトリ122に登録し(S229)、その後の管理を行う。このIDは、図9のコネクションIDに相当する。
ステップS203のIOR登録、及びステップS229のコネクションID登録により、図9で示したリポジトリ122におけるオブジェクトb’と外部オブジェクトaとの関係に相当するテーブル情報が格納されることとなる。コネクションID登録後、オブジェクト間の外部および内部のすべてのコネクションが確立され、通信可能な状態となる(S230)。
実施の形態2によれば、差分解析部の働きにより、運用中の構成情報と新規の構成情報とを比較し、その差分を解析することで更新対象のオブジェクトとそのオブジェクトに関連するオブジェクトを特定し、影響範囲内のオブジェクトのみを部分入れ替えすることができる。これにより、入力部から全てのオブジェクトをダウンロードする必要がなく、更新に必要なオブジェクト及び新たなソフトウェア機能に対応する構成管理プロファイルのみをダウンロードすればよく、ダウンロード時間あるいはオブジェクトの再構築時間などにかかるオーバヘッドを短縮することができる。
さらに、構成管理プロファイルにて構成を自由に定義できるため、固定構成だけでなく任意構成によるオブジェクトの入れ替えが可能となる。
実施の形態3.
実施の形態2では、差分解析部114において、運用中の構成情報と新規の構成情報との比較に基づいて差分を解析することで、更新対象のオブジェクトとそのオブジェクトに関連するオブジェクトを特定し、影響範囲内のオブジェクトのみを部分更新する場合について説明した。これに対して、実施の形態3は、インタフェース定義情報133も活用して部分更新を行うものである。実施の形態3の構成は、実施の形態1における図1の構成と同一である。実施の形態1では具体的な説明をしなかったインタフェース定義情報133を中心に、以下詳細に説明する。
実施の形態3においては、オブジェクトが提供しているインタフェース定義情報133がパッケージ130にてIDLファイルとして提供されていることを前提としている。IDLファイルは、構成管理プロファイルと同様にして、記憶部に記憶されるとともにリポジトリ122に構成情報の一部として書き込まれ、構成情報として管理できる。
この場合に、差分解析部114は、リポジトリ122に登録されたオブジェクトの接続関係だけではなく、IDLファイルに基づいて、運用中の構成情報と新規の構成情報との差分を解析することができる。この解析により、オブジェクト名あるいは接続関係の情報からは同一と判断されるオブジェクトであっても、IDLが異なる場合には更新対象のオブジェクト及びそのオブジェクトに関連するオブジェクトを特定し、影響範囲内のオブジェクトのみを部分更新することができる。
このようなインタフェース定義情報133を活用した部分更新の動作について、図11〜図15に基づいて説明する。図11は、本発明の実施の形態3におけるオブジェクト構成を示した図である。現在運用中のオブジェクトは、a、b、cの3つである。新たにダウンロードされたオブジェクトはb’、c’の2つである。
ここで、オブジェクトc’は、オブジェクト名からオブジェクトcを更新するものであることが識別できるものと仮定する。また、オブジェクトb’は、オブジェクトc’の提供するインタフェースがオブジェクトcの提供するインタフェースから変更されたことに伴って更新されるオブジェクトであり、オブジェクト名の比較からだけでは識別できないものと仮定する。このような場合には、さらにIDLファイルの比較を行うことにより、オブジェクトbをオブジェクトb’に更新すべきことを判断することとなる。
図12は、本発明の実施の形態3における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。5種類のデータからなるデータ構成及びその内容は、実施の形態1における図3及び実施の形態2における図7と同一である。
図13は、本発明の実施の形態3におけるリポジトリ122内の運用中のオブジェクトのデータテーブル構造を示す図である。また、図14は、本発明の実施の形態3におけるリポジトリ122内の新規オブジェクトのデータテーブル構造を示す図である。図13及び図14における7種類のデータからなるデータ構成は、実施の形態1における図4及び実施の形態2における図8、図9と同一である。
さらに、図15は、本発明の実施の形態3における部分更新時の動作シーケンス図である。図15に示したステップにしたがって動作を説明する。
実施の形態1、2と同様に、新たなオブジェクトや構成管理ファイル131、インタフェース定義情報133が入力部150からダウンロードされると、オブジェクト管理部110内の構成管理部111は、パッケージ130内の構成管理プロファイル131のデータを読み込む(S300)。次に、構成管理部111は、読み込んだデータをミドルウェア120にあるオブジェクト構成データ管理部121のリポジトリ122に登録する(S301)。これにより、図14のIORとコネクションIDを除き、図12の構成管理プロファイル131にて定義された情報がリポジトリ122に反映されたこととなる。
次に、起動を開始し、初期化完了した新規オブジェクトは、自オブジェクトの参照先情報であるオブジェクト・リファレンス(IOR)を構成管理部111に通知する(S302)。このとき新規以外のオブジェクトはすでに通知済みのため再度の通知は行わない。具体的には、オブジェクトb’とオブジェクトc’のIOR通知がなされる。
通知を受けた構成管理部111は、リポジトリ122に対して、通知されたIORを登録する(S303)。図14のIORが、このデータに相当する。
次に、構成管理部111は、差分解析部114に対して、運用中のソフトウェア機能に対応する構成情報と新規のソフトウェア機能に対応する構成情報との差分を解析するための解析要求を通知する(S304)。そして、差分解析部114は、新規に登録したリポジトリ122の構成情報(図14に相当)と運用中の構成情報(図13に相当)とを比較し、変更箇所の解析を行う(S305)。この解析により、差分解析部114は、オブジェクトc’がオブジェクトcを更新したものであることを判断できる。
さらに、差分解析部114は、インタフェース定義情報(IDL)133についても調査し、各オブジェクトが提供しているインタフェース情報について変更箇所を解析する。IDLに変更箇所が見つからなければ、差分解析部114は、IDLを除いたデータから差分解析を行い、更新するオブジェクトの影響範囲を特定する。このIDLを除いたデータからの差分解析は、実施の形態2と同様の処理である。
一方、IDLに変更箇所が見つかった場合、すなわちインタフェースとして関数の数や引数などに変更がある場合には、差分解析部114は、そのインタフェースを利用するオブジェクトを、インタフェース定義情報133および構成管理プロファイル131またはリポジトリ122より解析する。
差分解析部114は、IDL解析の結果、オブジェクトc’の提供するインタフェースがオブジェクトcの提供するインタフェースから変更されていることを判断できる。さらに、差分解析部114は、オブジェクト構成データ管理部121の運用中のリポジトリ122(図13)及びIDLから、更新前のオブジェクトcと接続関係があるオブジェクトとしてオブジェクトbがあることがわかる(S306)。
したがって、差分解析部114は、このような構成情報の解析及びIDL解析(S305及びS306に相当)により、オブジェクトcからオブジェクトc’への更新に伴うインタフェース変更により、オブジェクトbもオブジェクトb’に更新する必要があることがわかる。さらに、オブジェクトaはオブジェクトcとの接続関係がないことから更新の必要がないこともわかる。そこで、以降のステップにおいては、オブジェクトb、cをオブジェクトb’、c’に更新する動作を行うこととなる。
差分解析部114は、差分解析が完了すると、更新するオブジェクトの影響範囲を知らせるためのオブジェクト更新要求をコネクション管理部112に対して通知する(S307)。コネクション管理部112は、新規の構成情報に基づいたコネクション確立処理を開始する。コネクション管理部112は、更新するオブジェクトの影響範囲にあるオブジェクトのIORを検索し(S308)、現在運用中のオブジェクトに対して一旦コネクションの切断をするための切断要求を通知する(S309)。
コネクション管理部112は、切断要求に対応するコネクションIDを削除し(S310)、新たにコネクションの接続要求を行う(S312)。ここでの接続要求として、コネクション管理部112は、変更対象となるオブジェクトb’とオブジェクトc’に対して互いのオブジェクト間の接続要求を行う。
一方、ステップS309で切断要求を受けたオブジェクトbは、コネクションを切断し、通信処理を停止する(S311)。
また、ステップS312で接続要求を受けた接続元のオブジェクトb’とオブジェクトc’は、接続先のオブジェクトに対して接続指示を行う。図15の例では、bindインタフェースにより、相手先のオブジェクト名を指定することで行っている(S313)が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
オブジェクト間の通信を司るミドルウェア120内のオブジェクト構成データ管理部121は、bindインタフェース中のオブジェクト名を基に、リポジトリ122から対応するオブジェクトのIORを検索し(S314)、オブジェクト名からIORへあて先情報を付け替えて接続先のオブジェクトc’とオブジェクトb’に対してリクエストを送信する(S315)。
次に、接続指示のリクエストを受けた接続先であるオブジェクトc’とオブジェクトb’は、おのおの接続処理を実施し(S316)、処理完了後に接続元のオブジェクトb’とオブジェクトc’に対して応答を返す(S317)。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部121を介して行われる。
次に、ミドルウェア120内のオブジェクト構成データ管理部121は、コネクション管理部112に対して、オブジェクト間のコネクションが確立したことを通知する(S318)。このコネクション確立の通知により、コネクション管理部112は、コネクションにIDをつけてリポジトリ122に登録し(S319)、その後の管理を行う。このIDは、図14のコネクションIDに相当する。
ステップS303のIOR登録、及びステップS319のコネクションID登録により、図14で示したリポジトリ122におけるオブジェクトb’とオブジェクトc’との関係に相当するテーブル情報が格納されることとなる。コネクションID登録後、オブジェクトb’−c’間の内部コネクションが確立され、通信可能な状態となる(S320)。
コネクション管理部112は、パッケージ内部のオブジェクト間の接続が完了したのに引き続き、外部オブジェクトとの接続関係がある場合には、外部コネクションの確立を行う。通常、外部コネクションは、内部コネクションの後に確立する。しかし、リポジトリ122の接続順序において、外部が優先して指定されている場合にはリポジトリ122の接続順序に従う。
構成管理部111は、外部コネクションの構築が必要な場合には、コネクション管理部112に対してコネクション確立のリクエストとして接続要求を通知する(S321)。通知を受けたコネクション管理部112は、構成情報をリポジトリ122から読み取り、対象となるオブジェクトのIORを検索する(S322)。コネクション管理部112は、構成情報とIORを利用してオブジェクトを制御することとなる。
次に、コネクション管理部112は、オブジェクト間のコネクションを確立するため、管理対象のオブジェクトに対してコネクション確立のための接続要求を行う(S323)。この場合は、外部オブジェクトaが既存のオブジェクトのため、コネクション管理部112は、外部オブジェクトaに対して再接続要求を行うこととなる。これにより、再接続要求を受けた外部オブジェクトaは、以前切断したオブジェクトbに対してのみの接続処理を行えばよい。
次に、接続要求を受けた外部オブジェクトaは、接続先のオブジェクトbに対して接続指示を行う。図15の例では、bindインタフェースにより、相手先のオブジェクト名を指定することで行っている(S324)が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
オブジェクト間の通信を司るミドルウェア120内のオブジェクト構成データ管理部121は、bindインタフェース中のオブジェクト名を基に、リポジトリ122から対応するオブジェクトのIORを検索し(S325)、オブジェクト名からIORへあて先情報を付け替えてリクエストを送信する(S326)。
ここで外部オブジェクトaは、以前のコネクションと同じもの(オブジェクトb)を引数として用いている。ミドルウェア120内のオブジェクト構成データ管理部121は、オブジェクト名がオブジェクトbからオブジェクトb’に変更されていることを識別できるため、オブジェクトb’に対応するIORを検索することでオブジェクトb’のIORに付け替えを行っている。
すなわち、本処理では、ミドルウェア120内のオブジェクト構成データ管理部121の働きにより、既存オブジェクト(この場合は外部オブジェクトa)は、新オブジェクト(この場合はオブジェクトb’)の名前を知らなくてもよく、以前にコネクション構築したときと同様の手段で新オブジェクトを意識せずに、自動的に新規オブジェクトへの切り替えができるようになる。
次に、接続指示のリクエストを受けた接続先オブジェクトb’は、接続処理を実施し(S327)、処理完了後に接続元の外部オブジェクトaに対して応答を返す(S328)。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部121を介して行われる。
次に、ミドルウェア120内のオブジェクト構成データ管理部121は、コネクション管理部112に対して、オブジェクトa−b’間のコネクションが確立したことを通知する(S329)。このコネクション確立の通知により、コネクション管理部112は、コネクションにIDをつけてリポジトリ122に登録し(S330)、その後の管理を行う。このIDは、図14のコネクションIDに相当する。
ステップS303のIOR登録、及びステップS330のコネクションID登録により、図14で示したリポジトリ122におけるオブジェクトb’と外部オブジェクトaとの関係に相当するテーブル情報が格納されることとなる。コネクションID登録後、オブジェクト間の外部および内部のすべてのコネクションが確立され、通信可能な状態となる(S331)。
実施の形態3によれば、実施の形態2で行ったオブジェクト構成の比較に加えて、さらにIDLファイルの比較に基づいて差分を解析することができる。これにより、IDLの更新によっても、更新対象のオブジェクトとそのオブジェクトに関連するオブジェクトを特定し、影響範囲内のオブジェクトのみを部分入れ替えすることができる。したがって、入力部から全てのオブジェクトをダウンロードする必要がなく、更新に必要なオブジェクト、新たなソフトウェア機能に対応する構成管理プロファイル、及びIDLファイルをダウンロードすればよく、ダウンロード時間あるいはオブジェクトの再構築時間などにかかるオーバヘッドを短縮することができる。
さらに、IORを管理するミドルウェア内のオブジェクト構成データ管理部の働きにより、オブジェクト構成データ管理部にてオブジェクト名から対応するIORへの付け替え処理を行うことができ、オブジェクトは接続先オブジェクトのIORを知ることなく、接続先オブジェクト名のみによってコネクションを確立することができる。さらに、既存オブジェクトは、新オブジェクトの名前を知らなくてもよく、以前のコネクションを構築するのと同様の手段、すなわち以前の接続先オブジェクト名を指定することによって、新オブジェクト名を意識せずに、自動的に新規オブジェクトへの切り替えを行うことが可能となる。
この結果、CORBA標準のシステムにおいて一般的に利用されているネーミング・サービスによるIORの取得処理を省くことができ、複雑な検索処理を利用する必要が無いため、オブジェクトの処理負荷を下げることが可能となる。また、オブジェクトは相手先の名前さえ認識していれば、相手先の場所はどこにあっても意識せずにコネクションの確立が行える。
さらに、オブジェクト自身によるIOR取得処理などが削減できるため、インタフェース削減の結果、開発の独立性が高められ、オブジェクト毎に別々の開発者、あるいは異なる会社間どの開発なども可能となり、開発効率を向上することができる。
実施の形態4.
実施の形態4は、構成管理プロファイル131に接続順序があらかじめ設定されている場合において、ダウンロードされたオブジェクトの接続順序関係を考慮してオブジェクトのコネクション確立を行うものである。実施の形態4の構成は、実施の形態1における図1の構成と同一である。図16〜19に基づいて以下に説明する。
図16は、本発明の実施の形態4におけるオブジェクト構成を示した図である。図16のパッケージ130は、実施の形態1における図2と同じように、オブジェクトa及びオブジェクトbの2つで構成されている。図2と図16との異なる点は、接続順序が逆になっていることである。
図17は、本発明の実施の形態4における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。5種類のデータからなるデータ構成及びその内容は、実施の形態1における図3と同一である。しかしながら、図17の接続順序は、図3の接続順序と逆になって定義されている。
図18は、本発明の実施の形態4におけるリポジトリ122内のデータテーブル構造を示す図である。図18における7種類のデータからなるデータ構成は、実施の形態1における図4と同一である。しかしながら、図18の接続順序及びコネクションIDは、図3の接続順序及びコネクションIDと逆になっている。
さらに、図19は、本発明の実施の形態4における初期起動時の動作シーケンス図である。図19に示したステップにしたがって動作を説明する。
図19におけるステップS400からS404までの処理は、実施の形態1の図5におけるステップS100からS104までの処理と同様であるため説明を省略し、ステップS405以降を詳細に説明する。
通知を受けたコネクション管理部112は、構成情報をリポジトリ122から読み取り、対象となるオブジェクトのIORを検索する(S405)。コネクション管理部112は、構成情報とIORを利用してオブジェクトを制御することとなる。
このとき、図18に示すような接続順序がリポジトリ122内のデータテーブル構造として定義されているため、コネクション管理部112は、この順序に従った接続の制御を行うこととなる。すなわち、コネクション管理部112は、オブジェクト間のコネクションを確立するため、管理対象のそれぞれの接続元オブジェクトに対して、オブジェクトb、オブジェクトaの順にコネクション確立のための接続要求を行う(S406)。
次に、接続要求を受けたパッケージ130内のそれぞれの接続元オブジェクトは、接続先のオブジェクトに対して接続指示を行う。図19の例では、bindインタフェースにより、相手先のオブジェクト名を指定することで行っている(S407)が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
オブジェクト間の通信を司るミドルウェア120内のオブジェクト構成データ管理部121は、bindインタフェース中のオブジェクト名を基に、リポジトリ122から対応するオブジェクトのIORを検索し(S408)、オブジェクト名からIORへあて先情報を付け替えてリクエストを送信する(S409)。
ここで、仮に接続元オブジェクトaからの接続指示が先にミドルウェア120に届いたとしても、ミドルウェア120内のオブジェクト構成データ管理部121は、リポジトリ122に定義されている順序にしたがって、接続先オブジェクトに対するリクエストを処理する。したがって、ミドルウェア120内のオブジェクト構成データ管理部121は、各オブジェクトからの接続指示の順番に依存せずに、接続順序に従った接続処理を実行することができる。
次に、接続指示のリクエストを受けた各接続先オブジェクトは、おのおの接続処理を実施し(S410)、処理完了後に接続元オブジェクトに対して応答を返す(S411)。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部121を介して行われる。また、応答の際にも、ミドルウェア120内のオブジェクト構成データ管理部121は、ステップS408と同様にリポジトリ122に定義されている接続順序にしたがってリクエストを処理するため、順序が逆転することはない。
次に、ミドルウェア120内のオブジェクト構成データ管理部121は、コネクション管理部112に対して、各オブジェクト間のコネクションが確立したことを通知する(S412)。このコネクション確立の通知により、コネクション管理部112は、コネクションにIDをつけてリポジトリ122に登録し(S413)、その後の管理を行う。このIDは、図18のコネクションIDに相当する。
ステップS403のIOR登録、及びステップS413のコネクションID登録により、図18で示したリポジトリ122におけるすべてのテーブル情報が格納されることとなる。コネクションID登録後、オブジェクト間のコネクションが確立され、通信可能な状態となる(S414)。
実施の形態4によれば、構成管理部及びコネクション管理部が、更新対象のオブジェクトを一元的に管理しているため、オブジェクトの接続に順序関係があるようなコネクションの場合においても対応でき、オブジェクトがどのような順序でダウンロードされてもコネクションを確立することができる。
さらに、この接続順序は、コネクションの種別毎に定義できる。例えば、外部オブジェクト、パッケージ内部のオブジェクト、共有のオブジェクトなど様々な種別のコネクション毎に接続順序を設定できる。これにより、オブジェクトの多様な構成に適応でき、適用範囲の広い機能更新方式によるソフトウェア機能更新装置が実現できる。
実施の形態5.
実施の形態4では、構成管理プロファイル131に接続順序が記述されている場合において、その接続順序に従ってコネクション確立を行う場合について説明した。これに対して、実施の形態5は、構成管理プロファイル131の情報すべてに従うのではなく、接続順序などの一部の情報をスケジュール管理部113からのスケジュールに基づいてオブジェクトのコネクションを確立するものである。実施の形態5の構成は、実施の形態1における図1の構成と同一である。
図20は、本発明の実施の形態5における初期起動時の動作シーケンス図である。図20に示したステップにしたがって動作を説明する。
図20におけるステップS500からS503までの処理は、実施の形態4の図19におけるステップS400からS403までの処理と同様であるため説明を省略し、ステップS504以降を詳細に説明する。
スケジュール管理部113は、入力部150から接続のためのタイミング等の接続指示があるか否かを確認する(S504)。接続指示があった場合には、スケジュール管理部113は、指示に基づいた接続順序をリポジトリ122に登録し、構成管理部111に接続開始を指示する(S505)。ただし、コネクション確立の開始ポイント(時間)の指定が必要な場合は、入力部150からの指示があるまで構成管理部111への指示は行わない。
図20におけるステップS506からS516までの処理は、実施の形態4の図19におけるステップS404からS414までの処理と同様であるため説明を省略する。このようにして、スケジュール管理部113の指示に基づいたコネクションが確立できる。
実施の形態5によれば、スケジュール管理部は、入力部からの指示に基づいてオブジェクトの確立のタイミングあるいは接続順序などの指示を管理し、構成管理部に指示することが可能となる。これにより、構成管理プロファイルによらずに、任意のタイミングあるいは任意の接続順序でコネクションを確立し、オブジェクトの構築を自由に行える機能更新方式によるソフトウェア機能更新装置が実現できる。
実施の形態6.
実施の形態6では、オブジェクト更新後の運用中に、コネクションの障害が発生した際の復旧機能を備えたソフトウェア機能更新装置について説明する。実施の形態6の構成は、実施の形態1における図1の構成と同一である。
実施の形態6では、新規にダウンロードした新パッケージ130に更新し、オブジェクトの接続関係を変更して運用した後に、新パッケージ内のオブジェクトまたはオブジェクト間のコネクションに障害が発生した場合を想定している。この場合には、運用実績のある過去の構成に基づいて、復旧可能なオブジェクトのコネクション確立を行うことができ、その動作について図21〜図23に基づいて説明する。
図21は、本発明の実施の形態6におけるパッケージ130内のオブジェクト構成を示した図である。図21は、運用するオブジェクトをa、b、cからa、b’、c’に更新した後に、オブジェクトb’−c’間で障害が発生したことにより、正常な運用を行うためにオブジェクトをa、b、cに復旧する場合を示している。なお、以下の説明においては、オブジェクトb、cを含むパッケージをパッケージ1、オブジェクトb’、c’を含むパッケージをパッケージ2、そしてオブジェクトaを含むパッケージをパッケージ3と呼ぶこととする。
図22は、本発明の実施の形態6におけるリポジトリ122内の運用中のオブジェクトのデータテーブル構造を示す図である。図22における7種類のデータからなるデータ構成は、実施の形態1における図4と同一である。図22には、パッケージ1からパッケージ3までの情報が設定されている。
さらに、図23は、本発明の実施の形態6における部分更新時の動作シーケンス図である。図23に示したステップにしたがって動作を説明する。
パッケージ2とパッケージ3のコネクション確立後に、パッケージ2を構成するオブジェクトまたはコネクションに障害が発生した場合に、構成管理部111は、リポジトリ122を検索することにより、運用実績のある過去のパッケージにおけるオブジェクトの構成情報が登録されていることを確認する(S600)。なお、構成管理部111は、差分解析部114の解析結果に基づいて更新処理を行った際の更新履歴を管理することによっても、運用実績のある過去の構成情報を割り出すことができる。
リポジトリ122には、図22で示したように、更新後のパッケージ2、3の情報とともに、更新前のパッケージ1の情報も登録されていると仮定する。この場合には、運用中にパッケージ2で障害が発生した際に、パッケージ2を元のパッケージ1に復旧することが考えられる。
構成管理部111は、パッケージ1の切り替えをコネクション管理部112にリクエストする(S601)。コネクション管理部112は、更新するオブジェクトの影響範囲にあるオブジェクトのIORを検索し(S602)、現在運用中のオブジェクトに対して一旦コネクションの切断をするための切断要求を通知する(S603)。
コネクション管理部112は、切断要求に対応するコネクションIDを削除し(S604)、オブジェクト間のコネクションを確立するため、管理対象のオブジェクトに対してコネクション確立のための再接続要求を行う(S606)。この場合は、オブジェクトaが既存のオブジェクトのため、コネクション管理部112は、接続元の外部オブジェクトaに対して再接続要求を行うこととなる。
一方、コネクション切断要求を受けたオブジェクトはコネクションを切断し、通信処理を停止する(S605)。
次に、接続要求を受けた接続元の外部オブジェクトaは、接続先オブジェクトbに対して接続指示を行う。図23の例では、bindインタフェースにより、相手先のオブジェクト名を指定することで行っている(S607)が、インタフェースは例であり、必ずしもこの名前でなくてもよい。
オブジェクト間の通信を司るミドルウェア120内のオブジェクト構成データ管理部121は、bindインタフェース中のオブジェクト名を基に、リポジトリ122から対応するオブジェクトのIORを検索し(S608)、オブジェクト名からIORへあて先情報を付け替えてリクエストを送信する(S609)。
ここでオブジェクトaは、以前のコネクションと同じもの(オブジェクト名b)を引数として用いている。ミドルウェア120内のオブジェクト構成データ管理部121は、オブジェクト名がオブジェクトb’からオブジェクトbに変更されていることを識別できるため、オブジェクトbに対応するIORを検索することでオブジェクトbのIORに付け替えを行っている。
すなわち、本処理では、ミドルウェア120内のオブジェクト構成データ管理部121の働きにより、既存オブジェクト(この場合は外部オブジェクトa)は、新オブジェクト(この場合はオブジェクトb)の名前を知らなくてもよく、以前にコネクション構築したときと同様の手段で新オブジェクトを意識せずに、自動的に新規オブジェクトへの切り替えができるようになる。
次に、接続指示のリクエストを受けた接続先オブジェクトbは、接続処理を実施し(S610)、処理完了後に接続元の外部オブジェクトaに対して応答を返す(S611)。この応答は、先に説明したコネクション確立のための接続要求と同様にオブジェクト構成データ管理部121を介して行われる。
次に、ミドルウェア120内のオブジェクト構成データ管理部121は、コネクション管理部112に対して、オブジェクトa−b間のコネクションが確立したことを通知する(S612)。このコネクション確立の通知により、コネクション管理部112は、コネクションにIDをつけてリポジトリ122に登録し(S613)、その後の管理を行う。このIDは、図22のコネクションIDに相当する。
コネクションID登録後、オブジェクト間の外部および内部のすべてのコネクションが確立され、通信可能な状態となる(S614)。これにより、パッケージ2からパッケージ1への切り替え(復旧)が完了する。
実施の形態6によれば、構成管理部において複数のパッケージ毎のオブジェクトの構成を管理することにより、オブジェクト構成更新後にソフトウェアに不具合が見つかった場合においても、構成管理部の指示によりコネクション管理部がパッケージを切り替えて、元の構成に戻すことができる。これにより、障害が発生した場合におけるソフトウェアの機能復旧が実現できる。
なお、上述においては、パッケージが3つの構成での切り替え処理を説明したが、これに限定されない。システムのリソース次第では、4つ以上のパッケージを管理してもよく、運用実績のある過去の構成に自由に戻すことができ、さらに安全なソフトウェアの機能更新が可能となる。
また、過去の実績だけでなく、別々の機能として管理することにより、一旦ダウンロードしたパッケージであれば、任意のタイミングで何度でも自由にソフトウェア機能更新装置の機能を切り替えて使用することができ、再ダウンロードにかかるオーバヘッドを減らすことが可能となる。
実施の形態7.
実施の形態7では、構成管理プロファイル131のオブジェクト構成を変更することにより管理対象パッケージを再構築する動作について説明する。実施の形態7の構成は、実施の形態1における図1の構成と同一である。
オブジェクト追加の動作は、追加した新規オブジェクトの初期化完了後に自オブジェクトのIORをオブジェクト管理部110の構成管理部111に通知することで実現できる。それ以降の動作は、初期起動時の動作である実施の形態1と同様である。
また、オブジェクト削除の動作は、削除対象のオブジェクトとオブジェクト管理部110の差分解析部114にて特定した影響範囲に対してコネクションを削除し、リポジトリ122に登録された構成情報に基づいてオブジェクト間のコネクションを新たに確立し直すことで実現できる。これは、一旦コネクションを削除して、再構築する差分入れ替えの動作である実施の形態2あるいは実施の形態3と同様である。
実施の形態7によれば、構成管理プロファイルにてオブジェクトの構成を自由に定義できるため、固定構成だけでなく任意構成によるオブジェクトの接続関係の構築が行える。さらに、任意の構成変更が可能になるため、オブジェクトの追加及び削除が所望のタイミングで行え、ソフトウェア機能更新装置の構成変更の自由度が高くなり、機能向上が実現できる。
本発明の実施の形態1における無線機器の機能更新を実現するための機能構成図である。 本発明の実施の形態1におけるオブジェクト構成を示した図である。 本発明の実施の形態1における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。 本発明の実施の形態1におけるリポジトリ内のデータテーブル構造を示す図である。 本発明の実施の形態1における初期起動時の動作シーケンス図である。 本発明の実施の形態2におけるオブジェクト構成を示した図である。 本発明の実施の形態2における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。 本発明の実施の形態2におけるリポジトリ内の運用中のオブジェクトのデータテーブル構造を示す図である。 本発明の実施の形態2におけるリポジトリ内の新規オブジェクトのデータテーブル構造を示す図である。 本発明の実施の形態2における部分更新時の動作シーケンス図である。 本発明の実施の形態3におけるオブジェクト構成を示した図である。 本発明の実施の形態3における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。 本発明の実施の形態3におけるリポジトリ内の運用中のオブジェクトのデータテーブル構造を示す図である。 本発明の実施の形態3におけるリポジトリ内の新規オブジェクトのデータテーブル構造を示す図である。 本発明の実施の形態3における部分更新時の動作シーケンス図である。 本発明の実施の形態4におけるオブジェクト構成を示した図である。 本発明の実施の形態4における新規にダウンロードされた構成管理プロファイルのデータテーブル構造を示す図である。 本発明の実施の形態4におけるリポジトリ内のデータテーブル構造を示す図である。 本発明の実施の形態4における初期起動時の動作シーケンス図である。 本発明の実施の形態5における初期起動時の動作シーケンス図である。 本発明の実施の形態6におけるオブジェクト構成を示した図である。 本発明の実施の形態6におけるリポジトリ内の運用中のオブジェクトのデータテーブル構造を示す図である。 本発明の実施の形態6における部分更新時の動作シーケンス図である。
符号の説明
111構成管理部、112 コネクション管理部、113 スケジュール管理部、114 差分解析部、 121 オブジェクト構成データ管理部、122 リポジトリ群(データベース)、130 パッケージ、131 構成管理プロファイル、132 管理対象オブジェクト群(オブジェクト群)、133 インタフェース定義情報。

Claims (6)

  1. ソフトウェア機能をオブジェクトの集合として管理し、前記オブジェクトの集合に含まれる更新対象となるオブジェクトを旧オブジェクトから新規オブジェクトに入れ替えるとともに、前記更新対象となるオブジェクトに関連するオブジェクト間の相互接続の切り替えを行うことによって種々のソフトウェア機能を実現するソフトウェア機能更新装置であって、
    オブジェクト間の相互接続関係のデータを有する構成情報を記憶するデータベースと、
    管理対象となるソフトウェア機能のオブジェクト間の相互接続関係のデータを有する構成管理プロファイルと、管理対象オブジェクトの集合であるオブジェクト群とを含むパッケージデータを記憶する記憶部と、
    オブジェクトの入れ替え及びオブジェクト間の相互接続の切り替えを必要とする新たなソフトウェア機能について、オブジェクト間の相互接続関係のデータを有する構成管理プロファイルと、前記新たなソフトウェア機能に必要な新たなオブジェクト群とを含む新たなパッケージデータを設定し、前記記憶部にダウンロードして記憶させる入力部と、
    前記ダウンロードされたタイミングで前記記憶部から前記新たなパッケージデータに含まれている構成管理プロファイルを読み取り、前記データベースに構成情報として登録し、前記新たなパッケージデータ内の前記オブジェクト群に含まれている新規オブジェクトが前記ダウンロードされたタイミングで起動した後の初期化完了に伴って、前記新規オブジェクトから自オブジェクトの参照先情報であるIORの通知を受信し、前記データベースにすでに登録された前記構成情報の一部として前記IORの情報を前記新規オブジェクトと関連づけて新たに追加登録した後、オブジェクト間の接続を確立するためのリクエストとして第1接続要求を通知する構成管理部と、
    前記第1接続要求に応じて、前記新規オブジェクトと入れ替えられる前記旧オブジェクトに関連するオブジェクト間の相互接続を切断した後、前記データベースに登録された前記IORの情報を含む前記構成情報に基づいて接続関係にある接続元オブジェクトを検出し、管理対象のそれぞれの接続元オブジェクトに対して接続先オブジェクトとの接続を確立するための第2接続要求を出力するコネクション管理部と、
    前記第2接続要求に応答した前記接続元オブジェクトから接続先オブジェクトに対する接続指示を受け取ると、前記IORの情報を含む前記構成情報に基づいて接続関係にある接続先オブジェクトを検出し、前記新たなパッケージデータで規定されたオブジェクト間の相互接続を確立し、前記新たなパッケージデータに応じた前記オブジェクトの入れ替え及び前記オブジェクト間の相互接続の切り替えを完了させるように、接続元オブジェクトと接続先オブジェクトとの間の接続制御を行うオブジェクト構成データ管理部と
    を備えたことを特徴とするソフトウェア機能更新装置。
  2. 請求項1に記載のソフトウェア機能更新装置において、
    前記入力部は、相互接続を行うオブジェクトについて、一方のオブジェクトを接続元オブジェクト、他方のオブジェクトを接続先オブジェクトとする第1接続ステップを実行した後に、他方のオブジェクトを接続元オブジェクト、一方のオブジェクトを接続先オブジェクトとする第2接続ステップを実行することで2つのオブジェクト間の相互接続を接続順序に従って行う際に、前記構成管理プロファイル内に前記接続順序に関するデータをさらに含む新たなパッケージデータを設定し、前記記憶部に記憶させ、
    前記コネクション管理部は、前記構成情報の中の前記接続順序に関するデータにしたがって前記第1接続ステップにおける接続元オブジェクトを検出して前記第2接続要求を通知し、
    前記オブジェクト構成データ管理部は、前記構成情報の中の前記接続順序に関するデータにしたがって、前記第1接続ステップ、前記第2接続ステップの順番で、オブジェクト間の接続制御を行う
    ことを特徴とするソフトウェア機能更新装置。
  3. 請求項1に記載のソフトウェア機能更新装置において、
    前記データベースに登録済の構成情報に関するオブジェクトの接続時に、オブジェクトの接続順序あるいは接続タイミングに関する入力データを前記入力部を介して受け付けることで、前記登録済の構成情報に含まれている接続順序を更新するとともに、前記構成管理部に対して接続開始指示を出力するスケジュール管理部をさらに備え、
    前記構成管理部は、前記接続開始指示に基づいて前記第1接続要求を前記コネクション管理部に通知し、
    前記コネクション管理部は、前記入力データにより更新された前記構成情報の中の前記接続順序に関するデータにしたがった順番で前記第2接続要求を通知し、
    前記オブジェクト構成データ管理部は、前記構成情報の中の前記接続順序に関するデータにしたがった順番で、オブジェクト間の接続制御を行う
    ことを特徴とするソフトウェア機能更新装置。
  4. 請求項1ないし3のいずれか1項に記載のソフトウェア機能更新装置において、
    前記データベース内の2つの構成情報の比較に基づいて更新オブジェクトの特定を行う差分解析部をさらに備え、
    前記構成管理部は、現在運用中のソフトウェア機能を前記新たなソフトウェア機能の運用に切り替える際に、前記コネクション管理部に対して前記第1接続要求を通知する代わりに、更新するオブジェクトを特定するための解析要求を前記差分解析部に出力し、
    前記差分解析部は、前記解析要求を受け取ると、前記データベース内にある現在運用中の構成情報と、前記新たなソフトウェア機能に対応する構成情報との比較に基づいて、前記更新対象となるオブジェクト及び前記更新対象となるオブジェクトに関連した接続関係を特定し、特定されたオブジェクト及び特定されたオブジェクトに関連した接続関係に基づく更新要求を前記コネクション管理部に出力し、
    前記コネクション管理部は、前記更新要求に応じて前記第2接続要求を出力する
    ことを特徴とするソフトウェア機能更新装置。
  5. 請求項4に記載のソフトウェア機能更新装置において、
    前記入力部は、各オブジェクトが提供するインタフェース情報が記述されたIDLファイルをインタフェース定義情報としてさらに含む新たなパッケージデータを設定し、前記記憶部に記憶させ、
    前記構成管理部は、前記記憶部から前記構成管理プロファイルとともに前記インタフェース定義情報を読み取り、前記データベースに構成情報の一部として登録し、
    前記差分解析部は、現在運用中の構成情報と、前記新たなソフトウェア機能に対応する構成情報のそれぞれに含まれているインタフェース定義情報の比較結果を加味して更新対象となるオブジェクト及び前記更新対象となるオブジェクトに関連した接続関係を特定する
    ことを特徴とするソフトウェア機能更新装置。
  6. 請求項4または5に記載のソフトウェア機能更新装置において、
    前記構成管理部は、前記差分解析部の解析結果に基づいてソフトウェア機能の更新履歴を前記データベースに記憶させ、運用中のオブジェクトに不具合が発生したことにより前記オブジェクトから異常情報を受け取ると、前記データベースに記憶された前記更新履歴に基づいて現在運用中のソフトウェア機能に対応する構成情報に対して更新前の構成情報が存在すると判断した場合には、前記コネクション管理部に前記更新前の構成情報に基づくオブジェクトに切り替えるための切り替え要求を出力し、
    前記コネクション管理部は、前記切り替え要求に基づいて前記更新前の構成情報に対応するオブジェクト間の接続を確立するために前記第2接続要求を出力する
    ことを特徴とするソフトウェア機能更新装置。
JP2004061000A 2004-03-04 2004-03-04 ソフトウェア機能更新装置 Expired - Fee Related JP4541727B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004061000A JP4541727B2 (ja) 2004-03-04 2004-03-04 ソフトウェア機能更新装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004061000A JP4541727B2 (ja) 2004-03-04 2004-03-04 ソフトウェア機能更新装置

Publications (2)

Publication Number Publication Date
JP2005250892A JP2005250892A (ja) 2005-09-15
JP4541727B2 true JP4541727B2 (ja) 2010-09-08

Family

ID=35031309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004061000A Expired - Fee Related JP4541727B2 (ja) 2004-03-04 2004-03-04 ソフトウェア機能更新装置

Country Status (1)

Country Link
JP (1) JP4541727B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745611B2 (en) * 2008-06-05 2014-06-03 Accenture Global Services Limited Software upgrade analysis system
JP2010055584A (ja) * 2008-07-28 2010-03-11 Hitachi Software Eng Co Ltd アプリケーション動作基盤システム
JP5401385B2 (ja) * 2010-03-31 2014-01-29 株式会社ミツトヨ 通信ソフトウェア
JP5387767B2 (ja) * 2010-06-17 2014-01-15 富士通株式会社 実行中のプログラムの更新技術

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082922A (ja) * 2001-06-14 2002-03-22 Digital Vision Laboratories Corp 並列分散処理方法
JP2002366381A (ja) * 2001-06-12 2002-12-20 Hitachi Ltd オブジェクトの動的入替え処理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240530A (ja) * 1997-02-24 1998-09-11 Nippon Telegr & Teleph Corp <Ntt> オブジェクト指向処理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366381A (ja) * 2001-06-12 2002-12-20 Hitachi Ltd オブジェクトの動的入替え処理方法
JP2002082922A (ja) * 2001-06-14 2002-03-22 Digital Vision Laboratories Corp 並列分散処理方法

Also Published As

Publication number Publication date
JP2005250892A (ja) 2005-09-15

Similar Documents

Publication Publication Date Title
US20050246702A1 (en) System and method for automatically updating versions of software programs in client computers
CN111026430B (zh) 本地或分布式计算机系统上的柔性节点组成的方法和系统
KR20050085022A (ko) 정의된 커버리지 영역들을 갖는 정보 서비스들의 투명스위칭을 제공하는 동적 서비스 바인딩
US8897804B2 (en) System and method for providing customer support using a location-aware portable device
JP2002507024A (ja) メッセージ変換装置および方法
CN114448895B (zh) 一种应用访问方法、装置、设备及介质
US20030110479A1 (en) System and method for bi-directional communication and execution of dynamic instruction sets
CN107480223B (zh) 一种搜索方法、装置及存储介质
US20100211631A1 (en) Ubiquitous web service gateway and method
JP4541727B2 (ja) ソフトウェア機能更新装置
US6981251B1 (en) Agent system for mobile agents, computer network and method for downloading an agent system from a host computer to a client computer of a computer network
CN111158711A (zh) 面向多个安卓系统终端的应用程序部署方法和设备
EP1293893A2 (en) State-Transition-Matrix based generation of a computer program
JP2001325140A (ja) ファイル転送装置
KR100834977B1 (ko) 임베디드 에이전트 프레임워크 및 이를 이용한 유비쿼터스서비스 제공 방법
CN117453272A (zh) 汽车软件版本管理系统
CN101112065A (zh) 自动的互联网连接设备
JP2005086426A (ja) 携帯情報端末、並びにソフトウェア入れ替えシステム及び方法
CN104683140A (zh) 一种实现北向Corba接口规范无缝切换的方法及装置
JPH0934771A (ja) 分散システムのサブファイル転送方式
JP3930404B2 (ja) 自律分散型システム及びその通信方法
JP4656865B2 (ja) 分散処理システム及びファイル更新方法
JP2009020581A (ja) アプリケーション間通信システム
Bubendorfer et al. Nomad: Application participation in a global location service
CN1322420C (zh) 构件化软件系统在线增加新功能的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100113

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100223

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100521

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100624

R150 Certificate of patent or registration of utility model

Ref document number: 4541727

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130702

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees