説明

無線アプリケーションを保持および配信する方法およびシステム

【課題】無線アプリケーションを保守および供給する方法を提供すること。
【解決手段】無線アプリケーションを保守し供給するためのコンピュータおよびネットワークベースの方法とシステムとが供給される。例示的実施形態は、モバイルアプリケーションシステム(MAS)を供給し、このシステムは、無線デバイス等のモバイル加入者デバイスにアプリケーションおよびリソースを供給するように安全な態様で各々が働く組み込まれたサーバコンポーネントの集合体である。本発明は、無線加入者デバイスのためのアプリケーションおよびリソースを展開するために使用され得る。アプリケーション、リソース、および他のコンテンツが供給され、加入者による認証されたアクセスのためのMAS、リクエスト中の加入者デバイスとの互換性、MASの電気通信事業者およびシステムアドミニストレータのセキュリティおよび料金請求ポリシーにより供給および検証される。

【発明の詳細な説明】
【背景技術】
【0001】
(発明の背景)
(発明の分野)
本発明は、無線アプリケーションの方法およびシステムに関し、特に、無線アプリケーションを保守して、無線ネットワークを介して無線デバイスに配信する方法およびシステムに関する。
【0002】
(背景情報)
今日、無線デバイスは、世界の多くの地域において普及している。無線電話、ハンドセット、パーソナル情報マネージャ、電子オーガナイザ、パーソナルデジタルアシスタント、ポータブル電子メール機器、ゲーム機器といったデバイス、および他のデバイスが、生活を便利にするために電話事業者の加入者によって用いられる。しかしながら、このようなデバイスにて用いられるソフトウェアおよびこのようなソフトウェアをこれらのデバイスに配置するメカニズムは、あまり知られていない。通常、例えば、セルラー式電話サービスの顧客は、セルラー式電話をそのセルラー式電話サービスの販売業者に持ち込んで、新しい、または更新されたサービスソフトウェアあるいは機能をその電話にロードしてもらわなければならない。さらに、顧客の申し込みの変更さえ、顧客サービス代理業者のもとでか、または顧客サービス代理業者を呼び出すことによって処理される。さらに、各電気通信事業者は、サービスおよびアプリケーションの配布に対して物理的に応答可能であるので、各電気通信業者は、動作可能と指定するデバイス上で提供を所望するサービスおよびアプリケーションを試験しなければならない。従って、このような無線デバイスのためのアプリケーションを開発することを所望するコンテンツプロバイダは、支援することを所望するデバイスごとにアプリケーションを開発しなければならず、かつ場合によっては電気通信業者およびデバイスの製造業者と共に、このようなアプリケーションを試験しなければならない。さらに、特定のソフトウェアアプリケーションが正常に動作しない場合、その電気通信業者は、物理デバイスのすべてをリコールして、そのソフトウェアを更新しなければならない。従って、無線デバイスにソフトウェアの配置をより容易にすることが益々必要となる。
【発明の開示】
【課題を解決するための手段】
【0003】
(発明の簡単な要旨)
本発明の実施形態は、コンピュータおよびネットワークベースの無線アプリケーションを保守および供給(provision)する方法およびシステムを提供する。例示の実施形態は、モバイルアプリケーションシステム(Mobile Application
System(MAS))を提供する。これは、個別および共同で安全な態様で動作して、アプリケーション、リソースおよび他のコンテンツを、無線デバイス等のモバイル加入者デバイスに提供する相互運用サーバコンポーネントの集合である。本発明の実施形態は、さらに、有線加入者デバイスのためのアプリケーションおよび他のコンテンツもまた配置するために用いられ得る。MASによって、アプリケーション、リソースおよび他のコンテンツが供給され、かつ検証され、このMASは、加入者による認証されたアクセス、リクエストする加入者デバイスとの互換性ならびに/あるいは電気通信事業者およびMASの管理者のセキュリティおよび料金請求ポリシーへの順守のためのものである。このようにして、アプリケーション、リソースおよび他のコンテンツが無線デバイス等のデバイスにダウンロードされ得、デバイスがうまく実行する能力がかなりの程度保証される。
【0004】
いくつかの実施形態において、MASは、新しいコンテンツを送信し、コンテンツおよ
びアプリケーションディスカバリ(application discovery)のダウンロードをリクエストする能力を提供する。いくつかの実施形態において、アプリケーションディスカバリは、加入者によって指定される基準と一致するダウンロード可能なコンテンツのリストを返す。別の実施形態において、MASは、加入者の選好に基づくコンテンツのリストを返す。いくつかの実施形態において、加入者の選好は、個人アクセスリストによって管理される。
【0005】
1実施形態において、コンテンツを送信し、コンテンツをダウンロードし、アプリケーションを発見するための検証プロセスは、加入者が加入者に関連する料金請求ポリシーのもとでコンテンツを用いることが認証されていることの検証、デバイスがAPIおよびコンテンツのリソース要求を支援し得ることの検証、コンテンツが使用禁止でないことの検証のうちの1つ以上を含む。いくつかの実施形態において、検証は、システムを通じて管理され得るプロファイルによって実行される。1実施形態において、デバイスがコンテンツを支援し得ることの検証は、そのコンテンツに関連するアプリケーションプロファイルと、加入者のデバイスに関連するデバイスプロファイルとを比較することによって判定される。いくつかの実施形態において、アプリケーションの発見中に加入者デバイスに提供されるリストは、これらの手順により検証されたコンテンツのみを表示するようにフィルタリングされる。
【0006】
MASの1実施形態において、ウォールドガーデン(walled−garden)の供給が提供される。コンテンツは、MASに送信され、MASによって、不当な、または禁止されたコードについて、または特定のAPIの存在について検査され、承認され、かつ発行される。従って、加入者は、コンテンツを発見し、かつリクエストし得る。いくつかの実施形態において、発行されたコンテンツは、予め供給される(静的供給)。他の実施形態において、発行されたコンテンツは、ダウンロードがリクエストされると動的に供給される。
【0007】
別の実施形態において、オープン(open)供給が提供される。オープン供給により、加入者は、インターネット等のネットワーク上のサイトを閲覧し、例えば、URL等の特定のアドレスでコンテンツをダウンロードするようにリクエストを指定する。MASは、このリクエストを中断して、このアドレスからコンテンツをダウンロードし、APIまたはコンテンツに現れるべきでない他の属性のためにコンテンツを検査する。この検査が成功した場合、MASは加入者にコンテンツを供給する。1実施形態において、検査プロセスは、アプリケーションフィルタを用いて実行される。いくつかの実施形態において、リクエストされたコンテンツは、さらに、そのコンテンツがデバイス上で正常に実行される尤度を大きくするために加入者のデバイスについて検証される。
【0008】
1実施形態において、コンテンツは、指定されたコードについてのコンテンツを検査する工程、そのコンテンツをより小さくかつより高速になるように最適化する工程、安全性、料金請求または電気通信事業者の他のポリシーを実現するコードを備える工程、目的の加入者デバイスについてのコードをパッケージ化する工程のうちの1つ以上によって供給される。1実施形態において、コンテンツは、不当な、または禁止されたコード、または指定されたAPIの使用について検査される。別の実施形態において、コードは、不正挙動または禁止されたAPIについて検査される。いくつかの実施形態において、コードの検査は、コンテンツと、パッケージ、クラス、メソッドまたはフィールド名のリストとを比較する。いくつかの実施形態において、この比較は、バイトコードレベルで実行される。他の実施形態において、この比較は、ソースコードレベル等の他のレベルで実行される。いくつかの実施形態において、アプリケーションフィルタは、コード検査プロセスを駆動するために用いられる。アプリケーションフィルタは、パラメータ、コード名、API、または特定の対象のために用いることが禁止されたコンテンツの他の属性を指定し得る
。1実施形態において、対象は、特定のアプリケーションまたは他のコンテンツ、特定のコンテンツプロバイダ、デバイスのタイプまたは加入者、あるいはそのようなすべてのアプリケーション、コンテンツプロバイダ、デバイスまたは加入者を含む。
【0009】
供給プロセスの間、コンテンツには電気通信事業者、MASおよび/またはシステム管理者のポリシーによって必要とされるさらなるコードが備えられる。いくつかの実施形態において、コードは、バイトコードレベルで備えられる。さらに別の実施形態において、コードは、バイトレベル以外のレベルで備えられる。いくつかの実施形態において、備えられたコードは、支払いまたは料金請求ポリシーを実現するコード、信用できないか、または場合によっては安全でないコンテンツについて加入者に通知するコード、ダウンロードされるコンテンツについて更新が利用可能であるとき、ユーザに自動的に通知を提供するコードのうちの1つ以上を提供する。
【0010】
供給プロセスの間、検査、最適化または備えられたコンテンツは、リクエストするデバイスのために適切にパッケージ化され得る。いくつかの他の実施形態において、パッケージ化は、コンテンツを圧縮する。さらに別の実施形態において、パッケージ化は、供給されたコンテンツを、加入者デバイス上で再び組み立てられ得る、より小さいパッケージに分解する。
【0011】
別の実施形態において、MASは、種々の安全ポリシーおよびメカニズムを支援する。検査プロセスの間に用いられるアプリケーションフィルタは、作成および管理され得る。いくつかの実施形態において、これらのフィルタは、送信中、および供給中にコードを検査するために用いられる。さらに別の実施形態において、禁止されたアプリケーションのリストが提供される。これは、電気通信事業者によって動的に禁止されたコンテンツを加入者がダウンロードすることを防止する。いくつかの実施形態において、このリストは、検証プロセス中に用いられる。さらに別の実施形態において、安全コードがMASの種々のレベルで組み込まれて、暗号、安全メッセージ等の安全な通信メカニズムを提供する。
【0012】
さらに別の実施形態において、MASは、種々の料金請求方法およびポリシーを提供する。1実施形態において、方法は、アプリケーションのダウンロードに対する課金、周期的手数料に基づく加入者課金、指定された期間または時間の間の試用、およびネットワークパケットの伝送に基づくパケットベースの料金請求の課金といった料金請求の選択肢を含む。さらに、別の実施形態において、MASは、挙げられた料金請求選択肢のうちの1つ以上により、アプリケーションをダウンロードするためのプリペイド料金請求を支援する。
【0013】
1実施形態において、MASは、プロトコルマネージャ(Protocol Manager)、プロビジョニングマネージャ(Provisioning Manager)、キャッシュ(Cache)、展開マネージャ(Deployment Manager)、料金請求マネージャ(Billing Manager)、ロギングマネージャ(Logging Manager)、アドミニストレータ(Administrator)およびハートビートモニタ(Heartbeat Monitor)を含む。プロトコルマネージャは、入来するデータリクエストメッセージをMASによって理解されるフォーマットに変換し、出て行くデータメッセージを種々の加入者デバイスおよびMASにアクセスするネットワークによって理解されるフォーマットに変換する。プロビジョニングマネージャは、加入者、そのデバイスおよびアプリケーションを検証して、ユーザがリクエストされたアプリケーションを使用するように認証され、デバイスがアプリケーションの要求を支援し得、アプリケーションが、例えば、リクエストされた使用が電気通信事業者によって禁止されていないことを確実にする。さらに、プロビジョニングマネージャは、例えば、さらなる電気通信事業者の料金請求ポリシーを実現すること、または他のMAS
コンポーネントと通信することのデータリクエストを事前処理または事後処理し得る。展開マネージャは、リクエストを満たすものが存在する場合、予め供給されたアプリケーションを取り出し、そうでない場合、指定されたアプリケーションコードを取り出し、これをリクエストする加入者およびデバイスに供給する。1実施形態において、供給は、アプリケーションコード検査、最適化、機器組込(instrumentation)およびパッケージ化を含む。料金請求マネージャは、料金請求レポートおよびこのようなレポートを生成するために用いられる料金請求パラメータデータを生成する。さらに、いくつかの実施形態において、料金請求マネージャは、プリペイド料金請求ポリシーについての会計業務を扱う。ロギングマネージャは、保留リクエストの状態を含むすべてのタイプのリクエストおよび伝送情報のログ記録をとる責任を負う。ハートビートモニタは、MASコンポーネントの能力を追跡して、その意図された作業を実行する。1実施形態において、第2のハートビートモニタは、第1のハートビートモニタの状態を追跡するために提供される。アドミニストレータは、コンテンツプロバイダ、システムアドミニストレータ、顧客応対代理業者および加入者についてMASの管理を支援する。1実施形態において、アドミニストレータは、コンテンツプロバイダ、アドミニストレータ、顧客応対代理業者および加入者について、ユーザインターフェースに基づいたウェブサイトをインプリメントする。別の実施形態において、アドミニストレータは、アプリケーションプロファイル、加入者プロファイル、デバイスプロファイル、java(R)プロファイルおよび料金請求プロファイルのうちの1つ以上のプロファイル管理についての支援を提供する。さらに別の実施形態において、アドミニストレータは、既存のMASコンポーネントの改変を、MASコンポーネントの挙動を駆動するデータを改変することによって支援する。
【0014】
いくつかの実施形態において、MASは、アプリケーションディスカバリ、コンテンツダウンロードおよびコンテンツダウンロードの履歴を支援するコマンドインターフェースをシステムに提供する。MASは、MASコンポーネントの1つを、ハンドラを通じて直接呼び出す能力をさらに提供する。いくつかの実施形態において、MASは、これらのコンポーネントの各々にアクセスし、かつMASの部分と統合させるためにAPIをさらに提供する。
【0015】
MASは、それ自体、コマンドおよびパラメータのマッピングを動的に改変することによって、MASの異なった局面に再構成する能力をさらに提供する。
【0016】
(発明の詳細な説明)
本発明の実施形態は、無線アプリケーションを保守および供給するための、コンピュータおよびネットワークベースの方法およびシステムを提供する。本明細書中で議論される供給は、例えば、特定の顧客によって特定の種類の加入者デバイス上で使用されるといった、特定の使用のためのコンテンツのカスタマイズおよび配信である。例示的実施形態において、モバイルアプリケーションシステム(MAS)が提供される。MASは、安全な態様で個別および共同で動作して、アプリケーション、リソースおよび他のコンテンツをモバイル加入者デバイスに提供する相互運用サーバコンポーネントの集合である。MASは、例えば、セルラー電話およびハンドセットデバイスといった無線デバイスがそのデバイス上で用いるための新しい、および更新されたアプリケーションをMASから動的にダウンロードすることを可能にする。動的ダウンロード能力は、無線アプリケーションの開発者(コンテンツプロバイダ)のために商品化までの時間対市場要求を著しく低減し、その結果、製品サポートおよびマーケティングにおける効率を高める。顧客は、無線デバイス上のオペレーティングソフトウェアを迅速かつ便利に更新し、人気のあるアプリケーション(ゲームを含む)をダウンロードすることができる。MASを用いて、顧客は、ネットワークから無線ハンドセットデバイスを直接的に更新することができ、これにより、ソフトウェアを更新するために、顧客サービス代理業者と会話するか、または地域のサービスセンターに赴くという時間のかかる経験を回避する。MASは、加入者料金請求を含む
フレキシブルな料金請求シナリオをさらに支援し、これは、顧客が、特定のサービスに加入し、所望するリソースまたはアプリケーションのみを受信することを可能にする。
【0017】
MASの能力は、通常、任意のタイプの顧客の無線デバイスに適用可能であり、当業者は、このような加入者デバイス、クライアントのデバイス、電話、ハンドヘルド等の用語がMASと共に動作することができる任意のタイプの加入者デバイスを示すために交換可能に用いられることを理解する。さらに、本明細書中に記載される例示の実施形態は、1つ以上のネットワークを介して無線アプリケーションを保守および配信することをインプリメントするために、アプリケーション、ツール、データ構造および他の支援を提供する。当業者は、本発明の方法およびシステムの他の実施形態が、インターネット等の無線でないネットワークを介してソフトウェアおよび他のコンテンツを、パーソナルコンピュータ、ドッキング式(docked)無線ハンドセット、インターネットとの接続能力を有する電話、あるいは、例えば、空港またはショッピングセンター内の顧客キオスクといった無線でない加入者デバイスに保守および配信することを含む、他の多くの目的で用いられ得ることを理解する。さらに、この記載は、主に、アプリケーションおよびリソースの形態のコンテンツに関するが、当業者は、このコンテンツがテキスト、グラフィック、オーディオおよびビデオを含み得ることを理解する。さらに、以下の記載において、本発明の方法およびシステムの技術の詳細な理解を提供するために、データフォーマット、ユーザインターフェース画面ディスプレイ、コードフロー、メニューオプション等の多くの特定の詳細が示される。しかしながら、当業者は、本発明が、さらに、本明細書中の特定の詳細のいくつかを用いることなく、またはコードフローの整理の変更といった他の特定の詳細、あるいはユーザインターフェース画面ディスプレイ上に示される特定の特徴を用いて実行され得ることを理解する。
【0018】
図1は、無線サービスの加入者がソフトウェアアプリケーションをリクエストおよび、モバイルアプリケーションシステムからこれをダウンロードする態様を図示する例示的ブロック図である。MASが動作する無線環境は、加入者デバイス101および101b、トランシーバ103を有する無線ネットワーク102、無線事業者サービス104、MAS105および種々のコンテンツプロバイダ106を含む。コンテンツプロバイダ106は、電気通信事業者サービス104を介して、またはこの許可によってMAS105にアプリケーションを提供する。その後、アプリケーションは、リクエストに応じて、MAS105によって加入者デバイス101に検証、発行および供給される。このタイプの供給は、本明細書中にて「ウォールドガーデン」供給と呼ばれる。なぜなら、この態様で供給および発行されるアプリケーションは、電気通信事業者および/またはMASインフラストラクチャに公知だからである。コンテンツプロバイダ106は、さらに、加入者デバイスによって閲覧され得る、MAS105によって動的に供給され得るアプリケーションもまたホストとして処理し得る。このタイプの供給は、「オープン」供給と呼ばれる。なぜなら、これは、MASまたは電気通信事業者のインフラストラクチャの範囲内で「公知」のアプリケーションに限定されないからである。これらは、異なったタイプの供給は複数の同様の機能を共有するので、議論に都合の良いように区別されるにすぎない。MAS105は、さらに、電気通信事業者、コンテンツプロバイダ、顧客応対代理業者、および加入者の複数のツールを、アプリケーションのカスタマイズ、サービスおよび特定の加入者、または加入者のグループに可能な利用料金請求シナリオのために提供する。
【0019】
図1において、加入者デバイス101は、現在、存在するか否かを問わず、無線ハンドセット、電話、電子オーガナイザ、パーソナルデジタルアシスタント、ポータブル電子メール機器、ゲーム機器、ページ、ナビゲーションデバイス等といった無線ネットワーク102を介して通信できる電子デバイスを含む。1つ以上の加入者デバイス101(クライアントデバイスとも呼ばれる)は、無線ネットワーク102を横断して、サービスを利用するために加入者が準備した無線事業者サービス104と通信する。無線ネットワーク1
02は、トランシーバ103を有する。これは、サービスを加入者デバイス101にリレーする(および加入者のリクエストを扱う)ために用いられる。当業者は、無線サービスの加入者が、代替的ネットワーク(例えば、インターネット)を用いて、およびパーソナルコンピュータ101bといった、アプリケーションをダウンロードするために、より容易に使用できるインターフェースを提供し得る、より大きいフォームファクタを有するデバイスを用いることによって、無線ネットワークを横断してアプリケーションをリクエストおよびダウンロードする工程に含まれる、任意またはすべての工程を補完し得る。トランシーバ103は、通常、無線通信をケーブルベースの通信に変換し、かつケーブルベースの通信を無線通信に変換するが、当業者は、種々の媒体およびプロトコルが用いられ得ることを理解する。トランシーバ103は、通常、電気通信業者専用通信プロトコルを用いてケーブルベースの媒体を横断して通信事業者のサービス104と通信する。通信事業者専用通信は、Hypertext Transport Protocol(HTTP)およびWireless Application Protocol(WAP)といったポイントツーポイント通信のために適切な任意のプロトコルを用い得る。事業者サービス104は、会計、POTS(「plain old telephone service」)および他の電話サービス(電話転送、発信者電話番号表示、ボイスメール等)を含む電話局の典型的なサービスならびにダウンロード可能なアプリケーションを提供する。モバイルアプリケーションシステム105は、例えば、広帯域通信チャネル108、またはインターネット107といった一般にアクセス可能なネットワークを横断するなどして事業者サービス104と通信して、供給されるアプリケーションを加入者デバイス101に提供する。当業者は、モバイルアプリケーションシステム105が、電気通信事業者サービス104と全体または部分的に統合され得ることを理解する。ウォールドガーデン供給を用いて、通常、コンテンツプロバイダ106によって生成されるダウンロード可能なアプリケーションは、モバイルアプリケーションシステム105、または事業者サービス104に直接的に、またはインターネット107等のネットワークを介して供給される(supply)。これらのダウンロード可能なアプリケーションは、その後、モバイルアプリケーションシステム105によって適切に検証およびカスタマイズされて、加入者デバイス101に供給される。オープン供給を支援する1実施形態において、通信事業者の加入者は、ロケーション(ネットワークアドレス、またはURL(Uniform Resource Locator)等)を指定することによってウェブサイトからアプリケーションをダウンロードし得る。MASは、加入者からのダウンロードリクエストを中断して、顧客にアプリケーションを位置指定し、検証および供給する。
【0020】
加入者デバイス101は、クライアント側のアプリケーション管理ユーティリティ(例えば、Handset Administration Consoleまたはブラウザ)に依存して、アプリケーションをリクエストおよびダウンロードする。図2は、モバイルアプリケーションシステムと共に動作するHandset Administration Consoleの例示的ブロック図である。Handset Administration Consoleは、加入者の無線デバイス上へのアプリケーションの通知、インストール、アンインストールを扱う。加入者デバイス201は、加入者に、デバイスのために利用可能な機能メニューを提供する。加入者は、例えば、すでにデバイスにインストールされたアプリケーションを管理し、ダウンロードされ得る新しいアプリケーションを示すメニュールーチンから選択し得る。例えば、ルーチンは、加入者がインストールされるアプリケーションのバージョン情報を取得して、それらが利用可能になると、そのアプリケーションの更新をダウンロードして、ダウンロードされるべき新しいアプリケーションについて閲覧することを可能にし得る。メニュー202は、場合によっては加入者デバイス201にダウンロードされ得る新しいアプリケーション203のリストを示す例示的メニューである。例示的画面ディスプレイ204は、加入者がダウンロードするためのアプリケーションを選択した後に示される例示的ユーザインターフェースを示す。画面ディスプレイ204は、ダウンロードオペレーションを示すアイコン205、ダウンロー
ドされるアプリケーションの名称206、およびダウンロードの進行中のプロセスを表示するステータスバー207を示す。画面204は、さらに、停止ボタン208を示す。これは、ダウンロードプロセスがキャンセルされることを可能にする。
【0021】
図3は、無線加入者デバイスにアプリケーションを供給するために、例示的モバイルアプリケーションシステムによって実行される一般的工程の例示の概観的フローチャートである。これらの工程は、供給シナリオ(ウォールドガーデンを用いる)またはオープン供給のいずれかに適用可能である。これらの同じ工程が、さらに、図1におけるインターネット107を通じて接続されるもののように、有線デバイスに対してアプリケーションを供給するために用いられ得る。工程301〜408は、MASが、アプリケーションをダウンロードするという加入者デバイスから入来するリクエストを扱い、リクエストされたアプリケーションを供給し、リクエストされたアプリケーションを加入者デバイスに送る態様を説明する。供給は、コードを取り出し、検査し、最適化し、備える工程、およびパッケージ化する工程のうちの1つ以上を含み、必要に応じて、目的のデバイスにダウンロードするためにアプリケーションの準備を整えるさらなる工程を含み得る。例えば、さらなる安全および料金請求方法がシステムに追加されると、供給は、情報を暗号化およびレポートする工程を含み得る。異なっている場合は、工程301〜408が、アプリケーションがMASから直接的にリクエストされ、逆に、ネットワーク上のロケーションを閲覧することによって間接的にリクエストされることを想定する。(オープン供給の場合、MASは、リクエストを初めて受信するにもかかわらず、中断して、アプリケーションを供給およびダウンロードする)。
【0022】
具体的には、ステップ301において、アプリケーションは、一般的に電気通信事業者から、または直接的にコンテンツプロバイダからダウンロード可能であるようにされる。アプリケーションは、多種の加入者のデバイスで実行可能な、Java(登録商標)のようなコンピュータ言語を使用して書き込まれ得る。アプリケーションは、電気通信事業者の(MAS内または電気通信事業者の施設に配置され得る)アプリケーションデータリポジトリ内に局在的に格納され、または、信頼される第三者サーバに随意的に格納され得る。(オープン供給ステップの場合において、第三者サーバは必ずしも信頼されない。)MASにアプリケーションを送信する手続きは、さらに図9A〜9Cにおいて参照される。ステップ302において、加入者は、アプリケーションをダウンロードするため、利用可能なアプリケーションのリストを検索するため、いくつかの管理クエリまたは他の命令を実行するためにリクエストを送信する。プロトコル変換は、多種多様の無線電気通信事業者にわたって加入者のデバイスと通信可能にするために、入来リクエスト(および出て行くメッセージ)において実行される。例えば、ダウンロードされたアプリケーションは、加入者デバイス用で走行する新しく人気のあるアプリケーションであり得、または、ソフトウェアのアップグレードまたはより最新のバージョンであり得る。例えば、リクエストは、これを指示するHTTPメッセージを使用するUniform Resource Locators(URL)を使用してなされる。MASは、拡張コマンド処理エンジンをサポートし、HTTPリクエストを介するか、またはアプリケーションプログラミングインターフェース(API)を介するかのどちらかで、種々のハンドラ、モジュールおよびMASのコンポーネントの他の構造の直接呼出しをサポートする。アプリケーション供給リクエストの場合、特定のファイルをダウンロードするこのリクエストは、ダウンロードするためにファイル(アプリケーションまたはサービス)を識別するURLを指定することによって、なされる。管理クエリの場合において、例えば、リクエストは管理サーブレットまたはリクエストを処理するMAS内の他のコードに対して作られる。ステップ303において、MASは、リクエストがダウンロードのためであるか任意の他の命令であるかを判定し、ダウンロードリクエストである場合ステップ305に進み、そうでなければステップ304において命令を処理する。ステップ305において、MASは、指定されたURLが発行されたアプリケーションを特定するかどうかを決定し(それによって、
ウォールドガーデン(walled‐garden)供給が実行されるべきであることを示す)、特定した場合、ステップ306に進み、そうでなければステップ308に進む。ステップ306において、加入者のリクエストは、認証、デバイス能力および、適切な場合、プリペイド請求(pre−paid)認証について検証される。認証レベルは、一般的にクライアントが申し込んだサービスのレベルに依存する。例えば、一実施形態において、MASは、プリペイド請求をサポートする。プリペイド請求は、アプリケーションの使用のために加入者が予め支払いをすることを可能にする。この場合において、MASは、アプリケーションがダウンロードされる前にプリペイド請求アカウントがリクエストを満たし得ることを検証する。他のファクタは、促進的な申し出が提示されているかどうか、加入者がサービスにアクセスした回数、特別な申し出が存在するかどうか、サービスがアクセスされた日または週、ダウンロードされたバイト数、および他のこのようなファクタなどがあてはまり得る。デバイス能力はまた、リクエストされたアプリケーションが加入者デバイス上で満足に実行され得るかどうかを決定するために調べられる。例えば、これは、リクエストデバイスと既知のデバイスプロファイルおよびリクエストされたアプリケーションに対するアプリケーションプロファイルとを比較する事によって実行され得る。ステップ307において、MASは、加入者のリクエストがうまく検証されたかどうかを判定し、検証された場合、ステップ308に進み、そうでない場合は、リクエストを断り他のリクエストを待つためにステップ302に戻る。
【0023】
ステップ308において、MASは、予め供給されたアプリケーションが加入者のリクエストに対応して既に存在するかどうか、および、加入者デバイスに適切かどうかを決定する。予め供給されたアプリケーションというのは、認証のレベルおよび加入者のデバイスの能力によって予めカスタマイズされたアプリケーションである。予め供給されたアプリケーションは、利用可能な際、システム待ち時間を最小限にし、対応するアプリケーションリクエストに対するシステム応答時間を向上させる。アプリケーションは、加入者の一般的な申し込みのレベルおよび一般的な加入者デバイス(例えば、予測された使用によって決定されるような)に従って予め供給され得、予め供給されたアプリケーションに対応するアプリケーションに対する加入者デバイスリクエストに応答するために、後のアクセスのために格納され得る。アプリケーションが予め供給されなかった場合、MASは、動的にアプリケーションを供給し、したがって、MASは、リクエストを処理するために必要な時間を増大させるが、配置のためのカスタマイズされかつ認証されたアプリケーションを生成する。
【0024】
ステップ308において、適切な予め供給されたアプリケーションが加入者デバイスで見つかった場合、供給シナリオはステップ310に進み、そうでない場合、ステップ309に進む。ステップ309において、アプリケーションは、特定の加入者デバイスのために、およびアクセス認証に従って供給される。ステップ310において、MASは、ダウンロードをするために、供給されたアプリケーションを加入者デバイスに送信する。
【0025】
述べられたように、MASによってサポートされたリクエストの一つは、加入者のデバイスにダウンロードされ得る利用可能なアプリケーションのリストを検索することである。この処理は、アプリケーションディスカバリとして参照される。図4は、無線加入者デバイスのためのアプリケーションディスカバリを実行するためのMobile Application Systemの例によって、実行されるステップの概要フロー図の例である。一実施形態の例において、アプリケーションディスカバリの二つのタイプがサポートされる。第一は、システムによって動作され、システム派生リストによって発生する。第二は、リクエスト者によって駆動され、「適切な」アプリケーションのリストを発生するためにMASによって合致される検索項目を指定する。ステップ401において、MASは、ユーザが任意の検索項目を供給(supplied)したかどうかを決定し、供給した場合、ステップ402に進み、そうでない場合、ステップ403に進む。ステップ4
02において、MASは、リクエスト内で指定された判定基準を満たす発行されたアプリケーションのデータリポジトリを検索し、ステップ404に進む。代わりに、ステップ403においてMASは、初期リストを決定する。一実施形態において、利用可能である場合、このリストは加入者のパーソナルリストから形成され、そうでない場合、デフォルトリストを供給する。ステップ404において、MASは、加入者およびデバイス能力に基づくこのデフォルトリストをフィルタに掛ける。例えば、MASは、加入者がアプリケーションを使用するために認証されるかどうか、および、アプリケーションプロファイルに反映されるようなアプリケーションのニーズが、デバイスプロファイルに反映されるようなデバイスによって満足されるかどうかを決定するために、種々のプロファイル、例えば、加入者プロファイル、デバイスプロファイル、およびアプリケーションプロファイルを分析し得る。ステップ405において、MASは、(「スタートデッキ」と呼ばれる)リストに任意のシステム定義アプリケーションを加える。このようなアプリケーションは、電気通信事業者のカスタマイズ規則に従って、指定され得る。例えば、より多くの利益を発生するアプリケーションは、リストのトップにそれらを載せることにより「プレミアム」表示時間が与えられ得る。ステップ406において、MASは、リクエストデバイス(例えば、サポートされたマークアップ言語)の描画能力に従って、リストをフォーマットし、終了処理をする。
【0026】
図5は、Mobile Application Systemの実施形態の例におけるコンポーネントの概要ブロック図である。この実施形態において、Mobile Application System500は、プロトコルマネージャ503、プロビジョニングマネージャ504、キャッシュ505、展開マネージャ506、請求マネージャ507、ロギングマネージャ508、アドミニストレータ509、および、ハートビートモニタ310を含む。これらのコンポーネントは、図1に示されたように、コンテンツプロバイダおよび電気通信事業者サービスからアプリケーションを受信するため、加入者デバイスへの配信のためにそれらを供給するため、そしてMASコマンドを処理するために、インターオペレート(inter‐operate)する。当業者は、コンポーネントまたはMASの異なったコンポーネントの機能の多くの異なった構成および分割が可能であることを理解する。例えば、プロトコルマネージャ504および請求マネージャ507に割り当てられた機能は、一つのコンポーネントで結合され得る。他の構成もまた、可能であり、意図される。
【0027】
MASの種々のコンポーネントは、電気通信事業者によって提供されたサービスを管理する電気通信事業(またはシステム)アドミニストレータまたは消費者ケア代理人、アプリケーションまたはサービスを開発し電気通信事業者に分配するコンテンツプロバイダ、および、サービス、アプリケーションおよび他のコンテンツを消費する加入者に多数の機能を提供する。アドミニストレータ509は、MAS、アプリケーション、請求および他のサービスを構成するため、および加入者のMASとの経験をカスタマイズするために、これらのタイプのユーザのそれぞれに種々のユーザインターフェースを提供する。これらのインターフェースの例は、以下に図8〜11を参照して示され説明される。図3を参照して示されたように、供給することの局面を図示するために、MASの機能性は、加入者がアプリケーションを加入者のデバイスにダウンロードするためにMASを呼び出す際、MASコンポーネント内で起こる処理ステップの観点から説明される。当業者は、コンポーネントの他のデータフローおよび使用法が適切であり、かつ処理されたコマンドおよび/またはコンポーネント、またはそれらの内部のコードが呼び出される方法に依存することを理解する。
【0028】
より具体的には、図5に示された実施形態の例において、J2MEまたはWAPハンドセットのような加入者デバイスからの通信は、入来リクエスト501および出て行くデータ502のようなMobile Application System500のそれぞ
れに与えられおよびそれぞれから受信される。一般的に、MASは、アプリケーションのディスカバリおよびリクエストされたアプリケーションのダウンロードといった二つの異なったタイプの入力リクエストを処理するために(ウェブサイトベースのインターフェースに対向する)コマンドインターフェースを介して加入者によって呼び出される。MASはまた、他のコマンドを処理するために呼び出され得る。また、例えば、MASのコンポーネントは使用情報を得るための管理リクエストを処理するなどのために直接的に呼び出され得る。入力リクエスト501がアプリケーションディスカバリに対するリクエストである場合、MASは、加入者、アプリケーションプロファイルおよびデバイスプロファイルに基づき、利用可能でかつ適切であるアプリケーションのリストを編集および返す。一般的に、アプリケーションディスカバリを成し遂げるためにMASによって実行されるステップは、図4を参照して記述される。または、入力リクエスト501が指定されたアプリケーションをダウンロードするためのリクエストである場合、MASはアプリケーションを取り出し、それが適切であることおよび、デバイスおよびユーザがダウンロードするのを可能にすることを検証し、そのリクエストされたアプリケーションを準備かつパッケージ化し、そしてパッケージアプリケーションをリクエストしている加入者デバイスに送信する。一般的に、アプリケーションを供給するステップを成し遂げるためにMASによって実行されるステップは、図3に参照し記述されている。
【0029】
プロトコルマネージャ503は、加入者デバイスおよびプロビジョニングマネージャ504との間のメッセージのプロトコル変換を実行する。プロトコル変換は、ネットワーク(例えば、図1における無線ネットワーク102)において使用される通信プロトコルに依存せず、MAS500が任意の加入者デバイス(有線または無線)と通信し得、および種々のプロトコル内に組み込まれ得る、入来リクエストが処理されることを可能にする。プロトコルマネージャ503の例は、WAPおよびHTTPプロトコルに対する内蔵のサポートを有し、付加的なフォーマットおよびプロトコルに対するサポートを提供するために周知の技術を使用して拡張され得る。WAPゲートウェイ(図示せず)などの一つ以上の分離したしたゲートウェイは、プロトコルマネージャ503、入来リクエスト501および出て行くデータ502の間に常駐し得る。これらのゲートウェイは、特定のプロトコルに対してターゲットにされるメッセージを処理するために使用され得る。プロトコルマネージャ503は、端と端を接続したセキュリティサポートに対する認証管理だけでなく、暗号化および復号化データを処理するためのプラグインセキュリティ層もまた含む。当業者は、プロトコルマネージャ503が所望される安全な通信に対するサポートの他のタイプを含むように拡張され得ることを理解する。
【0030】
入来リクエストが適切に変換された後、プロビジョニングマネージャ504は、このリクエストを処理し、必要とされる他のコンポーネントの支援を連動させる。例えば、リクエストが管理クエリである場合、次いでプロビジョニングマネージャ504は、リクエストをMAS内の管理サーブレットに転送し得る。代わりに、このリクエストが加入者のデバイスにダウンロードされ得るアプリケーションのリストのためのものである場合、次いで、プロビジョニングマネージャ504は、加入者のデバイスおよび加入者に対応する正しいデバイスおよび加入者プロファイルを電気通信事業者から利用可能なそれぞれのアプリケーションの能力および要求条件とを比較することによってこのようなリストを発生するデータレポジトリ511およびプロファイルマネジメントコードに問い合わせ(interrogate)得る。一方、リクエストが指定されたアプリケーションをダウンロードする加入者からである場合、次いで、プロビジョニングマネージャ504および展開マネージャ506は、リクエストされたアプリケーションを加入者に対する配信のために取得し準備するために相互にやりとりを行う。一実施形態において、プロビジョニングマネージャ504は、加入者リクエストによって参照されるユーザ、デバイス、請求およびアプリケーション情報を検証し、展開マネージャ506は、アプリケーションを取り出し供給する。展開マネージャ506によって実行されるアプリケーション供給処理は、一つ以
上の次の処理ステップを含む。取り出すステップ、検査するステップ、最適化するステップ、コードを備えるステップ(instrumenting)およびパッケージングするステップ。これらは図7を参照するとともに以下で説明される。
【0031】
プロビジョニングマネージャ504は、プロトコルマネージャ503からの加入者リクエストを受け取り、ダウンロードリクエストまたは加入者リクエスト内に含まれる他のコマンドを処理する。ダウンロードリクエストはそれぞれのダウンロードリクエストおよびMASによってアクセス可能な他の情報とともに送信された情報に基づいて処理される(例えば、プロファイルがデータリポジトリ511内に格納する)。アプリケーションをダウンロードするためにリクエストを処理する際、プロビジョニングマネージャ504は、事前に作成されまた利用可能なプロファイルを調べ、このプロファイルは、加入者、加入者デバイス、およびリクエストされるアプリケーション(複数)および、特定の加入者デバイスを使用し、および加入者の請求方法に従って、加入者に対してリクエストされるアプリケーションの適合性を決定するための請求に関する情報のためのものである。プロファイルを検査した後、例えば、プロビジョニングマネージャ504は、リクエストされたアプリケーションが加入者デバイス上でうまく走行され得るかどうかを評価することを試みることによってリクエストを承認または否定のどちらかを行う。例えば、この評価は、アプリケーションの要求が特定の加入者デバイスの能力によって満足させられ得るかどうかを決定することによって実行される。プロビジョニングマネージャ504はまた、リクエストされたアプリケーションのためにセットアップされた請求方法および加入者が、ダウンロード処理のために互換性かつ十分であるかどうかを決定する。例えば、リクエストが、加入者がプリペイド請求プログラムの一部であることを示す場合、次いで、プロビジョニングマネージャ504は、加入者のプリペイド請求計算ファンドがアプリケーションダウンロードを可能にするために十分であることを検証する。
【0032】
一旦、承認されれば、プロビジョニングマネージャ504はキャッシュ505または展開マネージャ506のどちらかからリクエストされたアプリケーションを取得し得る。一般的に、キャッシュ505は、予め供給されたフォーマットでたびたびダウンロードされるアプリケーションを格納するために使用されるが、展開マネージャ506は、リクエストされたように動的にアプリケーションを供給するために使用される。例えば、インターネットサイトを介して利用可能なアプリケーションは、電気通信事業者によって制御されるアプリケーションは、一般的に予め供給され、キャッシュ505に格納されるが、一般的にダウンロードをリクエストされた際のみで供給される。
【0033】
キャッシュ505は、加入者のデバイスに対してリクエストされたアプリケーションのより速い伝送を提供するために使用される。キャッシュ505は、特定の加入者デバイスのためまたは認証されたアクセスに従うような特定のプロファイルに対してより早く処理される供給されるアプリケーションをキャッシュするために使用される。既に検査され、最適化され、インストルメントされたキャッシュ505に格納されるアプリケーションは、配置の準備のためのようにタグ付けされる。当業者は、システム性能がMASなどの他のコンポーネント間で同様のキャッシング機能をインプリメントすることによって向上され得ることを理解する。例えば、展開マネージャとインターネットとの間に存在するインターネットアプリケーションを保持するためのキャッシュは、インターネットアプリケーションでの通信のために必要なアクセス時間を短縮し得る。また、例えば、編集されないJARファイルを保持するためのキャッシュは、インストルメンテーション処理をスピードアップする。他の構成もまた可能である。特定の加入者および特定のデバイスのための承認かつリクエストされるアプリケーションがキャッシュ505内に見つからなかった場合、展開マネージャ506を介して取り出され得る。展開マネージャ506は、加入者デバイスへの伝送のためのアプリケーションを準備する。展開マネージャ506は、準備するステップ、維持するステップ、およびアプリケーションを供給するステップの多くの様
相を管理する。例えば、悪意のあるアプリケーションの検出、制限されたAPI使用法、試験配信(回数のセットまたは時間の期間のセットのみに対して可能である使用)に対するサポートおよび他の請求方法、リクエストする加入者デバイスに対するアプリケーションサイズの最適化、および他の様相。展開マネージャ506は、アプリケーションのインスタンスがリクエストされる際、アプリケーションを取得し、その意図された(リクエストされた)使用に対するそれぞれのアプリケーションのインスタンスを供給する。それはまた、予めそれらのプロファイルに対するアプリケーションを準備することおよびキャッシュ505、または他のデータリポジトリにクイック(quick)アクセスの結果を格納することによって特定のデバイスおよび/または加入者プロファイルに対するアプリケーションを予め配置(「予め供給」)し得る。図7を参照して以下で説明するように、展開マネージャ506は、電気通信事業者のアプリケーションデータリポジトリから、または、リモートアプリケーションホスト(信頼されたまたは別)から、または任意の他のアプリケーションソースからアプリケーションを配置し得る。展開マネージャ506が適切に要求されたアプリケーションを供給した後、展開マネージャ506は、要求されたアプリケーションを外部の応答に対する任意の後処理のためにプロビジョニングマネージャ504に送り戻す。
【0034】
供給されたアプリケーションが、ユーザに伝送される場合、このトランザクションについての詳細は、一般的に、ロギングマネージャ508に記録される。ロギングマネージャ508は、種々の請求方法を可能にするために料金請求マネージャ507にアクセス可能である。この記録されたデータは、入来リクエスト501および加入者ID、ダウンロードのサイズ、ダウンロードの時間および日付、ダウンロードされる特定のアプリケーションなどの配置されるアプリケーションに関連する情報を含む。ダウンロードについて記録された情報の広い範囲が原因で、電気通信事業者は、サービスおよび加入者の異なったカテゴリに従ったアプリケーションの供給に対する請求の方法に多大な柔軟性を有する。例えば、電気通信事業者は、使用される通信時間の量、ダウンロードの時間、ダウンロードされたデータの量、クライアントのデモグラフィックス(demographic)によって、または、ダウンロードされた特定のアプリケーションに基づいて請求し得る。
【0035】
請求マネージャ507は、請求方法の実施を支援する責任がある。一実施形態の例において、いくつかの初期の請求オプション(billing option)が提供される。(1)アプリケーションをダウンロードすることに基づくダウンロード料金、(2)ネットワークパケットの伝送に基づくパケットベースの請求料金、(3)日毎、週毎、または月毎のなどの定期的な費用に基づく予約料、(4)お試し使用の任意の測定に基づくお試し使用料金、例えば、アプリケーションが実行され得る回数。(5)プリペイド請求。これらの請求オプションは、電気通信事業者のレベルおよびアプリケーションのレベルの両方で、カスタマイズ可能であり、そして、一つ以上が特定のアプリケーションに対して与えられる際、所望される請求オプションは加入者によって選択され得る。Mobile
Application System500の例において、アプリケーションプログラミングインターフェース(API)は、電気通信事業者の既存の請求サブシステムとの一体化が容易に提供される。電気通信事業者がプリペイド料金をサポートする場合、加入者は、電気通信事業者によって保守されるアカウントを確立し得る。一実施形態において、加入者は、後でアプリケーションがダウンロードされるように予め支払う。加入者がプリペイドアプリケーションをダウンロードする際、請求マネージャ507は、電気通信事業者のプリペイド請求システムに請求記録を転送し、よって加入者のアカウントが課金され、更新され得る。代わりの実施形態において、プリペイド加入者アカウントは、請求マネージャ507によって格納され、保持される。請求方法の他のタイプに対するサポートと同様に他の構成もまた可能である。請求マネージャ507が情報に関する請求を発生した後、アプリケーションは、プロトコルマネージャ503に転送される。ここで、プロトコルマネージャ503は、出て行くデータ502として消費者に要求かつ送信される場合
、異なるプロトコルに対してリフォーマットされる。
【0036】
以下で図8〜11を参照して説明されるアドミニストレータ509は、MAS500の種々の局面をカスタマイズするために、MASの例の他のコンポーネントと相互にやりとりを行う。例えば、アドミニストレータ509は、電気通信事業者がカスタマイズ可能な供給に関するポリシー(policy)をインプリメントすることを可能にし、Mobile Application System それ自体の再プログラミング可能コンポーネントを介してMASとそれら自体のインフラストラクチャとを一体化し、それによって、加入者、電気通信事業者、システムアドミニストレータ、およびコンテンツプロバイダがプロファイルマネージメント、発生リクエスト、請求方法管理、およびサーバ管理の柔軟性を高めることを可能にする。
【0037】
ハートビートモニタ510は、関連するシステムイベント起こる際、例えば、動作不能になるコンポーネントのようにシステム内の問題を検出する際、他のMAS500コンポーネントでのレポートを観察し、提供し、そして妥当な通知を提供する。例えば、ハートビートモニタ510は、プロトコルマネージャ503が、所定の時間制限内で入来リクエストに応答するかどうかを判定するためにプロトコルマネージャ503を観察し得る。ハートビートモニタは、プロトコルマネージャ503が正確に応答しないと決定する場合、それは、そのイベントにフラグを立て得、システムアドミニストレータに通知し得る。一実施形態において、複数のハートビートモニタ510は供給され、第二のモニタが、第一のモニタが正確に機能しているかどうかをモニタし得、必要な場合、交換する事ができる。ハートビートモニタ510は、(ステータスリクエストとともに、デバイスをポーリングすることによる)能動的モニタリングおよび(特定なタイプの通信が適切な時間に起こることを識別することによる)受動的リスニングの両方をし得る。ハートビートモニタ510はまた、他の外部コードがMASを観察することを可能にさせるために、例えば、Simple Network Management Protocol(SNMP)業界標準プロコトルに対するインターフェースを供給する。
【0038】
図5を参照して説明したように、MASのプロビジョニングマネージャは、入来ダウンロードリクエストおよび他のコマンドを処理し、ダウンロードのためのアプリケーションの動的な供給の動作を駆動する。図6は、Mobile Application Systemのプロビジョニングマネージャの例のコンポーネントのブロック図の例である。一実施形態において、プロビジョニングマネージャ600は、MASコマンドおよび制御プロセッサ620(「MCCP」)、ベリファイア(verified)601、XSLTプロセッサ630、リクエストプロセッサおよびポストプロセッサ640、およびMASデータクエリエンジン650を含む。MCCPは、リクエストをデコード(decoded)し、例えば、発行されたアプリケーションをダウンロードするために、または、アプリケーションディスカバリを実行するためにこれを正しいMASサブコンポーネントにリクエストを指示する責任を負う。加入者ベリファイア602、デバイスベリファイア603、プリペイド請求ベリファイア604、およびアプリケーションベリファイア605を含むベリファイア601は、加入者およびデバイスのためのアプリケーションを適切に決定するために検証を実行する。(例えば、業界標準Extended Stylesheet Processorとしてインプリメントされ得る)XSLTプロセッサは、リクエストデバイスの翻訳能力に従って、データをフォーマットするために使用される。一実施形態に従って、XSLTプロセッサは、XMLに対するスタイルシートをサポートするが、HTML、Java(R)、WML、XHTML Basic、およびテキストまたは、任意の他のマークアップまたはレンダリング言語に対する追加的なスタイルシートを提供するために容易に拡張され得る。リクエストプロセッサおよびポストプロセッサ640は、他のコンポーネント間で通信するためにリクエスト「パケット」内のパラメータを操作し、コンピュータのレベル内で「フックされ」得る任意の処理のタイプを実行する
ために拡張され得る。MAS Data Query Engine 650は、種々のデータリポジトリとの通信を管理する。MAS Data Query Engine 650は、供給するステップ651、プロファイル652およびコンフィグレーションデータ653に対するリーダを含む。見易くするためにこれらのコンポーネントに繋がる矢印は示されてないが、当業者は、コンポーネントが多くの方法で相互に結合され、インターオペレートすることを理解する。
【0039】
第一に、プロビジョニングマネージャ600は、プロトコルマネージャ(例えば、図5のプロトコルマネージャ504)からなどの入来リクエストを受け取る。プロビジョニングマネージャ600は、入来リクエストを分析かつこれを動的に変更して、向上、変化、または、供給の制限、請求、後で行われるステップのロギングを可能にするためにリクエストを随意的に処理する。このような動的な変形は、電気通信事業者がそれら自体のインフラストラクチャを動的にシステムにフックするのを可能にする。例えば、プロビジョニングマネージャ600は、入来ダウンロードリクエストと共に送られてくるリクエストヘッダを見て、システムの挙動を変更するためにヘッダを変更、付け加えまたは、取り除き得る。MASにおける他のコンポーネントは、それらの機能を実行するためにヘッダを含む情報を使用するので、ヘッダ情報を更新または変更することは、特定のリクエストの機能性を拡張または制限する手段を提供し、またはMASの挙動を変更する。
【0040】
リクエストは、(ウェブサイトまたはAPIを介して直接的に呼び出されることに対向して)MAS命令インターフェースから受け取られる際、MCCPによって処理される。リクエストは、アプリケーションディスカバリのためまたはコンテンツをダウンロードするためである場合、種々のベリファイア601は、アプリケーションの互換性を決定するために使用される。リクエストがいくつかの他のコマンドのためである場合、次いでリクエストはこれに従って処理される。
【0041】
アプリケーションベリファイア604は、リクエストされたアプリケーションが配置のために電気通信事業者によって禁止されているかどうかを決定する。具体的には、アプリケーションベリファイア604は、電気通信事業者が、リクエストされたアプリケーションを禁止したかどうかを決定するために、ダウンロードされ得ることを所望しないアプリケーションのリストを調査する。この状況は、例えば、アプリケーションが突然に、悪意のある挙動を提供することを見つけられた場合、および電気通信事業者がその配信を突然に中止することを所望する場合に、この状況が起こり得る。
【0042】
加入者ベリファイア601は、リクエストを始めた加入者の正体を決定し、加入者に権利が与えられているサービスのレベルを決定し、このことにより加入者は、加入者が特定のアプリケーションを使用するために認証されるかどうかを決定する。加入者に権利を与える特定のサービスは、取り出すステップ、プロファイルリーダ652を使用するステップ、加入者プロファイルと対応するステップおよび種々のファクタを調査するステップの内の一つまたは組み合わせのどちらかによって決定される。例えば、ファクタは、任意の月内で許されるダウンロードの数、ダウンロードに必要な時間、リクエストが作成される日数および週の数、特別価格および支払猶予期間の利用可能性などを含む。加入者ベリファイア601はまた、加入者が、全体として加入者のグループに対して許可されるおよび許可されないサービスを決定することによって、属する加入者グループを決定しかつ加入者にアクセス可能なレベルを決定する。加入者ベリファイアによって実行される決定の実施形態の例は、図17を参照して説明される。
【0043】
デバイスベリファイア602は、リクエストが作成された加入者デバイスのタイプおよび能力を決定し、加入者デバイスから、このデバイス能力が特定のアプリケーションをサポートするために十分であるかどうかを決定する。加入者デバイスの能力は、リクエスト
加入者デバイスに対応するデバイスプロファイルが存在する場合、プロファイルリーダ652を使用してデバイスプロファイルを取り出すことによって、決定される。デバイスプロファイルは、デバイスが、加入者デバイス上で正常に実行するためにリクエストされたアプリケーションによって必要とされる特性を有するかどうかを決定するために調査される。デバイスベリファイア502によって実行される決定の実施形態の例は、図18を参照し説明される。
【0044】
プリペイド請求方法がMASによってサポートされる際、プリペイド請求ベリファイア603は、どこに個々の加入者に対する請求記録が格納されても、電気通信事業者のプリペイド請求インフラストラクチャに問い合わせる。ダウンロードリクエストは、電気通信事業者によって示されるように、一般的に加入者のアカウントに十分な蓄えがある場合のみ、供給するステップに進み得る。
【0045】
プロビジョニングマネージャ600が、加入者デバイスがリクエストされたアプリケーションを走行させるために適していることが決定した後、加入者は、アプリケーションを使用する権利を与えられ、蓄えを有し(プリペイド請求スキームの一部の場合)、次いで、プロビジョニングマネージャ600は、対応する供給されるアプリケーションを得るために展開マネージャの供給インターフェースを呼び出す。図7を参照して示したように、展開マネージャは、リクエストされたアプリケーションを検索し供給し、プロビジョニングマネージャ600にそれを返す。
【0046】
加入者デバイスにダウンロードするために適切な供給されたアプリケーションが展開マネージャから得られた後、プロビジョニングマネージャ600は、随意的にリクエストを後処理する。前処理と同様に、後処理は検証されたリクエストに対して付加的な変形を実行することができその結果、変形がMASの機能性を拡張するために使用され得る。例えば、インストラクションは後にプロトコルマネージャ(例えば、図5のプロトコルマネージャ503)にカスタムプロトコルのリクエストをパッケージするように指示するリクエストと関連させられ得る。
【0047】
述べられたように、展開マネージャ(例えば、図5の展開マネージャ506)は、プロビジョニングマネージャから加入者リクエストを受け取るかまたは、直接リクエスト(例えば、システムアドミニストレータから)を受け取ってこのリクエストに対応する供給されるアプリケーションを得る。このリクエストは、リクエストされたアプリケーションのURLを含む。URLは、アプリケーションに対するソースロケーション(source
location)を示す。一実施形態において、URLはミラーサイトのリストを参照して、MASから決定された最適な位置からこのアプリケーションを取り出す。別の実施形態において、このURLは代理的なものであり、展開マネージャは、URLをその実際の位置に再指示する。このような方法は、システムに対して付加的で安全な層を提供し得る。当業者は、アプリケーションのロケーションを指示する任意の方法がこれらの技術とともに使用され得、これらの技術が、URL以外の指示で動作することを理解する。アプリケーションはまた、検査され、最適化され、アプリケーションが配置され加入者に送信される前に伝送のためにインストルメントされる。
【0048】
図7は、Mobile Application System の展開マネージャのコンポーネントのブロック図の例である。展開マネージャ700は、リトリーバ701、リモートフェッチャ(Remote Fetcher)702、ローカルフェッチャ(Local Fetcher)703、インスペクタ(Inspector)704、オプティマイザ(Optimizer)705、インストルメンテーションインストーラ(Instrumentation Installer)706およびアプリケーションパッケージャ(Application Packager)707を含む。リトリーバ7
01は、リモートフェッチャ702またはローカルフェッチャ703のどちらかを使用して、適したホストサーバからアプリケーションコードを取得し、次いで、このアプリケーションコードを適切に供給するために、種々のコンポーネントを介してアプリケーションコードを送る。特に、インスペクタコンポーネント704は、悪意のあるコードおよび禁じられたAPIに対するアプリケーションを検査し、オプティマイザコンポネント705は、可能な場合、コードのサイズを小さくし、インストルメンタルインストーラ706は、電気通信事業者の指定されたポリシーおよび管理の機能、例えば、請求および通知メッセージをコードに組み込む。
【0049】
特に、リトリーバ701は、複数のユーザおよび複数の電気通信事業者が異なったプロトコルを使用して複数のネットワークにわたって通信をすることを可能にするよう設計されている。これは、それらが配信に対してホストするソフトウェアアプリケーション(コンテンツ)の位置において電気通信事業者の柔軟性を認めることによって部分的に成し遂げられる。例えば、電気通信事業者が、スタンダードDBMSのようなFTPまたはHTTPサーバまたはデータリポジトリの指定ディレクトリにそのようなアプリケーションを格納することによってそれら自体のネットワークから全ての利用可能なアプリケーションをホストするために選択し得る。キャリアアプリケーションストア708は、このようなデータリポジトリであり、MASそれ自体のサーバに存在し得る。リトリーバ701は、ローカル的に格納されたデータのコピーを取り出すためにローカルフェッチャ703を動作させる。電気通信事業者は、また信頼されるサードパーティアプリケーションプロバイダが、リモートアプリケーションホスト709からアプリケーションをホストすることを可能にするために選び得る。そのアプリケーションは、信頼されるサードパーティアプリケーションプロバイダの制御下である。さらに、オープン供給を実行するために使用される際、リトリーバ701は、必ずしも信頼されるソースからではないサードパーティホストからアプリケーションを取り出す。いずれにしても、電気通信事業者は、リモートアプリケーションホスト709の一つにホストされる特定のダウンロード可能なアプリケーションに対する入来リクエストを参照するためにサードパーティによって提供されるURLを使用する。リトリーバ701は、このようなホストが公共のプロトコルを介してアクセス可能である際、一般的に、リモートアプリケーションホスト709でホストされるこのようなアプリケーションを検索するためにリモートフェッチャ702を動作させる。一実施形態において、ローカルフェッチャ703は、ローカルに格納されたデータを素早く取り出すために最適化され得る。一方、リモートフェッチャ702は、公共ネットワークを介してアクセス可能なホストに存在するアプリケーションを取り出すために必要な公共プロコトルをインプリメントする。
【0050】
信用されたサードパーティホストまたは電気通信事業者の選好に依存して、検索器(retriever)701によって検索されたアプリケーションコードが既に供給されている可能性がある。検索器701が未供給のコードを取得する場合、コードは、さらなる処理のために、検査器(Inspector)704、最適化器(Optimizer)705および装置組み込みインストーラ(Instrumentation Installer)706に送信される。検査器704は、検索された未供給のアプリケーションコードを検査して不正なコードを検出する。Java(R)コードでは、検査器704はまた、アプリケーションコードのクラス分析を実行し、アプリケーションのクラスが、APIコールの、番号、タイプおよび頻度等の所望の標準に適合することを検証し得る。さらに、検査器704は、邪魔で、不正な挙動を有するように暗示され得るか、または、リクエストしている加入者、ターゲットデバイスまたはいくつかの他のターゲットによって使用について認可され得ないAPIの、パッケージおよびメソッドの名前、クラス、フィールドまたは他のフォームを検出するためにアプリケーションフィルタを適用する。検査器704はまた、アプリケーションフィルタをAPI使用パターンを検出するために適用し得る。アプリケーションフィルタは、さらに図10F〜図10Jを参照して説明される
セキュリティ技術である。検査器704は、その使用に利用可能な、(図6を参照して説明された)供給マネージャによって検索された加入者およびデバイスプロファイルを有する。その結果、検査器704は、デバイスごとに、または加入者ベースごとに、制限を強制し得る。例示的な実施形態において、検査器704は、このようなパラメータの閾値、および、例えばロギングマネージャ(Logging Manager)等の他のエンティティによるさらなる検査に対するフラグパラメータの閾値が調整されることを可能にする。検査器704は、不正な挙動を場合によって発見した場合、供給するステップ(および次のダウンロードするステップ)が妨げられ得(または加入者が警告され得)、犯罪者の識別とともに違反がロギングマネージャに報告され得る。
【0051】
検査器704が検索された未供給のアプリケーションコードを首尾よく検査した後、このコードは、アプリケーションのサイズを低減するさらなる処理のために、最適化器705に転送される。最適化器705は、変数名を短縮し、不使用のコードをアプリケーションから除去する周知の方法を用い得る。このような最適化手順により、通常、結果的に、より速いダウンロードが行われる。最適化器705はまた、特定のインストラクションの使用をより効率的なインストラクションに変更する等の、アプリケーションが実行される場合にアプリケーションの速度を上げるための従来の周知の技術を用い得る。当業者は、MASのコンポーネントが拡張され得るか、または変更され得るので、任意の最適化技術がシステムに援用され得ることを認める。
【0052】
最適化後、検査かつ最適化されたアプリケーションコードは、さらなる処理のために、装置組み込みインストーラ706に転送される。ダウンロード可能なアプリケーションの供給者は、通常、個々の加入者のために、要求されたアプリケーションを変更する能力を有していない。このため、アプリケーションのコードを変更して加入者特定コードを追加することが所望され得る。例えば、「試験的使用」スキーム等の料金請求オプションは、コードをアプリケーションに挿入することによって実行され得る。上記コードは、例えば、アプリケーションに所定の回数、実行させるだけにするか、または特定の期間のみの間、実行させる。同様に、ログする目的で情報を報告するコード、または、(送信されるネットワークパケットの数に基づいて課金するパケットベース料金請求等の)他の料金請求オプションのために情報を収集するコードが備えられる。また、オープンプロビジョニングの場合、加入者に、加入者が不信なソースからコンテンツをダウンロードして実行しようとしていることを警告するコードが実行され得る。装置組み込みインストーラ706はまた、他のポリシーに従ってアプリケーションのコードを変更し得る。他のポリシー、例えば、プロモーションおよび広告キャンペーンを実行するポリシーが特定される。当業者は、コードが多くの他の目的のために備えられ得、同様に、ライブラリを操作すること等の周知の方法を用いて、または、クラスおよびメソッドをサブクラス化することにより、所定の位置に備えられ得ることを認める。
【0053】
装置組み込みインストーラ706は、要求されたアプリケーションを備えた後、アプリケーションパッケージャ(Application packager)707が、検査され、最適化され、かつ備えられたアプリケーションをパッケージ化する。アプリケーションパッケージャ707は、アプリケーションファイルのコンテンツを加入者デバイスが読み出し得るようにフォーマット化することにより、要求されたアプリケーションをパッケージ化する。加入者デバイスは、図6を参照して説明されたように、プロビジョニングマネージャによって取得されたデバイスプロファイルから判定されている。例えば、多くの加入者デバイスは、圧縮された「JAR」フォーマット(Java(R)アーカイブフォーマット)で提示されるファイルを読み出すことができる。「JAR」フォーマットは、要求されたJava(R)アプリケーションを圧縮し、パッケージ化するために用いられるフォーマットである。デバイスには圧縮されたJARファイルを受け取り得ないものがあるので、アプリケーションパッケージャ807は、供給されるアプリケーションのカ
スタムパッケージ化を、圧縮されたJARフォーマットでファイルを受け取りことができない上記の加入者デバイスに提供する。当業者は、このようなパッケージ化コンバータおよびJAR以外のフォーマット用の他のコンバータがアプリケーションパッケージャ807に、パッケージ化ルーチンをサブクラス化することによる等の周知技術を用いて、インストールされ得ることを認める。さらに、いくつかの加入者デバイスは、加入者デバイスが受信し得るパケットのサイズを限定できる。検出された場合、アプリケーションパッケージャ807は、上記の加入者デバイスに供給されるアプリケーションを複数のデータファイルにパッケージ化でき、複数のデータファイルを、受け取ると、加入者デバイスは、一つのJARファイルに組み立て得る。一つのJARファイルは、アプリケーションをインストールするために加入者デバイスによって用いられ得る。
【0054】
図5に関して述べられたように、アドミニストレータコンポーネント(例えばアドミニストレータ509)は、ユーザの異なるタイプにより、モバイルアプリケーションシステムの様々なコンポーネントを構成し、選好を特定するために、用いられ得る。図8は、モバイルアプリケーションシステムのアドミニストレータコンポーネントの例示的なブロック図である。1実施形態にて、アドミニストレータ800は、複数のウェブベースのユーザインターフェースを好適に提供する。複数のウェブベースのユーザインターフェースは、コンテンツプロバイダ、システム(電気通信事業者またはMAS)アドミニストレータ、加入者および顧客サービス支援スタッフに、MASのコンポーネントにアクセスさせるか、または、彼らの実績をカスタマイズさせることを可能にする。特に、例示のアドミニストレータは、コンテンツプロバイダウェブサイト801、アドミニストレーションウェブサイト802およびパーソナリゼーションウェブサイト(Personalization Website)803を提供する。上記のインターフェースの例示のスクリーン表示は、図8〜11を参照して、以下で説明される。当業者は、それぞれ説明されたウェブサイトが複数のスクリーン表示を含み得ること、および、上記および/または他のスクリーン表示およびウェブサイトは、同一の結果を達成する様々な構成で組み立てられ得ることを認める。例えば、アドミニストレータウェブサイト802は、個別のカスタムケアウェブサイト804を任意に含み得る。カスタムケアウェブサイト804は、電気通信事業者の代わりで個々の加入者アカウントを管理するために、(通常、電気通信事業者の)カスタムケア代理によって用いられ得る。
【0055】
アドミニストレータ800は、コンテンツプロバイダウェブサイト801をコンテンツプロバイダに提供する。コンテンツプロバイダは、ダウンロード可能なアプリケーションをMASに提出し、提出されたダウンロード可能なアプリケーションがレビューされ(例えば検査され)、公開について認可されたか否かをモニタリングするために、コンテンツプロバイダウェブサイト801を使用する。コンテンツプロバイダはまた、アプリケーションプロファイルに変化を推奨するために、彼らのアプリケーションの人気をモニタリングするために、または、MASアドミニストレータに情報を送信するために、コンテンツプロバイダウェブサイト801を用い得る。1実施形態において、コンテンツプロバイダは、コンテンツプロバイダウェブサイト801の(以前に、アドミニストレーションウェブサイト801を用いて構成された)アカウントにログインし、コンテンツプロバイダが提出することを望むファイルの位置に対する参照データ(例えばURLまたは他の位置参照データ)を入力する。図9Aは、コンテンツプロバイダウェブサイトのアプリケーション提出スクリーンの例示のスクリーン表示である。コンテンツプロバイダは、アプリケーションを、電気通信事業者のアプリケーションストアまたはリモートサーバにホスティングするか否かを選ぶ。Java(R)ベースの実施形態において、提出されたファイルは、好ましくJADまたはJARファイルである。しかし、当業者は他のフォーマットおよび他の言語が支援され得ることを認める。ファイルが提出された後、アドミニストレータ(例えば、図5のアドミニストレータ509)は、ファイルを検査し、この提出が認可されるべきか否かを判定する。1実施形態において、アドミニストレータは、(それぞれ図
6および7を参照して説明された)プロビジョニングマネージャおよび展開マネージャによって実行された検証チェックおよび検査の多くを実行する。いくつかのシステムにおいては、アドミニストレータ、プロビジョニングマネージャおよび展開マネージャが、部分的または全体的に、組み合わされ得る。1実施形態において、アドミニストレータは、それが有効であり、別のアプリケーションプロファイルによって用いられていないことを確実にするために提出されたURLをチェックし、JADにて参照されたアプリケーションをダウンロードする。次いで、アドミニストレータは、アプリケーションコードがJADファイルに適合し、アクティブアプリケーションフィルタおよび他の検証手順によって禁止された任意のAPIを用いないことを確実にするために、アプリケーションコードを分析する。例えば、アドミニストレータは、詳細なクラス分析を実行でき、アプリケーションが使用するAPIのリストを作成し得る。従って、アドミニストレータは、任意の関連するアプリケーションフィルタに記入されたAPIを検査でき、コンテンツを拒否することを決定できる。さらに、アドミニストレータは、利用可能なデバイスプロファイルに記入されたAPIを比較でき、これらAPIを支援するデバイスのリストをコンテンツプロバイダに提供できる。コンテンツプロバイダは、アプリケーションが、提案されたターゲットデバイスの全てで走行することを確認できるか、または、ターゲットにされるべきデバイスを排除できる。署名されたアプリケーションの場合、アドミニストレータはまた、署名が有効であることを確実にするためにチェックする。当業者は、アドミニストレータによって提供された検査は、他の検証を含み、特別の有効化の必要性が生じる時にこの必要性を満たすように、プログラム的に拡張され得ることを認める。例えば、アドミニストレータはまた、特定化されたJARによって動的にロードされるクラスファイルを自動的に検証し得、所望の時にこのクラスファイルを置き換え得る。コンテンツの適用機能を特定のデバイスに限定する他のパラメータはまた、提出検証プロセスおよび/またはダウンロード時に実行される検証プロセスに容易に追加され得る。
【0056】
一旦アプリケーションが提出のために配置され、検査されると、コンテンツプロバイダウェブサイト801は、好適に、提出されるべきアプリケーションについて、コンテンツプロバイダからの追加情報を要求する。追加情報は、アプリケーションが認可される場合にアプリケーションプロファイルの一部となる。例えば、コンテンツプロバイダは、アプリケーションの名前および短い説明、(アプリケーションを走行できるデバイス、アプリケーションが記述された言語、提案された販売価格等の料金請求情報および試験的使用パラメータを決定するために、デバイスプロファイルと比較される)支援されるJava(R)プロファイルのリストを含み得る。図9Bおよび9Cは、コンテンツプロバイダウェブサイトの追加情報提出スクリーンの例示のスクリーン表示である。アプリケーションソース言語を含む、この情報を特定するステップは、MASに、同一の名前を有する機能的に等価なプログラムを格納させ、支援させることを可能にする。この等価なプログラムは、デバイスの複数の種類で走行でき、異なる言語を用いて記述さえされ得る。コンテンツプロバイダはまた、提出されたアプリケーションが属する加入者カテゴリを選択し、価格を提案し、Java(R)プロファイルを記入し、メモリ要件、特定の匹敵するデバイスを特定し得る。1実施形態において、コンテンツプロバイダ選択は、アドミニストレーションウェブサイト802を介して上書きされ得る推奨とみなされる。
【0057】
コンテンツプロバイダが追加アプリケーション情報を提出した後、アドミニストレータは、提出されたアプリケーションの無線電気通信事業者システムアドミニストレータに通知し得、提出されたアプリケーションについて電気通信事業者からの認可を要求し得る。図9Dは、アドミニストレータによって生成された例示のアプリケーション提出通知である。アドミニストレータは、コンテンツプロバイダによって提出された(提出されたアプリケーションを含む)情報と、アプリケーションプロファイルを作成するために、検査プロセス間に生成されたデータとを用いる。アプリケーションプロファイルは、(例えば、図6を参照して説明されたように)プロビジョニングマネージャの検証プロセスでの使用
のために、データリポジトリ(例えば図5のデータリポジトリ511)に格納され、保持される。コンテンツプロバイダはまた、公開された、ペンディングの(pending)アプリケーションのコンテンツプロバイダ自体のリストを見て、編集するために、他の日時に、コンテンツプロバイダウェブサイト801を用い得る。
【0058】
アドミニストレータ800はまた、アドミニストレーションウェブサイト802をMASシステムアドミニストレーションに提供して、例えば、コンテンツプロバイダによって公開された、ペンディングのアプリケーションを管理する。一つの例示の実施形態において、アドミニストレーションウェブサイト802インターフェースは、個別のノードを提供して、アカウント、アプリケーション、加入者、デバイス、サーバおよびレポートを確立し、構成および/または管理をする。これらのノードにユーザインターフェースを提供する様々な例示のスクリーン表示は、図10A〜10Vに示されている。
【0059】
システムアドミニストレータは、アドミニストレーションウェブサイト802のノードアカウントを用いて、アドミニストレータ、コンテンツプロバイダおよびカスタマケア代理用のアカウントを設定する。カスタムケア代理は、効率良く、ログオンし、特定の加入者のアカウントへのアクセスを得て、必要性に応じて、このアカウントを変更できる。例えば、カスタマケア代理は、特定のアプリケーションの試験期間を再び開始するために、加入者アカウントを変えることができる。
【0060】
システムアドミニストレータは、アドミニストレーションウェブサイト802のアプリケーションノードを用いて、公開された、ペンディングのアプリケーションを管理し、アプリケーションカテゴリを管理し、アプリケーション(コンテンツ)検証プロセスに用いられるアプリケーションフィルタを定義し、全体的に料金請求方法を管理し、ペンディングのアプリケーションワークフロー通知を設定する。MASにおいて、アプリケーションは、通常、システムアドミニストレータによって保持される、異なるコンテンツカテゴリで公開される。図10Aは、アドミニストレーションウェブサイトのカテゴリ保持スクリーンの例示のスクリーン表示である。コンテンツカテゴリは、異なる加入者グループに割り当てられ得、これにより、特定のグループに属する加入者は、アプリケーションを、そのグループに割り当てられるカテゴリにダウンロードすることができる。コンテンツプロバイダはまた、MASへのアプリケーションの提出時に、アプリケーションカテゴリを提案し得る。
【0061】
システムアドミニストレータはまた、アドミニストレイティブウェブサイト802のアプリケーションノードを用いて、「ペンディングの」アプリケーションとして知られる、提出されたアプリケーションを評価する。図10Bは、アドミニストレーションウェブサイトのペンディングのアプリケーション保持スクリーンの例示のスクリーン表示である。システムアドミニストレータは、取り扱い時の、記入された任意のアプリケーションを、編集し、認可または拒否できる。アドミニストレータは、提出されたアプリケーションのアプリケーションプロファイルを、提出されたアプリケーションを供給についての無線電気通信事業者のポリシーに対して、評価し、そしてこのアプリケーションを拒否または認可するか否かを決定することについての責任がある。通常、システムアドミニストレータは、何時アプリケーションがコンテンツプロバイダによって提出されるかを通知され、その結果、アプリケーションが認可および公開のために評価され得る。システムアドミニストレータは、提出されたアプリケーションおよびこれに関連した情報を認可し、変化させ得るか、または認可せず、これに応じて、アプリケーションプロファイルを更新し得る。アプリケーションが認可される場合、アプリケーションが電気通信事業者のアプリケーションストアに書き込まれ(または、特定されて信用されたサードパーティサーバから利用可能になり)、その結果、アプリケーションは加入者がアクセスできるようにされる。メッセージはまた、コンテンツプロバイダに、提出されたアプリケーションが認可されたこ
とを通知するために、送信される。変化が、提出されたアプリケーションおよび/またはこれに関連したアプリケーションプロファイルに対して要求される場合、メッセージは、通常、コンテンツプロバイダにコンテンツの変化を通知するために、送信される。アプリケーションが認可されない場合、アプリケーションプロファイルは、データリポジトリから削除され、コンテンツプロバイダは、提出されたアプリケーションが拒否されなかったことを通知される。
【0062】
図10Bに示されるように、システムアドミニストレータはまた、アドミニストレーションウェブサイト802のアプリケーションノードを用いて、(アプリケーションプロファイルに格納された)提出されたアプリケーションに関連する情報をレビューまたは編集をすることができる。図10C〜図10Eは、アドミニストレーションウェブサイトの編集取り扱いアプリケーションスクリーンの一部の例示的なスクリーン表示である。システムアドミニストレータは、例えばタイトル、説明およびカテゴリ等の情報を変更でき、java(R)プロファイルおよびリソース要件等の選択、アプリケーション検証および検査のために用いられた詳細部を変化させ得る。さらに、アドミニストレータは、(電気通信事業者の全体的な料金請求メソッドと好適に適合する)特定のアプリケーション用の、料金請求メソッド関連情報を変更できる。例えば、システムアドミニストレータは、電気通信事業者への利益を増加させるために、アプリケーションの販売価格を、コンテンツプロバイダによって元々示された価格を越えて増加させ得る。システムアドミニストレータはまた、アプリケーションに対する追加的な料金請求オプションを特定できる。システムアドミニストレータは、例えば、コンテンツプロバイダが従来の購入オプションのみを特定する時でさえ、課金しない試験的使用を追加することにより、アプリケーション用のこの追加的な料金請求オプションを特定できる。いくつかの実施形態において、アドミニストレータは、提出プロセスの間に提出されたアプリケーションについて実行された詳細なクラス分析の結果をレビューし得る。
【0063】
システムアドミニストレータはまた、アドミニストレーションウェブサイト802のアプリケーションノードを用いて、MASについてのセキュリティ設定およびポリシーを特定化できる。例えば、アドミニストレータは、検査プロセスの間に展開マネージャ(例えば、図5の展開マネージャ506)によって用いられるアプリケーションフィルタを定義し得、特定のデバイスプロファイルを有する加入者デバイス、所定のコンテンツプロバイダ、または特定のJava(R)プロファイルを用いるアプリケーション、または全体的なターゲットが、特定のAPIまたはAPIのパターン、例えば所定のJava(R)APIコールを使用することを防止できる。これらのAPIは言語依存型に特定化され、Java(R)ベースの実行について、少なくともパッケージ、クラス、メソッドおよびフィールド名を含む。特定のターゲット用のフィルタを特定化する能力は、例えば所定のAPIまたはAPIの組み合わせが特定のデバイスで作動しないと分かるか、または、特定のコンテンツプロバイダから見出される時、非常に有用である。このようなフィルタでMASをプログラミングすることにより、システムアドミニストレータは、動的に、単一の出来事が発生した後、または、例えば、電気通信事業者、コンテンツプロバイダ、加入者またはデバイス製造者からの通知の後、さらなる加入者デバイス「ダメージ」を防止できる。さらに、アプリケーションフィルタは、オープンプロビジョニングシナリオの、不信なまたは未知のサードパーティコンテンツに適用され得る。従って、セキュリティの度合いを、現存するアプリケーションに、変更することなく、提供できる。
【0064】
図10F〜10Jは、アドミニストレーションウェブサイトのアプリケーションフィルタ管理インターフェースの部分の例示のスクリーン表示である。図10Gに示されるように、アドミニストレータは、選択されるターゲットに禁止されるべき特定のAPIを選択できる。図10Hは、選択されるターゲットを、Java(R)プロファイル、デバイスプロファイル、コンテンツプロバイダまたは全ての利用可能なターゲットの内の一つとな
るように変化させるための、例示のスクリーン表示を示す。当業者は、アプリケーションフィルタ機構がフィルタの異なるタイプを支援し、異なるエンティティを対象とするように、ターゲットの異なるエンティティに拡張され得ることを認める。
【0065】
上述されたように、システムアドミニストレータはまた、アドミニストレーションウェブサイト802のアプリケーションノードを用いて、電気通信事業者によって支援された全体的な料金請求メソッドを特定できる。図10Kは、アド未にストレーションウェブサイトの料金請求メソッド管理インターフェースの例示的なスクリーン表示である。示された実施形態において、アドミニストレータは、ダウンロードごと、ネットワークの使用法(例えば送信ベース)ごと、加入ごとの複数の異なる料金請求オプションと、課金なしの試験的使用とを選択できる。
【0066】
他の機能はまた、アドミニストレーションウェブサイト802を介してシステムアドミニストレータにアクセス可能である。例えば、システムアドミニストレータは、加入者ノードを用いて、加入者によるMASの使用を管理でき、それぞれの加入者に対して加入者プロファイルを確立できる。加入者プロファイルは、それぞれの加入者によってダウンロードされてきた、公開されたアプリケーションのリストを保持し、特定の加入者が起動させ得ない禁止されたアプリケーションのリストを保持し、特定のユーザが属する加入者グループを作成し、保持する。1実施形態において、上記のプロファイルは、(図5のデータリポジトリ等の)MASのデータリポジトリに格納され、(図6のプロファイルリーダ652等の)プロビジョニングマネージャのプロファイルリーダによって読み出される。
【0067】
図10M〜10Pは、アドミニストレーションウェブサイト内の加入者保持スクリーンの例示のスクリーン表示である。アドミニストレータは、加入者が割り当てられ得るか、または加入できる加入者グループを作成でき、コンテンツカテゴリをそれぞれのグループに関連させることによってそれぞれの加入者グループに利用可能であるコンテンツを定義できる(例えば図10P)。加入者グループへの特定のコンテンツカテゴリの割り当ては、サービスプランと呼ばれる。(図10P参照)。MASは、この情報を用いて、加入者が要求されたアプリケーションをダウンロードするように認可されるか否かを決定する。加入者は、加入者のサービスプランへの変化を特定でき、これにより、自動的に、上記のプランに関連するコンテンツにアクセスするように認可される。デフォルトカテゴリはまた、(デフォルト加入者グループ等の)特定の加入者グループに提供され得、その加入者グループのユーザに、利用可能な公開されたアプリケーションのカテゴリを提示できる。
【0068】
システムアドミニストレータはまた、更新されたバージョンが加入者によって既にダウンロードされたアプリケーションの一つに利用可能であることの通知等のメッセージを、加入者に送信し得る。この挙動は、時に、「プッシュ」能力と呼ばれる。加入者にコンタクトを取るための情報は、加入者の加入者プロファイルから通常、利用可能である。)図10Qは、アドミニストレーションウェブサイトのメッセージインターフェースの例示のスクリーン表示である。システムアドミニストレータはまた、アドミニストレーションウェブサイト802のレポートノードで利用可能な、レポートテンプレートおよび/またはユーザ定義レポートを用いて、トレンドおよび人気のあるアプリケーションダウンロード等の、マーケティングデータを入手できる。図10Rは、アドミニストレーションウェブサイトのレポートスクリーンの例示のスクリーン表示である。アプリケーションをダウンロードするリクエストがロギングマネージャ(例えば、図5のロギングマネージャ508)によってログされ、それぞれの取引の詳細部が(図5のデータリポジトリ511等の)トラッキングデータリポジトリに記録されるので、システムアドミニストレータは、レポートを生成するためにトラッキングデータリポジトリを照会できる。いくつかの実施形態において、このような照会に対する支援は、プロビジョニングマネージャの)MASデータ照会エンジン(例えば、図6のMASデータ照会エンジン650を介して提供される。
システムアドミニストレータは、例えば、予め定義されたレポートテンプレートまたはカスタマイズされたレポートテンプレートを用いて、上記のレポートを生成し得る。
【0069】
さらに、システムアドミニストレータは、装置組み込みインストーラ706がダウンロードされたコンテンツを適切に備える場合、無線ネットワークを通じてダウロードされたアプリケーションを、遠隔的に、活性化または不活性化するように選ぶことができる。例えば、備えられたアプリケーションは、アプリケーションの新しいバージョンが利用可能であるかどうかを知るために、ホストサーバ(電気通信事業者またはサードパーティ)でチェックさせられ得、アプリケーションの新しいバージョンをダウンロードするか否かを判定することを加入者に促すことができる。備えられたアプリケーションはまた、時間制限期間が満期になるか、または、アプリケーションが起動され得る回数が(例えば、試験的期間料金請求オプションについての使用のために)越えられたかを判定するために、ホストサーバでチェックさせられ得る。装置組み込みアプリケーションはまた、日時制限を決め得る。この日時制限は、例えば、一日の設定期間内に所定の回数だけ使用されるようにアプリケーションを制限し得る。これらの制限は、システムアドミニストレータが、アプリケーションが加入者の無線デバイスにダウンロードされた後でさえアプリケーションを実行できる加入者の特権を無効にするか、または、制限することを効率良く可能にする。当業者は、他の制限および能力が同様に強制され得ることを認める。
【0070】
システムアドミニストレータは、アドミニストレーションウェブサイト802のデバイスノードを用い得、アプリケーションの供給中の検証用に用いられる情報を提示かつ維持し得る。例えば、システムアドミニストレータは、特定のデバイスに対応するデバイスプロフィールのリストを作成かつ維持し得る。典型的に、システムアドミニストレータは、MASによってサポートされる各デバイスに対するデバイスプロフィールを作成する。図10S〜10Tは、アドミニストレーションウェブサイト内におけるデバイスアドミニストレーションスクリーンのスクリーンディスプレイの例である。新規のデバイスプロフィール、および対応するデバイス指定は、必要に応じて加えられ得る。各デバイスプロフィールは、ハードウェアに特定の情報およびリソースの特性(例えば、ランタイムメモリおよびフラッシュメモリの量、チップの識別、最大ダウンロードサイズ、およびデバイスが「OTA」に準拠しているかどうかを含む。(OTAは、Sun Microsystemの放送適応規格を参照するOTAに適応するデバイスは、他の能力のうちで、デバイスへの首尾良いダウンロードの追跡をサポートする。)
また、各デバイスプロフィールは、デバイスによってサポートされる単一のJava(登録商標)プロフィールを指定し得る。Java(登録商標)は、デバイスによってサポートされるJava(登録商標)APIを特定する。例えば、MIDP1.0スタンダード(デバイスによってインプリメントされるJava(登録商標)APIのセットを規定する周知のスタンダード)に適応するデバイスは、典型的に、この適合を示すデバイスプロフィールを有する(例えば、図10Tを参照)。デバイス(および関連するJava(登録商標))プロフィールは、アプリケーションプロフィールとの比較用の検証プロセス中にプロビジョニングマネージャによって用いられ、特定のデバイスがリソースを有し、かつ、アプリケーションによって必要とされるAPIのセットをサポートすることを確実にする。図10U〜10Vは、アドミニストレーションウェブサイトを用いてJava(登録商標)プロフィールをアドミニストレーションするためのスクリーンディスプレイの例である。いくつかのJava(登録商標)が複数のデバイスに関連し得るが、デバイスは、典型的に、1つのJava(登録商標)プロフィールのみサポートし得る。システムアドミニストレータは、APIのセットを特定かつ記述する文書ファイル(例えば、JARファイルまたは.zipファイル)の名前を特定することによってJava(登録商標)プロフィールをロードする。MASは、文書構造(パッケージ、クラス、メソッド、およびフィールド定義)のために特定されたアーカイブを試験し、この構造を含むプロフィールを生成する。これらのプロフィールは、また、アプリケーションフィルタを作成する
ように用いられ得る。このアプリケーションフィルタは、特定のAPIを用いるアプリケーションの供給および/またはダウンロードを防ぐ。Java(登録商標)が有効なデバイスおよびJava(登録商標)APIに関して主に記載したが、特別のAPI、オブジェクト、クラス、変数、および/または他のデータ構造がアプリケーションに存在し、デバイスによってサポートされるかどうかの判定を言語がサポートする限りにおいて、および、構造がバイトコードレベルで確認され得る限りにおいて、当業者は、MASが他の言語規格および他の言語で有効なデバイスに対して適応され得ることを認識する。さらに、当業者は、受信するアプリケーションがソースをコンパイルまたはインタープリットし得、実行可能なファイルを生成し得る限りにおいて、これらの技術がソースコードレベルにおける使用に適応され得ることを認識する。
【0071】
アドミニストレーションウェブサイト802によって、システムアドミニストレータが、プロビジョニングおよび展開マネージャ(Provisioning and Deployment Manager)によって提供された検証および検査プロセスを補充および補間する様々なセキュリティ技術および対策をインプリメント可能となる。このような技術の1つは、アプリケーションフィルタを規定する能力である。この能力は、上記されたように、特定のデバイスまたは他のターゲットを用いるアプリケーションによって呼び出されるべきではないAPIを特定するために用いられる。このような制限されたコールおよび構造は、加入者のダウンロード要求に応答して、および、コンテンツの提供者によりアプリケーションを提出して、アプリケーション供給プロセス間に特定され得、加入者が特定のデバイスに対して不適切なコードをロードしないことを確実にすることを支援する。提供された別のセキリュティ技術は、URLをリダイレクトする能力である。システムアドミニストレータは、アドミニストレーションウェブサイト802のサーバノードを用いるURLリダイレクトマッピングを特定することによってMASにおけるユーザの利便性およびセキュリティのためにURLをリダイレクトし得る。例えば、非公認のアドミニストレーションサイトを指し示すURLは、支払い広告者(paying advertiser)からの広告を提供するURLにリダイレクトされ得る。同様に、コンテンツを移動させた後、システムアドミニストレータは、エラーメッセージの代わりにコンテンツを以前に参照したURLをリダイレクトすることを所望し得る。また、リダイレクトされたURLは、アプリケーションの実際の位置を隠す、または、アプリケーションがより容易に移動されることが可能となるように用いられ得る。入来データを受信すると、MASは、アプリケーションを特定する任意のURLをアドミニストレーションウェブサイト802を用いて管理されたリダイレクトされたURLのリストとを比較し、そのように特定される場合、それらをリダイレクトする。また、当業者は、さらなるおよび他のセキュリティ技術が加えられ得、かつ、MASによって利用され得ることを認識する。必要な場合、加入者、コンテンツプロバイダ、アドミニストレータおよび様々なMASコンポーネント間の様々なセキリュティメカニズムを提供し、および、MASによって格納され、MASを通してアクセス可能な、または、クライアントデバイスに格納されたデータを安全に伝送するようにアドミニストレーションウェブサイト802によって構成される。例えば、KSSL等の安全プロトコルをサポートするデバイスが製造されるので、様々なMASコンポーネントはこのプロトコルを用いるように構成され得る。さらに、適用可能なら、安全なインタフェースは、ウェブベースのインタフェースとそれらによって操作されたMASコンポーネントとの間のコンポーネントとしてインストールされ得る。
【0072】
アドミニストレータ800は、また、パーソナリゼーションウェブサイト803を提供する。このパーソナリゼーションウェブサイト803は、加入者に関連するサービスおよび情報を整理、保持、および表示するように、ならびに、アプリケーションを管理するように加入者によって用いられる。図11A〜11Lは、パーソナリゼーションウェブサイトのスクリーンディスプレイの例である。図11Aは、パーソナリゼーションウェブサイト803の初期のスクリーンディスプレイである。加入者は、パーソナリゼーションウェ
ブサイト803を用いて、サービスプラン(このサービスプランは、ユーザに請求された金額だけの変化させる可能性のある)を変化させることによってコンテンツのさらなるカテゴリーに加入する。図11B〜11Dは、パーソナリゼーションウェブサイトを用いてサービスプランをアドミニストレーションするスクリーンディスプレイの例である。新規のサービスプランが選択されると、加入者は、関連するコンテンツのカテゴリーを用いるように認証される。
【0073】
加入者は、また、現在のアプリケーションの観察し、アプリケーションを加え、アプリケーションを取り除き、およびアプリケーションを体系化することによって加入者のアプリケーションを管理し得る。図11E〜11Lは、パーソナリゼーションウェブサイトを用いてアプリケーションを管理するためのスクリーンディスプレイの例である。アプリケーションを参照して記載してきたが、当業者は、これらの技術が任意のダウンロード可能なコンテンツに適用され得、そしてこのアプリケーションがアプリケーションベースの管理に加えて、カテゴリーまたは他の抽象概念によって管理され得ることを認識する。加入者は、パーソナリゼーションウェブサイト803を用い得て、加入者の「個人アクセスリスト(Personal Access List)(「PAL」)」を作成かつ管理し得る。加入者のPALは、加入者が例えば、アプリケーションディスカバリ中に加入者のデバイス上にMASディスプレイを有することを所望するというアプリケーションのリストである。このリストは、デフォルトセットのアプリケーション、非アプリケーション、あるいは加入者がダウンロードしたアプリケーションか、または将来においてダウンロードすることを所望するアプリケーションまたは、他の組み合わせのリストを含み得る。一実施形態において、PALは、加入者がダウンロードしたものを初期に含む。MASが各無線デバイスおよび全ての無線デバイスに対するアプリケーションダウンロードの記録を維持するので、MASは、特定の加入者のダウンロードされたアプリケーションを追跡可能である。
【0074】
図11E〜11Hは、加入者の個人アクセスリストにアプリケーションを加えるためのスクリーンディスプレイの例である。一実施形態において、PALは、アプリケーションの名前および解説、利用可能な請求オプション、各請求方法に対するコスト、任意の適用可能な試験期間の状態、購読状態、および加入者のデバイスとの適合性を一覧する。アプリケーションが(変化され得る)加入者サービスプランの下で利用可能である場合、および、アプリケーションが加入者のデバイスに適合している場合のみ、アプリケーションは、一般的に加えられ得る。あるいは、アプリケーションは、PALに加えられ得るが、アプリケーションのディスカバリ中にプロビジョニングマネージャによって取り除かれ得る。これにより、加入者は、複数の加入者デバイスに対して働くPALを有することが可能となる。MASのアドミニストレーションコンポーネント(例えば、図5におけるアドミニストレータ509)は、加入者デバイスに関連するデバイスプロフィールを、デバイス(このデバイス上でアプリケーションが走行する)を特定するアプリケーションプロフィールと比較することによって自動的にこの判定をし得る。いくつかの実施形態において、MASは、全ての利用可能なアプリケーションを一覧し、加入者の現在のサービスプランがアプリケーションのダウンロードをサポートするかそうでないかを示す。他の実施形態において、MASだけが、加入者のデバイスによってサポートされたこれらのアプリケーションを一覧する。これにより、加入者は、適合可能なアプリケーションをを正確に選択する必要のある問題を避けることを可能となる。他の組み合わせも考慮される。
【0075】
アプリケーションはまた、個人アクセスリストから取り除かれ得る。図11Jは、加入者の個人アクセスリストからのアプリケーションを取り除くためのスクリーンディスプレイの例である。さらに、加入者は、加入者が加入者デバイス上にリストを表すように意図する方法に従って個人アクセスリストを体系化し得る。図11K〜11Lは、加入者の個人アクセスリスト上のアプリケーションの順序を体系化するためのスクリーンディスプレ
イの例である。
【0076】
PALを維持することによって、加入者は、どのアプリケーションが加入者のデバイス上に位置付けられるかを容易に管理し得、そして、例えば、元々の無線デバイスが失われ、盗まれ、または破壊された場合に、同一のアプリケーションのセットを別の無線デバイスにダウンロードすらし得る。さらに、加入者は、個人的な接触情報および約束のカレンダー等の情報のコピーを維持し得、これは、加入者の無線デバイスまたは別のデバイスに容易にダウンロードされ得る。したがって、これらの機能は、新しい無線デバイスにアップグレードする際の不便さを維持する。
【0077】
記載されたように、MASは、特定の時間、例えば、アプリケーション発見の間に、ダウンロード可能なアプリケーションのリストを加入者のデバイス上に表示するためにPALを検証する。MASは、加入者の無線デバイスが表現できるように知られている言語(例えば、XML、WML、XHTML、Basic、HTML、または任意の他のXMLベースの言語)でこのリストを自動的に生成する。MASは、初発性の情報(PAL等)をXMLフォーマットに格納し、XSLTベースの機能性(例えば、図6において、XSLT Processor 630によって提供されるような、これは、スタイルシートを使用する)を使用することによって任意の言語をサポートするためのインストラクションを提供し、格納されたXMLフォーマット化された情報を任意の要求されたフォーマット、例えば、WMLまたはXHTML Basicwoに変換する。特定のユーザの無線デバイスがサポートするように知られている表現言語は、要求デバイスによって使用されている要求デバイスおよびブラウザを検出することによってMASにより自動的に、および/またはデバイスプロファイルから決定され得る。
【0078】
加入者は、さらに、アカウント情報およびダインロードまたはアカウント活性の履歴を取得および変更するために、Personalization Website 830を用い得る。
【0079】
Personalization Website 803を介して、システムアドミニストレータは、更新されたまたは新しいアプリケーション、すなわち、「tie−ins」の利用可能性を加入者に通知し得る。このアプリケーションのシステムによって、システムアドミニストレータは、製品提供または広告を(「push」メッセージを介して)表示し得る。加入者は、加入者の無線デバイスを用いて、または、無線デバイスを超えたより優れた表示特性を好適に有する無線化されたデバイス(パーソナルコンピュータ等)を用いてPersonalization Website 803にアクセスし得る。より優れた表示特性を有する無線化されたデバイスがPersonalization
Website 803にアクセスするために用いられた場合、より優れた表示特性が、増大されたtie−insをサポートするために用いられ得る。
【0080】
種々のウェブサイトベースのユーザインタフェースを既存のMASコンポーネントに提供することに加え、MASのアドミニストレータコンポーネント(例えば、図5のアドミニストレータ509)は、システムアドミニストレータが、MAS自体の再プログラミングコンポーネントを通じて、および規定供給ルールを通じて、カスタマイズ可能な供給関連ポリシーをインプリメントすることを可能にする。一実施形態では、再プログラミングは、Administrator Website 802を通じて達成される。しかしながら、当業者は、この機能性は、他の機構を用いて、例えば、登録機構を通じて、アドミニストレータを有する異なるコンポーネントおよびプロファイルを登録することによって、または、MASインタフェースの要素を下位分類することによって達成され得ることを認識する。この機能性は、提示されたアプリケーションをレビューし、プロファイル管理、レポート作成、およびサーバ管理を行う際に、加入者、電気通信事業者、およびシス
テムアドミニストレータが柔軟性を増大されることを可能にする。
【0081】
例えば、システムアドミニストレータは、供給ルールをインプリメントするためにプロファイル管理を採用し得る。プロファイルは、本来的に動的なデータ分割技術を提供する。加入者および加入者のグループに対するサービスの種々のカテゴリーを特定することによって、単に種々のプロファイルを修正することにより、例えば、アドミニストレータコンポーネントのウェブサイトインタフェースを用いて、供給ルールは、個人または加入者のグループに適用され得る。さらに、供給ルールは、サービスのカテゴリーが個々の加入者および加入者のグループにどのように適用されるかを決定するために用いられるプロファイルに格納され得る。供給ルール自体は、修正され得る。
【0082】
プロファイル管理は、提供に関連するおよび請求書関連のサービスプロファイルを規定する際に高い程度の柔軟性を可能にする。例えば、電気通信事業者は、基本的なサービスレベルおよびプレミアムサービスレベルを含む加入者サービスを提示し得る。基本的なサービスの加入者は、ダウンロードした各アプリケーションに対して個々に借方記入され得るのに対して、プレミアムサービスの加入者は、毎月のサービス料をより高く支払うが、余分な借方記入なしで無制限数のアプリケーションをダウンロードすることが可能にされる。別の例では、銀行等の企業は、企業の顧客が企業固有のアプリケーションを加入者デバイスの一つのタイプ上でダウンロードして、例えば、銀行の顧客がアカウント収支を調べ、ファンドを移すことを可能にすることができる特定タイプのサービスをセットアップすることを電気通信事業者と交渉し得る。この例では、電気通信事業者は、企業に対する加入者プロファイルをホスト管理し、企業がLDAP等の工業基準データベースおよび当業者に既知の関連するデータベースを用いてこの情報にアクセスすることを可能にする。
【0083】
アドミニストレータ800は、さらに、MASの他のコンポーネントを管理するために必要なユーザインタフェースを提供する。これらのインタフェースを通じて、システムアドミニストレータは、MASの異なるモジュールを観察し、サーバ側のセキュリティを管理し、そして、任意の時間でのシステム状態およびサーバ性能をモニタし得る。システムアドミニストレータは、さらに、加入者のアカウントを管理し、そして、種々のレベルの管理特権を割り当て得る。サーバ管理は、さらに、ログ管理等の機能およびトラブルシューティング目的のための分析ツールを含む。
【0084】
例の実施形態では、モバイルアプリケーションシステム(Mobile Application System)の方法およびシステムは、1以上の一般的な目的のコンピュータシステムおよび典型的なクライアント/サーバアークテクチャにしたがう無線ネットワーク上でインプリメントされ、分散された環境で動作するように設計および/または構成され得る。例示の実施形態は、1以上の無線ネットワークを通じてMASと通信する複数の加入者デバイスを有するもの等のグローバルネットワーク環境で動作するように示される。
【0085】
図12は、一般的な目的のコンピュータシステムおよびモバイルアプリケーションシステムの実施形態を実施するための加入者デバイスの例示のブロック図である。図12のコンピュータ環境は、加入者デバイス1201および一般的な目的のコンピュータシステム1200を含み、これらは、無線電気通信事業者1208を介して通信する。各ブロックは、得的の環境に適切なような1以上のブロックを表し得、それぞれは、分離した物理的位置に常駐し得る。
【0086】
加入者デバイス1201は、コンピュータメモリ(「メモリ」)1202、ディスプレイ1203、入力/出力デバイス1204、および中央演算装置(「CPU」)1205を含む。Handset Administration Console 1206は
、ダウンロードされたアプリケーション1207を有するメモリ1202内に常駐して示される。Handset Administration Console1206は、好適には、メモリ1202において現在実行しているアプリケーション1207を実行するため、または以前の図を参照して記載されたような無線電気通信事業者1208を介してMAS1209からのアプリケーションをダウンロードするためにCPU1205上で実行する。
【0087】
一般的な目的のコンピュータシステム1200は、1以上のサーバおよび/またはクライアント演算システムを含み得、そして、分散された位置を橋渡し得る。一実施形態では、MASは、Java(R)2Enterprise Editon(J2EE)を用いてインプリメントされ、そして、J2EE対応サーバを提供する一般目的のコンピュータシステム上で実行する。この実施形態によると、MASは、J2EEマルチティアーアプリケーションアーキテクチャを用いて設計およびコードされる。このJ2EEマルチティアーアプリケーションアーキテクチャは、サーバ側上のウェブティアー、ビジネスティアー、およびデータバースティアーをサポートする。このため、一般目的のコンピュータシステム1200は、MASの1以上のコンポーネントおよび/またはリポジトリを走行することができる1以上のサーバを表わす。
【0088】
示されるように、一般的な目的のコンピュータシステム1200は、CPU1213、メモリ1210、および任意のディスプレイ1211および入力/出力デバイス1212を含む。MAS1209のコンポーネントは、他のデータリポジトリ1220および他のプログラム1230とともに、メモリ1210に常駐して示され、好適には、1以上のCPU1213上で実行する。典型的な実施形態では、MAS1209は、供給コンポーネント1214、プロファイルおよび構成データを格納するためのデータリポジトリ1215、およびアプリケーションストア1216を含む。前記に記載されたように、MASは、電気通信事業者または他のホストシステムの必要性および電気通信事業者または他のホストシステムとの統合に応じて他のデータリポジトリおよびコンポーネントを含み得る。供給コンポーネント1214は、図5に示され、且つ参照されたMASのコンポーネントを含む。供給コンポーネント1214は、、MAS1209がダウンロード可能なアプリケーションおよびアプリケーション発見に対する要求を受け取ること、特定の加入者および特定の加入者デバイスによる使用に対する要求の適切性を検証すること、要求されたアプリケーションをそれに合うようにカスタマイズすること、および供給されたアプリケーションを加入者デバイス1201に送ることを可能にする。アプリケーションストア1216は、加入者デバイス1202に対するデータリポジトリである。アプリケーションストア1216は、加入者デバイス1201にダウンロードするために適切なアプリケーションを格納するデータリポジトリである。アプリケーションは、加入者デバイス1201に迅速にダウンロードするために事前供給(「静的供給」され得るか、または、アプリケーションは、要求の際に供給(「動的供給」)され得る。データリポジトリ1215は、加入および(プロファイル管理に用いられたプロファイルをホスト管理するための)デバイス性能のレベルを確立するため、および各顧客デバイスに適したアプリケーションを決定するためにデータリポジトリおよび検索サービスを提供する。
【0089】
当業者は、MAS1209が、複数の、不均一でさえある、コンピュータシステムおよびネットワークからなる分散された環境においてインプリメントされ得ることを認識する。例えば、一実施形態では、供給コンポーネント1214およびアプリケーションストア1215が物理的に異なるコンピュータシステムに位置付けられる。別の実施形態では、供給コンポーネント1214の種々のコンポーネントが、分離したサーバ機構上でホスト管理され、データリポジトリ1215および1216から遠隔に位置付けられ得る。プログラムおよびデータの異なる構成および位置が、本発明の技術を用いた使用に対して企図される。
【0090】
例示の実施形態では、供給コンポーネント1214が、Java(登録商標)TM2Platform Edition Specfication,Version1.2,Sun Microsystems,1999(本明細書において、その全体を参考として援用する)に詳細に記載されるような、J2EEマルチティアーアプリケーションプラットフォームを用いてインプリメントされる。供給コンポーネント1214は、プロトコルマネージャ、供給マネージャ、展開マネージャ、料金請求マネージャ、その他のコンポーネントを含む。図13〜28は、図3から11を参照して記載された機能性を達成するためにこれらのコンポーネントのそれぞれによってインプリメントされた特定のルーチンの種々の例示の実施形態を記載する。例示の実施形態では、これらのコンポーネントは、同時にかつ非同期的に実行し得る。このため、コンポーネントは、周知のメッセージパッシング技術を用いて通信し得る。当業者は、等価な同期実施形態も、MASインプリメンテーションによってサポート可能であることを認識する。また、当業者は、他のステップが各ルーチンのためにインプリメントされ、異なる順序で、そして、異なるルーチンで、それでも、MASの機能を達成し得ることを認識する。
【0091】
図13は、異なるプロトコルを用いて変動する無線ネットワークを介して種々の加入者デバイスと通信するために、モバイルアプリケーションシステムのプロトコルマネージャによって行われる処理の例示のフロー図である。(例えば、図5のプロトコルマネージャ503参照)。ステップ1301では、プロトコルマネージャが、初期化される。ステップ1302では、プロトコルマネージャは、加入者デバイスからの入来データ要求があるかどうかを決定し、あれば、ステップ1303に進み、他の場合には、ステップ1306に連続する。ステップ1303では、Protocol Menagerは、どの無線ネットワーク(または無線化されたネットワーク)を介してその要求が送られたかを決定することによって入来要求のために用いられたプロトコルを決定し、入来要求に関連付けられた記録における未決定の要求のために決定されたプロトコルを格納する。システムによって処理されたときのプロトコル記録と入来要求との間の関連が、例えば、要求メッセージヘッダ内のプロトコル記録への参照を格納することによって維持される。ステップ1304では、プロトコルマネージャは、入来要求を内部的に用いられるプロトコル(例えば、HTTP)に転送する。ステップ1305では、プロトコルマネージャは、転送された要求を供給マネージャ(例えば、図5の供給マネージャ504)に送り、ついで、要求の処理を終了する。ステップ1306では、プロトコルマネージャは、加入者デバイスへの出力データ要求あるかどうか決定し、あれば、ステップ1307に進み、他の場合には、要求の処理を終了する。ステップ1307では、プロトコルマネージャは、出力データに対応する入来要求に関連付けられる決定されたプロトコルを検索する。決定されたプロトコルは、要求を発行した加入者デバイスによって用いられたプロトコルである。ステップ1308では、プロトコルマネージャは、決定されたプロトコルにしたがって出力データメッセージを符号化/転送する。ステップ1309では、プロトコルマネージャは、符号化された出力データを、要求を示す加入者デバイスに転送し、処理を終了する。
【0092】
図14は、加入者デバイスに対して要求されたアプリケーションの適合性を決定するため、および加入者デバイスが復号化し得るフォーマットでデバイスへの要求されたアプリケーションを提示するためにモバイルアプリケーションシステムの供給マネージャによって行われる処理の例示のフロー図である。(例えば、図5の供給マネージャ504参照。)ステップ1401では、供給マネージャは、任意の必要な初期化を行う。ステップ1402〜1413では、供給マネージャは、MAS「コマンド」を処理する。ステップ1402では、供給マネージャは、入来要求において特定されるコマンド(またはダウンロードへの要求)を決定する。ステップ1403では、供給マネージャは、図6を参照して記載されたように、入来要求を分析し、特定の供給ステップを後に利用するように増大し、変更し、または変更するために提供するように動的に要求を修正することによって、また
は、通信または構成理由のための他のパラメータ値を挿入することによって、要求を事前処理する。ステップ1404では、供給マネージャは、「コマンド」はダウンロードされる要求であるかどうかを決定し、そうであれば、ステップ1404に続き、他の場合には、ステップ1408に続く。コマンドの分離「タイプ」として現在インプリメントされるが、当業者は、ダウンロードされた要求がパラメータとして特定化された「URL」によって示されるとしても、必須のコマンドであること、および、コマンド処理を行うための多くの等価なプログラム技術があることを認識する。ステップ1405では、供給マネージャは、要求さrたアプリケーション(コンテンツ)がMASに知られているかどうか決定し、そうであれば、walled−garden供給を行うためにステップ1406に続き、他の場合には、オープン提供を行うためにステップ1407に続く。例示の実施形態では、そのコンテンツがMASに知られ得るいくつかの方法がある。これは、提供および公表アプリケーションへのウェブサイトを用いるシステムアドミニストレータを通じて、最終的に承認および公表されたコンテンツを示すコンテンツプロバイダを通じて、および、提出プロセスを固有に発生させる電気通信事業者に知られた信託された第三者コンテンツプロバイダからさらに知られたアプリケーションへのダウンロードを要求する加入者を通じて行われる。Walled−garden提供は、図15を参照してさらに議論され、オープン供給は、図16を参照してさらに議論される。一旦提供がステップ1406または1407において発生すると、要求は、ステップ1413において後処理される。他方、ステップ1408において、指定されたコマンドがアプリケーションリストに対する要求である場合、供給マネージャは、アプリケーション発見を行うためにステップ1409に続くか、または、ステップ1410に続く。アプリケーション発見の後、供給マネージャは、その要求を後処理するためにステップ1410に進む。ステップ1409では、コマンドがダウンロード履歴に対する要求である場合、供給マネージャは、ダウンロードされたアプリケーションのリストを検索するためにステップ1411に続き、後処理のためにステップ1413に進む。ステップ1402では、コマンドがいくつかの他のMASコマンドである場合に、供給マネージャは、コマンドを適切に処理し、ステップ1413に進む。ステップ1413では、図6を参照して記載されたように、供給マネージャは、他のコンポーネントの機能性の拡大であるかまたは他のパラメータを修正する機能を行うことをMASの他のコンポーネントを指示するために、インストラクションへの参照を含むように要求を修正することによって、要求を後処理する。例えば、供給マネージャがダウンロードを要求する個人が高度に値が付けられた広告クライアントの従業者であることを決定する場合、供給マネージャは、料金請求マネージャに、この特定の取り引きのために借方記入しないことを指示し得る。要求の後処理後、供給マネージャは、要求が受け取られるまでに処理を終了する。
【0093】
図15は、供給マネージャの実施Wall−Garden供給ルーチンによって行われる処理の例示のフロー図である。(図14のステップ1406を参照。)walled−garden供給では、要求されたアプリケーションは、加入者によって認可について、および加入者のデバイスによって能力について検証される。具体的には、ステップ1501において、供給マネージャは、要求されたアプリケーションに対応する加入者プロファイル、デバイスプロファイル、およびアプリケーションプロファイルを検索する。一実施形態では、これらのプロファイルは、図6のプロファイルリーダ652を呼び出すことによって検索される。ステップ1502では、供給マネージャは、要求されたアプリケーションが無線電気通信事業者によって、例えば、禁止されたAPIの包含に起因して検索されていないことを検証するためにアプリケーション検証を行う。アプリケーション検証は、図16を参照してさらに議論される。ステップ1503では、供給マネージャは、電気通信事業者請求書ポリシーまたは他の場合の要求されたアプリケーションを介して加入者が認可されるかどうか決定するために加入者検証を行う。加入者認可は、図17を参照してさらに議論される。ステップ1504では、供給マネージャは、デバイスが要求されたアプリケーションに対応するアプリケーションプロファイルによって特定化されたリソー
スおよび他の能力を有するかどうか決定するためにデバイス検証を行う。デバイス認証は、図18を参照してさらに議論される。ステップ1505では、供給マネージャは、図6を参照して記載されるように、加入者のアカウントがアプリケーションをダウンロードするために借方記入されるのに十分であることを検証するために、事前支払い請求がシステムに含まれる場合に事前支払いの請求書検証を行う。ステップ1506では、供給マネージャは、展開マネージャの供給インタフェースを呼び出し、そして、供給されたアプリケーションを戻す。
【0094】
図16は、供給マネーャのアプリケーションの検証ルーチンによって行われる処理の例示のフロー図である。(図15のステップ1502参照。)要約すれば、アプリケーションの検証ルーチンは、電気通信事業者が要求されたアプリケーションがダウンロードすること(グローバルにまたはターゲット設定して、加入者アイデンティティ、デバイスタイプ等の他の基準に基づいて、)を禁止しているかどうか決定する。ステップ1601では、ルーチンは、電気通信事業者がダウンロードされることを可能にすることを減退するアプリケーションのリストを要求および取得する。このリストは、ローカルに検索され、、例えば、図6のMAS Query Engine650を用いて、周期ベースで更新され得る。ステップ1602では、ルーチンは、アプリケーションが禁止されているかを決定するために要求されたアプリケーションに対する検索リストを検索する。これは、例えば、不当なコードを含むかまたは含むことが疑われるアプリケーションをダウンロードすることを禁止するために迅速で頑強な方法を提供する。この方法は、(各デバイスが「ウイルスチェッカー」および不当なアプリケーションデータファイルを取得する場合の分散されたアプローチに比較して)中心に基礎をおくアプローチを提供し、不当なアプリケーションの広がりを停止する。ステップ1603では、ルーチンは、要求は、禁止されたアプリケーションのためであるかを決定し、そうであれば、ステップ1605に進み、他の場合には、ステップ1604に進む。ステップ1604では、要求は、ログがとられ、ルーチンは、成功した状態で戻る。ステップ1605では、失敗した要求がログがとられ、通知が加入者に送られ、ルーチンは、失敗した状態に戻る。
【0095】
図17は、供給マネージャの加入者の検証ルーチンによって行われる処理の例示のフロー図である。(図15のステップ1503参照。)要約すれば、加入者の検証ルーチンは、プロファイルにおけるアドミニストレータコンポーネント(例えば、図5のアドミニストレータ509)によって格納およびインプリメントされるように、加入者プロファイルをコンテンツカテゴリーおよびサービスプラン規定と比較し、加入者が要求されたアプリケーションをダウンロードすることが認可されているかどうかを決定する。具体的には、ステップ1701において、ルーチンは、どの電気通信事業者から要求メッセージが受け取られたかを決定する。ステップ1702では、ルーチンは、要求を送る加入者を識別する。これは、例えば、ルーチン情報のための要求メッセージを検証することによって、達成され得る。ステップ1703では、ルーチンは、加入者プロファイル情報が電気通信事業者上に格納されている場合に決定された電気通信事業者との接続を確立し、ステップ1704では、識別された加入者のプロファイルを電気通信事業者から検索する。当業者は、加入者のプロファイルも、例えば、図5のローカルデータリポジトリ511にアクセスするために図6のプロファイルリーダ(Profile Reader)652コンポーネントを用いて、MAS上にローカルに格納され、かつ、MASから検索され得ることを認識する。ステップ1705では、ルーチンは、どのアプリケーションが要求されたかを決定するために要求を検査する。ステップ1706では、ルーチンは、加入者のプロファイルは要求されたアプリケーションをダウンロードすることを認可するかを決定する。この決定は、例えば、アプリケーションがサービスプランに関連付けられるコンテンツカテゴリーに属するかどうかを決定するために加入者が属する加入者グループのサービスプランを検証することによって達成され得る。さらに、ルーチンは、加入者プロファイルにおける一致した禁止アプリケーションの存在をチェックし得、一致が見出された場合、引き
続いて、その要求を拒絶する。ステップ1707では、要求が認可されることが決定される場合、ルーチンは、ステップ1708に進み、他の場合には、それは、ステップ1709に進む。ステップ1708では、要求は、ログがとられ、ルーチンは、成功した状態で戻る。ステップ1709では、失敗した要求がログがとられ、加入者に通知が送られ、ルーチンは、失敗した状態で戻る。
【0096】
図18は、供給マネージャのデバイスの検証ルーチンによって行われる処理の例示のフロー図である。(図15のステップ1504参照。)要約すると、デバイスの検証ルーチンは、加入者のデバイスに関連付けられるデバイスプロファイルを、要求されたアプリケーションに対するアプリケーションプロファイルと比較し、アプリケーションによって要求されたリソースが、デバイスプロファイルにしたがって利用可能であること検証する。ステップ1801では、ルーチンは、要求が検索される加入者デバイスのタイプを識別する。当業者は、この情報がプロトコル交渉において決定され、要求メッセージに格納されたルーチン情報から抽出され得るることを認識する。ステップ1802では、ルーチンは、識別されたデバイスに関連付けられる以前に格納されたデバイスプロファイルにアクセスすることによって、加入者デバイスの能力を決定する。一実施形態では、デバイスプロファイルは、図6のプロファイルリーダ652を用いて検索される。デバイスプロファイルが識別されたデバイスに対して見出されない場合、イベントがログされ、システムアドミニストレータは、それに応じて通知される。(一実施形態では、電気通信事業者は、加入者が電気通信事業者を用いて電話番号を取得するために登録するときに各加入者によって用いられる特定種のデバイスを知らされる。電気通信事業者は、好適には、すべての登録されたデバイスタイプがデバイスプロファイルでサポートされることを保証する。)デバイスプロファイルは、メモリキャパシティ、プロセッサタイプ、処理速度、ダウンロード可能なアプリケーションの最大サイズ等の加入者デバイスの能力に関する情報を含む。ステップ1803では、ルーチンは、アドミニストレータコンポーネントによって以前に作成されたように、要求されたアプリケーションに対応するアプリケーションプロファイルを検索および検証することによって要求されたアプリケーションに対する要求を決定する。アプリケーションプロファイルは、例えば、要求されたメモリの量、作製されたAPIコール、および最小のプロセッサ速度を含むアプリケーションを実行するための要求を含む。要求は、さらに、サポートされた加入者デバイスのタイプにしたがうアプリケーションプロファイルにおいて特定化され得る。ステップ1804では、デバイスの能力が、デバイスおよびアプリケーションプロファイルを比較することによって要求されたアプリケーションの要求と比較される。ステップ1805では、ルーチンは、デバイスが要求されたアプリケーションを走行することが可能であるかを決定し、そうである場合には、ステップ1806に進み、他の場合には、それは、ステップ1807に進む。ステップ1806では、要求はログされ、ルーチンは、成功した状態で戻る。ステップ1807では、失敗した要求がログされ、加入者に通知が送られ、ルーチンは、失敗した状態で戻る。
【0097】
図19は、供給マネージャのオープン供給の実施(Perform Open Provisioning)ルーチンによって行われる処理の例示のフロー図である。(図14のステップ1407参照。)ステップ1901および1902では、供給マネージャは、すでに利用可能であるか、または、キャッシュされた供給されたアプリケーションがあるかかどうかを決定することを必要とし、そうである場合には、ステップ1903に続き、他の場合には、ステップ1904に続く。このシナリオは、例えば、アプリケーション(それが信頼されていないまたは未知のソースからであったとしても)が、以前に要求および供給された場合に、発生し得る。ステップ1903では、提供されたアプリケーションが戻される。あるいは、提供されたアプリケーションが見出されない場合、ステップ1904において、ルーチンは、要求されたメッセージにおいて提供された指定されたURLを用いてアプリケーションを検索する。このアプリケーションは、MASによる前に進められ得、このため、対応するアプリケーションんプロファイルをすでに有し得る。したが
って、ステップ1905において、ルーチンは、対応するアプリケーションプロファイルが存在するかどうかを決定し、そうであれば、ステップ1907に続き、他の場合には、ステップ1906において、新しいアプリケーションプロファイルを作成し、その後、ステップ1907に続く。ステップ1906では、ルーチンは、(検索されたまたは作成された)アプリケーションプロファイルを、加入者の要求のデバイスタイプに対応するデバイスプロファイルと比較することによってデバイス検証を行う。ステップ1908では、ルーチンは、信頼されていないアプリケーションを供給するために、展開マネージャの供給インタフェースを呼び出し、ステップ1909では、供給されたアプリケーションに戻る。
【0098】
図20は、供給マネージャのアプリケーション発見の実施(Perform Application Discovery)ルーチンによって行われる処理の例示のフロー図である。(図14のステップ1409を参照。)2つの基本タイプのアプリケーション発見がある。加入者によって特定化された基準に一致するアプリケーションに対する検索および格納された加入者選好に基づくアプリケーションリストによって提供されたシステムである。具体的には、ステップ2001において、ルーチンは、ユーザは検索基準を指定したどうかを決定し、そうであれば、ステップ2002に続き、他の場合には、ステップ2004に続く。ステップ2002では、ルーチンは、アプリケーションストア(アプリケーションのデータリポジトリ)を検索し、指定された基準に一致するアプリケーション(コンテンツ)について問い合わせる。例示の基準は、カテゴリー、価格、性別、年齢等を含む。ステップ2003では、リストは、これらの問い合わせ結果に最初に設定され、ルーチンは、ステップ2007に続く。ステップ2004では、ルーチンは、利用可能なPersonal Acess List(「PAL」)があるかどうかを決定し、そうであれば、決定されたPALへのリストを最初に設定するためにステップ2005に続き、他の場合には、デフォルト値へのリストを設定するためにステップ2006に続く。ステップ2007では、MASは、スタートデッキ(startdeck)として知られるように、規定されたアプリケーションのセットを最初のリストに加える。スタートデッキは、本質的に、MASがスロットをアプリケーション発見セッションに、例えば、高収益広告者のために保存することを可能にする。ステップ2008では、ルーチンは、図17に対して議論されるように、最初のリスト上の各アプリケーションに対してVerfy Subscriberルーチンを呼び出す。ろ過ステップ2008〜2009のいずれをもパスしない任意のアプリケーションは、プロセスにおける次のステップの前にリストからフィルタリングされる。ステップ2009では、図18に対して議論されるように、最初のリスト上の各アプリケーションに対して、ルーチンは、検証 Deviceを呼び出す。ステップ2010では、ルーチンは、内部標準フォーマットに対してXMLを生成し、そして、ステップ2011では、リストのコンテンツを、加入者デバイスに対応する適切な言語に変化させる。
【0099】
図21は、加入者およびシステムアドミニストレータによる要求に応答して供給されたアプリケーションを提供するためにモバイルアプリケーションシステムの展開マネージャによって行われる処理の例示のフロー図である。(例えば、図5の展開マネージャ506参照。)システムアドミニストレータは、人気のあるデバイスに対して人気のあるアプリケーションが事前に供給され(静的に供給され)、加入者の要求に応答するのに要求される時間を最小にする目的のためにキャッシュされることを要求し得る。あるいは、すべてのアプリケーションは、動的に供給され、任意的にキャッシュされ得る。ステップ2102では、展開 マネージャは、初期化される。ステップ2102では、展開マネージャは、要求されたアプリケーションのアイデンティティを決定するために要求を評価する。ステップ2103では、展開マネージャは、図22を参照してさらに議論されるように、コンテンツの検索を制御し、供給を発生させるために供給アプリケーションの獲得(Procure Provisiond Application)ルーチンを呼び出す。ステ
ップ2104では、展開マネージャは、供給されたアプリケーションの格納を始めるためにシステムアドミニストレータによって要求がなされるかどうかを決定し、そうである場合には、ステップ2105に進み、他の場合には、ステップ2106に進む。ステップ2105では、展開マネージャは、システムアドミニストレータのポリシーに応じて、供給されたアプリケーションをキャッシュ、電気通信事業者のアプリケーションのストア、または遠隔アプリケーションホストのサーバに格納し、処理を終了する。ステップ2106では、展開マネージャは、供給されたアプリケーションを供給マネージャに送り、その後、処理を終了する。
【0100】
図22は、展開マネージャの供給アプリケーションの獲得ルーチンによって行われる処理の例示のフロー図である。(図21のステップ2105参照。)要約すると、展開マネージャは、アプリケーションコードを検索し、MASにおいてインプリメントされた現在のポリシーに従ってそれを点検、最適化、および備える(instrument)。ステップ2201では、ルーチンは、アプリケーションの事前に供給されたバージョンがMASに知られた位置に存在するかどうかを決定するためにいくつかのタイプのインデックスを相談する。この情報が格納される方法は、どのようにキャッシュおよび/またはデータリポジトリがインプリメントされるかに関連する。局所的に速いデータストアおよびインデックスを用いてキャッシュをインプリメントするための周知技術が用いられ得る。アプリケーションは、大多数の要求が同一の供給要求を引き起こすアプリケーションに対してなされることが予想される場合に、事前に供給され、かつ格納され得る。これは、例えば、同一種の加入者デバイスを有する大多数のユーザが同一のアプリケーションを要求する場合に発生し得る。このような場合には、アプリケーションは、キャッシュに供給および格納され(および要求が、アプリケーションが供給される加入者デバイスを有するユーザによってなされる場合に検索され)、または、他のMASデータリポジトリに格納され得る。ステップ2202では、事前に供給されたバージョンのアプリケーションが存在する場合に、ルーチンは、ステップ2203に進み、他の場合には、それは、ステップ2207に進む。ステップ2203では、事前に供給されたアプリケーションの位置が決定される。ステップ2204では、ルーチンは、事前に供給されたアプリケーションがローカルに格納されているか決定し、そうであれば、ステップ2295に進み、他の場合には、それは、ステップ2206に進む。ステップ2205では、ルーチンは、アプリケーションをローカルにフェッチし(典型的には、電気通信事業者のアプリケーションストアから、これは、MASまたは他の電気通信事業者のプレマス(premise)に位置付けられ得る)、そして、戻る。ステップ2206では、ルーチンは、遠隔アプリケーションホスト(例えば、第三者サーバ)からアプリケーションをフェッチし、そして、戻る。他方、ステップ2202において、ルーチンが事前に供給されたバージョンの要求されたアプリケーションが存在しないことを決定する場合、ステップ2207において、ルーチンは、未処理の、未供給のアプリケーションの位置を決定する。ステップ2208では、ルーチンは、アプリケーションコードがローカルに格納されているかを決定し、そうであれば、ステップ2209に進み、他の場合には、ステップ2210に進む。ステップ2209では、ルーチンは、電気通信事業者のアプリケーションストアまたは他のローカル格納からアプリケーションコードをフェッチする。ステップ2210では、ルーチンは、遠隔アプリケーションホストからアプリケーションコードをフェッチする。ステップ2211では、ルーチンは、図23を参照してさらに記載されるように、フェッチされたアプリケーションを供給し、そして、戻る。
【0101】
図23は、展開マネージャのアプリケーション取得(Provision Application)ルーチンによって行われる処理の例示のフロー図である。ステップ2301では、アプリケーションの取得ルーチンは、図24を参照してさらに記載されるように、アプリケーションを点検する。ステップ2302では、ルーチンは、図25を参照してさらに記載されるように、アプリケーションを最適化する。ステップ2303では、ルー
チンは、図26を参照してさらに記載されるように、アプリケーションにおけるインストルメントをインストールする。ステップ2304では、ルーチンは、図23を参照してさらに記載されるように、配信に適したフォーマットにアプリケーションをパッケージングし、そして、戻る。
【0102】
図24は、展開マネージャの検査アプリケーションルーチンによって実行された処理の例示的なフローチャートである(例えば、図23におけるステップ2301を参照)。ステップ2401では、ルーチンは、パッケージ、クラス、メソッド、およびフィールド、または適切な場合には、他の構造を含むAPIを識別するようにリクエストされる場合、アプリケーションコードの構造を分解/復号化する。このアプリケーションがJava(R)で符号化される場合、アプリケーション自体にソースコードレベルチェックを挿入する必要なしでバイナリプログラムに対して実行され、デバッグ/ログ情報を生成し得る。検査ステップのセットは、ステップ2401〜2405において例として説明されるが、当業者は、本明細書中で説明されたステップに加えて、またはこのステップの代わりの他のステップが、適切な場合に適用され得ることを理解する。ステップ2402では、ルーチンは、調査(リクエストされたアプリケーション、リクエストしている加入者、アプリケーションのコンテンツプロバイダ、およびグローバルフィルタ)の下で潜在的なターゲットに関連する任意のアプリケーションフィルタを検索する。一実施形態では、これらのフィルタは、MASデータレポジトリに格納されるが、これらは、任意の公知の場所に格納され得る。ステップ2403では、ルーチンは、分解されたコードと禁止されたデータ構造および検索されたアプリケーションフィルタによって説明されたようなAPIの格納された指標とを比較することによって、不当および禁止されたコードのための検索されたアプリケーションを検査する。ステップ2404では、ルーチンは、API呼び出しの数、タイプ、およびAPIの周波数を決定し、これらのAPIがシステムアドミニストレータのリクエストを満たすかどうかをチェックする。これらのリクエストはアプリケーションフィルタに格納され得る。ステップ2405では、ルーチンは、分解されたアプリケーションのフロー解析を実行し、始動されたスレッドの数がシステムアドミニストレータのリクエストの範囲内にあるかどうかを決定する。このフロー解析は、コードの指向性のグラフを生成する等の技術を用い、周知のグラフ解析アルゴリズムを適用して達成され得る。当業者は、他のチェックはまた、検索されたアプリケーション上で実行され得ることを理解する。ステップ2406では、このルーチンは、検索されたアプリケーションが検査に合格したかどうかを決定する。この場合には成功状態に戻り、そうでなければ、ルーチンは故障条件にフラグを立て故障状態に戻る。
【0103】
図25は、展開マネージャの最適アプリケーションルーチンによって実行された処理の例示的なフローチャートである(例えば、図23におけるステップ2302を参照)。当業者は、任意の公知のコード最適化技術がこのルーチンに組み込まれ得、示されたものが例示的であることを理解する。ステップ2501では、ルーチンは、リクエストされたアプリケーションのファイルサイズを短くする目的のために、検索されたアプリケーションに含まれた変数名を短くする。ステップ2502では、このルーチンは検索されたアプリケーションの実行可能なパスをマッピングする。ステップ2503では、ルーチンは、ファイル長さを短くする目的のために任意の未使用のコードを除去し、同様の最適化ステップを続ける。最適化が終了すると、ルーチンは戻る。
【0104】
図26は、展開マネージャのインストール測定ルーチンによって実行された処理の例示的なフローチャートである。(例えば、図23におけるステップ2303を参照)ステップ2601では、ルーチンは、例えば、典型的には図6におけるプロファイルリーダー652を用いて、ローカルデータレポジトリからの識別された加入者のプロファイルを検索する。ステップ2602では、リクエストされたアプリケーションを使用する場合、識別された加入者のための電気通信事業者のポリシーを決定する。例えば、所定の加入者は、
加入者ベースまたは試験ベース上でアプリケーションを使用することが許可され得るが、他の加入者は許可され得ない。図7を参照して上記で説明したように、測定は所定のポリシーをインプリメントする。例えば、その測定は、供給されたコードが制限された回数または所与の期間の間に遅れることなく実行されることを可能にするコードラッパーを供給し得る。ステップ2603では、ルーチンが戻る後で決定された電気通信事業者のポリシーに従ってリクエストされたアプリケーションにその測定をインストールする。例示的な実施形態では、インストール測定ルーチンは、新しいコードを挿入するか、またはバイナリレベルでアプリケーション内の既存のコードを変更するバイトコード測定技術を使用する。測定されるコードは、インストール測定ルーチンによって直接供給されてもよいし、例えば異なる電気通信事業者ポリシーに関連付けられたデータストレージ等の他のデータストレージから検索されてもよい。
【0105】
図27は、展開マネージャのパッケージアプリケーションルーチンによって実行された処理の例示的なフローチャートである(例えば、図23におけるステップ2304を参照)。ステップ2701では、ルーチンは、識別された加入者デバイスのための互換性ファイルフォーマットを決定するために検索された加入者デバイスプロファイルにアクセスする。ステップ2702では、ルーチンは、加入者デバイスが圧縮されたファイルルーチンを読み出すことが可能であるかどうかを決定する。その場合、ステップ2703に進み、他の場合、ステップ2704に進む。ステップ2703では、ルーチンは、転送時間および転送されるべきバイトの数を最小化する目的のために供給されたアプリケーションを圧縮する。ステップ2704では、ルーチンは、アプリケーションを抽出するための無線デバイス上で実行するハンドセット管理コンソール(例えば、図2のハンドセット管理コンソールを参照)を可能にするのに十分な情報を用いて供給されたアプリケーションをカプセル化することによって、決定されたファイルフォーマットを用いてパッケージングする。上述したように、多くのJava(R)使用可能デバイスによって好まれた1つのフォーマットは、JARファイルに圧縮される。しかし、いくつかの場合、アプリケーションは、より小さなパケットでデバイスに分散されることが必要である。これらのパケットは、インストールのために無線デバイス上で再び集められる。図28を参照して以下に説明されたように料金請求マネージャはまた、目的を料金請求およびルーティングするための情報をカプセル化することに依存する。アプリケーションがパッケージングされた後、ルーチンが戻る。
【0106】
図28は、モバイルアプリケーションシステムの料金請求マネージャによって実行された処理の例示的なフローチャートである(例えば、図5における料金請求マネージャ507を参照)。ステップ2801では、料金請求マネージャが初期化される。ステップ2802では、料金請求マネージャは、料金請求レポートを生成する時間であるかどうかを決定し、その場合、ステップ2803に進む。他の場合は、ステップ2804に進む。代替的実施形態では、料金請求マネージャは、例えば、管理コンポーネントからの管理クエリに応答して、料金請求レポートを生成し得る。ステップ2803では、料金請求マネージャは、システムアドミニストレータによって設定されたパラメータに基づいて料金請求レポートを生成する。ステップ2804では、料金請求マネージャは、供給情報を記録するリクエストが存在するかどうかを決定し(料金請求目的のために)、その場合、ステップ2805に進み、他の場合には戻る。ステップ2805では、料金請求マネージャは、料金請求に関係するリクエストのパラメータ(例えば、リクエストを行うユーザのアイデンティティ、リクエストのカテゴリ、リクエストされたダウンロードのサイズ等)および未来の料金請求のために使用されるシステム変数(例えば、日付、日時等)を記録する。例えば、アプリケーションの長さ、アプリケーションがリクエストされた時間、アプリケーションを処理するために必要な時間、および料金請求レポートを生成する場合に使用され得るアプリケーションの数である。さらに、予め支払われた料金請求が支援される場合、料金請求マネージャは、加入者の予め支払われたアカウントを適切に減少させるために電
気通信事業者にアカウントリクエストを生成させ得る。料金請求レポートが生成され、適切なパラメータが記録された後に、料金請求マネージャは戻る。
【0107】
上述から、本発明の特定の実施形態が例示の目的のために本明細書中で説明されてきたが、種々の改変が本発明の趣旨および範囲を逸脱することなくなされ得ることが理解される。例えば、当業者は、本明細書中で説明された方法およびシステムは、任意のネットワーク(有線または無線、あるいは複数のこのようなネットワーク)を介してアプリケーションを供給するために利用可能であることを理解する。当業者は、本明細書中で説明された方法およびシステムは、異なるプロトコル、通信メディア(光、ワイヤレス、ケーブル等)、および加入者デバイス(無線ハンドセット、電気オーガナイザ、携帯情報端末、携帯型電子メール装置、ゲーム装置、ポケットベル、GPS受信器等のナビゲーション装置等)に利用可能である。さらに、当業者は、この特定の要求または条件を満たすように説明された方法およびシステムへの変更および改変を行う方法を理解する。
【図面の簡単な説明】
【0108】
【図1】図1は、無線サービスの加入者がモバイルアプリケーションシステムからソフトウェアアプリケーションをリクエストおよびダウンロードする態様を図示する例示的ブロック図である。
【図2】図2は、モバイルアプリケーションシステムと共に動作するHandset Administration Consoleの例示的ブロック図である。
【図3】図3は、無線加入者デバイスにアプリケーションを提供するために、例示的モバイルアプリケーションシステムによって実行される一般的工程の例示の概観的フローチャートである。
【図4】図4は、無線加入者デバイスのためにアプリケーションディスカバリを実行するための例示的モバイルアプリケーションシステムによって実行される工程の例示の概観的フローチャートである。
【図5】図5は、モバイルアプリケーションシステムの例示的実施形態のコンポーネントの概観的ブロック図である。
【図6】図6は、モバイルアプリケーションシステムの例示的プロビジョニングマネージャのコンポーネントの例示的ブロック図である。
【図7】図7は、モバイルアプリケーションシステムの展開マネージャのコンポーネントの例示的ブロック図である。
【図8】図8は、モバイルアプリケーションシステムのアドミニストレータコンポーネントの例示的ブロック図である。
【図9A】図9Aは、Content Provider Websiteのアプリケーション送信画面の例示的画面ディスプレイである。
【図9B】図9Bは、Content Provider Websiteのさらなる情報送信画面の例示的画面ディスプレイである。
【図9C】図9Cは、Content Provider Websiteのさらなる情報送信画面の例示的画面ディスプレイである。
【図10A】図10Aは、Administration Websiteのカテゴリー保守画面の例示的画面ディスプレイである。
【図10B】図10Bは、Administration Websiteの保留アプリケーション保守画面の例示的画面ディスプレイである。
【図10C】図10Cは、Administration Websiteの保留アプリケーションの部分の例示的画面ディスプレイである。
【図10D】図10Dは、Administration Websiteの保留アプリケーションの部分の例示的画面ディスプレイである。
【図10E】図10Eは、Administration Websiteの保留アプリケーションの部分の例示的画面ディスプレイである。
【図10F】図10Fは、Administration Websiteのアプリケーションフィルタ管理インターフェースの部分の例示的画面ディスプレイである。
【図10G】図10Gは、Administration Websiteのアプリケーションフィルタ管理インターフェースの部分の例示的画面ディスプレイである。
【図10H】図10Hは、Java(登録商標)プロファイル、デバイスプロファイル、コンテンツプロバイダ、またはすべての利用可能な対象の1つである選択された対象を変更するための例示的画面ディスプレイを示す。
【図10J】図10Jは、Administration Websiteのアプリケーションフィルタ管理インターフェースの部分の例示的画面ディスプレイである。
【図10K】図10Kは、Administration Websiteの料金請求方法管理インターフェースの例示的画面ディスプレイである。
【図10M】図10Mは、Administration Website内の加入者管理画面の例示的画面ディスプレイである。
【図10N】図10Nは、Administration Website内の加入者管理画面の例示的画面ディスプレイである。
【図10P】図10Pは、Administration Website内の加入者管理画面の例示的画面ディスプレイである。
【図10Q】図10Qは、Administration Websiteのメッセージインターフェースの例示的画面ディスプレイである。
【図10R】図10Rは、Administration Websiteのレポート画面の例示的画面ディスプレイである。
【図10S】図10Sは、Administration Website内のデバイス保守画面の例示的画面ディスプレイである。
【図10T】図10Tは、Administration Website内のデバイス保守画面の例示的画面ディスプレイである。
【図11A】図11Aは、Personalization Websiteの最初の画面ディスプレイである。
【図11B】図11Bは、Personalization Websiteを用いるサービス計画を管理するための例示的画面ディスプレイである。
【図11C】図11Cは、Personalization Websiteを用いるサービス計画を管理するための例示的画面ディスプレイである。
【図11D】図11Dは、Personalization Websiteを用いるサービス計画を管理するための例示的画面ディスプレイである。
【図11E】図11Eは、加入者のPersonal Access Listにアプリケーションを追加するための例示的画面ディスプレイである。
【図11F】図11Fは、加入者のPersonal Access Listにアプリケーションを追加するための例示的画面ディスプレイである。
【図11G】図11Gは、加入者のPersonal Access Listにアプリケーションを追加するための例示的画面ディスプレイである。
【図11H】図11Hは、加入者のPersonal Access Listにアプリケーションを追加するための例示的画面ディスプレイである。
【図11J】図11Jは、加入者のPersonal Access Listからアプリケーションを除去するための例示的画面ディスプレイである。
【図11K】図11Kは、加入者のPersonal Access List上のアプリケーションの順序を整理するための例示的画面ディスプレイである。
【図11L】図11Lは、加入者のPersonal Access List上のアプリケーションの順序を整理するための例示的画面ディスプレイである。
【図12】図12は、モバイルアプリケーションシステムの実施形態を実行するための汎用コンピュータシステムおよび加入者デバイスの例示的ブロック図である。
【図13】図13は、種々の加入者デバイスと通信するためのモバイルアプリケーションシステムのプロトコルマネージャによって実行される処理の例示的フローチャートである。
【図14】図14は、リクエストされたアプリケーションの適正を判定するためのモバイルアプリケーションシステムのプロビジョニングマネージャによって実行される処理の例示的フローチャートである。
【図15】図15は、プロビジョニングマネージャのPerform Walled−Garden Provisioningルーチンによって実行される処理の例示的フローチャートである。
【図16】図16は、プロビジョニングマネージャのVerify Applicationルーチンによって実行される処理の例示的フローチャートである。
【図17】図17は、プロビジョニングマネージャのVerify Subscriberルーチンによって実行される処理の例示的フローチャートである。
【図18】図18は、プロビジョニングマネージャのVerify Deviceルーチンによって実行される処理の例示的フローチャートである。
【図19】図19は、プロビジョニングマネージャのPerform Open Provisioningルーチンによって実行される処理の例示的フローチャートである。
【図20】図20は、プロビジョニングマネージャのPerform Application Discoveryルーチンによって実行される処理の例示的フローチャートである。
【図21】図21は、供給されたアプリケーションを提供するためのモバイルアプリケーションシステムの展開マネージャによって実行される処理の例示的フローチャートである。
【図22】図22は、展開マネージャのProcure Provisioned Applicationルーチンによって実行される処理の例示的フローチャートである。
【図23】図23は、展開マネージャのProvision Applicationルーチンによって実行される処理の例示的フローチャートである。
【図24】図24は、展開マネージャのInspect Applicationルーチンによって実行される処理の例示的フローチャートである。
【図25】図25は、展開マネージャのOptimize Applicationルーチンによって実行される処理の例示的フローチャートである。
【図26】図26は、展開マネージャのInstall Instrumentationルーチンによって実行される処理の例示的フローチャートである。
【図27】図27は、展開マネージャのPackage Applicationルーチンによって実行される処理の例示的フローチャートである。
【図28】図28は、モバイルアプリケーションシステムの料金請求によって実行される処理の例示的フローチャートである。

【特許請求の範囲】
【請求項1】
コンピュータベースの環境においてターゲット無線デバイス上で展開されるべきコンテンツを作成するための方法であって、本願明細書に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図9C】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図10C】
image rotate

【図10D】
image rotate

【図10E】
image rotate

【図10F】
image rotate

【図10G】
image rotate

【図10H】
image rotate

【図10J】
image rotate

【図10K】
image rotate

【図10M】
image rotate

【図10N】
image rotate

【図10P】
image rotate

【図10Q】
image rotate

【図10R】
image rotate

【図10S】
image rotate

【図10T】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図11C】
image rotate

【図11D】
image rotate

【図11E】
image rotate

【図11F】
image rotate

【図11G】
image rotate

【図11H】
image rotate

【図11J】
image rotate

【図11K】
image rotate

【図11L】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate


【公開番号】特開2009−37598(P2009−37598A)
【公開日】平成21年2月19日(2009.2.19)
【国際特許分類】
【出願番号】特願2008−154728(P2008−154728)
【出願日】平成20年6月12日(2008.6.12)
【分割の表示】特願2007−26167(P2007−26167)の分割
【原出願日】平成13年11月28日(2001.11.28)
【出願人】(503191508)フォースパス インコーポレイテッド (3)
【Fターム(参考)】