(57)【特許請求の範囲】
【請求項１】
プログラムをインストールされた情報処理装置と、前記情報処理装置と通信可能なサーバとを備え、
前記情報処理装置は、前記サーバと無線通信方式に従って通信する通信装置と所定の情報を記憶する装置側記憶部とを含み、
前記サーバは、
前記プログラムの起動に必要な情報である第１の情報と、前記第１の情報に関連付けられて記憶された第２の情報とを記憶するサーバ側記憶部と、
前記通信装置との間で、無線通信方式に従って通信する通信部とを含み、
前記情報処理装置は、
情報の入力を受け付ける入力部と、
前記入力部に前記プログラムの起動を指示する情報が入力されたことに応じて、前記通信装置に、前記サーバへ、前記所定の情報を送信させる制御部とをさらに含み、
前記通信部は、前記通信装置から送信された前記所定の情報を受信し、
前記サーバは、
前記通信部が受信した前記所定の情報が前記第２の情報と一致するか否かを判断する判断部と、
前記判断部が前記所定の情報と前記第２の情報が一致すると判断した場合に、前記通信部に、前記通信装置へ、前記第１の情報を送信させる指示部とをさらに含み、
前記情報処理装置は、
前記通信装置が受信した前記第１の情報を使用して、前記プログラムを起動するための処理を実行するプログラム処理部をさらに含み、
前記制御部は、前記通信装置に、前記情報処理装置と前記サーバとの距離に応じて前記通信部が受信する内容が異なるように前記所定の情報を送信させ、
前記指示部は、前記通信部に、前記通信部が受信した前記所定の情報の内容に応じて２以上の種類の前記第１の情報のうち少なくとも１種類の前記第１の情報を送信させ、
前記２以上の種類の前記第１の情報は、アプリケーションにおいて利用できる内容が互いに異なる情報であって、前記情報処理装置と前記サーバとの距離に従って、アプリケーションにおいて利用できる内容が異なるように、前記プログラム処理部に前記プログラムを起動させる情報である、プログラム認証システム。
【請求項２】
前記情報処理装置は、情報処理端末と前記情報処理端末に着脱可能に接続されるドングルとを含み、
前記情報処理端末は、前記入力部、前記制御部および前記プログラム処理部を構成し、
前記ドングルは、前記通信装置を構成し、前記装置側記憶部を含む、請求項１に記載のプログラム認証システム。
【請求項３】
前記プログラム処理部は、前記プログラムが起動されている期間中、所定時間ごとに、前記通信装置に、前記サーバへ、前記所定の情報を送信させ、
前記判断部は、前記通信部が前記通信装置から前記所定の情報を受信するたびに、その時点で受信した前記所定の情報が前記第２の情報と一致するか否かを判断し、
前記指示部は、前記判断部が前記所定の情報と前記第２の情報が一致すると判断するたびに、前記通信部に、前記通信装置へ、前記第１の情報を送信させ、
前記プログラム処理部は、前記プログラムが起動されている期間中、前記所定時間ごとに、前記通信装置が前記第１の情報を受信したことを条件として、前記プログラムの起動を継続させる、請求項１または請求項２に記載のプログラム認証システム。
【請求項４】
前記指示部は、前記通信部に、前記通信装置へ前記第１の情報を送信させた時刻を、前記サーバ側記憶部に記憶させる、請求項１〜請求項３のいずれかに記載のプログラム認証システム。
【請求項５】
前記情報処理装置は、前記プログラムの特性を示す情報である特性情報を記憶する第３の記憶部をさらに含み、
前記制御部は、前記通信装置に、前記所定の情報とともに前記特性情報を前記サーバへ送信させる、請求項１〜請求項４のいずれかに記載のプログラム認証システム。
【請求項６】
前記２以上の種類の前記第１の情報は、アプリケーションにおいて利用できる内容が互いに異なる情報であって、前記情報処理装置と前記サーバとの距離が長くなるほどアプリケーションにおいて利用できる内容が少なくなるように前記プログラム処理部に前記プログラムを起動させる、２以上の種類の情報である、請求項１〜請求項５のいずれかに記載のプログラム認証システム。
【請求項７】
実行用プログラムをインストールされた情報処理装置を制御するための制御プログラムと、前記情報処理装置を前記実行用プログラムの起動に必要な情報である第１の情報および前記第１の情報に関連付けられて記憶された第２の情報とを記憶するサーバ側記憶部を含むサーバと無線通信方式で通信させる通信装置とを備え、
前記情報処理装置は、前記通信装置を制御する制御部と、前記実行用プログラムを起動させるプログラム処理部とを含み、
前記通信装置は、所定の情報を記憶する装置側記憶部を含み、
前記制御プログラムは、前記情報処理装置に、
前記制御部に、前記実行用プログラムの起動を指示する情報が入力されたことに応じて、前記通信装置に、前記サーバへ、前記所定の情報を送信させるステップと、
前記プログラム処理部に、前記サーバが前記所定の情報と前記第２の情報が一致すると判断した場合によって送信され、前記通信装置によって受信される、前記第１の情報を使用して、前記実行用プログラムを起動するための処理を実行させるステップとを実行させ、
前記所定の情報を送信させるステップは、前記通信装置に、前記情報処理装置と前記サーバとの距離に応じて前記サーバが受信する内容が異なるように前記所定の情報を送信させることを含み、
前記第１の情報は、前記所定の情報の内容に応じて前記サーバによって送信される、２以上の種類の前記第１の情報のうち少なくとも１種類の前記第１の情報であり、
前記２以上の種類の前記第１の情報は、アプリケーションにおいて利用できる内容が互いに異なる情報であって、前記情報処理装置と前記サーバとの距離に従って、アプリケーションにおいて利用できる内容が異なるように、前記プログラム処理部に前記実行用プログラムを起動させる情報である、情報処理システム。
【請求項８】
前記情報処理装置は、情報処理端末と前記情報処理端末に着脱可能に接続されるドングルとを含み、
前記情報処理端末は、前記制御部および前記プログラム処理部を構成し、
前記ドングルは、前記通信装置を構成する、請求項７に記載の情報処理システム。
【請求項９】
前記制御プログラムは、前記情報処理装置に、
前記プログラム処理部に、前記実行用プログラムが起動されている期間中、所定時間ごとに、前記通信装置に、前記サーバへ、前記所定の情報を送信させるステップと、
前記プログラム処理部に、前記サーバが前記所定時間ごとに前記所定の情報を受信するたびにその時点で受信した前記所定の情報が前記第２の情報と一致すると判断して送信する前記第１の情報を、前記通信装置が受信したことを条件として、前記実行用プログラムの起動を継続させるステップとをさらに実行させる、請求項７または請求項８に記載の情報処理システム。
【請求項１０】
前記情報処理装置は、前記実行用プログラムの特性を示す情報である特性情報を記憶する第３の記憶部をさらに含み、
前記制御プログラムは、前記情報処理装置に、
前記制御部に、前記通信装置に前記所定の情報とともに前記特性情報を前記サーバへ送信させるステップをさらに実行させる、請求項７〜請求項９のいずれかに記載の情報処理システム。
【請求項１１】
前記２以上の種類の前記第１の情報は、前記実行用プログラムにおいて利用できる内容が互いに異なる情報であって、前記情報処理装置と前記サーバとの距離が長くなるほど前記実行用プログラムにおいて利用できる内容が少なくなるように前記プログラム処理部に前記実行用プログラムを起動させる、２以上の種類の情報である、請求項７〜請求項１０のいずれかに記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム認証システムおよび情報処理システムに関し、特に、情報処理装置において実行されるアプリケーションプログラムの認証を行なうためのプログラム認証システム、および、当該アプリケーションプログラムを実行する情報処理装置を含む情報処理システムに関する。
【背景技術】
【０００２】
従来から、パーソナルコンピュータ等の情報処理装置において、特定のユーザにのみプログラムを実行させるために、パスワードの入力が要求される場合があった。特許文献１（特開２００１−２０９６１５号公報）には、ユーザによるパスワード入力のための操作を容易にするために、ジョグダイヤルの操作によってパスワードを入力できるようにした技術が開示されている。
【０００３】
また、従来では、ソフトウェアを販売する際に、当該ソフトウェアを記録した記録媒体にドングルを同包させ、当該ドングルを情報処理装置に接続した状態でのみ当該ソフトウェアにかかるプログラムが実行されるような技術も汎用されていた。
【特許文献１】特開２００１−２０９６１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、プログラムを実行できるユーザをドングルを所有するユーザに限定することはできるものの、当該プログラムを実行する場所を限定することはできなかった。
【０００５】
つまり、企業が、従業員がプログラムを実行できる範囲を当該企業のオフィスに限定することを希望する場合、つまり、従業員がオフィスで利用するプログラムを家庭等では実行できないようにすることを希望する場合、従来の技術では、そのような要望に対処することはできなかった。
【０００６】
本発明は係る実情に鑑み考え出されたものであり、その目的は、情報処理装置においてプログラムを実行することができる場所の限定が可能なプログラム認証システムおよび情報処理システムを提供することである。
【課題を解決するための手段】
【０００７】
本発明に従ったプログラム認証システムは、プログラムをインストールされた情報処理装置と、前記情報処理装置と通信可能なサーバとを備え、前記情報処理装置は、前記サーバと無線通信方式に従って通信する通信装置と所定の情報を記憶する装置側記憶部とを含み、前記サーバは、前記プログラムの起動に必要な情報である第１の情報と、前記第１の情報に関連付けられて記憶された第２の情報とを記憶するサーバ側記憶部と、前記通信装置との間で、無線通信方式に従って通信する通信部とを含み、前記情報処理装置は、情報の入力を受け付ける入力部と、前記入力部に前記プログラムの起動を指示する情報が入力されたことに応じて、前記通信装置に、前記サーバへ、前記所定の情報を送信させる制御部とをさらに含み、前記通信部は、前記通信装置から送信された前記所定の情報を受信し、前記サーバは、前記通信部が受信した前記所定の情報が前記第２の情報と一致するか否かを判断する判断部と、前記判断部が前記所定の情報と前記第２の情報が一致すると判断した場合に、前記通信部に、前記通信装置へ、前記第１の情報を送信させる指示部とをさらに含み、前記情報処理装置は、前記通信装置が受信した前記第１の情報を使用して、前記プログラムを起動するための処理を実行するプログラム処理部をさらに含み、前記制御部は、前記通信装置に、前記情報処理装置と前記サーバとの距離に応じて前記通信部が受信する内容が異なるように前記所定の情報を送信させ、前記指示部は、前記通信部に、前記通信部が受信した前記所定の情報の内容に応じて２以上の種類の前記第１の情報のうち少なくとも１種類の前記第１の情報を送信させ、前記２以上の種類の前記第１の情報は、アプリケーションにおいて利用できる内容が互いに異なる情報であって、前記情報処理装置と前記サーバとの距離に従って、アプリケーションにおいて利用できる内容が異なるように、前記プログラム処理部に前記プログラムを起動させる情報であることを特徴とする。
【０００８】
また、本発明のプログラム認証システムでは、前記情報処理装置は、情報処理端末と前記情報処理端末に着脱可能に接続されるドングルとを含み、前記情報処理端末は、前記入力部、前記制御部および前記プログラム処理部を構成し、前記ドングルは、前記通信装置を構成し、前記装置側記憶部を含むことが好ましい。
【０００９】
また、本発明のプログラム認証システムでは、前記プログラム処理部は、前記プログラムが起動されている期間中、所定時間ごとに、前記通信装置に、前記サーバへ、前記所定の情報を送信させ、前記判断部は、前記通信部が前記通信装置から前記所定の情報を受信するたびに、その時点で受信した前記所定の情報が前記第２の情報と一致するか否かを判断し、前記指示部は、前記判断部が前記所定の情報と前記第２の情報が一致すると判断するたびに、前記通信部に、前記通信装置へ、前記第１の情報を送信させ、前記プログラム処理部は、前記プログラムが起動されている期間中、前記所定時間ごとに、前記通信装置が前記第１の情報を受信したことを条件として、前記プログラムの起動を継続させることが好ましい。
【００１０】
また、本発明のプログラム認証システムでは、前記指示部は、前記通信部に、前記通信装置へ前記第１の情報を送信させた時刻を、前記サーバ側記憶部に記憶させることが好ましい。
【００１１】
また、本発明のプログラム認証システムでは、前記情報処理装置は、前記プログラムの特性を示す情報である特性情報を記憶する第３の記憶部をさらに含み、前記制御部は、前記通信装置に、前記所定の情報とともに前記特性情報を前記サーバへ送信させることが好ましい。
【００１２】
また、本発明のプログラム認証システムでは、前記２以上の種類の前記第１の情報は、アプリケーションにおいて利用できる内容が互いに異なる情報であって、前記情報処理装置と前記サーバとの距離が長くなるほどアプリケーションにおいて利用できる内容が少なくなるように前記プログラム処理部に前記プログラムを起動させる、２以上の種類の情報であることが好ましい。また、前記アプリケーションにおいて利用できる内容が異なることは、たとえば、アプリケーションの機能の数が異なることである。
【００１３】
本発明に従った情報処理システムは、実行用プログラムをインストールされた情報処理装置を制御するための制御プログラムと、前記情報処理装置を前記実行用プログラムの起動に必要な情報である第１の情報および前記第１の情報に関連付けられて記憶された第２の情報とを記憶するサーバ側記憶部を含むサーバと無線通信方式で通信させる通信装置とを備え、前記情報処理装置は、前記通信装置を制御する制御部と、前記実行用プログラムを起動させるプログラム処理部とを含み、前記通信装置は、所定の情報を記憶する装置側記憶部を含み、前記制御プログラムは、前記情報処理装置に、前記制御部に、前記実行用プログラムの起動を指示する情報が入力されたことに応じて、前記通信装置に、前記サーバへ、前記所定の情報を送信させるステップと、前記プログラム処理部に、前記サーバが前記所定の情報と前記第２の情報が一致すると判断した場合によって送信され、前記通信装置によって受信される、前記第１の情報を使用して、前記実行用プログラムを起動するための処理を実行させるステップとを実行させ、前記所定の情報を送信させるステップは、前記通信装置に、前記情報処理装置と前記サーバとの距離に応じて前記サーバが受信する内容が異なるように前記所定の情報を送信させることを含み、前記第１の情報は、前記所定の情報の内容に応じて前記サーバによって送信される、２以上の種類の前記第１の情報のうち少なくとも１種類の前記第１の情報であり、前記２以上の種類の前記第１の情報は、アプリケーションにおいて利用できる内容が互いに異なる情報であって、前記情報処理装置と前記サーバとの距離に従って、アプリケーションにおいて利用できる内容が異なるように、前記プログラム処理部に前記実行用プログラムを起動させる情報であることを特徴とする。
【００１４】
また、本発明の情報処理システムでは、前記情報処理装置は、情報処理端末と前記情報処理端末に着脱可能に接続されるドングルとを含み、前記情報処理端末は、前記制御部および前記プログラム処理部を構成し、前記ドングルは、前記通信装置を構成することが好ましい。
【００１５】
また、本発明の情報処理システムでは、前記制御プログラムは、前記情報処理装置に、前記プログラム処理部に、前記実行用プログラムが起動されている期間中、所定時間ごとに、前記通信装置に、前記サーバへ、前記所定の情報を送信させるステップと、前記プログラム処理部に、前記サーバが前記所定時間ごとに前記所定の情報を受信するたびにその時点で受信した前記所定の情報が前記第２の情報と一致すると判断して送信する前記第１の情報を、前記通信装置が受信したことを条件として、前記実行用プログラムの起動を継続させるステップとをさらに実行させることが好ましい。
【００１６】
また、本発明の情報処理システムでは、前記情報処理装置は、前記実行用プログラムの特性を示す情報である特性情報を記憶する第３の記憶部をさらに含み、前記制御プログラムは、前記情報処理装置に、前記制御部に、前記通信装置に前記所定の情報とともに前記特性情報を前記サーバへ送信させるステップをさらに実行させることが好ましい。
【００１７】
また、本発明の情報処理システムでは、前記２以上の種類の前記第１の情報は、前記実行用プログラムにおいて利用できる内容が互いに異なる情報であって、前記情報処理装置と前記サーバとの距離が長くなるほど前記実行用プログラムにおいて利用できる内容が少なくなるように前記プログラム処理部に前記実行用プログラムを起動させる、２以上の種類の情報であることが好ましい。また、前記アプリケーションにおいて利用できる内容が異なることは、たとえば、アプリケーションの機能の数が異なることである。
【発明の効果】
【００１８】
本発明によれば、情報処理装置は、当該情報処理装置にインストールされたプログラム（実行用プログラム）の起動に必要な情報である第１の情報を、サーバにおいて当該第１の情報と関連付けられた第２の情報と一致する所定の情報をサーバに送信することにより、当該サーバから無線通信方式による通信によって取得することになる。
【００１９】
これにより、情報処理装置は、サーバと通信する通信装置が上記サーバと無線通信方式によって通信することが不可能な位置にある場合には、第１の情報を取得することができず、プログラム（実行用プログラム）を起動することができない。
【００２０】
したがって、本発明によれば、情報処理装置においてプログラムを実行する場所を限定することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明のプログラム認証システムの実施の形態について図面を参照して説明する。
【００２２】
図１は、プログラム認証システムの構成を模式的に示す図である。プログラム認証システムは、ＰＣ（Personal Computer）にインストールされたプログラムの認証を行なうためのシステムである。
【００２３】
本実施の形態では、上記のプログラムの認証は、サーバ３００によって行なわれる。サーバ３００において、当該プログラムが認証されると、ＰＣ１００において当該プログラムの実行が可能となる。ＰＣ１００のユーザが、当該プログラムの認証をサーバ３００に要求する場合、ＰＣ１００は、当該ＰＣ１００に挿し込まれたドングル２００の通信機能を利用して、ＬＡＮ５００を介し、サーバ３００と接続する。ＬＡＮ５００は、本実施の形態におけるネットワークの一例である。ドングル２００は、無線通信方式、たとえばＩＥＥＥ(米国電気電子学会)８０２．１１の諸規格に準拠したワイヤレスＬＡＮ（Local Area Network）で接続される。また、サーバ３００におけるプログラムの認証には、ドングル２００に記憶された情報（後述する請求用ＩＤ）が利用される。
【００２４】
本実施の形態では、上記したプログラムの認証が、ＰＣ１００がドングル２００を使用した無線通信方式によってＬＡＮ５００と接続することを必要とされる。このことから、ＰＣ１００に挿し込まれたドングル２００がＬＡＮ５００に接続できない場所に位置している場合には、上記したプログラムの認証ができなくなる。図２において、領域Ｄは、ドングル２００がＬＡＮ５００と通信可能な領域である。以上のことから、本実施の形態では、ユーザがＰＣ１００にインストールされたプログラムの起動および継続的な使用を、ＰＣ１００に挿し込まれたドングル２００が領域Ｄ内に位置する場合に限定することができる。
【００２５】
図３は、本実施の形態のプログラム認証システムを構成する各装置のハードウェア構成を模式的に示す図である。
【００２６】
ＰＣ１００は、当該ＰＣ１００の動作を全体的に制御するＣＰＵ（Central Processing Unit）１０１を含む。また、ＰＣ１００は、当該ＰＣ１００において実行されるプログラムや各種設定に関するデータを記憶するＨＤ（ハードディスク）１０２、ＣＰＵ１０１のワークエリアとして機能するＲＡＭ（Random Access Memory）１０３、種々の情報を表示するディスプレイ１０４、他の機器と接続するためのインターフェイス（Ｉ／Ｆ）１０５、単数もしくは複数のキーおよび／またはポインティングデバイスなどを含みユーザからの操作を受付ける入力部１０６、およびＵＳＢ（Universal Serial Bus）機器と接続するためのＵＳＢ  Ｉ／Ｆ１１０を含む。
【００２７】
ドングル２００は、主にホストシステム２９０と通信回路２００から構成される。ホストシステム２９０は、当該ホストシステム２９０の動作を全体的に制御するＣＰＵ２９１を含む。また、ホストシステム２９０は、ＵＳＢコネクタ２９２を含む。ドングル２００は、ＵＳＢコネクタ２９２をＵＳＢ  Ｉ／Ｆ１１０に接続されることにより、ＰＣ１００と接続される。
【００２８】
また、ホストシステム２９０は、ＣＰＵ２９１のワークエリアとして機能するＲＡＭ２９３、通信回路２８０とのインターフェイスとして機能するインターフェイス２９４、上記した請求用ＩＤ等のデータを記憶するＲＯＭ（Read Only Memory）２９５、後述する電源回路２０１からホストシステム２９０への電力の供給のオン／オフの切換等の情報入力の操作を受付ける入力部２９６を含む。
【００２９】
通信回路２８０は、ベースバンド／ＭＡＣ（Media Access Control）回路２５０、ＲＦ（Radio Frequency）回路２０５、バラン２０４、アンテナ２０３、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）２０６，２０７、電源回路２０１、および、クロック回路２０２を含む。
【００３０】
クロック回路２０２は、ベースバンド／ＭＡＣ回路２５０とＲＦ回路２０５にクロック信号を供給する。電源回路２０１は、ベースバンド／ＭＡＣ回路２５０、ＲＦ回路２０５およびホストシステム２９０に対する電力の供給を制御する。
【００３１】
ＲＦ回路２０５は、アンテナ２０３を介してデータの送受信を行なう。アンテナ２０３とＲＦ回路２０５との間に、バラン２０４が設けられている。
【００３２】
ベースバンド／ＭＡＣ回路２５０は、ＣＰＵ２５１、インターフェイス２５２、外部バスコントローラ２５３、プログラムメモリ２５４、共有メモリ２５５、タイマ２５６、コントロールＭＡＣ部２５７、ＡＤＣ（analog-digital converter）２５８、および、ＤＡＣ（digital-analog converter）２５９を含む。
【００３３】
インターフェイス２５２は、ホストシステム２９０に対するインターフェイスである。ＣＰＵ２５１は、ホストシステム２９０から、データをＬＡＮ５００に対して送信する指示を受けると、インターフェイス２５２に、ホストシステム２９０内のメモリ（たとえば、ＲＡＭ１０３）に格納された当該データを取出させる。なお、ホストシステム２９０は、送信を指示するデータを生成し、当該データを上記メモリに格納した後、当該データの送信指示を通信回路２８０へ送信する。また、インターフェイス２５２によって取出されたデータは、ＬＡＮ５００に対して送信するフレームの「ユーザ・データ・ボディ部」を構成するデータとして、プログラムメモリ２５４に一時的に格納される。また、フレーム送信の宛先が指定された場合には、通信回路２８０において、フレームに、当該宛先が設定される。
【００３４】
そして、ＣＰＵ２５１は、プログラムメモリ２５４に格納されたデータに対してＭＡＣヘッダとＦＣＳ（Frame Check Sequence）を含む種々のデータを付加することにより、ＬＡＮ５００に対して送信するフレームを生成し、プログラムメモリ２５４に格納するとともに、共有メモリ２５５において当該フレームを生成した旨のフラグを立てる。
【００３５】
プログラムメモリ２５４に格納された送信用のフレームは、コントロールＭＡＣ部２５７によって、ＤＡＣ２５９へ送られた後、アナログデータに変換されて、ＲＦ回路２０５、バラン２０４、アンテナ２０３を介して、ＬＡＮ５００へと送信される。
【００３６】
通信回路２８０において、ＬＡＮ５００を介して送信されてきたデータが受信される際の動作について説明する。アンテナ２０３およびバラン２０４を介してＲＦ回路２０５に送られてきたフレームは、ＡＤＣ２５８においてデジタルデータに変換された後、コントロールＭＡＣ部２５７に送られる。コントロールＭＡＣ部２５７は、デジタル信号に変換されたフレームに対して、フレーム先頭検出、時間および周波数の同期処理を行なった後、誤り訂正復号を行なう。そして、コントロールＭＡＣ部２５７は、さらに、当該フレームのＤＡ３１１がＥＥＰＲＯＭ２０６に格納される当該通信回路２８０のＭＡＣアドレスと一致するか否かを判断し、一致すると判断すると、フレームからＭＡＣヘッダ部とＦＣＳ部を取除いた後、プログラムメモリ２５４に、残ったデータ（フレーム・ボディ部）を転送する。なお、一致しないと判断すると、コントロールＭＡＣ部２５７は、受信したフレームを破棄する。
【００３７】
また、コントロールＭＡＣ部２５７は、受信したフレーム・ボディ部をプログラムメモリ２５４に格納したときに、共有メモリ２５５において、その旨を示すフラグをセットする。ＣＰＵ２５１は、当該フラグがセットされたことに応じて、プログラムメモリ２５４に格納されたフレーム・ボディ部を、インターフェイス２５２を介して、ホストシステム２９０へ送る。
【００３８】
サーバ３００は、ドングル２００からＬＡＮ５００を介して送信されるフレームの受信およびドングル２００へのＬＡＮ５００を介したフレームの送信を行なう通信処理部３１０を含む。また、サーバ３００は、当該サーバ３００の動作を全体的に制御するＣＰＵ３０１を含む。さらに、サーバ３００は、ＣＰＵ３０１が実行するプログラムや種々の設定情報、および、後述するＩＤ参照テーブルおよび管理テーブルを記憶するＨＤ３０２、ＣＰＵ３０１のワークエリアとして機能するＲＡＭ３０３、情報を表示するディスプレイ３０４、外部の機器との接続の際にインターフェイスとして機能するＩ／Ｆ３０５、および外部からの操作を受付ける入力部３０６を含む。
【００３９】
本実施の形態のプログラム認証システムでは、ＰＣ１００にインストールされたアプリケーションプログラムの起動および継続的な実行には、起動用ＩＤを必要とするものとする。
【００４０】
サーバ３００では、ドングル２００のフラッシュメモリ２９５に記憶された請求用ＩＤと上記した起動用ＩＤとがＩＤ関連テーブルとして、ＨＤ３０２に記憶されている。表１に、ＩＤ関連テーブルの一例を模式的に示す。
【００４１】
【表１】
0005288158.tif 000002
【００４２】
表１から理解されるように、ＩＤ関連テーブルでは、「Ａ１」「Ａ２」「Ａ３」として例示された各請求用ＩＤに関連付けられて、「Ｂ１」「Ｂ２」「Ｂ３」として例示される起動用ＩＤが記憶されている。なお、表１に示された各ＩＤは例示であって、各ＩＤが構成される文字種や文字数は、表１に示されたものに限定されない。
【００４３】
ＰＣ１００のＣＰＵ１０１は、原則として、入力部１０６に起動のための操作がなされることなどの起動のための条件が成立すると、アプリケーションプログラムを起動する。そして、当該アプリケーションプログラムの終了のための操作がなされるなどの終了条件が成立するまで、アプリケーションプログラムの実行を継続させる。なお、アプリケーションプログラムの起動および継続的な実行のためには、サーバ３００に記憶されている起動用ＩＤの取得が必要とされる。ここで、起動用ＩＤの取得も含めたアプリケーションプログラムの実行のためのＣＰＵ１０１が実行する処理について、当該処理のフローチャートである図４を参照して説明する。
【００４４】
上記したようにアプリケーションプログラムの起動のための条件が成立すると、ＣＰＵ１０１は、ステップＳ１０で、上記した起動用ＩＤを取得するための処理である起動用ＩＤ取得処理を実行して、ステップＳ２０へ処理を進める。
【００４５】
ここで、起動用ＩＤ取得処理の内容について、当該処理のサブルーチンのフローチャートを示す図５を参照して説明する。
【００４６】
図５には、ＰＣ１００のＣＰＵ１０１が起動用ＩＤ取得処理を実行する際の、ＰＣ１００、ドングル２００およびサーバ３００における動作の内容が示されている。
【００４７】
図５を参照して、起動用ＩＤ取得処理では、ＣＰＵ１０１は、まずステップＳ１１０において、起動用ＩＤ取得要求フレームを生成して、ステップＳ１２０へ処理を進める。
【００４８】
起動用ＩＤ取得要求フレームとは、サーバ３００に対して、起動用ＩＤの取得を要求する情報を含むフレームであり、当該ＩＤを取得する要求を含むコードと、フラッシュメモリ２９５に記憶された請求用ＩＤと、宛先であるサーバ３００を特定する情報とを含む。当該フレームに上記したコードを含ませることは、ＣＰＵ１０１からドングル２００に対して命令される。また、ＣＰＵ１０１は、ドングル２００に対して、当該フレームに請求用ＩＤを含めることを命令する。これにより、ＣＰＵ２９１は、フラッシュメモリ２９５に記憶された請求用ＩＤとサーバ３００を特定する情報を、通信回路２８０へ送る。これに応じて、通信回路２８０では、上記したコードと、請求用ＩＤと、サーバ３００を特定する情報から特定されるサーバ３００のＭＡＣ（Media Access Control）アドレスとを含むフレームを生成する。このフレームが、起動用ＩＤ取得要求フレームに相当する。
【００４９】
ステップＳ１２０では、ＣＰＵ１０１は、ドングル２００に対して起動用ＩＤ取得要求フレームをサーバ３００へ送信するよう指示する。これにより、ドングル２００は、上記のように生成した起動用ＩＤ取得要求フレームを、ＬＡＮ５００を介してサーバ３００へ送信する。
【００５０】
サーバ３００では、ＣＰＵ３０１は、ステップＳＡ１０で、起動用ＩＤ取得要求フレームを受信したか否かを判断し、受信したと判断するとステップＳＡ２０へ処理を進める。
【００５１】
ステップＳＡ２０では、ＣＰＵ３０１は、ＩＤ関連テーブルにおいて、受信した請求用ＩＤと一致する請求用ＩＤが存在するか否かを判断し、そして、存在すると判断した場合には、当該請求用ＩＤに関連付けられて記憶されている起動用ＩＤを検索する。
【００５２】
次に、ＣＰＵ３０１は、ステップＳＡ３０において、検索結果として得られた起動用ＩＤを含むフレームを、ＬＡＮ５００を介してドングル２００へ送信する。
【００５３】
一方、ステップＳＡ２０において、受信した請求用ＩＤがＩＤ関連テーブルに存在しないと判断した場合、または、当該テーブルにおいてステップＳ１０で受信した請求用ＩＤに関連付けられた起動用ＩＤを取得できなかった場合には、ＣＰＵ３０１は、ドングル２００に対して、起動用ＩＤが取得できなかった旨のコード（ＩＤ取得失敗コード）を含むフレームを送信する。
【００５４】
ＰＣ１００では、ドングル２００がサーバ３００から受信したフレームに含まれる情報（起動用ＩＤまたは上記のＩＤ取得失敗コード）を取得して、処理を図４にリターンさせる。
【００５５】
なお、サーバ３００では、ＣＰＵ３０１は、ステップＳＡ３０でドングル２００にフレームを送信した後、ステップＳＡ４０で、ドングル２００から送信されてきた請求用ＩＤを管理するテーブル（管理テーブル）を更新して、ＰＣ１００からの起動用ＩＤ取得の要求に対応する処理を終了させる。
【００５６】
サーバ３００は、ＬＡＮ５００を介して、複数の情報処理装置からの起動用ＩＤ取得の要求に応答することができる。ＣＰＵ３０１は、上記した管理テーブルにおいて、起動用ＩＤの取得を要求してきた請求用ＩＤと、当該要求を受付けた時刻（要求時刻）とを関連付けて、たとえば表２のように記憶させる。
【００５７】
【表２】
0005288158.tif 000003
【００５８】
図４に戻って、ステップＳ１０で起動用ＩＤ取得処理を実行した後、ＣＰＵ１０１は、ステップＳ２０で、ステップＳ１０における起動用ＩＤ取得処理で、起動用ＩＤが取得できたか否かを判断する。そして、ＣＰＵ１０１は、取得できたと判断すると、ステップＳ３０へ処理を進め、取得できなかったと判断すると、そのままアプリケーションプログラムの実行を終了させる。
【００５９】
なお、ステップＳ２０では、ＣＰＵ１０１は、ステップＳ１３０においてサーバ３００から起動用ＩＤを受信した場合には、起動用ＩＤが取得できたと判断する。一方、ＣＰＵ１０１は、ステップＳ２０において、ステップＳ１３０においてサーバ３００からＩＤ取得失敗コードを含むフレームを受信した場合に、起動用ＩＤを取得できなかったと判断する。なお、ＣＰＵ１０１は、ステップＳ１２０においてドングル２００に起動用ＩＤ取得要求フレームを送信させてからある一定の時間内にサーバ３００から起動用ＩＤを受信の送信できなかった場合に起動用ＩＤを取得できなかったと判断するように構成されてもよい。
【００６０】
ステップＳ３０では、ＣＰＵ１０１は、ステップＳ１０で取得した起動用ＩＤを使用してアプリケーションプログラムを起動する処理を実行して、ステップＳ４０へ処理を進める。
【００６１】
ここで、アプリケーションプログラムの起動に起動用ＩＤを使用するとは、たとえば、アプリケーションプログラムがその起動にパスワードの入力を必要とするように構成された場合に、ステップＳ１０で取得した起動用ＩＤをステップＳ３０でパスワードとして入力することを挙げることができる。
【００６２】
ステップＳ４０では、前回起動用ＩＤ取得処理（ステップＳ１０または後述するステップＳ５０）を実行してから所定時間（たとえば１０分間）が経過したか否かを判断し、経過したと判断するとステップＳ５０へ処理を進め、まだ経過していないと判断するとステップＳ８０へ処理を進める。
【００６３】
ステップＳ５０では、ＣＰＵ１０１は、起動用ＩＤ取得処理を実行して、ステップＳ６０へ処理を進める。なお、ステップＳ５０における起動用ＩＤ取得処理の内容は、図５を参照して説明した、ステップＳ１０における処理内容と同様であるため、ここでは説明を繰返さない。
【００６４】
ステップＳ６０では、ＣＰＵ１０１は、ステップＳ２０と同様に、直前で実行したステップＳ５０の起動用ＩＤ取得処理において起動用ＩＤを取得できたか否かを判断し、できたと判断するとステップＳ７０へ処理を進め、できなかったと判断するとステップＳ８０へ処理を進める。
【００６５】
ステップＳ７０では、ＣＰＵ１０１は、入力部１０６に対してアプリケーションプログラムを終了させるための操作がなされたなど、アプリケーションプログラムを終了させるための条件が成立したか否かを判断し、成立したと判断するとステップＳ８０へ処理を進め、成立していないと判断するとステップＳ４０へ処理を戻す。
【００６６】
ステップＳ８０では、ＣＰＵ１０１は、実行中のアプリケーションプログラムを終了させるための処理を実行して、アプリケーションプログラム実行のための処理を終了させる。なお、ステップＳ８０における処理とは、たとえば、アプリケーションプログラム実行中に変更された設定の保存や作成されたファイルの保存が挙げられる。
【００６７】
以上説明した本実施の形態では、図４を参照して説明したアプリケーション実行処理において、その起動などに起動用ＩＤを必要とされるアプリケーションプログラムにより、実行用プログラムが構成されている。そして、当該プログラムをインストールされたＰＣ１００により、情報処理装置が構成されている。なお、本実施の形態における情報処理装置とは、ドングル２００を挿し込まれた状態にあるＰＣ１００を意味する。ここで、ＰＣ１００は、本実施の形態における情報処理端末を構成し、ドングル２００は通信装置を構成する。
【００６８】
ＰＣ１００のＣＰＵ１０１に図４および図５を参照して説明した処理を実行させるプログラムにより、制御プログラムが構成されている。なお、制御プログラムは、実行用プログラムに組込まれて構成されていてもよいし、または、ＰＣ１００においてアプリケーションプログラムの実行（起動）を管理するプログラムなどとして、実行用プログラムとは別にＨＤ１０２にインストールされていてもよい。
【００６９】
なお、一般的傾向として、コンピュータのオペレーションシステムの一部としてさまざまなプログラムモジュールを用意しておき、本実施の形態における実行用プログラムや制御プログラムはこれらモジュールを所定の配列で必要なときに呼出して処理を進める方式が一般的である。そうした場合、本実施の形態のプログラム認証システムを実現するためのソフトウェア自体にはそうしたモジュールは含まれず、情報処理端末（ＰＣ１００）でオペレーティングシステムと協働して初めてプログラム認証システムが実現することになる。しかし、一般的なプラットフォームを使用する限り、そうしたモジュールを含ませたソフトウェアを流通させる必要はなく、それらモジュールを含まないソフトウェア自体およびそれらソフトウェアを記録した記録媒体（およびそれらソフトウェアがネットワーク上を流通する場合のデータ信号）が実施の形態を構成すると考えることができる。
【００７０】
また、制御プログラムは、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）など、ＰＣ１００に対して着脱可能な記録媒体に記録された状態で、ＣＰＵ１０１によってＩ／Ｆ１０５を介して当該記録媒体から読出されて実行されてもよい。また、制御プログラムは、ドングル２００が使用される等してＬＡＮ５００を介してダウンロードされて、ＨＤ１０２にインストールされてもよいし、上記した記録媒体に記録された状態からＩ／Ｆ１０５を介して（ネットワークを介することなく直接）ＨＤ１０２にインストールされてもよい。
【００７１】
本実施の形態のアプリケーション実行処理では、ステップＳ３０でアプリケーションプログラムが起動された後、ステップＳ６０で、ステップＳ５０における起動用ＩＤ取得処理において起動用ＩＤが取得できたと判断されると、そのことを条件として、アプリケーションプログラムの実行が継続される。なお、アプリケーションプログラムは、ステップＳ６０において起動用ＩＤが取得できたと判断された後、当該取得された起動用ＩＤを入力（ＣＰＵ１０１が、ドングル２００が受信したフレームから取得）されたものをアプリケーションプログラムに対して入力することを条件として、当該アプリケーションの実行が継続されるように構成されていてもよい。
【００７２】
また、以上説明した本実施の形態において、図５を参照して説明したサーバ３００における処理の中のステップＳＡ４０では、表２に例示した管理テーブルの更新がなれる。これにより、サーバ３００では、請求用ＩＤごとに、アプリケーションプログラムを起動させた時刻および継続的に実行させた時間帯を管理することができる。これにより、どのユーザがどの時間帯に当該アプリケーションプログラムを使用したかをサーバ３００の管理者は算出することができる。
【００７３】
また、図５を参照して説明した処理では、ＰＣ１００がドングル２００にサーバ３００へと送信させた起動用ＩＤ取得要求フレームには、起動用ＩＤの取得を要求するコードとドングル２００に記憶された請求用ＩＤが含まれている。なお、このフレームには、さらに、これから起動しようとするアプリケーションプログラムのバージョン情報（プログラムの特性を示す情報）を含ませることが好ましい。これにより、当該フレームを受信したサーバ３００では、当該フレームの送信を指示したＰＣ１００にインストールされているアプリケーションプログラムのバージョンが最新のものであるか否かを判断し、最新のものでない場合には、当該ＰＣ１００に対して最新のバージョンにバージョンアップさせるためのプログラムを送信することができる。つまり、プログラム認証システムにおいて、各ＰＣ１００にインストールされているアプリケーションプログラムのバージョンを、特にユーザに操作を要求することなく、最新のものとすることができる。
【００７４】
以上説明した本実施の形態では、上記した起動（および継続的実行）に起動用ＩＤを必要とする制御プログラムと、請求用ＩＤを記憶するフラッシュメモリ２９５を備えたドングル２００とにより、情報処理システムが構成されている。
【００７５】
なお、本実施の形態では、ＰＣ１００は、当該ＰＣ１００に対して着脱可能に取付けられるドングル２００の通信機能を利用して、サーバ３００との間で通信を行なっている。本発明では、ＰＣ１００は、少なくとも無線通信方式でサーバ３００と通信できればよく、その通信機能（通信装置）は、必ずしもＰＣ１００に対して着脱可能なドングル２００に備えられている必要はない。ただし、本実施の形態のように、請求用ＩＤを記憶し通信機能を備えたドングル２００がＰＣ１００に対して着脱可能に構成されることにより、ＰＣ１００を個人所有としつつ、ドングル２００のみを複数人で共有して使用することができる。これにより、ドングル２００はアプリケーションプログラムを実行する上限のユーザの数だけユーザの数だけドングル２００を用意する必要がなく、システムの構築のためのコストの低減が可能となる。
【００７６】
また、本実施の形態では、アプリケーションプログラムの起動および継続的な実行の双方に起動用ＩＤを必要としているが、本発明では、少なくとも起動の際に起動用ＩＤが必要とされればよい。なお、継続的な実行にも起動用ＩＤを必要とされることにより、確実に、アプリケーションプログラムの継続的な実行をドングル２００がサーバ３００と通信できる領域内に限定できる。ドングル２００が、アプリケーションプログラムの起動時にはサーバ３００と通信できる領域内に位置していたが、その後、当該領域の外へ移動した場合、ＰＣ１００が起動用ＩＤを取得できなくなることによりアプリケーションプログラムの実行を中止させることができるからである。
【００７７】
また、以上説明した本実施の形態では、サーバ３００は、アプリケーションプログラムをインストールされたＰＣ１００の指示によりドングル２００が送信した請求用ＩＤが正当なものであるか否か（ＩＤ参照テーブルに存在するか否か、および、起動用ＩＤと関連付けられているか否か）により、当該アプリケーションプログラムの認証を行なう。そして、サーバ３００は、認証の結果を、起動用ＩＤまたはＩＤ取得失敗コードを送信することにより、ＰＣ１００に対して通知する。なお、本実施の形態のプログラム認証システムでは、少なくとも、サーバ３００が、アプリケーションプログラムをインストールされたＰＣ１００の指示によって無線通信方式で送信されてきた情報に基づいてアプリケーションプログラムの認証を行ない、その結果を無線通信方式でＰＣ１００に送信すればよい。
【００７８】
また、以上説明した本実施の形態では、ＰＣ１００が、ドングル２００を介して、無線通信方式で、サーバ３００と通信することによりアプリケーションの起動用ＩＤを取得していた。これにより、ＰＣ１００においてアプリケーションが起動可能となる領域を、ＰＣ１００がドングル２００を介して、無線通信方式で、サーバ３００と通信できる領域に制限することができた。なお、本発明に関し、ＰＣ１００（ドングル２００）が存在する領域によって、ＰＣ１００において利用できるアプリケーションの機能を異ならせることも可能である。このような変形例について、図６を参照して説明する。
【００７９】
図６では、破線Ａで示された領域Ａと、破線Ｂで示された領域Ｂが示されている。領域Ｂは領域Ａ内に含まれている。領域Ａの方が、領域Ｂよりも、その外縁とＬＡＮ５００との距離が長くなっている。
【００８０】
ドングル２００は、異なる２種類の周波数で、無線通信を行なう。図６では、２種類の無線電波が、線ＲＸ，ＲＹで示されている。ドングル２００は、線ＲＸに対応する周波数でコードＸを送信し、線ＲＹに対応する周波数でコードＹを送信する。なお、周波数が異なると、通信距離が異なる。つまり、ドングル２００は、通信距離の異なる複数種類のコードを送信することになる。各コードの相対的な通信特性を表３にまとめる。
【００８１】
【表３】
0005288158.tif 000004
【００８２】
表３から理解されるように、ドングル２００は、コードＸを、コードＹよりも、低い周波数で、つまり、通信距離の長い電波で、送信される。
【００８３】
サーバ３００は、ドングル２００から受信するコードの種類によって、異なる種類の起動用ＩＤをドングル２００に送信する。受信するコードとドングル２００へ送信する起動用ＩＤの種類の一例を表４に示す。
【００８４】
【表４】
0005288158.tif 000005
【００８５】
表４から理解されるように、サーバ３００は、コードＸおよびコードＹを受信した場合には、ドングル２００へ、機能Ａおよび機能Ｂを利用可能とする起動用ＩＤを送信し、コードＸのみを受信した場合には、機能Ａのみを利用可能とする起動用ＩＤを送信する。なお、機能Ａの一例としてはＰＣ１００またはサーバ３００に保存されている文書の閲覧を挙げることができ、機能Ｂの一例としてはそのような文書に対して上書き保存を挙げることができるが、機能Ａおよび機能Ｂはこれらに限定されない。
【００８６】
再度図６を参照して、ドングル２００は、領域Ｂ内ではＬＡＮ５００に対して線ＲＸおよび線ＲＹの双方の周波数で無線通信が可能であり、領域Ｂ外であって領域Ａ内ではＬＡＮ５００に対して線ＲＸの周波数では無線通信が可能であるが線ＲＹの周波数では無線通信が不可能であり、そして、領域Ａ外ではＬＡＮ５００に対して線ＲＸおよび線ＲＹの双方の周波数での無線通信が不可能であるとする。なお、ドングル２００は、領域Ｂ内、領域Ｂ外であって領域Ａ内、領域Ａ外の順に、ＬＡＮ５００との通信距離が長くなっていくものとする。
【００８７】
ドングル２００は、領域Ｂ内に位置すれば、コードＡおよびコードＢの双方をサーバ３００に送信でき、領域Ｂ外であって領域Ａ内に位置すれば、コードＡのみをサーバ３００に送信できる。これにより、ＰＣ１００では、ユーザは、ドングル２００が領域Ｂ内に位置すれば、サーバ３００から送信される起動用ＩＤで起動されるアプリケーションの機能として機能Ａおよび機能Ｂの双方を利用でき、一方、ドングル２００が領域Ｂ外であって領域Ａ内に位置すれば、サーバ３００から送信される起動用ＩＤで起動されるアプリケーションの機能として機能Ａのみを利用できる（表４参照）。
【００８８】
なお、このような変形例では、サーバ３００では、機能Ａおよび機能Ｂを利用可能とする起動用ＩＤと機能Ａのみを利用可能とする起動用ＩＤという、複数種類の起動用ＩＤが記憶されており、そして、ドングル２００から受信したコードの種類に応じて、当該複数種類の起動用ＩＤの中のどれをドングル２００に送信するかが、たとえば表４に基づいて決定される。
【００８９】
以上、図６ならびに表３および表４を参照して説明した変形例では、ドングル２００がＬＡＮ５００から離れるほどＰＣ１００で利用できる機能が少なくなっていたが、逆に、ドングル２００がＬＡＮ５００から離れるほどＰＣ１００で利用できる機能が多くなるようにシステムが構成されても良い。
【００９０】
今回開示された各実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、各実施の形態に開示された技術は、可能な限り組み合わされて実現されることが意図される。
【図面の簡単な説明】
【００９１】
【図１】本発明のプログラム認証システムの全体構成を模式的に示す図である。
【図２】図１に示したプログラム認証システムの効果を説明するための図である。
【図３】図１に示されたＰＣ、ドングル、およびサーバのハードウェア構成を模式的に示す図である。
【図４】図３のＰＣのＣＰＵが実行するアプリケーション実行処理のフローチャートである。
【図５】図４の起動用ＩＤ取得処理のサブルーチン、および、それとともに図１に示されたプログラム認証システムにおいて実行される処理のフローチャートである。
【図６】図１に示されたプログラム認証システムの変形例を説明するための図である。
【符号の説明】
【００９２】
１００  サーバ、１０１，２５１，２９１，３０１  ＣＰＵ、１０２，３０２  ＨＤ、１０３，３０３  ＲＡＭ、１０４，３０４  ディスプレイ、１０５，３０５  Ｉ／Ｆ、１０６，２９６，３０６  入力部、１１０  ＵＳＢ  Ｉ／Ｆ、２００  ドングル、２０１  電源回路、２０２  クロック回路、２０３  アンテナ、２０４  バラン、２０５  ＲＦ回路、２０６，２０７  ＥＥＰＲＯＭ、２５０  ベースバンド／ＭＡＣ回路、２５２，２９４  インターフェイス、２５３  外部バスコントローラ、２５４  プログラムメモリ、２５５  共有メモリ、２５６  タイマ、２５７  コントロールＭＡＣ部、２５８  ＡＤＣ、２５９  ＤＡＣ、２８０  通信回路、２９０  ホストシステム、２９２  ＵＳＢコネクタ、２９５  フラッシュメモリ、３００  サーバ、５００  ＬＡＮ。
【図１】
0005288158.tif 000006
【図２】
0005288158.tif 000007
【図３】
0005288158.tif 000008
【図４】
0005288158.tif 000009
【図５】
0005288158.tif 000010
【図６】
0005288158.tif 000011