(57)【特許請求の範囲】
【請求項１】
ソフトウェアコンポーネントと、当該ソフトウェアコンポーネントのインストール先のミドルウェアとの対応関係を得るための定義情報を読み込むステップと、
複数のソフトウェアコンポーネントを取得するステップと、
複数のミドルウェアのうち、前記複数のソフトウェアコンポーネントの各々のインストール先のミドルウェアを、前記定義情報から得られる対応関係に基づいて決定するステップと、
前記複数のソフトウェアコンポーネントの各々を前記インストール先のミドルウェアにインストールするステップと
を含むことを特徴とするソフトウェアコンポーネントのインストール方法。
【請求項２】
前記読み込むステップでは、ソフトウェアコンポーネントと、当該ソフトウェアコンポーネントを配置すべきディレクトリとを対応付けた前記定義情報を読み込み、
前記インストールするステップでは、前記複数のソフトウェアコンポーネントの各々を、前記定義情報に基づいて決定されるディレクトリに配置することを特徴とする請求項１記載のソフトウェアコンポーネントのインストール方法。
【請求項３】
前記読み込むステップでは、ソフトウェアコンポーネントと、当該ソフトウェアコンポーネントをインストールする際に実行すべき処理とを対応付けた前記定義情報を読み込み、
前記インストールするステップでは、前記複数のソフトウェアコンポーネントの各々をインストールする際に、前記定義情報に基づいて決定される処理を実行することを特徴とする請求項１記載のソフトウェアコンポーネントのインストール方法。
【請求項４】
前記読み込むステップでは、ソフトウェアコンポーネントと、当該ソフトウェアコンポーネントの属性とを対応付けた前記定義情報を読み込み、
前記インストールするステップでは、前記複数のソフトウェアコンポーネントの各々を、前記定義情報に基づいて決定される属性に応じたディレクトリに配置することを特徴とする請求項１記載のソフトウェアコンポーネントのインストール方法。
【請求項５】
前記読み込むステップでは、ソフトウェアコンポーネントと、当該ソフトウェアコンポーネントの属性とを対応付けた前記定義情報を読み込み、
前記インストールするステップでは、前記複数のソフトウェアコンポーネントの各々をインストールする際に、前記定義情報に基づいて決定される属性に応じた処理を実行することを特徴とする請求項１記載のソフトウェアコンポーネントのインストール方法。
【請求項６】
コンピュータに、
ソフトウェアコンポーネントと、当該ソフトウェアコンポーネントのインストール先のミドルウェアにおける配置すべきディレクトリとを対応付けた定義情報を読み込む機能と、
複数のソフトウェアコンポーネントを取得する機能と、
複数のミドルウェアの各々におけるディレクトリのうち、前記複数のソフトウェアコンポーネントの各々を配置すべきディレクトリを、前記定義情報に基づいて決定する機能と、
前記複数のソフトウェアコンポーネントの各々を、決定された前記ディレクトリに配置する機能と
を実現させるためのインストーラ。
【請求項７】
前記取得する機能では、前記複数のソフトウェアコンポーネントを、当該複数のソフトウェアコンポーネントをインストール先のミドルウェアごとに分けてアーカイブした複数のアーカイブファイルとして取得することを特徴とする請求項６記載のインストーラ。
【請求項８】
前記配置する機能では、前記複数のソフトウェアコンポーネントを、当該複数のソフトウェアコンポーネントをインストール先のミドルウェアごとに分けてアーカイブした複数のアーカイブファイルとして配置することを特徴とする請求項６記載のインストーラ。
【請求項９】
コンピュータに、
ソフトウェアコンポーネントと、当該ソフトウェアコンポーネントの属性とを対応付けた定義情報を読み込む機能と、
複数のソフトウェアコンポーネントを取得する機能と、
複数のミドルウェアの各々におけるディレクトリのうち、前記複数のソフトウェアコンポーネントの各々を配置すべきディレクトリを、前記定義情報における当該複数のソフトウェアコンポーネントの各々の属性に基づいて決定する機能と、
前記複数のソフトウェアコンポーネントの各々を、決定された前記ディレクトリに配置する機能と
を実現させるためのインストーラ。
【請求項１０】
前記取得する機能では、前記複数のソフトウェアコンポーネントを、当該複数のソフトウェアコンポーネントをインストール先のミドルウェアごとに分けてアーカイブした複数のアーカイブファイルとして取得することを特徴とする請求項９記載のインストーラ。
【請求項１１】
前記配置する機能では、前記複数のソフトウェアコンポーネントを、当該複数のソフトウェアコンポーネントをインストール先のミドルウェアごとに分けてアーカイブした複数のアーカイブファイルとして配置することを特徴とする請求項９記載のインストーラ。
【請求項１２】
特定機能をソフトウェアコンポーネントにて実現可能な複合機であって、
複数のミドルウェアを動作させるミドルウェア手段と、
複数のソフトウェアコンポーネントを取得し、当該複数のソフトウェアコンポーネントの各々のインストール先のミドルウェアを前記複数のミドルウェアの中から決定し、各ソフトウェアコンポーネントを当該決定されたミドルウェアにインストールするインストール手段と
を備えたことを特徴とする複合機。
【請求項１３】
前記インストール手段は、前記複数のソフトウェアコンポーネントを、当該複数のソフトウェアコンポーネントをインストール先のミドルウェアごとに分けてアーカイブした複数のアーカイブファイルとして取得することを特徴とする請求項１２記載の複合機。
【請求項１４】
前記インストール手段は、前記複数のソフトウェアコンポーネントを、当該複数のソフトウェアコンポーネントをインストール先のミドルウェアごとに分けてアーカイブした複数のアーカイブファイルを用いてインストールすることを特徴とする請求項１２記載の複合機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ機能、スキャナ機能、ファクシミリ機能等を一筐体内で実現する複合機等に関し、より詳しくは、これらの機能の拡張等のためのソフトウェアを追加可能な複合機等に関する。
【背景技術】
【０００２】
近年、プリンタ機能、スキャナ機能、ファクシミリ機能等を一筐体内で実現する所謂複合機が普及している。その中には、これらの機能の拡張等のため、サードベンダ製のソフトウェアを追加できるようにしたものがある。また、昨今、多くのオープンソースソフトウェアが提供されるようになり、これらのソフトウェアを活用することで、複合機の機能を拡張するためのアプリケーションの開発も容易になっている。
【０００３】
尚、公報記載の従来技術としては、ソフトウェアモジュールが、自身が有するインストール関数を用いてインストールされ、従属性関数をコールすることにより、必要なサービスを取得して、アプリケーション環境内にインストールするものがある(例えば、特許文献１参照)。
【特許文献１】特開２０００−０２９７１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のようなソフトウェアの追加が可能な複合機では、複合機固有のミドルウェア(フレームワーク)を搭載しており、そのミドルウェアに適合するソフトウェアしか組み込むことができない。つまり、かかる複合機においては、オープンソースソフトウェアを用いてアプリケーションを開発したとしても、それを十分に活用することができないという状況が生じていた。
【０００５】
そこで、こうした状況に鑑み、本発明者は、複合機に対し、複合機固有のミドルウェアに加え、オープンソースソフトウェア用のミドルウェアを搭載することの検討を開始した。
しかしながら、このように一台の複合機に複数のミドルウェアを搭載することとした場合、次のような問題点がある。
【０００６】
例えば、何らかのパラメータを設定する機能を複合機に追加することを考える。この場合、同じパラメータの設定であっても、幾つかの手法で行うことができる。第一に、複合機の操作パネルにて行う手法、第二に、ネットワーク接続された端末のＷｅｂブラウザから行う手法、第三に、ネットワーク管理ソフトウェア等からＳＯＡＰ(Simple Object Access Protocol)を用いて行う手法等である。
ところが、これら全ての手法によるパラメータの設定を可能とするには、各手法を可能とするソフトウェアを、それぞれ対応するミドルウェアにインストールしなければならない。第一の手法では、複合機固有のフレームワーク(以下、「固有フレームワーク」という)に対し、第二の手法では、Ｔｏｍｃａｔ(登録商標)に対し、第三の手法では、Ｔｏｍｃａｔ上で動作するＡｘｉｓに対し、それぞれソフトウェアをインストールしなければならないのである。また、ソフトウェアのインストールについては、各ミドルウェアで独自の規則があるので、これにも注意を払わなければならない。
【０００７】
即ち、複数のミドルウェアの各々に対してソフトウェアを一度の作業で追加するのは、非常に煩雑で、間違いも多くなってしまいかねないという問題点がある。
尚、特許文献１の技術は、複数のミドルウェアに対するソフトウェアのインストールを考慮しておらず、上記問題点を解決できるものではない。
【０００８】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、複数のミドルウェアに対し一度の作業でソフトウェアを追加できるようにすることにある。
【課題を解決するための手段】
【０００９】
かかる目的のもと、本発明では、複数のソフトウェアコンポーネントを受け取り、複数のミドルウェアの中から適切なインストール先を決定してインストールするようにした。即ち、本発明のソフトウェアコンポーネントのインストール方法は、ソフトウェアコンポーネントと、そのソフトウェアコンポーネントのインストール先のミドルウェアとの対応関係を得るための定義情報を読み込むステップと、複数のソフトウェアコンポーネントを取得するステップと、複数のミドルウェアのうち、複数のソフトウェアコンポーネントの各々のインストール先のミドルウェアを、定義情報から得られる対応関係に基づいて決定するステップと、複数のソフトウェアコンポーネントの各々をインストール先のミドルウェアにインストールするステップとを含んでいる。
【００１０】
また、本発明は、このようなインストールを行うインストーラ、つまり、インストール用プログラムとして捉えることもできる。
その場合、本発明の第１のインストーラは、コンピュータに、ソフトウェアコンポーネントと、そのソフトウェアコンポーネントのインストール先のミドルウェアにおける配置すべきディレクトリとを対応付けた定義情報を読み込む機能と、複数のソフトウェアコンポーネントを取得する機能と、複数のミドルウェアの各々におけるディレクトリのうち、複数のソフトウェアコンポーネントの各々を配置すべきディレクトリを、定義情報に基づいて決定する機能と、複数のソフトウェアコンポーネントの各々を、決定されたディレクトリに配置する機能とを実現させるためのものである。
【００１１】
また、本発明の第２のインストーラは、コンピュータに、ソフトウェアコンポーネントと、そのソフトウェアコンポーネントの属性とを対応付けた定義情報を読み込む機能と、複数のソフトウェアコンポーネントを取得する機能と、複数のミドルウェアの各々におけるディレクトリのうち、複数のソフトウェアコンポーネントの各々を配置すべきディレクトリを、定義情報におけるその複数のソフトウェアコンポーネントの各々の属性に基づいて決定する機能と、複数のソフトウェアコンポーネントの各々を、決定されたディレクトリに配置する機能とを実現させるためのものである。
【００１２】
一方、本発明は、特定機能をソフトウェアコンポーネントにて実現可能であり、そのソフトウェアコンポーネントを追加可能な複合機として捉えることもできる。その場合、本発明の複合機は、複数のミドルウェアを動作させるミドルウェア手段と、複数のソフトウェアコンポーネントを取得し、その複数のソフトウェアコンポーネントの各々のインストール先のミドルウェアを複数のミドルウェアの中から決定し、各ソフトウェアコンポーネントをその決定されたミドルウェアにインストールするインストール手段とを備えている。
【００１３】
ここで、インストール手段は、複数のソフトウェアコンポーネントを、その複数のソフトウェアコンポーネントをインストール先のミドルウェアごとに分けてアーカイブした複数のアーカイブファイルとして取得するようにしてもよい。また、複数のソフトウェアコンポーネントを、その複数のソフトウェアコンポーネントをインストール先のミドルウェアごとに分けてアーカイブした複数のアーカイブファイルを用いてインストールするようにしてもよい。
【発明の効果】
【００１４】
本発明によれば、複数のミドルウェアに対し一度の作業でソフトウェアを追加することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図１は、本実施の形態が適用されるコンピュータシステムの構成を示している。
図示するように、このコンピュータシステムは、複合機１０と、端末装置２０とが、ネットワーク９０で接続されることにより構成されている。
【００１６】
このうち、複合機１０は、プリンタ機能、スキャナ機能、ファクシミリ機能等を一筐体内で実現する装置である。即ち、プリンタ機能に着目すれば、画像形成装置として捉えることもでき、スキャナ機能に着目すれば、画像読取り装置として捉えることもできる。また、ファクシミリ機能に着目すれば、画像送信装置/画像受信装置として捉えることもでき、プリンタ機能とスキャナ機能を合わせたものは、複写機として捉えることもできる。
更に、複合機１０は、種々のインターフェイスを用いて各種設定を行うことが可能になっている。そのようなインターフェイスとしては、操作パネルによるもの、Ｗｅｂブラウザからの指示によるもの、Ｗｅｂサービスによるもの等が考えられる。
【００１７】
また、端末装置２０は、文書の印刷や文書のファクシミリ送信等を複合機１０に指示する装置であり、ＰＣ(Personal Computer)が例示される。尚、端末装置２０は、Ｗｅｂブラウザを有することもでき、その場合は、複合機１０の各種設定をＷｅｂブラウザから行うことができる。
更に、ネットワーク９０は、ＬＡＮ(Local Area Network)であってもよいし、インターネット等のＷＡＮ(Wide Area Network)であってもよい。
【００１８】
ところで、本実施の形態において、複合機１０には、複数のミドルウェア(フレームワーク)が搭載されている。そして、複合機１０の機能を実現するソフトウェアコンポーネントが、適合するミドルウェア上で動作するようになっている。本実施の形態は、例えば、同じ機能を異なるミドルウェアで実現するための複数のソフトウェアコンポーネントを、一回の作業でインストールできるようにするものである。
【００１９】
図２は、このようなソフトウェアコンポーネントのインストールの一例を模式的に示したものである。
図示するように、複合機１０は、インストーラ１１を有する。また、複合機１０には、複数のミドルウェア(フレームワーク)が搭載されている。ここでは、ミドルウェアとして、複合機１０に固有のフレームワークである固有フレームワーク１２ａと、Ｔｏｍｃａｔ(登録商標)１２ｂと、ＨＴＴＰｄ１２ｃと、ＯＳＧｉ(登録商標)１２ｄとを例示している。
かかる構成の複合機１０において、インストーラ１１は、メタバンドル３０ｂ，３０ｃを受け取り、その中に含まれるソフトウェアコンポーネントを、適切なミドルウェアにインストールする。
【００２０】
例えば、メタバンドル３０ｂには、ソフトウェアコンポーネントとして、ＡＰＬと、サーブレットと、ＪＳＰ(Java(登録商標) Server Pages)とが含まれる。このうち、ＡＰＬは、例えば、Ｃｏｒｂａコンポーネントであり、そのインストール先は、Ｃｏｒｂａフレームワークである固有フレームワーク１２ａである。また、サーブレット及びＪＳＰのインストール先は、Ｔｏｍｃａｔ１２ｂである。このようなインストール先に関する定義が、メタバンドル３０ｂに含まれるマニフェスト４０ｂに記述されており、インストーラ１１は、このマニフェスト４０ｂを参照してソフトウェアコンポーネントを適切なインストール先に振り分ける。即ち、ＡＰＬは、固有フレームワーク１２ａにインストールし、サーブレット及びＪＳＰは、サブバンドル５０ｂにまとめてＴｏｍｃａｔ１２ｂにインストールする。ここで、サブバンドル５０ｂとは、複数のソフトウェアコンポーネントを圧縮して得られるアーカイブファイルであり、この場合は、ＷＡＲ(Web ARchive)ファイルが例示される。
【００２１】
また、メタバンドル３０ｃには、ソフトウェアコンポーネントとして、ＡＰＬと、ｅｘｅファイルと、ＨＴＭＬファイルと、イメージファイルとが含まれる。このうち、ＡＰＬのインストール先は、上述したように、固有フレームワーク１２ａである。また、ｅｘｅファイル、ＨＴＭＬファイル及びイメージファイルのインストール先は、ＨＴＴＰｄ１２ｃである。このようなインストール先に関する定義が、メタバンドル３０ｃに含まれるマニフェスト４０ｃに記述されており、インストーラ１１は、このマニフェスト４０ｃを参照してソフトウェアコンポーネントを適切なインストール先に振り分ける。即ち、ＡＰＬは、固有フレームワーク１２ａにインストールし、ｅｘｅファイル、ＨＴＭＬファイル及びイメージファイルは、サブバンドル５０ｃにまとめてＨＴＴＰｄ１２ｃにインストールする。
【００２２】
尚、図には示さなかったが、固有フレームワーク１２ａをインストール先とするソフトウェアコンポーネントと、ＯＳＧｉ１２ｄをインストール先とするソフトウェアコンポーネントとを含むメタバンドルを入力し、各ソフトウェアコンポーネントを固有フレームワーク１２ａとＯＳＧｉ１２ｄとに振り分けてインストールすることも可能である。この場合も、ＯＳＧｉ１２ｄにインストールする複数のソフトウェアコンポーネントは、サブバンドルにまとめることができるが、この場合のサブバンドルは、例えば、ＪＡＲ(Java(登録商標) ARchive)ファイルである。
【００２３】
ところで、本実施の形態では、各ソフトウェアコンポーネントのインストール先を決定するために参照されるマニフェスト４０として、２種類のものを想定する。１つは、インストール対象のソフトウェアコンポーネントに対し、そのソフトウェアコンポーネントの配置先及び配置方法を記述したものである。そして、もう１つは、インストール対象のソフトウェアコンポーネントに対し、そのソフトウェアコンポーネントの属性を記述したものである。以下、前者のマニフェスト４０を参照することによるソフトウェアコンポーネントのインストールを第１の実施の形態として、また、後者のマニフェスト４０を参照することによるソフトウェアコンポーネントのインストールを第２の実施の形態として、詳細に説明する。
【００２４】
［第１の実施の形態］
この第１の実施の形態では、インストーラ１１に入力されるメタバンドル３０に、マニフェスト４０とサブバンドル５０が含まれるものとする。即ち、図２では、メタバンドル３０に含まれるソフトウェアコンポーネントから、インストーラ１１がサブバンドル５０を作成していたが、サブバンドル５０を予め作成してメタバンドル３０に含めておくこともできるので、本実施の形態ではそのようにしている。
図３は、本実施の形態で参照するマニフェスト４０の一例を示したものである。
このマニフェスト４０は、大きく、ｓｕｂ−ｂｕｎｄｌｅ要素４１ｂ，４１ｄから構成されている。このうち、ｓｕｂ−ｂｕｎｄｌｅ要素４１ｂは、Ｔｏｍｃａｔ１２ｂへのインストールに関する定義を記述したものであり、ｓｕｂ−ｂｕｎｄｌｅ要素４１ｄは、ＯＳＧｉ１２ｄへのインストールに関する定義を記述したものである。
【００２５】
また、ｓｕｂ−ｂｕｎｄｌｅ要素４１ｂは、ｓｏｕｒｃｅ要素４２ｂと、ｄｅｓｔｉｎａｔｉｏｎ要素４３ｂと、ｐｒｅ−ｐｒｏｃｓ要素４４ｂと、ｐｏｓｔ−ｐｒｏｃｓ要素４５ｂとを含んでいる。このうち、ｓｏｕｒｃｅ要素４２ｂは、インストール対象のソフトウェアコンポーネントから作成されたサブバンドル５０を指定する。また、ｄｅｓｔｉｎａｔｉｏｎ要素４３ｂは、サブバンドル５０の配置先(配置すべきディレクトリ)を指定する。更に、ｐｒｅ−ｐｒｏｃｓ要素４４ｂ及びｐｏｓｔ−ｐｒｏｃｓ要素４５ｂは、サブバンドル５０の配置方法(配置前後に行うべき処理)を指定する。
一方、ｓｕｂ−ｂｕｎｄｌｅ要素４１ｄは、ｓｏｕｒｃｅ要素４２ｄと、ｄｅｓｔｉｎａｔｉｏｎ要素４３ｄと、ｐｏｓｔ−ｐｒｏｃｓ要素４５ｄとを含んでいる。但し、これらの要素は、それぞれ、上述したｓｏｕｒｃｅ要素４２ｂ、ｄｅｓｔｉｎａｔｉｏｎ要素４３ｂ、ｐｏｓｔ−ｐｒｏｃｓ要素４５ｂと同様であるので、説明を省略する。
【００２６】
次に、インストーラ１１が、図３のマニフェスト４０を参照してソフトウェアコンポーネントをインストールする際の動作について説明する。
図４は、このときのインストーラ１１の動作を示したフローチャートである。
まず、インストーラ１１は、メタバンドル３０からマニフェスト４０を抽出する(ステップ１０１)。そして、マニフェスト４０における記述からｓｕｂ−ｂｕｎｄｌｅ要素４１を検索し(ステップ１０２)、ｓｕｂ−ｂｕｎｄｌｅ要素４１があったかどうかを判定する(ステップ１０３)。
【００２７】
その結果、ｓｕｂ−ｂｕｎｄｌｅ要素４１があったと判定されれば、その要素内の各要素を更に解析する(ステップ１０４)。具体的には、ｓｏｕｒｃｅ要素４２を解析し、処理対象となるサブバンドル５０を認識する。また、ｄｅｓｔｉｎａｔｉｏｎ要素４３を解析し、サブバンドル５０の配置先を認識する、更に、ｐｒｅ−ｐｒｏｃｓ要素４４、ｐｏｓｔ−ｐｒｏｃｓ要素４５も存在すれば解析し、サブバンドル５０を配置する際に実行すべき処理を認識する。
【００２８】
その後、インストーラ１１は、この解析の結果に基づいて、インストールを行う。
即ち、まず、ｓｏｕｒｃｅ要素４２で指定されたサブバンドル５０をメタバンドル３０から抽出する(ステップ１０５)。例えば、図３のマニフェスト４０のｓｏｕｒｃｅ要素４２ｂを参照した場合であれば、ディレクトリ「webapp-1」配下のＷＡＲファイル「foo.war」を抽出する。
【００２９】
次に、インストーラ１１は、必要に応じて、ｐｒｅ−ｐｒｏｃｓ要素４４で指定された処理を実行する(ステップ１０６)。例えば、図３のマニフェスト４０のｐｒｅ−ｐｒｏｃｓ要素４３ｂを参照した場合であれば、以下のような処理を行う。
・Ｔｏｍｃａｔ１２ｂが起動中であれば、次のシェルを実行し、Ｔｏｍｃａｔ１２ｂを停止する。
$TOMCAT_HOME/bin/shutdown.sh
・既に展開済みのディレクトリがあれば、次のシェルを実行し、それを削除する。
webapp-1/cleanup.sh
これは、実際は、次のようなコマンドに展開される。
pushd
cd $TOMCAT_HOME/webapps/
rm -fR foo
popd
【００３０】
また、インストーラ１１は、ステップ１０５で抽出したサブバンドル５０を、ｄｅｓｔｉｎａｔｉｏｎ要素４３で指定されたディレクトリに配置する(ステップ１０７)。例えば、図３のマニフェスト４０のｄｅｓｔｉｎａｔｉｏｎ要素４３ｂを参照した場合であれば、以下のような処理を行う。
・次のコマンドにより、ＷＡＲファイル「foo.war」をディレクトリ「$TOMCAT_HOME/webapps」にコピーする。
cp foo.war $TOMCAT_HOME/webapps
【００３１】
更に、インストーラ１１は、必要に応じて、ｐｏｓｔ−ｐｒｏｃｓ要素４４で指定された処理を実行する(ステップ１０８)。例えば、図３のマニフェスト４０のｐｏｓｔ−ｐｒｏｃｓ要素４４ｂを参照した場合であれば、以下のような処理を行う。
・次のシェルを実行し、Ｔｏｍｃａｔ１２ｂを起動する。
$TOMCAT_HOME/bin/startup.sh
これにより、Ｔｏｍｃａｔ１２ｂが、ＷＡＲファイル内のディレクトリやファイルを、ディレクトリ「$TOMCAT_HOME/webapps/foo」に展開する。
【００３２】
また、インストーラ１１は、このような処理を、ステップ１０３で、ｓｕｂ−ｂｕｎｄｌｅ要素４１がないと判定されるまで繰り返す。例えば、図３のマニフェスト４０を参照した場合であれば、ｓｕｂ−ｂｕｎｄｌｅ要素４１ｄについても、同様の処理を行う。即ち、以下のような処理を行う。
・次のコマンドにより、アプリケーションのバンドルをコピーする。
cp bar.jar $OSGI_HOME/bundle
・次のコマンドにより、バンドルをOSGiフレームワークにインストールし、起動する。
echo “start bundle/bar.jar”/dev/pts/1
そして、ステップ１０３で、ｓｕｂ−ｂｕｎｄｌｅ要素４１がないと判定されれば、処理は終了する。
【００３３】
尚、以上では、複数のソフトウェアコンポーネントから予め作成しておいたサブバンドル５０をメタバンドル３０に含めたが、図２に示したように、メタバンドル３０には、複数のソフトウェアコンポーネントをそのまま含めておくこともできる。
その場合、ソフトウェアコンポーネントをインストールする方法としては、２つ考えられる。
【００３４】
第一に、ソフトウェアコンポーネントをそのまま適切なミドルウェアのディレクトリに配置する方法である。
この場合、マニフェスト４０の記述は、次のようになる。
まず、ｓｏｕｒｃｅ要素４２でサブバンドル５０を指定するのではなく、ｓｏｕｒｃｅ−ｄｉｒ要素等の別の要素を用意し、ここにソフトウェアコンポーネントが存在するディレクトリを指定する。
また、ｐｒｅ−ｐｒｏｃｓ要素４４では、例えば、以下のような処理を指定する。
・Ｔｏｍｃａｔ１２ｂが起動中の場合、次のシェルを実行し、Ｔｏｍｃａｔ１２ｂを停止する。
$TOMCAT_HOME/bin/shutdown.sh
【００３５】
更に、ｐｒｅ−ｐｒｏｃｓ要素４４又はｐｏｓｔ−ｐｒｏｃｓ要素４５では、例えば、以下のような処理を指定する。
・アプリケーション定義ファイル($TOMCAT_HOME/conf/server.xml)に、「<Context path="/foo" docBase=".(snip)./foo" reloadable="true"/>」なる記述を追加する。ここで、「path」には、アプリケーションをブラウザから呼び出すためのＵＲＬを指定し、「docBase」には、アプリケーションが配置されたディレクトリを指定する。
また、ｐｏｓｔ−ｐｒｏｃｓ要素４５では、例えば、以下のような処理を指定する。
・次のシェルを実行し、Ｔｏｍｃａｔ１２ｂを起動する。
$TOMCAT_HOME/bin/startup.sh
【００３６】
第二に、ソフトウェアコンポーネントからサブバンドル５０を作成し、そのサブバンドル５０を適切なミドルウェアの適切なディレクトリに配置する方法(図２の方法)である。
この場合、マニフェスト４０の記述は、次のようになる。
まず、ｓｏｕｒｃｅ要素４２でサブバンドル５０を指定するのではなく、ｓｏｕｒｃｅ−ｄｉｒ要素等の別の要素を用意し、ここにソフトウェアコンポーネントが存在するディレクトリを指定する。
また、ソフトウェアコンポーネントからサブバンドル５０を作成する必要があるが、その処理を、ｐｒｅ−ｐｒｏｃｓ要素４４で指定してもよい。
【００３７】
［第２の実施の形態］
この第２の実施の形態でも、インストーラ１１に入力されるメタバンドル３０に、マニフェスト４０とサブバンドル５０が含まれるものとする。
図５は、本実施の形態で参照するマニフェスト４０の一例を示したものである。
このマニフェスト４０において、ｆｉｌｅｓ要素は、ｆｉｌｅ要素４６ｂ，４６ｄから構成されている。このうち、ｆｉｌｅ要素４６ｂは、Ｔｏｍｃａｔ１２ｂへのインストールに関する定義を記述したものであり、ｆｉｌｅ要素４６ｄは、ＯＳＧｉ１２ｄへのインストールに関する定義を記述したものである。
【００３８】
また、ｆｉｌｅ要素４６ｂは、ｓｏｕｒｃｅ要素４７ｂと、ｔｙｐｅ要素４８ｂとを含んでいる。このうち、ｓｏｕｒｃｅ要素４７ｂは、インストール対象のソフトウェアコンポーネントから作成されたサブバンドル５０を指定する。また、ｔｙｐｅ要素４８ｂは、サブバンドル５０の属性をＭＩＭＥ(Multipurpose Internet Mail Extension)タイプで指定する。
一方、ｆｉｌｅ要素４６ｄは、ｓｏｕｒｃｅ要素４７ｄと、ｔｙｐｅ要素４８ｄとを含んでいる。但し、これらの要素は、それぞれ、上述したｓｏｕｒｃｅ要素４７ｂ、ｔｙｐｅ要素４８ｂと同様であるので、説明を省略する。
【００３９】
次に、インストーラ１１が、図５のマニフェスト４０を参照してソフトウェアコンポーネントをインストールする際の動作について説明する。
図６は、このときのインストーラ１１の動作を示したフローチャートである。
まず、インストーラ１１は、メタバンドル３０からマニフェスト４０を抽出する(ステップ１１１)。そして、マニフェスト４０における記述からｆｉｌｅ要素４６を検索し(ステップ１１２)、ｆｉｌｅ要素４６があったかどうかを判定する(ステップ１１３)。
【００４０】
その結果、ｆｉｌｅ要素４６があったと判定されれば、その要素内の各要素を更に解析する(ステップ１１４)。具体的には、ｓｏｕｒｃｅ要素４７を解析し、処理対象となるサブバンドル５０を認識する。また、ｔｙｐｅ要素４８を解析し、サブバンドル５０の属性を認識する。
【００４１】
その後、インストーラ１１は、この解析の結果に基づいて、インストールを行う。
即ち、まず、ｓｏｕｒｃｅ要素４７で指定されたサブバンドル５０をメタバンドル３０から抽出する(ステップ１１５)。例えば、図５のマニフェスト４０のｓｏｕｒｃｅ要素４７ｂを参照した場合であれば、ディレクトリ「webapp-1」配下のＷＡＲファイル「foo.war」を抽出する。
【００４２】
次に、インストーラ１１は、ステップ１１４で認識した属性に対して予め定められた前処理があれば、その処理を実行する(ステップ１１６)。また、ステップ１１５で抽出したサブバンドル５０を、ステップ１１４で認識した属性に対して予め定められたディレクトリに配置する(ステップ１１７)。そして、ステップ１１４で認識した属性に対して予め定められた後処理があれば、その処理を実行する(ステップ１１８)。
【００４３】
また、インストーラ１１は、このような処理を、ステップ１１３で、ｆｉｌｅ要素４６がないと判定されるまで繰り返す。例えば、図５のマニフェスト４０を参照した場合であれば、ｆｉｌｅ要素４６ｄについても、同様の処理を行う。そして、ステップ１１３で、ｆｉｌｅ要素４６がないと判定されれば、処理は終了する。
【００４４】
尚、この第２の実施の形態においても、第１の実施の形態で述べたのと同様の変形例が考えられる。即ち、複数のソフトウェアコンポーネントをそのままメタバンドル３０に含めておき、それをそのまま、或いは、サブバンドル５０の形で適切なミドルウェアの適切なディレクトリに配置することができる。
【００４５】
以上、具体的なマニフェスト４０を用いたインストール方法である第１及び第２の実施の形態について説明してきた。
このうち、第１の実施の形態では、サブバンドル５０やソフトウェアコンポーネントの配置先/配置方法を直接マニフェスト４０に定義していた。また、第２の実施の形態では、サブバンドル５０やソフトウェアコンポーネントの属性を定義しておき、インストーラ１１側で配置先/配置方法を決定していた。しかしながら、配置先/配置方法を決定するために用いる情報は、これに限らない。例えば、サブバンドル５０やソフトウェアコンポーネントのファイル名の一部(サフィックス等)に基づいて決定するようにしてもよい。
【００４６】
また、第１の実施の形態における図３のマニフェスト４０、及び、第２の実施の形態における図５のマニフェスト４０は、あくまで一例に過ぎない。即ち、最終的にサブバンドル５０またはソフトウェアコンポーネントと、そのインストーラ先であるミドルウェアとの対応関係が得られるものであれば、どのような定義情報を用いるようにしてもよい。
【００４７】
更に、上記では、メタバンドル３０に含まれるソフトウェアコンポーネントは、全てインストール対象にしてきた。しかしながら、種々の条件とソフトウェアコンポーネントの適合性を検査し、適合しないものはインストールしないような構成としてもよい。
そのような構成としては、第一に、複合機１０の構成情報を取得し、その構成情報に適合しないソフトウェアコンポーネントをインストール対象から除外することが考えられる。第二に、インストール先のミドルウェアのバージョンに応じて、インストールするソフトウェアコンポーネントを選択することも考えられる。第三に、インストールするソフトウェアコンポーネントに必要なミドルウェアが複合機１０に搭載されているか検査し、その検査結果に基づいて、インストールするソフトウェアコンポーネントを選択することも考えられる。
【００４８】
尚、第二の構成や第三の構成のように、複合機１０に搭載されたミドルウェアの関係でインストールできないソフトウェアコンポーネントがある場合は、必要なミドルウェアを複合機１０に搭載する動作を行うようにしてもよい。
また、メタバンドル３０の中にインストール可能なソフトウェアコンポーネントが存在しない場合は、エラーを表示するようにしてもよい。
【００４９】
このように、本実施の形態では、複合機に対し、固有のミドルウェア以外に、オープンソースソフトウェア用のミドルウェアを搭載できるようにした。これにより、複合機に機能を追加する際にオープンソースソフトウェアを十分に活用できるようになった。
また、複数のソフトウェアコンポーネントを受け取り、複数のミドルウェアの中から適切なインストール先を決定してインストールするようにした。これにより、複数のミドルウェアに分散する機能を一度の作業で容易に組み込むことができるようになった。
【００５０】
尚、本実施の形態で述べた複合機は、ディスプレイやキーボードにより種々のコマンド等を駆使できる操作環境を有していない。従って、これまで、複数のミドルウェアを搭載しようとしても、それぞれのミドルウェアごとにインストール作業を行うことは困難であった。これに対し、本実施の形態は、操作環境に制限がある場合でも、複数のミドルウェアに対する機能追加を簡単に行えるようにし、種々のオープンソースソフトウェアを利用して高度な機能を提供できるようにするものである。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態が適用されるシステムの構成を示した図である。
【図２】本発明の実施の形態の概要を説明するための図である。
【図３】本発明の第１の実施の形態で参照するマニフェストの例を示した図である。
【図４】本発明の第１の実施の形態におけるインストーラの動作を示したフローチャートである。
【図５】本発明の第２の実施の形態で参照するマニフェストの例を示した図である。
【図６】本発明の第２の実施の形態におけるインストーラの動作を示したフローチャートである。
【符号の説明】
【００５２】
１０…複合機、１１…インストーラ、２０…端末装置、３０…メタバンドル、４０…マニフェスト、５０…サブバンドル
【図１】
0004844205.tif 000002
【図２】
0004844205.tif 000003
【図３】
0004844205.tif 000004
【図４】
0004844205.tif 000005
【図５】
0004844205.tif 000006
【図６】
0004844205.tif 000007