(57)【要約】      （修正有）【課題】メディア・ファイルをトランスコーディングする方法を提供する。【解決手段】アクセス・トークンと標的符号化フォーマットとを備えるジョブ構成情報をクライアント・コンピューティング・デバイスから受信し、クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信し、ジョブ構成情報のアクセス・トークンが有効であるかどうか決定し、アクセス・トークンが有効である場合、マルチメディア・ファイルを標的符号化フォーマットにトランスコーディングし、トランスコーディングされたマルチメディア・ファイルを記憶し、マルチメディア・ファイルのトランスコーディングと、トランスコードされたマルチメディア・ファイルの記憶との正常な完了を示すジョブ応答をクライアント・コンピューティング・デバイスに送る。【選択図】図４
2018185843.tif 000002
【特許請求の範囲】
【請求項１】
１以上のトランスコーディング・サーバが、ジョブ構成情報をクライアント・コンピューティング・デバイスから受信する工程であって、前記ジョブ構成情報は、アクセス・トークンと標的符号化フォーマットとを備える、工程と、
前記１以上のトランスコーディング・サーバが、前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する工程と、
前記１以上のトランスコーディング・サーバが、前記ジョブ構成情報のアクセス・トークンが有効であるかどうか決定する工程と、
前記ジョブ構成情報のアクセス・トークンが有効である場合、前記１以上のトランスコーディング・サーバが、前記マルチメディア・ファイルを前記標的符号化フォーマットにトランスコーディングする工程と、
前記１以上のトランスコーディング・サーバが、トランスコーディングされた前記マルチメディア・ファイルを記憶する工程と、
前記１以上のトランスコーディング・サーバが、前記マルチメディア・ファイルをトランスコーディングすることと、トランスコードされた前記マルチメディア・ファイルを記憶することとの正常な完了を示すジョブ応答を前記クライアント・コンピューティング・デバイスに送る工程と、
を備える方法。
【請求項２】
前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する前記工程は、前記クライアント・コンピューティング・デバイスから前記マルチメディア・ファイルの１以上のチャンクを受信することを含む、請求項１に記載の方法。
【請求項３】
前記マルチメディア・ファイルの１以上のチャンクの各々は、チャンクのサイズに関連付けられており、
前記方法は、現在のアップロード速度に基づいて前記チャンクのサイズを設定する工程をさらに備える、請求項２に記載の方法。
【請求項４】
前記ジョブ構成情報は、１以上のアップロード・ポリシを備え、前記１以上のアップロード・ポリシは、前記マルチメディア・ファイルの時間またはサイズの制限を指定する、請求項１に記載の方法。
【請求項５】
前記ジョブ応答は、トランスコーディングされたビデオのサイズと前記トランスコーディングされたビデオに関連付けられている１以上のセキュリティ・ポリシとをさらに示す、請求項１に記載の方法。
【請求項６】
前記ジョブ応答は、前記１以上のトランスコーディング・サーバと前記クライアント・コンピューティング・デバイスとの間の共有鍵暗号化に基づいて暗号化される、請求項１に記載の方法。
【請求項７】
前記アクセス・トークンは、所定の持続時間後、失効する、請求項１に記載の方法。
【請求項８】
ソフトウェアを含む１以上の非一時的なコンピュータ可読記憶媒体であって、実行されたとき、前記ソフトウェアは、
１以上のトランスコーディング・サーバが、ジョブ構成情報をクライアント・コンピューティング・デバイスから受信する工程であって、前記ジョブ構成情報は、アクセス・トークンと標的符号化フォーマットとを備える、工程と、
前記１以上のトランスコーディング・サーバが、前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する工程と、
前記１以上のトランスコーディング・サーバが、前記ジョブ構成情報のアクセス・トークンが有効であるかどうか決定する工程と、
前記ジョブ構成情報のアクセス・トークンが有効である場合、前記１以上のトランスコーディング・サーバが、前記マルチメディア・ファイルを前記標的符号化フォーマットにトランスコーディングする工程と、
前記１以上のトランスコーディング・サーバが、トランスコーディングされた前記マルチメディア・ファイルを記憶する工程と、
前記１以上のトランスコーディング・サーバが、前記マルチメディア・ファイルをトランスコーディングすることと、トランスコードされた前記マルチメディア・ファイルを記憶することとの正常な完了を示すジョブ応答を前記クライアント・コンピューティング・デバイスに送る工程と、
が行われるように構成される、媒体。
【請求項９】
前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する前記工程は、前記クライアント・コンピューティング・デバイスから前記マルチメディア・ファイルの１以上のチャンクを受信することを含む、請求項８に記載の媒体。
【請求項１０】
前記マルチメディア・ファイルの１以上のチャンクの各々は、チャンクのサイズに関連付けられており、
実行されたとき、前記ソフトウェアは、現在のアップロード速度に基づいて前記チャンクのサイズを設定する工程が行われるようにさらに構成される、請求項９に記載の媒体。
【請求項１１】
前記ジョブ構成情報は、１以上のアップロード・ポリシを備え、前記１以上のアップロード・ポリシは、前記マルチメディア・ファイルの時間またはサイズの制限を指定する、請求項８に記載の媒体。
【請求項１２】
前記ジョブ応答は、トランスコーディングされたビデオのサイズと前記トランスコーディングされたビデオに関連付けられている１以上のセキュリティ・ポリシとをさらに示す、請求項８に記載の媒体。
【請求項１３】
前記ジョブ応答は、前記１以上のトランスコーディング・サーバと前記クライアント・コンピューティング・デバイスとの間の共有鍵暗号化に基づいて暗号化される、請求項８に記載の媒体。
【請求項１４】
前記アクセス・トークンは、所定の持続時間後、失効する、請求項８に記載の媒体。
【請求項１５】
１以上のトランスコーディング・サーバを備えるシステムであって、各トランスコーディング・サーバは、
１以上のプロセッサと、
前記プロセッサに結合され、かつ、前記プロセッサによって実行可能な命令を備えるメモリと、を備え、
前記命令が実行されるとき、前記プロセッサは、
ジョブ構成情報をクライアント・コンピューティング・デバイスから受信する工程であって、前記ジョブ構成情報は、アクセス・トークンと標的符号化フォーマットとを備える、工程と、
前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する工程と、
前記ジョブ構成情報のアクセス・トークンが有効であるかどうか決定する工程と、
前記ジョブ構成情報のアクセス・トークンが有効である場合、前記マルチメディア・ファイルを前記標的符号化フォーマットにトランスコーディングする工程と、
トランスコーディングされた前記マルチメディア・ファイルを記憶する工程と、
前記マルチメディア・ファイルをトランスコーディングすることと、トランスコードされた前記マルチメディア・ファイルを記憶することとの正常な完了を示すジョブ応答を前記クライアント・コンピューティング・デバイスに送る工程と、
が行われるように構成される、システム。
【請求項１６】
前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する前記工程は、前記クライアント・コンピューティング・デバイスから前記マルチメディア・ファイルの１以上のチャンクを受信することを含む、請求項１５に記載のシステム。
【請求項１７】
前記マルチメディア・ファイルの１以上のチャンクの各々は、チャンクのサイズに関連付けられており、
前記命令が実行されたとき、前記プロセッサは、現在のアップロード速度に基づいて前記チャンクのサイズを設定する工程が行われるようにさらに構成される、請求項１６に記載のシステム。
【請求項１８】
前記ジョブ構成情報は、１以上のアップロード・ポリシを備え、前記１以上のアップロード・ポリシは、前記マルチメディア・ファイルの時間またはサイズの制限を指定する、請求項１５に記載のシステム。
【請求項１９】
前記ジョブ応答は、トランスコーディングされたビデオのサイズと前記トランスコーディングされたビデオに関連付けられている１以上のセキュリティ・ポリシとをさらに示す、請求項１５に記載のシステム。
【請求項２０】
前記ジョブ応答は、前記１以上のトランスコーディング・サーバと前記クライアント・コンピューティング・デバイスとの間の共有鍵暗号化に基づいて暗号化される、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、メディア・ファイルをアップロードおよびトランスコーディングすることに関する。
【背景技術】
【０００２】
ソーシャルネットワーキング・ウェブサイトを含むソーシャルネットワーキング・システムは、そのユーザ（人または組織）がソーシャルネットワーキング・システムと、およびソーシャルネットワーキング・システムを通じて互いに対話することを可能にする。ソーシャルネットワーキング・システムは、ユーザからの入力を用いて、ソーシャルネットワーキング・システム内でそのユーザに関連付けられているユーザ・プロフィールを作成し記憶することができる。ユーザ・プロフィールは、人口統計情報、通信チャネル情報、およびユーザの個人的関心に関する情報を含んでもよい。また、ソーシャルネットワーキング・システムは、ユーザからの入力を用いて、ソーシャルネットワーキング・システムの他のユーザとのユーザの関係の記録を作成および記憶し、サービス（たとえば、ウォール投稿、映像の共有、写真の共有、イベントの主催、メッセージング、ゲーム、または広告）を提供し、ユーザ間またはユーザの間でのソーシャルな対話を容易にすることができる。
【０００３】
スマートフォン、タブレット・コンピュータ、またはラップトップ・コンピュータなど、モバイル・コンピューティング・デバイスは、ＧＰＳ受信機、コンパス、ジャイロスコープ、または加速度計など、その場所、方向、または向きを決定するための機能を含むことがある。そのようなデバイスは、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信、近距離通信（ＮＦＣ）、もしくは赤外線（ＩＲ）通信、または無線ローカル・エリア・ネットワーク（ＷＬＡＮ）もしくはセルラ電話ネットワークなど、無線通信のための機能をも含む。そのようなデバイスは、１つまたは複数のカメラ、スキャナ、タッチ・スクリーン、マイクロフォン、またはスピーカをも含むことがある。モバイル・コンピューティング・デバイスはまた、ゲーム、ウェブ・ブラウザ、またはソーシャルネットワーキング・アプリケーションなど、ソフトウェア・アプリケーションを実行することができる。ソーシャルネットワーキング・アプリケーションを用いて、ユーザは、自分のソーシャル・ネットワーク内の他のユーザとつながり、通信し、情報を共有することができる。
【図面の簡単な説明】
【０００４】
【図１】サービスに関連付けられたマルチメディア・ファイルをアップロード、トランスコーディング、および記憶するための例示的なネットワーク環境の図。
【図２】ショート・ビデオをアップロードおよびトランスコーディングするための例示的なシステムの図。
【図３】マルチメディア・ファイルをアップロードするためにクライアント・コンピューティング・デバイスと通信するホスト・コンピューティング・サーバの例示的なフローチャート。
【図４】マルチメディア・ファイルをアップロード、トランスコーディング、および記憶するためにクライアント・コンピューティング・デバイスと通信するトランスコーディング・サーバの例示的なデシジョン・フローチャート。
【図５】例示的なコンピュータ・システムの図。
【発明を実施するための形態】
【０００５】
デジタル・カメラを含むモバイル・コンピューティング・デバイス（クライアント・コンピューティング・デバイスとも呼ばれることがある）を使用し、たとえばデジタル・ビデオ・クリップなどマルチメディア・ファイルを記録することができる。クライアント・コンピューティング・デバイスのユーザは、マルチメディア・ファイルをネットワーク上のサービスにアップロードすることができる。特定の実施形態では、クライアント・コンピューティング・デバイスは、サービスに関連付けられたホスト・コンピューティング・サーバに、マルチメディア・ファイルをサービスにアップロードするためのアップロード要求を送る。特定の実施形態では、ホスト・コンピューティング・デバイスは、アップロード要求を受信したとき、サービスに関連するマルチメディア・ファイルのアップロード、トランスコーディング、および記憶を実施するために、アクティブな切り離された、すなわちサードパーティのトランスコーディング・サーバのリストを識別する。特定の実施形態では、アクティブなトランスコーディング・サーバのリストが識別された後で、ホスト・コンピューティング・サーバは、識別されたトランスコーディング・サーバのリストと、１つまたは複数のアップロード・ポリシ、および固定時間に失効するアクセス・トークンをさらに備えるジョブ構成情報と共に、クライアント・コンピューティング・デバイスに返信を返送することができる。アクセス・トークンは、所与の持続時間の間、マルチメディア・ファイルをアップロードするために識別されたトランスコーディング・サーバのそれぞれに対するクライアント・コンピューティング・デバイスのアクセスを許可するために使用されてもよい。
【０００６】
特定の実施形態では、クライアント・コンピューティング・デバイスは、トランスコーディング・サーバをリストから選択し、ジョブ構成情報を選択されたトランスコーディング・サーバに送ることができる。選択されたトランスコーディング・サーバは、アクセス・トークンを検証し、その後、ネットワークを使用してクライアント・コンピューティング・デバイスからマルチメディア・ファイルのアップロードを許可することができる。アップロードが完了した後で、トランスコーディング・サーバは、マルチメディア・ファイルを標的符号化フォーマットにトランスコーディングし、トランスコーディングされたマルチメディア・ファイルを、結合されたストレージ・システム内に記憶し、アップロードの完了を示すジョブ応答をクライアント・コンピューティング・デバイスに送ることができる。
【０００７】
特定の実施形態では、クライアント・コンピューティング・デバイスは、トランスコーディング・サーバから受信されたジョブ応答をホスト・コンピューティング・デバイスに転送することができる。その後、選択されたトランスコーディング・サーバは、他の作業に使用可能とされてよい。
【０００８】
特定の実施形態では、ホスト・コンピューティング・デバイスによって送られ、クライアント・コンピューティング・デバイスによって受信された返信は、クライアント・コンピューティング・デバイスからトランスコーディング・サーバへのアップロード中に障害が発生した場合、フェールオーバを許可する。
【０００９】
上記で開示されている実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記で開示されている実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべて、一部を含むことも、どれも含まないこともある。
【００１０】
図１は、サービスに関連付けられたマルチメディア・ファイルをアップロード、トランスコーディング、および記憶するための例示的なネットワーク環境１００を示す。ネットワーク環境１００は、ネットワーク１６０によって互いに接続されているユーザ１１０、クライアント・コンピューティング・デバイス１２０、サービス・システム１３０、およびメディア・システム１７０を含む。図１は、ユーザ１１０、クライアント・コンピューティング・デバイス１２０、サービス・システム１３０、メディア・システム１７０、ネットワーク１６０の特定の構成を示すが、本開示は、ユーザ１１０、クライアント・コンピューティング・デバイス１２０、サービス・システム１３０、メディア・システム１７０、ネットワーク１６０の任意の好適な構成を企図する。限定するものとしてではなく一例として、クライアント・コンピューティング・デバイス１２０、サービス・システム１３０、およびメディア・システム１７０の２以上が互いに直接接続され、ネットワーク１６０をバイパスしてもよい。限定するものとしてではなく別の例として、クライアント・コンピューティング・デバイス１２０、サービス・システム１３０、およびメディア・システム１７０の２以上が、全体として、または部分的に互いに物理的に、または論理的に同じ場所にあってもよい。限定するものとしてではなく別の例として、メディア・システム１７０は、サービス・システム１３０から分離され、そこから独立して動作するサードパーティ・システムであってもよい。図１は、特定の数のユーザ１１０、クライアント・コンピューティング・デバイス１３０、サービス・システム１３０、メディア・システム１７０、およびネットワーク１６０を示すが、本開示は、任意の好適な数のユーザ１１０、クライアント・コンピューティング・デバイス１２０、サービス・システム１３０、メディア・システム１７０、およびネットワーク１６０を企図する。限定するものとしてではなく一例として、ネットワーク環境１００は、複数のユーザ１１０、クライアント・コンピューティング・デバイス１２０、サービス・システム１３０、メディア・システム１７０、およびネットワーク１６０を含んでもよい。各サービス・システム１３０は、１つまたは複数のホスト・コンピューティング・サーバ１３２をさらに含んでもよく、各メディア・システム１７０は、１つまたは複数のトランスコーディング・サーバ１７２、および１つまたは複数の結合されたストレージ・システム１７４をさらに備えてもよい。図１は、メディア・システム１７０の特定の実施形態を示すが、本開示は、各メディア・システム１７０に関連付けられたトランスコーディング・サーバ１７２およびストレージ・システム１７４の任意の好適な構成を企図する。限定するものとしてではなく一例として、１つまたは複数のトランスコーディング・サーバ１７２は、全体として、または部分的に１つまたは複数のストレージ・システム１７４に直接、物理的に、および電気的に結合されてもよい。限定するものとしてではなく別の例として、１つまたは複数のトランスコーディング・サーバ１７２は、全体として、または部分的に、１つまたは複数のストレージ・システム１７４と論理的に同じ場所にあり、通信可能に結合されてもよい。限定するものとしてではなく別の例として、トランスコーディング・サーバ１７２は、ホスト・コンピューティング・サーバ１３０から分離され、そこから独立して動作してもよい。
【００１１】
特定の実施形態では、ユーザ１１０は、サービス・システム１３０と、またはサービス・システム１３０を通じて対話または通信する個人（人間のユーザ）、エンティティ（たとえば、企業体、事業体、またはサードパーティ・アプリケーション）、または（たとえば、個人またはエンティティの）グループであってよい。限定するものとしてではなく例として、サービス・システム１３０は、ビデオ、音楽、およびピクチャ・データに関連付けられたオンライン・ホスティングおよび共有サービスを含んでもよい。特定の実施形態では、サービス・システム１３０は、オンライン・ソーシャル・ネットワークによってホストされるネットワーク・アドレス可能なコンピューティング・システムであってもよい。そのような実施形態では、サービス・システム１３０は、データを生成し、記憶し、受信し、送ることができる。限定するものとしてではなく例として、データは、ユーザプロフィール・データ、ユーザ・マルチメディア・データ、コンセプトプロフィール・データ、ソーシャルグラフ情報、位置情報、オンライン取引、または他の好適なデータであってよい。
【００１２】
各サービス・システム１３０は、ネットワーク環境１００の他の構成要素によって、直接、またはネットワーク１６０を通じてアクセスされてもよい。特定の実施形態では、各サービス・システム１３０は、ユーザ１１０がたとえば適切なプライバシ設定を設定することによって、自分達の識別情報をサービス・システム１３０によってログさせることにオプトインもしくはオプトアウトすること、または他のシステム（たとえば、メディア・システム１７０）とユーザ・データを共有することを可能にする認可サーバを含むことができる。ユーザのプライバシ設定は、そのユーザに関連付けられたどの情報がログされてもよいか、そのユーザに関連付けられた情報がどのようにログされてもよいか、そのユーザに関連付けられた情報がいつログされてもよいか、そのユーザに関連付けられた情報を誰がログしてもよいか、そのユーザに関連付けられた情報が誰と共有されてもよいか、および何の目的でそのユーザに関連付けられた情報がログまたは共有されてもよいか決定することができる。認可サーバは、ブロッキング、データ・ハッシング、匿名化、または他の好適な技法を適宜通じて、サービス・システム１３０のユーザの１つまたは複数のプライバシ設定を施行するために使用されてもよい。
【００１３】
特定の実施形態では、各メディア・システム１７０は、１つまたは複数のクライアント・コンピューティング・デバイス１２０からのマルチメディア・ファイルをアップロードおよびトランスコーディングし、トランスコーディングされたマルチメディア・ファイルを１つまたは複数のストレージ・システム１７４内で記憶するために１つまたは複数のトランスコーディング・サーバ１７２を備えるネットワーク・アドレス可能なコンピューティング・システムであってもよい。各トランスコーディング・サーバ１７２は、ユニフォーム・リソース・ロケータ（ＵＲＬ）、または他の任意の好適なネットワーク・アドレスを適宜備えるアドレスを有してもよい。限定するものとしてではなく一例として、マルチメディア・ファイルという用語は、デジタル・フォーマットで記憶された１つもしくは複数のビデオ・クリップ、１つもしくは複数の画像、または１つもしくは複数のオーディオ・クリップを指すことがある。各メディア・システム１７０は、たとえばデジタル・ビデオ・クリップ、デジタル画像もしくはデジタル・オーディオ・クリップ、またはデジタル・フォーマットで記憶されたビデオ・クリップ、画像、もしくはオーディオ・クリップなどマルチメディア・ファイルを獲得し、トランスコーディングし、記憶することができる。各メディア・システム１７０は、ネットワーク環境１００の他の構成要素によって、直接、またはネットワーク１６０を通じてアクセスされてもよい。特定の実施形態では、各ユーザ１１０は、１つまたは複数のクライアント・コンピューティング・デバイス１２０を使用し、サービス・システム１３０またはメディア・システム１７０にアクセスし、そこへデータを送り、そこからデータを受信することができる。クライアント・コンピューティング・デバイス１２０は、サービス・システム１３０またはメディア・システム１７０に直接、ネットワーク１６０を通じて、またはサードパーティ・システムを通じてアクセスすることができる。限定するものとしてではなく一例として、クライアント・コンピューティング・デバイス１２０は、サービス・システム１３０を通じてメディア・システム１７０にアクセスすることもできる。クライアント・コンピューティング・デバイス１２０は、たとえばパーソナル・コンピュータ、ラップトップ・コンピュータ、セルラ電話、スマートフォン、デジタル・カメラ、またはタブレット・コンピュータなど、任意の好適なコンピューティング・デバイスであってよい。
【００１４】
この開示は、任意の好適なネットワーク１６０を企図する。限定するものとしてではなく一例として、ネットワーク１６０の１または複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、携帯電話ネットワーク、またはこれらの２以上の組合せを含んでもよい。ネットワーク１６０は、１または複数のネットワーク１６０を含んでもよい。  リンク１５０は、クライアント・コンピューティング・デバイス１２０、サービス・システム１３０、およびメディア・システム１７０を通信ネットワーク１６０に、または互いに接続することができる。この開示は、任意の好適なリンク１５０を企図する。特定の実施形態では、１または複数のリンク１５０は、１または複数の有線（たとえば、デジタル加入者線（ＤＳＬ）またはＤＯＣＳＩＳ（Ｄａｔａ  Ｏｖｅｒ  Ｃａｂｌｅ  Ｓｅｒｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）など）、無線（たとえば、ＷｉＭＡＸ（Ｗｉ−ＦｉまたはＷｏｒｌｄｗｉｄｅ  ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ
Ａｃｃｅｓｓ）など）、または光（たとえば、同期光ネットワーク（ＳＯＮＥＴ）または同期デジタル・ハイアラーキ（ＳＤＨ）など）によるリンクを含む。特定の実施形態では、１または複数のリンク１５０は、それぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク１５０、または２以上のそのようなリンク１５０の組合せを含む。リンク１５０は、必ずしもネットワーク環境１００全体を通じて同じであることを必要としない。１または複数の第１のリンク１５０は、１または複数の点で１または複数の第２のリンク１５０と異なってもよい。
【００１５】
図２は、クライアント・コンピューティング・デバイス１２０からショート・ビデオをアップロードおよびトランスコーディングするための例示的なシステム２００を示す。特定の実施形態では、各クライアント・コンピューティング・デバイス１２０（またはクライアント・デバイス１２０）は、１つまたは複数の一体化されたカメラ、または１つまたは複数の外部カメラに対するインターフェースを含んでもよい。特定の実施形態では、各クライアント・デバイス１２０は、１つまたは複数のデジタル・カメラを含んでもよく、デジタル・カメラは、画像またはビデオをデジタル・フォーマットで記録または記憶するデバイスを指すことができる。特定の実施形態では、デジタル・カメラは、たとえば電荷結合素子（ＣＣＤ）イメージ・センサ、または相補型金属酸化物半導体（ＣＭＯＳ）アクティブピクセル・センサなど、イメージ・センサを含んでもよい。特定の実施形態では、各クライアント・デバイス１２０は、音声を記録するために１つまたは複数のマイクロフォンを含んでもよい。本明細書では、「カメラ」という用語はデジタル・カメラを指すことができ、「ビデオ」という用語は、デジタル・ビデオ、またはデジタル・フォーマットで記録もしくは記憶されたビデオを指すことができ、デジタル・フォーマットは、限定するものではないが、ＭＯＴＩＯＮ  ＰＩＣＴＵＲＥ  ＥＸＰＥＲＴＳ  ＧＲＯＵＰ  ４（ＭＰＥＧ−４）、ＭＰＥＧ−２、ＭＰＥＧ−１、ＷＩＮＤＯＷＳ（登録商標）ＭＥＤＩＡ
ＶＩＤＥＯ（ＷＭＶ）、Ｈ．２６４、およびＡｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）を含んでもよい。本開示は、任意の好適な物理形態をとり、任意の好適なカメラおよび任意の好適なマイクロフォンを含む任意の好適なクライアント・デバイス１２０を企図する。
【００１６】
特定の実施形態では、「ビデオ」という用語は、ビデオ記録の離散的なセクションまたは特定の長さを指すことができる。特定の実施形態では、ビデオは、たとえば記録の１回の開始（たとえば、「録画」ボタンを押すこと）と、それに続くその後の記録の１回の終了（たとえば、「停止」ボタンを押すこと）によるなど、１回の記録イベントで生じる記録されたビデオの任意の好適な長さを指すことができる。特定の実施形態では、ビデオは、任意の好適な組合せまたは一連の２以上のビデオ記録イベントを指すことができる。特定の実施形態では、ショート・ビデオ（またはショート・ビデオ・ファイルもしくはショート・マルチメディア・ファイル）は、約１秒、５秒、１０秒、１５秒、２０秒、３０秒、もしくは１分の持続時間、または任意の好適な持続時間を有してもよい。
【００１７】
特定の実施形態では、画像フレームは、ビデオの１つの静止画像を指すことができ、ビデオは、共に組み合わされてビデオ記録を形成する１つまたは複数の画像フレームを含んでもよい。特定の実施形態では、ビデオは、１秒当たり約２４フレーム（ＦＰＳ）、２５ＦＰＳ、３０ＦＰＳのフレーム・レート、または任意の好適なフレーム・レートを有してもよく、フレーム・レートは、記録または再生されている間の、ビデオの１秒当たりの静止画像またはビデオ・フレームの数を指すことができる。本開示は、特定の持続時間およびフレーム・レートを有し、１つまたは複数の記録イベントを含む特定のビデオについて述べ例示しているが、本開示は、任意の好適な数の記録イベントを含み、任意の好適な持続時間およびフレーム・レートを有する任意の好適なビデオを企図する。
【００１８】
特定の実施形態では、ホスト・コンピューティング・サーバ１３２は、クライアント・デバイス１２０からアップロード要求を受信することができ、アップロード要求は、ショート・ビデオに関連付けられ得る。図２の例では、クライアント・デバイス１２０は、ステップ２５０Ａを通じて、アップロード要求をホスト・コンピューティング・サーバ１３２に送ることができ、この要求は、ビデオをアップロード、トランスコーディング、および記憶するための要求を含んでもよい。この要求の内容は、ビデオの説明、要求に関連付けられたサービスのタイプ、ショート・ビデオを符号化するために使用された元の符号化フォーマットの説明、クライアント・デバイスのネットワーク・アドレス、およびアップロードに関連付けられた１つまたは複数のポリシを備えることができる。図２では、ホスト・コンピューティング・サーバ１３２は、アップロード要求プロセスを調整、管理、または指揮することができるが、ショート・ビデオのアップロードまたはトランスコーディングを実施しないことがある。
【００１９】
特定の実施形態では、ホスト・コンピューティング・サーバ１３２は、アップロード要求に応答して、アップロード要求の要素を解析し、ショート・ビデオのアップロード要求に最良のサービスを提供し得る１つまたは複数のトランスコーディング・サーバ１７２の可用性をチェックすることができる。特定の実施形態では、ホスト・コンピューティング・サーバ１３２は、これらの要素を解析し、ショート・ビデオをアップロードまたはトランスコーディングするために、最適な標的符号化フォーマット、ショート・ビデオの標的符号化フォーマットおよび現在の符号化フォーマットに関連付けられたアルゴリズム・プロセス、ならびに１つまたは複数のタイプのトランスコーディング・サーバ１７２を決定することができる。この決定は、要求の１つまたは複数のセキュリティ面、アップロードされるビデオのサイズ、ビデオの再現に関連付けられた１つまたは複数の品質面、トランスコーディングのための推定処理時間、トランスコーディングされるビデオの推定サイズ、アップロードおよびトランスコーディングのための「タイムアウト」制限、ならびにストレージ・システム１７４の記憶容量を備える要素に依存し得る。
【００２０】
他の形態の実施形態では、ホスト・コンピューティング・サーバ１３２は、各ビデオをトランスコーディングするために標準的な標的符号化フォーマット、および関連のアルゴリズム・プロセスを使用してもよい。標準的な標的符号化フォーマットは、クライアント・デバイス１２０からのビデオのサブセット、またはそれらのすべてを変換するために均一かつ一貫した符号化フォーマットが望ましいものであり得る場合、使用されてもよい。クライアント・デバイス１２０は標的符号化フォーマットをサポートしないことがあり、または、標的符号化フォーマットが、クライアント・デバイス１２０上でビデオおよび他のマルチメディア・ファイルを記憶するために使用された元の符号化フォーマットより適切なサポートされたフォーマットであることがある。特定の実施形態では、標的符号化フォーマットは、限定するものではないが圧縮性能、スケーラビリティ、使いやすさ、および費用対効果の点で、クライアント・デバイス１２０内にビデオおよび他のマルチメディア・ファイルを記憶するために使用された元の符号化フォーマットより優れていてもよい。
【００２１】
アップロード要求の要素の解析が完了したら、ホスト・コンピューティング・サーバ１３２は、その後、アップロード要求を処理するために、複数の使用可能かつ適切なトランスコーディング・サーバ１７２を識別することができる。特定の実施形態では、ホスト・コンピューティング・サーバ１７２は、アップロード要求を処理するために、複数の使用可能かつ適切なトランスコーディング・サーバ１７２を選択するとき、負荷分散を実施することができる。特定の実施形態では、ホスト・コンピューティング・サーバ１３２は、クライアント・デバイス１２０がビデオをアップロードするために、識別された複数のトランスコーディング・サーバ１７２からトランスコーディング・サーバ１７２のランダムなサブセットをさらに選択することも、アルゴリズムに従ってサブセットを選択することもできる。特定の実施形態では、ホスト・コンピューティング・サーバ１３２は、トランスコーディング・サーバ１７２を能動的または受動的に識別および選択することができる。ホスト・コンピューティング・サーバ１３２は、識別および選択の１つの能動的な実施形態により、選択されたトランスコーディング・サーバのための「タイムアウト」制限が満了した場合、選択されたトランスコーディング・サーバ１７２の１つを別のものに置き換えることができる。識別および選択の１つの受動的な実施形態では、ホスト・コンピューティング・サーバ１３２は、クライアント・デバイス１２０から要求を受信しない限り、識別および選択されたトランスコーディング・サーバ１７２を変更しないことがある。
【００２２】
特定の実施形態では、ホスト・コンピューティング・サーバ１３２は、アップロード要求に応答して、ステップ２０５Ｂを通じて、クライアント・デバイス１２０に返信を送ることができる。返信は、アップロードのためのジョブ構成情報、およびトランスコーディング・サーバ１７２に関連付けられたアドレスのリストを備えることができ、各トランスコーディング・サーバ１７２は、アップロード要求を処理するためにホスト・コンピューティング・サーバ１３２によって識別および選択されている。特定の実施形態では、ジョブ構成情報は、アップロードのための１つまたは複数のポリシを定義してもよく、これらのポリシは、限定するものではないがネットワークの上でのアップロード要求に対する認証および許可、アップロードされることになるビデオの識別、クライアント・デバイス１２０の識別、ビデオに関連付けられたユーザの識別、ビデオの持続時間（たとえば、１５秒）、ビデオのサイズ（たとえば、１０メガバイト）、ビデオについての時間制限、ビデオについてのサイズ制限、ビデオがどのフォーマットにあるかを示す標識、所望の標的符号化フォーマットを示す標識、標的トランスコーディング・プロセスを示す標識、ビデオに関連付けられたアクセス許可に関する条件、制約、および設定の概要を示し得る。
【００２３】
特定の実施形態では、ジョブ構成情報は、１つまたは複数のトランスコーディング・サーバ１７２にアクセスするためにクライアント・デバイス１２０を識別および検証するための、またクライアント・デバイス１２０が所定の持続時間後、トランスコーディング・サーバ１７２にアクセスすることができないように、その後ジョブ構成情報が失効する、または無効になる失効時間を確立するためのアクセス・トークンをさらに備えることができる。限定するものとしてではなく一例として、ジョブ構成情報は、ホスト・コンピューティング・サーバ１３２からクライアント・デバイス１２０に送られた１時間後に失効してもよい。特定の実施形態では、返信、または返信のサブセットは、ホスト・コンピューティング・サーバ１３２とクライアント・デバイス１２０の間の共有鍵暗号化に基づいて暗号化されてもよい。他の実施形態では、ジョブ構成情報は、ホスト・コンピューティング・サーバ１３２と、１つまたは複数のトランスコーディング・サーバ１７２と、クライアント・デバイス１２０との間の共有鍵暗号化に基づいて暗号化されてもよい。
【００２４】
特定の実施形態では、返信は、クライアント・デバイス１２０からトランスコーディング・サーバ１７２へのビデオのアップロード中に障害が生じた場合、フェールオーバを許可することができる。フェールオーバは、低レイテンシでユーザ１１０にとって透過的にアップロードの順調な速い再開を確実にし得る。特定の実施形態では、現在のジョブ構成情報が失効していない場合、クライアント・デバイス１２０は、所定の最大数の試行まで、アクセス・トークンを用いて、同じトランスコーディング・サーバ１７２に接触し、最後の状態からアップロードを再開しようと試みることができる。特定の実施形態では、現在のジョブ構成情報が失効した場合、または現在のトランスコーディング・サーバ１７２がアクセスに使用可能でない場合、クライアント・デバイス１２０は、同じアクセス・トークンを用いて、ジョブ構成情報からの異なるトランスコーディング・サーバ１７２に接触し、ビデオの始めからアップロードを再スタートしようと試みてもよい。特定の実施形態では、現在のジョブ構成情報が失効し、ジョブ構成情報からのすべてのトランスコーディング・サーバ１７２がアクセスに使用可能でない場合、クライアント・デバイス１２０は、ホスト・コンピューティング・サーバ１３２に新しいアップロード要求を送ってもよい。
【００２５】
特定の実施形態では、クライアント・デバイス１２０は、アドレスの１つを選択し、ジョブ構成情報を、ステップ２５０Ｃを通じて、選択されたアドレスに関連付けられたトランスコーディング・サーバ１７２に送ることができる。特定の実施形態では、選択されたトランスコーディング・サーバ１７２は、ジョブ構成情報を受信したとき、含まれているアクセス・トークンが有効であるかどうか決定することができる。アクセス・トークンが有効である場合、続いて、選択されたトランスコーディング・サーバ１７２は、ジョブ構成情報内に記憶された１つまたは複数のポリシに従って、クライアント・デバイス１２０へのアクセスを認めてもよい。特定の実施形態では、アップロード・モジュール２１０が、アップロードをバッファしアップロードをネットワーク切断から再開することに対処する既存の通信プロトコルを使用することができる。他の特定の実施形態では、通信プロトコルは、アップロード要求の１つまたは複数の要素によって予め決定されてもよい。限定するものとしてではなく例として、データのアップロードを管理するために使用される通信プロトコルは、伝送制御プロトコル（ＴＣＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、ファイル転送プロトコル（ＦＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、およびハイパーテキスト転送プロトコル・セキュア（ＨＴＴＰＳ）を含んでもよい。
【００２６】
特定の実施形態では、クライアント・デバイス１２０は、そのサイズが現在のネットワーク・データ転送速度に基づいて自動的に調整されるチャンクでビデオをアップロードしてもよい。クライアント・デバイス１２０とトランスコーディング・サーバ１７２の間での、データ・アップロードのためのチャンクのこの自動サイズ決定は、ビデオの高速、確実、かつ順調なアップロード、およびネットワーク切断から回復する間の低オーバーヘッド・トラフィックを可能にする助けとなる。具体的には、限定するものとしてではなく一例として、アップロードに伴うネットワーク処理コストは、ネットワーク・データ転送速度が増大するにつれて、アップロードされたビデオを転送するために必要とされるチャンクの総数が減少するので、低減され得る。特定の実施形態では、各チャンクのサイズは、クライアント・デバイス１２０またはトランスコーディング・サーバ１７２によって決定されてもよく、限定するものではないが通信プロトコル、現在のアップロード速度、オーバーヘッド再開トラフィックの所望の持続時間、ネットワーク処理コスト、およびリンク１５０の通信帯域幅を含む要因に依存し得る。限定するものとしてではなく一例として、アップロードされることになる次のチャンクのサイズは、オーバーヘッド再開トラフィックの所望の持続時間と現在のアップロード速度の積によって決定され得る。限定するものとしてではなく例として、アップロード・モジュール２１０は、ＮＧＩＮＸ、Ａｐａｃｈｅ  ＨＴＴＰ  Ｓｅｒｖｅｒ、Ａｐａｃｈｅ  Ｔｏｍｃａｔ、およびＴｉｎｙ−Ｔｕｒｂｏ−Ｔｈｒｏｔｔｌｉｎｇ  ＨＴＴＰ  Ｓｅｒｖｅｒ（ＴＨＴＴＰＤ）を含んでもよい。
【００２７】
特定の実施形態では、アップロードが完了した後で、トランスコーダ・モジュール２２０がショート・ビデオをその元の符号化デジタル・フォーマットから、限定するものではないがＨ．２６４、高効率ビデオコーディング（ＨＥＶＣ）、およびＨ．２６４／ＭＰＥＧ−４  ＡＶＣを含んでもよい標的符号化デジタル・フォーマットに変換することができる。トランスコーディングは、セキュリティのために、クライアント側ではなくサーバ側で実施される。さらに、トランスコーダ・モジュール２２０へのソフトウェア・アップロードは、新しいソフトウェア・バージョンがクライアント・デバイス１２０にダウンロードされなくてもよいので、サーバ側からより容易に実装することができ、これは、既存のクライアント・デバイス１２０に対するサポート、およびクライアント・デバイス１２０の新しいバージョンをサポートするための修正をより容易にする。トランスコーダ・モジュール２２０をクライアント・デバイス１２０ではなくトランスコーディング・サーバ１７２内に実装することにより、サービスもまた、標的符号化フォーマットおよびジョブ構成をより効率的に制御および修正することができる。限定するものとしてではなく例として、トランスコーダ・モジュール２２０は、ＦＦＭＰＥＧ、Ｄｒ．ＤｉｖＸ、およびＭＥｎｃｏｄｅｒを含んでもよい。
【００２８】
特定の実施形態では、トランスコーディング・サーバ１７２は、トランスコーディング・プロセスが完了したとき、トランスコーディングされたファイルを、ステップ２５０Ｄを通じて、１つまたは複数の結合されたストレージ・システム１７４内で記憶することができる。限定するものとしてではなく例として、ストレージ・システム１７４は、１つまたは複数の冗長ハード・ドライブ、および１つまたは複数の冗長フラッシュ・ドライブを含んでもよい。
【００２９】
特定の実施形態では、トランスコーディング・サーバ１７２は、ビデオのアップロード、トランスコーディング、およびトランスコーディング済みとしてストレージ・システム１７４上での記憶が完了したとき、ジョブ応答を、ステップ２５０Ｅを通じてクライアント・デバイス１２０に送ることができる。特定の実施形態では、ジョブ応答は、アップロードの完了を示す１つまたは複数のパラメータを含んでもよく、これらのパラメータは、限定するものではないが、トランスコーディングされたビデオの識別、クライアント・デバイス１２０の識別、ビデオに関連付けられた１人または複数のユーザの識別、トランスコーディングされたビデオのサイズ（たとえば、１０メガバイト）、ビデオがどの最終的な符号化フォーマットにあるかを示す標識、記憶されたビデオの場所の識別、およびビデオに関連付けられた１つまたは複数のセキュリティ・ポリシを含んでもよい。
【００３０】
特定の実施形態では、クライアント・デバイス１２０は、トランスコーディング・サーバ１７２からジョブ応答を受信したとき、ステップ２５０Ｆを通じてジョブ応答をホスト・コンピューティング・サーバ１３２に転送することができ、ジョブの完了を示し、選択されたトランスコーディング・サーバ１７２を他のメディア・ジョブのために使用可能にする。
【００３１】
図２は、マルチメディア・ファイルの特定の例としてショート・ビデオを示しているが、本開示は、限定するものではないがショート・オーディオ・クリップまたは小さい画像を備える任意の他の好適なタイプのマルチメディア・ファイルを企図する。特定の実施形態では、マルチメディア・ファイルは、マルチメディア・ビデオ・クリップ、マルチメディア画像、デジタル・ビデオ・クリップ、ビデオ・クリップ、またはビデオとも呼ばれることがある。特定の実施形態では、マルチメディア・ファイルは、連続する画像の形態にあるビデオ、オーディオ・ファイルの形態にある音声記録、ビデオとオーディオの組合せ、または任意の好適なメディアの任意の好適な組合せを含んでもよい。デジタル・カメラを含むクライアント・デバイス１２０を使用し、マルチメディア・ファイルを記録することができる。図２は、特定のステップ２５０Ａ〜Ｆでリンク１５０を通じて、特定の順序で行われる、クライアント・デバイス１２０からマルチメディア・ファイルをアップロードおよびトランスコーディングするための例示的なシステムについて述べ例示しているが、本開示は、リンク１５０を通じて任意の好適な順序で行われる、システムに関連付けられた任意の好適なステップ２５０Ａ〜Ｆを企図する。さらに、本開示は、図２のシステムの特定のステップ２５０Ａ〜Ｆを含む、クライアント・デバイス１２０からショート・ビデオをアップロードおよびトランスコーディングする例示的な方法について述べ例示しているが、本開示は、適宜、図２のシステムのステップ２５０Ａ〜Ｆのすべて、一部を含むことも、どれも含まないこともある任意の好適なステップを含む、クライアント・デバイス１２０からショート・ビデオをアップロードおよびトランスコーディングするための任意の好適な方法を企図する。さらに、本開示は、図２のシステムの特定のステップ２５０Ａ〜Ｆを実施する特定の構成要素、デバイス、またはシステムについて述べ例示しているが、本開示は、図２のシステムの任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。限定するものとしてではなく一例として、トランスコーディング・サーバ１７２は、ビデオをストレージ・システム１７４内で記憶する前に（ステップ２５０Ｄ）、またファイルをトランスコーディングすることが完了したことに続いて、ジョブ応答をクライアント・デバイス１２０に送ってもよい（ステップ２５０Ｅ）。
【００３２】
図３は、マルチメディア・ファイルをアップロードするためにクライアント・コンピューティング・デバイスと通信するホスト・コンピューティング・サーバの例示的なフローチャートを示す。この方法は、ホスト・コンピューティング・サーバ１３２が、クライアント・デバイス１２０からマルチメディア・ファイルをサービスにアップロードするための要求を、クライアント・デバイス１２０から受信するステップ３１０で始まることができる。限定するものとしてではなく一例として、マルチメディア・ファイルという用語は、デジタル・フォーマットで記憶された１つもしくは複数のビデオ・クリップ、１つもしくは複数の画像、または１つもしくは複数のオーディオ・クリップを指すことがある。特定の実施形態では、マルチメディア・ファイルは、連続する画像の形態にあるビデオ、オーディオ・ファイルの形態にある音声記録、ビデオとオーディオの組合せ、または任意の好適なメディアの任意の好適な組合せを含んでもよい。デジタル・カメラを含むクライアント・デバイス１２０を使用し、マルチメディア・ファイルを記録することができる。この要求の内容は、マルチメディア・ファイルのタイプの説明、マルチメディア・ファイルを符号化するために使用された元の符号化フォーマットの説明、要求に関連付けられたサービスのタイプ、クライアント・デバイスのネットワーク・アドレス、およびアップロードに関連付けられた１つまたは複数のポリシを備えることができる。
【００３３】
ステップ３２０では、ホスト・コンピューティング・サーバ１３２は、その要求のための１つまたは複数のトランスコーディング・サーバを決定することができる。ホスト・コンピューティング・サーバ１３２は、クライアント・コンピューティング・デバイス１２０から受信されたアップロード要求を解析し、アップロード要求を最もよく処理するためのトランスコーディング・サーバ１７２を識別することができる。特定の実施形態では、ホスト・コンピューティング・サーバ１３２は、マルチメディア・ファイルをアップロードまたはトランスコーディングするために、アップロード要求を解析し、最適な標的符号化フォーマット、マルチメディア・ファイルの標的符号化フォーマットおよび現在の符号化フォーマットに関連付けられたアルゴリズム・プロセス、ならびに１つまたは複数のタイプのトランスコーディング・サーバ１７２を決定することができる。この決定は、要求の１つまたは複数のセキュリティ面、マルチメディア・コンテンツのタイプ、マルチメディア・ファイルのサイズ、マルチメディア・ファイルの再現に関連付けられた１つまたは複数の品質面、トランスコーディングのための推定処理時間、トランスコーディングされるマルチメディア・ファイルの推定サイズ、アップロードおよびトランスコーディングのための「タイムアウト」制限、ならびにストレージ・システム１７４の記憶容量を備える要素に依存し得る。
【００３４】
他の形態の実施形態では、ホスト・コンピューティング・サーバ１３２は、各マルチメディアをトランスコーディングするために標準的な標的符号化フォーマット、および関連のアルゴリズム・プロセスを使用してもよい。標準的な標的符号化フォーマットは、クライアント・デバイス１２０からのマルチメディア・ファイルのサブセット、マルチメディア・ファイル全体、またはあるタイプのマルチメディア・ファイルを変換するために均一かつ一貫した符号化フォーマットが望ましいものであり得る場合、使用されてもよい。クライアント・デバイス１２０は標的符号化フォーマットをサポートしないことがあり、または、標的符号化フォーマットが、クライアント・デバイス１２０上でビデオおよび他のマルチメディア・ファイルを記憶するために使用された元の符号化フォーマットより適切なサポートされたフォーマットであることがある。特定の実施形態では、標的符号化フォーマットは、限定するものではないが圧縮性能、スケーラビリティ、使いやすさ、および費用対効果の点で、クライアント・デバイス１２０内にマルチメディア・ファイルを記憶するために使用された元の符号化フォーマットより優れていてもよい。
【００３５】
アップロード要求の要素の解析が完了したら、ホスト・コンピューティング・サーバ１３２は、その後、アップロード要求を処理するために、複数の使用可能かつ適切なトランスコーディング・サーバ１７２を識別することができる。特定の実施形態では、ホスト・コンピューティング・サーバ１３２は、識別された複数のトランスコーディング・サーバ１７２からトランスコーディング・サーバ１７２のランダムなサブセットを選択することも、アルゴリズムに従ってサブセットを選択することもできる。ステップ３３０では、ホスト・コンピューティング・サーバ１３２は、アップロードのためのジョブ構成情報と、トランスコーディング・サーバ１７２のアドレスのリストとを備える返信をクライアント・コンピューティング・デバイス１２０に送る。特定の実施形態では、ジョブ構成情報は、アップロードのための１つまたは複数のポリシを定義してもよく、これらのポリシは、限定するものではないがネットワークの上でのアップロード要求に対する認証および許可、アップロードされることになるマルチメディア・ファイルの識別、クライアント・デバイス１２０の識別、マルチメディア・ファイルに関連付けられたユーザの識別、マルチメディア・ファイルのサイズ（たとえば、１０メガバイト）、マルチメディア・ファイルについてのサイズ限界、マルチメディア・ファイルがどのフォーマットにあるかを示す標識、所望の標的符号化フォーマットを示す標識、標的トランスコーディング・プロセスを示す標識、マルチメディア・ファイルに関連付けられたアクセス許可に関する条件、制約、および設定の概要を示し得る。
【００３６】
特定の実施形態では、ジョブ構成情報は、１つまたは複数のトランスコーディング・サーバ１７２にアクセスするためにクライアント・デバイス１２０を識別および検証するための、またクライアント・デバイス１２０が所定の持続時間後、トランスコーディング・サーバ１７２にアクセスすることができないように、その後ジョブ構成情報が失効する、または無効になる失効時間を確立するためのアクセス・トークンをさらに備えることができる。限定するものとしてではなく一例として、ジョブ構成情報は、ホスト・コンピューティング・サーバ１３２からクライアント・デバイス１２０に送られた１時間後に失効してもよい。特定の実施形態では、返信、または返信のサブセットは、ホスト・コンピューティング・サーバ１３２とクライアント・デバイス１２０の間の共有鍵暗号化に基づいて暗号化されてもよい。他の実施形態では、ジョブ構成情報は、ホスト・コンピューティング・サーバ１３２と、１つまたは複数のトランスコーディング・サーバ１７２と、クライアント・デバイス１２０との間の共有鍵暗号化に基づいて暗号化されてもよい。
【００３７】
特定の実施形態では、返信は、クライアント・デバイス１２０からトランスコーディング・サーバ１７２へのマルチメディア・ファイルのアップロード中に障害が生じた場合、フェールオーバを許可することができる。フェールオーバは、低レイテンシでユーザ１１０にとって透過的にアップロードの順調な速い再開を確実にし得る。特定の実施形態では、現在のジョブ構成情報が失効していない場合、クライアント・デバイス１２０は、所定の最大数の試行まで、アクセス・トークンを用いて、同じトランスコーディング・サーバ１７２に接触し、最後の状態からアップロードを再開しようと試みることができる。特定の実施形態では、現在のジョブ構成情報が失効した場合、または現在のトランスコーディング・サーバ１７２がアクセスに使用可能でない場合、クライアント・デバイス１２０は、同じアクセス・トークンを用いて、ジョブ構成情報からの異なるトランスコーディング・サーバ１７２に接触し、マルチメディア・ファイルの始めからアップロードを再スタートしようと試みてもよい。特定の実施形態では、現在のジョブ構成情報が失効し、ジョブ構成情報からのすべてのトランスコーディング・サーバ１７２がアクセスに使用可能でない場合、クライアント・デバイス１２０は、ホスト・コンピューティング・サーバ１３２に新しいアップロード要求を送ってもよい。
【００３８】
ステップ３４０では、ホスト・コンピューティング・サーバ１３２は、アップロードに成功したことを示すジョブ応答をクライアント・コンピューティング・デバイス１２０から受信し、この時点で、方法は終了してもよい。特定の実施形態では、ジョブ応答は、アップロードの完了を示す１つまたは複数のパラメータを含んでもよく、これらのパラメータは、限定するものではないが、トランスコーディングされたマルチメディア・ファイルの識別、クライアント・デバイス１２０の識別、マルチメディア・ファイルに関連付けられた１人または複数のユーザの識別、トランスコーディングされたマルチメディア・ファイルのサイズ（たとえば、１０メガバイト）、マルチメディア・ファイルがどの最終的な符号化フォーマットにあるかを示す標識、記憶されたマルチメディア・ファイルの場所の識別、およびマルチメディア・ファイルに関連付けられた１つまたは複数のセキュリティ・ポリシを含んでもよい。特定の実施形態では、また、ジョブ応答は、選択されたトランスコーディング・サーバ１７２を他のメディア・ジョブのために使用可能にする。
【００３９】
特定の実施形態は、適宜、図３の方法の１つまたは複数のステップを繰り返すことがある。本開示は、図３の方法の特定のステップを特定の順序で行われるものとして述べ例示しているが、本開示は、任意の好適な順序で行われる図３の方法の任意の好適なステップを企図する。さらに、本開示は、図３の方法の特定のステップを含む、マルチメディア・ファイルをアップロードするためにホスト・コンピューティング・サーバ１３２がクライアント・コンピューティング・デバイス１２０と通信するための例示的な方法について述べ例示しているが、本開示は、適宜、図３の方法のステップのすべて、一部を含むことも、どれも含まないこともある任意の好適なステップを含む、マルチメディア・ファイルをアップロードするためにホスト・コンピューティング・サーバ１３２がクライアント・コンピューティング・デバイス１２０と通信するための任意の好適な方法を企図する。さらに、本開示は、図３の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて述べ例示しているが、本開示は、図３の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【００４０】
図４は、マルチメディア・ファイルをアップロード、符号化、および記憶するためにクライアント・コンピューティング・デバイスと通信するトランスコーディング・サーバの例示的なデシジョン・フローチャートを示す。この方法は、トランスコーディング・サーバ１７２が、マルチメディア・ファイルをアップロードするためのジョブ構成情報をクライアント・コンピューティング・デバイス１２０から受信するステップ４１０で始まることができる。ジョブ構成情報は、１つまたは複数のトランスコーディング・サーバ１７２にアクセスするためにクライアント・デバイス１２０を識別および検証するための、またクライアント・デバイス１２０が所定の持続時間後、トランスコーディング・サーバ１７２にアクセスすることができないように、その後ジョブ構成情報が失効する、または無効になる失効時間を確立するためのアクセス・トークンをさらに備えることができる。
【００４１】
ステップ４２０では、トランスコーディング・サーバ１７２は、アクセス・トークンが有効であるかを決定することができる。アクセス・トークンが有効でない場合、トランスコーディング・サーバ１７２は、ステップ４７０に従って、アップロードに対するエラー応答をクライアント・コンピューティング・デバイス１２０に送る。特定の実施形態では、エラー応答は、クライアント・コンピューティング・デバイス１２０がマルチメディア・ファイルをアップロードするために異なるトランスコーディング・サーバ１７２に接触すること、または新しいアップロード要求をホスト・コンピューティング・サーバ１３２に送ることを可能にし得る。
【００４２】
アクセス・トークンが有効である場合、トランスコーディング・サーバ１７２は、ステップ４３０に従って、マルチメディア・ファイルをクライアント・コンピューティング・デバイス１２０から受信する。特定の実施形態では、トランスコーディング・サーバ１７２のアップロード・モジュール２１０が、アップロードをバッファしアップロードをネットワーク切断から再開することに対処する既存の通信プロトコルを使用することができる。他の特定の実施形態では、通信プロトコルは、アップロード要求の１つまたは複数の要素によって予め決定されてもよい。限定するものとしてではなく例として、データのアップロードを管理するために使用される通信プロトコルは、伝送制御プロトコル（ＴＣＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、ファイル転送プロトコル（ＦＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、およびハイパーテキスト転送プロトコル・セキュア（ＨＴＴＰＳ）を含んでもよい。
【００４３】
特定の実施形態では、クライアント・デバイス１２０は、そのサイズが現在のネットワーク・データ転送速度に基づいて自動的に調整されるチャンクでマルチメディア・ファイルをアップロードしてもよい。クライアント・デバイス１２０とトランスコーディング・サーバ１７２の間での、データ・アップロードのためのチャンクのこの自動サイズ決定は、マルチメディア・ファイルの高速、確実、かつ順調なアップロード、およびネットワーク切断から回復する間の低オーバーヘッド・トラフィックを可能にする助けとなる。具体的には、限定するものとしてではなく一例として、アップロードに伴うネットワーク処理コストは、ネットワーク・データ転送速度が増大するにつれて、アップロードされたマルチメディア・ファイルを転送するために必要とされるチャンクの総数が減少するので、低減され得る。特定の実施形態では、各チャンクのサイズは、クライアント・デバイス１２０またはトランスコーディング・サーバ１７２によって決定されてもよく、限定するものではないが通信プロトコル、現在のアップロード速度、オーバーヘッド再開トラフィックの所望の持続時間、ネットワーク処理コスト、およびリンク１５０の通信帯域幅を含む要因に依存し得る。限定するものとしてではなく一例として、アップロードされることになる次のチャンクのサイズは、オーバーヘッド再開トラフィックの所望の持続時間と現在のアップロード速度の積によって決定され得る。限定するものとしてではなく例として、アップロード・モジュール２１０は、ＮＧＩＮＸ、Ａｐａｃｈｅ  ＨＴＴＰ  Ｓｅｒｖｅｒ、Ａｐａｃｈｅ  Ｔｏｍｃａｔ、およびＴｉｎｙ−Ｔｕｒｂｏ−Ｔｈｒｏｔｔｌｉｎｇ  ＨＴＴＰ  Ｓｅｒｖｅｒ（ＴＨＴＴＰＤ）を含んでもよい。
【００４４】
ステップ４４０では、トランスコーディング・サーバ１７２は、マルチメディア・ファイルをトランスコーディングする。特定の実施形態では、トランスコーディング・サーバ１７２のトランスコーダ・モジュール２２０が、マルチメディア・ファイルを、その元の符号化デジタル・フォーマットから、マルチメディア・ファイルのタイプに依存する標的符号化デジタル・フォーマットに変換することができる。ファイルがビデオを備える場合、標的符号化デジタル・フォーマットは、限定するものではないがＨ．２６４、高効率ビデオコーディング（ＨＥＶＣ）、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ、および知的所有権のあるフォーマットを含んでもよい。ファイルがオーディオ・ストリームを備える場合、標的符号化デジタル・フォーマットは、限定するものではないがＭｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ４）、Ｒｅａｌ、ＭＰ３、Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ（ＡＡＣ）、および知的所有権のあるフォーマットを含んでもよい。ファイルが１つまたは複数の画像を備える場合、標的符号化デジタル・フォーマットは、限定するものではないが、Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ（ＴＩＦＦ）、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ（ＪＰＥＧ）、ＪＰＥＧ２０００、および知的所有権のあるフォーマットを含んでもよい。トランスコーディングは、セキュリティのために、クライアント側ではなくサーバ側で実施される。さらに、トランスコーダ・モジュール２２０へのソフトウェア・アップロードは、新しいソフトウェア・バージョンがクライアント・デバイス１２０にダウンロードされなくてもよいので、サーバ側からより容易に実装することができ、これは、既存のクライアント・デバイス１２０に対するサポート、およびクライアント・デバイス１２０の新しいバージョンをサポートするための修正をより容易にする。トランスコーダ・モジュール２２０をクライアント・デバイス１２０ではなくトランスコーディング・サーバ１７２内に実装することにより、サービスもまた、標的符号化フォーマットおよびジョブ構成をより効率的に制御および修正することができる。限定するものとしてではなく例として、トランスコーダ・モジュール２２０は、ＦＦＭＰＥＧ、Ｄｒ．ＤｉｖＸ、およびＭＥｎｃｏｄｅｒを含んでもよい。
【００４５】
ステップ４５０では、トランスコーディング・サーバ１７２は、トランスコーディングされたマルチメディア・ファイルを１つまたは複数のストレージ・システム１７４内に記憶する。限定するものとしてではなく例として、ストレージ・システム１７４は、１つまたは複数の冗長ハード・ドライブ、および１つまたは複数の冗長フラッシュ・ドライブを含んでもよい。
【００４６】
ステップ４６０では、トランスコーディング・サーバ１７２は、アップロードの完了を示すジョブ応答をクライアント・コンピューティング・デバイス１２０に送り、この時点で、方法は終了してもよい。特定の実施形態では、ジョブ応答、または応答のサブセットは、ホスト・コンピューティング・サーバ１３２と、クライアント・デバイス１２０と、トランスコーディング・サーバ１７２との間の共有鍵暗号化に基づいて暗号化されてもよい。特定の実施形態では、また、ジョブ応答は、それ自体を他のメディア・ジョブのために使用可能にする。
【００４７】
特定の実施形態は、適宜、図４の方法の１つまたは複数のステップを繰り返すことがある。本開示は、図４の方法の特定のステップを特定の順序で行われるものとして述べ例示しているが、本開示は、任意の好適な順序で行われる図４の方法の任意の好適なステップを企図する。さらに、本開示は、図４の方法の特定のステップを含む、マルチメディア・ファイルをアップロード、符号化、および記憶するためにクライアント・コンピューティング・デバイス１２０と通信するトランスコーディング・サーバ１７２のための例示的な方法について述べ例示しているが、本開示は、適宜、図４の方法のステップのすべて、一部を含むことも、どれも含まないこともある任意の好適なステップを含む、マルチメディア・ファイルをアップロード、符号化、および記憶するためにクライアント・コンピューティング・デバイス１２０と通信するトランスコーディング・サーバ１７２のための任意の好適な方法を企図する。さらに、本開示は、図４の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて述べ例示しているが、本開示は、図４の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【００４８】
図５は、例示的なコンピュータ・システム５００を示す。特定の実施形態では、１または複数のコンピュータ・システム５００は、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施する。特定の実施形態では、１または複数のコンピュータ・システム５００は、本明細書に記載され、または示されている機能を提供する。特定の実施形態では、１または複数のコンピュータ・システム５００上で動作するソフトウェアは、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施し、または本明細書に記載され、または示されている機能を提供する。特定の実施形態は、１または複数のコンピュータ・システム５００の１または複数の部分を含む。本明細書では、コンピュータ・システムに言及することは、適切な場合、コンピューティング・デバイスを含んでもよく、逆も同様である。さらに、コンピュータ・システムに言及することは、適切な場合、１または複数のコンピュータ・システムを含んでもよい。
【００４９】
この開示は、任意の好適な数のコンピュータ・システム５００を企図する。この開示は、任意の好適な物理形態をとるコンピュータ・システム５００を企図する。限定するものとしてではなく一例として、コンピュータ・システム５００は、組込みコンピュータ・システム、システム・オン・チップ（ＳＯＣ）、シングルボード・コンピュータ・システム（ＳＢＣ）（たとえば、コンピュータ・オン・モジュール（ＣＯＭ）またはシステム・オン・モジュール（ＳＯＭ）など）、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、移動電話、携帯情報端末（ＰＤＡ）、サーバ、タブレット・コンピュータ・システム、またはこれらの２以上の組合せであってよい。適切な場合、コンピュータ・システム５００は、１または複数のコンピュータ・システム５００を含んでもよく、一元的なものであっても分散型であってもよく、複数のロケーションに跨ってもよく、複数のマシンに跨ってもよく、複数のデータセンタに跨ってもよく、クラウド内にあってもよく、クラウドは、１または複数のネットワーク内で１または複数のクラウド構成要素を含んでもよい。適切な場合、１または複数のコンピュータ・システム５００は、実質的な空間的または時間的制限なしに、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。限定するものとしてではなく一例として、１つまたは複数のコンピュータ・システム５００は、リアルタイムで、またはバッチ・モードで、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。１または複数のコンピュータ・システム５００は、適切な場合、異なる時に、または異なるロケーションで、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。
【００５０】
特定の実施形態では、コンピュータ・システム５００は、プロセッサ５０２、メモリ５０４、ストレージ５０６、入力／出力（Ｉ／Ｏ）インターフェース５０８、通信インターフェース５１０、およびバス５１２を含む。この開示は、特定の数の特定の構成要素を特定の構成で有する特定のコンピュータ・システムについて記載し示しているが、この開示は、任意の好適な数の任意の好適な構成要素を任意の好適な構成で有する任意の好適なコンピュータ・システムを企図する。
【００５１】
特定の実施形態では、プロセッサ５０２は、コンピュータ・プログラムを構成するものなど命令を実行するためのハードウェアを含む。限定するものとしてではなく一例として、命令を実行するために、プロセッサ５０２は、内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６から命令を取り出し（またはフェッチし）、それらをデコードおよび実行し、次いで、１または複数の結果を内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６に書き込むことができる。特定の実施形態では、プロセッサ５０２は、データ、命令、またはアドレス用に１または複数の内部キャッシュを含んでもよい。この開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ５０２を企図する。限定するものとしてではなく一例として、プロセッサ５０２は、１または複数の命令キャッシュ、１または複数のデータ・キャッシュ、および１または複数の変換索引バッファ（ＴＬＢ）を含んでもよい。命令キャッシュ内の命令は、メモリ５０４またはストレージ５０６内の命令のコピーであってもよく、命令キャッシュは、プロセッサ５０２によるこれらの命令の取り出しを高速化することができる。データ・キャッシュ内のデータは、プロセッサ５０２にて実行される命令が操作するための、メモリ５０４またはストレージ５０６内のデータのコピー、プロセッサ５０２で実行される後続の命令によるアクセスための、またはメモリ５０４もしくはストレージ５０６に書き込むための、プロセッサ５０２で実行された以前の命令の結果、あるいは他の好適なデータであってもよい。データ・キャッシュは、プロセッサ５０２による読出しまたは書込み動作を高速化することができる。ＴＬＢは、プロセッサ５０２のために仮想アドレス変換を高速化することができる。特定の実施形態では、プロセッサ５０２は、データ、命令、またはアドレス用に１または複数の内部レジスタを含むことができる。この開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ５０２を企図する。適切な場合、プロセッサ５０２は、１または複数の算術論理演算ユニット（ＡＬＵ）を含むことができ、マルチコア・プロセッサであってもよく、１または複数のプロセッサ５０２を含んでもよい。この開示は、特定のプロセッサについて記載し示しているが、この開示は、任意の好適なプロセッサを企図する。
【００５２】
特定の実施形態では、メモリ５０４は、プロセッサ５０２が実行するための命令、またはプロセッサ５０２が操作するためのデータを記憶するための主記憶装置を含む。限定するものとしてではなく一例として、コンピュータ・システム５００は、ストレージ５０６または別のソース（たとえば、別のコンピュータ・システム５００など）からメモリ５０４に命令をロードすることができる。次いで、プロセッサ５０２は、メモリ５０４から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ５０２は、内部レジスタまたは内部キャッシュから命令を取り出し、それらをデコードすることができる。命令の実行中、または実行後、プロセッサ５０２は、１または複数の結果（中間結果であることも最終結果であることもある）を内部レジスタまたは内部キャッシュに書き込むことができる。次いで、プロセッサ５０２は、それらの結果の１または複数をメモリ５０４に書き込むことができる。特定の実施形態では、プロセッサ５０２は、１もしくは複数の内部レジスタもしくは内部キャッシュ内、または（ストレージ５０６もしくは他の場所ではなく）メモリ５０４内の命令だけを実行し、１もしくは複数の内部レジスタもしくは内部キャッシュ内、または（ストレージ５０６もしくは他の場所ではなく）メモリ５０４内のデータだけを操作する。１または複数のメモリ・バス（それぞれがアドレス・バスとデータ・バスを含むことがある）がプロセッサ５０２をメモリ５０４に結合してもよい。バス５１２は、下記に記載されているように、１または複数のメモリ・バスを含んでもよい。特定の実施形態では、１または複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ５０２とメモリ５０４の間にあり、プロセッサ５０２によって要求されるメモリ５０４へのアクセスを容易にする。特定の実施形態では、メモリ５０４は、ランダム・アクセス・メモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合、揮発性メモリであり得る。適切な場合、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であってよい。さらに、適切な場合、このＲＡＭは、シングルポート型またはマルチポート型ＲＡＭであってよい。この開示は、任意の好適なＲＡＭを企図する。メモリ５０４は、適切な場合、１または複数のメモリ５０４を含んでもよい。この開示は、特定のメモリについて記載し示しているが、この開示は、任意の好適なメモリを企図する。
【００５３】
特定の実施形態では、ストレージ５０６は、データまたは命令用のマス・ストレージを含む。限定するものとしてではなく一例として、ストレージ５０６は、ハード・ディスク・ドライブ（ＨＤＤ）、フロッピー（登録商標）ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、またはこれらの２以上の組合せを含んでもよい。ストレージ５０６は、適切な場合、取外し式または非取外し式（または固定）媒体を含んでもよい。ストレージ５０６は、適切な場合、コンピュータ・システム５００に内蔵されていても外部にあってもよい。特定の実施形態では、ストレージ５０６は、不揮発性のソリッドステート・メモリである。特定の実施形態では、ストレージ５０６は、読出し専用メモリ（ＲＯＭ）を含む。適切な場合、このＲＯＭは、マスクプログラムされたＲＯＭ、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書き換え可能ＲＯＭ（ＥＡＲＯＭ）、もしくはフラッシュ・メモリ、またはこれらの２以上の組合せであってよい。この開示は、任意の好適な物理形態をとるマス・ストレージ５０６を企図する。ストレージ５０６は、適切な場合、プロセッサ５０２とストレージ５０６の間の通信を容易にする１または複数のストレージ制御ユニットを含んでもよい。適切な場合、ストレージ５０６は、１または複数のストレージ５０６を含んでもよい。この開示は、特定のストレージについて記載し示しているが、この開示は、任意の好適なストレージを企図する。
【００５４】
特定の実施形態では、Ｉ／Ｏインターフェース５０８は、コンピュータ・システム５００と１または複数のＩ／Ｏデバイスとの間の通信のために１または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム５００は、適切な場合、これらのＩ／Ｏデバイスの１または複数を含んでもよい。これらのＩ／Ｏデバイスの１または複数は、人とコンピュータ・システム５００の間の通信を可能にすることができる。限定するものとしてではなく一例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の好適なＩ／Ｏデバイス、またはこれらの２以上の組合せを含んでもよい。Ｉ／Ｏデバイスは、１または複数のセンサを含んでもよい。この開示は、任意の好適なＩ／Ｏデバイス、およびそれらのための任意の好適なＩ／Ｏインターフェース５０８を企図する。適切な場合、Ｉ／Ｏインターフェース５０８は、プロセッサ５０２がこれらのＩ／Ｏデバイスの１または複数を駆動することを可能にする１または複数のデバイスまたはソフトウェア・ドライバを含むことができる。Ｉ／Ｏインターフェース５０８は、適切な場合、１または複数のＩ／Ｏインターフェース５０８を含んでもよい。この開示は、特定のＩ／Ｏインターフェースについて記載し示しているが、この開示は、任意の好適なＩ／Ｏインターフェースを企図する。
【００５５】
特定の実施形態では、通信インターフェース５１０は、コンピュータ・システム５００と１もしくは複数の他のコンピュータ・システム５００または１もしくは複数のネットワークとの間の通信（たとえば、パケットベースの通信など）のために１または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、通信インターフェース５１０は、イーサーネット（登録商標）もしくは他の有線ベースのネットワークとの通信のためのインターフェース・コントローラ（ＮＩＣ）もしくはネットワーク・アダプタ、またはＷＩ−ＦＩネットワークなど無線ネットワークとの通信のための無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタを含んでもよい。この開示は、任意の好適なネットワーク、およびそのための任意の好適な通信インターフェース５１０を企図する。限定するものとしてではなく一例として、コンピュータ・システム５００は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、またはインターネットの１もしくは複数の部分、あるいはこれらの２以上の組合せと通信することができる。これらのネットワークの１または複数のうちの１または複数の部分は、有線であっても無線であってもよい。一例として、コンピュータ・システム５００は、無線ＰＡＮ（ＷＰＡＮ）（たとえば、ＢＬＵＥＴＯＯＴＨ（登録商標）ＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、携帯電話ネットワーク（たとえば、グローバル移動体通信システム（ＧＳＭ（登録商標））ネットワークなど）、もしくは他の好適な無線ネットワーク、またはこれらの２以上の組合せと通信することができる。コンピュータ・システム５００は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース５１０を含んでもよい。通信インターフェース５１０は、適切な場合、１または複数の通信インターフェース５１０を含んでもよい。この開示は、特定の通信インターフェースについて記載し示しているが、この開示は、任意の好適な通信インターフェースを企図する。
【００５６】
特定の実施形態では、バス５１２は、コンピュータ・システム５００の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、バス５１２は、アクセラレィティッド・グラフィックス・ポート（ＡＧＰ）もしくは他のグラフィックス・バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、フロントサイド・バス（ＦＳＢ）、ハイパートランスポート（ＨＴ）相互接続、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、インフィニバンド相互接続、ｌｏｗ−ｐｉｎ−ｃｏｕｎｔ（ＬＰＣ）バス、メモリ・バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、ＳＡＴＡ（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）バス、ＶＬＢ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ  ｌｏｃａｌ）バス、もしくは別の好適なバス、またはこれらの２以上の組合せを含んでもよい。バス５１２は、適切な場合、１または複数のバス５１２を含んでもよい。この開示は、特定のバスについて記載し示しているが、この開示は、任意の好適なバスまたは相互接続を企図する。
【００５７】
本明細書では、１または複数の非一時的コンピュータ可読記憶媒体は、適切な場合、１または複数の半導体ベースの、もしくは他の集積回路（ＩＣ）（たとえば、フィールド・プログラム可能ゲート・アレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ））、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスク・ドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー・ディスケット、フロッピー・ディスク・ドライブ（ＦＤＤ）、磁気テープ、ソリッドステート・ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の好適な非一時的コンピュータ可読記憶媒体、またはこれらの２以上の組合せを含んでもよい。非一時的コンピュータ可読記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
【００５８】
本明細書では、「または（もしくは）」は、別段明確に示されていない限り、または別段文脈によって示されない限り、包括的（ｉｎｃｌｕｓｉｖｅ）であり、排他的なものではない。したがって、本明細書では、「ＡまたはＢ」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「Ａ、Ｂ、またはその両方」を意味する。さらに、「および」は、別段明確に示されていない限り、または別段文脈によって示されない限り、共同であり、個別的でもある。したがって、本明細書では、「ＡおよびＢ」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「ＡおよびＢを共同で、または個別的に」意味する。
【００５９】
この開示の範囲は、当業者であれば理解されるであろう、本明細書に記載され、または示されている例示的な実施形態に対する変更、置換、変形、代替、および修正すべてを包含する。この開示の範囲は、本明細書に記載され、または示されている例示的な実施形態に限定されない。さらに、この開示は、それぞれの実施形態について、本明細書では、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして記載し示しているが、これらの実施形態のいずれも、当業者であれば理解されるであろう、本明細書のどこかに記載され、または示されている構成要素、要素、特徴、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含んでもよい。さらに、添付の特許請求の範囲において、特定の機能を実施するように適合された、するように配置された、することが可能な、するように構成された、することが可能である、するように動作可能である、またはするように動作する装置もしくはシステム、または装置もしくはシステムの構成要素に言及することは、その装置、システム、または構成要素がそのように適合され、配置され、動作可能であり、構成され、可能であり、動作可能であり、動作する限り、それ、またはその特定の機能が作動される、有効にされる、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を含む。
【図１】
2018185843.tif 000003
【図２】
2018185843.tif 000004
【図３】
2018185843.tif 000005
【図４】
2018185843.tif 000006
【図５】
2018185843.tif 000007