以下、各図面に示す同一または類似の構成要素、部材、手順、または信号には、すべての図面において同様の符号を付し、それによって重複する説明は適宜省略される。また、各図面の説明において重要でない一部部材は省略される。
本開示の一部の実施態様に基づくライブストリーミングシステム1は、ユーザ間のコミュニケーションと交流を円滑にする強化機能を提供する。より具体的には、技術的な方法で視聴者やストリーマーを楽しませるものである。
図1に本開示の一部の実施態様に基づくライブストリーミングシステム1の構成を示す概略図を示す。当該ライブストリーミングシステム1は、ストリーミングストリーマー(ライブ配信者またはストリーマーとも呼ばれる)LVと視聴者(オーディエンスとも呼ばれる)AU(AU1、AU2...)に、リアルタイムで相互交流するためのライブストリーミングサービスを提供する。図1に示すように、当該ライブストリーミングシステム1は、サーバ10と、ユーザ端末20と、ユーザ端末30(30a、30b...)を含むことができる。当該ユーザ端末20はストリーマー、当該ユーザ端末30は視聴者であってもよい。一部の実施態様において、当該ストリーマーと視聴者はユーザと呼ばれてもよい。当該サーバ10は、ネットワークNWを介して接続された、1または複数の情報処理装置を含むことができる。当該ユーザ端末20、30は、例えば、スマートフォン、タブレット、ノートPC、レコーダー、携帯ゲーム機、ウェアラブル端末などの携帯端末や、デスクトップPCなどの据置型コンピュータであってもよい。当該サーバ10、ユーザ端末20、ユーザ端末30は、任意の種類の有線または無線ネットワークNWにより通信可能に接続されてもよい。
当該ライブストリーミングシステム1には、当該ストリーマーLV、当該視聴者AU、当該サーバ10を提供するアプリプロバイダー(図示せず)が関与する。当該ストリーマーLVは、 自身の歌、トーク、パフォーマンス、ゲームストリーミングなどのコンテンツを自身のユーザ端末20で収録して当該サーバ10にアップロードし、リアルタイムでコンテンツを配信する者となることができる。一部の実施態様において、当該ストリーマーLVは、当該ライブストリーミングを介して当該視聴者AUと交流することができる。
当該アプリプロバイダーは、当該サーバ10においてライブストリーミングされるコンテンツのためのプラットフォームを提供することができる。一部の実施態様において、当該アプリプロバイダーは、当該ストリーマーLVと当該視聴者AU間のリアルタイム通信を管理するメディアまたはマネージャーであってもよい。当該視聴者AUは、当該ユーザ端末30により当該プラットフォームにアクセスし、自身が視聴したいコンテンツを選択して視聴することができる。当該視聴者AUは、当該ユーザ端末30により、当該ストリーマーに対してコメントしたり、応援したりなど、当該ストリーマーと交流するための操作を行うことができる。コンテンツを提供する当該ストリーマーは、当該コメントや応援に応答することができる。当該ストリーマーの応答は、映像及び(または)音声などにより当該視聴者AUに送信することができる。従って、当該ストリーマーと視聴者間の相互通信を達成することができる。
本明細書でいう「ライブストリーミング」とは、当該ストリーマーLVが当該ユーザ端末20により記録したコンテンツを、当該視聴者AUが当該ユーザ端末30を介して実質的に再生・視聴することを可能にする、データ伝送を指すことができる。一部の実施態様において、「ライブストリーミング」は、上述のデータ伝送により実現されるストリーミングを指すこともある。当該ライブストリーミングは、HTTPライブストリーミング、CMAF(Common Media Application Format)、WebRTC(Web Real―Time Communications)、RTMP(Real―Time Messaging Protocol)、MPEG DASHなど、公知の技術によって実現することができる。当該ライブストリーミングは、さらに、当該ストリーマーがコンテンツを記録している間、当該視聴者AUが特定の遅延をもって当該コンテンツを再生または視聴することができる、実施形態を含んでもよい。当該遅延の程度については、少なくとも当該ストリーマーLVと当該視聴者AUがコミュニケーションを行うことができる程度に小さいことが望ましい。ただし、ライブストリーミングは、いわゆるオンデマンド配信とは異なる。より具体的に、当該オンデマンド配信とは、当該コンテンツを記録したすべてのデータをサーバに格納し、ユーザの要求に応じてランダムなタイミングで当該サーバから当該ユーザにデータを提供することを指してもよい。
本明細書における「ストリーミングデータ」とは、画像データや音声データを含むデータを指すことができる。より具体的に、当該画像データ(ビデオデータと呼んでもよい)は、当該ユーザ端末20と30の画像キャプチャ機能によって生成されてもよい。当該音声データ(オーディオデータと呼んでもよい)は、当該ユーザ端末20と30の音声入力機能により生成されてもよい。当該ストリーミングデータを当該ユーザ端末20、30で再生し、ユーザに関するコンテンツを視聴できるようにしてもよい。一部の実施態様において、当該ストリーマーの当該ユーザ端末でストリーミングデータが生成されてから、当該視聴者の当該ユーザ端末で再生されるまでの間、圧縮、拡張、エンコード、デコード、トランスコードなど、データの形式、サイズ、規格を変更する処理が想定される。このような処理の前と後、当該コンテンツ(映像や音声)は実質的に変更されず、このため、本開示の現在の実施態様においては、処理される前のストリーミングデータと処理された後のストリーミングデータは同じであると説明される。つまり、当該ストリーマーの当該ユーザ端末により生成された当該ストリーミングデータが、当該サーバ10を介して当該視聴者の当該ユーザ端末で再生される場合、当該ストリーマーの当該ユーザ端末で生成された当該ストリーミングデータ、当該サーバ10を通過した当該ストリーミングデータ、そして当該視聴者の当該ユーザ端末が受信して再生する当該ストリーミングデータは、すべて同じストリーミングデータである。
図1に示すように、ストリーマーLVはライブストリーミングを提供する。当該ストリーマーのユーザ端末20は、当該ストリーマーの映像及び(または)音声を記録することにより、ストリーミングデータを生成し、ネットワークNWを介してサーバ10に送信する。同時に、当該ユーザ端末20は映像VDを当該ユーザ端末20のディスプレイ上に表示し、当該ストリーマーLVのストリーミングコンテンツをチェックすることができる。
当該ストリーマーのライブストリーミングの提供をプラットフォームに要求するユーザ端末30a、30bの視聴者AU1、AU2は、当該ネットワークNWを介して当該ライブストリーミングに対応するストリーミングデータを受信し、受信したストリーミングデータを再生してディスプレイ上に映像VD1、VD2を表示し、スピーカーなどから音声を出力することができる。当該ユーザ端末30a、30b上にそれぞれ表示される当該映像VD1、VD2は、当該ストリーマーLVの当該ユーザ端末により記録された当該映像と実質的に同じであり、当該ユーザ端末30a、30bから出力される当該音声は、当該ストリーマーLVの当該ユーザ端末により記録された当該音声と実質的に同じである。
当該ストリーマーの当該ユーザ端末20での記録は、当該視聴者AU1、AU2の当該ユーザ端末30a、30bでのストリーミングデータの再生と同時であってもよい。当該視聴者AU1が当該ストリーマーLVのコンテンツに関するコメントを当該ユーザ端末30aに入力すると、当該サーバ10は、当該コメントを当該ストリーマーの当該ユーザ端末20にリアルタイムで表示するとともに、当該視聴者AU1、AU2の当該ユーザ端末30a、30bにもそれぞれ表示する。当該ストリーマーLVが当該コメントに応答した場合、当該応答を当該視聴者AU1、AU2の当該ユーザ端末30a、30bからテキスト、画像、映像または音声として出力し、当該ストリーマーLVと当該視聴者AU1、AU2のコミュニケーションを実現することができる。従って、当該ライブストリーミングシステムは、双方向通信のライブストリーミングを実現することができる。
図2は、本開示の実施態様に基づく、図1に示すユーザ端末20の機能と構成を示すブロック図である。当該ユーザ端末30は、当該ユーザ端末20と同様の機能と構成を有する。本明細書のブロック図に描かれているブロックは、コンピュータのCPUなどのデバイスや機械部品などのハードウェア、およびこれらの要素の連携によって実施される機能ブロックを表現する、コンピュータプログラムなどのソフトウェアで実施される。したがって、機能ブロックは、ハードウェアとソフトウェアの組み合わせによる多様な態様で実装され得ることが、当業者には理解されよう。
当該ストリーマーLVと視聴者AUは、ネットワークNWを介して、ダウンロードサイトから本開示のライブストリーミングアプリケーション(ライブストリーミングアプリ)を当該ユーザ端末20と30にダウンロードしてインストールすることができる。または、当該ライブストリーミングアプリは、当該ユーザ端末20と30に予めインストールされていてもよい。当該ユーザ端末20と30によるライブストリーミングの実行により、当該ユーザ端末20と30は、当該ネットワークNWを介して当該サーバ10と通信し、複数の機能を実現することができる。当該ユーザ端末20と30(より具体的に、CPUなどのプロセッサ)による当該ライブストリーミングアプリの実行により実現される当該機能は、当該ユーザ端末20と30の機能として以下で説明される。当該機能は基本的に、当該ライブストリーミングアプリが当該ユーザ端末20と30に実現させる機能である。一部の実施態様において、これらの機能は、ネットワークNWを介して当該サーバ10から当該ユーザ端末20と30のウェブブラウザに送信し、当該ウェブブラウザのコンピュータプログラムにより実行されることにより実現されてもよい。当該コンピュータプログラムは、HTML(Hyper Text Markup Language)などのプログラミング言語で書かれていてもよい。
当該ユーザ端末20は、ストリーミングユニット100と視聴ユニット200を含む。一部の実施態様において、当該ストリーミングユニット100は、ユーザのオーディオ及び(または)ビデオデータを記録し、当該サーバ10に送信するストリーミングデータを生成するように構成される。当該視聴ユニット200は、サーバ10からストリーミングデータを受信し、再生するように構成される。一部の実施態様において、ユーザは、ブロードキャスト時に当該ストリーミングユニット100を作動させる、またはストリーミングを視聴するときに当該視聴ユニット200を作動させることができる。一部の実施態様において、当該ストリーミングユニット100を作動させる当該ユーザ端末は、ストリーマーと呼ぶことができ、またはストリーミングデータを生成する当該ユーザ端末と呼ぶことができる。当該視聴ユニット200を作動させる当該ユーザ端末は、視聴者と呼ぶことができ、または当該ストリーミングデータを再生する当該ユーザ端末と呼ぶことができる。
当該ストリーミングユニット100は、ビデオコントロールユニット102と、オーディオコントロールユニット104と、配信ユニット106と、UIコントロールユニット108を含むことができる。当該ビデオコントロールユニット102は、カメラ(図示せず)に接続されてもよく、当該映像は当該カメラにより制御される。当該ビデオコントロールユニット102は、当該カメラから当該ビデオデータを取得することができる。当該オーディオコントロールユニット104は、マイク(図示せず)に接続されてもよく、音声は当該マイクにより制御される。当該オーディオコントロールユニット104は、当該マイクから当該オーディオデータを取得することができる。
当該配信ユニット106は、当該ビデオコントロールユニット102からのビデオデータと、当該オーディオコントロールユニット104からのオーディオデータを含むストリーミングデータを受信し、ネットワークNWを介して当該サーバ10に送信する。一部の実施態様において、当該配信ユニット106は当該ストリーミングデータをリアルタイムで送信する。つまり、当該ビデオコントロールユニット102と当該オーディオコントロールユニット104からの当該ストリーミングデータの生成と、当該配信ユニット106の配信は同時に実行される。
当該UIコントロールユニット108は、当該ストリーマーのUIを制御する。当該UIコントロールユニット108はディスプレイ(図示しない)に接続され、当該配信ユニット106が当該ストリーミングデータを送信し、再生して当該ディスプレイ上に表示する相手に対して当該ストリーミングデータを生成するように構成される。当該UIコントロールユニット108は、操作するオブジェクトまたは指示を受けるオブジェクトをディスプレイ上に表示し、ストリーマーからのタップ入力を受け付けるように構成される。
当該視聴ユニット200は、UIコントロールユニット202と、レンダリングユニット204と、入力送信ユニット206を含んでもよい。当該視聴ユニット200は、ネットワークNWを介してサーバ10からストリーミングデータを受信するように構成される。当該UIコントロールユニット202は、当該視聴者のUIを制御する。当該UIコントロールユニット202は、ディスプレイ(図示せず)及び(または)スピーカー(図示せず)に接続され、当該ストリーミングデータを再生することにより、当該ディスプレイ上に映像を表示し、当該スピーカーから音声を出力するように構成される。一部の実施態様において、当該ディスプレイ上に映像を出力し、当該スピーカーから音声を出力することを「ストリーミングデータを再生する」ことと呼ぶことができる。当該UIコントロールユニット202は、タッチパネルやキーボード、ディスプレイなどの入力ユニットに接続され、ユーザからの入力を取得することができる。
当該レンダリングユニット204は、当該サーバ10からのストリーミングデータと、フレーム画像とをレンダリングするように構成されてもよい。当該フレーム画像は、ユーザからの入力、視聴者により入力されたコメント、当該サーバ10から受信したデータを受け付けるためのユーザインターフェイスオブジェクトを含んでもよい。当該入力送信ユニット206は、当該UIコントロールユニット202から当該ユーザ入力を受信し、当該ネットワークNWを介して当該サーバ10に送信するように構成される。
一部の実施態様において、当該ユーザ入力は、ライブ配信の選択、コメントの入力、贈り物の送信、ユーザのフォローまたはフォロー解除、イベントでの投票、ゲームなど、当該ユーザ端末の画面上のオブジェクトをクリックすることであってもよい。例えば、当該入力送信ユニット206は、視聴者の当該ユーザ端末がストリーマーに贈り物を送るために画面上の贈り物オブジェクトをクリックした場合に、贈り物情報を生成し、インターネットNWを介して当該サーバ10に送信してもよい。
図3は、本開示の一部の実施態様に基づくサーバ10のブロック図である。当該サーバ10は、ストリーミング情報ユニット302と、中継ユニット304と、構成ユニット306と、変換ユニット308と、視覚化ユニット310と、構成ストレージ320と、定義ストレージ 322を含んでもよい。
当該ストリーミング情報ユニット302は、当該ネットワークNWを介して当該ストリーマーの当該ユーザ端末20からライブストリーミングの要求を受信する。要求を受信すると、当該ストリーミング情報ユニット302は、当該ライブストリーミングの情報をストリームDB(図示せず)に登録する。一部の実施態様において、当該ライブストリーミングの情報は、当該ライブストリーミングのストリームID、当該ライブストリーミングに対応する当該ストリーマーのストリーマーID、または当該視聴者の視聴者IDであってもよい。
当該視聴者から当該ネットワークNWを介して当該ユーザ端末30の当該視聴ユニット200から当該ライブストリーミングの当該情報の提供要求を受信すると、当該ストリーミング情報ユニット302は当該ストリームDB320を参照し、利用可能なライブストリーミングのリストを生成する。その後当該ストリーミング情報ユニット302は、当該ネットワークNWを介して当該ユーザ端末30に当該リストを送信する。当該ユーザ端末30の当該UIコントロールユニット202は、当該リストに基づいてライブストリーミング選択画面を生成し、当該ユーザ端末30のディスプレイ上に当該リストを表示する。
当該ユーザ端末30の当該入力送信ユニット206は、当該ライブストリーミング選択画面上での当該視聴者によるライブストリーミングの選択を受信すると、選択された当該ライブストリーミングの当該ストリームIDを含む配信要求を生成し、当該ネットワークを介して当該サーバ10に送信する。当該ストリーミング情報ユニット302は、当該配信要求で当該ストリームIDにより指定された当該ライブストリーミングの当該ユーザ端末30に対する提供を開始することができる。当該ストリーミング情報ユニット302は、当該ストリームDB320を更新し、当該ユーザ端末30の当該視聴者の視聴者IDを当該ストリームIDの当該ストリーマーIDに追加することができる。
当該中継ユニット304は、当該ストリーミング情報ユニット302により開始された当該ライブストリーミングにおいて、当該ストリーマーの当該ユーザ端末20から、当該視聴者の当該ユーザ端末30へのライブストリーミングの送信を中継することができる。当該中継ユニット304は、ストリーミングデータの再生中に、当該視聴者からのユーザ入力を示す信号を当該入力送信ユニット206から受信することができる。当該ユーザ入力を示す当該信号は、当該ユーザ端末30のディスプレイに表示されるオブジェクトの指定を示すオブジェクト指定信号であってもよい。
当該オブジェクト指定信号は、当該視聴者の視聴者ID、当該視聴者が視聴しているライブストリーミングを配信するストリーマーのストリーマーID、及び当該オブジェクトにより指定されるオブジェクトIDを含んでもよい。当該オブジェクトが贈り物などである場合、当該オブジェクトIDは、贈り物IDなどであってもよい。同様に、当該中継ユニット304は、ストリーミングデータの再生中に、当該ユーザ端末20の当該ストリーミングユニット100から、例えば当該オブジェクト指定信号など、当該ストリーマーのユーザ入力を示す信号を受信することができる。
当該構成ユニット306は、当該サーバ10において設定を取り扱うように構成されている。より具体的に、当該構成ユニット306は、外部データベースから構成設定データを引き出してもよい。当該構成設定データは、エンジニアによってプログラムされ、当該外部データベースにアップロードされてもよい。一部の実施態様において、当該外部データベースは、当該サーバ10の内部データベースであってもよい。一部の実施態様において、当該外部データベースは、GitHub、googleドライブなどのサードパーティサービスであってもよい。一部の実施態様において、当該サーバ10は、当該構成設定データを一時的または恒久的に保存するためのローカルリポジトリを含んでもよい。当該構成ユニット306は、外部データベースから構成設定データを引き出し、さらに利用するためにローカルデータベースに格納してもよい。
当該構成設定データは、設定ファイルと定義ファイル等を含んでもよい。当該設定ファイルは、機能、イベント、設定などの設定のソースコードまたはプログラミングコードであってもよい。当該設定ファイルは、イベント期間、フレームカラー等の構成を設定するためのパラメータを含んでもよい。当該定義ファイルは、当該設定ファイルに関連する情報を含んでもよい。一部の実施態様において、当該定義ファイルは、当該設定ファイル内のパラメータまたは設定の定義を含んでもよい。当該定義は、例えば、当該パラメータの値、範囲、タイプまたはフォーマット等を含んでもよい。一部の実施態様において、当該構成設定データは、当該ライブストリーミングプラットフォームにおけるストリーマーと視聴者の間の交流に関連するパラメータを含んでもよい。
当該構成ユニット306は、当該データベースから最新の構成設定データを引き出してもよい。例えば、メインブランチやサブブランチなど、GitHub内の異なるブランチに異なる設定ファイルが存在する場合がある。あるブランチで当該設定ファイルの更新があった場合、当該構成ユニット306は、GitHubから最新の構成設定データを引き出してもよい。一部の実施態様において、当該構成ユニット306は、当該構成設定データを当該ローカルリポジトリに格納してもよい。一部の実施態様において、当該設定ファイルと当該定義ファイルは、外部データベースからの同じまたは異なるリポジトリから引き出されてもよく、当該サーバ10内の同じまたは異なるローカルリポジトリに格納されてもよい。一部の実施態様において、リモートリポジトリ及び当該ローカルリポジトリは、実際の必要に応じて調整されてもよい。
当該構成ユニット306は、さらに、管理者が設定を行うために、当該設定データをフロントエンドに送信してもよい。一部の実施態様において、当該管理者は、当該構成設定データに対して、編集、修正、またはパラメータの更新などの操作を実行してもよい。当該構成ユニット306は、構成設定を完了するために、更新された当該構成設定データを対応する当該データベースにプッシュしてもよい。一部の実施態様において、当該構成設定データは、当該変換ユニット308により適切な形式に変換されてもよい。一部の実施態様において、当該構成設定データはさらに、当該視覚化ユニット310によって視覚化され、当該管理者に提供されてもよい。
当該変換ユニット308は、当該構成設定データを変換するように構成される。当該変換ユニット308は、当該構成ユニット306から構成設定データを受け取り、当該構成設定データを今後使用するために適した形式に変換してもよい。例えば、当該設定ファイルがYAMLファイルでプログラムされ、当該定義ファイルがJSONスキーマ等でプログラムされていてもよい。当該変換ユニット308は、当該構成設定データを同一または互換性のある形式に変換してもよい。一部の実施態様において、当該構成設定データは、YAML、JSON、XML、HTML、C++、JavaScript、Pythonなどの任意の可能な言語としてプログラムまたは変換されてもよい。
一部の実施態様において、当該設定ファイルはYAMLでプログラムされてもよく、当該変換ユニット308は当該設定ファイルをYAMLファイルからJSONオブジェクトなどに変換してもよい。一部の実施態様において、当該YAMLファイルは、最初にドキュメントノード(Document Node)に変換された後、JSONオブジェクトに変換されてもよい。ドキュメントノードを使用する1つの利点は、コメント、注釈、属性、順序などの構成ファイル内のメタデータが完全に保存され得ることである。ドキュメントノードのデータ構造は、トランスフォーメーション及び変換中にメタデータが失われることを防止できる。
一部の実施態様において、当該YAMLファイルは、サードパーティライブラリ「js―yaml」等の任意の可能な方法によって、ドキュメントノードに変換されてもよい。 一部の実施態様において、当該ドキュメントノードはさらに、組み込みの「toJSON()」関数などの任意の可能な方法によってJSONオブジェクトに変換されてもよい。
一部の実施態様において、当該変換ユニット308は、当該構成設定データが当該設定ファイルに対応する当該定義ファイルを含むか否かをチェックしてもよい。当該設定ファイルに対応する定義ファイルがない場合、当該サーバ10はコードエディタを生成し、当該管理者が当該コードエディタで設定できるようにしてもよい。また、当該管理者は、当該設定ファイルのコード内のパラメータを修正するなどの操作を行ってもよい。
当該視覚化ユニット310が、当該構成設定データを視覚化するように構成されている。上述したように、当該構成設定データは、設定ファイルと定義ファイルを含んでもよい。当該定義ファイルは、JSONスキーマでプログラムされていてもよい。当該JSONスキーマは、プログラマーによるJSONドキュメントのアノテーションとバリデーションを可能にする宣言型言語である。JSONスキーマは、主にJSONオブジェクトのデータ構造や、属性などのパラメータの形式を記述するために使用することができる。また、JSONスキーマの内容は、データ形式等の正確性を検証するために用いられてもよい。
視覚化手順の間、当該視覚化ユニット310は、当該JSONオブジェクト及びJSONスキーマに従い、ビジュアルエディタを生成してもよい。より具体的に、当該視覚化ユニット310は、当該定義ファイル内の定義に従い、当該JSONオブジェクトを視覚化インターフェイスに変換してもよい。一部の実施態様において、当該JSONオブジェクトは、「react-jsonschema-form」などのサードパーティライブラリによって当該視覚化インターフェイスに変換されてもよい。「react-jsonschema-form」のライブラリは、当該定義ファイル中のJSONスキーマの内容に従い、当該JSONオブジェクトを対応するコンポーネントに変換してもよい。一部の実施態様において、当該コンポーネントは、入力フィールド、カラーピッカー、日付ピッカー、プルダウンメニューなどであってもよい。一部の実施態様において、当該コンポーネントは、実際の必要性に応じて設計されてもよい。
一部の実施態様において、当該設定ファイルは、複数のパラメータを含んでもよく、当該視覚化ユニット310は、当該パラメータの形式に基づき、当該パラメータを対応するコンポーネントに変換してもよい。 例えば、当該パラメータがフレームの色である場合、当該視覚化ユニット310は、当該パラメータをカラーコンポーネントに変換してもよい。当該カラーコンポーネントは、管理者がカラーコードを入力するためのフィールドや、当該管理者が色を選択するためのカラーピッカーなどを含んでもよい。当該パラメータが列挙型データ型に関連する場合、当該パラメータはプルダウンメニューなどのコンポーネントに変換されてもよい。本実施態様によれば、同じ形式のパラメータは、同じコンポーネントに変換されてもよい。技術者は同じ形式のパラメータに対して、1つのコンポーネントを作成すればよい。したがって、システムの効率を向上させることができる。
一部の実施態様において、当該視覚化ユニット310は、設定の正確性を検証してもよい。例えば、管理者がアバターの画像をアップロードし、その画像のURLを入力することで当該アバターの設定を行うことができる。当該定義ファイルで、当該URLの当該パラメータは、少なくとも1文字を含む文字列形式で定義され、当該文字列の形式は当該URLの形式に準拠する。ユーザが入力した後、当該視覚化ユニット310が当該入力の形式を検証してもよい。一部の実施態様において、当該視覚化ユニット310は、すべてのパラメータが検証されるまで、保存ボタンを無効にしてもよい。
図7は、本開示の一部の実施態様に基づく構成設定システム2の視覚化手順を示す概略ブロック図である。図7に示すように、当該視覚化ユニット310は当該構成設定データを視覚化オブジェクトに視覚化してもよい。当該視覚化ユニット310は、パラメータPを対応するコンポーネントCに変換し、かつ当該設定ファイルと当該定義ファイルに基づき、ビジュアルエディタVRを生成してもよい。
例えば、「startTime」のパラメータPは、対応する定義ファイルにおいて定義Dを有することができる。当該視覚化ユニット310は、当該定義Dに基づいて、当該パラメータPを対応する当該コンポーネントCに変換してもよい。当該コンポーネントCは、入力フィールドや日付ピッカーなどを含んでもよい。本実施態様によれば、パラメータの形式ごとの当該コンポーネントを技術者が柔軟に設計することができ、同じ形式のパラメータを同じコンポーネントに変換することができる。したがって、システムの柔軟性及び利便性を向上させることができる。
一部の実施態様において、当該アプリまたはプラットフォームプロバイダーは、当該ストリーマーが参加するイベントを提供し、また視聴者が当該サーバ10を介して当該ストリーマーに送るための贈り物を提供してもよい。当該管理者は、当該イベントの当該パラメータを設定してもよい。当該パラメータは、開始時刻及び終了時刻等のイベントの継続時間を含んでもよい。また当該パラメータは、当該イベントの贈り物のアイコン、ポイント、贈り物IDを含んでもよい。一部の実施態様において、当該技術者は当該設定ファイルをYAMLファイルとしてプログラムし、当該管理者は当該YAMLファイルの当該パラメータを設定して、イベントごとに設定をカスタマイズすることができる。
一部の実施態様において、当該技術者はさらに当該定義ファイルを作成し、当該変換ユニット308と当該視覚化ユニット310が当該構成設定データを可視化オブジェクトに変換して可視化し、当該管理者が構成設定を行えるようにしてもよい。例えば、当該管理者は、各イベントの開始時刻と終了時刻を設定し、異なるイベントをカスタマイズしてもよい。当該設定ファイルの当該YAMLファイルは、開始時刻、終了時刻などのパラメータを含んでもよい。一部の実施態様において、当該定義ファイルは、開始時刻及び終了時刻の形式、当該パラメータの対応するコンポーネントなど、当該パラメータの定義を含んでもよい。一部の実施態様において、当該定義ファイルは、AI技術、機械学習技術などによって自動生成されてもよい。
図4は、本開示の一部の実施態様に基づく構成設定システム2の構成を示す概略図である。当該構成設定システム2は、技術者ENGと管理者ADMINが構成設定を行うための構成設定サービスを提供する。図4に示すように、当該構成設定システム2は、当該サーバ10と、技術者ENGと、管理者ADMINと、外部データベースDBと、ビジュアルエディタVEを含んでもよい。当該技術者ENGは、当該構成設定データをプログラムする技術者であってもよく、当該管理者ADMINは、当該構成設定を行う管理者であってもよい。当該外部データベースDBは、プログラミングコードやソースコードなどの構成設定データを格納するためのデータベースであってもよい。一部の実施態様において、当該データベースDBは、該サーバ10内の内部データベースであってもよい。該ビジュアルエディタVEは、当該管理者ADMINが構成設定を行うためのインターフェイスであってもよい。当該技術者ENGと当該管理者ADMINは、利用可能な任意の端末やコンピュータ等によって通信を行ってもよい。当該構成設定システム2における通信は、有線ネットワークNWや無線ネットワークNWなど、任意の種類のネットワークによって実現されてもよい。
当該構成設定システム2において、読み出し手順と書き込み手順とが実現されてもよい。当該読み出し手順は、当該データベースから構成設定データを取得し、当該管理者ADMINのための当該ビジュアルエディタVEを生成することである。当該書き込み手順は、当該ビジュアルエディタVEから当該構成設定データに対する操作を取得し、当該データベースの当該構成設定データを更新することである。一部の実施態様において、当該サーバ10は、構成設定、リリース及びデプロイメントをそれぞれ実現するための1つのサーバを含んでもよい。一部の実施態様において、当該サーバ10は、構成設定、リリース及びデプロイメントをそれぞれ実現するための複数のサーバを含んでもよい。例えば、当該構成設定は管理者サーバによって実現され、構成設定のリリース及びデプロイメントは別のサーバによってそれぞれ実現されてもよい。
図5と図6は、本開示の一部の実施態様に基づく構成設定システム2の読み出し手順と書き込み手順を示す概略ブロック図である。ここで、当該外部データベースDBはGitHubシステムであってもよく、バックエンドは当該構成ユニット306、フロントエンドは当該変換ユニット308と当該視覚化ユニット310を指してもよい。
図5に示すように、当該構成設定サービスは、外部データベースから最新の構成設定データを引き出してもよい。より具体的に、当該外部データベースは当該設定ファイルと当該定義ファイルを格納するための設定リポジトリと定義リポジトリをそれぞれ含んでもよい。技術者は、当該構成設定データをプログラミングし、当該外部データベースにアップロードしてもよい。当該構成設定データが更新されると、当該構成設定サービスは最新の当該構成設定データを当該サーバ10に引き出してもよい。
当該構成設定サービスは、当該構成設定データを当該サーバ10のローカルストレージに格納してもよい。より具体的には、 当該サーバ10は、ローカル構成リポジトリおよびローカル定義リポジトリを含んでもよい。一部の実施態様において、当該ローカルリポジトリは、内部ストレージ、またはETCDなどのサードパーティサービスであってもよい。一部の実施態様において、当該構成設定データの引き出しとプッシュは、例えば、当該Gitシステム、ETCD等により実現されてもよい。
設定の要求が行われると、フロントエンドは当該構成設定サービスから当該構成設定データを取得してもよい。ここで、当該設定ファイルはYAMLファイル、当該定義ファイルはJSONスキーマファイルであってもよい。当該YAMLファイルは、視覚化の準備のためにJSONオブジェクトに変換されてもよい。図5に示す実施態様において、当該YAMLファイルは、「js-yaml」のライブラリによってドキュメントノードに変換され、JavaScriptなどで関数「toJSON()」の方法によりJSONオブジェクトに変換されてもよい。ファイルを適切な形式に変換する方法は、組み込み関数やサードパーティライブラリなどで柔軟に実現することができる。
さらに、フロントエンドは、当該管理者が構成設定を行うための当該構成設定データを視覚化してもよい。図5に示すように、当該JSONオブジェクトとJSONスキーマが組み込みまたはサードパーティライブラリで変換され、UIインターフェイスなどのビジュアルエディタを生成してもよい。より具体的に、当該JSONオブジェクトは、JSONスキーマの内容に従い、サードパーティライブラリによってUIインターフェイスに変換されてもよい。当該サードパーティライブラリは、「react-jsonschema-form」などのライブラリであってもよい。当該管理者は、当該ビジュアルエディタにより構成設定を行い、当該構成設定を実現してもよい。
一部の実施態様において、当該設定ファイルに対応する定義ファイルがない場合、フロントエンドは、当該管理者が構成設定を行うために、当該設定ファイルからコードエディタを生成してもよい。例えば、当該フロントエンドは、当該管理者が構成設定を行うために、パラメータを入力または変更するための生のYAMLファイルのコードを表示してもよい。
図6に示すように、当該ユーザ(当該管理者であってもよい)は、 当該ビジュアルエディタを編集してもよい。例えば、当該管理者は、期間、イベントギフト、バナーなどのパラメータを設定してもよい。当該パラメータが設定されると、 当該ビジュアルエディタは当該JSONオブジェクトを更新してもよい。当該JSONオブジェクトは、「react-jsonschema-form」などのライブラリによって更新されてもよい。当該ライブラリの属性に従い、当該ユーザが当該ビジュアルエディタを編集している間に、当該JSONオブジェクトが自動的かつ動的に更新されてもよい。
当該JSONオブジェクトが更新されると、フロントエンドは、更新された当該JSONオブジェクトと元のJSONオブジェクトとの間の差分を比較してもよい。その差分に基づき、パッチファイルが生成されてもよい。当該パッチファイルは、他のファイルに適用される変更を含むファイルであってもよい。一部の実施態様において、当該パッチファイルは、更新された該JSONオブジェクトと元のJSONオブジェクトとの間の差分を記録してもよい。例えば、当該ユーザがパラメータ「a.b.c.d」の値を「2」に変更した場合、当該パッチファイルにはその情報が記録されてもよい。
さらに、当該パッチファイル内の当該差分の記録は、リアルタイムで動的に当該ドキュメントノードに適用されてもよい。一部の実施態様において、当該パッチファイルは、当該ビジュアルエディタ上における当該ユーザからの操作を更新するために使用されてもよい。また当該視覚化ユニットは、当該パッチファイルなどに記録された当該差分に応じて、リアルタイムに当該ビジュアルエディタ上の操作を更新するようにしてもよい。すべての変更が検証され、 当該ビジュアルエディタに反映された後、当該管理者は設定を確定することができる。例えば、当該ビジュアルエディタには、当該管理者が設定を確定するための「保存」ボタンなどがあってもよい。当該管理者によって「保存」ボタンがクリックされると、ドキュメントノードはYAML文字列に変換され、APIを介してAPIボディのバックエンドに送信されてもよい。当該ドキュメントノードは「tostring()」などのプログラミング言語の組み込まれた方法によって、YAMLファイルに変換して戻されてもよい。
一部の実施態様において、当該構成設定システムは、当該管理者がより柔軟に構成設定を行うために、当該ビジュアルエディタとコードエディタを含んでもよい。 当該管理者は適切なインターフェイスに切り替えて、当該構成設定システム2に対する操作を実行してもよい。
当該構成設定サービスは、設定更新の要求を受け取ると、更新された当該構成設定データをローカルリポジトリに格納してもよい。さらに、当該構成設定サービスは、更新された当該構成設定データを外部データベースのリモートリポジトリにプッシュしてもよい。したがって、構成設定手順をより正確かつ円滑に実現することができる。
当該実施態様によれば、構成設定手順が向上される可能性がある。一般に、当該構成設定データは専門の技術者によってプログラムされ、管理される。例えば、YAMLは人間が読めるデータシリアライズ言語であり、一般的に設定ファイルに使用されている。しかし、管理者がプログラミング言語を理解し、構成設定方法を習得するには時間と労力を要する。誤った形式の構成設定を行い、ユーザがそれに気づかない場合、システムのエラーやクラッシュを引き起こす可能性がある。
当該構成設定データを視覚化することで、構成設定手順をより直感的かつ簡単に実行できるようになる。また、プレビューや補足メッセージ、ヒントなど、より多くの機能を追加で提供することもできる。したがって、プログラミング言語に不慣れなことによるヒューマンエラーを低減し、構成設定手順が向上される可能性がある。
本実施態様によれば、当該構成設定データは編集時に検証されてもよく、ヒューマンエラーによるシステムの不安定さを低減することができる。より具体的には、当該定義ファイルには各パラメータやフィールドのルールや形式が含まれていてもよく、そのため、当該管理者によって構成設定が行われている間に、リアルタイムで動的に当該構成設定データ中のパラメータの形式が検証されてもよい。したがって、システムの品質を向上させることができる。
また、当該視覚化インターフェイスにより、ユーザがより柔軟に構成設定を行うことができ、操作性も向上される可能性がある。例えば、URLのオブジェクトを当該ビジュアルエディタで表示してもよい。当該ユーザは、ブラウザ上で当該URLをコピー&ペーストするなどの追加手順を踏まずに、当該オブジェクトをプレビューすることができる。なお、プレビューの機能などは、すべて当該定義ファイルに設定・設計されていてもよい。したがって、当該構成設定システム2の柔軟性を向上させることができる。
さらに、当該定義ファイルは追加のデプロイメントを行うことなく修正または変更することができ、構成設定手順が向上される可能性がある。例えば、当該設定ファイルと当該定義ファイルは、GitHubリポジトリなどの外部データベースに格納されてもよい。当該外部データベースに新しいバージョンの構成設定データがアップロードされると、最新バージョンの当該設定ファイル及び定義ファイルが当該サーバ10に引き出されてもよい。したがって、新しい定義ファイルを作成する必要がある場合、または現在の定義ファイルを修正する必要がある場合、さらなるリリースまたはデプロイメントなしに、GiHubやGitシステムなどの当該外部データベースによって単に調整されてもよい。
図8に図3の構成ストレージ320の例示的データ構造を示す表を示す。当該構成ストレージ320は、当該設定ファイルを識別するファイルIDと、当該設定ファイルの場所を識別するURLとを関連付けて格納する。なお、当該設定ファイルの外観は、図8に示されている。一部の実施態様において、当該設定ファイルは、YAMLファイルでプログラムされ、構成設定を行うためのパラメータを含んでいてもよい。
図9に図3の定義ストレージ322の例示的データ構造を示す表を示す。当該定義ストレージ322は、当該定義ファイルを識別するファイルIDと、当該定義ファイルの場所を識別するURLとを関連付けて格納する。なお、当該定義ファイルの外観は、図9に示されている。一部の実施態様において、当該定義ファイルは、JSONスキーマファイルでプログラムされ、定義、形式などのパラメータの情報を含んでいてもよい。
図10は、本開示の一部の実施態様に基づく当該構成設定システム2の例示的なビジュアルエディタ600である。図10に示すように、当該ビジュアルエディタ600は、UIオブジェクト602を含んでもよい。一部の実施態様において、当該UIオブジェクト602は、当該ユーザがパラメータの変更、オブジェクトのアップロードなどの構成設定を行うための視覚化形態であってもよい。当該UIオブジェクト602は、タイトル604やパラメータの入力フィールド606などの構成設定の情報を含んでもよい。当該管理者は、イベントの開始時刻及び終了時刻などの当該パラメータを設定し、イベントをカスタマイズしてもよい。
一部の実施態様において、当該ビジュアルエディタ600は、当該ユーザが構成設定をしている間、当該ユーザをガイドしてもよい。例えば、情報オブジェクト608を表示して、単位、規格、範囲、形式など当該パラメータの情報を示してもよい。一部の実施態様において、当該ユーザによる当該パラメータの設定を支援するために、日付ピッカー、カラーピッカーなどのヘルパーが表示されてもよい。一部の実施態様において、ユーザの参考のために、画像、アイコン、ビデオなどのプレビュー610も、当該UIオブジェクト602上に表示されてもよい。例えば、画像のURLまたはファイルが当該ユーザによって入力される場合、当該画像の当該プレビュー610が当該ビジュアルエディタ600上に表示されてもよい。
当該ビジュアルエディタ600は、当該設定ファイルのコード情報612を含んでもよい。例えば、当該設定ファイルのプログラミングコードが当該コード情報612に表示されてもよい。当該コード情報612は、当該ユーザが当該コードを修正するための当該コードエディタであっても、当該ユーザがコードなどを表示するためのコードビューアであってもよい。一部の実施態様において、当該構成設定の変更は、リアルタイムで当該コード情報612に反映されてもよい。例えば、当該ユーザが変更した部分が、当該ユーザの参考のために強調表示されてもよい。一部の実施態様において、当該設定ファイルの当該コード情報612はさらに2つの部分を含み、元の当該設定ファイルと更新された設定ファイルを表示してもよい。本実施態様によれば、ヒューマンエラーを低減し、構成設定の精度を向上させることができる。
一部の実施態様において、当該ビジュアルエディタ600は、当該管理者が該ビジュアルエディタとコードエディタとの間で切り替えるためのスイッチ614を含んでもよい。一部の実施態様において、当該ビジュアルエディタ600は、当該管理者が標準モードと差分モードとの間で切り替えるためのスイッチ616を含んでもよい。標準モードにでは、当該コード情報612が当該ビジュアルエディタの隣に表示されてもよい。当該ビジュアルエディタからの入力及び変更が、リアルタイムで当該コード情報612に反映されてもよい。差分モードでは、当該コード情報612の下にさらにコード情報620が表示され、当該コード情報612の元の設定ファイルと比較して更新された当該設定ファイルが表示されてもよい。一部の実施態様において、当該ビジュアルエディタ600のレイアウトは、実際の必要性に応じて柔軟に調整されてもよい。
一部の実施態様において、更新された部分は影などのオブジェクト622で強調表示されてもよい。一部の実施態様において、パラメータの形式が正しくない場合、参照用のヒントとして、「エラー:時間はYYYY-MM-DD hh:mm:ss([GMT]ZZ)とする必要があります」などの補足メッセージ624が参考用のヒントとして表示されてもよい。一部の実施態様において、当該管理者がパラメータを設定するために、時刻ピッカー、日付ピッカー、カラーピッカーなどのガイドオブジェクト626が提供されてもよい。一部の実施態様において、当該管理者が構成設定の完了を確定するための保存ボタン628が提供されてもよい。
一部の実施態様において、当該ビジュアルエディタは、当該ユーザが当該パラメータや設定などを検索するための検索バーを含んでもよい。当該ビジュアルエディタは、当該ユーザが構成設定の情報を当該ビジュアルエディタの上部などにピン留めするためのピン機能を含んでもよい。当該ビジュアルエディタは、当該ユーザが以前の操作などをチェックするための履歴記録を提供してもよい。一部の実施態様において、当該ビジュアルエディタは、当該技術者がリアルタイムで当該定義ファイルを編集するための定義エディタをさらに提供してもよい。一部の実施態様において、当該ビジュアルエディタは、当該ユーザが構成設定データのバージョンを選択するためのバージョン管理機能を提供してもよい。一部の実施態様において、当該ビジュアルエディタは、実際の必要性に応じて設計・決定されてもよい。
次に、上記構成を有する構成設定システム2の動作について説明する。図11は、当該構成設定システム2における読み出し手順の工程を示すフローチャートである。当該技術者が当該構成設定データを当該データベースにアップロードしたら、当該構成ユニット306は、当該データベースから当該構成設定データを引き出してもよい(S520)。一部の実施態様において、当該構成ユニット306は、当該構成設定データをローカルリポジトリに格納してもよい(S522)。新しい構成設定データがあると、当該フロントエンドは当該構成ユニット306から当該構成設定データを取得してもよい。
一部の実施態様において、当該フロントエンドは、当該構成設定データが当該設定ファイルに対応する定義ファイルを含むか否かをチェックしてもよい(S524)。より具体的には、当該フロントエンドは、当該YAMLファイルに対する定義ファイルがあるか否かをチェックしてもよい。例えば、当該YAMLファイルには、当該定義ファイルの記録と位置が含まれていてもよい。一部の実施態様において、当該YAMLファイルと定義ファイルは、異なるファイル拡張子で同じファイル名を共有してもよいため、当該フロントエンドは、ファイル名やファイルパスなどによって当該定義ファイルの存在を確認することができる。例えば、アバター機能の設定であれば、当該YAMLファイルは「avatar.yaml」、当該定義ファイルは「avatar.json」などとすることができる。当該変換ユニット308は、特定のファイル拡張子で同じファイル名を持つファイルがあるか否かをチェックし、当該構成設定データに当該定義ファイルが含まれるか否かを判断してもよい。例えば、当該設定ファイルのファイル拡張子は「.ymal」、当該定義ファイルのファイル拡張子は「.json」等であってもよい。当該設定ファイルは、当該定義ファイルと同じ場所に保持され、両者は同じファイルパスを共有してもよい。当該定義ファイルは、当該設定ファイルとは別の場所に保存されてもよい。 この場合、当該フロントエンドは、対応する場所に特定のファイル拡張子を有する同じファイル名のファイルが存在するか否かをチェックして、当該定義ファイルの存在を確認してもよい。本実施態様によれば、システムの複雑さを軽減し、また、システムの品質を向上させることができる。
当該設定ファイルに対応する定義ファイルが存在しない場合(S524で「いいえ」)、当該フロントエンドは、当該構成設定データを直接ロードしてもよい(S530)。例えば、当該フロントエンドは、管理者が構成設定を行うための生のYAMLファイルを読み込んでもよい。当該設定ファイルに対応する定義ファイルがある場合(S524で「はい」)、当該変換ユニット308は当該構成設定データを適切な形式に変換してもよい(S526)。当該視覚化ユニット310はさらに、当該構成設定データをUIインターフェイスなどのビジュアルエディタに視覚化してもよい(S528)。一部の実施態様において、当該フロントエンドはさらに、当該構成設定データをロードしてもよい(S530)。したがって、当該構成設定インターフェイスは、ビジュアルエディタ、生のYAMLファイル、上記の組み合わせなどであってもよい。
図12は、当該構成設定システム2における書き込み手順の工程を示すフローチャートである。当該管理者が当該構成設定システム2へのアクセスを取得すると、当該フロントエンドは当該管理者が構成設定を行うための構成をロードしてもよい(S540)。当該管理者は、当該ビジュアルエディタVEで当該構成設定データを設定または変更してもよい。 当該管理者によって設定された新しい構成設定がある場合(S542で「はい」)、当該フロントエンドは、当該視覚化ユニット310によってすべての変更が処理されるまで、以下のステップS544、S546、S548、S550、S552、S554を繰り返してもよい。
当該視覚化ユニット310は、当該定義ファイルに基づき、変更を検証してもよい(S544)。例えば、変更が日付に関するものである場合、当該視覚化ユニット310は、当該変更が日付の書式と一致しているか否かを検証してもよい。変更内容が形式に適合していない場合(S544で「いいえ」)、当該視覚化ユニット310は、当該ビジュアルエディタ上に補足メッセージやヒントなどのガイダンスを表示し、当該ユーザの構成設定を支援してもよい。例えば、入力がUUIDの形式に適合する必要がある場合、「形式UUIDと一致する必要があります」などのメッセージを下に表示し、入力の誤りを示すようにしてもよい。本実施態様によれば、構成設定時のヒューマンエラーを低減し、システムの品質を向上させることができる。
当該フロントエンドは、変更が形式に適合する場合(S544で「はい」)、元の構成設定データと更新後の構成設定データの差分を比較してもよい(S548)。当該変換ユニット308は、当該差分を記録したパッチファイルを生成してもよい(S550)。当該変換ユニット308は、当該差分をドキュメントノードに適用してもよい(S552)。さらに、当該視覚化ユニット310は、リアルタイムで当該ビジュアルエディタを動的に更新してもよい(S554)。
例えば、当該ビジュアルエディタには、UIインターフェイスと生のYAMLファイルが含まれていてもよい。当該管理者がパラメータを更新すると、対応する変更が当該YAMLファイルに反映されてもよい。一部の実施態様において、当該生のYAMLファイルはさらに、参照用に元のYAMLファイル及び更新されたYAMLファイルを含んでもよい。一部の実施態様において、当該変更は、色、ハッチング、網掛けなどによって強調表示されてもよい。当該実施態様によれば、構成設定手順が向上される可能性がある。
当該管理者によって新たに設定された構成がない場合(S542で「いいえ」)、またはすべての変更内容が検証され、当該ビジュアルエディタに反映された後、当該管理者は、例えば保存ボタンをクリックするなどして、当該構成設定を確定させてもよい(S556)。当該変換ユニット308は、更新された構成設定データを適切な形式に変換してもよい(S558)。例えば、当該変換ユニット308は、当該ドキュメントノードをYAML文字列に変換し、APIを介してAPIボディのバックエンドに送信してもよい(S558)。当該構成ユニット306はさらに、当該構成設定データをリモートデータベースに更新してもよい(S560)。一部の実施態様において、当該構成ユニット306は、当該ローカルリポジトリの当該構成設定データを更新し、更新された当該構成設定データを当該リモートリポジトリにプッシュしてもよい。当該実施態様によれば、構成設定手順が向上される可能性がある。
図13は、本開示の一部の実施態様に基づく構成設定システム2の構成の動作を示す例示的なシーケンス図である。一部の実施態様において、当該技術者は、リモートデータベース内の当該構成設定データをプログラムしてアップロードしてもよい(S562)。当該構成ユニット306は、当該アップロードに応答して、最新の当該構成設定データを引き出してもよい(S564)。一部の実施態様において、当該構成ユニット306は、当該構成設定データをローカルリポジトリに格納してもよい(S566)。
当該変換ユニット308は、当該構成設定データを取得し(S568)、当該構成設定データを適切な形式に変換してもよい(S570)。一部の実施態様において、当該変換は、視覚化の準備のために使用されてもよい。当該視覚化ユニット310はさらに、当該構成設定データを当該ビジュアルエディタに可視化してもよい(S572)。一部の実施態様において、当該ビジュアルエディタは、UIインターフェイス、フォームなどであってもよい。
当該管理者は、当該ビジュアルエディタ上で構成設定を行ってもよい(S574)。一部の実施態様において、当該管理者は、当該構成設定データの入力、変更、アップロードまたは修正などの操作を実行してもよい。当該管理者により実行された操作は、当該構成設定データに適用されてもよい(S576)。当該変換ユニット308はさらに、当該構成設定データを適切な形式に変換してもよい(S578)。一部の実施態様において、更新された当該構成設定データは、YAMLファイルなどの元の形式に変換し直されてもよい。該構成ユニット306はさらに、当該ローカルリポジトリの当該構成設定データを更新し、当該リモートデータベースにプッシュしてもよい(S580)。 本実施態様によれば、より正確かつ簡便な方法で構成設定を行うことができる。
図14は、本開示の一部の実施態様に基づくシステム構成および処理を実行するためのコンピュータハードウェアの概略ブロック図である。図14の情報処理装置900は、例えば、本開示の一部の実施態様に基づく当該サーバ10と当該ユーザ端末20、30をそれぞれ実現するように構成される。
当該情報処理装置900は、CPU 901と、リードオンリーメモリ(ROM)903、ランダムアクセスメモリ(RAM)905を含む。さらに、当該情報処理装置900は、ホストバス907、ブリッジ909、外部バス911、インターフェイス913、入力ユニット915、出力ユニット917、ストレージユニット919、ドライブ921、接続ポート925、通信ユニット929を含んでもよい。当該情報処理装置900は、カメラなどの撮像装置(図示せず)を含んでもよい。当該情報処理装置900は、CPU901に代えて、または加えて、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)等の処理回路を含んでもよい。
当該CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージユニット919、またはリムーバブル記録媒体923に記録された各種プログラムに従って、当該情報処理装置900の全体動作またはその一部の動作を制御する。例えば、当該CPU901は、上述した実施態様の当該サーバ10および当該ユーザ端末20、30に含まれる各機能ユニットの動作全般を制御する。当該ROM903は、当該CPU901が使用するプログラム、動作パラメータなどを記憶する。当該RAM905は、当該CPU901が実行する際に使用するプログラムや、当該プログラムを実行する際に適宜変化するパラメータを過渡的に記憶する。当該CPU901、当該ROM903、当該RAM905は、CPUバスなどの内部バスから構成されるホストバス907を介して互いに接続されている。当該ホストバス907は、当該ブリッジ909を介してペリフェラルコンポーネントインターコネクト/インターフェイス(PCI)バスなどの外部バス911に接続される。
当該入力ユニット915は、マウス、キーボード、タッチパネル、ボタン、スイッチ、レバーなど、ユーザによって操作される装置である。当該入力ユニット915は、オーディオセンサ(マイクなど)、加速度センサ、傾斜センサ、赤外線センサ、深度センサ、温度センサ、湿度センサなど、物理量を電気信号に変換する装置であってもよい。当該入力ユニット915は、例えば、赤外線や別の種類の電波を利用するリモートコントロール装置であってもよい。あるいは、当該入力ユニット915は、当該情報処理装置900の動作に対応する携帯電話などの外部接続端末927であってもよい。当該入力ユニット915は、ユーザから入力される情報に基づいて入力信号を生成し、生成した入力信号を当該CPU901に出力する入力制御回路を含む。当該ユーザは当該入力ユニット915を操作することにより、各種データを入力し、当該情報処理装置900に対する処理動作の指示を行う。
当該出力ユニット917は、取得した情報をユーザに対して視覚的または聴覚的に報知することができる装置を含む。当該出力ユニット917は、例えば、LCD、PDP、OLEDなどのディスプレイ装置、スピーカー、ヘッドホンなどの音声出力装置、プリンタなどであってもよい。当該出力ユニット917は、当該情報処理装置900が実行する処理によって得られた結果を、テキスト、画像などの映像、音声などのサウンドの形で出力する。
当該ストレージユニット919はデータストレージ用装置であり、当該情報処理装置900のストレージユニットの一例である。当該ストレージユニット919は、例えば、ハードディスクドライブ(HDD)などの磁気記憶装置、半導体記憶装置、光記憶装置、光磁気記憶装置などを含む。当該ストレージユニット919は、当該CPU901が実行するプログラムや各種データ、及び外部から取得された各種データを格納する。
当該ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブル記録媒体923のリーダー/ライターであり、当該情報処理装置900に内蔵または外付けされる。当該ドライブ921は、装着された当該リムーバブル記録媒体923に記録された情報を読み出し、当該RAM905に出力する。当該ドライブ921は、装着された当該リムーバブル記録媒体923に記録を書き込む。
当該接続ポート925は、当該情報処理装置900に機器を直接接続するために用いられるポートである。当該接続ポート925は、例えば、USB(ユニバーサルシリアルバス)ポート、IEEE1394ポート、またはSCSI(小型計算機システムインターフェイス)ポートであってもよい。当該接続ポート925は、RS-232Cポート、光オーディオ端子、HDMI(高精細度マルチメディアインターフェイス(登録商標))ポートなどであってもよい。当該接続ポート925に外部接続端末927が接続されることにより、当該情報処理装置900と当該外部接続端末927間の各種データのやり取りが可能になる。
当該通信ユニット929は、例えば、通信ネットワークNWに接続するための通信装置を含む通信インターフェイスである。当該通信ユニット929は、例えば、有線または無線のローカルエリアネットワーク(LAN)、Bluetooth(登録商標)、または、無線USB(WUSB)用の通信カードであってもよい。
当該通信ユニット929は、例えば、光通信用のルータ、ADSL(非対称デジタル加入者線)用のルータ、または、各種通信用のモデムであってもよい。例えば、当該通信ユニット929は、TCP/IP等の所定のプロトコルを用いて、インターネットにおける信号の送受信や、他の通信装置との信号の送受信を行う。当該通信ユニット929が接続する当該通信ネットワークNWは、有線接続または無線接続により確立されたネットワークである。当該通信ネットワークNWは、例えば、インターネット、家庭内LAN、赤外線通信、電波通信、または衛星通信である。
当該撮像装置(図示せず)は、例えば、CCD(電荷結合デバイス)やCMOS(相補型金属酸化膜半導体)などの撮像素子と、当該撮像素子上の被写体像の結像を制御するためのレンズなど各種部材を用いて現実空間を撮像し、撮像画像を生成する装置である。当該撮像装置は、静止画を撮像しても、動画を撮像してもよい。
以上、本開示のライブストリーミングシステム1と構成設定システム2について、実施形態を参照しながら説明した。上述の実施態様は、単に説明のために記載されたものである。むしろ、実施態様の上述した構成要素や処理を多様に組み合わせ、さまざまな変更がなされ得ることは、当業者であれば容易に想到し得ることであり、これらも本開示の技術的範囲に包含される。
本明細書に記載された工程、特にフローチャートやフローチャートを用いて説明された工程は、工程を構成する工程の一部の省略、工程を構成する工程に明示的に含まれない工程の追加、及び(または)工程順序の並べ替えが可能である。このような省略、追加、並べ替えの対象となった工程も、本開示の要旨を逸脱しない限り、本開示の範囲に含まれる。
一部の実施態様において、当該サーバ10が実行する機能の少なくとも一部は、当該サーバ10以外が実行してもよく、例えば、当該ユーザ端末20または30が実行するようにしてもよい。一部の実施態様において、当該ユーザ端末20または30が実行する機能の少なくとも一部を、当該ユーザ端末20または30以外が実行してもよく、例えば、当該サーバ10が実行するようにしてもよい。一部の実施態様において、フレーム画像のレンダリングは、視聴者、サーバ、ストリーマー等の当該ユーザ端末が実行するようにしてもよい。
さらに、上記実施態様で説明したシステムまたは方法は、固体記憶装置、光ディスク記憶装置、磁気ディスク記憶装置などの非一時的なコンピュータ可読ストレージ装置、またはコンピュータプログラム製品などで提供されてもよい。あるいは、プログラムは、インターネットを介してサーバからダウンロードされるものとしてもよい。
以上、本開示の技術的内容及び特徴を説明したが、本開示の属する技術分野において通常の知識を有する者であれば、本開示の教示及び開示から逸脱することなく、なお多くの変形及び修正を行うことができる。したがって、本開示の範囲は、既に開示された実施態様に限定されず、本開示から逸脱しない別の変形や修正を含む、後付の特許請求の範囲に含まれる範囲である。