説明

プログラム認証システムおよび情報処理システム

【課題】情報処理装置においてプログラムを実行することができる場所の限定が可能なプログラム認証システムおよび情報処理システムを提供する。
【解決手段】PC100にインストールされたプログラムの認証には、PC100がドングル200を使用した無線通信方式によってLAN500と接続することを必要とされる。領域Dは、PC100に挿し込まれたドングル200がLAN500と通信可能な領域に限定することができる。このことから、PC100にインストールされたプログラムの起動は、PC100に挿し込まれたドングル200がLAN500と通信可能な領域D内に位置する場合に限定できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム認証システムおよび情報処理システムに関し、特に、情報処理装置において実行されるアプリケーションプログラムの認証を行なうためのプログラム認証システム、および、当該アプリケーションプログラムを実行する情報処理装置を含む情報処理システムに関する。
【背景技術】
【0002】
従来から、パーソナルコンピュータ等の情報処理装置において、特定のユーザにのみプログラムを実行させるために、パスワードの入力が要求される場合があった。特許文献1(特開2001−209615号公報)には、ユーザによるパスワード入力のための操作を容易にするために、ジョグダイヤルの操作によってパスワードを入力できるようにした技術が開示されている。
【0003】
また、従来では、ソフトウェアを販売する際に、当該ソフトウェアを記録した記録媒体にドングルを同包させ、当該ドングルを情報処理装置に接続した状態でのみ当該ソフトウェアにかかるプログラムが実行されるような技術も汎用されていた。
【特許文献1】特開2001−209615号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、プログラムを実行できるユーザをドングルを所有するユーザに限定することはできるものの、当該プログラムを実行する場所を限定することはできなかった。
【0005】
つまり、企業が、従業員がプログラムを実行できる範囲を当該企業のオフィスに限定することを希望する場合、つまり、従業員がオフィスで利用するプログラムを家庭等では実行できないようにすることを希望する場合、従来の技術では、そのような要望に対処することはできなかった。
【0006】
本発明は係る実情に鑑み考え出されたものであり、その目的は、情報処理装置においてプログラムを実行することができる場所の限定が可能なプログラム認証システムおよび情報処理システムを提供することである。
【課題を解決するための手段】
【0007】
本発明に従ったプログラム認証システムは、プログラムをインストールされた情報処理装置と、前記情報処理装置と通信可能なサーバとを備え、前記情報処理装置は、前記サーバと無線通信方式に従って通信する通信装置と所定の情報を記憶する装置側記憶部とを含み、前記サーバは、前記プログラムの起動に必要な情報である第1の情報と、前記第1の情報に関連付けられて記憶された第2の情報とを記憶するサーバ側記憶部と、前記通信装置との間で、無線通信方式に従って通信する通信部とを含み、前記情報処理装置は、情報の入力を受け付ける入力部と、前記入力部に前記プログラムの起動を指示する情報が入力されたことに応じて、前記通信装置に、前記サーバへ、前記所定の情報を送信させる制御部とをさらに含み、前記通信部は、前記通信装置から送信された前記所定の情報を受信し、前記サーバは、前記通信部が受信した前記所定の情報が前記第2の情報と一致するか否かを判断する判断部と、前記判断部が前記所定の情報と前記第2の情報が一致すると判断した場合に、前記通信部に、前記通信装置へ、前記第1の情報を送信させる指示部とをさらに含み、前記情報処理装置は、前記通信装置が受信した前記第1の情報を使用して、前記プログラムを起動するための処理を実行するプログラム処理部をさらに含むことを特徴とする。
【0008】
また、本発明のプログラム認証システムでは、前記情報処理装置は、情報処理端末と前記情報処理端末に着脱可能に接続されるドングルとを含み、前記情報処理端末は、前記入力部、前記制御部および前記プログラム処理部を構成し、前記ドングルは、前記通信装置を構成し、前記装置側記憶部を含むことが好ましい。
【0009】
また、本発明のプログラム認証システムでは、前記プログラム処理部は、前記プログラムが起動されている期間中、所定時間ごとに、前記通信装置に、前記サーバへ、前記所定の情報を送信させ、前記判断部は、前記通信部が前記通信装置から前記所定の情報を受信するたびに、その時点で受信した前記所定の情報が前記第2の情報と一致するか否かを判断し、前記指示部は、前記判断部が前記所定の情報と前記第2の情報が一致すると判断するたびに、前記通信部に、前記通信装置へ、前記第1の情報を送信させ、前記プログラム処理部は、前記プログラムが起動されている期間中、前記所定時間ごとに、前記通信装置が前記第1の情報を受信したことを条件として、前記プログラムの起動を継続させることが好ましい。
【0010】
また、本発明のプログラム認証システムでは、前記指示部は、前記通信部に、前記通信装置へ前記第1の情報を送信させた時刻を、前記サーバ側記憶部に記憶させることが好ましい。
【0011】
また、本発明のプログラム認証システムでは、前記情報処理装置は、前記プログラムの特性を示す情報である特性情報を記憶する第3の記憶部をさらに含み、前記制御部は、前記通信装置に、前記所定の情報とともに前記特性情報を前記サーバへ送信させることが好ましい。
【0012】
また、本発明のプログラム認証システムでは、前記サーバ側記憶部は、前記第1の情報として、前記プログラムが起動された際に利用可能となる機能が異なる複数の情報を記憶し、前記通信装置は、前記所定の情報として、前記通信装置が存在する位置に応じて異なる種類の情報の中の一の情報を送信し、前記サーバ側記憶部は、前記第1の情報として記憶される前記異なる複数の情報を、前記通信装置が前記所定の情報として送信する異なる複数の情報と関連付けて記憶し、前記指示部は、前記第1の情報の中から、前記サーバ側記憶部において、前記所定の情報として前記通信装置から受信した情報の種類に関連付けられて記憶されている情報を、前記通信部に、前記通信装置へ送信させることが好ましい。
【0013】
本発明に従った情報処理システムは、実行用プログラムをインストールされた情報処理装置を制御するための制御プログラムと、前記情報処理装置を前記実行用プログラムの起動に必要な情報である第1の情報および前記第1の情報に関連付けられて記憶された第2の情報とを記憶するサーバ側記憶部を含むサーバと無線通信方式で通信させる通信装置とを備え、前記情報処理装置は、前記通信装置を制御する制御部と、前記プログラムを起動させるプログラム処理部とを含み、前記通信装置は、所定の情報を記憶する装置側記憶部を含み、前記制御プログラムは、前記情報処理装置に、前記制御部に、前記プログラムの起動を指示する情報が入力されたことに応じて、前記通信装置に、前記サーバへ、前記所定の情報を送信させるステップと、前記プログラム処理部に、前記サーバが前記所定の情報と前記第2の情報が一致すると判断した場合によって送信され、前記通信装置によって受信される、前記第1の情報を使用して、前記プログラムを起動するための処理を実行させるステップとを実行させることを特徴とする。
【0014】
また、本発明の情報処理システムでは、前記情報処理装置は、情報処理端末と前記情報処理端末に着脱可能に接続されるドングルとを含み、前記情報処理端末は、前記制御部および前記プログラム処理部を構成し、前記ドングルは、前記通信装置を構成することが好ましい。
【0015】
また、本発明の情報処理システムでは、前記制御プログラムは、前記情報処理装置に、前記プログラム処理部に、前記プログラムが起動されている期間中、所定時間ごとに、前記通信装置に、前記サーバへ、前記所定の情報を送信させるステップと、前記プログラム処理部に、前記サーバが前記所定時間ごとに前記所定の情報を受信するたびにその時点で受信した前記所定の情報が前記第2の情報と一致すると判断して送信する前記第1の情報を、前記通信装置が受信したことを条件として、前記プログラムの起動を継続させるステップとをさらに実行させることが好ましい。
【0016】
また、本発明の情報処理システムでは、前記情報処理装置は、前記プログラムの特性を示す情報である特性情報を記憶する第3の記憶部をさらに含み、前記制御プログラムは、前記情報処理装置に、前記制御部に、前記通信装置に前記所定の情報とともに前記特性情報を前記サーバへ送信させるステップをさらに実行させることが好ましい。
【0017】
また、本発明の情報処理システムでは、前記通信装置は、前記所定の情報として、前記通信装置が存在する位置に応じて異なる種類の情報の中の一の情報を送信することが好ましい。
【発明の効果】
【0018】
本発明によれば、情報処理装置は、当該情報処理装置にインストールされたプログラム(実行用プログラム)の起動に必要な情報である第1の情報を、サーバにおいて当該第1の情報と関連付けられた第2の情報と一致する所定の情報をサーバに送信することにより、当該サーバから無線通信方式による通信によって取得することになる。
【0019】
これにより、情報処理装置は、サーバと通信する通信装置が上記サーバと無線通信方式によって通信することが不可能な位置にある場合には、第1の情報を取得することができず、プログラム(実行用プログラム)を起動することができない。
【0020】
したがって、本発明によれば、情報処理装置においてプログラムを実行する場所を限定することができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明のプログラム認証システムの実施の形態について図面を参照して説明する。
【0022】
図1は、プログラム認証システムの構成を模式的に示す図である。プログラム認証システムは、PC(Personal Computer)にインストールされたプログラムの認証を行なうためのシステムである。
【0023】
本実施の形態では、上記のプログラムの認証は、サーバ300によって行なわれる。サーバ300において、当該プログラムが認証されると、PC100において当該プログラムの実行が可能となる。PC100のユーザが、当該プログラムの認証をサーバ300に要求する場合、PC100は、当該PC100に挿し込まれたドングル200の通信機能を利用して、LAN500を介し、サーバ300と接続する。LAN500は、本実施の形態におけるネットワークの一例である。ドングル200は、無線通信方式、たとえばIEEE(米国電気電子学会)802.11の諸規格に準拠したワイヤレスLAN(Local Area Network)で接続される。また、サーバ300におけるプログラムの認証には、ドングル200に記憶された情報(後述する請求用ID)が利用される。
【0024】
本実施の形態では、上記したプログラムの認証が、PC100がドングル200を使用した無線通信方式によってLAN500と接続することを必要とされる。このことから、PC100に挿し込まれたドングル200がLAN500に接続できない場所に位置している場合には、上記したプログラムの認証ができなくなる。図2において、領域Dは、ドングル200がLAN500と通信可能な領域である。以上のことから、本実施の形態では、ユーザがPC100にインストールされたプログラムの起動および継続的な使用を、PC100に挿し込まれたドングル200が領域D内に位置する場合に限定することができる。
【0025】
図3は、本実施の形態のプログラム認証システムを構成する各装置のハードウェア構成を模式的に示す図である。
【0026】
PC100は、当該PC100の動作を全体的に制御するCPU(Central Processing Unit)101を含む。また、PC100は、当該PC100において実行されるプログラムや各種設定に関するデータを記憶するHD(ハードディスク)102、CPU101のワークエリアとして機能するRAM(Random Access Memory)103、種々の情報を表示するディスプレイ104、他の機器と接続するためのインターフェイス(I/F)105、単数もしくは複数のキーおよび/またはポインティングデバイスなどを含みユーザからの操作を受付ける入力部106、およびUSB(Universal Serial Bus)機器と接続するためのUSB I/F110を含む。
【0027】
ドングル200は、主にホストシステム290と通信回路200から構成される。ホストシステム290は、当該ホストシステム290の動作を全体的に制御するCPU291を含む。また、ホストシステム290は、USBコネクタ292を含む。ドングル200は、USBコネクタ292をUSB I/F110に接続されることにより、PC100と接続される。
【0028】
また、ホストシステム290は、CPU291のワークエリアとして機能するRAM293、通信回路280とのインターフェイスとして機能するインターフェイス294、上記した請求用ID等のデータを記憶するROM(Read Only Memory)295、後述する電源回路201からホストシステム290への電力の供給のオン/オフの切換等の情報入力の操作を受付ける入力部296を含む。
【0029】
通信回路280は、ベースバンド/MAC(Media Access Control)回路250、RF(Radio Frequency)回路205、バラン204、アンテナ203、EEPROM(Electronically Erasable and Programmable Read Only Memory)206,207、電源回路201、および、クロック回路202を含む。
【0030】
クロック回路202は、ベースバンド/MAC回路250とRF回路205にクロック信号を供給する。電源回路201は、ベースバンド/MAC回路250、RF回路205およびホストシステム290に対する電力の供給を制御する。
【0031】
RF回路205は、アンテナ203を介してデータの送受信を行なう。アンテナ203とRF回路205との間に、バラン204が設けられている。
【0032】
ベースバンド/MAC回路250は、CPU251、インターフェイス252、外部バスコントローラ253、プログラムメモリ254、共有メモリ255、タイマ256、コントロールMAC部257、ADC(analog-digital converter)258、および、DAC(digital-analog converter)259を含む。
【0033】
インターフェイス252は、ホストシステム290に対するインターフェイスである。CPU251は、ホストシステム290から、データをLAN500に対して送信する指示を受けると、インターフェイス252に、ホストシステム290内のメモリ(たとえば、RAM103)に格納された当該データを取出させる。なお、ホストシステム290は、送信を指示するデータを生成し、当該データを上記メモリに格納した後、当該データの送信指示を通信回路280へ送信する。また、インターフェイス252によって取出されたデータは、LAN500に対して送信するフレームの「ユーザ・データ・ボディ部」を構成するデータとして、プログラムメモリ254に一時的に格納される。また、フレーム送信の宛先が指定された場合には、通信回路280において、フレームに、当該宛先が設定される。
【0034】
そして、CPU251は、プログラムメモリ254に格納されたデータに対してMACヘッダとFCS(Frame Check Sequence)を含む種々のデータを付加することにより、LAN500に対して送信するフレームを生成し、プログラムメモリ254に格納するとともに、共有メモリ255において当該フレームを生成した旨のフラグを立てる。
【0035】
プログラムメモリ254に格納された送信用のフレームは、コントロールMAC部257によって、DAC259へ送られた後、アナログデータに変換されて、RF回路205、バラン204、アンテナ203を介して、LAN500へと送信される。
【0036】
通信回路280において、LAN500を介して送信されてきたデータが受信される際の動作について説明する。アンテナ203およびバラン204を介してRF回路205に送られてきたフレームは、ADC258においてデジタルデータに変換された後、コントロールMAC部257に送られる。コントロールMAC部257は、デジタル信号に変換されたフレームに対して、フレーム先頭検出、時間および周波数の同期処理を行なった後、誤り訂正復号を行なう。そして、コントロールMAC部257は、さらに、当該フレームのDA311がEEPROM206に格納される当該通信回路280のMACアドレスと一致するか否かを判断し、一致すると判断すると、フレームからMACヘッダ部とFCS部を取除いた後、プログラムメモリ254に、残ったデータ(フレーム・ボディ部)を転送する。なお、一致しないと判断すると、コントロールMAC部257は、受信したフレームを破棄する。
【0037】
また、コントロールMAC部257は、受信したフレーム・ボディ部をプログラムメモリ254に格納したときに、共有メモリ255において、その旨を示すフラグをセットする。CPU251は、当該フラグがセットされたことに応じて、プログラムメモリ254に格納されたフレーム・ボディ部を、インターフェイス252を介して、ホストシステム290へ送る。
【0038】
サーバ300は、ドングル200からLAN500を介して送信されるフレームの受信およびドングル200へのLAN500を介したフレームの送信を行なう通信処理部310を含む。また、サーバ300は、当該サーバ300の動作を全体的に制御するCPU301を含む。さらに、サーバ300は、CPU301が実行するプログラムや種々の設定情報、および、後述するID参照テーブルおよび管理テーブルを記憶するHD302、CPU301のワークエリアとして機能するRAM303、情報を表示するディスプレイ304、外部の機器との接続の際にインターフェイスとして機能するI/F305、および外部からの操作を受付ける入力部306を含む。
【0039】
本実施の形態のプログラム認証システムでは、PC100にインストールされたアプリケーションプログラムの起動および継続的な実行には、起動用IDを必要とするものとする。
【0040】
サーバ300では、ドングル200のフラッシュメモリ295に記憶された請求用IDと上記した起動用IDとがID関連テーブルとして、HD302に記憶されている。表1に、ID関連テーブルの一例を模式的に示す。
【0041】
【表1】

