(57)【要約】【課題】認証サーバによる認証を必要とするアプリケーションプログラムは、通信エラーのために認証を受けられない場合には、実行することができない。【解決手段】認証サーバから認証を得るための通信において通信エラーが発生した場合、メモリに記憶された認証結果履歴情報を読出して、認証サーバに認証要求を送信してその結果として認証の成功が返信されたことが有ると判断される場合には、認証処理に成功したものとして処理を実行する。【選択図】図１０
2010049568.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して受信した認証要求に応じ成功か否かの判定がされる認証処理を実行する認証サーバへ、前記認証要求を送信する送信部と、
前記認証サーバから、前記認証処理の結果を受信する受信部と、
前記受信部が受信した前記認証処理の結果が、成功か否かによってその後に行う処理を選択する処理選択部と、
前記受信部が受信した前記認証処理の結果の履歴を示す認証結果履歴情報を記憶する記憶部と、
前記送信部による前記認証要求の送信と前記受信部による前記認証処理の結果の受信とを行う際の通信エラーの発生の有無を検出するエラー検出部と、
前記エラー検出部により前記通信エラーの検出がされた場合は前記通信エラーの検出に応じて、前記エラー検出部により前記通信エラーの検出がされなかった場合は前記受信部が受信した前記認証処理の結果に応じて、前記認証結果履歴情報を更新する認証結果履歴更新部と、
前記エラー検出部により前記通信エラーの発生したことが検出され、前記認証結果履歴情報に前記認証処理の成功を示す情報が既に含まれる場合には、前記受信部が受信した前記認証処理の結果を成功とみなす処理を行う認証制御部と、
を有することを特徴とする処理実行装置。
【請求項２】
ネットワークを介して受信した認証要求に応じ成功か否かの判定がされる認証処理を実行する認証サーバへ、前記認証要求を送信し、
前記認証サーバから、前記認証処理の結果を受信し、
受信した前記認証処理の結果が、成功か否かによってその後に行う処理を選択することを計算機に実行させるためのアプリケーションプログラムであって、
受信した前記認証処理の結果の履歴を示す認証結果履歴情報を記憶し、
前記認証要求の送信と前記認証処理の結果の受信とを行う際の通信エラーの発生の有無を検出し、
前記通信エラーの検出がされた場合は前記通信エラーの検出に応じて、前記通信エラーの検出がされなかった場合は受信した前記認証処理の結果に応じて、前記認証結果履歴情報を更新し、
前記通信エラーの発生したことが検出され、前記認証結果履歴情報に前記認証処理の成功を示す情報が既に含まれる場合には、受信した前記認証処理の結果を成功とみなす処理を行うことを計算機に実行させるためのアプリケーションプログラム。
【請求項３】
請求項２に記載のアプリケーションプログラムを携帯端末へダウンロード可能に記憶する記憶部を有するダウンロードサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバより得られる認証を得て処理を実行する処理実行装置、アプリケーションプログラム、アプリケーションプログラムをダウンロード可能に保持するダウンロードサーバに関する。
【背景技術】
【０００２】
通信技術や計算機の実装技術などの発達に伴い、パーソナルコンピュータのみならず端末装置として携帯電話端末を、インターネットを介してサーバ装置に接続することが可能となってきた。また、端末装置にアプリケーションプログラムをダウンロードして安全に実行するために、仮想マシンが解釈と実行できるマシンコード（仮想マシンコード）で動作が記述されたアプリケーションプログラムを仮想マシンで動作させることが一般的に行われている（例えば、特許文献１参照。）。例えば、携帯電話端末をインターネットなどの通信網を介してウェブサーバに接続し、仮想マシンコードで動作が記述されたゲームなどを行うためのアプリケーションプログラムをそのウェブサーバよりダウンロードし、仮想マシンで動作させ、ゲームを楽しむことができる。
【０００３】
このようなアプリケーションプログラムは、有料にて利用できるものと無料にて利用できるものに分類される。有料の場合には、課金処理を行うために携帯電話端末の識別情報や利用者の識別情報などを会員情報などとして認証サーバに登録を行って利用を行うことが通常である。そして、アプリケーションプログラムの実行の都度あるいは所定の期間の経過（例えば一ヶ月）ごとに会員登録がされているかどうかについて、インターネットなどを介し、認証サーバによる認証を受け、課金処理などと引き替えにアプリケーションプログラムの利用が可能となる。また、無料に利用できるアプリケーションプログラムであっても、一定の期間経過後に有料に移行するためや、パージョンアップの通知などを行うために同様の認証を受ける必要があるものが多い。
【０００４】
【特許文献１】特開２００３−１１４８３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、所定の期間の経過（例えば一ヶ月）ごとに会員登録されているかどうかについて認証サーバによる認証を受ける場合は、携帯電話端末の時計機能を使って、前回認証に成功した日時から例えば一ヶ月を経過したときに再度認証を受ける必要があるが、携帯電話端末の日時が一ヶ月経過しないように利用者が設定し続けると、次の認証を受けずに利用し続けるといった不正が可能となってしまう。
【０００６】
このような不正に対処するため、アプリケーションプログラムの実行の都度認証サーバによる認証を受けさせることが考えられる。しかしながら、この場合は次のような課題がある。すなわち、アプリケーションプログラムの実行の都度、認証サーバによる認証を受ける場合は、通信を行う頻度が増大する。しかし、通信技術が発達した今日であっても、通信回線などのトラブルにより認証サーバとの通信の失敗（通信エラー）を完全に無くすことは困難である。このため、通信エラーにより、上述のようなアプリケーションプログラムを動作させることができないという課題がある。特に携帯電話端末の場合には、建物の中や地下鉄の駅の間などにおいて基地局からの電波が弱かったり電波が届かなかったりする場合には、通信ができないので、上述のようなアプリケーションプログラムを動作できない場合が多々発生するのが実情である。
【０００７】
また、基地局からの電波が受信できないなどにより通信ができないときには認証を受けなくてもアプリケーションプログラムを動作可能とすると、意図的に通信ができない状態が作出されることにより、不正にアプリケーションプログラムが利用されてしまうという課題もある。
【課題を解決するための手段】
【０００８】
本発明の一形態として、ネットワークを介して接続された認証サーバへ、成功となるか否かの判定が行われる認証処理の要求を送信する送信部と、認証処理の結果を受信する受信部と、認証サーバでの認証処理が成功か否かの結果によってその後に行う処理を選択する処理選択部と、認証処理の結果の履歴を示す認証結果履歴情報を記憶する記憶部と、認証要求の送信と認証処理の結果の受信とを行う際の通信エラーの発生の有無を検出するエラー検出部と、エラー検出部による通信エラーの検出に応じて、あるいはエラー検出部による通信エラーが検出されなかった場合には受信された認証処理の結果に応じて、認証結果履歴情報を更新する認証結果履歴更新部と、通信エラーが発生したことが検出され、かつ認証結果履歴情報に認証処理に成功したことがあることを示す情報が含まれている場合には、認証処理の結果を成功とみなした処理を行う認証制御部と、を有することを特徴とする処理実行装置を提供する。
【０００９】
この処理実行装置によれば、認証サーバとの通信時にエラーが生じ、通信ができないために、実際に認証処理を受けることができなくても、過去の認証処理に成功したことが有れば、認証処理に成功したものと判断されるので、通常の処理を行うことができる。また、過去の認証処理の範囲を、例えば前回の認証処理に限定などすることにより、通信ができない状況が意図的に作出されても不正に処理実行装置が利用されることを防ぐことができる。
【００１０】
また、本発明の別の形態として、ネットワークを介して接続された認証サーバへ、認証が成功となるか否かの判定が行われる認証処理の要求を送信し、認証処理の結果を受信し、認証サーバでの認証処理が成功か否かの結果によってその後に行う処理を選択することを計算機に行わせるためのアプリケーションプログラムであって、認証処理の結果の履歴を示す認証結果履歴情報を記憶し、認証要求の送信と認証処理の結果の受信とを行う際の通信エラーの発生の有無を検出し、通信エラーの検出に応じて、あるいは通信エラーの検出がされなかった場合には受信された認証処理の結果に応じて認証結果履歴情報を更新し、通信エラーが発生したことが検出され、かつ認証結果履歴情報に認証処理に成功したことがあることを示す情報が含まれている場合には、認証処理の結果を成功とみなした処理を行うことを計算機に実行させるためのアプリケーションプログラムを提供する。
【００１１】
このアプリケーションプログラムを計算機で実行する際に、認証サーバとの通信時にエラーが生じ、通信ができないために、実際に認証処理を受けることができなくても、過去の認証処理に成功したことが有れば、認証処理に成功したものと判断されるので、通常の処理を行うことができる。また、過去の認証処理の範囲を、例えば前回の認証処理に限定などすることにより、通信ができない状況が意図的に作出されても不正にアプリケーションプログラムが利用されることを防ぐことができる。
【００１２】
また、本発明の別の形態として、ネットワークを介して接続された認証サーバへ、認証が成功となるか否かの判定が行われる認証処理の要求を送信し、認証処理の結果を受信し、認証サーバでの認証処理が成功か否かの結果によってその後に行う処理を選択することを計算機に行わせるためのアプリケーションプログラムであって、認証処理の結果の履歴を示す認証結果履歴情報を記憶し、認証要求の送信と認証処理の結果の受信とを行う際の通信エラーの発生の有無を検出し、通信エラーの検出に応じて、あるいは通信エラーの検出がされなかった場合には受信された認証処理の結果に応じて認証結果履歴情報を更新し、通信エラーが発生したことが検出され、かつ認証結果履歴情報に認証処理に成功したことがあることを示す情報が含まれている場合には、認証処理の結果を成功とみなした処理を行うことを計算機に実行させるためのアプリケーションプログラム、を携帯端末へダウンロード可能に記憶する記憶部を有するダウンロードサーバ装置を提供する。
【００１３】
このダウンロードサーバ装置によれば、認証サーバとの通信時にエラーが生じ、通信ができないために、実際に認証処理を受けることができなくても、過去の認証処理に成功したことが有れば、認証処理に成功したものと判断されるアプリケーションプログラムを携帯端末などの端末装置にダウンロードすることができる。
【発明の効果】
【００１４】
本発明によれば、認証サーバとの通信時にエラーが生じ、通信ができないために、実際に認証処理を受けることができなくても、過去の認証処理が成功したことが有れば、認証処理に成功したものと判断されるので、通常の処理を行うことができる。また、過去の認証処理の範囲を、例えば前回の認証処理に限定などすることにより、通信ができない状況が意図的に作出されても不正に処理実行装置、アプリケーションプログラムなどを利用されることを防ぐことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態について、図面を参照しながら幾つかの実施形態に分けて説明を行う。なお、本発明は、これらの説明によって何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々の態様で実施することができる。
【００１６】
（本発明の概要）
図１は、本発明の概要を示す図である。すなわち、本発明の一実施形態に係るシステムの構成と、そのシステムの構成要素の一例である端末装置での操作の流れを説明する図である。
【００１７】
図１（ａ）〜（ｄ）において、本発明の一実施形態に係るシステム１００は、第１の通信網１０１に接続された基地局１０２と通信が可能な端末装置１０３と、第１の通信網１０１とゲートウェイ（ＧＷ）１０５を介して接続される第２の通信網１０６に接続されたダウンロードサーバ１０７と、認証サーバ１１０とを備える。なお、ダウンロードサーバ１０７と認証サーバ１１０とは一体となったサーバ装置により実現されていてもよい。また、第１の通信網１０１と第２の通信網１０６とが同一であってもよく、ＧＷ１０５は明示的に特定されなくてもよい。また、端末装置１０３は、図１では携帯可能な端末の一種である携帯電話として説明されるが、通信機能を有する任意の電子装置（例えばパーソナルコンピュータ、家電製品など）を用いることができ、通信機能は無線、有線を問わない。
【００１８】
第１の通信網１０１は、例えば、携帯電話会社（キャリア）の運営する通信網である。基地局１０２は第１の通信網に接続され、無線通信によって端末装置１０３と通信が可能である。あるいは第１の通信網１０１は、インターネットサービスプロバイダ（ＩＳＰ）がその契約者に通信サービスを提供したり、一般企業や大学などの組織がその構成員の便益などのために運営したりするための通信網であってもよく、その場合には、基地局はアクセスポイントと言い換えることができる。以下、説明の便宜上、基地局と携帯端末を用いて説明を行うが、本発明は、無線通信を行う基地局と携帯端末とを用いる場合に限定されることはない。
【００１９】
第２の通信網１０６は、インターネットなどの広域の通信網であることが主に想定される。もちろん、インターネットのようなオープンなネットワークである必要はなく、クローズドなネットワークであってもよい。また、ＧＷ１０５は、第１の通信網１０１と第２の通信網１０６との通信を中継するルータなどによって構成される。
【００２０】
ダウンロードサーバ１０７は、その記憶部１０８にアプリケーションプログラム（以下では「アプリケーション」や「アプリ」と略記する場合がある）１０９を、端末装置１０３にダウンロード可能に記憶している。アプリケーション１０９は、端末装置１０３のマシン（ネイティブ）コードや、端末装置１０３で動作可能な仮想マシンのマシンコードで記述されたプログラムであり、実行可能なものである。あるいは、再生可能な音楽データ、映像データなどのコンテンツデータであってもよい。コンテンツデータである場合には、その再生プログラムが仮想マシンに相当する。ダウンロード可能とは、ダウンロードサーバ１０７が、端末装置１０３よりダウンロード要求の情報を受信した場合に、その返信としてアプリケーション１０９を端末装置１０３へ所定のプロトコルで返信し、携帯端末がアプリケーション１０９を実行や再生など（以下、「利用」という。）をすることが可能な状態で格納することができることをいう。
【００２１】
認証サーバ１１０は、データベース（ＤＢ）１１１を有する。システム１００においては、ダウンロードサーバ１０７から端末装置１０３にダウンロードされたアプリケーションを端末装置１０３で実行するには、認証サーバ１１０による認証を受ける必要があるものとする。この認証の対象は、端末装置１０３または端末装置１０３の利用者が想定される。そして、この認証のための情報（「認証情報」と略記する）は、ＤＢ１１１に登録される。認証情報には、端末装置１０３を識別するための端末シリアル番号（あるいは、個体識別情報、サブスクライバＩＤなどとも称される場合がある）が含まれる。あるいは、端末装置１０３の利用者を識別するための利用者識別情報が含まれるようになっていてもよい。さらにパスワードが組み合わされていてもよい。また、端末装置１０３の耐タンパ領域などにセキュアな状態で格納された秘密鍵と対をなす公開鍵やＰＫＩ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）などにおける公開鍵証明書であってもよい。
【００２２】
また、認証情報は、端末装置１０３に記憶がされてから認証サーバ１１０に送信されるのではなく、クッキー情報などのように認証サーバ１１０によって生成され、ＤＢ１１１に登録されるとともに、端末装置１０３へ送信され、端末装置１０３に記憶されるものであってもよい。
【００２３】
認証サーバ１１０による認証処理は、端末装置１０３でのアプリケーション１０９の利用を開始するときや、利用の途中で行われる。また、その認証処理は、利用を行う都度行う。あるいは、その認証処理は、利用の回数が所定の回数に達する都度、前回の認証処理からの所定の時間が経過しているときや、所定の期日や時間が経過したときなど、任意のタイミングで任意の回数、行われるようになっていてもよい。
【００２４】
認証サーバ１１０のＤＢ１１１への認証情報の登録は、端末装置１０３においてブラウザなどを動作させ、認証サーバ１１０との通信により行うことが主に想定される。他の端末装置１０３からの通信により登録が行われてもよい。認証情報の登録は、ダウンロードサーバ１０７からアプリケーション１０９を端末装置１０３へダウンロードする前に行われてもよい。あるいは、認証情報の登録は、端末装置１０３にダウンロードしたアプリケーション１０９を初めて起動する際に、アプリケーション１０９と認証サーバ１１０との通信が行われて、ＤＢ１１１に認証情報が登録されていないことが検出された際に行われるようになっていてもよい。
【００２５】
図１（ａ）は、端末装置１０３においてブラウザなどを用いてダウンロードサーバ１０７に対してＵＲＬなどを用いてアプリケーション１０９を指定し、ダウンロード要求を送信し、アプリケーション１０９が端末装置１０３の不揮発性記憶領域（例えば、フラッシュメモリ）に記憶された状況を示す。図１（ａ）では、端末装置１０３がダウンロードサーバ１０７よりアプリケーション１０９をダウンロードのために受信している間には、その旨の表示が表示部１０４に表示されている。また、この表示は、図１４（ａ）に例示されるものであってもよい。ダウンロードが終了すると、端末装置１０３にダウンロードされて記憶されたアプリケーション１０９は、端末装置１０３のアプリケーションマネージャなどの支配下に配置するようになっていてもよい。アプリケーションマネージャとは、アプリケーションの起動や終了などの操作を行うプログラムの一種である。アプリケーションマネージャの支配下にアプリケーションを配置するとは、アプリケーションマネージャのアクセスできる記憶領域に、アプリケーション１０９のパスが記憶されることをいう。アプリケーション１０９のパスとは、端末装置１０３の不揮発性記憶領域を用いて実現されるファイルシステムにおけるアプリケーション１０９を格納するファイルやディレクトリの位置をいう。
【００２６】
なお、アプリケーション１０９をダウンロードサーバ１０７よりダウンロードすることは、端末装置１０３にアプリケーション１０９を導入する一つの方法である。他の方法としては、例えば、パーソナルコンピュータなどを用いてメモリカードにアプリケーション１０９に書き込み、そのメモリカードを端末装置１０３に装着して、メモリカードよりアプリケーション１０９を読出してもよい。また、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）のケーブルを用いて端末装置１０３をパーソナルコンピュータに接続して、パーソナルコンピュータよりアプリケーション１０９をＵＳＢのケーブルを介して受信するようになっていてもよい。あるいは、アプリケーション１０９は、端末装置１０３の外部から導入されることは必須ではない。アプリケーション１０９は、工場での製造時や出荷時にすでに導入された状態になっていてもよく、端末装置１０３の利用者がダウンロードなどの特別な操作を行わなくても起動可能となっていてもよい。
【００２７】
図１（ｂ）は、端末装置１０３においてアプリケーションマネージャなどを用いてアプリケーション１０９を起動し、その実行を開始した状況を示す。
【００２８】
図１（ｃ）は、図１（ｂ）において、アプリケーション１０９が、認証情報を認証サーバ１１０のＤＢ１１１に登録した状況あるいは、認証情報が認証サーバ１１０のＤＢ１１１に登録されていることが確認された状況を示す。端末装置１０３の不揮発性記憶領域には、アプリケーションごとに固有の情報を記憶する領域（例えば、スクラッチパッドなどと称される場合がある）が割り当てられるようになっており、アプリケーション１０９は、起動する都度その領域に記憶されたデータを読出し、認証情報が認証サーバ１１０のＤＢ１１１に登録されているかどうかを判断する。あるいは、クッキー情報が通常格納されているように、共通にアクセスができる記憶領域に記憶されたデータを読出し、認証サーバ１１０から送信されたクッキー情報などが登録されているかどうかによって、認証情報が認証サーバ１１０のＤＢ１１１に登録されているかどうかを判断する。
【００２９】
すなわち、認証情報が認証サーバ１１０のＤＢ１１１に登録されていることが確認される。この確認がされると、図１（ｄ）を参照して後に説明するように、携帯端末１０３からの認証要求に応じて、成功か否かの結果が返信される認証処理が認証サーバ１１０にて実行される状態にすることができる。そして、携帯端末１０３は、認証情報が認証サーバ１１０に登録されている場合には、認証サーバ１１０に対して認証要求を送信し、その返信により認証処理に成功したものか否かによってその後に行う処理を選択する。
【００３０】
もし、アプリケーション１０９が、認証情報が認証サーバ１１０のＤＢ１１１に登録されていないと判断すれば、認証サーバ１１０と通信を行い、認証情報を認証サーバ１１０のＤＢ１１１に登録する処理を行う。このとき、アプリケーション１０９は、端末装置１０３の記憶領域から端末シリアル番号を読出したり、表示部１０４に表示を行い、利用者に利用者識別情報などの入力を促したりする。そして、認証サーバ１１０と通信を行い、ＤＢ１１１に認証情報１１２が登録された旨の返信、あるいは、既に認証情報が登録されている旨の返信が得られれば、アプリケーション１０９の固有の情報を記憶する領域などに、認証情報が登録されている旨を表すデータを記憶する。その後、アプリケーション１０９は、通常の動作を行う。なお、認証情報の登録がされているかどうかの確認は、アプリケーション１０９の起動直後に行われる必要はなく、任意の時点において行うことができる。
【００３１】
図１（ｄ）は、アプリケーション１０９が、アプリケーション１０９の固有の情報を記憶する領域などに記憶されたデータを読出し、認証情報が認証サーバ１１０のＤＢ１１１に登録されていると判断した場合に、認証サーバ１１０に認証要求を送信して認証処理の実行を求めている状況を示す。例えば、アプリケーション１０９は、端末シリアル番号を読出し、認証サーバ１１０に認証要求とともに送信を行う。認証サーバ１１０は、ＤＢ１１１に対して検索を行い、その端末シリアル番号が登録されているかどうかを返信する。登録されていれば、認証処理の結果は成功となり、登録されていなければ、認証処理の結果は失敗となり、成功あるいは失敗の旨が返信される。アプリケーション１０９は、端末シリアル番号がＤＢ１１１に登録されている旨の返信が得られれば、認証が受けられたとして、その後の処理を継続する。もし、端末シリアル番号がＤＢ１１１に登録されていない旨の返信が得られれば、認証が受けられなかったとして、認証処理を求める前に行っていた処理を中断したり、アプリケーション１０９の実行そのものを終了したり、認証失敗用の処理を実行したりする。
【００３２】
なお、認証情報として、端末装置１０３の公開鍵や公開鍵証明書が認証サーバ１１０のＤＢ１１１に登録されているのであれば、チャレンジアンドレスポンス型の認証処理を行うことができる。その一例としては、認証サーバ１１０は乱数などを発生させて端末装置１０３に送信し、端末装置１０３は受信した乱数などをその秘密鍵で暗号化して認証サーバ１１０へ送信し、認証サーバ１１０はＤＢ１１１に登録されている公開鍵や公開鍵証明書によって復号を行い、最初の乱数などが得られるかどうかで認証処理を行い、その結果を返す。以下では、主に端末装置１０３から送信された情報が認証サーバ１１０のＤＢ１１１に登録されているかどうかによって、認証サーバ１１０が認証処理の結果の判定を行うとして説明するが、上述のようなチャレンジアンドレスポンス型の認証処理を用いることは、本願発明の技術的範囲から除外されない。
【００３３】
図２は、端末装置１０３、ダウンロードサーバ１０７、認証サーバ１１０との三者の通信の過程を説明するシーケンス図である。ステップＳ２０１においては、端末装置１０３からダウンロードサーバ１０７に対して、アプリケーションのダウンロード要求が送信される。ステップＳ２０２においては、ダウンロード要求に応じて、アプリケーション１０９がダウンロードサーバ１０７から端末装置１０３に返信される。その後、端末装置１０３では、アプリケーション１０９に対して必要に応じて解凍処理などを施し、不揮発性記憶領域に記憶し、そして、アプリケーションマネージャなどの支配下に配置する。上述したように、ステップＳ２０１とステップＳ２０２によりダウンロードサーバ１０７との通信は必須なものではなく、パーソナルコンピュータから受信され、アプリケーションマネージャなどの支配下に配置されていたり、あるいは端末装置１０３の出荷時に既に導入され、アプリケーションマネージャなどの支配下に配置されていたりしてもよい。
【００３４】
その後、端末装置１０３においてアプリケーション１０９を起動し、実行を開始する。その際、アプリケーション１０９は、認証情報が認証サーバ１１０のＤＢ１１１に登録されているかどうかを、アプリケーション１０９固有の記憶領域などのデータを読出して判断する。その判断に応じて、ステップＳ２０３において、認証情報が認証サーバ１１０のＤＢ１１１に登録されていることが確認できなければ、認証サーバ１１０に認証情報を登録する要求である認証登録要求を送信し、認証情報が認証サーバ１１０のＤＢ１１１に登録されていることが確認されれば、認証サーバ１１０に認証処理を行うよう認証要求を送信する。そして、ステップＳ２０４においては、認証登録要求や認証要求の結果を受信する。そして、その結果に応じて、その後の処理を選択したり、中断、停止、終了を選択したりする。もちろん、認証登録要求や認証要求は、アプリケーション１０９の起動の都度、毎回送信される必要はない。なお、以下では、認証処理とは主に認証サーバ１１０で行われる処理を意味し、単に認証と記した場合には主に端末装置１０３で行われる処理を意味する。
【００３５】
ここで、アプリケーション１０９と認証サーバ１１０との通信がエラーとなり、認証要求に対する返信を得ることができない場合がある。例えば、端末装置１０３の通信機能が故障している場合、端末装置１０３と基地局１０２との通信ができない場合、第１の通信網１０１、ＧＷ１０５もしくは第２の通信網１０６に障害が発生している場合または認証サーバ１１０に障害が発生している場合などには、認証要求に対する返信を得ることができない。このような場合には、アプリケーション１０９の内部では、認証サーバ１１０と通信のためのコネクションを確立する際のエラー、認証サーバ１１０に端末シリアル番号を送信する際のエラー、認証サーバ１１０より返信が所定の時間内に得られないことによるタイムアウト、返信を受信する際のエラー、受信したデータが所定の形式でないことによるエラーなどが発生して、通信のエラーとして検出がされる。具体的には、通信を行うためのシステムコールやそれらのシステムコールを用いたライブラリ関数などの戻り値の異常や、例外が発生し、通信のエラーとして検出される。
【００３６】
本発明の特徴の一つは、通信のエラーが発生した場合であっても、所定の範囲での過去において行われた認証処理の中に成功したものがあれば返信された認証の結果が成功したものとみなしてアプリケーション１０９の動作を継続可能とする点である。
【００３７】
（実施形態１）
（端末装置の構成）
図３は、処理実行装置を実現する端末装置のハードウェア構成を示す機能ブロック図である。端末装置３００は、バス３０７によって接続されたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０２と、不揮発性記憶部３０３と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０４と、操作部３０５と、表示部３０６とを有する。
【００３８】
ＣＰＵ３０１は、マシンコードを実行し、プログラムを実行する回路である。また、通信Ｉ／Ｆ３０４、操作部３０５、表示部３０６などが発生する割り込み信号を取得して割り込み信号に応じた処理を行う。ＲＡＭ３０２は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などにより構成されるメモリであり、ＣＰＵ３０１が実行するプログラムを記憶する。また、そのプログラムが参照するデータを記憶することが可能である。不揮発性記憶部３０３は、携帯端末３００の電源を切断しても、記憶された情報を保持可能な記憶部である。例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの読み出し専用の記憶素子や、フラッシュメモリなどの書き換えが可能な記憶素子などにより構成される。通信Ｉ／Ｆ３０４は、携帯端末３００が外部と通信を行うためのインターフェースである。通信方式に応じたネットワークアダプタなどを含む。操作部３０５は、携帯端末の利用者によるボタンなどの操作を検出し、その操作を示す情報を生成する部である。例えば、どのボタンが押下されたか、タッチパネルの機能を有する画面のどの部分がタッチされたかどうかを表すデータをイベント情報などとして生成する。生成されたデータは、後述のオペレーティングシステムを介して、アプリケーションプログラムが取得可能となる。表示部３０６は、液晶素子や有機ＥＬ素子などを用いて構成されるディスプレイに表示を行うための部である。
【００３９】
携帯端末３００の電源が投入されると、ＣＰＵ３０１によるブート処理が行われ、不揮発性記憶部３０３に記憶されているオペレーティングシステムがＲＡＭ３０２に展開され、そのオペレーティングシステムが実行される。
【００４０】
図４は、オペレーティングシステムが実行され、そのオペレーティングシステムの管理下でプログラムが動作している様子を示す模式図である。ハードウェア４０１の上の論理的なレイヤにおいてオペレーティングシステム４０２が動作する。これにより、オペレーティングシステムの管理下で動作するプログラムは、オペレーティングシステム４０２を介してハードウェア４０１の制御やハードウェア４０１からのデータの受信を行うことができる。オペレーティングシステム４０２の管理下で動作するプログラムには、仮想マシン４０３、ブラウザなどがある。仮想マシン４０３は、仮想マシンコードを実行するプログラムであり、仮想マシンコードで記述されたプログラムを実行する。一般的に、仮想マシンが実行する仮想マシンコードで記述されたプログラムが「アプリケーション」と称される場合が多い。仮想マシン４０３を動作させることにより、ハードウェア４０１が異なっていても同じ記述のアプリケーションを動作させることが可能となる。また、アプリケーションは、ネイティブコードで記述されてもよく、仮想マシン４０３を介さず、オペレーティングシステム４０２の管理下で動作するものであってもよい。
【００４１】
（ダウンロードサーバ、認証サーバの構成）
図５は、ダウンロードサーバ１０７や認証サーバ１１０を実現するサーバ装置のハードウェア構成を示す機能ブロック図である。サーバ装置５００は、バス５０５によって接続されたＣＰＵ５０１、ＲＡＭ５０２、通信Ｉ／Ｆ５０３、不揮発性記憶部５０４を有する。なお、ＣＰＵ５０１、ＲＡＭ５０２、通信Ｉ／Ｆ５０３、不揮発性記憶部５０４、バス５０５は、携帯端末３００のそれらと対応するものと同じものが用いられる必要はない。端末装置３００で用いられているものよりも高性能なものがサーバ装置５００で用いられるであるのが一般的である。例えば、不揮発性記憶部５０４は、現状ではハードディスク装置が一般的に用いられ、端末装置３００の不揮発性記憶部３０３の記憶容量よりも大きなものが用いられることが多い。ＣＰＵ５０１は処理スピードがＣＰＵ３０１よりも高く、また、ＲＡＭ５０２もアクセススピードがＲＡＭ５０２よりも高いものが用いられることが多い。
【００４２】
サーバ装置５００の電源が投入されると、ＣＰＵ５０１によるブート処理が行われ、不揮発性記憶部５０４に記憶されているオペレーティングシステムがＲＡＭ５０２に展開され、オペレーティングシステムが実行される。その後、このオペレーティングシステムの管理下で各種のサーバプログラムなどが実行される。
【００４３】
図６は、オペレーティングシステムが実行され、そのオペレーティングシステムの管理化で各種プログラムが実行されている様子を示す模式図である。図４と同様に、ハードウェア６０１の上の論理的なレイヤにおいてオペレーティングシステム６０２が動作し、オペレーティングシステムの管理下で動作するプログラムは、オペレーティングシステム６０２を介してハードウェア６０１の制御やハードウェア６０１からのデータの受信を行う。オペレーティングシステム６０２の管理下で動作するプログラムは、外部との通信を行うサーバプログラム６０３や外部との通信を行わないローカルプログラム６０４に分類される。サーバプログラム６０３は、例えば、ウェブサーバの機能を実現するプログラムであり、ローカルプログラム６０４は、データベース管理システムである。
【００４４】
（ダウンロード処理について）
図７は、端末装置１０３がダウンロードサーバ１０７よりアプリケーション１０９をダウンロードする処理の流れを説明するフローチャートを示す。端末装置１０３では、例えばブラウザ４０５を動作させ、ダウンロードサーバ１０７で動作しているＷＥＢサーバの機能を実現するサーバプログラム６０３と通信を行い、アプリケーション１０９のダウンロード用のウェブページなどを表示部３０６により表示する。そして、ダウンロードのためのボタンなどが押下されたことを操作部３０５からの割り込みでＣＰＵ３０１が検出すると、図７に示されるフローチャートの処理がＣＰＵ３０１によりブラウザ４０５などの機能の一部として実行される。
【００４５】
ステップＳ７０１においては、ダウンロードセッションの開始処理が行われる。例えば、サーバプログラム６０３と、ダウンロードのための通信セッションを確立する。ステップＳ７０２においては、ダウンロードされるアプリケーションを格納するファイルを、不揮発性記憶部３０３により実現されるファイルシステムに作成し、そのファイルを書き込みモードなどにてオープンする。ステップＳ７０３において、ダウンロード要求を、確立した通信セッションを用いてサーバプログラム６０３に送信する。後に図８に示されるように、ダウンロードサーバ１０７からアプリケーションの送信が行われるので、ステップＳ７０４、Ｓ７０５、Ｓ７０６により形成されるループにおいて、ダウンロードサーバ１０７から送信されるデータをバッファなどのＲＡＭ３０２の所定の記憶領域に読み込み、ステップＳ７０２にてオープンされたファイルに書き込むことを、データの読み込み時にＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｉｌｅ）が検出されるまで繰り返す。ＥＯＦが検出されると、ステップＳ７０７へ移行し、ステップＳ７０２でオープンされたファイルをクローズし、ステップＳ７０８において、Ｓ７０１で確立された通信セッションを終了する。その後、ダウンロードで読み込まれたデータに破損がないかなどをチェックし、必要であれば、ファイルに書き込まれたデータの解凍処理などを行い、ダウンロードされたアプリケーションをアプリケーションマネージャの支配下に配置などする。
【００４６】
なお、図１４（ａ）は、ダウンロードセッションが開始され、そのセッションが終了するまでのディスプレイの表示の一例を示す。すなわち、ダウンロードサーバと通信が行われている旨の「通信中…」が表示される。
【００４７】
図８は、ダウンロードサーバ１０７が端末装置１０３にアプリケーション１０９をダウンロードさせる処理の流れを説明する。この処理は、例えば、ウェブサーバの機能を実現するサーバプログラム６０３の機能の一部として、ＣＰＵ５０１により実行される。
【００４８】
ステップＳ８０１において、ダウンロード要求が受信されるまで待ち状態に入る。例えば、ＬＩＳＴＥＮシステムコールを実行し、何らかのデータが受信可能になると、受信可能となったデータを取得しダウンロード要求であるかどうかを判断する。ダウンロード要求であると判断されると、ステップＳ８０２に処理を移行し、アプリケーション１０９が格納されたファイルを読出しモードにてオープンする。その後、ステップＳ８０３、Ｓ８０４、Ｓ８０５により形成されるループにおいて、オープンされたファイルのデータをバッファなどとして用いられるＲＡＭ５０２の領域に読み込み、読み込まれたデータを通信Ｉ／Ｆ５０３を介して送信することを、ファイルのデータが全て読み込まれてＥＯＦが検出されるまで繰り返し行う。ＥＯＦが検出されると、ステップＳ８０６において、ファイルをクローズして、ステップＳ８０７において、セッションの終了処理を行う。
【００４９】
（アプリケーションの実行について）
図９は、端末装置１０３にダウンロードされたアプリケーション１０９を実行するための処理の流れを説明するフローチャートである。端末装置１０３で所定のボタンなどの操作を行い、アプリケーションマネージャなどにアプリケーション１０９の起動を命令すると、図９に示されるフローチャートの処理がアプリケーションマネージャなどの機能としてＣＰＵ３０１により開始される。ステップＳ９０１において、不揮発性記憶部３０３に記憶されたアプリケーション１０９をＲＡＭ３０２にロードする。その後、ステップＳ９０２において、アプリケーション１０９の動作を開始するように、仮想マシン４０３に命令したり、オペレーティングシステム４０２を介してＣＰＵ３０１に命令したりする。これによりアプリケーション１０９が実行される。
【００５０】
図１０は、アプリケーション１０９が、端末装置１０３のハードウェアと一体として実行されることにより、実現され、所定の処理を実行する装置（処理実行装置）の機能ブロック図を示す。アプリケーションの実行によって実現される装置１０００は、主処理部１００１と、認証情報記憶部１００２と、認証結果履歴更新部１００３と、通信部１００４と、認証制御部１００５と、を有する。これらの部は、以下に説明する各部の機能を発揮するためのクラスやインスタンスのメソッドあるいは関数（ｆｕｎｃｔｉｏｎ）、手続（ｐｒｏｃｅｄｕｒｅ）を含むモジュールとして実現される。
【００５１】
主処理部１００１は、アプリケーション１０９の本来の処理を行う部である。「本来の処理」とは、アプリケーション１０９全体として実現される機能を提供するための処理である。例えば、アプリケーション１０９が、ゲームを行うためのプログラムであれば、端末装置１０３の利用者によるボタンなどの操作を検出し、その検出に応じて画面表示を変化させて、その利用者に一連のゲームをさせることが、本来の処理である。また、アプリケーション１０９がコンテンツ再生のソフトウェアであれば、音楽や映像などのコンテンツを表す情報を読み込み、コンテンツの再生を行うのが本来の処理である。本発明の一実施形態では、本来の処理の中には、認証制御部１００５に制御を移し、認証サーバ１１０へ認証処理を要求し、返信された認証処理の結果が成功か否かによってその後に行う処理を選択する処理選択の処理が含まれる。例えば、認証処理の結果が成功であれば、認証制御部１００５に制御を移す前の処理を続行する選択を行い、認証処理の結果が成功でなければ、認証制御部１００５に制御を移す前の処理を中断などする。したがって、主処理部１００１は、処理選択の処理を行う処理選択部を含むといえる。
【００５２】
アプリケーション１０９がプログラムであれば、そのエントリポイントは通常、主処理部１００１の内部に設定される。すなわち、アプリケーション１０９の実行の開始の際には、仮想マシン４０３やＣＰＵ３０１などの有するレジスタの一つであるプログラムカウンタには、主処理部１００１内部のアドレスが設定される。もちろん、エントリポイントは、必要に応じて、任意のアドレスに設定できる。
【００５３】
認証情報記憶部１００２は、認証結果履歴情報１００７を読出し可能に、また更新可能に記憶する。また、認証結果履歴情報１００７に加えて、図１０に示されるように登録済情報１００６を記憶していてもよい。認証情報記憶部１００２は、不揮発性記憶部３０３やＲＡＭ３０２などのメモリに一定の領域を確保し、その領域に登録済情報１００６と認証結果履歴情報１００７とを記憶し、そのように記憶された登録済情報１００６と認証結果履歴情報１００７とにアクセスを行うモジュールなどとして実現される。
【００５４】
登録済情報１００６とは、認証サーバ１１０に認証情報が登録されているかどうかを示す情報である。例えば、その値が０ならば登録されておらず、０以外の値、例えば１、であれば認証情報が登録されていることを示す。また、登録済情報１００６は、認証サーバ１１０に認証情報の登録を要求し、返信された情報であってもよい。具体的には、登録の要求がされた認証情報や認証情報から所定の演算で得られる情報を認証サーバ１１０の秘密鍵で暗号化した情報であってもよい。このように、認証情報記憶部１００２に登録済情報１００６を記憶することにより、認証サーバ１１０と実際に通信を行わなくても、認証情報が認証サーバ１１０に既に登録されているかどうかを判断することができる。さらに、認証サーバ１１０の秘密鍵で暗号化した情報を登録済情報として用いれば、登録済情報１００６の偽造も困難となり、不正を行うことが困難となるため、確実に認証情報が認証サーバ１１０に登録されているかどうかを判断することができる。
【００５５】
登録済情報１００６を認証情報記憶部に記憶することにより、認証サーバ１１０に認証情報が登録されていない場合には、認証処理の実行の要求を送信しなくても、認証処理の結果が成功とならならいことを検出できる。この結果、無駄な通信を抑制できる。また、認証情報が登録されているか否かに応じて、その後に行う処理を選択することもできる。
【００５６】
認証結果履歴情報１００７とは、認証サーバ１１０に認証情報の登録がされた後に、認証サーバ１１０に認証処理を要求してその認証処理が成功したことがあるかどうかを示す情報である。認証結果履歴情報１００７の一例としては、認証サーバ１１０に認証処理を要求して得られる認証結果の履歴（例えば、ログ）を表す情報である。ここで、認証結果とは、認証サーバ１１０との通信がエラーになったかどうかに加え、認証ステータス情報を含む情報である。認証ステータス情報とは、認証サーバに認証要求を行い、それに応じて認証サーバで行われる判定である認証処理の結果として返信された情報であり、認証サーバでの認証処理が成功したか失敗したかを示す情報をいう。認証結果履歴情報１００７は、認証サーバ１１０に認証情報の登録がされた後に行われた全ての認証結果を表していてもよい。あるいは認証サーバ１１０に認証情報の登録がされた後に行われた所定の回数だけの認証結果を表していてもよい。例えば、認証結果履歴情報１００７は、最近に行われた認証要求のうち所定の回数の結果のみを示す情報であってもよい。より具体的には、前回行われた認証要求１回のみの認証結果を示す情報であってもよい。
【００５７】
また、後述するように、認証結果履歴情報１００７は、認証ステータス情報が得られ、認証処理が成功していれば、所定の値として認証情報記憶部１００２に記憶される数値（例えば、整数値）であってもよい。この場合、認証サーバ１１０との通信がエラーとなったり認証処理が失敗となったりした場合には、所定の数（例えば、１）が減じられて認証情報記憶部１００２に記憶されるようになっていてもよい。そして、認証情報記憶部１００２から読み出された認証結果履歴情報１００７が所定の値の範囲（例えば、より大）であれば、認証サーバ１１０に認証処理を要求してその認証処理が成功したことがあると判断されるようになっていてもよい。
【００５８】
登録済情報１００６が記憶される場合には、アプリケーション１０９が端末装置１０３にダウンロードされる際に、クリアされて初期化される。あるいは、アプリケーション１０９に初期化された状態のデータとして含まれていてもよい。また、登録済情報１００６が複数のアプリケーションにより共有して読出しや更新がされる場合には、その複数のアプリケーションの中の最初に端末装置１０３にダウンロードされて実行されたアプリケーションによってクリアなどされて初期化される。認証結果履歴情報１００７についても同様にクリアされて初期化されるようになっていてもよい。
【００５９】
ここで「登録済情報１００６をクリアして初期化する」とは、登録済情報１００６を、認証サーバ１１０に認証情報が登録されていないことを示す情報とすることである。
【００６０】
また、「認証結果履歴情報１００７をクリアして初期化する」とは、認証結果履歴情報１００７に含まれる情報の中に、認証処理の成功を示す情報が含まれないようにすることである。例えば、認証結果履歴情報１００７に、過去に認証処理を要求した結果得られる認証結果が含まれる場合には、その含まれる認証結果の全てを成功していない旨を示す情報に書き換えることである。
【００６１】
認証結果履歴更新部１００３は、認証結果に応じて、認証情報記憶部１００２に記憶されている認証結果履歴情報１００７を更新する部である。すなわち、認証結果履歴更新部１００３は、通信エラーの発生に応じて、また通信エラーの発生が無ければ、前記認証要求の送信に対して返信され受信された認証処理の結果に応じて、認証結果履歴情報１００７を更新する。例えば、通信エラーが発生したことを表す値、認証処理の結果表す値を、認証情報記憶部１００２に記憶されている認証結果履歴情報１００７に上書したり、認証情報記憶部１００２に記憶されている認証結果履歴情報１００７に、過去に行われた所定の回数の認証結果が含まれているのであれば、その中で時間的に最も前に行われた認証結果を削除して、通信エラーが発生したことを表す値や認証処理の結果を表す値を追加したりする。あるいは、状態遷移を行うようにして更新を行ってもよい。あるいは、認証結果履歴情報１００７が数値であれば、上述したように、認証処理に成功した際に所定の数値に設定し、通信がエラーとなった場合にはその数値が所定の値の範囲にあるかどうかが判断されるようになっていてもよい。
【００６２】
通信部１００４は、認証サーバ１１０に対する通信の処理を行う。通信部１００４が行う通信の処理は、認証サーバ１１０に、必要であれば認証情報の登録要求を送信し、また認証サーバ１１０に対して認証要求を送信し、送信した結果を受信することに分けられる。登録要求が送信される場合、登録要求、認証要求のどちらの送信を行って結果を受信するかは、認証制御部１００５により決定される。したがって、通信部１００４は、少なくとも、認証サーバ１１０へ認証要求を、ネットワークを介して送信する送信部と、認証サーバ１１０が認証要求を受信すると、その受信に応じて、認証処理の結果が成功か否かの判定を行い、その結果、認証サーバ１１０から送信される認証ステータス情報を受信する受信部とを含むといえる。
【００６３】
認証サーバ１１０に認証情報の登録要求をすることとは、図１（ｃ）を参照して説明したように、認証サーバ１１０のＤＢ１１１に認証情報を登録させることである。例えば、通信部１００４は、端末シリアル番号などを読出し、その端末シリアル番号などをＤＢ１１１に登録する要求とともに認証サーバ１１０に送信し、通信部１００４がその登録結果の通知を受ける。
【００６４】
認証サーバ１１０に認証要求を行うこととは、図１（ｄ）を参照して説明したように、認証情報の照会などを認証サーバ１１０に対して行い、その認証結果の通知である認証ステータス情報を受けることである。例えば、通信部１００４は、端末シリアル番号などを読み出し、その端末シリアル番号などがＤＢ１１１に登録されているかどうかの確認の要求とともに認証サーバ１１０に送信し、通信部１００４がその結果の通知を認証ステータス情報として受ける。
【００６５】
なお、認証結果には、認証サーバ１１０からの認証ステータス情報を受信して照会した端末シリアル番号などがＤＢ１１１に登録されているかどうかの確認の結果のみならず、認証サーバ１１０との通信セッションの確立、データの送信、データの受信を行った際に通信のエラーの発生の有無やエラーの種類の情報を含ませるようにしてもよい。したがって、通信部１００４は、少なくとも、送信部による認証要求の送信と受信部による認証処理の結果の受信とが行われる際の通信エラーの発生の有無を検出するエラー検出部を含むといえる。
【００６６】
認証制御部１００５は、認証情報記憶部１００２に記憶されている認証結果履歴情報１００７、また加えて必要ならば登録済情報１００６を読出す。そして、通信部１００４を動作させて認証サーバ１１０に対して認証情報の認証要求、あるいは必要ならば登録要求を送信させ、認証結果履歴情報１００７を認証結果履歴更新部１００３により更新する。また、認証制御部１００５は、主処理部１００１からメソッド呼び出しなどによって実行の制御が渡されると、認証が成功したか否か（認証ＯＫかどうか）を表す認証結果を主処理部１００１に返す。これにより、主処理部１００１は、その後の処理を選択することができる。また必要ならば、認証結果によっては、アプリケーションの実行を中断させたり終了させたりもしてもよい。認証制御部１００５で行う認証制御の処理のうち、認証サーバ１１０に対する認証要求の送信などを、通信部１００４により行い、認証情報記憶部１００２に記憶されている認証に関する情報の更新は、認証結果履歴更新部１００３により行う。
【００６７】
ここで、認証制御部１００５は、通信部１００４から受け取った認証結果がエラーを示す場合には、認証結果履歴情報１００７に認証処理の成功を示す情報が含まれていれば、認証結果を成功とみなして主処理部１００１に認証ＯＫを返し、含まれていなければ認証結果を失敗とみなして主処理部１００１に認証ＮＧを返す。なお、認証結果履歴情報１００７に認証処理の成功を示す情報が含まれるとは、明示的に含まれる場合のみならず、実質的に含まれているのと同じであることを含む。明示的に含まれるとは、例えば、過去に行われた認証結果の履歴をそのまま保持しており、過去に行われた認証のそれぞれに対する認証結果が保持されている場合である。また、実質的に含まれているとは、過去に行われた認証のそれぞれの認証結果は導けないが、例えば、過去に行われた認証の中に成功しているものがあれば、ＴＲＵＥ、そうでなければ、ＦＡＬＳＥの値を取るフラグが用いられている場合である。また、フラグのかわりにカウンターなどを用いていてもよい。
【００６８】
図１１は、アプリケーション１０９の動作が開始した後のアプリケーション１０９による処理のフローチャートの一例を示す。ステップＳ１１０１において、主処理部１００１の動作が開始し、アプリケーション１０９の動作に必要なデータ、変数の初期化を行う。例えば、アプリケーション１０９がゲームプログラムであれば、前回の実行で達したステージの識別子や獲得したポイントなどを不揮発性記憶部３０３より読み込み、アプリケーション１０９に割り当てられたメモリ空間に配置する。ステップＳ１１０２において、主処理部１００１から認証制御部１００５を動作させるためのメソッドなどが呼び出されて、認証制御部１００５による認証制御の処理を行う。その処理の結果は、メソッドなどの戻り値などとして返され、ステップＳ１１０３において、認証が成功したかどうかとして判断される。認証が成功したのであれば、ステップＳ１１０４に処理を移行させる。すなわち、上述したメソッド呼び出しから復帰して、その後の主処理部１００１の処理が行われる。もし、認証が成功せず失敗すれば、アプリケーション１０９の処理を終了させる。
【００６９】
図１１に示すフローチャートは、アプリケーション１０９による処理の一例にすぎず、認証制御の処理は、初期化の後に必ず行われる必要はない。初期化の後、主処理をある程度行った後、例えば、ゲームなどの次のステージに進む際に、認証制御の処理を行うようになっていてもよい。また、認証が成功しなければ、アプリケーション１０９の処理を終了せずに、次のゲームなどのステージに進ませない、再生の品質を定められた品質以上にしないなど、アプリケーション１０９の機能を制限させるようになっていてもよい。
【００７０】
なお、図１４（ｂ）は、アプリケーション１０９がメモリにロードされ、動作を開始するまでのディスプレイの表示の一例を示す。「起動中…」の表示の下に、メモリへのロードの進行状況や、初期化の進行状況の表示がされる。
【００７１】
図１２、図１３は、認証制御部１００５における処理の流れを説明するフローチャートを示す。すなわち、図１２は、図１１のステップＳ１１０２における処理を詳細に説明するフローチャートである。また、図１３（ａ）、（ｂ）は、図１２のステップＳ１２２０における処理を詳細に説明するフローチャートである。
【００７２】
認証制御部１００５を動作させるためのメソッドなどが呼び出されると、図１２に例示されたフローチャートの処理が開始する。ステップＳ１２０１において、通信部１００４は、認証情報記憶部１００２から登録済情報を読出し、認証情報が認証サーバ１１０に未登録であるかを判断する。もし、未登録であれば、ステップＳ１２０２へ移行し、登録済みであれば、ステップＳ１２０９へ移行する。
【００７３】
ステップＳ１２０２においては、通信部１００４を動作させ、認証情報を登録するための登録要求を認証サーバ１１０へ送信する処理を行う。続くステップＳ１２０３では、ステップＳ１２０２での送信の際に、通信エラーが発生しなかったかどうかを判断する。例えば、認証サーバ１１０との通信コネションが確立でき、その通信コネクションを用いて要求が送信でき、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）が用いられているならばＡＣＫが受信されたかどうかを判断する。もし、通信エラーが発生せずに登録要求の送信ができたのであれば、ステップＳ１２０４へ移行し、通信エラーが発生して登録要求の送信ができなければ、ステップＳ１２０８へ移行する。
【００７４】
ステップＳ１２０４においては、認証情報を認証サーバ１１０に登録させるために、認証情報を認証サーバ１１０へ送信する処理を行う。続くステップＳ１２０５では、認証情報の登録が完了された旨の返信が得られたかどうかを判断する。もし、登録完了されたのであれば、ステップＳ１２０６へ移行し、認証情報の登録が完了された旨の返信が得られなかった場合には、ステップＳ１２０８へ移行する。
【００７５】
ステップＳ１２０６では、認証制御部１００５により認証情報記憶部１００２に、認証サーバ１１０に認証情報が登録されている旨の登録済情報１００６を記憶する。続くステップＳ１２０７においては、認証ＯＫの返答を主処理部１００１に行う。
【００７６】
ステップＳ１２０３において、通信エラーが発生し、認証情報の登録要求の送信できなかったと判断されたり、ステップＳ１２０５で登録が完了のされている旨の返信が得られなかったりした場合には、上述のようにステップＳ１２０８に移行する。ステップＳ１２０８においては、登録がＯＫでなく、したがって認証もできない旨の返答を主処理部１００１に行う。あるいは、認証制御部１００５でアプリケーション１０９の実行を中断させたり、停止させたり、終了させてもよい。また、端末装置全体をロックなどして操作できないようにしてもよい。
【００７７】
なお、ステップＳ１２０７において、認証ＯＫの返答を行うと説明したが、登録が初めて行われたことを示す別の返答（例えば、「登録ＯＫ」）を行ってもよい。これにより、登録が初めて行われたことに応じて、その後の処理として、歓迎のメッセージを表示したりすることなどを主処理部１００１が選択できる。
【００７８】
ステップＳ１２０１において、認証情報が認証サーバ１１０に登録されていると判断された場合には、上述のようにステップＳ１２０９に移行する。ステップＳ１２０９では、認証要求の送信を認証サーバ１１０に行う処理をする。続くステップＳ１２０１０では、ステップＳ１２０９での送信の際に、通信エラーが発生しなかったかどうかを判断する。例えば、認証サーバ１１０との通信コネションが確立でき、その通信コネクションを用いて要求が送信でき、ＴＣＰが用いられているならばＡＣＫが受信されたかどうかを判断する。もし、通信エラーが発生せずに認証要求の送信ができたのであれば、ステップＳ１２１１へ移行し、通信エラーが発生して認証要求の送信ができなければ、ステップＳ１２２０へ移行する。
【００７９】
ステップＳ１２１１においては、認証情報を認証サーバ１１０に送信する処理を行う。例えば、端末シリアル番号を読出して送信する。続くステップＳ１２１２においては、ステップＳ１２１１での送信の際に、通信エラーが発生しなかったかどうかをステップＳ１２１０と同様に判断する。もし、通信エラーが発生せずに認証情報の送信ができたのであれば、ステップＳ１２１３へ移行し、通信エラーが発生して認証情報の送信ができなければ、ステップＳ１２２０へ移行する。
【００８０】
ステップＳ１２１３においては、認証サーバ１１０からの認証ステータス情報の受信処理を行う。続くステップＳ１２１４において、通信エラーが発生せずに認証ステータス情報の受信ができたかどうかの判断を行う。この判断では、データが通信エラーなしで受信できたかどうかに加えて、受信したデータが所定の形式になっているかどうかも判断する。例えば、認証ステータス情報が０または１を表す１バイトの情報で返信されると規定されている場合、０でも１でもないデータが受信されたり２バイト以上の情報が受信されたりした場合にも通信エラーが発生したと判断する。もし、通信エラーが発生せずに認証ステータス情報の受信ができたと判断されれば、ステップＳ１２１５へ移行し、そうでなければ、ステップＳ１２２０へ移行する。
【００８１】
ステップＳ１２１５においては、受信されたデータを解析や予め定められた値と比較などし、認証結果を取得する。例えば、受信されたデータが０を表す１バイトと等しければ、認証が成功した旨を取得し、それ以外の値（例えば１を表す１バイト）と等しければ、認証が失敗した旨を取得する。
【００８２】
ステップＳ１２１６においては、認証結果履歴更新部１００３を動作させ、ステップＳ１２１５で取得された認証結果である認証ステータス情報または認証ステータス情報に対応するコード（数値または文字情報）を用いて認証結果履歴情報１００７の更新を行う。認証結果履歴情報１００７に記憶する情報として、認証が成功した場合には１やＦＦＨ（１６進数）、認証が失敗の場合には０や００Ｈ（１６進数）が例示できる。また、認証が成功の場合には「ＯＫ」、認証が失敗の場合には「ＮＧ」のように文字の表現を含む文字情報でもよい。
【００８３】
ステップＳ１２１７では、ステップＳ１２１５で取得された認証結果である認証ステータス情報を判断し、認証処理が成功したのであれば、ステップＳ１２１８へ移行し、認証ＯＫの返答を行い、認証処理が失敗したのであれば、ステップＳ１２１９へ移行し、認証ＮＧの返答を行う。
【００８４】
ステップＳ１２１０、Ｓ１２１２、Ｓ１２１４において通信エラーが発生したと判断されれば、上述のようにステップＳ１２２０へ移行して、通信エラー（認証サーバ１１０との送受信のエラー）が発生した場合の処理を行う。その処理のフローチャートの例を図１３（ａ）に示す。
【００８５】
ステップＳ１３０１において、認証制御部１００５は、認証結果履歴情報１００７を認証情報記憶部１００２より読出す。続くステップＳ１３０２において、認証結果履歴情報１００７を調べ、認証が成功したことがある旨が示されているかどうかを判断する。例えば、認証結果履歴情報１００７が、過去に行われた認証処理のうち最新の所定の回数の認証結果が含まれているのであれば、その所定の回数の認証結果の中に、少なくとも１回以上認証が成功したことがあるかどうかを判断する。もし、１回でも認証が成功したことがあれば、ステップＳ１３０３に移行する。１回も認証が成功したことが示されていなければ、ステップＳ１３０４に移行する。
【００８６】
ステップＳ１３０３においては、認証ＯＫを返答するように準備する。例えば、変数に認証ＯＫを表す値を格納する。一方、ステップＳ１３０４においては、認証ＮＧを返答するように準備する。ステップＳ１３０３、Ｓ１３０４の後には、ステップＳ１３０５へ移行する。
【００８７】
ステップＳ１３０５では、認証結果履歴情報１００７を更新する。この場合には、通信エラーが発生したことを用いて認証結果履歴情報１００７を更新する。例えば、過去に行われた認証処理のうち最新の２回（すなわち、直前と、その前）の認証結果が認証結果履歴情報１００７により表される場合において、例えば、直前の認証が成功し、その前の認証が失敗のときに、認証結果履歴情報１００７を｛直前：成功、その前：失敗｝と表記するので、更新後の認証結果履歴情報１００７は、｛直前：エラー、その前：成功｝となる。その後、ステップＳ１３０６において、認証ＯＫや認証ＮＧの返答を行う。
【００８８】
また、図１３（ｂ）は、認証結果履歴情報１００７が整数値などの数値である場合のステップＳ１２２０の処理のフローチャートを示す。なお、認証結果履歴情報１００７が数値である場合には、ステップＳ１２１６においては、認証が成功すれば、第１の所定の数値（例えば、２）を認証結果履歴情報１００７として記憶し、認証が失敗すれば、第２の所定の数値（例えば、１）を記憶されている認証結果履歴情報１００７より減じて記憶しなおしたり、さらに第３の所定の数値（例えば、０）を認証結果履歴情報１００７として記憶したりすることにより、認証結果履歴情報１００７の更新を行うものとする。
【００８９】
ステップＳ１３０７では、ステップＳ１３０１と同様に、認証結果履歴情報１００７を読み出す。ステップＳ１３０８では、読み出された認証結果履歴情報１００７が定められた範囲にあるかどうか（例えば、正の数値であるかどうか）を判断する。もし、読み出された認証結果履歴情報１００７が定められた範囲にあれば、ステップＳ１３０９に移行し、ステップＳ１３０３と同様に、認証ＯＫを返答するように準備を行う。また、読み出された認証結果履歴情報１００７が定められた範囲になければ（例えば、０以下の数値であれば）、ステップＳ１３１０に移行し、ステップＳ１３０４と同様に、認証ＮＧを返答するように準備を行う。
【００９０】
ステップＳ１３０９、Ｓ１３１０の後は、ステップＳ１３１１に移行し、認証結果履歴情報１００７の更新を行う。図１３（ｂ）の場合には、ステップＳ１３０７で読み出された認証結果履歴情報１００７から上述の別の数値を減算して記憶する。その後、ステップＳ１３１２において、ステップＳ１３０６と同様に、返答を行う。
【００９１】
例えば、上述のように、第１の所定の数値が２であり、第２の所定の数値が１であり、定められた範囲が正の数値の範囲であるとして、時間の経過にしたがって、（１）認証処理の成功、（２）認証処理の成功、（３）通信エラー、（４）通信エラーとなったとする。（１）の認証処理の成功によって、ステップＳ１２１６により、認証結果履歴情報１００７として２が記憶され、同様に、（２）の認証処理の成功により、認証結果履歴情報１００７として２が記憶される。（３）の通信エラーの発生により、図１３（ｂ）のフローチャートの処理が実行されると、認証ＯＫが返答され、認証結果履歴情報１００７として１が記憶される。そして、（４）の通信エラーの発生により、図１３（ｂ）のフローチャートの処理が実行されると、再び認証ＯＫが返答され、認証結果履歴情報１００７として０が記憶される。もし、その後、再度通信エラーとなり、図１３（ｂ）のフローチャートの処理が実行されると、ステップＳ１３０７で読み出される認証結果履歴情報１００７が０となり、正の数値ではないので、認証ＮＧが返答されることになる。
【００９２】
このように、第１の所定の数値が２であり、第２の所定の数値が１であり、定められた範囲が正の数値の範囲であれば、認証の成功のあと、認証サーバとの通信が２回連続してエラーとなっても認証ＯＫとしてアプリケーションの処理が継続され、３回連続してエラーになると認証ＮＧとなり、アプリケーションの処理が継続されないようにすることができる。第１の所定の数値、第２の所定の数値、定めれた範囲は、任意に定めることができる。
【００９３】
図１４（ｃ）、（ｄ）、（ｅ）は、認証結果履歴情報１００７が、過去に行われた認証のうち、直前の一回の認証の認証結果だけを示す場合に、ステップＳ１３０３、Ｓ１３０４が実行されたときのディスプレイへの表示例を示す。もし、認証結果履歴情報１００７の示す直前の認証における認証結果が、認証が成功した旨のものであり、ステップＳ１３０３が実行されたのであれば、今回は認証に成功したとみなしたことを表示する。これは、今回の認証は、認証サーバと通信ができなかったので認証処理が成功したたかどうかは不明であるが、直前の一回の認証処理は成功しているからである。ただし、次回の認証処理が成功しなければアプリケーションの継続する実行ができなくなることを「１回だけコンテンツを利用することができます」という文言によって示している。
【００９４】
また、認証結果履歴情報１００７の示す直前の認証における認証結果が、認証が成功しなかった旨（認証処理が失敗した旨、または、通信エラーの旨）であり、ステップＳ１３０４が実行されたのであれば、今回は認証に失敗したものとみなし、図１４（ｄ）の表示を行う。これは、今回の認証では認証サーバと通信ができなかったので認証処理が成功したかどうかは不明であり、直前の認証処理は成功ではないからである。また、通信コネクションは確立できたものの、認証サーバよりＡＣＫなどが受信できず、タイムアウトによる通信エラーが発生したことが検出された場合には、図１４（ｅ）の表示を行ってもよい。
【００９５】
なお、登録済情報１００６が記憶されない場合には、Ｓ１２０１からＳ１２０７の各ステップの実行は必須ではない。
【００９６】
（認証サーバのデータベース）
図１５は、認証サーバ１０７のＤＢ１１１の構造の一例を示す。図１５（ａ）は、例えば、会員ＩＤとそのパスワード情報を関連付けるテーブルの一例である。会員ＩＤの列には、端末シリアル番号や利用者の識別情報などが格納され、パスワード情報には、認証処理の際に用いられるパスワードそのものやパスワードを一方向関数で処理した情報が格納される。なお、会員ＩＤの列とパスワード情報の列の２つの列を用意する必要はなく、会員ＩＤが充分に長いビット長の情報であり、異なる携帯端末や利用者が同じ会員ＩＤを使用する虞がないのであれば、会員ＩＤだけを格納するようにしてもよい。また、会員ＩＤの列に公開鍵や公開鍵証明書が格納される場合もパスワード情報の列は必須ではない。
【００９７】
図１５（ｂ）は、会員ＩＤに登録日と退会日とを関連付けるテーブルの一例である。登録日は、認証サーバ１０７に認証情報が登録された日であり、退会日は、認証情報を抹消する旨の要求が携帯端末や利用者から送信などされた日である。認証情報を抹消する旨の要求があれば、会員ＩＤをテーブルから削除すればよいかもしれないが、登録日と退会日とを記録することにより、課金の基準となる日の前後だけ認証情報を抹消した状態にして課金を逃れることができないようにすることができる。なお、退会日に「ＮＵＬＬ」が格納されているのは、認証情報を抹消する旨の要求が送信などされていないことを意味する。
【００９８】
図１５（ｃ）は、会員ＩＤに課金の方法を関連付けるテーブルの一例である。例えば、クレジットカード、銀行口座引落などが支払方法の列に格納され、別のテーブルにクレジットカード番号や銀行口座の番号などが格納される。
【００９９】
（認証サーバの処理）
図１６は、認証サーバ１１０の処理の流れを説明するフローチャートを示す。認証サーバ１１０に対する要求が、認証要求と認証情報の登録要求の２種類であれば、ステップＳ１６０１において、認証要求が受信されたかどうかを判断する。もし、認証要求が受信されれば、ステップＳ１６０２へ移行し、認証要求ではなく、認証情報の登録要求であれば、ステップＳ１６０６へ移行する。なお、一台の認証サーバが認証要求と登録要求との両方を受信する必要はなく、認証要求を受信する認証サーバと登録要求を受信する認証サーバとが異なっていてもよい。同様に、認証要求を送信する端末装置と登録要求を送信する端末装置とが異なっていてもよい。
【０１００】
ステップＳ１６０２においては、認証情報を受信し、認証処理を行う。例えば、認証情報に含まれる端末シリアル番号や利用者の識別情報が図１５（ａ）のテーブルに登録されているかどうかで認証処理が成功したかどうかを判定する。続くステップＳ１６０３においては、認証処理が成功した場合には、ステップＳ１６０４へ移行し認証処理が成功した旨の認証ステータス情報を返信し、認証処理が成功しなかった場合には、ステップＳ１６０５へ移行し認証処理が失敗した旨の認証ステータス情報を返信する。
【０１０１】
認証情報の登録要求が受信されたのであれば、ステップＳ１６０６において、登録するべき認証情報を受信する。続くステップＳ１６０７においては、ＤＢ１１１への登録処理を行う。例えば、図１５（ａ）に示すテーブルに会員ＩＤなどを登録する。そして、ステップＳ１６０８においては、登録完了を返信する。
【０１０２】
（実施形態２）
本発明の実施形態２として、認証情報記憶部１００２に記憶される認証結果履歴情報１００７のデータ構造の別の例を説明する。
【０１０３】
図１７は、認証結果履歴情報１００７が、直前の一回だけの認証結果を表す場合の一例を示す。認証情報記憶部１００２の記憶領域１７０１には、直前の一回の認証が行われた日時（２００８／０８／０１−１８：５２）と、そのときの認証結果として「成功」が記憶されている。図１３のステップＳ１３０１においては、記憶領域１７０１に記憶されているデータが読出され、ステップＳ１３０２において、認証結果として成功が記憶されているかどうかを判断する。また、図１２のステップＳ１２１６においては、ステップＳ１２１５で取得された認証結果とその日時を記憶領域１７０１に格納する。また、図１３のステップＳ１３０５においては、通信エラーとなった旨とその日時を記憶領域１７０１に記憶する。
【０１０４】
このように、直前の一回だけの認証結果を記憶することにより、記憶領域を節約することが可能である。また、認証が行われた日時を記憶することにより、例えば、携帯端末のタイマなどに設定された日時を不正に操作されたことを検出することもできる。例えば、記憶領域１７０１に格納された日時が、携帯端末のタイマなどに設定された日時よりも後であれば、不正が行われたと判断して、アプリケーション１０９の実行を終了させるように選択をすることができる。なお、このような不正の検出などを行わないのであれば、認証が行われた日時を記憶領域１７０１などに記憶する必要はない。
【０１０５】
なお、本実施形態では、記憶領域１７０１には、認証処理の成功、認証処理の失敗、通信エラーのいずれかが認証結果として記憶されてもよい。この場合には、図１３（ｂ）のフローチャートの処理が用いられる場合において、例えば、上述の第１の所定の数値が１であり、第２の所定の数値が１であり、定められた範囲が正の数値の範囲である場合と同じ認証結果が返答される。
【０１０６】
（実施形態３）
本発明の実施形態３として、認証サーバ１１０との通信ができなかった場合に、通信が可能となれば、認証サーバ１１０と通信を行い、認証要求を送信して認証処理が行われる形態について説明する。
【０１０７】
図１８は、本実施形態に係るアプリケーション１０９が、端末装置１０３のハードウェアと一体となって実行されることにより、実現される装置の機能ブロック図を示し、実施形態１、２の装置の機能ブロック図にさらに、コールバック処理部１８０１が備えられている。
【０１０８】
コールバック処理部１８０１は、所定の条件が満たされる状況になったときに、指定された処理を行う部である。本実施形態においては、所定の条件が満たされる状況には、通信状況が良好となったことや、メールの着信などがあり、実際に通信が可能となったことを含むものとする。
【０１０９】
オペレーティングシステムや仮想マシンは、所定の条件のどれが満たされるようになったかを監視している。そして、ある条件が満たされると、イベントを発生させて、オペレーティングシステムや仮想マシンの管理化で動作しているアプリケーションに通知する機能を備えることができる。そこで、本実施形態では、コールバック処理部１８０１は、そのように通知されるイベントを取得して、そのイベントの種類に応じて設定されたコールバックを実行する。
【０１１０】
図１９は、コールバック処理部１８０１が処理するデータ構造を示す。図１９において、「イベント１」、「イベント２」、「イベント３」がイベントの種類を示し、それにリスト構造として連なっているノード１９０２、１９０３、１９０４がイベント１に関連付けられたコールバックを表している。
【０１１１】
図２０は、コールバック処理部１８０１の処理を説明するフローチャートである。ステップＳ２００１において、イベントが発生し、その通知がされるまで待つ。イベントが発生すると、ステップＳ２００２に移行し、通知されたイベントに対応したコールバックリストの取得を行う。そして、ステップＳ２００３において、コールバックリストのコールバックを順に実行する。
【０１１２】
本実施形態においては、認証サーバ１１０との通信ができないことが検出された図１２のステップＳ１２２０を行う際に図２１に示す処理を行うコールバックを、通信状況が良好となったことや実際に通信が可能となったことが検出されると通知されるイベントのリストに追加する。すなわち、ステップＳ２１０１において、認証要求の送信を行う。続くステップＳ２１０２において、送信が行えたかどうかを判断し、送信ができたのであればステップＳ２１０３へ移行し、送信がエラーとなればステップＳ２１１０へ移行する。
【０１１３】
ステップＳ２１０３においては、認証情報の送信を行い、ステップＳ２１０４において、送信ができたかどうかを判断し、送信が行えたのであればステップＳ２１０５へ移行し、送信がエラーとなればステップＳ２１１０へ移行する。
【０１１４】
ステップＳ２１０５においては、認証ステータスの受信を行い、ステップＳ２１０６において、受信ができたかどうかを判断し、できたのであれば、ステップＳ２１０７へ移行し、受信エラーとなればステップＳ２１１０へ移行する。
【０１１５】
ステップＳ２１０７においては、認証結果の取得を行う。そして、ステップＳ２１０８において、認証に成功すればステップＳ２１０９へ移行し、認証が失敗すればステップＳ２１１０へ移行する。
【０１１６】
ステップＳ２１０９においては、認証が成功したとの認証結果の履歴を追加する認証結果履歴情報の更新を行う。
【０１１７】
ステップＳ２１１０においては、送受信のエラーが発生し認証が成功しなかったので、再度コールバックの設定を行う。
【０１１８】
本実施形態のように、送受信のエラーが発生し認証が成功しなかった場合に、コールバックを設定して再度、認証を行うことにより、送受信のエラーが発生し認証処理が成功したとみなして、利用者にアプリケーションの使用やコンテンツの利用をさせている間に認証処理に成功すると、その後においては、送受信のエラーが無かったのと同じ状態でアプリケーションの使用やコンテンツの利用をさせることができる。
【図面の簡単な説明】
【０１１９】
【図１】本発明の一実施形態の概要を示す図である。
【図２】本発明の一実施形態における通信の過程を説明するシーケンス図である。
【図３】本発明の一実施形態に係る携帯端末のハードウェア構成を示す機能ブロック図である。
【図４】本発明の一実施形態に係る携帯端末において、オペレーティングシステムの管理下でプログラムが動作している様子を示す模式図である。
【図５】本発明の一実施形態に係るサーバ装置の機能ブロック図である。
【図６】本発明の一実施形態に係るサーバ装置において、オペレーティングシステムの管理下でプログラムが動作している様子を示す模式図である。
【図７】本発明の一実施形態に係る端末装置がダウンロードサーバ装置よりアプリケーションをダウンロードする処理のフローチャートである。
【図８】本発明の一実施形態に係るダウンロードサーバ装置が端末装置にアプリケーションをダウンロードさせる処理のフローチャートである。
【図９】本発明の一実施形態に係る携帯端末にダウンロードされたアプリケーションの実行の処理のフローチャートである。
【図１０】本発明の一実施形態に係る処理実行装置の機能ブロック図である。
【図１１】本発明の一実施形態に係るアプリケーションの処理のフローチャートである。
【図１２】本発明の一実施形態に係る認証制御部における処理の流れを説明するフローチャートである。
【図１３】本発明の一実施形態に係る認証制御部における処理の流れを説明するフローチャートである。
【図１４】本発明の一実施形態に係る携帯端末のディスプレイの表示の一例図である。
【図１５】本発明の一実施形態に係る認証サーバのデータベースの構造の一例図である。
【図１６】本発明の一実施形態に係る認証サーバの処理の流れを説明するフローチャートである。
【図１７】本発明の一実施形態に係る認証結果履歴情報を格納するデータ構造の一例図である。
【図１８】本発明の一実施形態に係る処理実行装置の機能ブロック図である。
【図１９】本発明の一実施形態に係るコールバック処理部が処理するデータ構造の一例図である。
【図２０】本発明の一実施形態に係るコールバック処理部の処理を説明するフローチャートである。
【図２１】本発明の一実施形態に係るコールバック処理のフローチャートである。
【符号の説明】
【０１２０】
１０００  実行中アプリケーション
１００１  主処理部
１００２  認証情報記憶部
１００３  認証結果履歴更新部
１００４  通信部
１００５  認証制御部
【図１】
2010049568.tif 000003
【図２】
2010049568.tif 000004
【図３】
2010049568.tif 000005
【図４】
2010049568.tif 000006
【図５】
2010049568.tif 000007
【図６】
2010049568.tif 000008
【図７】
2010049568.tif 000009
【図８】
2010049568.tif 000010
【図９】
2010049568.tif 000011
【図１０】
2010049568.tif 000012
【図１１】
2010049568.tif 000013
【図１２】
2010049568.tif 000014
【図１３】
2010049568.tif 000015
【図１５】
2010049568.tif 000016
【図１６】
2010049568.tif 000017
【図１７】
2010049568.tif 000018
【図１８】
2010049568.tif 000019
【図１９】
2010049568.tif 000020
【図２０】
2010049568.tif 000021
【図２１】
2010049568.tif 000022
【図１４】
2010049568.tif 000023
【手続補正書】
【提出日】平成21年2月5日(2009.2.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介して受信した認証要求に応じ成功か否かの判定がされる認証処理を実行する認証サーバへ、前記ネットワークを介して前記認証要求を送信する送信部と、
前記認証サーバから、前記ネットワークを介して前記認証処理の結果を受信する受信部と、
前記受信部が受信した前記認証処理の結果が、成功であれば第１の処理を選択し、失敗であれば第２の処理を選択する処理選択部と、
前記送信部による前記認証要求の送信と、前記受信部による前記認証処理の結果の受信とを行う際の通信エラーの発生の有無を検出するエラー検出部と、
前記受信部が受信した前記認証処理の結果の履歴と、前記エラー検出部が検出した前記通信エラーの履歴とを所定の数含む認証結果履歴情報を記憶する記憶部と、
前記エラー検出部により前記通信エラーの検出がされた場合は前記通信エラーを示す履歴を含ませるように前記認証結果履歴情報を更新し、前記エラー検出部により前記通信エラーの検出がされなかった場合は前記受信部が受信した前記認証処理の結果を示す履歴を含ませるように前記認証結果履歴情報を更新する認証結果履歴更新部と、
前記エラー検出部により前記通信エラーの発生したことが検出され、前記認証結果履歴情報に前記認証処理の成功を示す履歴が既に含まれる場合には、前記処理選択部に前記第１の処理を選択させる認証制御部と、
を有することを特徴とする処理実行装置。
【請求項２】
通信インターフェースを用いて、ネットワークを介して受信した認証要求に応じ成功か否かの判定がされる認証処理を実行する認証サーバへ、前記認証要求を送信し、前記認証サーバから、前記認証処理の結果を受信し、
受信した前記認証処理の結果が、成功であれば第１の処理を選択し、失敗であれば第２の処理を選択することを計算機に実行させるためのアプリケーションプログラムであって、
前記認証要求の送信と前記認証処理の結果の受信とを行う際の通信エラーの発生の有無を通信のためのシステムコールの戻り値の比較で検出し、
受信した前記認証処理の結果の履歴と、検出された前記通信エラーの履歴とを所定の数含む認証結果履歴情報をメモリに記憶する際、前記メモリに記憶された認証結果履歴情報を読み出し、前記通信エラーの検出がされた場合は前記通信エラーを示す履歴を含ませるように認証結果履歴情報を更新し、前記通信エラーの検出がされなかった場合は受信した前記認証処理の結果を示す履歴を含ませるように認証結果履歴情報を更新し前記メモリに記憶し、
前記通信エラーの発生したことが検出され、前記認証結果履歴情報に前記認証処理の成功を示す履歴が既に含まれる場合には、前記第１の処理を選択させることを計算機に実行させるためのアプリケーションプログラム。
【請求項３】
請求項２に記載のアプリケーションプログラムを携帯端末へダウンロード可能に記憶する記憶部を有するダウンロードサーバ装置。