(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-25
(45)【発行日】2023-06-02
(54)【発明の名称】クラウドサービスのための方法、装置、および、コンピュータプログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20230526BHJP
【FI】
G06Q50/10
(21)【出願番号】P 2021552148
(86)(22)【出願日】2020-09-24
(86)【国際出願番号】 US2020052431
(87)【国際公開番号】W WO2021061939
(87)【国際公開日】2021-04-01
【審査請求日】2021-09-02
(32)【優先日】2019-09-27
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-09-27
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-09-27
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-09-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
【審査官】上田 威
(56)【参考文献】
【文献】特表2018-522336(JP,A)
【文献】特開2019-145129(JP,A)
【文献】特表2008-543124(JP,A)
【文献】米国特許出願公開第2012/0089723(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
クラウドサービスのための方法であって、
クラウドサービスのために動作する処理回路によって、少なくとも変数に関連する第1特性を含むリクエストを受信するステップであり、前記第1特性は、前記変数を記述している、ステップと、
前記処理回路によって、前記変数に関連する第1特性
を含むメッセージ、および、前記変数の更新された
値を生成するステップと、
前記処理回路によって、前記メッセージを受信者に対して送信するステップと、
を
含み、
前記リクエストは、少なくともイベントに関連する第2特性を含み、前記第2特性は、前記イベントを記述しており、
前記変数は、機能変数およびシステム変数のうちの1つであり、かつ、
前記イベントは、機能イベントおよびシステムイベントのうちの1つであり、
前記方法は、さらに、
前記変数および前記変数の更新された値に関連する第1特性、および、前記イベントの発生を示すための前記イベントに関連する前記第2特性を含む、前記メッセージを生成するステップ、を含む、
方法。
【請求項2】
前記第1特性は、少なくとも、前記変数の定義、前記変数の単位、前記変数のフォーマット、および、前記変数のユニバーサル識別子、を含む、
請求項1に記載の方法。
【請求項3】
前記処理回路は、前記クラウドサービスのためのワークフローを確立し、かつ、管理する、ように構成されている、
請求項1または2に記載の方法。
【請求項4】
前記処理回路は、前記クラウドサービスのためのワークフローにおいて1つ以上のタスクを実行するように構成されている、
請求項1または2に記載の方法。
【請求項5】
前記リクエストは、少なくとも、変数に関連する第1変数記述子オブジェクト、イベントに関連する第1イベント記述子オブジェクト、および、レポート間隔を伴う第1レポート記述子オブジェクトを含み、かつ、
前記方法は、さらに、
以前のメッセージに対する前記レポート間隔と同時に、前記変数について更新された値を有する第2変数記述子オブジェクトを伴う第2レポート記述子オブジェクト、および、前記イベントのサブセットに関連する第2イベント記述子オブジェクトを含むメッセージを生成するステップ、
を含む、請求項
1に記載の方法。
【請求項6】
前記リクエストは、少なくとも、変数に関連する第1変数記述子オブジェクト、サブスクライブ・イベントに関連する第1イベント記述子オブジェクト、を伴う第1通知記述子オブジェクトを含み、かつ、
前記方法は、さらに、
前記サブスクライブ・イベントの少なくとも1つの発生に応答して、
前記変数について更新された値を有する第2変数記述子オブジェクトを伴う第2レポート記述子オブジェクト、および、前記サブスクライブ・イベントのサブセットに関連する第2イベント記述子オブジェクトを含むメッセージを生成するステップ、
を含む、請求項
1に記載の方法。
【請求項7】
前記リクエストは、少なくとも、変数に関連する第1変数記述子オブジェクト、イベントに関連する第1イベント記述子オブジェクト、を伴う第1モニタリング記述子オブジェクトを含み、かつ、
前記方法は、さらに、
モニタリングエンティティから送信された前記リクエストを受信するステップと、
前記リクエストに応答して、前記変数について更新された値を有する第2変数記述子オブジェクトを伴う第2通知記述子オブジェクト、および、前記イベントのサブセットに関連する第2イベント記述子オブジェクトを生成するステップと、
前記メッセージを、前記モニタリングエンティティに対して送信するステップと、
を含む、請求項1に記載の方法。
【請求項8】
前記メッセージは、前記リクエストを識別するリクエスト記述子オブジェクトを含む、
請求項1に記載の方法。
【請求項9】
処理回路を含む、クラウドサービスを提供するための装置であって、
前記処理回路によって、請求項1乃至
8いずれか一項に記載の方法を実施する、
装置。
【請求項10】
クラウドサービスを提供するためのコンピュータプログラムであって、
コンピュータによって実行されると、請求項1乃至
8いずれか一項に記載の方法を実施する、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般的に、クラウドサービスに関連する実施形態を記載する。
【0002】
本出願は、2020年9月23日に出願された米国特許出願第17/029968号、“METHOD AND APPARATUS FOR CLOUD SERVICE”に対する優先権の利益を主張するものであり、先の出願は、2019年9月27日に出願された米国仮出願第62/907322号、“SELF-CONTAINED REPORTING FOR CLOUD SERVICES”、2019年9月27日に出願された米国仮出願第62/907327号、“SELF-CONTAINED MONITORING FOR CLOUD SERVICES”、および、2019年9月27日に出願された米国仮出願第62/907312号、“SELF-CONTAINED NOTIFICATION FOR CLOUD SERVICES”に対する優先権の利益を主張している。先の出願の開示全体は、その全体が参照により本明細書に組み込まれている。
【背景技術】
【0003】
ここにおいて提供される背景説明は、本開示のコンテキスト(context)を一般的に提示する目的のためのものである。現在名前がある発明者の業務は、その業務がこの背景セクションで記載されている範囲において、並びに、その他の点では出願時における先行技術として適格でないかもしれない説明の態様は、本開示に対する先行技術として明示的に、また、暗示的にも認められていない。
【0004】
様々なメディアのアプリケーションおよびサービスは、著しい処理能力を必要とする。いくつかの例において、クラウド処理(cloud processing)は、そうでなければクライアント装置上で実行されていたであろうワークロードがリモートサーバにオフロードされ得る場合に好まれる。リモートサーバは非常に高い計算能力を有するので、複雑なメディア処理タスクはリモートサーバによって実行され、そして、次いで、最終結果または最終に近い結果がクライアント装置に対して送信され得る。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示の態様は、クラウドサービスのための方法および装置を提供する。例えば、クラウドサービスを提供するためのクラウド内の装置は、処理回路を含んでいる。処理回路は、少なくとも変数に関連する第1特性(first characteristics)を含むリクエストを受信する。一つの実施例において、第1特性は、変数を記述するための完全な情報を含む。処理回路は、変数に関連する第1特性および変数の更新された値を含むメッセージを生成し、そして、受信者に対してメッセージを送信する。
【課題を解決するための手段】
【0006】
一つの実施例において、第1特性は、少なくとも、変数の定義、変数の単位、変数のフォーマット、および、変数のユニバーサル識別子を含む。
【0007】
いくつかの実施例において、処理回路は、クラウドサービスのためのワークフローを確立し、そして、管理することができる。他のいくつかの実施例において、処理回路は、クラウドサービスのためのワークフローにおける1つ以上のタスクを実行することができる。
【0008】
いくつかの実施形態において、リクエストは、少なくともイベントに関連する第2特性を含む。第2特性は、イベントを記述するための完全な情報を含んでいる。処理回路は、変数および変数の更新された値に関連する第1特性、および、イベントの発生を示すためのイベントに関連する第2特性を含む、メッセージを生成することができる。変数は、関数変数またはシステム変数であり、そして、イベントは、関数イベントまたはシステムイベントであり得ることに留意する。
【0009】
いくつかの実施形態において、リクエストは、少なくとも、変数に関連する第1変数記述子オブジェクト、イベントに関連する第1イベント記述子オブジェクト、および、レポート間隔を伴う第1レポート記述子オブジェクトを含む。処理回路は、以前のメッセージに対するレポート間隔と同時に、変数について更新された値を有する第2変数記述子オブジェクトを伴う第2レポート記述子オブジェクト、および、イベントのサブセットに関連する第2イベント記述子オブジェクトを含むメッセージを生成する。
【0010】
いくつかの実施形態において、リクエストは、少なくとも、変数に関連する第1変数記述子オブジェクト、および、サブスクライブ・イベントに関連する第1イベント記述子オブジェクト、を伴う第1通知記述子オブジェクトを含む。処理回路は、サブスクライブ・イベントの少なくとも1つの発生に応答して、変数について更新された値を有する第2変数記述子オブジェクトを伴う第2レポート記述子オブジェクト、および、サブスクライブ・イベントのサブセットに関連する第2イベント記述子オブジェクトを含むメッセージを生成する。
【0011】
いくつかの実施形態において、リクエストは、少なくとも、変数に関連する第1変数記述子オブジェクト、および、イベントに関連する第1イベント記述子オブジェクト、を伴う第1モニタリング記述子オブジェクトを含む。処理回路は、モニタリングエンティティから送信されたリクエストを受信し、そして、リクエストに応答して、変数について更新された値を有する第2変数記述子オブジェクトを伴う第2通知記述子オブジェクト、および、イベントのサブセットに関連する第2イベント記述子オブジェクトを生成する。次いで、メッセージをモニタリングエンティティに対して送信する。
【0012】
いくつかの実施形態において、メッセージは、リクエストを識別するリクエスト記述子(request descriptor)オブジェクトを含むことに留意する。
【0013】
本開示の態様は、また、命令を保管している非一時的なコンピュータで読取可能なメディアを提供する。命令は、クラウドサービスのためのコンピュータによって実行されると、クラウドサービスのための方法をコンピュータに実行させる。
【図面の簡単な説明】
【0014】
開示される技術的事項(subject matter)さらなる特徴、性質、および種々の利点は、以下の詳細な説明および添付の図面からより明らかになるだろう。
【
図1】
図1は、本開示の一つの実施形態に従った、例示的なメディア処理システムを示している。
【
図2】
図2は、本開示の一つの実施形態に従った、例示的な図表(graph)を示している。
【
図3】
図3は、本開示のいくつかの実施形態に従った、機能における変数のリストを示している。
【
図4】
図4は、本開示のいくつかの実施形態に従った、変数について特性のテーブルを示している。
【
図5】
図5は、本開示のいくつかの実施形態に従った、例示的な変数記述子スキーマを示している。
【
図6】
図6は、本開示のいくつかの実施形態に従った、機能におけるイベントのリストを示している。
【
図7】
図7は、本開示のいくつかの実施形態に従った、イベントについて特性のテーブルを示している。
【
図8】
図8は、本開示のいくつかの実施形態に従った、例示的なイベント記述子スキーマを示している。
【
図9】
図9は、レポート記述子(reporting descriptor)におけるパラメータ及びパラメータについて対応するタイプに係るテーブルを示している。
【
図10】
図10は、本開示のいくつかの実施形態に従った、例示的なレポート記述子スキーマを示している。
【
図11】
図11は、通知記述子(notification descriptor)におけるパラメータ及びパラメータについて対応するタイプに係るテーブルを示している。
【
図12A】
図12Aは、本開示のいくつかの実施形態に従った、例示的な通知記述子スキーマを示している。
【
図12B】
図12Bは、本開示のいくつかの実施形態に従った、例示的な通知記述子スキーマを示している。
【
図13】
図13は、モニタリング記述子(monitoring descriptor)におけるパラメータ及びパラメータについて対応するタイプに係るテーブルを示している。
【
図14】
図14は、本開示のいくつかの実施形態に従った、例示的なモニタリング記述子スキーマを示している。
【
図15】
図15は、本開示の一つの実施形態に従った、プロセスを概説するフローチャートを示している。
【
図16】
図16は、一つの実施形態に従った、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0015】
クラウドコンピューティングは、情報コンピューティングサービス(例えば、クラウドサービス)を提供するために、ネットワーク(例えば、インターネット)上でホスティングされたリモートサーバのネットワークを使用する実践を指している。そこを通じてクラウドサービスがサービス利用者(例えば、クライアント)に提供される、ネットワークアーキテクチャ(例えば、ハードウェアおよびソフトウェアを含んでいる)が、クラウドとして呼ばれる。クラウドコンピューティングは、データ処理、メディア処理、サーバ、ストレージ、ネットワーク、アプリケーション、オンラインサービス、等といった、広範なサービスに対するアクセスを提供する。いくつかの実施例において、メディア処理は、計算集約的(compute intensive)になり、そして、従って、メディア処理クラウドが、著しいワークロードをリモートサーバへオフロードするために好まれる。
【0016】
一般的に、クラウドコンピューティングシステムは、ネットワーク、1つ以上のサーバ、および、1つ以上のクライアント装置を含む。ネットワークは、サーバとクライアント装置との間の通信を促進する。クライアント装置は、例えば、スマートフォン、タブレットコンピュータ、ラップトップ、パーソナルコンピュータ、ウェアラブルデバイス、ヘッドマウントディスプレイ(HMD)、等であり得る。サーバは、1つ以上のクライアント装置に対してコンピューティングサービスを提供することができる任意の適切な計算(computing)または処理(processing)装置を含み得る。例えば、各サーバは、1つ以上の処理装置、命令およびデータを保管する1つ以上のメモリ、および、ネットワークにわたり通信を促進する1つ以上のネットワークインターフェイスを含み得る。いくつかの実施形態において、サーバは、処理タスクを実行するために機能を選択し、かつ、ワークフロー・パイプラインを構築することができるワークフローマネージャを含んでいる。
【0017】
本開示のいくつかの実施形態に従って、計算(computation)がリモートサーバ、クライアント装置、または、サービスを提供する責任を負うサービスプロバイダに対してオフロードされる場合、サービスのリアルタイム情報といった、サービスの処理状況(processing status)に関する情報、等を必要とすることが。いくつかの実施例においては、クラウドサービスに関わるエンティティに対してステータス情報を提供するために、クラウドコンピューティングシステムにおいてアクション(action)をとることができる。一つの実施例において、レポート(reporting)は、サービスの実行の最中に宛先に対してイベントおよび変数に関する情報を提供するために定期的に実行される(例えば、時間間隔に基づいて頻繁に実行される)アクションである。別の実施例において、通知(notifying)は、イベントが発生したときに、宛先に対して情報を提供するアクションである。別の実施例において、モニタリング(monitoring)は、情報を要求し、そして、リクエストされた情報を受信する、エンティティのアクションである。説明を容易にするため、以下の説明において、アクション(例えば、レポート、通知、および、モニタリング)に応答して生成されたステータス情報は、ステータスレポートと呼ばれる。レポートアクションに応答して生成されたステータス情報は定期レポート(regular report)として、通知アクションに応答して生成されたステータス情報は通知レポート(notification report)として、そして、モニタリングアクションに応答して生成されたステータス情報はモニタリングレポートとして参照される。
【0018】
本開示の態様は、クラウドコンピューティングシステムにおいてレポート、モニタリング、および通知を行うためのフレームワークを提供する。本フレームワークは、レポート、モニタリング、および、通知アクションの設定および処理を簡素化することができる。具体的に、本開示のいくつかの態様は、クラウドコンピューティングサービスのための、自己完結した(self-contained)レポート、モニタリング、および通知フレームワークを提供する。自己完結したフレームワークは、受信者に対して、受信者が理解するために必要な全ての情報をコンテナ内に含むコンテナ(例えば、メッセージ)を提供することができ、従って、受信者は、受信した情報を理解するために、コンテナ外の情報を相互参照する必要がない。
【0019】
本開示において、ネットワークベースのメディア処理(NBMP)を実行するメディア処理システム(いくつかの実施例においては、また、メディア処理クラウドとも呼ばれる)が、レポート、モニタリング、および、通知フレームワークを説明するための例として使用されていること、そして、レポート、モニタリング、および、通知フレームワークは、他の適切なクラウドコンピューティングシステムにおいて使用され得ること、に留意する。
【0020】
メディア処理システムにおいて、NBMPソースは、リクエストされたメディア処理を記述し、そして、メディアデータの性質とフォーマットに関する情報を提供する。従って、NBMPワークフローマネージャは、メディア処理ワークフローを確立し、そして、ワークフローの準備ができていることをNBMPソースに通知することができ、そして、メディア処理が開始できる。例えば、メディアソースは、次いで、処理のためにネットワークに対してメディアを送信し始めることができる。
【0021】
いくつかの実施形態において、NBMPワークフローは、メディア処理タスク間の入力/出力関係に基づいて接続されるメディア処理タスクを含む。メディア処理タスクそれぞれは、ビデオデコーディング、ビデオステッチング、ビデオエンコーディング、等といった、メディア処理オペレーションを実行する。一つの実施例において、第1メディア処理タスクは、入力に基づいてメディア処理オペレーションを実行し、そして、出力を生成する。第1メディア処理タスクの出力は、第1メディア処理タスクに接続された第2メディア処理タスクへの入力として使用することができる。別の言葉で言えば、NBMPワークフローは、メディア処理タスクの接続グラフ(connected graph)と見なすことができる。
【0022】
ワークフローマネージャは、各タスク並びにワークフロー出力を構成し、そして、モニタリングすることにより、ワークフローの正しいオペレーションを確保することができる。いくつかの実施例において、ワークフローマネージャは、NBMPソースから受信したワークフロー記述(workflow description)に基づくタスクとして、メディア処理機能を選択し、そして、メディア処理機能をインスタンス化(instantiate)するように構成されている。
【0023】
メディア処理システムでは、メディア処理タスクを実行するメディア処理エンティティを確立し、ロードし、インスタンス化し、かつ、モニタリングするために、適切なインタラクションが実行され得る。いくつかの実施例において、アプリケーションプログラミングインターフェイス(API)は、NBMPソースとワークフローマネージャとの間、および、ワークフローマネージャとタスクとの間に定義され得る。そして、適切な機能を検出するためにAPIが定義される。いくつかの実施例において、メディア処理システムは、メディアフォーマットおよびプロトコル・アグノスティック(agnostic)あるように構成されている。メディア処理システムは、メディアソース、ワークフローマネージャと、タスクとの間で交換されるデータについてメディア、メタデータ、および、補助情報フォーマットを識別し、そして、信号化(signal)することができる。
【0024】
いくつかの実施例においては、メディア処理のためにデジタルネットワークを通して接続されたエンティティ間のデータフォーマットおよびアプリケーションプログラミングインターフェイス(API)の両方を含むインターフェイスを定義することができる。ユーザは、効率的で、インテリジェントな処理のために、リモートでユーザオペレーションにアクセスし、そして、設定することができる。メディアデータに適用されるワークフローが、記述され、そして、管理され得る。メディアデータがネットワークにアップロードされ、そして、メディア処理タスクがインスタンス化され、かつ、設定され得る。いくつかの実施形態において、メディア処理パイプラインの動的な作成、並びに、リアルタイムまたは延期された方法(deferred way)での処理されたメディアデータおよびメタデータへのアクセスがイネーブルされる。メディアソース、ワークフローマネージャと、メディア処理パイプライン内のメディア処理エンティティとの間で使用されるメディアフォーマットおよびメタデータフォーマットも、また、指定される。
【0025】
一つの実施例において、クライアント(例えば、クリエータ、サービスプロバイダ、および、デジタルメディアの消費者)は、ネットワーク内のメディア処理エンティティによって実行されるメディア処理オペレーションを記述することができる。ワークフローは、インターフェイス(例えば、NBMP API)を通してアクセス可能な一式のメディア処理機能を構成することによって記述され得る。メディア処理エンティティ(MPE)は、メディア、および、メディアソースまたはその他のタスクから受信した関連メタデータについて適用される処理タスクを実行することができる。MPEは、処理タスクを構成、管理、およびモニタリングする機能を提供することができる。メディア処理タスクは、メディアおよびメタデータ入力に適用されるプロセスであってよく、メディアシンクまたはその他のメディア処理タスクによって消費されるデータおよび関連するメタデータ出力を生成している。
【0026】
メディア処理システムは、ストリーミング、ファイル配信、プッシュベースのプログレッシブダウンロード、ハイブリッド配信、マルチパス、および、異種ネットワーク環境といった、様々な配信方法をサポートすることができる。
【0027】
図1は、本開示の一つの実施形態に従った、例示的なメディア処理システム(例えば、NBMPシステム、NBMP参照アーキテクチャ、NBMPアーキテクチャ)(100)を示している。メディア処理システム(100)は、NBMPソース(101)、ワークフローマネージャ(例えば、NBMPワークフローマネージャ)(103)、機能リポジトリ(function repository)(105)、メディアソース(111)、メディア処理エンティティ(MPE)(113)、メディアシンク(115)、第三者エンティティ、等といった、複数のエンティティを含み得る。メディア処理システム(100)は、追加的なメディアソース、メディアシンク、及び/又は、メディア処理エンティティを含み得る。メディア処理システム(100)は、ネットワーク内の1つ以上の処理エンティティにわたりメディアデータを処理することができる。様々なメディアおよびメディアに対する制御情報(または、制御データ)といった、情報が、メディア処理システム(100)内の複数のエンティティ間で通信され得る。
【0028】
説明の目的でコンテキストを提供するために、メディア処理システム(100)が、以下に、NBMPシステム(100)として説明される。説明は、任意のメディア処理システムに対して適切に適合され得る。
【0029】
NBMPソース(101)は、ネットワーク内のメディア処理を記述し、または、そうでなければ示すことができる。機能リポジトリ(105)は、様々なNBMP機能に係るNBMP機能記述を含み得る。NBMPソース(101)およびワークフローマネージャ(103)は、機能リポジトリ(105)からNBMP機能の記述または機能を取り出す(retrieve)ことができる。NBMP機能は、スタンドアロンで、かつ、自己完結したメディア処理オペレーションの実装、及び/又は、対応するオペレーションの記述を参照することができる。
【0030】
処理タスクまたはタスクは、MPE(113)によって実行されるNBMP機能のランタイム(runtime)インスタンスを参照することができる。NBMPワークフローまたはワークフローは、リクエストされたメディア処理を達成する1つ以上の接続されたタスクのグラフ(例えば、有向非巡回グラフ(DAG))によって表現され得る。
ワークフローマネージャ(103)は、例えば、ワークフロー記述ドキュメント(WDD)に基づいて、ワークフローを作成し、制御し、管理し、かつ、モニタリングするために、タスク提供し、そして、タスクを接続することができる。
【0031】
メディアソース(111)は、ワークフローによって処理されるメディアコンテンツ(例えば、メディアデータ、補足(supplementary)情報)を提供することができる。補足情報は、メディアデータに関連するメタデータまたは補助(auxiliary)情報を含み得る。メディアソース(111)は、ワークフローに対する入力を提供することができる。メディアシンク(115)は、ワークフローの出力を消費することができる。MPE(113)は、メディアコンテンツを処理するために、1つ以上のメディア処理タスクを実行することができる。
【0032】
NBMPシステム(100)内の異なるエンティティ(例えば、NBMPソース(101)、ワークフローマネージャ(103)、およびMPE(113)は、メディアサービスリクエストを呼び出し(invoke)、かつ、応答するためにAPIを使用することができる。APIは、NBMPワークフローAPIまたはワークフローAPI、機能検出API、および、タスクAPIを含み得る。ワークフローAPIは、NBMPソース(101)とワークフローマネージャ(103)との間のインターフェイスを提供することができる。タスクAPIは、ワークフローマネージャ(103)とメディア処理タスクとの間のインターフェイスを提供することができる。機能検出APIは、ワークフローマネージャ(103)、NBMPソース(101)と、機能リポジトリ(105)との間のインターフェイスを提供することができる。
【0033】
上述のNBMPインターフェイスは、ネットワークにおいてメディア処理ワークフローを作成し、そして、制御するために使用され得る。NBMPシステム(100)は、コントロールプレーンとメディアプレーン(または、メディアデータプレーン)へと分割され得る。コントロールプレーンは、ワークフローAPI、機能検出API、および、タスクAPIを含み得る。
【0034】
ワークフローAPIは、メディア処理ワークフローを作成し、そして、制御するために、NBMPソース(101)によって使用され得る。NBMPソース(101)は、ネットワーク内のメディア処理の設定し、そして、制御するために、ワークフローマネージャ(103)と通信するように、ワークフローAPIを使用することができる。NBMPソース(101)が、ワークフローAPIのオペレーション内にワークフローリソース(WR)を含めることによって、ワークフローマネージャ(103)に対してリクエストを送信すると、ワークフローマネージャ(103)は、WR、含まれるWDD、および対応する記述子(descriptor)を解析し、そして、リクエストされたオペレーションに応じて、適切なアクションを実行することができる。次いで、ワークフローマネージャ(103)は、レスポンス(response)でリクエストをアクノリッジ(acknowledge)することができる。ワークフローAPIオペレーションは、ワークフローの作成(例えば、CreateWorkflow)、ワークフローの更新(例えば、UpdateWorkflow)、ワークフローの削除(例えば、DeleteWorkflow)、ワークフローの検索(例えば、RetrieveWorkflow)、等を含み得る。
【0035】
機能検出APIは、ワークフローマネージャ(103)及び/又はNBMPソース(101)のために、メディア処理ワークフローの一部としてロードされ得るメディア処理機能を検出(discover)する手段を提供することができる。
【0036】
タスクAPIは、実行時にタスク(例えば、MPE(113)によって実行されるタスク1およびタスク2)を構成し、かつ、モニタリングするために、ワークフローマネージャ(103)によって使用され得る。タスクAPIは、例えば、タスクのためのリソースがMPE(113)において割り当てられた後で、ワークフローマネージャ(103)によって、メディア処理タスクの構成のためのインターフェイスを定義することができる。タスクAPIのオペレーションには、タスクの生成(例えば、CreateTask)、タスクの更新(例えば、UpdateTask)、タスクの取得(例えば、GetTask)、タスクの削除(例えば、DeleteTask)、等を含み得る。
【0037】
メディアプレーン上では、NBMPソース(111)とタスクとの間、並びに、タスク間のメディアフォーマット、メタデータ、および、補足情報フォーマットが定義され得る。
【0038】
ワークフロー記述(WD)は、NBMPソース(101)からワークフローマネージャ(103)へ渡され得る。WDは、入力データと出力データ、機能、および、ワークフローに対する他の要求事項、といった情報を記述することができる。
【0039】
ワークフローマネージャ(103)は、NBMPソース(101)からWDDを受信し、そして、リクエストされたメディア処理のためのワークフローを構築することができる。ワークフロー・プロシージャにおいて、メディア処理機能は、例えば、機能リポジトリ(105)から、選択され、そして、次いで、対応するメディア処理タスクが設定され、かつ、一式の1つ以上のMPE(例えば、MPE(113)を含む)に対して配布され得る。
【0040】
機能リポジトリ(105)によって提供される一式の機能は、NBMPソース(101)およびワークフローマネージャ(103)によって読み出され得る。一つの実施形態において、NBMPソース(101)は、機能リポジトリ(105)内の一式の機能を使用して、ワークフローの作成をリクエストする。従って、NBMPソース(101)は、ワークフローのための機能を選択するように構成されている。NBMPソース(101)は、以下に説明されるように、ワークフローの作成をリクエストすることができる。NBMPソース(101)は、それによってワークフローが作成されるメディア処理タスクの記述を使用することができ、そして、メディア処理タスクの入力および出力の接続を定義するために接続マップを指定することができる。ワークフローマネージャ(103)がNBMPソース(101)から上記の情報を受信すると、ワークフローマネージャ(103)は、それぞれの機能名に基づいて、メディア処理タスクをインスタンス化し、そして、接続マップに従って、メディア処理タスクを接続することができる。
【0041】
代替的に、NBMPソース(101)は、それによってワークフローマネージャ(103)がワークフローを構築することができる一式のキーワードを使用して、ワークフローの作成をリクエストすることができる。従って、NBMPソース(101)は、ワークフローの中へ挿入される一式の機能を認識しなくてよい。NBMPソース(101)は、以下に説明されるように、ワークフローの作成をリクエストすることができる。NBMPソース(101)は、それによってワークフローマネージャ(103)が適切な機能を見つけることができる一式のキーワードを使用し、そして、適切なワークフロー記述を使用して、ワークフローの要件(requirements)を指定することができる。
【0042】
ワークフローマネージャ(103)が、NBMPソース(101)から上記の情報(例えば、一式のキーワード)を受信すると、ワークフローマネージャ(103)は、例えば、処理記述子において指定された、キーワードを使用して、適切な機能について検索することによって、ワークフローを作成することができる。ワークフローマネージャ(103)は、次いで、メディア処理タスクを提供するために、ワークフロー記述における他の記述子を使用し、そして、最終的なワークフローを作成するために、メディア処理タスクを接続することができる。
【0043】
ワークフローマネージャ(103)の処理モデルは、以下のように説明され得る。
【0044】
ワークフローマネージャ(103)は、以下のように、使用可能なメディア処理機能を検出することができる。NBMP機能リポジトリ(105)は、外部エンティティが、リクエストされた処理を満足できるメディア処理機能をクエリ(query)することができるように、機能検出インターフェイス(または、API)を提供することができる。ワークフローマネージャ(103)は、メディア処理機能の検索可能なリストを提供するディレクトリーサービスに対するアクセスを有し得る。ワークフローマネージャ(103)は、ワークフローについて適切な機能を見つけるために、ワークフロー記述におけるメディア処理タスクの記述を使用することができる。
【0045】
ワークフローのためのメディア処理タスクの選択が、以下に説明される。メディア処理に対するリクエストをNBMPソース(101)から受信したときに、ワークフローマネージャ(103)は、ワークフローを満足できる全ての利用可能な機能のリストを見つけるために、機能リポジトリ(105)を検索することができる。NBMPソース(101)からのワークフロー記述を使用して、ワークフローマネージャ(103)は、ワークフローを実装するために、機能リポジトリ(105)から機能を見つけることができ、それは、NBMPソース(101)からのメディア処理情報に依存し得る。メディア処理のための情報は、入力および出力の記述、リクエストされた処理の記述、および、機能ディレクトリ(105)内の機能に対する他の記述子における情報を含み得る。ワークフローに含まれるべき適切なメディア処理タスクに対するソースリクエストのマッピングは、ネットワークにおけるNBMPの実装の一部であり得る。タスク作成時に入力ソースを入力ポート名および出力ポート名で参照およびリンクするために、入力ポートおよび出力ポートが、入力ストリームを参照するように使用され得る。
【0046】
タスクとしてインスタンス化されるべき適切な機能の検索は、機能検出APIを使用して、ワークフローマネージャ(103)によって実行され得る。代替的に、ワークフローマネージャ(103)は、関数ディスカバリーAPIを使用して、機能リポジトリ(105)内のいくつか又は全ての適切な機能の詳細な情報を取り出すことができる。ワークフローマネージャ(103)は、次いで、NBMPソース(101)からのメディア処理の情報を、各機能の異なる記述子と比較することができる。
【0047】
選択されたメディア処理タスクは、ワークフローにおいて構成され得る。ワークフロー内に含まれるべき機能が特定されたときに、NBMPワークフローマネージャ(103)は、それぞれのタスクとして機能をインスタンス化し、そして、ワークフローにタスクが追加され得るように、タスクを構成することができる。NBMPワークフローマネージャ(103)は、NBMPソース(101)から受信したメディア処理情報から構成データを抽出し、そして、対応するタスクを構成することができる。タスクの構成は、タスクAPI(例えば、NBMPタスクAPI)を使用して実行され得る。
【0048】
タスクの割り当ておよび配分が、以下に説明される。ワークフローマネージャ(103)は、処理の展開を実行し、かつ、メディア処理エンティティを構成するために、ワークフローを使用することができる。一つの実施例においては、計算集約的メディア処理リクエストについて、ワークフローマネージャ(103)は、複数の計算インスタンスを設定(set up)し、そして、複数の計算インスタンス間でワークロードを分散することができる。従って、ワークフローマネージャ(103)は、必要に応じて、複数の計算インスタンスを接続し、かつ、構成することができる。一つの実施例において、ワークフローマネージャ(103)は、同じタスクを複数のインスタンスに割り当て、そして、選択されたスケジューリング・メカニズムを使用して、ワークロードを複数のインスタンス間で分散するために、ロード・バランサーを提供する。代替的な実施例において、ワークフローマネージャ(103)は、同じタスクの異なるオペレーションを異なるインスタンスに割り当てる(例えば、並列オペレーション)。上記の両方の実施例において、ワークフローマネージャ(103)は、インスタンス間のワークフローパスを設定することができ、そして、従って、適切なワークロードが成功裡に実現され得る。ワークフローマネージャ(103)は、処理されたメディアデータ/ストリームをワークフローグラフ内の次のタスクにプッシュするように(またはプル・メカニズムを通じてそれらを使用可能にする)タスクを構成することができる。
【0049】
ワークフローマネージャ(103)が、NBMPソース(101)からWDDを受信すると、ワークフローマネージャ(103)は、ワークフローの中へ挿入されるべきメディア処理機能の選択を実行することができる。ワークフロー内に含まれるべきタスクのリストがコンパイルされると、ワークフローマネージャ(103)は、次いで、ワークフローを準備するためにタスクを接続することができる。
【0050】
ワークフローマネージャ(103)は、例えば、WDDからのグラフ(例えば、DAG)によって表されるように、ワークフローを生成することができる。
図2は、本開示の一つの実施形態に従った、図表(例えば、DAG)(200)の一つの実施例を示している。DAG(200)は、複数のノード(T1)-(T6)、および、複数のリンク(または、接続)(202)-(208)を含み得る。一つの実施例において、DAG(200)は、ワークフロー(200)を表現している。
【0051】
DAG(200)の各ノードは、ワークフロー(200)におけるメディア処理タスクを表すことができる。DAG(200)内で第1ノード(例えば、ノード(T1))を第2ノード(例えば、ノード(T2))に接続しているリンク(例えば、リンク(202))は、第2ノード(例えば、ノード(T2))に対する入力としての第1ノード(例えば、ノード(T1))の出力の移転(transfer)を表すことができる。
【0052】
一般的に、ワークフローは、任意の適切な数の入力(または、ワークフロー入力)、および、任意の適切な数の出力(または、ワークフロー出力)を含み得る。ワークフロー入力は、メディアソース(111)、他のワークフロー、等に対して接続され、そして、ワークフロー出力は、メディアシンク(115)、他のワークフロー、等に対して接続され得る。ワークフロー(200)は、入力(201)、および、出力(209)と(210)を有している。ワークフロー(200)は、いくつかの実施形態において、中間ノードからの1つ以上の出力を有することができる。
【0053】
本開示のいくつかの態様に従って、ステータスレポートは、変数の情報、および、機能のためのイベントの情報を含み得る。例えば、NBMP機能は、処理オペレーションの実装である。いくつかの実施形態において、NBMP機能は、スタンドアロンで、かつ、自己完結したメディア処理オペレーションであり、かつ、処理オペレーションの対応する記述であり得る。いくつかの実施例においては、各NBMP機能について、2つの独立した記述子が記述において使用される。2つの独立した記述子のうち1つは、NBMP機能のイベントのためのものであり、かつ、イベント記述子として参照される。そして、2つの独立した記述子のうち他方の独立した記述子は、変数のためのものであり、かつ、変数記述子として参照される。変数記述子は、変数を理解するために使用される、数学的な定義、ユニット、フォーマット、ユニバーサル識別子、等といった、変数の特性を含んでいる。従って、いくつかの実施例において、変数記述子は、自明(self-explanatory)であり得る。そして、変数は、変数記述子に基づいて変数を理解することができ、かつ、変数記述子から他のテキストを参照する必要がない。同様に、イベント記述子は、イベントを理解するために使用されるイベントの特性を含んでいる。従って、いくつかの実施例において、イベント記述子は、自明であり得る。そして、イベントは、イベント記述子に基づいて理解することができ、かつ、イベント記述子から他のテキストを参照する必要がない。
【0054】
本開示の一つの態様に従って、サービスのワークフローは、異なるシステム(プラットフォーム、クラウドシステムとしても、また、参照される)において実行され得る。各システムは、システム変数およびシステムイベントを有し得る。システム変数およびシステムイベントは、ステータスレポートに含まれ得る。
【0055】
いくつかの実施形態において、ステータスレポートは、自己完結した(self-contained)記述子に基づいて定義される。一つの実施例においては、レポート記述子(reporting descriptor)として参照される、自己完結した記述子に基づいて、定期レポート(regular report)が定義される。例えば、定期レポートは、レポート記述子に基づいて定義されたオブジェクトを含み得る。そして、オブジェクトは、レポート記述子オブジェクトとして参照される。レポート記述子オブジェクトにより、定期レポートは、機能変数およびイベント、並びに、システム変数およびイベントのサブセットを含むことができる。変数(例えば、機能変数およびシステム変数)は、変数記述子に基づいて定義されたフォームに含まれ得る。そして、イベント(例えば、機能イベントおよびシステムイベント)は、イベント記述子に基づいて定義されたフォームに含まれ得る。従って、定期レポートは、自明であり得る。そして、変数およびイベントは、変数記述子およびイベント記述子に基づいて理解され得る。
【0056】
別の実施例において、通知レポートは、通知記述子として参照される自己完結した記述子に基づいて定義される。例えば、通知レポートは、通知記述子に基づいて定義されたオブジェクトを含み得る。そして、オブジェクトは、通知記述子オブジェクトとして参照される。通知記述子オブジェクトにより、通知レポートは、機能変数およびイベント、並びに、システム変数およびイベントのサブセットを含むことができる。変数(例えば、機能変数およびシステム変数)は、変数記述子に基づいて定義されたフォームに含まれ得る。そして、イベント(例えば、機能イベントおよびシステムイベント)は、イベント記述子に基づいて定義されたフォームに含まれ得る。従って、通知レポートは、自明であり得る。そして、変数およびイベントは、変数記述子およびイベント記述子に基づいて理解され得る。
【0057】
別の実施例において、モニタリングレポートは、モニタリング記述子として参照される自己完結した記述子に基づいて定義される。例えば、モニタリングレポートは、モニタリング記述子に基づいて定義されたオブジェクトを含み得る。そして、オブジェクトは、モニタリング記述子オブジェクトとして参照される。モニタリング記述子オブジェクトにより、モニタリングレポートは、機能変数およびイベント、並びに、システム変数およびイベントのサブセットを含むことができる。変数(例えば、機能変数およびシステム変数)は、変数記述子に基づいて定義されたフォームに含まれ得る。そして、イベント(例えば、機能イベントおよびシステムイベント)は、イベント記述子に基づいて定義されたフォームに含まれ得る。従って、モニタリングレポートは、自明であり得る。そして、変数およびイベントは、変数記述子およびイベント記述子に基づいて理解され得る。
【0058】
具体的に、いくつかの実施例において、各機能は、変数記述子に従って記述される変数のリストを含み得る。
【0059】
図3は、本開示のいくつかの実施形態に従った、機能における変数のリストを示している。
図3に示されるように、関数は、変数1、変数2、変数3、等といった、1つ以上の変数を含んでいる。変数または変数のサブセットは、レポート作成アクションに応じて、定期レポートに含まれ得る。変数または変数のサブセットは、モニタリングアクションに応じて、モニタリングレポートに含まれ得る。変数または変数のサブセットは、通知アクションに応じて、通知レポートに含まれ得る。
【0060】
いくつかの実施形態において、変数記述子に従って定義される、変数記述子オブジェクトは、ステータスレポートに含まれ得る。変数記述子オブジェクトは、変数に関連するオブジェクトのアレイ(array)を含み得る。変数に関連するオブジェクトは、変数の特性を含み得る。例えば、オブジェクト1は変数1の特性を含み、オブジェクト2は変数2の特性を含み、そして、オブジェクト3は変数3の特性を含んでいる。
【0061】
図4は、本開示のいくつかの実施形態に従った、変数について特性のテーブルを示している。このテーブルは、また、特性の説明も含んでいる。例えば、変数に関連するオブジェクトは、変数の名前、変数の定義、変数の値、変数の単位(unit)、変数のパラメータタイプ、および、可能であれば変数の範囲(変数について最小値および最大値を含む)、等を含んでいる。
【0062】
図5は、本開示のいくつかの実施形態に従った、一つの例示的な変数記述子を示している。示されるように、変数記述子は、変数に関連するオブジェクト(例えば、アイテム)のアレイである。
【0063】
さらに、いくつかの実施例において、各関数は、イベント記述子に従って記述される、イベントのリストを含んでいる。
【0064】
図6は、本開示のいくつかの実施形態に従った、機能におけるイベントのリストを示している。
図6に示されるように、本関数は、イベント1、イベント2、等といった、1つ以上のイベントを含んでいる。イベントまたはイベントのサブセットは、レポート作成アクションに応じて、定期レポートに含まれ得る。イベントまたはイベントのサブセットは、モニタリングアクションに応じて、モニタリングレポートに含まれ得る。イベントまたはイベントのサブセットは、通知アクションに応じて、通知レポートに含まれ得る。
【0065】
いくつかの実施形態において、イベント記述子に従って定義される、イベント記述子オブジェクトは、ステータスレポートに含まれ得る。イベント記述子オブジェクトは、イベントに関連するオブジェクトのアレイを含み得る。イベントに関連するオブジェクトは、イベントの特性を含み得る。例えば、オブジェクト1はイベント1の特性を含み、オブジェクト2はイベント2の特性を含んでいる。
【0066】
図7は、本開示のいくつかの実施形態に従った、イベントについて特性のテーブルを示している。本テーブルは、また、特性の説明も含んでいる。例えば、イベントに関連するオブジェクトは、イベントの名前、イベントの定義、等を含んでいる。
【0067】
図8は、本開示のいくつかの実施形態に従った、例示的なイベント記述子スキーマを示している。示されるように、イベント記述子は、イベントに関連するオブジェクト(アイテム)のアレイを含み得る。
【0068】
本開示の一つの態様に従って、レポート(reporting)は、宛先に対して情報を定期的にレポートする行為である(例えば、定期レポートの作成および送付)。いくつかの実施形態において、レポートは、リクエストに応じて設定され得る。いくつかの実施例において、要求エンティティ(requesting entity)は、レポートエンティティに対してリクエストを送信する。リクエストは、レポート記述子に従って定義された第1レポート記述子オブジェクトを含んでいる。第1レポート記述子オブジェクトは、レポートする所望の変数およびイベントのリスト、レポートを送信する宛先、等を含み得る。次いで、レポート作成エンティティ(reporting entity)は、第1レポート作成オブジェクトに定義された宛先に、第1レポート作成オブジェクトに記述されたイベントおよび変数値を送信する。例えば、定期レポートは、第1レポート記述子オブジェクトと類似した第2レポート記述子オブジェクトを含んでいる。第2レポート記述子オブジェクトは、変数について更新された値、および、イベントの発生情報を含み得る。一般的に、レポート記述子は、また、レポートの頻度、レポートの開始時刻、および、定期レポートの配信プロトコルも含んでいる。宛先は、要求エンティティであってよく、そして、要求エンティティとは異なるエンティティであってもよいことに留意する。
【0069】
メディア処理システム(100)において、要求エンティティは、NBMPソース(101)またはワークフローマネージャ(103)であり得る。レポート作成エンティティは、ワークフローマネージャ(103)またはメディア処理タスクであり得る。
【0070】
例えば、ワークフローマネージャ(103)は、定期レポートのために、タスクAPIを介して、メディア処理タスクに対して(例えば、MPE(113)によって実行されるタスク1)にリクエストを送信することができる。ワークフローマネージャ(103)は、リクエスト内の第1レポート記述子オブジェクトにおいて、所望の変数およびイベント、時間間隔、グループ化、宛先およびプロトコルを指定することができる。次いで、メディア処理タスクは、第1レポート記述子オブジェクトにおいて指定されたプロトコルを使用して、宛先に対して、時間間隔に基づいた定期レポートを送信することができる。定期レポートは、レポートする変数およびイベントの情報、および、時間間隔、グループ化、宛先、プロトコル、等といった、他の情報を搬送する、第2レポート記述子オブジェクトを含む。
【0071】
別の実施例において、NBMPソース(101)は、1つ以上のレポート作成スキームを設定し、そして、定期レポートのために、ワークフローAPIを介して、ワークフローマネージャ(103)に対してリクエストを送信することができる。次いで、ワークフローマネージャ(103)は、定期レポートを生成することができ、また、ワークフローマネージャ(103)は、定期レポートを生成するために、メディア処理タスクをリクエストすることができる。NBMPソース(101)は、リクエスト内の第1レポート記述子オブジェクトにおいて、所望の変数およびイベント、時間間隔、グループ化、宛先およびプロトコルを指定することができる。次いで、ワークフローマネージャ(103)またはメディア処理タスクは、第1レポート記述子オブジェクトで指定されたプロトコルを使用して、宛先に対して、時間間隔に基づいた定期レポートを送信することができる。定期レポートは、レポートする変数およびイベントの情報、および、時間間隔、グループ化、宛先、プロトコル、等といった、他の情報を搬送する、第2レポート記述子オブジェクトを含む。
【0072】
いくつかの実施形態においては、HTTP/1.1が、プロトコルとして使用され、そして、POSTメソッドが、POSTメッセージにおいて定期レポートを送信するために使用される。例えば、POSTメッセージの本体(body)は、レポート記述子オブジェクトを含んでいる。いくつかの実施例において、POSTメッセージの本体は、また、レポートを特定するために、リクエスト記述子オブジェクトも含んでいる。一つの実施例において、リクエスト記述子オブジェクトは、リクエストの識別子、優先度、および、メディア処理タスクのためのタスク識別子を含んでいる。
【0073】
図9は、レポート記述子におけるパラメータ及びパラメータについて対応するタイプに係るテーブルを示し、そして、
図10は、本開示のいくつかの実施形態に従った、一つの例示的なレポート記述子スキーマを示している。システム-イベント(system-events)は、メディア処理システムに属し、かつ、クラウドによって、機能のイベントと同じフォーマットで提供され得る、イベントを含むことに留意する。また、システム変数は、メディア処理システムに属し、かつ、クラウドによって、機能の変数と同じフォーマットで提供さ得る、変数を含むことにも留意する。いくつかの実施形態において、(機能)変数は、第1変数記述子オブジェクト内に含まれ得る。そして、システム変数は、第2変数記述子オブジェクト内に含まれ得る。(機能)イベントは、第1イベント記述子オブジェクト内に含まれ得る。そして、システムイベントは、第2イベント記述子オブジェクト内に含まれ得る。
【0074】
本開示の別の態様に従って、通知(notification)は、イベントが発生したときに、宛先に対して情報をレポートする行為である(例えば、通知レポートを生成および送信する)。いくつかの実施形態において、通知は、リクエストに応じて設定される。いくつかの実施例において、要求エンティティは、通知エンティティに対してリクエストを送信する。リクエストは、通知記述子に従って定義された第1通知記述子オブジェクトを含んでいる。第1通知記述子オブジェクトは、例えば、所望の変数およびイベントのリスト、レポートを送信する宛先、等を指定することができる。次いで、第1通知記述子オブジェクト内にリストされたイベントのうち1つ以上が発生したとき、通知エンティティは、第1通知記述子オブジェクトに定義された宛先に、第1通知記述子オブジェクトにおいて記述されたイベントおよび変数値を送信する。例えば、通知レポートは、第1通知記述子オブジェクトと類似した第2通知記述子オブジェクトを含んでいる。第2通知記述子オブジェクトは、変数について更新された値、および、イベントの発生情報を含み得る。一般的に、通知記述子は、また、開始時刻、通知間隔、配信プロトコル、等といった、通知のための他の適切な情報も含み得る。宛先は要求エンティティであってよく、そして、要求エンティティとは異なるエンティティであってもよいことに留意する。
【0075】
メディア処理システム(100)において、要求エンティティは、NBMPソース(101)またはワークフローマネージャ(103)であり得る。通知エンティティは、ワークフローマネージャ(103)またはメディア処理タスクであり得る。
【0076】
一つの実施例において、ワークフローマネージャ(103)は、通知のために、タスクAPIを介して、メディア処理タスクに対して(例えば、MPE(113)によって実行されるタスク1)にリクエストを送信することができる。ワークフローマネージャ(103)は、通知のためのサブスクライブ・イベント(subscribed event)のリスト、変数のリスト、リクエスト内の第1レポート記述子オブジェクトにおける宛先およびプロトコルを指定することができる。次いで、サブスクライブ・イベントのリストにおける1つ以上のイベントが発生したとき、メディア処理タスクは、通知記述子で指定したプロトコルを使用して、宛先に対して、通知レポートを送信することができる。通知レポートは、変数のリストにおける変数の情報、サブスクライブ・イベントのリストにおけるイベントの情報、および、他の情報を搬送する、第2通知記述子オブジェクトを含む。
【0077】
別の実施例において、NBMPソース(101)は、1つ以上の通知スキームを設定し、そして、通知のために、ワークフローAPIを介して、ワークフローマネージャ(103)に対してリクエストを送信することができる。次いで、ワークフローマネージャ(103)は、通知レポートを生成することができ、また、ワークフローマネージャ(103)は、通知レポートを生成するために、メディア処理タスクをリクエストすることができる。NBMPソース(101)は、リクエスト内の第1レポート記述子オブジェクトにおいて、サブスクライブ・イベントのリスト、変数のリスト、宛先、およびプロトコルを指定することができる。次いで、サブスクライブ・イベントのリスト内のいずれかのイベントが発生したとき、ワークフローマネージャ(103)またはメディア処理タスクは、通知記述子に指定されたプロトコルを使用して、宛先に対して通知レポートを送信することができる。通知レポートは、変数の情報およびイベントの情報、並びに、宛先、プロトコル、等といった定期レポートのその他の情報を搬送する、第2通知記述子オブジェクトを含んでいる。
【0078】
いくつかの実施形態において、HTTP/1.1は、プロトコルとして使用されており、そして、POST方法は、POSTメッセージにおける通知レポートの送信のために使用されている。例えば、POSTメッセージの本体は、通知記述子オブジェクトを含んでいる。いくつかの実施例において、POSTメッセージの本体は、また、通知を特定するために、リクエスト記述子オブジェクトも含んでいる。一つの実施例において、リクエスト記述子オブジェクトは、リクエストの識別子、優先度、および、メディア処理タスクのためのタスク識別子を含んでいる。
【0079】
図11は、通知記述子におけるパラメータ及びパラメータについて対応するタイプに係るテーブルを示している。そして、
図12A-12Bは、本開示のいくつかの実施形態に従った、一つの例示的な通知記述子スキーマを示している。システムイベント(system-events)は、メディア処理システムに属し、かつ、機能のイベントと同じフォーマットでクラウドによって提供され得る、イベントを含むことに留意する。また、システム変数は、メディア処理システムに属し、かつ、機能の変数と同じフォーマットでクラウドによって提供され得る、変数を含むことに留意する。いくつかの実施形態において、(機能)変数は、第1変数記述子オブジェクトに含まれ、かつ、システム変数は、第2変数記述子オブジェクトに含まれ得る。(機能)イベントは、第1イベント記述子オブジェクトに含まれ、かつ、システムイベントは、第2イベント記述子オブジェクトに含まれ得る。
【0080】
本開示の別の態様に従って、モニタリングは、情報をリクエストし、そして、リクエストした情報を受信するエンティティのアクト(act)である。いくつかの実施形態において、モニタリングは、リクエストに応答して実施され得る。いくつかの実施例において、モニタリングエンティティ(モニタリングするエンティティ)は、モニタリングされるエンティティ(モニタリングされているエンティティ)に対してモニタリング更新リクエストを送信する。モニタリング更新リクエストは、モニタリング記述子に従って定義された第1モニタリング記述子オブジェクトを含む。第1モニタリング記述子オブジェクトは、例えば、所望の変数およびイベントのリストを指定することができる。モニタリング更新リクエストに応答して、モニタリングされるエンティティは、リクエストされた変数の値および発生した所望のイベントからのイベントのサブセットを搬送する第2モニタリング記述子オブジェクトを用いてレポートするモニタリングをモニタリングエンティティに対して送信する。
【0081】
メディア処理システム(100)において、モニタリングエンティティは、NBMPソース(101)またはワークフローマネージャ(103)であり得る。モニタリングされるエンティティは、ワークフローマネージャ(103)またはメディア処理タスクであり得る。
【0082】
一つの実施例において、ワークフローマネージャ(103)は、タスクAPIを介して、メディア処理タスク(例えば、MPE(113)によって実行されるTASK1)に対してモニタリング更新リクエストを送信することができる。ワークフローマネージャ(103)は、モニタリング更新リクエスト内の第1モニタリング記述子オブジェクトにおいて所望の変数およびイベントを指定することができる。モニタリング更新リクエストに応答して、メディア処理タスクは、ワークフローマネージャ(103)に対してモニタリングレポートを送信することができる。モニタリングレポートは、レポートする変数およびイベントの情報を搬送する、第2モニタリング記述子オブジェクトを含んでいる。
【0083】
別の実施例において、NBMPソース(101)は、ワークフローAPIを介して、ワークフローマネージャ(103)に対してモニタリング更新リクエストを送信することができる。NBMPソース(101)は、モニタリング更新リクエスト内の第1モニタリング記述子オブジェクトにおいて所望の変数およびイベントを指定することができる。モニタリング更新リクエストに応答して、ワークフローマネージャ(103)はモニタリングレポートを生成し、そして、NBMPソース(101)に対して送信することができる。モニタリングレポートは、レポートする変数およびイベントの情報を搬送する、第2モニタリング記述子オブジェクトを含んでいる。
【0084】
図13は、モニタリング記述子におけるパラメータ及びパラメータについて対応するタイプに係るテーブルを示している。そして、
図14は、本開示のいくつかの実施形態に従った、一つの例示的なモニタリング記述子スキーマを示している。システムイベントは、メディア処理システムに属し、かつ、機能のイベントと同じフォーマットでクラウドによって提供され得る、イベントを含むことに留意する。また、システム変数は、メディア処理システムに属し、かつ、機能の変数と同じフォーマットでクラウドによって提供され得る、変数を含むことに留意する。いくつかの実施形態において、(機能)変数は、第1変数記述子オブジェクトに含まれ、かつ、システム変数は、第2変数記述子オブジェクトに含まれ得る。(機能)イベントは、第1イベント記述子オブジェクトに含まれ、かつ、システムイベントは、第2イベント記述子オブジェクトに含まれ得る。
【0085】
いくつかの実施形態においては、HTTP/1.1が、プロトコルとして使用され、そして、POSTメソッドが、POSTメッセージ内のモニタリングレポートを送信するために使用される。例えば、POSTメッセージの本体は、モニタリング記述子オブジェクトを含んでいる。いくつかの実施例において、POSTメッセージの本体は、また、モニタリングレポートを識別するために、リクエスト記述子オブジェクトも含んでいる。
【0086】
図15は、本開示の一つの実施形態に従った、プロセス(1500)を概説するフローチャートを示している。一つの実施例において、プロセス(1500)は、メディア処理システム(100)、等といった、クラウドにおいて実行される。いくつかの実施形態において、プロセス(1500)は、ソフトウェア命令において実装されており、従って、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(1500)を実行する。プロセスは、(S1501)で開始し、そして、(S1510)へ進む。
【0087】
(S1510)では、変数に関連する第1特性を含むリクエストが受信される。変数に関連する第1特性は、変数を完全に記述することができる。例えば、第1特性は、変数の定義、変数の単位、変数のフォーマット、変数のユニバーサル識別子、等を含んでいる。変数は、第1特性から他のテキストを相互参照することなく、第1特性に基づいて理解され得る。いくつかの実施形態において、第1特性は、第1変数記述子オブジェクトの一部である。第1変数記述子オブジェクトは、変数にそれぞれに関連するオブジェクトのアレイを含んでいる。変数は、機能変数またはシステム変数であり得る。リクエストは、また、イベントにそれぞれに関連するオブジェクトのアレイを含む、第1イベント記述子オブジェクトも含み得る。イベントは、機能イベントまたはシステムイベントであり得る。
【0088】
一つの実施例において、リクエストは、NBMPソース(101)からワークフローマネージャ(103)に対して送信される。別の実施例において、リクエストは、ワークフローマネージャ(103)からメディア処理タスクに対して送信される。
【0089】
(S1520)では、メッセージが生成される。メッセージは、変数の第1特性および変数の更新された値を含んでいる。
【0090】
一つの実施形態において、リクエストは、定期レポートをリクエストする第1レポート記述子オブジェクトを含んでいる。第1レポート記述子オブジェクトは、変数に関連する第1変数記述子オブジェクト、イベントに関連する第1イベント記述子オブジェクト、および、レポート間隔を含み得る。第1レポート記述子オブジェクトに基づいて、メッセージが、レポート間隔に基づいて定期的に生成される。メッセージは、第2レポート記述子オブジェクトを含み得る。例えば、第2レポート記述子オブジェクトは、変数について更新された値を伴う第1変数記述子オブジェクトと同様の第2変数記述子オブジェクトを含んでいる。メッセージ内の第2レポート記述子オブジェクトは、また、イベントの発生に基づくイベントのサブセットを有する第2イベント記述子オブジェクトも含み得る。
【0091】
別の実施形態において、リクエストは、イベントの発生によってトリガされる通知レポートをリクエストする第1通知記述子オブジェクトを含んでいる。第1通知記述子オブジェクトは、変数に関連する第1変数記述子オブジェクト、および、イベントに関連する第1イベント記述子オブジェクトを含み得る。次に、サブスクライブ・イベントの少なくとも1つの発生に応答して、メッセージが生成される。メッセージは、第1通知記述子オブジェクトに類似した第2通知記述子オブジェクトを含んでいる。例えば、第2通知記述子オブジェクトは、第1変数記述子オブジェクトに類似しているが、変数について更新された値を伴う第2変数記述子オブジェクトを含んでいる。第2通知記述子オブジェクトは、また、サブスクライブ・イベントのサブセットを有する第2イベント記述子オブジェクトも含む。
【0092】
別の実施形態において、リクエストは、モニタリングレポートをリクエストする第1モニタリング記述子オブジェクトを含んでいる。第1モニタリング記述子オブジェクトは、変数に関連する第1変数記述子オブジェクト、および、イベントに関連する第1イベント記述子オブジェクトを含み得る。次いで、リクエストに応答して、メッセージが生成される。メッセージは、第1モニタリング記述子オブジェクトに類似した第2モニタリング記述子オブジェクトを含んでいる。例えば、第2モニタリング記述子オブジェクトは、第1変数記述子オブジェクトに類似してが、変数について更新された値を伴う第2変数記述子オブジェクトを含んでいる。第2モニタリング記述子オブジェクトは、また、イベントのサブセットを有する第2イベント記述子オブジェクトを含む。
【0093】
(S1530)では、メッセージが受信者に対して送信される。そして、処理はS1599に進み、かつ、終了する。
【0094】
定期レポートの実施例において、第1および第2レポート記述子オブジェクトは、宛先(例えば、url)を含み、そして、メッセージは、宛先に対して送信される。
【0095】
通知レポートの実施例において、第1および第2通知記述子オブジェクトは、宛先(例えば、url)を含み、そして、メッセージは、宛先に対して送信される。
【0096】
モニタリングレポートの実施例において、メッセージは、そこからリクエストが来たエンティティに対して送信される。
【0097】
プロセス(1500)は、適切に適合され得る。プロセス(1500)におけるステップは、修正、かつ/あるいは、省略され得る。追加的なステップが追加されてよい。任意の適切な実施順序が使用されてよい。
【0098】
上述の技術は、コンピュータで読取可能な命令を使用するコンピュータソフトウェアとして実装され、そして、1つ以上のコンピュータで読取可能な媒体に物理的に保管され得る。
【0099】
本開示における方法および実施形態は、別々に使用され、または、任意の順序で組み合わされ得る。さらに、方法(または実施形態)、機能、またはタスクのそれぞれは、処理回路(例えば、1つ以上のプロセッサ、または、1つ以上の集積回路)によって実施され得る。一つの実施例において、1つ以上のプロセッサは、非一時的なコンピュータで読取り可能な媒体に保管されたプログラムを実行する。
【0100】
上述の技術は、コンピュータで読取可能な命令を使用するコンピュータソフトウェアとして実装され、そして、1つ以上のコンピュータで読取可能な媒体に物理的に保管され得る。例えば、
図16は、開示された技術的事項の所定の実施形態を実施するのに適したコンピュータシステム(1600)を示している。
【0101】
コンピュータソフトウェアは、命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、または同様のメカニズムの対象となり得る、任意の適切な機械コードまたはコンピュータ言語を使用して符号化され得る。命令は、コンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)、等によって、直接的に、または、解釈(interpretation)、マイクロコード実行、等を通して実行され得る。
【0102】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット、等を含む、種々のタイプのコンピュータ又はそのコンポーネント上で実行され得る。
【0103】
コンピュータシステム(1600)について
図16において示されるコンポーネントは、本質的に例示的なものであり、そして、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能性の範囲に関していなかる制限も示唆するようには意図されていない。また、コンポーネントの構成は、コンピュータシステム(1600)の例示的な実施形態において示されるコンポーネントのうち任意の1つ又は組み合わせに関するいかなる従属性または要件も有するものとして解釈されるべきではない。
【0104】
コンピュータシステム(1600)は、所定のヒューマンインターフェイス入力装置を含み得る。そうしたヒューマンインターフェイス入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示なし)を通じて、一人以上の人間ユーザによる入力に対して応答し得る。ヒューマンインターフェイス装置は、また、オーディオ(例えば、音声、音楽、雰囲気の音)、画像(例えば、スキャン画像、静止画像カメラから獲得する写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)といった、人間による意識的な入力に必ずしも直接的に関係しない所定の媒体をキャプチャするためにも使用され得る。
【0105】
入力ヒューマンインターフェイス装置は、キーボード(1601)、マウス(1602)、トラックパッド(1603)、タッチスクリーン(1610)、データグローブ(図示なし)、ジョイスティック(1605)、マイクロホン(1606)、スキャナ(1607)、カメラ(1608)のうちの1つ以上(それぞれ1つだけが描かれている)を含み得る。
【0106】
コンピュータシステム(1600)は、また、所定のヒューマンインターフェイス出力装置を含み得る。そうしたヒューマンインターフェイス出力装置は、例えば、触覚出力、音、光、および、嗅覚/味覚を通して、一人以上の人間ユーザの感覚を刺激することができる。そうしたヒューマンインターフェイス出力装置は、触覚出力装置(例えば、タッチスクリーン(1610)、データグローブ(図示なし)、または、ジョイスティック(1605)による触覚フィードバック、しかし、入力装置として機能しない触覚フィードバック装置も、また、存在し得る)、オーディオ出力装置(例えば、スピーカー(1609)、ヘッドフォン(図示なし))、視覚出力装置(ブラウン管(CRT)スクリーン、液晶ディスプレイ(LCD)スクリーン、プラズマスクリーン、有機発光ダイオード(OLED)スクリーンを含むスクリーン(1610)であり、各々がタッチスクリーン入力機能を有するか又は有さない、各々が触覚フィードバック機能を有するか又は有さず、-これらのいくつかは、立体画像出力といった手段を介して、2次元の視覚出力または3次元以上の出力をアウトプットすることができ、仮想現実メガネ(図示なし)、ホログラフィックディスプレイおよびスモークタンク(図示なし)、といったもの)、および、プリンタ(図示なし)を含み得る。
【0107】
コンピュータシステム(1600)は、また、人間がアクセス可能なストレージ装置、および、それらの関連媒体を含み得る。CD/DVD等の媒体(1621)を用いるCD/DVD ROM/RW (1620)を含む光媒体、サムドライブ(thumb drive)(1622)、リムーバブルハードドライブまたはソリッドステートドライブ(1623)、テープおよびフロッピー(登録商標)ディスクといったレガシー磁気媒体、セキュリティドングル(図示なし)といった特殊化されたROM/ASIC/PLDベースの装置、等といったものである。
【0108】
当業者であれば、また、ここで開示されている技術的事項に関連して使用される用語「コンピュータで読取り可能な媒体(“computer readable media”)」は、伝送媒体、搬送波、または、他の一時的な信号を包含しないことも理解すべきである。
【0109】
コンピュータシステム(1600)は、また、1つ以上の通信ネットワークに対するインターフェイスを含み得る。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは、さらに、ローカル、ワイドエリア、メトロポリタン、車両および工業、リアルタイム、遅延耐性(delay-tolerant)、等であり得る。ネットワークの例は、イーサネット、無線LAN、移動通信のためのグローバルシステム(GSM)、第3世代(3G)、第4世代(4G)、第5世代(5G)、ロングターム・エボリューション(LTE)、等を含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、および、地上波放送テレビを含む、有線または無線のワイドエリアデジタルネットワーク、CANBusを含む車両および工業、等を含み得る。所定のネットワークは、一般的に、所定の汎用データポートまたはペリフェラルバス(1649)に取り付けられる外部ネットワーク・インターフェイスアダプタを必要とする。例えば、コンピュータシステム(1600)のUSBポート、といったものであり、他のものは、一般的に、以下に説明されるシステムバスに取り付けることによって、コンピュータシステム(1600)のコアに組み込まれる(例えば、PCコンピュータシステムへのイーサネット・インターフェイス、または、スマートフォン・コンピュータシステムへのセルラーネットワーク・インターフェイス)。これらのネットワークのいずれかを使用して、コンピュータシステム(1600)は、他のエンティティと通信することができる。そうした通信は、一方向性(uni-directional)、受信専用(例えば、放送テレビ)、一方向性送信専用(例えば、所定のCANバス装置へのCANバス)、もしくは、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの、双方向性(bi-directional)であり得る。所定のプロトコルおよびプロトコルスタックは、上述のように、それらのネットワークおよびネットワークインターフェイスの各々で使用され得る。
【0110】
上述のヒューマンインターフェイス装置、人間がアクセス可能なストレージ装置、および、ネットワークインターフェイスは、コンピュータシステム(1600)のコア(1640)に取り付けられ得る。
【0111】
コア(1640)は、1つ以上の中央処理装置(CPU)(1641)、グラフィックス処理装置(GPU)(1642)、フィールドプログラマブルゲートアレイ(FPGA)(1643)の形態で特殊化されたプログラマブル処理装置、所定のタスクのためのハードウェアアクセラレータ(1644)、等を含み得る。これらの装置は、リードオンリーメモリ(ROM)(1645)、ランダムアクセスメモリ(RAM)(1646)、内部非ユーザアクセス可能ハードドライブ、SSD、等といった内部大容量ストレージ装置(1647)と共に、システムバス(1648)を通じて接続され得る。いくつかのコンピュータシステムにおいて、システムバス(1648)は、追加のCPU、GPU、等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能であり得る。ペリフェラル装置は、コアのシステムバス(1648)に直接的に取り付けられても、または、ペリフェラルバス(1649)を通じて取り付けられてもよい。ペリフェラルバスのアーキテクチャは、ペリフェラルコンポーネントインターコネクト(PCI)、USB、等を含む。
【0112】
CPU(1641)、GPU(1642)、FPGA(1643)、およびアクセラレータ(1644)は、組み合わせて、上述のコンピュータコードを構成することができる所定の命令を実行することができる。そのコンピュータコードは、ROM(1645)またはRAM(1646)に保管することができる。過渡的データは、また、RAM(1646)に保管することができ、一方で、永久的データは、例えば、内部大容量ストレージ装置(1647)に保管することができる。メモリデバイスのいずれかへの高速保管および検索が、1つ以上のCPU(1641)、GPU(1642)、大容量ストレージ装置(1647)、ROM(1645)、RAM(1646)、等と密接に関連付けされ得る、キャッシュメモリの使用を通じて、可能にされ得る。
【0113】
コンピュータで読取り可能な媒体は、種々のコンピュータ実装オペレーションを実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築され得るか、または、それらは、コンピュータソフトウェア技術の当業者にとって周知かつ入手可能な種類のものであり得る。
【0114】
一つの例として、そして、限定するものではなく、アーキテクチャ(1600)を有するコンピュータシステム、および、具体的にはコア(1640)は、1つ以上の有形なコンピュータで読取り可能な媒体において具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、等を含む)の結果として機能性を提供することができる。そうしたコンピュータで読取り可能な媒体は、上述のようにユーザがアクセス可能な大容量ストレージ装置、並びに、コア内部大容量ストレージ装置(1647)またはROM(1645)といった、非一時的な性質のコア(1640)に係る所定のストレージ装置であり得る。本開示の様々な実施形態を実装するソフトウェアは、そうした装置において保管され、そして、コア(1640)によって実行され得る。コンピュータで読取り可能な媒体は、特定的なニーズに応じて、1つ以上のメモリデバイスまたはチップを含み得る。ソフトウェアは、コア(1640)、および、具体的には、その中のプロセッサ(CPU、GPU、FPG、等を含む)に、ここにおいて説明された特定のプロセスまたは特定のプロセスに係る特定の部分を実行させ得る。RAM(1646)に保管されたデータ構造を定義すること、および、ソフトウェアによって定義されたプロセスに従ってそうしたデータ構造を修正することを含むものである。追加して、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ(1644)において配線された、または、他の方法で具現化されたロジックの結果として機能性を提供することができる。回路は、ここにおいて説明される特定のプロセスまたは特定のプロセスの特定的な部分を実行するために、ソフトウェアの代わりに、または、一緒に動作することができる。ソフトウェアへの参照は、ロジックを含み、そして、適切な場合には、その逆もまた同様である。コンピュータで読取り可能な媒体への参照は、実行のためのソフトウェアを保管する回路(集積回路(IC)といったもの)、実行のためのロジックを具体化する回路、または、適切な場合には、その両方を含むことができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含するものである。
【0115】
本開示は、いくつかの例示的な実施形態を説明してきたが、変更、置換、および様々な代替等価物が存在し、それらは本開示の範囲内にある。このように、当業者であれば、ここにおいて明示的に示され、または、説明されていなくても、本開示の原理を具体化し、かつ、従って、本開示の精神および範囲内にある多のシステムおよび方法を考案することができることが、正しく理解されるだろう。