【0042】
表1から理解されるように、ID関連テーブルでは、「A1」「A2」「A3」として例示された各請求用IDに関連付けられて、「B1」「B2」「B3」として例示される起動用IDが記憶されている。なお、表1に示された各IDは例示であって、各IDが構成される文字種や文字数は、表1に示されたものに限定されない。
【0043】
PC100のCPU101は、原則として、入力部106に起動のための操作がなされることなどの起動のための条件が成立すると、アプリケーションプログラムを起動する。そして、当該アプリケーションプログラムの終了のための操作がなされるなどの終了条件が成立するまで、アプリケーションプログラムの実行を継続させる。なお、アプリケーションプログラムの起動および継続的な実行のためには、サーバ300に記憶されている起動用IDの取得が必要とされる。ここで、起動用IDの取得も含めたアプリケーションプログラムの実行のためのCPU101が実行する処理について、当該処理のフローチャートである図4を参照して説明する。
【0044】
上記したようにアプリケーションプログラムの起動のための条件が成立すると、CPU101は、ステップS10で、上記した起動用IDを取得するための処理である起動用ID取得処理を実行して、ステップS20へ処理を進める。
【0045】
ここで、起動用ID取得処理の内容について、当該処理のサブルーチンのフローチャートを示す図5を参照して説明する。
【0046】
図5には、PC100のCPU101が起動用ID取得処理を実行する際の、PC100、ドングル200およびサーバ300における動作の内容が示されている。
【0047】
図5を参照して、起動用ID取得処理では、CPU101は、まずステップS110において、起動用ID取得要求フレームを生成して、ステップS120へ処理を進める。
【0048】
起動用ID取得要求フレームとは、サーバ300に対して、起動用IDの取得を要求する情報を含むフレームであり、当該IDを取得する要求を含むコードと、フラッシュメモリ295に記憶された請求用IDと、宛先であるサーバ300を特定する情報とを含む。当該フレームに上記したコードを含ませることは、CPU101からドングル200に対して命令される。また、CPU101は、ドングル200に対して、当該フレームに請求用IDを含めることを命令する。これにより、CPU291は、フラッシュメモリ295に記憶された請求用IDとサーバ300を特定する情報を、通信回路280へ送る。これに応じて、通信回路280では、上記したコードと、請求用IDと、サーバ300を特定する情報から特定されるサーバ300のMAC(Media Access Control)アドレスとを含むフレームを生成する。このフレームが、起動用ID取得要求フレームに相当する。
【0049】
ステップS120では、CPU101は、ドングル200に対して起動用ID取得要求フレームをサーバ300へ送信するよう指示する。これにより、ドングル200は、上記のように生成した起動用ID取得要求フレームを、LAN500を介してサーバ300へ送信する。
【0050】
サーバ300では、CPU301は、ステップSA10で、起動用ID取得要求フレームを受信したか否かを判断し、受信したと判断するとステップSA20へ処理を進める。
【0051】
ステップSA20では、CPU301は、ID関連テーブルにおいて、受信した請求用IDと一致する請求用IDが存在するか否かを判断し、そして、存在すると判断した場合には、当該請求用IDに関連付けられて記憶されている起動用IDを検索する。
【0052】
次に、CPU301は、ステップSA30において、検索結果として得られた起動用IDを含むフレームを、LAN500を介してドングル200へ送信する。
【0053】
一方、ステップSA20において、受信した請求用IDがID関連テーブルに存在しないと判断した場合、または、当該テーブルにおいてステップS10で受信した請求用IDに関連付けられた起動用IDを取得できなかった場合には、CPU301は、ドングル200に対して、起動用IDが取得できなかった旨のコード(ID取得失敗コード)を含むフレームを送信する。
【0054】
PC100では、ドングル200がサーバ300から受信したフレームに含まれる情報(起動用IDまたは上記のID取得失敗コード)を取得して、処理を図4にリターンさせる。
【0055】
なお、サーバ300では、CPU301は、ステップSA30でドングル200にフレームを送信した後、ステップSA40で、ドングル200から送信されてきた請求用IDを管理するテーブル(管理テーブル)を更新して、PC100からの起動用ID取得の要求に対応する処理を終了させる。
【0056】
サーバ300は、LAN500を介して、複数の情報処理装置からの起動用ID取得の要求に応答することができる。CPU301は、上記した管理テーブルにおいて、起動用IDの取得を要求してきた請求用IDと、当該要求を受付けた時刻(要求時刻)とを関連付けて、たとえば表2のように記憶させる。
【0057】
【表2】

