以下に添付図面を参照しながら,本発明の好適な実施の形態について詳細に説明する。なお,本明細書及び図面において,実質的に同一の機能構成を有する構成要素については,同一の符号を付することにより重複説明を省略する。
(第1の実施形態)
以下に,本発明の第1の実施形態にかかるインストール方法,情報処理装置,プログラム等について詳細に説明する。なお,以下では,本実施形態にかかる特徴であるインストール方法を実行する情報処理装置が,例えば,次のようなコンテンツ利用システムの一構成要素として適用された例について説明するが,本発明はかかる例に限定されない。
まず,図1に基づいて,本発明の第1の実施形態にかかるコンテンツ利用システムの全体構成について説明する。なお,図1は,本発明の第1の実施形態にかかるコンテンツ利用システムの全体構成を概略的に示すブロック図である。
図1に示すように,本実施形態にかかるコンテンツ利用システムは,例えば,1又は2以上の情報処理装置10と,例えば1つのサーバ20と,これらを相互に接続するネットワーク5と,情報処理装置10の記録媒体用リーダ・ライタ(ディスクドライブ等)にローディングされる記録媒体7と,から構成される。このコンテンツ利用システムは,サーバ20からネットワーク5等を介してコンテンツを情報処理装置10に提供し,情報処理装置10においてかかるコンテンツを利用(再生,リッピング,コピー,PD(Portable Device)等への転送,編集など)するためのシステムである。
本実施形態にかかるコンテンツは,例えば,音楽,講演,ラジオ番組等の音声(Audio)コンテンツや,映画,テレビジョン番組,ビデオプログラム,写真,絵画,図表等を構成する静止画若しくは動画からなる映像(Video)コンテンツ,この映像コンテンツと音声コンテンツを組み合わせたコンテンツ,電子図書(E−book),ゲーム,ソフトウェア(soft ware)などのあらゆるコンテンツを含む。
情報処理装置10は,入力装置,記憶装置,演算装置,制御装置および出力装置等を備えたコンピュータ装置である。具体的には,この情報処理装置10は,例えば,パーソナルコンピュータ(ノート型,デスクトップ型を問わない。),PDA(Personal Digital Assistant),汎用コンピュータ,オフィスコンピュータ,スーパーコンピュータ,ワークステーションなどや,上記コンピュータ装置を備えた情報家電,家庭用ゲーム機,コンテンツ記録/再生装置,携帯電話などで構成される。なお,図1では,1つの情報処理装置10しか図示していないが,かかる例に限定されず,複数の情報処理装置10がネットワーク5に接続されていてもよい。
一方,サーバ20は,例えば,コンテンツ配信サービスを提供するサービスプロバイダなどが所有するサーバ装置である。このサーバ20は,サーバ機能を備えた1又は2以上のコンピュータ装置などで構成される。なお,図1では,1つのサーバ20しか図示していないが,かかる例に限定されず,例えば,機能・用途に応じて複数のサーバを設けてもよい。この複数のサーバの例としては,例えば,コンテンツを配信するコンテンツ提供用サーバ,コンテンツを利用するためのライセンスを提供するライセンス提供サーバ,ライセンスの発行に応じて課金処理を行う課金サーバ,コンテンツを利用するためのアプリケーション等の各種ソフトウェアを提供するソフトウェア提供サーバ,などが挙げられる。
ネットワーク5は,情報処理装置10とサーバ20を双方向通信可能に接続する通信回線網である。このネットワーク5は,例えば,インターネット,電話回線網,衛星通信網等の公衆回線網や,WAN,LAN,IP−VPN等の専用回線網などで構成されており,有線・無線を問わない。さらに,かかるネットワーク5は,ホームネットワーク等の私的ネットワークや,ローカルラインを含んでもよい。
記録媒体7は,ソフトウェア,コンテンツ等の各種データを格納することが可能なリムーバブルメディアであり,例えば,DVD−R,DVD−RW,DVD−RAM,CD−R,CD−RW,光磁気ディスク等の各種の光ディスクや,フレキシブルディスク,ハードディスク等の磁気ディスク,各種の半導体メモリなどである。なお,この記録媒体7は,例えば,暗号キー等を用いてコンテンツのコピーや再生等を制限する著作権管理機能付きの記録媒体であってもよい。
以上,コンテンツ利用システムの構成要素について説明した。かかるコンテンツ利用システムでは,サーバ20は,コンテンツ配信サービスを享受するユーザが所有する情報処理装置10に対し,ネットワーク5を介して,コンテンツを配信する。ここで,コンテンツの配信とは,例えば,コンテンツデータのダウンロード,或いはコンテンツデータのストリーミングのいずれであってもよい。また,サーバ20は,配信するコンテンツを,例えば,各種のMPEG方式等で圧縮し,暗号化して配信してもよい。このようにサーバ20から配信されるコンテンツは,例えば,著作権保護されたコンテンツであり,具体的には,暗号化されたコンテンツデータに対して,当該コンテンツの属性情報やコンテンツ鍵を含むセキュリティ情報が付加されている。このため,情報処理装置10は,適正なライセンスを保有していなければ,配信されたコンテンツを利用することができない。
また,サーバ20は,情報処理装置10に対し,ネットワーク5を介して配信コンテンツのライセンスを提供する。情報処理装置10は,かかるライセンスに基づいて,コンテンツを利用(再生,リッピング,コピー,他の装置(PD等)への転送,編集など)することができる。
さらに,サーバ20は,情報処理装置10に対して,コンテンツを利用するための各種のアプリケーション(応用ソフトウェア)およびこのアプリケーションのインストーラ(例えばインストール用のソフトウェア)を,ネットワーク5を介して提供する。これにより,情報処理装置10は,かかるアプリケーションをインストールして,上記配信されたコンテンツを利用することができる。
また,サーバ20は,情報処理装置10に対して,例えば,上記アプリケーション以外にも,常駐システムプロセス,ミドルウェアなどの各種ソフトウェア,およびこれらのインストーラなどを,ネットワーク5を介して提供するようにしてもよい。この常駐システムプロセスおよびミドルウェアの詳細については後述する。
また,上記アプリケーション,常駐プログラム,ミドルウェアおよびオペレーティングシステムなどのソフトウェア,並びにこれらのインストーラは,記録媒体7を介して,情報処理装置10に提供されてもよい。情報処理装置10は,かかる記録媒体7から上記各種のソフトウェアおよびインストーラを読み出し,当該インストーラを起動して当該ソフトウェアを自身にインストールすることができる。
次に,図2に基づいて,本実施形態にかかる情報処理装置10にインストールされたソフトウェアの構成例について説明する。なお,図2は,本実施形態にかかる情報処理装置10にインストールされたソフトウェアの構成を概略的に示すブロック図である。
図2に示すように,情報処理装置10には,例えば,オペレーティングシステム(Operating Systrem)30と,ミドルウェア40と,複数の常駐システムプロセス50−1,2,…,n(以下では,「常駐システムプロセス50」という。)と,複数のアプリケーション60−1,2,…,m(以下では,「アプリケーション60」という。)と,がインストールされている。
このうち,オペレーティングシステム30は下位層(基本層)を構成し,ミドルウェア40は中間層を構成し,常駐システムプロセス50およびアプリケーション60は上位層を構成している。なお,これらオペレーティングシステム30,ミドルウェア40,常駐システムプロセス50およびアプリケーション60等のソフトウェアは,情報処理装置10にプリインストールされていてもよいし,ユーザによって事後的にインストールされてもよい。
さらに,情報処理装置10は,例えば,これらオペレーティングシステム30,ミドルウェア40,常駐システムプロセス50およびアプリケーション60に対応して,それぞれ,インストーラ32,42,52,62を保有(ハードディスク等に保存)している。これらインストーラ32,42,52,62は,オペレーティングシステム30,ミドルウェア40,常駐システムプロセス50,アプリケーション60を,情報処理装置10にインストールする。
具体的には,インストーラ32,42,52,62は,上記ネットワーク5を介したダウンロード,または記録媒体7等によって提供された圧縮されたソフトウェアを解凍して,記憶装置のハードディスク等の適当な箇所(ディレクトリやフォルダ)にコピーする。さらに,インストーラ32,42,52,62は,例えば,記憶装置(ハードディスク等)に格納された環境設定データベース(レジストリ等)の書き換えを行う。かかるインストール処理によって,当該ソフトウェアが情報処理装置10にインストールされ,情報処理装置10において使用可能な状態となる。
以下に,かかるオペレーティングシステム30,ミドルウェア40,常駐システムプロセス50およびアプリケーション60,およびこれらのインストーラ32,42,52,62について詳細に説明する。
まず,オペレーティングシステム30(以下「OS30」という。)について説明する。OS30は,情報処理装置10を効率的に使用できるよう設計された基本ソフトウェアである。このOS30は,上記ミドルウェア40,常駐システムプロセス50およびアプリケーション60等のソフトウェアの実行管理を行う。また,OS30は,情報処理装置10を構成する制御装置,演算装置,記憶装置,入出力装置,通信装置等のハードウェアの動作管理などを行う。以下では,このOS30として,米国のマイクロソフト社が提供するWindows(Windows NT,98,2000,Me,XP等を含む。いずれも登録商標)を採用した例について説明する。しかし,本発明は,かかる例に限定されず,OS30は,例えば,UNIX(登録商標),Mac OS(登録商標),Linux(登録商標)などであってもよい。
また,OS用インストーラ32は,上記OS30をインストールするソフトウェアであり,記憶装置のハードディスク等に保存されている。このOS用インストーラ32を動作させることで,記録媒体5等を介して提供されたOS30を情報処理装置10にインストールすることができる。
次に,ミドルウェア40について説明する。ミドルウェア40は,OS30とアプリケーション60との中間に位置するソフトウェアであり,アプリケーション60や常駐システムプロセス50の処理を効率化する。本実施形態では,このミドルウェア40は,複数のアプリケーション60や常駐システムプロセス50によって共有される1又は2以上の共有モジュールで構成されている。
この共有モジュールは,複数のアプリケーション60や常駐システムプロセス50が共通して利用する汎用性の高いプログラムを,機能毎に部品化したプログラムであり,複数のファイルに分けて管理される。アプリケーション60や常駐システムプロセス50等は,必要な共有モジュールのみをメモリに読み出して使用する。このような共有モジュールをミドルウェア40として設けることによって,用途の同じ共有モジュールを複数のアプリケーション60等によって同時に共有できるので,アプリケーション60等の処理を効率化できる。また,共有モジュールとして提供されている機能は開発せずに済むので,アプリケーション60や常駐システムプロセス50の開発効率を向上できる。さらに,同じ共有モジュールを複数のアプリケーション60や常駐システムプロセス50で共有するので,記憶装置(ハードディスクやメモリ等)の容量を節約できる。
本実施形態では,この共有モジュールが,DLL(Dynamic Link Library;ダイナミック・リンク・ライブラリ)である例について主に説明する。このDLLは,OS30がWindowsである場合において,拡張子「.dll」を有するファイルで管理されるライブラリである。なお,OS30がUNIXである場合には,上記共有モジュールはシェアードライブラリ(Shared Library)と呼ばれる。
また,ミドルウェア用インストーラ42は,上記ミドルウェア40をインストールするソフトウェアであり,記憶装置のハードディスク等に保存されている。このミドルウェア用インストーラ42(以下では,単に「インストーラ42」という。)は,本実施形態における「ミドルウェアインストール手段」を構成する。このインストーラ42を動作させることで,ミドルウェア40を情報処理装置10にインストールすることができる。このインストールは,新規インストールと,バージョン更新時のインストールの双方を含む。かかるミドルウェア40のインストール時(更新時)には,すべての共有モジュール(例えばDLL)を書き換えるのではなく,必要な共有モジュール(例えばDLL)のみが書き換えられる。
かかるミドルウェア40のインストール処理は,ミドルウェア40自体をインストールする際のみならず,例えば,常駐システムプロセス50およびアプリケーション60のインストール時にも実行される。即ち,インストーラ42は,常駐システムプロセス50またはアプリケーション60のインストール時に,常駐システムプロセス50のインストーラ52またはアプリケーション60のインストーラ62によって起動され,インストールされた常駐システムプロセス50またはアプリケーション60の内容に応じて,対応するミドルウェア40を更新する処理を行う。
なお,図1の例では,1つのミドルウェア40とこれに対応する1つのインストーラ42しか示されていないが,本発明は,かかる例に限定されない。情報処理装置10には複数のミドルウェア40がインストールされ,これに対応する複数のインストーラ42が保存されていてもよい。この場合には,各アプリケーション60や各常駐システムプロセス50は,必要に応じて複数のミドルウェア40(共有モジュール)を使用して,処理を実行する。
次に,常駐システムプロセス50について説明する。常駐システムプロセス(バックグラウンド・システムプロセス)50は,情報処理装置10のメモリに常駐し,所定の条件が満たされたときに起動して様々なサービスを提供するソフトウェアである。この常駐システムプロセス50は,システムのバックグラウンドで動作し,ユーザによってその動作が意識されにくい比較的堅牢なソフトウェアである。かかる常駐システムプロセス50の例としては,例えば,OS30がWindowsである場合の「Windowsサービス」や,OS30がUNIXである場合の「デーモン(demon)」などが挙げられる。
この常駐システムプロセス50は,例えば,ファイル管理機能や,ネットワーク5を介した通信機能(コンテンツ,ライセンス,電子メール等の送受信,コンテンツのストリーミングなど),コンテンツの再生等のコンテンツ処理機能,印刷機能,WEBサーバとしての機能など,多様な機能をサポートする。また,常駐システムプロセス50は,処理を行う際に,上記ミドルウェア40のうち必要な共有モジュール(DLL等)を読み出して使用する。このため,常駐システムプロセス50の動作時には,当該常駐システムプロセス50によって使用されている共有モジュールのファイルはロックされ,当該共有モジュールをバージョン更新等するためのインストールを実行不能である。
また,複数の常駐システムプロセス50の間で,依存関係が存在する場合もある。この常駐システムプロセス50相互の依存関係とは,ある常駐システムプロセス50−1(基本常駐システムプロセス)が動作して初めて,他の常駐システムプロセス50−2(応用常駐システムプロセス)が動作できるような関係のことである。
具体的には,例えば,常駐システムプロセス50−1が,サーバ20と情報処理装置10との間でHTTP(HyperText Transfer Protocol)準拠でデータ通信を行うためのソフトウェアであり,常駐システムプロセス50−2が,サーバ20と情報処理装置10との間でコンテンツのストリーミングを行うためのソフトウェアである場合を想定する。この場合には,データ通信の基本常駐システムプロセスである常駐システムプロセス50−1が動作していなければ,データ通信の応用常駐システムプロセスである常駐システムプロセス50−2は動作することができない。かかる例は,2つの常駐システムプロセス50が依存関係を有する場合の例であるが,3つ以上の常駐システムプロセス50が例えばツリー構造の依存関係を有する場合もありうる。
また,常駐システムプロセス用インストーラ52−1,2,…,nは,それぞれ,上記各常駐システムプロセス50−1,2,…,nをインストールするソフトウェアであり,記憶装置のハードディスク等に保存されている。この常駐システムプロセス用インストーラ52−1,2,…,n(以下では,単に「インストーラ52」という。)は,本実施形態における「常駐システムプロセスインストール手段」を構成する。
このインストーラ52を動作させることで,対応する常駐システムプロセス50を情報処理装置10にインストールすることができる。また,かかる常駐システムプロセス50のインストール時には,インストーラ52は,インストールされた常駐システムプロセス50が使用するミドルウェア40の共有モジュールを更新するため,当該ミドルウェア40のインストーラ42を起動させる。
なお,このインストーラ52は,上記依存関係の有無に関わらず,図2に示すように各常駐システムプロセス50に1対1対応で設けられてもよいし,或いは,依存関係のある複数の常駐システムプロセス50に対して1つのインストーラ52が設けられてもよい。
次に,アプリケーション60について説明する。このアプリケーション60は,特定の処理を実行する応用ソフトウェアである。具体的には,アプリケーション60は,例えば,コンテンツを再生するアプリケーション(コンテンツプレーヤ)や,上記サーバ20が提供するコンテンツ配信サービスを利用(コンテンツおよびそのライセンスの選択,購入,受信等)するためのアプリケーション,記録媒体7等からコンテンツをリッピングするアプリケーション,コンテンツを記録(録音,録画等)するアプリケーション,コンテンツをコピー,編集等するアプリケーション,他の機器(PC,PD等)との間でコンテンツを送受信するためのアプリケーションなど,コンテンツを利用するための各種アプリケーションである。また,これら以外にも,アプリケーション60は,例えば,文書入力支援アプリケーション,表計算アプリケーション,プレゼンテーション用アプリケーション,電子メール送受信用アプリケーション,閲覧用アプリケーション(ブラウザ等),ゲーム用アプリケーションなど,情報処理装置10にインストール可能な任意のアプリケーションを含む。
かかるアプリケーション60は,ユーザ入力等や設定条件等に基づいて,必要に応じて上記ミドルウェア40を使用しながら,上記のような所定の処理を実行する。このアプリケーション60は,システムのフォアグラウンドで動作し,上記常駐システムプロセス50と比して,ユーザによってその動作が意識されやすい。
また,アプリケーション用インストーラ62−1,2,…,mは,それぞれ,上記各アプリケーション1,2,…,mをインストールするソフトウェアであり,記憶装置のハードディスク等に保存されている。このアプリケーション用インストーラ62(以下では,単に「インストーラ62」という。)は,本実施形態における「アプリケーションインストール手段」を構成する。このインストーラ62を動作させることで,対応するアプリケーション60を情報処理装置10にインストールすることができる。また,かかるアプリケーション60のインストール時には,インストーラ62は,インストールされたアプリケーション60が使用するミドルウェア40の共有モジュールを更新するため,当該ミドルウェア40のインストーラ42を起動させる。
以上,情報処理装置10にインストールされた各種のソフトウェア30,40,50,60,およびこれらのインストーラ32,42,52,62について詳細に説明した。
ところで,上述したように,ミドルウェア40をインストールする際に,このミドルウェア40を使用する1又は2以上の常駐システムプロセス50が動作している状態のままでは,当該ミドルウェア40を構成する共有モジュール(DLL等)のファイルがロックされ,当該ミドルウェア40を更新(共有モジュールを上書き)することができない。そこで,かかる問題に対処すべく,本実施形態にかかる情報処理装置10は,以下に説明するように,ミドルウェア40のインストール時に,当該ミドルウェア40を使用する常駐システムプロセス50を停止させた後に,当該ミドルウェア40のインストールを実行することを特徴とする。
次に,図3に基づいて,本実施形態にかかるミドルウェア40のインストール時において,常駐システムプロセス50の停止処理を行うための構成について説明する。なお,図3は,本実施形態にかかるミドルウェア40のインストール時において,常駐システムプロセス50の停止処理を行うための構成を概略的に示すブロック図である。
本実施形態にかかる情報処理装置10においては,(1)レジストリ70に登録された常駐システムプロセス識別子に基づいて,常駐システムプロセス50の動作を停止する第1の停止処理と,(2)既存常駐システムプロセスリスト44に含まれる常駐システムプロセス識別子に基づいて,常駐システムプロセス50の動作を停止する第2の停止処理と,を実行可能である。以下に,この第1および第2の停止処理について詳述する。
(第1の停止処理)
まず,第1の停止処理について説明する。図3に示すように,各常駐システムプロセス50のインストーラ52は,自身に対応する常駐システムプロセス50のインストール時に,当該常駐システムプロセス50の常駐システムプロセス識別子をレジストリ70に登録する。
レジストリ70は,例えば,本実施形態における「ソフトウェアの環境設定データが記録されるデータベース(環境設定用データベース)」を構成し,OS30が例えばWindowsである場合に用いられる。このレジストリ70は,情報処理装置10の記憶装置を構成するハードディスク等に保存されている。かかるレジストリ70には,例えば,情報処理装置10を構成するハードウェアの設定情報や,上記OS30,ミドルウェア40,常駐システムプロセス50およびアプリケーション60等のソフトウェアの環境設定データ,或いはこれらのソフトウェアの関連づけデータなどが記録される。なお,OS30がUNIXなどである場合には,上記レジストリ70とは異なる環境設定用データベースが用いられる。
また,常駐システムプロセス識別子は,常駐システムプロセス50を一意に特定する識別子であり,例えば,常駐システムプロセス名,常駐システムプロセスID,またはポート番号などを採用できる。常駐システムプロセス名は,常駐システムプロセス50の名前を表すヒューマンリーダブルな文字列であり,例えば,OS30がWindows等である場合に用いられる。一方,常駐システムプロセスIDは,常駐システムプロセス50単位で固有に付されるIDであり,OS30がUNIX等である場合に用いられる。
各常駐システムプロセス50のインストーラ52は,例えば,インストールされた常駐システムプロセス50の常駐システムプロセス識別子をレジストリ70内の登録リスト72に書き込むことによって,レジストリ70に登録する。この際,インストーラ52は,インストールされた常駐システムプロセス50が使用する1又は2以上のミドルウェア40に関連づけて,当該常駐システムプロセス50の常駐システムプロセス識別子を登録する。
また,インストーラ52は,インストールされた常駐システムプロセス50が他の常駐システムプロセス50と依存関係にある場合には,インストールされた常駐システムプロセス50の常駐システムプロセス識別子に加えて,上記依存関係にある他の常駐システムプロセス50の常駐システムプロセス識別子もレジストリ70に登録する。
具体的には,インストーラ52は,自身に対応する常駐システムプロセス50に関する依存情報54を保有している。この依存情報54は,常駐システムプロセス50相互の依存関係を表す情報(例えば,依存関係にある複数の常駐システムプロセスの常駐システムプロセス識別子のリスト)である。かかる依存情報54は,例えば,常駐システムプロセス50の開発時に,開発者によって作成され,当該常駐システムプロセス50に対応するインストーラ52に付加されている。
各インストーラ52は,自身に対応する常駐システムプロセス50のインストール時に,かかる依存情報54から,依存関係にある他の常駐システムプロセス50の常駐システムプロセス識別子を読み出し,かかる常駐システムプロセス識別子をレジストリ50の登録リスト54に書き込む。これにより,依存関係を有する複数の常駐システムプロセス50の常駐システムプロセス識別子をまとめてレジストリ70に登録できる。
ここで,図4に基づいて,本実施形態にかかるレジストリ70の登録リスト72の構造例について説明する。なお,図4(a)は,本実施形態にかかるレジストリ70の登録リスト72の構造例を示す説明図である。なお,図4(b)は,参考として,UNIXにおける環境設定データベースの登録リスト76の構造例を示す説明図である。
図4(a)に示すように,レジストリ70の登録リスト72には,各ミドルウェア40(#1,#2,…)毎に,それぞれ,上記常駐システムプロセス識別名が関連づけて登録されている。例えば,ミドルウェア#1には,音楽コンテンツのストリーミング等を行う常駐システムプロセス50の名称である「Vaio Media Music Server」,Http準拠の通信処理を行う常駐システムプロセス50の名称である「Http Communication」などといった常駐システムプロセス識別名が,関連づけて登録されている。
従って,かかる登録リスト72によって,上記常駐システムプロセス識別名で特定される複数の常駐システムプロセス50が情報処理装置10にインストールされていること,並びに当該常駐システムプロセス50がミドルウェア#1を使用して動作することを表すことができる。また,ヒューマンリーダブルな常駐システムプロセス識別名で登録することにより,登録リスト72を参照したユーザは,いかなる常駐システムプロセス50が登録されているかを把握できる。
一方,図4(b)に示すように,UNIX用の環境設定データベースの登録リスト76には,各ミドルウェア40(#1,#2,…)毎に,それぞれ,上記常駐システムプロセスIDが関連づけて登録されている。例えば,ミドルウェア#1には,「1234−5678」および「2234−5678」などの常駐システムプロセスIDが関連づけて登録されている。従って,かかる登録リスト76によって,これらの常駐システムプロセス識別IDで特定される常駐システムプロセス50が情報処理装置10にインストールされていること,並びに当該常駐システムプロセス50がミドルウェア#1を使用して動作することを表すことができる。
以上のようにして,各常駐システムプロセス50のインストーラ52は,常駐システムプロセス50のインストール時に,インストールされた常駐システムプロセス50の常駐システムプロセス識別子を,ミドルウェア40に関連づけて,レジストリ70の登録リスト72に登録する。複数の常駐システムプロセス50がインストールされた場合には,複数の常駐システムプロセス識別子がそれぞれ登録される。さらに,依存関係を有する常駐システムプロセスをインストールした場合には,インストールされた常駐システムプロセス50と依存関係のある他の常駐システムプロセス50の常駐システムプロセス識別子も登録リスト72に登録される。また,上記のように登録された常駐システムプロセス識別子は,その常駐システムプロセス50のアンインストール時にも消去されない。
また,インストーラ52は,例えば,複数の常駐システムプロセス50の依存関係を表す情報を,例えば,上記登録リスト72とは別に,例えばツリー構造(階層構造)のデータ形式でレジストリ70に登録する。また,インストーラ52は,常駐システムプロセス50のインストール時に,対応するミドルウェア40のインストーラ42を呼び出し,当該常駐システムプロセス50のインストールに関連するミドルウェア40のインストール(更新)を実行するように要求する。
以上のような常駐システムプロセス50の登録を行っておくことにより,それ以後のミドルウェア40のインストール時に,必要に応じて,常駐システムプロセス50の動作を停止することができるようになる。
具体的には,ミドルウェア40のインストールを行う場合には,各ミドルウェア40のインストーラ42は,ミドルウェア40をインストールする前に,まず,レジストリ42の登録リスト72を参照して,インストール対象のミドルウェア40を使用する常駐システムプロセス50の常駐システムプロセス識別子が登録されているか否かを判断する。この結果,登録されている場合には,インストーラ42は,登録リスト72に登録されている常駐システムプロセス識別子を読み出し,読み出した常駐システムプロセス識別子を例えばOS30に出力する。
例えばOS30は,常駐システムプロセス識別子によって指定された常駐システムプロセス50の動作を停止する停止モジュール34を有している。この停止モジュール34は,例えば,OS30に対応したAPI(Application Program Interface)に従って作成されている。かかる停止モジュール34は,上記インストーラ42から,常駐システムプロセス識別子が入力されると,入力された常駐システムプロセス識別子に対応する常駐システムプロセス50の動作を停止する。このように,停止モジュール34は,本実施形態における「常駐システムプロセス停止手段」を構成する。
このようにして,レジストリ70に登録されている常駐システムプロセス識別子に対応する常駐システムプロセス50の動作を停止することにより,インストーラ42によるインストール対象のミドルウェア40を使用する常駐システムプロセス50の動作を停止することができる。
以上のような第1の停止処理は,特に,インストール対象のミドルウェア40の開発・リリース後に,このミドルウェアを使用する常駐システムプロセスが開発・リリースされたため,インストーラ42が当該常駐システムプロセス50の存在を把握していない場合に有効である。このような場合であっても,当該常駐システムプロセス50のインストール時に,その常駐システムプロセス識別子がレジストリ70に登録されていれば,ミドルウェア40のインストール時に当該常駐システムプロセス50を停止させることができる。
(第2の停止処理)
次に,第2の停止処理について説明する。各インストーラ42は,各ミドルウェア40に対応する既存常駐システムプロセスリスト44をそれぞれ保有している。この既存常駐システムプロセスリスト44は,ミドルウェア40を使用する常駐システムプロセス50のうち,当該ミドルウェア40の開発時に既に存在していた1又は2以上の常駐システムプロセス50の識別子のリストである。換言すると,既存常駐システムプロセスリスト44は,ミドルウェア40の開発時に既にリリースされており,当該ミドルウェア40を使用して動作することが当該ミドルウェア40の開発時点において開発者によって既知であった1又は2以上の常駐システムプロセス50の識別子のリストである。
ミドルウェア40の開発者は,ミドルウェア40の開発前にリリースされた常駐システムプロセス50のうち,当該ミドルウェア40を使用する常駐システムプロセス50を把握している。従って,開発者は,当該ミドルウェア40に関する既存常駐システムプロセスリスト44を作成して,この既存常駐システムプロセスリスト44を当該ミドルウェア40のインストーラ42に付加することができる。
インストーラ42は,インストール対象のミドルウェア40のインストールを行う前に,自身の保有する既存常駐システムプロセスリスト44から,常駐システムプロセス識別子を読み出し,読み出した常駐システムプロセス識別子を例えばOS30に出力する。OS30の停止モジュール34は,上記と同様にして,入力された常駐システムプロセス識別子に対応する常駐システムプロセス50の動作を停止する。
このようにして,ミドルウェア40のインストール時に,上記既存常駐システムプロセスリスト44に含まれている常駐システムプロセス識別子に対応する常駐システムプロセス50の動作が停止される。これにより,インストール対象のミドルウェア40を使用する常駐システムプロセス50のうち,当該ミドルウェア40を使用することが当該ミドルウェア40の開発時において既知であった常駐システムプロセス50の動作を停止することができる。
以上のような第2の停止処理は,特に,レジストリ70に未登録の常駐システムプロセス50が存在する場合に有効である。つまり,例えば,常駐システムプロセス50のインストーラが,上記インストーラ52のようにレジストリ70への登録を行わないものである場合などには,上記第1の手法では,未登録当該常駐システムプロセス50の動作を停止不能である。そこで,第2の停止処理によって,未登録の常駐システムプロセス50のうち,上記ミドルウェア40を使用することが当該ミドルウェア40の開発時において既知であった常駐システムプロセス50の動作を停止することによって,上記第1の停止処理を好適にバックアップすることができる。
以上,インストール対象のミドルウェア40を使用する常駐システムプロセス50を停止させる2種類の停止処理について説明した。かかる2つの停止処理を併用することによって,インストール対象のミドルウェア40を使用する常駐システムプロセス50の動作を,より確実に停止することができる。このため,ミドルウェア40のインストール時(DLL等の共有モジュールの更新時など)に,当該常駐システムプロセス50による使用が原因で共有モジュールがロックされることがないので,インストーラ42は,上記インストール対象のミドルウェア40を好適にインストールすることができる。
なお,上記では,OS30が停止モジュール34を有していたが,本発明は,かかる例に限定されず,ミドルウェア40若しくはインストーラ42などが,停止モジュール34を有していてもよい。インストーラ42が停止モジュール34を有する場合には,このインストーラ42は,「ミドルウェアインストール手段」および「常駐システムプロセス停止手段」の双方を構成することになる。
次に,上記のような構成の情報処理装置10におけるミドルウェア40のインストール方法について説明する。本実施形態にかかるミドルウェア40のインストール方法は,常駐システムプロセス50のインストール時に,その常駐システムプロセス50をレジストリ70に登録しておくことが前提となっている。そこで,以下には,まず,常駐システムプロセス50のインストール処理方法について説明した上で,ミドルウェア40のインストール処理方法について説明する。
まず,図5に基づいて,本実施形態にかかる常駐システムプロセス50のインストール処理方法について説明する。なお,図5は,本実施形態にかかる常駐システムプロセス50のインストール処理方法を示すフローチャートである。
図5に示すように,まず,ステップS102では,常駐システムプロセス50のインストール要求がなされる(ステップS102)。具体的には,情報処理装置10のユーザが入力装置を操作して,所定の常駐システムプロセス50のインストール要求を行うと,インストール要求を受けた常駐システムプロセス50のインストーラ52が起動する。また,例えば,常駐システムプロセス50がオートアップデートされる場合などには,ネットワーク5を介した新バージョンの常駐システムプロセス50のダウンロードが,インストール要求に該当するので,かかるダウンロードに伴ってインストーラ52が起動する。
次いで,ステップS104では,常駐システムプロセス50がインストールされる(ステップS104)。インストール対象の常駐システムプロセス50のインストーラ52は,当該インストール対象の常駐システムプロセス50をインストールする。具体的には,インストーラ52は,ネットワーク5を介したダウンロードまたは記録媒体7等によって提供された常駐システムプロセス50のファイルを,ハードディスク等の適当な箇所(ディレクトリやフォルダ)にコピーする。さらに,インストーラ52は,例えば,インストールされた常駐システムプロセス50に関して,環境設定データや他のソフトウェアとのリンク情報などを,レジストリ70に記録する。
さらに,ステップS106では,インストールされた常駐システムプロセス50の常駐システムプロセス識別子が,レジストリ70に登録される(ステップS106)。具体的には,インストーラ52は,上記ステップS104でインストールされた常駐システムプロセス50の常駐システムプロセス識別子(例えば常駐システムプロセス名)を,レジストリ70の登録リスト72に書き込む。この際,常駐システムプロセス識別子は,当該常駐システムプロセス50が使用するミドルウェア40に関連づけて登録リスト72に書き込まれる。さらに,当該常駐システムプロセス50と依存関係を有する他の1又は2以上の常駐システムプロセス50が存在する場合には,インストーラ52は,依存関係のある常駐システムプロセス50の常駐システムプロセス識別子も,登録リスト72に書き込む。
なお,本ステップS106における常駐システムプロセス識別子の登録処理は,上記ステップS104におけるインストール処理よりも前に行われてもよい。この場合には,インストール処理の前に,インストール対象の常駐システムプロセス50の常駐システムプロセス識別子がレジストリ70に登録される。
その後,ステップS108では,対応するミドルウェア40のインストールが要求される(ステップS108)。具体的には,常駐システムプロセス50のインストーラ52は,常駐システムプロセス50が使用する1又は2以上のミドルウェア40のインストーラ42に対し,常駐システムプロセス50のインストールに伴う当該ミドルウェア40のインストール処理(DLLの更新処理等)を要求する。
次いで,ステップS110では,ミドルウェア40のインストール処理がなされる(ステップS110)。上記ステップS108でインストール要求されたミドルウェア40のインストーラ42は,上記常駐システムプロセス50のインストール内容に応じて,当該ミドルウェア40を更新するインストールを行う。なお,本ステップS110の詳細については後述する(図6参照)。
以上,1つの常駐システムプロセス50のインストール処理方法について説明した。複数の常駐システムプロセス50について上記のようなインストール処理を繰り返すことによって,レジストリ70には複数の常駐システムプロセス識別子(例えば常駐システムプロセス名)が登録される。
なお,アプリケーション60のインストール処理方法は,上記常駐システムプロセス50のインストール処理方法と比較して,ステップS106を含まない点を除いては,略同一であるので,詳細説明は省略する。
次に,図6に基づいて,本実施形態にかかるミドルウェア40のインストール処理方法について説明する。なお,図6は,本実施形態にかかるミドルウェア40のインストール処理方法を示すフローチャートである。
図6に示すように,まず,ステップS202では,ミドルウェア40のインストール要求がなされる(ステップS202)。このミドルウェア40のインストール要求は,例えば,(1)上記図5に示したような常駐システムプロセス50のインストール時における,常駐システムプロセス50のインストーラ52からの要求,(2)アプリケーション60のインストール時における,アプリケーション60のインストーラ62からの要求,(3)ミドルウェア40単独のインストール時おける,ユーザからの要求,(4)ミドルウェア40単独のオートアップデート時おける,新バージョンのミドルウェア40を,ネットワーク5等を介して受信等したことに伴う要求,などがある。このようなインストール要求がなされると,インストール要求を受けたミドルウェア40のインストーラ42が起動する。
次いで,ステップS204では,インストール対象のミドルウェア40に対応する常駐システムプロセス識別子が,レジストリ70に登録されているか否かが判断される(ステップS204)。具体的には,ミドルウェア40のインストーラ42は,レジストリ70の登録リスト72に,インストール対象のミドルウェア40に関して,常駐システムプロセス識別子(例えば常駐システムプロセス名)が書き込まれているか否かを判断する。この判断の結果,当該常駐システムプロセス識別子が登録リスト72に書き込まれている場合には,第1の停止処理を行うためステップS206に進み,一方,当該常駐システムプロセス識別子が登録リスト72に書き込まれていない場合には,第1の停止処理を行うことなく第2の停止処理を行うためステップS214に進む。
さらに,ステップS206では,レジストリ70から,常駐システムプロセス識別子が例えば1つずつ読み出される(ステップS206)。具体的には,インストーラ42は,レジストリ70の登録リスト72から,インストール対象のミドルウェア40に関連づけて登録されている常駐システムプロセス識別子を,例えば先に登録されているものから順に(例えば,登録リスト72の上に書かれているものから順に),例えば1つずつ読み出す。
その後,ステップS208では,読み出した常駐システムプロセス識別子に対応する常駐システムプロセス50に,他の常駐システムプロセス50が依存しているか否かが判断される(ステップS208)。具体的には,インストーラ42は,レジストリ70に登録されている上記依存関係の情報に基づいて,上記ステップS206で読み出した常駐システムプロセス識別子に対応する常駐システムプロセス50に,他の常駐システムプロセス50が依存しているか否かを判断する。この判断の結果,上記読み出した常駐システムプロセス識別子に対応する常駐システムプロセス50に,他の常駐システムプロセス50が依存している場合には,他の常駐システムプロセス50を先に停止しなければ,当該読み出した常駐システムプロセス識別子に対応する常駐システムプロセス50を停止できないので,ステップS212に進む。一方,上記読み出した常駐システムプロセス識別子に対応する常駐システムプロセス50に,他の常駐システムプロセス50が依存していない場合には,当該読み出した常駐システムプロセス識別子に対応する常駐システムプロセス50を停止可能であるので,ステップS210に進む。
次いで,ステップS210では,上記ステップS206で読み出した常駐システムプロセス識別子に対応する常駐システムプロセス50の停止処理がなされる(ステップS210)。具体的には,ミドルウェア40のインストーラ42は,読み出した常駐システムプロセス識別子を例えばOS30の停止モジュール34に出力する。停止モジュール34は,上記インストーラ42から,常駐システムプロセス識別子が入力されると,入力された常駐システムプロセス識別子に対応する常駐システムプロセス50の動作を停止する。なお,かかる停止モジュール34は,ミドルウェア40のインストーラ42が具備してもよい。
さらに,ステップS212では,レジストリ70に登録されている常駐システムプロセス識別子に対応する常駐システムプロセス50がすべて停止されたか否かが判断される(ステップS212)。具体的には,インストーラ42は,レジストリ70の登録リストに登録されている常駐システムプロセス識別子に対応する常駐システムプロセス50が,すべて停止されたか否かを判断する。この判断の結果,登録されているすべての常駐システムプロセス50が停止されておらず,まだ動作中のものがあると判断された場合には,ステップS206に戻り,次の常駐システムプロセス識別子が読み出されて,上記ステップS208およびS210と同様な処理がなされる。一方,登録されているすべての常駐システムプロセス50が停止されたと判断された場合には,第1の停止処理を終了し,第2の停止処理を行うためステップS214に進む。
ここで,図7に基づいて,上記第1の停止処理のS206〜212における常駐システムプロセス50の停止順序の具体例について説明する。なお,図7は,本実施形態にかかる第1の停止処理における常駐システムプロセス50の停止順序の具体例を説明するための説明図である。
図7(a)に示すように,レジストリ70の登録リスト72に,4つの常駐システムプロセスA〜Dの常駐システムプロセス名が登録されているものとする。この例において,全ての常駐システムプロセスA〜Dの間で依存関係がない場合には,他の常駐システムプロセスを停止しなくても,各常駐システムプロセスA〜Dを独立的に停止できる。従って,この場合には,図7(b)に示すように,登録リスト72に登録された順通りに,A→B→C→Dの順で停止試行を行い,停止が制限されることなく,同じ順序で常駐システムプロセスA〜Dが停止される。
一方,常駐システムプロセスDが常駐システムプロセスBに依存している(即ち,常駐システムプロセスBが動作しなければ常駐システムプロセスDが動作できない)場合には,依存されている常駐システムプロセスDを停止した後でなければ,依存している常駐システムプロセスBを停止できない。このため,この場合には,図7(b)に示すように,A→B→C→D→Bの順で停止試行を行い,この結果,A→C→D→Bの順で常駐システムプロセスA〜Dが停止される。
具体的には,まず,登録リスト72の最初(1番目)に記載されている常駐システムプロセスAの常駐システムプロセス名が読み出され,常駐システムプロセスAが停止される。次いで,登録リスト72の次(2番目)に記載されている常駐システムプロセスBの常駐システムプロセス名が読み出されるが,上記依存関係があるため常駐システムプロセスBを停止できない。よって,常駐システムプロセスBを動作させたままで,登録リスト72の次(3番目)に記載されている常駐システムプロセスCの常駐システムプロセス名が読み出され,常駐システムプロセスCが停止される。さらに,常駐システムプロセスCの停止後に,登録リスト72の最後(4番目)に記載されている常駐システムプロセスDの常駐システムプロセス名が読み出され,常駐システムプロセスDが停止される。しかし,この時点では,常駐システムプロセスBがまだ動作中であるので,再度,登録リスト72の上から順に停止処理を行う。この場合には,常駐システムプロセスBが依存している常駐システムプロセスDが既に停止されているので,再度停止を試みた常駐システムプロセスBを停止することができる。
このような停止手法により,ミドルウェア40のインストーラ42は,登録されている常駐システムプロセス50の依存関係を気にすることなく,動作している複数の常駐システムプロセス50を簡単かつ確実に停止することができる。
以上のような第1の停止処理(ステップS204〜S212)によって,インストール対象のミドルウェア40についで,レジストリ70に登録されている常駐システムプロセス識別子の常駐システムプロセス50が停止される。
次いで,ステップS214では,既存常駐システムプロセスリスト44に含まれる常駐システムプロセス識別子に対応する常駐システムプロセス50が,動作中であるか否かが判断される(ステップS214)。具合的には,インストール対象のミドルウェア40のインストーラ42は,自己の保有する既存常駐システムプロセスリスト44に含まれている常駐システムプロセス識別子に対応する常駐システムプロセス50のうち少なくともいずれかが,依然として動作中であるか否かを判断する。この判断の結果,動作中であると判断された場合には,ステップS216に進み,一方,すべて停止していると判断された場合には,ステップS218に進む。
さらに,ステップS216では,動作中の常駐システムプロセス50の停止処理がなされる。(ステップS216)。具体的には,ミドルウェア40のインストーラ42は,上記ステップS214で依然として動作中であると判断した常駐システムプロセス50の常駐システムプロセス識別子を,既存常駐システムプロセスリスト44から読み出して,例えばOS30の停止モジュール34に出力する。停止モジュール34は,上記インストーラ42から,常駐システムプロセス識別子が入力されると,入力された常駐システムプロセス識別子に対応する常駐システムプロセス50の動作を停止する。
以上のような第2の停止処理(ステップS214〜S216)によって,既存常駐システムプロセスリスト44に基づいて常駐システムプロセス50が停止される。なお,かかる第2の停止処理(ステップS214〜S216)は,第1の停止処理(ステップS204〜S212)よりも前に実行されてもよい。
その後,ステップS218では,ミドルウェア40がインストールされる(ステップS218)。インストール対象のミドルウェア40のインストーラ42は,当該インストール対象のミドルウェア40をインストール(DLL等の共有モジュールの更新など)する。
具体的には,インストーラ42は,ネットワーク5を介したダウンロードまたは記録媒体7等によって提供されたミドルウェア40のファイルを,ハードディスク等の適当な箇所(ディレクトリやフォルダ)にコピーする。さらに,インストーラ42は,例えば,インストールされたミドルウェア40に関して,環境設定データや他のソフトウェア(常駐システムプロセス50,アプリケーション60等)とのリンク情報などを,レジストリ70に記録する。これにより,常駐システムプロセス50等は,インストール後(DLL等のモジュールの更新後)のミドルウェア40を使用して好適に動作できるようになる。
かかるミドルウェア40のインストール時には,上記のようにして当該ミドルウェア40を使用する常駐システムプロセス50が停止されており,共有モジュールがロックされないので,当該ミドルウェア40を好適にインストール可能である。
以上,本実施形態にかかる情報処理装置,プログラムおよびこれらを用いたインストール方法について説明した。本実施形態によれば,予めミドルウェア40のインストーラ42と常駐システムプロセス50のインストーラ52との間で,上記のようなインストールのルールを定めている。これにより,ミドルウェア40のインストール時には,当該ミドルウェア40に対応する常駐システムプロセス50を自動的に停止させて,当該ミドルウェア40を好適にインストール可能である。このため,ミドルウェア40のインストールに失敗することがない。
さらに,ミドルウェア40のリリース後に,ミドルウェア40のインストーラ42が把握していない常駐システムプロセス50がリリースされたとしても,当該常駐システムプロセス50を確実に停止させることができる。
また,ユーザに対し,常駐システムプロセス50を手動で停止させることを強制しなくて済む。また,ユーザは,常駐システムプロセスが起動中であるか否かを意識することなく,所望のソフトウェア(ミドルウェア40,常駐システムプロセス50またはアプリケーション60等)を簡単にインストールすることができる。
以上,添付図面を参照しながら本発明の好適な実施形態について説明したが,本発明は係る例に限定されないことは言うまでもない。当業者であれば,特許請求の範囲に記載された範疇内において,各種の変更例または修正例に想到し得ることは明らかであり,それらについても当然に本発明の技術的範囲に属するものと了解される。