(57)【要約】【課題】  サーバ装置が、当該サーバ装置と通信を行うために通信端末で実現されているアプリケーションが、当該サーバ装置からダウンロードしたアプリケーションプログラムを実行することにより実現したアプリケーションであるか知ることを可能とする。【解決手段】  携帯電話機４００は、サーバ装置１００からＡＤＦ１０５Ｂを取得した際、ＡＤＦ１０５ＢのＵＲＬと、ＡＤＦ１０５Ｂに記述されているアプリケーション名とを対応付けて記憶する。携帯電話機４００は通信を行う際、通信先がサーバ装置１００である場合には、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに「Home」を記述する。サーバ装置１００は、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに「Home」が記述されている場合には、携帯電話機４００が、サーバ装置からダウンロードしたプログラムを用いてサーバ装置との間で通信を行っていると判断する。【選択図】      図１
2005182318.tif 000002
【特許請求の範囲】
【請求項１】
記憶部を有し他の装置と通信する通信端末が、当該通信端末にてアプリケーションを実現させるためのプログラムをサーバ装置から取得する取得ステップと、
前記通信端末が、前記サーバ装置を示すデータと、前記取得ステップにて取得されたプログラムを実行することにより実現されるアプリケーションを示すデータとを対応付けて前記記憶部に記憶する記憶ステップと、
前記通信端末が、前記取得ステップにて取得されたプログラムを実行してアプリケーションを実現させる実行ステップと、
前記通信端末が、通信を開始する通信開始ステップと、
前記通信端末が、前記サーバ装置を示すデータを前記記憶部から読み出し、当該通信端末の通信先と前記サーバ装置とが同じであるか否かを判断し、同じであると判断した場合には、通信に用いられているアプリケーションが前記サーバ装置から取得されたプログラムを実行することにより実現されているアプリケーションであることを示す識別データを通信先へ送信する送信ステップと、
サーバ装置が、前記通信端末との間で通信を行い、前記通信端末から前記識別データが送信された場合には、当該通信に用いられているアプリケーションが、当該サーバ装置から配信されたプログラムを実行することにより実現されたアプリケーションであると識別し、前記通信端末から前記識別データが送信されない場合には、当該通信に用いられているアプリケーションが、当該サーバ装置から配信されたプログラムを実行することにより実現されたアプリケーションではないと識別する識別ステップと
を有するアプリケーション識別方法。
【請求項２】
前記通信端末が、前記プログラムの取得に先だち、前記プログラムおよび前記プログラムにより実現されるアプリケーションに関する記述がされたファイルを前記サーバ装置から取得するファイル取得ステップを有し、
前記記憶ステップは、前記ファイル取得ステップにより取得されたファイルを配信したサーバ装置を示す情報と、前記取得ステップにより取得されたプログラムを実行することにより実現するアプリケーションを示すデータとを対応付けて前記記憶部に記憶し、
前記取得ステップは、前記ファイル取得ステップにより取得されたファイルに記述されている前記プログラムの記憶位置で指定されるサーバ装置から前記プログラムを取得し、
前記送信ステップは、前記ファイル取得ステップにて取得されたファイルを配信したサーバ装置を示すデータを前記記憶部から読み出し、読み出したデータが示すサーバ装置と通信先とが同じであるか否かを判断し、同じであると判断した場合には、通信に用いられているアプリケーションが前記サーバ装置から取得されたプログラムを実行することにより実現しているアプリケーションであることを示す識別データを通信先へ送信し、同じでないと判断した場合には、前記識別データを通信先へ送信しない
ことを特徴とする請求項１に記載のアプリケーション識別方法。
【請求項３】
アプリケーションを実現させるためのプログラムをサーバ装置から取得する取得手段と、
前記サーバ装置を示すデータと、前記取得手段により取得されたプログラムを実行することにより実現されるアプリケーションを示すデータとを対応付けて記憶部に記憶する記憶手段と、
前記取得手段により取得されたプログラムを実行してアプリケーションを実現させる実行手段と、
通信を開始する通信開始手段と、
前記サーバ装置を示すデータを前記記憶部から読み出し、読み出したデータが示すサーバ装置と通信先とが同じであるか否かを判断し、同じであると判断した場合には、通信に用いられているアプリケーションが前記サーバ装置から取得されたプログラムを実行することにより実現されているアプリケーションであることを示す識別データを通信先へ送信し、同じでないと判断した場合には、前記識別データを通信先へ送信しない送信手段と
を有することを特徴とする通信端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント／サーバシステムにおいて、サーバ装置がクライアント装置にて実現されているアプリケーションを識別する技術に関する。
【背景技術】
【０００２】
サーバ装置が、通信端末装置から送信されたＨＴＴＰリクエストメッセージのヘッダの「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに記述されている情報に対応するコンテンツを記憶部から読み出し、読み出したコンテンツを通信端末装置へ配信する技術が知られている（例えば、特許文献１参照。）。
【特許文献１】特開２００２−２３６６４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１に開示されている技術によれば、サーバ装置は、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに記述されている情報に応じて、通信端末装置へ提供する情報やサービスを替えることも可能となる。これが可能となると、サーバ装置の運用者は、例えば、自身が運用しているサーバ装置からダウンロードしたプログラムを実行することにより実現される特定のアプリケーションを利用している通信端末装置に対してのみ特別なサービスを提供することなども可能となる。しかしながら、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに記述された情報に応じて特別なサービスを提供しようとすると、以下に示すような問題が生じる虞がある。
【０００４】
「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに記述される情報は、アプリケーションにより任意に記述される。従って、特定のアプリケーションが「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに記述する情報と同じ情報を記述するといった、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを偽装するアプリケーションを実現させることも可能である。このような「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを偽装するアプリケーションが、他のアプリケーションと同じ情報を「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに記述すると、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを偽装するアプリケーションが実現されている通信端末も、サーバ装置が提供する特別なサービスを受けることが可能となる。このように「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドの情報を偽装するアプリケーションが実現されている通信端末装置の使用者に対してまで特別なサービスを提供することは、サーバ装置を運用している事業者の意図するところではない。
【０００５】
このため、サーバ装置の運用者の間では、通信端末で実現されているアプリケーションが、自身が運用するサーバ装置からダウンロードしたアプリケーションプログラムを実行することにより実現したアプリケーションであるか否か知ることができる技術が要望されていた。
【０００６】
本発明は、上述した事情に鑑みてなされたものであり、サーバ装置が、当該サーバ装置と通信を行うために通信端末で実現されているアプリケーションが、当該サーバ装置からダウンロードしたアプリケーションプログラムを実行することにより実現したアプリケーションであるか否か知ることを可能とするアプリケーション識別方法および通信端末を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために本発明は、記憶部を有し他の装置と通信する通信端末が、当該通信端末にてアプリケーションを実現させるためのプログラムをサーバ装置から取得する取得ステップと、前記通信端末が、前記サーバ装置を示すデータと、前記取得ステップにて取得されたプログラムを実行することにより実現されるアプリケーションを示すデータとを対応付けて前記記憶部に記憶する記憶ステップと、前記通信端末が、前記取得ステップにて取得されたプログラムを実行してアプリケーションを実現させる実行ステップと、前記通信端末が、通信を開始する通信開始ステップと、前記通信端末が、前記サーバ装置を示すデータを前記記憶部から読み出し、当該通信端末の通信先と前記サーバ装置とが同じであるか否かを判断し、同じであると判断した場合には、通信に用いられているアプリケーションが前記サーバ装置から取得されたプログラムを実行することにより実現されているアプリケーションであることを示す識別データを通信先へ送信する送信ステップと、サーバ装置が、前記通信端末との間で通信を行い、前記通信端末から前記識別データが送信された場合には、当該通信に用いられているアプリケーションが、当該サーバ装置から配信されたプログラムを実行することにより実現されたアプリケーションであると識別し、前記通信端末から前記識別データが送信されない場合には、当該通信に用いられているアプリケーションが、当該サーバ装置から配信されたプログラムを実行することにより実現されたアプリケーションではないと識別する識別ステップとを有するアプリケーション識別方法を提供する。
また本発明は、アプリケーションを実現させるためのプログラムをサーバ装置から取得する取得手段と、前記サーバ装置を示すデータと、前記取得手段により取得されたプログラムを実行することにより実現されるアプリケーションを示すデータとを対応付けて記憶部に記憶する記憶手段と、前記取得手段により取得されたプログラムを実行してアプリケーションを実現させる実行手段と、通信を開始する通信開始手段と、前記サーバ装置を示すデータを前記記憶部から読み出し、読み出したデータが示すサーバ装置と通信先とが同じであるか否かを判断し、同じであると判断した場合には、通信に用いられているアプリケーションが前記サーバ装置から取得されたプログラムを実行することにより実現されているアプリケーションであることを示す識別データを通信先へ送信し、同じでないと判断した場合には、前記識別データを通信先へ送信しない送信手段とを有する通信端末を提供する。
また本発明においては、コンピュータ装置を、アプリケーションを実現させるためのプログラムをサーバ装置から取得する取得手段と、前記サーバ装置を示すデータと、前記取得手段により取得されたプログラムを実行することにより実現されるアプリケーションを示すデータとを対応付けて記憶部に記憶する記憶手段と、前記取得手段により取得されたプログラムを実行してアプリケーションを実現させる実行手段と、通信を開始する通信開始手段と、前記サーバ装置を示すデータを前記記憶部から読み出し、読み出したデータが示すサーバ装置と通信先とが同じであるか否かを判断し、同じであると判断した場合には、通信に用いられているアプリケーションが前記サーバ装置から取得されたプログラムを実行することにより実現されているアプリケーションであることを示す識別データを通信先へ送信し、同じでないと判断した場合には、前記識別データを通信先へ送信しない送信手段として機能させるためのプログラムを提供するようにしてもよい。
【０００８】
本発明によれば、通信端末は、当該通信端末にアプリケーションを実現させるためのプログラムをサーバ装置から取得し、このプログラムを配信したサーバ装置を示すデータと、このプログラムを実行することにより実現するアプリケーションを示すデータとを対応付けて記憶する。通信端末は、サーバ装置から取得したプログラムを実行することにより実現するアプリケーションを用いて当該プログラムの配信元のサーバ装置と通信を行う際に、通信に用いているアプリケーションがサーバ装置から取得されたプログラムを実行することにより実現しているアプリケーションであることを示す識別データをサーバ装置へ送信する。通信端末と通信を行うサーバ装置は、通信端末装置から識別データを送信されると、通信端末にて通信に用いられているアプリケーションが、当該サーバ装置から配信されたプログラムを実行することにより実現されたアプリケーションであると識別する。
【発明の効果】
【０００９】
本発明によれば、サーバ装置は、当該サーバ装置と通信を行うために通信端末で実現されているアプリケーションが、自身が運用するサーバ装置からダウンロードしたアプリケーションプログラムを実行することにより実現したアプリケーションであるか否か知ることができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明に係る実施形態について説明する。
【００１１】
［１．実施形態の構成］
［１−１．全体構成］
図１は、本発明の実施形態に係わる通信システム１０の全体構成を例示する図である。通信システム１０には多数の携帯電話機およびサーバ装置が存在するが、図面が繁雑になるのを防ぐために、サーバ装置１００−１とサーバ装置１００−２（以下、特に個々のサーバ装置を区別する必要のない場合は、サーバ装置１００と略称する）および携帯電話機４００−１〜３（以下、特に個々の携帯電話機を区別する必要のない場合は、携帯電話機４００と略称する）のみを図１に示す。
【００１２】
サーバ装置１００は、一般的なＷＷＷサーバ装置および電子メールサーバ装置と同様の機能を有しており、インターネット２００に接続されている。サーバ装置１００は、Ｊａｖａ（登録商標）プログラミング言語に従って動作手順が記述されたソースファイルをバイトコードへ変換することにより生成されたＪａｖａアプリケーションソフトウェアを、パケット通信によりインターネット２００を介して携帯電話機へ配信する。また、サーバ装置１００−１は、携帯電話機４００に対して有料で各種情報を定期的に電子メールの形で配信する電子メールマガジンの配信を行う。
【００１３】
移動パケット通信網３００は、移動パケット通信網３００を運用する通信事業者と加入契約を結んだ者に対してデータ通信サービスを提供する通信網である。移動パケット通信網３００は、携帯電話機と無線通信を行う無線基地局と、無線基地局に接続された交換機と、交換機およびゲートウェイサーバ装置３１０に接続された関門交換機と（いずれも図示略）とを有している。
【００１４】
ゲートウェイサーバ装置３１０は、移動パケット通信網３００とインターネット２００とを相互接続するものである。ゲートウェイサーバ装置３１０は、インターネット２００と移動パケット通信網３００との間でパケット通信が行われる際に、移動パケット通信網３００内で使用されるプロトコルと、インターネット等の他のネットワークにて標準で使用されるプロトコルであるＴＣＰ／ＩＰとの相互変換を行う。
【００１５】
携帯電話機４００は、図示を省略した使用者が所有している。携帯電話機４００は、パケット通信を行うことが可能であり、移動パケット通信網３００、ゲートウェイサーバ装置３１０およびインターネット２００を介して、インターネット２００に接続されたサーバ装置１００と通信を行うことができる。
【００１６】
［１−２．サーバ装置１００−１の構成］
＜ハードウェア構成＞
図２は、サーバ装置１００−１のハードウェア構成を例示するブロック図である。図２に示したように、サーバ装置１００−１の各部は、バス１０１に接続されている。サーバ装置１００−１の各部は、このバス１０１を介して各部間でデータの授受を行う。
【００１７】
通信部１０２は、インターネット２００を利用した通信を行うための通信インターフェースであり、インターネット２００に接続されている。操作部１０３は、図示を省略したキーボードおよびマウスを有している。操作部１０３は、サーバ装置１００−１の使用者がマウスまたはキーボードを操作すると、操作されたボタンやキーを示す信号をＣＰＵ（Central Processing Unit）１０８へ出力する。表示部１０４は、図示を省略した液晶表示ディスプレイおよび液晶表示ディスプレイの表示制御を行う制御回路を有しており、ＣＰＵ１０８の制御の下、文字やグラフィック画面、サーバ装置１００−１を操作するためのメニュー画面等を表示する。
【００１８】
記憶部１０５は、例えばハードディスク装置など、データを永続的に記憶する装置（図示略）を有している。記憶部１０５は、ＪＡＲ（Java Archive）ファイル１０５ＣとＡＤＦ（Application Descriptor File）１０５Ｂとを記憶している。また、記憶部１０５は、サーバ装置１００−１が配信するＪａｖａアプリケーションソフトウェアを実行することにより実現するＪａｖａアプリケーション（以下、Ｊａｖａ−ＡＰとする）の概要を紹介する説明ファイル１０５Ａが記憶されている。これらのファイルの詳細については、後に説明する。また、記憶部１０５は、電子メールマガジンの配信を行う事業者との間でサーバ装置１００−１が配信する電子メールマガジンの購読契約を結んだ者（以下、購読契約者と略称する）に関するデータを格納した購読契約者テーブルＴＢ１を記憶している。購読契約者テーブルＴＢ１には、購読契約者の氏名に対応付けて、購読契約者に付与されている電子メールアドレスと、電子メールマガジンの購読料金の割引きを行うか否かを示す割引きデータとが図３に示したフォーマットで格納される。また、記憶部１０５は、サーバ装置１００−１を一般的なＷＷＷサーバ装置および電子メールサーバ装置として機能させるための、サーバソフトウェアと電子メールマガジンを配信するための配信プログラム（ファイル名：mail_send.cgi）とを記憶している。また、記憶部１０５は、配信する電子メールマガジンを格納するためのメールボックスを購読契約者毎に有している。
【００１９】
ＲＯＭ（Read Only Memory）１０６には、サーバ装置１００−１の各部の初期化を行う初期化プログラムが記憶されている。ＣＰＵ１０８は、図示を省略した電源から電力が供給されると、ＲＯＭ１０６から初期化プログラムを読み出して実行し、ＲＡＭ（Random Access Memory）１０７を作業エリアとしてサーバ装置１００−１の各部の初期化を行う。ＣＰＵ１０８は、初期化を終了すると記憶部１０５からサーバソフトウェアを読み出して起動する。ＣＰＵ１０８がサーバソフトウェアを起動すると、サーバ装置１００−１は一般的なＷＷＷサーバ装置および電子メールサーバ装置として機能する。
【００２０】
＜ＪＡＲファイル、ＡＤＦ、説明ファイル＞
サーバ装置１００−１は、電子メールの送受信を行うＪａｖａ−ＡＰを携帯電話機４００に実現させるためのＪａｖａアプリケーションソフトウェアを配信する（以下、サーバ装置１００−１が配信するＪａｖａアプリケーションソフトウェアを起動することにより実現する、電子メールの送受信を行うＪａｖａ−ＡＰを第１電子メール−ＡＰとする）。サーバ装置１００−１が配信する第１電子メール−ＡＰソフトウェアは、ＡＤＦ１０５ＢとＪＡＲファイル１０５Ｃとからなる。
【００２１】
ＪＡＲファイル１０５Ｃは、第１電子メール−ＡＰを携帯電話機４００に実現させるために必要となるＪａｖａバイトコード、クラスファイルおよびリソースファイルとを内包している。
【００２２】
ＡＤＦ１０５Ｂは、ＪＡＲファイル１０５ＣやＪａｖａ−ＡＰ、即ち、第１電子メール−ＡＰに関する情報が記述されたテキストファイルである。ＡＤＦ１０５Ｂには、例えば、ＪＡＲファイル１０５Ｃに関する情報として、図４に示したようにＪＡＲファイル１０５ＣのファイルサイズやＪＡＲファイル１０５Ｃの記憶位置を示すPackageURLなどが記述されている。Ｊａｖａ−ＡＰが、ダウンロード元のサーバ装置１００以外のサーバ装置と通信を行う機能を有する場合には、ＡＤＦ１０５Ｂには、その旨を示す属性である「UseServer = any」が記述される。第１電子メール−ＡＰは、ダウンロード元のサーバ装置以外のサーバ装置とも通信を行うので、ＡＤＦ１０５Ｂには、「UseServer = any」が記述されている。
【００２３】
説明ファイル１０５Ａは、図５に例示したように、マークアップ言語の一つであるＣＨＴＭＬ（Compact HyperText Markup Language）に従って記述されている。説明ファイル１０５ＡがＣＨＴＭＬを解釈可能なＷＷＷブラウザにより解釈されると、図６に示したように、Ａタグ「＜Ａ」と「／Ａ＞」の間にされた記述が、ハイパーリンクＰ０１ＡとしてページＰ０１に表示される。Ａタグに記述されているｉｊａｍ属性は、Ａタグにより表示されたハイパーリンクがクリックされた際に、ＷＷＷブラウザがＯＢＪＥＣＴタグを参照するようにするための属性である。ＯＢＪＥＣＴタグは、第１電子メール−ＡＰソフトウェアのＡＤＦ１０５Ｂを特定するために使用されるタグである。ｄａｔａ属性は、第１電子メール−ＡＰソフトウェアのＡＤＦ１０５Ｂの記憶位置を示すＵＲＬを指定するためのものである。
【００２４】
＜ファイルの配信＞
サーバ装置１００−１は、携帯電話機４００からのＨＴＴＰリクエストメッセージに応じて、説明ファイル１０５ＡやＡＤＦ１０５Ｂ、ＪＡＲファイル１０５Ｃなどをクライアントとなる携帯電話機４００へ送信する。サーバ装置１００−１は、説明ファイル１０５ＡのＵＲＬをパラメータとするＧＥＴメソッドを用いたＨＴＴＰリクエストを受信した場合には、記憶部１０５から説明ファイル１０５Ａを読み出す。サーバ装置１００−１は、説明ファイル１０５Ａを読み出すと、読み出した説明ファイル１０５Ａを内包するＨＴＴＰレスポンスを生成し、このＨＴＴＰレスポンスをＨＴＴＰリクエストを送信してきた携帯電話機４００へ送信する。
【００２５】
サーバ装置１００−１は、ＧＥＴメソッドのパラメータであるＵＲＬがＡＤＦ１０５ＢのＵＲＬである場合には、説明ファイル１０５Ａの場合と同様に、記憶部１０５からＡＤＦ１０５Ｂを読み出し、読み出したＡＤＦ１０５Ｂを携帯電話機４００へ送信する。また、サーバ装置１００−１は、ＧＥＴメソッドのパラメータであるＵＲＬがＪＡＲファイル１０５ＣのＵＲＬである場合には、記憶部１０５からＪＡＲファイル１０５Ｃを読み出し、ＨＴＴＰリクエストを送信してきた携帯電話機４００へＪＡＲファイル１０５Ｃを送信する。
【００２６】
＜電子メール−ＡＰの識別＞
サーバ装置１００−１は、携帯電話機４００へ電子メールマガジンを配信する際、携帯電話機４００にて実現されているアプリケーションが、サーバ装置１００−１からダウンロードされインストールされた第１電子メール−ＡＰソフトウェアを起動することにより実現された第１電子メール−ＡＰであるか否かを識別する。電子メールマガジンの配信を行う事業者は、この識別結果に基づいて電子メールマガジンの購読料金の割引きを行うサービスを購読契約者に対して提供する。携帯電話機４００にて実現されているアプリケーションの識別は、以下のようにして行われる。
【００２７】
ＣＰＵ１０８は、ＧＥＴメソッドのパラメータとして、記憶部１０５に記憶されている配信プログラムのＵＲＬ（http://www.abc.ne.jp/mail_send.cgi）と電子メールアドレスとを内包するＨＴＴＰリクエストを受信すると、配信プログラムを記憶部１０５から読み出して起動する。図７は、ＣＰＵ１０８が配信プログラムを実行した際に行う処理の流れを例示するフローチャートである。図７に示したように、ＣＰＵ１０８は、受信したＨＴＴＰリクエストのヘッダの「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを参照し、このフィールドに携帯電話機４００を一意に識別するための端末識別子に加えて、携帯電話機４００にて実現されているアプリケーションが当該サーバ装置からダウンロードされたアプリケーションプログラムを実行することにより実現したアプリケーションであることを示す識別データの「Home」が記述されているか否かを判断する。ＣＰＵ１０８は、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに識別データの「Home」が記述されている場合には、携帯電話機４００にて実現されているアプリケーションが、サーバ装置１００−１からダウンロードされた第１電子メール−ＡＰソフトウェアを起動することにより実現されている第１電子メール−ＡＰであると判断する。また、ＣＰＵ１０８は、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに端末識別子に加えて識別データの「Home」が記述されていない場合には、携帯電話機４００にて実現されているアプリケーションが、サーバ装置１００−１からダウンロードされた第１電子メール−ＡＰソフトウェアを起動することにより実現されている第１電子メール−ＡＰではないと判断する。ＣＰＵ１０８は、この判断結果に基づいて電子メールマガジンの購読料金割引きを行うか否かを示す割引きデータを、購読契約者テーブルＴＢ１の割引きフィールドに格納する。次に、ＣＰＵ１０８は、メールボックスに格納されている電子メールマガジンを読み出して携帯電話機４００へ送信する。
【００２８】
電子メールマガジンの配信を行う事業者は、この判断データに基づいて、第１電子メール−ＡＰを用いて電子メールマガジンを受信している者に対して、購読料金の割引きを行う。
【００２９】
［１−３．サーバ装置１００−２の構成］
次に、サーバ装置１００−２の構成について説明する。サーバ装置１００−２の構成は、サーバ装置１００−１とほぼ同じであるため、サーバ装置１００−１と同じ部分については、その説明を省略する。サーバ装置１００−２がサーバ装置１００−１と異なるのは、配信するＪＡＲファイル、ＡＤＦおよび説明ファイルが、サーバ装置１００−１が配信するファイルと異なる点である。例えば、サーバ装置１００−２が配信するＪＡＲファイルに内包されているプログラムを実行することにより実現する電子メール−ＡＰ（以下、第２電子メール−ＡＰとする）は、第１電子メール−ＡＰとは異なるユーザインターフェースを提供する。
【００３０】
［１−４．携帯電話機の構成］
次に携帯電話機４００の構成について説明する。図８は、携帯電話機４００のハードウェア構成を例示するブロック図である。図８に示したように、アンテナ４０３を除く携帯電話機４００の各部は、バス４０１に接続されており、このバス４０１を介して各部間でデータの授受が行われる。
【００３１】
通信部４０２は、通信インターフェースとしての機能を有しており、ＣＰＵ４０９の制御の下、通信部４０２に接続されているアンテナ４０３を介して、移動パケット通信網３００を構成している無線基地局との間で無線通信を行う。通信部４０２は、ＣＰＵ４０９から出力された信号を無線基地局へ送信する一方、無線基地局から送信された信号をＣＰＵ４０９へ出力する。操作部４０４は、図示を省略したテンキーなどの複数のキーを有している。携帯電話機４００の使用者が、操作部４０４のキーを押下すると、押下されたキーを示す信号が操作部４０４からＣＰＵ４０９へ出力される。表示部４０５は、例えば図示を省略した液晶表示ディスプレイおよび液晶表示ディスプレイの表示制御を行う制御回路を有しており、ＣＰＵ４０９の制御の下、文字やグラフィック画面、携帯電話機４００を操作するためのメニュー画面などを液晶ディスプレイに表示する。
【００３２】
不揮発性メモリ４０６は、携帯電話機４００を制御するためのデータと、携帯電話機４００を一意に識別するための端末識別子およびサーバ装置１００−１を運用する事業者が携帯電話機４００の使用者に付与した電子メールアドレスとを記憶している。図９は、携帯電話機４００−１〜３と携帯電話機４００−１〜３の各々の不揮発性メモリ４０６に記憶されている端末識別子および電子メールアドレスとの対応関係を示す図であり、各々の不揮発性メモリ４０６は、図９に示した電子メールアドレスを記憶している。また、不揮発性メモリ４０６は、サーバ装置１００からダウンロードしたＡＤＦ１０５ＢやＪＡＲファイル１０５Ｃを記憶する。また、不揮発性メモリ４０６は、ＵＲＬテーブルＴＢ２を記憶する。ＵＲＬテーブルＴＢ２には、図１０に示したフォーマットで、サーバ装置１００からダウンロードされたＡＤＦ１０５ＢのＵＲＬと、ＡＤＦ１０５Ｂの「AppName」キーに記述されているデータとが対応付けて格納される。
【００３３】
ＲＯＭ４０７は、例えば、携帯電話機４００の各部の初期化を行うための初期化プログラム、携帯電話機４００の全体を制御するためのＯＳ（Operating System）ソフトウェア、ＣＨＴＭＬを解釈可能なＷＷＷブラウザプログラム、携帯電話機４００にてＪａｖａ−ＡＰソフトウェアを実行するためのＪａｖａ実行環境プログラムなどを記憶している。
【００３４】
ＣＰＵ４０９は、図示を省略した電源から電力が供給されると、ＲＯＭ４０７から初期化プログラムを読み出して実行し、ＲＡＭ４０８を作業エリアとして携帯電話機４００の各部の初期化を行う。ＣＰＵ４０９は、初期化を終了するとＲＯＭ４０７からＯＳソフトウェアを読み出して起動する。ＯＳソフトウェアを実行しているＣＰＵ４０９は、ＣＰＵ４０９に入力される信号に応じた処理を行う。例えば、携帯電話機４００の使用者が、操作部４０４が有するキーを押下すると、ＣＰＵ４０９は、操作部４０４から出力された信号と表示部４０５に表示されている画面とに基づいて使用者の指示を特定し、使用者の指示に応じた処理を行う。
【００３５】
＜Ｊａｖａ実行環境＞
図１１は、携帯電話機４００におけるＪａｖａ−ＡＰ実行環境の構成を例示する図である。ＪＡＲストレージは、サーバ装置１００からダウンロードされるＪＡＲファイルを記憶するための記憶領域であり、ＪＡＭ（Java Application Manager）によって不揮発性メモリ４０６に確保される。スクラッチパッドは、永続性を持つデータ（アプリケーションの終了後も保持され続けるデータ）を記憶するための記憶領域であり、不揮発性メモリ４０６に確保される。スクラッチパッドは、ＪＡＭによってＪａｖａ−ＡＰ毎に不揮発性メモリ４０６に確保される。
【００３６】
ＪＡＭは、Ｊａｖａ−ＡＰソフトウェアを管理するものであり、ＪＡＲストレージに記憶されて実行可能となっているＪａｖａ−ＡＰソフトウェアの一覧表示、Ｊａｖａ−ＡＰソフトウェアの実行管理（Ｊａｖａ−ＡＰソフトウェアの起動・強制終了）、Ｊａｖａ−ＡＰソフトウェアのインストールや削除を行う。
【００３７】
ＫＶＭ（K Virtual Machine）は、Ｊａｖａバイトコードをネイティブコードに変換して実行するＪＶＭ（Java Virtual Machine）を小型組み込み向けデバイス向けに再設計したものであり、メモリやＣＰＵ能力、電池消費に制約があるデバイスで使用されるように設計されている。
【００３８】
＜ＪＡＭが有する機能（１）：Ｊａｖａ−ＡＰソフトウェアのダウンロード＞
ＪＡＭは、Ｊａｖａ−ＡＰソフトウェアをダウンロードして不揮発性メモリ４０６に記憶する機能を有している。以下、ＪＡＭがＪａｖａ−ＡＰソフトウェアをダウンロードする時に行う処理の流れについて説明する。
【００３９】
ＷＷＷブラウザは、ＨＴＭＬファイルにおいてハイパーリンクを表示させるためのＡタグにｉｊａｍ属性が記述されていると判断した場合には、ＯＢＪＥＣＴタグのｄａｔａ属性に記述されているＵＲＬを抽出する。ＷＷＷブラウザは、このＵＲＬがＡＤＦを指定する場合、即ち、ＵＲＬが指定するファイルの拡張子がＡＤＦを示す「jar」である場合には、ＡＤＦをダウンロードするようにＪＡＭに要求する。
【００４０】
ＪＡＭは、ＡＤＦをダウンロードするように要求されると、ＯＢＪＥＣＴタグのｄａｔａ属性に記述されているＡＤＦのＵＲＬを抽出する。ＪＡＭは、ＵＲＬで指定されるサーバ装置１００との間にＴＣＰコネクションを確立し、抽出したＵＲＬをパラメータとするＧＥＴメソッドを用いたＨＴＴＰリクエストを生成する。ＪＡＭは、生成したＨＴＴＰリクエストをＵＲＬで指定されるサーバ装置１００へ、確立したＴＣＰコネクションを介して送信する。
【００４１】
ＪＡＭは、ＨＴＴＰリクエストへの応答としてサーバ装置１００から送信される、ＡＤＦを内包するＨＴＴＰレスポンスを受信する。ＪＡＭは、内包されているＡＤＦを参照し、Ｊａｖａ−ＡＰソフトウェアを、不揮発性メモリ４０６にインストールすることができるか否かを判断する。具体的には、ＪＡＭは、ＡＤＦに記述されている、ＪＡＲファイルのサイズを示す「AppSize」キーとＪａｖａ−ＡＰが使用するスクラッチパッドのサイズを示す「SPsize」キーを参照する。ＪＡＭは、ＡＤＦに記述されているＪａｖａ−ＡＰソフトウェアのサイズおよび使用するスクラッチパッドのサイズと、ＪＡＲストレージおよびスクラッチパッドの空き容量を比較し、ＪＡＲファイルをＪＡＲストレージに記憶させることができるか否かと、ダウンロードした後、Ｊａｖａ−ＡＰが使用するスクラッチパッドの容量を確保できるか否かを判断する。ＪＡＭは、新たにＪａｖａ−ＡＰソフトウェアをダウンロードすることが可能であると判断した場合には、ＡＤＦの「UserServer」キーを参照する。ＪＡＭは、ＡＤＦに「UseServer = any」が記述されている場合には、ダウンロードするＪａｖａ−ＡＰソフトウェアを起動することにより実現するＪａｖａ−ＡＰは複数のサーバ装置と通信を行うＪａｖａ−ＡＰである、と判断し、ＡＤＦの「AppName」キーに記述されているＪａｖａ−ＡＰのアプリケーション名とＡＤＦのＵＲＬのドメイン名とを対応付けて図１０に示すようにＵＲＬテーブルＴＢ２に格納する。
【００４２】
次に、ＪＡＭは、ＡＤＦに記述されている「PackageURL」キーを参照し、ＪＡＲファイルが記憶されている位置を示すＵＲＬを抽出する。ＪＡＭは、ＵＲＬを抽出すると、ＵＲＬで指定されるサーバ装置１００との間にＴＣＰコネクションを確立し、このＵＲＬをパラメータとするＧＥＴメソッドを用いたＨＴＴＰリクエストを生成する。ＪＡＭは、生成したＨＴＴＰリクエストを、確立したＴＣＰコネクションを介してサーバ装置１００へ送信する。ＪＡＭは、ＨＴＴＰリクエストへの応答としてサーバ装置１００から送信される、ＪＡＲファイルを内包するＨＴＴＰレスポンスを受信する。ＪＡＭは、ＪＡＲファイルを内包したＨＴＴＰレスポンスを受信すると、このＨＴＴＰレスポンスからＪＡＲファイルを抽出し、抽出したＪＡＲファイルをＪＡＲストレージに記憶する。ＪＡＭは、ＡＤＦに記述されているスクラッチパッドのサイズを示す「SPsize」キーを参照し、「SPsize」キーに指定されてい容量を、ダウンロードしたＪａｖａ−ＡＰソフトウェアによって実現されるＪａｖａ−ＡＰ用にスクラッチパッドに確保する。
【００４３】
＜ＪＡＭが有する機能（２）：Ｊａｖａ−ＡＰが行う通信の監視＞
ＪＡＭは、Ｊａｖａ−ＡＰが送信するＨＴＴＰリクエストを監視する機能を有している。ＪＡＭは、Ｊａｖａ−ＡＰが生成したＨＴＴＰリクエストの送信先が当該Ｊａｖａ−ＡＰを実現するためのＪａｖａ−ＡＰソフトウェアのダウンロード元である場合には、ＨＴＴＰリクエストを生成したＪａｖａ−ＡＰが、ＨＴＴＰリクエストの送信先からダウンロードしたＪａｖａ−ＡＰソフトウェアを実行することにより実現されたＪａｖａ−ＡＰである旨を、Ｊａｖａ−ＡＰが送信するＨＴＴＰリクエストのヘッダに記述する。図１２は、この処理の流れを例示するフローチャートである。
【００４４】
図１２に示したように、ＪＡＭは、ＪＡＭにより実行管理されているＪａｖａ−ＡＰからＨＴＴＰリクエストを送信するように要求されると、まず、リクエストヘッダに「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドが記述されているか否かを判断する。ＪＡＭは、「Ｕｓｅｒ−Ａｇｅｎｔ」が記述されていると判断した場合には、リクエストヘッダから「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを削除する。これにより、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを偽装するＪａｖａ−ＡＰが記述した「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを排除することが可能となる。次に、ＪＡＭは、ＨＴＴＰリクエストの送信を要求したＪａｖａ−ＡＰのアプリケーション名をキーにして、ＵＲＬテーブルＴＢ２を検索する。ＪＡＭは、該当するアプリケーション名を見つけると、このアプリケーション名に対応付けて記憶されている、ＡＤＦのダウンロード元における記憶位置を示すＵＲＬを読み出す。ＪＡＭは、読み出したＵＲＬに記述されているドメイン名と、ＨＴＴＰリクエストに内包されているＵＲＬに記述されているドメイン名とを比較し、ドメイン名が同じであると判断した場合には、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに、携帯電話機４００の端末識別子と、識別データ「Home」を記述して、ＨＴＴＰリクエストを送信する。ＪＡＭは、ドメイン名が同じでないと判断した場合には、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに、携帯電話機４００の端末識別子のみを記述してＨＴＴＰリクエストを送信する。
【００４５】
［２．動作例］
次に、本実施形態の動作例について説明する。この動作例の概略は、以下に述べる通りである。まず、携帯電話機４００−１の使用者（以下、第１使用者とする）は第１電子メール−ＡＰソフトウェアを、携帯電話機４００−２の使用者（以下、第２使用者とする）は第２電子メール−ＡＰソフトウェアをダウンロードする。携帯電話機４００−３の使用者（以下、第３使用者とする）は、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを偽装する電子メール−ＡＰ（以下、第３電子メール−ＡＰとする）を実現するソフトウェアを作成し、ＪＡＭを使用しないで携帯電話機４００−３へインストールする。第１使用者、第２使用者および第３使用者は、サーバ装置１００−１が提供する電子メールマガジンの購読契約を、電子メールマガジンを配信する事業者との間で結び、電子メールマガジンを受信することを試みる。
【００４６】
なお、携帯電話機４００にて実現される、前述のＯＳ、ＷＷＷブラウザ、ＪＡＭ、ＫＶＭ、Ｊａｖａ−ＡＰが行う動作は、携帯電話機４００の動作となることから、以降の説明では、動作の主体を携帯電話機とする。
【００４７】
［２−１．アプリケーションソフトウェアのダウンロード］
まず、図１３を用いて、携帯電話機４００−１がサーバ装置１００−１から第１電子メール−ＡＰソフトウェアをダウンロードする時の動作例について説明する。
【００４８】
第１使用者が、ＷＷＷブラウザソフトウェアを起動させる旨の操作を、携帯電話機４００−１の操作部４０４が有するキーを用いて行うと、携帯電話機４００−１においてＷＷＷブラウザが実現される。第１使用者が、操作部４０４のキーを操作して、サーバ装置１００−１に記憶されている説明ファイル１０５ＡのＵＲＬ（http://www.abc.ne.jp/mail_1.html）を入力した後、説明ファイル１０５Ａを取得する旨の操作を行うと、携帯電話機４００−１では、説明ファイル１０５ＡのＵＲＬをパラメータとするＧＥＴメソッドを用いたＨＴＴＰリクエストが生成される。このＨＴＴＰリクエストは、携帯電話機４００から送信され、移動パケット通信網３００、インターネット２００を介して、サーバ装置１００−１へ送信される（ステップＳ１００）。
【００４９】
サーバ装置１００−１がＨＴＴＰリクエストを受信すると、このリクエストに応じて記憶部１０５から説明ファイル１０５Ａが読み出され（ステップＳ１０１）、読み出された説明ファイル１０５Ａを内包するＨＴＴＰレスポンスが生成される（ステップＳ１０２）。このＨＴＴＰレスポンスは、サーバ装置１００−１から送信され、インターネット２００、移動パケット通信網３００を介して、携帯電話機４００−１へ送信される（ステップＳ１０３）。
【００５０】
携帯電話機４００−１が、このＨＴＴＰレスポンスを受信すると、このレスポンスに内包されている説明ファイル１０５ＡがＷＷＷブラウザにより解釈され、この結果、携帯電話機４００−１の表示部４０５には、図６に示したページが表示される（ステップＳ１０４）。このページＰ０１を見た第１使用者が、操作部４０４が有するキーを操作して、ハイパーリンクＰ０１Ａの部分をクリックする旨の操作を行うと（ステップＳ１０５）、携帯電話機４００−１では、ＡＤＦ１０５Ｂを取得するためのＵＲＬ（http://www.abc.ne.jp/mail_1.jam）が説明ファイル１０５Ａから抽出される。次に、携帯電話機４００−１では、抽出したＵＲＬをパラメータとするＧＥＴメソッドを用いたＨＴＴＰリクエストが生成され（ステップＳ１０６）、生成されたＨＴＴＰリクエストがサーバ装置１００−１へ送信される（ステップＳ１０７）。
【００５１】
サーバ装置１００−１がＨＴＴＰリクエストを受信すると、このリクエストに応じてＡＤＦ１０５Ｂが記憶部１０５から読み出される（ステップＳ１０８）。サーバ装置１００−１では、読み出されたＡＤＦ１０５Ｂを内包するＨＴＴＰレスポンスが生成され（ステップＳ１０９）、このレスポンスが携帯電話機４００−１へ送信される（ステップＳ１１０）。
【００５２】
携帯電話機４００−１は、ＡＤＦ１０５Ｂを内包するＨＴＴＰレスポンスを受信すると、電子メール−ＡＰソフトウェアをインストールすることが可能か判断する。携帯電話機４００−１は、電子メール−ＡＰソフトウェアを記憶することが可能な状態であるので、ダウンロードの処理を継続する。
【００５３】
次に携帯電話機４００−１は、ＡＤＦ１０５Ｂの「UseServer」キーを参照する。「UseServer」キーには「any」が記述されているので、ダウンロードされる電子メール−ＡＰソフトウェアは、複数のサーバ装置と通信を行うＪａｖａ−ＡＰであると判断される。次に、携帯電話機４００−１は、ＡＤＦ１０５Ｂから「AppName」キーに記述されているアプリケーション名を抽出し、ＡＤＦ１０５ＢのＵＲＬと対応付けて図１０に示すようにＵＲＬテーブルＴＢ２に格納する（ステップＳ１１１）。次に携帯電話機４００−１は、ＡＤＦ１０５ＢからPackageURL（http://www.abc.ne.jp/mail_1.jar）を抽出し、抽出したPackageURLをパラメータとするＧＥＴメソッドを用いたＨＴＴＰリクエストを生成する（ステップＳ１１２）。生成されたＨＴＴＰリクエストは、携帯電話機４００−１からサーバ装置１００−１へ送信される（ステップＳ１１３）。
【００５４】
サーバ装置１００−１にて、PackageURLを内包したＨＴＴＰリクエストが受信されると、このＨＴＴＰリクエストに内包されたＵＲＬで指定されるＪＡＲファイル１０５Ｃが記憶部１０５から読み出される（ステップＳ１１４）。サーバ装置１００−１は、ＪＡＲファイル１０５Ｃを読み出すと、このＪＡＲファイル１０５Ｃを内包したＨＴＴＰレスポンスを生成し（ステップＳ１１５）、携帯電話機４００−１へ送信する（ステップＳ１１５）。携帯電話機４００−１にて、ＨＴＴＰレスポンスが受信されると、ＨＴＴＰレスポンスに内包されているＪＡＲファイル１０５Ｃと、既にダウンロードしてあるＡＤＦ１０５Ｂとが不揮発性メモリ４０６に記憶される（ステップＳ１１７）。
【００５５】
携帯電話機４００−２においても、携帯電話機４００−１がソフトウェアをダウンロードしたのと同様にサーバ装置１００−２から第２電子メール−ＡＰソフトウェアがダウンロードされ、図１４に示したように第２電子メール−ＡＰのアプリケーション名とＡＤＦ１０５ＢのＵＲＬとが対応付けられて格納される。
【００５６】
以上説明したように、携帯電話機４００が電子メール−ＡＰソフトウェアをダウンロードすると、電子メール−ＡＰのアプリケーション名とＡＤＦのＵＲＬとが対応付けられて、ＵＲＬテーブルＴＢ２およびＵＲＬテーブルＴＢ３に格納される。
【００５７】
［２−２．携帯電話機にて実現されているアプリケーションの識別］
＜携帯電話機４００−２による電子メールマガジンの受信＞
まず、第２電子メール−ＡＰが実現されている携帯電話機４００−２が、サーバ装置１００−１との間で通信を行い、電子メールマガジンを取得する時の動作例について説明する。
【００５８】
第２使用者が、第２電子メール−ＡＰが実現されている携帯電話機４００−２において、操作部４０４のキーを操作してサーバ装置１００−１のメールボックスに格納されている電子メールマガジンを取得する旨の操作を行うと、携帯電話機４００−２は、不揮発性メモリ４０６に記憶されている第２使用者に付与された電子メールアドレス「bbb@abc.ne.jp」と、ＵＲＬ「http://www.abc.ne.jp/mail_send.cgi」とを内包するＧＥＴメソッドを用いたＨＴＴＰリクエストを生成する。
【００５９】
携帯電話機４００−２は、ＨＴＴＰリクエストを送信する前に、まず、ＨＴＴＰリクエストのヘッダに「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドが記述されているか否かを判断する（図１２：ステップＳＢ１）。第２電子メール−ＡＰが生成したＨＴＴＰリクエストのヘッダには、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドは記述されていないので（ステップＳＢ１：ＮＯ）、次に、携帯電話機４００−２は、ＵＲＬテーブルＴＢ３を参照し、第２電子メール−ＡＰソフトウェアのダウンロード元のサーバ装置１００−２のドメイン名「def.ne.jp」を抽出する（ステップＳＢ３）。携帯電話機４００−２は、ドメイン名を抽出すると、生成されたＨＴＴＰリクエストに内包されているＵＲＬのドメイン名「abc.ne.jp」と、抽出したドメイン名「def.ne.jp」とを比較し、ＨＴＴＰリクエストの送信先が第２電子メール−ＡＰソフトウェアのダウンロード元であるか判断する（ステップＳＢ４）。抽出されたドメイン名「def.ne.jp」とＨＴＴＰリクエストに内包されているＵＲＬのドメイン名「abc.ne.jp」は違うので、携帯電話機４００−２は、ＨＴＴＰリクエストの送信先が、第２電子メール−ＡＰソフトウェアのダウンロード元のサーバ装置１００−２ではないとして（ステップＳＢ４：ＮＯ）、ＨＴＴＰリクエストのヘッダに「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドと端末識別子とを記述し（ステップＳＢ５）、ＨＴＴＰリクエストをサーバ装置１００−１へ送信する（ステップＳＢ７）。
【００６０】
サーバ装置１００−１の通信部１０２は、ＨＴＴＰリクエストを受信すると受信したリクエストをＣＰＵ１０８へ出力する。ＣＰＵ１０８は、ＨＴＴＰリクエストを受信すると、受信したＨＴＴＰリクエストに内包されているＵＲＬを抽出し、抽出したＵＲＬで指定される「mail_send.cgi」を起動する。ＣＰＵ１０８は、「mail_send.cgi」を起動すると、受信したＨＴＴＰリクエストのヘッダの「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを参照する（図７：ステップＳＡ１）。「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドには、端末識別子のみしか記述されていないので、ＣＰＵ１０８は、ＨＴＴＰリクエストの送信元がサーバ装置１００−１が提供している第１電子メール−ＡＰソフトウェアとは異なる電子メール−ＡＰソフトウェアを使用してＨＴＴＰリクエストを送信してきたものと判断する（ステップＳＡ１：ＮＯ）。次にＣＰＵ１０８は、ＨＴＴＰリクエストに内包されている電子メールアドレスをキーにして購読契約者テーブルＴＢ１を検索し、該当する電子メールアドレス「bbb@abc.ne.jp」に対応付けて、割引きデータとして「非割引き」を購読契約者テーブルＴＢ１の割引きフィールドに格納する（ステップＳＡ２）。次にＣＰＵ１０８は、メールアドレス「bbb@abc.ne.jp」に対応するメールボックスから電子メールマガジンを読み出し（ステップＳＡ４）、読み出した電子メールマガジンを内包したＨＴＴＰレスポンスを生成する。サーバ装置１００−１は、生成したＨＴＴＰレスポンスを携帯電話機４００−２へ送信する（ステップＳＡ５）。
【００６１】
携帯電話機４００−２がＨＴＴＰレスポンスを受信すると、受信したＨＴＴＰレスポンスに内包されている電子メールマガジンが抽出され、抽出された電子メールマガジンが不揮発性メモリ４０６に記憶される。以上説明したように、購読契約者テーブルＴＢ１の割引きフィールドには、「非割引き」が格納されたので、携帯電話機４００−２の使用者に対しては、電子メールマガジンの購読料金の割引きは行われないこととなる。
【００６２】
＜携帯電話機４００−１による電子メールマガジンの受信＞
次に、第１電子メール−ＡＰが実現されている携帯電話機４００−１が、サーバ装置１００−１との間で通信を行い、電子メールマガジンを取得する時の動作例について説明する。なお、携帯電話機４００−１が、第１電子メール−ＡＰが生成したＨＴＴＰリクエストに「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドが記述されているか否か判断するまでの動作は、携帯電話機４００−２が行う動作と同じであるためその説明を省略する。
【００６３】
携帯電話機４００−１は、ＨＴＴＰリクエストを送信する前に、まず、ＨＴＴＰリクエストのヘッダに「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドが記述されているか否かを判断する（図１２：ステップＳＢ１）。第１電子メール−ＡＰが生成したＨＴＴＰリクエストのヘッダには、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドは記述されていないので（ステップＳＢ１：ＮＯ）、次に、携帯電話機４００−１は、ＵＲＬテーブルＴＢ２から、第１電子メール−ＡＰソフトウェアのダウンロード元のサーバ装置１００−１のドメイン名「abc.ne.jp」を抽出する（ステップＳＢ３）。次に携帯電話機４００−１は、生成されたＨＴＴＰリクエストに内包されているＵＲＬのドメイン名と抽出したドメイン名とを比較し、ＨＴＴＰリクエストの送信先が第１電子メール−ＡＰソフトウェアのダウンロード元であるか判断する（ステップＳＢ４）。抽出されたドメイン名「abc.ne.jp」とＨＴＴＰリクエストに内包されているＵＲＬのドメイン名「abc.ne.jp」は同じであるので、携帯電話機４００−１は、ＨＴＴＰリクエストの送信先が、第１電子メール−ＡＰソフトウェアのダウンロード元のサーバ装置１００−１であるとして（ステップＳＢ４：ＹＥＳ）、ＨＴＴＰリクエストのヘッダに「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドと端末識別子と識別データ「Home」とを記述し（ステップＳＢ６）、ＨＴＴＰリクエストをサーバ装置１００−１へ送信する（ステップＳＢ７）。
【００６４】
サーバ装置１００−１のＣＰＵ１０８は、ＨＴＴＰリクエストを受信すると、「mail_send.cgi」を起動し、受信したＨＴＴＰリクエストのヘッダの「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを参照する（図７：ステップＳＡ１）。「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドには、端末識別子と識別データ「Home」が記述されているので、ＣＰＵ１０８は、ＨＴＴＰリクエストの送信元がサーバ装置１００−１が提供している第１電子メール−ＡＰソフトウェアを使用してＨＴＴＰリクエストを送信してきたものと判断する（ステップＳＡ１：ＹＥＳ）。次にＣＰＵ１０８は、ＨＴＴＰリクエストに内包されている電子メールアドレス「aaa@abc.ne.jp」をキーにして購読契約者テーブルＴＢ１を検索し、該当する電子メールアドレスに対応付けて、割引きデータとして「割引き」を購読契約者テーブルＴＢ１の割引きフィールドに格納する（ステップＳＡ２）。次にＣＰＵ１０８は、メールアドレス「aaa@abc.ne.jp」に対応するメールボックスから電子メールマガジンを読み出し（ステップＳＡ４）、読み出した電子メールマガジンを内包したＨＴＴＰレスポンスを生成する。サーバ装置１００−１は、生成したＨＴＴＰレスポンスを携帯電話機４００−２へ送信する（ステップＳＡ５）。
【００６５】
携帯電話機４００−１は、ＨＴＴＰレスポンスを受信すると、このレスポンスに内包されている電子メールマガジンを抽出し、不揮発性メモリ４０６に記憶する。以上説明したように、購読契約者テーブルＴＢ１の割引きフィールドには、「割引き」が格納されたので、携帯電話機４００−１の使用者に対しては、電子メールマガジンの購読料金の割引きが行われることとなる。
【００６６】
＜携帯電話機４００−３による電子メールマガジンの受信＞
次に、ＨＴＴＰリクエストのヘッダを偽装する第３電子メール−ＡＰが実現されている携帯電話機４００−３が、サーバ装置１００−１との間で通信を行い、電子メールマガジンを取得する時の動作例について説明する。なお、携帯電話機４００−１が、第３電子メール−ＡＰが生成したＨＴＴＰリクエストに「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドが記述されているか否か判断するまでの動作は、携帯電話機４００−２が行う動作と同じであるためその説明を省略する。
【００６７】
携帯電話機４００−３は、ＨＴＴＰリクエストを送信する前に、まず、ＨＴＴＰリクエストのヘッダに「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドが記述されているか否かを判断する（図１２：ステップＳＢ１）。第３電子メール−ＡＰが生成したＨＴＴＰリクエストのヘッダには、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドが記述されているので（ステップＳＢ１：ＹＥＳ）、携帯電話機４００−３は、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドを削除する。
【００６８】
次に携帯電話機４００−３は、第３電子メール−ＡＰソフトウェアのダウンロード元のサーバ装置のドメイン名をＵＲＬテーブルから抽出しようとするが、第３電子メール−ＡＰを実現するためのソフトウェアは、ＪＡＭを使用しないでインストールされたため、ＵＲＬテーブルを記憶していない。そのため、アプリケーションのダウンロード元のサーバ装置のドメイン名は抽出されない（ステップＳＢ３）。携帯電話機４００−３は、ＵＲＬテーブルからドメイン名を抽出しないので、ステップＳＢ４で「ＮＯ」と判断し、ＨＴＴＰリクエストのヘッダの「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに端末識別子とを記述し（ステップＳＢ６）、ＨＴＴＰリクエストをサーバ装置１００−１へ送信する（ステップＳＢ７）。
【００６９】
ＨＴＴＰリクエストのヘッダの「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドには、識別データ「Home」が記述されていないので、以降の動作は、携帯電話機４００−２の動作と同じになる。携帯電話機４００−２が電子メールマガジンを取得した時と同様に、購読契約者テーブルＴＢ１の割引きフィールドには「非割引き」が格納されるので、携帯電話機４００−３の使用者に対しては、電子メールマガジンの購読料金の割引きは行われないこととなる。
【００７０】
以上説明したように、本実施形態では、サーバ装置１００は、当該サーバ装置１００と通信を行っている携帯電話機４００にて実現されているアプリケーションが、当該サーバ装置１００からダウンロードされインストールされたアプリケーションソフトウェアを実行することにより実現されているアプリケーションか否か判別することができる。これにより、サーバ装置１００は、当該サーバ装置１００からダウンロードされたアプリケーションソフトウェアを実行している携帯電話機４００へ特別なサービスや情報・コンテンツなどを提供することなどが可能となる。
【００７１】
［３．変形例］
本発明は、係る実施形態に限定されるものではない。以下、上述した実施形態の変形例について述べる。
【００７２】
携帯電話機４００にデータ通信サービスを提供する通信網は、例えば、ＩＭＴ−２０００（International Mobile Telecommunication 2000）に準拠したものであってもよい。
【００７３】
上述した携帯電話機４００のＲＯＭ４０７が記憶している各種ソフトウェアは、書き換えが可能なようにしてもよい。各種ソフトウェアを書き換える方法の一例としては、以下のような方法が挙げられる。例えば、ＲＯＭ４０７に替えて、書き換えが可能なフラッシュＲＯＭを使用する。各種ソフトウェアを記録したＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの記録媒体を、パーソナルコンピュータのＣＤ−ＲＯＭドライブに挿入し、このパーソナルコンピュータと、携帯電話機４００とをケーブルで接続する。パーソナルコンピュータが、ＣＤ−ＲＯＭに記録された各種ソフトウェアを読み取り、読み取ったソフトウェアをケーブルで接続されている携帯電話機４００へ送信する。そして、ソフトウェアを受信した携帯電話機４００が、受信したソフトウェアをフラッシュＲＯＭに書き込むことにより、携帯電話機４００に記憶されている各種ソフトウェアをバージョンアップする。このような方法によれば、携帯電話機４００が記憶している各種ソフトウェアは、バージョンアップなど書き換えが可能となる。
【００７４】
上述した変形例では、各種ソフトウェアを記録した記録媒体としてＣＤ−ＲＯＭを挙げているが、記録媒体はこれに限定されるものではない。ＤＶＤ−ＲＯＭや、フラッシュＲＯＭを内蔵したＩＣカード、フロッピー（登録商標）ディスクなど他の記録媒体であってもよい。
【００７５】
Ｊａｖａ−ＡＰソフトウェアのダウンロードは、上述した方法に限定されるものではない。携帯電話機４００は、ＡＤＦの記憶位置を示すＵＲＬが記述されたＳＤＦ（Security Descriptor File）を取得し、次にＳＤＦに記述されているＵＲＬで指定されるＡＤＦを取得し、この後、ＡＤＦに記述されているＵＲＬで指定されるＪＡＲファイルを取得するようにしてもよい。また、携帯電話機４００の通信先がアプリケーションを実現させるためのソフトウェアのダウンロード元か否かを判断する際に、ＳＤＦに記述されているＡＤＦのＵＲＬからドメイン名を抽出するようにしてもよい。
【００７６】
上述した実施形態では、電子メール−ＡＰはどのサーバ装置とも通信を行えるように、ＡＤＦにその旨が記述されているが、指定されたサーバ装置としか通信が行えないように、指定したサーバ装置のドメイン名をＡＤＦに記述するようにしてもよい。
【００７７】
上述した実施形態では、携帯電話機４００にて実行されるソフトウェアは、Ｊａｖａ−ＡＰソフトウェアであるが、携帯電話機４００にて実行されるソフトウェアは、Ｊａｖａ−ＡＰソフトウェアに限定されるものではない。他のプログラミング言語を用いて生成されたソフトウェアであってもよい。また、他のプログラミング言語を用いて生成されたソフトウェアである場合、ソフトウェアをサーバ装置１００からダウンロードする方法は、上述した実施形態の方法に限定されるものではない。例えば、ＡＤＦ１０５Ｂを使用せずに、アプリケーションを実現するためのプログラムのみをサーバ装置１００からダウンロードし、このプログラムのＵＲＬとプログラムのファイル名またはプログラムを実行することにより実現するアプリケーション名と対応付けて不揮発性メモリ４０６に記憶するようにしてもよい。
【００７８】
上述した実施形態では、ＵＲＬとアプリケーション名とを対応付けてＵＲＬテーブルＴＢ２に格納しているが、ＵＲＬに替えて、ＵＲＬに記述されているドメイン名を格納するようにしてもよい。また、ＵＲＬに対応付けてＵＲＬテーブルＴＢ２に格納するのは、アプリケーション名に限定されるものではなく、アプリケーションを実現するためのプログラムのファイル名など、アプリケーションを一意に識別できるものであればよい。
【００７９】
サーバ装置１００が、携帯電話機４００へサービスを提供する場合、「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドに記述される端末識別子を用いて、携帯電話機４００の使用者を識別して、サービスを提供するようにしてもよい。
【００８０】
クライアントとなる装置は、携帯電話機４００に限定されるものではない。ＰＤＡ（Personal Digital Assistance）などの他の携帯通信端末や、一般的なパーソナルコンピュータなど他の通信端末であってもよい。
【００８１】
携帯電話機４００は、サーバ装置１００と通信を行う場合、実行しているアプリケーションプログラムのＡＤＦのＵＲＬ、または、ＡＤＦに記述されているPackageURLをサーバ装置１００へ送信するようにしてもよい。このような態様によれば、サーバ装置１００は、当該サーバ装置１００と通信を行うために通信端末にて実行されているアプリケーションプログラムのダウンロード元を知ることができる。アプリケーションが不正なデータを送信してくるようなアプリケーションである場合、アプリケーションプログラムの提供元をつきとめることが可能となる。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施形態に係わる通信システムの全体構成を例示する図である。
【図２】同実施形態に係わるサーバ装置のハードウェア構成を例示する図である。
【図３】同実施形態に係わるサーバ装置が記憶している購読契約者テーブルＴＢ１のフォーマットを例示する図である。
【図４】同実施形態に係わるサーバ装置が記憶しているＡＤＦ１０５Ｂの内容を例示する図である。
【図５】同実施形態に係わるサーバ装置が記憶している説明ファイル１０５Ａの内容を例示する図である。
【図６】同実施形態に係わるサーバ装置が記憶している説明ファイル１０５ＡがＷＷＷブラウザにより解釈された時に表示される画面を例示する図である。
【図７】同実施形態に係わるサーバ装置が行う処理の流れを例示するフローチャートである。
【図８】同実施形態に係わる携帯電話機のハードウェア構成を例示する図である。
【図９】同実施形態に係わる携帯電話機と、携帯電話機の各々の不揮発性メモリに記憶されている端末識別子および電子メールアドレスとの対応関係を示す図である。
【図１０】同実施形態に係わる携帯電話機の不揮発性メモリに記憶されるＵＲＬテーブルのフォーマットを例示する図である。
【図１１】同実施形態に係わる携帯電話機にて実現されうＪａｖａ−ＡＰ実行環境の構成を例示する図である
【図１２】同実施形態に係わる携帯電話機がＨＴＴＰリクエストを送信する時に行う処理の流れを例示するフローチャートである。
【図１３】同実施形態に係わる携帯電話機が、サーバ装置からＪａｖａ−ＡＰソフトウェアをダウンロードする時の動作を説明するための図である。
【図１４】同実施形態に係わる携帯電話機の不揮発性メモリに記憶されるＵＲＬテーブルに格納されたデータを例示する図である。
【符号の説明】
【００８３】
１００，１００−１，１００−２・・・サーバ装置、１０１・・・バス、１０２・・・通信部、１０３・・・操作部、１０４・・・表示部、１０５・・・記憶部、１０５Ａ・・・説明ファイル、１０５Ｂ・・・ＡＤＦ、１０５Ｃ・・・ＪＡＲファイル、１０６・・・ＲＯＭ、１０７・・・ＲＡＭ、１０８・・・ＣＰＵ、２００・・・インターネット、３００・・・移動パケット通信網、３１０・・・ゲートウェイサーバ装置、４００、４００−１、４００−２・・・携帯電話機、４０１・・・バス、４０２・・・通信部、４０３・・・アンテナ、４０４・・・操作部、４０５・・・表示部、４０６・・・不揮発性メモリ、４０７・・・ＲＯＭ、４０８・・・ＲＡＭ、４０９・・・ＣＰＵ。
【図１】
2005182318.tif 000003
【図２】
2005182318.tif 000004
【図３】
2005182318.tif 000005
【図４】
2005182318.tif 000006
【図５】
2005182318.tif 000007
【図６】
2005182318.tif 000008
【図７】
2005182318.tif 000009
【図８】
2005182318.tif 000010
【図９】
2005182318.tif 000011
【図１０】
2005182318.tif 000012
【図１１】
2005182318.tif 000013
【図１２】
2005182318.tif 000014
【図１３】
2005182318.tif 000015
【図１４】
2005182318.tif 000016