【0058】
図4に戻って、ステップS10で起動用ID取得処理を実行した後、CPU101は、ステップS20で、ステップS10における起動用ID取得処理で、起動用IDが取得できたか否かを判断する。そして、CPU101は、取得できたと判断すると、ステップS30へ処理を進め、取得できなかったと判断すると、そのままアプリケーションプログラムの実行を終了させる。
【0059】
なお、ステップS20では、CPU101は、ステップS130においてサーバ300から起動用IDを受信した場合には、起動用IDが取得できたと判断する。一方、CPU101は、ステップS20において、ステップS130においてサーバ300からID取得失敗コードを含むフレームを受信した場合に、起動用IDを取得できなかったと判断する。なお、CPU101は、ステップS120においてドングル200に起動用ID取得要求フレームを送信させてからある一定の時間内にサーバ300から起動用IDを受信の送信できなかった場合に起動用IDを取得できなかったと判断するように構成されてもよい。
【0060】
ステップS30では、CPU101は、ステップS10で取得した起動用IDを使用してアプリケーションプログラムを起動する処理を実行して、ステップS40へ処理を進める。
【0061】
ここで、アプリケーションプログラムの起動に起動用IDを使用するとは、たとえば、アプリケーションプログラムがその起動にパスワードの入力を必要とするように構成された場合に、ステップS10で取得した起動用IDをステップS30でパスワードとして入力することを挙げることができる。
【0062】
ステップS40では、前回起動用ID取得処理(ステップS10または後述するステップS50)を実行してから所定時間(たとえば10分間)が経過したか否かを判断し、経過したと判断するとステップS50へ処理を進め、まだ経過していないと判断するとステップS80へ処理を進める。
【0063】
ステップS50では、CPU101は、起動用ID取得処理を実行して、ステップS60へ処理を進める。なお、ステップS50における起動用ID取得処理の内容は、図5を参照して説明した、ステップS10における処理内容と同様であるため、ここでは説明を繰返さない。
【0064】
ステップS60では、CPU101は、ステップS20と同様に、直前で実行したステップS50の起動用ID取得処理において起動用IDを取得できたか否かを判断し、できたと判断するとステップS70へ処理を進め、できなかったと判断するとステップS80へ処理を進める。
【0065】
ステップS70では、CPU101は、入力部106に対してアプリケーションプログラムを終了させるための操作がなされたなど、アプリケーションプログラムを終了させるための条件が成立したか否かを判断し、成立したと判断するとステップS80へ処理を進め、成立していないと判断するとステップS40へ処理を戻す。
【0066】
ステップS80では、CPU101は、実行中のアプリケーションプログラムを終了させるための処理を実行して、アプリケーションプログラム実行のための処理を終了させる。なお、ステップS80における処理とは、たとえば、アプリケーションプログラム実行中に変更された設定の保存や作成されたファイルの保存が挙げられる。
【0067】
以上説明した本実施の形態では、図4を参照して説明したアプリケーション実行処理において、その起動などに起動用IDを必要とされるアプリケーションプログラムにより、実行用プログラムが構成されている。そして、当該プログラムをインストールされたPC100により、情報処理装置が構成されている。なお、本実施の形態における情報処理装置とは、ドングル200を挿し込まれた状態にあるPC100を意味する。ここで、PC100は、本実施の形態における情報処理端末を構成し、ドングル200は通信装置を構成する。
【0068】
PC100のCPU101に図4および図5を参照して説明した処理を実行させるプログラムにより、制御プログラムが構成されている。なお、制御プログラムは、実行用プログラムに組込まれて構成されていてもよいし、または、PC100においてアプリケーションプログラムの実行(起動)を管理するプログラムなどとして、実行用プログラムとは別にHD102にインストールされていてもよい。
【0069】
なお、一般的傾向として、コンピュータのオペレーションシステムの一部としてさまざまなプログラムモジュールを用意しておき、本実施の形態における実行用プログラムや制御プログラムはこれらモジュールを所定の配列で必要なときに呼出して処理を進める方式が一般的である。そうした場合、本実施の形態のプログラム認証システムを実現するためのソフトウェア自体にはそうしたモジュールは含まれず、情報処理端末(PC100)でオペレーティングシステムと協働して初めてプログラム認証システムが実現することになる。しかし、一般的なプラットフォームを使用する限り、そうしたモジュールを含ませたソフトウェアを流通させる必要はなく、それらモジュールを含まないソフトウェア自体およびそれらソフトウェアを記録した記録媒体(およびそれらソフトウェアがネットワーク上を流通する場合のデータ信号)が実施の形態を構成すると考えることができる。
【0070】
また、制御プログラムは、CD−ROM(Compact Disk Read Only Memory)など、PC100に対して着脱可能な記録媒体に記録された状態で、CPU101によってI/F105を介して当該記録媒体から読出されて実行されてもよい。また、制御プログラムは、ドングル200が使用される等してLAN500を介してダウンロードされて、HD102にインストールされてもよいし、上記した記録媒体に記録された状態からI/F105を介して(ネットワークを介することなく直接)HD102にインストールされてもよい。
【0071】
本実施の形態のアプリケーション実行処理では、ステップS30でアプリケーションプログラムが起動された後、ステップS60で、ステップS50における起動用ID取得処理において起動用IDが取得できたと判断されると、そのことを条件として、アプリケーションプログラムの実行が継続される。なお、アプリケーションプログラムは、ステップS60において起動用IDが取得できたと判断された後、当該取得された起動用IDを入力(CPU101が、ドングル200が受信したフレームから取得)されたものをアプリケーションプログラムに対して入力することを条件として、当該アプリケーションの実行が継続されるように構成されていてもよい。
【0072】
また、以上説明した本実施の形態において、図5を参照して説明したサーバ300における処理の中のステップSA40では、表2に例示した管理テーブルの更新がなれる。これにより、サーバ300では、請求用IDごとに、アプリケーションプログラムを起動させた時刻および継続的に実行させた時間帯を管理することができる。これにより、どのユーザがどの時間帯に当該アプリケーションプログラムを使用したかをサーバ300の管理者は算出することができる。
【0073】
また、図5を参照して説明した処理では、PC100がドングル200にサーバ300へと送信させた起動用ID取得要求フレームには、起動用IDの取得を要求するコードとドングル200に記憶された請求用IDが含まれている。なお、このフレームには、さらに、これから起動しようとするアプリケーションプログラムのバージョン情報(プログラムの特性を示す情報)を含ませることが好ましい。これにより、当該フレームを受信したサーバ300では、当該フレームの送信を指示したPC100にインストールされているアプリケーションプログラムのバージョンが最新のものであるか否かを判断し、最新のものでない場合には、当該PC100に対して最新のバージョンにバージョンアップさせるためのプログラムを送信することができる。つまり、プログラム認証システムにおいて、各PC100にインストールされているアプリケーションプログラムのバージョンを、特にユーザに操作を要求することなく、最新のものとすることができる。
【0074】
以上説明した本実施の形態では、上記した起動(および継続的実行)に起動用IDを必要とする制御プログラムと、請求用IDを記憶するフラッシュメモリ295を備えたドングル200とにより、情報処理システムが構成されている。
【0075】
なお、本実施の形態では、PC100は、当該PC100に対して着脱可能に取付けられるドングル200の通信機能を利用して、サーバ300との間で通信を行なっている。本発明では、PC100は、少なくとも無線通信方式でサーバ300と通信できればよく、その通信機能(通信装置)は、必ずしもPC100に対して着脱可能なドングル200に備えられている必要はない。ただし、本実施の形態のように、請求用IDを記憶し通信機能を備えたドングル200がPC100に対して着脱可能に構成されることにより、PC100を個人所有としつつ、ドングル200のみを複数人で共有して使用することができる。これにより、ドングル200はアプリケーションプログラムを実行する上限のユーザの数だけユーザの数だけドングル200を用意する必要がなく、システムの構築のためのコストの低減が可能となる。
【0076】
また、本実施の形態では、アプリケーションプログラムの起動および継続的な実行の双方に起動用IDを必要としているが、本発明では、少なくとも起動の際に起動用IDが必要とされればよい。なお、継続的な実行にも起動用IDを必要とされることにより、確実に、アプリケーションプログラムの継続的な実行をドングル200がサーバ300と通信できる領域内に限定できる。ドングル200が、アプリケーションプログラムの起動時にはサーバ300と通信できる領域内に位置していたが、その後、当該領域の外へ移動した場合、PC100が起動用IDを取得できなくなることによりアプリケーションプログラムの実行を中止させることができるからである。
【0077】
また、以上説明した本実施の形態では、サーバ300は、アプリケーションプログラムをインストールされたPC100の指示によりドングル200が送信した請求用IDが正当なものであるか否か(ID参照テーブルに存在するか否か、および、起動用IDと関連付けられているか否か)により、当該アプリケーションプログラムの認証を行なう。そして、サーバ300は、認証の結果を、起動用IDまたはID取得失敗コードを送信することにより、PC100に対して通知する。なお、本実施の形態のプログラム認証システムでは、少なくとも、サーバ300が、アプリケーションプログラムをインストールされたPC100の指示によって無線通信方式で送信されてきた情報に基づいてアプリケーションプログラムの認証を行ない、その結果を無線通信方式でPC100に送信すればよい。
【0078】
また、以上説明した本実施の形態では、PC100が、ドングル200を介して、無線通信方式で、サーバ300と通信することによりアプリケーションの起動用IDを取得していた。これにより、PC100においてアプリケーションが起動可能となる領域を、PC100がドングル200を介して、無線通信方式で、サーバ300と通信できる領域に制限することができた。なお、本発明に関し、PC100(ドングル200)が存在する領域によって、PC100において利用できるアプリケーションの機能を異ならせることも可能である。このような変形例について、図6を参照して説明する。
【0079】
図6では、破線Aで示された領域Aと、破線Bで示された領域Bが示されている。領域Bは領域A内に含まれている。領域Aの方が、領域Bよりも、その外縁とLAN500との距離が長くなっている。
【0080】
ドングル200は、異なる2種類の周波数で、無線通信を行なう。図6では、2種類の無線電波が、線RX,RYで示されている。ドングル200は、線RXに対応する周波数でコードXを送信し、線RYに対応する周波数でコードYを送信する。なお、周波数が異なると、通信距離が異なる。つまり、ドングル200は、通信距離の異なる複数種類のコードを送信することになる。各コードの相対的な通信特性を表3にまとめる。
【0081】
【表3】

