(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-24
(54)【発明の名称】ネットワークベースのメディア処理(NBMP)文書及びエンティティの適合性のためのツール
(51)【国際特許分類】
H04L 67/133 20220101AFI20241217BHJP
G06F 11/36 20060101ALI20241217BHJP
【FI】
H04L67/133
G06F11/36 168
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024532930
(86)(22)【出願日】2023-04-19
(85)【翻訳文提出日】2024-05-31
(86)【国際出願番号】 US2023065935
(87)【国際公開番号】W WO2023205678
(87)【国際公開日】2023-10-26
(32)【優先日】2022-04-19
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2023-04-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イーラジ・ソダガー
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA12
5B042GA22
5B042HH11
(57)【要約】
NBMP文書及びエンティティを検証するための方法、装置、及びコンピュータ可読記憶媒体。1つの方法は、NBMPエンティティによってサポートされるAPI動作に対応するアプリケーション・プログラミング・インターフェース(API)を呼び出すステップであって、API動作が、作成動作、更新動作、検索動作、又は削除動作のうちの少なくとも1つに関連するステップと、NBMPエンティティから応答を受信するステップと、応答に基づいて、NBMPエンティティがAPI動作に対応するAPIテストに合格するたかどうかを決定するステップとを含んでもよい。
【特許請求の範囲】
【請求項1】
ネットワークベースのメディア処理(NBMP)エンティティをNBMPシステムにおいて検証するための方法であって、前記方法は、少なくとも1つのプロセッサ上で動作するNBMPエンティティ検証器によって実行され、前記方法は、
前記NBMPエンティティによってサポートされるアプリケーション・プログラミング・インターフェース(API)動作に対応するAPIを呼び出すステップであって、前記API動作が、
作成動作、
更新動作、
検索動作、又は
削除動作
のうちの少なくとも1つに関連する、ステップと、
前記NBMPエンティティから応答を受信するステップと、
前記応答に基づいて、前記NBMPエンティティが前記API動作に対応するAPIテストに合格するかどうかを決定するステップと、
を含む、方法。
【請求項2】
前記NBMPエンティティは、
機能リポジトリエンティティ、
タスクエンティティ、
ワークフローマネージャエンティティ、又は
メディア処理エンティティ(MPE)
のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出すステップの前に、前記方法は、
前記NBMPエンティティと関連付けられるリソースを示す記述文書を検索するステップであって、前記リソースが、
ワークフローリソース、
タスクリソース、又は
MPE機能リソース
のうちの1つを含む、ステップと、
前記リソースに基づいてAPIパラメータを定式化するステップと、
を更に含み、
前記APIを呼び出すステップは、
前記APIパラメータを前記APIの入力パラメータとして使用して、前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出すステップ
を含む、請求項1又は2に記載の方法。
【請求項4】
前記応答は、ハイパーテキスト転送プロトコル(HTTP)ステータスコード、又は応答本体のうちの少なくとも一方を含み、
NBMPエンティティが前記APIテストに対応する前記テストに合格するかどうかを決定するステップは、
前記HTTPステータスコードに基づいて前記NBMPエンティティが前記APIテストに合格するかどうかを決定するステップ
を含む、請求項1又は2に記載の方法。
【請求項5】
前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出すステップの前に、前記方法は、
前記NBMPエンティティと関連付けられるリソースを示す記述文書を検索するステップであって、前記記述文書が、監視記述子、報告記述子、又は通知記述子のうちの少なくとも1つを含む記述子を示す、ステップと、
前記記述子に基づいてAPIパラメータを定式化するステップと、
を更に含み、
前記APIを呼び出すステップは、
前記APIパラメータをAPIの入力パラメータとして使用して、前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出すステップ
を含む、請求項1又は2に記載の方法。
【請求項6】
前記報告記述子を含む前記記述子に応答して、前記NBMPエンティティから報告を受信するステップであって、前記報告が、前記報告記述子に基づいて前記NBMPエンティティによって送信される、ステップ、又は
前記通知記述子を含む前記記述子に応答して、前記NBMPエンティティから通知を受信するステップであって、前記通知が、前記通知記述子に基づいて前記NBMPエンティティによって送信される、ステップ
を更に含む、請求項5に記載の方法。
【請求項7】
前記NBMPエンティティがワークフローマネージャエンティティであり、
前記APIを呼び出すステップは、前記ワークフローマネージャエンティティによって構成されて前記NBMPエンティティ検証器によってトリガされるワークフローの状態移行をトリガし、
前記方法は、
ワークフローライフサイクルルールに従って前記ワークフローの前記状態移行を検証するステップ
を更に含む、請求項1又は2に記載の方法。
【請求項8】
前記NBMPエンティティがタスクエンティティであり、
前記APIを呼び出すステップは、前記タスクエンティティによって構成されて前記NBMPエンティティ検証器によってトリガされるタスクの状態移行をトリガし、
前記方法は、
タスクライフサイクルルールに従って前記タスクの前記状態移行を検証するステップ
を更に含む、請求項1又は2に記載の方法。
【請求項9】
前記NBMPエンティティ検証器はNBMPソースをシミュレートすることができ、前記方法は、
前記ワークフローマネージャエンティティによって実行されるべき一連のアクションをトリガするステップであって、前記一連のアクションが、ワークフローの作成、前記ワークフローの検索、前記ワークフローの更新、及び前記ワークフローの削除を含む、ステップと、
前記NBMPシステム内で必要とされるように、以下のAPI、すなわち、ワークフローAPI、タスクAPI、機能リポジトリAPI、又はMPE APIのうちの少なくとも1つを使用して、前記NBMPエンティティ検証器と相互作用する前記ワークフローマネージャエンティティを検証するステップと、を更に含む、請求項2に記載の方法。
【請求項10】
ネットワークベースのメディア処理(NBMP)システム内のNBMPエンティティを検証するためのNBMPエンティティ検証器をホストするデバイスであって、前記デバイスは、コンピュータ命令を記憶するためのメモリと、前記メモリと通信するプロセッサとを備え、前記プロセッサが前記コンピュータ命令を実行すると、前記プロセッサは、前記デバイスに、
前記NBMPエンティティによってサポートされるアプリケーション・プログラミング・インターフェース(API)動作に対応するAPIを呼び出させ、前記API動作が、
作成動作、
更新動作、
検索動作、又は
削除動作、
のうちの少なくとも1つに関連し、
前記NBMPエンティティから応答を受信させ、
前記応答に基づいて、前記NBMPエンティティが前記API動作に対応するAPIテストに合格するかどうかを決定させる
ように構成される、デバイス。
【請求項11】
前記NBMPエンティティは、
機能リポジトリエンティティ、
タスクエンティティ、
ワークフローマネージャエンティティ、又は
メディア処理エンティティ(MPE)、
のうちの少なくとも1つを含む、請求項10に記載のデバイス。
【請求項12】
前記プロセッサが、前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを前記デバイスに呼び出させるように構成される前に、前記プロセッサは、前記デバイスに、更に、
前記NBMPエンティティと関連付けられるリソースを示す記述文書を検索させ、前記リソースが、
ワークフローリソース、
タスクリソース、又は
MPE機能リソース、
のうちの1つを含み、
前記リソースに基づいてAPIパラメータを定式化させる、
ように構成され、
前記プロセッサが前記デバイスに前記APIを呼び出させるように構成される場合に、前記プロセッサは、前記デバイスに、
前記APIパラメータをAPIの入力パラメータとして使用して、前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出させる
ように構成される、請求項10又は11に記載のデバイス。
【請求項13】
前記応答は、ハイパーテキスト転送プロトコル(HTTP)ステータスコード、又は応答本体のうちの少なくとも1つを含み、
前記プロセッサが、前記NBMPエンティティが前記API動作に対応する前記APIテストに合格するかどうかを前記デバイスに決定させるように構成される場合、前記プロセッサは、前記デバイスに、
前記HTTPステータスコードに基づいて前記NBMPエンティティが前記APIテストに合格するかどうかを決定させる
ように構成される、請求項10又は11に記載のデバイス。
【請求項14】
前記プロセッサが、前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを前記デバイスに呼び出させるように構成される前に、前記プロセッサは、前記デバイスに、更に、
前記NBMPエンティティと関連付けられるリソースを示す記述文書を検索させ、前記記述文書が、監視記述子、報告記述子、又は通知記述子のうちの少なくとも1つを含む記述子を示し、
前記記述子に基づいてAPIパラメータを定式化させる、
ように構成され、
前記プロセッサが前記デバイスに前記APIを呼び出させるように構成される場合に、前記プロセッサは、前記デバイスに、
前記APIパラメータをAPIの入力パラメータとして使用して、前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出させる
ように構成される、請求項10又は11に記載のデバイス。
【請求項15】
前記プロセッサが前記コンピュータ命令を実行すると、前記プロセッサは、前記デバイスに、更に、
前記報告記述子を含む前記記述子に応答して、前記NBMPエンティティから報告を受信させ、前記報告が、前記報告記述子に基づいて前記NBMPエンティティによって送信され、
前記通知記述子を含む前記記述子に応答して、前記NBMPエンティティから通知を受信させ、前記通知が、前記通知記述子に基づいて前記NBMPエンティティによって送信される、
ように構成される、請求項14に記載のデバイス。
【請求項16】
前記NBMPエンティティがワークフローマネージャエンティティであり、
前記APIを呼び出すことは、前記ワークフローマネージャエンティティによって構成されて前記NBMPエンティティ検証器によってトリガされるワークフローの状態移行をトリガし、
前記プロセッサが前記コンピュータ命令を実行すると、前記プロセッサは、前記デバイスに、更に、
ワークフローライフサイクルルールに従って前記ワークフローの前記状態移行を検証させる
ように構成される、請求項10又は11に記載のデバイス。
【請求項17】
前記NBMPエンティティがタスクエンティティであり、
前記APIを呼び出すことは、前記タスクエンティティによって構成されて前記NBMPエンティティ検証器によってトリガされるタスクの状態移行をトリガし、
前記プロセッサが前記コンピュータ命令を実行すると、前記プロセッサは、前記デバイスに、更に、
タスクライフサイクルルールに従って前記タスクの前記状態移行を検証させる
ように構成される、請求項10又は11に記載のデバイス。
【請求項18】
前記NBMPエンティティ検証器はNBMPソースをシミュレートすることができ、前記プロセッサが前記コンピュータ命令を実行すると、前記プロセッサは、前記デバイスに、更に、
前記ワークフローマネージャエンティティによって実行されるべき一連のアクションをトリガさせ、前記一連のアクションが、ワークフローの作成、前記ワークフローの検索、前記ワークフローの更新、及び前記ワークフローの削除を含み、
前記NBMPシステムで必要とされるように、以下のAPI、すなわち、ワークフローAPI、タスクAPI、機能リポジトリAPI、又はMPE APIのうちの少なくとも1つを使用して、前記NBMPエンティティ検証器と相互作用する前記ワークフローマネージャエンティティを検証させる、
ように構成される、請求項11に記載のデバイス。
【請求項19】
コンピュータ可読命令を記憶するための非一時的記憶媒体であって、前記コンピュータ可読命令は、ネットワークベースのメディア処理(NBMP)エンティティ検証器であってNBMPシステム内のNBMPエンティティを検証するためのNBMPエンティティ検証器をホストするデバイスのプロセッサによって実行されると、前記プロセッサに、
前記NBMPエンティティによってサポートされるアプリケーション・プログラミング・インターフェース(API)動作に対応するAPIを呼び出させ、前記API動作が、
作成動作、
更新動作、
検索動作、又は
削除動作、
のうちの少なくとも1つに関連し、
前記NBMPエンティティから応答を受信させ、
前記応答に基づいて、前記NBMPエンティティが前記API動作に対応するAPIテストに合格するかどうかを決定させる、
非一時的記憶媒体。
【請求項20】
前記NBMPエンティティは、
機能リポジトリエンティティ、
タスクエンティティ、
ワークフローマネージャエンティティ、又は
メディア処理エンティティ(MPE)
のうちの少なくとも1つを含む、請求項19に記載の非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、2022年4月19日に出願された米国仮出願第63/332,613号に基づくとともにその優先権の利益を主張する、2023年4月17日に出願された米国非仮出願第18/301,657号に基づくとともにその優先権の利益を主張し、これらの仮出願及び非仮出願のそれぞれ、参照によりその全体が本明細書に組み込まれる。
【0002】
この開示は、一般に、ネットワークベースのメディア処理(NBMP)を含むメディアストリーミング技術に関する。より具体的には、開示された技術は、NBMP文書及びエンティティの適合性を検証及び保証するためのツールのための方法及び装置を含む。
【背景技術】
【0003】
本明細書に記載されている本背景技術の説明は開示の背景を概略的に示すためのものである。本背景技術の記載箇所で説明されている範囲において、現時点で氏名が掲載されている発明者の成果と、その他、本出願の出願時の先行技術としての地位を獲得し得ない説明の態様とは、本開示に対する先行技術として明示的にも黙示的にも自認されるものではない。
【0004】
ネットワーク及びクラウドプラットフォームは、様々なアプリケーションを実行するために使用されてもよい。ネットワークベースのメディア処理(NBMP)規格は、クラウドプラットフォーム上でワークフローを定義、インスタンス化、及び実行するための仕様を提供する。ワークフローは、各時点で部分的に、タスクごとに、又はタスクのグループごとに実行することができる。NBMPは、メディア処理効率、メディアサービスのより迅速かつ低コストの配備、及びパブリック、プライベート、又はハイブリッドクラウドサービスを活用することによる大規模な配備を提供する能力を向上させる大きな可能性を示す。NBMPでは、様々なマルチメディアサービスプロバイダ及びネットワーク/クラウドサービスプロバイダが、カスタマイズされた没入メディアサービスを顧客に提供するために協働する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示の1つ以上の例示的な実施形態は、NBMPを含むメディアストリーミング技術のための方法及び装置を提供する。
【課題を解決するための手段】
【0006】
本開示の態様は、NBMPシステムにおいてNBMP文書を検証するための方法を提供する。方法は、少なくとも1つのプロセッサ上で動作するNBMP文書検証器によって実行されてもよく、NBMP文書を取得するステップであって、NBMP文書が、記述文書、又は記述子文書のうちの少なくとも一方を含む、ステップと、NBMP文書に基づいてベースラインスキーマ及びベースラインルールを選択するステップと、ベースラインスキーマに基づいてNBMP文書のスキーマを検証するステップと、ベースラインルールに基づいてNBMP文書の意味を検証するステップと、NBMP文書のスキーマ及び意味を検証した結果に基づいて、NBMP文書がNBMP規格に準拠しているかどうかを決定するステップとを含んでもよい。
【0007】
また、本開示の態様は、ネットワークベースのメディア処理(NBMP)システムにおいてNBMPエンティティを検証するための方法も提供する。方法は、少なくとも1つのプロセッサ上で動作するNBMPエンティティ検証器によって実行されてもよく、NBMPエンティティによってサポートされるアプリケーション・プログラミング・インターフェース(API)動作に対応するAPIを呼び出すステップであって、API動作が、作成動作、更新動作、検索動作、又は削除動作のうちの少なくとも1つに関連する、ステップと、NBMPエンティティから応答を受信するステップと、応答に基づいて、NBMPエンティティがAPI動作に対応するAPIテストに合格するかどうかを決定するステップとを含んでもよい。
【0008】
また、本開示の態様は、上記の方法実施態様のいずれかを実行するように構成される回路を含むデバイス又は装置も提供する。
【0009】
また、本開示の態様は、コンピュータによって実行されると、コンピュータに上記の方法実施態様のいずれかを実行させる命令を記憶する非一時的コンピュータ可読媒体も提供する。
【0010】
開示された主題の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付図面からより明らかになる。
【図面の簡単な説明】
【0011】
【
図1】本開示の1つ以上の実施形態に係る、通信システムの概略図である。
【
図2】本開示の1つ以上の実施形態に係る、ストリーミング環境の簡略化された例を示す。
【
図3】本開示の1つ以上の実施形態に係る、NBMPシステムのブロック図を示す。
【
図4】NBMPスキーマ検証器の一例及びNBMP意味検証器の一例を示す。
【
図6】本開示の例示的な実施形態に係る方法のフローチャートを示す。
【
図7】本開示の例示的な実施形態に係るコンピュータシステムの概略図を示す。
【発明を実施するための形態】
【0012】
図1は、実施形態による、本明細書に記載された方法、装置、及びシステムが実装され得る環境100の図である。
図1に示されているように、環境100はユーザデバイス110、プラットフォーム120及びネットワーク130を含んでもよい。環境100のデバイスは、有線接続、無線接続、又は有線接続と無線接続の組み合わせを介して相互接続され得る。
【0013】
ユーザデバイス110は、プラットフォーム120に関連する情報の受信、生成、記憶、処理及び/又は提供を行うことができる1つ以上のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、スマートメガネ又はスマートウォッチなど)、又は同様のデバイスを含み得る。幾つかの実施態様では、ユーザデバイス110は、プラットフォーム120から情報を受信し、かつ/又は情報をプラットフォーム120に送信してもよい。
【0014】
プラットフォーム120は、本明細書の他の箇所に記載されるような1つ以上のデバイスを含む。幾つかの実施態様では、プラットフォーム120はクラウドサーバを含んでも、クラウドサーバのグループを含んでもよい。幾つかの実施態様では、その場合に必要なものに応じてソフトウェアコンポネントをスワップインしたりスワップアウトしたりすることができるようなモジュール式になるようにプラットフォーム120を設計することができる。したがって、プラットフォーム120は、異なる用途のために容易にかつ/又は迅速に再構成されてもよい。
【0015】
幾つかの実装形態では、
図1に示すように、プラットフォーム120は、クラウドコンピューティング環境122でホストされてもよい。特に、本明細書で説明されている実施態様では、プラットフォーム120がクラウドコンピューティング環境122でホスティングによって提供されるように説明されているが、幾つかの実施態様では、プラットフォーム120はクラウドを用いるものではなくてもよい(すなわち、クラウドコンピューティング環境の外で実施されてもよい)し、部分的にクラウドを用いるものであってもよい。
【0016】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホスティングによって提供する1つ以上のシステム及び/又は1つ以上のデバイスの物理的な位置及び設定についてのエンドユーザ(例えばユーザデバイス110)情報を必要としない計算、ソフトウェア、データアクセス、記憶などのサービスを提供してもよい。図示のように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(「コンピューティングリソース124」と総称され、個々に「コンピューティングリソース124」と呼ばれる)を含んでもよい。
【0017】
コンピューティングリソース124は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、又は他のタイプの計算デバイス及び/若しくは通信デバイスを含む。幾つかの実施態様では、コンピューティングリソース124がプラットフォーム120をホスティングによって提供してもよい。クラウドリソースは、コンピューティングリソース124内で実行される計算インスタンス、コンピューティングリソース124内で提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含んでもよい。幾つかの実装形態では、コンピューティングリソース124は、有線接続、無線接続、又は有線接続と無線接続との組み合わせを介して他のコンピューティングリソース124と通信してもよい。
【0018】
図1に更に示されたように、コンピューティングリソース124は、1つ以上のアプリケーション(「APP」)124-1、1つ以上の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つ以上のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含む。
【0019】
アプリケーション124-1は、ユーザデバイス110及び/若しくはプラットフォーム120に提供され得る、又はユーザデバイス110及び/若しくはプラットフォーム120によってアクセスされ得る1つ以上のソフトウェアアプリケーションを含む。アプリケーション124-1を用いることで、ソフトウェアアプリケーションをユーザデバイス110にインストールしてユーザデバイス110で実行する必要をなくすことができる。例えば、アプリケーション124-1は、プラットフォーム120に関連するソフトウェア、及び/又はクラウドコンピューティング環境122を介して提供することができるその他一切のソフトウェアを含んでもよい。幾つかの実装形態では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つ以上の他のアプリケーション124-1との間で情報を送受信してもよい。
【0020】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装形態を含む。仮想マシン124-2は、用途と、仮想マシン124-2が任意の実在のマシンに一致する度合いとに応じてシステム仮想マシンとプロセス仮想マシンとのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(OS)の実行をサポートする完全なシステムプラットフォームを提供することができる。プロセス仮想マシンはプログラムを1つだけ実行することができ、プロセスを1つだけサポートすることができる。幾つかの実装形態では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)の代わりに実行してもよく、データ管理、同期、又は長時間のデータ転送など、クラウドコンピューティング環境122のインフラストラクチャを管理してもよい。
【0021】
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステム又はデバイス内で仮想化技術を使用する1つ以上のストレージシステム及び/又は1つ以上のデバイスを含む。幾つかの実施態様では、記憶システムに限っていえば、仮想化の類型にはブロック仮想化とファイル仮想化とが含まれるといえる。ブロック仮想化は、物理的ストレージであってもヘテロジニアス構造であっても記憶システムにアクセスすることができるような、物理的ストレージからの論理ストレージの抽出(又は分離)を指すといえる。分離により、記憶システムのアドミニストレータによるエンドユーザ向けのストレージの管理の仕方の自由度を高めることができる。ファイル仮想化により、データが所定のファイルレベルでアクセスされることと、ファイルが物理的に記憶されている位置との間の依存関係を解消させることができる。これにより、ストレージ使用の最適化、サーバ統合、及び/又はスムーズなファイル移行の実施が可能になり得る。
【0022】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)が、コンピューティングリソース124などのホストコンピュータ上で同時に実行されることを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ124-4はゲストオペレーティングシステムに仮想オペレーティングプラットフォームを提供することができ、ゲストオペレーティングシステムの実行を管理することができる。様々なオペレーティングシステムの複数のインスタンスは、仮想化ハードウェアリソースを共有し得る。
【0023】
ネットワーク130は1つ以上の有線ネットワーク及び/又は無線ネットワークを含む。例えば、ネットワーク130は、セルラネットワーク(例えば、第五世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第三世代(3G)ネットワーク、WiMaxネットワーク、符号分割多元接続(CDMA)ネットワークなど)、Wi-Fiネットワーク、公衆陸上移動体通信網(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバを用いたネットワークなど、及び/又はこれらのタイプ若しくは他のタイプのネットワークの組み合わせを含んでもよい。
【0024】
図1に示すデバイス及びネットワークの数及び配置は、一例として提供されている。実際には、
図1に示されているものと比較して、より多数のデバイス及び/若しくはネットワーク、より少数のデバイス及び/若しくはネットワーク、異なるデバイス及び/若しくはネットワーク又は異なる配置のデバイス及び/若しくはネットワークが存在してもよい。更に、
図1に示されている2つ以上のデバイスが1つのデバイス中で実施されてもよいし、
図1に示されている1つのデバイスが複数の分散したデバイスとして実施されてもよい。これに加えて又は代えて、環境100のデバイスのセット(例えば、1つ以上のデバイス)は、環境100の別のデバイスのセットによって実行されるものとして記載された1つ以上の機能を実行してもよい。
【0025】
図2は、
図1の1つ以上のデバイスの例示的な構成要素のブロック図である。デバイス200はユーザデバイス110及び/又はプラットフォーム120に対応してもよい。
図2に示すように、デバイス200は、バス210、プロセッサ220、メモリ230、記憶構成要素240、入力構成要素250、出力構成要素260、及び通信インターフェース270を含み得る。
【0026】
バス210は、デバイス200の構成要素間の通信を可能にする構成要素を含む。プロセッサ220はハードウェア、ファームウェア、又はハードとソフトとの組み合わせで実施される。プロセッサ220は中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、アクセラレーテッドプロセッシングユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)又は別のタイプのプロセッサである。幾つかの実施態様では、プロセッサ220は、機能を実行するようにプログラムされることが可能な1つ以上のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、及び/又はプロセッサ220が使用する情報及び/又は命令を記憶する別のタイプの動的又は静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、及び/又は光メモリ)を含む。
【0027】
記憶構成要素240は、デバイス200の動作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば、記憶構成要素240は、対応するドライブと共に、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は別のタイプの非一時的コンピュータ可読媒体を含んでもよい。
【0028】
入力構成要素250は、デバイス200がユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロフォン)などを介して情報を受信することを可能にする構成要素を含む。これに加えて又は代えて、入力構成要素250は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含んでいてもよい。出力構成要素260は、デバイス200(例えば、ディスプレイ、スピーカ、及び/又は1つ以上の発光ダイオード(LED))からの出力情報を提供する構成要素を含む。
【0029】
通信インターフェース270は、デバイス200が有線接続、無線接続、又は有線接続と無線接続との組み合わせなどを介して他のデバイスと通信することを可能にする、送受信機様の構成要素(例えば、送受信機並びに/又は別個の受信機及び送信機)を含む。通信インターフェース270を用いることで、デバイス200が別のデバイスから情報を受信しかつ/又は別のデバイスに情報を提供することを可能にしてもよい。例えば、通信インターフェース270は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェースなどを含んでもよい。
【0030】
デバイス200は、本明細書に記載された1つ以上のプロセスを実行し得る。デバイス200は、メモリ230及び/又は記憶構成要素240などの非一時的コンピュータ可読媒体によって記憶されているソフトウェア指示をプロセッサ220が実行するのに応じて当該プロセスを実行してもよい。本出願ではコンピュータ可読媒体は非一時的なメモリデバイスと定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリ空間、又は複数の物理ストレージデバイスにわたって広がるメモリ空間を含む。
【0031】
ソフトウェア命令は、別のコンピュータ可読媒体から、又は通信インターフェース270を介して別のデバイスからメモリ230及び/又は記憶構成要素240に読み込まれてもよい。実行時、メモリ230及び/又は記憶構成要素240に記憶されているソフトウェア指示を用いて本明細書で説明されている1つ以上のプロセスをプロセッサ220に実行させてもよい。これに加えて又は代えて、ハードワイヤード回路をソフトウェア命令の代わりに、又はそれと組み合わせて使用して、本明細書に記載の1つ以上のプロセスを実行することができる。したがって、本明細書に記載の実装形態は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されない。
【0032】
図2に示す構成要素の数及び配置は、一例として提供されている。実際には、デバイス200は
図2に示されているものと比較して、より多数の要素、より少数の要素、異なる要素又は異なる配置の要素を含んでもよい。これに加えて又は代えて、デバイス200の構成要素のセット(例えば、1つ以上の構成要素)は、デバイス200の別の構成要素のセットによって実施されるものとして記載された1つ以上の機能を実施してもよい。
【0033】
説明を容易にするために、本開示は、NBMPシステム関連規格で定義された用語及び名称を採用する。しかしながら、本開示は、そのような用語及び名称によって限定されず、他の規格に準拠し、NBMPシステムのものと同じ又は同様の機能を実行するマルチメディアシステムにも同様に適用可能であり得る。
【0034】
機能記述:入力及び出力記述詳細、要求されたメディア処理、要件など、メディア処理機能の詳細の記述。
【0035】
機能リポジトリ:NBMP機能がNBMPワークフローマネージャ又はNBMPソースによって検索される記憶場所。
【0036】
メディア処理エンティティ:1つ以上のメディア処理タスクを実行するエンティティ
【0037】
メディアリソース:メディアソースによって取り込まれ、NBMPシステムのメディア処理エンティティに送信されるメディアデータ。
【0038】
メディアシンク:既存の配信方法を通じてNBMPワークフローの出力を消費するエンティティ
【0039】
メディアソース:デジタルカメラ、マイクロフォン、エンコーダ、又は永続ストレージなど、処理される生のメディアコンテンツを提供するエンティティ。
【0040】
NBMPフォーマット:NBMPシステム内のメディアソースとメディア処理エンティティとの間、及びNBMPシステム内の個々のメディア処理エンティティ間で交換されるメディアフォーマット。
【0041】
NBMP機能:スタンドアロン及び自己完結型メディア処理動作の実装及びその動作の対応する説明
【0042】
NBMPパブリッシュフォーマット:Media Processing EntityからMedia Sinkに送信されるコンテンツのメディアフォーマット。
【0043】
NBMPソース:トリガを提供し、ネットワーク内のメディア処理を記述するエンティティ
【0044】
NBMPシステム:ネットワーク内の1つ以上の処理エンティティにわたってメディアを処理するためのシステムであって、メディアソース、NBMPソース、NBMPワークフローマネージャ、機能リポジトリ、メディア処理エンティティ(複数可)、及びメディアシンク(複数可)からなるシステム。
【0045】
NBMPワークフロー:要求されたメディア処理を達成する1つ以上の接続されたタスクのグラフ
【0046】
NBMPワークフローマネージャ:ワークフロー記述及び機能記述に基づいて完全なワークフローを作成するために、タスクをプロビジョニングし、それらを接続するエンティティ。
【0047】
補足情報:メディアデータ又はメディア処理動作に関するメタデータ又は補助情報
【0048】
タスク:メディア処理エンティティ内で実行されるNBMP機能のランタイムインスタンス。
【0049】
タスク記述:入力及び出力記述詳細、要件、構成情報などのタスクのランタイム詳細の記述。
【0050】
ワークフロー記述:入力及び出力記述の詳細、要求されたメディア処理、ワークフローの要件などのメディア処理の詳細の記述。
【0051】
本開示の一実施形態では、ネットワークベースのメディア処理(NBMP)システムが提供される。
図3は、本明細書の実施形態によるNBMPアーキテクチャ300を示し、クラウド処理に関して実装される場合がある。NBMPシステム300は、NBMPソース310と、NBMPワークフローマネージャ320と、機能リポジトリ330と、1つ以上のメディア処理エンティティ(MPE)340と、メディアソース350と、メディアシンク360とを含んでもよい。NBMPソース310、NBMPワークフローマネージャ320、機能リポジトリ330、MPE340、メディアソース350、及びメディアシンク360は、少なくとも1つ以上のプロセッサと、それぞれ、NBMPソース310、NBMPワークフローマネージャ320、機能リポジトリ330、MPE340、メディアソース360、及びメディアシンク360の機能を少なくとも1つ以上のプロセッサに実行させるように構成されたコードを記憶するメモリとを含むか、又はそれらによって実装されてもよい。
【0052】
NBMPソース310は、NBMPワークフローAPI311を介してNBMPワークフローマネージャ320とワークフロー記述を通信することができる。NBMPソース310はまた、機能発見API313を介して機能リポジトリ330と機能記述を通信することができる。例えば、NBMPソース310は、ワークフロー記述文書(WDD)をNBMPワークフローマネージャ320に送信することができ、機能リポジトリ330に記憶された機能の機能記述を読み取ることができ、機能は、例えば、メディア復号、特徴点抽出、カメラパラメータ抽出、投影方法、シーム情報抽出、ブレンディング、後処理、及び符号化の機能などの、機能リポジトリ330のメモリに記憶されたメディア処理機能である。NBMPワークフローマネージャ320は、機能発見API313と同じか又は異なるAPIであり得る機能発見API312を介して機能リポジトリ330と通信することができ、API314(例えば、MPE API)を介してMPE340のうちの1つ以上と通信することができる。
【0053】
これに代えて又は加えて、NBMPソース310はキーワードの集合を用いてワークフローを作成するようにNBMPワークフローマネージャ320に要求してもよい。例えば、NBMPソース310は、機能リポジトリ330に記憶された適切な機能を見つけるためにNBMPワークフローマネージャ320が使用し得るキーワードのセットを含み得るワークフロー記述文書をNBMPワークフローマネージャ320に送信することができる。NBMPワークフローマネージャ320がNBMPソース310からそのような情報を受信したとき、NBMPワークフローマネージャ320は、ワークフロー記述文書の処理記述子内に指定され得るキーワードを使用して適切な機能を検索することによって、ワークフローを作成することができ、ワークフロー記述文書内の他の記述子を使用してタスクを提供し、それらを接続してワークフローを作成することができる。NBMPワークフローマネージャ320は、少なくとも1つのプロセッサと、少なくともプロセッサにNBMPワークフローマネージャ320の機能を実施させるように構成されたコードを記憶するメモリとを含むことができるか、又はそれらによって実装することができる。
【0054】
メディア処理エンティティ(MPE)340は、1つ以上のタスク341を含んでもよい。NBMPワークフローマネージャ320は、API315(例えば、NBMPタスクAPI)を介してタスク341と通信することもできる。NBMPワークフローマネージャ320は、API315を使用して、1つ以上のMPE340によって実行可能なワークフローの1つ以上のタスク341をセットアップ、構成、管理、及び監視することができる。ワークフローのタスク341を構成、管理、及び監視するために、NBMPワークフローマネージャ320は、MPE340及び/又はタスク341のうちの1つ以上に要求などのメッセージを送信することができ、各メッセージは、それらの各々が幾つかのパラメータを有する幾つかの記述子を有してもよい。更に、NBMPソース310、NBMPワークフローマネージャ320、機能リポジトリ330、及びMPE340の間の通信は、制御フローとみなされてもよい。
【0055】
タスク341は、各々、メディア処理機能343と、メディア処理機能343用の構成342とを含んでもよい。それぞれのメディア処理エンティティ340内のタスク341の各々はまた、タスク間のデータフローを容易にするために互いに通信することができる。一実施形態では、NBMPワークフローマネージャ320は、WDD内のタスクの記述に基づいてタスクを選択して、機能発見API312を介して機能リポジトリ330を検索し、現在のワークフロー用のタスク341として実行する適切な機能を見つけることができる。1つ以上のMPE340は、メディアソース350からメディアコンテンツを受け取り、NBMPワークフローマネージャ320によって作成されたタスク341を含むワークフローに従ってメディアコンテンツを処理し、処理されたメディアコンテンツをメディアシンク360に出力するように構成されてもよい。一実施形態では、1つ以上のMPE340は、それぞれ、メディアソース350とメディアシンク360との間の複数のメディアフロー316及び317に対して並列に提供されてもよい。
【0056】
メディアソース350は、メディアを記憶するメモリを含んでもよく、NBMPソース310と統合されるか、又は別個であってもよい。一実施形態では、NBMPワークフローマネージャ320は、ワークフローが準備されたときにNBMPソース310に通知することができ、メディアソース350は、ワークフローが準備されたという通知に基づいて1つ以上のMPE340にメディアコンテンツを送信することができ、1つ以上のMPE340は、メディアシンク360にメディアコンテンツを送信することができる。メディアソース350、MPE340、及びメディアシンク360の間の通信は、データフローとみなされてもよい。
【0057】
ワークフローマネージャ320は、NBMPクライアントからワークフロー記述文書(WDD)を受信すると、ワークフローに挿入すべきメディア処理機能の選択を行う。ワークフローに含める必要があるタスクのリストがコンパイルされると、ワークフローマネージャは、必要なワークフローを準備するためにそれらのタスクを接続する。
【0058】
幾つかの例示的な実装形態では、ワークフローマネージャ320は、WDDから有向非巡回グラフ(DAG)を生成することができる。DAGの各ノードは、ワークフローにおける処理タスクを表す。各ノードは、少なくとも1つの入力を受け取り、少なくとも1つの出力を生成することができる。グラフ内の一方のノードと他方のノードとを接続するリンクは、前者のノードの出力を後者のノードへの入力として伝達することを表す。一般に、NBMPワークフローグラフは、複数の入力及び出力を有することができる。
【0059】
NBMPシステムは、論理レイヤ、オブジェクトレイヤ、及びリソースレイヤの3つのレイヤを含むことができる。論理層は、論理的な記述などの論理的な項目を含んでもよい。オブジェクト層は、JavaScript Object Notation(JSON)オブジェクトなどのデータオブジェクトを含み得る。リソース層は、Representational State Transfer(REST)リソースを含み得る。
【0060】
例えば、論理的記述と、対応するデータオブジェクト、データ文書、及びRESTリソースとの間には1対1の関係がある。
【0061】
NBMP論理項目は、パラメータ、記述子、及び記述を含み得る。
【0062】
ワークフローオブジェクト(WO)、タスクオブジェクト(TO)、ファンクションオブジェクト(FO)、及びMPE機能オブジェクト(MO)は、対応するメイン記述子をJSONオブジェクトとして実現したものである。
【0063】
例示的な実装形態では、ワークフロー記述文書(WDD)、タスク記述文書(TDD)、機能記述文書(FDD)、及びMPE機能記述文書(MDD)は、それぞれ単一のWO、単一のTO、単一のFO、及び単一のMOを含む文書である。これらの文書は、JSONオブジェクトであってもよい。
【0064】
ワークフローリソース(WR)、タスクリソース(TR)、機能リソース(FR)、及びMPE機能リソース(MR)は、例えば、それぞれ有効なURLを有するWDD、TDD、FDD、及びMDDであり得る。これらのリソースは、例えばRESTリソースであってもよい。
【0065】
前述した記述文書、例えば、WDD、TDD、FDD、WDDなどは、
図3に示すように、NBMPフレームワーク内の様々なエンティティ間でやり取りされる。
【0066】
例えば、NBMPソース310とワークフローマネージャ320との間でWDDを交換してもよい。FDDは、機能リポジトリ330とワークフローマネージャ320との間で交換されてもよい。又は機能リポジトリ330とNBMPソース310との間にある。TDDは、ワークフローマネージャ320とタスク341との間で交換され得る。MDDは、ワークフローマネージャ320とMPE(複数可)340との間で交換することができる。
【0067】
幾つかの例示的な実装形態では、WDD、TDD、FDD、及びWDDなどの記述文書の各々は、記述子のセットを使用して記述され得る。記述子の各々は、カーディナリティ及び追加の制約条件に関連付けられ得る。WDD、TDD、FDD、及びWDDは、JSONフォーマットなどの所定のフォーマットで記述及び提示されてもよい。同様に、各記述子は、JSONフォーマットなどの所定のフォーマットに従った文書に記述及び提示されてもよい。
【0068】
例示的には、記述文書又は記述子文書は、対応するスキーマの実現又はインスタンス化と考えることができる。
【0069】
表1は、複数の記述子を含む例示的な機能記述を示す。
【0070】
【0071】
上記の表で定義された追加の制約は、FDDの意味を検証するためのベースラインルールとして使用され得ることに留意されたい。
【0072】
上記で定義されたFDは、JSON形式で提示されてもよい。以下の表2は、JSONにおける例示的なFDDスキーマを示す。
【0073】
【0074】
表1及び表2に示すように、FDDは、一般記述子、入力記述子、及び出力記述子などの必要な記述子を含む複数の記述子を含むことができる。また、処理、要件、構成、ステップ、クライアント-アシスタントなどのような他の任意選択の記述子もある。記述子が必要として定義されるか任意選択的であるかは単なる例示目的のためであることに留意されたい。設計要件に基づいて、スキーマは異なる記述子を含むことができる。例えば、同じ記述子が、1つのリリースでは必要とされるが、別のリリースではオプションとして定義され得る。各記述子はJSON形式で提示されてもよく、記述子の例については後述する。
【0075】
FDDのスキーマを検証するためのベースラインスキーマとして、上記で定義したJSON形式のFDスキーマを用いてもよい。
【0076】
表3は、複数の記述子を含む例示的なワークフロー記述を示す。
【0077】
【0078】
上記の表で定義された追加の制約は、WDDの意味を検証するためのベースラインルールとして使用され得ることに留意されたい。
【0079】
同様に、上記で定義されたWDは、JSON形式で提示されてもよい。以下の表4は、JSONのWDスキーマの例を示す。
【0080】
【0081】
表3及び表4に示すように、WDDは、一般、入力、出力、処理、及び要件などの必要な記述子を含む複数の記述子を含むことができる。処理、要件、構成、ステップ、クライアントアシスタントなどの他の任意選択の記述子もある。
【0082】
上記でJSON形式で定義されたWDスキーマは、WDDのスキーマを検証するためのベースラインスキーマとして使用することができる。
【0083】
表5は、複数の記述子を含む例示的なタスク記述を示す。
【0084】
【0085】
上記の表で定義された追加の制約は、TDDの意味を検証するためのベースラインルールとして使用され得ることに留意されたい。
【0086】
上記で定義されたTDは、JSON形式で提示され得る。以下の表6は、JSONにおける例示的なTDDスキーマを示す。
【0087】
【0088】
上記でJSON形式で定義されたTDスキーマは、TDDのスキーマを検証するためのベースラインスキーマとして使用され得る。
【0089】
表7は、複数の記述子を含む例示的なMPE機能記述(MD)を示す。
【0090】
【0091】
上記の表で定義された追加の制約は、MDDの意味を検証するためのベースラインルールとして使用され得ることに留意されたい。
【0092】
上記のMDは、JSON形式で表現されてもよい。以下の表8は、JSONにおける例示的なMDDスキーマを示す。
【0093】
【0094】
上記でJSON形式で定義されたMDスキーマは、MDDのスキーマを検証するためのベースラインスキーマとして使用することができる。
【0095】
本開示では、JSONフォーマットは例示目的のみに使用される。記述文書には、拡張可能マークアップ言語(XML)を含むがこれに限定されない他のフォーマットも使用することができる。
【0096】
WDD、TDD、FDD、及びMDDのスキーマは、例示のみを目的としていることに留意されたい。これらのスキーマは、基本的なNBMPスキーマとして機能することができるが、対応する導出されたスキーマを形成するために、例えば実際の設計要件に基づいて、これらのスキーマに更なる制約を追加することができる。導出されたスキーマはまた、基本的なNBMPスキーマの変形である任意のスキーマを含み得る。幾つかの例示的な実装形態では、基本的なNBMPスキーマと導出NBMPスキーマの両方が、対応する記述文書を検証するためのベースラインNBMPスキーマとして機能することができる。記述文書は、特定のスキーマのインスタンス化であってもよいことに留意されたい。
【0097】
幾つかの例示的な実装形態では、ISO/IEC 23090-8(ネットワークベースのメディア処理のための規格)で定義されたNBMPスキーマを基本NBMPスキームとして使用することができる。
【0098】
上記のような記述文書(例えば、WDD、TDD、FDD、及びMDD)に含まれる記述子は、例えばJSON形式で提示されてもよい。
【0099】
表9は、スキーム記述子スキーマの例を示す。スキーム記述子文書は、対応するスキーム記述子スキーマに基づいて(すなわち、インスタンス化されている)記述することができる。
【0100】
【0101】
表10は、スタートアップ遅延記述子スキーマの例を示す。スタートアップ遅延記述子文書は、対応するスタートアップ遅延記述子スキーマに基づいて記述することができる。
【0102】
【0103】
表11は、例示的なクライアント支援記述子スキーマを示す。
【0104】
【0105】
NBMPでは、他の多くの記述子を定義して使用することができる。例えば、これらの記述子には、一般記述子、入力記述子、出力記述子、処理記述子、要件記述子、構成記述子、フェイルオーバ記述子、イベント記述子、変数記述子、監視記述子、報告記述子、通知記述子、アサーション記述子、要求記述子、承認記述子、リポジトリ記述子、セキュリティ記述子、ステップ記述子、機能記述子、スケール記述子、スケジュール記述子などが含まれ得るが、これらに限定されない。記述子文書は、その対応する記述子スキーマに基づいて、例えばJSON形式で記述又は提示され得る。
【0106】
NBMPシステムは、メディア処理のためにネットワークを介して接続されたエンティティ間で、データフォーマットやアプリケーションプログラムインターフェース(API)を含むインターフェースを用いた通信を行ってもよい。APIは、例えば、以下のAPIを含むことができる。
・メディア処理ワークフローを作成及び制御するためにNBMPソースによって使用されるNBMPワークフローAPI。
・ワークフローマネージャ及び/又はNBMPソースが、メディア処理ワークフローの一部としてロードされ得るメディア処理機能を発見するための手段を提供する、NBMP機能発見API。
・実行時にタスクを構成及び監視するためにワークフローマネージャによって使用されるNBMPタスクAPI。
・MPEの機能を検索するためにワークフローマネージャによって使用されるNBMP MPE API。
【0107】
各APIは、以下の態様、すなわち、API動作、API要求、及びAPI応答を含むことができる。
【0108】
ワークフローAPIは、ワークフローマネージャを介してワークフローを管理するためにNBMPソース(又はNBMPクライアント)によって使用される。ワークフローマネージャは、表12に示すワークフローAPI動作をサポートすることができる。
【0109】
【0110】
ワークフローマネージャは、タスクAPI動作を使用して、タスクを構成及び制御する。表13は、例示的なタスクAPI動作を示す。
【0111】
【0112】
機能発見APIは、NBMPプラットフォームによってサポートされるNBMP機能を発見するために、ワークフローマネージャ及びNBMPソースによって使用される。
図3を参照すると、これらの機能は、NBMP機能記述(FD)を使用して機能リポジトリにカタログ化することができる。
【0113】
発見クエリは、クエリに記述されたプロパティによって機能リポジトリ内の1つ以上の機能を発見するために使用され得る。これらのプロパティを記述するためにクエリ文字列が使用される。
【0114】
幾つかの例示的な実装形態では、IETF RFC 3986:2005、セクション3.4に準拠するクエリ文字列が使用されてもよい。クエリ文字列は、単一の「&」文字で区切られたキー値ペアのセットを含むことができる。各キーと値のペアでは、キーと値は単一の「=」文字で区切られるものとする。ワイルドカード表現がクエリ文字列において使用されてもよい。例えば、「*」を使用して0個以上の文字を照合することができ、「^」を使用して、値の始まりを一致させることができ、「$」を使用して値の終わりを一致させることができる。
【0115】
表14は、例示的な機能発見API動作を示す。
【0116】
【0117】
MPE APIは、ワークフローマネージャによるMPE機能の検索のためのインターフェースを定義する。表15は、例示的なMPE API動作を示す。
【0118】
【0119】
NBMPシステムでは、ワークフローマネージャエンティティ、タスクエンティティ、機能リポジトリエンティティ、及びMPEエンティティなどのエンティティは、以下に説明する特定の要件を満たす必要がある。
【0120】
例示的な実装形態では、ワークフローマネージャは、以下のAPI態様をサポートする必要があり得る。
・ワークフローAPI動作応答;
・タスクAPI動作;
・機能発見API動作;及び
MPE API動作
【0121】
接続マップが提供されていないNBMPソース(又はNBMPクライアント)からメディア処理の要求が到着すると、ワークフローマネージャは、機能発見APIを使用して機能リポジトリ内の機能を使用して1つ以上のワークフローオプションを設計し、次いで所与のプリファレンスに基づいてワークフローをインスタンス化する。NBMPクライアントからの要求が、接続マップ及び関連する機能を有するワークフローを含む場合、ワークフローマネージャは、ワークフローをインスタンス化するために、機能発見APIを使用して機能記述を要求することができる。
【0122】
ワークフローに含める必要があるタスクのリストがコンパイルされると、ワークフローマネージャは、必要なワークフローを準備するためにそれらのタスクを接続することができる。
【0123】
ワークフローマネージャは、ワークフローを作成できないか、又は機能にアクセスできない場合、NBMPサービスに応答を提供して、ワークフローの作成に失敗したことを反映する。
【0124】
ワークフローマネージャは、ワークフローの状態における以下の移行をサポートすることができる。
・onInstantiationは、CreateWorkflow動作を受信すると、「状態」が値「インスタンス化」に設定される。
・onInstantiationは、RetrieveWorkflow動作を受信すると、「状態」が「インスタンス化」に設定され、以前に構成されたワークフローの場合、それをインスタンス化状態に移行させる。
・onWorkflowConfigは、UpdateWorkflow動作を受信すると、「状態」が「アイドル」に設定され、インスタンス化状態にある間、アイドル状態に移行する。
・onInstantiationとそれに続くonWorkflowConfigは、CreateWorkflow動作を受信すると、「状態」が「アイドル」に設定され、それをインスタンス化状態、次いでアイドル状態に移行する。
・onTermination、DeleteWorkflow動作を受信するとき。
・onResetは、UpdateWorkflow動作を受信すると、アイドル状態にある間に「状態」が「インスタンス化」に設定され、それをインスタンス化状態に移行する。
・onErrorHandling、エラー状態にある間にUpdateWorkflowを受信するとき。
・onStartは、メディアデータ又はメタデータが到着し始めると、アイドル状態から実行状態に状態を移行させる。
・onStopは、全てのメディアデータ又はメタデータが(全ての入力のタイムアウト値を観測し、受信した入力の処理を完了することによって)到着を停止すると、状態を実行状態からアイドル状態に移行するものとする。
・onCompletionは、(全ての入力のタイムアウト値を観測し、受信した入力の処理を完了することによって)処理が完了すると、状態を実行状態からアイドル状態に移行するものとする。
・OnErrorは、エラーが発生した場合、状態を実行状態からエラー状態に移行させる。
【0125】
ワークフローマネージャは、ワークフロー記述で定義されたタスクグループに従うタスクをインスタンス化する。
【0126】
例示的な実装形態では、機能リポジトリは、以下のAPI態様をサポートするものとする。
・機能発見API動作は要求する。
【0127】
機能リポジトリは、機能及び機能グループのエントリを記憶することができるものとする。
【0128】
機能リポジトリは、例えば、前述のように、クエリ文字列フォーマットを使用して問い合わせをサポートするものとする。クエリ文字列に含まれる複数のキー値ペアがある場合、機能リポジトリは、クエリ文字列のキー値ペアの各値が一致する全ての機能記述を返すものとする。
【0129】
機能リポジトリは、基本的なワイルドカード検索をサポートするものとする。値内の既存のワイルドカードの場合、機能リポジトリは、対応する値の非ワイルドカード部分と部分的に一致する1つ以上のプロパティを有する機能を返すものとする。
【0130】
例示的な実装形態では、タスクエンティティは、以下のAPI態様をサポートするものとする。
・タスクAPI動作応答。
【0131】
タスクは、その状態の以下の移行をサポートするものとする。
・onInstantiationは、CreateTask動作を受け取ると、「状態」が「インスタンス化」に設定される。
・onTaskConfigurationは、UpdateTask動作を受信すると、「状態」が「アイドル」に設定される。
・onInstantiationとそれに続くonTaskConfigurationは、CreateTask動作を受信すると、「状態」が「アイドル」に設定される。
・onTermination、DeleteTask動作を受信するとき。
・onResetは、UpdateTask動作を受信すると、「状態」が「インスタンス化」に設定される。
・onErrorHandling:エラー状態にある間にUpdateTaskを受信するとき。
・onStart、メディアデータ又はメタデータが到着し始めると、タスクはアイドル状態から実行状態にその状態を移行する。
・onStop、(全ての入力のタイムアウト値を観測し、受信した入力の処理を完了することによって)全てのメディアデータ又はメタデータの到着が停止すると、タスクはその状態を実行状態からアイドル状態に移行する。
・onCompletion、(全ての入力のタイムアウト値を観測し、受信した入力の処理を完了することによって)処理が完了すると、タスクはその状態を実行状態からアイドル状態に移行する。
・OnError、エラーが発生すると、タスクはその状態を実行状態からエラー状態に移行しなければならない。
【0132】
ワークフローのライフサイクルは、そのタスクのライフサイクルに以下のように関連する。
・ワークフローがインスタンス化された状態にある場合、その全てのタスクはインスタンス化された状態にあるものとする。
・ワークフローがアイドル状態にある場合、その全てのタスクはアイドル状態にあるものとする。
・ワークフローの1つ以上のタスクがエラー状態にある場合、ワークフローはエラー状態に移行するものとする。
・ワークフローが破棄される場合、その全てのタスクは破棄状態に移行するものとする。
【0133】
MPEは、以下のAPI態様をサポートするものとする。
・MPE API動作応答
【0134】
NBMPシステムでは、記述文書は、一般に、WDD、TDD、FDD、及びMDDを含むことができ、これらは、対応するスキーマからのインスタンス化であり得る。これらの記述文書は、NBMP記述子スキーマ文書、NBMP記述子パラメータ文書(NBMPパラメータを定義するために使用される)などの下位レベルのサポート文書に更に基づくことができる。これらの文書は、単一のベンダ又は複数のベンダからリリースされてもよい。一方、これらの文書は、様々なリリースをカバーし、異なるバージョンを有する場合もある。NBMPメディアフローをサポートするために必要な多数の記述文書(及びそれらのサポート文書)のために、同じベンダ内であろうと、異なるベンダからのものであろうと、構文的及び意味的の両方で、これら全ての記述文書がNBMP規格に準拠することを保証することが重要である。これらの記述文書のいずれか1つにおける不適合は、メディアサービスの低下、中断、又は更には予期しない終了をもたらす可能性があり、これはユーザ体験に深刻な影響を与える。記述文書の不適合はまた、ベンダ及び/又はオペレータに運用、保守、及び/又はトラブルシューティングのコストを追加することができる。例えば、どの文書が適合していないかを特定するために、多大な時間と労力が必要である。したがって、文書の適合性を保証するために、これらの文書に対して特定の事前チェックを実行することが有益である。事前チェック又は事前検証は、これらの文書を構文的及び意味的に検証することができる。
【0135】
本開示では、NBMP文書を検証/チェックし、NBMPエンティティの適合性をチェックするための様々な実施形態を説明する。
【0136】
図4を参照すると、一実施形態では、2段階検証プロセスが導入される。
図4に示すように、この検証プロセスは、スキーマ検証器402及び意味検証器404(これらの2つの検証器は一般にNBMP検証器と呼ばれる)を使用することができる。これら2つの検証器は、直列接続方式で配置されてもよい。
【0137】
検証プロセスへの入力文書は、WDD、TDD、FDD、及びMDDなどの任意の記述文書を含むことができる。前述したように、各記述文書は、少なくとも1つの記述子を含むことができる。入力文書はまた、任意の記述子文書、例えば、JSON形式で記述又は提示される記述子文書を含んでもよい。
【0138】
図4に示すように、検証処理には、以下に説明する2つのステップがある。
【0139】
ステップ1-スキーマ検証
入力文書は、入力文書に対応するNBMPスキーマに基づいて、スキーマ検証器402によって検証される。
【0140】
一例として、入力文書がWDDなどの記述文書である場合、WDDベースラインスキーマが選択され、スキーマ検証器によって参照されてもよい。別の例として、入力文書がスキーム記述子文書などの記述子文書である場合、スキーム記述子スキーマが選択され、スキーマ検証器によって参照されてもよい。
【0141】
幾つかの例示的な実装形態では、基本的なNBMPスキーマをベースラインスキーマとして使用することができる。
【0142】
幾つかの例示的な実装形態では、基本NBMPスキーマに基づいて導出されたNBMPスキーマをベースラインスキーマとして使用することができる。前述のように、導出されたNBMPスキーマは、更なる制約及び/又は記述子を含むことができる。
【0143】
幾つかの例示的な実装形態では、スキーマ検証器は、入力ファイルに対して検証を実行するときに追加のスキーマファイル(例えば、下位レベルのスキーマファイル)を取り込むことができる。例えば、記述文書は、複数の記述子を含むことができる。各記述子を検証するために、スキーマ検証器は、各記述子に対応する記述子スキーマをプルイン又は読み取ることができる。
【0144】
このステップでは、入力文書のスキーマが検証される。例えば、入力文書に必要な記述子が全て含まれているかどうか、;入力文書内に記述子等の未知の要素が存在するか否か。
【0145】
ステップ2-意味検証
このステップでは、入力文書の意味が検証される。
【0146】
表1、表3、表5、及び表7に示すように、「追加の制約」列で定義されているように、記述文書に追加の制約を課すことができる。これらの制約は、記述子レベルで適用することができ、以下のような追加の要件を含むことができる:1つ以上のパラメータが記述子に存在するべきではない;1つ以上のパラメータが記述子に存在しなければならない;同じ記述子に特定のパラメータを含めるか除外するための記述子に基づく前提条件/トリガ;異なる記述子に特定のパラメータを含めるか除外するための1つの記述子に基づく前提条件/トリガ;記述文書内の記述子は、前提条件が満たされる場合、追加のオブジェクトを有するべきである;記述文書などの記述子には、更なる制限を課す必要がある。
【0147】
幾つかの例示的な実装形態では、意味検証器は、ルール表のセットをコンパイルすることができ、各表は、特定の記述定義表に対する追加の制約を含む。例えば、ルール表のセットは、WDDルール表、TDDルール表、FDDルール表、及びMDDルール表を含むことができる。例えば、表の各行は制約を表すことができる。
【0148】
幾つかの例示的な実装形態では、上記のルール表は記述子レベルに適用することができる。すなわち、各記述子は、追加の制約を含む対応するルール表を有することができる。
【0149】
このステップでは、記述ファイル(例えば、WDD、TDD、FDD、MDD)又は記述子ファイルなどの入力文書について、その意味が、例えばルール表のセットに基づいて検証される。
【0150】
一例として、TDDには「処理」記述子がある。この記述子には、「以下のパラメータ、すなわち、キーワード;機能制限;接続マップは存在しないものとする」という追加の制約が課される(表5参照)。したがって、TDDのためのルール表に基づいて、そのようなパラメータが存在しないことを保証するために、入力TDDの意味がチェックされる。或いは、ルール表は記述子レベルでコンパイルされてもよい。この場合、意味検証器は、対応する記述子ルール表をベースラインとして使用することができる。この例では、表は「処理」記述子ルール表となる。
【0151】
したがって、このステップでは、ルール表のセットを使用することによって、入力文書の意味を検証することができる。
【0152】
ステップ1及びステップ2はそれぞれ、検証結果を示す検証レポートを生成することができる。検証失敗の場合、失敗コード及び/又は詳細な失敗理由が検証レポートに記録され得る。ステップ1及びステップ2の両方の検証結果を示す結合レポートも生成され得る。
【0153】
幾つかの例示的な実装形態では、ウェブインターフェース、又はウェブサービス406は、NBMP検証器によって提供されてもよい。入力文書は、ウェブサービスを介してNBMP検証器にアクセスすることによって検証することができる。
【0154】
NBMPシステムでは、メディアサービスは様々なベンダによって提供され得る。各ベンダは、ワークフローマネージャエンティティ、メディア処理エンティティ、タスクエンティティ、及び機能リポジトリエンティティなどの独自のNBMPエンティティを実装することができる。異なるベンダに属するエンティティは、互いに相互運用する必要があり得る。エンティティの不適合は、ベンダ及び/又はオペレータに運用、保守、及び/又はトラブルシューティングのコストを追加する可能性がある。例えば、どのエンティティが適合していないかを特定するには、多大な時間と労力が必要である。円滑なメディアストリーミングサービスを保証するために、これらのエンティティのそれぞれがNBMP規格に準拠することが重要である。本開示では、NBMPエンティティ検証器がNBMPエンティティの適合性を検証するための様々な実施形態について説明する。適合性は、API;状態移行;イベント/タスク/ワークフローの監視、報告、及び通知;これらの実体間の相互作用を含む様々な態様をカバーし得る。
【0155】
図5a~
図5dは、NBMPエンティティ検証器の例を示す。これらの検証器の各々は、NBMPエンティティと相互作用し、NBMPエンティティの適合性をテスト/検証するために使用される。適合性テストは、以下で詳細に説明するように、異なる観点から実行することができる。
【0156】
幾つかの例示的な実装形態では、各APIの作成、更新、検索、及び削除動作などのAPI動作がテストされる。例えば、
【0157】
ワークフローAPIの場合、以下の動作、すなわち、CreateWorkflow、UpdateWorkflow、DeleteWorkflow、及びRetrieveWorkflowがテストされる。
【0158】
タスクAPIの場合、以下の動作、すなわち、CreateTask、UpdateTask、GetTask、及びDeleteTaskがテストされる。
【0159】
機能発見APIの場合、以下の動作、すなわち、DiscoverFunctions、DiscoverFunctionsInGroup、及びDiscoverGroupsOfFunctionがテストされる。
【0160】
MPE APIの場合、以下の動作、すなわち、RetrieveCapabilities及びUpdateMPEがテストされる。
【0161】
幾つかの例示的な実装形態では、NBMPエンティティの監視、報告、及び通知機能は、NBMPエンティティ検証器によってテストされる。
【0162】
図5bを参照すると、NBMPエンティティ検証器は、MPEエンティティから報告及び/又は通知を受信することができる。NBMPエンティティ検証器は、受信した報告及び/又は通知の健全性を更にチェックすることができる。
【0163】
図5cを参照すると、NBMPエンティティ検証器は、タスクエンティティから報告及び/又は通知を受信することができる。NBMPエンティティ検証器は、受信した報告及び/又は通知の健全性を更にチェックすることができる。
【0164】
図5dを参照すると、NBMPエンティティ検証器は、ワークフローマネージャエンティティから報告及び/又は通知を受信することができる。NBMPエンティティ検証器は、受信した報告及び/又は通知の健全性を更にチェックすることができる。
【0165】
幾つかの例示的な実装形態では、
図5cに示すように、NBMPエンティティ検証器は、1つ以上のタスクの構成を含むタスク構成ファイルから入力を取得することができる。各タスクについて、NBMPエンティティ検証器は、その対応する構成(タスク構成ファイルから取得される)を使用して、タスクAPI(例えば、構成を使用してAPI機能呼び出しパラメータを形成する)を駆動することができる。
【0166】
NBMPエンティティ検証器は、タスクAPIを介して、Monitor descriptor、Reporting descriptor、及び/又はNotification descriptorを構成してもよい。報告/通知が受信されると、検証器は、報告/通知がタスクエンティティに供給された対応する構成に適合するかどうかを更に検証することができる。
【0167】
例えば、報告記述子には、イベント、変数、システムイベント、システム変数、報告タイプ、報告間隔、報告開始時刻、URL、及び配信方法のパラメータを構成することができる。NBMPエンティティ検証器は、受信した報告がこれらのパラメータに適合することを検証することができる。例えば、報告のタイプは「報告タイプ」パラメータと一致し、報告間隔は「報告間隔」パラメータと一致するはずである。
【0168】
別の例では、通知記述子には、イベント、変数、システムイベント、システム変数、通知時間、重大度、通知タイプ、URL、通知間隔のパラメータが構成されてもよい。NBMPエンティティ検証器は、受信した報告がこれらのパラメータに適合することを検証することができる。
【0169】
幾つかの例示的な実装形態では、NBMPエンティティ検証器は、様々なNBMPエンティティの状態移行挙動を検証することができる。例えば、前のセクションで説明したように、ワークフローマネージャはワークフローの状態移行をサポートする必要があり、タスクエンティティはタスクの状態移行をサポートする必要がある。
【0170】
幾つかの例示的な実装形態では、状態移行は、例えば、NBMPエンティティへのAPI呼び出しを介して、NBMPエンティティ検証器によって駆動され得る。すなわち、NBMPエンティティ検証器は、API呼び出しを呼び出して、状態移行、又は一連の状態移行をトリガすることができる。
【0171】
幾つかの例示的な実装形態では、NBMPエンティティ検証器は、複数のエンティティをシミュレートすることができ、NBMPソースを更にシミュレートすることができる。したがって、エンドツーエンドサービスをシミュレートすることができ、関連するNBMPエンティティをテストすることができる。例えば、NBMPエンティティ検証器は、シミュレートされたNBMPソースを使用してNBMPサービスを開始することができる。これは、ワークフローマネージャと機能リポジトリ、タスク、及びMPEとの間の相互作用をトリガする。
図5dに示すように、ワークフローマネージャは、ワークフローAPI、タスクAPI、機能リポジトリAPI、及びMPE APIを含むAPI呼び出しを介して、NBMPエンティティ検証器(又はNBMPエンティティ検証器内のそれぞれのシミュレートされたNBMPエンティティ)と相互作用することができる。NBMPエンティティ検証器はまた、対応する相互作用もトリガするNBMPサービスを修正又は削除することができる。ワークフローマネージャと、タスクエンティティ、機能リポジトリエンティティ、及びMPEエンティティなどの他のNBMPエンティティとの間の相互作用。NBMPエンティティ検証器は、NBMP要件に従う相互作用を検証することができる。
【0172】
幾つかの例示的な実装形態では、ワークフローマネージャ実装形態は、NBMP規格で定義された全てのAPIをサポートしない場合がある。それらの場合、適合性テストは、定義されたものに限定される。例えば、実装がワークフローAPIのみをサポートする場合、テストはワークフローAPIに限定される。
【0173】
幾つかの例示的な実装形態では、NBMPエンティティ検証器によって実行される検証テストは、テストケースのセットを含むことができ、各テストケースは、テスト対象エンティティのAPI、機能要件、又は状態マシンの1つ以上の態様をテストする。各テストケースについて、1つ以上の文書(例えば、記述文書)を作成する必要があり、検証器はそれらの文書を入力として使用してテストを実行する必要がある。検証器は、エンティティから通知及び報告を受信し、各テストケースにおいてそれらを正しい結果と照合することができる。
【0174】
図6は、NBMPシステムにおいてネットワークベースのメディア処理(NBMP)エンティティを検証するための例示的な方法600を示し、方法は、少なくとも1つのプロセッサ上で実行されるNBMPエンティティ検証器によって実行され、方法600は、以下のステップ、すなわち、NBMPエンティティによってサポートされるAPI動作に対応するアプリケーションプログラミングインターフェース(API)を呼び出すステップ610であって、API動作が、作成動作、更新動作、検索動作、又は削除動作のうちの少なくとも1つに関連するステップ610、NBMPエンティティから応答を受信するステップ620、及び応答に基づいて、NBMPエンティティがAPI動作に対応するAPIテストに合格するかどうかを決定するステップ630の一部又は全部を含むことができる。
【0175】
本開示では、NBMPシステムにおいてネットワークベースのメディア処理(NBMP)文書を検証するための方法が開示される。少なくとも1つのプロセッサ上で動作するNBMP文書検証器によって実行され、方法は、NBMP文書を取得するステップであって、NBMP文書が、記述文書、又は記述子文書のうちの少なくとも1つを含む、ステップと、NBMP文書に基づいてベースラインスキーマ及びベースラインルールを選択するステップと、ベースラインスキーマに基づいてNBMP文書のスキーマを検証するステップと、ベースラインルールに基づいてNBMP文書の意味を検証するステップと、NBMP文書のスキーマ及び意味を検証した結果に基づいて、NBMP文書がNBMP規格に準拠しているかどうかを決定するステップとを含むことができる。
【0176】
上記の方法では、NBMP文書は、以下のフォーマット、すなわち、JavaScript Object Notation(JSON)フォーマット、又は拡張マークアップ言語(XML)フォーマットのうちの少なくとも1つで提示される。
【0177】
上記の方法では、記述文書は、ワークフロー記述文書(WDD);タスク記述文書(TDD);機能記述文書(FDD);又はMPE機能記述文書(MDD)のうちの少なくとも1つを含み、記述子文書は、記述文書内の記述子に対応する文書を含む。
【0178】
上記の方法において、NBMP文書に基づいてベースラインスキーマ及びベースラインルールを選択するステップは、記述文書がWDDであることに応答して、NBMPシステムにおいて定義されているようなWDDベースラインスキーマを選択するステップと、記述文書が前記TDDであることに応答して、NBMPシステムにおいて定義されているようなTDDベースラインスキーマを選択するステップと、記述文書がFDDであることに応答して、NBMPシステムにおいて定義されているようなFDDベースラインスキーマを選択するステップと、記述文書がMDDであることに応答して、NBMPシステムで定義されているMDDベースラインスキーマを選択するステップとを含むことができる。
【0179】
上記の方法では、ベースラインルールは、NBMP文書内の少なくとも1つの記述子に課される追加の制約に基づいてコンパイルすることができる。
【0180】
上記の方法では、少なくとも1つの記述子に課される追加の制約は、
パラメータは、少なくとも1つの記述子に存在すべきではない、
パラメータは、少なくとも1つの記述子に存在しなければならない、
前記少なくとも1つの記述子内のパラメータに対する追加の制限、又は
前提条件が満たされる場合、NBMP文書内の少なくとも1つの記述子又は別の記述子は追加のオブジェクトを有するべきである
のうち少なくとも1つを含んでもよい。
【0181】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。更に、方法(又は実施形態)の各々は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。一例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。NBMPに加えて、本開示の実施形態は、他のタイプのメディア処理技術/規格に適用されてもよい。
【0182】
前述された技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つ以上のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図7は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1800)を示す。
【0183】
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによる、直接、又は解釈、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブル、コンパイル、リンク、又は同様のメカニズムを受けることができる任意の適切な機械語又はコンピュータ言語を使用してコード化することができる。
【0184】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータ又はその構成要素上で実行することができる。
【0185】
コンピュータシステム(1800)に関して
図7に示す構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用又は機能の範囲に関する限定を示唆することを意図していない。また、構成要素の構成が、コンピュータシステム(1800)の例示的な実施形態に示された構成要素のいずれか1つ又は組み合わせに関連する依存性又は要件を有すると解釈すべきではない。
【0186】
コンピュータシステム(1800)は、幾つかのヒューマンインターフェース入力デバイスを含んでよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き、など)、オーディオ入力(音声、拍手、など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)、を通じて1人以上の人間のユーザによる入力に応答するものであってよい。ヒューマンインターフェースデバイスは、(音声、音楽、周囲の音などの)オーディオ、(走査画像、静止画カメラから取得された写真画像などの)画像、(2次元ビデオ、立体ビデオを含む3次元ビデオなどの)ビデオなどの、人間による意識的な入力に必ずしも直接関連しない特定のメディアを取り込むために使用することもできる。
【0187】
入力ヒューマンインターフェースデバイスは、キーボード(1801)、マウス(1802)、トラックパッド(1803)、タッチ画面(1810)、データグローブ(図示せず)、ジョイスティック(1805)、マイク(1806)、スキャナ(1807)、カメラ(1808)(各々が1つだけ図示されている)のうちの1つ以上を含んでよい。
【0188】
更に、コンピュータシステム(1800)は、幾つかのヒューマンインターフェース出力デバイスを含み得る。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて1人以上の人間のユーザの感覚を刺激することができる。そのようなヒューマンインターフェース出力デバイスとして、触覚出力デバイス(例えば、タッチ画面(1810)、データグローブ(図示せず)、又はジョイスティック(1805)による触覚フィードバックであるが、入力デバイスとして機能することがない触覚フィードバック装置も存在し得る)、オーディオ出力デバイス(スピーカ(1809)、ヘッドホン(図示せず)、など)、視覚出力デバイス(それぞれタッチ画面入力機能を有しても、有さなくてもよく、それぞれ触覚フィードバック機能を有しても、有さなくてもよく、一部は二次元視覚出力、或いは立体グラフィック出力、仮想現実メガネ(図示せず)、ホログラフィック表示、又はスモークタンク(図示せず)などの手段による三次元を超える出力を出力可能であってよいCRT画面、LCD画面、プラズマ画面、又はOLED画面を含む画面(1810)など)、及びプリンタ(図示せず)を挙げることができる。
【0189】
コンピュータシステム(1800)は、CD/DVD又は同様の媒体を用いるCD/DVD ROM/RW(1820)を含む光学媒体(1821)、サムドライブ(1822)、リムーバブルハードドライブ又はソリッドステートドライブ(1823)、テープ及びフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの特化型のROM/ASIC/PLDベースのデバイス(図示せず)、などの人間にとってアクセス可能な記憶デバイス及びそれらの関連の媒体も含むことができる。
【0190】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解するべきである。
【0191】
コンピュータシステム(1800)は、1つ以上の通信ネットワーク(1855)へのインターフェース(1854)も含むことができる。ネットワークは、例えば、無線ネットワーク、有線ネットワーク、又は光ネットワークであってよい。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両用及び産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビ及び地上波テレビを含むテレビの有線又は無線広域デジタルネットワーク、CAN busを含む車両用及び産業用などが含まれる。あるネットワークには、幾つかの汎用データポート又は周辺バス(1849)(例えば、コンピュータシステム(1800)のUSBポート)に一般的な仕方で取り付けられる外部ネットワークインターフェースアダプタが必要であり、その他のネットワークについては、後述のようにシステムバスに取り付けることによってコンピュータシステム(1800)のコアに一般的な仕方で組み込まれる(例えば、PCコンピュータシステムにはEthernetインターフェースであったりスマートフォンコンピュータシステムにはセルラーネットワークインターフェースであったりする)。このようなネットワークのいずれを用いても、コンピュータシステム(1800)は他のエンティティと通信することができる。このような通信は、一方向受信専用(例えば、テレビ放送)、一方向送信専用(例えば、CANbusから特定のCANbusデバイスへ)、或いは例えばローカル又は広域デジタルネットワークを用いた他のコンピュータシステムに対する双方向であり得る。特定のプロトコル及びプロトコルスタックは、前述されたこれらのネットワーク及びネットワークインターフェースの各々で使用することができる。
【0192】
前述のヒューマンインターフェースデバイス、人間にとってアクセス可能な記憶デバイス、及びネットワークインターフェースを、コンピュータシステム(1800)のコア(1840)に取り付けることができる。
【0193】
コア(1840)は、1つ以上の中央処理装置(CPU)(1841)、グラフィックス処理装置(GPU)(1842)、フィールドプログラマブルゲートエリア(FPGA)(1843)の形態をとる特化型プログラム可能処理装置、特定のタスク用のハードウェアアクセラレータ(1844)、グラフィックアダプタ(1850)、などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)(1845)、ランダムアクセスメモリ(1846)、並びにユーザがアクセスできない内蔵ハードドライブ及びSSDなどの内部大容量ストレージ(1847)と共に、システムバス(1848)を介して接続され得る。幾つかのコンピュータシステムにおいて、システムバス(1848)は、追加のCPU及びGPUなどによる拡張を可能にするために、1つ以上の物理的なプラグの形態でアクセス可能であってよい。周辺機器を、コアのシステムバス(1848)に直接、或いは周辺バス(1849)を介して、取り付けることができる。一例において、画面(1810)をグラフィックアダプタ(1850)に接続することができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0194】
CPU(1841)、GPU(1842)、FPGA(1843)、及びアクセラレータ(1844)は、前述のコンピュータコードを組み合わせにて構築することができる幾つかの命令を実行することができる。このコンピュータコードを、ROM(1845)又はRAM(1846)に記憶することができる。RAM(1846)に過渡的データも記憶することができる一方で、恒久的なデータを、例えば内部大容量ストレージ(1847)に記憶することができる。任意のメモリデバイスに関する高速な記憶及び検索を、1つ以上のCPU(1841)、GPU(1842)、大容量ストレージ(1847)、ROM(1845)、RAM(1846)、などに密接に関連付けられてよいキャッシュメモリを用いることによって可能にすることができる。
【0195】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードをそこに有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであり得るか、又はそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
【0196】
限定を課さない例として、アーキテクチャ(1800)を有し、特にコア(1840)を有するコンピュータシステムは、1つ以上のプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ以上の有形のコンピュータ可読媒体で実施されたソフトウェアを実行した結果として機能を提供することができる。このようなコンピュータ可読媒体は、前述されているような、ユーザが直接動作し得る大容量ストレージに関連する媒体であることが可能であり、更には、コア内蔵大容量ストレージ(1847)やROM(1845)などの非一時性のストレージであるコア(1840)の特定のストレージであることも可能である。本開示の様々な実施形態を実施するソフトウェアを、このようなデバイスに記憶して、コア(1840)によって実行することができる。コンピュータ可読媒体は、個々の必要性に応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアにより、コア(1840)、特にコア(1840)中のプロセッサ(CPU、GPU、FPGAなどを含む)が、RAM(1846)に記憶されているデータ構造の定義と、ソフトウェアによって定義されているプロセスに応じたこのようなデータ構造の修正とを含む、本出願で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行することができる。これに加えて、又はこれの代わりとして、本出願で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに動作したり、ソフトウェアと協働したりすることができる回路(例えばアクセラレータ(1844))にロジックがハードワイヤードされたり、ロジックが別の仕方で実施された結果としてコンピュータシステムは機能を提供することができる。必要に応じて、「ソフトウェア」と記載されている場合にはロジックを包含する場合があり、逆も可能である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、又はその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0197】
本開示は幾つかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、及び様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨及び範囲内にある多数のシステム及び方法を考案することができることが理解されよう。
【符号の説明】
【0198】
100 環境
110 ユーザデバイス
120 プラットフォーム
122 クラウドコンピューティング環境
124 コンピューティングリソース
124-1 アプリケーション
124-2 仮想マシン
124-3 仮想化ストレージ
124-4 ハイパーバイザ
130 ネットワーク
200 デバイス、HTTPステータスコード
201 HTTPステータスコード
202 HTTPステータスコード
210 バス
220 プロセッサ
230 メモリ
240 記憶構成要素
250 入力構成要素
260 出力構成要素
270 通信インターフェース
300 NBMPシステム、NBMPアーキテクチャ
310 NBMPソース
311 NBMPワークフローAPI
312 機能発見API
313 機能発見API
314 API
315 API
316 メディアフロー
320 NBMPワークフローマネージャ
330 機能リポジトリ
340 メディア処理エンティティ
341 タスク
342 構成
343 メディア処理機能
350 メディアソース
360 メディアシンク、メディアソース
402 スキーマ検証器
404 意味検証器
406 ウェブサービス
600 方法
1800 コンピュータシステム
1801 キーボード
1802 マウス
1803 トラックパッド
1805 ジョイスティック
1806 マイク
1807 スキャナ
1808 カメラ
1809 スピーカ
1810 画面
1821 光学媒体
1822 サムドライブ
1823 ソリッドステートドライブ
1840 コア
1841 中央処理装置(CPU)
1842 グラフィックス処理装置(GPU)
1843 フィールドプログラマブルゲートエリア(FPGA)
1844 ハードウェアアクセラレータ
1845 読み出し専用メモリ(ROM)
1846 ランダムアクセスメモリ
1847 内部大容量ストレージ
1848 システムバス
1849 周辺バス
1850 グラフィックアダプタ
1854 インターフェース
1855 通信ネットワーク
【手続補正書】
【提出日】2024-05-31
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ネットワークベースのメディア処理(NBMP)エンティティをNBMPシステムにおいて検証するための方法であって、前記方法は、少なくとも1つのプロセッサ上で動作するNBMPエンティティ検証器によって実行され、前記方法は、
前記NBMPエンティティによってサポートされるアプリケーション・プログラミング・インターフェース(API)動作に対応するAPIを呼び出すステップであって、前記API動作が、
作成動作、
更新動作、
検索動作、又は
削除動作
のうちの少なくとも1つに関連する、ステップと、
前記NBMPエンティティから応答を受信するステップと、
前記応答に基づいて、前記NBMPエンティティが前記API動作に対応するAPIテストに合格するかどうかを決定するステップと、
を含む、方法。
【請求項2】
前記NBMPエンティティは、
機能リポジトリエンティティ、
タスクエンティティ、
ワークフローマネージャエンティティ、又は
メディア処理エンティティ(MPE)
のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出すステップの前に、前記方法は、
前記NBMPエンティティと関連付けられるリソースを示す記述文書を検索するステップであって、前記リソースが、
ワークフローリソース、
タスクリソース、又は
MPE機能リソース
のうちの1つを含む、ステップと、
前記リソースに基づいてAPIパラメータを定式化するステップと、
を更に含み、
前記APIを呼び出すステップは、
前記APIパラメータを前記APIの入力パラメータとして使用して、前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出すステップ
を含む、請求項1又は2に記載の方法。
【請求項4】
前記応答は、ハイパーテキスト転送プロトコル(HTTP)ステータスコード、又は応答本体のうちの少なくとも一方を含み、
NBMPエンティティが前記APIテストに対応する前記テストに合格するかどうかを決定するステップは、
前記HTTPステータスコードに基づいて前記NBMPエンティティが前記APIテストに合格するかどうかを決定するステップ
を含む、請求項1又は2に記載の方法。
【請求項5】
前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出すステップの前に、前記方法は、
前記NBMPエンティティと関連付けられるリソースを示す記述文書を検索するステップであって、前記記述文書が、監視記述子、報告記述子、又は通知記述子のうちの少なくとも1つを含む記述子を示す、ステップと、
前記記述子に基づいてAPIパラメータを定式化するステップと、
を更に含み、
前記APIを呼び出すステップは、
前記APIパラメータをAPIの入力パラメータとして使用して、前記NBMPエンティティによってサポートされる前記API動作に対応する前記APIを呼び出すステップ
を含む、請求項1又は2に記載の方法。
【請求項6】
前記報告記述子を含む前記記述子に応答して、前記NBMPエンティティから報告を受信するステップであって、前記報告が、前記報告記述子に基づいて前記NBMPエンティティによって送信される、ステップ、又は
前記通知記述子を含む前記記述子に応答して、前記NBMPエンティティから通知を受信するステップであって、前記通知が、前記通知記述子に基づいて前記NBMPエンティティによって送信される、ステップ
を更に含む、請求項5に記載の方法。
【請求項7】
前記NBMPエンティティがワークフローマネージャエンティティであり、
前記APIを呼び出すステップは、前記ワークフローマネージャエンティティによって構成されて前記NBMPエンティティ検証器によってトリガされるワークフローの状態移行をトリガし、
前記方法は、
ワークフローライフサイクルルールに従って前記ワークフローの前記状態移行を検証するステップ
を更に含む、請求項1又は2に記載の方法。
【請求項8】
前記NBMPエンティティがタスクエンティティであり、
前記APIを呼び出すステップは、前記タスクエンティティによって構成されて前記NBMPエンティティ検証器によってトリガされるタスクの状態移行をトリガし、
前記方法は、
タスクライフサイクルルールに従って前記タスクの前記状態移行を検証するステップ
を更に含む、請求項1又は2に記載の方法。
【請求項9】
前記NBMPエンティティ検証器はNBMPソースをシミュレートすることができ、前記方法は、
前記ワークフローマネージャエンティティによって実行されるべき一連のアクションをトリガするステップであって、前記一連のアクションが、ワークフローの作成、前記ワークフローの検索、前記ワークフローの更新、及び前記ワークフローの削除を含む、ステップと、
前記NBMPシステム内で必要とされるように、以下のAPI、すなわち、ワークフローAPI、タスクAPI、機能リポジトリAPI、又はMPE APIのうちの少なくとも1つを使用して、前記NBMPエンティティ検証器と相互作用する前記ワークフローマネージャエンティティを検証するステップと、を更に含む、請求項2に記載の方法。
【請求項10】
ネットワークベースのメディア処理(NBMP)システム内のNBMPエンティティを検証するためのNBMPエンティティ検証器をホストするデバイスであって、前記デバイスは、コンピュータ命令を記憶するためのメモリと、前記メモリと通信するプロセッサとを備え、前記プロセッサが前記コンピュータ命令を実行すると、前記プロセッサは、前記デバイスに、
請求項1に記載の方法を実行させるように構成される、デバイス。
【請求項11】
コンピュータ可読命令を
含むコンピュータプログラムであって、前記コンピュータ可読命令は、ネットワークベースのメディア処理(NBMP)エンティティ検証器であってNBMPシステム内のNBMPエンティティを検証するためのNBMPエンティティ検証器をホストするデバイスのプロセッサによって実行されると、前記プロセッサに、
請求項1に記載の方法を実行させる、コンピュータプログラム。
【国際調査報告】