(57)【要約】【課題】携帯電話機のような通信端末内において秘匿すべき情報を保護しつつ、この秘匿情報を利用してユーザに各種サービスを提供するための仕組みを実現する。【解決手段】移動局１には秘匿情報が記憶されており、この秘匿情報には情報ＩＤが対応付けられている。秘匿情報と情報ＩＤとの対応関係は、移動局１によってのみ把握することができる。移動局１は、秘匿情報そのものが外部に漏洩しないように、秘匿情報の代わりに情報ＩＤを外部の管理サーバ３に送信する。管理サーバ３は、受信した情報ＩＤに基づいて各種処理を行い、その結果を移動局１に送信する。移動局１は受信した処理結果と情報ＩＤに対応する秘匿情報に基づいてユーザにサービスを提供する。【選択図】      図１
2004295247.tif 000002
【特許請求の範囲】
【請求項１】
ユーザにとって不利益な動作を行わないことが保証されている保証プログラムと、前記ユーザにとって不利益な動作を行わないことが保証されておらず、かつ、外部のサーバと通信を行うための手順が記述された非保証プログラムとを各々実行可能な通信端末が、前記保証プログラムに記述された手順に従って、当該通信端末に格納されている秘匿情報に対応する情報ＩＤと当該秘匿情報に関連する非秘匿情報とを、前記非保証プログラムに割り当てられている記憶領域に記述するステップと、
前記通信端末が、前記非保証プログラムに記述された手順に従って、当該非保証プログラムに割り当てられている記憶領域から前記情報ＩＤ及び前記非秘匿情報とを読み出して前記サーバに送信するステップと、
前記サーバが、前記情報ＩＤ及び前記非秘匿情報に基づいて、前記通信端末を介してサービスをユーザに提供するための処理を行うステップと、
前記サーバが、前記処理の結果と前記情報ＩＤとを前記通信端末に送信するステップと、
前記通信端末が、前記処理の結果と前記情報ＩＤを受信するステップと、
前記通信端末が、前記保証プログラムに記述された手順に従って、受信した前記情報ＩＤに対応する秘匿情報と、受信した前記処理の結果とに基づいて、前記サービスをユーザに提供するステップと
を備えることを特徴とする通信方法。
【請求項２】
前記保証プログラムは前記通信端末の販売以前に当該通信端末に予め記憶されるプログラムであり、
前記非保証プログラムは前記通信端末の販売後に当該通信端末に記憶されるプログラムである請求項１記載の通信方法。
【請求項３】
ユーザにとって不利益な動作を行わないことが保証されている保証プログラムと、前記ユーザにとって不利益な動作を行わないことが保証されておらず、かつ、外部のサーバと通信を行うための手順が記述された非保証プログラムとを各々実行可能な通信端末が、前記保証プログラムに記述された手順に従って、当該通信端末に格納されている秘匿情報に対応する情報ＩＤと当該秘匿情報に関連する非秘匿情報とを、前記非保証プログラムに割り当てられている記憶領域に記述するステップと、
前記通信端末が、前記非保証プログラムに記述された手順に従って、当該非保証プログラムに割り当てられている記憶領域から前記情報ＩＤ及び前記非秘匿情報とを読み出して前記サーバに送信するステップと、
前記サーバが、前記情報ＩＤ及び前記非秘匿情報に基づいて、前記通信端末を介してサービスをユーザに提供するための処理を行うステップと、
前記サーバが、前記処理の結果と前記情報ＩＤとを前記通信端末に送信するステップと、
前記通信端末が、前記処理の結果と前記情報ＩＤを受信するステップと、
前記通信端末が、前記保証プログラムに記述された手順に従って、受信した前記情報ＩＤに対応する秘匿情報と、受信した前記処理の結果とに基づいて、前記サービスをユーザに提供するステップと
を備え、
前記非保証プログラムは、前記通信端末の販売後に前記外部のサーバから前記通信端末にダウンロードされたＪａｖａ（登録商標）アプリケーションプログラムであり、かつ、ダウンロード元のサーバとの間のみで通信可能な旨が宣言されているプログラムであることを特徴とする通信方法。
【請求項４】
ユーザが利用する通信端末と、当該通信端末と通信可能なサーバとを備え、
前記通信端末は、
前記ユーザにとって不利益な動作を行わないことが保証された保証プログラムと、前記ユーザにとって不利益な動作を行わないことが保証されておらず、かつ、外部のサーバと通信を行うための手順が記述された非保証プログラムとを記憶した記憶手段と、
前記保証プログラムに記述された手順に従って、自端末に格納されている秘匿情報に対応する情報ＩＤと、当該秘匿情報に関連する非秘匿情報とを、前記非保証プログラムに割り当てられた記憶領域に記述する記述手段と、
前記非保証プログラムに記述された手順に従って、当該非保証プログラムに割り当てられている記憶領域から前記情報ＩＤ及び前記非秘匿情報を読み出し、読み出した情報ＩＤ及び非秘匿情報を前記サーバに送信する送信手段と、
前記サーバが行った処理の結果と前記情報ＩＤを受信する受信手段と、
前記保証プログラムに記述された手順に従って、受信した前記情報ＩＤに対応する秘匿情報と、受信した前記処理の結果とに基づいて、前記ユーザにサービスを提供する提供手段とを備え、
前記サーバは、
前記通信端末の送信手段によって送信されてくる前記情報ＩＤ及び前記非秘匿情報を受信する受信手段と、
当該サーバの受信手段によって受信した前記情報ＩＤ及び前記非秘匿情報に基づいて、前記通信端末を介して前記サービスをユーザに提供するための処理を行う処理手段と、
前記処理手段による処理の結果と前記情報ＩＤとを前記通信端末に送信する送信手段と
を備える通信システム。
【請求項５】
ユーザにとって不利益な動作を行わないことが保証された保証プログラムと、前記ユーザにとって不利益な動作を行わないことが保証されておらず、かつ、外部のサーバと通信を行うための手順が記述された非保証プログラムとを記憶した記憶手段と、
前記保証プログラムに記述された手順に従って、自端末に格納されている秘匿情報に対応する情報ＩＤと、当該秘匿情報に関連する非秘匿情報とを、前記非保証プログラムに割り当てられた記憶領域に記述する記述手段と、
前記非保証プログラムに記述された手順に従って、当該非保証プログラムに割り当てられている記憶領域から前記情報ＩＤ及び前記非秘匿情報を読み出し、読み出した情報ＩＤ及び非秘匿情報を前記サーバに送信する送信手段と、
前記サーバが行った処理の結果と前記情報ＩＤを受信する受信手段と、
前記保証プログラムに記述された手順に従って、受信した前記情報ＩＤに対応する秘匿情報と、受信した前記処理の結果とに基づいて、前記ユーザにサービスを提供する提供手段と
を備えた通信端末。
【請求項６】
前記保証プログラムは前記通信端末の販売以前に当該通信端末に記憶されるプログラムであり、
前記非保証プログラムは前記通信端末の販売後に当該通信端末に記憶されるプログラムである請求項５記載の通信端末。
【請求項７】
ユーザにとって不利益な動作を行わないことが保証された保証プログラムと、前記ユーザにとって不利益な動作を行わないことが保証されておらず、かつ、外部のサーバと通信を行うための手順が記述された非保証プログラムとを記憶した記憶手段と、
前記保証プログラムに記述された手順に従って、自端末に格納されている秘匿情報に対応する情報ＩＤと、当該秘匿情報に関連する非秘匿情報とを、前記非保証プログラムに割り当てられた記憶領域に記述する記述手段と、
前記非保証プログラムに記述された手順に従って、当該非保証プログラムに割り当てられている記憶領域から前記情報ＩＤ及び前記非秘匿情報を読み出し、読み出した情報ＩＤ及び非秘匿情報を前記サーバに送信する送信手段と、
前記サーバが行った処理の結果と前記情報ＩＤを受信する受信手段と、
前記保証プログラムに記述された手順に従って、受信した前記情報ＩＤに対応する秘匿情報と、受信した前記処理の結果とに基づいて、前記ユーザにサービスを提供する提供手段と
を備え、
前記非保証プログラムは、前記通信端末の販売後に前記外部のサーバから前記通信端末にダウンロードされたＪａｖａアプリケーションプログラムであり、かつ、ダウンロード元のサーバとの間のみで通信可能な旨が宣言されているプログラムであることを特徴とする通信端末。
【請求項８】
通信端末によって送信されてくる情報ＩＤ及び非秘匿情報を受信する受信手段と、
前記受信手段によって受信した前記情報ＩＤ及び前記非秘匿情報に基づいて、前記通信端末を介してサービスをユーザに提供するための処理を行う処理手段と、
前記処理手段による処理の結果と前記情報ＩＤとを前記通信端末に送信する送信手段と
を備えたサーバ。
【請求項９】
コンピュータに、
当該コンピュータに格納されている秘匿情報に対応する情報ＩＤと、当該秘匿情報に関連する非秘匿情報とを、ユーザにとって不利益な動作を行わないことが保証されていない非保証プログラムに対して割り当てられた記憶領域に記述する機能と、
外部のサーバから受信した前記情報ＩＤに対応する秘匿情報と処理の結果とに基づいて前記ユーザにサービスを提供する機能と
を実現させるためのプログラム。
【請求項１０】
コンピュータに、
自プログラムに割り当てられている記憶領域から秘匿情報に対応する情報ＩＤと当該秘匿情報に関連する非秘匿情報とを読み出し、読み出した情報ＩＤと非秘匿情報とを外部のサーバに送信する機能と、
前記サーバから受信した処理の結果と前記情報ＩＤとを、自プログラムに割り当てられている記憶領域に記述する機能と
を実現させるためのプログラム。
【請求項１１】
請求項９又は１０に記載されたプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、通信端末において秘匿すべき秘匿情報を保護しながら、この秘匿情報を利用するための技術に関する。
【０００２】
【従来の技術】
近年になって、携帯電話機の高機能化が急速に進んでいる。最近では、例えばＪａｖａ（登録商標）プログラミング言語によって記述されるアプリケーションプログラム（以下、Ｊａｖａアプリケーションプログラムという）をネットワークを介してダウンロードし、これを実行してユーザに様々なサービスを提供する携帯電話機が知られている。
【０００３】
ところで、ネットワークを介してダウンロードされたＪａｖａアプリケーションプログラムに対しては、一般に、「サンドボックスモデル」と呼ばれるセキュリティモデルが適用される。このサンドボックスモデルによれば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のプログラム実行手段がＪａｖａアプリケーションプログラムを実行している間は、そのプログラム実行手段によってアクセス可能な携帯電話機内のリソースや通信可能な通信相手が厳格に制限される（特許文献１参照）。例えば、Ｊａｖａアプリケーションプログラムを実行しているプログラム実行手段は、携帯電話機内の予め定められた一部のリソースにはアクセスできるが、その他の大部分のリソースにはアクセスできないようになっている。また、Ｊａｖａアプリケーションプログラムを実行しているプログラム実行手段は、ダウンロード元のサーバとは通信することができるが、それ以外の通信相手とは通信できないようになっている。なお、以下の説明（発明の詳細な説明を含む）においては、便宜のため、プログラム実行手段がプログラムを実行している間に行う動作については、例えば”プログラムがアクセスする”とか”プログラムが通信する”というように、プログラムを動作主体として表現することがある。
【０００４】
【特許文献１】
特開平１０−２５４７８３号公報
【０００５】
上記のようにＪａｖａアプリケーションプログラムがアクセス可能なリソース領域や通信可能な通信相手を厳格に限定しておくことで、不正なＪａｖａアプリケーションプログラムによって携帯電話機内の重要な情報が破壊されたり、或いは、秘匿すべき情報が第３者に漏洩したりするような事態を未然に防止している。
【０００６】
【発明が解決しようとする課題】
上記のようにサンドボックスの内容は非常に厳しいセキュリティであるが故に、利便性に乏しく、多様なサービスをユーザに提供しづらいという側面がある。そこで、サンドボックスモデルが適用されるＪａｖａアプリケーションプログラムであっても、本来はアクセスが制限されているリソースに対して例外的にアクセスすることができるようにすれば、ユーザにとって非常に便利なサービスを提供することができる。その一例は次のような場合である。
【０００７】
携帯電話機内の電話帳データは、一般的なサンドボックスモデルによれば、Ｊａｖａアプリケーションプログラムがアクセス不能なリソースである。ここで仮に、Ｊａｖａアプリケーションプログラムが電話帳データにアクセスできるようにすれば、携帯電話機を用いた通話が行われる度にＪａｖａアプリケーションプログラムが電話帳データを参照して、どの通話相手とどのくらいの時間だけ通話したか、そして、通話料金がどのくらいかかったというような情報を算出することができる。これによって、ユーザは好きなときにその情報を参照できるので非常に便利である。この場合において、前述の通りＪａｖａアプリケーションプログラムがダウンロード元のサーバと通信することはサンドボックスモデルによって許容されているので、電話帳データや通話履歴に基づいて通話料金を算出するといった処理を携帯電話機本体ではなくダウンロード元のサーバに実行させてしまえば、携帯電話機の処理負担が軽減される。これは、携帯電話機の電力資源や処理能力が比較的乏しいことに鑑みると、非常に好ましいことである。
【０００８】
ところが、上記のような処理をダウンロード元のサーバに実行させるということは、ユーザのプライバシーに関するものであるが故に秘匿しておくべき電話帳データが外部のサーバに流出してしまうことを意味する。そこで、このような事態を防ぐためには、携帯電話機に記憶される秘匿情報を保護するための別の仕組みが必要である。
【０００９】
本発明は、かかる実情に鑑み、携帯電話機のような通信端末内において秘匿すべき情報を保護しつつ、この秘匿情報を利用してユーザに各種サービスを提供するための仕組みを実現することを目的とする。
【００１０】
【課題を解決するための手段】
上記の課題を解決するため、本発明は、ユーザにとって不利益な動作を行わないことが保証されている保証プログラムと、前記ユーザにとって不利益な動作を行わないことが保証されておらず、かつ、外部のサーバと通信を行うための手順が記述された非保証プログラムとを各々実行可能な通信端末が、前記保証プログラムに記述された手順に従って、当該通信端末に格納されている秘匿情報に対応する情報ＩＤと当該秘匿情報に関連する非秘匿情報とを、前記非保証プログラムに割り当てられている記憶領域に記述するステップと、前記通信端末が、前記非保証プログラムに記述された手順に従って、当該非保証プログラムに割り当てられている記憶領域から前記情報ＩＤ及び前記非秘匿情報とを読み出して前記サーバに送信するステップと、前記サーバが、前記情報ＩＤ及び前記非秘匿情報に基づいて、前記通信端末を介してサービスをユーザに提供するための処理を行うステップと、前記サーバが、前記処理の結果と前記情報ＩＤとを前記通信端末に送信するステップと、前記通信端末が、前記処理の結果と前記情報ＩＤを受信するステップと、前記通信端末が、前記保証プログラムに記述された手順に従って、受信した前記情報ＩＤに対応する秘匿情報と、受信した前記処理の結果とに基づいて、前記サービスをユーザに提供するステップとを備えることを特徴とする通信方法を提供する。
この通信方法によれば、秘匿情報に対応する情報ＩＤを用いることによってサービスをユーザに提供し得るので、秘匿情報の漏洩を防止することが期待できる。
【００１１】
好適には、前記保証プログラムは前記通信端末の販売以前に当該通信端末に記憶されるプログラムであり、前記非保証プログラムは前記通信端末の販売後に当該通信端末に記憶されたプログラムである。この場合、更に好適には、前記非保証プログラムは、前記通信端末の販売後に前記外部のサーバから前記通信端末にダウンロードされたＪａｖａアプリケーションプログラムであり、かつ、ダウンロード元のサーバとの間のみで通信可能な旨が宣言されているプログラムである。
【００１２】
また、本発明は、ユーザが利用する通信端末と、当該通信端末と通信可能なサーバとを備え、前記通信端末は、前記ユーザにとって不利益な動作を行わないことが保証された保証プログラムと、前記ユーザにとって不利益な動作を行わないことが保証されておらず、かつ、外部のサーバと通信を行うための手順が記述された非保証プログラムとを記憶した記憶手段と、前記保証プログラムに記述された手順に従って、自端末に格納されている秘匿情報に対応する情報ＩＤと、当該秘匿情報に関連する非秘匿情報とを、前記非保証プログラムに割り当てられた記憶領域に記述する記述手段と、前記非保証プログラムに記述された手順に従って、当該非保証プログラムに割り当てられている記憶領域から前記情報ＩＤ及び前記非秘匿情報を読み出し、読み出した情報ＩＤ及び非秘匿情報を前記サーバに送信する送信手段と、前記サーバが行った処理の結果と前記情報ＩＤを受信する受信手段と、前記保証プログラムに記述された手順に従って、受信した前記情報ＩＤに対応する秘匿情報と、受信した前記処理の結果とに基づいて、前記ユーザにサービスを提供する提供手段とを備え、前記サーバは、前記通信端末の送信手段によって送信されてくる前記情報ＩＤ及び前記非秘匿情報を受信する受信手段と、当該サーバの受信手段によって受信した前記情報ＩＤ及び前記非秘匿情報に基づいて、前記通信端末を介して前記サービスをユーザに提供するための処理を行う処理手段と、前記処理手段による処理の結果と前記情報ＩＤとを前記通信端末に送信する送信手段とを備える通信システムを提供する。
この通信システムによれば、秘匿情報に対応する情報ＩＤを用いることによってサービスをユーザに提供し得るので、秘匿情報の漏洩を防止することが期待できる。
【００１３】
また、本発明は、ユーザにとって不利益な動作を行わないことが保証された保証プログラムと、前記ユーザにとって不利益な動作を行わないことが保証されておらず、かつ、外部のサーバと通信を行うための手順が記述された非保証プログラムとを記憶した記憶手段と、前記保証プログラムに記述された手順に従って、自端末に格納されている秘匿情報に対応する情報ＩＤと、当該秘匿情報に関連する非秘匿情報とを、前記非保証プログラムに割り当てられた記憶領域に記述する記述手段と、前記非保証プログラムに記述された手順に従って、当該非保証プログラムに割り当てられている記憶領域から前記情報ＩＤ及び前記非秘匿情報を読み出し、読み出した情報ＩＤ及び非秘匿情報を前記サーバに送信する送信手段と、前記サーバが行った処理の結果と前記情報ＩＤを受信する受信手段と、前記保証プログラムに記述された手順に従って、受信した前記情報ＩＤに対応する秘匿情報と、受信した前記処理の結果とに基づいて、前記ユーザにサービスを提供する提供手段とを備えた通信端末を提供する。
【００１４】
また、本発明は、通信端末によって送信されてくる情報ＩＤ及び非秘匿情報を受信する受信手段と、前記受信手段によって受信した前記情報ＩＤ及び前記非秘匿情報に基づいて、前記通信端末を介してサービスをユーザに提供するための処理を行う処理手段と、前記処理手段による処理の結果と前記情報ＩＤとを前記通信端末に送信する送信手段とを備えたサーバを提供する。
【００１５】
また、本発明は、コンピュータに、当該コンピュータに格納されている秘匿情報に対応する情報ＩＤと、当該秘匿情報に関連する非秘匿情報とを、ユーザにとって不利益な動作を行わないことが保証されていない非保証プログラムに対して割り当てられた記憶領域に記述する機能と、外部のサーバから受信した前記情報ＩＤに対応する秘匿情報と処理の結果とに基づいて前記ユーザにサービスを提供する機能とを実現させるためのプログラムを提供する。
【００１６】
また、本発明は、コンピュータに、自プログラムに割り当てられている記憶領域から秘匿情報に対応する情報ＩＤと当該秘匿情報に関連する非秘匿情報とを読み出し、読み出した情報ＩＤと非秘匿情報とを外部のサーバに送信する機能と、前記サーバから受信した処理の結果と前記情報ＩＤとを、自プログラムに割り当てられている記憶領域に記述する機能とを実現させるためのプログラムを提供する。
【００１７】
これらのプログラムは当該プログラムを記録したコンピュータ読み取り可能な記録媒体によって提供されてもよい。
【００１８】
【発明の実施の形態】
以下の実施形態の説明においては、次のような記載方法を採用する。
プログラムを処理や動作の主体とする記載形式が情報技術の分野で普及している。これは厳密には、プログラムを実行したハードウェアが処理や動作の主体であるが、このような記載を採用すると文が複雑になり、本発明の理解の妨げとなる虞がある。よって、本実施形態では、プログラムを処理や動作の主体とする記載形式を必要に応じて採用している。
【００１９】
＜１．実施形態の構成＞
＜１−１．システム全体の構成＞
図１は、本発明の一実施形態に係る通信システム１００の全体構成を示す図である。図１に示すように通信システム１００は、ユーザが携帯可能な移動局１と、複数の基地局２１や図示せぬ交換局を含む無線通信ネットワーク２と、無線通信ネットワーク２に接続された管理サーバ３とを備えている。
【００２０】
移動局１は、例えばＰＤＣ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ｃｅｌｌｕｌａｒ）方式やＩＭＴ２０００（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｍｏｂｉｌｅ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ−２０００）方式の携帯電話機であってもよいし、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）方式の簡易携帯電話機であってもよい。移動局１は、基地局２１と無線通信を行うことにより、無線通信ネットワーク２によって提供される通話サービスやデータ通信サービスを受けることができる。
【００２１】
管理サーバ３は、複数のＪａｖａアプリケーションプログラム（以下、アプリケーションプログラムを「ＡＰ」という）を記憶しており、記憶しているＪａｖａＡＰを移動局１からの要求に応じて無線通信ネットワーク２を介し当該移動局１に配信するようになっている。このＪａｖａＡＰに対してはいわゆるサンドボックスモデルが適用される。移動局１は、配信されてきたＪａｖａＡＰを実行しながら、このＪａｖａＡＰの配信元である管理サーバ３と通信を行うことによって、各種のサービスをユーザに提供する。
【００２２】
＜１−２．移動局の構成＞
図２は移動局１のハードウェア構成を示すブロック図である。図２に示すように、移動局１は、アンテナ１０と、無線部１１と、ベースバンド信号処理部１２と、音声入出力部１３と、制御部１４と、表示部１５と、操作部１６と、電源部１７とを備えている。
無線部１１は、受信部、送信部および周波数シンセサイザ等を備えており、アンテナ１０を介して基地局２１との間で無線通信を行う。ベースバンド信号処理部１２は、マルチメディアインターフェイス、音声コーデックおよび画像コーデック等を備えており、各種のデータ処理を行う。
【００２３】
音声入出力部１３は、マイクロホンおよびスピーカを備えている。音声入出力部１３は、マイクロホンが集音した音声に基づいて音声信号を生成しベースバンド信号処理部１２に供給するほか、ベースバンド信号処理部１２から供給される音声信号に基づいて音声をスピーカから出力する。
制御部１４は、移動局１に備わる各部の動作を中枢的に制御する。表示部１５は、液晶パネルおよびパネル駆動回路を有しており、制御部１４による制御の下で各種情報を表示する。操作部１６は、キーパッドやキー検出回路を有しており、ユーザのキー操作に応じた信号を制御部１４に供給する。電源部１７は、移動局１に備わる各部が動作するために必要な電力を供給する。
【００２４】
図３は制御部１４のハードウェア構成を示すブロック図である。図３に示すように、制御部１４は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１４０と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１４１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１４２と、ＦｌａｓｈＲＯＭ１４３と、計時部１４４と、これら各部を接続するバス１４５とを備えている。
ＣＰＵ１４０は、ＲＡＭ１４１を一時的な作業領域とし、ＲＯＭ１４２およびＦｌａｓｈＲＯＭ１４３に記憶される各種プログラムを実行する。ＲＯＭ１４２には、例えばネイティブＡＰや、Ｊａｖａ実行環境アプリケーションプログラム等の各種制御プログラムが記憶されている。本実施形態では、移動局１の販売以前にＲＯＭ１４２やＦｌａｓｈＲＯＭ１４３に記憶されているアプリケーションプログラムを、ネイティブアプリケーションプログラム（ネイティブＡＰ）と呼ぶことにする。
【００２５】
ＲＡＭ１４１には、ＣＰＵ１４０によってＪａｖａＡＰが実行される際に使用される専用の記憶領域が設けられる。この記憶領域を、「ＪａｖａＡＰ実行使用領域」と呼ぶ。図３においては、このＪａｖａＡＰ実行使用領域が１つしか図示されていないが、実際は各ＪａｖａＡＰ毎に１つずつ設けられる。各ＪａｖａＡＰは自身に割り当てられたＪａｖａＡＰ実行使用領域のみを使用可能であり、他のＪａｖａＡＰに割り当てられたＪａｖａＡＰ実行使用領域を使用することはできない。ただし、ネイティブＡＰは、ＪａｖａＡＰ実行使用領域を自由に利用できるようになっている。ネイティブＡＰとＪａｖａＡＰとは、このＪａｖａＡＰ実行使用領域を用いて各種データの受け渡しを行うようになっているが、詳しくは後述する。
【００２６】
ＦｌａｓｈＲＯＭ１４３には、電話帳テーブル８０と、ＪａｖａＡＰと、ネイティブＡＰとが記憶されるほか、各ＪａｖａＡＰに割り当てられた専用の記憶領域（本実施形態では「スクラッチパッド」という）が設けられている。このスクラッチパッドには、ＣＰＵ１４０がＪａｖａＡＰを実行する際に取り扱うデータが永続的に記憶されるようになっている。従って、ＣＰＵ１４０は、ＪａｖａＡＰを終了した後に再起動した場合であっても、その終了前にスクラッチパッドに記憶されていたデータを再び読み出して利用することができる。図３においては、ＪａｖａＡＰ及びスクラッチパッドが各々１つずつしか図示されていないが、実際にはこれらはそれぞれ複数存在する。各ＪａｖａＡＰは自身に割り当てられたスクラッチパッドのみを使用可能であり、他のＪａｖａＡＰに割り当てられたスクラッチパッドを使用することはできない。
【００２７】
図４は、電話帳テーブル８０の構成を概念的に示す図である。
図４に示すように、電話帳テーブル８０は複数のレコードを備えており、これらの各レコードには情報ＩＤフィールド８００と、電話番号フィールド８０１と、氏名フィールド８０２とが設けられている。
情報ＩＤフィールド８００には、各レコードに割り当てられた情報ＩＤが記述されている。電話番号フィールド８０１には、ユーザが登録した電話番号が記述されている。氏名フィールド８０２には、上記電話番号が割り当てられた電話機のユーザの氏名が記憶される。図４に示す例では、「佐藤サト」の電話番号は「０９０１２３４０００１」であり、これらのユーザ氏名及び電話番号には情報ＩＤ「０００１」が割り当てられていることを意味している。
これら電話番号フィールド８０１および氏名フィールド８０２に記述される情報は、ユーザのプライバシーに関わる秘匿情報であるから、移動局１内部に秘匿しておく必要がある。当然、ＣＰＵ１４０は、サンドボックスモデルに従うＪａｖａＡＰを実行している限り、この電話帳データにはアクセスできないようになっている。
【００２８】
次に、移動局１におけるソフトウェア実行環境について簡単に説明しておく。
図５は、移動局１におけるソフトウェア実行環境を概念的に示す図である。
ユーザによって電源がオンされると、ＣＰＵ１４０は、所定の初期化処理を実行した後、オペレーティングシステム（以下、ＯＳと称する）を読み出して実行する。ＯＳには、ユーザの操作に応じて操作部１６から入力される信号を解釈したり、データ処理結果を表示部１５に出力したり、ＲＯＭ１４２およびＦｌａｓｈＲＯＭ１４３に記憶されるデータを管理したりするなど、データ処理を行う際の基本的機能を実現するための複数のプログラムが含まれている。
【００２９】
ネイティブＡＰは、ＯＳが提供する機能のみを用いて実行可能なアプリケーションプログラムであり、前述したように、移動局１の販売以前にＲＯＭ１４２やＦｌａｓｈＲＯＭ１４３に記憶されている。ここでは、ネイティブＡＰとして、無線通信ネットワーク２を介して通信を行うための手順が記述された通信ＡＰや、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のデータを解釈して表示部１５に表示するための手順が記述されたＷｅｂブラウザや、例えば電話帳テーブル８０に記述された電話帳データにアクセスするための手順が記述された情報管理ＡＰがある。
【００３０】
ＪａｖａＡＰは、前述したように、管理サーバ３から無線通信ネットワーク２を介して移動局１にダウンロードされたものであり、前述したネイティブＡＰと相対する性質を持つ非ネイティブＡＰである。ＣＰＵ１４０は、Ｊａｖａ実行環境ＡＰによってＪａｖａ実行環境が構築された後にはじめてこのＪａｖａＡＰを実行することができる。図５ではこのＪａｖａＡＰの一例として、通話履歴を管理するための通話履歴ＡＰが示されている。この通話履歴ＡＰは、移動局１において常駐プログラムとして実行されるものである。
この通話履歴ＡＰは、ＪａｖａＡＰであるからサンドボックスモデルの適用を受ける。よって、通話履歴ＡＰを実行しているＣＰＵ１４０は、通話履歴ＡＰのダウンロード元のサーバである管理サーバ３とは自由に通信を行うことができるが、その他の装置とは通信することができない。この通話履歴ＡＰには、例えば、移動局１が他の移動局との間で行った通話についてその通話履歴を管理サーバ３に送信するための手順や、管理サーバ３から通話履歴の累積結果を取得するための手順が記述されている。
【００３１】
Ｊａｖａ実行環境ＡＰは、ＫＶＭ（Ｋ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）および各種ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を含んでいる。ＫＶＭは、ＪａｖａＡＰの実行可能形式コードであるバイトコードを一命令ずつ解釈し実行するための手順が記述されたソフトウェアモジュールである。このＫＶＭに記述された手順にしたがって、ＣＰＵ１４０は、ＪａｖａＡＰを実行する。このとき、ＣＰＵ１４０は、ＯＳに標準的に備わる機能をさらに拡張した機能を利用してＪａｖａＡＰを実行するため、必要に応じてＡＰＩを参照して実行することができる。図５には、このＡＰＩとして、ユーザインターフェイスＡＰＩ、ネットワーキングＡＰＩおよびスクラッチパッドＡＰＩが例示されている。ユーザインターフェイスＡＰＩには、表示部１５への画像描写等のユーザインターフェイス機能を実現するための手順が記述されている。ネットワーキングＡＰＩには、無線部１１を介して通信機能を実現するための手順が記述されている。スクラッチパッドＡＰＩには、前述したスクラッチパッドに対するデータの書き込み及び読み出しを行うための手順が記述されている。
【００３２】
ＪＡＭ（Ｊａｖａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ）には、ＯＳの制御下において、ＪａｖａＡＰを管理するための手順が記述されている。より具体的に述べると、ＪＡＭには、例えば、移動局１にインストールされているＪａｖａＡＰを表示部１５にリスト表示する機能や、ＪａｖａＡＰの実行管理（起動および終了等）を行う機能や、ＪａｖａＡＰのインストール、更新及び削除を行う機能等を実現するための手順が記述されている。
また、ＪＡＭには、前述したサンドボックスモデルを実現するための手順が記述されている。具体的にいうと、ＪＡＭには、各々のＪａｖａＡＰが自身に割り当てられたＪａｖａＡＰ実行使用領域及びスクラッチパッド以外の記憶領域にアクセスすることを禁ずる宣言や、各ＪａｖａＡＰ自身のダウンロード元のサーバ以外の装置と通信することを禁ずる宣言が記述されている。
【００３３】
ここで、情報管理ＡＰ等のネイティブＡＰと、通話履歴ＡＰ等の非ネイティブＡＰとの本質的な違いについて説明しておく。
ネイティブＡＰとは、移動局１の製造者によってＲＯＭ１４２やＦｌａｓｈＲＯＭ１４３に書き込まれて、その移動局１の購買者（ユーザ）へ提供されるものである。購買者は、無線通信ネットワーク２によって提供される移動通信サービスを受けたい場合、移動局１を購入するとともに、所望の移動通信事業者との間で加入契約を結ぶ必要がある。この移動通信事業者は、ユーザによって使用される移動局１が満たすべき仕様を事前に定めておく必要がある。
【００３４】
前述したように、プライバシー保護の観点から、移動局１に格納されている秘匿情報がユーザの意図しないような形で外部に漏洩することは好ましくない。そこで、移動通信事業者は、一般に、秘匿情報の保護をも考慮に入れて仕様を定め、そのような仕様を満たす移動局１の製造をその製造者に依頼する。移動局１の製造者は、このようにして移動通信事業者が定めた仕様を満たす移動局１を製造するし、加入者ユーザに対して、この移動局１が上記仕様を満たすことを保証する。換言すれば、移動局１の製造者は、ユーザに対して、移動局１に記憶されたネイティブＡＰはユーザにとって不利益な動作を行わないことを保証する。つまり、ネイティブＡＰは、ユーザにとって不利益な動作を行わないことが保証された保証プログラムである。これにより、ユーザは安心してネイティブＡＰを利用することができるのである。
【００３５】
一方、本実施形態におけるＪａｖａＡＰは、移動局１の販売後にそのメモリに記憶される非ネイティブＡＰである。このような非ネイティブＡＰは、移動局１の製造者に限らず、任意の者によって移動局１に提供可能である。例えば、非ネイティブＡＰは、ネットワークに接続された様々なサーバから移動局１へ配信され、移動局１により受信され記憶される。コンピュータウィルスの例を挙げるまでもなく、ネットワークを介して配信されるプログラムの中には、不適法または不適正なプログラムが存在し得る。このようなプログラムとして想定されるものの一つとして、移動局１に記憶された秘匿情報を盗み出すプログラムが挙げられる。つまり、非ネイティブＡＰは、ユーザにとって不利益な動作を行わないことが保証されていない非保証プログラムである。
【００３６】
以上のことから、移動局１は、ユーザにとって不利益な動作を行わないことが保証されているネイティブＡＰによる挙動を制限しない一方で、その保証がなされていない非ネイティブＡＰによる挙動を制限するようにしている。ただし、これでは、ユーザに多様なサービスを提供できないことがあるので、本実施形態では、ネイティブＡＰと非ネイティブＡＰとが連携して動作することにより、秘匿情報そのものを外部に漏洩させることなく、その秘匿情報に基づくサービスをユーザに提供するようになっている。その一例が、通話履歴ＡＰと情報管理ＡＰとが連携した挙動である。
【００３７】
そこで、以下、ＣＰＵ１４０が通話履歴ＡＰ及び情報管理ＡＰを実行する際の挙動概要について説明する。
ＣＰＵ１４０は、通話履歴ＡＰを実行中においてユーザが行っている通話が終了すると、非ネイティブＡＰである通話履歴ＡＰを一旦待機状態に移し、ネイティブＡＰである情報管理ＡＰを起動する。そして、ＣＰＵ１４０は、情報管理ＡＰの記述に従って、通話先の電話番号に対応する情報ＩＤを電話帳テーブル８０から読み出し、これを計時部１４４によって計時された通話時間とともに、通話履歴ＡＰのＪａｖａＡＰ実行使用領域に書き込む。この後、ＣＰＵ１４０は、情報管理ＡＰを終了させて通話履歴ＡＰを再度実行状態に移し、ＪａｖａＡＰ実行使用領域に書き込まれている情報ＩＤ及び通話時間を読み出す。読み出された情報ＩＤ及び通話時間は、管理サーバ３に送信される。管理サーバ３は、受信した情報ＩＤに対応付けて通話時間を累積し記憶するという処理を行う。この場合の情報ＩＤはユーザの氏名や電話番号といった秘匿情報そのものではなく、情報に割り当てられたＩＤに過ぎない。また、通話時間そのものは、単なる時間を示す情報にすぎないから、秘匿する必要がない情報（非秘匿情報）である。このように、管理サーバ３は、情報ＩＤや非秘匿情報を取り扱うだけであり、秘匿情報の内容そのものを知ることはできない。
【００３８】
一方、移動局１のＣＰＵ１４０は、通話履歴ＡＰを実行することにより、管理サーバが記憶している情報ＩＤや通話時間を無線通信ネットワーク２を介して取得し、通話履歴ＡＰのＪａｖａ実行使用領域に書き込む。これらの情報が書き込まれると、ＣＰＵ１４０は、通話履歴ＡＰを一旦待機状態に移し、ネイティブＡＰである情報管理ＡＰを実行する。そして、ＣＰＵ１４０は、情報管理ＡＰの記述に従って、Ｊａｖａ実行使用領域に書き込まれている情報ＩＤに対応する氏名を電話帳テーブル８０から読み出し、これを通話時間とともに表示部１５に表示する。このように、情報管理ＡＰというネイティブＡＰの制御の下で、非秘匿情報である情報ＩＤが秘匿情報である氏名に変換されて表示されるので、通話履歴ＡＰは秘匿情報の内容そのものを知ることはできない。
上記のように、移動局１は管理サーバ３や通話履歴ＡＰを利用するにも関わらず、これら管理サーバ３や通話履歴ＡＰに秘匿情報の内容そのものを知られずに、この秘匿情報に基づくサービスをユーザに提供することが可能となる。
【００３９】
図６は、通話履歴ＡＰ及び情報管理ＡＰを実行した場合のＣＰＵ１４０の動作を示すフローチャートである。
まず、ユーザによって電源が投入され、移動局１が待ち受け状態になると、ＣＰＵ１４０は、常駐プログラムである通話履歴ＡＰを起動する（ステップＳ１０１）。
次いで、ユーザによる操作に応じて通話が開始されると（ステップＳ１０２；Ｙｅｓ）、ＣＰＵ１４０は、計時部１４４によるタイムカウントを開始する（ステップ１０３）。そして通話が終了すると（ステップＳ１０４；Ｙｅｓ）、ＣＰＵ１４０は、タイムカウントを中止し、そのカウント結果である通話時間を通話履歴ＡＰに割り当てられているＪａｖａ実行使用領域に書き込む（ステップＳ１０５）。次いで、ＣＰＵ１４０は、通話履歴ＡＰを一旦待機状態に移し、情報管理ＡＰを起動する（ステップＳ１０６）。
【００４０】
ＣＰＵ１４０は、情報管理ＡＰに記述される手順に従い、上記通話の通話先の電話番号に対応付けられて記憶されている情報ＩＤを電話帳テーブル８０から読み出す（ステップＳ１０７）。この場合の通話先の電話番号は、移動局１が着呼側の場合には無線通信ネットワーク２の周知の発信者番号通知機能によって通知された電話番号であるし、移動局１が発呼側となって行った通話であればユーザが通話前に入力した電話番号である。
【００４１】
そして、ＣＰＵ１４０は、電話帳テーブル８０から読み出した情報ＩＤと、通話履歴ＡＰに割り当てられたＪａｖａＡＰ実行使用領域に記憶されている通話時間とを用いて、図７に示す通話完了通知９０を作成する（ステップＳ１０８）。この通話完了通知９０は、通話履歴ＡＰに割り当てられたＪａｖａＡＰ実行使用領域上で作成される。
【００４２】
図７に示す通話完了通知のヘッダには、管理サーバ３のネットワークアドレスや、移動局１の電話番号や、通話履歴ＡＰを一意に識別可能なプログラムＩＤなどの制御情報が含まれている。フラグビットは、”０”または”１”の何れかの値で示される。フラグビットの値が”０”である場合には、その通話完了通知９０は、移動局１が発呼した場合の通話が完了したことを示す。一方、フラグビットの値が”１”である場合には、その通話完了通知９０は、移動局１に着呼した場合の通話が完了したことを示す。これに加え、通話完了通知９０には、前述した情報ＩＤおよび通話時間が含まれている。
通話完了通知９０を作成すると、ＣＰＵ１４０は、情報管理ＡＰを終了し、待機状態にあった通話履歴ＡＰを再度実行状態に移す（ステップＳ１０９）。
【００４３】
次に、ＣＰＵ１４０は、通話履歴ＡＰに記述された手順に従い、先に作成した通話完了通知９０をＪａｖａＡＰ実行使用領域から読み出し、管理サーバ３に送信する（ステップＳ１１０）。そして、この通話完了通知９０に対する管理サーバ３からの応答信号を受信すると、通話履歴の送信処理が終了する。
【００４４】
さて、移動局１のユーザが、操作部１６を用いて通話履歴を表示することを指示すると、ＣＰＵ１４０は、図８に示すような処理を行う。
まず、ユーザは操作部１６を用いて所定の操作を行って、移動局１の表示部１５に電話帳テーブル８０に記憶されている氏名の一覧を表示させる（ステップＳ２０１）。この表示処理は、ＣＰＵ１４０が一旦通話履歴ＡＰを待機状態に移し、情報管理ＡＰを実行することによってなされる。
【００４５】
ユーザが操作部１６を用いて表示部１５に表示される氏名を選択すると、ＣＰＵ１４０はこの操作を受け付け（ステップＳ２０２）、ユーザが選択した氏名に対応する情報ＩＤを電話帳テーブル８０から読み出し、読み出した情報ＩＤを通話履歴ＡＰのＪａｖａＡＰ実行使用領域に書き込む（ステップ２０３）。次いで、ＣＰＵ１４０は、情報管理ＡＰを一旦待機状態に移し、通話履歴ＡＰを再度実行状態に移す（ステップＳ２０４）。
【００４６】
ＣＰＵ１４０は、通話履歴ＡＰに記述された手順に従って、図９に示すような通話履歴送信要求９１を作成する（ステップ２０５）。図９に示す通話履歴送信要求のヘッダには、管理サーバ３のネットワークアドレスや、移動局１の電話番号や、通話履歴ＡＰのプログラムＩＤなどの情報が含まれている。これに加え、通話履歴送信要求９１には、通話履歴ＡＰのＪａｖａＡＰ実行使用領域から読み出された情報ＩＤが含まれている。ＣＰＵ１４０は、作成した通話履歴送信要求９１を、管理サーバ３に送信する（ステップＳ２０６）。
【００４７】
その後、移動局１は、ＣＰＵ１４０が送信した通話履歴送信要求９１に対する応答として通話履歴情報９２（詳細は後述する図２２参照）を受信する（ステップＳ２０７）。この通話履歴情報９２には、先に送信した情報ＩＤのほか、通話時間が含まれている。ＣＰＵ１４０は、これらの情報を通話履歴ＡＰのＪａｖａＡＰ実行使用領域に書き込むと（ステップＳ２０８）、通話履歴ＡＰをいったん待機状態へ遷移させ、待機状態にあった情報管理ＡＰを再度実行状態に移す（ステップＳ２０９）。
【００４８】
ＣＰＵ１４０は、情報管理ＡＰに記述された手順に従って、通話履歴ＡＰのＪａｖａＡＰ実行使用領域から情報ＩＤを読みだし、さらに、電話帳テーブル８０を参照して上記情報ＩＤに対応する氏名を読み出す（ステップＳ２１０）。そして、ＣＰＵ１４０は、読み出した氏名と、通話履歴ＡＰのＪａｖａＡＰ実行使用領域から読み出される通話時間とを表示部１５に表示する（ステップＳ２１１）。そして、ＣＰＵ１４０は、情報管理ＡＰの実行を終了し、再度通話履歴ＡＰを実行状態に移す（ステップＳ２１２）。
【００４９】
＜１−３．管理サーバの構成＞
図１０は、管理サーバ３のハードウェア構成を示すブロック図である。図１０に示すように、管理サーバ３は、ＣＰＵ３０と、ＲＯＭ３１と、ＲＡＭ３２と、通信インターフェイス（以下、Ｉ／Ｆと記述する）３３と、ハードディスク３４と、これら各部を接続するバス３５とを備えている。
【００５０】
ＣＰＵ３０は、管理サーバ３に備わる各部を中枢的に制御するとともに、各種の演算処理を行う。ＲＯＭ３１には、ＣＰＵ３０の動作手順を記述した各種制御用プログラムが記憶されている。ＲＡＭ３２は、ＣＰＵ３０の一時的な作業領域として用いられる。通信Ｉ／Ｆ３３は、無線通信ネットワーク２を介したデータ通信の際に用いられるポートである。
【００５１】
ハードディスク３４には、移動局１に配信すべきＪａｖａＡＰを複数記憶している。このうちの１つが通話履歴ＡＰである。また、ハードディスク３４には、移動局１の通話履歴を管理するための手順が記述された履歴管理プログラム８１や、履歴管理プログラム８１が利用する履歴管理テーブル８２が記憶されている。
【００５２】
図１１は、履歴管理テーブル８２として記憶されるデータを概念的に示す図である。図１１に示すように、履歴管理テーブル８２は複数のレコードを備えており、各レコードにおいて、電話番号フィールド８２０と、情報ＩＤフィールド８２１と、発呼回数フィールド８２２と、発呼時間フィールド８２３と、着呼回数フィールド８２４と、着呼時間フィールド８２５とが対応付けられている。
【００５３】
電話番号フィールド８２０には、履歴管理ＡＰをダウンロードしている移動局１の電話番号が記憶される。情報ＩＤフィールド８２１には、各移動局１から受信した情報ＩＤが記憶される。発呼回数フィールド８２２には、各移動局１から受信した通話履歴情報９２に発呼情報が含まれていた回数が記憶される。発呼時間フィールド８２３には、各移動局１から受信した通話履歴情報９２のうち、発呼情報を含んでいたものの通話時間の総計が記憶される。着呼回数フィールド８２４には、各移動局１から受信した通話履歴情報９２に着呼情報が含まれていた回数が記憶される。着呼時間フィールド８２５には、各移動局１から受信した通話履歴情報９２のうち、着呼情報を含んでいたものの通話時間の総計が記憶される。
【００５４】
履歴管理プログラム８１は、管理サーバ３の常駐プログラムとして実行される。履歴管理プログラム８１には、履歴受信サブルーチンと、履歴送信サブルーチンという２つのサブルーチンが含まれている。履歴受信サブルーチンには、移動局１から通話完了通知９０を受信した際に、これに含まれる情報によって、履歴管理テーブル８２を更新するための手順が記述されている。履歴送信サブルーチンには、通話履歴送信要求９１を受信した際に、それに対する応答として、通話履歴情報９２を作成し、送信するための手順が記述されている。
【００５５】
図１２は、履歴管理プログラム８１に含まれている履歴受信サブルーチンを実行した際の、ＣＰＵ３０の動作を示すフローチャートである。
まず、ＣＰＵ３０は、移動局１から通話完了通知９０を受信すると（ステップＳ３０１；Ｙｅｓ）、通話完了通知９０のヘッダに含まれている移動局１の電話番号を読み出す（ステップＳ３０２）。そして、ＣＰＵ３０は、読み出した電話番号が履歴管理テーブル８２に記憶されているか否かを判別する（ステップＳ３０３）。
【００５６】
履歴管理テーブル８２に該当するレコードが存在する場合（ステップＳ３０３；Ｙｅｓ）、ＣＰＵ３０は、通話完了通知９０に含まれていた情報に基づき、履歴管理テーブル８２を更新する（ステップＳ３０４）。一方、該当するレコードが存在しなかった場合（ステップＳ３０３；Ｎｏ）、ＣＰＵ３０は、履歴管理テーブル８２に新規レコードを追加し（ステップＳ３０５）、これに各種情報を記憶する（ステップＳ３０６）。
【００５７】
さらに具体的に述べると、ＣＰＵ３０は、ステップＳ３０２において読み出した電話番号が、履歴管理テーブル８２に記憶されるものであった場合に、通話完了通知９０に含まれるフラグビットを参照する。そして、ＣＰＵ３０は、フラグビットの値が”０”であった場合には、発呼回数フィールド８２２に記述されている値を１だけインクリメントするとともに、発呼時間フィールド８２３の記述されている値に対し通話完了通知９０に含まれていた通話時間を加算する。また、ＣＰＵ３０は、フラグビットの値が”１”であった場合には、着呼回数フィールド８２４に記述されている値を１だけインクリメントすると共に、着呼時間フィールド８２５に記述される値に通話完了通知９０に含まれていた通話時間を加算する。
【００５８】
上述したように、通話完了通知９０には、具体的な秘匿情報は一切含まれておらず、また、情報ＩＤに基づいて秘匿情報を判別することができるのは、通話完了通知９０の送信元である移動局１のみである。つまり、管理サーバ３は、移動局１に記憶される秘匿情報の実データを取得することなく、間接的に秘匿情報を管理しているのである。
【００５９】
次に、通話履歴送信要求９１を受信した際の管理サーバ３の動作について説明する。
図１３は、履歴管理プログラム８１に含まれる履歴送信サブルーチンを実行した際のＣＰＵ３０の動作を示すフローチャートである。
【００６０】
まず、ＣＰＵ３０は、移動局１から通話履歴送信要求９１を受信すると（ステップＳ４０１；Ｙｅｓ）、受信した通話履歴送信要求９１のヘッダ部を参照し、送信元である移動局１の電話番号及び情報ＩＤを読み出する（ステップＳ４０２）。次に、ＣＰＵ３０は、上記の電話番号と情報ＩＤとの２つを共に含むレコードを履歴管理テーブル８２から抽出し（ステップＳ４０３）、このレコードに含まれる情報に基づいて、通話履歴情報９２を作成する（ステップＳ４０４）。そして、ＣＰＵ３０は、作成した通話履歴情報９２を、移動局１に送信する（ステップＳ４０５）。
【００６１】
図１４は、通話履歴情報９２のデータフォーマットを概念的に示す図である。
図１４に示す通話履歴情報９２のヘッダには、移動局１の電話番号や、通話履歴ＡＰを一意に識別可能なプログラムＩＤ等の制御情報が含まれている。そして、「情報ＩＤ」フィールドには、移動局１から受信した通話履歴送信要求９１に含まれていた情報ＩＤが記述される。「発呼回数」フィールドには、上記ステップＳ４０３において抽出したレコードにおいて、発呼回数フィールド８２２に記憶されていた値が記述される。「発呼時間累計」フィールドには、発呼時間フィールド８２３に記憶されていた値が記述される。「着呼回数」フィールドには、着呼回数フィールド８２４に記憶されていた値が記述される。「着呼時間累計」フィールドには、着呼時間フィールド８２５に記憶されていた値が記述される。
【００６２】
＜２．実施形態の動作＞
次に、上記構成による通信システム１００の動作について、より具体的に説明する。説明の前提として、移動局１は、すでに管理サーバ３から通話履歴ＡＰをダウンロードし、インストールしているものとする。また、移動局１における電話帳テーブル８０の状態は図４に示す状態であり、管理サーバ３に記憶される履歴管理テーブル８２の状態は図１１に示す状態であるとする。
【００６３】
図１５は、移動局１および管理サーバ３間におけるデータ授受の動作例を示すシーケンスチャートである。
最初に、いわゆる待ち受け状態にある移動局１の表示部１５には、図１６に示す待ち受け画像が表示されている。ここで、移動局１のユーザが通話を行い、これが終了すると（ステップＳ５０１）、移動局１は、通話履歴ＡＰに記述された手順に従って、通話完了通知９０を作成し管理サーバ３に送信する（ステップＳ５０２）。このとき、例えば、移動局１のユーザが、電話番号が「０９０１２３４０００１」の移動局のユーザと、２３分間の通話を行ったとすると、移動局１から管理サーバ３に送信される通話完了通知９０は、図１７に示すものとなる。また、移動局１の表示部１５には、図１８に示す画像が表示される。
【００６４】
一方、管理サーバ３は、通話完了通知９０を受信すると、これに含まれる各種情報に基づいて履歴管理テーブル８２を更新する（ステップＳ５０３）。ここでは管理サーバ３は図１７に示すような通話完了通知９０を受信しているので、履歴管理テーブル８２は、発呼時間フィールド８２３に記憶されている「００１８」（分）に２３分が加算されて「００４１」（分）となり、この結果、図１１に示す状態から図１９に示す状態へと更新される。この更新後に管理サーバ３から移動局１へ応答信号が送信される（ステップＳ５０４）。
【００６５】
その後、移動局１において、ユーザによる操作に応じて電話帳一覧が表示され（ステップＳ５０５）、更に図２０に示すように、ユーザによって通話履歴を参照したいユーザ名が選択されると、移動局１は通話履歴送信要求９１を作成し、管理サーバ３に送信する（ステップＳ５０６）。ここでは、図２０に示すように「佐藤サト」が選択されており、この氏名に対応付けられる情報ＩＤは図４に示すように「０００１」であるから、移動局１は、図２１に示すような通話履歴送信要求９１を作成し、これを管理サーバ３に送信することになる。
【００６６】
管理サーバ３は、通話履歴送信要求９１を受信すると、履歴管理テーブル８２を参照して通話履歴情報９２を作成し（ステップＳ５０７）、これを移動局１に送信する（ステップＳ５０８）。
ここでは、図１９に示すように、履歴管理テーブル８２には電話番号「０９０１１１１２２２２」に対応する情報ＩＤ「０００１」が記憶されており、この情報ＩＤ「０００１」に対応して、発呼回数「０００２」、発呼時間「００４１」着呼回数「０００１」、及び着呼時間「０００１」が記憶されている。したがって、管理サーバ３は、図２２に示すような通話履歴情報９２を作成する。
【００６７】
移動局１は、通話履歴情報９２を受信すると、この通話履歴情報９２の内容に基づいて図２３に示すような画像を表示する（ステップＳ５０９）。
【００６８】
以上、説明したように、ＣＰＵ１４０は、秘匿情報を扱う必要がある場合には、秘匿情報そのものを外部と通信可能な通話履歴ＡＰが把握できないように、通話履歴ＡＰの実行状態と情報管理ＡＰの実行状態とを切り換えながら実行する。情報管理ＡＰはネイティブＡＰであるため、このプログラムの実行時にＣＰＵ１４０が電話帳テーブル８０にアクセス可能であることに、何ら不都合は生じない。また、通話履歴ＡＰ実行時には、ＣＰＵ１４０は、情報ＩＤを秘匿情報の擬似情報として利用する。情報ＩＤがどのような秘匿情報に対応しているかは、電話帳テーブル８０にアクセスしなければ識別不可能であり、情報ＩＤ自体が移動局１外部に流出したとしても、秘匿情報が流出したことにはならない。このように、ＣＰＵ１４０が、通話履歴ＡＰと情報管理ＡＰとを切り換えつつ実行することにより、移動局１は、秘匿情報の流出を防止しているのである。
また、移動局１のユーザにとっての上述した操作方法は、内部に記憶される秘匿情報を直接利用する方法と比較して、違和感がないものである。
【００６９】
＜３．変形例＞
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的思想の範囲内で種々の変形を加えることが可能である。
（変形例１）
上述の実施形態においては、通話履歴ＡＰが実行される機器としては、移動局１を例にとって説明を行った。しかし、通話履歴ＡＰを実行する機器として、移動局１ではなく、移動局１を介してデータ通信可能な携帯型情報機器や、パーソナルコンピュータ等を用いる態様をとることも可能である。さらに外部に秘匿情報を送信し得る機器、たとえば、ビデオオンデマンド対応のビデオデッキやセットトップボックス等を、移動局１に代えて用いる態様を採っても良い。
【００７０】
くわえて、上述の実施形態においては、通話履歴ＡＰはＪａｖａプログラミング言語によって記述されるものとし、Ｊａｖａ実行環境の構築を前提として実行されるものとして説明を行った。しかし、通話履歴ＡＰは、必ずしもＪａｖａプログラミング言語によって記述される必要はない。通話履歴ＡＰは、例えば、Ｃ言語等、他の言語によって記述されていても構わない。
なお、上述のように、Ｊａｖａ実行環境はメモリプロテクトを前提として構築されており、ＣＰＵ１４０はＪａｖａＡＰを実行する際にはＪＡＭによる制御によってメモリアクセスが制限される。この仕組みを利用することによって、移動局１内部の秘匿情報は保護されていた。これと同様に、通話履歴ＡＰをＪａｖａプログラミング言語以外のプログラミング言語によって記述する場合には、例えば、メモリの絶対アドレスにアクセス可能なアセンブラ命令を禁止するなどの方策により、秘匿情報そのものに直接アクセスすることを防止する仕組みが必要である。
【００７１】
（変形例２）
上述の実施形態においては、情報ＩＤによって、移動局１外部への氏名および電話番号の送信を回避する態様を例に採り説明を行った。しかし、情報ＩＤを用いることにより保護可能な情報は、氏名および電話番号には限られるものではない。本発明によって保護可能な情報は、例えば、移動局１のユーザの氏名、年齢、誕生日、銀行口座番号およびクレジットカード番号等、ユーザに関わる秘匿情報全般である。保護を要求される情報を情報ＩＤと対応付けて記憶することで、上記電話番号の場合と同様に、データそのものを外部に送信する必要がなくなる。つまり、あらゆる情報が、情報ＩＤと対応付けることによって保護可能にある。
【００７２】
（変形例３）
上述の実施形態においては、ＪａｖａＡＰは通話履歴を管理するための手順を記述したものとして説明を行った。しかし、ＪａｖａＡＰは、通話履歴を管理するための手順を記述したものには限られない。例えば、定期券機能を実現するための手順が記述されたＪａｖａＡＰや、クレジットカード機能を実現するための手順が記述されたＪａｖａＡＰなど、秘匿情報を扱う必要のあるプログラムであれば、本発明はどのようなものにでも適用可能である。
【００７３】
（変形例４）
上述の実施形態においては、管理サーバ３は、無線通信ネットワーク２に接続されるものとして説明を行った。しかし、管理サーバ３は、無線通信ネットワーク２ではなく、例えば、インターネット（ｔｈｅ  Ｉｎｔｅｒｎｅｔ）に接続される態様であっても構わない。この場合には、無線通信ネットワーク２およびインターネット間に、通信プロトコルの変換を行うゲートウェイを設ける必要がある。
【００７４】
（変形例５）
上述の実施形態において、ネイティブＡＰはユーザにとって不利益な動作を行わないことが移動局１の製造者によって保証されていたが、保証する主体は製造者に限らない。例えば、移動通信事業者であってもよいし、移動通信事業者が認定したアプリケーションプログラムに製造者であってもよい。
【００７５】
（変形例６）
上述の実施形態において、情報管理ＡＰが情報ＩＤ等を書き込む記憶領域として、通話履歴ＡＰのＪａｖａ実行使用領域を使用していた。しかし、これに限らず、要は通話履歴ＡＰに割り当てられた記憶領域であればよいので、前述した通話履歴ＡＰに割り当てられているスクラッチパッドを用いてもよい。
【００７６】
（変形例７）
上述した履歴管理プログラム８１は、管理サーバ３のＣＰＵ３０によって読み取り可能な磁気記録媒体、光記録媒体あるいはＲＯＭ等の記録媒体に記録して提供することが可能である。また、履歴管理プログラム８１を、インターネットのようなネットワーク経由で管理サーバ３にダウンロードさせることももちろん可能である。これと同様のことが、移動局１における情報管理ＡＰや通話履歴ＡＰについても云える。
【００７７】
【発明の効果】
以上、説明したように、本発明によれば、秘匿情報そのものを外部に漏洩させることなく、その秘匿情報に基づく各種サービスをユーザに提供し得る。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る通信システム１００の全体構成を示す図である。
【図２】同実施形態における移動局のハードウェア構成を示すブロック図である。
【図３】同実施形態における移動局の制御部のハードウェア構成を示すブロック図である。
【図４】同実施形態における電話帳テーブルに記述されるデータを概念的に示す図である。
【図５】同実施形態における移動局におけるソフトウェア実行環境を概念的に示す図である。
【図６】同実施形態における移動局のＣＰＵが通話履歴ＡＰおよび情報管理ＡＰを切り換えて実行する際の処理の流れを示す図である。
【図７】同実施形態における通話完了通知のデータフォーマットを概念的に示す図である。
【図８】同実施形態における移動局のＣＰＵが通話履歴ＡＰおよび情報管理ＡＰを切り換えて実行する際の処理の流れを示す図である。
【図９】同実施形態における通話履歴送信要求のデータフォーマットを概念的に示す図である。
【図１０】同実施形態における管理サーバのハードウェア構成を示すブロック図である。
【図１１】同実施形態における履歴管理テーブルに記述されるデータを概念的に示す図である。
【図１２】同実施形態における移動局のＣＰＵが履歴管理プログラムに含まれる履歴受信サブルーチンを実行した際の動作を示すフローチャートである。
【図１３】同実施形態における移動局のＣＰＵが履歴管理プログラムに含まれる履歴送信サブルーチンを実行した際の動作を示すフローチャートである。
【図１４】同実施形態における通話履歴情報のデータフォーマットを概念的に示す図である。
【図１５】同実施形態における移動局および管理サーバ間で行われる動作の一例を示すシーケンスチャートである。
【図１６】同実施形態における移動局の表示部に表示される画像の一例を示す図である。
【図１７】同実施形態における通信システムの具体的動作における通話完了通知のデータフォーマット例を概念的に示す図である。
【図１８】同実施形態における移動局の表示部に表示される画像の一例を示す図である。
【図１９】同実施形態における通信システムの具体的動作における履歴管理テーブルの一例を概念的に示す図である。
【図２０】同実施形態における移動局の表示部に表示される画像の一例を示す図である。
【図２１】同実施形態における通信システムの具体的動作における通話履歴送信要求のデータフォーマット例を概念的に示す図である。
【図２２】同実施形態における通信システムの具体的動作における通話履歴情報のデータフォーマット例を概念的に示す図である。
【図２３】同実施形態における移動局の表示部に表示される画像の一例を示す図である。
【符号の説明】１…移動局、２…無線通信ネットワーク、３…管理サーバ、１４…制御部、３０…ＣＰＵ、３１…ＲＯＭ、３４…ハードディスク、８０…電話帳テーブル、８１…履歴管理プログラム、８２…履歴管理テーブル、１００…通信システム、１４０…ＣＰＵ、１４１…ＲＡＭ、１４２…ＲＯＭ、１４３…ＦｌａｓｈＲＯＭ。
【図１】
2004295247.tif 000003
【図２】
2004295247.tif 000004
【図３】
2004295247.tif 000005
【図４】
2004295247.tif 000006
【図５】
2004295247.tif 000007
【図６】
2004295247.tif 000008
【図７】
2004295247.tif 000009
【図８】
2004295247.tif 000010
【図９】
2004295247.tif 000011
【図１０】
2004295247.tif 000012
【図１１】
2004295247.tif 000013
【図１２】
2004295247.tif 000014
【図１３】
2004295247.tif 000015
【図１４】
2004295247.tif 000016
【図１５】
2004295247.tif 000017
【図１６】
2004295247.tif 000018
【図１７】
2004295247.tif 000019
【図１８】
2004295247.tif 000020
【図１９】
2004295247.tif 000021
【図２０】
2004295247.tif 000022
【図２１】
2004295247.tif 000023
【図２２】
2004295247.tif 000024
【図２３】
2004295247.tif 000025