【0082】
表3から理解されるように、ドングル200は、コードXを、コードYよりも、低い周波数で、つまり、通信距離の長い電波で、送信される。
【0083】
サーバ300は、ドングル200から受信するコードの種類によって、異なる種類の起動用IDをドングル200に送信する。受信するコードとドングル200へ送信する起動用IDの種類の一例を表4に示す。
【0084】
【表4】

【0085】
表4から理解されるように、サーバ300は、コードXおよびコードYを受信した場合には、ドングル200へ、機能Aおよび機能Bを利用可能とする起動用IDを送信し、コードXのみを受信した場合には、機能Aのみを利用可能とする起動用IDを送信する。なお、機能Aの一例としてはPC100またはサーバ300に保存されている文書の閲覧を挙げることができ、機能Bの一例としてはそのような文書に対して上書き保存を挙げることができるが、機能Aおよび機能Bはこれらに限定されない。
【0086】
再度図6を参照して、ドングル200は、領域B内ではLAN500に対して線RXおよび線RYの双方の周波数で無線通信が可能であり、領域B外であって領域A内ではLAN500に対して線RXの周波数では無線通信が可能であるが線RYの周波数では無線通信が不可能であり、そして、領域A外ではLAN500に対して線RXおよび線RYの双方の周波数での無線通信が不可能であるとする。なお、ドングル200は、領域B内、領域B外であって領域A内、領域A外の順に、LAN500との通信距離が長くなっていくものとする。
【0087】
ドングル200は、領域B内に位置すれば、コードAおよびコードBの双方をサーバ300に送信でき、領域B外であって領域A内に位置すれば、コードAのみをサーバ300に送信できる。これにより、PC100では、ユーザは、ドングル200が領域B内に位置すれば、サーバ300から送信される起動用IDで起動されるアプリケーションの機能として機能Aおよび機能Bの双方を利用でき、一方、ドングル200が領域B外であって領域A内に位置すれば、サーバ300から送信される起動用IDで起動されるアプリケーションの機能として機能Aのみを利用できる(表4参照)。
【0088】
なお、このような変形例では、サーバ300では、機能Aおよび機能Bを利用可能とする起動用IDと機能Aのみを利用可能とする起動用IDという、複数種類の起動用IDが記憶されており、そして、ドングル200から受信したコードの種類に応じて、当該複数種類の起動用IDの中のどれをドングル200に送信するかが、たとえば表4に基づいて決定される。
【0089】
以上、図6ならびに表3および表4を参照して説明した変形例では、ドングル200がLAN500から離れるほどPC100で利用できる機能が少なくなっていたが、逆に、ドングル200がLAN500から離れるほどPC100で利用できる機能が多くなるようにシステムが構成されても良い。
【0090】
今回開示された各実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、各実施の形態に開示された技術は、可能な限り組み合わされて実現されることが意図される。
【図面の簡単な説明】
【0091】
【図1】本発明のプログラム認証システムの全体構成を模式的に示す図である。
【図2】図1に示したプログラム認証システムの効果を説明するための図である。
【図3】図1に示されたPC、ドングル、およびサーバのハードウェア構成を模式的に示す図である。
【図4】図3のPCのCPUが実行するアプリケーション実行処理のフローチャートである。
【図5】図4の起動用ID取得処理のサブルーチン、および、それとともに図1に示されたプログラム認証システムにおいて実行される処理のフローチャートである。
【図6】図1に示されたプログラム認証システムの変形例を説明するための図である。
【符号の説明】
【0092】
100 サーバ、101,251,291,301 CPU、102,302 HD、103,303 RAM、104,304 ディスプレイ、105,305 I/F、106,296,306 入力部、110 USB I/F、200 ドングル、201 電源回路、202 クロック回路、203 アンテナ、204 バラン、205 RF回路、206,207 EEPROM、250 ベースバンド/MAC回路、252,294 インターフェイス、253 外部バスコントローラ、254 プログラムメモリ、255 共有メモリ、256 タイマ、257 コントロールMAC部、258 ADC、259 DAC、280 通信回路、290 ホストシステム、292 USBコネクタ、295 フラッシュメモリ、300 サーバ、500 LAN。

