(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-14
(54)【発明の名称】ピアツーピア・メディア・パラメータ・ネゴシエーションのためのバーティカルアプリケーション層サーバの動作可能化
(51)【国際特許分類】
H04L 67/141 20220101AFI20231107BHJP
H04L 67/104 20220101ALI20231107BHJP
【FI】
H04L67/141
H04L67/104
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023524202
(86)(22)【出願日】2022-07-07
(85)【翻訳文提出日】2023-04-19
(86)【国際出願番号】 US2022036285
(87)【国際公開番号】W WO2023283286
(87)【国際公開日】2023-01-12
(32)【優先日】2021-07-07
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-07-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シュアイ・ジャオ
(72)【発明者】
【氏名】ステファン・ヴェンガー
(72)【発明者】
【氏名】シャン・リュウ
(57)【要約】
サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための方法、コンピュータプログラム、およびコンピュータシステム。本方法は、1つまたは複数のプロセッサによって実行することができ、本方法は、バーティカルアプリケーション層(VAL)サーバによって、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信するステップと、バーティカルアプリケーション層(VAL)サーバによって、ネットワークアドレス変換トラバーサルを使用して1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索するステップとを含むことができる。本方法はさらに、バーティカルアプリケーション層(VAL)サーバによって、トランスポート層情報に基づいて、合意済みセッション記述プロトコル(SDP)パラメータを送信するステップを含むことができ、ここで、合意済みセッション記述プロトコル(SDP)パラメータは、ピアツーピア・メディア・ストリーミング・セッションを確立するために使用される。
【特許請求の範囲】
【請求項1】
サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための方法であって、前記方法は1つまたは複数のプロセッサによって実行され、前記方法は、
バーティカルアプリケーション層(VAL)サーバによって、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信するステップと、
前記バーティカルアプリケーション層(VAL)サーバによって、ネットワークアドレス変換トラバーサルを使用して、前記1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索するステップと、
前記バーティカルアプリケーション層(VAL)サーバによって、前記トランスポート層情報に基づいて合意済みセッション記述プロトコル(SDP)パラメータを送信するステップであって、前記合意済みセッション記述プロトコル(SDP)パラメータはピアツーピア・メディア・ストリーミング・セッションを確立するために使用される、ステップと
を含む、方法。
【請求項2】
前記要求は、要求元識別子、VALユーザに関連する識別情報、ユーザ機器識別子、およびセッション記述プロトコル(SDP)オファーのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記トランスポート層情報は、前記1つまたは複数のクライアントデバイスの各々に関連するそれぞれのIPアドレスおよびそれぞれのポート番号のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項4】
前記方法は、前記合意済みセッション記述プロトコル(SDP)パラメータを送信する前に、前記バーティカルアプリケーション層(VAL)サーバによって、前記1つまたは複数のクライアントデバイスの各々に関連する前記トランスポート層情報を統合するステップを含む、請求項1に記載の方法。
【請求項5】
前記合意済みセッション記述プロトコル(SDP)パラメータは、受け入れられたコーデック、対話型接続確立候補、メディアタイプ、利用可能なコーデックサポート、および帯域幅のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項6】
前記合意済みセッション記述プロトコル(SDP)パラメータは、複数の同期ソース、および管理プロトコルによって必要とされるパラメータのうちの1つまたは複数をさらに含む、請求項5に記載の方法。
【請求項7】
前記方法は、前記1つまたは複数のクライアントデバイスによって、前記1つまたは複数のクライアントデバイスの各々に関連する前記トランスポート層情報と、前記合意済みセッション記述プロトコル(SDP)パラメータとに基づいて、前記ピアツーピア・メディア・ストリーミング・セッションを確立するステップ
をさらに含む、請求項1に記載の方法。
【請求項8】
サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための装置であって、
コンピュータ・プログラム・コードを記憶するように構成された少なくとも1つのメモリと、
前記少なくとも1つのメモリにアクセスし、前記コンピュータ・プログラム・コードによって命令されるように動作するように構成された少なくとも1つのプロセッサと
を備え、前記コンピュータ・プログラム・コードは、
少なくとも1つのプロセッサに、バーティカルアプリケーション層(VAL)サーバによって、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信させるように構成された要求受信コードと、
少なくとも1つのプロセッサに、前記バーティカルアプリケーション層(VAL)サーバによって、ネットワークアドレス変換トラバーサルを使用して前記1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索させるように構成された検索コードと、
少なくとも1つのプロセッサに、前記バーティカルアプリケーション層(VAL)サーバによって、前記トランスポート層情報に基づいて合意済みセッション記述プロトコル(SDP)パラメータを送信させるように構成された送信コードであって、前記合意済みセッション記述プロトコル(SDP)パラメータはピアツーピア・メディア・ストリーミング・セッションを確立するために使用される、送信コードと
を含む、装置。
【請求項9】
前記要求は、要求元識別子、VALユーザに関連する識別情報、ユーザ機器識別子、およびセッション記述プロトコル(SDP)オファーのうちの少なくとも1つを含む、請求項8に記載の装置。
【請求項10】
前記トランスポート層情報は、前記1つまたは複数のクライアントデバイスの各々に関連するそれぞれのIPアドレスおよびそれぞれのポート番号のうちの1つまたは複数を含む、請求項8に記載の装置。
【請求項11】
前記コンピュータ・プログラム・コードは、少なくとも1つのプロセッサに、前記合意済みセッション記述プロトコル(SDP)パラメータを送信する前に、前記バーティカルアプリケーション層(VAL)サーバによって、前記1つまたは複数のクライアントデバイスの各々に関連する前記トランスポート層情報を統合させるように構成された、請求項8に記載の装置。
【請求項12】
前記合意済みセッション記述プロトコル(SDP)パラメータは、受け入れられたコーデック、対話型接続確立候補、メディアタイプ、利用可能なコーデックサポート、および帯域幅のうちの1つまたは複数を含む、請求項8に記載の装置。
【請求項13】
前記合意済みセッション記述プロトコル(SDP)パラメータは、複数の同期ソース、および管理プロトコルによって必要とされるパラメータのうちの1つまたは複数をさらに含む、請求項12に記載の装置。
【請求項14】
前記コンピュータ・プログラム・コードは、少なくとも1つのプロセッサに、前記1つまたは複数のクライアントデバイスによって、前記1つまたは複数のクライアントデバイスの各々に関連する前記トランスポート層情報、および前記合意済みセッション記述プロトコル(SDP)パラメータに基づいて、前記ピアツーピア・メディア・ストリーミング・セッションを確立させるように構成された、請求項8に記載の装置。
【請求項15】
サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに、
バーティカルアプリケーション層(VAL)サーバによって、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信させ、
前記バーティカルアプリケーション層(VAL)サーバによって、ネットワークアドレス変換トラバーサルを使用して、前記1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索させ、
前記バーティカルアプリケーション層(VAL)サーバによって、前記トランスポート層情報に基づいて合意済みセッション記述プロトコル(SDP)パラメータを送信させる、
1つまたは複数の命令を含み、前記合意済みセッション記述プロトコル(SDP)パラメータはピアツーピア・メディア・ストリーミング・セッションを確立するために使用される、非一時的コンピュータ可読媒体。
【請求項16】
前記要求は、要求元識別子、VALユーザに関連する識別情報、ユーザ機器識別子、およびセッション記述プロトコル(SDP)オファーのうちの少なくとも1つを含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記トランスポート層情報は、前記1つまたは複数のクライアントデバイスの各々に関連するそれぞれのIPアドレスおよびそれぞれのポート番号のうちの1つまたは複数を含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記合意済みセッション記述プロトコル(SDP)パラメータを送信する前に、前記1つまたは複数の命令は、前記1つまたは複数のプロセッサによって実行されるとき、さらに、前記1つまたは複数のプロセッサに、前記バーティカルアプリケーション層(VAL)サーバによって、前記1つまたは複数のクライアントデバイスの各々に関連する前記トランスポート層情報を統合させる、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記合意済みセッション記述プロトコル(SDP)パラメータは、受け入れられたコーデック、対話型接続確立候補、メディアタイプ、利用可能なコーデックサポート、および帯域幅のうちの1つまたは複数を含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記合意済みセッション記述プロトコル(SDP)パラメータは、複数の同期ソース、および管理プロトコルによって必要とされるパラメータのうちの1つまたは複数をさらに含む、請求項15に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、米国特許商標庁における2021年7月7日出願の米国仮特許出願第63/219,306号および2022年7月6日出願の米国特許出願第17/858,323号の優先権を主張し、それらの全体が本明細書に組み込まれる。
【0002】
本開示は、ピアツーピア・メディア・パラメータ・ネゴシエーションおよび通信の動作可能化に関する。より詳細には、本開示は、ピアツーピア(P2P)メディア・パラメータ・ネゴシエーションのためのバーティカルアプリケーション層(VAL)サーバを動作可能にするための垂直のサービス・イネーブラ・アーキテクチャ層(SEAL)の設計および動作に関する。
【背景技術】
【0003】
バーティカル(VAL)アプリケーション(例えば、UAV、V2Xアプリケーション)をサポートするために、3GPP(登録商標、以下同じ)無線ネットワークを介してサービス・イネーブラ・アーキテクチャ層(SEAL)を使用することができる。SEAL機能アーキテクチャは、共通のアプリケーション・プレーン・エンティティおよびシグナリング・プレーン・エンティティを含むことができる。本文書で指定される共通のサービスの集合(例えば、グループ管理、設定管理、位置管理)をバーティカルアプリケーションにわたって共有することができる。
【0004】
ピアツーピア(P2P)メディアストリーミング技術が有望なメディアストリーミング方法になるにつれて、集中型メディアサーバのコストおよび通信遅延を低減する方法が必要とされている。
【発明の概要】
【課題を解決するための手段】
【0005】
実施形態は、サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための方法、システム、およびコンピュータ可読媒体に関する。1つの態様によれば、サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための方法を提供することができる。本方法は、1つまたは複数のプロセッサによって実行することができ、本方法は、バーティカルアプリケーション層(VAL)サーバによって、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信するステップと、バーティカルアプリケーション層(VAL)サーバによって、ネットワークアドレス変換トラバーサルを使用して1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索するステップとを含むことができる。本方法はさらに、バーティカルアプリケーション層(VAL)サーバによって、トランスポート層情報に基づいて、合意済みセッション記述プロトコル(SDP)パラメータを送信するステップを含むことができ、合意済みセッション記述プロトコル(SDP)パラメータは、ピアツーピア・メディア・ストリーミング・セッションを確立するために使用される。
【0006】
別の態様によれば、サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための装置を提供することができる。本装置は、コンピュータ・プログラム・コードを記憶するように構成された少なくとも1つのメモリと、少なくとも1つのメモリにアクセスし、コンピュータ・プログラム・コードによって命令されるように動作するように構成された少なくとも1つのプロセッサとを含む。プログラムコードは、少なくとも1つのプロセッサに、バーティカルアプリケーション層(VAL)サーバによって、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信させるように構成された要求受信コードと、少なくとも1つのプロセッサに、バーティカルアプリケーション層(VAL)サーバによって、ネットワークアドレス変換トラバーサルを使用して1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索させるように構成された検索コードと、少なくとも1つのプロセッサに、バーティカルアプリケーション層(VAL)サーバによって、トランスポート層情報に基づいて合意済みセッション記述プロトコル(SDP)パラメータを送信させるように構成された送信コードとを含むことができ、合意済みセッション記述プロトコル(SDP)パラメータはピアツーピア・メディア・ストリーミング・セッションを確立するために使用される。
【0007】
さらに別の態様によれば、サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための命令を記憶する非一時的コンピュータ可読媒体を提供することができる。命令は、1つまたは複数のプロセッサによって実行されるとき、1つまたは複数のプロセッサに、バーティカルアプリケーション層(VAL)サーバによって、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信させ、バーティカルアプリケーション層(VAL)サーバによって、ネットワークアドレス変換トラバーサルを使用して、1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索させ、バーティカルアプリケーション層(VAL)サーバによって、トランスポート層情報に基づいて合意済みセッション記述プロトコル(SDP)パラメータを送信させるように構成された1つまたは複数の命令を含むことができ、合意済みセッション記述プロトコル(SDP)パラメータはピアツーピア・メディア・ストリーミング・セッションを確立するために使用される。
【0008】
これらおよび他の目的、特徴および利点は、添付の図面に関連して読まれるべき例示的な実施形態の以下の詳細な説明から明らかになるであろう。図面は、詳細な説明と併せて当業者の理解を容易にする際に明確にするためのものであるため、図面の様々な特徴は一定の縮尺ではない。
【図面の簡単な説明】
【0009】
【
図1】垂直のサービス・イネーブラ・アーキテクチャ層(SEAL)の例示的な機能アーキテクチャを示す図である。
【
図2】サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための例示的なワークフローを示す図である。
【
図3】サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための例示的なフローチャートを示す図である。
【
図4】サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0010】
特許請求される構造および方法の詳細な実施形態が本明細書に開示されているが、開示された実施形態は、様々な形態で具現化され得る特許請求される構造および方法の例示にすぎないことが理解され得る。しかしながら、これらの構造および方法は、多くの異なる形態で具現化され得、本明細書に記載された例示的な実施形態に限定されると解釈されるべきではない。逆に、これらの例示的な実施形態は、本開示が徹底的かつ完全であり、当業者にその範囲を十分に伝えるように提供されている。この説明では、提示された実施形態を不必要に不明瞭にすることを避けるために、周知の特徴および技術の詳細は省略されている場合がある。
【0011】
様々な実施形態による方法、装置(システム)、およびコンピュータ可読媒体のフローチャート図および/またはブロック図を参照して、態様を本明細書で説明する。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【0012】
図1は、ピアツーピア・メディア・ストリーミングを動作可能にするための典型的な垂直のサービス・イネーブラ・アーキテクチャ層(SEAL)の機能アーキテクチャ100を示す。
図1に示すように、SEAL機能アーキテクチャ100は、バーティカルアプリケーション層(VAL)クライアント105と、VALサーバ110と、SEALサーバ130と、SEALクライアント125と、1つまたは複数のVAL-UU参照点115と、1つまたは複数のSEAL-UU参照点135と、ユーザ機器120とを含むことができる。
【0013】
本開示の一実施形態によれば、VALクライアント105は、1つまたは複数のVAL-UU参照点115を介してVALサーバ110と通信することができる。VAL-UU115はユニキャスト配信モードおよびマルチキャスト配信モードの両方をサポートすることができる。
【0014】
ユーザ機器120およびSEALサーバ130上のSEAL機能エンティティは、それぞれ、SEALクライアント125およびSEALサーバ130にグループ化される。SEAL機能は、共通のサービスセット(例えば、グループ管理、位置管理)および参照点からなる。SEAL機能は、そのサービスをバーティカルアプリケーション層(VAL)に提供することができる。
【0015】
SEALクライアント125は、SEAL-UU135の参照点のうちの1つまたは複数を介してSEALサーバ130と通信することができる。1つまたは複数のSEAL-UU135はユニキャスト配信モードおよびマルチキャスト配信モードの両方をサポートすることができる。SEALクライアント125は、1つまたは複数のSEAL-C参照点140を介して、サービスイネーブラ層サポート機能をVALクライアント105に提供することができる。VALサーバ110は、1つまたは複数のSEAL-S参照点145を介してSEALサーバ130と通信することができる。SEALサーバ130は、3GPPネットワークシステムによって指定されたそれぞれの3GPPインターフェースを使用して、基礎となる3GPPネットワークシステムと通信することができる。
【0016】
実施形態によれば、特定のSEALクライアントおよび特定のSEALサーバを、それらの特定のSEAL-UU参照点および使用される3GPPネットワークシステムの特定のネットワークインターフェースと共に、各SEALサービスのそれぞれのオンネットワーク機能モデルに記述することができる。
【0017】
VALクライアント105はバーティカルアプリケーションに対応するクライアント側機能(例えば、UAV、V2Xクライアント)を提供することができる。VALクライアントは、SEALクライアント125とのやり取りをサポートすることができる。VALサーバ110はバーティカルアプリケーションに対応するサーバ側機能(例えば、UAV、V2Xアプリケーションサーバ)を提供することができる。
【0018】
SEALクライアント125は、特定のSEALサービスに対応するクライアント側機能を提供することができる。SEALクライアント125は、VALクライアント105とのやり取りをサポートすることができる。SEALクライアントはまた、1つまたは複数のユーザ機器間の対応するSEALクライアントとのやり取りをサポートすることもできる。
【0019】
SEALサーバ130は、特定のSEALサービスに対応するサーバ側機能を提供することができる。SEALサーバ130はVALサーバ110とのやり取りをサポートすることができる。
【0020】
実施形態によれば、SEAL機能アーキテクチャ100は、ミッションクリティカルおよび他のバーティカルアプリケーションをサポートするための共通の能力を考慮に入れる。
【0021】
いくつかの実施形態では、SEAL機能アーキテクチャ100は、ネットワークリソース管理を提供することができ、ネットワークリソース管理クライアント、すなわちSEALクライアント12は、ネットワークリソースを管理するためのVALクライアント105として機能することができる。ネットワークリソース管理クライアントは、ネットワークリソース管理サーバ、すなわちSEALサーバ130とやり取りすることができる。ネットワークリソース管理サーバは、VALクライアント105をサポートするために、3GPPシステム・ネットワーク・リソース(例えば、ユニキャスト、マルチキャスト)の管理を可能にし、許可することができる。ネットワークリソース管理クライアント(SEALクライアント125)とネットワークリソース管理サーバ(SEALサーバ130)との間のネットワークリソース管理機能に関するやり取りは、1つまたは複数のNRM-UU参照点135によってサポートすることができる。いくつかの実施形態では、VALサーバ110とネットワークリソース管理サーバ(すなわち、SEALサーバ130)との間のネットワークリソース管理機能に関連するやり取りは、1つまたは複数のNRM-S参照点145によってサポートされる。
【0022】
一例として、SIPパッケージで使用されるSDPは、メディアパラメータに関する重要な情報を搬送することができ、NRM-Sを使用してVALサーバ110からネットワークリソース管理に送信することができる。
v=0
o=Client1 2398026505 2307593197 IN IP4 100.200.130.140
s=Client1 Audio Session
b=AS:64
b=RS:800
b=RR:2400
c=IN IP4 10.11.12.13
t=0 0
m=audio 15010 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv
【0023】
いくつかの実施形態によれば、例えばWebRTCなどのピアツーピア(P2P)メディアストリーミング技術は、有望なメディアストリーミング方法になりつつある。しかしながら、集中型メディアサーバに関連するコストを低減する必要があり、通信遅延を低減する必要もある。バーティカルアプリケーション層(VAL)(例えば、UASAPPおよびV2X)におけるメディアペイロードを有するSEALを使用してP2Pメディア・パラメータ・シグナリングを動作可能にすることは、セッション開始プロトコル(SIP)を使用することなどのメディアセッションを確立するための不可欠なステップである。
【0024】
実施形態によれば、メディアセッション通信を動作可能にする重要な方法は、ネットワークアドレス変換(NAT)トラバーサル技法を使用することである場合がある。一例として、対話型接続確立(ICE)、NATのためのセッション・トラバーサル・ユーティリティ(session traversal utilities for NAT(STUN))、NAT周辺のリレーを使用するトラバーサル(traversal using relays around NAT(TURN))などの技術は、すべてのピアのIPアドレスを特定するためにサーバによって使用することができる。セッション記述プロトコル(SDP)は、メディア・セッション・パラメータ・ネゴシエーションに使用され得るプロトコルの1つである。
【0025】
本開示の実施形態は、NRM-Sによって提供されるNATトラバーサルなどの既存のSEALシグナリングアーキテクチャを使用して、P2Pメディア・パラメータ・ネゴシエーションのためにVALサーバを動作可能にすることに関する。
【0026】
図2は、サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための例示的なワークフロー200を示す。
図2に示すように、ワークフロー200は、VALクライアント1 205、VALクライアント2 220、VALサーバ210、ネットワークリソース管理(NRM)サーバ215、および複数の動作250~260を含むことができる。
【0027】
実施形態によれば、ワークフロー200は、VALクライアントとVALサーバとの間でネゴシエーションされ、複数のVALクライアントによって送信されてSDP内で搬送されるメディア・セッション・パラメータを指定することを開示することができる。要求は、VALクライアントから送信されてもよく、VALユーザ識別情報、ユーザ機器ID、およびSDPオファーを含むことができる。VALサーバは、メディア・セッション・シグナリングのためにNRMサーバを利用することができ、VALクライアントに関連するトランスポート層情報を検索するためにNATトラバーサル技術を使用することができる。VALサーバは、すべてのVALクライアントについて合意済みSDPパラメータを返すことができる。次いで、VALクライアントは、ピアツーピア・メディア・ストリーミング・セッションを確立するために、合意済みSDPパラメータを使用することができる。
【0028】
動作250~252において、VALクライアントは、メディア・セッション・パラメータ・ネゴシエーション要求をVALサーバに送信することができる。一例として、VALクライアント1 205およびVALクライアント2 220は、メディア・セッション・パラメータ・ネゴシエーション要求をVALサーバ210に送信することができる。いくつかの実施形態では、VALサーバ210は、VALクライアント1 205およびVALクライアント2 220からメディア・セッション・パラメータ・ネゴシエーションの要求をプルまたは受信することができる。いくつかの実施形態では、メディア・セッション・パラメータ・ネゴシエーション要求は、表1に示すように、要求元の識別情報、VALユーザID、VALユーザ機器ID、および/またはSDPオファーを含む。
【0029】
【0030】
動作255において、VALサーバは、ネットワークリソース管理(NRM)サーバを使用して、VALクライアントのトランスポート層情報を特定することができる。トランスポート層情報は、SDPによって指定された各接続ピア(例えば、VALクライアント)のIPおよびポート番号を含むことができる。NRMサーバは、NATトラバーサル能力を利用し、各ピアのトランスポート層情報をVALサーバに返すことができる。一例として、VALサーバ210は、NATトラバーサル能力を使用して、NRMサーバ215から各VALクライアント1 205およびVALクライアント2 220のトランスポート層情報を検索することができる。いくつかの実施形態では、VALサーバは、NRMサーバからのトランスポート層情報を統合し、合意済みSDPパラメータを各ピアに送り返すことができる。SDPパラメータまたはSDPフィードバックは、表2に開示されているようなパラメータを含むことができる。
【0031】
【0032】
動作256~258において、検索されたトランスポート層情報および/または合意済みSDPパラメータを、各要求VALクライアントに送信することができる。一例として、以下に開示されるように、パラメータは、VALサーバ210からVALクライアント1 205およびVALクライアント2 220に送信することができる。一例として、戻ってきたICE候補は、他のピアのIPアドレスをリストする。
【0033】
【0034】
動作260において、各ピアは、P2Pメディア・ストリーミング・セッションを確立するためにトランスポート層情報を送信することができる。一例として、動作260において、VALクライアント1 205およびVALクライアント2 220は、トランスポート層情報を使用してP2Pメディア・ストリーミング・セッションを確立することができる。
【0035】
動作250~252、および256~258は、任意の順序で実行することができる。本開示は、順序または動作250~260を開示するが、これに限定されない。
【0036】
一実施形態によれば、P2Pメディアストリーミング技術(例えば、WebRTC)を使用することができる。WebRTCは通信プロトコルの集合であり、webRTCを利用することは、シグナリング(例えば、SDPを使用する)、接続(例えば、各ピアについてSTUN/TURNサーバまたはICEエージェントを用いたNATトラバーサルを使用する)、セキュア(例えば、DTLS、SRTP)、および通信(例えば、メディアデータまたはSCTPのためにRTPを使用する)の4つの主要なステップを含むことができる。
【0037】
P2Pメディアストリーミング技術は、オファー/アンサーモデルを使用することができる。モデルは、通話を開始するために「オファー」を行うように構成されているエージェントを含むことができ、他のエージェントは、オファーされたものを受け入れる意思がある場合には「アンサー」し、アンサー側にオファーを拒否する機会を与える(例えば、コーデックがメディア記述においてサポートされていないためにオファーを拒否する)。いくつかのP2Pメディアストリーミング技術のオファー/アンサーモデルにより、2つのピアがどのフォーマットを交換するつもりであるかを理解することが可能になることができる。一例として、トランシーバは、そのアプリケーション・プログラミング・インターフェース(API)に見られ得るWebRTC特有の概念である。トランシーバは、「メディア記述」をJavaScript APIに公開することができる。各メディア記述が、トランシーバになる場合がある。したがって、トランシーバが作成されるたびに、新しいメディア記述をローカルセッション記述に追加することができる。WebRTC内の各メディア記述は、direction属性を有することができる。direction属性により、WebRTCエージェントが、「このコーデックを送りますが、何かを受け入れるつもりはありません。」と宣言することができるようになってもよい。
【0038】
実施形態によれば、SDPを使用するWebRTCシグナリングは、表3に開示されているように、以下のパラメータを含むことができる。
【0039】
【0040】
P2Pメディア通信の場合、各ピアは、各ピアの提供の容量および能力を知る必要がある場合がある。容量および能力は、CODECサポートおよび帯域幅を含む場合がある。各ピアはファイアウォールの背後にある場合があるので、P2Pメディア・ストリーミング・セッションを確立するために、各ピアはまた、各ピアのパブリックIPアドレスも知る必要がある場合がある。実施形態によれば、VALサーバが、SEAL NRMサーバを利用することによってP2Pメディアネゴシエーションを実行することが可能になってもよい。
【0041】
図3は、サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための例示的なフローチャート300を示す。
【0042】
動作305に見られるように、VALサーバは、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信することができる。一例として、VALサーバ210は、VALクライアント1 205およびVALクライアント2 220から要求を受信することができる。
【0043】
動作310に見られるように、VALサーバは、ネットワークアドレス変換トラバーサルを使用して、1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索することができる。VALサーバは、ネットワークリソース管理サーバから1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索することができる。一例として、VALサーバ210は、NRMサーバ215からのネットワークアドレス変換トラバーサルを使用して、1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索することができる。
【0044】
いくつかの実施形態では、トランスポート層情報は、1つまたは複数のクライアントデバイスの各々に関連するそれぞれのIPアドレスおよびそれぞれのポート番号のうちの1つまたは複数を含むことができる。いくつかの実施形態では、VALサーバは、合意済みセッション記述プロトコル(SDP)パラメータを検索することができる。合意済みセッション記述プロトコル(SDP)パラメータは、受け入れられたコーデック、対話型接続確立候補、メディアタイプ、利用可能なコーデックサポート、および帯域幅のうちの1つまたは複数を含むことができる。いくつかの実施形態では、合意済みセッション記述プロトコル(SDP)パラメータは、複数の同期ソース、および管理プロトコルによって必要とされるパラメータのうちの1つまたは複数をさらに含むことができる。
【0045】
動作315に見られるように、VALサーバは、1つまたは複数のクライアントデバイスの各々に関連する検索されたトランスポート層情報を統合することができる。いくつかの実施形態では、VALサーバは、1つまたは複数のクライアントデバイスの各々に関連する検索されたトランスポート層情報および合意済みSDPパラメータを統合することができる。いくつかの実施形態では、VALサーバは、合意済みセッション記述プロトコル(SDP)パラメータを送信する前に情報を統合することができる。
【0046】
動作320に見られるように、VALサーバは、トランスポート層情報に基づいて、合意済みセッション記述プロトコル(SDP)パラメータを送信することができ、ここで、合意済みセッション記述プロトコル(SDP)パラメータは、ピアツーピア・メディア・ストリーミング・セッションを確立するために使用される。一例として、VALサーバ210は、VALクライアント1 205およびVALクライアント2 220がP2Pメディア・ストリーミング・セッションを確立するために使用することができる合意済みセッション記述プロトコル(SDP)パラメータを送信することができる。
【0047】
動作325に見られるように、1つまたは複数のクライアントデバイスは、1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報と、合意済みセッション記述プロトコル(SDP)パラメータとに基づいて、ピアツーピア・メディア・ストリーミング・セッションを確立することができる。一例として、VALクライアント1 205およびVALクライアント2 220は、それら自体の間でP2Pメディア・ストリーミング・セッションを確立することができる。
【0048】
コンピュータシステム400について
図4に示されているコンポーネントは、
図1~
図3に開示されているデバイスのいずれかを実装するために使用することができ、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関する制限を示唆することを意図するものではない。コンポーネントの構成も、コンピュータシステム400の例示的な実施形態に示されているコンポーネントのいずれか1つまたは組み合わせに関するいかなる依存関係または要件を有すると解釈されるべきではない。
【0049】
コンピュータシステム400は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した、1人または複数の人間のユーザによる入力に応答することができる。ヒューマン・インターフェース・デバイスはまた、(音声、音楽、周囲の音などの)オーディオ、(スキャン画像、静止画カメラから取得された写真画像などの)画像、(2次元ビデオ、立体ビデオを含む3次元ビデオなどの)ビデオなどの、人間による意識的な入力に必ずしも直接関連しない特定の媒体を取り込むために使用することができる。
【0050】
入力ヒューマン・インターフェース・デバイスは、キーボード401、マウス402、トラックパッド403、タッチスクリーン410、データグローブ(図示せず)、ジョイスティック405、マイク406、スキャナ407、カメラ408のうちの1つまたは複数(それぞれ1つのみを図示)を含むことができる。
【0051】
コンピュータシステム400はまた、特定のヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を介して、1人または複数の人間のユーザの感覚を刺激することができる。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン410、データグローブ(図示せず)、またはジョイスティック405による触覚フィードバック、しかし入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、音声出力デバイス(スピーカ409、ヘッドフォン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン410など、各々タッチスクリーン入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にかかわらず、それらのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して2次元視覚出力または3次元以上の出力を出力することが可能な場合がある)、ならびにプリンタ(図示せず)を含むことができる。
【0052】
コンピュータシステム400はまた、人間がアクセス可能な記憶デバイス、ならびにCD/DVDまたは同様のメディア421を有するCD/DVD ROM/RW420を含む光学メディア、サムドライブ422、リムーバブルハードドライブまたはソリッドステートドライブ423、テープやフロッピーディスクなどのレガシー磁気メディア(図示せず)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(図示せず)などといった記憶デバイスの関連メディアも含むことができる。
【0053】
また、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことを当業者には理解されたい。
【0054】
コンピュータシステム400は、1つまたは複数の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、無線、有線、光であってもよい。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などとすることができる。ネットワークの例には、イーサネット、ワイヤレスLANなどのローカルエリアネットワーク、GSM、3G、5G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線または無線の広域デジタルネットワーク、CANBusを含む車両および産業用のものなどが含まれる。特定のネットワークは、一般に、(例えば、コンピュータシステム400のUSBポートなどの特定の汎用データポートまたは周辺バス(449)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、以下に記載されるシステムバスへの取り付けによってコンピュータシステム400のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースやスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム400は他のエンティティと通信することができる。そのような通信は、単方向受信のみ(例えば、ブロードキャストTV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくは広域のデジタルネットワークを使用する他のコンピュータシステムとの双方向であってもよい。特定のプロトコルおよびプロトコルスタックは、上述されたそれらのネットワークおよびネットワークインターフェースの各々で使用することができる。
【0055】
前述のヒューマン・インターフェース・デバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースを、コンピュータシステム400のコア440に取り付けることができる。
【0056】
コア440は、1つまたは複数の中央処理装置(CPU)441、グラフィック処理装置(GPU)442、フィールドプログラマブルゲートエリア(FPGA:Field Programmable Gate Area)443の形態の専用プログラマブル処理装置、および特定のタスク用のハードウェアアクセラレータ444などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)445、ランダムアクセスメモリ446、ユーザがアクセスできない内蔵ハードドライブなどの内部大容量ストレージ、SSDなど447と共に、システムバス448を介して接続することができる。一部のコンピュータシステムでは、システムバス448は、追加のCPUおよびGPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であってもよい。周辺デバイスは、コアのシステムバス448に直接取り付けることができ、または周辺バス449を介して取り付けることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0057】
CPU441、GPU442、FPGA443、およびアクセラレータ444は、組み合わせることで前述のコンピュータコードを構成し得る特定の命令を実行することができる。そのコンピュータコードは、ROM445またはRAM446に記憶することができる。移行データもRAM446に記憶することができるが、永続データは、例えば、内部大容量ストレージ447に記憶することができる。メモリデバイスのいずれかに対する高速の記憶および取得は、1つまたは複数のCPU441、GPU442、大容量ストレージ447、ROM445、RAM446などと密接に関連付けることができるキャッシュメモリを使用して動作可能にすることができる。
【0058】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であってもよい。
【0059】
限定としてではなく、一例として、アーキテクチャ、特にコア440を有するコンピュータシステム400は、1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、およびアクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で導入したようなユーザアクセス可能な大容量ストレージ、および非一時的な性質の、コア440の特定のストレージに関連付けられる媒体、例えば、コア内部の大容量ストレージ447またはROM445であってもよい。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア440によって実行することができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア440に、特にその中のプロセッサ(CPU、GPU、およびFPGAなどを含む)に、RAM446に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することを含む、本明細書で説明されている特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ444)に結線接続またはその他の方法で具現化されたロジックの結果として機能を提供することができ、それは、本明細書に記載した特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと共に動作することができる。必要に応じて、ソフトウェアへの参照はロジックを包含することができ、その逆も同様である。必要に応じて、コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはこれらの両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0060】
一部の実施形態は、任意の可能な技術的詳細の統合レベルでシステム、方法、および/またはコンピュータ可読媒体に関することができる。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一時的記憶媒体を含むことができる。
【0061】
コンピュータ可読記憶媒体は、命令実行装置によって使用するための命令を保持および記憶し得る有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下を、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み出し専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み出し専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0062】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/もしくは無線ネットワークを介して外部コンピュータもしくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含むことができる。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0063】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、インストラクションセットアーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、またはSmalltalkもしくはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、または(例えば、インターネットサービスプロバイダを使用したインターネットを介して)外部コンピュータへの接続がなされてもよい。一部の実施形態では、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA:programmable logic array)を含む電子回路が、態様または動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行することができる。
【0064】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令が、フローチャートおよび/またはブロック図のブロックで指定された機能/動作を実装するための手段を作成するようにマシンを生成するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供することができる。これらのコンピュータ可読プログラム命令はまた、記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図のブロックで指定された機能/動作の態様を実装する命令を含む製品を含むように、コンピュータ、プログラマブルデータ処理装置、および/または他のデバイスに特定の方法で機能するように指示し得るコンピュータ可読記憶媒体に記憶することができる。
【0065】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令がフローチャートおよび/またはブロック図のブロックで指定された機能/動作を実装するように、コンピュータ実装プロセスを生成するために一連の動作ステップがコンピュータ、他のプログラマブル装置、または他のデバイス上で実行されるよう、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードすることができる。
【0066】
図のフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ可読媒体の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表すことができる。方法、コンピュータシステム、およびコンピュータ可読媒体は、図に示されているものと比べて、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。一部の代替の実装形態では、ブロックに記載された機能は、図に記載されているのとは異なる順序で実行されてもよい。例えば、連続して示されている2つのブロックは、実際には、同時にまたは実質的に同時に実行されてもよいし、またはブロックは、関連する機能に応じて、場合によっては逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能もしくは動作を実行する、または専用ハードウェアとコンピュータ命令との組み合わせを実現する、専用ハードウェアベースのシステムによって実装され得ることにも留意されたい。
【0067】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0068】
本明細書で使用される要素、動作、または命令は、そのようなものとして明示的に記載されていない限り、重要または必須であると解釈されてはならない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図されており、「1つまたは複数」と交換可能に使用することができる。さらに、本明細書で使用される「セット」という用語は、1つまたは複数の項目(例えば、関連項目、非関連項目、関連項目と非関連項目の組み合わせなど)を含むものであり、「1つまたは複数」と同じ意味で使用することができる。1つの項目のみが対象とされる場合、「1つ」という用語または同様の言葉が使用される。また、本明細書で使用される「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることが意図される。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味することが意図されている。
【0069】
様々な態様および実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定されることを意図されていない。特徴の組み合わせが特許請求の範囲に記載され、および/または本明細書に開示されているが、これらの組み合わせは、可能な実装形態の開示を限定することを意図されていない。実際には、これらの特徴の多くは、特許請求の範囲に特に記載されておらず、かつ/または本明細書に開示されていない方法で組み合わせることができる。以下に列挙されている各従属請求項は1つの請求項のみに直接従属し得るが、可能な実装形態の開示は、請求項セット内の他のすべての請求項との組み合わせにおいて各従属請求項を含む。記載された実施形態の範囲から逸脱することなく、多くの修正および変形が当業者に明らかになるであろう。本明細書で使用される用語は、実施形態の原理、実際の用途、もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示されている実施形態を理解することを可能にするために選択された。
【符号の説明】
【0070】
100 SEAL機能アーキテクチャ
105 VALクライアント
110 VALサーバ
115 VAL-UU参照点
120 ユーザ機器
125 SEALクライアント
130 SEALサーバ
135 SEAL-UU参照点、NRM-UU参照点
140 SEAL-C参照点
145 SEAL-S参照点、NRM-S参照点
200 ワークフロー
205 VALクライアント1
210 VALサーバ
215 ネットワークリソース管理(NRM)サーバ
220 VALクライアント2
250 動作
252 動作
255 動作
256 動作
258 動作
260 動作
300 フローチャート
305 動作
310 動作
315 動作
320 動作
325 動作
400 コンピュータシステム
401 キーボード
402 マウス
403 トラックパッド
405 ジョイスティック
406 マイク
407 スキャナ
408 カメラ
409 スピーカ
410 タッチスクリーン
420 CD/DVD ROM/RW
421 メディア
422 サムドライブ
423 リムーバブルハードドライブまたはソリッドステートドライブ
440 コア
441 中央処理装置(CPU)
442 グラフィック処理装置(GPU)
443 フィールドプログラマブルゲートエリア(FPGA)
444 ハードウェアアクセラレータ
445 読み出し専用メモリ(ROM)
446 ランダムアクセスメモリ、RAM
447 内部大容量ストレージ
448 システムバス
449 周辺バス
【手続補正書】
【提出日】2023-04-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための方法であって、前記方法は1つまたは複数のプロセッサによって実行され、前記方法は、
バーティカルアプリケーション層(VAL)サーバによって、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信するステップと、
前記バーティカルアプリケーション層(VAL)サーバによって、ネットワークアドレス変換トラバーサルを使用して、前記1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索するステップと、
前記バーティカルアプリケーション層(VAL)サーバによって、前記トランスポート層情報に基づいて合意済みセッション記述プロトコル(SDP)パラメータを送信するステップであって、前記合意済みセッション記述プロトコル(SDP)パラメータはピアツーピア・メディア・ストリーミング・セッションを確立するために使用される、ステップと
を含む、方法。
【請求項2】
前記要求は、要求元識別子、VALユーザに関連する識別情報、ユーザ機器識別子、およびセッション記述プロトコル(SDP)オファーのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記トランスポート層情報は、前記1つまたは複数のクライアントデバイスの各々に関連するそれぞれのIPアドレスおよびそれぞれのポート番号のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項4】
前記方法は、前記合意済みセッション記述プロトコル(SDP)パラメータを送信する前に、前記バーティカルアプリケーション層(VAL)サーバによって、前記1つまたは複数のクライアントデバイスの各々に関連する前記トランスポート層情報を統合するステップを含む、請求項1に記載の方法。
【請求項5】
前記合意済みセッション記述プロトコル(SDP)パラメータは、受け入れられたコーデック、対話型接続確立候補、メディアタイプ、利用可能なコーデックサポート、および帯域幅のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項6】
前記合意済みセッション記述プロトコル(SDP)パラメータは、複数の同期ソース、および管理プロトコルによって必要とされるパラメータのうちの1つまたは複数をさらに含む、請求項5に記載の方法。
【請求項7】
前記方法は、前記1つまたは複数のクライアントデバイスによって、前記1つまたは複数のクライアントデバイスの各々に関連する前記トランスポート層情報と、前記合意済みセッション記述プロトコル(SDP)パラメータとに基づいて、前記ピアツーピア・メディア・ストリーミング・セッションを確立するステップ
をさらに含む、請求項1に記載の方法。
【請求項8】
サービス・イネーブラ・アーキテクチャ層(SEAL)を使用してピアツーピア・メディア・ストリーミングを動作可能にするための装置であって、
コンピュータ・プログラム・コードを記憶するように構成された少なくとも1つのメモリと、
前記少なくとも1つのメモリにアクセスし、前記コンピュータ・プログラム・コードによって命令されるように動作するように構成された少なくとも1つのプロセッサと
を備え、前記コンピュータ・プログラム・コードは、
少なくとも1つのプロセッサに、バーティカルアプリケーション層(VAL)サーバによって、1つまたは複数のクライアントデバイス間のメディア・セッション・ネゴシエーションの要求を受信させるように構成された要求受信コードと、
少なくとも1つのプロセッサに、前記バーティカルアプリケーション層(VAL)サーバによって、ネットワークアドレス変換トラバーサルを使用して前記1つまたは複数のクライアントデバイスの各々に関連するトランスポート層情報を検索させるように構成された検索コードと、
少なくとも1つのプロセッサに、前記バーティカルアプリケーション層(VAL)サーバによって、前記トランスポート層情報に基づいて合意済みセッション記述プロトコル(SDP)パラメータを送信させるように構成された送信コードであって、前記合意済みセッション記述プロトコル(SDP)パラメータはピアツーピア・メディア・ストリーミング・セッションを確立するために使用される、送信コードと
を含む、装置。
【請求項9】
前記要求は、要求元識別子、VALユーザに関連する識別情報、ユーザ機器識別子、およびセッション記述プロトコル(SDP)オファーのうちの少なくとも1つを含む、請求項8に記載の装置。
【請求項10】
前記トランスポート層情報は、前記1つまたは複数のクライアントデバイスの各々に関連するそれぞれのIPアドレスおよびそれぞれのポート番号のうちの1つまたは複数を含む、請求項8に記載の装置。
【請求項11】
前記コンピュータ・プログラム・コードは、少なくとも1つのプロセッサに、前記合意済みセッション記述プロトコル(SDP)パラメータを送信する前に、前記バーティカルアプリケーション層(VAL)サーバによって、前記1つまたは複数のクライアントデバイスの各々に関連する前記トランスポート層情報を統合させるように構成された、請求項8に記載の装置。
【請求項12】
前記合意済みセッション記述プロトコル(SDP)パラメータは、受け入れられたコーデック、対話型接続確立候補、メディアタイプ、利用可能なコーデックサポート、および帯域幅のうちの1つまたは複数を含む、請求項8に記載の装置。
【請求項13】
前記合意済みセッション記述プロトコル(SDP)パラメータは、複数の同期ソース、および管理プロトコルによって必要とされるパラメータのうちの1つまたは複数をさらに含む、請求項12に記載の装置。
【請求項14】
前記コンピュータ・プログラム・コードは、少なくとも1つのプロセッサに、前記1つまたは複数のクライアントデバイスによって、前記1つまたは複数のクライアントデバイスの各々に関連する前記トランスポート層情報、および前記合意済みセッション記述プロトコル(SDP)パラメータに基づいて、前記ピアツーピア・メディア・ストリーミング・セッションを確立させるように構成された、請求項8に記載の装置。
【請求項15】
少なくとも1つのプロセッサに請求項1から7のいずれか一項に記載の方法を実行させるためのプログラム。
【国際調査報告】