(57)【要約】【課題】  アプリケーション管理フレームワーク上で動作するアプリケーション本体のプログラムを変更することなく、新規に追加された部品クラスでアプリケーションの一部を置換することでアプリケーションのカスタマイズを可能とする。【解決手段】  アプリケーションのカスタマイズ可能な箇所を示す情報と、該カスタマイズ可能な箇所をカスタマイズする部品クラスを示す情報とを対応付けて管理する。そして、カスタマイズ可能な箇所のカスタマイズが指示された場合に、管理されている情報に基づいて、カスタマイズ可能な箇所の部品クラスを特定し、特定された部品クラスでカスタマイズ可能な箇所のカスタマイズを行う。【選択図】      図１
2008152400.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションをカスタマイズ可能なアプリケーション管理システムであって、
前記アプリケーションのカスタマイズ可能な箇所を示す情報と、該カスタマイズ可能な箇所をカスタマイズする部品クラスを示す情報とを対応付けて管理する管理手段と、
前記カスタマイズ可能な箇所のカスタマイズが指示された場合に、前記管理手段で管理されている情報に基づいて前記カスタマイズ可能な箇所の部品クラスを特定する特定手段と、
前記特定手段で特定された部品クラスで前記カスタマイズ可能な箇所のカスタマイズを行うカスタマイズ手段とを有することを特徴とするアプリケーション管理システム。
【請求項２】
前記管理手段は、前記カスタマイズ可能な箇所に複数の部品クラスが対応するように、前記情報を対応付けて管理することを特徴とする請求項１に記載のアプリケーション管理システム。
【請求項３】
前記管理手段は、前記カスタマイズ可能な箇所を示す情報として、アプリケーションの識別子と、カスタマイズ可能な箇所の名前及び型を管理し、前記部品クラスを示す情報として、部品の名前及び型を管理することを特徴とする請求項１に記載のアプリケーション管理システム。
【請求項４】
複数のアプリケーションからカスタマイズするアプリケーションと該アプリケーションのカスタマイズ可能な箇所をユーザに選択させるためのユーザインタフェース手段を更に有し、
前記ユーザインタフェース手段によって前記カスタマイズ可能な箇所のカスタマイズが指示されることを特徴とする請求項１に記載のアプリケーション管理システム。
【請求項５】
アプリケーションをカスタマイズ可能なアプリケーション管理システムの制御方法であって、
前記アプリケーションのカスタマイズ可能な箇所を示す情報と、該カスタマイズ可能な箇所をカスタマイズする部品クラスを示す情報とを対応付けて管理する管理工程と、
前記カスタマイズ可能な箇所のカスタマイズが指示された場合に、前記管理工程で管理されている情報に基づいて前記カスタマイズ可能な箇所の部品クラスを特定する特定工程と、
前記特定工程で特定された部品クラスで前記カスタマイズ可能な箇所のカスタマイズを行うカスタマイズ工程とを有することを特徴とするアプリケーション管理システムの制御方法。
【請求項６】
請求項５に記載のアプリケーション管理システムの制御方法をコンピュータに実行させるためのプログラム。
【請求項７】
請求項６に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション管理フレームワークを備えたシステムに関する。
【背景技術】
【０００２】
従来、ソフトウェアをカスタマイズするために、様々な技術が提案されている。特に、プラグイン・ソフトウェアによってデバイスのプラットフォームの機能を拡張することが可能なシステムが知られている（例えば、特許文献１参照）。
【０００３】
また、統合開発環境Eclipseのように、内部にアプリケーション管理フレームワークを備えることで、プラグインによる機能拡張を可能とするソフトウェアも知られている。
【特許文献１】特表２００６−５１１１００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、アプリケーション管理フレームワーク上で動作するアプリケーションを対象に、そのソフトウェア部品を単位に動的な置換を行うことでカスタマイズを実現するようなことは考慮されていない。
【０００５】
即ち、アプリケーションがフレームワークに管理されながら動作している際に、新規にフレームワークに追加された部品クラスを用いてダイナミックにアプリケーションの一部を置換してカスタマイズを行えなかった。
【０００６】
また、デバイスのプラットフォームの機能をプラグインで拡張するシステムでは、そのプラットフォームの上で動作する個別のアプリケーションに対してカスタマイズのための仕組みを共通的に提供しているわけではなかった。また、Eclipseではアプリケーション管理フレームワークとプラグインの仕組みが用意されているが、これはアプリケーション中の特定の箇所に次々と機能を付加して拡張するためのものであった。そのため、ソフトウェア部品を置換してカスタマイズを実現することはできなかった。
【０００７】
本発明は、アプリケーション管理フレームワーク上で動作するアプリケーション本体のプログラムを変更することなく、新規に追加された部品クラスでアプリケーションの一部を置換することでアプリケーションのカスタマイズを可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、アプリケーションをカスタマイズ可能なアプリケーション管理システムであって、前記アプリケーションのカスタマイズ可能な箇所を示す情報と、該カスタマイズ可能な箇所をカスタマイズする部品クラスを示す情報とを対応付けて管理する管理手段と、前記カスタマイズ可能な箇所のカスタマイズが指示された場合に、前記管理手段で管理されている情報に基づいて前記カスタマイズ可能な箇所の部品クラスを特定する特定手段と、前記特定手段で特定された部品クラスで前記カスタマイズ可能な箇所のカスタマイズを行うカスタマイズ手段とを有することを特徴とする。
【０００９】
また、本発明は、アプリケーションをカスタマイズ可能なアプリケーション管理システムの制御方法であって、前記アプリケーションのカスタマイズ可能な箇所を示す情報と、該カスタマイズ可能な箇所をカスタマイズする部品クラスを示す情報とを対応付けて管理する管理工程と、前記カスタマイズ可能な箇所のカスタマイズが指示された場合に、前記管理工程で管理されている情報に基づいて前記カスタマイズ可能な箇所の部品クラスを特定する特定工程と、前記特定工程で特定された部品クラスで前記カスタマイズ可能な箇所のカスタマイズを行うカスタマイズ工程とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、アプリケーション管理フレームワーク上で動作するアプリケーション本体のプログラムを変更することなく、新規に追加された部品クラスでアプリケーションの一部を置換することでアプリケーションをカスタマイズすることができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。本発明を適用可能なアプリケーション管理システムは、その実行環境が提供されていれば、如何なる機器でも実行可能である。
【００１２】
［第１の実施形態］
図１は、第１の実施形態におけるアプリケーション管理システムの構成の一例を示す図である。アプリケーション管理システムは、アプリケーション管理フレームワーク１０１の上に、カスタマイズ機構１０２、アプリケーション本体１０３、アプリケーション部品１０４が存在する。そして、システム外部からカスタマイズ機構１０２へ指示される部品選択指示１０５に基づいてカスタマイズ機構１０２がアプリケーション部品１０４を利用してアプリケーション本体１０３のカスタマイズを行う。ここで、アプリケーション管理フレームワーク１０１は、アプリケーション本体１０３にアプリケーション部品１０４の部品クラスをロードし、カスタマイズ機構１０２をアプリケーション本体１０３から利用可能とする機能を有する。
【００１３】
尚、図１では、アプリケーション本体１０３及びアプリケーション部品１０４は１組であるが、複数の組がアプリケーション管理フレームワーク１０１上に存在し、管理されるものである。そして、カスタマイズ機構１０２は複数のアプリケーションのカスタマイズが可能である。
【００１４】
また、部品選択指示１０５は、主にカスタマイズ機構１０２によって提供されるＡＰＩ（Application Programming Interface）を用いることでアプリケーション本体１０３のプログラムから直接行われる。しかし、部品選択指示１０５にはユーザインタフェースを通じて行われるシステム利用者の操作も含まれる。
【００１５】
図２は、アプリケーション本体１０３及びアプリケーション部品１０４の内部構成例を示す図である。アプリケーション本体１０３は、主な処理を担うメイン処理クラス２０１とインタフェースやクラスである部品の型２０２とを含む。メイン処理クラス２０１では部品の型２０２のみを用いてプログラムが記述されており、部品の型２０２の実体として利用される部品クラスは実行時に決定される。また、部品の型２０２はアプリケーション管理フレームワーク１０１の機能によりアプリケーション部品１０４から実装される。
【００１６】
また、アプリケーション部品１０４は、内部に複数の部品クラス２０３、２０４を含む。部品クラス２０３、２０４はアプリケーション管理フレームワーク１０１の機能によりアプリケーション本体１０３にロードされる。
【００１７】
図３は、カスタマイズ機構１０２の動作概要を示すフローチャートである。まず動作を開始時に、ステップＳ３０１で、カスタマイズ機構１０２は自身のオブジェクトをアプリケーション管理フレームワーク１０１に登録する。これにより、カスタマイズ機構１０２の機能がアプリケーション管理フレームワーク１０１上のアプリケーション本体１０３から利用可能となる。
【００１８】
次に、ステップＳ３０２で、アプリケーション管理フレームワーク１０１から停止命令を受けるまで、外部からの要求によって処理を実行する。ここで、外部からの要求としてアプリケーション本体１０３から情報登録の依頼を受けた場合は、ステップＳ３０３からステップＳ３０４へ進み、アプリケーション本体１０３の情報をカスタマイズ機構１０２の管理部に登録する。ここで登録される情報としては、アプリケーションのカスタマイズ可能な箇所（メイン処理クラス２０１）と、カスタマイズ可能な型（部品の型２０２）である。
【００１９】
また、外部からの要求としてアプリケーション部品１０４から情報登録の依頼を受けた場合には、ステップＳ３０５からステップＳ３０６へ進み、アプリケーション部品１０４の情報をカスタマイズ機構１０２の管理部に登録する。ここで登録される情報としては、アプリケーションのカスタマイズ可能な部品クラス２０３、２０４である。
【００２０】
また、外部からの要求としてアプリケーション本体１０３及びアプリケーション部品１０４以外からの呼び出しを受けた場合は、ステップＳ３０７からステップＳ３０８へ進み、その呼び出しに応じた処理を行う。具体的には、特定の選択アプリケーションに対する管理情報の照会処理や特定の選択部品を利用した動的なインスタンス（オブジェクト）の生成処理である。
【００２１】
一方、外部からの要求ではなく、アプリケーション管理フレームワーク１０１から停止命令を受けた場合はステップＳ３０９へ進み、カスタマイズ機構１０２のオブジェクトをアプリケーション管理フレームワーク１０１から削除する。
【００２２】
図４は、アプリケーション本体１０３の動作概要を示すフローチャートである。まず、ステップＳ４０１で、カスタマイズ機構１０２の機能を利用するためにそのオブジェクトをアプリケーション管理フレームワーク１０１から取得する。次に、ステップＳ４０２では、取得したオブジェクトを利用して、カスタマイズ機構１０２にアプリケーション本体１０３の情報を登録する。そして、ステップＳ４０３で、カスタマイズ機構１０２に登録されたアプリケーション本体１０３やアプリケーション部品１０４の情報に基づきカスタマイズ機構１０２が動的に生成した部品インスタンスを受け取る。この際に、部品インスタンスに対して設定を行ったり、自身のカスタマイズ可能箇所に部品インスタンスを当てはめることで、アプリケーション本体１０３を動的に構成することができる。
【００２３】
次に、ステップＳ４０４で、アプリケーション管理フレームワーク１０１から停止命令を受け取るまで、ステップＳ４０５でのアプリケーション固有の処理が実行される。この処理ループにおいて、ステップＳ４０６でカスタマイズ機構１０２から、例えばアプリケーション部品１０４のアンインストールといったイベントを受信した場合には、ステップＳ４０７でイベントに応じた処理を行う。
【００２４】
また、ステップＳ４０４で、アプリケーション管理フレームワーク１０１から停止命令を受けてループを抜けると、ステップＳ４０８でカスタマイズ機構１０２からアプリケーション本体１０３の情報を削除する。最後に、ステップＳ４０９で、使用しているカスタマイズ機構１０２のオブジェクトを解放する。
【００２５】
図５は、アプリケーション部品１０４の動作概要を示すフローチャートである。まず、ステップＳ５０１で、カスタマイズ機構１０２の機能を利用するためにそのオブジェクトをアプリケーション管理フレームワーク１０１から取得する。次に、ステップＳ５０２では、取得したオブジェクトを利用して、カスタマイズ機構１０２にアプリケーション部品１０４の情報を登録する。
【００２６】
次に、ステップＳ５０３で、アプリケーション管理フレームワーク１０１から停止命令を受け取るまで、アプリケーション部品１０４自身の動作を続ける。その後、ステップＳ５０３で、アプリケーション管理フレームワーク１０１から停止命令を受け取ると、ステップＳ５０４で、カスタマイズ機構１０２からアプリケーション部品１０４の情報を削除する。最後に、ステップＳ５０５で、使用しているカスタマイズ機構１０２のオブジェクトを解放する。
【００２７】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態を詳細に説明する。第２の実施形態では、図１に示すアプリケーション本体１０３とアプリケーション部品１０４の情報をマッチングさせて管理するカスタマイズ機構１０２の管理方法を説明する。
【００２８】
図６は、アプリケーション本体１０３の設定情報の一例を示す図である。尚、設定情報としては、図６に示す以外のパラメータを定義しても良い。また、設定情報は主に３つの情報から構成されている。
【００２９】
図６において、６０１はカスタマイズ可能箇所（カスタマイズポイント）の名前を表す情報であり、システム内でユニークであれば任意の名前を指定することができる。６０２はカスタマイズポイントの型を表す情報であり、オブジェクト指向言語のインタフェースやスーパークラスなどの型を指定することができる。６０３はデフォルトでカスタマイズポイントに使用するクラス名を表す情報であり、型に対応するクラス名を指定することができる。尚、デフォルトで使用するクラス名６０３の記述は任意である。
【００３０】
６０４〜６０６及び６０７〜６０９は６０１〜６０３の具体的な設定例であり、複数のカスタマイズポイントが存在する場合を示している。
【００３１】
図７は、アプリケーション部品１０４の設定情報の一例を示す図である。図７に示すように、設定情報は主に２つの情報から構成されている。ここで、７０１は部品クラスの型を表す情報であり、オブジェクト指向言語におけるインタフェースやスーパークラスなどの型を指定することができる。７０２は部品クラスの名前を表す情報であり、部品クラスの型７０１に対応するクラスの名前を指定することができる。
【００３２】
７０３及び７０４、７０３及び７０５、７０６及び７０７は、情報７０１及び７０２の具体的な設定例であり、複数の部品クラスが存在することを示している。
【００３３】
図８は、カスタマイズ機構１０２に登録された管理情報の構成を示す図である。図８に示すように、カスタマイズ機構１０２には、管理情報として、アプリケーション本体情報８０１とアプリケーション部品情報８０５の２つの情報が登録される。
【００３４】
ここでアプリケーション本体情報８０１は、アプリケーションの識別子８０２と、識別子８０２に対応する任意の数のカスタマイズポイント情報８０３とから構成されている。そして、カスタマイズポイント情報８０３は、更にカスタマイズポイントの名前６０１とカスタマイズポイントの型６０２とから構成される。８０４はアプリケーションの識別子８０２の具体例であり、この例ではカスタマイズポイント情報６０４及び６０５、６０７及び６０８と対応付けられている。
【００３５】
一方、アプリケーション部品情報８０５は、部品クラスの型７０１と、型７０１に対応する任意の数の部品クラスの名前７０２とから構成されている。７０３は部品クラスの型７０１の具体例であり、この例では部品クラスの名前７０４及び７０５と対応付けられている。
【００３６】
上述したように、カスタマイズ機構１０２はアプリケーション本体１０３とアプリケーション部品１０４の情報をそれぞれアプリケーション本体情報８０１とアプリケーション部品情報８０５として管理している。従って、アプリケーションの識別子８０２とカスタマイズポイントの名前６０１を指定すると、そのカスタマイズポイントで使用可能な部品クラスの名前７０２を得ることができる。
【００３７】
つまり、アプリケーションの識別子８０２とカスタマイズポイントの名前６０１とからカスタマイズポイントの型６０２が特定される。そして、特定された型６０２に対応するアプリケーション部品情報８０５の部品クラスの型７０１を照合することで、指定されたカスタマイズポイントで使用可能な部品クラスの名前７０２を得ることができる。
【００３８】
また、１つのカスタマイズポイントには複数の部品クラスが候補として存在し、１つの部品クラスが複数のカスタマイズポイントにも対応できるというように、多対多の関係にある。
【００３９】
［第３の実施形態］
次に、図面を参照しながら本発明に係る第３の実施形態を詳細に説明する。第２の実施形態では、カスタマイズ機構１０２がアプリケーション本体１０３とアプリケーション部品１０４の情報を管理する方法について説明した。第３の実施形態では、カスタマイズ機構１０２がユーザインタフェースを提供する場合を説明する。ここでは、ウェブブラウザによるユーザインタフェースについて説明するが、ユーザインタフェースはどのように実現しても構わない。
【００４０】
図９は、カスタマイズ機構１０２のユーザインタフェースとして、アプリケーションを選択する画面の一例を示す図である。図９に示すように、ウェブブラウザ画面９０１には、カスタマイズ機構１０２を利用するカスタマイズ可能なアプリケーションの一覧９０２と、設定ボタン９０３とが表示される。この画面９０１でユーザが一覧９０２から対象としたいアプリケーションを選択し、設定ボタン９０３を押下することで、該当アプリケーションのカスタマイズ画面へと遷移する。
【００４１】
図１０は、カスタマイズ機構１０２のユーザインタフェースとして、特定のアプリケーションに対するカスタマイズ画面の一例を示す図である。ウェブブラウザ画面１００１には、対象アプリケーションのカスタマイズポイント一覧１００２と、対応する部品クラスのリスト１００３と、構成ボタン１００４とが表示される。この画面１００１でユーザがカスタマイズポイント毎に利用したい部品クラスを選択し、構成ボタン１００４を押下することで、選択した部品クラスを用いて対象アプリケーションが構成され、カスタマイズされる。
【００４２】
以上説明した実施形態によれば、以下のような効果が得られる。
【００４３】
アプリケーション管理フレームワーク上でカスタマイズ機構がアプリケーション本体のカスタマイズ可能箇所とアプリケーション部品の部品クラスを管理し、動的に部品クラスをインスタンス化してアプリケーション本体に渡すことができる。
【００４４】
つまり、アプリケーションに対して、そのプログラムを変更することなく、新規に追加した部品クラスを用いてアプリケーションの一部を置換することで、カスタマイズ可能となる。
【００４５】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００４６】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００４７】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００４８】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００４９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【００５０】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００５１】
【図１】第１の実施形態におけるアプリケーション管理システムの構成の一例を示す図である。
【図２】アプリケーション本体１０３及びアプリケーション部品１０４の内部構成例を示す図である。
【図３】カスタマイズ機構１０２の動作概要を示すフローチャートである。
【図４】アプリケーション本体１０３の動作概要を示すフローチャートである。
【図５】アプリケーション部品１０４の動作概要を示すフローチャートである。
【図６】アプリケーション本体１０３の設定情報の一例を示す図である。
【図７】アプリケーション部品１０４の設定情報の一例を示す図である。
【図８】カスタマイズ機構１０２に登録された管理情報の構成を示す図である。
【図９】カスタマイズ機構１０２のユーザインタフェースとして、アプリケーションを選択する画面の一例を示す図である。
【図１０】カスタマイズ機構１０２のユーザインタフェースとして、特定のアプリケーションに対するカスタマイズ画面の一例を示す図である。
【符号の説明】
【００５２】
１０１  アプリケーション管理フレームワーク
１０２  カスタマイズ機構
１０３  アプリケーション本体
１０４  アプリケーション部品
１０５  選択指示
２０１  メイン処理クラス
２０２  部品の型
２０３  部品クラス
２０４  部品クラス
【図１】
2008152400.tif 000003
【図２】
2008152400.tif 000004
【図３】
2008152400.tif 000005
【図４】
2008152400.tif 000006
【図５】
2008152400.tif 000007
【図６】
2008152400.tif 000008
【図７】
2008152400.tif 000009
【図８】
2008152400.tif 000010
【図９】
2008152400.tif 000011
【図１０】
2008152400.tif 000012