【特許請求の範囲】
【請求項1】
プログラムをインストールされた情報処理装置と、前記情報処理装置と通信可能なサーバとを備え、
前記情報処理装置は、前記サーバと無線通信方式に従って通信する通信装置と所定の情報を記憶する装置側記憶部とを含み、
前記サーバは、
前記プログラムの起動に必要な情報である第1の情報と、前記第1の情報に関連付けられて記憶された第2の情報とを記憶するサーバ側記憶部と、
前記通信装置との間で、無線通信方式に従って通信する通信部とを含み、
前記情報処理装置は、
情報の入力を受け付ける入力部と、
前記入力部に前記プログラムの起動を指示する情報が入力されたことに応じて、前記通信装置に、前記サーバへ、前記所定の情報を送信させる制御部とをさらに含み、
前記通信部は、前記通信装置から送信された前記所定の情報を受信し、
前記サーバは、
前記通信部が受信した前記所定の情報が前記第2の情報と一致するか否かを判断する判断部と、
前記判断部が前記所定の情報と前記第2の情報が一致すると判断した場合に、前記通信部に、前記通信装置へ、前記第1の情報を送信させる指示部とをさらに含み、
前記情報処理装置は、
前記通信装置が受信した前記第1の情報を使用して、前記プログラムを起動するための処理を実行するプログラム処理部をさらに含む、プログラム認証システム。
【請求項2】
前記情報処理装置は、情報処理端末と前記情報処理端末に着脱可能に接続されるドングルとを含み、
前記情報処理端末は、前記入力部、前記制御部および前記プログラム処理部を構成し、
前記ドングルは、前記通信装置を構成し、前記装置側記憶部を含む、請求項1に記載のプログラム認証システム。
【請求項3】
前記プログラム処理部は、前記プログラムが起動されている期間中、所定時間ごとに、前記通信装置に、前記サーバへ、前記所定の情報を送信させ、
前記判断部は、前記通信部が前記通信装置から前記所定の情報を受信するたびに、その時点で受信した前記所定の情報が前記第2の情報と一致するか否かを判断し、
前記指示部は、前記判断部が前記所定の情報と前記第2の情報が一致すると判断するたびに、前記通信部に、前記通信装置へ、前記第1の情報を送信させ、
前記プログラム処理部は、前記プログラムが起動されている期間中、前記所定時間ごとに、前記通信装置が前記第1の情報を受信したことを条件として、前記プログラムの起動を継続させる、請求項1または請求項2に記載のプログラム認証システム。
【請求項4】
前記指示部は、前記通信部に、前記通信装置へ前記第1の情報を送信させた時刻を、前記サーバ側記憶部に記憶させる、請求項1〜請求項3のいずれかに記載のプログラム認証システム。
【請求項5】
前記情報処理装置は、前記プログラムの特性を示す情報である特性情報を記憶する第3の記憶部をさらに含み、
前記制御部は、前記通信装置に、前記所定の情報とともに前記特性情報を前記サーバへ送信させる、請求項1〜請求項4のいずれかに記載のプログラム認証システム。
【請求項6】
前記サーバ側記憶部は、前記第1の情報として、前記プログラムが起動された際に利用可能となる機能が異なる複数の情報を記憶し、
前記通信装置は、前記所定の情報として、前記通信装置が存在する位置に応じて異なる種類の情報の中の一の情報を送信し、
前記サーバ側記憶部は、前記第1の情報として記憶される前記異なる複数の情報を、前記通信装置が前記所定の情報として送信する異なる複数の情報と関連付けて記憶し、
前記指示部は、前記第1の情報の中から、前記サーバ側記憶部において、前記所定の情報として前記通信装置から受信した情報の種類に関連付けられて記憶されている情報を、前記通信部に、前記通信装置へ送信させる、請求項1〜請求項5のいずれかに記載のプログラム認証システム。
【請求項7】
実行用プログラムをインストールされた情報処理装置を制御するための制御プログラムと、前記情報処理装置を前記実行用プログラムの起動に必要な情報である第1の情報および前記第1の情報に関連付けられて記憶された第2の情報とを記憶するサーバ側記憶部を含むサーバと無線通信方式で通信させる通信装置とを備え、
前記情報処理装置は、前記通信装置を制御する制御部と、前記プログラムを起動させるプログラム処理部とを含み、
前記通信装置は、所定の情報を記憶する装置側記憶部を含み、
前記制御プログラムは、前記情報処理装置に、
前記制御部に、前記プログラムの起動を指示する情報が入力されたことに応じて、前記通信装置に、前記サーバへ、前記所定の情報を送信させるステップと、
前記プログラム処理部に、前記サーバが前記所定の情報と前記第2の情報が一致すると判断した場合によって送信され、前記通信装置によって受信される、前記第1の情報を使用して、前記プログラムを起動するための処理を実行させるステップとを実行させる、情報処理システム。
【請求項8】
前記情報処理装置は、情報処理端末と前記情報処理端末に着脱可能に接続されるドングルとを含み、
前記情報処理端末は、前記制御部および前記プログラム処理部を構成し、
前記ドングルは、前記通信装置を構成する、請求項7に記載の情報処理システム。
【請求項9】
前記制御プログラムは、前記情報処理装置に、
前記プログラム処理部に、前記プログラムが起動されている期間中、所定時間ごとに、前記通信装置に、前記サーバへ、前記所定の情報を送信させるステップと、
前記プログラム処理部に、前記サーバが前記所定時間ごとに前記所定の情報を受信するたびにその時点で受信した前記所定の情報が前記第2の情報と一致すると判断して送信する前記第1の情報を、前記通信装置が受信したことを条件として、前記プログラムの起動を継続させるステップとをさらに実行させる、請求項7または請求項8に記載の情報処理システム。
【請求項10】
前記情報処理装置は、前記プログラムの特性を示す情報である特性情報を記憶する第3の記憶部をさらに含み、
前記制御プログラムは、前記情報処理装置に、
前記制御部に、前記通信装置に前記所定の情報とともに前記特性情報を前記サーバへ送信させるステップをさらに実行させる、請求項7〜請求項9のいずれかに記載の情報処理システム。
【請求項11】
前記通信装置は、前記所定の情報として、前記通信装置が存在する位置に応じて異なる種類の情報の中の一の情報を送信する、請求項7〜請求項10のいずれかに記載の情報処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2009−175949(P2009−175949A)
【公開日】平成21年8月6日(2009.8.6)
【国際特許分類】
【出願番号】特願2008−12701(P2008−12701)
【出願日】平成20年1月23日(2008.1.23)
【出願人】(000116024)ローム株式会社 (3,539)
【Fターム(参考)】