情報処理装置、インストール方法、プログラム、記憶媒体
【課題】ネットワークに接続できない環境でも、モジュールと機能の依存関係に応じて適正にモジュールの使用を管理できるインストール方法等を提供する。
【解決手段】1つのパッケージに含まれる1以上のプログラムコンポーネント(PC)を、パッケージ単位で記憶装置にインストールする情報処理装置であって、インストール対象のパッケージに添付された設定ファイル(infファイル)を記憶する記憶媒体から、設定ファイルに登録されたPCのリストを読み出し、パッケージ情報記憶手段74に記憶されたリストと突合し、既にインストールされていないPCのみをインストールするインストール手段と、インストールしたPCをインストール数と共にプログラム情報記憶手段75に登録し、重複していることが検出されたPCのインストール数を1つ増加させるプログラム情報更新手段と、を有する。
【解決手段】1つのパッケージに含まれる1以上のプログラムコンポーネント(PC)を、パッケージ単位で記憶装置にインストールする情報処理装置であって、インストール対象のパッケージに添付された設定ファイル(infファイル)を記憶する記憶媒体から、設定ファイルに登録されたPCのリストを読み出し、パッケージ情報記憶手段74に記憶されたリストと突合し、既にインストールされていないPCのみをインストールするインストール手段と、インストールしたPCをインストール数と共にプログラム情報記憶手段75に登録し、重複していることが検出されたPCのインストール数を1つ増加させるプログラム情報更新手段と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムを情報処理装置にインストールする情報処理装置等に関し、特に、1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位でインストールする情報処理装置、インストール方法、プログラム及び記憶媒体に関する。
【背景技術】
【0002】
プログラムを実行して種々の機能を実現する情報処理装置では、インストールするプログラムの増減に応じて機能を増減させることができ、ユーザは情報処理装置を購入した後でも、必要な機能を提供するプログラムを購入してインストールすることで、その機能を利用できるようになる。
【0003】
プログラムの不正利用を防止する観点から、インストールされているプログラムを使用する権限を与えるライセンス情報を利用する技術が考えられている(例えば、特許文献1参照。)。特許文献1には、着脱可能な記録媒体に記憶しておき、記録媒体を情報処理装置に装着した場合に使用を認める情報処理装置において、さらに記録媒体の認証情報を情報処理装置に記憶しておく技術が開示されている。
【0004】
ところで、このようなプログラムでは複数のモジュールが協調して1以上の機能を実現する構成を採用して、コンピュータや組み込み機器に実装する場合がある。例えば、Aという機能は、モジュールa1,a2、a3が協調することで実現されるような場合、Aという機能のためモジュールa1〜a3をインストールする。また、他の機能Bを実現したければ、機能Bに必要な1以上のモジュールb1等をインストールすればよく、ユーザは必要な場合に必要な機能を使用することができる。
【0005】
しかしながら、機能とモジュールの間に複雑な関係が生じることも少なくなく、必要な機能を実現するためにインストールすべきモジュールをユーザが把握することは困難である。この点について、サーバがプログラムモジュール間の依存関係を考慮して、組み込みソフトウェアの更新に必要なモジュール群をクライアントである電子機器に送信するプログラムの実装方法が開示されている(例えば、特許文献2参照。)。
【特許文献1】特開2006−279935号公報
【特許文献2】特開2005−13587号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献2記載の電子機器はサーバと通信できなければ、換言するとスタンドアローンの状態では新たな機能をインストールできないという問題がある。というのは、通信できない環境でも新たな機能を利用できるようにしておくには、予め、必要となると考えられるモジュール群を電子機器に記憶しておく必要があるが、予め記憶しておくとユーザが自由に使用できたり不正利用したりするおそれがある。このため、予め、モジュール群を電子機器に記憶しておく方法を採用するには、インストールしておいても、権限のないユーザが使用できず権限のあるユーザであれば使用可能となる仕組みが必要となる。
【0007】
本発明は、上記課題に鑑み、ネットワークに接続できない環境でも、モジュールと機能の依存関係に応じて適正にモジュールの使用を管理できる情報処理装置、インストール方法、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題に鑑み、本発明は、1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位で記憶装置にインストールする情報処理装置であって、記憶装置に既にインストールされているパッケージに含まれるプログラムコンポーネントのリストを記憶したパッケージ情報記憶手段と、インストールされているプログラムコンポーネント毎にインストール数を記憶したプログラム情報記憶手段と、インストール対象のパッケージに添付された設定ファイルを記憶する記憶媒体から、前記設定ファイルに登録されたプログラムコンポーネントのリストを読み出し、前記パッケージ情報記憶手段に記憶されたリストと突合し、既にインストールされているプログラムコンポーネントを検出する重複プログラム検出手段と、既にインストールされていないプログラムコンポーネントのみをインストールするインストール手段と、インストールしたプログラムコンポーネントをインストール数と共に前記プログラム情報記憶手段に登録し、重複していることが検出されたプログラムコンポーネントのインストール数を1つ増加させるプログラム情報更新手段と、を有することを特徴とする。
【発明の効果】
【0009】
ネットワークに接続できない環境でも、モジュールと機能の依存関係に応じて適正にモジュールの使用を管理できる情報処理装置、インストール方法、プログラム及び記憶媒体を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
まず、本願の画像形成装置100におけるプログラムの実装態様(インストール態様)について説明する。本実施形態では、情報処理装置を備えた画像形成装置100を例にして説明するが、情報処理装置を備えた電子機器、及び、パソコンのような情報処理装置そのものに好適に適用できる。
【0011】
図1は、本実施形態の画像形成装置100におけるインストールの概要を模式的に説明する図の一例である。まず、言葉の定義について説明する。本実施形態では、プログラムの実装にインストール、アクティベーション、有効化という概念を用いる。インストールとは、プログラムコンポーネントを画像形成装置100の記憶装置(後述のHDD15)に記憶することをいう。また、アクティベーションとは、その画像形成装置100でそのプログラムを使用する権限を与えることをいい、原則的にアクティベーションによりインストールされたプログラムコンポーネントが有効化される(起動可能にする)。有効化とは、起動すること又はユーザの起動操作があればいつでもプログラムコンポーネントを起動可能とすることをいう。
【0012】
なお、販売パッケージは、インストールした後にアクティベーションする必要がある場合と、インストールすることで自動的にアクティベーションされる場合がある。アクティベーションが必要か否かは販売パッケージの属性により定まる(infファイルに規定されている)。インストールした後にアクティベーションが必要な販売パッケージでは、アクティベーションしなければ有効化されずプログラムコンポーネントを起動できない。この場合、アクティベーションすることで同時に有効化もされる。
【0013】
以上から、アクティベーションと有効化には次の関係がある。
・インストール時に自動的にアクティベーションされる販売パッケージ
インストールにより、アクティベーションかつ有効化
・インストール後にアクティベーションが必要な販売パッケージ
インストール後、アクティベーションすることで同時に有効化
・アクティベーションと有効化が別のプロセスの販売パッケージ
有効化により有効、無効化により無効
図1に基づき説明する。販売パッケージAには2つの機能パッケージ1,2が含まれている。販売パッケージとは販売単位であり、1以上の機能パッケージが含まれている。機能パッケージは、インストールの最小単位でありプログラムコンポーネントと1対1に対応する(以下、原則的にプログラムコンポーネントを機能パッケージと称する)。
【0014】
本実施形態のプログラムの実装を実現するため、画像形成装置100は販売パッケージ情報74と機能パッケージ情報75を記憶している。図示するように、販売パッケージAをインストールするまでは、販売パッケージ情報74と機能パッケージ情報75には何の情報も登録されていないか、販売パッケージ情報74及び機能パッケージ情報75そのものが記憶されていない。すなわち、販売パッケージ情報74は、その画像形成装置100に販売された販売パッケージを登録するファイルで、機能パッケージ情報75は、販売された販売パッケージに含まれる機能パッケージを登録するファイルである。したがって、販売パッケージ情報74及び機能パッケージ情報75を参照することで、既に販売されている販売パッケージと機能パッケージを検出できる。
【0015】
なお、販売パッケージの「名前」はユーザの管理しやすい名称、「ID」は固有の識別情報、「アクティベーション」は「○」「×」のいずれか状態を取り、「有効」は「○」「×」のいずれか状態を取り、「機能IDリスト」はその販売パッケージが含む機能パッケージのIDが登録される。同様に、機能パッケージ情報75の「名前」はユーザの管理しやすい名称、「ID」は固有の識別情報、「販売数」は販売された数、「有効販売数」は販売数のうち有効な機能パッケージの数、「有効」は「○」「×」のいずれかの状態を取る。
【0016】
販売パッケージ情報74と機能パッケージ情報75に何も情報が登録されていない状況で、販売パッケージAがインストールされるものとする。後述するプラグイン管理部71は、販売パッケージ情報74を参照して(記憶されていないことを確認して)、販売パッケージAに含まれる機能パッケージ1,2をインストールする。
【0017】
なお、販売パッケージAに含まれる機能パッケージが何であるか(図1では機能パッケージ1,2)は、その販売パッケージに含まれるプログラムコンポーネントであるので明らかであるが、各販売パッケージにはinfファイルが添付されているので、infファイルを参照して含まれる各機能パッケージを特定できる。なお、infファイルには、販売パッケージの名前、ID、機能IDリスト、販売パッケージのバージョン、販売パッケージが含む各機能パッケージのバージョン、さらにアクティベーションが必要か否か、等が登録されている。
【0018】
インストール後の販売パッケージ情報74には、販売パッケージAの情報として、名前「dist1」、ID「1111」、アクティベーション「○」、有効「○」、機能IDリスト「2111,2222」が登録される。
【0019】
アクティベーションするか否かは販売パッケージの属性として定められており、例えば販売時に定まるものである。図1はアクティベーションする販売パッケージを示すものであるため、アクティベーションの欄が「○」になっている。また、有効の欄はアクティベーションされると(有効になると)「○」になる。
【0020】
機能パッケージ情報75には、販売パッケージAのインストールに伴いインストールされる機能パッケージの情報が登録される。したがって、名前「func1」「func2」、ID「2111」「2222」、販売数「1」「1」、有効販売数「1」「1」、有効「○」「○」が、それぞれ登録されている。販売数は各機能パッケージの販売数を、有効販売数はそのうち有効化されている機能パッケージの数を示す。これは同じ機能パッケージが複数販売されることがあるためである。販売パッケージAには、1つの機能パッケージ1,1つの機能パッケージ2が含まれているので販売数は1つずつ増え、それぞれアクティベーションされるので有効販売数も1つずつ増える。また、有効の欄は、有効販売数が1つでもあれば「○」になる。
【0021】
次に、インストールされてもアクティベーションされない販売パッケージのインストールについて図2に基づき説明する。なお、インストール対象は図1と同じである。販売パッケージAのインストールに対応して、機能パッケージ1、2がインストールされるが、販売パッケージAはアクティベーションされない。このため、インストール後の販売パッケージ情報74のアクティベーションの欄は「×」であり、この結果、有効の欄も「×」である。
【0022】
同様に、機能パッケージ情報75では、機能パッケージ1,2がそれぞれ販売されたため販売数は「1」「1」となるが、アクティベーションされないので、有効の欄はそれぞれ「×」「×」となる。
【0023】
以上のように、販売パッケージ単位で複数の機能パッケージをインストールする際、機能パッケージの重複、バージョン、アクティベーションの要・不要等に応じて、プログラムの実装形態が異なる。本実施例の画像形成装置100は、このような状況に応じて適切にプログラムを実装する。
【0024】
インストール単位を販売パッケージの単位とすることにより、機能単位でインストールするユーザは、開発単位であるプログラムコンポーネントの単位を意識する必要がない。また販売パッケージの単位をユーザにとって価値のある単位とすることにより、ユーザにとって使いやすい情報処理装置とすることができる。
【0025】
〔画像形成装置100〕
画像形成装置100について簡単に説明する。図3は、画像形成装置100のハードウェア構成図の一例を示す。画像形成装置100は、コントローラ50と、プロッタ27、スキャナ28、ファックス制御ユニット26、及びその他ハードウェアリソース29とがPCIバス、PCI−Xバス又はPCI−Express等のシリアルインターバスで接続された構成となる。また、コントローラ50には操作部24が接続されている。なお、インストール管理プログラム20を記憶する記憶媒体(メモリーカード30)を示した。
【0026】
コントローラ50は、画像形成装置100全体の制御、すなわち、ファックス制御ユニット26、プロッタ27,スキャナ28及びその他ハードウェアリソース29を用いて、原稿の読み取り、印刷、ファクシミリ送受信、操作部24からの入力等を処理する制御部である。
【0027】
プロッタ27は、白黒プロッタ及び/又は1ドラムカラープロッタであり、印刷ジョブデータやスキャナ28が読み取った画像データに基づき、1ページ毎の画像を形成し、用紙に転写する。例えば、レーザービームを用いた電子写真プロセスを使って、感光ドラム等に形成したトナー画像を用紙に転写し、定着装置により熱と圧力により定着して出力する。
【0028】
また、スキャナ28は、コンタクトガラスに載置された原稿を光学的に走査して、その反射光をA/D変換して誤差拡散やガンマ変換などの画像処理を施し所定の解像度のデジタルデータに変換し画像データを生成する。
【0029】
ファックス制御ユニット26は、NCU(Network Control Unit)を介して公衆通信網に接続し、例えばG3、G4規格のファクシミリに対応した通信手順(通信プロトコル)等に従いファクシミリの送受信を行う。ファックス制御ユニット26は、画像データにデータ圧縮や変調等の信号処理を施して送信すると共に、相手先から受信した画像データにデータの伸長やエラー訂正等を施し画像データを復元する。
【0030】
コントローラ50は、CPU11と、ノースブリッジ (以下、NB13という)と、システムメモリ(以下、MEM−P12という)と、サウスブリッジ (以下、SBという)と、ローカルメモリ(以下、MEM−C14という)と、ASIC(Application Specific Integrated Circuit)16と、ハードディスクドライブ(以下、HDD15という)と、ワイヤレスUSBホスト17と、NIC(Network Interface Card)18と、無線LANI/F19と、USBホスト22と、メモリカードI/F23と、を有する。なお、ASIC16とNB13の間はAGP(Accelerated GraphicsPort)で接続されている。
【0031】
CPU11は、MEM−P12、ASIC16、及び、ワイヤレスUSBホスト17等を結ぶバスに流通するデータの送信制御を行うNB13を介して、画像形成装置100の全体を制御する。
【0032】
NB13は、CPU11とMEM−P12、AGPとを接続するためのブリッジICであり、MEM−P12は、画像形成装置100の描画用メモリなどとして用いるシステムメモリである。
【0033】
MEM−C14は、コピー用画像バッファ、符号バッファとして用いられるローカルメモリであり、ASIC16は、多数のレジスタや論理回路を備え、各モータドライバの制御部の他、ヘッドパルス生成部等として機能する。また、ASIC16は、AGP、HDD15およびMEM−C14をそれぞれ接続するブリッジの役割も果たす。
【0034】
操作部24は、ユーザからの入力操作の受け付け並びにユーザに向けた表示をおこなう操作部であり、キーボードの他にタッチパネルを入力手段として有し、LCD(液晶ディスプレイ)等の表示部と兼用されている。
【0035】
HDD15は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うための記憶手段であるが、フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)など不揮発メモリなどでもよい。本実施形態ではHDD15に、アクティベーションを管理するインストール管理プログラム20、販売パッケージ情報74,機能パッケージ情報75、起動情報77、プラグインコンポーネント73が記憶されている。
【0036】
AGPは、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、システムメモリに高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードの処理を高速化する。
【0037】
NIC18は、例えばイーサネット(登録商標)カードであり、OSI基本参照モデルの物理層、データリンク層に規定されたプロトコルに従う処理を実行する。これに後述のメールアプリがSMTPやPOP3等の上位のプロトコルを実行して電子メールを送受信したり、WebアプリがFTP、HTTPなどのプロトコルを実行してライセンスファイルをライセンスサーバ200や画像形成装置100の間で送受信する。
【0038】
無線LANI/F19は、例えばIEEE 802.11a/b/g等の通信規格に準拠し、アクセスポイントに介してLAN等のネットワークに接続する。
【0039】
IEEE1394I/F21は、IEEE1394の通信規格を備えた機器と通信するインターフェイスであり、複数台の機器をデイジーチェーン接続することができる。動画などのサイズの大きなデータを送信するのに適しており、接続される機器は、例えばデジタルカメラやビデオカメラ等である。
【0040】
USBホスト22はUSBコントローラと呼ばれるICで、これをCPU11が実行するデバイスドライバ(ドライバソフトウェア)が制御してUSBI/Fを構成し、接続された例えばUSBメモリ31と通信する。同様に、メモリカードI/F23は、メモリカード30からデータを読み出しまた記録媒体にデータを書き込むインターフェイスである。メモリカード30は、例えばSDカード、マルチメディアカード、xDカード等である
〔ソフトウェアモジュール〕
図4は、画像形成装置100のソフトウェアモジュールの一例を示す図である。ソフトウェアモジュールは、上記のプロッタ27、スキャナ28、その他ハードウェアリソース29とHW(Hard Ware) I/Fを介して接続された構成となり、主に、プラットホーム80とアプリケーション70とから構成される。
【0041】
プラットホーム80は、アプリケーション70からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービス55と、1以上のハードウェア資源の管理を行い、コントロールサービス55からの獲得要求を調停するシステムリソースマネージャ(SRM63)と、OS(Operating System)64と、インストール管理部60と、を有する。
【0042】
コントロールサービス55は、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)62と、ECS(エンジンコントロールサービス)56と、MCS(メモリコントロールサービス)57と、OCS(オペレーションパネルコントロールサービス)58と、FCS(ファックスコントロールサービス)59と、NCS(ネットワークコントロールサービス)61とから構成される。なお、プラットホーム80は、あらかじめ定義されたプログラムによりアプリケーション70から処理要求を受け取るAPI(プリケーションプログラムインタフェース)を有する。
【0043】
OS64は、LINUX(登録商標)やUNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム80及びアプリケーション70の各ソフトウェアをそれぞれプロセスとして並列に実行することができる。OS64は、NIC18、無線LANI/F19、IEEE1394I/F21、USBホスト22、及び、メモリカードI/F23と通信する各種のデバイスドライバを有する。
【0044】
SRM63は、SCS62とともにシステムの制御およびリソースの管理を行う。SRM63のプロセスは、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、ハードウェアリソースによる動作を制御する。
【0045】
SCS62は、アプリ管理、操作部24の制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御等を行う。ECS56は、ハードウェアリソースのエンジンの制御を行う。
【0046】
MCS57は、画像メモリの取得および解放、HDD15の利用、画像データの圧縮および伸張などを行う。FCS59は、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、バックアップSRAMに記憶されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
【0047】
NCS61は、ネットワークI/Oを必要とするアプリケーション70に対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーション70に振り分けたり、アプリケーション70からデータをネットワーク側に送信する際の仲介を行う。具体的には、FTP等のプロトコルの各種デーモンや、同プロトコルのクライアント機能などを有している。
【0048】
OCS58は、ユーザAと本体制御間の情報伝達手段となる操作部(オペレーションパネル)24の制御を行う。OCS58は、操作部24からキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS62に送信する部分と、アプリケーション70またはコントロールサービス55からの要求により表示部25に各種画面を描画出力する描画関数やその他操作部に対する制御を行う関数などがあらかじめ登録されたOCS関数ライブラリの部分とから構成される。
【0049】
アプリケーション70は、電子メールを送受信するメールアプリ49、プリンタ用のプリンタアプリ51と、コピー用のコピーアプリ52と、ファクシミリ用のファックスアプリ53と、スキャナ28用のスキャナアプリ54と、を有している。
【0050】
コントロールサービス55には、インストール管理部60が設けられる。インストール管理部60は、コントロールサービス55でプロセスとして動作し、機能パッケージを構成する各種のプラグインコンポーネント73、アクティベーション、ディアクティベーション、有効化/無効化等の種々の処理を実行する。
【0051】
〔インストール管理部60〕
図5は、インストール管理部60の機能ブロック図の一例を示す。インストール管理部60は、CPU11がインストール管理プログラム20を実行するか所定の演算回路により実現される、プラグイン管理部71及びプラグインスタータ72を有する。
【0052】
プラグイン管理部71は、各種プラグインコンポーネント73のインストール/アンインストール、アクティベーション/ディアクティベーション、有効化/無効化などの処理を実行する。プラグインスタータ72は、起動情報77を参照し、画像形成装置100のシステムの起動時に、各プラグインコンポーネント73の起動処理を実行する。すなわち、プラグインスタータ72は、起動情報77に登録されているプラグインコンポーネント73を起動する。
【0053】
プラグインコンポーネント73、販売パッケージ情報74及び機能パッケージ情報75は、例えばHDD15に記憶される。プラグインコンポーネント73は、画像形成装置100にインストールされる各種のプログラムをいい、プラグイン管理部71が管理する機能パッケージと1対1で対応するものである。
【0054】
〔プラグイン管理部71の機能ブロック図〕
図6は、プラグイン管理部71の機能ブロック図の一例を示す。インストール部81は、例えば、メモリーカード30に記憶された販売パッケージをHDD15にインストールする。具体的には販売パッケージ毎に、販売パッケージが含む機能パッケージ(プラグインコンポーネント73)をインストールする。
【0055】
アクティベーション部82は、その販売パッケージの属性又はユーザの指示に応じて、販売パッケージと販売パッケージに含まれる機能パッケージをアクティベーションする。有効化部83は、機能パッケージを有効化する。インストールはアクティベーションを、アクティベーションは有効化を含む場合があるので図示するように上位の機能は下位の機能を備える。
【0056】
同様に、HDD15から機能パッケージを削除するアンインストール部87、ディアクティベーションするディアクティベーション部88、無効化する無効化部89を備える。詳細は後述する。処理内容決定部91は、アンインストール時に、機能パッケージをアンインストールするか、無効化するか、何もしないかの処理内容を決定する。
【0057】
また、販売パッケージ情報更新部93は、販売パッケージ情報74を更新し、機能パッケージ情報更新部92は機能パッケージ情報75を更新する。重複機能検出部84は、infファイルを参照しこれからインストールする販売パッケージに含まれる機能パッケージのうち、既にインストールされている機能パッケージと重複するものを検出する。バージョン判定部85は、重複した機能パッケージについて、どちらのバージョンが新しいかを判定する。削除部86は、アップデートにより販売パッケージに含まれなくなった機能パッケージを削除する。以下、これらの機能ブロックを用いた本実施形態のプログラムの実装を詳細に説明する。
【0058】
〔プログラムの種々の実装態様〕
以下、インストールされている販売パッケージの有無、インストール時のアクティベーションの有無等に応じた種々のプログラムの種々の実装態様について説明する。
<インストール・アクティベーション不要>
インストール時にアクティベーションされるプログラムの実装態様について図7に基づき説明する。すでに画像形成装置100には販売パッケージBがインストールされている。このため、販売パッケージ情報74には、販売パッケージBの情報が登録されている。図示するように販売パッケージBはアクティベーションされておらず有効の欄は「×」となっている。
【0059】
販売パッケージBには、2つの機能パッケージ2,3が含まれる。このため、機能パッケージ情報75には機能パッケージ2,3の情報がそれぞれ登録されているが、販売パッケージBがアクティベーションされていないので、機能パッケージ2,3の有効販売数はそれぞれ「0」「0」となっている。
【0060】
この状態でアクティベーションの不要な販売パッケージAを販売した場合、インストール管理部は、必要な機能パッケージのみをインストールする。重複機能検出部84は、これからインストールする販売パッケージに含まれる機能パッケージのうち、既にインストールされている機能パッケージと重複するものを検出する。販売パッケージAには、機能パッケージ1,2が含まれ、既にインストールされている販売パッケージには機能パッケージ2、3が含まれる。したがって、重複機能検出部84は機能パッケージ2が重複していることを検出する。インストール部81は、検出された機能パッケージ2をインストールしない。
【0061】
したがって、インストール部81は、機能パッケージ1のみをインストールする。また、アクティベーション部82は、infファイルを参照しインストール時にアクティベーションされる販売パッケージであることを検出して、インストールした機能パッケージ1をアクティベーションし、有効化部は機能パッケージ1を有効化する。なお、販売パッケージBは有効化されていないままである。
【0062】
販売パッケージ情報更新部93は、販売パッケージ情報74に機能パッケージ1の情報を登録し、登録の際、有効の欄を「○」とする。また、機能パッケージ情報更新部92は、機能パッケージ情報75に新たにインストールされた機能パッケージ1の情報を登録する。機能パッケージ1は、それまで機能パッケージ情報75に登録されていなかったので、新たに名前等が登録される。販売数は「1」で、販売パッケージAはアクティベーションされたので有効販売数は「1」となる。
【0063】
一方、機能パッケージ2はすでに機能パッケージ情報75に登録されているため、販売数が1つ増え「2」となる。これに対し、既にインストールされていた機能パッケージ2はアクティベーションされず、新たにインストールされた機能パッケージ2のみがアクティベーションされたので、有効販売数は「1」のままである。
【0064】
以上説明したように、既にインストールされている機能パッケージはインストールされず、機能パッケージ情報75の販売数だけが増大する点が、本実施形態の画像形成装置100の特徴の1つである。
【0065】
<インストール・アクティベーション必要>
インストール時にアクティベーションされないプログラムの実装態様について図8に基づき説明する。アクティベーションは、使用権限を認めること、使用権限を認めたことを示すアクティベーション情報を生成すること、等をいう。アクティベーション情報は、例えば、プログラムコンポーネントのシリアル番号と、画像形成装置100又はユーザの識別情報を関連付けた認証情報である。アクティベーション情報により、プログラムコンポーネントだけをコピーしても他の情報処理装置では利用を困難にすることができる。
【0066】
図8では、図7と同様にすでに販売パッケージBがインストールされた状態で、販売パッケージAをインストールするが、図8では販売パッケージAはアクティベーションされない。販売パッケージAがインストールされる前の販売パッケージ情報74と機能パッケージ情報75は図7と同じである。
【0067】
この状態でアクティベーションが必要な販売パッケージAを販売した場合、重複機能検出部84は、機能パッケージ2が重複していることを検出し、インストール部81は、重複していない機能パッケージ1のみをインストールする。また、アクティベーション部82は、インストール時にアクティベーションしない販売パッケージであることを検出するので、機能パッケージ1をアクティベーションしない。なお、販売パッケージBは有効化されていないままである。
【0068】
販売パッケージ情報更新部93は、販売パッケージ情報74に機能パッケージ1の情報を登録し、登録の際、有効の欄を「×」とする。また、機能パッケージ情報更新部92は、機能パッケージ情報75に新たにインストールされた機能パッケージ1の情報を登録する。機能パッケージ1は、それまで機能パッケージ情報75に登録されていなかったので、新たに名前等が登録される。販売数は「1」で、販売パッケージAはアクティベーションされないので有効販売数は「0」となる。
【0069】
一方、機能パッケージ2はすでに機能パッケージ情報75に登録されているため、販売数が1つ増え「2」となる。これに対し、既にインストールされていた機能パッケージ2はアクティベーションされず、新たにインストールされた機能パッケージ2もアクティベーションされないので、有効販売数は増えることなく「0」となる。
【0070】
<インストール・アクティベーション不要(バージョン違い)>
同じ機能パッケージが既にインストールされているが、バージョンが異なる場合のインストールについて図9に基づき説明する。
図9では、すでに画像形成装置100に販売パッケージBがインストールされ、アクティベーションされている。このため、販売パッケージ情報74の販売パッケージBでは、アクティベーションと有効の欄がそれぞれ「○」となっている。
【0071】
販売パッケージBには、2つの機能パッケージ2,3が含まれるので、機能パッケージ情報75には機能パッケージ2,3の情報がそれぞれ登録されている。販売パッケージBがアクティベーションされているので、機能パッケージ2,3の有効販売数はそれぞれ「1」「1」となっている。
【0072】
この状態でアクティベーションの不要な販売パッケージAを販売してインストールする。ここで、重複機能検出部84は、機能パッケージ2が重複していることを検出するが、バージョン判定部85は、重複した機能パッケージがある場合、どちらのバージョンが新しいかを判定する。図9では、販売パッケージAの機能パッケージ2のバージョンが「2」で、販売パッケージBの機能パッケージ2のバージョンが「1」であるので、既にインストールされている機能パッケージ2の方がバージョンが古い。このため、インストール部81は、重複していても、販売パッケージAに含まれる機能パッケージ2をインストールする。これにより、機能パッケージ2をバージョンアップすることができる。
【0073】
販売パッケージ情報74と機能パッケージ情報75の登録・更新は上記のとおりである。すなわち、販売パッケージ情報更新部93は、販売パッケージ情報74に機能パッケージ1の情報を登録する。販売パッケージAはアクティベーションが不要なので、アクティベーションの欄は「○」、有効の欄は「○」になる。
【0074】
また、機能パッケージ情報更新部92は、機能パッケージ情報75に機能パッケージ1の情報を登録する。機能パッケージ1はアクティベーションが不要なので、有効販売数は「1」、有効の欄は「○」になる。また、機能パッケージ情報75がバージョンの欄を有する場合には機能パッケージのバージョンを登録する。
【0075】
また、機能パッケージ2が販売パッケージAに含まれていたので、機能パッケージ情報更新部92は、機能パッケージ2の販売数を1つ増やし「2」にして、有効販売数も1つ増やして「2」にする。なお、同じ機能パッケージの異なるバージョンがインストールされた場合、バージョンアップ後のバージョンが登録される。
【0076】
<インストール・アクティベーション必要(バージョン違い)>
同様に、異なるバージョンで同じ機能パッケージをインストールする場合において、アクティベーションが必要な場合を図10に基づき説明する。インストール前の販売パッケージ情報74と機能パッケージ情報75は図9と同じである。したがって、インストール部81は、機能パッケージ2がすでにインストールされていても、バージョンが新しい販売パッケージAに含まれる機能パッケージ2をインストールする。
【0077】
販売パッケージ情報更新部93は、販売パッケージ情報74に機能パッケージ1の情報を登録する。販売パッケージAはアクティベーションが必要なので、アクティベーションの欄は「×」、有効の欄は「×」になる。
【0078】
また、機能パッケージ情報更新部92は、機能パッケージ情報75に機能パッケージ1の情報を登録する。機能パッケージ1はアクティベーションが必要なので、販売数は「1」でも有効販売数は「0」、有効の欄は「×」になる。
【0079】
また、機能パッケージ2が販売パッケージAに含まれていたので、機能パッケージ情報更新部92は、機能パッケージ2の販売数を1つ増やし「2」にする。しかし、販売パッケージAはアクティベーションが必要なので、有効販売数は増えず「1」のままである。
【0080】
<インストール・アクティベーション不要(バージョン違い2)>
同じ機能パッケージが既にインストールされており両者のバージョンが異なるが、後からインストールする機能パッケージのバージョンの方が古い場合について図11に基づき説明する。なお、図11において図9と同一部の説明は省略する。
【0081】
図11では、これからインストールする販売パッケージAに含まれる機能パッケージ2のバージョンが「1」で、販売パッケージBに含まれる機能パッケージ2のバージョンが「2」であるので、既にインストールされている機能パッケージ2の方がバージョンが新しい。このような場合、販売パッケージAに含まれる機能パッケージ2をインストールする必要はない。
【0082】
なお、インストールによる販売パッケージ情報74と機能パッケージ情報75の変化は図9と同じである。
【0083】
<インストール・アクティベーション必要(バージョン違い2)>
図11と同様の状況で、販売パッケージAのアクティベーションが必要な場合を図12に基づき説明する。なお、図12において図10と同一部の説明は省略する。図12では、これからインストールする販売パッケージAに含まれる機能パッケージ2のバージョンが「1」で、販売パッケージBに含まれる機能パッケージ2のバージョンが「2」であるので、既にインストールされている機能パッケージ2の方がバージョンが新しい。このような場合、販売パッケージAに含まれる機能パッケージ2をインストールする必要はない。
【0084】
なお、インストールによる販売パッケージ情報74と機能パッケージ情報75の変化は図10と同じである。
【0085】
<アップデート>
同じ販売パッケージのアップデートについて説明する。図13は、販売パッケージAのアップデートを説明する図の一例である。販売パッケージのアップデートでも機能パッケージ毎にインストールされるのはこれまでと同じである。アップデートという実装態様は、ユーザが意識的か無意識かに関わらず同じ販売パッケージをインストールする際に生じる状況であり、インストールの一形態である。
【0086】
画像形成装置100にすでにバージョン「1」の販売パッケージAがインストールされている状態で、ユーザは新しいバージョン「2」の販売パッケージAをインストール(アップデート)する。販売パッケージAには、機能パッケージ1,2が含まれているが、機能パッケージ2のバージョンはいずれも「2」であり変化がない。このような場合は、バージョンが新しくなった機能パッケージのみをインストールすればよい。
【0087】
したがって、バージョン判定部85は、機能パッケージ毎にバージョンを比較して、バージョンが新しい機能パッケージのみをインストールするよう、インストール部81に要求する。以上から、インストール部81は、販売パッケージAの機能パッケージ1のみインストールする。
【0088】
アップデートの場合、販売パッケージ情報74と機能パッケージ情報75とで変化があるのはバージョンの欄だけである。販売パッケージ情報更新部93は、販売パッケージ情報74のバージョンの欄を「1」から「2」に更新し、機能パッケージ情報更新部92は、機能パッケージ1のバージョンの欄を「1」から「2」に更新する。なお、機能パッケージ2はアップデートされなかったので機能パッケージ2のバージョンの欄は変更がない。
【0089】
<アップデート2>
同じ販売パッケージのアップデートの別の形態について図14に基づき説明する。アップデートの際、機能パッケージの一部又は全てが一新される場合がある。このような場合、同じ販売パッケージでもアップデートにより異なる機能パッケージに切り替わったり追加される場合がある。
【0090】
図14では、バージョン「2」の販売パッケージAは、バージョン「1」の販売パッケージAに含まれていた機能パッケージ2がなくなり、新たに機能パッケージ3が含まれるようになっている。このような場合、機能パッケージ2はインストールしている必要がない。そこで、削除部86は、新たなバージョンの販売パッケージに含まれていて、古いバージョンの販売パッケージに含まれていない機能パッケージを検出し、その機能パッケージを削除する。削除とはHDD15から消去することをいい、アンインストールと同義である。
【0091】
なお、インストール部81は、新しいバージョンの販売パッケージ1にのみ含まれている機能パッケージ3をインストールする。この機能パッケージ3をアクティベーションするか否かはアップデート前の販売パッケージの状況に従う。
【0092】
図14では、機能パッケージ2が新しい販売パッケージAに含まれなくなったので、削除部86は機能パッケージ2を削除する。また、インストール部81は、バージョンが新しくなった機能パッケージ1と、新たに追加された機能パッケージ3をインストールする。
【0093】
販売パッケージ情報更新部93は、販売パッケージ情報74のバージョンの欄を「1」から「2」に更新し、機能パッケージ情報更新部92は、機能パッケージ1のバージョンの欄を「1」から「2」に更新する。また、機能パッケージ情報更新部92は、機能パッケージ情報75から機能パッケージ2の情報を削除する。そして、新たにインストールした機能パッケージ3の情報を登録する。アップデート前の機能パッケージ2の有効の欄が「○」なので、機能パッケージ3の有効販売数は「1」、有効の欄も「○」になる。
【0094】
<インストールの処理手順>
図15は、以上のインストール手順を説明するフローチャート図の一例である。図15ではユーザからの指示によりインストールが開始されるとした(S10)。
【0095】
まず、インストール部81は、HDD15へのアクセスが可能か否かを判定する(S20)。アクセスが可能とは、例えばアクセスする権限があることをいう。アクセスが可能でない場合、HDD15へのアクセスを可能にできるか否かを判定する(S30)。アクセスを可能にするとは、例えば、アクセス権限のあるログイン名で新たにログインしたり、HDD15のセキュリティを調整することである(S40)。最終的にHDD15にアクセスできなければ(S30のNo)、図15の処理を終了する。
【0096】
HDD15へのアクセスが可能な場合(S20のYes、S30のYes)、インストールする予定の販売パッケージを用意する(S50)。販売パッケージの用意の方法はいくつかあり、例えばサーバからダウンロードすること、HDD15に記憶されているファイルを解凍すること、メモリカード30等の記録媒体を画像形成装置100に装着して読み出すこと等ができる。いずれの場合もinfファイルが添付されている(各記憶メディアに記憶されている)。
【0097】
インストール部81は、この用意された販売パッケージの正当性を確認する(S60)。正当性の確認は、例えばユーザが入力したキーコードが販売パッケージに格納されているキーコードと一致するか否か、販売パッケージに格納されている使用可能期間内か否か、画像形成装置100の識別番号に対応づけられているか否か、等により判定される。
【0098】
正当性が確認されない場合(S70のNo)、インストール部81は不当な販売パッケージをインストールしようとした場合の後処理を行う(S80)。例えば、エラーメッセージの表示等である。
【0099】
正当性が確認された場合(S70のYes)、インストール部81は販売パッケージの情報ファイル(*.inf)から販売パッケージの情報を取得する(S90)。infファイルには、販売パッケージの名前、ID、機能IDリスト、販売パッケージのバージョン、販売パッケージが含む各機能パッケージのバージョン、アクティベーションの要・不要が登録されている。インストール部81は、機能パッケージに関する情報をinfファイルから読み出す(S100)。
【0100】
そして、重複機能検出部84は、販売パッケージに含まれる機能パッケージが既に画像形成装置100にインストールされているか否かを確認し(S110)、インストール部81は販売パッケージに含まれる機能パッケージ毎に、画像形成装置100のインストール状況に応じた処理を実行する(S120)。すなわち、
・まだインストールされていない機能パッケージはインストールする。
・インストールされているがバージョンが古い場合は新しい機能パッケージをインストールする。
・インストールされておりバージョンが同等以上の場合はインストールしない。
・新たなバージョンの販売パッケージに含まれていて、古いバージョンの販売パッケージに含まれていない機能パッケージは削除する。
【0101】
ついで、販売パッケージ情報更新部93はインストールした販売パッケージ情報74を更新し、機能パッケージ情報更新部92はインストールした機能パッケージに関し機能パッケージ情報75を更新する(S130)。インストール部81等は以上の処理を機能パッケージ毎に繰り返し実行する。
【0102】
<アクティベーション>
インストール後にアクティベーションが必要な販売パッケージのアクティベーションについて図16に基づき説明する。図2において説明したように、アクティベーションが必要な販売パッケージでは、HDD15にインストールされてもアクティベーションされなければ起動することができない。インストールされたがアクティベーションされていない販売パッケージAの販売パッケージ情報74は、アクティベーションの欄が「×」、有効の欄も「×」である。当然ながら、機能パッケージ情報75の有効販売数の欄も全て「0」になっている。
【0103】
アクティベーション部82は、例えば、ユーザからの指示により販売パッケージAをアクティベーションする。アクティベーションにより同時に有効化される。アクティベーションされると、販売パッケージ情報更新部93は、販売パッケージ情報74のアクティベーションの欄と有効の欄にそれぞれ「○」を登録する。また、機能パッケージ情報更新部92は、機能パッケージ1、2の有効販売数をそれぞれ「1」に増やし、有効の欄にそれぞれ「○」を登録する。
【0104】
<有効化>
有効化とは、起動することや最終的な使用が許可された状態とすることである。アクティベーションされたが有効化されてない状態となることがあるが、アクティベーションしておけば、有効化は簡単な処理で完了するので、販売パッケージを起動可能な状態の直前の状態にしておくことができ、いつもで起動を許可することができる。
【0105】
図17は、販売パッケージの有効化を説明する図の一例である。すでに販売パッケージAはアクティベーションされているが有効化されていないので、販売パッケージ情報74のアクティベーションの欄は「○」が、有効の欄は「×」がそれぞれ登録されている。販売パッケージが有効化されていないので、機能情報パッケージの有効販売数の欄は「0」であり、有効の欄も「×」である。
【0106】
例えば、ユーザからの指示、タイマー、HDD15のアクセスが許可されたこと、などをトリガーに、有効化部83は、販売パッケージAを有効化する。すなわち、機能パッケージ1,2をそれぞれ有効化する。
【0107】
有効化されると、販売パッケージ情報更新部93は、販売パッケージ情報74の有効の欄に「○」に登録する。また、機能パッケージ情報更新部92は、機能パッケージ1、2の有効販売数をそれぞれ「1」に増やし、有効の欄にそれぞれ「○」を登録する。
【0108】
<アクティベーション(一部機能パッケージを共有)>
アクティベーションは販売パッケージ毎に行われるので、複数の販売パッケージがインストールされた状態でアクティベーションすると、アクティベーションした販売パッケージに含まれる機能パッケージが、別の販売パッケージに含まれている場合がある。しかしながら、このような場合でもアクティベーションされるのは1つの機能パッケージだけである。
【0109】
図18は、インストール後にアクティベーションが必要な販売パッケージのアクティベーションを説明する図の一例である。画像形成装置100には販売パッケージAとBがインストールされているが、販売パッケージAはアクティベーションされておらず販売パッケージBはアクティベーションされている。したがって、インストールされたがアクティベーションされていない販売パッケージAの販売パッケージ情報74は、アクティベーションの欄が「×」、有効の欄も「×」、販売パッケージBの販売パッケージ情報74は、アクティベーションの欄が「○」、有効の欄も「○」である。
【0110】
これに対応して、機能パッケージ情報75において、機能パッケージ1の販売数は「1」、有効販売数は「0」、有効の欄は「×」である。また、機能パッケージ2の販売数は「2」、有効販売数は「1」、有効の欄は「○」である。機能パッケージ3の販売数は「1」、有効販売数は「1」、有効の欄は「○」である。
【0111】
アクティベーション部82は、例えば、ユーザからの指示により販売パッケージAをアクティベーションする。アクティベーションにより同時に有効化されるが、機能パッケージ2はすでに有効化されているので、有効化する必要はない。
【0112】
アクティベーションされると、販売パッケージ情報更新部93は、販売パッケージ情報74のアクティベーションの欄と有効の欄にそれぞれ「○」に登録する。また、機能パッケージ情報更新部92は、機能パッケージ1の有効販売数を「1」に増やし、有効の欄に「○」を登録する。また、機能パッケージ2の有効販売数も1つ増え「2」になる。
【0113】
<有効化(一部機能パッケージを共有)>
アクティベーションだけされ有効化を後から実行する場合も、アクティベーションと有効化を同時に実行する場合と同様である。
【0114】
図19は、アクティベーション後の有効化を説明する図の一例である。画像形成装置100には販売パッケージAとBがインストールされているが、販売パッケージAは有効化されておらず、販売パッケージBはアクティベーションかつ有効化されている。したがって、インストールされたが有効化されていない販売パッケージAの販売パッケージ情報74は、アクティベーションの欄が「○」、有効の欄は「×」、販売パッケージBの販売パッケージ情報74は、アクティベーションの欄が「○」、有効の欄も「○」である。
【0115】
これに対応して、機能パッケージ情報75において、機能パッケージ1の販売数は「1」、有効販売数は「0」、有効の欄は「×」である。また、機能パッケージ2の販売数は「2」、有効販売数は「1」、有効の欄は「○」である。機能パッケージ3の販売数は「1」、有効販売数は「1」、有効の欄は「○」である。
【0116】
例えば、ユーザからの指示、タイマー、HDD15のアクセスが許可されたこと、などをトリガーに、有効化部83は、販売パッケージAを有効化する。有効化の具体的な作業は、図15と同様である。すなわち、有効化部83は機能パッケージ1を有効化する。なお、機能パッケージ2は既に有効化されているので、有効化する必要はない。
【0117】
有効化されると、販売パッケージ情報更新部93は、販売パッケージ情報74の有効の欄に「○」に登録する。また、機能パッケージ情報更新部92は、機能パッケージ1の有効販売数を「1」に増やし、有効の欄に「○」を登録する。また、機能パッケージ2の有効販売数も1つ増え「2」になる。
【0118】
<有効化の処理手順>
図20は、有効化手順を説明するフローチャート図の一例である。図20ではユーザからの指示により有効化が開始されるとした。なお、アクティベーションの処理は有効化と同じであるので省略した。また、図20において図15と同一ステップには同じ符号を付しその説明は簡単に行う。
【0119】
まず、有効化部83は、HDD15へのアクセスが可能か否かを判定する(S20〜S40)。HDD15へのアクセスが可能な場合(S20のYes、S30のYes)、有効化は機能パッケージ毎に実行するので、有効化部83は有効化対象の販売パッケージに含まれる機能パッケージを特定する(S210)。
【0120】
図21は、ステップS210の機能パッケージの特定手順を説明するフローチャート図である。すなわち、有効化部83は販売パッケージ情報74、機能パッケージ情報75をHDD15から読み出す(S2101)。そして、有効化の対象となっている販売パッケージが含む機能パッケージ(機能IDリスト)を特定する(S2102)。以上で、有効化すべき機能パッケージを特定できた。
【0121】
図20に戻り、有効化部83は機能パッケージ情報75を参照して、有効化する機能パッケージの現在の状態を確認する(S220)。他の販売パッケージに含まれている機能パッケージではすでに有効化されている可能性があるからである。
【0122】
有効化する機能パッケージが既に有効化されている場合(S230の無効状態)、有効化する必要はないので次の機能パッケージの処理に移行する。
【0123】
有効化する機能パッケージが有効化されていない場合(S230の有効状態)、有効化部83はその機能パッケージを有効化する(S240)。以上の処理を、有効化する販売パッケージに含まれる機能パッケージについて繰り返す。
【0124】
全ての機能パッケージの有効化処理が完了すると、販売パッケージ情報更新部93は販売パッケージ情報74を更新し、機能パッケージ情報更新部92は機能パッケージ情報75を更新する(S250)。
【0125】
〔実装後のアンインストール、ディアクティベーション、無効化〕
これまで、プログラムの実装態様について説明してきたが、実装とは逆方向のプロセスを辿ることも可能である。すなわち、アンインストールによりHDD15から販売パッケージを削除し、ディアクティベーションによりアクティベーションされていない状態にし、無効化により有効化されていない状態にすることができる。なお、ディアクティベーションされると同時に無効化される。インストール、アクティベーション、有効化の順に起動状態に近づくという意味では、無効化と有効化が対応し、ディアクティベーションとアクティベーションが対応し、インストールとアンインストールが対応する。以下、順に説明する。
【0126】
<無効化>
無効化とは有効化した販売パッケージを有効でない状態にすることをいう。無効化により、アクティベーションされているが有効化されてない状態となる。
【0127】
図22は、販売パッケージの無効化を説明する図の一例である。販売パッケージAはアクティベーションされ有効化されている。このため、販売パッケージ情報74のアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージAが有効化されているので、機能パッケージ1,2の有効販売数の欄は共に「1」であり、有効の欄も共に「○」である。
【0128】
例えば、ユーザからの指示、有効期間切れによる更新要求などをトリガーに、無効化部89は、販売パッケージAを有効化する。完全にディアクティベーションやアンインストールする前に無効化することで、期限切れ等を知らせるメッセージを確認した後、再度、有効化するなどの使い方が可能になる。無効化部89は、例えばプログラムコンポーネントを終了させるなど、簡単な処理で使用を中断、禁止するものである。
【0129】
無効化されると、販売パッケージ情報更新部93は、販売パッケージ情報74の有効の欄に「×」に登録する。また、機能パッケージ情報更新部92は、機能パッケージ1、2の有効販売数にそれぞれ「0」を登録し、有効の欄にそれぞれ「×」を登録する。
【0130】
<無効化の処理手順>
図23は、無効化手順を説明するフローチャート図の一例である。図23ではユーザからの指示により無効化が開始されるとした。また、図23において図20と同一ステップには同じ符号を付しその説明は簡単に行う。
【0131】
まず、無効化部89は、HDD15へのアクセスが可能か否かを判定する(S20〜S40)。HDD15へのアクセスが可能な場合(S20のYes、S30のYes)、無効化は機能パッケージ毎に実行するので、無効化部89は無効化対象の販売パッケージに含まれる機能パッケージを特定する(S210)。ステップS210の処理は図21に示したとおりである。次いで、無効化部89は機能パッケージ情報75を参照して、無効化する機能パッケージの現在の状態を確認する(S320)。その機能パッケージではすでに無効化されている可能性があるからである。
【0132】
無効化する機能パッケージが既に無効化されている場合(S330の無効状態)、無効化する必要はないので次の機能パッケージの処理に移行する。
【0133】
無効化する機能パッケージが無効化されていない場合(S330の有効状態)、無効化部89は、無効化しようとした機能パッケージが他の有効な販売パッケージに含まれているか否かを確認する(S340)。1つでも有効な販売パッケージがあればその有効性が優先されるからである。
【0134】
含まれている場合(S350の含まれている)、無効化できないので次の機能パッケージの処理に移行する。
【0135】
含まれていない場合(S350の含まれていない)、無効化部89はその機能パッケージを無効化する(S360)。以上の処理を、有効化する販売パッケージに含まれる機能パッケージについて繰り返す。
【0136】
全ての機能パッケージの無効化処理が完了すると、販売パッケージ情報更新部93は販売パッケージ情報74を更新し、機能パッケージ情報更新部92は機能パッケージ情報75を更新する(S370)。
【0137】
<ディアクティベーション>
ディアクティベーションとはアクティベーションかつ有効化された状態の販売パッケージをアクティベーションされていない状態にすることをいう。ディアクティベーションにより、例えば、アクティベーションする権限を残して機能パッケージを起動できない状態にでき、別の画像形成装置100や情報処理装置において改めてアクティベーションすることができる。
【0138】
図24は、販売パッケージのディアクティベーションを説明する図の一例である。販売パッケージAはアクティベーションされ有効化されている。このため、販売パッケージ情報74のアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージAが有効化されているので、機能パッケージ1,2の有効販売数の欄は共に「1」であり、有効の欄も共に「○」である。
【0139】
例えば、ユーザからの指示、有効期間切れによる更新要求などをトリガーに、ディアクティベーション部88は、販売パッケージAをディアクティベーションする。前者の場合、ディアクティベーションにより、例えば、販売パッケージがアクティベーションされていた画像形成装置100からアクティベーション情報を取り出し両者の関係を解消するので、そのアクティベーション情報を用いて別の画像形成装置100でアクティベーションすることが可能となる。後者の場合、有効期限が切れたので、HDD15に機能パッケージを残したまま使用を禁止できる。
【0140】
ディアクティベーションされると、販売パッケージ情報更新部93は、販売パッケージ情報74のアクティベーションの欄と有効の欄にそれぞれ「×」を登録する。また、機能パッケージ情報更新部92は、機能パッケージ1、2の有効販売数にそれぞれ「0」を登録し、有効の欄にそれぞれ「×」を登録する。
【0141】
<アンインストール>
アンインストールとはHDD15から販売パッケージを削除することをいう。すなわち、再インストールしなければその販売パッケージによる機能を実行することができなくなり、プログラムコンポーネントの不正利用を防止しやすくできる。
【0142】
図25は、販売パッケージのアンインストールを説明する図の一例である。販売パッケージAはアクティベーションされ有効化されている。このため、販売パッケージ情報74のアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。なお、アンインストールは、アクティベーションされていない状態又は有効化されていない状態でも可能である。販売パッケージAが有効化されているので、機能パッケージ1,2の有効販売数の欄は共に「1」であり、有効の欄も共に「○」である。
【0143】
例えば、ユーザからの指示、有効期間切れになどをトリガーに、アンインストール部87は、販売パッケージAをHDD15からアンインストールする。前者の場合、例えば、有効期限が切れたのでHDD15から削除する場合、逆に有効期限を残して別の画像形成装置100にインストールしたり、残期間の料金を返還してもらうような場合が考えられる。後者の場合は、有効期限が切れたので自動的にアンインストールすることが考えられる。
【0144】
アンインストールされると、販売パッケージ情報更新部93は、販売パッケージ情報74をHDD15から削除し、機能パッケージ情報更新部92は、機能パッケージ1情報をHDD15から削除する。
【0145】
<無効化(一部機能パッケージを共有)>
同じ機能パッケージを含む販売パッケージの一部が無効化された場合を説明する。図26は、販売パッケージの無効化を説明する図の一例である。販売パッケージA、Bは共にアクティベーションされ有効化されている。このため、販売パッケージA,Bのアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージA、Bが有効化されているので、機能パッケージ1の有効販売数は「1」有効の欄は「○」、機能パッケージ2の有効販売数は「2」有効の欄は「○」、機能パッケージ3の有効販売数は「1」有効の欄は「○」である。
【0146】
無効化部89が販売パッケージAを無効化すると、販売パッケージ情報更新部93は、販売パッケージAの有効の欄に「×」に登録する。これにより、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2が無効化されるので、機能パッケージ情報更新部92は、機能パッケージ1の有効販売数を1減らして「0」に有効の欄に「×」を登録し、機能パッケージ2の有効販売数を1減らして「1」を登録する。なお、機能パッケージ2は有効販売数は「1」であるので、機能パッケージ2は無効化されない。
【0147】
<ディアクティベーション(一部機能パッケージを共有)>
同じ機能パッケージを含む販売パッケージの一部がディアクティベーションされた場合を説明する。図27は、販売パッケージのディアクティベーションを説明する図の一例である。販売パッケージA、Bは共にアクティベーションされ有効化されている。このため、販売パッケージA、Bのアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージA、Bが有効化されているので、機能パッケージ1の有効販売数は「1」有効の欄は「○」、機能パッケージ2の有効販売数は「2」有効の欄は「○」、機能パッケージ3の有効販売数は「1」有効の欄は「○」である。
【0148】
ディアクティベーション部88が販売パッケージAをディアクティベーションすると、販売パッケージ情報更新部93は、販売パッケージAのアクティベーションの欄と有効の欄にそれぞれ「×」を登録する。また、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2が無効化されるので、機能パッケージ情報更新部92は、機能パッケージ1の有効販売数を1減らして「0」に有効の欄に「×」を登録し、機能パッケージ2の有効販売数を1減らして「1」を登録する。なお、機能パッケージ2は有効販売数が「1」であるので、機能パッケージ2は無効化されない。
【0149】
<アンインストール(一部機能パッケージを共有)>
一部の機能パッケージを共有したアンインストールには、アンインストール前の販売パッケージが有効か否かに応じて3つの態様がある。以下、順番に説明する。
・いずれも有効な販売パッケージの一方をアンインストール
同じ機能パッケージを含む販売パッケージの一部が無効化された場合を説明する。図28は、販売パッケージのアンインストールを説明する図の一例である。販売パッケージA、Bは共にアクティベーションされ有効化されている。このため、販売パッケージA、Bのアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージA、Bが有効化されているので、機能パッケージ1の有効販売数は「1」有効の欄は「○」、機能パッケージ2の有効販売数は「2」有効の欄は「○」、機能パッケージ3の有効販売数は「1」有効の欄は「○」である。
【0150】
アンインストール部87が販売パッケージAをアンインストールすると、販売パッケージ情報更新部93は、販売パッケージAの情報を全て消去する。これにより、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2がアンインストールされるので、機能パッケージ情報更新部92は、機能パッケージ1の情報を消去する。また、機能パッケージ2の販売数を1減らして「1」に、有効販売数を1減らして「1」にする。なお、機能パッケージ2は有効販売数が「1」であるので、機能パッケージ2は無効化されない。
・一方が有効でない販売パッケージのうち有効な方をアンインストール
図29は、販売パッケージのアンインストールを説明する図の一例である。販売パッケージAはアクティベーションされ有効化されているが、販売パッケージBはアクティベーションされているが有効化されていない。この状態で販売パッケージAをアンインストールすると、有効な販売パッケージがなくなることになる。
【0151】
販売パッケージAのアクティベーションの欄と有効の欄はそれぞれ「○」が、販売パッケージBのアクティベーションの欄は「○」だが有効の欄は「×」が登録されている。販売パッケージAだけ有効化されているので、機能パッケージ1の有効販売数は「1」有効の欄は「○」、機能パッケージ2の有効販売数は「1」有効の欄は「○」、機能パッケージ3の有効販売数は「0」有効の欄は「×」である。
【0152】
アンインストール部87が販売パッケージAをアンインストールすると、販売パッケージ情報更新部93は、販売パッケージAの情報を全て消去する。これにより、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2がアンインストールされるので、機能パッケージ情報更新部92は、機能パッケージ1の情報を全て消去する。また、機能パッケージ2の販売数を1減らして「1」を、有効販売数を1減らして「0」をそれぞれ登録する。有効販売数が「0」なので、機能パッケージ2の有効の欄は「×」になる。したがって、機能パッケージ2,3のいずれも有効でなくなる。
・一方が有効でない販売パッケージのうち有効でない方をアンインストール
図30は、販売パッケージのアンインストールを説明する図の一例である。販売パッケージAはアクティベーションされているが有効化されておらず、販売パッケージBはアクティベーションされ有効化されている。この状態で販売パッケージAをアンインストールする。
【0153】
販売パッケージAのアクティベーションの欄は「○」が有効の欄は「×」が、販売パッケージBのアクティベーションの欄と有効の欄は「○」が、それぞれ登録されている。販売パッケージBだけ有効化されているので、機能パッケージ1の有効販売数は「0」有効の欄は「×」、機能パッケージ2の有効販売数は「1」有効の欄は「○」、機能パッケージ3の有効販売数は「1」有効の欄は「○」である。
【0154】
アンインストール部87が販売パッケージAをアンインストールすると、販売パッケージ情報更新部93は、販売パッケージAの情報を全て消去する。これにより、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2がアンインストールされるので、機能パッケージ情報更新部92は、機能パッケージ1の情報を全て消去する。また、機能パッケージ2の販売数を1減らして「1」を登録する。機能パッケージ2の有効販売数は変化しないので「1」のままであり、有効の欄も「○」のままである。したがって、機能パッケージ2は有効のままである。また、機能パッケージ3の機能パッケージ情報75には変化がない。
【0155】
<アンインストールの処理手順>
図31は、アンインストール手順を説明するフローチャート図の一例である。図31ではユーザからの指示により有効化が開始されるとした。なお、図31において図20と同一ステップには同じ符号を付しその説明は簡単に行う。
【0156】
まず、アンインストール部87は、HDD15へのアクセスが可能か否かを判定する(S20〜S40)。HDD15へのアクセスが可能な場合(S20のYes、S30のYes)、アンインストールは機能パッケージ毎に実行するので、アンインストール部87はアンインストール対象の販売パッケージに含まれる機能パッケージを特定する(S210)。ステップS210の処理は図21に示したとおりである。
販売パッケージをアンインストールすると、含まれている機能パッケージが他の販売パッケージに含まれているか否かや有効化されているか否かにより処理が変わってくるので、処理内容決定部91は機能パッケージ毎に適切な処理(以下、アンインストール時処理という)を決定する(S410)。
図32はアンインストール時処理の手順を示すフローチャート図の一例である。処理内容決定部91は、アンインストールする販売パッケージに含まれている機能パッケージが現在有効か否かを確認する(S4010)。
【0157】
例えば、図28では、機能パッケージ1、2は共に有効であり、図29では、機能パッケージ1、2は共に有効であり、図30では、機能パッケージ1は有効でないが機能パッケージ2が有効である。
【0158】
有効状態な場合(S4020のYes)、アンインストールする販売パッケージに含まれている有効な機能パッケージが、他の有効な販売パッケージに含まれているか否かを確認する(S4030)。
【0159】
他の有効な販売パッケージに含まれている場合は(S4040のYes)、アンインストールも無効化もできないので、何もしない(S4100)。すなわち、図28の機能パッケージ2,図30の機能パッケージ2は有効なままである。
【0160】
他の有効な販売パッケージに含まれていない場合(S4040のNo)、アンインストールする販売パッケージに含まれている有効な機能パッケージが、他の販売パッケージに含まれているか否かを確認する(S4050)。有効でない販売パッケージに含まれているため、今回のアンインストールでその機能パッケージは有効でなくなる。
【0161】
このため、他の販売パッケージに含まれている場合(S4060のYes)、処理内容決定部91はその機能パッケージを無効化すると決定する(S4070)。すなわち、図29の機能パッケージ2は無効化される。
【0162】
一方、他の販売パッケージに含まれていない場合(S4060のNo)、消去してよいことになるので、処理内容決定部91はその機能パッケージをアンインストールすると決定する(S4110)。すなわち、図28、29の機能パッケージ1はHDD15から消去される。
【0163】
ステップS4020に戻り、有効状態でない場合(S4020のNo)、アンインストールする販売パッケージに含まれている機能パッケージが、他の販売パッケージに含まれているか否かを確認する(S4080)。例えば、図30の機能パッケージ1は有効でないが、他の販売パッケージに含まれていない。
【0164】
含まれていない場合(S4090のNo)、処理内容決定部91はその機能パッケージをアンインストールすると決定する(S4110)。すなわち、図30の機能パッケージ1はHDD15から消去される。
【0165】
含まれている場合(S4090のYes)、すでに有効でないことになるので、アンインストール対象の機能パッケージには何もしない(S4100)。
【0166】
以上のロジックで機能パッケージ毎に処理内容を決定すると、図31に戻り、アンインストール部87は、処理内容に基づき、販売パッケージに含まれる機能パッケージがアンインストール可能か否かを判定する(S420)。
【0167】
アンインストールが可能な機能パッケージであれば(S430のYes)、アンインストール部87は販売パッケージに含まれる機能パッケージをアンインストールする(S440)。
【0168】
アンインストールすると、販売パッケージ情報更新部93は販売パッケージ情報74を更新し、機能パッケージ情報更新部92は機能パッケージ情報75を更新する(S450)。
【0169】
以上のように、アンインストールする際、機能パッケージの共用状態、有効化の有無等に応じて、適切にアンインストールすることができる。
【0170】
〔起動処理〕
続いて、実装されたプログラムの起動について説明する。上記のように、各プラグインコンポーネント(機能パッケージ)73の起動は、起動情報77に基づいてプラグインスタータ72により制御される。このため、販売パッケージのインストールする際は、販売パッケージが含む各機能パッケージの起動順を起動情報77に登録する。このため、各販売パッケージには起動情報77を生成するための情報が含まれている。
【0171】
図33(a)は、販売パッケージに含まれるパッケージ内容を模式的に説明する図の一例である。例えば、この販売パッケージには3つの機能パッケージA〜Cが含まれている。また、上記のinfファイルと起動順を定義した起動順定義ファイル95がパッケージされている。起動順定義ファイル95には、例えば、「起動順:1.機能パッケージA、2.機能パッケージB、3.機能パッケージC」のように起動順が定義されている。
【0172】
図33(b)は、起動処理におけるインストール管理部の機能ブロック図の一例を示す。起動情報更新部94は、インストールした販売パッケージの起動順定義ファイル95に従い、起動情報77に起動順を登録する。同様に、インストール時だけでなく、アクティベーション又は有効化により機能パッケージが有効化された場合、起動情報更新部94は有効化された機能パッケージを起動情報77に登録する。
【0173】
起動情報77に登録される順番は、起動情報77への登録順である。しかし、起動順定義ファイル95に他の販売パッケージの機能パッケージに対する起動順が定義されている場合は、それに従い既に登録されている機能パッケージより前に登録されてもよい。
【0174】
また、起動情報更新部94は、有効化されている機能パッケージを起動情報77に登録するので、機能パッケージ情報75を参照して有効な機能パッケージを登録し、無効になった機能パッケージは削除する。
以下、いくつかの例を具体的に説明する。
【0175】
<起動情報77の更新1>
図34は、販売パッケージの実装と起動情報77の関係の一例を説明する図である。図34では、販売パッケージと矢印で結ばれた機能パッケージがその販売パッケージに含まれることを示す。販売パッケージAには、機能パッケージ1、2,5が含まれ、販売パッケージBには機能パッケージ1,3が含まれ、販売パッケージCには機能パッケージ2,3、4が含まれる。
【0176】
初期状態の販売パッケージAは有効、販売パッケージBは無効である。このため、機能パッケージ1,2,5は有効化されており、起動情報77には機能パッケージ1,2、5が登録されている。この状態から販売パッケージCをインストールする。したがって、販売パッケージCに含まれる機能パッケージ2、3、4は、それまで有効であればそのままに、インストールされていてそれまで無効であれば有効になり、インストールされていなければ有効になる。
機能パッケージ2:有効のまま
機能パッケージ3:無効→有効
機能パッケージ4:アンインストール→有効
したって、起動情報更新部94は新たに有効になった機能パッケージ3,4を起動情報77に登録する。機能パッケージ3,4の登録順は、起動順定義ファイル95に定義されている順番である。
【0177】
<起動情報77の更新2>
図35は、販売パッケージの実装と起動情報77の関係の一例を説明する図である。図35は、図34で販売パッケージCが有効になった状態であるので、初期状態の機能パッケージ1〜5はいずれも有効である。この状態から販売パッケージCをアンインストールする。
【0178】
したがって、販売パッケージCにのみ含まれる機能パッケージ4は、アンインストールされる。また、販売パッケージBはもともと無効なので、販売パッケージCとBにのみ含まれる機能パッケージCは無効化される。
機能パッケージ2:販売パッケージAが有効なので有効のまま
機能パッケージ3:有効→無効
機能パッケージ4:有効→アンインストール
したって、起動情報更新部94は新たに無効になった機能パッケージ3、アンインストールされた機能パッケージ4を、起動情報77から削除する。
【0179】
<起動情報77の更新3>
起動順に制約がある場合を説明する。図36は、販売パッケージの実装と起動情報77の関係の一例を説明する図である。なお、図36の初期状態は図34と同じで、その初期状態に販売パッケージCをインストール点でも同様である。
機能パッケージ2:有効のまま
機能パッケージ3:無効→有効
機能パッケージ4:アンインストール→有効
したって、起動情報更新部94は新たに有効になった機能パッケージ3,4を起動情報77に登録するが、販売パッケージCは起動順定義ファイル95に起動順を定義している。図36では、「1.機能パッケージ2、2.機能パッケージ3、3.機能パッケージ4」の順番である。このような起動順は、機能パッケージ間の依存関係がある場合に定義される。図36では、例えば機能パッケージ4は機能パッケージ3の機能を利用するため、機能パッケージ4よりも前に機能パッケージ3が起動している必要がある場合等である。
【0180】
起動情報更新部94は、有効化された機能パッケージがある場合、起動順定義ファイル95を参照して、適切な順番で機能パッケージを起動情報77に登録する。
【0181】
以上説明したように、本実施形態の画像形成装置100は、既にインストールされている機能パッケージはインストールしないので、効率的なインストールが可能となる。また、アンインストール時は、アンインストールしない販売パッケージに含まれている機能パッケージは削除しないので、残った販売パッケージに影響を与えることもない。すなわち、複数の販売パッケージが含む複数の機能パッケージが、一部重複するような構成の場合、実用的なプログラムの実装が容易に実現できる。
【図面の簡単な説明】
【0182】
【図1】画像形成装置におけるインストールの概要を模式的に説明する図の一例である。
【図2】インストールされても有効化されない販売パッケージのインストールを説明する図の一例である。
【図3】画像形成装置のハードウェア構成図の一例である。
【図4】画像形成装置のソフトウェアモジュールの一例を示す図である。
【図5】インストール管理部の機能ブロック図の一例である。
【図6】プラグイン管理部の機能ブロック図の一例である。
【図7】インストール時にアクティベーションされるプログラムの実装態様の一例を説明する図である。
【図8】インストール時にアクティベーションされないプログラムの実装態様の一例を説明する図である。
【図9】同じ機能パッケージが既にインストールされているが、バージョンが異なる場合のインストールの一例を説明する図である。
【図10】異なるバージョンで同じ機能パッケージをインストールする場合において、アクティベーションが必要な場合の一例を説明する図である。
【図11】同じ機能パッケージが既にインストールされており、バージョンが異なるが、後からインストールする機能パッケージのバージョンの方が古い場合の一例を説明する図である。
【図12】販売パッケージのアクティベーションが必要な場合の一例を説明する図の一例である。
【図13】販売パッケージのアップデートを説明する図の一例である。
【図14】同じ販売パッケージのアップデートの別の形態を説明する図の一例である。
【図15】インストール手順を説明するフローチャート図の一例である。
【図16】インストール後にアクティベーションが必要な販売パッケージのアクティベーションの一例を説明する図である。
【図17】販売パッケージの有効化を説明する図の一例である。
【図18】インストール後にアクティベーションが必要な販売パッケージのアクティベーションを説明する図の一例である。
【図19】アクティベーション後の有効化を説明する図の一例である。
【図20】有効化手順を説明するフローチャート図の一例である。
【図21】機能パッケージの特定手順を説明するフローチャート図の一例である。
【図22】販売パッケージの無効化を説明する図の一例である。
【図23】有効化手順を説明するフローチャート図の一例である。
【図24】販売パッケージのディアクティベーションを説明する図の一例である。
【図25】販売パッケージのアンインストールを説明する図の一例である。
【図26】販売パッケージの無効化を説明する図の一例である。
【図27】販売パッケージのディアクティベーションを説明する図の一例である。
【図28】販売パッケージのアンインストールを説明する図の一例である。
【図29】販売パッケージのアンインストールを説明する図の一例である。
【図30】販売パッケージのアンインストールを説明する図の一例である。
【図31】アンインストール手順を説明するフローチャート図の一例である。
【図32】アンインストール時処理の手順を示すフローチャート図の一例である。
【図33】販売パッケージに含まれるパッケージ内容を模式的に説明する図の一例である。
【図34】販売パッケージの実装と起動情報の関係の一例を説明する図である。
【図35】販売パッケージの実装と起動情報の関係の一例を説明する図である。
【図36】販売パッケージの実装と起動情報の関係の一例を説明する図である。
【符号の説明】
【0183】
15 HDD
60 インストール管理部
71 プラグイン管理部
72 プラグインスタータ
73 プラグインコンポーネント(機能パッケージ)
74 販売パッケージ情報
75 機能パッケージ情報
77 起動情報
100 画像形成装置
【技術分野】
【0001】
本発明は、プログラムを情報処理装置にインストールする情報処理装置等に関し、特に、1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位でインストールする情報処理装置、インストール方法、プログラム及び記憶媒体に関する。
【背景技術】
【0002】
プログラムを実行して種々の機能を実現する情報処理装置では、インストールするプログラムの増減に応じて機能を増減させることができ、ユーザは情報処理装置を購入した後でも、必要な機能を提供するプログラムを購入してインストールすることで、その機能を利用できるようになる。
【0003】
プログラムの不正利用を防止する観点から、インストールされているプログラムを使用する権限を与えるライセンス情報を利用する技術が考えられている(例えば、特許文献1参照。)。特許文献1には、着脱可能な記録媒体に記憶しておき、記録媒体を情報処理装置に装着した場合に使用を認める情報処理装置において、さらに記録媒体の認証情報を情報処理装置に記憶しておく技術が開示されている。
【0004】
ところで、このようなプログラムでは複数のモジュールが協調して1以上の機能を実現する構成を採用して、コンピュータや組み込み機器に実装する場合がある。例えば、Aという機能は、モジュールa1,a2、a3が協調することで実現されるような場合、Aという機能のためモジュールa1〜a3をインストールする。また、他の機能Bを実現したければ、機能Bに必要な1以上のモジュールb1等をインストールすればよく、ユーザは必要な場合に必要な機能を使用することができる。
【0005】
しかしながら、機能とモジュールの間に複雑な関係が生じることも少なくなく、必要な機能を実現するためにインストールすべきモジュールをユーザが把握することは困難である。この点について、サーバがプログラムモジュール間の依存関係を考慮して、組み込みソフトウェアの更新に必要なモジュール群をクライアントである電子機器に送信するプログラムの実装方法が開示されている(例えば、特許文献2参照。)。
【特許文献1】特開2006−279935号公報
【特許文献2】特開2005−13587号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献2記載の電子機器はサーバと通信できなければ、換言するとスタンドアローンの状態では新たな機能をインストールできないという問題がある。というのは、通信できない環境でも新たな機能を利用できるようにしておくには、予め、必要となると考えられるモジュール群を電子機器に記憶しておく必要があるが、予め記憶しておくとユーザが自由に使用できたり不正利用したりするおそれがある。このため、予め、モジュール群を電子機器に記憶しておく方法を採用するには、インストールしておいても、権限のないユーザが使用できず権限のあるユーザであれば使用可能となる仕組みが必要となる。
【0007】
本発明は、上記課題に鑑み、ネットワークに接続できない環境でも、モジュールと機能の依存関係に応じて適正にモジュールの使用を管理できる情報処理装置、インストール方法、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題に鑑み、本発明は、1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位で記憶装置にインストールする情報処理装置であって、記憶装置に既にインストールされているパッケージに含まれるプログラムコンポーネントのリストを記憶したパッケージ情報記憶手段と、インストールされているプログラムコンポーネント毎にインストール数を記憶したプログラム情報記憶手段と、インストール対象のパッケージに添付された設定ファイルを記憶する記憶媒体から、前記設定ファイルに登録されたプログラムコンポーネントのリストを読み出し、前記パッケージ情報記憶手段に記憶されたリストと突合し、既にインストールされているプログラムコンポーネントを検出する重複プログラム検出手段と、既にインストールされていないプログラムコンポーネントのみをインストールするインストール手段と、インストールしたプログラムコンポーネントをインストール数と共に前記プログラム情報記憶手段に登録し、重複していることが検出されたプログラムコンポーネントのインストール数を1つ増加させるプログラム情報更新手段と、を有することを特徴とする。
【発明の効果】
【0009】
ネットワークに接続できない環境でも、モジュールと機能の依存関係に応じて適正にモジュールの使用を管理できる情報処理装置、インストール方法、プログラム及び記憶媒体を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
まず、本願の画像形成装置100におけるプログラムの実装態様(インストール態様)について説明する。本実施形態では、情報処理装置を備えた画像形成装置100を例にして説明するが、情報処理装置を備えた電子機器、及び、パソコンのような情報処理装置そのものに好適に適用できる。
【0011】
図1は、本実施形態の画像形成装置100におけるインストールの概要を模式的に説明する図の一例である。まず、言葉の定義について説明する。本実施形態では、プログラムの実装にインストール、アクティベーション、有効化という概念を用いる。インストールとは、プログラムコンポーネントを画像形成装置100の記憶装置(後述のHDD15)に記憶することをいう。また、アクティベーションとは、その画像形成装置100でそのプログラムを使用する権限を与えることをいい、原則的にアクティベーションによりインストールされたプログラムコンポーネントが有効化される(起動可能にする)。有効化とは、起動すること又はユーザの起動操作があればいつでもプログラムコンポーネントを起動可能とすることをいう。
【0012】
なお、販売パッケージは、インストールした後にアクティベーションする必要がある場合と、インストールすることで自動的にアクティベーションされる場合がある。アクティベーションが必要か否かは販売パッケージの属性により定まる(infファイルに規定されている)。インストールした後にアクティベーションが必要な販売パッケージでは、アクティベーションしなければ有効化されずプログラムコンポーネントを起動できない。この場合、アクティベーションすることで同時に有効化もされる。
【0013】
以上から、アクティベーションと有効化には次の関係がある。
・インストール時に自動的にアクティベーションされる販売パッケージ
インストールにより、アクティベーションかつ有効化
・インストール後にアクティベーションが必要な販売パッケージ
インストール後、アクティベーションすることで同時に有効化
・アクティベーションと有効化が別のプロセスの販売パッケージ
有効化により有効、無効化により無効
図1に基づき説明する。販売パッケージAには2つの機能パッケージ1,2が含まれている。販売パッケージとは販売単位であり、1以上の機能パッケージが含まれている。機能パッケージは、インストールの最小単位でありプログラムコンポーネントと1対1に対応する(以下、原則的にプログラムコンポーネントを機能パッケージと称する)。
【0014】
本実施形態のプログラムの実装を実現するため、画像形成装置100は販売パッケージ情報74と機能パッケージ情報75を記憶している。図示するように、販売パッケージAをインストールするまでは、販売パッケージ情報74と機能パッケージ情報75には何の情報も登録されていないか、販売パッケージ情報74及び機能パッケージ情報75そのものが記憶されていない。すなわち、販売パッケージ情報74は、その画像形成装置100に販売された販売パッケージを登録するファイルで、機能パッケージ情報75は、販売された販売パッケージに含まれる機能パッケージを登録するファイルである。したがって、販売パッケージ情報74及び機能パッケージ情報75を参照することで、既に販売されている販売パッケージと機能パッケージを検出できる。
【0015】
なお、販売パッケージの「名前」はユーザの管理しやすい名称、「ID」は固有の識別情報、「アクティベーション」は「○」「×」のいずれか状態を取り、「有効」は「○」「×」のいずれか状態を取り、「機能IDリスト」はその販売パッケージが含む機能パッケージのIDが登録される。同様に、機能パッケージ情報75の「名前」はユーザの管理しやすい名称、「ID」は固有の識別情報、「販売数」は販売された数、「有効販売数」は販売数のうち有効な機能パッケージの数、「有効」は「○」「×」のいずれかの状態を取る。
【0016】
販売パッケージ情報74と機能パッケージ情報75に何も情報が登録されていない状況で、販売パッケージAがインストールされるものとする。後述するプラグイン管理部71は、販売パッケージ情報74を参照して(記憶されていないことを確認して)、販売パッケージAに含まれる機能パッケージ1,2をインストールする。
【0017】
なお、販売パッケージAに含まれる機能パッケージが何であるか(図1では機能パッケージ1,2)は、その販売パッケージに含まれるプログラムコンポーネントであるので明らかであるが、各販売パッケージにはinfファイルが添付されているので、infファイルを参照して含まれる各機能パッケージを特定できる。なお、infファイルには、販売パッケージの名前、ID、機能IDリスト、販売パッケージのバージョン、販売パッケージが含む各機能パッケージのバージョン、さらにアクティベーションが必要か否か、等が登録されている。
【0018】
インストール後の販売パッケージ情報74には、販売パッケージAの情報として、名前「dist1」、ID「1111」、アクティベーション「○」、有効「○」、機能IDリスト「2111,2222」が登録される。
【0019】
アクティベーションするか否かは販売パッケージの属性として定められており、例えば販売時に定まるものである。図1はアクティベーションする販売パッケージを示すものであるため、アクティベーションの欄が「○」になっている。また、有効の欄はアクティベーションされると(有効になると)「○」になる。
【0020】
機能パッケージ情報75には、販売パッケージAのインストールに伴いインストールされる機能パッケージの情報が登録される。したがって、名前「func1」「func2」、ID「2111」「2222」、販売数「1」「1」、有効販売数「1」「1」、有効「○」「○」が、それぞれ登録されている。販売数は各機能パッケージの販売数を、有効販売数はそのうち有効化されている機能パッケージの数を示す。これは同じ機能パッケージが複数販売されることがあるためである。販売パッケージAには、1つの機能パッケージ1,1つの機能パッケージ2が含まれているので販売数は1つずつ増え、それぞれアクティベーションされるので有効販売数も1つずつ増える。また、有効の欄は、有効販売数が1つでもあれば「○」になる。
【0021】
次に、インストールされてもアクティベーションされない販売パッケージのインストールについて図2に基づき説明する。なお、インストール対象は図1と同じである。販売パッケージAのインストールに対応して、機能パッケージ1、2がインストールされるが、販売パッケージAはアクティベーションされない。このため、インストール後の販売パッケージ情報74のアクティベーションの欄は「×」であり、この結果、有効の欄も「×」である。
【0022】
同様に、機能パッケージ情報75では、機能パッケージ1,2がそれぞれ販売されたため販売数は「1」「1」となるが、アクティベーションされないので、有効の欄はそれぞれ「×」「×」となる。
【0023】
以上のように、販売パッケージ単位で複数の機能パッケージをインストールする際、機能パッケージの重複、バージョン、アクティベーションの要・不要等に応じて、プログラムの実装形態が異なる。本実施例の画像形成装置100は、このような状況に応じて適切にプログラムを実装する。
【0024】
インストール単位を販売パッケージの単位とすることにより、機能単位でインストールするユーザは、開発単位であるプログラムコンポーネントの単位を意識する必要がない。また販売パッケージの単位をユーザにとって価値のある単位とすることにより、ユーザにとって使いやすい情報処理装置とすることができる。
【0025】
〔画像形成装置100〕
画像形成装置100について簡単に説明する。図3は、画像形成装置100のハードウェア構成図の一例を示す。画像形成装置100は、コントローラ50と、プロッタ27、スキャナ28、ファックス制御ユニット26、及びその他ハードウェアリソース29とがPCIバス、PCI−Xバス又はPCI−Express等のシリアルインターバスで接続された構成となる。また、コントローラ50には操作部24が接続されている。なお、インストール管理プログラム20を記憶する記憶媒体(メモリーカード30)を示した。
【0026】
コントローラ50は、画像形成装置100全体の制御、すなわち、ファックス制御ユニット26、プロッタ27,スキャナ28及びその他ハードウェアリソース29を用いて、原稿の読み取り、印刷、ファクシミリ送受信、操作部24からの入力等を処理する制御部である。
【0027】
プロッタ27は、白黒プロッタ及び/又は1ドラムカラープロッタであり、印刷ジョブデータやスキャナ28が読み取った画像データに基づき、1ページ毎の画像を形成し、用紙に転写する。例えば、レーザービームを用いた電子写真プロセスを使って、感光ドラム等に形成したトナー画像を用紙に転写し、定着装置により熱と圧力により定着して出力する。
【0028】
また、スキャナ28は、コンタクトガラスに載置された原稿を光学的に走査して、その反射光をA/D変換して誤差拡散やガンマ変換などの画像処理を施し所定の解像度のデジタルデータに変換し画像データを生成する。
【0029】
ファックス制御ユニット26は、NCU(Network Control Unit)を介して公衆通信網に接続し、例えばG3、G4規格のファクシミリに対応した通信手順(通信プロトコル)等に従いファクシミリの送受信を行う。ファックス制御ユニット26は、画像データにデータ圧縮や変調等の信号処理を施して送信すると共に、相手先から受信した画像データにデータの伸長やエラー訂正等を施し画像データを復元する。
【0030】
コントローラ50は、CPU11と、ノースブリッジ (以下、NB13という)と、システムメモリ(以下、MEM−P12という)と、サウスブリッジ (以下、SBという)と、ローカルメモリ(以下、MEM−C14という)と、ASIC(Application Specific Integrated Circuit)16と、ハードディスクドライブ(以下、HDD15という)と、ワイヤレスUSBホスト17と、NIC(Network Interface Card)18と、無線LANI/F19と、USBホスト22と、メモリカードI/F23と、を有する。なお、ASIC16とNB13の間はAGP(Accelerated GraphicsPort)で接続されている。
【0031】
CPU11は、MEM−P12、ASIC16、及び、ワイヤレスUSBホスト17等を結ぶバスに流通するデータの送信制御を行うNB13を介して、画像形成装置100の全体を制御する。
【0032】
NB13は、CPU11とMEM−P12、AGPとを接続するためのブリッジICであり、MEM−P12は、画像形成装置100の描画用メモリなどとして用いるシステムメモリである。
【0033】
MEM−C14は、コピー用画像バッファ、符号バッファとして用いられるローカルメモリであり、ASIC16は、多数のレジスタや論理回路を備え、各モータドライバの制御部の他、ヘッドパルス生成部等として機能する。また、ASIC16は、AGP、HDD15およびMEM−C14をそれぞれ接続するブリッジの役割も果たす。
【0034】
操作部24は、ユーザからの入力操作の受け付け並びにユーザに向けた表示をおこなう操作部であり、キーボードの他にタッチパネルを入力手段として有し、LCD(液晶ディスプレイ)等の表示部と兼用されている。
【0035】
HDD15は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うための記憶手段であるが、フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)など不揮発メモリなどでもよい。本実施形態ではHDD15に、アクティベーションを管理するインストール管理プログラム20、販売パッケージ情報74,機能パッケージ情報75、起動情報77、プラグインコンポーネント73が記憶されている。
【0036】
AGPは、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、システムメモリに高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードの処理を高速化する。
【0037】
NIC18は、例えばイーサネット(登録商標)カードであり、OSI基本参照モデルの物理層、データリンク層に規定されたプロトコルに従う処理を実行する。これに後述のメールアプリがSMTPやPOP3等の上位のプロトコルを実行して電子メールを送受信したり、WebアプリがFTP、HTTPなどのプロトコルを実行してライセンスファイルをライセンスサーバ200や画像形成装置100の間で送受信する。
【0038】
無線LANI/F19は、例えばIEEE 802.11a/b/g等の通信規格に準拠し、アクセスポイントに介してLAN等のネットワークに接続する。
【0039】
IEEE1394I/F21は、IEEE1394の通信規格を備えた機器と通信するインターフェイスであり、複数台の機器をデイジーチェーン接続することができる。動画などのサイズの大きなデータを送信するのに適しており、接続される機器は、例えばデジタルカメラやビデオカメラ等である。
【0040】
USBホスト22はUSBコントローラと呼ばれるICで、これをCPU11が実行するデバイスドライバ(ドライバソフトウェア)が制御してUSBI/Fを構成し、接続された例えばUSBメモリ31と通信する。同様に、メモリカードI/F23は、メモリカード30からデータを読み出しまた記録媒体にデータを書き込むインターフェイスである。メモリカード30は、例えばSDカード、マルチメディアカード、xDカード等である
〔ソフトウェアモジュール〕
図4は、画像形成装置100のソフトウェアモジュールの一例を示す図である。ソフトウェアモジュールは、上記のプロッタ27、スキャナ28、その他ハードウェアリソース29とHW(Hard Ware) I/Fを介して接続された構成となり、主に、プラットホーム80とアプリケーション70とから構成される。
【0041】
プラットホーム80は、アプリケーション70からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービス55と、1以上のハードウェア資源の管理を行い、コントロールサービス55からの獲得要求を調停するシステムリソースマネージャ(SRM63)と、OS(Operating System)64と、インストール管理部60と、を有する。
【0042】
コントロールサービス55は、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)62と、ECS(エンジンコントロールサービス)56と、MCS(メモリコントロールサービス)57と、OCS(オペレーションパネルコントロールサービス)58と、FCS(ファックスコントロールサービス)59と、NCS(ネットワークコントロールサービス)61とから構成される。なお、プラットホーム80は、あらかじめ定義されたプログラムによりアプリケーション70から処理要求を受け取るAPI(プリケーションプログラムインタフェース)を有する。
【0043】
OS64は、LINUX(登録商標)やUNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム80及びアプリケーション70の各ソフトウェアをそれぞれプロセスとして並列に実行することができる。OS64は、NIC18、無線LANI/F19、IEEE1394I/F21、USBホスト22、及び、メモリカードI/F23と通信する各種のデバイスドライバを有する。
【0044】
SRM63は、SCS62とともにシステムの制御およびリソースの管理を行う。SRM63のプロセスは、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、ハードウェアリソースによる動作を制御する。
【0045】
SCS62は、アプリ管理、操作部24の制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御等を行う。ECS56は、ハードウェアリソースのエンジンの制御を行う。
【0046】
MCS57は、画像メモリの取得および解放、HDD15の利用、画像データの圧縮および伸張などを行う。FCS59は、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、バックアップSRAMに記憶されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
【0047】
NCS61は、ネットワークI/Oを必要とするアプリケーション70に対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーション70に振り分けたり、アプリケーション70からデータをネットワーク側に送信する際の仲介を行う。具体的には、FTP等のプロトコルの各種デーモンや、同プロトコルのクライアント機能などを有している。
【0048】
OCS58は、ユーザAと本体制御間の情報伝達手段となる操作部(オペレーションパネル)24の制御を行う。OCS58は、操作部24からキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS62に送信する部分と、アプリケーション70またはコントロールサービス55からの要求により表示部25に各種画面を描画出力する描画関数やその他操作部に対する制御を行う関数などがあらかじめ登録されたOCS関数ライブラリの部分とから構成される。
【0049】
アプリケーション70は、電子メールを送受信するメールアプリ49、プリンタ用のプリンタアプリ51と、コピー用のコピーアプリ52と、ファクシミリ用のファックスアプリ53と、スキャナ28用のスキャナアプリ54と、を有している。
【0050】
コントロールサービス55には、インストール管理部60が設けられる。インストール管理部60は、コントロールサービス55でプロセスとして動作し、機能パッケージを構成する各種のプラグインコンポーネント73、アクティベーション、ディアクティベーション、有効化/無効化等の種々の処理を実行する。
【0051】
〔インストール管理部60〕
図5は、インストール管理部60の機能ブロック図の一例を示す。インストール管理部60は、CPU11がインストール管理プログラム20を実行するか所定の演算回路により実現される、プラグイン管理部71及びプラグインスタータ72を有する。
【0052】
プラグイン管理部71は、各種プラグインコンポーネント73のインストール/アンインストール、アクティベーション/ディアクティベーション、有効化/無効化などの処理を実行する。プラグインスタータ72は、起動情報77を参照し、画像形成装置100のシステムの起動時に、各プラグインコンポーネント73の起動処理を実行する。すなわち、プラグインスタータ72は、起動情報77に登録されているプラグインコンポーネント73を起動する。
【0053】
プラグインコンポーネント73、販売パッケージ情報74及び機能パッケージ情報75は、例えばHDD15に記憶される。プラグインコンポーネント73は、画像形成装置100にインストールされる各種のプログラムをいい、プラグイン管理部71が管理する機能パッケージと1対1で対応するものである。
【0054】
〔プラグイン管理部71の機能ブロック図〕
図6は、プラグイン管理部71の機能ブロック図の一例を示す。インストール部81は、例えば、メモリーカード30に記憶された販売パッケージをHDD15にインストールする。具体的には販売パッケージ毎に、販売パッケージが含む機能パッケージ(プラグインコンポーネント73)をインストールする。
【0055】
アクティベーション部82は、その販売パッケージの属性又はユーザの指示に応じて、販売パッケージと販売パッケージに含まれる機能パッケージをアクティベーションする。有効化部83は、機能パッケージを有効化する。インストールはアクティベーションを、アクティベーションは有効化を含む場合があるので図示するように上位の機能は下位の機能を備える。
【0056】
同様に、HDD15から機能パッケージを削除するアンインストール部87、ディアクティベーションするディアクティベーション部88、無効化する無効化部89を備える。詳細は後述する。処理内容決定部91は、アンインストール時に、機能パッケージをアンインストールするか、無効化するか、何もしないかの処理内容を決定する。
【0057】
また、販売パッケージ情報更新部93は、販売パッケージ情報74を更新し、機能パッケージ情報更新部92は機能パッケージ情報75を更新する。重複機能検出部84は、infファイルを参照しこれからインストールする販売パッケージに含まれる機能パッケージのうち、既にインストールされている機能パッケージと重複するものを検出する。バージョン判定部85は、重複した機能パッケージについて、どちらのバージョンが新しいかを判定する。削除部86は、アップデートにより販売パッケージに含まれなくなった機能パッケージを削除する。以下、これらの機能ブロックを用いた本実施形態のプログラムの実装を詳細に説明する。
【0058】
〔プログラムの種々の実装態様〕
以下、インストールされている販売パッケージの有無、インストール時のアクティベーションの有無等に応じた種々のプログラムの種々の実装態様について説明する。
<インストール・アクティベーション不要>
インストール時にアクティベーションされるプログラムの実装態様について図7に基づき説明する。すでに画像形成装置100には販売パッケージBがインストールされている。このため、販売パッケージ情報74には、販売パッケージBの情報が登録されている。図示するように販売パッケージBはアクティベーションされておらず有効の欄は「×」となっている。
【0059】
販売パッケージBには、2つの機能パッケージ2,3が含まれる。このため、機能パッケージ情報75には機能パッケージ2,3の情報がそれぞれ登録されているが、販売パッケージBがアクティベーションされていないので、機能パッケージ2,3の有効販売数はそれぞれ「0」「0」となっている。
【0060】
この状態でアクティベーションの不要な販売パッケージAを販売した場合、インストール管理部は、必要な機能パッケージのみをインストールする。重複機能検出部84は、これからインストールする販売パッケージに含まれる機能パッケージのうち、既にインストールされている機能パッケージと重複するものを検出する。販売パッケージAには、機能パッケージ1,2が含まれ、既にインストールされている販売パッケージには機能パッケージ2、3が含まれる。したがって、重複機能検出部84は機能パッケージ2が重複していることを検出する。インストール部81は、検出された機能パッケージ2をインストールしない。
【0061】
したがって、インストール部81は、機能パッケージ1のみをインストールする。また、アクティベーション部82は、infファイルを参照しインストール時にアクティベーションされる販売パッケージであることを検出して、インストールした機能パッケージ1をアクティベーションし、有効化部は機能パッケージ1を有効化する。なお、販売パッケージBは有効化されていないままである。
【0062】
販売パッケージ情報更新部93は、販売パッケージ情報74に機能パッケージ1の情報を登録し、登録の際、有効の欄を「○」とする。また、機能パッケージ情報更新部92は、機能パッケージ情報75に新たにインストールされた機能パッケージ1の情報を登録する。機能パッケージ1は、それまで機能パッケージ情報75に登録されていなかったので、新たに名前等が登録される。販売数は「1」で、販売パッケージAはアクティベーションされたので有効販売数は「1」となる。
【0063】
一方、機能パッケージ2はすでに機能パッケージ情報75に登録されているため、販売数が1つ増え「2」となる。これに対し、既にインストールされていた機能パッケージ2はアクティベーションされず、新たにインストールされた機能パッケージ2のみがアクティベーションされたので、有効販売数は「1」のままである。
【0064】
以上説明したように、既にインストールされている機能パッケージはインストールされず、機能パッケージ情報75の販売数だけが増大する点が、本実施形態の画像形成装置100の特徴の1つである。
【0065】
<インストール・アクティベーション必要>
インストール時にアクティベーションされないプログラムの実装態様について図8に基づき説明する。アクティベーションは、使用権限を認めること、使用権限を認めたことを示すアクティベーション情報を生成すること、等をいう。アクティベーション情報は、例えば、プログラムコンポーネントのシリアル番号と、画像形成装置100又はユーザの識別情報を関連付けた認証情報である。アクティベーション情報により、プログラムコンポーネントだけをコピーしても他の情報処理装置では利用を困難にすることができる。
【0066】
図8では、図7と同様にすでに販売パッケージBがインストールされた状態で、販売パッケージAをインストールするが、図8では販売パッケージAはアクティベーションされない。販売パッケージAがインストールされる前の販売パッケージ情報74と機能パッケージ情報75は図7と同じである。
【0067】
この状態でアクティベーションが必要な販売パッケージAを販売した場合、重複機能検出部84は、機能パッケージ2が重複していることを検出し、インストール部81は、重複していない機能パッケージ1のみをインストールする。また、アクティベーション部82は、インストール時にアクティベーションしない販売パッケージであることを検出するので、機能パッケージ1をアクティベーションしない。なお、販売パッケージBは有効化されていないままである。
【0068】
販売パッケージ情報更新部93は、販売パッケージ情報74に機能パッケージ1の情報を登録し、登録の際、有効の欄を「×」とする。また、機能パッケージ情報更新部92は、機能パッケージ情報75に新たにインストールされた機能パッケージ1の情報を登録する。機能パッケージ1は、それまで機能パッケージ情報75に登録されていなかったので、新たに名前等が登録される。販売数は「1」で、販売パッケージAはアクティベーションされないので有効販売数は「0」となる。
【0069】
一方、機能パッケージ2はすでに機能パッケージ情報75に登録されているため、販売数が1つ増え「2」となる。これに対し、既にインストールされていた機能パッケージ2はアクティベーションされず、新たにインストールされた機能パッケージ2もアクティベーションされないので、有効販売数は増えることなく「0」となる。
【0070】
<インストール・アクティベーション不要(バージョン違い)>
同じ機能パッケージが既にインストールされているが、バージョンが異なる場合のインストールについて図9に基づき説明する。
図9では、すでに画像形成装置100に販売パッケージBがインストールされ、アクティベーションされている。このため、販売パッケージ情報74の販売パッケージBでは、アクティベーションと有効の欄がそれぞれ「○」となっている。
【0071】
販売パッケージBには、2つの機能パッケージ2,3が含まれるので、機能パッケージ情報75には機能パッケージ2,3の情報がそれぞれ登録されている。販売パッケージBがアクティベーションされているので、機能パッケージ2,3の有効販売数はそれぞれ「1」「1」となっている。
【0072】
この状態でアクティベーションの不要な販売パッケージAを販売してインストールする。ここで、重複機能検出部84は、機能パッケージ2が重複していることを検出するが、バージョン判定部85は、重複した機能パッケージがある場合、どちらのバージョンが新しいかを判定する。図9では、販売パッケージAの機能パッケージ2のバージョンが「2」で、販売パッケージBの機能パッケージ2のバージョンが「1」であるので、既にインストールされている機能パッケージ2の方がバージョンが古い。このため、インストール部81は、重複していても、販売パッケージAに含まれる機能パッケージ2をインストールする。これにより、機能パッケージ2をバージョンアップすることができる。
【0073】
販売パッケージ情報74と機能パッケージ情報75の登録・更新は上記のとおりである。すなわち、販売パッケージ情報更新部93は、販売パッケージ情報74に機能パッケージ1の情報を登録する。販売パッケージAはアクティベーションが不要なので、アクティベーションの欄は「○」、有効の欄は「○」になる。
【0074】
また、機能パッケージ情報更新部92は、機能パッケージ情報75に機能パッケージ1の情報を登録する。機能パッケージ1はアクティベーションが不要なので、有効販売数は「1」、有効の欄は「○」になる。また、機能パッケージ情報75がバージョンの欄を有する場合には機能パッケージのバージョンを登録する。
【0075】
また、機能パッケージ2が販売パッケージAに含まれていたので、機能パッケージ情報更新部92は、機能パッケージ2の販売数を1つ増やし「2」にして、有効販売数も1つ増やして「2」にする。なお、同じ機能パッケージの異なるバージョンがインストールされた場合、バージョンアップ後のバージョンが登録される。
【0076】
<インストール・アクティベーション必要(バージョン違い)>
同様に、異なるバージョンで同じ機能パッケージをインストールする場合において、アクティベーションが必要な場合を図10に基づき説明する。インストール前の販売パッケージ情報74と機能パッケージ情報75は図9と同じである。したがって、インストール部81は、機能パッケージ2がすでにインストールされていても、バージョンが新しい販売パッケージAに含まれる機能パッケージ2をインストールする。
【0077】
販売パッケージ情報更新部93は、販売パッケージ情報74に機能パッケージ1の情報を登録する。販売パッケージAはアクティベーションが必要なので、アクティベーションの欄は「×」、有効の欄は「×」になる。
【0078】
また、機能パッケージ情報更新部92は、機能パッケージ情報75に機能パッケージ1の情報を登録する。機能パッケージ1はアクティベーションが必要なので、販売数は「1」でも有効販売数は「0」、有効の欄は「×」になる。
【0079】
また、機能パッケージ2が販売パッケージAに含まれていたので、機能パッケージ情報更新部92は、機能パッケージ2の販売数を1つ増やし「2」にする。しかし、販売パッケージAはアクティベーションが必要なので、有効販売数は増えず「1」のままである。
【0080】
<インストール・アクティベーション不要(バージョン違い2)>
同じ機能パッケージが既にインストールされており両者のバージョンが異なるが、後からインストールする機能パッケージのバージョンの方が古い場合について図11に基づき説明する。なお、図11において図9と同一部の説明は省略する。
【0081】
図11では、これからインストールする販売パッケージAに含まれる機能パッケージ2のバージョンが「1」で、販売パッケージBに含まれる機能パッケージ2のバージョンが「2」であるので、既にインストールされている機能パッケージ2の方がバージョンが新しい。このような場合、販売パッケージAに含まれる機能パッケージ2をインストールする必要はない。
【0082】
なお、インストールによる販売パッケージ情報74と機能パッケージ情報75の変化は図9と同じである。
【0083】
<インストール・アクティベーション必要(バージョン違い2)>
図11と同様の状況で、販売パッケージAのアクティベーションが必要な場合を図12に基づき説明する。なお、図12において図10と同一部の説明は省略する。図12では、これからインストールする販売パッケージAに含まれる機能パッケージ2のバージョンが「1」で、販売パッケージBに含まれる機能パッケージ2のバージョンが「2」であるので、既にインストールされている機能パッケージ2の方がバージョンが新しい。このような場合、販売パッケージAに含まれる機能パッケージ2をインストールする必要はない。
【0084】
なお、インストールによる販売パッケージ情報74と機能パッケージ情報75の変化は図10と同じである。
【0085】
<アップデート>
同じ販売パッケージのアップデートについて説明する。図13は、販売パッケージAのアップデートを説明する図の一例である。販売パッケージのアップデートでも機能パッケージ毎にインストールされるのはこれまでと同じである。アップデートという実装態様は、ユーザが意識的か無意識かに関わらず同じ販売パッケージをインストールする際に生じる状況であり、インストールの一形態である。
【0086】
画像形成装置100にすでにバージョン「1」の販売パッケージAがインストールされている状態で、ユーザは新しいバージョン「2」の販売パッケージAをインストール(アップデート)する。販売パッケージAには、機能パッケージ1,2が含まれているが、機能パッケージ2のバージョンはいずれも「2」であり変化がない。このような場合は、バージョンが新しくなった機能パッケージのみをインストールすればよい。
【0087】
したがって、バージョン判定部85は、機能パッケージ毎にバージョンを比較して、バージョンが新しい機能パッケージのみをインストールするよう、インストール部81に要求する。以上から、インストール部81は、販売パッケージAの機能パッケージ1のみインストールする。
【0088】
アップデートの場合、販売パッケージ情報74と機能パッケージ情報75とで変化があるのはバージョンの欄だけである。販売パッケージ情報更新部93は、販売パッケージ情報74のバージョンの欄を「1」から「2」に更新し、機能パッケージ情報更新部92は、機能パッケージ1のバージョンの欄を「1」から「2」に更新する。なお、機能パッケージ2はアップデートされなかったので機能パッケージ2のバージョンの欄は変更がない。
【0089】
<アップデート2>
同じ販売パッケージのアップデートの別の形態について図14に基づき説明する。アップデートの際、機能パッケージの一部又は全てが一新される場合がある。このような場合、同じ販売パッケージでもアップデートにより異なる機能パッケージに切り替わったり追加される場合がある。
【0090】
図14では、バージョン「2」の販売パッケージAは、バージョン「1」の販売パッケージAに含まれていた機能パッケージ2がなくなり、新たに機能パッケージ3が含まれるようになっている。このような場合、機能パッケージ2はインストールしている必要がない。そこで、削除部86は、新たなバージョンの販売パッケージに含まれていて、古いバージョンの販売パッケージに含まれていない機能パッケージを検出し、その機能パッケージを削除する。削除とはHDD15から消去することをいい、アンインストールと同義である。
【0091】
なお、インストール部81は、新しいバージョンの販売パッケージ1にのみ含まれている機能パッケージ3をインストールする。この機能パッケージ3をアクティベーションするか否かはアップデート前の販売パッケージの状況に従う。
【0092】
図14では、機能パッケージ2が新しい販売パッケージAに含まれなくなったので、削除部86は機能パッケージ2を削除する。また、インストール部81は、バージョンが新しくなった機能パッケージ1と、新たに追加された機能パッケージ3をインストールする。
【0093】
販売パッケージ情報更新部93は、販売パッケージ情報74のバージョンの欄を「1」から「2」に更新し、機能パッケージ情報更新部92は、機能パッケージ1のバージョンの欄を「1」から「2」に更新する。また、機能パッケージ情報更新部92は、機能パッケージ情報75から機能パッケージ2の情報を削除する。そして、新たにインストールした機能パッケージ3の情報を登録する。アップデート前の機能パッケージ2の有効の欄が「○」なので、機能パッケージ3の有効販売数は「1」、有効の欄も「○」になる。
【0094】
<インストールの処理手順>
図15は、以上のインストール手順を説明するフローチャート図の一例である。図15ではユーザからの指示によりインストールが開始されるとした(S10)。
【0095】
まず、インストール部81は、HDD15へのアクセスが可能か否かを判定する(S20)。アクセスが可能とは、例えばアクセスする権限があることをいう。アクセスが可能でない場合、HDD15へのアクセスを可能にできるか否かを判定する(S30)。アクセスを可能にするとは、例えば、アクセス権限のあるログイン名で新たにログインしたり、HDD15のセキュリティを調整することである(S40)。最終的にHDD15にアクセスできなければ(S30のNo)、図15の処理を終了する。
【0096】
HDD15へのアクセスが可能な場合(S20のYes、S30のYes)、インストールする予定の販売パッケージを用意する(S50)。販売パッケージの用意の方法はいくつかあり、例えばサーバからダウンロードすること、HDD15に記憶されているファイルを解凍すること、メモリカード30等の記録媒体を画像形成装置100に装着して読み出すこと等ができる。いずれの場合もinfファイルが添付されている(各記憶メディアに記憶されている)。
【0097】
インストール部81は、この用意された販売パッケージの正当性を確認する(S60)。正当性の確認は、例えばユーザが入力したキーコードが販売パッケージに格納されているキーコードと一致するか否か、販売パッケージに格納されている使用可能期間内か否か、画像形成装置100の識別番号に対応づけられているか否か、等により判定される。
【0098】
正当性が確認されない場合(S70のNo)、インストール部81は不当な販売パッケージをインストールしようとした場合の後処理を行う(S80)。例えば、エラーメッセージの表示等である。
【0099】
正当性が確認された場合(S70のYes)、インストール部81は販売パッケージの情報ファイル(*.inf)から販売パッケージの情報を取得する(S90)。infファイルには、販売パッケージの名前、ID、機能IDリスト、販売パッケージのバージョン、販売パッケージが含む各機能パッケージのバージョン、アクティベーションの要・不要が登録されている。インストール部81は、機能パッケージに関する情報をinfファイルから読み出す(S100)。
【0100】
そして、重複機能検出部84は、販売パッケージに含まれる機能パッケージが既に画像形成装置100にインストールされているか否かを確認し(S110)、インストール部81は販売パッケージに含まれる機能パッケージ毎に、画像形成装置100のインストール状況に応じた処理を実行する(S120)。すなわち、
・まだインストールされていない機能パッケージはインストールする。
・インストールされているがバージョンが古い場合は新しい機能パッケージをインストールする。
・インストールされておりバージョンが同等以上の場合はインストールしない。
・新たなバージョンの販売パッケージに含まれていて、古いバージョンの販売パッケージに含まれていない機能パッケージは削除する。
【0101】
ついで、販売パッケージ情報更新部93はインストールした販売パッケージ情報74を更新し、機能パッケージ情報更新部92はインストールした機能パッケージに関し機能パッケージ情報75を更新する(S130)。インストール部81等は以上の処理を機能パッケージ毎に繰り返し実行する。
【0102】
<アクティベーション>
インストール後にアクティベーションが必要な販売パッケージのアクティベーションについて図16に基づき説明する。図2において説明したように、アクティベーションが必要な販売パッケージでは、HDD15にインストールされてもアクティベーションされなければ起動することができない。インストールされたがアクティベーションされていない販売パッケージAの販売パッケージ情報74は、アクティベーションの欄が「×」、有効の欄も「×」である。当然ながら、機能パッケージ情報75の有効販売数の欄も全て「0」になっている。
【0103】
アクティベーション部82は、例えば、ユーザからの指示により販売パッケージAをアクティベーションする。アクティベーションにより同時に有効化される。アクティベーションされると、販売パッケージ情報更新部93は、販売パッケージ情報74のアクティベーションの欄と有効の欄にそれぞれ「○」を登録する。また、機能パッケージ情報更新部92は、機能パッケージ1、2の有効販売数をそれぞれ「1」に増やし、有効の欄にそれぞれ「○」を登録する。
【0104】
<有効化>
有効化とは、起動することや最終的な使用が許可された状態とすることである。アクティベーションされたが有効化されてない状態となることがあるが、アクティベーションしておけば、有効化は簡単な処理で完了するので、販売パッケージを起動可能な状態の直前の状態にしておくことができ、いつもで起動を許可することができる。
【0105】
図17は、販売パッケージの有効化を説明する図の一例である。すでに販売パッケージAはアクティベーションされているが有効化されていないので、販売パッケージ情報74のアクティベーションの欄は「○」が、有効の欄は「×」がそれぞれ登録されている。販売パッケージが有効化されていないので、機能情報パッケージの有効販売数の欄は「0」であり、有効の欄も「×」である。
【0106】
例えば、ユーザからの指示、タイマー、HDD15のアクセスが許可されたこと、などをトリガーに、有効化部83は、販売パッケージAを有効化する。すなわち、機能パッケージ1,2をそれぞれ有効化する。
【0107】
有効化されると、販売パッケージ情報更新部93は、販売パッケージ情報74の有効の欄に「○」に登録する。また、機能パッケージ情報更新部92は、機能パッケージ1、2の有効販売数をそれぞれ「1」に増やし、有効の欄にそれぞれ「○」を登録する。
【0108】
<アクティベーション(一部機能パッケージを共有)>
アクティベーションは販売パッケージ毎に行われるので、複数の販売パッケージがインストールされた状態でアクティベーションすると、アクティベーションした販売パッケージに含まれる機能パッケージが、別の販売パッケージに含まれている場合がある。しかしながら、このような場合でもアクティベーションされるのは1つの機能パッケージだけである。
【0109】
図18は、インストール後にアクティベーションが必要な販売パッケージのアクティベーションを説明する図の一例である。画像形成装置100には販売パッケージAとBがインストールされているが、販売パッケージAはアクティベーションされておらず販売パッケージBはアクティベーションされている。したがって、インストールされたがアクティベーションされていない販売パッケージAの販売パッケージ情報74は、アクティベーションの欄が「×」、有効の欄も「×」、販売パッケージBの販売パッケージ情報74は、アクティベーションの欄が「○」、有効の欄も「○」である。
【0110】
これに対応して、機能パッケージ情報75において、機能パッケージ1の販売数は「1」、有効販売数は「0」、有効の欄は「×」である。また、機能パッケージ2の販売数は「2」、有効販売数は「1」、有効の欄は「○」である。機能パッケージ3の販売数は「1」、有効販売数は「1」、有効の欄は「○」である。
【0111】
アクティベーション部82は、例えば、ユーザからの指示により販売パッケージAをアクティベーションする。アクティベーションにより同時に有効化されるが、機能パッケージ2はすでに有効化されているので、有効化する必要はない。
【0112】
アクティベーションされると、販売パッケージ情報更新部93は、販売パッケージ情報74のアクティベーションの欄と有効の欄にそれぞれ「○」に登録する。また、機能パッケージ情報更新部92は、機能パッケージ1の有効販売数を「1」に増やし、有効の欄に「○」を登録する。また、機能パッケージ2の有効販売数も1つ増え「2」になる。
【0113】
<有効化(一部機能パッケージを共有)>
アクティベーションだけされ有効化を後から実行する場合も、アクティベーションと有効化を同時に実行する場合と同様である。
【0114】
図19は、アクティベーション後の有効化を説明する図の一例である。画像形成装置100には販売パッケージAとBがインストールされているが、販売パッケージAは有効化されておらず、販売パッケージBはアクティベーションかつ有効化されている。したがって、インストールされたが有効化されていない販売パッケージAの販売パッケージ情報74は、アクティベーションの欄が「○」、有効の欄は「×」、販売パッケージBの販売パッケージ情報74は、アクティベーションの欄が「○」、有効の欄も「○」である。
【0115】
これに対応して、機能パッケージ情報75において、機能パッケージ1の販売数は「1」、有効販売数は「0」、有効の欄は「×」である。また、機能パッケージ2の販売数は「2」、有効販売数は「1」、有効の欄は「○」である。機能パッケージ3の販売数は「1」、有効販売数は「1」、有効の欄は「○」である。
【0116】
例えば、ユーザからの指示、タイマー、HDD15のアクセスが許可されたこと、などをトリガーに、有効化部83は、販売パッケージAを有効化する。有効化の具体的な作業は、図15と同様である。すなわち、有効化部83は機能パッケージ1を有効化する。なお、機能パッケージ2は既に有効化されているので、有効化する必要はない。
【0117】
有効化されると、販売パッケージ情報更新部93は、販売パッケージ情報74の有効の欄に「○」に登録する。また、機能パッケージ情報更新部92は、機能パッケージ1の有効販売数を「1」に増やし、有効の欄に「○」を登録する。また、機能パッケージ2の有効販売数も1つ増え「2」になる。
【0118】
<有効化の処理手順>
図20は、有効化手順を説明するフローチャート図の一例である。図20ではユーザからの指示により有効化が開始されるとした。なお、アクティベーションの処理は有効化と同じであるので省略した。また、図20において図15と同一ステップには同じ符号を付しその説明は簡単に行う。
【0119】
まず、有効化部83は、HDD15へのアクセスが可能か否かを判定する(S20〜S40)。HDD15へのアクセスが可能な場合(S20のYes、S30のYes)、有効化は機能パッケージ毎に実行するので、有効化部83は有効化対象の販売パッケージに含まれる機能パッケージを特定する(S210)。
【0120】
図21は、ステップS210の機能パッケージの特定手順を説明するフローチャート図である。すなわち、有効化部83は販売パッケージ情報74、機能パッケージ情報75をHDD15から読み出す(S2101)。そして、有効化の対象となっている販売パッケージが含む機能パッケージ(機能IDリスト)を特定する(S2102)。以上で、有効化すべき機能パッケージを特定できた。
【0121】
図20に戻り、有効化部83は機能パッケージ情報75を参照して、有効化する機能パッケージの現在の状態を確認する(S220)。他の販売パッケージに含まれている機能パッケージではすでに有効化されている可能性があるからである。
【0122】
有効化する機能パッケージが既に有効化されている場合(S230の無効状態)、有効化する必要はないので次の機能パッケージの処理に移行する。
【0123】
有効化する機能パッケージが有効化されていない場合(S230の有効状態)、有効化部83はその機能パッケージを有効化する(S240)。以上の処理を、有効化する販売パッケージに含まれる機能パッケージについて繰り返す。
【0124】
全ての機能パッケージの有効化処理が完了すると、販売パッケージ情報更新部93は販売パッケージ情報74を更新し、機能パッケージ情報更新部92は機能パッケージ情報75を更新する(S250)。
【0125】
〔実装後のアンインストール、ディアクティベーション、無効化〕
これまで、プログラムの実装態様について説明してきたが、実装とは逆方向のプロセスを辿ることも可能である。すなわち、アンインストールによりHDD15から販売パッケージを削除し、ディアクティベーションによりアクティベーションされていない状態にし、無効化により有効化されていない状態にすることができる。なお、ディアクティベーションされると同時に無効化される。インストール、アクティベーション、有効化の順に起動状態に近づくという意味では、無効化と有効化が対応し、ディアクティベーションとアクティベーションが対応し、インストールとアンインストールが対応する。以下、順に説明する。
【0126】
<無効化>
無効化とは有効化した販売パッケージを有効でない状態にすることをいう。無効化により、アクティベーションされているが有効化されてない状態となる。
【0127】
図22は、販売パッケージの無効化を説明する図の一例である。販売パッケージAはアクティベーションされ有効化されている。このため、販売パッケージ情報74のアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージAが有効化されているので、機能パッケージ1,2の有効販売数の欄は共に「1」であり、有効の欄も共に「○」である。
【0128】
例えば、ユーザからの指示、有効期間切れによる更新要求などをトリガーに、無効化部89は、販売パッケージAを有効化する。完全にディアクティベーションやアンインストールする前に無効化することで、期限切れ等を知らせるメッセージを確認した後、再度、有効化するなどの使い方が可能になる。無効化部89は、例えばプログラムコンポーネントを終了させるなど、簡単な処理で使用を中断、禁止するものである。
【0129】
無効化されると、販売パッケージ情報更新部93は、販売パッケージ情報74の有効の欄に「×」に登録する。また、機能パッケージ情報更新部92は、機能パッケージ1、2の有効販売数にそれぞれ「0」を登録し、有効の欄にそれぞれ「×」を登録する。
【0130】
<無効化の処理手順>
図23は、無効化手順を説明するフローチャート図の一例である。図23ではユーザからの指示により無効化が開始されるとした。また、図23において図20と同一ステップには同じ符号を付しその説明は簡単に行う。
【0131】
まず、無効化部89は、HDD15へのアクセスが可能か否かを判定する(S20〜S40)。HDD15へのアクセスが可能な場合(S20のYes、S30のYes)、無効化は機能パッケージ毎に実行するので、無効化部89は無効化対象の販売パッケージに含まれる機能パッケージを特定する(S210)。ステップS210の処理は図21に示したとおりである。次いで、無効化部89は機能パッケージ情報75を参照して、無効化する機能パッケージの現在の状態を確認する(S320)。その機能パッケージではすでに無効化されている可能性があるからである。
【0132】
無効化する機能パッケージが既に無効化されている場合(S330の無効状態)、無効化する必要はないので次の機能パッケージの処理に移行する。
【0133】
無効化する機能パッケージが無効化されていない場合(S330の有効状態)、無効化部89は、無効化しようとした機能パッケージが他の有効な販売パッケージに含まれているか否かを確認する(S340)。1つでも有効な販売パッケージがあればその有効性が優先されるからである。
【0134】
含まれている場合(S350の含まれている)、無効化できないので次の機能パッケージの処理に移行する。
【0135】
含まれていない場合(S350の含まれていない)、無効化部89はその機能パッケージを無効化する(S360)。以上の処理を、有効化する販売パッケージに含まれる機能パッケージについて繰り返す。
【0136】
全ての機能パッケージの無効化処理が完了すると、販売パッケージ情報更新部93は販売パッケージ情報74を更新し、機能パッケージ情報更新部92は機能パッケージ情報75を更新する(S370)。
【0137】
<ディアクティベーション>
ディアクティベーションとはアクティベーションかつ有効化された状態の販売パッケージをアクティベーションされていない状態にすることをいう。ディアクティベーションにより、例えば、アクティベーションする権限を残して機能パッケージを起動できない状態にでき、別の画像形成装置100や情報処理装置において改めてアクティベーションすることができる。
【0138】
図24は、販売パッケージのディアクティベーションを説明する図の一例である。販売パッケージAはアクティベーションされ有効化されている。このため、販売パッケージ情報74のアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージAが有効化されているので、機能パッケージ1,2の有効販売数の欄は共に「1」であり、有効の欄も共に「○」である。
【0139】
例えば、ユーザからの指示、有効期間切れによる更新要求などをトリガーに、ディアクティベーション部88は、販売パッケージAをディアクティベーションする。前者の場合、ディアクティベーションにより、例えば、販売パッケージがアクティベーションされていた画像形成装置100からアクティベーション情報を取り出し両者の関係を解消するので、そのアクティベーション情報を用いて別の画像形成装置100でアクティベーションすることが可能となる。後者の場合、有効期限が切れたので、HDD15に機能パッケージを残したまま使用を禁止できる。
【0140】
ディアクティベーションされると、販売パッケージ情報更新部93は、販売パッケージ情報74のアクティベーションの欄と有効の欄にそれぞれ「×」を登録する。また、機能パッケージ情報更新部92は、機能パッケージ1、2の有効販売数にそれぞれ「0」を登録し、有効の欄にそれぞれ「×」を登録する。
【0141】
<アンインストール>
アンインストールとはHDD15から販売パッケージを削除することをいう。すなわち、再インストールしなければその販売パッケージによる機能を実行することができなくなり、プログラムコンポーネントの不正利用を防止しやすくできる。
【0142】
図25は、販売パッケージのアンインストールを説明する図の一例である。販売パッケージAはアクティベーションされ有効化されている。このため、販売パッケージ情報74のアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。なお、アンインストールは、アクティベーションされていない状態又は有効化されていない状態でも可能である。販売パッケージAが有効化されているので、機能パッケージ1,2の有効販売数の欄は共に「1」であり、有効の欄も共に「○」である。
【0143】
例えば、ユーザからの指示、有効期間切れになどをトリガーに、アンインストール部87は、販売パッケージAをHDD15からアンインストールする。前者の場合、例えば、有効期限が切れたのでHDD15から削除する場合、逆に有効期限を残して別の画像形成装置100にインストールしたり、残期間の料金を返還してもらうような場合が考えられる。後者の場合は、有効期限が切れたので自動的にアンインストールすることが考えられる。
【0144】
アンインストールされると、販売パッケージ情報更新部93は、販売パッケージ情報74をHDD15から削除し、機能パッケージ情報更新部92は、機能パッケージ1情報をHDD15から削除する。
【0145】
<無効化(一部機能パッケージを共有)>
同じ機能パッケージを含む販売パッケージの一部が無効化された場合を説明する。図26は、販売パッケージの無効化を説明する図の一例である。販売パッケージA、Bは共にアクティベーションされ有効化されている。このため、販売パッケージA,Bのアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージA、Bが有効化されているので、機能パッケージ1の有効販売数は「1」有効の欄は「○」、機能パッケージ2の有効販売数は「2」有効の欄は「○」、機能パッケージ3の有効販売数は「1」有効の欄は「○」である。
【0146】
無効化部89が販売パッケージAを無効化すると、販売パッケージ情報更新部93は、販売パッケージAの有効の欄に「×」に登録する。これにより、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2が無効化されるので、機能パッケージ情報更新部92は、機能パッケージ1の有効販売数を1減らして「0」に有効の欄に「×」を登録し、機能パッケージ2の有効販売数を1減らして「1」を登録する。なお、機能パッケージ2は有効販売数は「1」であるので、機能パッケージ2は無効化されない。
【0147】
<ディアクティベーション(一部機能パッケージを共有)>
同じ機能パッケージを含む販売パッケージの一部がディアクティベーションされた場合を説明する。図27は、販売パッケージのディアクティベーションを説明する図の一例である。販売パッケージA、Bは共にアクティベーションされ有効化されている。このため、販売パッケージA、Bのアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージA、Bが有効化されているので、機能パッケージ1の有効販売数は「1」有効の欄は「○」、機能パッケージ2の有効販売数は「2」有効の欄は「○」、機能パッケージ3の有効販売数は「1」有効の欄は「○」である。
【0148】
ディアクティベーション部88が販売パッケージAをディアクティベーションすると、販売パッケージ情報更新部93は、販売パッケージAのアクティベーションの欄と有効の欄にそれぞれ「×」を登録する。また、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2が無効化されるので、機能パッケージ情報更新部92は、機能パッケージ1の有効販売数を1減らして「0」に有効の欄に「×」を登録し、機能パッケージ2の有効販売数を1減らして「1」を登録する。なお、機能パッケージ2は有効販売数が「1」であるので、機能パッケージ2は無効化されない。
【0149】
<アンインストール(一部機能パッケージを共有)>
一部の機能パッケージを共有したアンインストールには、アンインストール前の販売パッケージが有効か否かに応じて3つの態様がある。以下、順番に説明する。
・いずれも有効な販売パッケージの一方をアンインストール
同じ機能パッケージを含む販売パッケージの一部が無効化された場合を説明する。図28は、販売パッケージのアンインストールを説明する図の一例である。販売パッケージA、Bは共にアクティベーションされ有効化されている。このため、販売パッケージA、Bのアクティベーションの欄と有効の欄はそれぞれ「○」が登録されている。販売パッケージA、Bが有効化されているので、機能パッケージ1の有効販売数は「1」有効の欄は「○」、機能パッケージ2の有効販売数は「2」有効の欄は「○」、機能パッケージ3の有効販売数は「1」有効の欄は「○」である。
【0150】
アンインストール部87が販売パッケージAをアンインストールすると、販売パッケージ情報更新部93は、販売パッケージAの情報を全て消去する。これにより、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2がアンインストールされるので、機能パッケージ情報更新部92は、機能パッケージ1の情報を消去する。また、機能パッケージ2の販売数を1減らして「1」に、有効販売数を1減らして「1」にする。なお、機能パッケージ2は有効販売数が「1」であるので、機能パッケージ2は無効化されない。
・一方が有効でない販売パッケージのうち有効な方をアンインストール
図29は、販売パッケージのアンインストールを説明する図の一例である。販売パッケージAはアクティベーションされ有効化されているが、販売パッケージBはアクティベーションされているが有効化されていない。この状態で販売パッケージAをアンインストールすると、有効な販売パッケージがなくなることになる。
【0151】
販売パッケージAのアクティベーションの欄と有効の欄はそれぞれ「○」が、販売パッケージBのアクティベーションの欄は「○」だが有効の欄は「×」が登録されている。販売パッケージAだけ有効化されているので、機能パッケージ1の有効販売数は「1」有効の欄は「○」、機能パッケージ2の有効販売数は「1」有効の欄は「○」、機能パッケージ3の有効販売数は「0」有効の欄は「×」である。
【0152】
アンインストール部87が販売パッケージAをアンインストールすると、販売パッケージ情報更新部93は、販売パッケージAの情報を全て消去する。これにより、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2がアンインストールされるので、機能パッケージ情報更新部92は、機能パッケージ1の情報を全て消去する。また、機能パッケージ2の販売数を1減らして「1」を、有効販売数を1減らして「0」をそれぞれ登録する。有効販売数が「0」なので、機能パッケージ2の有効の欄は「×」になる。したがって、機能パッケージ2,3のいずれも有効でなくなる。
・一方が有効でない販売パッケージのうち有効でない方をアンインストール
図30は、販売パッケージのアンインストールを説明する図の一例である。販売パッケージAはアクティベーションされているが有効化されておらず、販売パッケージBはアクティベーションされ有効化されている。この状態で販売パッケージAをアンインストールする。
【0153】
販売パッケージAのアクティベーションの欄は「○」が有効の欄は「×」が、販売パッケージBのアクティベーションの欄と有効の欄は「○」が、それぞれ登録されている。販売パッケージBだけ有効化されているので、機能パッケージ1の有効販売数は「0」有効の欄は「×」、機能パッケージ2の有効販売数は「1」有効の欄は「○」、機能パッケージ3の有効販売数は「1」有効の欄は「○」である。
【0154】
アンインストール部87が販売パッケージAをアンインストールすると、販売パッケージ情報更新部93は、販売パッケージAの情報を全て消去する。これにより、機能パッケージ1と販売パッケージAに含まれている機能パッケージ2がアンインストールされるので、機能パッケージ情報更新部92は、機能パッケージ1の情報を全て消去する。また、機能パッケージ2の販売数を1減らして「1」を登録する。機能パッケージ2の有効販売数は変化しないので「1」のままであり、有効の欄も「○」のままである。したがって、機能パッケージ2は有効のままである。また、機能パッケージ3の機能パッケージ情報75には変化がない。
【0155】
<アンインストールの処理手順>
図31は、アンインストール手順を説明するフローチャート図の一例である。図31ではユーザからの指示により有効化が開始されるとした。なお、図31において図20と同一ステップには同じ符号を付しその説明は簡単に行う。
【0156】
まず、アンインストール部87は、HDD15へのアクセスが可能か否かを判定する(S20〜S40)。HDD15へのアクセスが可能な場合(S20のYes、S30のYes)、アンインストールは機能パッケージ毎に実行するので、アンインストール部87はアンインストール対象の販売パッケージに含まれる機能パッケージを特定する(S210)。ステップS210の処理は図21に示したとおりである。
販売パッケージをアンインストールすると、含まれている機能パッケージが他の販売パッケージに含まれているか否かや有効化されているか否かにより処理が変わってくるので、処理内容決定部91は機能パッケージ毎に適切な処理(以下、アンインストール時処理という)を決定する(S410)。
図32はアンインストール時処理の手順を示すフローチャート図の一例である。処理内容決定部91は、アンインストールする販売パッケージに含まれている機能パッケージが現在有効か否かを確認する(S4010)。
【0157】
例えば、図28では、機能パッケージ1、2は共に有効であり、図29では、機能パッケージ1、2は共に有効であり、図30では、機能パッケージ1は有効でないが機能パッケージ2が有効である。
【0158】
有効状態な場合(S4020のYes)、アンインストールする販売パッケージに含まれている有効な機能パッケージが、他の有効な販売パッケージに含まれているか否かを確認する(S4030)。
【0159】
他の有効な販売パッケージに含まれている場合は(S4040のYes)、アンインストールも無効化もできないので、何もしない(S4100)。すなわち、図28の機能パッケージ2,図30の機能パッケージ2は有効なままである。
【0160】
他の有効な販売パッケージに含まれていない場合(S4040のNo)、アンインストールする販売パッケージに含まれている有効な機能パッケージが、他の販売パッケージに含まれているか否かを確認する(S4050)。有効でない販売パッケージに含まれているため、今回のアンインストールでその機能パッケージは有効でなくなる。
【0161】
このため、他の販売パッケージに含まれている場合(S4060のYes)、処理内容決定部91はその機能パッケージを無効化すると決定する(S4070)。すなわち、図29の機能パッケージ2は無効化される。
【0162】
一方、他の販売パッケージに含まれていない場合(S4060のNo)、消去してよいことになるので、処理内容決定部91はその機能パッケージをアンインストールすると決定する(S4110)。すなわち、図28、29の機能パッケージ1はHDD15から消去される。
【0163】
ステップS4020に戻り、有効状態でない場合(S4020のNo)、アンインストールする販売パッケージに含まれている機能パッケージが、他の販売パッケージに含まれているか否かを確認する(S4080)。例えば、図30の機能パッケージ1は有効でないが、他の販売パッケージに含まれていない。
【0164】
含まれていない場合(S4090のNo)、処理内容決定部91はその機能パッケージをアンインストールすると決定する(S4110)。すなわち、図30の機能パッケージ1はHDD15から消去される。
【0165】
含まれている場合(S4090のYes)、すでに有効でないことになるので、アンインストール対象の機能パッケージには何もしない(S4100)。
【0166】
以上のロジックで機能パッケージ毎に処理内容を決定すると、図31に戻り、アンインストール部87は、処理内容に基づき、販売パッケージに含まれる機能パッケージがアンインストール可能か否かを判定する(S420)。
【0167】
アンインストールが可能な機能パッケージであれば(S430のYes)、アンインストール部87は販売パッケージに含まれる機能パッケージをアンインストールする(S440)。
【0168】
アンインストールすると、販売パッケージ情報更新部93は販売パッケージ情報74を更新し、機能パッケージ情報更新部92は機能パッケージ情報75を更新する(S450)。
【0169】
以上のように、アンインストールする際、機能パッケージの共用状態、有効化の有無等に応じて、適切にアンインストールすることができる。
【0170】
〔起動処理〕
続いて、実装されたプログラムの起動について説明する。上記のように、各プラグインコンポーネント(機能パッケージ)73の起動は、起動情報77に基づいてプラグインスタータ72により制御される。このため、販売パッケージのインストールする際は、販売パッケージが含む各機能パッケージの起動順を起動情報77に登録する。このため、各販売パッケージには起動情報77を生成するための情報が含まれている。
【0171】
図33(a)は、販売パッケージに含まれるパッケージ内容を模式的に説明する図の一例である。例えば、この販売パッケージには3つの機能パッケージA〜Cが含まれている。また、上記のinfファイルと起動順を定義した起動順定義ファイル95がパッケージされている。起動順定義ファイル95には、例えば、「起動順:1.機能パッケージA、2.機能パッケージB、3.機能パッケージC」のように起動順が定義されている。
【0172】
図33(b)は、起動処理におけるインストール管理部の機能ブロック図の一例を示す。起動情報更新部94は、インストールした販売パッケージの起動順定義ファイル95に従い、起動情報77に起動順を登録する。同様に、インストール時だけでなく、アクティベーション又は有効化により機能パッケージが有効化された場合、起動情報更新部94は有効化された機能パッケージを起動情報77に登録する。
【0173】
起動情報77に登録される順番は、起動情報77への登録順である。しかし、起動順定義ファイル95に他の販売パッケージの機能パッケージに対する起動順が定義されている場合は、それに従い既に登録されている機能パッケージより前に登録されてもよい。
【0174】
また、起動情報更新部94は、有効化されている機能パッケージを起動情報77に登録するので、機能パッケージ情報75を参照して有効な機能パッケージを登録し、無効になった機能パッケージは削除する。
以下、いくつかの例を具体的に説明する。
【0175】
<起動情報77の更新1>
図34は、販売パッケージの実装と起動情報77の関係の一例を説明する図である。図34では、販売パッケージと矢印で結ばれた機能パッケージがその販売パッケージに含まれることを示す。販売パッケージAには、機能パッケージ1、2,5が含まれ、販売パッケージBには機能パッケージ1,3が含まれ、販売パッケージCには機能パッケージ2,3、4が含まれる。
【0176】
初期状態の販売パッケージAは有効、販売パッケージBは無効である。このため、機能パッケージ1,2,5は有効化されており、起動情報77には機能パッケージ1,2、5が登録されている。この状態から販売パッケージCをインストールする。したがって、販売パッケージCに含まれる機能パッケージ2、3、4は、それまで有効であればそのままに、インストールされていてそれまで無効であれば有効になり、インストールされていなければ有効になる。
機能パッケージ2:有効のまま
機能パッケージ3:無効→有効
機能パッケージ4:アンインストール→有効
したって、起動情報更新部94は新たに有効になった機能パッケージ3,4を起動情報77に登録する。機能パッケージ3,4の登録順は、起動順定義ファイル95に定義されている順番である。
【0177】
<起動情報77の更新2>
図35は、販売パッケージの実装と起動情報77の関係の一例を説明する図である。図35は、図34で販売パッケージCが有効になった状態であるので、初期状態の機能パッケージ1〜5はいずれも有効である。この状態から販売パッケージCをアンインストールする。
【0178】
したがって、販売パッケージCにのみ含まれる機能パッケージ4は、アンインストールされる。また、販売パッケージBはもともと無効なので、販売パッケージCとBにのみ含まれる機能パッケージCは無効化される。
機能パッケージ2:販売パッケージAが有効なので有効のまま
機能パッケージ3:有効→無効
機能パッケージ4:有効→アンインストール
したって、起動情報更新部94は新たに無効になった機能パッケージ3、アンインストールされた機能パッケージ4を、起動情報77から削除する。
【0179】
<起動情報77の更新3>
起動順に制約がある場合を説明する。図36は、販売パッケージの実装と起動情報77の関係の一例を説明する図である。なお、図36の初期状態は図34と同じで、その初期状態に販売パッケージCをインストール点でも同様である。
機能パッケージ2:有効のまま
機能パッケージ3:無効→有効
機能パッケージ4:アンインストール→有効
したって、起動情報更新部94は新たに有効になった機能パッケージ3,4を起動情報77に登録するが、販売パッケージCは起動順定義ファイル95に起動順を定義している。図36では、「1.機能パッケージ2、2.機能パッケージ3、3.機能パッケージ4」の順番である。このような起動順は、機能パッケージ間の依存関係がある場合に定義される。図36では、例えば機能パッケージ4は機能パッケージ3の機能を利用するため、機能パッケージ4よりも前に機能パッケージ3が起動している必要がある場合等である。
【0180】
起動情報更新部94は、有効化された機能パッケージがある場合、起動順定義ファイル95を参照して、適切な順番で機能パッケージを起動情報77に登録する。
【0181】
以上説明したように、本実施形態の画像形成装置100は、既にインストールされている機能パッケージはインストールしないので、効率的なインストールが可能となる。また、アンインストール時は、アンインストールしない販売パッケージに含まれている機能パッケージは削除しないので、残った販売パッケージに影響を与えることもない。すなわち、複数の販売パッケージが含む複数の機能パッケージが、一部重複するような構成の場合、実用的なプログラムの実装が容易に実現できる。
【図面の簡単な説明】
【0182】
【図1】画像形成装置におけるインストールの概要を模式的に説明する図の一例である。
【図2】インストールされても有効化されない販売パッケージのインストールを説明する図の一例である。
【図3】画像形成装置のハードウェア構成図の一例である。
【図4】画像形成装置のソフトウェアモジュールの一例を示す図である。
【図5】インストール管理部の機能ブロック図の一例である。
【図6】プラグイン管理部の機能ブロック図の一例である。
【図7】インストール時にアクティベーションされるプログラムの実装態様の一例を説明する図である。
【図8】インストール時にアクティベーションされないプログラムの実装態様の一例を説明する図である。
【図9】同じ機能パッケージが既にインストールされているが、バージョンが異なる場合のインストールの一例を説明する図である。
【図10】異なるバージョンで同じ機能パッケージをインストールする場合において、アクティベーションが必要な場合の一例を説明する図である。
【図11】同じ機能パッケージが既にインストールされており、バージョンが異なるが、後からインストールする機能パッケージのバージョンの方が古い場合の一例を説明する図である。
【図12】販売パッケージのアクティベーションが必要な場合の一例を説明する図の一例である。
【図13】販売パッケージのアップデートを説明する図の一例である。
【図14】同じ販売パッケージのアップデートの別の形態を説明する図の一例である。
【図15】インストール手順を説明するフローチャート図の一例である。
【図16】インストール後にアクティベーションが必要な販売パッケージのアクティベーションの一例を説明する図である。
【図17】販売パッケージの有効化を説明する図の一例である。
【図18】インストール後にアクティベーションが必要な販売パッケージのアクティベーションを説明する図の一例である。
【図19】アクティベーション後の有効化を説明する図の一例である。
【図20】有効化手順を説明するフローチャート図の一例である。
【図21】機能パッケージの特定手順を説明するフローチャート図の一例である。
【図22】販売パッケージの無効化を説明する図の一例である。
【図23】有効化手順を説明するフローチャート図の一例である。
【図24】販売パッケージのディアクティベーションを説明する図の一例である。
【図25】販売パッケージのアンインストールを説明する図の一例である。
【図26】販売パッケージの無効化を説明する図の一例である。
【図27】販売パッケージのディアクティベーションを説明する図の一例である。
【図28】販売パッケージのアンインストールを説明する図の一例である。
【図29】販売パッケージのアンインストールを説明する図の一例である。
【図30】販売パッケージのアンインストールを説明する図の一例である。
【図31】アンインストール手順を説明するフローチャート図の一例である。
【図32】アンインストール時処理の手順を示すフローチャート図の一例である。
【図33】販売パッケージに含まれるパッケージ内容を模式的に説明する図の一例である。
【図34】販売パッケージの実装と起動情報の関係の一例を説明する図である。
【図35】販売パッケージの実装と起動情報の関係の一例を説明する図である。
【図36】販売パッケージの実装と起動情報の関係の一例を説明する図である。
【符号の説明】
【0183】
15 HDD
60 インストール管理部
71 プラグイン管理部
72 プラグインスタータ
73 プラグインコンポーネント(機能パッケージ)
74 販売パッケージ情報
75 機能パッケージ情報
77 起動情報
100 画像形成装置
【特許請求の範囲】
【請求項1】
1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位で記憶装置にインストールする情報処理装置であって、
記憶装置に既にインストールされているパッケージに含まれるプログラムコンポーネントのリストを記憶したパッケージ情報記憶手段と、
インストールされているプログラムコンポーネント毎にインストール数を記憶したプログラム情報記憶手段と、
インストール対象のパッケージに添付された設定ファイルを記憶する記憶媒体から、前記設定ファイルに登録されたプログラムコンポーネントのリストを読み出し、前記パッケージ情報記憶手段に記憶されたリストと突合し、既にインストールされているプログラムコンポーネントを検出する重複プログラム検出手段と、
既にインストールされていないプログラムコンポーネントのみをインストールするインストール手段と、
インストールしたプログラムコンポーネントをインストール数と共に前記プログラム情報記憶手段に登録し、重複していることが検出されたプログラムコンポーネントのインストール数を1つ増加させるプログラム情報更新手段と、
を有することを特徴とする情報処理装置。
【請求項2】
所定のパッケージをアンインストールする際、
前記パッケージ情報記憶手段に記憶されたリストを参照し、アンインストール対象のパッケージに含まれるプログラムコンポーネントが、他のパッケージに含まれているか否かを判定する削除判定手段と、
他のパッケージに含まれていない、アンインストール対象のパッケージに含まれるプログラムコンポーネントを消去するアンインストール手段と、を有し、
前記プログラム情報更新手段は、前記プログラム情報記憶手段に登録されている、アンインストール対象のパッケージに含まれ、かつ、他のパッケージにも含まれているプログラムコンポーネントのインストール数を1つ減少させる、
ことを特徴とする請求項1記載の情報処理装置。
【請求項3】
インストールされたプログラムコンポーネントを起動又は起動可能状態にする有効化手段と、
起動又は起動可能状態のプログラムコンポーネントを起動不可状態にする無効化手段と、
を有することを特徴とする請求項1又は2記載の情報処理装置。
【請求項4】
使用権限が認められたことを示すアクティベーション情報をパッケージ単位で生成するアクティベーション手段と、
アクティベーションにより生成されたアクティベーション情報を消去するディアクティベーション手段と、
を有することを特徴とする請求項3記載の情報処理装置。
【請求項5】
前記設定ファイルには、起動又は起動可能状態にするためにインストール後にアクティベーションが必要か否か登録されている、
ことを特徴とする請求項4記載の情報処理装置。
【請求項6】
既にインストールされているパッケージと同じパッケージをインストールする際、
同じプログラムコンポーネント同士のバージョンを比較するバージョン判定手段と、
インストール対象のパッケージに含まれていないプログラムコンポーネントを、記憶装置から削除する削除手段と、を有し、
前記インストール手段は、バージョンが新しいプログラムコンポーネントのみインストールする、
ことを特徴とする請求項1〜5いずれか1項記載の情報処理装置。
【請求項7】
複数のプログラムコンポーネントの起動順を登録した起動情報を記憶した起動順情報記憶手段と、
インストール対象のパッケージに添付された起動順定義ファイルに従い、前記起動情報に複数のプログラムコンポーネントの起動順を登録する起動順決定手段と、
を有することを特徴とする請求項1〜6いずれか1項記載の情報処理装置。
【請求項8】
既にインストールされているパッケージに含まれるプログラムコンポーネントのリストを記憶したパッケージ情報記憶手段と、
インストールされているプログラムコンポーネント毎にインストール数を記憶したプログラム情報記憶手段と、を有する情報処理装置に、
1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位でインストールするインストール方法であって、
重複プログラム検出手段が、インストール対象のパッケージに添付された設定ファイルを記憶する記憶媒体から、前記設定ファイルに登録されたプログラムコンポーネントのリストを読み出し、前記パッケージ情報記憶手段に記憶されたリストと突合し、既にインストールされているプログラムコンポーネントを検出するステップと、
インストール手段が、既にインストールされていないプログラムコンポーネントのみをインストールするステップと、
プログラム情報更新手段が、インストールしたプログラムコンポーネントをインストール数と共に前記プログラム情報記憶手段に登録し、重複していることが検出されたプログラムコンポーネントのインストール数を1つ増加させるステップと、
を有することを特徴とするインストール方法。
【請求項9】
既にインストールされているパッケージに含まれるプログラムコンポーネントのリストを記憶したパッケージ情報記憶手段と、
インストールされているプログラムコンポーネント毎にインストール数を記憶したプログラム情報記憶手段と、を有する情報処理装置に、
入力手段から、1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位でインストールする指示を受け付けるステップと、
インストール対象のパッケージに添付された設定ファイルを記憶する記憶媒体から、前記設定ファイルに登録されたプログラムコンポーネントのリストを読み出し、前記パッケージ情報記憶手段に記憶されたリストと突合し、既にインストールされているプログラムコンポーネントを検出するステップと、
既にインストールされていないプログラムコンポーネントのみをインストールするステップと、
インストールしたプログラムコンポーネントをインストール数と共に前記プログラム情報記憶手段に登録し、重複していることが検出されたプログラムコンポーネントのインストール数を1つ増加させるステップと、
を実行させるプログラム。
【請求項10】
請求項9記載のプログラムを記載したコンピュータ読み取り可能な記憶媒体。
【請求項1】
1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位で記憶装置にインストールする情報処理装置であって、
記憶装置に既にインストールされているパッケージに含まれるプログラムコンポーネントのリストを記憶したパッケージ情報記憶手段と、
インストールされているプログラムコンポーネント毎にインストール数を記憶したプログラム情報記憶手段と、
インストール対象のパッケージに添付された設定ファイルを記憶する記憶媒体から、前記設定ファイルに登録されたプログラムコンポーネントのリストを読み出し、前記パッケージ情報記憶手段に記憶されたリストと突合し、既にインストールされているプログラムコンポーネントを検出する重複プログラム検出手段と、
既にインストールされていないプログラムコンポーネントのみをインストールするインストール手段と、
インストールしたプログラムコンポーネントをインストール数と共に前記プログラム情報記憶手段に登録し、重複していることが検出されたプログラムコンポーネントのインストール数を1つ増加させるプログラム情報更新手段と、
を有することを特徴とする情報処理装置。
【請求項2】
所定のパッケージをアンインストールする際、
前記パッケージ情報記憶手段に記憶されたリストを参照し、アンインストール対象のパッケージに含まれるプログラムコンポーネントが、他のパッケージに含まれているか否かを判定する削除判定手段と、
他のパッケージに含まれていない、アンインストール対象のパッケージに含まれるプログラムコンポーネントを消去するアンインストール手段と、を有し、
前記プログラム情報更新手段は、前記プログラム情報記憶手段に登録されている、アンインストール対象のパッケージに含まれ、かつ、他のパッケージにも含まれているプログラムコンポーネントのインストール数を1つ減少させる、
ことを特徴とする請求項1記載の情報処理装置。
【請求項3】
インストールされたプログラムコンポーネントを起動又は起動可能状態にする有効化手段と、
起動又は起動可能状態のプログラムコンポーネントを起動不可状態にする無効化手段と、
を有することを特徴とする請求項1又は2記載の情報処理装置。
【請求項4】
使用権限が認められたことを示すアクティベーション情報をパッケージ単位で生成するアクティベーション手段と、
アクティベーションにより生成されたアクティベーション情報を消去するディアクティベーション手段と、
を有することを特徴とする請求項3記載の情報処理装置。
【請求項5】
前記設定ファイルには、起動又は起動可能状態にするためにインストール後にアクティベーションが必要か否か登録されている、
ことを特徴とする請求項4記載の情報処理装置。
【請求項6】
既にインストールされているパッケージと同じパッケージをインストールする際、
同じプログラムコンポーネント同士のバージョンを比較するバージョン判定手段と、
インストール対象のパッケージに含まれていないプログラムコンポーネントを、記憶装置から削除する削除手段と、を有し、
前記インストール手段は、バージョンが新しいプログラムコンポーネントのみインストールする、
ことを特徴とする請求項1〜5いずれか1項記載の情報処理装置。
【請求項7】
複数のプログラムコンポーネントの起動順を登録した起動情報を記憶した起動順情報記憶手段と、
インストール対象のパッケージに添付された起動順定義ファイルに従い、前記起動情報に複数のプログラムコンポーネントの起動順を登録する起動順決定手段と、
を有することを特徴とする請求項1〜6いずれか1項記載の情報処理装置。
【請求項8】
既にインストールされているパッケージに含まれるプログラムコンポーネントのリストを記憶したパッケージ情報記憶手段と、
インストールされているプログラムコンポーネント毎にインストール数を記憶したプログラム情報記憶手段と、を有する情報処理装置に、
1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位でインストールするインストール方法であって、
重複プログラム検出手段が、インストール対象のパッケージに添付された設定ファイルを記憶する記憶媒体から、前記設定ファイルに登録されたプログラムコンポーネントのリストを読み出し、前記パッケージ情報記憶手段に記憶されたリストと突合し、既にインストールされているプログラムコンポーネントを検出するステップと、
インストール手段が、既にインストールされていないプログラムコンポーネントのみをインストールするステップと、
プログラム情報更新手段が、インストールしたプログラムコンポーネントをインストール数と共に前記プログラム情報記憶手段に登録し、重複していることが検出されたプログラムコンポーネントのインストール数を1つ増加させるステップと、
を有することを特徴とするインストール方法。
【請求項9】
既にインストールされているパッケージに含まれるプログラムコンポーネントのリストを記憶したパッケージ情報記憶手段と、
インストールされているプログラムコンポーネント毎にインストール数を記憶したプログラム情報記憶手段と、を有する情報処理装置に、
入力手段から、1つのパッケージに含まれる1以上のプログラムコンポーネントを、パッケージ単位でインストールする指示を受け付けるステップと、
インストール対象のパッケージに添付された設定ファイルを記憶する記憶媒体から、前記設定ファイルに登録されたプログラムコンポーネントのリストを読み出し、前記パッケージ情報記憶手段に記憶されたリストと突合し、既にインストールされているプログラムコンポーネントを検出するステップと、
既にインストールされていないプログラムコンポーネントのみをインストールするステップと、
インストールしたプログラムコンポーネントをインストール数と共に前記プログラム情報記憶手段に登録し、重複していることが検出されたプログラムコンポーネントのインストール数を1つ増加させるステップと、
を実行させるプログラム。
【請求項10】
請求項9記載のプログラムを記載したコンピュータ読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【公開番号】特開2010−113476(P2010−113476A)
【公開日】平成22年5月20日(2010.5.20)
【国際特許分類】
【出願番号】特願2008−284687(P2008−284687)
【出願日】平成20年11月5日(2008.11.5)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成22年5月20日(2010.5.20)
【国際特許分類】
【出願日】平成20年11月5日(2008.11.5)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]