JP4139228B2 - アプリケーションの通信に基づく請求方法およびシステム - Google Patents

アプリケーションの通信に基づく請求方法およびシステム Download PDF

Info

Publication number
JP4139228B2
JP4139228B2 JP2002582554A JP2002582554A JP4139228B2 JP 4139228 B2 JP4139228 B2 JP 4139228B2 JP 2002582554 A JP2002582554 A JP 2002582554A JP 2002582554 A JP2002582554 A JP 2002582554A JP 4139228 B2 JP4139228 B2 JP 4139228B2
Authority
JP
Japan
Prior art keywords
billing
application
data
content
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002582554A
Other languages
English (en)
Other versions
JP2005509322A (ja
Inventor
サミール ナレンドラ メータ,
マジン ラマダン,
ゴーチャン ティー. ユーイェン,
マーカス エル. ジャンセン,
Original Assignee
フォースパス インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フォースパス インコーポレイテッド filed Critical フォースパス インコーポレイテッド
Publication of JP2005509322A publication Critical patent/JP2005509322A/ja
Application granted granted Critical
Publication of JP4139228B2 publication Critical patent/JP4139228B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/04Billing or invoicing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1403Architecture for metering, charging or billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/41Billing record details, i.e. parameters, identifiers, structure of call data record [CDR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/43Billing software details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/48Secure or trusted billing, e.g. trusted elements or encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/51Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP for resellers, retailers or service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/68Payment of value-added services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/70Administration or customization aspects; Counter-checking correct charges
    • H04M15/73Validating charges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/24Accounting or billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0156Secure and trusted billing, e.g. trusted elements, encryption, digital signature, codes or double check mechanisms to secure billing calculation and information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0164Billing record, e.g. Call Data Record [CDR], Toll Ticket[TT], Automatic Message Accounting [AMA], Call Line Identifier [CLI], details, i.e. parameters, identifiers, structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0196Payment of value-added services, mainly when their charges are added on the telephone bill, e.g. payment of non-telecom services, e-commerce, on-line banking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/20Technology dependant metering
    • H04M2215/2026Wireless network, e.g. GSM, PCS, TACS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/22Bandwidth or usage-sensitve billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/32Involving wireless systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/54Resellers-retail or service providers billing, e.g. agreements with telephone service operator, activation, charging/recharging of accounts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/70Administration aspects, modify settings or limits or counter-check correct charges
    • H04M2215/7072Validate charges

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)
  • Meter Arrangements (AREA)

Description

(発明の背景)
(発明の分野)
本発明は、送信に基づく請求のための方法およびシステムに関し、より詳細には、ネットワークを介して送信されたデータに基づいて無線および有線アプリケーションの使用を請求するための方法およびシステムに関する。
(背景情報)
今日では、無線デバイスは、世界の多くの共同体で実を結ぶようになってきている。無線電話、ハンドセット、パーソナル情報マネージャ、電子オーガナイザ、携帯情報端末、ポータブル電子メールマシン、ゲームマシン、および他のデバイス等のデバイスが、われわれの生活に便宜を与えるために、電話キャリアの加入者によって使用される。しかし、このようなデバイス上で使用されたソフトウエア、ならびにこのようなソフトウエアの使用のためにこれらのデバイスに展開および請求するためのメカニズムは難解である。典型的には、アプリケーションまたは他のサービスが無線デバイスにロードされる(一度に、一律料金で)場合、アプリケーションまたは他のサービスは、加入者ベース(アプリケーションおよびサービスのセットの全体の使用に対する手数料、あるいは全体の回線使用時間(airtime))で請求される。より最近の第三世代であるGPR等の無線ネットワークでは、キャリアは、デバイスによって使用された物理パケットの全体の数またはデバイスによって使用されたデータの量を識別することが可能である。従って、典型的なネットワークキャリアに対する請求モデルは、一律料金または加入者ベースの請求を反映し、アプリケーションおよびサービスの使用を必ずしも正確に反映しない。例えば、デバイス上で動作する間に、ネットワークにアクセスする無線アプリケーション(例えば、カレンダ、ブラウザ、または電子メールクライアント)は、典型的には、ネットワークにアクセスしないアプリケーションとは異なるキャリアリソース(例えば計算器またはテキストエディタ)を利用する。キャリアまたはコンテンツプロバイダは、特定のアプリケーションが消費するキャリアリソースの量に対して正確に料金請求することが利用できない。なぜなら、無線キャリアレベルにおいて提供された現在の請求システムは、ダウンロード時を除いてアプリケーションレベルに対して異なった請求を提供することができないからである。
(発明の簡単な要旨)
本発明の実施形態は、送信に基づく請求のためのコンピュータおよびネットワークに基づく方法およびシステムを提供する。この方法およびシステムは、アプリケーション間に送信されたデータの量またはコンテンツの他のタイプのコンテンツ、ならびにネットワークに基づいた請求情報のトラッキングを提供する。例示的な実施形態は、パケットベースの請求システム(Packet−Based Billing System(「PBBS」))を提供し、このシステムは、キャリアおよびサードパーティコンテンツプロバイダ等のアプリケーションプロバイダが無線デバイス等のモバイル加入者デバイス、アプリケーション毎、利用の程度に基づいたユーザ毎のベースでアプリケーション/サービス(一般的には「コンテンツ」)の使用に対してクライアントまたは加入者(一般的には「ユーザ」)に請求することを可能にする。本発明の実施形態はまた、同じ技術を用いて、有線加入者デバイスに対するアプリケーション毎、ユーザ毎を基本として加入者に請求するために使用され得る。
PBBSは、請求トラッキングコードおよび関連する通信サポート(概して本明細書中では、まとめて「請求トラッキングコード」と呼ぶ)を決定かつ提供し、アプリケーション、ならびにサービスプロバイダまたは他のコンテンツプロバイダ(典型的にはキャリア)が、ネットワークを介してアプリケーションまたはサービスによって転送かつ/または受信されたデータの量に基づいて、構成可能な論理パケットレベルに関する請求情報を自動的にトラッキングすることを可能にする。無線デバイスおよび無線ネットワークの場合では、この請求データは、従来の「全体の回線使用時間」使用モデルの代わりにアプリケーション毎を基本としてネットワークの利用をトラッキングする。トラッキングされたデータは、特定のユーザに関連付けられることにより、アプリケーションまたはサービスプロバイダが、ユーザ毎、実際の使用量に基づいたアプリケーション毎を基本として請求することを可能にする。一実施形態では、トラッキングかつ転送された請求データは、ネットワークを介して転送/受信されたデータ量、タイムスタンプ、アプリケーション識別子、セキュリティキー、トランザクション識別子、および再試行期限インジケータを含む。他の実施形態では、請求データは、これらのデータのサブセットを含んでもよいし、異なるまたはさらなるデータを含んでもよい。アプリケーション/サービスプロバイダは、経時的に変化し得る、アプリケーションまたはユーザレベルにおける種々の請求ポリシーを連続的にインプリメントし得る。
一実施形態では、PBBSは、クライアントデバイス上に請求データをトラッキングかつ蓄積し、プロキシサーバまたは請求サーバ等のサーバにデータを転送するために、コンテンツへのパケットベースの請求トラッキングコードを具備する。Java(R)アプリケーション、.NETアプリケーションおよび他のバイナリアプリケーション等のあるコンテンツに対して、計装がバイトコードレベルで達成される。1つのこのような実施形態では、計装は、データ構造、呼び出しシーケンス、任意のネットワーク呼び出しの位置および識別を決定するためのコンテンツを解析し、請求およびトラッキングコードを含むプロキシネットワーク呼び出しによってこれらの呼び出しを置換するコンテンツ(コード)モディファイアによって実行される。
別の実施形態では、請求トラッキングコードは、書き込まれた仕様に従ってコンテンツを修正することによってコンテンツに組み込まれる。さらに別の実施形態では、請求トラッキングコードは、アプリケーションプログラミングインターフェースライブラリへの呼び出しを介してコンテンツに組み込まれる。さらに別の実施形態では、請求トラッキングコードは、クライアントデバイス上のネットワークドライバソフトウエアに置かれ、プロキシ/請求サーバと直接インターフェースを取る。
さらに別の実施形態では、セキュリティキーは、請求データがクライアントデバイスから転送される場合、請求トラッキングコードがプロキシサーバに対してコード自体を識別することを可能にするために挿入される。1つのこのような実施形態では、各セキュリティキーは、コンテンツ/ユーザの組み合わせに一意的に関連付けられた数であり、不正支出および虚偽請求データを避けるために安全なデータレポジトリに格納される。別の実施形態では、セキュリティキーは、固有のランダムナンバーである。
一実施形態では、PBBSは、コンテンツ(コード)モディファイア、請求トラッキングコードを含む異なるプロキシネットワーク呼び出しに対するネットワーク呼び出しの関係を含む。すなわち、1つ以上のデータレポジトリ、請求データのためのビジネス規則、生の請求データ、およびセキュリティキー、プロキシサーバ、請求サーバ、およびアカウンティングプログラムである。本実施形態に従って、PBBS機能は、アプリケーション取得システムにおいて異なるプログラムに統合され、異なるコンポーネントを介して分散され得る。次いで、これらのコンポーネントは、請求トラッキングコードを決定し、このコードをコンテンツに挿入するように相互作用し、請求トラッキングコードからデータを受信し、そして請求レコードを生成するために示された請求ポリシーと共にトラッキングされたデータを処理する。一実施形態では、請求トラッキングコードは、アプリケーションに対するクライアントデバイスからのリクエストに応答して挿入され、修正されたアプリケーションは自動的に返信される。次いでこの請求データは、修正されたアプリケーションがクライアントデバイス上で実施される場合に転送される。別の実施形態では、請求データは、ストリーミングオーディオおよびビデオ等のストリーミングコンテンツに対するクライアントデバイスからのリクエストに応答して直接生成される。なぜなら、リクエストは、特定のバイト数またはデータの量のためにあるためである。これらの実施形態の1つでは、アプリケーション取得システムは、有線デバイスにアプリケーションを提供する。別の実施形態では、アプリケーション提供システムは、有線デバイスのためのアプリケーションを提供する。
別の実施形態では、送信に基づくデータは、アプリケーションから他のサーバにネットワークパケットをルーティングするために使用される(ネットワークトラフィック)。本実施形態に従って、送信に基づく(請求)データは、アプリケーションが消費しているリソースの程度を決定することにより、プロキシサーバがより大きい効率性を生成し、例えば、著しく使用されたかまたは人気のあるアプリケーション、あるいはいくつかの他の基準に基づくアプリケーションに対するより良好な応答時間を提供/保証するようにネットワークトラフィックに指示し得ることを決定するために使用される。
(発明の詳細な説明)
本発明の実施形態は、送信に基づく請求のためのコンピュータおよびネットワークに基づく方法およびシステムを提供する。この方法およびシステムは、アプリケーション間に送信されたデータの量またはコンテンツの他のタイプ、ならびにネットワークに基づいた請求情報のトラッキングを提供する。例示的な実施形態は、パケットベースの請求システム(「PBBS」)を提供し、このシステムは、キャリアおよびサードパーティコンテンツプロバイダ等のアプリケーションプロバイダが、利用の程度に基づいたアプリケーション毎、ユーザ毎を基本として無線デバイス等のモバイル加入者デバイス上のアプリケーション/サービス(一般的には「コンテンツ」)の使用に対してクライアントまたは加入者(一般的には「ユーザ」)に請求することを可能にする。本発明の実施形態はまた、同様な技術を用いて、有線加入者デバイスに対してもアプリケーション毎、ユーザ毎を基本として加入者に請求するために使用され得る。本説明は、主にアプリケーションを参照するが、当業者は、本明細書中で説明された本方法およびシステムが、ネットワークを介してパケットレベル(サービスおよびリソース等)で送信され得る任意の他のタイプのコンテンツに適用可能であり、これらがクライアントデバイス上で「実行される」場合、請求データをサーバに通信することが可能であることを理解する。例えば、オーディオまたはビデオ等を再生するためのエンジンはこれらの方法に従って送信に基づく請求に対して修正され得る。さらに、本明細書中で説明された方法およびシステムは、ストリーミングされ得る、テキスト、ビデオ、オーディオ、グラフィックス等のコンテンツに拡張可能である。
PBBSは、請求トラッキングコードおよび関連する通信サポート(本明細書中では、まとめて「請求トラッキングコード」と呼ぶ)を動的に提供し、アプリケーション、ならびにサービスプロバイダまたは他のコンテンツプロバイダ(典型的にはキャリア)が、ネットワークを介してアプリケーションまたはサービスによって送信かつ/または受信されたデータの量に基づいて構成可能な論理パケットレベルに関する請求情報を自動的にトラッキングすることを可能にする。トラッキングされたデータは、特定のユーザに関連付けられることにより、コンテンツプロバイダが、実際の使用量に基づいたユーザ毎、アプリケーション毎を基本として請求することを可能になる。コンテンツプロバイダ(本明細書中では、概して任意のタイプのコンテンツプロバイダを指すように使用される)は、以後、アプリケーションまたはユーザレベルにおける種々の請求ポリシーをインプリメントし得る。この請求ポリシーは経時的に変更され得る。例えば、アプリケーションプロバイダは、例えば、加入者によって頻繁に使用される場合、特定の加入者に対するこれらのアプリケーションによって受信/転送されたパケットの量によって測定されるために、人気のあるアプリケーションに対するより低い料金を望み得る。別の例のとしては、通常料金と比較してその特定のアプリケーションに対して送信量当たりほとんど課金されないために、サービスプロバイダは、新しいアプリケーションに対する促進をインプリメントすることを望み得る。
図1は、例示的な送信に基づく請求システムの概略的ブロック図である。図1では、パケットベースの請求システム100は、いくつかのコンポーネントを含む。すなわち、請求トラッキングコードを含むようにリクエストされたコンテンツを修正するためのコンテンツ(コード)モディファイア103、送信および請求トラッキングコードを格納するための構成データレポジトリ105、ターゲット(クライアント)デバイスにダウンロードされるコンテンツから請求データを受信かつ収集するためのプロキシサーバおよび/または請求サーバ104、請求情報を収集するための収集された請求データ、ならびに請求データおよびビジネス規則を格納する他の請求データレポジトリ106、そして収集された請求データを読み出し、カスタマ請求レコード108を発生させるアカウンティングプログラム107である。以下のさらなる詳細において説明されるように、PBBSコンポーネントは、典型的には、ターゲットデバイスにコンテンツを提供するシステムに統合される。動作において、パーソナルコンピュータ101または無線ハンドセット102等のクライアントデバイスは、コンテンツを提供するシステムから、アプリケーション等のコンテンツをリクエストする。コンテンツは、無線ネットワークを介して無線デバイス(ハンドセット102等)に接続されるシステムからリクエストされ得るか、または接続されるシステムから有線ネットワークを介して、有線デバイス(パーソナルコンピュータ101等)に接続されるシステムからリクエストされ得る。コンテンツをリクエストするプロセスの一部に対して、システムが、リクエストされたコンテンツを決定および取り出した後、コンテンツモディファイア103は、コンテンツを解析し、どのタイプの請求トラッキングコードがリクエストされたコンテンツに挿入される必要があるかを決定し、それに従って、コンテンツをユーザが気付くことなく修正するために構成データレポジトリ105を調べる。次いでこの修正されたコンテンツは、ダウンロードするためにクライアントデバイス101/102に戻される。以後の時間において、ダウンロードされた修正されたコンテンツがクライアントデバイス101/102上で実行された場合、請求トラッキングコードが、請求データを収集し、これをプロキシ/請求サーバ104に転送するように自動的に実行される。請求サーバ104は、ビジネス規則に従って、受信された請求データを収集し、これを請求データレポジトリ106に格納する。次いでアカウンティングプログラム107は、カスタマ請求レコード108を生成するように、収集された請求データを取り出し得る。典型的には、アカウンティングプログラムは、無線ネットワーク環境におけるキャリア等、請求に対して責任があるサービスの必要性に適応するように特別に設計される。
例示的な請求データは、転送および/または受信されたバイト数、タイムスタンプ、アプリケーション識別子、ユーザ識別子(請求データが無線ネットワークを介して転送される場合、キャリアインフラストラクチャによって自動的に転送された)、セキュリティキー、トランザクション識別子、および再試行終了インジケータを含む。トランザクション識別子は、典型的には、個々の/異なる請求トラッキング「イベント」を識別するために使用される。クライアントデバイスは、転送動作が失敗することを認識する場合、この再試行終了インジケータは、どれくらい長くクライアントデバイスが同じ請求データの再転送を継続すべきであるかどうかを示す。同様に、プロキシ/請求サーバは、重複受信転送を検出するためにどれくらい長くトランザクション識別子が有効であるかを決定するために再試行終了インジケータを使用する。
一実施形態では、FBBSコンテンツモディファイア(例えば、図1のコンテンツ(コード)モディファイア103)は、本発明の技術を達成するためにリクエストされたコンテンツにパケットベースの請求トラッキングコードを具備させる。本明細書中で使用する場合、計装は、さらなるコードを含むようにコンテンツ(例えばアプリケーション)を修正するための割り込みのない(non−intrusive)手段であり、この場合、請求トラッキングおよび送信コードである。一実施形態では、コンテンツに常駐しているネットワーク呼び出しがPBBSコードモディファイアによって検出され、送信に基づく請求専用の請求トラッキングコードによって置換されることにより、この請求トラッキングコードは、パケットベースの請求データを計算かつ収集し、元の特殊なネットワーク呼び出しを呼び出す。この意味において、計装は、ネットワーク呼び出しを遮断するための方法として、ネットワーク呼び出しの前後において「フック」として使用される。異なる環境において異なるコンテンツが種々のネットワーク呼び出しを使用し、異なるプロバイダが異なる請求ポリシーを有するために、PBBSコードモディファイアは、どの置換ネットワーク呼び出しがコンテンツを具備するかどうかを決定するために、構成データレポジトリ(図1における構成データレポジトリ105等)を使用する。この置換呼び出しは、ターゲットデバイス上の一時的なストレージに収集された請求データをローカルに格納し得、次いで、コンテンツが実行を終了する場合(例えば、アプリケーションが終了する場合)、収集されたデータを転送する。あるいは、収集されたデータは、各ネットワーク呼び出し応じて転送され得る。さらに、デバイス上のサイクリングパワー(cycling power)の後に転送され得るように、収集されたデータは、クライアントデバイス上の永久ストレージに格納され得る。当業者は、データが転送される場合の異なるシナリオが可能であり、これらの技術と共に作用することが企図されることを理解する。
図2は、パケットベースの請求システムのコンテンツ(コード)モディファイアによって実行されたような請求トラッキングコードを用いて具備されたコンテンツの例示的なブロック図である。例えば、アプリケーション210等のコードは、解析および具備のためにコード識別子201に転送される。アプリケーション210内部のルーチンの呼び出し順序が概略的に示される(呼び出し順序解析を受けた後)。示された順序に従って、「startup()」ルーチン211が呼び出され、次にネットワーク呼び出し212が続き、次にアプリケーションクリーンアップのための「end()」ルーチン213が続き、次に、アプリケーション実行を終了させる終了呼び出し214が続く。コンテンツモディファイア201は、構成データレポジトリ202においてネットワーク呼び出しを参照し、送信に基づく請求およびトラッキングをインプリメントするためのコードを含む対応するネットワーク呼び出し222を決定かつ取り出す。対応するネットワーク呼び出し222は、元のネットワーク呼び出し212を呼び出すためにインプリメントされ、それにより、元のネットワーク呼び出し212に対する「フック」を提供する。このコンテンツモディファイア201はまた、どのようにして周波数請求情報が転送されるか等の請求に対する構成パラメータ(例えば、データの特定の時間または量が送信された後)、および請求データが転送されるべきプロキシサーバのネットワークアドレスを決定するために、構成データレポジトリ202を調べる。次いでコンテンツモディファイア201は、決定された構成パラメータによって示されたように、取り出されたネットワーク呼び出し222および請求データを転送するためのコードを用いてアプリケーションに具備させる。例示的に修正されたアプリケーション220の概略図は、計装が実行された後、呼び出し順序によって示される。修正されたアプリケーション220では、「startup()」ルーチン211が呼び出され、次に具備されたネットワーク呼び出し222(元のネットワーク呼び出し212の後に続く)に続き、「end()」ルーチン213が続く。コンテンツモディファイアはまた、所定の構成パラメータに従って請求データをプロキシ/請求サーバに転送するためにコード223を具備させる。この転送コード223は、「end()」ルーチン213と終了呼び出し214との間の順序で示される。アプリケーションの終了時に請求データを転送するコードを有することによって、請求データがより以前に転送されたとしても、任意の以前に失敗した転送の再試行転送を試みる。一実施形態では、最後の転送呼び出し223が失敗する場合、請求データは、単に失敗して無視されるだけである。他の実施形態は、アプリケーションが再度実行される場合、請求データおよび再試行転送をより永久的に格納するように選択し得る。この再試行終了インジケータは、冗長請求イベントを妨げるように使用され得る。特に、クライアントデバイスは、タイムスタンプに基づいて、再試行期間が終了されるか、または転送コードが同じ請求データを再転送するように試みるべきかどうかを決定する。当業者は、多くのこのような修正が可能であることを理解する。具備された請求トラッキングコードに加えて、いくつかの実施形態では、コンテンツモディファイア201が、一旦ダウンロードされた場合、アプリケーションに対する請求データは、偽造請求データを転送することによって着服されることができないことを確実にするために、セキュリティキー230を修正されたアプリケーションに追加する。
他の実施形態では、添付物Eに詳細に説明されたように、請求トラッキングコードは、割り込みおよび非割り込み手段を含む他の手段によってコンテンツに組み込まれる。例えば、パケットベースの請求トラッキングコードに対する仕様は、このようなトラックング等を明示的に含むようにそれらのコンテンツを修正し得る他のプロバイダに提供され得る。第2の例では、アプリケーションプログラミングインターフェース(「API」)は、パケットベースの請求トラッキングおよび通信を提供するためにコンテンツ内の適切なポイントにおいてコンテンツプロバイダによって呼び出され得る。さらに第3の例では、無線デバイス等のターゲットデバイスのネットワークドライバソフトウエアは、パケットベースの請求トラッキングコードを含むように修正され得る(仕様またはライブラリ機構を介して)。これらの他の実施形態の全てにおいて、コンテンツプロバイダまたはデバイスドライバ製造業者のいずれかは、請求トラッキングコードおよび通信技術に気付かされる必要があり、それにより、請求サポートを組み込むより多くの割り込み手段を提供する。
PBBSコンポーネントおよび機能性は、アプリケーション提供システム等のネットワーク環境において異なるコンポーネントに統合され、異なるコンポーネントを介して分散され得る。次いでこのシナリオでは、コンポーネントを提供することは、請求トラッキングコードを決定し、これをコンテンツに挿入し、請求トラッキングコードからデータを受信し、そして請求レコードを生成するために、示された請求ポリシーと共にトラッキングされたデータを処理するために相互作用する。より詳細には、アプリケーションが加入者によってリクエストされる場合、アプリケーションは、リクエストしているデバイスに対するアプリケーション提供システムによって提供され、リクエストしているデバイスにアプリケーションに対して具備された適切な請求コードと共にダウンロードされる。本明細書で使用された場合、提供することは、特定の使用(例えば、特定のカスタマによる特定の種類の加入者デバイスのために)に対するコンテンツをカスタマイズおよび分配することである。モバイルアプリケーションシステム(MAS)と呼ばれた例示的なアプリケーション提供システムは、本明細書中で説明されたPBBSを用いて使用され得る。添付物Dは、アプリケーションへのコードを具備させ、このようなアプリケーションをカスタマイズし、そしてこのアプリケーションを特に無線デバイスに分配するための技術を含む、このようなシステムを詳細に説明する。MASは、モバイルおよび有線加入者デバイスにアプリケーション、リソース、および他のコンテンツを提供するために安全な態様で個別にそして共に働く相互動作するサーバコンポーネントの収集である。
図3は、例示的なモバイルアプリケーションシステム環境内部でインプリメントされた例示的な送信に基づく請求システムのブロック図である。示されたモバイルアプリケーションシステム(MAS)は、無線接続を介して無線ハンドセット310に接続された提供システムである。MASのコンポーネントは、とりわけ、コンテンツスキャナ、解析器、および計装器の(instrumentor)能力303をその機能の一部として含む提供および展開マネージャ302と、請求マネージャ305と、構成データレポジトリ304と、アカウンティングプログラム306とを含む。提供および展開マネージャ302のこの計装器能力303は、PBBSのコードモディファイア機能を提供する。この請求マネージャ305は、転送された請求データを収集するためにプロキシサーバの役割を組み込み得る。無線ハンドセット310は、典型的にはフラッシュメモリ311、または請求データが収集される場合に請求データを保持するためのローカル、半永久ストレージの他のタイプを含む。無線ハンドセット310はまた、無線接続を介してインターネット320等のパブリックネットワークに接続される。説明を簡単にするために、ハンドセット310がMAS請求マネージャ305に請求データを直接的におよび別個に転送するパブリックネットワーク320上でサーバへのアドレスを可能にすることが想定されが、この想定は、本明細書中で説明された技術を必ずしも達成するとは限らない。特に、クライアントデバイスが複数のサーバに直接アドレシングすることができない場合、受信されたネットワークパケットの全てに対する格納および送信能力をインプリメントするプロキシサーバが提供され得る。このシナリオでは、プロキシサーバは、パケットを受信し、その意図された宛先(および請求データの受信)を決定し、パケットから請求データを取り出し、そしてその元のパケットデータをその意図された宛先に送信する。
PBBSの技術は、一般的には任意のタイプのクライアント無線デバイスに対して利用可能であるが、当業者は、加入者デバイス、クライアントデバイス、電話、ハンドヘルド等の用語は、PBBSと共に動作することが可能である任意のタイプの加入者デバイスを示すために交換可能に使用されることを理解する。あるいは、用語は、明示的に説明されてもされなくてもよい代替のスペルを有し得る。例えば、バイト−コード(byte−code)は、「バイトコード(bytecode)」または「バイトコード(Bytecode)」としても示され得、当業者は、このような用語の変動の全てが含まれるべきであることが意図されることを理解する。さらに本明細書中で説明された例示的実施形態は、1つ以上のネットワークを介して送信に基づく請求システムをインプリメントするために、アプリケーション、ツール、データ構造、および他のサポートを提供する。本発明の方法およびシステムの他の実施形態が、ソフトウエア送信に基づく請求サポートをそのソフトウエアに対して具備させ、非無線加入者デバイス(パーソナルコンピュータ、ドッキングされた無線ハンドセット、インターネット接続性を有する電話、またはカスタマキオスク(例えば空港またはショッピングモール内の))に対して、例えばインターネット等の非無線ネットワークを介してソフトウエアおよび他のコンテンツに対して送信に基づく請求サポートを具備させることを含む、多くの他の目的のために使用され得ることを理解する。さらに、この説明は、アプリケーション、サービス、およびリソースの形態でコンテンツを主に参照するが、当業者は、コンテンツがテキスト、グラフィック、オーディオ、およびビデオを含み得ることを理解する。あるいは、以下の説明において、本発明の方法およびシステムの技術の完全な理解を提供するために、データフォーマットおよびコードフロー等の多くの特定の詳細が説明される。しかし、当業者は、本発明はまた、本明細書で説明された、いくつかの特定の細部なしでまたは他の特定の細部(コードフローの順序に関する変更等)を用いて実施され得ることを認識する。
さらに、PBBSの技術は、ストリーミングコンテンツと共に動作するように拡張され得る。特に、ストリーミングコンテンツ(テキスト、オーディオ、ビデオ、グラフィックス等)がクライアントデバイスによってリクエストされる場合、リクエストは、ダウンロードするコンテンツの量を示す。コンテンツモディファイアは、請求およびトラッキングコードをコンテンツに挿入する代わりに、請求イベントを直接的に生成し、これらをプロキシ/請求サーバに転送する。
あるいは、当業者は、本発明の技術は、転送かつ受信されたデータの量を決定およびトラッキングすることが、請求データを生成する以外で価値がある他の使用に対して使用され得ることを認識する。例えば、本発明の技術のためのさらなる使用は、ネットワークパケットおよびリクエストのルーティングに関する。特に、コンテンツとネットワークとの間で転送かつ受信されたデータ量に基づいて請求データをトラッキングするための同じ技術は、どのようにしておよびどこでルーティングポリシーに基づいてネットワークパケットをルーティングするかを決定するプロキシサーバによって使用され得る。転送された「請求データ」は、ユーザ、送信されるべきアプリケーションおよびデータの量を識別する情報を含み、これは、トラフィックをルーティングするために、ルーティングシステムによって使用され得る。例えば、アプリケーションサーバは、著しいトラフィックのアプリケーション/ユーザの組み合わせに対して、特定の態様でネットワークトラフィックを分配するかまたは特定のサーバを保存することを望み得ることにより、ある種のロード収支を提供する。
図4は、送信に基づく請求システムの実施形態を実行するための汎用コンピュータシステムおよびクライアントデバイスの例示的なブロック図である。図4のコンピュータ環境は、ネットワーク410を介して通信するクライアント(加入者)デバイス401および汎用コンピュータシステム420を含む。各ブロックは、特定の実施形態で適切であるような1つ以上のこのようなブロックを表してもよいし、他のブロックと組み合わせられてもよい。各ブロックは、別個の物理場所において常駐し得る。
クライアントデバイス401は、コンピュータメモリ(「メモリ」)402、ディスプレイ404、入力/出力デバイス403、および中央演算処理装置(「CPU」)405を含む。修正されたコンテンツ406(例えば、実行可能なアプリケーション)は、他のダウンロードされたアプリケーション407および請求データ408の一時的なストレージのためのデータレポジトリを用いてメモリ402に常駐するように示される。この修正されたコンテンツ406は、好ましくは、送信データをトラッキングし、ネットワーク410を介してプロキシ/請求サーバに請求データを通信するために、前図で示されたようにCPU405上で実行し、挿入された請求トラッキングコードを実行する。
汎用コンピュータシステム420は、1つ以上のサーバおよび/またはクライアントコンピューティングシステムを含み得、分配された場所に及び得る。PBBSが、MAS等のアプリケーション提供システムに統合される一実施形態では、MASは、Java(R)2 Enterprise Edition(J2EE)を用いてインプリメントされ、J2EEコンプライアントアプリケーションサーバを提供する汎用コンピュータシステム上で実行する。本実施形態に従って、MASが、J2EEマルチティアアプリケーションアーキテクチャを用いて設計かつ符号化され、これは、サーバ側上のウエブティア、ビジネスティア、およびデータベースティアをサポートする。従って、汎用コンピュータシステム420は、MASおよびPBBSの1つ以上のコンポーネントおよび/またはデータレポジトリを実行することが可能な1つ以上のサーバを表す。
示されたように、汎用コンピュータシステム420は、CPU423、メモリ421、ならびに随意にディスプレイ422および入力/出力デバイス424を含む。PBBS430のコンポーネントは、メモリ421に常駐するように示され、好適には、1つ以上のCPU423を実行する。他のデータレポジトリおよび他のプログラム(図示せず)はまた、メモリ421に常駐し、好適には、1つ以上のCPU423上で実行する。典型的な実施形態では、PBBS430は、コンテンツモディファイア425、送信および請求トラッキングコードを格納するためのデータレポジトリ427および428、請求データおよびビジネス規則、請求サーバ426(プロキシおよび請求サーバとして動作するように示される)、ならびにアカウンティングプログラム429を含む。上述したように、PBBSは、キャリアまたは他のホストシステムの必要性およびこれの統合に応じて、他のデータレポジトリおよびコンポーネントを含み得る。アプリケーション提供システム一部である他のコンポーネントはまた、メモリ421(示されないが、提供および展開コンポーネントおよびローカルアプリケーション格納等)に存在する。説明されたように、アプリケーションは、クライアントデバイス401にダウンロードする前にコンテンツモディファイア425によって請求トラッキングコードを用いて提供かつ具備される。
当業者はPBBS430が、複数の、一様な、異種のコンピュータシステムおよびネットワークから構成される分配された環境においてインプリメントされ得ることを認識する。例えば、一実施形態では、コンテンツモディファイア425および請求サーバ426は、物理的に異なるコンピュータシステムに配置される。別の実施形態では、PBBS430の種々のコンポーネントは、それぞれ別個のサーバマシン上でホストにされ、データレポジトリ427および428からリモートに位置付けられ得る。さらに、いくつかのシナリオにおいて、アカウンティングプログラム429は、キャリアのインフラストラクチャ内部にホスト化され得、完全にPBBSから分離され得る。プログラムおよびデータの異なる構成および場所は、本発明の技術を用いて使用するために企図される。
例示的実施形態では、PBBS421のコンポーネントは、Java(R)2 Platform,Enterprise Edition Specification,Version 1.2,Sun Microsystems,1999に詳細に説明されたように、J2EEマルチティアアプリケーションプラットフォームを用いてインプリメントされる(MASの一部として)。典型的には、コンテンツモディファイア425は、MAS提供および展開マネージャの一部である(図3に示されたように)。請求マネージャ426は、送信に基づく請求に関連付けられた種々の能力を実行するために強化されたMASのコンポーネントである。測定されるべきコードを格納するためのデータレポジトリ427および428、ビジネス規則、および請求データは、MASの構成マネージャの一部であってもよいし(図3の構成データレポジトリ304を参照)、セキュリティの必要性、アカウンティングプログラム429等の場所に応じて、別個のデータレポジトリとしてインプリメントされてもよい。図5〜図13は、図1〜図3を参照しながら記載された機能性を達成するために、これらのコンポーネントの各々によってインプリメントされた特定のルーチンの種々の例示的実施形態を説明する。例示的実施形態では、これらのコンポーネントは、同時にかつ非同期的に実行し得、それにより、コンポーネントは、周知のメッセージ引渡し技術を用いて通信し得る。当業者は、等価の同期実施形態もまたPBBSインプリメンテーションによってサポート可能であることを理解する。あるいは、当業者は、他のステップが各ルーチンに対して、異なる順序、および異なるルーチンでインプリメントされても、さらになおPBBSの機能を達成し得ることを認識する。
図1を参照しながら説明されたように、クライアント(加入者)デバイスは、モバイルアプリケーションシステム等のアプリケーション提供システムからアプリケーションをリクエストし得る。MASを用いて、アプリケーションは、デバイスおよび加入者に予め提供されてもよいし、MAS(「壁のある庭の提供(walled garden provisioning)」と呼ばれる)内部にローカルに格納されてもよいし、例えば、インターネットを介してサイトをブラウジング(「開いた提供(open provisioning)」)することによって、アプリケーションがリクエストされた場合、オンザフライで提供され得る。図5は、送信に基づく請求と共に使用するためのモバイルアプリケーションシステムのためのアプリケーションを転送するためのいくつかの例示的な手順のブロック図である。図5では、サードパーティアプリケーションプロバイダまたはキャリア等のコンテンツプロバイダ501は、提供システムのためのアプリケーションを転送する(本明細書中では、MAS502として示される)。MAS502は、アプリケーションをローカルストレージ503に格納する(生データまたは予め提供されたもののいずれかとして)。コンテンツプロバイダ501はまた、請求データレポジトリ504におけるMAS502によって適切に格納されるビジネス規則に関連した請求を提供する。これらの規則は、請求データを転送するための頻度または間隔などの請求関連情報、請求データを転送するためのプロキシサーバのアドレス、論理パケットの大きさ、および論理パケットサイズに関連付けられた請求課金情報を示す。当業者は、アプリケーション特有またはユーザ特有である他の請求関連ビジネス規則もまた必要とされた場合格納され得ることを理解する。
図6は、モバイルアプリケーションシステムを用いてクライアントデバイスへの送信に基づく請求を支援するアプリケーションを気付かれずに配信するための全体のプロセスを示す例示的なブロック図である。クライアントデバイス601は、コマンドハンドラ602を用いてMAS602からアプリケーションをリクエストする。コマンドハンドラ602は、MASに対するリクエストを処理する。コマンドハンドラ602は、アプリケーションリクエストをMASの適切なコンポーネント(MAS提供および展開マネージャ(図示せず)等)に分配することに対して責任がある。コンテンツモディファイア機能性も含むこれらのコンポーネントは、リクエストされたアプリケーションに対応するアプリケーションがキャッシュ603に既に存在するかどうか、またはアプリケーションが展開のために提供される必要があるかどうかを決定する。提供プロセスの一部として、請求トラッキングコードは、アプリケーション605に具備され、セキュリティキー606が追加されて修正されたアプリケーション604を生成する。具備された請求トラッキングコードを有する提供されたアプリケーションがキャッシュ603において利用可能である場合であっても、セキュリティキーを生成することが必要であり得る(使用された技術に応じて)。好ましくは、セキュリティキー600が生成され、関連付けられたアプリケーション識別子およびアプリケーション識別子と共に安全なデータレポジトリ607に格納される。加入者およびアプリケーションに一意に関連付けられるセキュリティキーを生成するための任意の機構が組み込まれ、本発明の技術と共に使用され得る。1つの機構は、nビット乱数を生成し、この乱数を、固有のアプリケーション識別子および固有の加入者識別子を用いてある態様で組み合わせることである。この機構は、単一のセキュリティキーが、アプリケーション/加入者の組み合わせの1より多くに対して再使用されることを可能にする。なぜなら、このキーは、各アプリケーション/加入者の組み合わせに固有に結合されるからである。従って、修正されたコンテンツ(請求トラッキングコードおよびセキュリティキーを含む)がキャッシュされ、それにより、コンテンツの高速ダウンロードが可能になり得る。あるいは、固有のセキュリティキーが、コンテンツのアプリケーション/加入者バージョンの各々に関連付けられ得る。セキュリティキーの目的は、請求データが収集および処理のためにプロキシ/請求サーバに転送される場合、特定の加入者およびアプリケーションに一意に属するものとして以後認識され得る数を生成することである。修正されたアプリケーション604は、キャッシュ603に随意に格納され、コマンドハンドラ602を介してリクエストクライアントデバイス601に戻される。リクエストが適切なダウンロードを失敗し、クライアントデバイス601が同じアプリケーションに対するリクエストを再試行する場合において、短期間で修正されたアプリケーション604をキャッシュ603に格納することが望ましくあり得る。しかし、ここで、一実施形態では、このアプリケーションに追加されたセキュリティキーは、特定の加入者に関連付けられることに留意のこと。このシナリオでは、セキュリティキーを有する修正されたアプリケーション604をキャッシュ603に格納することは、異なるアプリケーション/加入者の組み合わせに展開することに対して意味を成さない。
図7は、送信に基づく請求をサポートするためにアプリケーションを修正するためのルーチンの例示的なフローチャートである。このルーチンは、典型的には、提供および展開プロセスの一部として実行される(図2のコンテンツモディファイア201を参照のこと)。要するに、ルーチンは、具備された請求トラッキングコードを有する指定されたアプリケーションのバージョンを決定または生成し、アプリケーションに挿入される適切なセキュリティキーを決定または生成し、そして修正されたアプリケーションをリクエスタに戻す。特に、ステップ701では、ルーチンは、指定されたアプリケーションを有するアプリケーションリクエストをパラメータとして受信する。ステップ702では、ルーチンは、具備されたアプリケーションが既に利用可能であるかどうか決定し(例えば、図6におけるキャッシュ603に格納される)、利用可能である場合、ステップ705に進み、利用可能でない場合、ステップ703に進む。ステップ703では、ルーチンは、アプリケーションのコードフローを解析し、請求トラッキングコードをアプリケーションに具備させる。このプロセスは、図8を参照しながら以下にさらに説明される。ステップ704では、ルーチンは具備されたアプリケーションを、例えばアプリケーションキャッシュに格納し、ステップ707に進む。ステップ705では、具備されたアプリケーションが既に利用可能であることを決定した後、ルーチンは、ローカルストレージ(例えばキャッシュ)から具備されたアプリケーションを取り出し、ステップ706に進む。ステップ706では、ルーチンは、取り出されたアプリケーションが、それに取り付けられるかまたは関連付けられたセキュリティキーを既に有するかどうかを決定する。セキュリティキーを既に有する場合、セキュリティキー(またはセキュリティキーを用いて修正されたアプリケーション)を取り出すためにステップ710に進み、セキュリティキーをまだ有さない場合、ステップ707に進む。制限された期間において潜在的な着服を制限するための具備されたアプリケーションを用いて取り付けられたセキュリティキーを保持することが望ましくあり得る。ステップ707では、ルーチンは、アプリケーションのための新しいセキュリティキーを生成する。図6に説明された機構を含む任意の適切なセキュリティ機構が利用され得る。ステップ708では、ルーチンは、新しく生成されたセキュリティキーを安全なデータレポジトリに格納する。ステップ709では、ルーチンは、新しいセキュリティキーをアプリケーションに具備させる。ステップ711では、ルーチンは、具備された請求トラッキングコードおよびリクエスタに対するセキュリティキーを含む修正されたアプリケーションを送信し、そして処理を終了する。
図8は、送信に基づく請求に対するサポートを有するアプリケーションを解析および具備するためのルーチンの例示的なフローチャートである。このルーチンは、図2に示されたような送信に基づく請求に対するサポートを含む修正されたアプリケーションにアプリケーションを変換する。ステップ801では、ルーチンは、アプリケーションの構造および呼び出し順序のフローをスキャンかつ解析し、好適には、バイトコードレベル(時には、「バイナリアプリケーション」と呼ばれる)において、データ構造(パッケージ、クラス、方法、およびフィールド定義)および呼び出し順序を理解する。この分解/デコードプロセスの一部として、ルーチンは、アプリケーション中に存在するAPIの全てを検出し、任意のネットワーク呼び出しを識別する。この解析の結果、ステップ802では、ルーチンは、どのコードがネットワークを呼び出すかを識別し、それにより、呼び出しがアプリケーション内部に配置される。アプリケーションがJava(R)で符号化される場合、この解析は、プログラムのバイトコード(またはバイナリ)レベルで実行され得、ソースレベルにおいて解析生成コードを挿入する必要がない(バイトコードレベルは、バイナリコードの「中間レベル」を参考にし、実行するために「エンジン」、「バイトコード」、インタープリター、または「仮想マシン」等によって解釈される)。当業者は、データ構造および呼び出し順序を提供することが検出かつ解析され得ることによって、他の実施形態が他の言語およびコンテンツに対してインプリメントされ得ることを理解する。当業者は、他の実施形態が他の言語およびコンテンツに対してインプリメントされ、データ構造および呼び出し順序を提供することが検出および解析され得ることを認識する。特にJava(R)および.NETアプリケーションがこのようなプロセスに固有に適応される。なぜなら、これらのアプリケーションは、駆動された命令であるためである(すなわち、異なるバイトコードが異なる言語エレメントを示すために使用される)。他の中間コード言語が同様に解析され得る。ステップ803において、ルーチンはアプリケーション内部に位置付けられたネットワーク呼び出しに対応するプロキシネットワーク呼び出しを決定する。これらのプロキシ呼び出しは、典型的には、特定のデバイスおよびプロトコルに種々のネットワーク呼び出しを関連付ける配置データレポジトリから決定される。添付物Aは、位置付けられたネットワーク呼び出しをプロキシネットワーク呼び出しにマッピングするための例示的な擬似コードを含む。ステップ804では、ルーチンは、例えば、キャリアによって特定されたようにこのアプリケーションに適応する特定のビジネス規則を決定する。冒頭で説明されたように、これらの規則は、プロキシ/請求サーバに転送されるべき請求データに対する間隔/頻度、課金するために使用されるべきパケットの論理的大きさ、およびパケットに関連付けられた課金を規定し得る。規則の拡張セットは、アプリケーションまたはユーザ毎を基本として特定され得る。当業者は、他のビジネス規則が適切なように特定され得、経時的に変化され得ることを理解する。例えば、いくつかのシステムでは、アプリケーションプログラマによってデフォルト課金情報を提供することが可能にされ得、この情報は、キャリア(すなわちPBBS)による標準的な乗算器によって修正され得る。ステップ805では、図2に示されるように、ルーチンは、アプリケーション内で識別されたネットワーク呼び出しをプロキシネットワーク呼び出しに置換する。図2に示されるように、ステップ806では、ルーチンは、アプリケーション処理の終了時において請求データを転送するために最後のプロキシネットワーク呼び出しを追加する。典型的には、以前のプロキシネットワーク呼び出しシステムが失敗した場合に転送された請求データをプロキシ/請求サーバに呼び出しても、この呼び出しは典型的には追加される。以前のプロキシネットワーク呼び出しがクライアントデバイス上でデータをローカルに収集する状況において、データを転送するための最終呼び出しは、ビリングデータの蓄積されたセットの請求データと通信する。
図1を参照して説明されたように、修正されたコンテンツがクライアントデバイス上で実行される(処理される)場合、請求トラッキングコードがアクティブ化され、データを収集し、そのデータを、PBBSに関連付けられたプロキシ/請求サーバに自動的に転送する。図9は、アプリケーション毎を基本としてネットワーク送信データに基づいて請求データを通信するための全体のプロセスを示す例示的なブロック図である。例示の目的のためではあるが、コンポーネントは、アプリケーション提供システムのインターネットの一部であることが想定される。当業者は、冒頭で説明されたように、PBBSの機能を実行することが可能な任意のコンテンツ配信システムに統合され得ることを理解する。図9では、クライアントデバイス901は、アプリケーションに以前に具備された転送コードの結果として、請求データ(ネットワークパケットを介して)をプロキシサーバ902に転送する(図2および図8を参照のこと)。プロキシサーバの2つの異なるタイプは、デバイスの能力に応じてインプリメントされ得る。特に、いくつかのデバイスは、1より多いサーバにパケットを直接転送し得る。その場合、いくつかのサーバに向かうパケット909は、サーバに直接転送されつつ、請求データは、プロキシサーバ902に直接転送され得る(このようなセットアップは、時には計算およびログアプローチと呼ばれる)。他のデバイスは、ネットワークパケットを1つのみのサーバに転送することができる。このシナリオでは、プロキシサーバ902は、格納および送信プロキシサーバとして作用し、ネットワークパケットをそれらの意図された宛先に分配して、転送された請求データを有するパケットのみを処理する。別個のサーバである場合、プロキシサーバ902は、転送されたデータを収集し、適切なものとしてそのデータを請求サーバ903に送信する。いくつかの実施形態では、プロキシサーバおよびビリングサーバが組み合わせられる。しかし、いくつかの状況では、例えばセキュリティに関連のために、プロキシおよび請求サーバを分離することが望ましくあり得る。別の例のように、請求サーバは、既に存在し得、プロキシサーバがインターフェースを取る特定のデータ収集プロトコルを有し得る。一旦、収集された請求データが受信されると、請求サーバ903は、請求データと共に転送されたセキュリティキーが、そのセキュリティキーと、セキュリティデータレポジトリ905におけるその特定のアプリケーションおよびそのユーザに対する予測されたセキュリティキーとを比較することによって合法的であるかどうかを決定する。セキュリティキーが合法的である場合、請求サーバ903は、生の請求データをデータレポジトリ906に格納する。請求サーバ903は、例えば、レポジトリ906に格納されたビジネス規則に従って請求データを随意に後処理し得る。当業者は、データレポジトリが例示のみのために示されたように分離されること、および単一のデータレポジトリなどの他の組み合わせが使用されることを認識する。さらに、プロキシサーバ902は、請求サーバ903によって非同期的に処理されるべき生の請求データを直接格納し得る。アカウンティングプログラム904は、請求データ(生のまたは後処理された)をデータレポジトリ906から取り出し、随意に無効なビジネス規則(例えば、データレポジトリ907に格納されたような)を使用し、請求データをさらに処理し、呼び出し(カスタマ)データレコード908を生成する。無効なビジネス規則は、例えば、特定のアプリケーションまたは加入者の無効、宣伝(promotion)等を含み得る。
図10は、請求データを収集し、そして転送するために修正されてきたデータをネットワークに転送するためのクライアントルーチンの例示的なフローチャートである。このルーチンは、いくつかのタイプの「send_data」ネットワーク呼び出しを置換する例示的なプロキシネットワークコードを示す。ネットワークを介してデータを転送するプロキシネットワークコードの例示的な擬似コードインプリメンテーションは、添付物Bに含まれる。このルーチンは、転送されるべきデータの量をトラッキングかつ蓄積し、蓄積された量が請求データを転送するための頻度/間隔に対するルーチンに組み込まれたビジネス規則に対応する場合、請求データが転送される。特に、ステップ1001では、ルーチンは、現在のパケットにおいて転送されるデータの量を決定し、そのデータを蓄積する(例えば、可変「data_out」において)。ステップ1002では、ルーチンは、ローカルストレージにおけるタイムスタンプ、アプリケーション識別子、およびセキュリティキーと共に現在のパケットにおけるデータの量を格納する。ステップ1003では、ルーチンは、データを転送する時間になっているかどうか(例えば、時間/頻度の符号化された間隔がデータを転送するために引き渡されるかどうか)を決定する。データを転送する時間になっている場合、ステップ1004に進み、請求データをプロキシサーバに転送する。データを転送する時間になっていない場合、ステップ1006に進む。ステップ1006では、ルーチンは、データベースの転送のためのビジネス規則がカウントベース(データ量に基づく)であるかどうかを決定する。ビジネス規則がカウントベースである場合、カウントがデータを転送するために示された規則よりも大きいかどうかである。カウントがデータを転送するために示された規則よりも大きい場合、ルーチンは、ステップ1005に進み、カウントがデータを転送するために示された規則よりも大きくない場合、ステップ1007に進む。ステップ1005では、ルーチンは、データ量カウンタをリセットし、請求データをプロキシサーバに転送するためにステップ1004に進む。ステップ1007では、ルーチンは、アプリケーションに符号化された元のネットワーク呼び出しを用いてデータを転送する。
図11は、請求データを収集し、そして転送するために修正されてきたデータをネットワークに転送するためのクライアントルーチンの例示的なフローチャートである。このルーチンは、いくつかのタイプの「receive_data」ネットワーク呼び出しを置換する例示的なプロキシネットワークコードを示す。ネットワークを介してデータを受信するプロキシネットワークコードの例示的な擬似コードインプリメンテーションは、添付物Cに含まれる。このルーチンは、受信されるべきデータの量をトラッキングかつ蓄積し、蓄積された量が請求データを転送するために頻度/間隔に対するルーチンに組み込まれたビジネス規則に対応する場合、請求データが転送される。特に、ステップ1101では、ルーチンは、元のネットワーク呼び出しを用いてデータを受信し、この返信を遮断する。次いで、ステップ1102では、返信は、元のネットワーク呼び出しが成功したかどうかを決定し、元のネットワーク呼び出しが成功した場合、ステップ1103に進み、元のネットワーク呼び出しが成功しない場合、エラーを戻す。ステップ1103では、ルーチンは、パケットにおいて受信されたデータの量を決定し、それを蓄積する(例えば、可変「data_in」において)。ステップ1104では、ルーチンは、ローカルストレージにおけるタイムスタンプ、アプリケーション識別子、およびセキュリティキーと共に受信された現在のパケットにおけるデータの量を格納する。ステップ1105では、データを転送する時間になっているかどうか(例えば、時間/頻度の符号化された間隔がデータを転送するために適用するかどうか)を決定する。データを転送する時間になっている場合、ステップ1106に進み、請求データをプロキシサーバに転送する。データを転送する時間になっていない場合、ステップ1107に進む。ステップ1107では、ルーチンは、データベースの転送のためのビジネス規則がカウントベース(データ量に基づく)であるかどうかを決定する。ビジネス規則がカウントベースである場合、カウントがデータを転送するために示された規則よりも大きいかどうかである。カウントがデータを転送するために示された規則よりも大きい場合、ルーチンは、ステップ1108に進み、カウントがデータを転送するために示された規則よりも大きくない場合、戻る。ステップ1108では、ルーチンは、データ量カウンタをリセットし、請求データをプロキシサーバに転送するためにステップ1106に進み、次いで戻る。
図12は、転送された送信に基づく請求データを処理するためのサーバルーチンの例示的なフローチャートである。このルーチンは、例えば、請求サーバ(図9における請求サーバ903等)またはプロキシサーバ(図9におけるプロキシサーバ902等)によって実行され得る。当業者は、本明細書中に含まれたステップが単に例示的であり、周囲の環境におけるPBBSの機能の配置および統合に応じて、異なるステップがこれらのステップと置換され得るかまたはこれらのステップと組み合わせられ得ることを認識する。ステップ1201では、ルーチンは、クライアントデバイスから転送された請求データを受信する。ステップ1202では、ルーチンは、請求データからセキュリティキー、アプリケーション識別子、およびユーザ識別子を抽出する。次いで、ステップ1203では、ルーチンは、セキュリティキーデータレポジトリテーブルにおけるそのセキュリティキーに関連付けられたアプリケーション識別子およびユーザ識別子と情報を比較する。ステップ1204では、セキュリティキー情報が整合する場合、ルーチンは、ステップ1206に進み、セキュリティキー情報が整合しない場合、請求データは、ステップ1205において放棄され、ルーチンは戻る。ステップ1206では、ルーチンは、請求データを格納する(または請求データを請求サーバに送信する)。デバイスが1つのサーバシステムとの通信に制限される実施形態では、次いでステップ1207では、ルーチンは、他のサーバに対して指定されたデータパケットを検出かつ送信し、次いで戻る。
図13は、送信に基づく請求データに基づく請求課金を生成するためのステップの例示的なフローチャートである。このルーチンは、例えば、アカウンティングプログラム(図9におけるアカウンティングプログラム904等)によって実行され得る。本明細書中で示されたステップは、請求レコードを処理することに対して一般的に適用可能である。しかし、キャリアの詳細または請求レートを決定する他のコンテンツプロバイダに応じて、カスタマ(呼び出し)データレコードの適用性およびデータレコードのフォーマット、種々のさらなるまたは異なるステップが含まれ得る。ステップ1301では、ルーチンは、送信に基づく請求データを取り出す。ステップ1302では、ルーチンは、示されたアプリケーション識別子およびユーザ識別子に対する適用可能なビジネス規則を決定する。ステップ1303では、ルーチンは、任意の無効のポリシー/ビジネス規則(例えば、宣伝、ディスカウント等)が存在するかどうかを決定し、任意の無効のポリシー/ビジネス規則が存在する場合、ステップ1304に進み、無効規則を決定する。任意の無効のポリシー/ビジネス規則が存在しない場合、ステップ1305に進む。ステップ1305では、ルーチンは、任意の決定されたビジネス規則を適用し、呼び出しデータレコードを生成する。これらのレコードのフォーマットは、送信に基づく請求データが、例えば無線キャリアインフラストラクチャ内部に既に存在する請求システムに統合される任意の請求システムに著しく依存する。
上記から、本発明の特定の実施形態が例示の目的のために本明細書中で示されてきたが、種々の修正が本発明の精神および範囲から逸脱することなくなされ得ることが理解される。例えば、当業者は、本明細書中で説明された方法およびシステムがコンテンツ提供システムおよび送信に基づく請求システム任意のネットワーク、有線、無線、または複数のこのようなネットワークを介して適用可能であることを認識する。当業者は、本明細書中で説明された方法およびシステムが異なるプロトコル、通信媒体(光、無線、ケーブル等)、加入者デバイス(無線ハンドセット、電子オーガナイザ、携帯情報端末、ポータブル電子メールマシン、ゲーム機、ページャ、GPSレシーバ等のナビゲーションデバイス等)に適用可能であることも認識する。本発明の局面は、必要である場合、本発明のさらなる実施形態を提供するためのこれらの種々の特許、出願および公報の方法、システム、および概念を利用するために修正され得る。さらに、当業者は、どのようにして、特定の要求または条件に合致するように説明された方法およびシステムに対して変更および修正を行うかを理解する。
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
付録(APPENDIX) D
無線アプリケーションの保守および分配
本発明の実施形態は、無線アプリケーションを保守および提供するためのコンピュータおよびネットワークベースの方法、ならびにシステムを提供する。本明細書中で議論されるように、プロビジョニング(Provisioning)とは、特定の使用、例えば、特定の顧客による特定の種類の加入者デバイス上で使用するためのコンテンツをカスタマイズおよび分配することである。例示の実施形態においては、モバイルアプリケーションシステム(MAS)が提供される。MASは、アプリケーション、リソース、およびモバイル加入者デバイスへの他のコンテンツを提供するために、個別かつ共にセキュアな態様で動作する相互運用サーバコンポーネントの集合である。MASは、例えば、セルラー電話およびハンドセットデバイス等の無線デバイスが、それらのデバイス上で用いるために、新しい、かつ更新されたアプリケーションをMASから動的にダウンロードすることを可能にする。動的ダウンロード能力は、無線アプリケーションのディベロッパー(コンテンツプロバイダ)の製品化までの時間の要求(time−to−market requirements)を著しく低減し、その結果、製品サポートおよびマーケティングの効率を高める。顧客は、その無線デバイス上でオペレーティングソフトウェアを迅速かつ便利に更新し、かつ人気のあるアプリケーション(ゲームを含む)をダウンロードすることができる。MASを用いて、顧客は、その無線ハンドセットデバイスをネットワークから直接的に更新し、これにより、ソフトウェアを更新するために地域の顧客サービス担当者と話す、または、サービスセンターを訪れるという時間のかかる経験を回避することができる。MASは、さらに、加入ビリング(subscription billing)を含む柔軟なビリングシナリオを支援し、これは、顧客が特定のサービスに加入して、所望するリソースおよびアプリケーションのみを受取ることを可能にする。
MASの能力は、通常、任意のタイプの顧客無線デバイスに適用可能であるが、当業者は、加入者デバイス、顧客デバイス、電話、ハンドヘルド等の用語が、MASと共に動作することができる任意のタイプの加入者デバイスを示すために交換可能に用いられることを認識する。さらに、本明細書中に記載される例示の実施形態は、1つ以上のネットワークを介して無線アプリケーションの維持および分配をインプリメントするためにアプリケーション、ツール、データ構造および他のサポートを提供する。当業者は、本発明の方法およびシステムの他の実施形態が、インターネット等の非無線ネットワークを介して、パーソナルコンピュータ、ネットワーク接続無線ハンドセット、インターネットとの接続性を有する電話、あるいは、空港またはショッピングセンター内のカスタマーキオスク、等の非無線加入者デバイスにソフトウェアおよび他のコンテンツを保守および分配することを含む、複数の他の目的のために用いられ得ることを認識する。さらに、この記載は、主に、アプリケーションおよびリソースの形態のコンテンツに関するが、当業者は、このコンテンツがテキスト、グラフィック、オーディオおよびビデオを含み得ることを認識する。さらに、以下の記載において、本発明の方法およびシステムの技術の徹底的な理解を提供するために、データフォーマット、ユーザインテーフェーススクリーンディスプレイ、コードの流れ、メニューオプション等の多数の特定の詳細が示される。しかしながら、当業者は、本発明が、本明細書中に記載される特定の詳細のいくつかを用いないか、あるいは、コードの流れの順序付けまたはユーザインターフェーススクリーンディスプレイに示される特定の特徴に関する変更等、他の特定の詳細を用いても実行され得ることを認識する。
図1は、無線サービスの加入者がリクエストし、かつモバイルアプリケーションシステムからソフトウェアアプリケーションをダウンロードする態様を示す例示的ブロック図である。MASが動作する無線環境は、加入者デバイス101および101b、トランシーバ103を有する無線ネットワーク102、無線キャリアサービス104、MAS105および種々のコンテンツプロバイダ106を含む。コンテンツプロバイダ106は、キャリアサービス104の認可を通じて、または認可によってMAS105にアプリケーションを提供する。アプリケーションは、その後、リクエストされると、MAS105によって、検証され、公開され、かつ加入者デバイス101に供給される。このタイプのプロビジョニングは、本明細書中において「ウォールドガーデン」プロビジョニングと呼ばれる。なぜなら、この態様で供給および公開されるアプリケーションは、キャリアおよび/またはMASインフラストラクチャに既知だからである。コンテンツプロバイダ106は、さらに、MAS105によって動的に供給され得る、加入者デバイスによってブラウズされ得るアプリケーションをホストとして処理し得る。このタイプのプロビジョニングは、本明細書中において「オープン」プロビジョニングと呼ばれる。なぜなら、MASまたはキャリアインフラストラクチャの範囲内で「既知の」アプリケーションに限定されないからである。これらは、異なったタイプのプロビジョニングが複数の類似の機能を共有するので、議論の都合上、区別されるにすぎない。MAS105は、さらに、キャリア、コンテンツプロバイダ、カスタマケア担当者および加入者に、特定の加入者または加入者の群に利用可能なアプリケーション、サービス、およびビリングシナリオをカスタマイズするための複数のツールを提供する。
図1において、加入者デバイス101は、現在、存在するか否かに関わらず、無線ハンドセット、電話、電子オーガナイザ、パーソナルデジタルアシスタント、ポータブル電子メール機器、ゲーム機器、ページ、ナビゲーションデバイス等の、無線ネットワーク102を介して通信ができる電子デバイスを含む。1つ以上の加入者デバイス101(顧客デバイスとも呼ばれる)は、無線ネットワーク102を横断して、そのサービスを用いるように加入者が手続きをした無線キャリアサービス104に通信する。無線ネットワーク102は、加入者デバイス101にサービスを中継する(および加入者のリクエストを処理する)ために用いられるトランシーバ103を有する。当業者は、無線サービスの加入者が、代替的ネットワーク(インターネット等)を用いることによって、および、アプリケーションをダウンロードするためにより使い易いインターフェースを提供し得る、パーソナルコンピュータ101b等の比較的大きいフォームファクタを有するデバイスを用いることによって、無線ネットワークを横断して無線アプリケーションをリクエストおよびダウンロードすることに含まれる任意またはすべての工程を補完し得ることを認識する。トランシーバ103は、通常、無線通信をケーブルベースの通信に変換し、かつケーブルベースの通信を無線通信に変換するが、当業者は、種々の媒体およびプロトコルが用いられ得ることを認識する。トランシーバ103は、通常、キャリア専用通信プロトコルを用いてケーブルベースの媒体を横断してキャリアサービス104と通信する。キャリア専用の通信は、ハイパーテキストトランスポートプロトコル(HTTP)およびワイヤレスアプリケーションプロトコル(WAP)等のポイントツーポイント通信のために適切な任意のプロトコルを用い得る。キャリアサービス104は、アカウンティング、POTS(「平凡な旧式の電話サービス(plain old telephone service」)および他の電話サービス(自動転送、発信者番号通知サービス、ボイスメール等)およびダウンロード可能なアプリケーションを含む電話局に典型的であるサービスを提供する。モバイルアプリケーションシステム105は、例えば、広帯域通信チャネル108、またはインターネット107等の公共的にアクセス可能なネットワークを介して、キャリアサービス104と通信して、提供されたアプリケーションを加入者デバイス101に供給する。当業者は、モバイルアプリケーションシステム105が、キャリアサービス104と完全または部分的に統合され得ることを認識する。ウォールドガーデンプロビジョニングを用いて、通常、コンテンツプロバイダ106により生成されるダウンロード可能なアプリケーションが、モバイルアプリケーションシステム105またはキャリアサービス104に直接的に、またはインターネット107等のネットワークを横断して供給される。これらのダウンロード可能なアプリケーションは、その後、モバイルアプリケーションシステム105によって適切に検証およびカスタマイズされて、加入者デバイス101に供給される。オープンプロビジョニングを支援する実施形態において、キャリアの加入者は、位置(ネットワークアドレスまたはURL(Uniform Resouce Locator)等)を指定することによって、ウェブサイトからアプリケーションをダウンロードし得る。MASは、加入者からのダウンロードリクエストをインターセプティングし、その後、位置指定し、検証し、かつ顧客にアプリケーションを供給する。
加入者デバイス101は、アプリケーションをリクエストおよびダウンロードするために、顧客側アプリケーション管理ユーティリティ(例えば、ハンドセットアドミニストレーションコンソールまたはブラウザ)に依存する。図2は、モバイルアプリケーションシステムと共に動作するハンドセットアドミニストレーションコンソールの例示的ブロック図である。ハンドセットアドミニストレーションコンソールは、加入者の無線デバイス上のアプリケーションの通知、インストール、アンインストールを処理する。加入者デバイス201は、デバイスに利用可能な機能のメニューを加入者に提供する。加入者は、例えば、デバイスに既にインストールされたアプリケーションを管理し、かつダウンロードされ得る新しいアプリケーションを提供するメニュールーチンから選択され得る。例えば、ルーチンは、インストールされたアプリケーションのバージョン情報を加入者が取得して、これらのアプリケーションの更新が利用可能になった場合、これらをダウンロードし、かつダウンロードされるべき新しいアプリケーションのためにブラウズすることを可能にし得る。メニュー202は、加入者デバイス201に場合によってはダウンロードされ得る新しいアプリケーション203のリストを示す例示的メニューである。例示的スクリーンディスプレイ204は、ダウンロードするために加入者がアプリケーションを選択した後で提供される例示的ユーザインターフェースを示す。スクリーンディスプレイ204は、ダウンロードオペレーションを示すアイコン205、ダウンロードされるアプリケーションのタイトル206、およびダウンロードの進行中のプロセスを表示するステータスバー207を提供する。スクリーン204は、さらに、ダウンロードプロセスがキャンセルされることを可能にするストップボタン208を提供する。
図3は、無線加入者デバイスにアプリケーションを供給するために例示的モバイルアプリケーションシステムによって実行される一般的工程の例示的概要のフローチャートである。これらの工程は、プロビジョニングシナリオ(ウォールドガーデンを用いて)またはオープンプロビジョニングのどちらかに適用可能である。これらの同じ工程は、さらに、図1におけるインターネット107を通じて接続されるもの等の無線デバイスにアプリケーションを供給するために用いられ得る。工程301〜310は、MASが入来するリクエストを処理して加入者デバイスからアプリケーションをダウンロードし、リクエストされたアプリケーションを供給し、かつリクエストされたアプリケーションを加入者デバイスに送信する態様を示す。プロビジョニングは、コードを取り出す工程、検査する工程、最適化する工程、計測する工程、およびパッケージングする工程の1つ以上を含み、かつ、アプリケーションをターゲットデバイスにダウンロードするために準備するように、必要に応じて、さらなる工程を含み得る。例えば、さらなるセキュリティおよびビリング方法がシステムに追加され、プロビジョニングは、除法を暗号化する工程およびレポートされる工程を包含し得る。別の場合、工程301〜310は、アプリケーションがネットワーク上のロケーションをブラウズすることによって間接的にリクエストされるのとは対照的に、MASから直接的にリクエストされることを想定する。(オープン供給の場合、MASは、リクエストをインターセプティングし、初めてこれを受取るかのようにアプリケーションを供給およびダウンロードすることを試みる。)
具体的に、工程301において、アプリケーションは、通常、キャリアから、またはコンテンツプロバイダから直接的にダウンロードするために利用可能にされる。アプリケーションは、多様な加入者デバイス上で実行することができるJaveなどのコンピュータ言語を用いて書き込まれ得る。アプリケーションは、キャリアのアプリケーションデータのリポジトリ(MASにおいてか、またはキャリアの構内にて配置され得る)に局所的に格納されるか、または、適宜、信用される第3者サーバに格納される(オープンプロビジョニングの場合、第3者サーバは、必ずしも信用されない)。工程302において、加入者は、アプリケーションをダウンロードし、利用可能なアプリケーションのリストを取り出し、特定の管理クエリまたは他のコマンドを実行するリクエストを送信する。プロトコル変換は、入来するリクエスト(および出ていくメッセージ)に対して実行され、多様な無線キャリアを横断して加入者デバイスとの通信をイネーブルする。ダウンロードされたアプリケーションは、例えば、加入者デバイス上で動作する新しい、および人気のあるアプリケーション、あるいは、アップグレードまたはより最近のソフトウェアのバージョンであり得る。リクエストは、例えば、リクエストを方向付けることを知らせるHTTPを用いるUniform Resource Locators(URL)を用いてなされる。MASは、拡張可能なコマンド処理エンジンを支援し、かつ種々のハンドラ、モジュール、MASのコンポーネントである他の構造の直接的な呼出しを、HTTPリクエストまたはアプリケーションプログラミングインターフェース(「API])のどちらかを通じて支援する。アプリケーションプロビジョニングリクエストの場合、特定のファイルをダウンロードするためのリクエストが、ダウンロードするファイル(アプリケーションまたはサービス)を識別するURLを割り当てることによって行われる。管理クエリの場合、リクエストは、例えば、管理サーブレットまたはリクエストを処理するMASにおける他のコードに対してなされる。工程303において、MASは、ダウンロードのためか、または特定の他のコマンドのためのリクエストかを決定し、ダウンロードのリクエストである場合、工程305にて続行し、そうでない場合、工程304にてコマンドを処理する。工程305において、MASが割り当てられたURLが公開アプリケーションを指定するか否か(これにより、ウォールドガーデン供給が実行され得ることを示す)を決定し、指定する場合、工程306にて続行し、そうでない場合、工程308にて続行する。工程306において、加入者のリクエストは、認証、デバイス能力、および、適切である場合、プリペイドビリングの認可について検証される。認可レベルは、通常、顧客が加入したサービスのレベルに依存する。例えば、1実施形態において、MASは、プリペイドビリングを支援し、これは、加入者がアプリケーションを使用するために支払いを予め済ませることを可能にする。この場合、MASは、アプリケーションがダウンロードされる前にプリペイドビリングアカウントがリクエストを扱い得ることを検証する。販売促進のためのオファーが提供されているか否か、加入者がサービスにアクセスした回数、特別提供価格が存在するか否か、サービスがアクセスされた日時または週、ダウンロードされるべきバイト数および他のこのようなファクタ等の他のファクタが適用され得る。デバイス能力は、さらに、リクエストされたアプリケーションが加入者デバイス上で十分に動作し得るか否かを決定するために点検される。これは、例えば、リクエストするデバイスを既知のデバイスプロファイルおよびリクエストされたアプリケーションのアプリケーションプロファイルと比較することによって実行され得る。工程307において、MASは、加入者のリクエストが首尾よく検証されたか否かを決定し、検証された場合、工程308にて続行し、そうでない場合、これは、リクエストを拒絶し、かつ別のリクエストを待つために工程302に戻す。
工程308において、MASは、加入者リクエストに対応し、かつ加入者デバイスに適切である予め供給されたアプリケーションがすでに存在するか否かを決定する。予め供給されたアプリケーションは、加入者デバイスの認可のレベルおよび能力に従って予めカスタマイズされたアプリケーションである。予め供給されたアプリケーションは、利用可能である場合、対応するアプリケーションリクエストに対してシステムの待ち時間を最小限にし、かつシステム応答時間を向上(enhance)させる。アプリケーションは、加入者の加入の典型的レベルおよび典型的加入者デバイス(例えば、使用予定によって決定される)により予め供給され得、かつ後からのアクセスのために格納されて、予め供給されたアプリケーションに対応するアプリケーションの加入者デバイスリクエストに応答する。アプリケーションが予め供給されなかった場合、MASは、アプリケーションを動的に供給し、これは、リクエストを処理するために必要とされる時間を増加させるが、配布するためのカスタマイズおよび認可されたアプリケーションを生成する。
工程308において、加入者デバイスのために適切な予め供給されたアプリケーションが見出された場合、プロビジョニングシナリオは、工程310にて続行し、そうでない場合、これは、工程309にて続行する。309において、アプリケーションは、特定の加入者デバイスのために、およびアクセス認可に従って供給される。工程310において、MASは、供給されたアプリケーションをダウンロード用に加入者デバイスに送信する。
上述のように、MASによって支援されるリクエストの1つは、加入者のデバイスにダウンロードされ得る利用可能なアプリケーションのリストを取り出すことである。このプロセスは、アプリケーションディスカバリと呼ばれる。図4は、無線加入者デバイスのためにアプリケーションディスカバリを実行する、例示的モバイルアプリケーションシステムによって実行される工程の概要の例示的フローチャートである。例示的実施形態において、2つのタイプのアプリケーションディスカバリが支援される。第1のタイプは、システムによって駆動され、かつシステムから導き出されるリストを生成する。第2のタイプは、リクエスタ(riquester)によって駆動され、かつ「適切な」アプリケーションのリストを生成するためにMASによって整合される検索用語を指定する。工程401において、MASは、ユーザが任意の検索用語を入力したか否かを決定し、入力した場合、工程402にて続行し、そうでない場合、工程403にて続行する。工程402において、MASは、公開アプリケーションのデータレポジトリをリクエストにおいて指定された基準を満たすものについて検索し、そして工程404にて続行する。あるいは、工程403において、MASは、初期リストを決定する。1実施形態において、このリストは、加入者の個人専用リスト(利用可能である場合)から形成され、そうでない場合、MASは、デフォルトリストを提供する。工程404において、MASは、この初期リストを加入者およびデバイス能力に基づいてフィルタリングする。例えば、MASは、加入者がアプリケーションを用いることを認可されたか否か、および、アプリケーションプロファイルに反映されるようなアプリケーションのニーズがデバイスによって満たされるか否かを決定するために、例えば、加入者プロファイル、デバイスプロファイルおよびアプリケーションプロファイル等の種々のプロファイルを解析し得る。工程405において、MASは、任意のシステム定義アプリケーションをリスト(「スタートデック(startdeck)」と呼ばれる)に追加する。このようなアプリケーションは、キャリアのカスタマイズ可能な規則に従って割り当てられ得、例えば、これらのアプリケーションをリストのトップに配置することによって、より多くの収益を生成するアプリケーションに「プレミアム」可視時間が与えられ得る。工程405において、MASは、リクエストするデバイスの可視能力によりリストをフォーマット化(例えば、支援されるマークアップ言語)して処理を終了する。
図5は、モバイルアプリケーションシステムの例示的な実施形態のコンポーネントの概略的なブロック図である。この実施形態において、モバイルアプリケーションシステム500は、プロトコルマネージャ503、プロビジョニングマネージャ504、キャッシュ505、デプロイメントマネージャ506、請求マネージャ507、ロギングマネージャ508、アドミニストレータ509および心拍モニタ310を含む。これらのコンポーネントは、コンテンツプロバイダおよび通信事業者サービスからアプリケーションを受信するように相互動作し、図1に示されるように、加入者デバイスに送達するためにそれらをプロビジョニングし、MASコマンドを処理する。MASのコンポーネントまたは異なるコンポーネントの機能性に関する多くの異なる配置および分割が可能であることを、当業者は認識している。例えば、プロトコルマネージャ504および請求マネージャ507に配置された機能は、1つのコンポーネントに結合される。他の配置は、また、可能であり、検討される。
MASの様々なコンポーネントは、通信事業者によって提供されたサービスを管理する通信事業者(またはシステム)管理者あるいは顧客ケアの代表者と、アプリケーションおよびサービスを発展させて、通信事業者に分配するコンテンツプロバイダと、サービス、アプリケーションおよび他のコンテンツを消費する加入者とに多数の性能を提供するように相互作用する。管理者509は、様々なユーザインタフェースをこれらのタイプの各々に提供して、MAS、アプリケーション、請求および他のサービスを構成し、MASによって加入者の体験をカスタマイズする。プロビジョニング局面を示すと、図3を参照して記述されるように、加入者がMASを呼び出して、アプリケーションを加入者のデバイスにダウンロードさせる場合にMASコンポーネントに起こる処理ステップの観点からMASの機能が説明される。コンポーネントの他のデータフローおよび使用法が適切であり、かつ、処理されたコマンド、および/または、コンポーネントまたはコンポーネント内のコードが呼び出される方法に依存していることは、当業者に認識されている。
より詳細には、図5に示される例示的な実施形態において、J2MEまたはWAPハンドセット等の加入者デバイスからの通信は、入来リクエスト501および出行データ502としてそれぞれモバイルアプリケーションシステム500に提示され、モバイルアプリケーションシステム500から受信される。通常、MASは、(ウェブサイトベースのインタフェースとは対照的に)コマンドインタフェースを介して加入者によって呼び出され、2つの異なるタイプの入力リクエスト(アプリケーションの探索および要求されたアプリケーションのダウンローディング)を処理する。MASは、また、他のコマンドを処理するように呼び出され得る。また、MASのコンポーネントは、例えば、使用の情報を得るための管理のリクエストを実行するために、直接呼び出され得る。入力リクエスト501がアプリケーション探索のリクエストである場合、加入者、アプリケーションプロフィールおよびデバイスプロフィールに基づいて利用可能および適切なアプリケーションのリストをコンパイルし、戻す。アプリケーション探索を達成するためにMASによって通常に実行されたステップは、図4を参照して説明される。あるいは、入力リクエスト501が指定されたアプリケーションをダウンロードするリクエストである場合、MASは、アプリケーションを検索し、アプリケーションが適切であり、ダウンロードがデバイスおよびユーザに許可されていることを検証し、要求されたアプリケーションをプロビジョニングし、パッケージ化し、要求している加入者デバイスにパッケージ化されたアプリケーションを送る。プロビジョニングしているアプリケーションを達成するためにMASによって通常実行されたステップは、図3を参照して記述される。
プロトコルマネージャ503は、加入者デバイスとプロビジョニングマネージャ504との間のメッセージのプロトコル変換を実行する。プロトコル変換は、MAS500が任意の加入者デバイス(ワイヤレスまたは有線)と通信し得ることを保証し、(図1におけるワイヤレスネットワーク102等の)ネットワークにおいて用いられる通信プロトコルに独立であり、処理されるべき様々なプロトコル内で組み込まれ得る入来リクエストを許可する。例としてのプロトコルマネージャ503は、WAPおよびHTTPプロトコルのための組み込みサポートを有し、さらなるフォーマットおよびプロトコルのためのサポートを提供する周知の技術を用いて拡張され得る。WAPゲートウェイ(図示せず)等の1つ以上の別々のゲートウェイは、プロトコルマネージャ503、入来リクエスト501/出行データ502間に常駐し得る。これらのゲートウェイは、特定のプロトコルとしてターゲットされたメッセージを処理するように用いられ得る。プロトコルマネージャ503は、また、プラグインセキュリティ層を随意的に含み得、データ暗号化、復号化、および、エンド−トゥ−エンドセキュリティサポートに対する証明の管理を取り扱い得る。プロトコルマネージャ503が、所望なように安全な通信のための他のタイプのサポートを含むように拡張され得ることは、当業者に認識されている。
入来リクエストが適切に変換されると、プロビジョニングマネージャ504は、リクエストを処理し、必要なら他のコンポーネントのアシスタンスに関わる。例えば、リクエストが管理のクエリである場合、プロビジョニングマネージャ504は、MASに管理サーブレットにリクエストを転送し得る。代わりに、加入者デバイスにダウンロードされ得るアプリケーションのリストのためのリクエストである場合、プロビジョニングマネージャ504は、通信事業者から利用可能な各アプリケーションの性能およびリクエストを加入者のデバイスおよび加入者に対応する適切なデバイスおよび加入者プロフィールデータと比較することによってこのようなリストを生成するために、リポジトリ311およびプロフィールマネジメントコードに問い合わせ得る。一方、加入者からのリクエストが指定されたアプリケーションをダウンロードする場合、プロビジョニングマネージャ504およびデプロイメントマネージャ506は、加入者に分配するために要求されたアプリケーションを得て、プロビジョニングするように相互作用する。一実施形態において、プロビジョニングマネージャ504は、ユーザ、デバイス、請求および加入者リクエストによって参照されたアプリケーション情報を検証し、デプロイメントマネージャ506は、アプリケーションを回収し、プロビジョニングする。デプロイメントマネージャ506によって実行されたアプリケーションプロビジョニングプロセスは、以下の処理ステップのうちの1つ以上を含む。検索するステップ、点検するステップ、最適化するステップ、コードを編集するステップ、パッケージ化するステップであり、図7を参照して以下に記載される。
プロビジョニングマネージャ504は、プロトコルマネージャ503からの加入者リクエストを受信し、ダウンロードリクエスト、または、加入者リクエストに含まれる他のコマンドを取り扱う。ダウンロードリクエストは、各ダウンロードリクエストによって提出された情報、および、MASによってアクセス可能な他の情報(例えば、データリポジトリ511に格納されたプロフィール)に基づいて取り扱われる。アプリケーションをダウンロードする要求を処理する場合、プロビジョニングマネージャ504が加入者、加入者デバイス、および、要求されたアプリケーション(単数または複数)および請求に関連する情報のために前に生成された、または、利用可能なプロフィールを試験し、特定の加入者を用いる、加入者の請求方法に従う加入者のために要求されたアプリケーションの適切さを決定する。プロフィールを点検した後、プロビジョニングマネージャ504は、例えば、要求されたアプリケーションが首尾良く加入者デバイス上で動作し得るかどうかを評価しようとすることによって要求を賛成するか否定するかのいずれかである。例えば、アプリケーションの必要条件が特定の加入者デバイスの性能によって適合し得るかどうかを決定することによって、この評価が実行される。プロビジョニングマネージャ504は、また、請求方法が要求されたアプリケーションにセットアップされているかどうか、加入者は適合可能であり、ダウンロードを実行するために十分であるかどうかを決定する。例えば、加入者がプリペイド請求プログラムの一部であることをこの要求が示す場合に、プロビジョニングマネージャ504は、加入者のプリペイド請求額の資金がダウンロードされたアプリケーションを可能にするために十分であることを検証する。
1度認証されると、プロビジョニングマネージャ504は、キャッシュ505かデプロイメントマネージャ506かのいずれかから要求されたアプリケーションを獲得し得る。通常、キャッシュ505は、予めプロビジョニングされたフォーマットに頻繁にダウンロードされたアプリケーションを格納するように用いられ、一方、デプロイメントマネージャ506は、それらが要求される間に、動的にアプリケーションをプロビジョニングするように用いられる。通信事業者によって制御されるアプリケーションは、通常、予めプロビジョニングされて、キャッシュ505に格納され、例えば、インターネットサイトを介して利用可能なアプリケーションは、通常、ダウンロードが要求される場合にのみプロビジョニングされる。
キャッシュ505は、加入者デバイスへの要求されたアプリケーションのより早い送達を提供するように用いられる。キャッシュ505は、例えば、特定の加入者デバイスのために、または、認可されたアクセスに応じて、特定のプロフィールのための時間に先行して処理されているプロビジョニングされたアプリケーションをキャッシュするように用いられる。既に点検され、最適化され、編集されているキャッシュ505に格納されたアプリケーションは、配置のプロビジョニングが整うとタグ付けされる。MASの他のコンポーネント間で類似のキャッシング機能をインプリメントすることによってシステムパフォーマンスが強化され得ることも当業者は、認識している。例えば、インターネットアプリケーションを保持するキャッシュは、デプロイメントマネージャとインターネットとの間に常駐し、インターネットアプリケーションと通信するために必要とされるアクセス時間を低減し得る。また、例えば、保管されていないJARファイルを保持するキャッシュは、計装処理を早めるようにインプリメントされ得る。他の構成も可能である。特定の加入者および特定のデバイスに対する要求された認証アプリケーションがキャッシュ505に発見されない場合、そのアプリケーションは、デプロイメントマネージャ506を介して検索され得る。デプロイメントマネージャ506は、加入者デバイスへの送達用のアプリケーションを用意する。デプロイメントマネージャ506は、アプリケーション(例えば、不当なアプリケーション検出、制限されたAPIの利用、試行分配(1セットの回数または1セットの時間のみで許可される使用)および他の請求方法のためのサポート、要求している加入者デバイスのためのアプリケーションサイズ最適化等のアプリケーション)を用意すること、維持することおよびプロビジョニングするという多くの面、ならびに他の面を管理する。デプロイメントマネージャ506は、アプリケーションを獲得し、アプリケーションのインスタンスが要求される場合に、アプリケーションの意図された(要求された)使用のために各アプリケーションインスタンスをプロビジョニングする。デプロイメントマネージャ506は、また、前もってそれらのプロフィールのためにアプリケーションをプロビジョニングすることによって、キャッシュ505、または他のデータリポジトリに素早いアクセスに対する結果を格納することによって、特定のデバイスおよび/または加入者プロフィールのためのアプリケーションを予め配置(「予めプロビジョニング」)し得る。図7を参照して以下で説明されるように、デプロイメントマネージャ506は、通信事業者のアプリケーションデータリポジトリから、(信用されている、または、信用されていない)遠隔アプリケーションホストから、または、任意の他のアプリケーションソースからアプリケーションを配置し得る。デプロイメントマネージャ506が要求されたアプリケーションを適切にプロビジョニングした後、デプロイメントマネージャ506は、出て行く応答に対する任意の後処理のために、プロビジョニングマネージャに要求されたアプリケーションを戻す。
プロビジョニングされたアプリケーションがユーザに伝達されているとき、取引に関する詳細は、通常、ロギングマネージャ508に記録される。ロギングマネージャ508は、請求マネージャ507にアクセス可能である様々な請求方法を可能にする。記録されたデータは、入来リクエスト501に関する情報、および、加入者ID、ダウンロードのサイズ、ダウンロードの時間および日付、ダウンロードされた特定のアプリケーション等の配置されたアプリケーションを含む。ダウンロードに関して記録された情報が幅広いので、通信事業者は、サービスおよび加入者の異なるカテゴリーに応じて、アプリケーションのプロビジョニングのための請求の方法に、非常に柔軟性を有している。通信事業者は、例えば、用いられた空路量、ダウンロード時間、ダウンロードされたデータの量、クライアントの人口統計によって、または、ダウンロードされた特定のアプリケーションに基づいて請求し得る。
請求マネージャ507は、請求方法を実施する際に支援する義務がある。例示的な実施形態において、いくつかの初期請求オプションが提供される。(1)アプリケーションをダウンロードすることに基づいてダウンロード料、(2)ネットワークパケットの送信に基づくパケットベースの請求料、(3)日毎、周毎または月毎のような定期的な料金に基づく加入料、(4)お試し使用の任意の計算法に基づくお試し使用料、例えば、アプリケーションが実行され得る回数、(5)プリペイド請求。これらの請求オプションは、通信事業者レベルおよびアプリケーションレベルの両方でカスタマイズ可能であり、一以上が特定のアプリケーションのために提供されるときに、所望の請求オプションは、加入者によって選択され得る。例示的なモバイルアプリケーションシステム500において、アプリケーションプログラミングインタフェース(API)は、通信事業者の存在する請求サブシステムによって容易に統合するために提供される。一実施形態において、加入者は、後にダウンロードされるべきアプリケーションのために予めお金を払う。加入者が予めお金を払われたアプリケーションをダウンロードするときに、請求マネージャ507は、請求記録を通信事業者のプリペイド請求システムへの請求記録を転送して、これにより、加入者の金額は、変化され得、更新され得る。代替的な実施形態において、プリペイド加入者口座が格納され、請求マネージャ507によって維持される。他の構成も可能であり、請求方法の他のタイプのために支持する。請求マネージャ507が請求に関連した情報を生成した後、アプリケーションは、プロトコルマネージャ503に送信され、出向データ502として顧客に必要とされ、かつ、伝送される場合、異なるプロトコルのために再フォーマットされる。
管理者509は、例としてのMAS500の他のコンポーネントと相互作用し、MAS500の様々な局面をカスタマイズする。たとえば、管理者509によって、通信事業者は、カスタマイズ可能なプロビジョニングに関連する規約をインプリメント可能にし、モバイルアプリケーションシステム自体の再プログラミングコンポーネントを介してそれら自体のインフラストラクチャーでMASを統合する。これにより、加入者、通信事業者、システム管理者およびコンテンツプロバイダは、プロフィール管理、レポートの生成、請求方法管理およびサーバ管理を実行する際に、柔軟性が強化され得ます。
心拍モニタ510は、モニタし、他のMAS500コンポーネントのレポートを提供し、関連するシステムイベントが起こるときに、適切な通告を提供する。例えば、コンポーネントが動作しなくなる等のシステムの問題を検出する。例えば、心拍モニタ510は、プロトコルマネージャ503をモニタ可能であり、プロトコルマネージャ503が所定の時限内に入来リクエストに応答するかどうかを決定する。プロトコルマネージャ503が適切に応答していないことを心拍モニタが決定する場合、多数の心拍モニタ510は、第1のモニタが適切に機能しているかどうかをモニタし得、必要なら引き継ぎ得るように提供される。心拍モニタ510は、(状態リクエストでデバイスにポーリングすることによって)能動モニタリングと(適切な時間に特定の種類の通信が起こることを検証することによる)受動リスニングとの両方が可能である。心拍モニタ510は、また、産業標準プロトコル、例えば、シンプルネットワークマネジメントプロトコル(SNMP)に対してインタフェースを提供し、他の外部コードがMASをモニタすることを可能にする。
図5を参照して説明されるように、MASプロビジョニングマネージャは、入来ダウンロードリクエストおよび他のコマンドを処理し、ダウンローディングためのアプリケーションの動的プロビジョニングを駆動する。図6は、モバイルアプリケーションシステムの例示的なプロビジョニングマネージャのコンポーネントの例示的なブロック図である。一実施形態において、プロビジョニングマネージャ600は、MASコマンド、制御プロセッサ620(「MCCP」)、検証部601、XSLTプロセッサ630、リクエストプロセッサおよびポストプロセッサ640、ならびに、MASデータクエリエンジン650を含む。MCCPは、リクエストを復号化する責任を負い、リクエストを正しいMASサブコンポーネントに導く。例えば、発光されたアプリケーションをダウンロードする、または、アプリケーション探索を実行する等である。加入者検証器602、デバイス検証器603、プリペイド請求検証器604およびアプリケーション検証器605を含む検証器601は、検証を実行して、加入者およびデバイスのためのアプリケーションを適切に決定する。XSLTプロセッサは、例えば、産業標準拡張スタイルシートプロセッサとしてインプリメントされ得、リクエストデバイスのレンダリング能力に応じてデータをフォーマットするように用いられる。一実施形態において、XSLTプロセッサは、SML用のスタイルシートをサポートするが、HTML、Java(登録商標)、WML、XHTML Basicおよびテキスト、または、任意の他のメークアップまたはレンダリング言語用のさらなるスタイルシートを提供するように容易に拡張され得る。リクエストプロセッサおよびポストプロセッサ640は、リクエスト「パケット」のパラメータを操作して、他のコンポーネント内で通信し、このレベルで「フック」され得る任意のタイプのプロセッシングを実行するように拡張され得る。MASデータクエリエンジン650は、様々なデータリポジトリとの通信を管理する。MASデータクエリエンジン650は、プロビジョニング用リーダ651、プロフィール用リーダ652および構成データ用のリーダ653を含む。容易に見ることができるようにこれらのコンポーネントを接続することを示す矢印は存在しないが、当業者は、コンポーネントが多くの方法で相互接続され、かつ、相互動作されることを認識している。
最初に、プロビジョニングマネージャ600は、プロトコルマネージャ(例えば、図5のプロトコルマネージャ504)等から入来リクエストを受信する。マネージャ600は、入来リクエストを解析し、後に行われるプロビジョニング、請求またはロギングステップを強化し、変更し、または、制限することを動的に考慮するリクエストを修正することによってリクエストをオプションで再処理する。このような動的修正によって、通信事業者が通信事業者自体のインフラストラクチャを動的にシステムにフックできる。例えば、プロビジョニングマネージャ600は、入来ダウンロードリクエストに添って通過されたリクエストヘッダを観察し得、ヘッダを修正、追加または削除して、システムの挙動を修正する。MASの他のコンポーネントがヘッダと共に含まれる情報を用いているので、ヘッダ情報を更新するまたは修正することは、特定のリクエストの機能を拡張または制限する、あるいは、MASの挙動を修正するという手段を提供する。
(ウェブサイトまたはAPIを介して直接呼び出されることに対して)MASコマンドインタフェースから受信されるときに、リクエストがMCCPによって処理される。リクエストがアプリケーション検索のためであるか、コンテンツをダウンロードすることである場合、様々な検証器601は、アプリケーションの適合性を決定するように用いられる。リクエストがいくつかの他のコマンド用である場合、結果的にリクエストは処理される。
アプリケーション検証器604は、要求されたアプリケーションが配置用の通信事業者によって禁止されているかどうかを決定する。詳細には、アプリケーション検証器604は、アプリケーションのリストを検査する。ここで、通信事業者が要求されたアプリケーションを禁止するかどうかを決定するように、このアプリケーションのリストがダウンロードされることが可能であることを通信事業者は望まない。例えば、不当な挙動を提供するようにアプリケーションが突然発見され、通信事業者が通信事業者の分配を直ぐに中断することを望む場合に、この状況が起こる。
加入者検証器601は、リクエストを生成したある者から加入者のアイデンティティを決定し、サービスのレベルを決定する。このサービスのレベルに対して、加入者は、加入者が特定のアプリケーションを用いることを認証されるかどうかを決定するように権利を与えられている。特定のサービスに対する加入者は、権利を与えられ、プロフィールリーダ652、対応する加入者プロフィールを検索して、用いることによって、ならびに、様々な要因を単独でまたは組み合わせて試験することによって決定され得る。要因は、例えば、任意の月内で許可されたダウンロード数、ダウンロードに必要とされる時間、1日および1週でリクエストがなされる時間、特別提供の利用可能性およびグレースピリオド等を含み得る。加入者検証器601は、また、加入者が所属する加入者グループを決定し得、加入者グループ全体として考慮される、および、考慮されないサービスを決定することによって加入者に許可されたアクセスレベルを決定する。加入者検証器によって実行された決定の例示的な実施形態は、図17を参照して説明される。
デバイス検証器602は、加入者デバイス(この加入者デバイスからリクエストがなされる)のタイプおよび能力を決定し、デバイスの能力が特定のアプリケーションをサポートするために十分であるかどうかを決定する。加入者デバイスの能力は、存在するなら、要求している加入者デバイスに対応するプロフィールリーダ652を用いて検索することによって決定されている。デバイスプロフィールは、加入者デバイスで適切に実行する要求されたアプリケーションによって必要とされた特性をデバイスが有するかどうか決定するように試験される。デバイス検証器502によって実行された決定の例示的な実施形態は、図18を参照して説明される。
プリペイド請求法がMASによってサポートされるとき、個々の加入者用の請求記録が格納される場所はどこでも、プリペイド請求検証器603は、通信事業者プリペイド請求インフラストラクチャをクエリする。ダウンロードされたリクエストは、通常、通信事業者によって示されたように、加入者の口座に十分な資金があるときのみ、プロビジョニングへと進むことを許可される。
加入者デバイスが要求されたアプリケーションを動作させるために適切であることをプロビジョニングマネージャ600が決定した後、加入者は、アプリケーション用い、十分な資金を有している(プリペイド請求スキームの一部の場合)ことを認証される。次いで、プロビジョニングマネージャ600は、デプロイメントマネージャのプロビジョニングインタフェースを呼出し、対応するプロビジョニングされたアプリケーションを獲得する。デプロイメントマネージャは、図7を参照して説明され、要求されたアプリケーションを検索かつプロビジョニングし、それをプロビジョニングマネージャ600に戻す。
加入者デバイスにダウンロードするために適したプロビジョニングされたアプリケーションがデプロイメントマネージャから獲得された後、プロビジョニングマネージャ600は、オプションでリクエストをポストプロセスする。プリプロセスすることによって、ポストプロセスは、検証されたリクエストに対してさらなる修正を実行し得、これにより、この修正は、MASの機能を拡張するように用いられ得る。例えば、命令は、プロトコルマネージャ(例えば、図5のプロトコルマネージャ)を後に導入し、カスタムプロトコルに対するリクエストをパッケージ化する。
上述したように、(図5のデプロイメントマネージャ506等の)デプロイメントマネージャは、プロビジョニングマネージャからの加入者リクエストを受信し、または、(例えば、システム管理者から)直接のリクエストを受信して、リクエストに対応するプロビジョニングされたアプリケーションを獲得する。リクエストは、要求されたアプリケーションのURLを含み、要求されたアプリケーションは、アプリケーション用のソースの位置を示す。一実施形態において、URLは、ミラーサイトのリストを参照し、MASから決定された最適位置からアプリケーションを検索する。別の実施形態において、URLは、プロキシであり、デプロイメントマネージャは、URLをその実際の位置に再び向ける。このような方法は、さらなる安全な層をシステムに提供し得る。アプリケーションに対する位置を示す任意の方法がこれらの技術によって用いられ得、これらの技術がURLではなくインジケータで動作することを、当業者は認識している。アプリケーションは、また、アプリケーションが配置され、加入者に送られる前に、送信用に点検され、最適化され、そして、編集される。
図7は、モバイルアプリケーションシステムのデプロイメントマネージャのコンポーネントの例示的なブロック図である。デプロイメントマネージャ700は、リトリーバ701、リモートフェッチ702、ローカルフェッチ703、インスペクター704、オプティマイザー705、計装インストーラ706、および、アプリケーションパッケージャ707を含む。リトリーバ701は、リモートフェッチャー702かローカルフェッチャー703かのいずれかを用いて適切なホストサーバからアプリケーションコードを獲得し、次いで、様々なコンポーネントを介してアプリケーションコードをし、適切にアプリケーションコードをプロビジョンする。特に、インスペクターコンポーネント704は、不当のコードおよび禁止されたAPIのためのアプリケーションを点検する;オプティマイザーコンポーネント705は、可能なら、コードのサイズを低減する;計装インストーラ706は、通信事業者特定規約および管理機能を、例えば、請求および通告メッセージをコードに組み込む。
詳細には、リトリーバ701は、多数のユーザおよび多数の通信事業者が異なるプロトコルを用いて様々なネットワークを介して通信することを可能にする。このことは、通信事業者が分配のためにホストするソフトウェアアプリケーション(コンテンツ)の位置で通信事業者を柔軟にすることを可能にすることによって、部分的に達成される。例えば、通信事業者は、FTPまたはHTTPサーバ、標準DBMS等のデータリポジトリに対する指定されたディレクトリにこのようなアプリケーションを格納することによって通信事業者自身のネットワークから全ての利用可能なアプリケーションをホストすることを選択し得る。通信事業者アプリケーションストア708は、このようなデータリポジトリであり、MAS自体のサーバに常駐し得る。リトリーバ701は、ローカルフェッチャー703を活動させ、ローカルに格納されたデータのコピーを検索する。通信事業者は、また、信用された第3者のアプリケーションプロバイダにリモートアプリケーションホスト709からのアプリケーションをホストすることを可能にすることを選択し得る。このリモートアプリケーションホスト709は、信用された第3者アプリケーションプロバイダの制御の下にある。さらに、オープンプロビジョニングを実行するように用いられるとき、リトリーバ701は、必ずしも信用されたソースからではない第三者のホストからアプリケーションを検索し得る。両方の場合、通信事業者は、第3者によって供給されたURLを用い、入来リクエストをリモートアプリケーションホスト709のうちの1つでホストされる特定のダウンロード可能なアプリケーションに帰する。リトリーバ701は、通常、リモートフェッチャー702を活発にし、このようなホストが公開プロトコルを介してアクセス可能であるときに、リモートアプリケーションホスト709でホストされたこのようなアプリケーションを検索する。一実施形態において、ローカルフェッチ703は、ローカルに格納されたデータを素早く検索するように最適化され得るが、一方で、リモートフェッチャー702は、必要な公開プロトコルをインプリメントし、公開ネットワークを介してアクセス可能なホストに常駐するアプリケーションを検索する。
信用された第3者ホストまたは通信事業者の好みに応じて、リトリーバ701によって検索されたアプリケーションコードは、既にプロビジョンされ得る。リトリーバ701がプロビジョンされないコードを獲得する場合、コードは、インスペクタ704、オプティマイザ705および計装インストーラ706にさらなる処理のために送られる。インスペクタ704は、検索されたプロビジョンされないアプリケーションコードを試験し、不当なコードを検出する。Java(登録商標)コードにおいて、インスペクタ704は、また、アプリケーションコードのクラス解析を実行し得、アプリケーションにおけるクラスが番号、タイプ、APIコールの周波数等の所望の標準に一致する。さらに、インスペクタ704は、アプリケーションフィルタを適用して、パッケージ、およびメソッド名、クラス、フィールドまたは、不便で、不当な挙動を有すると疑われる、または、要求している加入者、ターゲットデバイスまたはいくつかの他のターゲットによって用いられるための認証され得ないAPIの他のフォームを検出する。インスペクタ704は、また、アプリケーションフィルタを適用し得、API使用パターンを検出し得る。インスペクタ704は、(図6を参照して説明された)プロビジョニングマネージャによって検索された加入者およびデバイスプロフィールを使用するために利用可能であり、これにより、インスペクタ704は、デバイス毎に、または、加入者ベース毎に制限を強化し得る。例示的な実施形態において、インスペクタ704は、このようなパラメータの閾値、および、例えば、ロギングマネージャ等の他のエンティティによるさらなる点検用のパラメータをフラッギングするための閾値が、調節されることを可能とする。インスペクタ704が潜在的に不当な挙動を探索する場合、プロビジョニング(および、引き続くダウンローディング)、ならびに、ロギングマネージャに報告された犯罪者のアイデンティティによる侵害は、防がれ得る(または、加入者が警告する)。
インスペクタ704が首尾良く検索されたプロビジョニングされないアプリケーションコードを試験した後、コードは、さらなる処理のためにオプティマイザー705に転送され、アプリケーションのサイズを減少させる。オプティマイザー705は、当該分野で周知の方法を用い、可変の名前を短くし、アプリケーションから用いられていないコードを取り除く。このような最適化プロシージャは、通常、ダウンロードをより早くする。オプティマイザー705は、また、当該分野で周知の技術を用い得、この技術が実行されると、特定の命令の使用をより効率的な命令に変化させる等で、アプリケーションのスピードが増加される。MASのコンポーネントが拡張され得るか修正され得るので、任意の最適化がシステム内に組み込まれ得ることは、当業者は認識している。
最適化の後、点検され、最適化されたアプリケーションコードは、さらなる処理のために計装インストーラ706に転送される。ダウンロード可能なアプリケーションの供給元が通常、個々の加入者のための要求されたアプリケーションを修正する能力を有しないので、加入者に特定のコードを加えるために、アプリケーションのコードを修正することが望ましい。例えば、「お試し使用」スキーム等の請求オプションによって、例えば、アプリケーションに、ある回数のみ、または、特定の期間のみ実行させるアプリケーション内にコードを挿入することによってインプリメントされ得る。同様に、目的をロギングするための情報を報告するコード、または、(伝送されたネットワークパケットの数に基づいて充填するパケットベースの請求等の)他の請求オプションのための情報がインプリメントされ得る。また、オープンプロビジョニングの場合、加入者が信用されていないソースからコンテンツをダウンロードして、実行しようとしていることを、加入者に警告するコードが備えられ得る。計装インストーラ706は、また、通信事業者によって特定される他の規約(例えば、促進および広告キャンペーンをインプリメントするという規約)にしたがって、アプリケーションのコードを修正し得る。ライブラリを操作する等の周知の方法を用いることによって、または、クラスおよびメソッドをサブクラス分けすることによって、コードが、多くの他の目的のために備えられ得る、または、所定の位置で備えられ得ることは、当業者は、認識している。
計装インストーラ706がリクエストされたアプリケーションを備えた後、アプリケーションパッケージャ707が、点検され、最適化され、備えられたアプリケーションをパッケージ化する。プロビジョニングマネージャによって獲得されたデバイスプロフィールから決定されて、図6を参照して説明されるように、アプリケーションパッケージャ707は、加入者デバイスが読み出し得る態様で、アプリケーションファイルのコンテンツをフォーマットすることによって、要求されるアプリケーションをパッケージ化する。例えば、多くの加入者デバイスは、圧縮された「JAR」フォーマット(Java(登録商標)アーカイブフォーマット)内に提示されるファイルを読み出す能力を有している。この「JAR」フォーマットは、要求されたJAVA(登録商標)アプリケーションを圧縮し、かつ、パッケージ化するように用いられるフォーマットである。いくつかのデバイスが圧縮されたJARファイルを受け得ないので、アプリケーションパッケージャ707は、圧縮されたJARフォーマットにファイルを受け得ないこれらの加入者デバイスのためのプロビジョニングされたアプリケーションのカスタムパッケージングを提供する。このようなパッケージングコンバータ、および、JAR以外のフォーマット用の他のコンバータが、パッケージングルーチンをサブクラス分けすることによる等の周知の技術を用いて、アプリケーションパッケージャ707にインストールされ得ることは、当業者に認識されている。さらに、いくつかの加入者デバイスは、加入者デバイスが受信し得るパケットのサイズを制限し得る。検出されるとき、アプリケーションパッケージャ707は、このような加入者デバイス用のプロビジョンされたアプリケーションを、多数のデータファイルにパッケージ化し得る。加入者デバイスは、受け取ると同時に、この多数のデータファイルを単一のJARファイルに組み込み得る。多数のデータファイルは、アプリケーションをインストールするために加入者デバイスによって用いられ得る。
図5を参照して説明されるように、アドミニストレータコンポーネント(例えば、アドミニストレータ509)は、異なるタイプのユーザに用いられ得、モバイルアプリケーションシステムの様々なコンポーネントを構成し、嗜好を特定する。図8は、モバイルアプリケーションシステムのアドミニストレータコンポーネントの例示的なブロック図である。一実施形態において、アドミニストレータ800は、好ましくは、多数のウェブベースユーザインタフェースを提供して、コンテンツプロバイダ、システム(通信事業者またはMAS)アドミニストレータ、加入者、および、顧客サービスサポートスタッフを、MASのコンポーネントにアクセス可能にし、彼らの経験をカスタマイズ可能にする。特に、例示的なアドミニストレータは、コンテンツプロバイダウェブサイト801、アドミニストレータウェブサイト802およびパーソナリゼーションウェブサイト803を提供する。それぞれ説明されたウェブサイトが多数のスクリーンディスプレイを含み得ること、および、これらのおよび/または他のスクリーンディスプレイ、およびウェブサイトが同じ結果を達成する様々な構成で結合され得ることは、当業者が認識している。例えば、アドミニストレータウェブサイト802は、別々の顧客ケアウェブサイト804をオプションで含み得る。この顧客ケアウェブサイト804は、(通常、通信事業者の)顧客ケアの代表者によって用いられ得、通信事業者に代わって、個々の加入者の口座を管理する。
アドミニストレータ800は、コンテンツプロバイダが用いるためのコンテンツプロバイダウェブサイト801を提供し、ダウンロード可能なアプリケーションをMASに提出し、提出されたダウンロード可能なアプリケーションが検討され(例えば、点検され)、公開用に認可されるかどうかをモニタする。コンテンツプロバイダは、また、コンテンツプロバイダウェブサイト801を用い得、アプリケーションプロバイダに変更を勧め、それらのアプリケーションの人気をモニタする、または、MASアドミニストレータと通信する。
アドミニストレータ800は、また、MASシステムアドミニストレーションにアドミニストレーションウェブサイト802を提供し、例えば、コンテンツプロバイダによって提出された、公開され、ペンディングのアプリケーションを管理する。一実施形態において、アドミニストレーションウェブサイト802インタフェースは、別々のノードを提供し、アカウント、アプリケーション、加入者、デバイス、サーバおよびレポートを構築、構成および/管理する。
システムアドミニストレータは、アドミニストレーションウェブサイト802のアプリケーションノードを用い得、通信事業者によってサポートされたグローバルな請求方法を特定する。一実施形態において、アドミニストレータは、ダウンロード毎、ネットワーク利用毎(例えば、送信ベース)、加入毎、および、金額のかからないお試し使用毎に料金を発生させる多数の請求オプションを選択し得る。
他の機能は、また、アドミニストレーションウェブサイト802を介してシステムアドミニストレータにアクセス可能である。例えば、システムアドミニストレータは、加入者ノードを用い得、加入者によってMASの使用を管理し、各加入者用の加入者プロフィールを構築し得る。加入者プロフィールは、各加入者によってダウンロードされた公開されたアプリケーションのリストを維持し、特定の加入者が動作し得ない禁止されたアプリケーションのリストを維持し、特定のユーザが所属する加入者グループを生成かつ維持する。一実施形態において、これらのプロフィールは、MASのデータリポジトリ(例えば、図5におけるデータリポジトリ)に格納され、プロビジョニングマネージャのプロフィールリーダ(例えば、図6のプロフィールリーダ652)によって読み出される。
システムアドミニストレータは、また、加入者にメッセージ(例えば、更新されたバージョンが加入者によって既にダウンロードされたアプリケーションのうちの1つに対して利用可能であるという通告)を送り得る。この挙動は、時折、「プッシュ」能力と呼ばれる。加入者とコンタクトを取るための情報は、加入者プロフィールから通常利用可能である。
さらに、システムアドミニストレータは、計装インストーラ706が適切にダウンロードされたコンテンツを計装する場合、ワイヤレスネットワークを介してダウンロードされたアプリケーションを遠隔に動作させる、または、停止させることを選択し得る。例えば、計装されたアプリケーションは、アプリケーションの新規のバージョンが利用可能であるかどうかを認識するようにホストサーバ(通信業者または第3者)によってチェックするように強要され得る、および、アプリケーションサーバの新規のバージョンをダウンロードするかどうかを判定するように加入者を促し得る。計装されたアプリケーションは、また、時限が失効する、または、アプリケーションが動作可能な回数を越える(例えば、お試し期間請求オプションの使用)かどうかを判定するようにホストサーバによってチェックすることを強要され得る。計装されたアプリケーションは、また、例えば、1日のセットされた期間内に特定の回数のみ使用されるようにアプリケーションを制限し得る、1日時間制限を置き得る。これらの制限によって、効果的に、システムアドミニストレータが加入者の特権を無効にする、または、制限することを可能にし、アプリケーションが加入者のワイヤレスデバイスにダウンロードされた後にでさえアプリケーションを実行可能にする。他の制限および能力が同様に強要され得ることは、当業者が認識している。
システムアドミニストレータは、アドミニストレータウェブサイト802のデバイスノードを用い得、アプリケーションのプロビジョニング中の検証のために用いられる情報を提出し、かつ、維持する。例えば、システムアドミニストレータは、特定のデバイスに対応するデバイスプロフィールのリストを生成かつ維持し得る。通常、システムアドミニストレータは、MASによってサポートされる各デバイス用のデバイスプロフィールを生成する。新規のデバイスプロフィールおよび対応するデバイス指定は、必要なら加えられ得る。各デバイスプロフィールは、例えば、ランタイムメモリおよびフラッシュメモリの量、チップアイデンティフィケーション、最大ダウンロードサイズ、およびデバイスが「OTA」に準拠しているかどうか(OTAは、Sun Microsystemの放送適合基準(Sun Microsystem’s Over The Air conformance specification)を参照する。OTAに従うデバイスは、他の能力に共通してデバイスの首尾良いダウンロードを追跡する。)等のハードウェアに特定の情報およびソース特性を含む。
各デバイスプロフィールは、また、デバイスによってサポートされる単一のJava(登録商標)プロフィールを指定し得る。Java(登録商標)プロフィールは、デバイスによってサポートされるJava(登録商標)APIを特定する。例えば、MIDP1.0規格(デバイスによってインプリメントされるJava(登録商標)APIのセットを規定する周知の規格)は、通常、この整合性を示すデバイスプロフィールを有する。デバイス(および、関連するJava(登録商標))プロフィールは、特定のデバイスがリソースを有し、アプリケーションによって必要とされるAPIのセットをサポートすることを保証するために、アプリケーションとの比較のための検証プロセス中にプロビジョニングマネージャによって用いられる。同じJava(登録商標)プロフィールが多数のデバイスに関連し得るが、デバイスは、通常、1つのJava(登録商標)プロフィールをサポートし得るのみである。システムアドミニストレータは、APIのセットを特定し、かつ、説明するアーカイブファイル(例えば、JARファイルまたは.zipファイル)の名前を特定することによって、Java(登録商標)をロードする。MASは、特定のアーカイブの構造(パッケージ、クラス、メソッドおよびフィールド定義)のために特定のアーカイブを試験し、この構造を含むプロフィールを生成する。これらのプロフィールは、また、アプリケーションフィルタを生成するように用いられ得、このアプリケーションフィルタによって、特定のAPIを用いるアプリケーションがプロビジョニングする、および/または、ダウンロードすることを防ぐ。Java(登録商標)が可能なデバイスおよびJava(登録商標)APIに関して主に記載されるが、特定のAPI、オブジェクト、クラス、変数および/または他のデータ構造がアプリケーションに存在して、デバイスによってサポートされているかどうかを決定することを言語がサポートしている限り、および、構造がバイト−コードレベルで確認され得る限り、MASが他の言語規格および他の言語が可能なデバイスに順応され得ることは、当業者が認識している。さらに、受信しているアプリケーションがソースをコンパイル、または、インタプリタし得、実行可能なファイルを生成する限り、これらの技術がソースコードレベルで使用するために採用され得ることは、当業者は認識している。
アドミニストレーションウェブサイト802によって、システムアドミニストレータが、プロビジョニングおよびデプロイメントマネージャによって提供される検証および点検プロセスを補充かつ補完する様々なセキュリティ技術および規約をインプリメントすることが可能となる。1つのこのような技術は、アプリケーションフィルタを規定する能力であり、記載されるように、これらは、特定のデバイスまたは他のターゲットを用いるアプリケーションによって呼び出され得るべきではないAPIを特定するように用いられる。これらの制限された能力および構造は、加入者のリクエストに応答して、アプリケーションプロビジョニングプロセス中に識別され得て、コンテンツプロバイダによるアプリケーションを提出すると、加入者が特定のデバイスに不適切なコードをロードしないことを保証することを助ける。提供される別のセキュリティ技術は、URLを変更する能力である。システムアドミニストレータは、アドミニストレーションウェブサイト802のサーバノードを用いてURLを変更マッピングを特定することによって、MASユーザの利便性および安全のためにURLを変更し得る。例えば、認証されていない広告サイトを指すURLは、支払い広告主からの広告を提供するURLに変更され得る。同様に、コンテンツを取り除いた後、システムアドミニストレータは、エラーメッセージの代わりに、以前にコンテンツを参照したURLを変更することを望む。また、変更されたURLは、アプリケーションの実際の位置を隠すように、アプリケーションがより容易に移動されることが可能であるように用いられ得る。入来データを受信すると、MASは、アプリケーションを特定する任意のURLと、アドミニストレーションウェブサイト802を用いて管理された、変更されたURLのリストとを比較し、特定される場合にそれらを変更する。さらなるおよび他のセキュリティ技術がMASによって追加され、利用され得、必要なら、アドミニストレーションウェブサイト802を介して構成され、様々な安全なメカニズムを提供して、加入者、コンテンツプロバイダ、アドミニストレータ、および様々なMASコンポーネント間で安全に通信し、MASに格納される、MASを介してアクセス可能である、または、クライアントデバイスに格納されるデータを安全に送達する。例えば、KSSL等の安全なプロトコルをサポートするデバイスが製造されるので、様々なMASコンポーネントは、プロトコルを用いるように構成され得る。さらに、適用可能な場所において、安全なインタフェースは、ウェブベースのインターフェースと、ウェブベースのインタフェースによって操作されたMASコンポーネントとの間のコンポーネントとしてインストールされ得る。
アドミニストレータ800は、また、パーソナリゼーションウェブサイト803を提供し、このパーソナリゼーションウェブサイト803は、加入者によって用いられ、加入者に関連するサービスおよび情報を注文、維持および表示し、アプリケーションを管理する。加入者は、パーソナリゼーションウェブサイト803を用いて、(請求された金額の変化をユーザに生じさせる可能性があり得る)サービスプランを変化させることによって、コンテンツのさらなるカテゴリーに加入する。新規のサービスプランが選択されると、次いで、加入者は、関連したコンテンツカテゴリーを用いるように認証される。
加入者は、また、現在のアプリケーションを観察することによって、アプリケーションを追加することによって、アプリケーションを取り除くことによって、アプリケーションを統括することによって、加入者のアプリケーションを管理し得る。アプリケーションを参照して説明されるが、これらの技術が任意のダウンロード可能なコンテンツに適用され得、アプリケーションベースの管理に加えて、カテゴリーまたは他の抽象概念によってアプリケーションが管理され得ることは、当業者は認識している。加入者は、パーソナリゼーションウェブサイト803を用い得、加入者の「個人アクセスリスト」(「PAL」)を生成かつ管理する。加入者のPALは、例えば、アプリケーション探索中に、加入者のデバイスにMASを表示させることを加入者が所望するアプリケーションのリストである。このリストは、アプリケーションの初期セット、または、アプリケーションを含まない初期セット、あるいは、加入者がダウンロードした、または、将来にダウンロードすることを所望するアプリケーションのリストを含む、あるいは、これらの組み合わせを含み得る。一実施形態において、PALは、加入者がダウンロードしたものを最初に含む。それぞれのワイヤレスデバイスおよびあらゆるワイヤレスデバイスに対してアプリケーションダウンロードの記録を維持しているので、MASは、加入者のダウンロードされたアプリケーションを追跡可能である。
加入者は、また、パーソナリゼーションウェブサイト803を用い得、アカウント情報、および、ダウンロードまたはアカウント活動の履歴を獲得および変更する。
パーソナリゼーションウェブサイト803を介して、システムアドミニストレータが、更新されたまたは新規のアプリケーション、あるいは、「共催イベント」(「tie−ins」)の利用可能性を加入者に通知し得る。これらによって、システムアドミニストレータは、(「プッシュ」メッセージを介して)製品の提供または広告を表示し得る。加入者は、加入者のワイヤレスデバイスを用いて、または、(パーソナルコンピュータ等の)ワイヤレスデバイスを介する優れた表示特性を好ましくは有する表示有線デバイスを用いてパーソナリゼーションウェブサイト803にアクセスし得る。優れた表示特性を有する有線デバイスがパーソナリゼーションウェブサイト803にアクセスするように用いられるとき、優れた表示特性が強化された共催イベントをサポートするように用いられ得る。
様々なウェブサイトベースのユーザインタフェースを存在するMASコンポーネントに提供することに加えて、MASのアドミニストレータコンポーネント(例えば、図5のアドミニストレータ509)によって、システムアドミニストレータは、MAS自体のコンポーネントを再プログラミングすることを通して、および、プロビジョニングルールを定義することを通して、カスタマイズ可能なプロビジョニング関連の規約をインプリメント可能となる。一実施形態において、再プログラミングは、アドミニストレータウェブサイト802を通して達成される。しかし、他のメカニズムを用いて、例えば、登録メカニズムを通してアドミニストレータと共に異なるコンポーネントおよびプロフィールを登録することによって、または、MASインタフェースの要素をサブクラス分けすることによって、この機能が達成され得ることは、当業者が認識している。提出されたアプリケーションを観察する際に、プロフィールマネジメント、レポート生成およびサーバアドミニストレーションを実行する際に、この機能によって、加入者、通信事業者、システムアドミニストレータの柔軟性が強化される。
例えば、システムアドミニストレータは、プロフィールマネジメントを用い得、プロビジョニングルールをインプリメントする。プロフィールは、本質的に動的なデータ駆動技術を提供する。加入者のためのサービスの様々なカテゴリー、および、加入者のグループを特定することによって、プロビジョニングルールは、様々なプロフィールを修正することによって、例えば、アドミニストレータコンポーネントのウェブサイトインタフェースを用いることによって、個々に適用され得るか、加入者のグループに適用され得るかである。さらに、プロビジョニングルールは、サービスのカテゴリーが個々の加入者、および、加入者のグループに適用される方法を決定するように用いられるプロフィールに格納され得る。プロビジョニングルールは、それら自体で修正され得る。
プロフィールマネジメントによって、プロビジョニング関連および請求関連のサービス規約を定義する際に高度な柔軟性を可能にする。例えば、通信事業者は、基本的なサービスレベルおよび高級なサービスレベルを含む加入サービスを提供し得る。基本的なサービスの加入者は、加入者がダウンロードする各アプリケーションに対して個々に変更され得一方で、高級なサービスの加入者は、より高い月額料金を払うが、付加的な料金を払うことなく無制限の数のアプリケーションをダウンロード可能とされる。別の例において、銀行等の企業は、通信事業者と交渉し、サービスの特定のタイプを設定する。このサービスのタイプにおいて、企業の顧客は、例えば、銀行の顧客が口座の残高を見る、および、資金を送ることを可能にする加入者デバイスの1つのタイプに対して、企業に特定のアプリケーションをダウンロード可能である。この例では、通信事業者は、企業に対して加入者プロフィールをホストし、LDAPおよび当業者に周知の関連するデータベース等の産業標準データベースを用いて企業がこの情報にアクセス可能となる。
アドミニストレータ800はまた、MASの他のコンポーネントを統治するために必要なユーザインタフェースを提供する。これらのインタフェースを介して、システムアドミニストレータは、MASの異なるモジュールを観測し、サーバ側のセキュリティを管理し、いつでもシステムステータスおよびサーバパフォーマンスをモニターし得る。システムアドミニストレータはまた、加入者のアカウントを管理し、様々なレベルのアドミニストレーティブ特権を割り当て得る。サーバアドミニストレータはまた、ログ管理およびトラブルシューティングを目的とした分析ツールといった機能を含む。
例示の実施形態において、モバイルアプリケーションシステムの方法およびシステムは、1つ以上の多目的コンピュータシステムおよび典型的なクライアント/サーバアーキテクチャによる無線ネットワークにおいてインプリメントされ、分散環境で動作するように設計および/または構成され得る。例示の実施形態は、例えば、1つ以上の無線ネットワークを介してMASと通信する複数の加入者デバイスを有するネットワーク環境といった、グローバルネットワーク環境において動作するように設計される。
図12は、モバイルアプリケーションシステムの実施形態を実行するための多目的コンピュータシステムおよび加入者デバイスの例示のブロック図である。図12のコンピュータ環境は、無線キャリア1208を介して通信する加入者デバイス1201および多目的コンピュータシステム1200を含む。各ブロックは、特定の実施形態に適した1つ以上のブロックを表し得、それぞれが個別の物理ロケーションに常駐し得る。
加入者デバイス1201は、コンピュータメモリ(「メモリ」)1202、ディスプレイ1203、入力/出力デバイス1204、および中央処理装置(「CPU」)1205を備える。ダウンロードされたアプリケーション1207と共にメモリ1202に常駐するハンドセットアドミニストレーションコンソール(Handset Administration Console)1206が示される。ハンドセットアドミニストレーションコンソール1206は、好ましくは、CPU1205で実行し、現在、メモリ1202にあるアプリケーション1207を実行するか、または、上述の図を参照して記載されるように無線キャリア1208を介してMAS1209からのアプリケーションをダウンロードする。
多目的コンピュータシステム1200は、1つ以上のサーバおよび/またはクライアント計算システムを備え、分散ロケーションの橋渡しをし得る。一実施形態において、MASは、Java(R) 2 Enterprise Edition(J2EE)を用いてインプリメントされ、J2EEコンプライアントアプリケーションサーバを提供する多目的コンピュータシステムで実行する。本実施形態によると、MASは、サーバ側のウェブ層、ビジネス層、およびデータベース層をサポートするJ2EE多層構成アプリケーションアーキテクチャを用いて設計され、符号化される。従って、多目的コンピュータシステム1200は、1つ以上のコンポーネントを実行することが可能な一つ以上のサーバおよび/またはMASのデータレポジトリを表す。
図示されるように、多目的コンピュータシステム1200は、CPU1213、メモリ1210、ならびに随意的にディスプレイ1211および入力/出力デバイス1212を備える。MAS1209のコンポーネントは、他のデータレポジトリ1220および他のプログラム1230と共に、メモリ1210内に常駐することが示され、好ましくは、1つ以上のCPU1213で実行する。典型的な実施形態において、MAS1209は、プロビジョニングコンポーネント1214、プロフィールおよび構造データを格納するためのデータレポジトリ1215、ならびに、アプリケーションストア1216を含む。以前に記載されたように、MASは、キャリアまたは他のホストシステムの必要性およびキャリアまたは他のホストシステムとの統合に依存する他のデータレポジトリおよびコンポーネントを含み得る。プロビジョニングコンポーネント1214は、図5に図示され、かつ、図5を参照して記載されるMASのコンポーネントを含む。プロビジョニングコンポーネント1214により、MAS1209は、ダウンロード可能なアプリケーション(単数または複数)の発見のための要求を受信すること、特定の加入者および特定の加入者デバイスによる使用のための要求の適合性を検証すること、その結果、要求されたアプリケーションをカスタマイズすること、および加入者デバイス1201に取得したアプリケーションを送信することが可能になる。アプリケーションストア1216は、加入者デバイス1201にダウンロードするのに適したアプリケーションを格納するデータレポジトリである。加入者デバイス1201にクイックダウンロードするためのアプリケーションが予め提供され得る(「静的プロビジョニング」)。すなわち、要求によって、アプリケーションが提供され得る(「動的プロビジョニング」)。データレポジトリ1215は、データレポジトリおよび回収サービスを提供して、加入者の熟練度およびデバイスの機能を確立し(プロフィール管理に使用されるプロフィールをホストすること)、各カスタマーデバイスに適したアプリケーションを決定する。
MAS1209が、複数の極めて不均一なコンピュータシステムおよびネットワークから成る分散環境にインプリメントされ得ることを、当業者は認識する。例えば、一実施形態において、プロビジョニングコンポーネント1214およびアプリケーションストア1215は、物理的に異なるコンピュータシステムに位置される。別の実施形態において、プロビジョニングコンポーネント1214の様々なコンポーネントは、個々のサーバマシンでホストされ、データレポジトリ1215および1216から遠隔に配置され得る。本発明の技術を使用するためのプログラムおよびデータの異なる構成およびロケーションが検討される。
例示の実施形態において、プロビジョニングコンポーネント1214は、1999年にSun MicrosystemsのJava(R) 2 Platform(Enterprise Edition Specification,Version 1.2)に詳細に記載されるように、J2EEを用いてインプリメントされ、本明細書中に参考として援用される。プロビジョニングコンポーネント1214は、プロトコルマネージャ、プロビジョニングマネージャ、配置マネージャ、ビリングマネージャ、および他のコンポーネントを含む。図13〜28は、これらの各コンポーネントによってインプリメントされる特定のルーチンの多様な例示の実施形態を記載し、図3〜8を参照して記載される機能性を実現する。例示の実施形態において,これらのコンポーネントは、同時に、かつ、非同期的に実行し得る。従って、コンポーネントは、周知のメッセージパッシング技術を用いて通信し得る。等しい同期の実施形態もまたMASインプリメンテーションによってサポートされることは、当業者にとって認識されることである。さらに、当業者は、他のステップが各ルーチンに対して実装され得ることを認識し、異なるオーダーおよび異なるルーチンにおいて、まださらにMASの機能を達成する。
図13は、異なるプロトコルを用いて、変化するワイヤレスネットワークを介して様々な加入者デイバスと通信するために、モバイルアプリケーションシステムのプロトコルマネージャによって実行されるし処理の例となるフロー図である。(例えば、図5におけるプロトコルマネージャ503を参照されたい。)ステップ1301において、プロトコルマネージャは初期化される。ステップ1302において、プロトコルマネージャは、加入者デイバスからの入来データリクエストがあるかどうかを判断し、かつ、あれば、ステップ1303に進み、なければ、ステップ1306に続く。ステップ1303において、プロトコルマネージャは、どのワイヤレスネットワーク(もしくはワイヤネットワーク)を介してリクエストが送信されたのかを判断することにより、入来リクエストに対して利用されるプロトコルを判断し、かつ、入来リクエストと関連するレコードに、その判断された保留中のリクエストに対するプロトコルを格納する。プロトコルレコードおよびシステムによって処理されるような入来リクエストの間の関連は、例えば、リクエストメッセージヘッダー内のプロトコルレコードに対する参照を格納することによって、維持される。ステップ1304において、プロトコルマネージャは、最初に利用されたプロトコル(例えば、HTTP)に対する入来リクエストを変換する。ステップ1305において、プロトコルマネージャは、変換されたリクエストをプロビジョニングマネージャ(例えば、図5におけるプロビジョニングマネージャ504)に送信し、その後、リクエストの処理ステップは終了する。ステップ1306において、プロトコルマネージャは、加入者デバイスに対する出行データリクエストのあるなしを判断し、もしあれば、ステップ1307に進み、なければ、リクエストの処理ステップは終了する。ステップ1307において、プロトコルマネージャは、出力データに対応する入来リクエストと関連する判断されたプロトコルを取り出す。判断されたプロトコルは、リクエストを発行した加入者デイバスによって利用されるプロトコルである。ステップ1308において、プロトコルマネージャは、判断されたプロトコルに応じて出行データメッセージを符号化する/変換する。ステップ1309において、プロトコルマネージャは、符号化された出行データを、リクエストを提示した加入者デバイスに送信し、その後、処理ステップは終了する。
図14は、加入者デバイスに対して要求されたアプリケーションの適合性を判断し、かつ、要求されたアプリケーションを、加入者デバイスが復号化され得る形式のデバイスに提示するために、モバイルアプリケーションシステムのプロビジョニングマネージャによって実行される処理の例となるフロー図である。(例えば、図5におけるプロビジョニングマネージャ504を参照されたい。)ステップ1401において、プロビジョニングマネージャは、任意の必要とされる初期化を実行する。ステップ1402〜1413において、プロビジョニングマネージャは、MAS「命令」を処理する。ステップ1402において、プロビジョニングマネージャは、入来リクエストで指定されるコマンド(または、ダウンロードするリクエスト)を判断する。ステップ1403において、プロビジョニングマネージャは、図6を参照して述べられたように、後で取られるべきあるプロビジョニングステップの拡張、変更または制限を提供するために入来リクエストを解析し、かつ、動的なリクエストを修正することによって、あるいは、通信または構成理由に対して他のパラメター値を挿入することによって、リクエストの前処理を行う。ステップ1404において、プロビジョニングマネージャは、「コマンド」がダウンロードのリクエストであるかどうかを判断し、そうであれば、ステップ1404に続き、そうでなければ、ステップ1408に続く。別の「タイプ」のコマンドとして現在実装されているが、ダウンロードリクエストが、パラメターとして「URL」を指定することによって示されていようとも、それらは本質的にコマンドであり、かつ、コマンド処理を実行するための同等なプログラムの技術が数多く存在することを、当業者は理解する。ステップ1405において、プロビジョニングマネージュは、要求されたアプリケーション(コンテンツ)MASに認識されているかどうかを判断し、そうであれば、ステップ1406に進んでウォールドガーデン(walled−garden)プロビジョニングを実行し、そうでなければ、ステップ1407に進み、オープン(open)プロビジョニングを実行する。例示的な実施形態では、コンテンツが「MASに認識されるようにし得るいくらかの方法がある。すなわち、システム管理者がアプリケーションを提供し公表するウェブサイトを利用する方法、コンテンツプロバイダが、最終的に承認され公開されるコンテンツを提示する方法、および、加入者が、提示プロセスを間接的に発生させる通信事業者に既知の信用できる第3者のコンテンツプロバイダから、既知のアプリケーションのダウンロードを要求する方法である。ウォールドガーデンプロビジョニングは、さらに図15に関連して議論され、オープンプロビジョニングは、図16を参照してさらに議論される。一旦プロビジョニングがステップ1406または1407で発生すると、リクエストは、ステップ1403において後処理がなされる。一方、ステップ1408において、設計されたコマンドがアプリケーションリストに対するリクエストである場合、プロビジョニングマネージャはステップ1409に進んで、アプリケーションディスカバリを実行するか、あるいは、ステップ1410に進む。アプリケーションディスカバリの後、プロビジョニングマネージャはステップ1413に進み、リクエストの後処理を行う。ステップ1409において、コマンドがダウンロード履歴に対するリクエストである場合、プロビジョニングマネージャはステップ1411に進み、ダウンロードされたアプリケーションのリストを取り出し、ステップ1413に進んで、後処理を行う。ステップ1412において、コマンドがいくらかの他のMASコマンドである場合、プロビジョニングマネージャは、適切にコマンドを処理し、ステップ1413に進む。ステップ1413において、図6に関連して説明されたように、プロビジョニングマネージャは、MASの他のコンポーネントを指示するための命令の参照を含むリクエストを修正することによってリクエストの後処理を行い、その結果、他のコンポーネントの機能を拡張となる、または、他のパラメターを修正する機能を実行する。例えば、プロビジョニングマネージャが、ダウンロードを要求する個々人が高価値の広告業者の従業員がクライアントであると判断した場合、プロビジョニングマネージャは、この特定のトランザクションに対する請求を行わないように請求マネージャに指示し得る。リクエストの後処理の後、プロビジョニングマネージャは、他のリクエストが受信されるまで処理を終了する。
図15は、プロビジョニングマネージャの実行ウォールドガーデンプロビジョニングルーチンによって、実行される処理の例となるフロー図である。(図14のステップ1406を参照されたい。)ウォールドガーデンプロビジョニングでは、要求されるアプリケーションは、加入者による権限および加入者デイバスの性能に対して検査する。具体的には、ステップ1501において、プロビジョニングマネージャは、要求されるアプリケーションに対応する加入者のプロフィール、デバイスのプロフィール、および、アプリケーションのプロフォールを取り出す。1つの実施形態では、これらのプロフィールは、図6においてプロフィールリーダー652を呼び出すことによって取り出される。ステップ1502において、プロビジョニングマネージャは、アプリケーション検査を実行して、例えば、禁止されたAPIが含まれているために、要求されるアプリケーションがワイヤレス通信事業者によって取り出されたかを検査する。アプリケーション検査は、図16を参照してさらに説明される。ステップ1503において、プロビジョニングマネージャは、加入者検査を実行し、通信事業者請求規約か別の方法で、要求されるアプリケーションに対する権限を加入者が与えられているかどうかを判断する。加入者権限は、図17を参照してさらに議論される。ステップ1504において、プロビジョニングマネージャは、デバイス検査を実行し、要求されるアプリケーションに対応するアプリケーションプロフィールによって指定されるリソースおよび要求されるおよび他の性能をデバイスが有するかどうかを判断する。デバイス権限は、図18を参照してさらに議論される。ステップ1505において、プロビジョニングマネージャは、プリペイド請求検査を実行し、プリペイド請求がシステムに含まれる場合、図6に関連して説明されるように、加入者の貯金がアプリケーションのダウンロードに対する課金に十分であるかどうかを検査する。ステップ1506において、プロビジョニングマネージャは、デプロイメントマネージャのプロビジョニングインターフェイスを呼び出し、プロビジョンアプリケーションに戻る。
図16は、プロビジョニングマネージャの検査アプリケーションルーチンによって実行される処理の例となるフロー図である。(図15におけるステップ1502を参照されたい。)まとめると、検査アプリケーションルーチンは、通信事業者が要求されるアプリケーションのダウンロード(グローバルに、または、加入者アイデンティティ、デバイス等の他の判断基準に基づいて対象を絞って)を禁じているかどうかを判断する。ステップ1601において、ルーチンは、通信事業者がダウンロードの許可を与えなかったアプリケーションのリストを要求し、取得する。このリストは、例えば、図6のMASクエリエンジン650を利用して、ローカルに取り出され、定期的に更新される。ステップ1602において、ルーチンは、要求されるリストから要求されるアプリケーションを検索して、アプリケーションが禁じられているかどうかを判断する。このことは、例えば、悪質なコードを含む、または、悪質なコードを含む疑いのあるアプリケーションのダウンロードを禁止するために、迅速で強固な方法を提供する。この方法は、(各デバイスが「ウイルスチェッカー」および悪質なアプリケーションデータファイルを取得する分割アプローチと比較して)中心に基づくアプローチを提供して、悪質なアプリケーションの拡大をストップさせる。ステップ1603において、このルーチンは、リクエストが禁止されたアプリケーションに対するものかどうかを判断し、そうであれば、ステップ1605に進み、そうでなければ、ステップ1604に進む。ステップ1604では、リクエストはログを取られ、ルーチンは成功した状態に戻る。ステップ1605では、失敗したリクエストがログを取られ、加入者に通知が送信され、ルーチンは失敗した状態に戻る。
図17は、プロビジョニングマネージャの検査加入者ルーチンによって実行される処理の例となるフロー図である。(図15のステップ1503を参照されたい。)まとめると、検査加入者ルーチンは、プロフィールにおけるアドミニストレータコンポーネント(例えば、図5におけるアドミニストレータ509)によって格納され保存される際に、加入者プロフィールをコンテンツカテゴリーおよびサービスプラン定義と比較し、かつ、加入者が要求されるアプリケーションをダウンロードする権限が与えられているかを判断する。具体的には、ステップ1701において、ルーチンが、どの通信事業者からリクエストメッセージを受信したのかを判断する。ステップ1702において、ルーチンは、リクエストを送信した加入者を識別する。これは、例えば、ルーティング情報に対してリクエストメッセージを調べることによって、達成され得る。ステップ1703において、ルーチンは、加入者プロフィール情報が通信事業者に格納されている場合に、判断された通信事業者との接続を確立し、ステップ1704において、通信事業者から識別される加入者プロフィールを取り出す。当業者は、例えば、図5のローカルデータレポジトリ511にアクセスするために図6のプロフィールリーダー652コンポーネントを利用して、加入者のプロフィールが、MAS上にローカルに格納され得、かつ、MASから取り出され得ることを理解する。ステップ1705において、ルーチンはリクエストを調べて、どのアプリケーションが要求されたのかを判断する。ステップ1706において、ルーチンは、加入者のプロフィールが要求されるアプリケーションのダウンロードに対して権限を有するかを判断する。この判断は、例えば、加入者が所属する加入者グループのサービスプランを調べて、アプリケーションがそのサービスプランと関連するコンテンツカテゴリーに所属するかどうかを判断することによって、達成され得る。さらに、ルーチンは、加入者プロフィールに適合する禁じられたアプリケーションが存在するかをチェックし、適合が発見されれば、順番にリクエストを拒絶する。ステップ1707において、リクエストに権限が与えられていると判断される場合、ルーチンはステップ1708に進み、そうでなければ、ステップ1709に進む。ステップ1708において、リクエストはログを取られ、ルーチンは成功した状態に戻る。ステップ1709において、失敗したリクエストはログを取られ、加入者に通知が送信され、ルーチンは失敗状態に戻る。
図18は、プロビジョニングマネージャの検査デバイスルーチンによって実行される処理の例となるフロー図である。(図15のステップ1504を参照されたい。)まとめると、検査デイバスルーチンは、加入者のデイバスと関連するデバイスプロフィールを、要求されるアプリケーションに対するアプリケーションプロフィールと比較し、かつ、アプリケーションによって要求されるリソースがデバイスプロフィールに従って利用可能であるかを検査する。ステップ1801において、ルーチンは、リクエストを受信した加入者デバイスのタイプを識別する。当業者は、この情報が、プロトコル交渉(negotiation)において判断され、典型的には、リクエストメッセージに格納されるルーティング情報から抽出され得ることを理解する。ステップ1802において、ルーチンは、識別されたデバイスと関連するすでに格納されたデバイスプロフィールにアクセスすることによって、加入者デバイスの性能を判断する。1つの実施形態では、デバイスプロフィールは、図6のプロフィールリーダー652を利用して取り出される。デバイスプロフィールが識別されたデイバスに対して発見されなければ、そのイベントはログを取られ、システムアドミニストレータは、それに応じて通知される。(1つの実施形態では、加入者が、電話番号を取得するために通信事業者に登録する際に、通信事業者は、各加入者によって利用されるデバイスの特定の種類がわかる。通信事業者は、好ましくは全ての登録されるデバイスのタイプが、デイバスプロフィールでサポートされることを保証するべきである。)デバイスプロフィールは、メモリ容量、プロセッサタイプ、処理速度、ダウンロード可能なアプリケーションの最小サイズ等の加入者デイバスの性能と関連する情報を含む。ステップ1803において、ルーチンは、既にアドミニストレータコンポーネントによって生成されたように、要求されるアプリケーションと対応するアプリケーションプロフィールを取り出し、かつ、調べることによって、要求されるアプリケーションに対する要件を判断する。アプリケーションプロフィールは、必要とされるメモリの量、生成されるAPI呼び出し、および、最小限のプロセッサ速度などを含むアプリケーションを実行するための要件を含む。要件はまた、サポートされる加入者デバイスのタイプに応じて、アプリケーションプロフィールで指定され得る。ステップ1804において、デバイスの性能は、デバイスとアプリケーションプロフィールを比較することによって、要求されるアプリケーションの要件と比較される。ステップ1805において、ルーチンは、デイバスが要求されるアプリケーションを実行する能力があるかを判断し、あれば、ステップ1806に進み、なければ、ステップ1807に進む。ステップ1806において、リクエストはログを取られ、ルーチンは成功した状態に戻る。ステップ1807において、失敗したリクエストはログを取られ、加入者に通知が送信され、ルーチンは失敗した状態に戻る。
図19は、プロビジョニングマネージャの実行オープンプロビジョニングルーチンによって実行される処理の例となるフロー図である。(図14のステップ1407を参照されたい。)ステップ1901および1902において、プロビジョニングマネージャは、既に利用可能であるか、または、キャッシュされたプロビジョンアプリケーションが存在するかどうかを決定する必要があり、あれば、ステップ1903に進み、なければ、ステップ1904に進む。このシナリオは、例えば、アプリケーションが、信頼されない、もしくは、未知の送信元からのものであってでさえ、以前に要求され、かつ、提供されたものである場合に、起こり得る。ステップ1903において、プロビジョンアプリケーションは戻される。もしくは、プロビジョンアプリケーションが発見されない場合、ステップ1904において、ルーチンは、リクエストメッセージ内に提供される指示されたURLを利用して、アプリケーションを取り出す。このアプリケーションは、MASによって以前に処理された可能性があり、従って、既に対応するアプリケーションプロフィールを有し得る。従って、ステップ1905において、ルーチンは、対応するアプリケーションプロフィールが存在するかどうかを決定し、存在すれば、ステップ1907に進み、なければ、ステップ1906で新規のアプリケーションプロフィールを生成し、ステップ1907に進む。ステップ1907において、ルーチンは、アプリケーションプロフィールを加入者のリクエストのデバイスのタイプに対応するデイバスプロフィールと比較することによって、デイバス検査を実行する。ステップ1908において、ルーチンは、デプロイメントマネージャのプロビジョニングインターフェイスを呼び出し、信頼されないアプリケーションを提供し、ステップ1909においてプロビジョンアプリケーションへ戻る。
図20は、プロビジョニングマネージャの実行アプリケーションディスカバリルーチンによって実行される処理の例となるフロー図である。(図14のステップ1409を参照されたい。)アプリケーションディスカバリには2つの基本タイプがある。加入者によって指定される判断基準と適合するアプリケーションの検索、および、格納された加入者の好みに基づくアプリケーションリストを提供されるシステムである。具体的には、ステップ2001において、ルーチンは、ユーザが検索判断基準を指定しているかどうかを判断し、指定していれば、ステップ2002に進み、指定していなければ、ステップ2004に進む。ステップ2002において、ルーチンは、アプリケーションストア(アプリケーションのデータレポジトリ)を検索し、指定された判断基準に適合するアプリケーション(コンテンツ)を照会する。例となる判断基準は、カテゴリー、金額、性別、年齢等を含む。ステップ2003において、リストは、最初にこれらの照会結果に設定され、ステップ2007に続く。ステップ2004において、ルーチンは、利用可能なパーソナルアクセスリスト(「PAL」)が存在するかどうかを判断し、あれば、ステップ2005に進み、最初にリストを判断されたPALに設定し、そうでなければ、ステップ2006に進み、最初にリストをディフォルト値に設定する。ステップ2007において、MASは、定義されたアプリケーションのセットを初期リストに追加する(スタートデックとして知られる)。スタートデックにより、本質的に、MASは、例えば高収入の広告業者に対して、アプリケーションディスカバーセッションのスロットを予約することができる。ステップ2008において、ルーチンは、図17に関連して説明されたように、リスト上の各初期のアプリケーションに対して検査加入者ルーチンを呼び出す。フィルタリングするステップ2008〜2009の任意の1つを経ていない任意のアプリケーションは、そのプロセスにおける次のステップ前に、リストからフィルタリングされる。ステップ2009において、ルーチンは、図18を参照して説明されたように、リスト上の初期の各アプリケーションに対して、検査デイバスを呼び出す。ステップ2010において、ルーチンは、内部で標準化されたフォーマットに対するXMLを生成し、ステップ2011において、このリストのコンテンツを加入者デイバスに対応する適切な言語に変換する。
図21は、加入者およびシステムアドミニストレータによるリクエストに応答してプロビジョンアプリケーションを提供するための、モバイルアプリケーションシステムのデプロイメントマネージャによって実行される処理の例となるフロー図である。(例えば、図5のデプロイメントマネージャ506を参照されたい。)システムアドミニストレータは、人気のあるデバイスに対する人気のあるアプリケーションが、加入者のリクエストに応答ために要求される時間を最小化するために、予め提供され(静的に提供され)、かつ、キャッシュされることを要求し得る。もしくは、全てのアプリケーションは、動的に提供され得、かつ、選択的にキャッシュされる。ステップ2101において、デプロイメントマネージャが初期化される。ステップ2102において、デプロイメントマネージャは、リクエストを評価して、要求されるアプリケーションのアイデンティティを判断する。ステップ2103において、デプロイメントマネージャは、図22を参照してさらに説明されるように、獲得プロビジョンアプリケーションルーチンを呼び出し、コンテンツの取り出しを制御し、プロビジョニングを発生させる。ステップ2104において、デプロイメントマネージャは、プロビジョンアプリケーションの格納を開始するために、リクエストがシステムアドミニストレータによって生成されるかどうかを判断し、そうであれば、ステップ2105に進み、そうでなければ、ステップ2106に進む。ステップ2105において、デプロイメントマネージャは、キャッシュ、通信事業者のアプリケーションストア、または、リモートアプリケーションホストのサーバに、プロビジョンアプリケーションを格納し、処理を終了する。ステップ2106において、デプロイメントマネージャは、プロビジョンアプリケーションをプロビジョニングマネージャに送信し、その後、処理を終了する。
図22は、デプロイメントマネージャの獲得プロビジョンアプリケーションルーチンによって実行される処理の例となるフロー図である。(図21のステップ2105を参照されたい。)まとめると、デプロイメントマネージャは、MASにおいて実装される現在の規約に応じて、アプリケーションコードを取り出し、それを検査し、最適化し、および、備える。ステップ2201において、ルーチンは、インデックスのいくらかのタイプを調べて、プレプロビジョンバージョンのアプリケーションがMASに既知の位置に存在するかどうかを判断する。この情報が格納される態様は、どのようにキャッシュおよび/またはデータレポジトリが実装されるかに関係する。ローカルファストデータストアおよびインデックスを用いてキャッシュを実装するための周知の技術が、利用され得る。同一のプロビジョニング要件を必要とするアプリケーションに対して、大量のリクエストが生成されることが予期される場合に、アプリケーションは予め定義され、かつ、格納され得る。これは、例えば、同じ種類の加入者デイバスを有する大量のユーザが、同一のアプリケーションを要求する場合に、発生し得る。このような場合、アプリケーションは、キャッシュ内に提供され、かつ、格納され(かつ、アプリケーションが提供される加入者デバイスを有するユーザによってリクエストが生成される場合に取り出される)、あるいは、他のMASデータレポジトリに格納され得る。ステップ2202において、プレプロビジョンバージョンのアプリケーションが存在する場合、ルーチンはステップ2203に進み、そうでなければ、ステップ2207に進む。ステップ2203において、プレプロビジョンアプリケーションの位置が判断される。ステップ2204において、ルーチンは、プリプロビジョンアプリケーションがローカルに格納されているかどうかを判断し、そうであれば、ステップ2205に進み、そうでなければ、ステップ2206に進む。ステップ2205において、ルーチンは、アプリケーションをローカルに取り出し(典型的には、MAS内、もしくは、通信事業者の敷地に配置され得る通信事業者のアプリケーションストアから)、そして戻る。ステップ2206において、ルーチンは、リモートアプリケーションホスト(例えば、第3者サーバ)からアプリケーションを取り出し、そして戻る。一方、ステップ2202において、ルーチンが、プレプロビジョンバージョンの要求されるアプリケーションが存在しないと判断する場合、ステップ2207において、ルーチンは、処理されていない提供されていないアプリケーションの位置を判断する。ステップ2208において、ルーチンは、アプリケーションコードがローカルに格納されているかどうかを判断し、そうであれば、ステップ2209に進み、そうでなければ、ステップ2210に進む。ステップ2209において、ルーチンは、通信事業者のアプリケーションストア、あるいは、他のローカルストレージからアプリケーションコードを取り出す。ステップ2210において、ルーチンは、リモートアプリケーションホストからアプリケーションコードを取り出す。ステップ2211において、ルーチンは、図23に関連してさらに説明されたように、取り出されたアプリケーションを提供し、そして戻る。
図23は、デプロイメントマネージャのプロビジョンアプリケーションルーチンによって実行される処理の例となるフロー図である。ステップ2301において、プロビジョンアプリケーションルーチンは、図24と関連してさらに説明されるアプリケーションを検査する。ステップ2302において、ルーチンは、図25を参照してさらに説明されるようにアプリケーションを最適化する。ステップ2303において、ルーチンは、図26に関連してさらに説明されるように、アプリケーションに計装をインストールする。ステップ2304において、ルーチンは、図23に関連してさらに説明されるように、配送に適した形式でアプリケーションをパッケージ化し、そして戻る。
図24は、デプロイメントマネージャの検査アプリケーションルーチンによって実行される処理の例となるフロー図である。(例えば、図23のステップ2301を参照されたい。)ステップ2401において、ルーチンは、パッケージ、クラス、メソッド、および、フィールド、あるいは、適切な他の構造を含むAPIを識別することが必要とされる場合、アプリケーションの構造を解体/復号化する。アプリケーションがjava(登録商標)でコード化される場合、検査はバイナリプログラムに対して実行され得、生成されるデバッキング/ロギング情報に対するアプリケーション自体に、ソースコードレベルチェックを挿入する必要はない。検査ステップのセットは、ステップ2401〜2405の例として説明される。しかしながら、当業者は、他の検査ステップは、本明細書中に説明されるものに追加もしくは代替として、適切に適用され得ることを理解する。ステップ2402において、ルーチンは、検査下にある潜在的なターゲットと関連のある任意のアプリケーションフィルタ(要求されるアプリケーション、要求している加入者、アプリケーションのコンテンツプロバイダ、および、グローバルフィルタ)を取り出す。1つの実施形態では、これらのフィルタは、MASデータレポジトリに格納されるが、これらは任意の既知の位置に格納され得る。ステップ2403において、ルーチンは、解体されたコードを禁止されたデータ構造の格納された命令と比較することによって、取り出されたアプリケーションから、悪質であり、かつ、禁止されたコードを検査する。ステップ2404において、ルーチンは、コード内に存在するAPI呼び出しの数、タイプ、および、頻度を判断し、それらが、アプリケーションフィルタに格納され得るシステムアドミニストレーション要件と適合するかどうかをチェックする。ステップ2405において、ルーチンは、解体されたアプリケーションのフロー解析を実行し、実行されるスレッドの数が、システムアドミニストレータの要件内にあるかどうかを判断する。このフロー解析は、コードの方向性グラフ(directional graph)を生成し、かつ、周知のグラフ解析アルゴリズムを適用する等の技術を利用して、達成され得る。当業者は、他のチェックが、取り出されたアプリケーション上で実行され得ることを理解する。ステップ2406において、ルーチンは、取り出されたアプリケーションが検査を経ているかどうかを判断し、経ていれば、成功状態に戻り、そうでなければ、ルーチンは失敗状態にフラグを立て、失敗状態に戻る。
図25は、デプロイメントマネージャの最適化アプリケーションルーチンによって実行される処理の例となるフロー図である。(例えば、図23のステップ2302を参照されたい。)当業者は、任意の周知のコード最適化技術が、このルーチンに組み込まれ得、示されるものが例であることを理解する。ステップ2501において、ルーチンは、要求されるアプリケーションのファイルサイズを小さくするために、取り出されたアプリケーションに含まれる変数名を短くする。ステップ2502において、ルーチンは、取り出されたアプリケーションの実行可能なパスをマッピングする。ステップ2503において、ルーチンは、ファイルの長さを短くするために、任意の利用されていないコードを取り除き、同様の最適化ステップを続ける。最適化が終了すると、ルーチンは戻る。
図26は、デプロイメントマネージャのインストール計装ルーチンによって実行される処理の例となるフロー図である。(例えば、図23のステップ2303を参照されたい。)ステップ2601において、ルーチンは、例えば、図6のプロフィールリーダー652を利用して、典型的にはローカルデータレポジトリから、識別された加入者プロフィールを取り出す。ステップ2602において、ルーチンは、要求されるアプリケーションを利用する際に、識別された加入者に対する通信事業者の規約を決定する。例えば、ある加入者は、予約中心または試行中心でアプリケーションを利用することを許可され得るが、他は許可されない。図7を参照して上述されたように、計装は、ある規約を実装する。例えば、プロビジョンコードを制限された回数または所与の期間で実行させることができるコードラッパーを、計装は提供することができる。ステップ2603において、ルーチンは、決定された通信事業者の規約に応じて、要求されるアプリケーションに計装をインストールし、その後、ルーチンは戻る。例示的な実施形態では、インストール計装ルーチンは、コード計装技術を利用し、バイナリコードレベルで、新しいコードを挿入する、もしくは、アプリケーション内の既存のコードを修正する。備えられるコードは、インストール計装ルーチンによって直接提供され得、もしくは、他のデータストレージ(例えば、異なる通信事業者規約と関連するデータストレージ)から取り出し可能であり得る。
図27は、デプロイメントマネージャのパッケージ化アプリケーションルーチンによって実行される処理の例となるフロー図である。(例えば、図23のステップ2304を参照されたい。)ステップ2701において、ルーチンは、取り出された加入者デイバスプロフィールにアクセスして、識別された加入者デバイスに対して互換性のあるファイル形式かどうかを判断する。ステップ2702において、ルーチンは、加入者デバイスが圧縮ファイルを読むことができるかどうかを判断し、できれば、ステップ2703に進み、そうでなければ、ステップ2704に進む。ステップ2703において、ルーチンは、送信時間および送信されるバイト数を最小化するために、プロビジョンアプリケーションを圧縮する。ステップ2704において、ルーチンは、アプリケーションを抽出するワイヤレスデバイス上で実行するハンドセットアドミニストレーションコンソールを可能にするのに十分な情報を有するプロビジョンアプリケーションをカプセル化することによって、決定されたファイル形式を利用してアプリケーションをパッケージ化する。(例えば、図2のハンドセットアドミニストレーションコンソールを参照されたい。)上述したように、多くのJava(登録商標)が有効なワイヤレスデバイスによって実行される1つの形式は、圧縮JARファイルである。しかし、ある場合では、アプリケーションは、より小さなパケットでデバイスに分配される必要があり、それは、ワイヤレスデバイス上でのインストール作業に対して再組立てする。請求マネージャはまた、図28を参照して以下で説明されるが、請求およびルーティング目的のための情報のカプセル化を当てにする。アプリケーションがパッケージ化された後、ルーチンは戻る。
図28は、モバイルアプリケーションシステムの請求マネージャによって実行される処理の例となるフロー図である。(例えば、図5の請求マネージャ507を参照されたい。)ステップ2801において、請求マネージャは初期化される。ステップ2802において、請求マネージャは、請求レポートを生成する時間があるかどうかを判断し、あれば、ステップ2803に進み、なければ、ステップ2804に進む。代替となる実施形態では、請求マネージャは、請求レポートを生成するために、例えばアドミニストレータコンポーネントからの管理上のクエリに応答し得る。ステップ2803において、請求マネージャは、システムアドミニストレータによるパラメターのセットに基づいた請求レポートを生成する。ステップ2804において、請求マネージャが、ログプロビジョニング情報(請求目的の)へのリクエストが存在するかどうかを判断し、あれば、ステップ2805に進み、なければ、戻る。ステップ2805において、請求マネージャは、請求(例えば、リクエストを生成するユーザのアイデンティティ、リクエストのカテゴリー、要求されたダウンロードのサイズ等)およびシステム変数(例えば、日付、日時等)の状態を関係付けるリクエストのパラメターのログを取り、未来の請求に対して利用する。例えば、アプリケーションの長さ、アプリケーションが要求された時間、アプリケーションを処理するのに必要な時間、および、アプリケーション数が、請求レポート生成する際に利用され得る。さらに、プリペイド請求がサポートされる場合、請求マネージャは、会計リクエストを通信事業者に対して生成し、加入者のプリペイド請求額を適切に減少させる。請求レポートが生成され、適切なパラメターのログが取られた後、請求マネージャは戻る。
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
Figure 0004139228
付録(APPENDIX)E
ワイヤレスアプリケーション環境におけるパケットレベル請求の方法およびシステム

本発明は、ワイヤレス環境のための方法およびシステムに関する。詳細には、本発明は、ワイヤレスアプリケーションのパケットレベルにおいて情報を請求するおよびロギングする方法およびシステムに関する。
本発明の実施形態は、ワイヤレスアプリケーション環境でのパケットレベル(「パケットレベル請求システム」)で、パケットタイプの請求および他のタイプの統計収集およびロギングのためのコンピュータベースおよびネットワークベースの方法およびシステムを提供する。いくつかの例示的な実施形態は、付録Aで詳細に説明される。付録Aは、本明細書中でその全体が参照として援用される。放送時間がワイヤレスアプリケーションのための請求を決定するように用いられる統計のみではないように、請求情報を収集する、および、ロギングする際の使用のために、方法およびシステムが説明されるが、これらのメカニズムの任意が、他の時間および使用情報等の、統計情報の他のタイプをロギングするように用いられ得ることは、当業者が認識している。他の統計を用いることによって、請求サーバの規約をインプリメントするサーバ側のインプリメンテーションを提供する代わりに、データ収集規約の任意のタイプは、規格、API、および/または、付録に記載される他のコードによってインプリメントされ得る。
パケットレベル請求システムは、不便な態様で、または、不便ではない態様で、インプリメントされ得、これにより、パケットレベル請求の生成を含むように変更されるコードの一部で、および、パケットレベル請求生成コードが呼び出されることに気付くコードで、様々な柔軟性の度合いを可能にする。また、いくつかの方法は、ネットワークアプリケーション開発者に気付くことなく請求(または、任意の他のタイプのロギング情報)を集め、かつ、生成し得る。方法およびシステムは、「規格への書き込み」ソリューション、ライブラリソリューション、デバイスソフトウェア(ドライバ)修正ソリューションおよび計装ソリューションを含む。
以上から、本発明の特定の実施形態は、例示するために本明細書中で説明されており、様々な修正が本発明の意図および範囲を逸脱することなくなされることは、当業者に認識されている。例えば、本明細書中で説明されている方法およびシステムが任意の種類のアプリケーションデータの収集および生成に適用可能であることは当業者に認識されている。本明細書中で説明された方法およびシステムが異なるプロトコル、通信メディア(光、ワイヤレス、ケーブル等)およびクライアントデバイス(例えば、ワイヤレスハンドセット、電子主催者、ポータブルeメール機、ゲーム機、ページャ、GPS受信器等のナビゲーションデバイス等)に適用可能であることは、当業者に認識されている。

付録

パケットレベルの請求
ワイヤレス環境におけるネットワークアプリケーション用
Figure 0004139228
極秘
(パケットレベルの請求 ページ1/16)

目次
定義・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・3
非ネットワークアプリケーション・・・・・・・・・・・・・・・・・・・・・・3
ネットワークアプリケーション・・・・・・・・・・・・・・・・・・・・・・・3
サーバ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・3
クライアント・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・4
背景・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・5
要約・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・6
ネットワークアプリケーションのための4thpass請求ソリューション・・・・7
「仕様書にあわせて書く」ソリューション(侵入型)・・・・・・・・・・・・・・9
プロキシの保存および転送アプローチ・・・・・・・・・・・・・・・・・・・・9
ライブラリソリューション(侵入型)・・・・・・・・・・・・・・・・・・・・10
プロキシの保存および転送アプローチ・・・・・・・・・・・・・・・・・・・10
計算およびログアプローチ・・・・・・・・・・・・・・・・・・・・・・・・11
デバイスソフトウェア修正ソリューション(非侵入型)・・・・・・・・・・・・12
プロキシの保存および転送アプローチ・・・・・・・・・・・・・・・・・・・12
計算およびログアプローチ・・・・・・・・・・・・・・・・・・・・・・・・13
計装ソリューション(非侵入型)・・・・・・・・・・・・・・・・・・・・・・13
DNSに基づくサーバ側インプリメンテーション・・・・・・・・・・・・・・・14
異なるソリューションの比較・・・・・・・・・・・・・・・・・・・・・・・・15
(パケットレベルの請求 ページ2/16)

定義
アプリケーションタイプ
本文書の目的に沿って、ワイヤレスデバイス上で実行し得るアプリケーションは、2つのカテゴリーに分割される。
非ネットワークアプリケーション
これらのタイプのアプリケーションは、動作時にネットワークを介して通信を行わない。これらのアプリケーションは、ネットワークに対して任意のデータを送信することも、ネットワークから任意のデータを受信することもない。
例:アドレスブック、計算機、テキストエディター、等
ネットワークアプリケーション
これらのタイプのアプリケーションは、動作時にネットワーク上の他のアプリケーション/デバイス/サービスにアクセスするために、いくらかの種類のネットワーク通信を利用する。これらのアプリケーションは、ネットワーク上で、メッセージを送信/受信する。
例:ブラウザ、eメールクライアント、チャットプログラム、カレンダー、等
サーバ
本文書の目的に沿って、サーバは、通常、クライアントに対して特定のデータまたはサービスを提供する(必ずしも、サーバハードウェアにマッピングしなくてもよい)ソフトウェアである。所与のサーバの機能は、サーバを識別するために使用される。例えば、(請求特定データを生成し、および/または、ログをとる)請求サーバ、(他のサーバとの通信においてプロキシとして動作する)プロキシサーバ等。
(パケットレベルの請求 ページ3/16)

クライアント
本文書の目的に沿って、「クライアント」は、ワイヤレスデバイス上で実行されるネットワークアプリケーションを意味するように利用され、従来の「クライアント−サーバ」における意味でのサーバと通信する。
(パケットレベルの請求 ページ4/16)

背景
典型的には、ワイヤレスデバイスユーザが通信時間を使用する際、または、ユーザがデバイスに対する任意のアプリケーションまたは任意の他のデータをダウンロードする際に、通信事業者の規約に応じて、ワイヤレスデバイスユーザは課金される。全ての現在のソリューションの系統は、通信時間およびデバイス上にダウンロードされたデータの総量に対してユーザに請求する手段を提供する。特定のアプリケーションが送信または受信するデータに基づくワイヤスデバイス上での特定のネットワークアプリケーションまたはアプリケーションの一部分の利用に対して、通信事業者が顧客に対して課金できるようにするためのソフトウェアレベルまたはハードウェアレベルで現在利用可能なソリューションはない。
(パケットレベルの請求 ページ5/16)

要約
4thpassは、データパケットレベル(すなわち、ワイヤレスデバイスによって送信および受信されるデータパケット)での特定のネットワークアプリケーションのデータの使用を決定するためのソリューションのセットを提案する。これらのソリューションにより、通信事業者は、送信および受信されたデータだけでなく該当のアプリケーションをも考慮する請求規約を明らかにすることができる。
ネットワークアプリケーションは、TCP/IPおよびUDP/IPのような下位レベルコミュニケーションプロトコルと、HTTPおよびWAP(ワイヤレスアプリケーションプロトコル)のような上位レベルプロトコルとを利用することとを利用する。提案されるソリューションは、一般的なソリューションであり、任意の通信プロトコルに対して作用する。特定のソリューションのインプリメンテーションは、プロトコルに特有およびアプリケーション言語に特有である。
本文書において提案される異なるソリューションは、(アプリケーションが常駐する)デバイスおよび(請求特定データが生成され、および/または、ログがとられる)請求サーバ上で、異なるタイプのサポートを必要とする。本文書は、通信時間請求規約の代替または追加として、送信/受信したデータに基づきユーザに課金し得るように、各アプリケーションに対するパケットレベルの情報を生成するという目的を達成するために、異なるソリューションをインプリメントする異なる方法について記載する。
パケットレベルの請求を提供するための完全なソリューションは、クライアント側のソリューションおよびサーバ側のソリューションを含む。ソリューションに応じて、請求情報は、クライアントまたはサーバのどちらかによって生成される。請求サーバは、最終的に、それに基づいて請求記録が生成されるデータサイズ/データパケット情報を収集する。
(パケットレベルの請求 ページ6/16)

ネットワークアプリケーションのための4thpass請求ソリューション
4thpassは、デバイス上で動作中のアプリケーションが送信および受信したデータに応じて請求データを生成するために、以下のソリューションのカテゴリーを提案する。各ソリューションのカテゴリーは、ソリューションをインプリメントする異なる方法を提供する。
1.「仕様書にあわせて書く」ソリューション:ネットワークアプリケーション開発者は、ネットワークアプリケーション開発者のコードを書くために、4thpassによって提供される仕様書を利用する。仕様書は、パケットレベルで適切な請求情報を生成するために、コードのネットワーク通信部分をどのように書くべきかを指示する。
2.ライブラリソリューション:ネットワークアプリケーション開発者は、アプリケーションを書くために、ソフトウェアライブラリの形式で4thpassによって提供される、請求情報を生成するアプリケーションプログラミングインターフェイス(API)の特定のセットを利用する。本ソリューションは、先のソリューションの拡張である。
3.デバイスソフトウェア修正ソリューション:デバイス製造業者は、請求情報を生成するために、デイバス上のネットワーク機能ソフトウェア層を修正する。
4.計装ソリューション:ソフトウェアは、アプリケーションがデバイス上にインストールされる前に、(アプリケーション機能を変更することなく)ユーザに見えないように請求情報を生成する請求APIを利用するために、自動的にアプリケーションをスキャンして修正する。
大まかに言うと、アプリケーション開発者が特定の方法でコードを書かなければならないのか、または、特定のツールを使わなくてはならないのかに応じて、本ソリューションをさらに2つのカテゴリーに分割することができる。
1.侵入型(intrusive):上述されたソリューションの最初の2つのカテゴリー、すなわち、「仕様書にあわせて書くソリューション」および「ライブラリソリューション」は、侵入型のソリューションである。アプリケーション開発者は、パケットレベルの請求情報を生成するために、特定の方法でコード化しなければならないか、または、特別のアプリケーションプログラミングインターフェイス(API)を利用してコード化しなければならない。
(パケットレベルの請求 ページ7/16)

2.非侵入型:上述された第3および第4のカテゴリー、すなわち、「デバイスソフトウェア修正ソリューション」および「計装ソリューション」は、非侵入型のソリューションである。開発者は、開発者のアプリケーションを書きながら、どんな特別なことも行う必要がない。代わりとして、4thpassが提供するツールは、必要なパケットレベルの請求を自動的に生成する機能を備えている。
全てのカテゴリー、すなわち、侵入型と非侵入型、良い点と悪い点、および、それらに特定のサーバ側のソリューションは、本文書中に詳細に記載される。次に、ソリューションの各カテゴリーは、必要とされる機能を達成するために様々なメカニズムを提案する。
(パケットレベルの請求 ページ8/16)

「仕様書にあわせて書く」ソリューション(侵入型)
本ソリューションは、アプリケーションコードの書き方を記載することによって、4thpassがアプリケーション開発者に対して詳細な仕様書を提供することを要求する。
仕様書は、必要とされる請求情報を生成するためにどのようにアプリケーションコードを書くべきかについての情報を提供する。開発者は、請求情報が適切に生成されるような特定のガイドラインに合わせて、特定の形式および特定の順序でコードを書かなくてはならない。
本仕様書にあわせて書く場合、以下のプロキシに基づくメカニズムが、請求情報を生成するために利用され得る。
プロキシの保存および転送アプローチ
アプリケーションのためのコードは、所定のプロキシサーバと通信するように書かれる。データは、所定の形式(転送されるべき送信先情報およびデータを含む)でプロキシサーバへ送信される。プロキシサーバは、(公知の形式で保存された)所定のデータを読み、そのデータから送信先と正確に通信するために必要となる情報を抽出し、送信先へデータを転送する。
送信先へ転送されたデータは、受信元としてプロキシサーバを表示し、従って、送信先から逆の通信を可能にする。送信先からデータを受信する際に、プロキシサーバは、元の送信者を判断し、かつ、元の送信者に受信したデータを転送する。
データを前後させて転送する間に、送信されかつ受信されたデータサイズ/データパケット情報は、それらの情報が請求情報を生成する際に後で利用され得るように、例えば(さらに請求サーバとして動作する、または、請求サーバへその情報を転送する)プロキシサーバによってログを取られる。
(パケットレベルの請求 ページ9/16)
Figure 0004139228
ライブラリソリューション(侵入型)
「ライブラリソリューション」は、「仕様書にあわせて書くソリューション」の拡張である。アプリケーション開発者に仕様書を提供するのではなく、開発者は、プロキシサーバ/請求サーバとユーザに見えないように相互通信するソフトウェアライブラリ、すなわち、所定のアプリケーションプログラミングインターフェイス(API)のセットを提供される。開発者は、APIを利用する際にまだ特定のガイドラインのセットに従わなくてはならないが、元にある仕様書は、APIの手段に取得され、開発者は、仕様書をサポートするために広範囲に努力する必要がない。
ライブラリソリューションは、異なるおよび/または複数のライブラリを提供することによって、2つの異なる種類のインプリメンテーションをサポートできるように利用することができる。
プロキシの保存および転送アプローチ
アプリケーションのためのコードは、所定のAPIのセットを利用して書かれる。本アプローチは、アプリケーション開発者に対して提供されるライブラリが、異なるAPIを利用して(受信元および送信先の間の)プロキシサーバとの通信をインプリメントし、かつ、カプセル化すること以外は、「仕様書にあわせて書くソリューション」に記載されたアプローチと同じである。
既存のAPIにより、開発者は、複雑な仕様およびライブラリコードのインプリメンテーションを知らなくても、コードを開発することができるようになる。
(パケットレベルの請求 ページ10/16)

本アプローチでは、サーバが、請求情報を生成する(および、ログをとる)。
Figure 0004139228
計算およびログアプローチ
ライブラリメカニズムの別のインプリメンテーションは、ユーザに見えない請求情報のロギング/生成を提供する。本アプローチは、元のネットワークがデバイス間の直接の通信を許可する場合に、有用である。本インプリメンテーションでは、クライアントアプリケーションに対して飽和した双方向の通信量を扱うためにプロキシサーバを利用するのではなく、請求サーバは、請求データ(すなわち、パケットサイズ/パケットの数など)が送信されるのみであり、クライアントおよびサーバ間のアプリケーションデータの通常の通信が続く。
具体的には、ライブラリAPIは、請求(ロギング)コードのインプリメンテーションを隠蔽し、ここでは、「プロキシの保存および転送アプローチ」とは異なるように動作する。プロキシサーバに送信されるべきデータを受信する(および、次にプロキシサーバから戻ってくるデータを受信する)のではなく、アプリケーションにおいて実行するライブラリAPIは、アプリケーションプログラムから見えないように、データサイズ/パケット数を判断し、請求サーバにこの情報を送信する。送信先デバイスまたは任意の外部サーバとの通信は、直接実行される。
(パケットレベルの請求 ページ11/16)
Figure 0004139228
デバイスソフトウェア修正ソリューション(非侵入型)
本アプローチは、パケットレベルの請求を提供するために、特定のデバイスのネットワーキングソフトウェアドライバ(ネットワーキング接続性を提供する義務のあるデバイス上のソフトウェア)の開発者4thpassと一緒に仕事をすることを要求する。本アプローチを利用して、4thpassは、ネットワーキングソフトウェアドライバと一体化される専用のソフトウェアの断片を提供する。専用のソフトウェアの断片は、プロキシアプローチまたは「計算およびログ」アプローチのどちらが取られるかに応じて、異なる機能を提供する。これらのアプローチは、ネットワークアプリケーション開発者がどんな特定の方法によってコードを書く必要も、どんな仕様に従う必要もないこと以外は、先の2つのセクションにおいて記載されたアプローチと同じである。代わりに、ネットワーキング通信ドライバコードは、請求特定機能を提供するための責任を負う。
プロキシの保存および転送アプローチ
Figure 0004139228
(パケットレベルの請求 ページ12/16)

計算およびログアプローチ
Figure 0004139228
計装ソリューション(非侵入型)
計装ソリューションは、「ライブラリ」および「仕様書にあわせて書く」ソリューションをあわせたものである。本アプローチを利用して、アプリケーション開発者によってではないが、請求仕様書に書かれるAPIが、ネットワークアプリケーションに付加される。
具体的には、4thpassは、ネットワークアプリケーションを読むことができ、適切なAPIを含むようにバイナリイメージ(例えば、J2MEにおけるバイトコード)を修正し得る、自動ソフトウェアツールを提供する。4thpassソフトウェアツールは、既存のバイナリコード(例えば、J2MEにおけるバイトコード形式)を付加、修正、または、消去することによって、進行中にバイナリイメージ(例えば、J2MEにおけるバイトコード)を修正し得るインプリメンテーションをサポートする。
従って、インプリメンテントされたコードを自動的に導入することによって、ネットワークプログラムは、任意の仕様を満たし、必要とされる請求ソリューションを提供することができる。
先のセクションで議論された全てのサーバ側のインプリメンテーション(例えば、プロキシの保存および転送、ならびに、計算およびログ)を適用する。デバイス上にネットワークアプリケーションをインストールする直前に、ネットワークアプリケーションに、4thpassバイナリスキャナおよび計装が実行される。
(パケットレベルの請求 ページ13/16)

スキャナは、利用されるネットワークAPIを判断し、それらを自動的により新しいネットワーキングAPIに置換する。新しいネットワーキングAPIは、さらに請求特定情報を生成すること以外は元の機能と同じの機能を提供する。
Figure 0004139228
一旦、修正されたアプリケーションが実行されると(アプリケーション’)、アプリケーション’は、元のネットワーキングAPIを利用するが、これらのAPIは、適切な請求情報を生成する/ログをとる拡張された機能を提供する。
上述の図では、アプリケーションは、以前の4thpassで処理されたバージョンのネットワークアプリケーションを表わすが、アプリケーション’は、後の4thpassで処理されたバージョンを表わす。サーバ側のサポートは、「プロキシの保存および転送」または「計算およびログ」アプローチと同じである(例えば、「ライブラリソリューション」のセクションで記載された図を参照されたい)。
サーバ側インプリメンテーションに基づくDNS
ある特定の場合におけるクライアントにおいてパケットレベルの請求をサポートするために、ソリューションに基づくDNSは、サーバ上でインプリメントされる。本ソリューションは、外部ネットワーク(パブリックIPを利用したもの等)からのデバイスまたはプログラムを、発見され得ないプライベートIPを用いてネットワーク内部のデバイスにアクセスさせるのに役立つ。この方法では、(ネットワークアプリケーションへの)入来データパケットをカウントすることができ、アプリケーション請求情報をさらに生成することができる。
外部ネットワークからのデバイスまたはプログラムは、全く異なるネットワーク上にあり、かつ、発見されないプライベートIPからのデータは、パブリックIPを利用してプログラムに送信され得ないので、本試みは、外部ネットワークからのデバイスまたはプログラムが内部デバイスと通信するための手段を提供することである。
(パケットレベルの請求 ページ14/16)
4thpassソリューションにより、通信事業者側に専用のDNSサーバインプリメンテーションを提供することによって、そのような通信が可能になる。通信事業者側は、パブリックIPのプール(単数または複数)とともに動作し、パブリックなIPは、内部ネットワークプライベートIPに対して動的にマッピングされる。DNSサーバは、ネットワークアドレストランスレーション(NAT)を提供することによって、2つの終端の間の仮想通信リンクを管理する。
さらなる情報を別の文書において入手することができ、本ソリューションをインプリメントする技術について記載する。
異なるソリューションの比較
異なるソリューションのそれぞれは、長所および短所を有する。仕様書に基づくソリューションは、ライブラリソフトウェアの配布を必要としないので、管理するのが比較的簡単であるが、一方では、仕様書は、ソフトウェアライブラリと比較すると、理解しかつ準拠するのがより難しい。ライブラリを利用すると、フードの下で何が起こっているのかを知らずに、ネットワークアプリケーション開発者はAPIを呼び出す。
これら両方を比較すると、同じ機能を提供されるようにネットワーキングソフトウェアドライバを修正することは、アプリケーション開発者の立場からして、インプリメントしかつ管理することが比較的簡単である。しかしながら、異なるデバイスを管理することがより難しくなり、ドライバ修正が別々にそれぞれに適用される必要がある。規模拡張性がありかつエラー耐久性のある方法における異なるAPIに対するサポートは、維持するのが難しくなり得る。さらに、多数のネットワーキングデバイスドライバの作者に、4thpassコードを含めるように納得させることも、困難であり得る。
上述のアプローチを比較すると、計装アプローチが最も柔軟性があり、規模拡張性がある。計装アプローチは、前述のソリューションの柔軟性および利点を提供する。APIのソフトウェアライブラリは、(それらをスキャンした後にネットワークアプリケーションに動的に付加される)仕様書にあわせて書かれ、かつ、ネットワークアプリケーション開発者は、どのようにそれらが書かれているかを理解する必要がない。また、開発者は、ライブラリAPIが付加されるべきことを知る必要もない。代わりに、アプリケーション開発者によって既に書かれたアプリケーションをスキャンする際に、4thpassツールは、ネットワークAPI(プロトコルに関わらず)の利用のためのアプリケーションを検査する。
(パケットレベルの請求 ページ15/16)

ネットワークAPIの検知と同時に、4thpassツールは、検知されたネットワークAPIを様々な仕様書をインプリメントするAPIの所定のセットに置換する。本ソリューションは、アプリケーション開発者の部品に、どんな発明も必要としない。さらに、(パブリックにされていてでさえも)インプリメンテーションは開発者から隠蔽されているので、インプリメンテーションの管理は比較的容易である。さらに、古いソリューションが配置されているときであってさえ、インプリメンテーションは変更かつ拡張し得るので、最適のソリューションをインプリメントすることを可能にする。最後に、自動ステップは一般的に手動ステップに比べてエラー傾向が低いので、最低ではないが、エラー傾向が低い。
(パケットレベルの請求 ページ16/16)
図1は、例示的な送信に基づく請求システムの概略的ブロック図である。 図2は、パケットベースの請求システムのコンテンツ(コード)モディファイアによって実行された場合の請求トラッキングコードと共に備えられたコンテンツの例示的ブロック図である。 図3は、例示的なモバイルアプリケーションシステム内にインプリメントされた例示的な送信に基づく請求システムのブロック図である。 図4は、送信に基づく請求システムの実施形態を実行するための汎用コンピュータシステムおよびクライアントデバイスの例示的ブロック図である。 図5は、送信に基づく請求と共に使用するためのモバイルアプリケーションシステムにアプリケーションを転送するための例示的な手順のブロック図である。 図6は、モバイルアプリケーションシステムを用いて、送信に基づく請求を支援するアプリケーションをクライアントデバイスに認識されないように配信するための全体のプロセスを示す例示的ブロック図である。 図7は、送信に基づく請求を支援するためにアプリケーションを修正するためのルーチンの例示的なフローチャートである。 図8は、送信に基づく請求のための支援によってアプリケーションを解析およびこれを具備するためのルーチンの例示的なフローチャートである。 図9は、アプリケーション毎を基礎としてネットワーク送信データに基づいた請求データと通信するための全体のプロセスを示す例示的なブロック図である。 図10は、請求データを収集かつ送信するために修正されたデータをネットワークに転送するためのクライアントルーチンの例示的なフローチャートである。 図11は、請求データを収集かつ送信するために修正されたデータをネットワークから受信するためのクライアントルーチンの例示的なフローチャートである。 図12は、転送された送信に基づく請求データを処理するためのサーバルーチンの例示的なフローチャートである。 図13は、送信に基づく請求データに基づいて請求料金を生成するためのステップの例示的なフローチャートである。

Claims (62)

  1. コンピュータに基づく環境において、ネットワークを介して、データを送信するコンテンツの送信に基づく請求を提供する方法であって、該コンテンツは、少なくとも1つのネットワーク呼び出しを含み、該方法は、
    請求トラッキングコードを決定することと、
    該コンテンツに含まれる該少なくとも1つのネットワーク呼び出しを該決定された請求トラッキングコードを含むプロキシ呼び出しに置換することによって、該決定された請求トラッキングコードを該コンテンツに組み込むことにより、該コンテンツを修正することであって、該修正されたコンテンツがターゲットデバイス上で実行される場合に、該請求トラッキングコードは、自動的に、該修正されたコンテンツと該ネットワークとの間で送信されたデータ量に基づいて、請求データを通信する、ことと
    を包含し、
    該少なくとも1つのネットワーク呼び出しを該プロキシ呼び出しに置換することは、該コンテンツの送信よりも前に実行される、方法。
  2. 前記請求トラッキングコードは、前記ネットワークを介して、前記組み込まれたコンテンツから送信されたデータ量をトラッキングする、請求項1に記載の方法。
  3. 前記ネットワークはインターネットである、請求項2に記載の方法。
  4. 前記データ量は、論理的に規定されるパケットレベルにてトラッキングされる、請求項2に記載の方法。
  5. 前記請求トラッキングコードは、前記ネットワークから前記組み込まれたコンテンツによって受け取られたデータ量をトラッキングする、請求項1に記載の方法。
  6. 前記ネットワークがインターネットである、請求項5に記載の方法。
  7. 前記データ量は、論理的に規定されるパケットレベルにてトラッキングされる、請求項5に記載の方法。
  8. 前記コンテンツがJava(登録商標)ベースである、請求項1に記載の方法。
  9. 前記コンテンツは、バイトコード命令を含む、請求項1に記載の方法。
  10. 前記組み込むことは、コンテンツ検査のバイトコードレベルにて達成される、請求項1に記載の方法。
  11. 前記組み込まれたコンテンツは、セキュリティキーを含み、該セキュリティキーは、該請求データのソースの整合性が検証され得るように、自動的に通信された請求データと共に送信される、請求項1に記載の方法。
  12. 前記セキュリティキーが乱数に基づく、請求項11に記載の方法。
  13. 前記セキュリティキーがアプリケーションおよび加入者固有である、請求項11に記載の方法。
  14. 前記セキュリティキーは、前記コンテンツをダウンロードするリクエストを受けると、前記コンテンツに組み込まれる、請求項11に記載の方法。
  15. 前記環境は、無線キャリアインフラストラクチャと統合される、請求項1に記載の方法。
  16. 前記組み込まれたコンテンツを無線送信媒体を介してターゲットデバイスにダウンロードされるようにすることをさらに包含する、請求項1に記載の方法。
  17. 前記コンテンツは、無線送信媒体を介して、前記コンピュータに基づく環境からのキャリアの加入者によって要求される、請求項16に記載の方法。
  18. 前記組み込まれたコンテンツを有線送信媒体を介してターゲットデバイスにダウンロードされるようにすることをさらに包含する、請求項1に記載の方法。
  19. 前記有線送信媒体がインターネットである、請求項18に記載の方法。
  20. 前記請求データは、送られたデータ量、受け取られたデータ量、タイムスタンプ、アプリケーション識別子、セキュリティキー、取引識別子および再試行期限インジケータの少なくとも一つを含む、請求項1に記載の方法。
  21. 前記請求データは、請求サーバシステムへの送信を基準として自動的に通信される、請求項1に記載の方法。
  22. データを送信することであって、該データは、加入者のデバイスと請求サーバシステムでないサーバシステムとの間での直接の請求データではない、ことをさらに包含する、請求項21に記載の方法。
  23. 前記請求データを、顧客データレコードを生成する顧客ベースの請求情報に統合することをさらに包含する、請求項1に記載の方法。
  24. 前記請求データは、複数の請求ポリシーを支援するように用いられる、請求項1に記載の方法。
  25. 前記請求ポリシーは、指定されるアプリケーションに縮小された料金を提供する促進的な申し出を含む、請求項24に記載の方法。
  26. 前記請求ポリシーは、コンテンツプロバイダによって提供される、請求項24に記載の方法。
  27. 前記請求データは、前記コンテンツのプロバイダに印税支払を提供するように用いられる、請求項1に記載の方法。
  28. 前記組み込まれたコンテンツと前記ネットワークとの間で送信されるデータを、前記自動的に通信される送信に基づく請求データに従って、ルーティングされるようにすることをさらに包含する、請求項1に記載の方法。
  29. 前記ルーティングは、前記ネットワーク上のリソースの効率的な使用を可能にする、請求項28に記載の方法。
  30. 送信使用法に基づいて、優先順位がコンテンツに割り当てられる、請求項28に記載の方法。
  31. 前記請求トラッキングコードは、プロキシストアおよび転送技術を利用することにより、前記組み込まれたコンテンツと複数のサーバシステムとの間で請求データおよびデータ送信パケットを送信する、請求項1に記載の方法。
  32. コンピュータに基づく環境において、クライアントデバイス上で実行するとともにネットワークを介してデータを送信するコンテンツに対して、請求データを自動的に生成する送信に基づく請求システムであって、該コンテンツは、少なくとも1つのネットワーク呼び出しを含み、該請求システムは、
    該コンテンツを解析し、該コンテンツに含まれる該少なくとも1つのネットワーク呼び出しを請求トラッキングコードを含むプロキシ呼び出しに置換することによって、請求トラッキングコードを該コンテンツに組み込むコードモディファイアであって、該クライアントデバイス上で実行される場合、該ネットワークを介して送信されるデータ量を反映する請求データを自動的に通信するコードモディファイアを含み、
    該少なくとも1つのネットワーク呼び出しを該プロキシ呼び出しに置換することは、該コンテンツの送信よりも前に実行される、請求システム。
  33. 前記請求トラッキングコードは、前記ネットワークを介して、前記組み込まれたコンテンツから送信されたデータ量をトラッキングする、請求項32に記載の請求システム。
  34. 前記ネットワークはインターネットである、請求項33に記載の請求システム。
  35. 前記データ量は、論理パケットレベルでトラッキングされる、請求項33に記載の請求システム。
  36. 前記請求トラッキングコードは、前記ネットワークからの前記組み込まれたコンテンツによって受け取られたデータ量をトラッキングする、請求項32に記載の請求システム。
  37. 前記ネットワークがインターネットである、請求項36に記載の請求システム。
  38. 前記データ量は、論理パケットレベルでトラッキングされる、請求項36に記載の請求システム。
  39. 前記コンテンツがJava(登録商標)ベースである、請求項32に記載の請求システム。
  40. 前記コンテンツがバイトコード命令を含む、請求項32に記載の請求システム。
  41. 前記組み込むことは、コンテンツ検査のバイトコードレベルで達成される、請求項32に記載の請求システム。
  42. 前記組み込まれたコンテンツは、セキュリティキーを含み、該セキュリティキーは、該請求データのソースの整合性が受領の際に基づいて検証され得るように、自動的に通信される請求データと共に送信される、請求項32に記載の請求システム。
  43. 前記セキュリティキーが乱数に基づいている、請求項42に記載の請求システム。
  44. 前記セキュリティキーがアプリケーションおよび加入者固有である、請求項42に記載の請求システム。
  45. 前記セキュリティキーは、前記コンテンツをダウンロードするリクエストを受けると、前記コンテンツに組み込まれる、請求項42に記載の請求システム。
  46. 前記コンピュータ環境は、無線キャリアインフラストラクチャと統合される、請求項32に記載の請求システム。
  47. 前記組み込まれたコンテンツを無線送信媒体を介してターゲットデバイスにダウンロードされるようにすることをさらに含む、請求項32に記載の請求システム。
  48. 前記コンテンツは、無線送信媒体を介して、前記コンピュータ環境からのキャリアの加入者によって要求される、請求項47に記載の請求システム。
  49. 前記組み込まれたコンテンツを有線送信媒体を介してターゲットデバイスにダウンロードされるようにすることをさらに含む、請求項32に記載の請求システム。
  50. 前記有線送信媒体がインターネットである、請求項49に記載の請求システム。
  51. 前記請求データは、送られたデータ量、受け取られたデータ量、タイムスタンプ、アプリケーション識別子、セキュリティキー、取引識別子および再試行期限インジケータの少なくとも一つを含む、請求項32に記載の請求システム。
  52. 前記請求データは、請求サーバシステムへの送信を基準として自動的に通信される、請求項32に記載の請求システム。
  53. 加入者のデバイスと請求サーバシステムでないサーバシステムとの間での直接の請求データではないデータを送信するパケット検出およびフォーワーディングモジュールをさらに含む、請求項52に記載の請求システム。
  54. 前記請求データを、顧客データレコードを生成するために、顧客ベースの請求情報に統合することをさらに含む、請求項32に記載の請求システム。
  55. 前記請求データは、複数の請求ポリシーを支援するように用いられる、請求項32に記載の請求システム。
  56. 前記請求ポリシーは、指定されるアプリケーションに縮小された料金を提供する促進的な申し出を含む、請求項55に記載の請求システム。
  57. 前記請求ポリシーは、コンテンツプロバイダによって提供される、請求項55に記載の請求システム。
  58. 前記請求データは、前記コンテンツのプロバイダに印税支払を提供するように用いられる、請求項32に記載の請求システム。
  59. 前記組み込まれたコンテンツと前記ネットワークとの間で送信されるデータを、前記送信に基づく請求データに従って、ルーティングされるようにすることをさらに含む、請求項32に記載の請求システム。
  60. 前記ルーティングは、前記ネットワーク上のリソースの効率的な使用を可能にする、請求項59に記載の請求システム。
  61. 送信使用法に基づいて、優先順位がコンテンツに割り当てられる、請求項59に記載の請求システム。
  62. 前記請求トラッキングコードは、プロキシストアおよび転送技術を組み込みことにより、前記組み込まれたコンテンツと複数のサーバシステムとの間で請求データおよびデータ送信パケットを送信する、請求項32に記載の請求システム。
JP2002582554A 2001-02-26 2002-02-26 アプリケーションの通信に基づく請求方法およびシステム Expired - Fee Related JP4139228B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US27166101P 2001-02-26 2001-02-26
PCT/US2002/006074 WO2002084947A2 (en) 2001-02-26 2002-02-26 Method and system for transmission-based billing of applications

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007165616A Division JP2007329937A (ja) 2001-02-26 2007-06-22 アプリケーションの通信に基づく請求方法およびシステム

Publications (2)

Publication Number Publication Date
JP2005509322A JP2005509322A (ja) 2005-04-07
JP4139228B2 true JP4139228B2 (ja) 2008-08-27

Family

ID=23036523

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002582554A Expired - Fee Related JP4139228B2 (ja) 2001-02-26 2002-02-26 アプリケーションの通信に基づく請求方法およびシステム
JP2007165616A Pending JP2007329937A (ja) 2001-02-26 2007-06-22 アプリケーションの通信に基づく請求方法およびシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2007165616A Pending JP2007329937A (ja) 2001-02-26 2007-06-22 アプリケーションの通信に基づく請求方法およびシステム

Country Status (6)

Country Link
US (1) US7436816B2 (ja)
EP (1) EP1397769A2 (ja)
JP (2) JP4139228B2 (ja)
AU (1) AU2002306608B2 (ja)
MX (1) MXPA03007661A (ja)
WO (1) WO2002084947A2 (ja)

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868267B1 (en) 2000-11-17 2005-03-15 Qualcomm Inc. Apparatus, method, and article of manufacture used to invoice for services consumed in a communications network
US20060269061A1 (en) * 2001-01-11 2006-11-30 Cardinalcommerce Corporation Mobile device and method for dispensing authentication codes
US7606771B2 (en) * 2001-01-11 2009-10-20 Cardinalcommerce Corporation Dynamic number authentication for credit/debit cards
US20020138296A1 (en) * 2001-03-20 2002-09-26 Holmes Ralph K. Systems and methods for collecting and rating contact center usage
JP2002345030A (ja) * 2001-05-14 2002-11-29 Fujitsu Ltd ウェブサイトアクセスサービス提供システム
US6996537B2 (en) 2001-08-13 2006-02-07 Qualcomm Incorporated System and method for providing subscribed applications on wireless devices over a wireless network
US9203923B2 (en) 2001-08-15 2015-12-01 Qualcomm Incorporated Data synchronization interface
US8310943B2 (en) 2002-02-26 2012-11-13 Motorola Mobility Llc Method and system for transmission-based billing applications
US20040001476A1 (en) * 2002-06-24 2004-01-01 Nayeem Islam Mobile application environment
US20040044623A1 (en) * 2002-08-28 2004-03-04 Wake Susan L. Billing system for wireless device activity
US20040043753A1 (en) * 2002-08-30 2004-03-04 Wake Susan L. System and method for third party application sales and services to wireless devices
JP4309629B2 (ja) * 2002-09-13 2009-08-05 株式会社日立製作所 ネットワークシステム
US6934751B2 (en) * 2002-11-29 2005-08-23 Motorola, Inc. Method and device for providing more accurate subscriber device billing
US7275239B2 (en) * 2003-02-10 2007-09-25 International Business Machines Corporation Run-time wait tracing using byte code insertion
AU2004214808B2 (en) * 2003-02-25 2008-07-10 Boston Communications Group, Inc. Method and system for providing supervisory control over wireless phone usage
US9232077B2 (en) * 2003-03-12 2016-01-05 Qualcomm Incorporated Automatic subscription system for applications and services provided to wireless devices
US20040187099A1 (en) * 2003-03-20 2004-09-23 Convergys Information Management Group, Inc. System and method for processing price plans on a device based rating engine
FI116347B (fi) * 2003-04-16 2005-10-31 Teliasonera Finland Oyj Menetelmä ja järjestelmä laskutustiedon hallitsemiseksi
GB0310144D0 (en) * 2003-05-02 2003-06-04 Bitarts Ltd Protecting a java application
US7127232B2 (en) 2003-05-08 2006-10-24 Bell South Intellectual Property Corporation Multiple access internet portal revenue sharing
US20040258026A1 (en) * 2003-06-19 2004-12-23 Lau Kin Nang Method of uplink scheduling for multiple antenna systems
US7177837B2 (en) 2003-07-11 2007-02-13 Pascal Pegaz-Paquet Computer-implemented method and system for managing accounting and billing of transactions over public media such as the internet
ITRM20030341A1 (it) * 2003-07-14 2005-01-15 Michele Giudilli Metodo per l'addebito dei costi di fruizione di contenuti
JP4263569B2 (ja) * 2003-09-18 2009-05-13 株式会社エヌ・ティ・ティ・ドコモ 通信システム
US20050070265A1 (en) * 2003-09-29 2005-03-31 Nokia Corporation Method, terminal device and system for remote initiation of network applications within mobile communication environment
US7426056B2 (en) * 2004-01-13 2008-09-16 International Business Machines Corporation Method and apparatus for a client call service
EP2485187A1 (en) 2004-01-21 2012-08-08 Qualcomm Incorporated Application-based value billing in a wireless subscriber network
US7703101B2 (en) * 2004-02-13 2010-04-20 International Business Machines Corporation Autonomic workload classification using predictive assertion for wait queue and thread pool selection
GB0407150D0 (en) * 2004-03-30 2004-05-05 British Telecomm Distributed computer
US20100185538A1 (en) * 2004-04-01 2010-07-22 Exbiblio B.V. Content access with handheld document data capture devices
CN100479369C (zh) 2004-05-12 2009-04-15 华为技术有限公司 一种针对用户选择计费规则的方法
US7664832B1 (en) * 2004-10-08 2010-02-16 Sprint Spectrum L.P. RF data channel API for mobile station client applications
US8010082B2 (en) 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
US20060136901A1 (en) * 2004-12-22 2006-06-22 Sony Ericsson Mobile Communications Ab Mobile financial transaction management system and method
US7848501B2 (en) * 2005-01-25 2010-12-07 Microsoft Corporation Storage abuse prevention
US20060179349A1 (en) * 2005-02-09 2006-08-10 Preemptive Solutions, Llc System and method for tracking exceptional states
EP1703382A1 (en) * 2005-03-16 2006-09-20 Sun Microsystems, Inc. Method for loading applications to a mobile device
DE102005014538A1 (de) * 2005-03-30 2006-10-05 Vodafone Holding Gmbh Verfahren und System zur Vergebührung von Anwendungen und dem damit verbundenen Datenverkehr in einem Funk-Kommunikationssystem
US8365306B2 (en) * 2005-05-25 2013-01-29 Oracle International Corporation Platform and service for management and multi-channel delivery of multi-types of contents
US7917612B2 (en) * 2005-05-25 2011-03-29 Oracle International Corporation Techniques for analyzing commands during streaming media to confirm delivery
US9350875B2 (en) 2005-05-31 2016-05-24 Qualcomm Incorporated Wireless subscriber billing and distribution
US9185538B2 (en) 2005-05-31 2015-11-10 Qualcomm Incorporated Wireless subscriber application and content distribution and differentiated pricing
US9008613B2 (en) * 2005-07-06 2015-04-14 Qualcomm Incorporated Connection and data application billing
US20070025342A1 (en) * 2005-07-14 2007-02-01 Gemini Mobile Technology, Inc. Protocol optimization for wireless networks
US7640297B2 (en) * 2005-07-14 2009-12-29 Gemini Mobile Technologies, Inc. Protocol optimization for wireless networks
EP1920344A4 (en) * 2005-07-27 2011-11-09 Amethon Solutions Asia Pacific Pty Ltd PURSUIT OF CONTENTS IN COMMUNICATION NETWORKS
US9143622B2 (en) 2006-02-17 2015-09-22 Qualcomm Incorporated Prepay accounts for applications, services and content for communication devices
US9185234B2 (en) 2006-02-22 2015-11-10 Qualcomm Incorporated Automated account mapping in a wireless subscriber billing system
US7694874B2 (en) 2006-03-29 2010-04-13 Amazon Technologies, Inc. Over-the-air device provisioning and activation
US8442485B2 (en) * 2006-06-19 2013-05-14 Cisco Technology, Inc. System and method for measuring and reporting service usage
US8560463B2 (en) 2006-06-26 2013-10-15 Oracle International Corporation Techniques for correlation of charges in multiple layers for content and service delivery
US7881990B2 (en) * 2006-11-30 2011-02-01 Intuit Inc. Automatic time tracking based on user interface events
US8169949B1 (en) * 2006-12-07 2012-05-01 Sprint Communications Company L.P. Audio/video/media handoff split and re-providing
US10366426B2 (en) * 2007-03-09 2019-07-30 Amazon Technologies, Inc. Personalizing handheld electronic book readers
US8948046B2 (en) 2007-04-27 2015-02-03 Aerohive Networks, Inc. Routing method and system for a wireless network
KR101370318B1 (ko) * 2007-06-11 2014-03-06 에스케이플래닛 주식회사 사용자의 콘텐츠 사용정보 수집을 위한 방법 및 서버
US20080319858A1 (en) * 2007-06-14 2008-12-25 Denk Jr William E Automated system to determine, store, and share the relevance of information, and to assign trust to that information
EP2003852B1 (en) * 2007-06-15 2015-11-04 Vodafone GmbH Method for improving output of data from a remote gateway at a mobile device and download management unit
AP2684A (en) * 2007-07-23 2013-06-12 Fio Corp data associated with biological and environmental test subjects A method and system for collating, storing, analyzing and enabling access to collected and analyzed
EP3522580B1 (en) * 2007-10-16 2021-01-20 Nokia Technologies Oy Credential provisioning
US8793305B2 (en) * 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US8838487B1 (en) * 2008-04-16 2014-09-16 Sprint Communications Company L.P. Maintaining a common identifier for a user session on a communication network
US8218502B1 (en) 2008-05-14 2012-07-10 Aerohive Networks Predictive and nomadic roaming of wireless clients across different network subnets
US8406748B2 (en) 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US8832777B2 (en) 2009-03-02 2014-09-09 Headwater Partners I Llc Adapting network policies based on device service processor configuration
US8346225B2 (en) 2009-01-28 2013-01-01 Headwater Partners I, Llc Quality of service for device assisted services
US8391834B2 (en) 2009-01-28 2013-03-05 Headwater Partners I Llc Security techniques for device assisted services
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8583781B2 (en) 2009-01-28 2013-11-12 Headwater Partners I Llc Simplified service network architecture
US8402111B2 (en) 2009-01-28 2013-03-19 Headwater Partners I, Llc Device assisted services install
US8275830B2 (en) 2009-01-28 2012-09-25 Headwater Partners I Llc Device assisted CDR creation, aggregation, mediation and billing
US9674892B1 (en) 2008-11-04 2017-06-06 Aerohive Networks, Inc. Exclusive preshared key authentication
US8483194B1 (en) 2009-01-21 2013-07-09 Aerohive Networks, Inc. Airtime-based scheduling
US10492102B2 (en) 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US9954975B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Enhanced curfew and protection associated with a device group
US9392462B2 (en) 2009-01-28 2016-07-12 Headwater Partners I Llc Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy
US11218854B2 (en) 2009-01-28 2022-01-04 Headwater Research Llc Service plan design, user interfaces, application programming interfaces, and device management
US10484858B2 (en) 2009-01-28 2019-11-19 Headwater Research Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US10798252B2 (en) 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US10200541B2 (en) 2009-01-28 2019-02-05 Headwater Research Llc Wireless end-user device with divided user space/kernel space traffic policy system
US10783581B2 (en) 2009-01-28 2020-09-22 Headwater Research Llc Wireless end-user device providing ambient or sponsored services
US10841839B2 (en) 2009-01-28 2020-11-17 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US9955332B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Method for child wireless device activation to subscriber account of a master wireless device
US9565707B2 (en) 2009-01-28 2017-02-07 Headwater Partners I Llc Wireless end-user device with wireless data attribution to multiple personas
US9980146B2 (en) 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US10264138B2 (en) 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US11985155B2 (en) 2009-01-28 2024-05-14 Headwater Research Llc Communications device with secure data path processing agents
US10779177B2 (en) 2009-01-28 2020-09-15 Headwater Research Llc Device group partitions and settlement platform
US10248996B2 (en) 2009-01-28 2019-04-02 Headwater Research Llc Method for operating a wireless end-user device mobile payment agent
US9270559B2 (en) 2009-01-28 2016-02-23 Headwater Partners I Llc Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow
US10237757B2 (en) 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US11973804B2 (en) 2009-01-28 2024-04-30 Headwater Research Llc Network service plan design
US9706061B2 (en) 2009-01-28 2017-07-11 Headwater Partners I Llc Service design center for device assisted services
US10715342B2 (en) 2009-01-28 2020-07-14 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US9572019B2 (en) 2009-01-28 2017-02-14 Headwater Partners LLC Service selection set published to device agent with on-device service selection
US9900251B1 (en) 2009-07-10 2018-02-20 Aerohive Networks, Inc. Bandwidth sentinel
US11115857B2 (en) 2009-07-10 2021-09-07 Extreme Networks, Inc. Bandwidth sentinel
US8331923B2 (en) * 2009-07-20 2012-12-11 Qualcomm Incorporated Wireless provisioning solution for target devices
US20110173052A1 (en) * 2010-01-12 2011-07-14 Bank Of America Corporation Enhanced Knowledge Management
US8626165B1 (en) 2010-02-18 2014-01-07 Amazon Technologies, Inc. Dynamic carrier switching
US8965366B1 (en) 2010-02-18 2015-02-24 Amazon Technologies, Inc. World SIM
US9020479B1 (en) 2010-02-18 2015-04-28 Amazon Technologies, Inc. Single version of a user device modem for use with different wireless carriers
US20120198046A1 (en) * 2010-04-29 2012-08-02 Mehul Jayant Shah Mobile device bandwidth throttling
CA2807473C (en) * 2010-08-06 2016-08-23 Tapjoy, Inc. System and method for rewarding application installs
US9002277B2 (en) 2010-09-07 2015-04-07 Aerohive Networks, Inc. Distributed channel selection for wireless networks
CN103858119B9 (zh) * 2011-06-29 2017-05-03 自由式科技控股有限公司 用于实现使用不同通信协议的设备之间的通信的***、方法和/或设备
US10091065B1 (en) 2011-10-31 2018-10-02 Aerohive Networks, Inc. Zero configuration networking on a subnetted network
US8842840B2 (en) 2011-11-03 2014-09-23 Arvind Gidwani Demand based encryption and key generation and distribution systems and methods
US20130185133A1 (en) 2012-01-15 2013-07-18 Linda Tong Recommending virtual reward offers and awarding virtual rewards
US8635128B2 (en) 2012-03-06 2014-01-21 Edgecast Networks, Inc. Systems and methods for billing content providers for designated content delivered over a data network
US8862516B2 (en) 2012-03-06 2014-10-14 Edgecast Networks, Inc. Systems and methods for billing content providers for designated content delivered over a data network
US9875488B2 (en) * 2012-03-30 2018-01-23 Rewardstyle, Inc. Targeted marketing based on social media interaction
US8787375B2 (en) 2012-06-14 2014-07-22 Aerohive Networks, Inc. Multicast to unicast conversion technique
US20140269435A1 (en) * 2013-03-14 2014-09-18 Brad McConnell Distributed Network Billing In A Datacenter Environment
WO2014159862A1 (en) 2013-03-14 2014-10-02 Headwater Partners I Llc Automated credential porting for mobile devices
US9413772B2 (en) 2013-03-15 2016-08-09 Aerohive Networks, Inc. Managing rogue devices through a network backhaul
US10389650B2 (en) 2013-03-15 2019-08-20 Aerohive Networks, Inc. Building and maintaining a network
US20150112769A1 (en) * 2013-10-18 2015-04-23 Caterpillar Inc. System and method for managing a worksite
JP6322976B2 (ja) 2013-11-29 2018-05-16 富士通株式会社 情報処理装置及びユーザ認証方法
EP3223453B1 (en) * 2014-11-19 2019-03-06 Huawei Technologies Co., Ltd. Directional traffic statistics method, device and system
US9438560B2 (en) * 2014-12-31 2016-09-06 Symantec Corporation Systems and methods for automatically applying firewall policies within data center applications
US10938882B2 (en) * 2019-07-09 2021-03-02 Servicenow, Inc. Preprocessing and storage of cloud service usage reports

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4640986A (en) * 1983-09-16 1987-02-03 Nec Corporation Mobile radio communication system
US4961158A (en) * 1988-11-22 1990-10-02 Lester Sussman Portable transaction tracking device
US5103475A (en) * 1990-10-29 1992-04-07 At&T Bell Laboratories Processing of telecommunications call billing data
EP0895398A3 (en) 1994-02-01 1999-07-21 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Method and system for identifying call records
JP3424305B2 (ja) * 1994-02-17 2003-07-07 富士ゼロックス株式会社 サービス課金方法および装置
US5634010A (en) * 1994-10-21 1997-05-27 Modulus Technologies, Inc. Managing and distributing data objects of different types between computers connected to a network
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US7188003B2 (en) * 1994-12-30 2007-03-06 Power Measurement Ltd. System and method for securing energy management systems
JP3711162B2 (ja) 1995-10-05 2005-10-26 富士通株式会社 ソフトウェア代金決裁システムおよび方法
US6141652A (en) * 1995-10-10 2000-10-31 British Telecommunications Public Limited Company Operating apparatus
US5708709A (en) 1995-12-08 1998-01-13 Sun Microsystems, Inc. System and method for managing try-and-buy usage of application programs
FI102232B1 (fi) * 1996-01-15 1998-10-30 Nokia Telecommunications Oy Pakettiradioverkko
JP3437373B2 (ja) 1996-04-16 2003-08-18 株式会社野村総合研究所 情報利用状況把握方法およびその方法を利用した情報提供システム
JPH09319575A (ja) 1996-05-24 1997-12-12 Nippon Denshi Keisan Kk 有償プログラムのオンラインによる使用権承認方式
US5883940A (en) * 1996-07-01 1999-03-16 Teledynamics Group, Inc. Interactive method and apparatus for the generation of leads
JPH10269105A (ja) * 1997-01-27 1998-10-09 N T T Data Tsushin Kk トレースシステム、リソース解放漏れ検出システム及び記録媒体
US6073124A (en) * 1997-01-29 2000-06-06 Shopnow.Com Inc. Method and system for securely incorporating electronic information into an online purchasing application
US6104704A (en) * 1997-03-20 2000-08-15 At&T Corp. Methods and apparatus for gathering and processing billing information for internet telephony
US6338046B1 (en) * 1997-10-06 2002-01-08 Nokia Telecommunications, Oy System and method for determining charges for usage of a network connection
US6377982B1 (en) * 1997-10-14 2002-04-23 Lucent Technologies Inc. Accounting system in a network
CA2313388C (en) 1997-12-15 2009-08-04 British Telecommunications Public Limited Company Data communications
US6333975B1 (en) * 1998-03-03 2001-12-25 Itron, Inc. Method and system for reading intelligent utility meters
JP3142821B2 (ja) 1998-08-27 2001-03-07 株式会社エヌ・ティ・ティ・ドコモ 情報通信ネットワークの課金方法
JP3142820B2 (ja) * 1998-08-27 2001-03-07 株式会社エヌ・ティ・ティ・ドコモ プッシュ型情報配信方法およびその中継装置
US6138156A (en) * 1998-10-05 2000-10-24 International Business Machines Corporation Selecting and applying content-reducing filters based on dynamic environmental factors
US6249571B1 (en) * 1998-10-30 2001-06-19 North Coast Logic, Inc. Telemanagement system with modular features and database synchronization
JP2000155735A (ja) * 1998-11-20 2000-06-06 Mitsubishi Electric Corp ディジタルコンテンツ配布システム装置
US6647260B2 (en) 1999-04-09 2003-11-11 Openwave Systems Inc. Method and system facilitating web based provisioning of two-way mobile communications devices
JP2000357191A (ja) 1999-06-15 2000-12-26 Hitachi Ltd 電子地図のサービス提供方法及びシステム
DE19929800A1 (de) 1999-06-29 2001-01-18 Siemens Ag Prepaid-Service für mobile Paketdatennetze
US6603761B1 (en) * 1999-09-17 2003-08-05 Lucent Technologies Inc. Using internet and internet protocols to bypass PSTN, GSM map, and ANSI-41 networks for wireless telephone call delivery
EP1119178B1 (en) * 1999-12-28 2010-04-14 Sony Corporation Image commercial transactions system and method
US20020029287A1 (en) * 2000-02-02 2002-03-07 Yechiam Yemini Method and apparatus for dynamically addressing a circuits based network
US6473749B1 (en) * 2000-02-22 2002-10-29 Robert Scott Smith System and method for managing file content
CN1468408A (zh) * 2000-03-27 2004-01-14 Tfhc��˾ 采用综合计费的网络聊天
FI20000761A0 (fi) * 2000-03-31 2000-03-31 Nokia Mobile Phones Ltd Laskutus pakettidataverkossa
US7181542B2 (en) * 2000-04-12 2007-02-20 Corente, Inc. Method and system for managing and configuring virtual private networks
RU2308809C2 (ru) * 2000-07-21 2007-10-20 Телемэк Корпорейшн Способ и система для оценивания данных для беспроводных устройств
SE0003440D0 (sv) * 2000-09-26 2000-09-26 Landala Naet Ab Kommunikationssystem
US20020069263A1 (en) * 2000-10-13 2002-06-06 Mark Sears Wireless java technology
US20030009385A1 (en) * 2000-12-26 2003-01-09 Tucciarone Joel D. Electronic messaging system and method thereof
US20020133457A1 (en) * 2001-01-31 2002-09-19 Gerlach Charles Althoff Apparatus and method for prepaid charging of wireless packet data services
US20020138622A1 (en) * 2001-03-21 2002-09-26 Motorola, Inc. Apparatus and method of using long lived addresses in a private network for push messaging to mobile devices
US7188091B2 (en) * 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US8606704B2 (en) * 2002-02-08 2013-12-10 Apple Inc. Customer billing in a communications network
US8310943B2 (en) * 2002-02-26 2012-11-13 Motorola Mobility Llc Method and system for transmission-based billing applications

Also Published As

Publication number Publication date
AU2002306608B2 (en) 2007-08-23
JP2007329937A (ja) 2007-12-20
JP2005509322A (ja) 2005-04-07
MXPA03007661A (es) 2004-11-12
US7436816B2 (en) 2008-10-14
EP1397769A2 (en) 2004-03-17
WO2002084947A3 (en) 2004-01-22
US20020128984A1 (en) 2002-09-12
WO2002084947A2 (en) 2002-10-24

Similar Documents

Publication Publication Date Title
JP4139228B2 (ja) アプリケーションの通信に基づく請求方法およびシステム
US20020131404A1 (en) Method and system for maintaining and distributing wireless applications
US20080301231A1 (en) Method and System for Maintaining and Distributing Wireless Applications
AU2002306608A1 (en) Method and system for transmission-based billing of applications
US8310943B2 (en) Method and system for transmission-based billing applications
US7792086B2 (en) Method for implementing an intelligent content rating middleware platform and gateway system
US7239877B2 (en) Mobile provisioning tool system
EP2332063B1 (en) Uniquely identifying network-distributed devices without explicitly provided device or user identifying information
EP1379045B1 (en) Arrangement and method for protecting end user data
CA2480821C (en) Connector gateway
US8122130B2 (en) Access control system and method for wireless application provisioning
US8818338B2 (en) Service platform for cellular telephony
CN113055492A (zh) 服务灰度链路的控制方法、装置、计算机设备和存储介质
CA2606036C (en) Access control system and method for wireless application provisioning
EP2320623B1 (fr) Procédé de fourniture d'un service
KR20080081597A (ko) 웹투피 서비스 제공 시스템, 게이트웨이, 서버 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070622

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080313

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080321

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080530

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080606

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110613

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees