(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-01
(45)【発行日】2023-12-11
(54)【発明の名称】ライブアップリンクストリーミングのための5Gフレームワーク制御を通じたネットワークベースのメディア処理ワークフロー管理
(51)【国際特許分類】
H04L 67/51 20220101AFI20231204BHJP
G06F 9/48 20060101ALI20231204BHJP
H04L 65/60 20220101ALI20231204BHJP
【FI】
H04L67/51
G06F9/48 370
H04L65/60
(21)【出願番号】P 2022518233
(86)(22)【出願日】2020-11-30
(86)【国際出願番号】 US2020062542
(87)【国際公開番号】W WO2021201920
(87)【国際公開日】2021-10-07
【審査請求日】2022-03-22
(32)【優先日】2020-03-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-09-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
【審査官】前田 健人
(56)【参考文献】
【文献】3GPP TS 26.238 V16.4.2 (2020-03-27),2020年03月27日,p8-11,13,24-26,46-47,<URL> https://www.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3243
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/51
G06F 9/48
H04L 65/60
(57)【特許請求の範囲】
【請求項1】
プロセッサによって実行可能な、5Gライブアップリンクストリーミングのためのフレームワーク(FLUS)制御を通じてネットワークベースのメディア処理(NBMP)ワークフローを確立する方法であって、
複数のFLUS発見及び能力メカニズムを通じてネットワークプラットフォームの複数のシンク及びネットワーク能力を発見することと、
FLUSソースとFLUSシンクとを含む制御インターフェースを通じてNBMPワークフローを作成、更新、検索及び削除することと、
を含み、
前記5G FLUS制御は、NBMPソースとNBMPワークフローマネージャとの間
で情報をトンネリング
するのをサポートするよう
に拡張
される、
方法。
【請求項2】
前記ネットワーク能力は、識別子によって並びに前記ネットワーク能力の記述を検索することができるユニフォームリソースロケータ(URL)場所によって記述される、請求項1に記載の方法。
【請求項3】
前記能力の前記記述は、前記NBMPワークフローマネージャが、NBMP、前記URL場所、及び前記能力を記述する能力記述ドキュメントをサポートすることを示す、NBMPスキーム識別子を含む、請求項2に記載の方法。
【請求項4】
前記ネットワーク能力は、発見応答に明示的に含まれる、請求項1に記載の方法。
【請求項5】
前記シンクを発見することは、前記NBMPソースが前記FLUSソースに要求を行うことを含む、請求項1に記載の方法。
【請求項6】
前記NBMPワークフローの前記作成に基づいて、ハイパーテキスト転送プロトコル(HTTP)状態コードが戻される、請求項1に記載の方法。
【請求項7】
前記FLUSシンクは、前記NBMPワークフローマネージャに要求を送信して現在のプラットフォーム能力を取得する、請求項1に記載の方法。
【請求項8】
5Gライブアップリンクストリーミングのためのフレームワーク(FLUS)制御を通じてネットワークベースのメディア処理(NBMP)ワークフローを確立するコンピュータシステムであって、
コンピュータプログラムコードを格納するように構成される1つ以上のコンピュータ可読非一時的記憶媒体と、
前記コンピュータプログラムコードにアクセスして、前記コンピュータプログラムコードによって命令されるよう作動するように構成される、1つ以上のコンピュータプロセッサと
、を含み、前記コンピュータプログラムコードは、
前記1つ以上のコンピュータプロセッサに、複数のFLUS発見及び能力メカニズムを通じてネットワークプラットフォームの複数のシンク及びネットワーク能力を発見させるように構成される、発見コードと、
前記1つ以上のコンピュータプロセッサに、FLUSソースとFLUSシンクとを含む制御インターフェースを通じてNBMPワークフローをそれぞれ作成、更新、検索及び削除させるように構成される、それぞれの作成、更新、検索及び削除コードと、
を含み、
前記5G FLUS制御は、NBMPソースとNBMPワークフローマネージャとの間
で情報をトンネリング
するのをサポートするよう
に拡張さ
れる、
コンピュータシステム。
【請求項9】
前記ネットワーク能力は、識別子によって並びに前記ネットワーク能力の記述を検索することができるユニフォームリソースロケータ(URL)場所によって記述される、請求項8に記載のコンピュータシステム。
【請求項10】
前記能力の前記記述は、前記NBMPワークフローマネージャが、NBMP、前記URL場所、及び前記能力を記述する能力記述ドキュメントをサポートすることを示す、NBMPスキーム識別子を含む、請求項9に記載のコンピュータシステム。
【請求項11】
前記ネットワーク能力は、発見応答に明示的に含まれる、請求項8に記載のコンピュータシステム。
【請求項12】
前記シンクを発見することは、前記NBMPソースが前記FLUSソースに要求を行うことを含む、請求項8に記載のコンピュータシステム。
【請求項13】
前記NBMPワークフローの前記作成に基づいて、ハイパーテキスト転送プロトコル(HTTP)状態コードが戻される、請求項8に記載のコンピュータシステム。
【請求項14】
前記FLUSシンクは、前記NBMPワークフローマネージャに要求を送信して現在のプラットフォーム能力を取得する、請求項8に記載のコンピュータシステム。
【請求項15】
5Gライブアップリンクストリーミングのためのフレームワーク(FLUS)制御を通じてネットワークベースのメディア処理(NBMP)ワークフローを確立するコンピュータプログラムをその上に格納する非一時的なコンピュータ可読媒体であって、
前記コンピュータプログラムは、1つ以上のコンピュータプロセッサに、
複数のFLUS発見及び能力メカニズムを通じてネットワークプラットフォームの複数のシンク及びネットワーク能力を発見させ、
FLUSソースとFLUSシンクとを含む制御インターフェースを通じてNBMPワークフローを作成、更新、検索及び削除させ
る、
ように構成され、
前記5G FLUS制御は、NBMPソースとNBMPワークフローマネージャとの間
で情報をトンネリング
するのをサポートするよう
に拡張さ
れる、
コンピュータ可読媒体。
【請求項16】
前記ネットワーク能力は、識別子によって並びに前記ネットワーク能力の記述を検索することができるユニフォームリソースロケータ(URL)場所によって記述される、請求項15に記載のコンピュータ可読媒体。
【請求項17】
前記能力の前記記述は、前記NBMPワークフローマネージャが、NBMP、前記URL場所、及び前記能力を記述する能力記述ドキュメントをサポートすることを示す、NBMPスキーム識別子を含む、請求項16に記載のコンピュータ可読媒体。
【請求項18】
前記ネットワーク能力は、発見応答に明示的に含まれる、請求項15に記載のコンピュータ可読媒体。
【請求項19】
前記シンクを発見することは、前記NBMPソースが前記FLUSソースに要求を行うことを含む、請求項15に記載のコンピュータ可読媒体。
【請求項20】
前記NBMPワークフローの前記作成に基づいて、ハイパーテキスト転送プロトコル(HTTP)状態コードが戻される、請求項15に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の参照)
この出願は、2020年3月30日に出願された米国仮特許出願第63/001,946号、及び2020年9月28日に出願された米国特許出願第17/034,778号からの優先権を主張し、それらの全文を本明細書に援用する。
【0002】
本開示は、一般的には、データ処理の分野に関し、より具体的には、媒体処理に関する。
【背景技術】
【0003】
ネットワークベースのメディア処理(NBMP:Network-based Media Processing)標準(規格)は、フラグメンテーション(fragmentation)に対処し且つあらゆるクラウドプラットフォーム及びあらゆるIPネットワーク上でメディア処理を実行するための統一された方法を提供するよう開発された。第3世代パートナーシッププロジェクト(3GPP:3rd Generation Partnership Project)ライブアップリンクストリーミングのためのフレームワーク(FLUS:Framework for Live Uplink Streaming)プロトコルは、ソースデバイスからネットワークへのマルチメディアコンテンツのアップリンクストリーミング及びそのコンテンツを1つ以上の宛先へ送信/配信するためのメカニズム(機構)を提供する。
【発明の概要】
【0004】
実施形態は、5G FLUS制御を通じてNBMPワークフローを確立する方法、システム及びコンピュータ可読媒体に関する。1つの態様によれば、5G FLUSを通じてNBMPワークフローを確立する方法が提供される。本方法は、複数の5G FLUS発見及び能力メカニズムを通じてネットワークプラットフォームの複数のシンクおよびネットワーク能力を発見することを含むことがある。NBMPワークフローが、FLUSソース-シンク制御インターフェースを通じて作成、更新、検索及び削除され、それによって、5G FLUS制御は、NBMPソースとNBMPワークフローマネージャとの間で情報をトンネリングするのをサポートするように拡張される。
【0005】
別の態様によれば、5G FLUS制御を通じてNBMPワークフローを確立するコンピュータシステムが提供される。コンピュータシステムは、1つ以上のプロセッサ、1つ以上のコンピュータ可読メモリ、1つ以上のコンピュータ可読有形記憶デバイス、および少なくとも1つ以上のメモリのうちの少なくとも1つのメモリを介して1つ以上のプロセッサのうちの少なくとも1つのプロセッサによる実行のために1つ以上の記憶デバイスのうちの少なくとも1つの記憶デバイスに格納されるプログラム命令を含むことがあり、それによって、コンピュータシステムは、方法を実行することができる。方法は、複数のFLUS発見及び能力メカニズムを通じてネットワークプラットフォームの複数のシンクおよびネットワーク能力を発見することを含むことがある。NBMPワークフローは、FLUSソース-シンク制御インターフェースを通じて作成、更新、検索及び削除され、それによって、FLUS制御は、NBMPソースとNBMPワークフローマネージャとの間で情報をトンネリングするのをサポートするように拡張される。
【0006】
さらに別の態様によれば、5G FLUS制御を通じてNBMPワークフローを確立するためのコンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ以上のコンピュータ可読記憶デバイス、及び1つ以上の有形記憶デバイスのうちの少なくとも1つの有形記憶デバイスに格納されるプログラム命令を含み、プログラム命令は、プロセッサによって実行可能である。プログラム命令は、複数のFLUS発見及び能力メカニズムを通じてネットワークプラットフォームの複数のシンク及びネットワーク能力を発見することを相応して含むことがある方法を実行するプロセッサによって実行可能である。NBMPワークフローは、FLUSソース-シンク制御インターフェースを通じて作成、更新、検索及び削除され、それによって、5G FLUS制御は、NBMPソースとNBMPワークフローマネージャとの間で情報をトンネリングするのをサポートするように拡張される。
【図面の簡単な説明】
【0007】
これらの及び他の目的、構成及び利点は、添付の図面に関連して読まれるべき例示的な実施形態の以下の詳細な記述から明らかになるであろう。図面の様々な構成は、縮尺通りでない。何故ならば、図示は、詳細な記述に関連して当業者の理解を容易にする際の明確性のためのものであるからである。
【
図1】少なくとも1つの実施例に従ったネットワーク化されたコンピュータ環境を図示している。
【
図2】少なくとも1つの実施形態に従った、5G FLUS制御を通じてNBMPワークフローを確立するためのシステムのブロック図である
【
図3】少なくとも1つの実施形態に従った、5G FLUS制御を通じてNBMPワークフローを確立するためのプログラムによって実行されるステップを図示する動作フローチャートである
【
図4】少なくとも1つの実施形態に従った、
図1に示すコンピュータ及びサーバの内部及び外部コンポーネントのブロック図である
【
図5】少なくとも1つの実施形態に従った、
図1に示すコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図6】少なくとも1つの実施形態に従った、
図5の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0008】
特許請求する構造及び方法の詳細な実施形態が本明細書に開示されるが、開示の実施形態は、様々な形態で具現されることがある特許請求する構造及び方法を例示しているに過ぎないことを理解することができる。しかしながら、それらの構造体及び方法は、多くの異なる形態で具現されることがあり、本明細書に記載する例示的な実施形態に限定されるものと解釈されるべきではない。むしろ、これらの例示的な実施形態は、この開示が網羅的かつ完全であり、当業者に範囲を完全に伝えるように提供される。記述では、よく知られている構成及び技術の詳細は、提示の実施形態を不必要に不明瞭にすることを避けるために省略されることがある。
【0009】
実施形態は、一般的には、データ処理の分野に関し、より具体的には、媒体処理に関する。以下に記載する例示的な実施形態は、とりわけ、NBMP(Network-based Media Processing)(ネットワークベースのメディア処理)ソースがFLUS(Framework for Live Uplink Streaming)(ライブアップリンクストリーミング用フレームワーク)制御パスを通じてNBMPワークフローマネージャを完全に制御するためのメカニズム(機構)を提供するシステム、方法、及びコンピュータプログラムを提供する。従って、幾つかの実施形態は、ソースクライアントがFLUS制御インターフェースを通じてワークフローを管理するためのNBMPソースであるアーキテクチャを提供することによって、コンピューティング(計算)の分野を向上させる能力を有する。
【0010】
前述のように、ネットワークベースのメディア処理(NBMP)標準(規格)は、フラグメンテーション(fragmentation)に対処し且つあらゆるクラウドプラットフォーム及びあらゆるIPネットワーク上でメディア処理を実行するための統一された方法を提供するよう開発された。第3世代パートナーシッププロジェクト(3GPP:3rd Generation Partnership Project)ライブアップリンクストリーミングのためのフレームワーク(FLUS:Framework for Live Uplink Streaming)プロトコルは、ソースデバイスからネットワークへのマルチメディアコンテンツのアップリンクストリーミング及びそのコンテンツを1つ以上の宛先(destinations)へ送信すること(sending)/配信すること(distributing)ためのメカニズムを提供する。NBMP標準において、NBMPソースは、メディアワークフローを作成、実行、管理、及びモニタリング(監視)するためにワークフローマネージャにワークフロー記述を提供するエンティティ(実体)であることがある。NBMPソースとワークフローマネージャとの間の対話は、NBMP動作アプリケーションプログラミングインターフェース(API)のセットを通じて行われることがある。3GPP FLUSプロトコルの場合、メディアストリームのソースデバイスは、ネットワークを通じるシンク(sink)とのアップリンクセッションを確立することがある。FLUS APIは、ソースデバイスがセッションを制御することを可能にし、シンクがソースデバイスのフィードバック又は遠隔制御を提供することも可能にする。3GPP FLUSプロトコルは、ソースデバイスによるセッション制御更新の一部としてNBMPワークフロー記述ドキュメント(WDD:Workflow Description Document)を含むことをサポートすることがある。しかしながら、プロトコルは、ワークフローの確立後にNBMPワークフローを管理するためのソースデバイスとシンクとの間の対話を含まないことがある。更に、それは、それが実行中のNBMPワークフローからフィードバックを受け取って、ワークフローを動的に管理及び修正できるように、NBMPワークフローマネージャ又はタスクがソースデバイスにレポート及び通知を提供するアーキテクチャを提供しないことがある。従って、アップリンクのソースであるクライアントデバイスにある制御装置を備えるアップリンクストリーミングのためにクラウドベースのワークフロー処理を使用することによって、NBMPソースがFLUS制御パスを通じてNBMPワークフローマネージャを完全に制御するメカニズムを提供することが有利なことがある。これは、ソースクライアントがFLUS制御インターフェースを通じてワークフローを管理するためのNBMPソースであるアーキテクチャを提供することがある。
【0011】
様々な実施形態に従った方法、装置(システム)、及びコンピュータ可読媒体のフロー図及び/又はブロック図を参照して、態様が本明細書において記載される。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装され得ることが理解されるであろう。
【0012】
以下に記載する例示的な実施形態は、5G FLUS制御を通じてNBMPワークフローを確立することを可能にするシステム、方法、及びコンピュータプログラムを提供する。ここで
図1を参照すると、5G FLUS制御を通じてNBMPワークフローを確立するための媒体処理システム100(以下、「システム」という)を図示するネットワーク化されたコンピュータ環境の機能ブロック図が示されている。
図1は、1つの実装の例示にすぎず、異なる実施形態が実装されることがある環境に関する如何なる制限も暗示しないことが理解されるべきである。図示の環境に対する多くの修正が、設計及び実装要件に基づいて行われてよい。
【0013】
システム100は、コンピュータ102と、サーバコンピュータ114とを含むことがある。コンピュータ102は、通信ネットワーク110(以下「ネットワーク」という)を介してサーバコンピュータ114と通信することがある。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に格納され、ユーザとインターフェースしてサーバコンピュータ114と通信することを可能にする、ソフトウェアプログラム108とを含むことがある。
図4を参照して以下に議論するように、コンピュータ102は、内部コンポーネント800A及び外部コンポーネント900Aをそれぞれ含んでよく、サーバコンピュータ114は、内部コンポーネント800B及び外部コンポーネント900Bをそれぞれ含んでよい。コンピュータ102は、例えば、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又はプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意のタイプのコンピューティングデバイスであってよい。
【0014】
サーバコンピュータ114は、
図5及び
図6に関して以下に議論するように、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、又はサービスとしてのインフラストラクチャ(IaaS)のような、クラウドコンピューティングサービスモデルにおいて作動することもある。サーバコンピュータ114は、プライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウドのような、クラウドコンピューティング展開モデル内に配置されることもある。
【0015】
5G FLUS制御を通じたNBMPワークフローを確立するために使用されることがあるサーバコンピュータ114は、データベース112と対話することがあるNBMP FLUS制御プログラム116(以下「プログラム」という)を実行するために有効にされる。NBMP FLUS制御プログラム方法は、
図3に関して以下により詳細に説明される。一実施形態において、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして作動することがある一方で、プログラム116は、主としてサーバコンピュータ114上で動作することがある。代替的な実施形態において、プログラム116は、主として1つ以上のコンピュータ102上で動作することがある一方で、サーバコンピュータ114は、プログラム116によって使用されるデータの処理及び格納のために使用されることがある。プログラム116は、スタンドアローンのプログラムであってよく、或いはより大きなNBMP FLUS制御プログラムに統合されてよいことが留意されるべきである。
【0016】
しかしながら、プログラム116のための処理は、ある場合には、コンピュータ102及びサーバコンピュータ114の間で任意の比率で共有されてよいことが留意されるべきである。別の実施形態において、プログラム116は、1つよりも多くのコンピュータ、サーバコンピュータ、又はコンピュータとサーバコンピュータとの幾つかの組み合わせ、例えば、ネットワーク110に亘って単一のサーバコンピュータ114と通信する複数のコンピュータ102で作動してよい。別の実施形態において、例えば、プログラム116は、ネットワーク110に亘って複数のクライアントコンピュータと通信する複数のサーバコンピュータ114で作動してよい。代替的に、プログラムは、ネットワークに亘ってサーバ及び複数のクライアントコンピュータと通信するネットワークサーバで作動してよい。
【0017】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、又はそれらの組み合わせを含んでもよい。一般的に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続とプロトコルとの任意の組み合わせであることができる。ネットワーク110は、例えば、ローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)、公衆交換電話ネットワーク(PSTN)のような電気通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動ネットワーク(PLMN)、メトロポリタンエリアネットワーク(MAN)、専用ネットワーク、アドホックネットワーク、イントラネット、光ファイバベースネットワーク、もしくは同等のもの、及び/又はこれらのもしくは他のタイプのネットワークの組み合わせのような、様々なタイプのネットワークを含むことがある。
【0018】
図1に示すデバイス及びネットワークの数及び配置は、一例として提供されている。実際には、
図1に示されたものよりも、追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、又は異なる配置のデバイス及び/又はネットワークが存在することがある。更に、
図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてよく、或いは
図1に示す単一のデバイスは、複数の分散デバイスとして実装されてよい。追加的に又は代替的に、システム100のデバイスのセット(例えば、1つ以上のデバイス)は、システム100のデバイスの別のセットによって実行されるものとして記載される1つ以上の機能を実行してよい。
【0019】
次に
図2を参照すると、3GPP FLUSアーキテクチャ200のブロック図が示されている。3GPP FLUSアーキテクチャ200は、第1のユーザ環境202と、第2のユーザ環境204とを含んでよい。第1のユーザ環境202は、NBMPソース205と、1つ以上のキャプチャデバイス206と、FLUSソース208とを含んでよい。FLUSソース208は、制御ソース210と、メディアソース212と、支援受信機214と、遠隔制御ターゲット216とを含んでよい。第2のユーザ環境204は、FLUSシンク218と、NBMPワークフローマネージャ219と、支援送信機220と、NBMPワークフロー221と、リモートコントローラ222とを含んでよい。FLUSシンク218は、制御シンク224と、メディアシンク226とを含んでよい。
【0020】
NBMPソース205は、ネットワーク又は宛先デバイス(すなわち、第2のユーザ環境204)でワークフロー処理を定義してよい。NBMPワークフローマネージャ219及びNBMPワークフロー221は、ネットワーク又は宛先デバイス(すなわち、第2のユーザ環境204)上に存在してよい。NBMPワークフロー221は、幾つかのステージを含んでよい。ステージ1(シンク発見(sink discovery))において、NBMPソース205は、FLUSソース208に要求することによって既存のシンクを発見することがあり、結果的に、既存のシンクは、FLUS発見ポイント(discovery point)に送信されることがある。FLUS発見ポイントは、シンクのリストをFLUSソース208に提供してよく、結果的に、FLUSソース208は、それをNBMPソース205に提供することがある。
【0021】
ステージ2(能力発見(capability discovery))において、NBMPソース205は、シンクリスト内の提供されたシンクのうちの1つのシンクの能力を要求することがある。FLUSソース208は、要求をFLUSシンク218に渡すことがある。FLUSシンク218は、そのプラットフォームの能力を有することがあり、或いはNBMPワークフローマネージャ219に要求して現在のプラットフォームの能力を取得することがある。プラットフォームの能力は、現在実行中のワークフローに依存して変化する場合があることが理解されてよい。プラットフォーム又はプラットフォームへのリンクの能力記述は、FLUSシンク218及びFLUSソース208を介してNBMPソース205に返されてよい。ステージ2の応答は、ワークフローマネージャがNBMPをサポートすることを示すNBMPスキーム識別子、プラットフォームの能力を検索することができる場所(URI)についてのURL、及びプラットフォームの能力を記述する能力記述ドキュメントを含むことがある。
【0022】
ステージ3(ワークフロー作成)において、NBMPソース205は、FLUSソース208及びFLUSシンク218を通じてNBMPワークフロー221の作成を要求することがある。ステージ3の間に、NBMPワークフロー221は、すぐに作成され、拒否され、又は遅延の可能性がある状態で作成されることがあるので、ステージ3の応答は、HTTP応答コード201及びWDD、HTTP応答コード4xx又は5xx及び任意でWDD、又はHTTP応答コード202及びHTTPヘッダRetry-After値のいずれかを含むことがある。
【0023】
次に
図3を参照すると、5G FLUS制御を通じてNBMPワークフローを確立するためのプログラムによって実行されるステップを図示する動作フローチャート300が示されている。
図3は、
図1及び
図2の助けを借りて記載されることがある。前述のように、NBMP FLUS制御プログラム116(
図1)は、ソースクライアントがFLUS制御インターフェースを通じてワークフローを管理するNBMPソースであるアーキテクチャを提供することがある。
【0024】
302で、ネットワークプラットフォームの複数のシンク及びネットワーク能力は、複数のFLUS発見及び能力メカニズムを通じて発見される。ネットワーク能力は、識別子によって並びにネットワーク能力の記述を検索することができる或いは発見応答に明示的に含められることがあるURL場所によって記述されることがある。動作中、NBMPソース205(
図2)は、FLUSソース208(
図2)に要求することによって、既存のシンクを発見することがある。シンクのリストは、NBMPソース205に戻されることがある。
【0025】
304で、NBMPワークフローは、FLUSソースとFLUSシンクとを含む制御インターフェースを通じて作成され、更新され、検索され、削除される。5G FLUS制御は、NBMPソースとNBMPワークフローマネージャとの間
で情報をトンネリン
グ(tunneling
)するのをサポートするよう拡張される。動作中、NBMPソース205(
図2)は、FLUSソース208(
図2)及びFLUSシンク218(
図2)を通じてNBMPワークフロー221(
図2)の作成を要求することがある。HTTP状態コード及びWDDは、NBMPワークフロー221が作成されるときに戻されることがある。
【0026】
図3は、1つの実装の例示を提供するに過ぎず、異なる実施形態がどのように実装されることがあるかに関する如何なる制約も暗示しないことが理解されてよい。図示の環境に対する多くの修正が、設計及び実装要件に基づいて行われることがある。
【0027】
図4は、例示的な実施形態に従った、
図1に示すコンピュータの内部及び外部コンポーネント(構成要素)のブロック
図400である。
図4は、1つの実装の例示を提供するに過ぎず、異なる実施形態が実装されることがある環境に関する如何なる制約も暗示しないことが理解されるべきである。図示の環境に対する多くの修正が、設計及び実装要件に基づいて行われることがある。
【0028】
コンピュータ102(
図1)及びサーバコンピュータ114(
図1)は、
図4に示す内部コンポーネント800A、B及び外部コンポーネント900A、Bのそれぞれのセットを含むことがある。内部コンポーネント800のセットの各々は、1つ以上のプロセッサ820と、1つ以上のコンピュータ可読RAM822と、及び1つ以上のバス826上の1つ以上のコンピュータ可読ROM824と、1つ以上のオペレーティングシステム828と、1つ以上のコンピュータ可読有形記憶デバイス830を含む。
【0029】
プロセッサ820は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせにおいて実装される。プロセッサ820は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は別のタイプの処理コンポーネントである。幾つかの実施態様において、プロセッサ820は、機能を実行するようにプログラムされ得る1つ以上のプロセッサを含む。バス826は、内部コンポーネント800A、Bの間の通信を可能にするコンポーネントを含む。
【0030】
サーバコンピュータ114(
図1)上の1つ以上のオペレーティングシステム828、ソフトウェアプログラム108(
図1)、及びNBMP FLUS制御プログラム116(
図1)は、(典型的にはキャッシュメモリを含む)それぞれのRAM822のうちの1つ以上のRAMを介してそれぞれのプロセッサ820のうちの1つ以上のプロセッサによる実行のために、1つ以上のコンピュータ可読有形記憶デバイス830に格納される。
図4に示す実施形態において、コンピュータ可読有形記憶デバイス830の各々は、内部ハードドライブの磁気ディスク記憶デバイスである。代替的に、コンピュータ可読有形記憶デバイス830の各々は、ROM824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、ソリッドステートディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、カートリッジ、磁気テープ、及び/又はコンピュータプログラム及びデジタル情報を格納することができる別のタイプの非一時的コンピュータ可読有形記憶デバイスのような、半導体記憶デバイスである。
【0031】
内部コンポーネント800A、Bの各セットは、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、又は半導体記憶デバイスのような、1つ以上のポータブルコンピュータ可読有形記憶デバイス936から読み出し、且つそのような1つ以上のポータブルコンピュータ可読有形記憶デバイス936に書き込むための、R/Wドライブ又はインターフェース832も含む。ソフトウェアプログラム108(
図1)及びNBMP FLUS制御プログラム116(
図1)のようなソフトウェアプログラムは、それぞれのポータブルコンピュータ可読有形記憶デバイス936の1つ以上に格納され、それぞれのR/Wドライブ又はインターフェース832を介して読み込まれ、それぞれのハードドライブ830にロードされることができる。
【0032】
内部コンポーネント800A、Bの各セットは、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、又は3G、4G、又は5G無線インターフェースカード、又は他の有線又は無線通信リンクのような、ネットワークアダプタ又はインターフェース836も含む。サーバコンピュータ114(
図1)上のソフトウェアプログラム108(
図1)及びNBMP FLUS制御プログラム116(
図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク又は他のワイドエリアネットワーク)及びそれぞれのネットワークアダプタ又はインターフェース836を介して、外部コンピュータからコンピュータ102(
図1)及びサーバコンピュータ114にダウンロードされることができる。ネットワークアダプタ又はインターフェース836から、サーバコンピュータ114上のソフトウェアプログラム108及びNBMP FLUS制御プログラム116は、それぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含むことがある。
【0033】
外部コンポーネント900A、Bのセットの各々は、コンピュータディスプレイモニタ920、キーボード930、及びコンピュータマウス934を含むことができる。外部コンポーネント900A、Bは、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、及び他のヒューマンインターフェースデバイスも含むことができる。内部コンポーネント800A、Bのセットの各々は、コンピュータディスプレイモニタ920、キーボード930、及びコンピュータマウス934にインターフェースするためのデバイスドライバ840も含む。デバイスドライバ840、R/Wドライブ又はインターフェース832、及びネットワークアダプタ又はインターフェース836は、ハードウェア及び(記憶デバイス830及び/又はROM824に格納される)ソフトウェアを含む。
【0034】
この開示は、クラウドコンピューティングに関する詳細な記述を含むが、本明細書に記載される教示の実装は、クラウドコンピューティング環境に限定されないことが、前もって理解される。むしろ、幾つかの実施形態は、いま知られているか或いは後に開発される任意の他のタイプのコンピューティング環境と共に実装可能である。
【0035】
クラウドコンピューティングは、最小限の管理努力又はサービスのプロバイダ(提供者)とのやりとりで迅速に提供し且つ解放することができる、構成可能なコンピューティングリソースの共有プール(ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービス)への便利なオンデマンド型のネットワークアクセスを可能にするためのサービス送達のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含むことがある。
【0036】
特徴は、以下の通りである。
オンデマンドセルフサービス(on-demand self-service):クラウド消費者は、必要に応じて、サービスプロバイダとの人的なやりとりを必要とせずに自動的に、サーバ時間やネットワークストレージのような、コンピューティング能力を一方的に提供することができる。
広域ネットワークアクセス(broad network access):能力は、ネットワークを通じて利用可能であり、異種の薄型又は厚型クライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
リソースプーリング(resource pooling):プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、異なる物理リソース及び仮想リソースが、需要に従って動的に割り当てられ、再割り当てされる。消費者は、一般的には、提供されるリソースの正確な場所に対する制御又は知識を持たないが、より高いレベルの抽象化(例えば、国、州、又はデータセンタ)で場所を特定し得ることがあるという点において、場所の独立性の感覚(sense of location independence)がある。
迅速な弾力性(rapid elasticity):能力は、場合によっては自動的に、急速にスケールアウトし、急速にスケールインするよう急速に解放されるために、急速に且つ弾力的に提供されることができる。消費者にとって、プロビジョニング(provisioning)のために利用可能な能力は、しばしば無制限であるように思われ、任意のときに任意の量において購入されることができる。
測定されたサービス(measured service):クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した何らかのレベルの抽象化で計測能力(metering capability)を活用することによって、リソースの使用を自動的に制御し且つ最適化する。リソースの使用をモニタリング(監視)し、制御し、報告して、利用されるサービスのプロバイダ及び消費者の両方のために透明性を提供することができる。
【0037】
サービスモデルは、以下の通りである。
サービスとしてのソフトウェア(SaaS:Software as a Service):消費者に提供される能力は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用することである。アプリケーションは、ウェブブラウザのようなシンクライアント(thin client)インターフェース(例えば、ウェブベースの電子メール)を通じて様々なクライアントデバイスからアクセス可能である。消費者は、ユーザ固有のアプリケーション構成の設定を可能な例外として、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、個々のアプリケーション能力さえも含む、基盤となるインフラストラクチャを管理又は制御しない。
サービスとしてのプラットフォーム(PaaS:Platform as a Service):消費者に提供される能力は、クラウドインフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成される、消費者作成又は取得されたアプリケーションを展開する(deploy)ことである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基盤となるクラウドインフラストラクチャを管理又は制御しないが、展開されるアプリケーションに対する制御を有し、場合によってはアプリケーションをホストする環境構成に対する制御を有する。
サービスとしてのインフラストラクチャ(laaS:Infrastructure as a Service):消費者に提供される能力は、消費者が、オペレーティングシステム及びアプリケーションを含み得る、任意のソフトウェアを展開し且つ実行することができる、処理、ストレージ、ネットワーク、及びその他の基本的なコンピューティングリソースを提供することである。消費者は、基盤となるクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションに対する制御を有し、場合によっては選択されたネットワークコンポーネント(例えば、ホストファイアウォール)の限定的な制御を有する。
【0038】
展開モデルは、以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、組織専用に運用される。それは組織又は第三者によって管理されることがあり、敷地内又は敷地外に存在することがある。
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンスの考慮事項)を持つ特定のコミュニティをサポートする。それは組織又は第三者によって管理されることがあり、敷地内又は敷地外に存在することがある。
パブリッククラウド:クラウドインフラストラクチャは、一般市民又は大きな業界団体に利用可能にされてよく、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、ユニークなエンティティのままであるが、データ及びアプリケーション可搬性(portability)を可能にする標準化された又は独自の技術(例えば、クラウド間の負荷均平衡(load-balancing)のためのクラウドバースト(bursting))によって結合される、2つ以上のクラウド(プライベート、コミュニティ又はパブリック)から構成される。
【0039】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合(low coupling)、モジュール性(modularity)、及び意味論的相互運用性(semantic interoperabilityに焦点を当てたサービス指向である。クラウドコンピューティングの核心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0040】
図5を参照すると、例示的なクラウドコンピューティング環境500が示されている。図示のように、クラウドコンピューティング環境500は、1つ以上のクラウドコンピューティングノード10を含み、例えば、携帯情報端末(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は自動車コンピュータシステム54Nのような、クラウド消費者によって使用されるローカルコンピューティングデバイスが、クラウドコンピューティングノード10を用いて通信することがある。クラウドコンピューティングノード10は、互いに通信することがある。クラウドコンピューティングノード10は、上述のようなプライベート、コミュニティ、公共、又はハイブリッドクラウド、又はそれらの組み合わせのような、1つ以上のネットワーク内で、物理的に又は仮想的にグループ化されることがある(図示せず)。これは、クラウドコンピューティング環境500が、クラウド消費者がローカルコンピューティングデバイス上のリソースを維持する必要のないサービスとしての、インフラストラクチャ、プラットフォーム及び/又はソフトウェアを提供することを可能にする。
図5に示すコンピューティングデバイス54A~54Nのタイプは、単に例示的であることが意図されており、クラウドコンピューティングノード10及びクラウドコンピューティング環境500は、(例えば、ウェブブラウザを使用して)任意のタイプのネットワーク及び/又はネットワークアドレス指定可能な接続を通じて任意のタイプのコンピュータかされたデバイスと通信し得ることが理解されよう。
【0041】
図6を参照すると、クラウドコンピューティング環境500(
図5)によって提供される機能抽象化層600(functional abstraction layers)のセットが示されている。
図6に示すコンポーネント、層、及び機能は、単に例示的であることが意図されており、実施形態はこれに限定されないことが前もって理解されるべきである。図示のように、以下の層及び対応する機能が提供される。
【0042】
ハードウェア及びソフトウェア層60は、ハードウェアコンポーネント及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65、及びネットワーク及びネットワークコンポーネント66を含む。幾つかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーション・サーバソフトウェア67及びデータベースソフトウェア68を含む。
【0043】
仮想化層70は、以下の仮想エンティティの例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、及び仮想クライアント75を提供することがある、抽象化層を提供する。
【0044】
一例において、管理層80は、以下に記載する機能を提供することがある。リソースプロビジョニング81は、クラウドコンピューティング環境内のタスクを実行するために利用されるコンピューティングリソース及びその他のリソースの動的な調達(procurement)を提供する。計測(metering)及び価格設定(pricing)82は、クラウドコンピューティング環境内でリソースが利用されるときのコスト追跡、及びこれらのリソースの消費についての請求(billing)又は請求書発行(invoicing)を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含んでよい。セキュリティは、クラウド消費者及びタスクのための身元検証、並びにデータ及び他のリソースのための保護を提供する。ユーザポータル83は、消費者及びシステム管理者のためにクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウドコンピューティングリソースの割当て及び管理を提供する。サービスレベル合意(SLA:Service Level Agreement)の企画及び充足85は、将来の要件がSLAに従って予測されるクラウドコンピューティングリソースの事前の準備(arrangement)及び調達を提供する。
【0045】
ワークロード層90は、クラウドコンピューティング環境が利用されることがある機能性の例を提供する。この層から提供されることがあるワークロード及び機能の例は、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育送達93、データ分析処理94、トランザクション処理95、及びNBMP FLUS制御96を含む。NBMP FLUS制御96は、ソースクライアントが、FLUS 制御インターフェースを通じてワークフローを管理することがあるNBMPソースであることを可能にする。
【0046】
幾つかの実施形態は、あらゆる可能な技術的詳細レベルの集積でシステム、方法、及び/又はコンピュータ可読媒体に関することがある。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読非一時的記憶媒体(又は複数の媒体)を含むことがある。
【0047】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持し且つ格納することができる有形デバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又はこれらの適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、以下のもの、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカード又は記録された命令をその上に有する溝内の隆起構造のような機械的に符号化されたデバイス、又はそれらの任意の適切な組み合わせを含む。本明細書で使用するとき、コンピュータ可読記憶媒体は、電波又は他の自由に伝搬する電磁波、導波管又は他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号のような、それ自体が一時的な信号であると解釈されるべきではない。
【0048】
本明細書に記載のコンピュータ可読プログラム命令は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドネットワーク及び/又は無線ネットワークを介して、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイス/処理デバイスに、或いは外部コンピュータ又は外部記憶デバイスにダウンロードされることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含むことがある。各コンピューティングデバイス/処理デバイス内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティングデバイス/処理デバイス内のコンピュータ可読記憶媒体における格納のためにコンピュータ可読なプログラム命令を転送する。
【0049】
演算を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又はSmalltalk、C++又は同等のもののようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は類似のプログラミング言語のような手続プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアローンのソフトウェアパッケージとして、部分的にユーザのコンピュータ上で且つ部分的にリモートコンピュータ上で、或いは全体的に遠隔コンピュータ又はサーバ上で実行されてよい。後者のシナリオにおいて、遠隔コンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてよく、或いは、接続は、外部コンピュータ(例えば、インターネットサービスプロバイダを使用してインターネットを通じて)行われてよい。幾つかの実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む、電子回路構成は、態様又は動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路構成をパーソナライズすることによって、コンピュータ可読プログラム命令を実行してよい。
【0050】
これらのコンピュータ可読プログラム命令は、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図のブロック又は複数のブロックにおいて特定される機能/行為を実装する手段を生成するように、機械を製造するために、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されてよい。これらのコンピュータ可読プログラム命令は、格納される命令をその中に有するコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図のブロック又は複数のブロックにおいて特定される機能/行為の態様を実装する命令を含む製造物品を含むように、コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスに指令して、特定の方法で機能させることができる、コンピュータ可読記憶媒体に格納されてもよい。
【0051】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置又は他のデバイスで実行される命令が、フローチャート及び/又はブロック図のブロック又は複数のブロックにおいて特定される機能/行為を実装するように、一連の動作ステップをコンピュータ、他のプログラマブル装置、又は他のデバイスで実行させて、コンピュータ実装プロセスを生成するために、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードされてもよい。
【0052】
図におけるフローチャート及びブロック図は、様々な実施形態に従ったシステム、方法、及びコンピュータ可読媒体の可能な実装のアーキテクチャ、機能性、及び動作を示す。この点に関して、フローチャート又はブロック図中の各ブロックは、特定される論理機能を実装するための1つ以上の実行可能な命令を含む、モジュール、セグメント、又は命令の一部を表すことがある。方法、コンピュータシステム、及びコンピュータ可読媒体は、図面に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック、又は異なって配置されたブロックを含んでよい。幾つかの代替的な実装において、ブロックに示す機能は、図に示す順序から外れて生じてよい。例えば、連続して示される2つのブロックは、実際には、同時に又は実質的に同時に実行されてよく、或いは、ブロックは、関与する機能に依存して、逆の順序で実行されてよい。なお、ブロック図及び/又はフローチャート図示の各ブロック、並びにブロック図及び/又はフローチャート図示中のブロックの組み合わせは、特定された機能又は行為を実行する或いは特定目的のハードウェア及びコンピュータ命令の組み合わせを実行する特定目的のハードウェアベースのシステムによって実装されることができる。
【0053】
本明細書に記載するシステム及び/又は方法は、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせにおいて実装されてよいことが明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の特殊化された制御ハードウェア又はソフトウェアコードは、実装を限定するものでない。よって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計されてよいことが理解される。
【0054】
本明細書中で使用される如何なる要素、行為、又は命令も、明示的にそのように記載されない限り、重要又は必須と解釈されるべきではない。また、本明細書で使用されるとき、単数形の物品は、1つ以上の品目を含むことが意図されており、「1つ以上(one or more)」と互換的に使用されることがある。更に、本明細書で使用されるとき、「セット(set)」という用語は、1つ以上の品目(例えば、関連する品目、関連しない品目、関連する品目と関連しない品目との組み合わせなど)を含むことが意図されており、「1つ以上」と互換的に使用されることがある。1つの品目のみが意図される場合には、「1つ(one)」又は類似の用語が使用される。また、本明細書で使用されるとき、「有する(has)」、「有する(have)」、「有する(having)」という用語、又は同等の用語は、開放端(オープンエンド)の用語であることが意図されている。更に、「~に基づく(based on)」は、明示的に別段の記載がない限り、「少なくとも部分的に基づく(based, at least in part, on)」を意味することが意図されている。
【0055】
様々な態様及び実施形態の記述が例示の目的のために提示されているが、開示の実施形態を網羅することや開示の実施形態に限定されることを意図しない。構成の組み合わせが請求項に列挙され且つ/或いは明細書に開示されているとしても、これらの組み合わせは可能な実装の開示を限定することを意図しない。実際には、これらの構成の多くは、請求項に具体的に列挙されていない及び/又は明細書に開示されていない方法で組み合わされることがある。以下に列挙される各従属項は1つの請求項にのみ直接的に従属することがあるが、可能な実装の開示は、請求項のセット中のあらゆる他の請求項との組み合わせにおける各従属項を含む。多くの修正及び変形が、記載の実施形態の範囲から逸脱することなく当業者に明らかであろう。本明細書で使用する用語法は、実施形態の原理、市場で見出される技術に対する実際的な適用又は技術的な改良を最もよく説明するために、或いは当業者が本明細書で開示する実施形態を理解することを可能にするために選択された。