JP6014297B2 - 異なる端末のアプリケーション間の通信 - Google Patents

異なる端末のアプリケーション間の通信 Download PDF

Info

Publication number
JP6014297B2
JP6014297B2 JP2013555426A JP2013555426A JP6014297B2 JP 6014297 B2 JP6014297 B2 JP 6014297B2 JP 2013555426 A JP2013555426 A JP 2013555426A JP 2013555426 A JP2013555426 A JP 2013555426A JP 6014297 B2 JP6014297 B2 JP 6014297B2
Authority
JP
Japan
Prior art keywords
appid
application
information
request
registry
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.)
Active
Application number
JP2013555426A
Other languages
English (en)
Other versions
JP2014514624A (ja
JP2014514624A5 (ja
Inventor
エス シェロダー ジュニア ブライアン
エス シェロダー ジュニア ブライアン
ジー ウェーバー エルマー
ジー ウェーバー エルマー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2014514624A publication Critical patent/JP2014514624A/ja
Publication of JP2014514624A5 publication Critical patent/JP2014514624A5/ja
Application granted granted Critical
Publication of JP6014297B2 publication Critical patent/JP6014297B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1016IP multimedia subsystem [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

関連出願
本出願は、2011年10月18日出願の米国特許出願番号13/276211、2011年10月18日出願の米国特許出願番号13/276220、2011年10月18日出願の米国特許出願番号13/276229、および2011年2月24日出願の米国仮出願番号61/446045の優先権の利益を有し、引用により本明細書に組み込まれるものとする。
IPマルチメディアサブシステム(IMS)ネットワークアーキテクチャは、IP関連技術を用いたリアルタイムマルチメディア配信を可能にする端末間アーキテクチャの例である。これにより、インターネット、固定有線電話通信および無線通信機能が融合される。これにより、無線アクセスネットワークの異なるネットワーク間のハンドオーバやローミングなどの異種環境アクセス技術によって課せられる異なるアクセス関連制約を管理し、多種の機器がサポートされる。たとえば、テキストによるチャット、写真・映像・音楽・ファイルの転送、ライブ映像の共有、グループチャット、位置の共有、双方向またはグループ通信などの多様な通信技術をサポートする多様なアプリケーションにおいて、ネットワークを介してアプリケーション間通信を提供する必要性が高まっている。本発明は、この必要性を満足させる。
いくつかの実施形態において、ネットワークを介してメディア情報を通信する方法が提示される。第1端末装置で動いている第1アプリケーションからの、第2端末装置で動いている第2アプリケーションとのメディア接続の要求に応じて、第2アプリケーションとのメディア接続の要求をネットワークを介して送信する。メディア接続要求は第1アプリケーションに関連付けられたアプリケーション識別子(AppID)を含んでいる。第1アプリケーションによる要求に応じて、要求されたメディア接続の承認を得る承認要求がネットワークを介してアプリケーション管理サーバに送信される。承認要求は第1アプリケーションに関連付けられたAppIDを含んでいる。メディア接続要求に応じて、第1端末装置と第2端末装置との間に確立された制御セッションを介して制御情報が通信される。制御情報は第1アプリケーションに関連付けられたAppIDを含んでいる。メディア接続要求に応じて、第1端末装置と第2端末装置との間に確立されたメディアセッションを介してメディア情報が通信される。
図1Aは、いくつかの実施形態におけるシステムを例示する図である。 図1Bは、いつくかの実施形態において、図1Aのアプリケーション管理サーバを使用して実行される第1プロセスの例示的なフローチャートである。 図1Cは、いつくかの実施形態において、図1Bの第1プロセス内の判定モジュールの詳細を示す例示的なフローチャートである。 図1Dは、いつくかの実施形態において、図1Cの第1プロセス内の判定モジュールの詳細を示す例示的なフローチャートである。 図1Eは、いくつかの実施形態において、図1Aのアプリケーション管理サーバにより実行される第2プロセスの例示的なフローチャートである。 図2Aは、いくつかの実施形態において、図1のシステムの複数の端末装置のアプリケーション間のメディア通信を初期化する信号フロープロトコルを例示する図である。 図2Bは、いくつかの実施形態における代替システム260の例示的な図である。 図3は、いくつかの実施形態における要求例の構成内のフィールドを例示する図である。 図4は、いくつかの実施形態におけるメッセージ例の構成内のヘッダフィールドを例示する図である。 図5は、いくつかの実施形態において、メディア通信の初期化が成功し、端末装置間でメディアデータを送信するために通信プロトコルスタックが使用される、図1および図2のシステムの例示的な図である。 図6は、図5のメディアセッションの詳細を例示し、メディアセッションに関連付けられた異なるポート例を示す図である。 図7は、いくつかの実施形態において、図2Aの通信プロトコルに従ってセッションの初期化成功後に第1および第2の端末装置内に1つ以上のデータバッファが割り当てられていることを示すシステムの例示的な図である。 図8は、いくつかの実施形態において、A2A対応アプリケーションがメディアセッションを用いるプロセスを例示するフローチャートである。 図9は、いくつかの実施形態において、A2AエンジンがA2A対応アプリケーションおよび通信プロトコルスタックと相互作用するプロセスを例示するフローチャートである。 図10は、本明細書に記載される1つ以上の手順をコンピュータに実行させるように、命令セットが実行される端末装置として動作するコンピュータ処理装置のブロックシステムである。
以下、承認済アプリケーション間通信をマルチメディアネットワークを介して安定して確保するシステム、方法および製品アーティクルを、当業者が作成・使用できるように記載される。好ましい実施形態に対する種々の変更は当業者には容易に明らかであり、本明細書に記載される一般的原理は本発明の主旨・範囲からはずれることなく他の態様や使用に適用可能である。以下、アプリケーションやモジュールにより特定された動作を実行する1つ以上のプロセッサを構成するように、たとえば、RAMなどの揮発性記憶媒体やディスクやフラッシュなどの不揮発性記憶媒体に格納されたコンピュータプログラムコードにより構成されるアプリケーションやプロセスモジュールについて開示する。さらに、以下に、多くの詳細事項が説明のために記載されている。しかし、当業者は、それら特定の詳細事項を使用せずに本発明を実施できることを理解できるであろう。また、不要な詳細により本発明の記載が理解しにくくならないように、周知の構成やプロセスについてはブロック図形式で示している。このように、本発明は、以下に示される実施形態に限定されることなく、本明細書に開示される原理や特徴に沿った最も広い範囲として認められるべきものである。
図1Aはいくつかの実施形態におけるシステム100を例示する図である。システム100は、マルチメディアサービス配信ネットワークアーキテクチャ208を介して通信する第1端末装置202−1と第2端末装置202−2を備える。端末装置は、移動電話無線装置、セットトップボックス、タブレットコンピュータ、自動車ナビゲーション/娯楽システム、ゲームコンソール、パーソナルコンピュータ、またはこれらの組合せを備える。いくつかの実施形態では、ネットワークアーキテクチャ208はIMSアーキテクチャを備える。
第1および第2端末装置202−1、202−2はアプリケーション間(以下、A2A)通信用に構成されている。すなわち、第1装置202−1で動いているアプリケーションは、第2装置202−2で動いているアプリケーションと通信することができる。たとえば、マルチユーザA2A通信ゲームアプリケーションによれば、ゲームの音声や映像とともにゲームデータを交換することができ、ゲーム中にユーザがお互いに話したり見たりすることができる。別の例として、マルチメディアA2A通信メッセージングアプリケーションによれば、テキストによるチャット、写真/映像/音楽/ファイルの転送、ライブ映像の共有、グループチャット、位置の共有、またはあらゆる種類の双方向またはグループの通信を行うことができる。さらに別の例として、マルチプレーヤA2A通信ゲームアプリケーションによれば、短い待ち時間、2者以上の間でのピアツーピアのデータ交換、および/または音声・映像またはテキストによるチャットなどの他のマルチメディア機能を含むことができる。A2A通信を含むアプリケーションの他の例としては、統合通信アプリケーション、顧客ケアアプリケーション、社交/交際アプリケーション、企業アプリケーションが挙げられる。これらの例示されたA2A通信アプリケーションは、ピアツーピアのデータ交換やマルチメディアメッセージ交換(テキスト、映像、音声、写真、または他のマルチメディアタイプ)など、同様な機能を利用することができる。他のA2A通信アプリケーションは、音声/映像会議アプリケーションを含んでいてもよい。以下に詳細に説明されるように、装置はアプリケーションが他のアプリケーションとメディアデータを通信できる1以上のメディアセッションを確立する。
A2Aアプリケーション管理サーバ102は、A2A対応アプリケーション間のメディアセッションの確立中は制御パスに配置される。サーバ102は、A2Aアプリケーション間のメディア接続の承認を管理する。さらに詳細には、様々な異なるA2Aアプリケーションが様々な異なる端末装置で動いていてもよい。アプリケーション管理サーバ102は、端末装置で動くとともにA2A通信に対応可能なアプリケーション(以下、A2A対応アプリケーション)間のメディア接続の承認を管理する。
管理承認は、A2A対応アプリケーションを識別することを含む。また、管理承認は、他のA2A対応アプリケーションとの間でA2A通信を確立するために、表面上は識別されたA2A対応アプリケーションから受領した要求が、その要求を送信したとされるA2A対応アプリケーションによって実際に送信されたと確認することも含む。さらに、いくつかの実施形態では、管理承認は、要求内で特定されたユーザにアプリケーションが承認されるか否か判定するための1つ以上の規定を適用することを含む。
いくつかの実施形態では、アプリケーション管理サーバはアプリケーション登録インターフェース112を含み、A2A対応アプリケーションに関連付けられたアプリケーション識別子(AppID)やアプリケーション秘密情報(アプリケーション秘密)などの非公開情報を指定するために使用するように、ウェブサーバ、データベース、遠隔プロセス、または分散クライアントや他のシステムに中央管理されたデータを利用可能にする他の手段として機能する。いくつかの実施形態では、開発者は、A2A対応アプリケーションを登録するために、アプリケーション登録インターフェース112を使用する。予備登録段階では、開発者は、アプリケーションをアプリケーションレジストリ104に登録する。AppIDとアプリケーション秘密が返送されて、アプリケーションにインデックスを付ける。AppIDは、メッセージ中のAppIDとアプリケーションのAppIDとの一致によってすべてのメッセージの経路を決めるために使用される。この登録は、一回限りのイベントであり、アプリケーション配備のために一回発生する。アプリケーション秘密は、動的にアプリケーショントークンを作成するために使用される。動的登録段階では、開発者は事前にアプリケーションを登録することはせず、複数のアプリケーションの動的な登録を可能にする開発者キーまたはトークンを有する。これは、プラットフォームで承認された「信任開発者」である。開発者キーは、動作中のアプリケーション登録中にパスし、バックエンドレジストリデータベース内の開発者キーのホワイトリストに対して確認される。それぞれの開発者キーには特性が関連付けられ、たとえば、動的登録または携帯電話会社により登録される個別のアプリケーションの数を制限する。他の特性も可能である。動的登録の間に、AppIDおよびアプリケーション秘密を引き出すために、開発者キーはアプリケーションのスタートアップまたはインストールに進む。セッションの間またはプラットフォームにより定義される長い期間、アプリケーション秘密は有効となっている。
AppIDを登録するときに、開発者/アプリケーションは、どのようなタイプのメッセージがAppIDに対応するアプリケーションによって受信可能か特定してもよい。ここで、以下のような選択肢が考えられる。
(1)アプリケーションは、同一のアプリケーション/AppIDからのメッセージのみ受信することができる。
(2)アプリケーションは、そのAppIDに対してアプリケーションレジストリ104にホワイトリストされているアプリケーションの定義されたリストからのメッセージを受信することができる。
(3)アプリケーションは、特定の開発者からのメッセージを受信することができる。
(4)アプリケーションは、たとえば特定のまたはリストされた国の携帯ネットワークなど、特定のネットワークまたはネットワークオペレータからのすべてのメッセージを受信できる。
(5)アプリケーションは、誰からもメッセージを受信することができる。
他の制約も可能であり、AppID登録の登録パラメータに追加することができる。
AppIDは、システム100内においてA2A対応アプリケーションを固有に識別する識別子である。言い換えれば、それぞれの異なる種類のA2Aアプリケーションは、自身の固有なAppIDに関連付けられている。AppIDは、異なる方法により生成することができ、異なるフォーマットを有することができる。異なるフォーマットには、数字の識別子(たとえば、1234)、英数字の識別子(たとえば、acme―application―1)、ホスト/ドメイン/パッケージの名称(たとえば、com.acme.xyz)やランダムな値が含まれるがこれらには限定されない。
アプリケーション管理サーバ102がメディア接続要求のソースを確認する際に使用するために、A2A対応アプリケーションに関連付けられた秘密情報は、メディア要求の一部としてネットワーク208を介して送信されるトークン(シグナチャ)を生成するために使用される。いくつかの実施形態では、たとえば、AppID、秘密情報、および要求に固有に関連付けられた他の情報(ヘッダ情報、タイムスタンプ、またはノンスなど)の機能として、トークンが動的に生成される。当然のことながら、トークンを生成するために特定の要求の特性に関連付けられた情報を使用することにより、たとえばリプレーアタックを回避しやすくなる。いくつかの実施形態では、たとえばMD5ハッシュまたはHMAC−SHA1ハッシュなどのハッシュ技術によりトークンが生成される。トークン生成の構成は本発明の範囲に含まれない。トークンやハッシュなどを生成するいくつかの一般的な方法は、当業者には容易に利用可能である。アプリケーション管理サーバ102もAppIDに関連付けられた秘密情報を所有(共有)し、メディア接続要求がその要求を送信したとされるA2A対応アプリケーションによって実際に送信されたことを確認するために秘密情報とトークンを使用する。このように、サーバ102は、ネットワーク208を介して秘密情報を送信する必要なしに要求を確認するためにトークンを使用する。
A2Aサーバ102は、それぞれ持続性記憶媒体内にコード化されたA2Aアプリケーションレジストリ104とユーザプロファイルレジストリ106を備える。A2Aアプリケーション管理サーバ102は、アプリケーションサービス108とユーザデータ収集サービス110を実行する。
表1は、いくつかの実施形態における持続性記憶媒体内にコード化されたアプリケーションレジストリ104の情報構造例を示す。
アプリケーションレジストリ104は、それぞれに異なるA2A対応アプリケーションを固有に識別する複数のAppIDを含む。レジストリ内の各AppIDは、メディア接続要求のソースを確認するために使用される秘密情報に関連付けられている。各AppIDは、AppIDに対応するA2Aアプリケーションに関連付けられた規則を示すメタデータに関連付けられてもよい。
表2は、いくつかの実施形態のおける持続性記憶媒体内にコード化されたユーザプロファイルレジストリ106の情報構造例を示す。
ユーザプロファイルレジストリ106は、メディア接続要求において特定されたユーザに関連付けられたユーザプロファイル情報を提供する。ユーザプロファイル情報は、サービス加入状態やユーザにより申し込まれたサービス品質の情報(最大許容ビットレートまたは許容転送量クラスなど)などの情報を含んでいてもよい。いくつかの実施形態では、アプリケーション管理サーバ102は、ホーム回線サーバ(HSS)やユーザ回線関連情報を含む3Gネットワークのマスターデータベースなどの携帯電話会社データベースから、情報をプロファイルレジストリ106内に入手する。いくつかの実施形態では、ユーザプロファイルレジストリ106は、携帯電話会社データベースの拡張として機能する。
図1Bは、いくつかの実施形態において、図1Aのアプリケーション管理サーバ102のアプリケーションサービス108を使用して実行される第1プロセス120の例示的なフローチャートである。特定のAppIDと秘密情報に関連付けられたA2Aアプリケーションのインスタンスを含む第2装置202−2とのA2A通信を確立するために第1端末装置202−1で動いているA2Aアプリケーションから発せられた要求を受信すると、モジュール122では、アプリケーションレジストリ104からAppIDに対応する情報一式を引き出すように試みられる。いくつかの実施形態では、第1端末装置202−1がネットワーク208を介して要求を送信する。要求は、ネットワーク208内の後述のプロキシサーバがこの要求をアプリケーション管理サーバ102に転送させる命令を含む。判定モジュール124において、AppIDが登録されているか否か、すなわち、アプリケーションレジストリ104がAppIDにより有効なA2A対応アプリケーションを特定されていることを示すか否かを判定される。判定モジュール124においてAppIDがレジストリ104に格納されていないと判定された場合には、モジュール126において要求拒絶を示すメッセージが発せられる。いくつかの実施形態では、拒絶メッセージは、拒絶に応じて要求を第2装置202−2に送信しないように判定するプロキシサーバに送信される。
判定モジュール124においてAppIDがレジストリ104に格納されていると判定された場合には、制御は判定モジュール128に進み、要求が、実際に承認済A2A対応アプリケーションから発せられたことを示す有効なトークンを含んでいるか否か、そして、たとえばスパムではないか否かが判定される。トークンの確認は、アプリケーションレジストリ104内で要求に含まれるAppIDに関連付けられた秘密情報の使用を含む。いくつかの実施形態では、トークンの確認は、上述のように変換情報を生成するために要求内のヘッダ情報のハッシュを反転させることを含む。判定モジュール128において変換情報が識別されたAppIDを有する秘密情報に一致しないと判定された場合には、要求は有効なトークンを含まない。そして、上述のように、モジュール126において要求拒絶を示すメッセージが発せられる。いくつかの実施形態では、モジュール126において、要求を発した端末装置に要求が拒絶されたことを通知するメッセージがネットワークを介して送信される。
判定モジュール128において要求が有効なトークンを含んでいると判定された場合には、制御は判定モジュール130に進み、アプリケーションレジストリ104内で要求に含まれるAppIDに関連付けられたメタデータにより示された規則や規定に要求が適合するか否かが判定される。判定モジュール130においてAppIDに関連付けられた規則が要求を拒絶すべきことを示すと判定された場合には、モジュール126により要求拒絶を示すメッセージが発せられる。しかし、モジュール130においていずれの規則や他の基準も要求許可を妨げないと判定された場合には、モジュール132において要求は受諾される。いくつかの実施形態では、要求の受諾は、要求が申し込まれた端末装置にネットワークを介して要求を転送することを含む。
図1Cは、いくつかの実施形態における判定モジュール130の詳細を示す例示的なフローチャート140である。判定モジュール142において、AppIDに関連付けられたメタデータが要求の際のメッセージで特定されたユーザとの同一性に関わらず適用可能な1つ以上の規則を含んでいるか否かが判定される。本明細書で使用されているように、ユーザは、個々のユーザと、たとえば、特定のグループ、組織または組織内の部署に関連付けられたユーザなどのユーザカテゴリを含む。たとえば、A2A対応アプリケーションは、周知のセキュリティまたは不正の問題によりグローバルにブラックリストされているかもしれない。判定モジュール142において規則が要求を拒絶すべきことを示すと判定された場合には、モジュール126において要求拒絶を示すメッセージが発せられる。判定モジュール142において要求拒絶を求めるユーザに依存しない規則が存在しないと判定された場合には、制御は判定モジュール144に進み、AppIDに関連付けられたメタデータと併せてユーザに依存する規則が承認要求を拒絶されるべきことを示すか否かが判定される。判定モジュール144においてユーザに依存する規則が要求を拒絶すべきことを示す場合には、モジュール126により要求拒絶を示すメッセージが発せられる。そうでない場合には、モジュールにおいて要求は受諾される。
図1Dは、いくつかの実施形態において、判定モジュール144の詳細を示す例示的なフローチャート170である。モジュール172において、AppIDに関連付けられたアプリケーションメタデータが取得される。モジュール174において、アプリケーションメタデータに関連するユーザプロファイル情報が取得される。モジュール176において、ユーザプロファイルとアプリケーションメタデータの機能として、1つ以上の承認規則が適用される。たとえば、A2A対応アプリケーションは、携帯電話契約に基づいて特定の顧客にはブラックリストされているかもしれない(たとえば、ある映像チャットアプリケーションは未成年者には利用させるべきではない)。他のA2A対応アプリケーション(たとえば、HD品質テレビ会議)は、特別契約によってのみ利用可能かもしれない。
したがって、第1端末装置202−1で動いているA2A対応アプリケーション204−1によりネットワーク208を介して送信された、第2端末装置202−2で動いている他のA2A対応アプリケーション204−2とのメディア通信の要求は、アプリケーションに関連付けられたメタデータおよびアプリケーションのユーザに関連付けられたプロファイル情報に基づいて承認されることが可能となる。
図1Eは、いくつかの実施形態において、図1Aのアプリケーション管理サーバ102のユーザデータサービス108を使用して実行される第2プロセス150の例示的なフローチャートである。モジュール152において、AppIDに関連付けられたアプリケーションメタデータが取得される。モジュール154において、アプリケーションメタデータに関連するユーザプロファイル情報が取得される。モジュール156において、ユーザプロファイルとアプリケーションメタデータの機能として、1つ以上のユーザ管理規則が適用される。たとえば、管理規則は、統計のため拒絶された要求のログを生成し、要求している装置のユーザに携帯電話会社の顧客サポートシステムを介して拒絶を通知(電子メールやSMSなど)し、またはこの情報を他の手段を介してユーザに返信してもよい。別の例として、管理規則により、特定のユーザが特定のAppIDに関連付けられたアプリケーションにアクセスするときには特別な請求料率が適用されるように定めてもよい。たとえば、ユーザは特定のゲームアプリケーションを特別料金で使用することを申し込んでもよい。さらに別の例として、管理規則は、携帯電話会社の課金システムによって処理される請求詳細記録(CDR)を生成してもよい。さらに別の例として、管理規則により、管理サーバ102が前払いの課金システムまたは他の手段(たとえば、Paypalサービスやクレジットカードなど)とやり取りするように構成されてもよい。さらに別の例として、アプリケーションレジストリ104とアイデンティティレジストリ106の一方または他方に含まれる管理規則によって、特定のAppIDの関連付けられたA2A対応アプリケーションが一定のサービス品質で提供され、ユーザの同一性に関わらず、一定の料金が請求されるべきであることを定めてもよい。たとえば、緊急医療サービスの提供に含まれるアプリケーションがネットワークを介した通信において最優先で提供されてもよく、また、割増料金で提供されてもよい。
図2Aは、いくつかの実施形態において、図1のシステム100の複数の端末装置のアプリケーション間のメディア通信を初期化する信号フロープロトコルを例示する図である。システム100は、第1端末装置202−1と、第2端末装置202−2と、通信ネットワーク208を備える。第1端末装置202−1は、アプリケーションに関連付けられた機能を実行するために第1端末202−1を構成するA2A対応アプリケーション204−1の第1インスタンスでコード化されたコンピュータ読み取り可能な持続性記憶媒体を含む。第2端末装置202−2は、同じアプリケーションに関連付けられた機能を実行するために第2端末202−2を構成するA2A対応アプリケーション204−2の第2インスタンスでコード化されたコンピュータ読み取り可能な持続性記憶媒体を含む。
本明細書で使用する「アプリケーション」という用語は、ユーザインターフェースを有し、メディア通信機能(たとえば、VOIP、映像、ピアツーピアパケットデータ通信、ファイル転送、チャットなど)を有するアプリケーションを指す。さらに、「アプリケーション」という用語は、例示的かつ非限定的に、スタンドアロンアプリケーションを含むように解釈され、複数のファイルとシステム設定、システムソフトウェア、ランタイムライブラリ、またはプラグインまたは拡張(たとえば、ブラウザプラグイン)に関連付けられていてもよい。本明細書における目的のために、アプリケーションは、ユーザインターフェースを生成する実行可能なファイルまたはファイルグループである。第1および第2のA2A対応アプリケーションの両者が起動されると、両端末装置が同一のA2A対応アプリケーションを実行するように構成される。第1装置202−1はA2A通信エンジン206−1の第1インスタンスを実行するように構成され、第2装置202−2はA2A通信エンジン206−2の第2インスタンスを実行するように構成される。
口語的にネットワーク「クラウド」と称されることがあるネットワーク208のIMS実装には、複数のSIPプロキシサーバ210(1つが示される)とA2Aアプリケーション管理サーバ102が含まれる。「SIP」という用語は、セッション初期化プロトコルを意味する。「セッション」という用語は、通信する1つ以上の送信側および受信側のセットと、通信の間それらの送信側および受信側に保存されている状態を意味する。開示されている実施形態ではSIPメッセージが使用されているが、スカイププロトコルなど他のメッセージプロトコル、ジングル(音声用)などのXMPP拡張、およびピアツーピア通信を確立するための他の一般的なプロトコルを代わりに使用してもよい。「サーバ」は、たとえばコンピュータなどの機器であり、他の機器に対して情報や経路サービスを提供するように構成される。サーバへのアクセスを要求する機器(コンピュータまたはスマートホン)は機器のクライアントとみなされる。
ネットワーク208は、典型的には基幹機器間で信号を伝達するが、セッションの間にデータ通信のための固定されたパスは構成せず、端末装置における状態は維持される。セッションの例としては、インターネット電話、マルチメディア配信、マルチメディア会議、分散型コンピュータゲームなどが挙げられる。SIPはインターネットモデルに適合する終端間信号プロトコルであり、SIPメッセージの経路を除くすべてのロジックは端末装置に格納されている。SIPプロキシサーバ210は、たとえば、被招待装置の現位置、承認、課金などの要素に応じて招待装置から被招待装置に送信される招待案内の経路を決定する。実際には、被招待装置の実際のネットワーク位置を認知しているSIPが見つかるまで、招待装置により発信されたセッション招待案内は複数のSIPプロキシサーバ210(1つが示されている)をしばしば通過する。そして、被招待装置はセッション招待案内を受諾あるいは拒否できる。
さらに、携帯ネットワーク208の詳細は、使用されるアクセス技術によって変化する。さらに、SIPセッションの確立には、様々なネットワーク機器間の通信が含まれてもよい。たとえば、SIPセッションの確立には、さらに、レジストラサーバ(不図示)との通信と、ユーザからの登録を受信し、それらの現在位置(たとえば、IPアドレス、ポート、およびユーザ名)に関する情報を抽出し、SIPサーバがアクセス可能な位置データベースのその情報を格納するSIP主体とが含まれてもよい。また、SIPセッションの確立には、要求を受信し、レジストラによって生成された位置データベース内で要求の意図された受領側を検索し、特定のユーザの現在位置のリストを含む返信を送り返すリダイレクトサーバ(不図示)との通信が含まれてもよい。このように、ネットワーク208は、多数のプロキシサーバ、リダイレクトサーバ、レジストラサーバ、および無線・電話通信・インターネット通信の使用される他の基幹機器を含んでもよい。しかし、本明細書における不要な複雑さを避けるために、SIPセッションの確立に含まれるネットワーク208の動作はプロキシサーバ210によって説明されるものとする。
図2Aは、A2Aアプリケーション204−1,204−2の第1および第2イスタンス間の通信セッションの確立に含まれるシステム100の機器間の通信の複数の通信ステージS0−S5を示す。第1端末装置202−1と第2端末装置202−2間の通信の確立には、ネットワーク208を介して信号を送信することが含まれる。上述のように、SIPプロキシサーバ210は、招待端末機器から被招待端末機器にセッション招待案内を送るために使用される。図2Aの信号フローの例において、第1端末装置202−1を招待装置とし、第2端末装置202−2を被招待装置とする。セッションの確立には、他のメッセージ伝達が追加されてもよい。しかし、そのような追加可能なメッセージ伝達の詳細は、本発明において重要ではなく当業者には容易に理解されるものである。したがって、本明細書での説明は省略する。
ステージS0において、第2端末装置202−2のA2A対応アプリケーション204−2の第2インスタンスとのメディアセッションを確立するために、第1端末装置202−1のA2A対応アプリケーション204−1の第1インスタンスは装置202−1が要求212をA2A通信エンジン206−1の第1インスタンスに送信するように構成する。以下に詳細に説明するように、A2Aエンジン206−1とA2Aエンジン206−2はA2A対応アプリケーションインスタンス204−1、204−2、および各通信プロトコルスタックの間のインターフェースとして動作する。いくつかの実施形態では、要求212は、第1装置202−1で動いているA2A通信エンジン206−1の第1インスタンスへのメソッド呼出しを含む。いくつかの実施形態では、メソッド呼出しは、C、C++、Java、または他の一般的なプログラム言語またはスクリプト言語による手続き呼出しを含んでもよい。また、メソッド呼出しは、AIDL、RMI、CORBA、または他の仕組みを使用した別のプロセスに対する、パイプ、キュー、ソケット、または他の遠隔手続き呼出しなどの利用可能な仕組みを使用したメッセージを含んでもよい。
図3は、メソッド呼出し要求212の例のデータ構成内のフィールドを例示する図である。SIPユーアールアイ(URI)フィールドは、被招待装置202−2を特定する。AppIDフィールドは、要求アプリケーションを特定する。構成によっては、セキュリティ情報フィールドは、セキュリティのために使用されるトークン情報やトークンを生成するために使用される秘密情報を含んでもよい。また、発せられた要求は、たとえば、音声、映像、ファイル転送、チャット、グループチャット、リアルタイムピアツーピアデータ転送、アプリケーション配置などの1種類以上のメディアを含む、要求されたメディアセッションなどの追加情報を含んでもよい。
ステージS1において、A2A通信エンジン206−1の第1インスタンスは、要求212を端末ネットワーク208内でSIPプロキシサーバ210への送信に適したSIP招待メッセージ214に変換するインターフェースとして動作するように、第1端末装置202−1を構成する。上述のように、実際の送信は、たとえば、いくつかの異なるプロキシ間の往来、また場合によっては、ネットワーク208内のレジストラサーバ(不図示)やリダイレクトサーバ(不図示)の使用を含んでもよい。SIPメッセージ214の例は、第1識別子(たとえば、第1SIP−URI)を有する第1端末装置から第2識別子(たとえば、第2SIP−URI)を有する第2端末装置への招待を含む。
図4は、SIPメッセージ214の例の構成内のヘッダフィールドを例示する図である。「発信元」および「宛先」のアドレスフィールドは、それぞれ第1SIP−URIおよび第2SIP−URIを示す。サービスタグのフィールドは、通信タイプを「App2App(すなわち、アプリケーション間)」として示す。AppIDフィールドは、通信セッションを介してアプリケーションの固有なタイプを特定し追跡するパラメータとして動作するグローバルに固有な識別子を提供する。いくつかの実施形態では、オプションセキュリティ情報フィールドは、メッセージを認証するために使用されるセキュリティトークンを含む。SDPフィールドは、セッション中のネゴシエーションメディア送信に使用される情報を提供する。この例では、メディアは、たとえばH264フォーマットを使用し特定のビットレート(不図示)を有する映像メディアを含む。
ステージS2において、メッセージがAppIDに関連付けられたA2A対応アプリケーションによる要求を含むことを示すサービスタグに応じて、SIPプロキシサーバ210はメディアセッション要求を評価するA2Aアプリケーションマネージャ102にメッセージ216を送信する。さらに詳しくは、いくつかの実施形態では、サービスタグは、プロキシサーバ210に対する、要求を第2端末装置202−2に転送する前に承認要求216をアプリケーション管理サーバ102に送信する命令として動作する。このように、要求214には、要求216を生成する命令が埋め込まれている。いくつかの実施形態では、メッセージ216は、図4に示され参照して説明されるヘッダ情報を含む。たとえば、特定の装置やユーザに対する、セキュリティ情報の確認、使用統計の生成、メディアセッション課金のトリガー、またはセキュリティエラーまたはAppIDのブラックリストによりメディアセッション要求が拒絶されるべきか否かの判定などの1つ以上の機能を実行するために、メッセージ216に応じて、A2Aアプリケーションマネージャ102は、図1Bから図1Eにより説明した第1および第2のプロセスを実行する。A2A対応メッセージを示すサービスタグが実質的に含まれることにより、プロキシサーバ210がメディア接続を確立するためにアプリケーションマネージャに対して承認を要求することになる。このように、第2端末装置202−2で動いているA2A対応アプリケーション204−2の第2インスタンスとのメディア接続を確立する要求と、アプリケーション管理サーバ102に対するSIPメッセージに含まれたAppIDを有するA2Aアプリケーションの承認の要求とが、両者ともSIP招待214に埋め込まれている。
ステージS3において、メッセージ216および上述のA2Aアプリケーションマネージャ動作の完了に応じて、A2Aアプリケーションマネージャ102は、要求されたサービス、A2Aサービス、およびAppIDの端末装置202−1、202−2に対する送受信を特定するとともに要求されたメディアセッションが受諾されるべきか拒絶されるべきかを示すメッセージ218を、プロキシサーバ210に送信する。いくつかの実施形態では、A2Aアプリケーションマネージャ102は、承認と判定されるSIPメッセージ/要求をネットワーク208を介して第2端末装置202−2に転送する。要求が拒絶された場合には、A2Aアプリケーションマネージャ102は、要求を発した第1端末装置202−1に拒絶通知を送信する。ステージS4において、プロキシサーバ210は、図4の構成中の情報を含むメッセージ220を第2端末装置202−2で動いているA2A通信エンジン206−2の第2インスタンスに送信する。A2A通信エンジン206−2は、メッセージ220中のAppIDに対応するアプリケーションのインスタンスが第2端末装置202−2にインストール済で動いているかどうかを判定する。いくつかの実施形態では、アプリケーション204−2のインスタンスがすでにインストール済であるが動いていない場合には、A2A通信エンジン206−2はアプリケーションを起動する。
アプリケーション204−2のインスタンスがインストールされていない場合、一般的には、A2A通信エンジン206−2は、端末装置202−2要求されたアプリケーション204−2のインスタンスをインストールしたか否かについての事前情報を得ることになる。しかし、いくつかの実施形態では、アプリケーションがインストールされていない場合には、A2A通信エンジン206−2は自動的に招待を拒絶する。また、いくつかの実施形態では、A2A通信エンジン206−2は、第2端末装置202−2に対して、失敗した招待のAppIDを使用して、不足しているアプリケーションのダウンロードリンクなどのメタデータが得られるアプリケーションレジストリ104でアプリケーションを検索して、不足しているアプリケーションをダウンロードするように促す。いくつかの実施形態では、第2端末装置202−2のユーザインターフェースが、装置のユーザに対して失敗した招待を示し、不足しているアプリケーションの取得方法についての情報を提供する。たとえば、「「abc」という名称(AppIDとは異なってもよい)のアプリケーションの実施の招待/申込みに失敗しました。ここをクリックしてダウンロードしてください。」のようなメッセージが提供されてもよい。
ステージS5において、アプリケーションがインストール済で動いている(起動している)と仮定すると、A2A通信エンジン206−2は、図4の構成内の情報を含むメッセージ222を第2端末装置202−2で動いているアプリケーション204−2の第2インスタンスに送信する。いくつかの実施形態では、第2端末装置のプラットフォームおよび/またはプログラム言語によっては、メッセージ222は、たとえば、コールバック/イベント装置、手続き呼出し、またはプロセス間通信のための他のプラットフォームに特定の手段(たとえば、アンドロイドプラットフォームの「インテント」)を介して配信されてもよい。一般的には、いくつかの実施形態では、メッセージはSIPプロトコルレベルで認識される(ACKおよびOKメッセージ)。適用可能な場合には、タイムアウトもメッセージに関連付けられる(たとえば、INVITE)。SIPプロトコルによって、たとえば、「VIA」ヘッダが、招待端末装置202−1にたどり着くために往来するネットワークノードを示すために使用されてもよい。タイムアウトの場合には、被招待装置202−2による積極的な招待拒絶とは対照的に、招待装置202−1は、被招待装置202−2が招待の受諾に失敗したと認識する。
図2Bは、いくつかの実施形態における代替システム160の例示的な図である。代替システム160の機器は、図1Aから図2Aを用いて説明したものと実質的に同一である。以下、システム100とシステム160の違いを説明する。具体的には、A2Aエンジン206−1’は、現在承認済のA2A対応アプリケーションのAppIDの表示を周期的に要求するように構成される。具体的には、A2Aエンジン206−1’は、装置202−1’の現在登録済のアプリケーションのAppID承認を周期的に要求する。A2Aエンジン206−1’は、承認済A2A対応アプリケーションを示すローカル端末装置アプリケーションレジストリ162を維持する。関連付けられたAppIDを有するA2A対応アプリケーションからの、メディアセッション確立の要求に応じて、A2Aエンジンが、レジストリ162の内容に基づいてA2A対応アプリケーション204−1’がそのAppIDに基づいて承認されるか否かを決定する。このように、図2の信号フローにおけるステージS2とS3を回避することができる。第1端末装置202−1’は、ネットワーク(不図示)を介してSIP招待164を送信することができる。また、第2端末装置202−2’は、通信セッション確立の過程でマネージャ102に問い合わせる必要なしに、ネットワークを介してSIP応答166を送信ことができる。
図5は、メディア通信の初期化が成功し、第1および第2の端末装置201−1、202−2の間でメディアデータを送信するために通信プロトコルスタック530−1、530−2が使用される、図2Aのシステム100の例示的な図である。通信プロトコルスタック530−1、530−2はいずれも階層プロトコルスタックである。一般的に、ネットワークプロトコルは、ネットワーク機能が層に分割されるように階層化されている。プロトコルスタックにおいて、各層は、下層のサービスに依存する明確なサービスを実行し、上層にサービスを提供する。一般に、通信プロトコルは、スタック内の1つの層で通信サービスを提供するソフトウェアシステムを規定するために使用される。結果として生じる階層化プロトコルは、プロトコルスタックと呼ばれる。プロトコルスタックは、複数のプロトコルを含むネットワーク機能を規定する。さらに詳細には、プロトコルスタック層は、持続性媒体にコード化された命令を有し、端末装置202−1、202−2およびネットワーク208の機器にプロトコル層によって規定されたネットワーク機構を実行させる。
いくつかの実施形態では、第1および第2の通信プロトコルスタック530−1,530−2は、IMSネットワークアーキテクチャに準拠する。IMSプロトコルスタックは、異なる標準またはRFC(コメント要求)によって規定された異なるプロトコルを異なる層に有している。IMSネットワークアーキテクチャにおいて、典型的には、SIPは、RTP(リアルタイム転送プロトコル)とSDP(セッション記述プロトコル)を含んで、IMS準拠の通信プロトコルスタックの一部である他のいくつかのプロトコルと連動して使用される。典型的には、RTPは、リアルタイムマルチメディアデータ(たとえば、音声、映像共有、チャット、ファイル共有、XMPP準拠プロトコルおよび拡張(たとえば、IPを介した音声サービスのジングル)、およびその他ピアツーピアリアルタイム通信の仕組み)をコード化してパケットに分割し、パケットをインターネットを介して転送するように使用される。典型的には、SDPは、セッション参加メンバーの能力を記述しコード化するように使用される。このような記述は、メディアをコード化するコーデックや使用する転送プロトコルなど、セッションの特徴を取り決めるために使用できる。その結果、すべての装置がセッションに参加できるようになる。もちろん、異なる特定の使用のために異なるプロトコルのオプションを使用することをIMSネットワークアーキテクチャが指定してもよい。
図5は、図2Aの通信プロトコルに従ってセッションの初期化成功後に第1および第2の端末装置202−1、202−2の間に1つ以上の通信セッション532が確立されていることを示す。また、図5は、通信セッション532が同一のプロトコルスタックインスタンス530−1,530−2によって特定されたプロトコルに従ってネットワーク208を介してデータを転送することも示す。以下の詳細に説明するように、A2Aエンジンインスタンス206−1、206−2は、インターフェースとして動作し、(1)A2A対応アプリケーションインスタンス204−1,204−2から受信したメソッド呼出し要求やメッセージを、ネットワーク208で使用可能な形式に変換し、(2)ネットワーク208から受信したネットワークパケットやフレームをA2A対応アプリケーションインスタンス204−1、204−2が使用可能な形式に変換し、(3)各アプリケーションインスタンス204−1、204−2およびプロトコルスタックインスタンス530−1、530−2の間のセッション532中に、制御データとメディアデータをネットワーク208を介して送信する。
図6は、図5のメディアセッション532の詳細を例示し、メディアセッションに関連付けられた異なるポート例を示す図である。例示されたメディアセッション532は、第1装置202−1と第2装置202−2の間で確立された2つの通信セッション、すなわち、メディア制御信号セッション602とメディア(たとえば、映像)セッション604を実際に含んでいる。制御信号セッション602は、メディアセッション604を確立しメディアセッション604によるメディア配信を制御するために使用されるSIPメッセージの通信に使用される。図示された例では、メディアセッション604によって映像データが装置間で転送される。制御セッション602と映像セッション604のいずれも、フレーム構造606,608で情報を送信する。制御セッション602のフレーム構造606はAppID情報を含む。このAppID情報は、第1および第2のアプリケーションインスタンス204−1、204−2により共有される固有のグローバルな識別子として機能し、メディアセッション604が関連するA2A対応アプリケーション204−1,204−2を示す。
セッション602、604は、多少ともソフトウェアポート番号に基づいた共有AppIDに基づいて、A2Aアプリケーションインスタンス204−1、204−2に関連付けられている。このように、ポートは、事前に特定のアプリケーションに割り当てられる必要はなく、可用性などの要因に基づいてメディアセッションに関連付けられてもよい。セッション602、604は、第1および第2の装置202−1、202−2の異なるソフトウェアポートの関連付けられてもよい。この例では、メディア制御信号セッション602は、第1装置202−1のNXポートおよび第2装置202−2のNMポートに関連付けられている。メディアセッション604は、第1装置202−1のNZポートおよび第2装置202−2のNQポートに関連付けられている。
図7は、いくつかの実施形態において、図2Aの通信プロトコルに従ってセッション602、604の初期化成功後に第1および第2の端末装置202−1、202−2内に1つ以上のデータバッファが割り当てられていることを示すシステム100の例示的な図である。図示された例では、第1装置202−1の持続性記憶媒体内に割り当てられた第1バッファ702−1は、共有AppIDのラベルが付けられ、制御セッション602を使用して通信される制御データを一時的に保存する。第2装置202−2の持続性記憶媒体に割り当てられた対応する第2バッファ702−2は、共有AppIDのラベルが付けられ、制御セッション602を使用して通信される制御データを一時的に保存する。
動作中、それぞれのバッファ702−1、702−2によって受信された制御情報は、それぞれの通信スタック530−1、530−2に従って処理される。通信スタック530−1、530−2は、処理した制御情報をそれぞれのA2Aエンジンに通知する。第1および第2のA2Aエンジン206−1、206−2は、バッファ702−1、702−2内の情報にアクセスし、ネットワーク208を介して使用されバッファ702−1、702−2に格納される形式とA2Aアプリケーション204−1、204−2の第1および第2のインスタンスが理解可能な形式との間における制御信号メッセージの変換を実行するそれぞれのインターフェースとして動作する。また、第1および第2のA2Aエンジン206−1、206−2は、変換された制御メッセージをAppIDに基づいて第1および第2バッファ702−1,702−2と適切なアプリケーションインスタンス204−1、204−2の間で転送するようにAppIDを使用するそれぞれのインターフェースとしても動作する。
同様に、第1装置202−1の持続性記憶媒体内に割り当てられた第3バッファ704−1は、共有AppIDのラベルが付けられ、メディアセッション604を使用して通信されるメディアデータを一時的に保存する。第2装置202−2の持続性記憶媒体に割り当てられた対応する第4バッファ704−2は、共有AppIDのラベルが付けられ、メディアセッション604を使用して通信されるメディアデータを一時的に保存する。いくつかの実施形態では、A2Aエンジンインスタンス206−1、206−2は、装置オペレーティングシステム708−1、708−2のアクセス可能なポートと装置202−1、202−2で動いているそれぞれのA2Aアプリケーション204−1、204−2との間にそれぞれのメディア通信チャネル706−1、706−2を提供するようにそれぞれの端末装置202−1、202−2を構成するように動作する。これらのメディア通信チャネル706−1、706−2は、メディアデータ(たとえば、映像データ)のより高速な通信を可能にする。典型的には、A2A対応アプリケーションは、概してバックグラウンドプロセスとして指定される通信スタック関連プロセスよりも多くのプロセッササイクルに割り当てられるフォアグラウンドプロセスとして、オペレーティングシステムによって指定される。さらに、メディア通信チャネルによって、A2Aエンジン206−1、206−2を経由することなく、メディアセッション604につながるそれぞれのオペレーティングシステムレベルのポートとA2Aアプリケーション204−1、204−2の第1および第2インスタンスとの間をメディアが往来することができる。その結果として、通信スタック関連プロセスとA2A対応アプリケーションとの間でメディアデータを転送するためのプロセス間通信が不要となる。
図8は、いくつかの実施形態において、A2A対応アプリケーションがメディアセッションを用いるプロセスを例示するフローチャートである。プロセス800は、A2A対応アプリケーション204−1、204−2の第1および第2のインスタンスのいずれにも適用可能である。モジュール802において、図2Aの信号プロトコルに従ってメディアセッションを確立するように、対応するA2Aエンジン206−1、206−2に要求が発せられる。たとえば、ユーザは、特定のA2Aアプリケーションのインスタンスが動いている装置の他のユーザ(たとえば、友人または知人)を特定するように、端末装置202−1に要求を入力し、そして、A2Aアプリケーションを介した通信に参加するように1人以上の他のユーザを招待する要求を装置202−1に入力してもよい。たとえば、A2Aアプリケーションは、映像メディア、音声メディア、およびゲームデータを含むゲームアプリケーションであってよい。いくつかの実施形態では、そのような要求は、要求しているA2A対応アプリケーションで内部的に生成されるトークンを含む。他の実施形態では、対応するA2Aエンジンがトークンを生成できるように、要求がA2A対応アプリケーションに関連付けられた秘密情報を含んでいてもよい。判定モジュール804において、メディアセッションが初期化に成功したか否かを判定する。失敗した場合には、モジュール806において、メディアセッション初期化の失敗が報告される。判定モジュール808において、A2A対応アプリケーションが、他の装置で動いているA2A対応アプリケーションの対応するインスタンスにメディアデータを送信するか否かを判定する。送信する場合には、モジュール810において、アプリケーションのAppIDとともにメディアデータがA2Aエンジンに提供される。送信しない場合には、判定812において、メディアデータがすでにA2Aエンジンに提供されているか否かを判定する。提供されている場合には、モジュール814において、メディアデータをA2Aエンジンから回収する。提供されていない場合には、制御は判定モジュール808に戻る。さらに、各モジュール810、814に続いて、制御は判定モジュール808に戻る。
図9は、いくつかの実施形態において、A2AエンジンがA2A対応アプリケーションおよび通信プロトコルスタックと相互作用するプロセス900を例示する図である。プロセス900は、A2Aエンジン206−1、206−2の第1および第2のインスタンスのいずれにも適用可能である。モジュール902において、アプリケーションのAppIDを特定するA2A対応アプリケーションからの要求が受信される。上述のように、いくつかの実施形態では、そのような要求は、要求しているA2A対応アプリケーションで内部的に生成されるトークンを含む。他の実施形態では、対応するA2Aエンジンがトークンを生成できるように、要求がA2A対応アプリケーションに関連付けられた秘密情報を含んでいてもよい。アプリケーションからの要求に応じて、モジュール902において、AppID、セキュリティ(すなわち、AppIDと秘密キーの機能として生成されるトークン)、およびメディア形式を含むSIP要求が生成され、図2Aと図5に従って説明したように、そのSIP要求が通信プロトコルスタックに転送される。図2Aに従って説明したように、いくつかの実施形態では、メディアセッションを確立するために異なる端末装置で動いているアプリケーションの別のインスタンスに要求を送信する前提条件としてA2Aアプリケーションマネージャ102から承認を得るために、SIP要求により、ネットワーク上の1つ以上のプロキシサーバからA2Aアプリケーションマネージャ102にメッセージが送信される。モジュール904では、メディアセッションの初期化が成功したか失敗したかが、要求しているA2A対応アプリケーションに報告される。初期化に失敗した場合には、判定モジュール906によりプロセスが終了する。初期化が成功した場合には、制御は判定モジュール906からモジュール908に進む。ここでは、オペレーティングシステム(708−1または708−2)により、メディアバッファ(704−1または704−2)が割り当てられ、メディアバッファを使用するA2A対応アプリケーション(204−1または204−2)に直結する通信ルートが生成される。いくつかの実施形態では、一旦通信ルートが確立されると、A2Aエンジンは、A2Aアプリケーションとの間のメディア転送に関して更なる役割を有しない。モジュール908において、通信プロトコルスタックにより開放された制御バッファ(たとえば、バッファ702−1または702−2)が決定される。
判定モジュール910と914は並行して動作する。判定モジュール910において、通信スタックに配信するために、AppIDに関連付けられた制御情報がA2A対応アプリケーションにより提供されているか否かが判定される。提供されている場合には、モジュール912において、制御情報はプロトコルスタックの使用に適した形式に変換され、制御バッファに供給するために、A2A対応アプリケーションから受信したAppIDヘッダ情報に関連付けられた変換済制御情報が通信スタックに提供される。提供されていない場合には、制御は判定モジュール910に戻り、制御情報がA2A対応アプリケーションにより提供されているか否かの判定を継続する。
判定モジュール914において、A2A対応アプリケーションに配信するために、関連付けられたAppIDヘッダ情報とともに制御情報が通信プロトコルスタックによって制御データバッファに提供されているか否かが判定される。提供されている場合には、モジュール916において、受信した制御情報が変換され、その制御情報は提供された制御情報に含まれているAppIDと同一のAppIDを有するA2A対応アプリケーションに送信される。提供されていない場合には、判定モジュール914に戻り、制御情報が通信スタックにより提供されているか否かの判断を継続する。
図示された例においては、各端末装置では単一のA2A対応アプリケーションのみが動いている。しかし、当然ながら、各端末装置で複数のA2A対応アプリケーションが動くことも可能である。各A2A対応アプリケーションは、固有のAppIDを有している。A2Aエンジンは、通信スタックからAppIDに基づいて異なるA2A対応アプリケーション制御メッセージを送信する。また、単一の制御セッションにより複数の異なるA2A対応アプリケーションのためのメディアセッションが制御可能であることも理解される。それぞれの異なるA2A対応アプリケーションのために、制御セッションがそのA2A対応アプリケーション専用の1つ以上のメディアセッションを確立する。制御セッションを介して通信された情報のフレームまたはパケットは、フレームまたはパケット内に含まれたAppIDに基づいて異なるA2A対応アプリケーションに送信される。さらに、本明細書における例では、同一のAppIDを有する2つのA2Aアプリケーション間での通信について説明しているが、異なるAppIDを有する2つのA2A対応アプリケーション間で通信を確立してもよい。
ハードウェアの構成例
図10は、本明細書に記載される1つ以上の手順をコンピュータに実行させるように、命令セットが実行される端末装置として動作するコンピュータ処理システムのブロック図である。例示の処理システム1000は、プロセッサ1002(たとえば、中央演算装置(CPU)、グラフィック処理装置(GPU)、またはその両者)と、バス1008を介して互いに通信する持続性メイン記憶媒体1004および持続性スタティック記憶媒体1006を備える。さらに、コンピュータ処理システム1000は、映像ディスプレイ装置1010(たとえば、プラズマディスプレイ、液晶ディスプレイ(LCD)、またはブラウン管(CRT))を備えてもよい。また、処理システム1000は、英数字入力装置1012(たとえば、キーボード)と、ユーザインターフェース(UI)ナビゲーション装置1014(たとえば、マウス、タッチスクリーンなど)と、ディスクドライブユニット1016と、信号発生装置1018(たとえば、スピーカ)と、ネットワークインターフェース装置1020とを備える。
ディスクドライブユニット1016は、本明細書に記載される1つ以上の手順や機能を実施または利用する1セット以上の命令とデータ構造(たとえば、ソフトウェア1024)が格納されたコンピュータ読み取り可能な持続性記憶装置1022を備える。ソフトウェア1024は、全体または少なくとも一部が、持続性メイン記憶装置1004などのコンピュータ読み取り可能な記憶装置の内部、および/または、処理システム1100、持続性メイン記憶装置1004、およびコンピュータ読み取り可能で理解可能な媒体をも構成するプロセッサ1002により実行中のプロセッサ1002の内部に存在していてもよい。
さらに、ソフトウェア1024は、多数の周知の転送プロトコル(たとえば、HTTP)のいずれか1つを利用するネットワークインターフェース装置1020によりネットワーク1126を介して送受信されてもよい。
コンピュータ読み取り可能な記憶装置1022は、実施例では単一のメディアとして示されているが、「コンピュータ読み取り可能な記憶装置」という用語は、1セット以上の命令を格納する単一または複数の媒体(たとえば、集中型または分散型のデータベース、および/または関連するキャッシュおよびサーバ)を含むものとする。また、「コンピュータ読み取り可能な記憶装置」という用語は、コンピュータによる実行のための1セット以上の命令を格納し、コード化し、保持することが可能であって、現アプリケーションの1つ以上の手順をコンピュータに実行させる媒体、またはそのような命令セットに利用されるか関連づけられるデータ構造を格納し、コード化し、保存することが可能である媒体を含むものとする。したがって、「コンピュータ読み取り可能な記憶装置」という用語は、ソリッドステートメモリや光学および磁気媒体を含むが、これらに限定されるものではない。
本明細書において単一の例として説明されている要素、動作、または構成には、複数の例が採用されてもよい。最後に、様々な要素、動作、およびデータ保存の間の境界は多少任意的であり、特定の動作は特定の例示的な構成との関連で例示される。機能の他の配分も構想されるが、それらも本発明の権利範囲に含まれるであろう。一般的に、典型的な構成において別々の要素として達成される構成や機能は、組み合わされた構成や要素として実行されてもよい。同様に、単一の要素によって達成される構成や機能は別々の要素として実行されてもよい。上記および他の変更、修正、追加、および改良は、本発明の権利範囲に属するものとする。
したがって、上記の実施形態の説明および図面は、単に本発明の原理を説明するためのものである。当業者によって、添付された特許請求の範囲に規定された本発明の精神および範囲からはずれることなく、上記実施形態に対して様々な修正が可能である。

Claims (25)

  1. ネットワークを介してメディア情報を通信する方法であって、
    第1端末装置で動いている第1アプリケーションからの、第2端末装置で動いている第2アプリケーションとのメディア接続要求に応じて、前記第1アプリケーションに関連付けられたアプリケーション識別子(AppID)と秘密情報を含んだ要求であって、前記第2アプリケーションとのメディア接続要求をネットワークを介して送信する工程と、
    前記第1アプリケーションにより生成された前記メディア接続要求は、少なくとも部分的には前記AppIDおよび前記第1アプリケーションに関連付けられた秘密情報に基づいて前記第1アプリケーションにより生成されたトークンを含み、
    前記第1アプリケーションによる前記要求に応じて、前記第1アプリケーションに関連付けられた前記AppIDを含んだ要求であって、
    前記要求されたメディア接続の承認を得る承認要求を前記ネットワークを介してアプリケーション管理サーバに送信する工程と、
    前記メディア接続要求は前記トークン情報を含んだ前記承認要求を送信するためのプロキシサーバへの指示を含み、
    前記メディア接続要求に応じて、前記第1アプリケーションに関連付けられた前記AppIDを含んだ制御情報であって、前記第1端末装置と前記第2端末装置との間に確立された制御セッションを介して制御情報を通信する工程と、
    前記メディア接続要求に応じて、前記第1端末装置と前記第2端末装置との間に確立されたメディアセッションを介してメディア情報を通信する工程と、
    を含む方法。
  2. 前記第1アプリケーションにより生成された前記メディア接続要求は前記AppIDを含む、
    請求項1に記載の方法。
  3. 前記第1アプリケーションにより生成された前記メディア接続要求が前記第1アプリケーションに関連付けられた秘密情報を含んでおり、
    少なくとも部分的には前記AppIDおよび前記秘密情報に基づいてトークンを生成する工程をさらに含む、
    請求項1に記載の方法。
  4. 前記承認要求は前記トークンを含む、
    請求項3に記載の方法。
  5. 前記第1アプリケーションからの要求をセッション初期化プロトコル(SIP)要求に変換する工程をさらに含み、
    メディア接続要求をネットワークを介して送信する前記工程は前記SIP要求の送信を含む、
    請求項1に記載の方法。
  6. 前記制御セッションを介して制御情報を送受信するためのバッファを前記第1端末装置に割り当てる工程をさらに含む、
    請求項1に記載の方法。
  7. 前記メディアセッションを介してメディア情報を送受信するためのバッファを前記第1端末装置に割り当てる工程をさらに含む、
    請求項1に記載の方法。
  8. 前記第1アプリケーションと前記第2アプリケーションは同一のアプリケーションの異なるインスタンスであり、同一のAppIDに関連付けられている、
    請求項1に記載の方法。
  9. 前記承認要求を送信する工程は、前記メディア接続要求の送信に先立って行われ、
    さらに、前記承認要求に対する応答を受信する工程を含み、
    前記メディア接続要求を送信する工程は、前記承認要求に対する前記応答が前記第1アプリケーションが承認されたことを示す場合にのみ行われることを特徴とする、
    請求項1に記載の方法。
  10. ネットワークを介して通信するアプリケーション間の通信を制御する方法であって、
    マルチメディア情報の配信に適したネットワークにつながっている端末装置で動くのに適したアプリケーション間(A2A)対応の多数のアプリケーションのそれぞれに異なるアプリケーション識別子(AppID)を指定する工程と、
    承認済AppIDを示すレジストリを持続性媒体に提供する工程と、
    前記ネットワークを介して、AppIDと少なくとも前記AppIDに対応した秘密情報として生成されたトークン情報を含み第1端末装置から発せられるメディア接続の承認要求を受信する工程と、
    前記承認要求に応じて、前記承認要求内の前記AppIDと前記トークン情報を生成させるために使用され対応している前記秘密情報が前記レジストリ内に示される承認済AppIDと承認済秘密情報に一致するか否かを判定する工程と、
    前記AppIDと前記秘密情報が前記レジストリ内に示された前記承認済AppIDと前記秘密情報に一致しないという判定に応じて、前記承認要求を拒絶する工程と、
    を含む方法。
  11. 前記レジストリはそれぞれの承認済AppIDに関連付けられたそれぞれブラックリスト情報を示す、請求項10に記載の方法であって、
    前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記ブラックリスト情報が、前記AppIDに関連付けられたアプリケーションがブラックリストされていることを示すか否かを判定する工程と、
    前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記ブラックリスト情報が、前記アプリケーションがブラックリストされていることを示すという判定に応じて、前記承認要求を拒絶する工程と、
    をさらに含む方法。
  12. 前記レジストリはそれぞれの承認済AppIDに関連付けられたそれぞれのメタデータを示し、前記承認要求はトークン情報とユーザ識別情報(userID)を含む、請求項10に記載の方法であって、
    前記承認要求内の前記userIDに関連付けられたユーザプロフィール情報へのアクセスを提供する工程と、
    前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記メタデータが、得られたプロフィールを有するユーザが前記AppIDに関連付けられた前記アプリケーションの使用を承認されていることを示すか否かを判定する工程と、
    前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記メタデータが、前記得られたプロフィールを有する前記ユーザが前記AppIDに関連付けられた前記アプリケーションの使用を承認されていないことを示すという判定に応じて、前記承認要求を拒絶する工程と、
    をさらに含む方法。
  13. 前記レジストリはそれぞれの承認済のアプリケーション識別子(AppID)に関連付けられたそれぞれ秘密情報とブラックリスト情報を示し、前記承認要求はトークン情報を含む、請求項10に記載の方法であって、
    それぞれの異なるAppIDに対してそれぞれ異なる秘密情報を指定する工程と、
    変換情報を生成するために、前記トークン情報を変換する工程と、
    前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記秘密情報が前記変換情報に一致するか否か、および前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記ブラックリスト情報が、前記AppIDに関連付けられたアプリケーションがブラックリストされていることを示すか否かの、少なくともいずれかを判定する工程と、
    前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記秘密情報が前記変換情報に一致しないこと、および前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記ブラックリスト情報が、前記アプリケーションがブラックリストされていることを示すことの、少なくともいずれかの判定に応じて、前記承認要求を拒絶する工程と、
    をさらに含む方法。
  14. 前記承認要求を受信する工程は、前記ネットワークの一部であるプロキシサーバにより送信される承認要求の受信を含む、請求項10に記載の方法。
  15. 前記拒絶する工程は前記ネットワークの一部であるプロキシサーバへのメッセージの送
    信を含む、請求項10に記載の方法。
  16. ネットワークを介して通信するアプリケーション間の通信を制御するシステムであって、
    マルチメディア情報の配信に適したネットワークにつながっている端末装置で動くのに適したアプリケーション間(A2A)対応の多数のアプリケーションのそれぞれに異なるアプリケーション識別子(AppID)と対応する秘密情報を指定する手段と、
    承認済AppIDおよび前記対応する秘密情報を示すレジストリを有する持続性媒体を含むアプリケーション管理サーバとを含み、
    前記管理サーバは、第1端末装置から発せられるメディア接続要求の承認要求を前記ネットワークを介して受信するように構成され、
    前記承認要求はAppIDと少なくとも前記AppIDに対応した秘密情報として生成されたトークン情報を含み、
    前記アプリケーション管理サーバは、前記承認要求の受信に応じて、前記承認要求内の前記AppIDと前記トークンを生成させるために使用された対応する秘密情報が前記レジストリ内に示される承認済AppIDと前記対応する秘密情報に一致するか否かを判定するように構成され、
    前記アプリケーション管理サーバは、前記AppIDと前記トークン情報を生成させるために使用された対応する秘密情報が前記レジストリ内に示された承認済AppIDと前記対応する秘密情報に一致しないという判定に応じて、前記承認要求を拒絶するように構成される、
    システム。
  17. 前記指定手段は異なるアプリケーション識別子(AppID)ごとにそれぞれ異なる秘密情報を指定し、
    前記レジストリは、それぞれの承認済AppIDに関連付けられたそれぞれの秘密情報を示し、
    前記承認要求はトークン情報を含み、
    前記アプリケーション管理サーバは、変換情報を生成するために前記トークン情報を変換するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記秘密情報が前記変換情報に一致するか否かを判定するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記秘密情報が前記変換情報に一致しないという判定に応じて、前記承認要求を拒絶するように構成される、
    請求項16に記載のシステム。
  18. 前記レジストリは、それぞれの承認済AppIDに関連付けられたそれぞれブラックリスト情報を示し、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記ブラックリスト情報が、前記AppIDに関連付けられたアプリケーションがブラックリストされていることを示すか否かを判定するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記ブラックリスト情報が、前記アプリケーションがブラックリストされていることを示すという判定に応じて、前記承認要求を拒絶するように構成される、
    請求項16に記載のシステム。
  19. 前記レジストリは、それぞれの承認済AppIDに関連付けられたそれぞれのメタデータを示し、
    前記承認要求はトークン情報とユーザ識別情報(userID)を含み、
    アプリケーション管理サーバは、前記承認要求内の前記userIDに関連付けられたユーザプロフィール情報へのアクセスを提供するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられたメタデータが、得られたプロフィールを有するユーザが前記AppIDに関連付けられた前記アプリケーションの使用を承認されていることを示すか否か判定するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記メタデータが、前記得られたプロフィールを有する前記ユーザが前記AppIDに関連付けられた前記アプリケーションの使用を承認されていないことを示すという判定に応じて、前記承認要求を拒絶するように構成される、
    請求項16に記載のシステム。
  20. 前記指定手段は異なるアプリケーション識別子(AppID)ごとにそれぞれ異なる秘密情報を指定し、
    前記レジストリは、それぞれの承認済AppIDに関連付けられたそれぞれ秘密情報と
    ブラックリスト情報を示し、
    前記承認要求はトークン情報を含み、
    前記アプリケーション管理サーバは、変換情報を生成するために前記トークン情報を変換するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記秘密情報が前記変換情報に一致するか否か、および前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記ブラックリスト情報が、前記AppIDに関連付けられたアプリケーションがブラックリストされていることを示すか否かを判定するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記秘密情報が前記変換情報に一致しないこと、および前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記ブラックリスト情報が、前記アプリケーションがブラックリストされていることを示すことの、少なくともいずれかの判定に応じて、前記承認要求を拒絶するように構成される、
    請求項16に記載のシステム。
  21. 前記指定手段は異なるアプリケーション識別子(AppID)ごとにそれぞれ異なる秘密情報を指定し、
    前記レジストリは、それぞれの承認済AppIDに関連付けられたそれぞれ秘密情報とメタデータを示し、
    前記承認要求はトークン情報とユーザ識別情報(userID)を含み、
    前記アプリケーション管理サーバは、変換情報を生成するために前記トークン情報を変換するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記userIDに関連付けられたユーザプロフィール情報へのアクセスを提供するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記秘密情報が前記変換情報に一致するか否か、および前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記メタデータが、得られたプロフィールを有するユーザが前記AppIDに関連付けられた前記アプリケーションの使用を承認されていることを示すか否かを判定するように構成され、
    前記アプリケーション管理サーバは、前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記秘密情報が前記変換情報に一致しないこと、および前記承認要求内の前記AppIDに一致する前記レジストリ内のAppIDに関連付けられた前記メタデータが、前記得られたプロフィールを有する前記ユーザが前記AppIDに関連付けられた前記アプリケーションの使用を承認されていないことを示すことの、少なくともいずれかの判定に応じて、前記承認要求を拒絶するように構成される、
    請求項16に記載のシステム。
  22. ネットワークを介してメディア情報を通信する方法であって、
    端末装置に登録されたアプリケーションのアプリケーション識別子(AppID)を示すレジストリを、前記端末装置の持続性媒体に提供する工程と、
    前記端末装置のレジストリ内に示されたAppIDのメディア接続要求を得るために、前記ネットワークを介してアプリケーション管理サーバに、前記端末レジストリ内に示された1つ以上のAppIDと少なくとも秘密情報の機能として生成されたトークン情報を含む承認要求を定期的に送信する工程と、
    前記ネットワークを介して前記アプリケーション管理サーバからそれぞれのAppIDの承認指示を受信する工程と、
    前記端末装置レジストリ内の対応するAppIDに関連付けられたそれぞれの前記受信した承認指示を示す工程と、
    前記端末装置で動いている第1アプリケーションからの、異なる端末装置で動いている第2アプリケーションとのメディア接続要求であって、前記第1アプリケーションに関連付けられたAppIDを含んだメディア接続要求に応じて、前記メディア接続要求に含まれる前記AppIDと前記トークン情報と前記端末装置レジストリ内の前記AppIDに対応する承認指示に基づいて前記メディア接続を承認するか否かを判定する工程と、
    前記要求に含まれる前記AppIDの前記メディア接続が承認されるという判定に応じて、ネットワークを介して前記第2アプリケーションとのメディア接続要求を送信する工程と、
    前記メディア接続要求に応じて、前記第1アプリケーションに関連付けられた前記AppIDを含んだ制御情報であって、前記端末装置と前記異なる端末装置との間に確立された制御セッションを介して制御情報を通信する工程と、
    前記メディア接続要求に応じて、前記端末装置と前記異なる端末装置との間に確立されたメディアセッションを介してメディア情報を通信する工程と、
    を含む方法。
  23. プロセッサと、ネットワークを介した通信の実行に適した通信プロトコルスタックによりコード化された持続性媒体とを含む端末装置であって、
    前記端末装置で動くように構成されたアプリケーションであって、
    前記アプリケーションは秘密情報と
    前記アプリケーションに関連付けられた固有のアプリケーション識別子(AppID)を含むメソッド呼出しを送信するように構成され、異なる端末装置で動く他のアプリケーションとのメディア接続を要求するアプリケーションと、
    前記メソッド呼出しを、前記AppIDと少なくとも秘密情報の機能として生成されたトークン情報とを含み前記異なる端末装置とのメディア接続を要求するメディア要求と前記AppIDを含みアプリケーション管理サーバからの承認を要求する承認要求とを含むネットワークメッセージに変換し、
    前記ネットワークメッセージは前記トークン情報を含んだ前記承認要求を送信するためのプロキシサーバへの指示を含み、
    前記ネットワークを介した送信のための前記通信プロトコルスタックに前記ネットワークメッセージを提供し、
    前記通信プロトコルスタックに関連付けられたバッファからの情報であって、前記通信プロトコルスタックを使用して前記ネットワークを介して受信し、AppID情報に関連付けられた情報にアクセスし、
    前記AppIDに関連付けられた前記アプリケーションに前記アクセスされた情報を送るため、前記アクセスされた情報に関連付けられた前記AppID情報を使用するように構成されたインターフェースと、
    を含む端末装置。
  24. 前記アプリケーションは、さらに秘密情報を前記メソッド呼出しに含ませるように構成され、
    前記インターフェースは、さらに、少なくとも前記AppIDと前記秘密情報の機能として前記承認要求に含ませるようにトークンを生成するように構成される、
    請求項23に記載の端末装置。
  25. 前記アプリケーションは、前記アプリケーションに関連付けられた少なくとも前記AppIDと前記秘密情報の機能としてのトークンを生成し、前記トークンを前記メソッド呼出しに含ませるように構成され、
    前記インターフェースは、前記トークンを前記承認要求に含ませるように構成される、
    請求項24に記載の端末装置。
JP2013555426A 2011-02-24 2012-01-25 異なる端末のアプリケーション間の通信 Active JP6014297B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161446045P 2011-02-24 2011-02-24
US61/446,045 2011-02-24
US13/276,220 US8321566B2 (en) 2011-02-24 2011-10-18 System and method to control application to application communication over a network
US13/276,229 2011-10-18
US13/276,220 2011-10-18
US13/276,211 US8327005B2 (en) 2011-02-24 2011-10-18 Method to set up application to application communication over a network between applications running on endpoint devices
US13/276,229 US8327006B2 (en) 2011-02-24 2011-10-18 Endpoint device and article of manufacture for application to application communication over a network
US13/276,211 2011-10-18
PCT/US2012/022555 WO2012115742A1 (en) 2011-02-24 2012-01-25 Communication between applications on different endpoint

Publications (3)

Publication Number Publication Date
JP2014514624A JP2014514624A (ja) 2014-06-19
JP2014514624A5 JP2014514624A5 (ja) 2015-03-19
JP6014297B2 true JP6014297B2 (ja) 2016-10-25

Family

ID=46719778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013555426A Active JP6014297B2 (ja) 2011-02-24 2012-01-25 異なる端末のアプリケーション間の通信

Country Status (4)

Country Link
US (4) US8327006B2 (ja)
EP (1) EP2678971A4 (ja)
JP (1) JP6014297B2 (ja)
WO (1) WO2012115742A1 (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8695076B2 (en) * 2010-03-19 2014-04-08 Oracle International Corporation Remote registration for enterprise applications
US8819168B2 (en) 2010-12-14 2014-08-26 Microsoft Corporation Link expansion service
US8327006B2 (en) 2011-02-24 2012-12-04 Jibe Mobile Endpoint device and article of manufacture for application to application communication over a network
US8954591B2 (en) * 2011-03-07 2015-02-10 Cisco Technology, Inc. Resource negotiation for cloud services using a messaging and presence protocol
US10235643B2 (en) 2011-09-29 2019-03-19 Cerner Innovation, Inc. Clinical plug-in application
US9824411B2 (en) * 2011-09-29 2017-11-21 Cerner Innovation, Inc. Clinical framework application for mobile devices
US20130103768A1 (en) * 2011-10-24 2013-04-25 Peter Freebeck Physician mobile communications system and method
US20130179507A1 (en) * 2012-01-06 2013-07-11 Microsoft Corporation Communicating Media Data
US9602634B2 (en) * 2012-02-15 2017-03-21 Avaya Inc. Global session identifier
US20130250734A1 (en) * 2012-03-24 2013-09-26 Arun Kishore Narasani Suspendable alarms
WO2013183963A1 (en) 2012-06-07 2013-12-12 Samsung Electronics Co., Ltd. Apparatus and method for reducing power consumption in electronic device
US9442778B2 (en) * 2012-10-01 2016-09-13 Salesforce.Com, Inc. Method and system for secured inter-application communication in mobile devices
JP5962493B2 (ja) * 2012-12-20 2016-08-03 富士通株式会社 プログラム、情報処理装置およびオブジェクト送信方法
US20140181842A1 (en) * 2012-12-21 2014-06-26 Mobile Iron, Inc. Secure mobile app connection bus
US9866382B2 (en) 2012-12-21 2018-01-09 Mobile Iron, Inc. Secure app-to-app communication
US9100877B2 (en) * 2013-02-01 2015-08-04 Intel Deutschland Gmbh Communication devices and methods for controlling a communication device
US9225579B2 (en) 2013-03-05 2015-12-29 Qualcomm Incorporated Renewing registrations for a plurality of client applications that are associated with the same host server via an explicit piggybacking scheme
KR102099680B1 (ko) 2013-04-26 2020-05-15 삼성전자주식회사 정보처리장치 및 그 제어방법
US9117229B2 (en) * 2013-06-03 2015-08-25 Tangome, Inc. Generating revenue by growing sales of third-party applications
US9923979B2 (en) * 2013-06-27 2018-03-20 Google Llc Systems and methods of determining a geographic location based conversion
US9736130B1 (en) * 2013-07-05 2017-08-15 Sonus Networks, Inc. Communications methods and apparatus related to web initiated sessions
KR102121472B1 (ko) 2013-09-23 2020-06-17 삼성전자주식회사 기기 별 응용 프로그램간 통신을 위한 장치 및 방법
US10069811B2 (en) 2013-10-17 2018-09-04 Arm Ip Limited Registry apparatus, agent device, application providing apparatus and corresponding methods
US9307405B2 (en) 2013-10-17 2016-04-05 Arm Ip Limited Method for assigning an agent device from a first device registry to a second device registry
US20150127842A1 (en) * 2013-11-05 2015-05-07 D2 Technologies Inc. Method for Extending Application Interface for Future Applications
US10165082B2 (en) * 2013-11-13 2018-12-25 Lg Electronics Inc. Method and apparatus for managing connection between plurality of devices over network
US8863158B1 (en) 2013-12-04 2014-10-14 Google Inc. Intents with application-specific data
US9654536B2 (en) 2014-06-04 2017-05-16 Sonos, Inc. Cloud queue playback policy
US20150355818A1 (en) 2014-06-04 2015-12-10 Sonos, Inc. Continuous Playback Queue
US9720642B2 (en) 2014-06-04 2017-08-01 Sonos, Inc. Prioritizing media content requests
WO2015187463A1 (en) * 2014-06-04 2015-12-10 Sonos, Inc. Cloud queue access control
US20150370813A1 (en) * 2014-06-23 2015-12-24 Infosys Limited Adapting services of applications
US9912705B2 (en) * 2014-06-24 2018-03-06 Avaya Inc. Enhancing media characteristics during web real-time communications (WebRTC) interactive sessions by using session initiation protocol (SIP) endpoints, and related methods, systems, and computer-readable media
EP3173934A4 (en) * 2014-07-22 2017-08-02 Ricoh Company, Ltd. Control system, communication terminal, communication system, control method, and program
JP6046673B2 (ja) * 2014-08-14 2016-12-21 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、共有可否判定方法および情報処理システム
GB2529838B (en) 2014-09-03 2021-06-30 Advanced Risc Mach Ltd Bootstrap Mechanism For Endpoint Devices
GB2530028B8 (en) * 2014-09-08 2021-08-04 Advanced Risc Mach Ltd Registry apparatus, agent device, application providing apparatus and corresponding methods
JP6081973B2 (ja) * 2014-09-30 2017-02-15 Kddi株式会社 端末間通信システム、端末間通信方法、及び端末間通信プログラム
US9626304B2 (en) * 2014-10-21 2017-04-18 Sandisk Technologies Llc Storage module, host, and method for securing data with application information
US9992307B2 (en) * 2015-02-03 2018-06-05 Google Llc Interoperability of discovery and connection protocols between client devices and first screen devices
GB2540989B (en) 2015-08-03 2018-05-30 Advanced Risc Mach Ltd Server initiated remote device registration
GB2540987B (en) 2015-08-03 2020-05-13 Advanced Risc Mach Ltd Bootstrapping without transferring private key
US11424931B2 (en) * 2016-01-27 2022-08-23 Blackberry Limited Trusted execution environment
US11210147B2 (en) 2016-02-03 2021-12-28 Samsung Electronics Co., Ltd. Electronic device for performing application-related interoperation, and method therefor
US10225359B2 (en) * 2016-09-22 2019-03-05 International Business Machines Corporation Push notifications from multiple tenant servers
JP6509917B2 (ja) * 2017-01-18 2019-05-08 Kddi株式会社 端末間通信システム、端末間通信方法、端末間通信プログラム、及び通信サーバ
US10073767B2 (en) 2017-01-18 2018-09-11 Pivotal Software, Inc. Trace Management
US20180285172A1 (en) * 2017-03-28 2018-10-04 Vmware, Inc. Data exchange between applications
US10375530B2 (en) 2017-06-09 2019-08-06 Blackberry Limited Providing data file updates using multimedia broadcast multicast services
US10395066B1 (en) * 2018-09-28 2019-08-27 Kromtech Alliance Corp. Method for protecting a camera and a microphone from unauthorized access
GB2579571B (en) 2018-12-03 2021-05-12 Advanced Risc Mach Ltd Device bootstrapping
US11475134B2 (en) 2019-04-10 2022-10-18 Arm Limited Bootstrapping a device
US10896078B1 (en) * 2019-07-24 2021-01-19 Jpmorgan Chase Bank, N.A. Method and system for implementing a multi-platform framework for shared services
US12056527B2 (en) * 2021-03-02 2024-08-06 EMC IP Holding Company LLC Invocation calls enabling applications to initiate reactive actions in response to resource state changes of assets
US11579945B2 (en) * 2021-03-12 2023-02-14 EMC IP Holding Company Dynamic service mesh

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236835A (en) 1978-12-18 1980-12-02 Printronix, Inc. Printer system with compressed print capability
JPS6041596B2 (ja) 1980-08-14 1985-09-18 塩野義製薬株式会社 2,5−ジケト−d−グルコン酸の製造方法
US5941948A (en) 1997-10-29 1999-08-24 Industrial Technology Research Institute Admission controller for network access
CA2376053A1 (en) * 1999-06-03 2000-12-14 The United States Of America, As Represented By The Secretary Of Agricul Ture Selective media for recovery and enumeration of campylobacters
US6877036B1 (en) 1999-09-24 2005-04-05 Akamba Corporation System and method for managing connections between a client and a server
US7166215B2 (en) 1999-10-12 2007-01-23 Reid Roger P Pressure vessel and recyclable filter cartridge
US6961345B2 (en) * 1999-12-28 2005-11-01 Matsushita Electric Industrial Co., Ltd. System, method and apparatus for data transmission
US7054256B2 (en) 2000-10-20 2006-05-30 Ochoa Optics Llc High capacity digital data storage by transmission of radiant energy through arrays of small diameter holes
US7296275B2 (en) * 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US20040006653A1 (en) 2002-06-27 2004-01-08 Yury Kamen Method and system for wrapping existing web-based applications producing web services
AU2002368267B2 (en) 2002-10-09 2008-05-29 Nokia Technologies Oy A communication system
WO2004062243A2 (en) * 2002-12-31 2004-07-22 Motorola, Inc, A Corporation Of The State Of Delaware System and method for distributed authorization for access to communications device
US7480254B2 (en) * 2003-05-28 2009-01-20 Nokia Corporation System, apparatus, and method for providing multi-application support using a single protocol stack
US7085552B2 (en) 2003-08-18 2006-08-01 Motricity, Inc. Dispatcher for wireless device applications
US8037515B2 (en) 2003-10-29 2011-10-11 Qualcomm Incorporated Methods and apparatus for providing application credentials
US20050135622A1 (en) * 2003-12-18 2005-06-23 Fors Chad M. Upper layer security based on lower layer keying
FI20031860A0 (fi) 2003-12-18 2003-12-18 Nokia Corp Päätelaitteen sovellusten valvonta verkkoympäristössä
JP2005217679A (ja) * 2004-01-29 2005-08-11 Hitachi Ltd 通信相手の認証を行う認証サーバ
US7725329B2 (en) 2004-04-27 2010-05-25 Humana Inc. System and method for automatic generation of a hierarchical tree network and the use of two complementary learning algorithms, optimized for each leaf of the hierarchical tree network
GB0409496D0 (en) * 2004-04-28 2004-06-02 Nokia Corp Subscriber identities
US8024784B1 (en) * 2004-09-16 2011-09-20 Qurio Holdings, Inc. Method and system for providing remote secure access to a peer computer
JP4663383B2 (ja) * 2005-04-13 2011-04-06 株式会社日立製作所 ホームゲートウェイ装置、ホームゲートウェイ装置の制御方法及び通信システムの制御方法
JP4830503B2 (ja) * 2006-01-18 2011-12-07 株式会社日立製作所 個人情報を保護した通信セッション確立仲介システムおよび方法
US8042148B2 (en) * 2006-02-07 2011-10-18 Cisco Technology, Inc. System and method for enforcing policy in a communication network
US8194642B2 (en) 2006-02-07 2012-06-05 Cisco Technology, Inc. System and method for providing multimedia services
US20080072066A1 (en) 2006-08-21 2008-03-20 Motorola, Inc. Method and apparatus for authenticating applications to secure services
US8200506B2 (en) * 2006-12-19 2012-06-12 Accenture Global Services Limited Integrated health management platform
WO2008100594A1 (en) 2007-02-16 2008-08-21 Telcordia Applied Research Center Of Taiwan System and method for unified messaging service
EP1976217B1 (en) * 2007-03-27 2019-10-09 BlackBerry Limited Methods and systems to allow multiple sip applications on a sip client enabling it to select specific applications and features on a sip server
US8638676B2 (en) 2007-03-27 2014-01-28 Blackberry Limited Methods and systems to allow multiple SIP applications on a SIP client the ability to select specific applications and features on a SIP server
KR100815562B1 (ko) 2007-04-11 2008-03-20 주식회사 케이티프리텔 Sip 기반의 세션 처리를 수행하는 단말장치 및 이를이용한 세션 협상 요청 송/수신 방법
EP2053824A1 (en) 2007-10-23 2009-04-29 Nokia Siemens Networks Oy User plane control in IMS
JP4768761B2 (ja) * 2008-02-06 2011-09-07 日本電信電話株式会社 サービス提供システム、サービス提供方法およびサービス提供プログラム
EP2091192A1 (en) * 2008-02-15 2009-08-19 Nokia Siemens Networks Oy Interworking between messaging service domains
US8418222B2 (en) 2008-03-05 2013-04-09 Microsoft Corporation Flexible scalable application authorization for cloud computing environments
US8825876B2 (en) * 2008-07-17 2014-09-02 Qualcomm Incorporated Apparatus and method for mobile virtual network operator (MVNO) hosting and pricing
US20100278345A1 (en) * 2009-05-04 2010-11-04 Thomas Matthieu Alsina Method and apparatus for proximity based pairing of mobile devices
JP5184435B2 (ja) * 2009-05-12 2013-04-17 日本電信電話株式会社 コンテンツ取得方法、コンテンツ取得装置、コンテンツ取得プログラム及び記録媒体
US9160545B2 (en) 2009-06-22 2015-10-13 Beyondtrust Software, Inc. Systems and methods for A2A and A2DB security using program authentication factors
US8655392B2 (en) * 2009-10-30 2014-02-18 At&T Intellectual Property I, L.P. Generic paging service for third-party applications over wireless networks
US8479268B2 (en) * 2009-12-15 2013-07-02 International Business Machines Corporation Securing asynchronous client server transactions
US8850554B2 (en) * 2010-02-17 2014-09-30 Nokia Corporation Method and apparatus for providing an authentication context-based session
US8327006B2 (en) 2011-02-24 2012-12-04 Jibe Mobile Endpoint device and article of manufacture for application to application communication over a network

Also Published As

Publication number Publication date
US8327006B2 (en) 2012-12-04
US8327005B2 (en) 2012-12-04
US20120221738A1 (en) 2012-08-30
US8321566B2 (en) 2012-11-27
EP2678971A1 (en) 2014-01-01
US20120221739A1 (en) 2012-08-30
WO2012115742A1 (en) 2012-08-30
JP2014514624A (ja) 2014-06-19
EP2678971A4 (en) 2017-07-12
US20130326590A1 (en) 2013-12-05
US20120221725A1 (en) 2012-08-30

Similar Documents

Publication Publication Date Title
JP6014297B2 (ja) 異なる端末のアプリケーション間の通信
US10819757B2 (en) System and method for real-time communication by using a client application communication protocol
US11399044B2 (en) System and method for connecting a communication to a client
US9648006B2 (en) System and method for communicating with a client application
US8970660B1 (en) Methods and systems for authentication in secure media-based conferencing
WO2020063585A1 (zh) 一种融合通信系统及其交互方法
US8958559B2 (en) System and method for secure instant messaging
CN101517963B (zh) 分布式、可缩放、可插入的会议体系结构
US12069008B2 (en) Apparatus and method for subscription to a service and use of the service
US20120311686A1 (en) System and method for secure identity service
US20130244614A1 (en) Embodiments of a system and method for securely managing multiple user handles across multiple data processing devices
JP5377295B2 (ja) Sipベースメッセージサービスにおけるグループ通知方法
MX2012015175A (es) Sistema y metodo para mensajeria segura en una red hibrida entre iguales.
TW200425677A (en) Apparatus and method for controlling and managing individual directed sessions in a communications system
TW200931917A (en) Authentication system and method
KR20120117979A (ko) 대화 중에 복수의 통신 양식을 전송하는 것
US20110035413A1 (en) Diameter bus communications between processing nodes of a network element
EP2418913B1 (en) Methods and system for joining group session with pre-defined joining
WO2020029954A1 (zh) 业务请求、协商、响应方法、装置及网络设备、系统
JP5486078B2 (ja) 通信ネットワーク間ユーザコンテキスト伝送のための方法およびノード
KR20100060355A (ko) 통신 시스템에서 그룹 메시징 세션 생성 방법 및 그 시스템
CN113261257A (zh) 通过用户网络接口代理的运营商集成
WO2024156342A1 (en) A method and devices for enabling safe data transfer between input/output device handlers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150123

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150123

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150911

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20150911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151116

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20151117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160223

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160323

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160519

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20160519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160525

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160519

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: 20160825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160924

R150 Certificate of patent or registration of utility model

Ref document number: 6014297

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250