次に、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
図1は、本発明のソフトウェアのインストール方式の第1の実施形態を示すブロック図である。
図1に示す第1の実施形態においては、外部機器100とコンピュータ200が接続されて構成されている。外部機器100は、コンピュータ200にインストールするソフトウェアを記憶している機器である。コンピュータ200には、外部機器100が記憶しているソフトウェアがインストールされ、コンピュータ200上で、インストールされたソフトウェアを動作させることが可能となっている。
ここで、外部機器100は、USBメモリやメモリーカード(memory card)などの、ソフトウェアを記憶可能な記憶媒体である。
また、コンピュータ200は、ソフトウェアがインストールされ、インストールされたソフトウェアを動作させることが可能な、デスクトップ型パーソナルコンピュータ、ノート型パーソナルコンピュータなどである。或いはまた、コンピュータ200は、携帯電話機、PHS(Personal Handyphone System:ピーエッチエス)端末、PDA(Personal Digital Assistance:携帯情報端末)、スマートフォン(Smart Phone)などであってもよい。
外部機器100は、フラッシュメモリ部110とインタフェース(interface)部190を含んで構成されている。
フラッシュメモリ部110は、書き換えが可能であり、電源を切っても記憶したデータが消滅しない、所謂、不揮発性メモリである。フラッシュメモリ部110には、インストールカウンタ(Install Counter)112、インストーラプログラム(Installer Program)113、コンピュータプログラム(Computer Program)120が記憶されている。
インストールカウンタ112は、フラッシュメモリ部110に記憶されているコンピュータプログラム120を、コンピュータ200にインストールできる上限の回数を記憶している。ここで、インストールできる上限の回数とは、インストール回数の許可回数を示すものであり、通常、ライセンス契約等により外部機器100のユーザに与えられる値である。インストールできる上限の回数が2回であるとすれば、インストールカウンタ112には「2」が記憶されるようになっている。
ここで、インストールとは、コンピュータプログラム120を、コンピュータ200上で利用可能な状態にするための作業・工程のことを指すものとする。インストール工程としては、コンピュータプログラム120のコピー、システムプログラムやハードウェアなどのシステム情報を格納するレジストリ(registry)の値の書き換え、などが含まれる。また、動的なリンクによって利用されるライブラリであるところのDLL(Dynamic Link Library:ディーエルエル)ファイルの更新も含まれるものとする。
インストーラプログラム113は、上述した一連のインストール作業・工程を自動的に行うプログラムである。インストーラプログラム113は、また、インストールされたコンピュータプログラム120をコンピュータ200から削除する作業であるところのアンインストールも行えるようになっている。
コンピュータプログラム120は、コンピュータ200にインストールするソフトウェアである。コンピュータプログラム120としては、オペレーティングシステム、アプリケーションプログラム、デバイスドライバなどを挙げることができる。ここで、デバイスドライバとは、周辺機器などのハードウェアを制御するためのソフトウェアである。
インタフェース部190は、外部機器100をコンピュータ200に接続するための接続部であり、コネクタなどで構成されている。
コンピュータ200は、制御部230と、記憶装置250と、インタフェース部290を含んで構成されている。
制御部230は、記憶装置250に記憶されているプログラムに従って動作し、コンピュータ200全体の動作制御を行う。制御部230は、その動作に必要となるデータなどを記憶装置250から読み出し、また、記憶装置250に書き込む。制御部230はまた、インタフェース部290を介して、外部機器100との間で必要なデータなどの入出力を行う。
記憶装置250は、制御部230が必要とするデータなどを記憶しており、読み出し要求に従ってデータなどを制御部230に送出し、また、書き込み要求に従って制御部230から送出されるデータなどを記憶する。また、記憶装置250は、制御部230を動作させるためのプログラムを記憶する。
インタフェース部290は、コンピュータ200に外部機器100を接続するための接続部であり、コネクタなどで構成されている。
次に、図2を参照して、本実施形態の動作について説明する。
図2は、第1の実施形態の動作を説明するフローチャートである。なお、図2に示す動作は、コンピュータ200の制御部230の動作を示すものである。
図2において、コンピュータ200の制御部230は、先ず、コンピュータ200のインタフェース部290に外部機器100が接続されているかの判定を行う(図2のステップS10)。
外部機器が接続されていない場合(ステップS10でNo)、制御部230はその動作を終了する。
外部機器が接続されている場合(ステップS10でYes)、制御部230は、外部機器100に記憶されているインストーラプログラム113を読み込み、記憶装置250に記憶させる。そして、制御部230は、インストーラプログラム113にて起動し、以後、インストーラプログラム113に従って動作するようになる(ステップS11)。
インストーラプログラム113に従って動作している制御部230は、外部機器100に記憶されているコンピュータプログラム120が、既にコンピュータ200の記憶装置250にインストールされているかの判定を行う(ステップS12)。
コンピュータプログラム120が既にインストールされている場合(ステップS12でYes)、制御部230はその動作を終了する。
コンピュータプログラム120がインストールされていない場合(ステップS12でNo)、制御部230は、外部機器100のインストールカウンタ112の値が「0」であるかの判定を行う(ステップS13)。
インストールカウンタ112の値が「0」である場合(ステップS13でYes)、コンピュータプログラム120をインストールできる上限の回数を超えているため、制御部230はその動作を終了する。従って、このとき、コンピュータプログラム120は、コンピュータ200にはインストールされない。なお、制御部230の動作を終了する前に、インストールできる上限の回数を超えている旨、を示すメッセージなどを、コンピュータ200の図示していない表示装置などに出力するようにしてもよい。
インストールカウンタ112の値が「0」でない場合(ステップS13でNo)、コンピュータプログラム120をインストールできる上限の回数を超えていないため、制御部230は、コンピュータプログラム120を記憶装置250にインストールする(ステップS14)。
そして、制御部230は、外部機器100のインストールカウンタ112の値を「1」だけ減算し、減算した値をインストールカウンタ112に書き込む(ステップS15)。
以上説明したように、本実施形態においては、外部機器100が記憶しているコンピュータプログラム120を、コンピュータ200に1回インストールすると、インストールカウンタ112の値を「1」だけ減算するようになっている。また、インストールカウンタ112の値が「0」になっている場合には、コンピュータプログラム120のインストールを行わないようになっている。
以上、本実施形態の動作について説明した。
以上説明したように、第1の実施形態のソフトウェアのインストール方式においては、外部機器(外部機器100)は、コンピュータ(コンピュータ200)上で動作するコンピュータプログラム(コンピュータプログラム120)を記憶している。また、外部機器は、前記コンピュータに前記コンピュータプログラムをインストールするインストーラプログラム(インストーラプログラム113)を記憶している。さらに、外部機器は、前記インストールの残り可能回数を記憶している(インストールカウンタ112)。また、コンピュータは、前記外部機器を接続して前記インストーラプログラムを動作させるようになっている。そして、前記インストーラプログラムは、前記残り可能回数の残存していることを検出した場合にのみ、前記コンピュータプログラムを前記コンピュータにインストールするようになっている。
従って、ソフトウェアのインストール回数を許可回数以内に確実に制限することが可能となる。
[第2の実施形態]
次に、図1に示した第1の実施形態の変形例としての本発明による第2の実施形態について説明する。
図3は、本発明のソフトウェアのインストール方式の第2の実施形態を示すブロック図である。図3は、図1に示した外部機器100を、ソフトウェアを記憶可能な記憶媒体としてだけでなく、記憶媒体を含むデータ通信端末としたものである。従って、図3において、図1の構成要素に対応するものは同一の参照数字または符号を付し、その説明を極力省略するものとする。
なお、上述のデータ通信端末とは、コンピュータなどに接続して、データ通信を行うために用いられる機器であり、データ通信機器と称される場合もある機器である。データ通信端末の具体例として、無線通信モデムやWiFi(Wireless Fidelity:ワイファイ)ルータなどを挙げることができる。
図3に示す第2の実施形態においては、外部機器100−2とコンピュータ200−2が接続されて構成されている。外部機器100−2は、コンピュータ200−2にインストールするソフトウェアを記憶している。そして、外部機器100−2は、コンピュータ200−2に前記のソフトウェアがインストールされた後は、前記のソフトウェアでコンピュータ200−2が動作することにより、コンピュータ200−2に接続されたデータ通信端末として作動するようになる。
外部機器100−2は、フラッシュメモリ部110−2と、通信制御部130を含んで構成されている。
フラッシュメモリ部110−2には、機器固有情報111、インストールカウンタ112、インストーラプログラム113、コンピュータプログラム120−2が記憶されている。
機器固有情報111は、外部機器100−2を一意に識別可能な固有の情報であり、外部機器100−2の製造番号や、外部機器100−2が有するMAC(Media Access Control:マック)アドレス等の情報である。なお、MACアドレスは、外部機器100−2をデータ通信端末として使用する際に、ネットワーク上のアドレスとして用いられるアドレスである。
インストールカウンタ112とインストーラプログラム113は、第1の実施形態と同一であるため、これ以上の説明を省略するものとする。
コンピュータプログラム120−2は、コンピュータ200−2にインストールするソフトウェアである。本実施形態のコンピュータプログラム120−2は、通信制御部130をコンピュータ200−2のデータ通信端末として作動させるためのソフトウェアとして構成されている。すなわち、コンピュータプログラム120−2は、通信制御部130を作動させるためのアプリケーションプログラムとして、通信制御アプリケーション121を含んでいる。また、通信制御部130のデバイスドライバとして、通信制御ドライバ122も含んでいる。
通信制御部130は、コンピュータ200−2のデータ通信端末として作動するようになっており、インタフェース部131、制御部132、無線部133を含んで構成されている。
インタフェース部131は、通信制御部130をコンピュータ200−2に接続するための接続部であり、コネクタなどで構成されている。インタフェース部131は、また、外部機器100−2をコンピュータ200−2に接続するための接続部としての役割も兼ね備えている。
制御部132は、通信制御部130をデータ通信端末として作動させるために、通信制御部130全体の動作制御を行う。すなわち、制御部132は、インタフェース部131を介してコンピュータ200−2から受信したデータ等を、無線部133を介して外部に送信する共に、無線部133を介して外部から受信したデータ等を、コンピュータ200−2に送出する。
無線部133は、通信制御部130がデータ通信端末として作動している際、制御部132から受信したデータ等を、無線電波にのせて外部に送信すると共に、外部から受信したデータ等を、制御部132に送出する。
なお、上述した制御部132は、外部機器100−2がコンピュータ200−2と接続された直後は、フラッシュメモリ部110−2と接続するようになっている。この場合、制御部132は、インタフェース部131を介して、コンピュータ200−2との間で制御信号の送受信を行い、フラッシュメモリ部110−2の制御を行うよう動作する。すなわち、制御部132は、フラッシュメモリ部110−2が記憶しているデータ等を、コンピュータ200−2に送信し、或いは、コンピュータ200−2から受信したデータ等をフラッシュメモリ部110−2に送出するよう動作する。
コンピュータ200−2は、制御部230−2と、記憶装置250−2と、インタフェース部290を含んで構成されている。
制御部230−2は、記憶装置250−2に記憶されているプログラムに従って動作し、コンピュータ200−2全体の動作制御を行う。制御部230−2は、その動作に必要となるデータなどを記憶装置250−2から読み出し、また、記憶装置250−2に書き込む。制御部230−2はまた、インタフェース部290を介して、外部機器100−2との間で必要なデータなどの入出力を行う。本実施形態においては、制御部230−2は、外部機器100−2が記憶しているコンピュータプログラム120−2がインストールされた後、当該コンピュータプログラム120−2に従って動作するようになっている。
記憶装置250−2は、制御部230−2が必要とするデータなどを記憶しており、読み出し要求に従ってデータなどを制御部230−2に送出し、また、書き込み要求に従って制御部230−2から送出されるデータなどを記憶する。また、記憶装置250−2は、制御部230−2を動作させるためのプログラムを記憶する。本実施形態においては、記憶装置250−2は、外部機器100−2が記憶している機器固有情報111を、機器固有情報251として記憶するようになっている。
インタフェース部290は、コンピュータ200−2に外部機器100−2を接続するための接続部であり、コネクタなどで構成されている。
次に、図4、図5を参照して、本実施形態の動作について説明する。
図4は、第2の実施形態の動作を説明する第1のフローチャートである。なお、図4に示す動作は、コンピュータ200−2の制御部230−2の動作を示すものである。また、図4に示す動作は、外部機器100−2に記憶されているソフトウェア(コンピュータプログラム120−2)を、コンピュータ200−2にインストールする際の動作を示すものである。
図4において、コンピュータ200−2の制御部230−2は、先ず、コンピュータ200−2のインタフェース部290に外部機器100−2が接続されているかの判定を行う(図4のステップS20)。
外部機器が接続されていない場合(ステップS20でNo)、制御部230−2はその動作を終了する。
外部機器が接続されている場合(ステップS20でYes)、制御部230−2は、外部機器100−2に記憶されているインストーラプログラム113を読み込み、記憶装置250−2に記憶させる。そして、制御部230−2は、インストーラプログラム113にて起動し、以後、インストーラプログラム113に従って動作するようになる(ステップS21)。
インストーラプログラム113に従って動作している制御部230−2は、外部機器100−2に記憶されているコンピュータプログラム120−2が、既にコンピュータ200−2の記憶装置250−2にインストールされているかの判定を行う(ステップS22)。
コンピュータプログラム120−2が既にインストールされている場合(ステップS22でYes)、制御部230−2の動作はステップS27へ進む。
コンピュータプログラム120−2がインストールされていない場合(ステップS22でNo)、制御部230−2は、外部機器100−2のインストールカウンタ112の値が「0」であるかの判定を行う(ステップS23)。
インストールカウンタ112の値が「0」である場合(ステップS23でYes)、コンピュータプログラム120−2をインストールできる上限の回数を超えているため、制御部230−2はその動作を終了する。従って、このとき、コンピュータプログラム120−2は、コンピュータ200−2にはインストールされない。
インストールカウンタ112の値が「0」でない場合(ステップS23でNo)、コンピュータプログラム120−2をインストールできる上限の回数を超えていないため、制御部230−2は、コンピュータプログラム120−2を記憶装置250−2にインストールする(ステップS24)。
そして、制御部230−2は、外部機器100−2のインストールカウンタ112の値を「1」だけ減算し、減算した値をインストールカウンタ112に書き込む(ステップS25)。
次に、制御部230−2は、外部機器100−2が記憶している機器固有情報111を読み出し、これを、コンピュータ200−2の記憶装置250−2に機器固有情報251として記憶させる(ステップS26)。
そして、制御部230−2は、インストールされたコンピュータプログラム120−2にて起動し、以後、コンピュータプログラム120−2に従って動作するようになる(ステップS27)。本実施形態においては、コンピュータプログラム120−2は、外部機器100−2の通信制御部130をデータ通信端末として作動させるものとなっている。
次に、コンピュータプログラム120−2に従って動作している制御部230−2は、外部機器100−2の機器固有情報111を読み出し、記憶装置250−2に記憶しておいた機器固有情報251と一致しているかの判定を行う(ステップS28)。この判定は、ステップS26とステップS27の間に、外部機器100−2が他の機器に交換されてしまった場合、他の機器が正規の機器であるか否かを判断するために行うものである。つまり、他の機器が、ステップS26以前にコンピュータ200−2に接続されていた外部機器100−2である場合は、正規の機器であると判定し、そうでない場合は正規の機器ではないと判定するようにしている。
機器固有情報111と機器固有情報251が一致していない場合(ステップS28で不一致)、今接続されている外部機器100−2は正規の機器でないものと判断し、制御部230−2の動作を終了する。この場合、コンピュータ200−2は、今接続されている外部機器100−2を使用したデータ通信を行うことは出来ないようになっている。
機器固有情報111と機器固有情報251が一致している場合(ステップS28で一致)、今接続されている外部機器100−2は正規の機器であるものと判断し、制御部230−2は、データ通信の動作を開始する(ステップS29)。
次に、図5を参照して、本実施形態の第2の動作について説明する。
図5は、第2の実施形態の動作を説明する第2のフローチャートである。なお、図5に示す動作は、コンピュータ200−2の制御部230−2の動作を示すものである。また、図5に示す動作は、コンピュータ200−2にインストールされたソフトウェア(コンピュータプログラム120−2)を、アンインストールする際の動作を示すものである。
図5において、コンピュータ200−2の制御部230−2は、記憶装置250−2に記憶しておいたインストーラプログラム113にて起動する(図5のステップS30)。
インストーラプログラム113に従って動作する制御部230−2は、コンピュータ200−2のインタフェース部290に外部機器100−2が接続されているかの判定を行う(ステップS31)。
外部機器が接続されていない場合(ステップS31でNo)、制御部230−2はその動作を終了する。すなわち、ソフトウェア(コンピュータプログラム120−2)のアンインストールは行われない。
外部機器が接続されている場合(ステップS31でYes)、制御部230−2は、外部機器100−2が記憶している機器固有情報111を読み出し、記憶装置250−2に記憶しておいた機器固有情報251と一致するかの判定を行う(ステップS32)。
機器固有情報111と機器固有情報251が一致しない場合(ステップS32でNo)、今接続されている外部機器100−2は正規の機器ではないものと判断し、制御部230−2の動作を終了する。この場合、ソフトウェア(コンピュータプログラム120−2)のアンインストールは行われない。
機器固有情報111と機器固有情報251が一致する場合(ステップS32でYes)、今接続されている外部機器100−2は正規の機器であると判断し、制御部230−2は、ソフトウェア(コンピュータプログラム120−2)のアンインストールを行う(ステップS33)。
そして、制御部230−2は、記憶装置250−2に記憶しておいた機器固有情報251を削除する(ステップS34)。
最後に、制御部230−2は、外部機器100−2のインストールカウンタ112の値を「1」だけ加算し、加算した値をインストールカウンタ112に書き込む(ステップS35)。このことは、コンピュータプログラム120−2のアンインストールを1回行うと、次にインストールできる上限の回数が1回増え、元の値に戻ることを示している。
以上説明したように、本実施形態においては、外部機器100−2が記憶しているコンピュータプログラム120−2を、コンピュータ200−2に1回インストールすると、インストールカウンタ112の値を「1」だけ減算するようになっている。また、インストールされたコンピュータプログラム120−2を、1回アンインストールすると、インストールカウンタ112の値が「1」だけ加算され、元の値に戻るようになっている。つまり、インストール及びアンインストールの作業が正規の機器を用いて、正しい手順で行われた場合には、インストールできる上限の回数は変わらないようになっている。
以上、本実施形態の動作について説明した。
以上説明したように、第2の実施形態のソフトウェアのインストール方式においては、外部機器(外部機器100−2)は、コンピュータ(コンピュータ200−2)上で動作するコンピュータプログラム(コンピュータプログラム120−2)を記憶している。また、外部機器は、前記コンピュータに前記コンピュータプログラムをインストールするインストーラプログラム(インストーラプログラム113)を記憶している。さらに、外部機器は、前記インストールの残り可能回数を記憶している(インストールカウンタ112)。また、コンピュータは、前記外部機器を接続して前記インストーラプログラムを動作させるようになっている。そして、前記インストーラプログラムは、前記残り可能回数の残存していることを検出した場合にのみ、前記コンピュータプログラムを前記コンピュータにインストールするようになっている。
また、前記インストーラプログラムは、前記コンピュータにインストールした際に接続されていた前記外部機器と同一の機器が接続されていると確認できた場合に、前記インストールした前記コンピュータプログラムをアンインストールする、ようになっている。
従って、ソフトウェアのインストール回数を許可回数以内に確実に制限することが可能となる。また、正規の外部機器が用いられた場合にだけ、ソフトウェアのアンインストールを行うことが可能となる。
[第3の実施形態]
次に、図3に示した第2の実施形態の変形例としての本発明による第3の実施形態について説明する。
図6は、本発明のソフトウェアのインストール方式の第3の実施形態を示すブロック図である。図6は、図3に示した外部機器100−2が、コンピュータプログラム120−2を記憶している点に加え、トライアル用コンピュータプログラムを記憶している点で、第2の実施形態と異なるものである。従って、図6において、図3の構成要素に対応するものは同一の参照数字または符号を付し、その説明を極力省略するものとする。
なお、上述したトライアル用コンピュータプログラムとは、コンピュータプログラム120−2をインストール出来ない場合に、コンピュータプログラム120−2に代えてインストールされるソフトウェアである。そして、トライアル用コンピュータプログラムが作動するコンピュータは、特定のサービスを提供するインターネット(Internet)上のウェブサイト(website)に接続するようになっている。
図6に示す第3の実施形態においては、外部機器100−3とコンピュータ200−3が接続されて構成されている。外部機器100−3は、コンピュータ200−3にインストールするソフトウェアを記憶している。そして、外部機器100−3は、コンピュータ200−3に前記のソフトウェアがインストールされた後は、前記のソフトウェアでコンピュータ200−3が動作することにより、コンピュータ200−3に接続されたデータ通信端末として作動するようになる。
外部機器100−3は、フラッシュメモリ部110−3と、通信制御部130を含んで構成されている。
フラッシュメモリ部110−3には、機器固有情報111、インストールカウンタ112、インストーラプログラム113−3、コンピュータプログラム120−2、トライアル用コンピュータプログラム120−3が記憶されている。
機器固有情報111とインストールカウンタ112は、第2の実施形態と同一であるため、これ以上の説明を省略するものとする。
インストーラプログラム113−3は、第2の実施形態における機能に加え、コンピュータプログラム120−2をコンピュータ200−3にインストール出来なかった場合、代わりに、トライアル用コンピュータプログラム120−3をインストールする機能を有している。
コンピュータプログラム120−2は、コンピュータ200−3にインストールするソフトウェアである。このコンピュータプログラム120−2は、第2の実施形態と同一であるため、これ以上の説明を省略するものとする。
トライアル用コンピュータプログラム120−3は、通信制御部130をコンピュータ200−3のデータ通信端末として作動させるためのソフトウェアとして構成されている。すなわち、トライアル用コンピュータプログラム120−3は、通信制御部130を作動させるためのアプリケーションプログラムとして、トライアル用通信制御アプリケーション121−3を含んでいる。また、通信制御部130のデバイスドライバとして、トライアル用通信制御ドライバ122−3も含んでいる。
なお、トライアル用コンピュータプログラム120−3は、コンピュータ200−3にインストールされ、その後、コンピュータ200−3で作動するようになる。そして、トライアル用コンピュータプログラム120−3が作動するコンピュータ200−3は、特定のサービスを提供するインターネット上のウェブサイトに接続するようになっている。
通信制御部130は、コンピュータ200−3のデータ通信端末として作動するようになっており、インタフェース部131、制御部132、無線部133を含んで構成されている。通信制御部130は、第2の実施形態と同一であるため、これ以上の説明を省略するものとする。
コンピュータ200−3は、制御部230−3と、記憶装置250−2と、インタフェース部290を含んで構成されている。
制御部230−3は、第2の実施形態における動作に加え、外部機器100−3が記憶しているトライアル用コンピュータプログラム120−3がインストールされた後、当該トライアル用コンピュータプログラム120−3に従って動作するようになっている。
記憶装置250−2とインタフェース部290は、第2の実施形態と同一であるため、これ以上の説明を省略するものとする。
次に、図7を参照して、本実施形態の動作について説明する。
図7は、第3の実施形態の動作を説明するフローチャートである。
なお、第3の実施形態における動作は、第2の実施形態と同様に、コンピュータ200−3の制御部230−3が実行する。そして、制御部230−3は、外部機器100−3の接続を確認後、インストーラプログラム113−3に従って動作するようになる。インストーラプログラム113−3は、第2の実施形態のインストーラプログラム113と、以下の点でのみ異なるものである。すなわち、インストーラプログラム113は、インストールカウンタ112の値が「0」であった場合は動作を終了するようになっていた。これに対し、インストーラプログラム113−3は、インストールカウンタ112の値が「0」であった場合、トライアル用コンピュータプログラム120−3をインストールするように動作する。従って、図7において、第2の実施形態の動作を説明する図4の構成要素に対応するものは同一の参照数字または符号を付し、その説明を極力省略するものとする。
図7において、コンピュータ200−3の制御部230−3は、先ず、コンピュータ200−3のインタフェース部290に外部機器100−3が接続されているかの判定を行う(図7のステップS20)。
外部機器が接続されていない場合(ステップS20でNo)、制御部230−3はその動作を終了する。
外部機器が接続されている場合(ステップS20でYes)、制御部230−3は、外部機器100−3に記憶されているインストーラプログラム113−3を読み込み、記憶装置250−2に記憶させる。そして、制御部230−3は、インストーラプログラム113−3にて起動し、以後、インストーラプログラム113−3に従って動作するようになる(ステップS21)。
インストーラプログラム113−3に従って動作している制御部230−3は、外部機器100−3に記憶されているコンピュータプログラム120−2が、既にコンピュータ200−3の記憶装置250−2にインストールされているかの判定を行う(ステップS22)。
コンピュータプログラム120−2が既にインストールされている場合(ステップS22でYes)、制御部230−3の動作は、第2の実施形態と同様に、インストールされたコンピュータプログラム120−2を起動する処理へ進む。
コンピュータプログラム120−2がインストールされていない場合(ステップS22でNo)、制御部230−3は、外部機器100−3のインストールカウンタ112の値が「0」であるかの判定を行う(ステップS23)。
インストールカウンタ112の値が「0」でない場合(ステップS23でNo)、コンピュータプログラム120−2をインストールできる上限の回数を超えていないため、制御部230−3は、コンピュータプログラム120−2を記憶装置250−2にインストールする(ステップS24)。そして、制御部230−3は、以後、第2の実施形態と同様に動作するようになる。従って、ステップS24以降の動作説明は省略するものとする。
一方、インストールカウンタ112の値が「0」である場合(ステップS23でYes)、コンピュータプログラム120−2をインストールできる上限の回数を超えているため、制御部230−3は、トライアル用コンピュータプログラム120−3をインストールするよう動作する。
すなわち、制御部230−3は、トライアル用コンピュータプログラム120−3を、記憶装置250−2にインストールする(ステップS50)。
そして、制御部230−3は、インストールされたトライアル用コンピュータプログラム120−3にて起動し、以後、トライアル用コンピュータプログラム120−3に従って動作するようになる(ステップS51)。本実施形態においては、トライアル用コンピュータプログラム120−3は、外部機器100−3の通信制御部130をデータ通信端末として作動させるものとなっている。
次に、トライアル用コンピュータプログラム120−3に従って動作している制御部230−3は、データ通信の動作を開始する(ステップS52)。
そして、制御部230−3は、トライアル用コンピュータプログラム120−3が指示する特定のウェブサイトに、コンピュータ200−3を接続させる(ステップS53)。
そして、制御部230−3は、ウェブサイトの提供するサービスを取得する(ステップS54)。
ここで、上述した特定のウェブサイトの一例として、外部機器100−3の機器メーカ、或いは、販売店などが開設するオンライン契約サイト、オンラインショッピングサイト、或いは、プロモーションサイトなどを挙げることができる。そして、オンライン契約サイトは、外部機器100−3の契約更新を行い、契約更新後に、例えば、外部機器100−3のインストールカウンタ112の値を、新規契約時と同じ値に設定する、等のサービスを提供する。また、オンラインショッピングサイトは、外部機器100−3やその関連機器などを販売するサービスを提供する。さらに、プロモーションサイトであれば、機器メーカ或いは販売店などの広告、広報、販売促進、等々のサービス情報の提供を行う。
以上、本実施形態の動作について説明した。
以上説明したように、第3の実施形態のソフトウェアのインストール方式においては、外部機器(外部機器100−3)は、コンピュータ(コンピュータ200−3)上で動作するコンピュータプログラム(コンピュータプログラム120−2)を記憶している。また、外部機器は、前記コンピュータに前記コンピュータプログラムをインストールするインストーラプログラム(インストーラプログラム113−3)を記憶している。さらに、外部機器は、前記インストールの残り可能回数を記憶している(インストールカウンタ112)。またさらに、前記外部機器は、前記コンピュータプログラムをインストールできない場合、代わりに前記コンピュータにインストールするトライアル用コンピュータプログラム(トライアル用コンピュータプログラム120−3)を記憶している。また、コンピュータは、前記外部機器を接続して前記インストーラプログラムを動作させるようになっている。そして、前記インストーラプログラムは、前記残り可能回数の残存していることを検出した場合にのみ、前記コンピュータプログラムを前記コンピュータにインストールするようになっている。また、前記インストーラプログラムは、前記コンピュータにインストールした際に接続されていた前記外部機器と同一の機器が接続されていると確認できた場合に、前記インストールした前記コンピュータプログラムをアンインストールする、ようになっている。
さらに、前記インストーラプログラムは、前記残り可能回数が残存していないことを検出した場合、前記コンピュータプログラムに代えて、他のプログラムを前記コンピュータにインストールするようになっている。ここで、他のプログラムとは、特定のウェブサイトに接続して所定のサービスを取得することが可能なプログラム(トライアル用コンピュータプログラム120−3)である。
従って、許可されたインストール可能回数が残存していない外部機器に関し、特定のウェブサイトに接続して、ウェブサイトが提供するサービスを取得することが可能となる。
[第4の実施形態]
次に、図3に示した第2の実施形態の変形例としての本発明による第4の実施形態について説明する。
図8は、本発明のソフトウェアのインストール方式の第4の実施形態を示すブロック図である。図8は、図3に示したコンピュータ200−2が、インストーラプログラム253とコンピュータプログラム255を記憶している点で、第2の実施形態と異なるものである。従って、図8において、図3の構成要素に対応するものは同一の参照数字または符号を付し、その説明を極力省略するものとする。
図8に示す第4の実施形態においては、外部機器100−2とコンピュータ200−4が接続されて構成されている。
外部機器100−2は、第2の実施形態と同一であり、コンピュータ200−4にインストールするソフトウェアを記憶している。また、外部機器100−2は、コンピュータ200−4に前記のソフトウェアがインストールされた後は、前記のソフトウェアでコンピュータ200−4が動作することにより、コンピュータ200−4に接続されたデータ通信端末として作動するようになる。
外部機器100−2は、上述したように、第2の実施形態と同一であるため、これ以上の説明は省略するものとする。
コンピュータ200−4は、制御部230−4と、記憶装置250−4と、インタフェース部290を含んで構成されている。
制御部230−4は、第2の実施形態における動作に加え、記憶装置250−4が記憶しているインストーラプログラム253に従って動作するようになっている。
記憶装置250−4は、第2の実施形態と同様のプログラムやデータに加え、インストーラプログラム253と、コンピュータプログラム255を記憶するようになっている。
ここで、インストーラプログラム253は、外部機器100−2が記憶しているインストーラプログラム113と同等の機能を有しており、コンピュータプログラム255を、記憶装置250−4にインストールするようになっている。
また、コンピュータプログラム255は、外部機器100−2が記憶しているコンピュータプログラム120−2と同等の機能を有するプログラムである。従って、コンピュータプログラム255は、外部機器100−2の通信制御部130をデータ通信端末として作動させるためのアプリケーションプログラムとして、通信制御アプリケーション256を含んでいる。また、通信制御部130のデバイスドライバとして、通信制御ドライバ257も含んでいる。但し、コンピュータプログラム255は、コンピュータプログラム120−2の機能向上を図った、或いは、不具合を修正した、改良版のソフトウェアとなっている。そして、コンピュータプログラム255は、外部機器100−2以外の記憶媒体、例えば、CD−ROMやDVD−ROM、或いは、USBメモリーなど、から得るようになっている。或いは、コンピュータプログラム255を、インターネット上のサーバなどからダウンロードして得るようにしてもよい。
インタフェース部290は、第2の実施形態と同一であるため、これ以上の説明を省略するものとする。
次に、図9を参照して、本実施形態の動作について説明する。
図9は、第4の実施形態の動作を説明するフローチャートである。なお、図9に示す動作は、コンピュータ200−4の制御部230−4の動作を示すものである。
ここで、前提として、図9に示す動作を開始する前に、コンピュータ200−4の記憶装置250−4には、コンピュータプログラム255が、外部機器100−2以外の記憶媒体、或いは、インターネット上のサーバ、などから取得され記憶されているものとする。
図9において、コンピュータ200−4の制御部230−4は、先ず、コンピュータ200−4のインタフェース部290に外部機器100−2が接続されているかの判定を行う(図9のステップS70)。
外部機器が接続されていない場合(ステップS70でNo)、制御部230−4はその動作を終了する。
外部機器が接続されている場合(ステップS70でYes)、制御部230−4は、記憶装置250−4に記憶されているインストーラプログラム253にて起動し、以後、インストーラプログラム253に従って動作するようになる(ステップS71)。
インストーラプログラム253に従って動作している制御部230−4は、記憶装置250−4に記憶されているコンピュータプログラム255が、既にコンピュータ200−4の記憶装置250−4にインストールされているかの判定を行う(ステップS72)。
コンピュータプログラム255が既にインストールされている場合(ステップS72でYes)、制御部230−4は、インストールされているコンピュータプログラム255のバージョン(version:版)が、記憶装置250−4に記憶されているコンピュータプログラム255のバージョンより古いかの判定を行う(ステップS73)。
インストールされているコンピュータプログラム255のバージョンが古くない場合(ステップS73でNo)、制御部230−4の動作はステップS81へ進む。
インストールされているコンピュータプログラム255のバージョンが古い場合(ステップS73でYes)、制御部230−4は、インストールされているコンピュータプログラム255をアンインストールする(ステップS74)。
そして、制御部230−4は、外部機器100−2のインストールカウンタ112の値を「1」だけ加算し、加算した値をインストールカウンタ112に書き込む(ステップS75)。
次に、制御部230−4は、記憶装置250−4に記憶してある機器固有情報251を削除する(ステップS76)。そして、ステップS78の処理へ進む。
上記のステップS72の判定で、コンピュータプログラム255がインストールされていない場合(ステップS72でNo)、制御部230−4は、外部機器100−2のインストールカウンタ112の値が「0」であるかの判定を行う(ステップS77)。
インストールカウンタ112の値が「0」である場合(ステップS77でYes)、コンピュータプログラム255をインストールできる上限の回数を超えているため、制御部230−4はその動作を終了する。従って、このとき、コンピュータプログラム255は、コンピュータ200−4にはインストールされない。
インストールカウンタ112の値が「0」でない場合(ステップS77でNo)、コンピュータプログラム255をインストールできる上限の回数を超えていないため、制御部230−4は、コンピュータプログラム255を記憶装置250−4にインストールする(ステップS78)。
そして、制御部230−4は、外部機器100−2のインストールカウンタ112の値を「1」だけ減算し、減算した値をインストールカウンタ112に書き込む(ステップS79)。
次に、制御部230−4は、外部機器100−2が記憶している機器固有情報111を読み出し、これを、コンピュータ200−4の記憶装置250−4に機器固有情報251として記憶させる(ステップS80)。
そして、制御部230−4は、インストールされたコンピュータプログラム255にて起動し、以後、コンピュータプログラム255に従って動作するようになる(ステップS81)。本実施形態においては、コンピュータプログラム255は、外部機器100−2の通信制御部130をデータ通信端末として作動させるものとなっている。
次に、コンピュータプログラム255に従って動作している制御部230−4は、外部機器100−2の機器固有情報111を読み出し、記憶装置250−4に記憶してある機器固有情報251と一致しているかの判定を行う(ステップS82)。
機器固有情報111と機器固有情報251が一致していない場合(ステップS82で不一致)、今接続されている外部機器100−2は正規の機器でないものと判断し、制御部230−4の動作を終了する。
機器固有情報111と機器固有情報251が一致している場合(ステップS82で一致)、今接続されている外部機器100−2は正規の機器であるものと判断し、制御部230−4は、データ通信の動作を開始する(ステップS83)。
以上、本発明の第4の実施形態の動作について説明した。
以上説明したように、第4の実施形態のソフトウェアのインストール方式においては、外部機器(外部機器100−2)は、コンピュータ(コンピュータ200−4)上で動作するコンピュータプログラム(コンピュータプログラム120−2)を記憶している。また、外部機器は、前記コンピュータに前記コンピュータプログラムをインストールするインストーラプログラム(インストーラプログラム113)を記憶している。さらに、外部機器は、前記インストールの残り可能回数を記憶している(インストールカウンタ112)。また、コンピュータは、前記外部機器を接続して前記インストーラプログラムを動作させるようになっている。そして、前記インストーラプログラムは、前記残り可能回数の残存していることを検出した場合にのみ、前記コンピュータプログラムを前記コンピュータにインストールするようになっている。
また、前記インストーラプログラムは、前記コンピュータにインストールした際に接続されていた前記外部機器と同一の機器が接続されていると確認できた場合に、前記インストールした前記コンピュータプログラムをアンインストールする、ようになっている。
さらに、前記コンピュータは、前記コンピュータプログラムをバージョンアップした新コンピュータプログラムを記憶している。そして、前記コンピュータは前記新コンピュータプログラムをインストールする、ようになっている。
従って、ソフトウェアのインストール回数を許可回数以内に確実に制限することが可能となる。また、正規の外部機器が用いられた場合にだけ、ソフトウェアのアンインストールを行うことが可能となる。さらに、バージョンアップされたソフトウェアを、外部機器以外の記憶媒体或いはインターネット上のサーバなどからダウンロードしてインストールすることが可能となる。
なお、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
コンピュータ上で動作するコンピュータプログラムと、前記コンピュータに前記コンピュータプログラムをインストールするインストーラプログラムと、前記インストールの残り可能回数と、を記憶する外部機器と、
前記外部機器を接続して前記インストーラプログラムを動作させるコンピュータと、を備え、
前記インストーラプログラムは、前記残り可能回数が残存していることを検出した場合にのみ、前記コンピュータプログラムを前記コンピュータにインストールする、
ことを特徴とするソフトウェアのインストール方式。
(付記2)
前記インストーラプログラムは、前記コンピュータにインストールした際に接続されていた前記外部機器と同一の機器が接続されていると確認できた場合に、前記インストールした前記コンピュータプログラムをアンインストールする、
ことを特徴とする付記1に記載のソフトウェアのインストール方式。
(付記3)
前記インストーラプログラムは、前記残り可能回数が残存していないことを検出した場合、前記コンピュータプログラムに代えて、特定のウェブサイトに接続して所定のサービスを取得することが可能なプログラムを前記コンピュータにインストールする、
ことを特徴とする付記2に記載のソフトウェアのインストール方式。
(付記4)
前記コンピュータは、前記コンピュータプログラムがバージョンアップされた際、前記バージョンアップされた新コンピュータプログラムをインストールする、
ことを特徴とする付記2に記載のソフトウェアのインストール方式。
(付記5)
コンピュータ上で動作するコンピュータプログラムと、前記コンピュータに前記コンピュータプログラムをインストールするインストーラプログラムと、前記インストールの残り可能回数と、を記憶する外部機器を前記コンピュータに接続し、
前記コンピュータ上で前記インストーラプログラムを動作させ、
前記インストーラプログラムによって、前記残り可能回数が残存していることが検出された場合にのみ、前記コンピュータプログラムを前記コンピュータにインストールする、
ことを特徴とするソフトウェアのインストール方法。
(付記6)
前記インストーラプログラムによって、前記コンピュータにインストールした際に接続されていた前記外部機器と同一の機器が接続されていると確認できた場合に、前記インストールした前記コンピュータプログラムをアンインストールする、
ことを特徴とする付記5に記載のソフトウェアのインストール方法。
(付記7)
前記インストーラプログラムによって、前記残り可能回数が残存していないことが検出された場合、前記コンピュータプログラムに代えて、特定のウェブサイトに接続して所定のサービスを取得することが可能なプログラムを前記コンピュータにインストールする、
ことを特徴とする付記6に記載のソフトウェアのインストール方法。
(付記8)
前記コンピュータは、前記コンピュータプログラムがバージョンアップされた際、前記バージョンアップされた新コンピュータプログラムをインストールする、
ことを特徴とする付記6に記載のソフトウェアのインストール方法。
(付記9)
コンピュータ上で動作するコンピュータプログラムと、
前記コンピュータに前記コンピュータプログラムをインストールするインストーラプログラムと、
前記インストールの残り可能回数と、を記憶する、
ことを特徴とする外部機器。
(付記10)
前記インストーラプログラムは、前記残り可能回数が残存していることを検出した場合にのみ、前記コンピュータプログラムを前記コンピュータにインストールする、
ことを特徴とする付記9に記載の外部機器。
(付記11)
前記インストーラプログラムは、前記コンピュータにインストールした際に接続されていた前記外部機器と同一の機器が接続されていると確認できた場合に、前記インストールした前記コンピュータプログラムをアンインストールする、
ことを特徴とする付記10に記載の外部機器。
(付記12)
前記インストーラプログラムは、前記残り可能回数が残存していないことを検出した場合、前記コンピュータプログラムに代えて、特定のウェブサイトに接続して所定のサービスを取得することが可能なプログラムを前記コンピュータにインストールする、
ことを特徴とする付記11に記載の外部機器。