(57)【要約】      （修正有）【課題】ソースコードを再コンパイルすることなく有効期限を変更可能にし、かつ、ソフトウェアインストール後に個々の有効期限を手動変更する必要をなくす。【解決手段】インストールパッケージ１６０を分解し、コンポーネントＡの範囲を検出した後、この範囲内の有効期限情報のヘッダに基づいて有効期限情報の位置を検出し、この情報を、他の対応する有効期限情報１５１に変更するとともに、コンポーネントＡに含まれるバージョン情報及びインストール処理情報に含まれるコンポーネントＡのバージョン情報を書き換え、各コンポーネントを結合してインストールパッケージ１６１を再生する。【選択図】図１
2011243072.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、ソフトウェアのインストールパッケージの有効期限を他の有効期限情報に変更するソフトウェア有効期限変更方法であって、該コンピュータが、
（ａ）有効期限情報及び該有効期限情報と現時点とに基づいて動作を停止又は続行する使用制限プログラムを含む使用制限機能付コンポーネントと、各コンポーネントのバージョン情報を含むインストール処理情報とを備えたインストールパッケージを、各コンポーネントに分解し、
（ｂ）該有効期限情報のヘッダに基づいて、該有効期限情報の位置を検出し、
（ｃ）該検出した有効期限情報を、該他の有効期限情報に変更し、
（ｄ）この変更に対応して、該使用制限機能付コンポーネントに含まれるバージョン情報及び該インストール処理情報に含まれる該使用制限機能付コンポーネントのバージョン情報を書き換え、
（ｅ）各コンポーネントを結合してインストールパッケージを再生する、
ことを特徴とするソフトウェア有効期限変更方法。
【請求項２】
該コンピュータが、処理（ｂ）において、該使用制限機能付コンポーネントの識別子を検出し、該識別子から該使用制限機能付コンポーネントのファイル終端識別子までの範囲において、該有効期限情報の位置を検出することを特徴とする請求項１に記載のソフトウェア有効期限変更方法。
【請求項３】
該コンピュータが、処理（ｄ）において、書換前のバージョン識別子に有効期限識別子を付加することによりバージョン情報を書き換えることを特徴とする請求項１又は２に記載のソフトウェア有効期限変更方法。
【請求項４】
ソフトウェアのインストールパッケージの有効期限を他の有効期限情報に変更するソフトウェア有効期限変更装置であって、
有効期限情報及び該有効期限情報と現時点とに基づいて動作を停止又は続行する使用制限プログラムを含む使用制限機能付コンポーネントと、各コンポーネントのバージョン情報を含むインストール処理情報とを備えたインストールパッケージを、各コンポーネントに分解するインストールパッケージ分解手段と、
該有効期限情報のヘッダに基づいて、該有効期限情報の位置を検出する有効期限情報位置検出手段と、
該検出した有効期限情報を、該他の有効期限情報に変更する有効期限情報変更手段と、
この変更に対応して、該使用制限機能付コンポーネントに含まれるバージョン情報及び該インストール処理情報に含まれる該使用制限機能付コンポーネントのバージョン情報を書き換えるバージョン情報書換手段と、
各コンポーネントを結合してインストールパッケージを再生するインストールパッケージ再生手段と、
を有することを特徴とするソフトウェア有効期限変更装置。
【請求項５】
該有効期限情報位置検出手段は、該使用制限機能付コンポーネントの識別子を検出し、該識別子から該使用制限機能付コンポーネントのファイル終端識別子までの範囲において、該有効期限情報の位置を検出することを特徴とする請求項４に記載のソフトウェア有効期限変更装置。
【請求項６】
該バージョン情報書換手段は、書換前のバージョン識別子に有効期限識別子を付加することによりバージョン情報を書き換えることを特徴とする請求項４又は５に記載のソフトウェア有効期限変更装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのインストールパッケージの有効期限を変更するソフトウェア有効期限変更方法及び装置に関する。
【背景技術】
【０００２】
下記特許文献１には、画像形成装置の不揮発性メモリにオプションルーチンを予め格納して画像形成装置を出荷し、ユーザがこのオプションルーチンを試用したい時にＵＳＢメモリキーを画像形成装置に装着することにより、それから所定期間、オプションルーチンの試用を可能にする構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７‐２５７５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このオプションルーチンの使用は、他の理由によって制限される場合がある。例えば、画像形成装置のハードウェア又はファームウェアのバージョンアップが予定されていて、これに合わせてオプションルーチンをバージョンアップしないと試用できなくなる場合がある。
【０００５】
このような場合、ユーザにより定められる試用期間とは別に、オプションルーチン自体の有効期間を設定する必要がある。この有効期間は、ハードウェアやファームウェアの出荷のタイミングにより調整する必要があり、また、販売地域によってハードウェアの出荷のタイミングが異なったりする。このため、ソフトウェア開発元で、ソフトウェアの有効期間を調整するのは困難となる。
【０００６】
画像形成装置のディーラにこの有効期間の変更を任せるには、ソフトウェア開発元がディーラにソースコードを渡してディーラがソースコード上で有効期間を変更し、ソースコードを再コンパイルしなければならず、ソースコードがソフトウェア開発元から外部へ流出することになり、秘密漏洩の虞が生ずる。
【０００７】
また、ユーザインターフェイスを介しこの有効期間を変更可能にプログラムしておき、ディーラがこれを起動させて有効期間を変更する方法も考えられるが、個々の画像形成装置に対してこのような手動変更を行わなければならないので、煩雑である。
【０００８】
本発明の目的は、このような問題点に鑑み、ソースコードを再コンパイルすることなく有効期限を変更することができ、かつ、ソフトウェアをインストールした後に個々の有効期限を手動変更する必要がないソフトウェア有効期限変更方法及び装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１態様では、コンピュータが、ソフトウェアのインストールパッケージの有効期限を他の有効期限情報に変更するソフトウェア有効期限変更方法であって、該コンピュータが、
（ａ）有効期限情報及び該有効期限情報と現時点とに基づいて動作を停止又は続行する使用制限プログラムを含む使用制限機能付コンポーネントと、各コンポーネントのバージョン情報を含むインストール処理情報とを備えたインストールパッケージを、各コンポーネントに分解し、
（ｂ）該有効期限情報のヘッダに基づいて、該有効期限情報の位置を検出し、
（ｃ）該検出した有効期限情報を、該他の有効期限情報に変更し、
（ｄ）この変更に対応して、該使用制限機能付コンポーネントに含まれるバージョン情報及び該インストール処理情報に含まれる該使用制限機能付コンポーネントのバージョン情報を書き換え、
（ｅ）各コンポーネントを結合してインストールパッケージを再生する。
【００１０】
本発明の第２態様では、第１態様において、該コンピュータが、処理（ｂ）において、該使用制限機能付コンポーネントの識別子を検出し、該識別子から該使用制限機能付コンポーネントのファイル終端識別子までの範囲において、該有効期限情報の位置を検出する。
【発明の効果】
【００１１】
上記第１態様の構成によれば、インストールパッケージを分解し、有効期限情報のヘッダに基づいて有効期限情報の位置を検出し、この情報を、他の対応する有効期限情報に変更するとともに、該使用制限機能付コンポーネントに含まれるバージョン情報及びインストール処理情報に含まれる該使用制限機能付コンポーネントのバージョン情報を書き換え、各コンポーネントを結合してインストールパッケージを再生するので、ソースコードを再コンパイルすることなく有効期限を変更することができ、かつ、ソフトウェアをインストールした後に個々の有効期限を手動変更する必要がないという効果を奏する。
【００１２】
また、有効期間情報がコンポーネントの外部に存在する場合には悪意のある有効期間情報差替が行われる可能性が高くなるが、第１態様の構成によれば、有効期間情報が使用制限機能付コンポーネント内に含まれているので、このような差し替えは困難であるという効果を奏する。
【００１３】
上記第２態様の構成によれば、該有効期限情報のヘッダの探索範囲が該使用制限機能付コンポーネント内に限定されるので、該ヘッダの誤検出を防止することができるという効果を奏する。
【００１４】
本発明の他の目的、特徴的な構成及び効果は、以下の説明を特許請求の範囲及び図面の記載と関係づけて読むことにより明らかになる。 
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例１に係るソフトウェア有効期間変更装置の機能ブロック図である。
【図２】処理対象としてのインストールパッケージの概略構成図である。
【図３】図２中のコンポーネントＡの構成例を示す概略ブロック図である。
【図４】有効期間変更後のインストールパッケージの概略構成図である。
【図５】図１中の使用制限変更部によりコンポーネントＡの有効期間情報を他のもので置換する処理を示す概略フローチャートである。
【図６】本発明の実施例１に係るソフトウェア有効期間変更装置のハードウェア構成を示す概略ブロック図である。
【実施例１】
【００１６】
図６は、本発明の実施例１に係るソフトウェア有効期間変更装置１０のハードウェア構成を示す概略ブロック図である。
【００１７】
このハードウェアは、一般的なコンピュータであって、ＣＰＵ１１がインターフェイス１２を介してＰＲＯＭ１３及びＤＲＡＭ１４に結合されたコンピュータ本体１５と、インターフェイス１２に結合されたハードディスクドライブ１６、入力装置１７及び表示装置１８とを備えている。図６では、簡単化の為に、複数種のインターフェイスを１つのブロック１２で表している。
【００１８】
ＰＲＯＭ１３は、例えばフラッシュメモリであり、ＢＩＯＳが格納されている。ＤＲＡＭ１４は、主記憶装置として用いられる。ハードディスクドライブ１６には、仮想記憶方式のＯＳ（オペレーティングシステム）、各種ドライバ及びアプリケーション並びにデータが格納されている。
【００１９】
図１は、ソフトウェア有効期間変更装置１０の機能ブロック図である。
【００２０】
ハードディスクドライブ１６には、有効期間Ａのインストールパッケージ１６０が、処理対象として格納されている。このインストールパッケージ１６０は、例えばJAR又はMSI形式（拡張子が.jar又は.msi）であり、コンパイルされた複数のコンポーネントが圧縮され且つ１つにマージされている。一方、コンピュータ本体１５には、ソフトウェアとハードウェアの協働により動作する使用制限変更部１５０が備えられている。
【００２１】
操作者は、表示装置１８上の表示を見ながら入力装置１７を操作して、有効期間をコンピュータ本体１５に入力する。使用制限変更部１５０は、入力装置１７から入力される有効期間に応じて、インストールパッケージ１６０に含まれている有効期間情報のフォーマットに対応した有効期間情報１５１を生成し、ハードディスクドライブ１６からインストールパッケージ１６０をＤＲＡＭ１４上に読み出し、その有効期間情報を有効期間情報１５１と置換し、JAR又はMSI形式のインストールパッケージ１６１を再生してハードディスクドライブ１６に格納する。このインストールパッケージ１６１は、複製され、各画像形成装置２０にインストールされる。
【００２２】
図２は、インストールパッケージ１６０の概略構成図である。
【００２３】
インストールパッケージ１６０は、その機能を実現するためのコンポーネント３０、３１及び３２（Ａ、Ｂ及びＣ）と、インストーラがこれらを画像形成装置２０にインストールする際に使用するインストール処理情報３３とを備えている。例えばコンポーネント３０、３１及び３２にはそれぞれバージョン１．０の情報が含まれ、これらに対応して、コンポーネント３０、３１及び３２のバージョンが１．０であることを示す情報がインストール処理情報３３に含まれている。
【００２４】
図３は、図２中のコンポーネント３０の構成例を示す概略ブロック図である。
【００２５】
コンポーネント３０では、主機能部３００の前処理部３０１が使用制限部３０２を呼び出し、使用制限部３０２はこれに応答して、現日時取得部３０３を介し現日時を取得し、有効期間情報３０４から有効期間を取得し、この現日時が有効期間外であれば実行を停止し、そうでなければ前処理部３０１へ戻る。前処理部３０１は、本体部３０５に制御を移し、これにより、本来の処理の実行が開始される。
【００２６】
図５は、使用制限変更部１５０によりコンポーネント３０の有効期間情報３０４を有効期間情報１５１で置換する処理を示す概略フローチャートである。以下、括弧内は図５中のステップ識別符号である。
【００２７】
（Ｓ０）インストールパッケージ１６０をＤＲＡＭ１４上で分解（解凍）する。これにより、各コンポーネントの終端識別子が現れ、インストールパッケージ１６０がコンポーネントに分解されたことになる。
【００２８】
（Ｓ１）予め定めたコンポーネントＡの識別子（ヘッダ）、例えば「HyPAS_Comp_A.ver.20100101」のうち、バージョン識別子を除いた「HyPAS_Comp_A」を、コンポーネント３０の始端から終端へ向けて１バイトずらす毎に所定バイトと比較して検出し、ここからファイル終端識別子までを、コンポーネントＡの範囲と決定する。
【００２９】
（Ｓ２）この範囲内で、有効期間情報３０４の識別子（ヘッダ）、例えば「Data53269」を検出することにより、図３の有効期間情報３０４を検出する。
【００３０】
（Ｓ３）このヘッダから所定バイト離れた位置に有効期間情報３０４が配置されており、これを有効期間情報１５１で上書きすることにより、有効期間情報３０４を有効期間情報１５１で置換する。
【００３１】
（Ｓ４）上記「HyPAS_Comp_A.ver.20100101」に含まれるコンポーネントＡのバージョン情報「ver.20100101」を例えば「ver.20100101r」と書き換え、コンポーネント３０の先頭部に記述されたコンポーネント３０全体としてのバージョン情報（不図示）を同様にして書き換える。
【００３２】
（Ｓ５）この書換えに対応して、図２のインストール処理情報３３中の対応するバージョン情報を同様に書き換える。
【００３３】
（Ｓ６）以上のように書き換えられたインストールパッケージ１６０に対し、上記分解と逆の処理（結合処理）を行うことにより、図４に示すようなインストールパッケージ１６１を再生する。
【００３４】
インストーラは、インストールパッケージ１６１を各コンポーネントに分解した後、インストール処理情報３３Ａを参照し、画像形成装置２０にインストールされているパッケージのバージョン情報がインストール処理情報３３Ａ内のものより古ければ、処理を続行し、画像形成装置２０内のこのパッケージに含まれる各コンポーネントについて、そのバージョン情報がインストール処理情報３３Ａ内のものより古ければ、インストールパッケージ１６１内の対応するもので置き換える。これにより、画像形成装置２０内にインストールパッケージ１６０がインストールされている場合、そのコンポーネント３０が３０Ａで置換されるとともに、有効期間情報３０４が有効期間情報１５１で置換されることになる。
【００３５】
本実施例１によれば、インストールパッケージ１６０を分解し、コンポーネントＡ内の有効期限情報３０４のヘッダに基づいて有効期限情報３０４の位置を検出し、この情報を、他の対応する有効期限情報１５１に変更するとともに、コンポーネントＡに含まれるバージョン情報及びインストール処理情報３３に含まれるコンポーネントＡのバージョン情報を書き換え、各コンポーネントを結合してインストールパッケージ１６１を再生するので、ソースコードを再コンパイルすることなく有効期限を変更することができ、かつ、ソフトウェアをインストールした後に個々の有効期限を手動変更する必要がないという効果を奏する。より具体的には、ソフトウェア開発元はディーラに対してソースコードを提供する必要がなく、ディーラはインストールパッケージ１６０の有効期間情報３０４を適宜変更することができ、さらに、有効期間を変更したものをコピーして配布することにより、個々の有効期限を手動変更する必要がないという効果を奏する。
【００３６】
また有効期限情報３０４のヘッダの探索範囲がコンポーネントＡ内に限定されるので、該ヘッダの誤検出を防止することができるという効果を奏する。
【００３７】
さらに、有効期間情報３０４がコンポーネントの外部に存在する場合には悪意のある有効期間情報３０４の差し替えが行われる可能性が高くなるが、本実施例１では有効期間情報３０４がコンポーネント３０内に含まれているので、このような差し替えは困難である。
【００３８】
以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。
【００３９】
例えば、上記実施例ではソフトウェアの有効期間を変更する場合について説明したが、本発明は少なくとも有効期限を変更するものであればよい。
【００４０】
また、インストールパッケージは画像形成装置用に限定されず、他のソフトウェア、例えばＳＤＫ（ソフトウェア開発キット）のプラグイン等であってもよい。
【符号の説明】
【００４１】
１０  ソフトウェア有効期間変更装置
１１  ＣＰＵ
１２  インターフェイス
１３  ＰＲＯＭ
１４  ＤＲＡＭ
１５  コンピュータ本体
１６  ハードディスクドライブ
１７  入力装置
１８  表示装置
２０  画像形成装置
１５０  使用制限変更部
１５１、３０４  有効期間情報
１６０、１６１  インストールパッケージ
３０〜３２、３０Ａ  コンポーネント
３３、３３Ａ  インストール処理情報
３００  主機能部
３０１  前処理部
３０２  使用制限部
３０３  現日時取得部
３０５  本体部
【図１】
2011243072.tif 000003
【図２】
2011243072.tif 000004
【図３】
2011243072.tif 000005
【図４】
2011243072.tif 000006
【図５】
2011243072.tif 000007
【図６】
2011243072.tif 000008