以下、本発明の好ましい実施例を添付した図面を参照して詳しく説明する。ただし、下記の説明及び添付の図面で本発明の要旨を不明にすることができる公知機能または構成に対する詳細な説明は省略する。また、図面全体にわたって、同一の構成要素は、できるだけ同一の参照符号で示していることに留意しなければならない。
以下で説明される本明細書及び請求範囲に使用された用語や単語は、通常的や辞書的な意味に限定すべきものではなく、発明者は、自分の発明を最善の方法で説明するための用語の概念で適切に定義できるという原則に即して本発明の技術的思想に符合する意味と概念に解釈すべきである。したがって、本明細書に記載した実施例と図面に示された構成は、本発明の最も好ましい一実施例に過ぎず、本発明の技術的思想をすべて代弁するものではないので、本出願時点においてこれらを代替できる多様な均等物と変形例があり得ることを理解しなければならない。また、第1、第2等の用語は、多様な構成要素を説明するために使用するものであり、1つの構成要素を他の構成要素から区別する目的だけで使用され、構成要素を限定するために使用されない。
以下では、本発明の実施例による端末装置を通信網に連結され、クラウドコンピューティングシステム基盤でコンテンツをアップロードまたはダウンロードできる移動通信端末機の例を取って説明するが、端末機は、移動通信端末機に限定されたものではなく、すべての情報通信機器、マルチメディア端末機、有線端末機、固定型端末機及びIP(Internet Protocol)端末機等の多様な端末機に適用され得る。また、端末機は、携帯電話、PMP(Portable Multimedia Player)、MID(Mobile Internet Device)、スマートフォン(Smart Phone)、デスクトップ(Desktop)、タブレットパソコン(Tablet PC)、ノートパソコン(Note book)、ネットブック(Net book)及び情報通信機器等のような多様な移動通信仕様を有するモバイル(Mobile)端末機であるとき、有利に活用され得る。
以下、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出システムについて説明する。
図1は、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出システムを示すブロック図である。
図1を参照すれば、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出システムは、通信網110を介して連結された多数のクライアント100、101、102と多数のストリーミングサーバ130、140、150を含むクラウドストリーミングシステムを含み、本発明は、このようなクラウドストリーミングシステムの正常動作可否をテストするために、多数のストリーミングサーバ130、140、150と通信網110を介して連結され、多数のクライアント100、101、102の機能のうち一部を行う仮想クライアントモジュールを含む検出サーバ120を含む。
以下の実施例では、3個のストリーミングサーバ130、140、150及び3個の仮想クライアントモジュールを含む検出サーバ120を例示して説明するが、ストリーミングサーバの数及び仮想クライアントの数は、これに限定されず、必要及び設計に応じて、多様な組合せで具現され得る。
クライアント100、101、102は、通信網110を経由して各種データを送受信できる端末装置を意味し、特にストリーミングサーバ130、140、150に接続してクラウドストリーミングサービスを提供するユーザー側の端末装置を意味する。
例えば、クライアント100、101、102は、PC(Personal Computer)、ノートパソコン、携帯電話(mobile phone)、タブレットパソコン、ナビゲーション(navigation)、スマートフォン(smart phone)、PDA(Personal Digital Assistants)、PMP(Portable Multimedia Player)またはDVB(Digital Video Broadcasting)のようなデジタル放送受信機を含むことができる。
また、クライアント100、101、102は、通信網110を経由してストリーミングサーバ130、140、150と通信するためのブラウザー、プログラム及びプロトコルを格納するメモリ、各種プログラムを実行して演算及び制御するためのマイクロプロセッサー等を具備している端末装置を意味する。
すなわち、クライアント100、101、102は、ストリーミングサーバ130、140、150と通信が可能であれば、いずれの端末装置も可能であり、ノートパソコン、移動通信端末機、PDA等の通信コンピュータ装置をすべて含む広い概念である。
このようなクライアント100、101、102は、例えば、ストリーミングサーバ130、140、150に接続し、ユーザの入力によって特定サービスまたは機能を要請し、要請されたサービスまたは機能の実行による結果画面をストリーミングサーバ130、140、150から受信して出力できる。
ストリーミングサーバ130、140、150は、通信網110を介して多数のクライアント100、101、102に特定サービスや機能を提供する構成であって、特にクラウドストリーミングサービスを提供できる。
例えば、ストリーミングサーバ130、140、150は、クライアント100、101、102のOS種類、CPU性能、メモリ容量、その他ソフトウェア及びハードウェア仕様に関係なく、所定のサービスや機能を提供できる。
例えば、高性能のイメージ処理を必要とするサービスや機能を提供できるように、クライアント100、101、102から伝送されたユーザ入力によるサービスあるいは機能を行い、その結果画面をクライアント100、101、102に伝送できる。このために、ストリーミングサーバ130、140、150は、画面仮想化機能を具備できる。特に、本発明においてストリーミングサーバ130、140、150は、アプリケーションの正常動作可否をテストするために、アプリケーション実行データを検出サーバ120の各仮想クライアントモジュールに伝送できる。ここで、正常動作可否というのは、ストリーミングサーバ130、140、150内で実行されるアプリケーションが障害なしに正常に駆動するか否かを意味する。
この際、通信網110は、多様な形態の通信網が利用され得、限定された地域内で各種情報装置の通信を提供する有無線近距離通信網、移動体相互間及び移動体と移動体外部との通信を提供する移動通信網、衛星を利用して地球局と地球局間の通信を提供する衛星通信網であるか、有無線通信網のうちいずれか1つであるか、2つ以上の結合よりなることができる。一方、記述した通信網の伝送方式標準は、既存の伝送方式標準に限定されるものではなく、以後開発されるすべての伝送方式標準を含むことができる。
また、図1でクライアント100、101、102及びストリーミングサーバ130、140、150間の通信網は、ストリーミングサーバ130、140、150及び検出サーバ120間の通信網と異なってもよく、または同一であってもよい。
また、図1でクライアント100及びストリーミングサーバ130間の通信網、クライアント101及びストリーミングサーバ140間の通信網、クライアント102及びストリーミングサーバ150間の通信網は、それぞれ互いに異なってもよく、同一であってもよい。
検出サーバ120は、ストリーミングサーバ130、140、150の正常動作可否をテストするための装置である。
検出サーバ120は、クライアント100、101、102の機能のうち一部を有する仮想クライアントモジュールを少なくとも1つを含む。
この際、検出サーバ120は、少なくとも1つのストリーミングサーバから伝送されたアプリケーション実行データを利用して当該ストリーミングサーバの障害可否をテストする。
この際、検出サーバ120は、それぞれ互いに異なるストリーミングサーバ130、140、150から受信したアプリケーション実行データを画面に出力するための少なくとも1つの仮想クライアントモジュールを含み、少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャし、キャプチャされたテストイメージを基準イメージと比較し、テストイメージ及び基準イメージの一致可否によってストリーミングサーバの障害可否を判断する。
より具体的に、検出サーバ120は、少なくとも1つの仮想クライアントモジュールが特定ストリーミングサーバ130から受信したアプリケーション実行データに対してデコーディング等のデータ処理を行った後、画面に出力すれば、所定のキャプチャ時点にイメージとあらかじめ設定されたイメージを比較し、互いに一致すれば、当該ストリーミングサーバ130が正常動作するものと判断する。この際、キャプチャ時点は、少なくとも1つのストリーミングサーバからアプリケーション実行データが伝送される時点を基準に設定され得、検出サーバ120にあらかじめ格納されていてもよい。
このように、本発明によるクラウドストリーミングサービスのためのアプリケーションエラー検出装置は、検出サーバ120の仮想クライアントモジュールがそれぞれ互いに異なるストリーミングサーバ130、140、150からアプリケーション実行データを受信して出力したテストイメージを基準イメージと比較し、比較結果によって当該サーバの正常動作可否を判断するものである。すなわち、クライアント100、101、102でユーザに提供する画面イメージを基準として各ストリーミングサーバ130、140、150の正常動作可否を判断するものである。このために、検出サーバ120は、少なくとも1つのストリーミングサーバに同時にアプリケーション実行データの伝送を要請でき、このような要請信号によって各ストリーミングサーバ130、140、150は、アプリケーション実行データを伝送できる。また、少なくとも1つのストリーミングサーバから伝送されたアプリケーション実行データを受信して処理する仮想クライアントモジュールは、あらかじめ設定されていてもよい。すなわち、少なくとも1つのストリーミングサーバと少なくとも1つの仮想クライアントモジュールは、一対一あるいは多対一でマッピングされ得る。これにより、検出サーバ120は、少なくとも1つのストリーミングサーバにアプリケーション実行データ伝送を要請するとき、アプリケーション実行データを伝送する仮想クライアントモジュールに対する情報を一緒に伝送でき、仮想クライアントモジュールが2つ以上のストリーミングサーバとマッピングされる場合、2つ以上のストリーミングサーバからアプリケーション実行データを順に受信して処理できるように、少なくとも1つのストリーミングサーバからのアプリケーション実行データ伝送の要請時点を調整できる。
このように構成されたシステムにおいて添付の図2及び図3を参照して、本発明の実施例による検出サーバ120の構成を具体的に説明する。
以下、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出装置について説明する。
図2は、図1に示された検出サーバ120の一例を示すブロック図である。
図2を参照すれば、図1に示された検出サーバ120は、テスト制御部200、格納部210、比較部220、入力部230、出力部240及び少なくとも1つの仮想クライアントモジュール250、252、254を含む。
本実施例において仮想クライアントモジュール250、252、254の数を3個で例示したが、仮想クライアントモジュール250、252、254の数は、システム運用によって変更され得る。
テスト制御部200は、ストリーミングサーバ130、140、150の障害可否判断に必要なすべての制御を行う。
また、テスト制御部200は、障害可否の判断の要求時に、比較部220を介して行われた比較結果、すなわちテストイメージ及び基準イメージの一致可否によってストリーミングサーバの障害可否を判断する。
この際、テスト制御部200は、テストイメージ及び基準イメージが互いに一致する場合、ストリーミングサーバは障害がないものと判断し、テストイメージ及び基準イメージが互いに一致しない場合、ストリーミングサーバに障害があるものと判断できる。
この際、障害可否判断要求時点は、仮想クライアントモジュール250、252、254にデータ受信が感知され、受信が完了した時点、または入力部230を介してユーザから障害可否の判断の要求の入力がある時点、またはあらかじめ設定された周期による時点であることができる。
このように、障害可否の判断の要求は、設定によって発生し得る。
また、基準イメージは、あらかじめ格納され得るが、比較部220によって、少なくとも1つの仮想クライアントモジュール250、252、254のうち特定の仮想クライアントモジュールから出力されたイメージを基準イメージとして設定できる。
また、比較部220によって、少なくとも1つの仮想クライアントモジュール250、252、254から出力されたイメージのうち互いに一致する第1グループのイメージを基準イメージとして設定できる。
格納部210は、検出サーバ120の動作に必要な情報を格納できる。
この際、格納部210は、少なくとも1つのストリーミングサーバ130、140、150から伝送されたアプリケーション実行データを同一の時点にキャプチャするためにキャプチャ時点の情報を格納できる。
また、格納部210は、ストリーミングサーバ130、140、150から伝送されるアプリケーション実行データに対する基本情報を格納し、特にストリーミングサーバ130、140、150の障害可否を判断するための基準となる特定の時点の基準イメージをあらかじめ格納できる。
この際、格納部210は、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(Magnetic Media)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Video Disk)のような光記録媒体(Optical Media)、フロプティカルディスク(Floptical Disk)のような磁気−光媒体(Magneto−optical Media)及びロム(Read Only Memory;ROM)、ラム(Random Access Memory;RAM)、フラッシュメモリ(Flash Memory)を含む。
比較部220は、テスト制御部200の制御によってそれぞれの仮想クライアントモジュール250、252、254から出力されたアプリケーション実行データをキャプチャし、キャプチャされたテストイメージを基準イメージと比較する。
この際、比較部220は、少なくとも1つの仮想クライアントモジュールのうちいずれか1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャし、基準イメージとして設定できる。
この際、比較部220は、アプリケーション実行データのキーフレームをキャプチャし、基準イメージとして設定できる。
この際、比較部220は、少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データのうち互いに一致する画面をキャプチャし、基準イメージとして設定できる。
この際、比較部220は、少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データのキーフレームのうち互いに一致するキーフレームをキャプチャし、基準イメージとして設定できる。
入力部230は、サーバ管理者の操作によってサーバ管理者の要請や情報に該当するユーザ入力信号を発生でき、現在商用化されているか、以後商用化が可能な多様な入力手段で具現され得る。
例えば、入力部230は、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチパッド等のような一般的な入力装置だけでなく、ユーザのモーションを感知して特定の入力信号を発生するジェスチャ入力手段を含むことができる。
出力部240は、検出サーバ120の動作結果や状態をユーザが認識できるように提供する手段で具現され得る。
例えば、出力部240は、画面を介して視覚的に出力する表示手段や、可聴音を出力するスピーカー等を含むことができる。
特に、本発明によるクラウドストリーミングサービスのためのアプリケーションエラー検出装置において、出力部240は、少なくとも1つの仮想クライアントモジュール250、252、254から処理されて出力されるテストイメージを視覚的に出力でき、テストイメージと基準イメージを比較して出力するか、ストリーミングサーバの障害可否の結果を表示できる。
仮想クライアントモジュール250、252、254は、ストリーミングサーバ130、140、150に接続し、クラウドストリーミングサービスを提供されるクライアント100、101、102を仮想化した構成であって、クライアント100、101、102の機能のうち一部を行うことができる。
例えば、仮想クライアントモジュール250、252、254は、特定のストリーミングサーバ130、140、150に接続し、特定のストリーミングサーバ130、140、150からそれぞれのアプリケーション実行データを受信できる。
このような仮想クライアントモジュール250、252、254は、ストリーミングサーバ130、140、150から提供されるデータを受信できる端末装置であることができる。
例えば、仮想クライアントモジュール250、252、254は、携帯電話、PMP(Portable Multimedia Player)、MID(Mobile Internet Device)、スマートフォン(Smart Phone)、デスクトップ(Desktop)、タブレットパソコン(Tablet PC)、ノートパソコン(Note book)、ネットブック(Net book)、個人携帯用情報端末機(Personal Digital Assistant;PDA)、スマートテレビ及び情報通信機器等のような多様な移動通信仕様を有するモバイル(Mobile)端末機のうちいずれか1つを仮想化して具現され得る。
したがって、仮想クライアントモジュール250、252、254は、どんな種類の端末装置であるかによってその構成が相異に構成される。
特に、本発明のクラウドストリーミングサービスのためのアプリケーションエラー検出装置において、仮想クライアントモジュール250、252、254は、アプリケーション実行データの受信及び受信画面イメージのデコーディング及び画面出力機能まで行うように具現され得る。
すなわち、仮想クライアントモジュール250、252、254は、受信されたアプリケーション実行データに対してクライアント100、101、102と同一の処理を行って、出力部240を介して画面に出力できる。
例えば、仮想クライアントモジュール250、252、254は、受信されたアプリケーション実行データに対してクライアント100、101、102のようにデコーディングを行い、出力部240を介して画面に出力できる。
この際、仮想クライアントモジュール250、252、254は、比較部220のキャプチャ要求によって、特定の時点に画面に出力される結果をキャプチャして、比較部220に伝達できる。
この際、キャプチャ時点は、比較部220から受信してもよく、あらかじめ設定して格納していてもよい。
この際、仮想クライアントモジュール250、252、254は、キーフレームだけが含まれたアプリケーション実行データを出力できる。
この際、キャプチャされたテストイメージは、仮想クライアントモジュール250、252、254のフレームバッファに格納されたイメージデータをキャプチャする方式よりなることができる。
このような仮想クライアントモジュール250、252、254の内部構成は、図3のように示されることができる。
それぞれの仮想クライアントモジュールの内部構成は同一なので、図3の説明では、いずれか1つの仮想クライアントモジュール250の内部構成を例示して説明する。
図3は、本発明による仮想クライアントモジュール250の一例を示すブロック図である。
図3を参照すれば、仮想クライアントモジュール250は、制御部300、通信部302及び格納部304を含む。
制御部300は、仮想クライアントモジュール250の全般的な制御を行い、比較部220の要請に従ってストリーミングサーバ130、140、150から特定の時点に画面に出力されるテストイメージを抽出し、比較部220に伝達する。
また、制御部300は、通信部302を介してストリーミングサーバ130、140、150にアプリケーション実行データ伝送要請信号を伝送できる。
この際、制御部300は、アプリケーション実行データ伝送要請信号を伝送するとき、アプリケーション実行データを伝送した仮想クライアントモジュールの識別情報を一緒に伝送でき、多数のストリーミングサーバのスケジュールによって各ストリーミングサーバのアプリケーション実行データ伝送要請信号を順次に伝送できる。
通信部302は、通信網110を介してストリーミングサーバ130、140、150から伝送されたアプリケーション実行データを受信する。
この際、通信部302は、有線方式及び無線方式を含んで多様な通信方式を介してデータを送受信できる。
この際、通信部302は、それぞれ互いに異なる通信方式によってデータを送信する複数の通信モジュールを含むことができる。
格納部304は、仮想クライアントモジュール250の動作に必要な情報を格納する。
特に、格納部304は、ストリーミングサーバ130、140、150から受信したアプリケーション実行データを格納できる。
また、格納部304は、受信したアプリケーション実行データに対して所定のデータ処理を行い、最終的に画面に出力されたテストイメージを格納できる。
また、格納部304は、設定によってテストイメージのキャプチャ時点情報をあらかじめ格納できる。
この際、格納部304は、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(Magnetic Media)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Video Disk)のような光記録媒体(Optical Media)、フロプティカルディスク(Floptical Disk)のような磁気−光媒体(Magneto−optical Media)及びロム(Read Only Memory;ROM)、ラム(Random Access Memory;RAM)、フラッシュメモリ(Flash Memory)を含む。
それでは、上記のように構成されたクラウドストリーミングサービスのためのアプリケーションエラー検出システムにおいてサーバの正常動作可否をテストする過程について図4及び図5を参照して具体的に説明する。
図4は、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法を全体的に示す動作流れ図である。
本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、ストリーミングサーバ130、140、150がアプリケーション実行データを検出サーバ120の仮想クライアントモジュール250、252、254に同時に伝送する(S402〜S406)。
すなわち、同時にストリーミングサーバ130は、仮想クライアントモジュール250にアプリケーション実行データを伝送し、ストリーミングサーバ140は、仮想クライアントモジュール252にアプリケーション実行データを伝送し、ストリーミングサーバ150は、仮想クライアントモジュール254にアプリケーション実行データを伝送する。
また、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、アプリケーション実行データを受信した検出サーバ120のテスト制御部200がエラー検出要請に従って比較部220にアプリケーション実行データ比較を要請する(S408、S410)。
また、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、比較部220がそれぞれの仮想クライアントモジュール250、252、254にストリーミングサーバ130、140、150から受信したアプリケーション画面伝達を要求する(S412、S416、S420)。
また、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、それぞれの仮想クライアントモジュール250、252、254が比較部220の要求によって、アプリケーション実行データを比較部220に伝達する。
また、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、比較部220がアプリケーション実行データを特定の時点にキャプチャしてテストイメージを獲得する(S423)。
また、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、比較部220がテストイメージと既定の基準イメージを比較する(S424)。
また、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、段階S424に先立って基準イメージを設定する過程をさらに行うことができる。
また、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、比較結果をテスト制御部200に伝達する(S426)。
また、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、テスト制御部200が比較結果によってサーバの障害可否を判断する(S428)。
この際、段階S428は、テストイメージが基準イメージと互いに一致しなければ、当該ストリーミングサーバは障害があると判断し、互いに一致すれば、当該ストリーミングサーバは障害がないと判断する。
以下、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法について検出サーバ120の観点で説明する。
図5は、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法を検出サーバ120の観点で示す動作流れ図である。
本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、検出サーバ120がエラー検出時点になれば、具備されたすべての仮想クライアントモジュールを介してストリーミングサーバ130、140、150からアプリケーション実行データを受信し、受信されたアプリケーション実行データを画面に出力してキャプチャする(S500〜S504)。
また、本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、段階S504でキャプチャしたテストイメージと基準イメージを比較し、比較結果、テストイメージと基準イメージが互いに一致しなければ、当該サーバは障害があると判断し、互いに一致すれば、当該サーバに障害がないと判断する(S506〜S510)。
本発明によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、多様なコンピュータ手段を介して行われることができるプログラムまたはスマートフォンアプリで具現され得る。この際、プログラムまたはスマートフォンアプリは、コンピュータ読み取り可能な媒体に記録され得る。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造等を単独でまたは組み合わせて含むことができる。前記媒体に記録されるプログラム命令は、本発明のために特別に設計され構成されたものであるか、コンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVDのような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような磁気−光媒体(magneto−optical media)、及びロム(ROM)、ラム(RAM)、フラッシュメモリ等のようなプログラム命令を格納し実行するように特別に構成されたすべての形態のハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作われるもののような機械語コードだけでなく、インタプリタ等を使用してコンピュータによって実行され得る高級言語コードを含むことができる。このようなハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして作動するように構成され得、その逆も同様である。
以上のように、本発明によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法、そのための装置及びシステムは、前述した実施例の構成と方法が限定されるように適用され得るものではなく、前記実施例は、多様な変形が行われることができるように各実施例の全部または一部が選択的に組み合わされて構成されてもよい。
以下では、本発明の一実施例によるクラウドストリーミングサーバテストシステムについて説明する。
図6は、本発明の一実施例によるクラウドストリーミングサーバテスト装置の一例を示すブロック図である。
図6を参照すれば、本発明の一実施例によるクラウドストリーミングサーバテスト装置は、テスト実行部1110、アプリケーション調節部1120及び適正アプリケーション数算出部1130を含む。
テスト実行部1110は、テストしようとするテストアプリケーションに相当するオートテスティングスクリプトを既定の初期条件によって自動で繰り返して実行することによって、前記テストアプリケーションを1つ以上実行してテストを繰り返して行う。
この際、オートテスティングスクリプトは、テストを自動化するために前記テストアプリケーションに相当するキー入力を発生させ、テストを繰り返しながらテストアプリケーションを実行アプリケーション数で実行するスクリプトであることができる。
この際、オートテスティングスクリプトは、ユーザが生成してもよく、自動で生成されてもよい。
実施例によって、初期条件は、最大CPU利用率、最大GPU利用率、CPU利用率とGPU利用率を確認する確認間隔、最初テストアプリケーション数、最終テストアプリケーション数及びテスト時間のうちいずれか1つ以上を含むことができる。
この際、最大CPU利用率は、クラウドストリーミングサーバがテストアプリケーションを安定的に実行させることができるCPU利用率の上限線であることができる。同じく、最大GPU利用率は、クラウドストリーミングサーバがテストアプリケーションを安定的に実行させることができるGPU利用率の上限線であることができる。
この際、確認間隔は、テスト時間の間にシステム資源の利用率をモニタリングするとき、前記CPU利用率と前記GPU利用率を確認する間隔であることができる。
この際、最初テストアプリケーション数は、テストを開始するとき、最初のテストで実行するテストアプリケーションの数であることができる。
この際、最終テストアプリケーション数は、テスト終了条件の満足可否の判断に使用される数であって、テスト途中に実行されるアプリケーション数の範囲を限定する数であることができる。また、前記最初テストアプリケーション数と前記最終テストアプリケーション数の大小の比較結果によってアプリケーション増加テストモード及びアプリケーション減少テストモードのうちいずれか1つに入ることができる。
この際、アプリケーション増加テストモードは、少数のアプリケーションを実行して最初のテストを開始し、実行アプリケーション数を増加させながら最適の実行可能アプリケーション数を算出するテストモードであることができる。
反対に、アプリケーション減少テストモードは、多数のアプリケーションを実行して最初のテストを開始し、実行アプリケーション数を減少させながら最適の実行可能アプリケーション数を算出するテストモードであることができる。
この際、テスト時間は、1回のテストを進行する時間であることができる。テスト時間が経過すれば、テスト終了条件の満足可否を判断し、テストの繰り返しまたは終了を行う。
実施例によって、テスト実行部1110は、テスト時間の間にシステム資源の利用率が最大値を記録する最大負荷地点を把握し、前記最大負荷地点までの時間をテスト時間に再設定できる。
例えば、7分のテスト時間の間に5分30秒の地点にシステム資源の利用率が最大値を記録したら、5分30秒の地点が最大負荷地点になる。そして、5分30秒をテスト時間に再設定するので、次のテストからは、5分30秒の地点までにテストを行い、1分30秒を節約できる。
実施例によって、システム資源の利用率は、前記CPU利用率及び前記GPU利用率のうちいずれか1つ以上を考慮して決定され得る。
例えば、システム資源の利用率は、CPU利用率とGPU利用率の平均で定められることもでき、各時点でCPU利用率とGPU利用率のうちさらに高い数値をシステム資源の利用率として見なすこともできる。または、CPU利用率が最大値を記録する地点とGPU利用率が最大値を記録する地点のうちさらに遅い地点を最大負荷地点として見なすこともできる。
実施例によって、テスト実行部1110は、前記最初テストアプリケーション数が前記最終テストアプリケーション数より小さい場合、アプリケーション増加テストモードに入ることができる。または、前記最初テストアプリケーション数が前記最終テストアプリケーション数より大きい場合、アプリケーション減少テストモードに入ることができる。
例えば、最初テストアプリケーション数が1であり、最終テストアプリケーション数が5である場合、テスト実行部1110は、アプリケーション増加テストモードに入ることができる。反対に、最初テストアプリケーション数が5であり、最終テストアプリケーション数が1である場合、テスト実行部1110は、アプリケーション減少テストモードに入ることができる。
アプリケーション調節部1120は、テストを繰り返す度にテスト中に実行されるテストアプリケーションの数である実行アプリケーション数の増加及び減少のうちいずれか1つを行う。
この際、実行アプリケーション数の増加及び減少は、テスト実行部1110のテストモードによって変わる。すなわち、アプリケーション増加テストモードでは、実行アプリケーション数を増加させながらテストが行われ、アプリケーション減少テストモードでは、実行アプリケーション数を減少させながらテストが行われる。
適正アプリケーション数算出部1130は、テスト終了条件を満足するものと判断される場合、前記テストを終了させ、最適の実行可能なアプリケーション数を算出する。
この際、最適の実行可能なアプリケーション数は、クラウドストリーミングサーバがテストアプリケーションを多数実行させるとき、安定的に実行させることができる上限線を示す数であることができる。
この際、テスト終了条件及び最適の実行可能なアプリケーション数の算出方法は、テスト実行部1110のテストモードによって変わる。
以下では、アプリケーション増加テストモードについて説明する。
実施例によって、アプリケーション増加テストモードは、前記テスト終了条件を満足しないものと判断されれば、前記実行アプリケーション数を増加させて前記テストを繰り返すことができる。
すなわち、テストを行う度にアプリケーションを1つずつさらに実行させて、テスト時間の間にシステム資源の利用率をモニタリングしながら最適の実行可能アプリケーション数を求めることができる。
この際、テスト終了条件は、前記テスト時間の間に前記CPU利用率及び前記GPU利用率がそれぞれ前記最大CPU利用率及び前記最大GPU利用率以下ではない場合、満足できる。または、実行アプリケーション数が最終テストアプリケーション数と同一である場合、満足できる。
すなわち、テスト時間の間にCPU利用率が最大CPU利用率を超えるか、GPU利用率が最大GPU利用率を超える場合、テスト終了条件を満足できる。
この際、超えた時間にかかわらず、一時的に超過しても、テスト終了条件を満足するものと判断することもでき、一定時間以上超える場合、テスト終了条件を満足するものと判断することもできる。
この際、最適の実行可能なアプリケーション数は、前記テスト終了条件を満足したときの実行アプリケーション数より1小さい数であることができる。
すなわち、CPU利用率及びGPU利用率がそれぞれ最大CPU利用率及び最大GPU利用率を超えない最終テストでの実行アプリケーション数が最適の実行可能なアプリケーション数になる。
例えば、実行アプリケーション数が4であるとき、すなわち4個のテストアプリケーションが実行中であるとき、テスト終了条件を満足したら、最適の実行可能なアプリケーション数は3であることができる。
以下では、アプリケーション減少テストモードについて説明する。
実施例によって、アプリケーション減少テストモードは、前記テスト終了条件を満足しないものと判断されれば、前記実行アプリケーション数を減少させて前記テストを繰り返すことができる。
すなわち、テストを行う度にアプリケーションを1つずつ少なく実行させてテスト時間の間にシステム資源の利用率をモニタリングしながら最適の実行可能アプリケーション数を求めることができる。
この際、テスト終了条件は、前記テスト時間の間に前記CPU利用率及び前記GPU利用率がそれぞれ前記最大CPU利用率及び前記最大GPU利用率以下である場合、満足できる。または、実行アプリケーション数が最終テストアプリケーション数と同一である場合、満足できる。
すなわち、テスト時間の間にCPU利用率が最大CPU利用率を超えず、GPU利用率が最大GPU利用率を超えない場合、テスト終了条件を満足できる。
この際、超えた時間にかかわらず、一時的に超えても、テスト終了条件を満足しないものと判断することもでき、一定時間以上超えた場合、テスト終了条件を満足しないものと判断することもできる。
この際、最適の実行可能なアプリケーション数は、前記テスト終了条件を満足したときの実行アプリケーション数であることができる。
すなわち、CPU利用率及びGPU利用率がそれぞれ最大CPU利用率及び最大GPU利用率を超えない最初のテストでの実行アプリケーション数が最適の実行可能なアプリケーション数になり得る。
例えば、実行アプリケーション数が4であるとき、すなわち4個のテストアプリケーションが実行中であるとき、テスト終了条件を満足したら、最適の実行可能なアプリケーション数は4であることができる。
図7は、本発明の一実施例によるオートテスティングスクリプトの初期条件の一例を示すコードである。
図7を参照すれば、本発明の一実施例によるオートテスティングスクリプトの初期条件は、最大CPU利用率1210、最大GPU利用率1220、確認間隔1230、最初テストアプリケーション数1240、最終テストアプリケーション数1250及びテスト時間1260を含む。
最大CPU利用率1210及び最大GPU利用率1220は、70である。すなわち、テスト終了条件の満足可否を判断するときには、CPU利用率及びGPU利用率をそれぞれ70パーセントと比較する。
この際、最大CPU利用率1210は、クラウドストリーミングサーバがテストアプリケーションを安定的に実行させることができるCPU利用率の上限線であることができる。同じく、最大GPU利用率1220は、クラウドストリーミングサーバがテストアプリケーションを安定的に実行させることができるGPU利用率の上限線であることができる。
この際、最大CPU利用率1210及び最大GPU利用率1220の単位は、パーセントであることができる。
この際、最大CPU利用率1210と最大GPU利用率1220は、異なってもよく、同一であってもよいことは自明である。
確認間隔1230は、3秒である。
この際、確認間隔1230は、テスト時間の間にシステム資源の利用率をモニタリングするとき、前記CPU利用率と前記GPU利用率を確認する間隔であることができる。
すなわち、テストを行って3秒ごとに前記CPU利用率と前記GPU利用率を確認できる。
最初テストアプリケーション数1240は、1であり、最終テストアプリケーション数1250は、5である。
この際、最初テストアプリケーション数1240は、テストを開始するとき、最初のテストで実行するテストアプリケーションの数であることができる。
この際、最終テストアプリケーション数1250は、テスト終了条件の満足可否の判断に使用される数であって、テスト途中に実行されるテストアプリケーション数の範囲を限定する数であることができる。
この際、最初テストアプリケーション数1240と最終テストアプリケーション数1250の大小の比較結果によってアプリケーション増加テストモード及びアプリケーション減少テストモードのうちいずれか1つに入ることができる。
すなわち、最初テストアプリケーション数1240が最終テストアプリケーション数1250より小さいため、アプリケーション増加テストモードに入る。
テスト時間1260は、7分である。
この際、テスト時間1260は、1回のテストを進行する時間であることができる。テスト時間が経過すれば、テスト終了条件の満足可否を判断し、テストの繰り返しまたは終了を行う。
すなわち、テストを繰り返す度に7分間テストを進行する。この際、2番目のテストからは最大負荷地点に基づいてテスト時間が再設定され得、これによって、テスト時間が短縮され得る。
以下では、図8〜図10を参照して本発明の一実施例によるテストの結果を示すグラフを例示して説明する。この際、システム資源利用率、CPU利用率及びGPU利用率は、確認間隔によって離散的に確認されるが、これを連結して線で描いたグラフを例示して説明する。
図8は、本発明の一実施例によるテストの結果の一例を示すグラフである。
以下では、図8を参照して最大負荷地点の把握及びテスト時間の再設定の一例について説明する。
図8を参照すれば、本発明の一実施例によるテストの結果は、テスト時間1310、システム資源利用率1320及び最大負荷地点1330を含む。
テスト時間1310は、7分であり、1回のテストは、7分間行われる。
実施例によって、システム資源利用率1320は、CPU利用率及びGPU利用率のうちいずれか1つ以上を考慮して決定され得る。
例えば、システム資源の利用率は、CPU利用率とGPU利用率の平均で定められることもでき、各時点でCPU利用率とGPU利用率のうちさらに高い数値をシステム資源の利用率として見なすこともできる。
最大負荷地点1330は、システム資源利用率1320が最大値を記録する時点である。
すなわち、5分30秒の地点が最大負荷地点1330になる。
この際、テスト実行部は、テスト時間1310の間にシステム資源利用率1320が最大値を記録する最大負荷地点1330を把握し、前記最大負荷地点1330までをテスト時間1310に再設定できる。
すなわち、5分30秒をテスト時間に再設定するので、次のテストからは5分30秒の地点までにテストを行い、1分30秒を節約できる。
以下では、図9及び図10を参照してアプリケーション増加テストモードの一例について説明する。
図9は、本発明の一実施例によるテストの結果の他の例を示すグラフである。
図9を参照すれば、本発明の一実施例によるテストの結果は、テスト時間1410、最大CPU利用率及び最大GPU利用率1420、CPU利用率1430及びGPU利用率1440を含む。
この際、最大CPU利用率と最大GPU利用率が70パーセントと同一であり、グラフ上で1つで示されたが、最大CPU利用率と最大GPU利用率が異なる場合、それぞれ図示され得ることは自明である。
テスト時間1410である5分30秒の間にテストアプリケーションを実行し、システム資源をモニタリングした結果、CPU利用率1430及びGPU利用率1440を得ることができる。
この際、テスト時間1410の間にCPU利用率1430及びGPU利用率1440がそれぞれ最大CPU利用率及び最大GPU利用率1420を超えなかったので、テスト終了条件を満足しないものと判断される。
したがって、実行アプリケーション数を増加させてテストを繰り返す。
図10は、本発明の一実施例によるテストの結果の他の例を示すグラフである。
図10を参照すれば、本発明の一実施例によるテストの結果は、テスト時間1510、最大CPU利用率及び最大GPU利用率1520、CPU利用率1530及びGPU利用率1540を含む。
この際、最大CPU利用率と最大GPU利用率が70パーセントと同一であり、グラフ上で1つで図示されたが、最大CPU利用率と最大GPU利用率が異なる場合、それぞれ図示され得ることは自明である。
テスト時間1510である5分30秒の間にテストアプリケーションを実行し、システム資源をモニタリングした結果、CPU利用率1530及びGPU利用率1540を得ることができる。
この際、テスト時間1510の間にCPU利用率1530が最大CPU利用率である70パーセントを超えたので、テスト終了条件を満足するものと判断される。
したがって、テストは終了し、最適の実行可能なアプリケーション数が算出される。
この際、最適の実行可能なアプリケーション数は、前記テスト終了条件を満足したときの実行アプリケーション数より1小さい数であることができる。すなわち、CPU利用率及びGPU利用率がそれぞれ最大CPU利用率及び最大GPU利用率を超えない最終テストでの実行アプリケーション数が最適の実行可能なアプリケーション数になる。
例えば、実行アプリケーション数が4であれば、最適の実行可能なアプリケーション数は、1小さい3になる。
図9及び図10には示されていないが、アプリケーション減少テストモードは、これと反対にテストを行うことができる。
この際、テスト時間の間にテストアプリケーションを実行し、システム資源をモニタリングした結果、CPU利用率及びGPU利用率を得ることができる。
この際、前記テスト時間の間に前記CPU利用率及び前記GPU利用率がそれぞれ前記最大CPU利用率及び前記最大GPU利用率以下でない場合、テスト終了条件を満足しないものと判断し、実行アプリケーション数を減少させてテストを繰り返すことができる。
この際、テスト終了条件を満足するものと判断されれば、テストを終了し、最適の実行可能なアプリケーション数を算出できる。
この際、最適の実行可能なアプリケーション数は、前記テスト終了条件を満足したときの実行アプリケーション数であることができる。すなわち、CPU利用率及びGPU利用率がそれぞれ最大CPU利用率及び最大GPU利用率を超えない最初のテストでの実行アプリケーション数が最適の実行可能なアプリケーション数になり得る。
例えば、実行アプリケーション数が4であるとき、テスト終了条件を満足したら、最適の実行可能なアプリケーション数は4になり得る。
図11は、本発明の一実施例によるクラウドストリーミングサーバテスト方法の一例を示す動作流れ図である。
図11を参照すれば、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、テストしようとするテストアプリケーションに相当するオートテスティングスクリプトを実行させる初期条件を設定する(S1610)。
この際、オートテスティングスクリプトは、テストを自動化するために前記テストアプリケーションに相当するキー入力を発生させ、テストを繰り返しながらテストアプリケーションを実行アプリケーション数で実行するスクリプトであることができる。
この際、オートテスティングスクリプトは、ユーザが生成してもよく、自動で生成されてもよい。
実施例によって、初期条件は、最大CPU利用率、最大GPU利用率、CPU利用率とGPU利用率を確認する確認間隔、最初テストアプリケーション数、最終テストアプリケーション数及びテスト時間のうちいずれか1つ以上を含むことができる。
この際、最大CPU利用率は、クラウドストリーミングサーバがテストアプリケーションを安定的に実行させることができるCPU利用率の上限線であることができる。同じく、最大GPU利用率は、クラウドストリーミングサーバがテストアプリケーションを安定的に実行させることができるGPU利用率の上限線であることができる。
この際、確認間隔は、テスト時間の間にシステム資源の利用率をモニタリングするとき、前記CPU利用率と前記GPU利用率を確認する間隔であることができる。
この際、最初テストアプリケーション数は、テストを開始するとき、最初のテストで実行するテストアプリケーションの数であることができる。
この際、最終テストアプリケーション数は、テスト終了条件の満足可否の判断に使用される数であって、テスト途中に実行アプリケーション数の範囲を限定する数であることができる。前記最初テストアプリケーション数と前記最終テストアプリケーション数の大小の比較結果によってアプリケーション増加テストモード及びアプリケーション減少テストモードのうちいずれか1つに入ることができる。
この際、テスト時間は、1回のテストを進行する時間であることができる。テスト時間が経過すれば、テスト終了条件の満足可否を判断し、テストの繰り返しまたは終了を行う。
また、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、前記最初テストアプリケーション数が前記最終テストアプリケーション数より小さいかを判断する(S1620)。
また、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、前記最初テストアプリケーション数が前記最終テストアプリケーション数より小さい場合、アプリケーション増加テストモードに入る(S1630)。
例えば、最初テストアプリケーション数が1であり、最終テストアプリケーション数が5である場合、アプリケーション増加テストモードに入ることができる。
また、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、前記最初テストアプリケーション数が前記最終テストアプリケーション数より大きい場合、アプリケーション減少テストモードに入る(S1640)。
例えば、最初テストアプリケーション数が5であり、最終テストアプリケーション数が1である場合、アプリケーション減少テストモードに入ることができる。
図12は、図11に示されたアプリケーション増加テストモードの一例を示す動作流れ図である。
図12を参照すれば、図11に示されたアプリケーション増加テストモードは、オートテスティングスクリプトを自動で繰り返して実行する(S1710)。
また、図11に示されたアプリケーション増加テストモードは、前記オートテスティングスクリプトによってテストアプリケーションを1つ以上実行し、テストを繰り返して行う(S1720)。
また、図11に示されたアプリケーション増加テストモードは、前記テストを行う中にCPU利用率及びGPU利用率をモニタリングする(S1730)。
この際、前記CPU利用率及び前記GPU利用率は、初期条件の確認間隔によって一定間隔で確認する。
また、図11に示されたアプリケーション増加テストモードは、テスト時間が経過すれば(S1740)、テスト終了条件の満足可否を判断する(S1750)。
この際、テスト終了条件は、前記テスト時間の間に前記CPU利用率及び前記GPU利用率がそれぞれ前記最大CPU利用率及び前記最大GPU利用率以下でない場合、満足できる。または、実行アプリケーション数が最終テストアプリケーション数と同一である場合、満足できる。
すなわち、テスト時間の間にCPU利用率が最大CPU利用率を超えるか、またはGPU利用率が最大GPU利用率を越える場合、テスト終了条件を満足できる。
この際、超えた時間にかかわらず、一時的に超えても、テスト終了条件を満足するものと判断することもでき、一定時間以上超えた場合、テスト終了条件を満足するものと判断することもできる。
また、図11に示されたアプリケーション増加テストモードは、前記テスト終了条件を満足しないものと判断されれば、前記実行アプリケーション数を増加させて前記テストを繰り返すことができる(S1760)。
すなわち、テストを行う度にアプリケーションを1つずつさらに実行させて、テスト時間の間にシステム資源の利用率をモニタリングしながら最適の実行可能アプリケーション数を求めることができる。
また、図11に示されたアプリケーション増加テストモードは、テスト時間の間にシステム資源の利用率が最大値を記録する最大負荷地点を把握し、前記最大負荷地点までをテスト時間に再設定できる。
例えば、7分のテスト時間の間に5分30秒の地点にシステム資源の利用率が最大値を記録したら、5分30秒の地点が最大負荷地点になる。そして、5分30秒をテスト時間に再設定するので、次のテストからは、5分30秒の地点までにテストを行い、1分30秒を節約できる。
実施例によって、システム資源の利用率は、前記CPU利用率及び前記GPU利用率のうちいずれか1つ以上を考慮して決定され得る。
例えば、システム資源の利用率は、CPU利用率とGPU利用率の平均で定められることもでき、各時点でCPU利用率とGPU利用率のうちさらに高い数値をシステム資源の利用率として見なすこともできる。または、CPU利用率が最大値を記録する地点とGPU利用率が最大値を記録する地点のうちさらに遅い地点を最大負荷地点として見なすこともできる。
また、図11に示されたアプリケーション増加テストモードは、テスト終了条件を満足するものと判断される場合、前記テストを終了させ、最適の実行可能なアプリケーション数を算出する(S1780)。
この際、最適の実行可能なアプリケーション数は、クラウドストリーミングサーバがテストアプリケーションを多数実行させるとき、安定的に実行させることができる上限線を示す数であることができる。
この際、最適の実行可能なアプリケーション数は、前記テスト終了条件を満足したときの実行アプリケーション数より1小さい数であることができる。
例えば、実行アプリケーション数が4であるとき、すなわち4個のテストアプリケーションが実行中であるとき、テスト終了条件を満足したら、最適の実行可能なアプリケーション数は、3であることができる。
すなわち、CPU利用率及びGPU利用率がそれぞれ最大CPU利用率及び最大GPU利用率を超えない最終のテストでの実行アプリケーション数が最適の実行可能なアプリケーション数になる。
図13は、図11に示されたアプリケーション減少テストモードの一例を示す動作流れ図である。
図13を参照すれば、図11に示されたアプリケーション減少テストモードは、オートテスティングスクリプトを自動で繰り返して行う(S1810)。
また、図11に示されたアプリケーション減少テストモードは、前記オートテスティングスクリプトによってテストアプリケーションを1つ以上実行してテストを繰り返して行う(S1820)。
また、図11に示されたアプリケーション減少テストモードは、前記テストを行う中にCPU利用率及びGPU利用率をモニタリングする(S1830)。
この際、前記CPU利用率及び前記GPU利用率は、初期条件の確認間隔によって一定間隔で確認する。
また、図11に示されたアプリケーション減少テストモードは、テスト時間が経過すれば(S1840)、テスト終了条件の満足可否を判断する(S1850)。
この際、テスト終了条件は、前記テスト時間の間に前記CPU利用率及び前記GPU利用率がそれぞれ前記最大CPU利用率及び前記最大GPU利用率以下である場合、満足できる。または、実行アプリケーション数が最終テストアプリケーション数と同一である場合、満足できる。
すなわち、テスト時間の間にCPU利用率が最大CPU利用率を超えず、GPU利用率が最大GPU利用率を超えない場合、テスト終了条件を満足できる。
この際、超えた時間にかかわらず、一時的に超えても、テスト終了条件を満足しないものと判断することもでき、一定時間以上超えた場合、テスト終了条件を満足しないものと判断することもできる。
また、図11に示されたアプリケーション減少テストモードは、前記テスト終了条件を満足しないものと判断されれば、前記実行アプリケーション数を減少させて前記テストを繰り返すことができる(S1860)。
すなわち、テストを行う度にアプリケーションを1つずつ少なく実行させてテスト時間の間にシステム資源の利用率をモニタリングしながら、最適の実行可能アプリケーション数を求めることができる。
また、図11に示されたアプリケーション減少テストモードは、テスト時間の間にシステム資源の利用率が最大値を記録する最大負荷地点を把握し、前記最大負荷地点までをテスト時間に再設定できる。
例えば、7分のテスト時間の間に5分30秒の地点にシステム資源の利用率が最大値を記録したら、5分30秒の地点が最大負荷地点になる。そして、5分30秒をテスト時間に再設定するので、次のテストからは、5分30秒の地点までにテストを行い、1分30秒を節約できる。
実施例によって、システム資源の利用率は、前記CPU利用率及び前記GPU利用率のうちいずれか1つ以上を考慮して決定され得る。
例えば、システム資源の利用率は、CPU利用率とGPU利用率の平均で定められることもでき、各時点でCPU利用率とGPU利用率のうちさらに高い数値をシステム資源の利用率として見なすこともできる。または、CPU利用率が最大値を記録する地点とGPU利用率が最大値を記録する地点のうちさらに遅い地点を最大負荷地点として見なすこともできる。
また、図11に示されたアプリケーション減少テストモードは、テスト終了条件を満足するものと判断される場合、前記テストを終了させ、最適の実行可能なアプリケーション数を算出する(S1880)。
この際、最適の実行可能なアプリケーション数は、クラウドストリーミングサーバがテストアプリケーションを多数実行させるとき、安定的に実行させることができる上限線を示す数であることができる。
この際、最適の実行可能なアプリケーション数は、前記テスト終了条件を満足したときの実行アプリケーション数であることができる。
すなわち、CPU利用率及びGPU利用率がそれぞれ最大CPU利用率及び最大GPU利用率を超えない最初のテストでの実行アプリケーション数が最適の実行可能なアプリケーション数になり得る。
例えば、実行アプリケーション数が4であるとき、すなわち4個のテストアプリケーションが実行中であるとき、テスト終了条件を満足したら、最適の実行可能なアプリケーション数は、4であることができる。
図11、図12及び図13に示された各段階は、図11、図12及び図13に示された手順、その逆順または同時に行われることができる。
本発明によるクラウドストリーミングサーバテスト方法は、多様なコンピュータ手段を介して行われることができるプログラムまたはスマートフォンアプリで具現され得る。この際、プログラムまたはスマートフォンアプリは、コンピュータ読み取り可能な媒体に記録され得る。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造等を単独でまたは組み合わせて含むことができる。前記媒体に記録されるプログラム命令は、本発明のために特別に設計され構成されたものであってもよく、コンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVDのような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような磁気−光媒体(magneto−optical media)、及びロム(ROM)、ラム(RAM)、フラッシュメモリ等のようなプログラム命令を格納し実行するように特別に構成されたすべての形態のハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作われるもののような機械語コードだけでなく、インタプリタ等を使用してコンピュータによって実行され得る高級言語コードを含むことができる。このようなハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして作動するように構成され得、その逆も同様である。
以上のように、本発明によるクラウドストリーミングサーバテスト方法及びそのための装置は、前述した実施例の構成と方法が限定されるように適用され得るものではなく、前記実施例は、多様な変形が行われるように、各実施例の全部または一部が選択的に組み合わされて構成されてもよい。
以下では、クラウドストリーミングサーバの正常動作可否を前もって検出し、サーバ障害によるサービス品質低下を防止できるテスト技術について説明する。
図14は、本発明の実施例によるクラウドストリーミングサーバのテストシステムを示す図である。
図14を参照すれば、本発明が適用されたクラウドストリーミングシステムは、通信網2110を介して連結された多数のクライアント2100、2101、2102と多数のクラウドストリーミングサーバ2130、2140、2150よりなり、本発明は、このようなクラウドストリーミングシステムの正常動作可否をテストするために、前記多数のクラウドストリーミングサーバ2130、2140、2150と通信網2110を介して連結され、前記クライアント2100、2101、2102の少なくとも一部の機能を行う仮想クライアントモジュールを含むテスト装置2120をさらに含む。
以下の実施例では、3個のクラウドストリーミングサーバ2130、2140、2150及び3個の仮想クライアントモジュールを含むテスト装置2120を示したが、前記クラウドストリーミングサーバの数及び仮想クライアントモジュールの数は、これに限定されず、必要及び設計に応じて多様な組合せで具現され得る。
前記で、クライアント2100、2101、2102は、通信網2110を経由して各種データを送受信できる端末機を言い、特に、クラウドストリーミングサーバ2130、2140、2150に接続してクラウドストリーミングサービスを提供するユーザー側の装置を意味する。例えば、クライアント2100、2101、2102は、タブレットパソコン(Tablet PC)、ラップトップ(Laptop)、パソコン(PC:Personal Computer)、スマートフォン(Smart Phone)、個人携帯用情報端末機(PDA:Personal Digital Assistant)、スマートテレビ及び移動通信端末機(Mobile Communication Terminal)、セットトップボックスのうちいずれか1つであることができる。
また、クライアント2100、2101、2102は、通信網2110を経由してクラウドストリーミングサーバ2130、2140、2150と通信するためのブラウザー、プログラム及びプロトコルを格納するメモリ、各種プログラムを実行して演算及び制御するためのマイクロプロセッサー等を具備している端末機を意味する。すなわち、クライアント2100、2101、2102は、クラウドストリーミングサーバ2130、2140、2150と通信が可能であれば、いずれの端末機も可能であり、ノートパソコン、移動通信端末機、PDA等の通信コンピュータ装置をすべて含む広い概念である。
このようなクライアント2100、2101、2102は、例えば、クラウドストリーミングサーバ2130、2140、2150に接続し、ユーザの入力によって特定のサービスまたは機能を要請し、前記要請されたサービスまたは機能の実行による結果画面をクラウドストリーミングサーバ2130、2140、2150から受信して出力できる。
そして、クラウドストリーミングサーバ2130、2140、2150は、通信網2110を介して多数のクライアント2100、2101、2102に特定のサービスや機能を提供する構成であって、特に、クラウドストリーミングサービスを提供できる。例えば、クラウドストリーミングサーバ2130、2140、2150は、クライアント2100、2101、2102のOS種類、CPU性能、メモリ容量、その他ソフトウェア及びハードウェア仕様に関係なく、所定のサービスや機能、例えば、高性能のイメージ処理を必要とするサービスや機能を提供できるように、クライアント2100、2101、2102から伝送されたユーザ入力によるサービスあるいは機能を行い、その結果画面を前記クライアント2100、2101、2102に伝送できる。このために、前記クラウドストリーミングサーバ2130、2140、2150は、画面仮想化機能を具備できる。特に、本発明においてクラウドストリーミングサーバ2130、2140、2150は、正常動作の可否(すなわち、障害の可否)をテストするために、既定のテストスクリプトキー入力を受信し、これに基盤して生成されたテスト結果(テスト結果画面)をテスト装置2120の各仮想クライアントモジュールに伝送できる。
通信網2110は、インターネット網、イントラネット網、移動通信網、衛星通信網等多様な有無線通信技術を利用してインターネットプロトコルでデータを送受信できる網を言う。このような通信網2110は、LAN(Local Area Network)、WAN(Wide Area Network)等の閉鎖型ネットワーク、インターネット(Internet)のような開放型ネットワークだけでなく、CDMA(Code Division Multiple Access)、WCDMA(Wideband Code Division Multiple Access)(登録商標)、GSM(Global System for Mobile Communications)(登録商標)、LTE(Long Term Evolution)、EPC(Evolved Packet Core)等のネットワークと以後具現される次世代ネットワーク及びコンピューティングネットワークを総称する概念である。
テスト装置2120は、クラウドストリーミングサーバ2130、2140、2150の正常動作可否をテストするための装置である。このようなテスト装置2120は、クライアント2100、2101、2102の少なくとも一部の機能を有する仮想クライアントモジュールを少なくとも1つ具備する。
このようなテスト装置2120は、少なくとも1つのクラウドストリーミングサーバ2130、2140、2150から伝送されたテスト結果が前記少なくとも1つの仮想クライアントモジュールに受信されれば、前記少なくとも1つの仮想クライアントモジュールが受信されたテスト結果をデータ処理して画面に出力するとき、出力される結果イメージをキャプチャして、キャプチャされた結果イメージをあらかじめ設定された基準結果イメージと比較し、一致する程度によって前記少なくとも1つのクラウドストリーミングサーバの障害可否を判断する。さらに具体的に、テスト装置2120は、少なくとも1つの仮想クライアントモジュールが特定クラウドストリーミングサーバ2130から受信したテスト結果に対してデコーディング等のデータ処理を行った後、画面に出力させるとき、所定のキャプチャ時点に出力される結果イメージとあらかじめ設定された基準結果イメージ(基準結果イメージは、テスト対象であるクラウドストリーミングサーバのうち1つに相当するものであることができる)を比較し、互いに一致しなければ、当該クラウドストリーミングサーバ2130に障害があり、正常動作しないクラウドストリーミングサーバとして判断し、互いに一致すれば、当該クラウドストリーミングサーバ2130が正常動作するものと判断する。但し、同一のキースクリプト入力を繰り返して伝送し、そのテスト結果として生成された動作ケースイメージにおいて差異がない領域を検出してレファレンス領域として生成し、レファレンス領域だけに対して比較を行う。この際、キャプチャ時点は、少なくとも1つのクラウドストリーミングサーバ2130、2140、2150からテスト結果が伝送される時点を基準に設定され得、テスト装置2120にあらかじめ格納されていてもよい。
例えば、テスト装置2120は、クラウドストリーミングサーバ2130、2140、2150中の1つである基準サーバ2130に相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージと、他のクラウドストリーミングサーバ2140、2150に相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージのうちレファレンス領域を比較し、クラウドストリーミングサーバ2130、2140、2150のうち1つ以上の障害可否を判断し、基準サーバ2130の変更が必要であると判断される場合(変更条件を満足)、基準サーバ2130を他のサーバ2140または2150に変更できる。
この際、変更条件は、クラウドストリーミングサーバのうち前記障害があるものと判断されたクラウドストリーミングサーバの数が既定の基準値以上である条件であることができる。
テスト装置2120は、クラウドストリーミングサーバ2130、2140、2150への連結エラーを検出できる。例えば、テスト装置2120は、クラウドストリーミングサーバ2130、2140、2150への連結試みの失敗が受信されるか、または既定の時間以上クラウドストリーミングサーバ2130、2140、2150からテスト結果が受信されなければ、連結エラーとして判断できる。すなわち、テスト装置2120は、クライアントモジュールがクラウドストリーミングサーバに接続を試みてから失敗するか、またはクラウドストリーミングサーバからクラウドストリーミングサービス画面が伝送されない場合には、画面比較を介したテストとは別個に連結障害を通知できる。
テスト装置2120は、テスト結果イメージのうち同一の入力に対して差異がないレファレンス領域だけに対して比較を行うことができる。
このために、仮想クライアントモジュールのうちいずれか1つがクラウドストリーミングサーバのうちいずれか1つから繰り返されたテストスクリプトキー入力に相当するテスト結果を受信して動作ケースビデオを生成し、動作ケースビデオをキャプチャして生成された動作ケースイメージを比較し、その結果によってレファレンス領域を生成できる。
この際、動作ケースイメージの比較結果、差異がない領域を検出し、レファレンス領域として生成できる。
この際、同一のテストスクリプトキー入力に対して差異が発生する領域は、時計やアニメーション等を表示する領域であることができる。
このように、本発明では、仮想クライアントモジュールは、それぞれ互いに異なるクラウドストリーミングサーバからテスト結果を受信し、ここで、少なくとも1つの仮想クライアントモジュールがそれぞれ互いに異なるクラウドストリーミングサーバからテスト結果を受信して出力した結果イメージを基準結果イメージと比較し、比較結果によって当該クラウドストリーミングサーバの正常動作可否を判断するものである。すなわち、実際クライアント2100、2101、2102でユーザに提供する画面イメージを基準に各クラウドストリーミングサーバ2130、2140、2150の正常動作の可否を判断するものである。但し、同一の入力に対して差異が発生しないレファレンス領域だけに対して比較を行う。このために、前記テスト装置2120は、前記少なくとも1つのクラウドストリーミングサーバ2130、2140、2150に同時にテスト結果の伝送を要請でき、このような要請信号によって各クラウドストリーミングサーバ2130、2140、2150は、テスト結果を伝送できる。同時に、少なくとも1つのクラウドストリーミングサーバ2130、2140、2150から伝送されたテスト結果を受信して処理する仮想クライアントモジュールは、あらかじめ設定されていてもよい。すなわち、少なくとも1つのクラウドストリーミングサーバ2130、2140、2150と少なくとも1つの仮想クライアントモジュールは、一対一あるいは多対一でマッピングされ得る。これにより、テスト装置2120は、前記少なくとも1つのクラウドストリーミングサーバ2130、2140、2150にテスト結果の伝送を要請するとき、これを受信する仮想クライアントモジュールに対する情報を一緒に伝送でき、また、仮想クライアントモジュールが2つ以上のクラウドストリーミングサーバとマッピングされるとき、2つ以上のクラウドストリーミングサーバからテスト結果を順次受信して処理し得るように、少なくとも1つのクラウドストリーミングサーバ2130、2140、2150へのテスト結果伝送の要請時点を調整できる。
このように構成されたシステムにおいて添付の図15、図16及び図17を参照して本発明の実施例によるテスト装置2120の構成を具体的に説明する。
まず、図15を参照すれば、テスト装置2120は、テスト制御部2200、格納部2210、比較部2220、入力部2230、出力部2240、少なくとも1つの仮想クライアントモジュール2250、2252、2254を含んで構成できる。本実施例において仮想クライアントモジュール2250、2252、2254の数を3個で例示したが、前記仮想クライアントモジュール2250、2252、2254の数は、システム運用によって変更され得る。
テスト制御部2200は、クラウドストリーミングサーバ2130、2140、2150の障害可否を判断するに必要なすべての制御を行い、障害可否の判断の要求時に比較部2220を介して行われた比較結果、すなわちテスト結果によって出力された画面をキャプチャした結果イメージとあらかじめ決定された基準結果イメージの一致可否によってクラウドストリーミングサーバの障害可否を判断する。但し、同一の入力に対して差異が発生しないレファレンス領域だけに対して一致するか否かを判断する。この際、障害可否判断要求時点は、仮想クライアントモジュール2250、2252、2254にテスト結果の受信が感知され、受信が完了した時点にすることもでき、入力部2230を介して障害可否の判断の要求入力がある時点にすることもでき、あらかじめ設定された周期による時点になることもできる。このように障害可否の判断要求は、設定によって発生する。また、基準結果イメージは、あらかじめ格納されることもできるが、前記少なくとも1つの仮想クライアントモジュール2250、2252、2254のうち特定の仮想クライアントモジュールから出力された結果イメージを基準結果イメージとして設定できる。
この際、テスト制御部2200は、比較結果、比較される2つのイメージが互いに一致すれば、当該クラウドストリーミングサーバは障害がないと判断し、2つのイメージが互いに一致しなければ、当該クラウドストリーミングサーバに障害があると判断できる。
格納部2210は、テスト装置2120の動作に必要な情報を格納できる。このような格納部2210は、少なくとも1つのクラウドストリーミングサーバ2130、2140、2150から伝送されたテスト結果に対する結果ビデオを同一の時点にキャプチャするためにテスト結果ビデオをキャプチャするためのキャプチャ時点情報を格納する。また、格納部2210は、クラウドストリーミングサーバから伝送されるテスト結果に対する基本情報を格納し、特にクラウドストリーミングサーバの障害可否を判断するための基準となる特定の時点の基準イメージをあらかじめ格納できる。このような格納部2210は、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(Magnetic Media)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Video Disk)のような光記録媒体(Optical Media)、フロプティカルディスク(Floptical Disk)のような磁気−光媒体(Magneto−Optical Media)及びロム(ROM)、ラム(RAM、Random Access Memory)、フラッシュメモリを含む。
比較部2220は、仮想クライアントモジュールのうちいずれか1つが繰り返して受信して画面に出力した動作ケースビデオの伝達を要求でき、動作ケースビデオをキャプチャして生成された動作ケースイメージを相互比較し、レファレンス領域を生成する。
また、比較部2220は、テスト制御部2200の制御によってそれぞれの仮想クライアントモジュール2250、2252、2254で受信されて画面に出力されたテスト結果ビデオの伝達を要求でき、テスト結果ビデオをキャプチャして生成されたテスト結果イメージを基準結果イメージを比較した後、比較結果をテスト制御部2200に出力する。このために、前記比較部2220は、前記基準結果イメージを設定する過程をさらに行うことができる。すなわち、比較部2220は、前記クラウドストリーミングサーバ中の1つである基準サーバに相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージと、他のクラウドストリーミングサーバに相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージを比較できる。
この際、他のクラウドストリーミングサーバに相当するテスト結果イメージは、前記基準サーバに相当するテスト結果イメージと同一時点にキャプチャされたものであることができる。
この際、テスト結果イメージを比較するときには、レファレンス領域だけに対して比較を行うことができる。
この際、レファレンス領域は、同一の入力に対して差異が発生しない領域であることができる。例えば、時計やアニメーションを表示する領域を除いた残りの領域であることができる。
入力部2230は、クラウドストリーミングサーバ管理者の操作によってクラウドストリーミングサーバ管理者の要請や情報に該当するユーザ入力信号を発生でき、現在商用化されているか、以後商用化が可能な多様な入力手段で具現され得、例えば、キーボード、マウス、ジョイ・スティック、タッチスクリーン、タッチパッド等のような一般的な入力装置だけでなく、ユーザのモーションを感知して特定入力信号を発生するジェスチャ入力手段を含むことができる。
出力部2240は、テスト装置2120の動作結果や状態をユーザが認識できるように提供する手段であって、例えば、画面を介して視覚的に出力する表示部や、可聴音を出力するスピーカー等を含むことができる。特に、本発明において、出力部2240は、前記少なくとも1つの仮想クライアントモジュール2250、2252、2254から処理されて出力される結果イメージを視覚的に出力でき、また、結果イメージと基準結果イメージを比較して出力するか、クラウドストリーミングサーバの障害可否結果を表示できる。
仮想クライアントモジュール2250、2252、2254は、クラウドストリーミングサーバ2130、2140、2150に接続し、クラウドストリーミングサービスを提供されるクライアント2100、2101、2102を仮想化した構成であって、実際クライアント2100、2101、2102の機能のうち少なくとも一部の機能を行うことができる。例えば、前記仮想クライアントモジュール2250、2252、2254は、特定のクラウドストリーミングサーバ2130、2140、2150に接続して特定のクラウドストリーミングサーバ2130、2140、2150からそれぞれのテスト結果を受信し、前記受信されたテスト結果に対してクライアント2100、2101、2102と同一の処理(例えば、デコーディング等)を行って、動作ケースビデオまたはテスト結果ビデオを生成し、これを出力部2240を介して画面に出力できる。この際、仮想クライアントモジュール2250、2252、2254は、比較部2220の結果イメージ要求によって、特定の時点に画面に出力される結果イメージをキャプチャして比較部2220に伝達できる。この際、キャプチャ時点は、比較部2220から受信してもよく、あらかじめ設定して格納していてもよい。前記結果イメージのキャプチャは、例えば、仮想クライアントモジュール2250、2252、2254のフレームバッファに格納されたイメージデータをキャプチャする方式よりなることができる。実施例によって、テスト結果ビデオをキャプチャしてテスト結果イメージを生成することまたは動作ケースビデオをキャプチャして動作ケースイメージを生成することは、比較部2220で行われることもできる。
すなわち、仮想クライアントモジュール2250、2252、2254は、クラウドストリーミングサーバにテストスクリプトキー入力を提供し、クラウドストリーミングサーバからテストスクリプトキー入力に相当するテスト結果を提供されて、これをデコーディングして、動作ケースビデオ及びテスト結果ビデオを生成する。この際、テスト結果は、エンコーディングされたストリーミングビデオで見ることができ、動作ケースビデオ及びテスト結果ビデオは、デコーディングされたストリーミングビデオで見ることができる。
このような仮想クライアントモジュール2250、2252、2254の内部構成は、図17のように示されることができる。それぞれの仮想クライアントモジュール2250、2252、2254の構成は、同一なので、図17の説明では、参照符号2250の仮想クライアントモジュールを例示して説明する。
図16は、図15に示された比較部を示す図である。
図16を参照すれば、図15に示された比較部は、モジュール制御部2310、動作ケース比較部2320及びレファレンス生成部2330を含む。
モジュール制御部2310は、前記仮想クライアントモジュールのうちいずれか1つが前記クラウドストリーミングサーバのうちいずれか1つから繰り返された前記テストスクリプトキー入力に相当するテスト結果を受信して動作ケースビデオを生成するように制御する。
実施例によって、モジュール制御部2310は、前記基準サーバから前記テスト結果を受信するように制御できる。
動作ケース比較部2320は、動作ケースビデオをキャプチャして生成された動作ケースイメージを比較する。
この際、動作ケースイメージは、それぞれ同一の時点にキャプチャされ得る。
この際、同一のテストスクリプトキー入力に相当するテスト結果によって生成された動作ケースビデオなので、同一のイメージがキャプチャされなければならないが、入力と関係なく、変化する領域があり得、このような領域を検出するために比較を実施する。
レファレンス生成部2330は、動作ケースイメージの比較結果によってレファレンス領域を生成する。
実施例によって、レファレンス生成部2330は、前記動作ケースイメージの比較結果、同一のテストスクリプトキー入力に対して差異が発生しない領域を検出し、前記領域をレファレンス領域として生成できる。
例えば、時計やアニメーション等のような領域を除いた残りの領域をレファレンス領域として生成できる。
図17は、本発明の実施例によってテスト結果を受信して処理する仮想クライアントモジュールの構成を示す図である。
図17を参照すれば、仮想クライアントモジュール2250は、制御部2400、通信部2402、格納部2404を含んで構成できる。
このような仮想クライアントモジュール2250は、クラウドストリーミングサーバ2130、2140、2150から提供されるデータを受信できる端末装置、例えば、タブレットパソコン(Tablet PC)、ラップトップ(Laptop)、パソコン(PC:Personal Computer)、スマートフォン(Smart Phone)、個人携帯用情報端末機(PDA:Personal Digital Assistant)、スマートテレビ及び移動通信端末機(Mobile Communication Terminal)、セットトップボックスのうち1つの端末を仮想化して具現され得る。したがって、前記仮想クライアントモジュール2250は、どんな種類の端末装置であるかによって、その構成も相異に構成される。特に、本発明において、仮想クライアントモジュール2250は、テスト結果の受信及び受信されたテスト結果のデコーディング、テスト結果ビデオ生成及び画面出力機能まで行うように具現され得る。
制御部2400は、仮想クライアントモジュール2250の全般的な制御を行い、特に比較部2220からクラウドストリーミングサーバ2130、2140、2150からの要求によって特定の時点に画面に出力される結果イメージを抽出して比較部2220に伝達する。また、制御部2400は、通信部2402を介して特定のクラウドストリーミングサーバ2130、2140、2150にテスト結果伝送要請信号を伝送できる。前記テスト結果の伝送要請信号を伝送するとき、これを受信する仮想クライアントモジュールの識別情報を一緒に伝送でき、また、多数のクラウドストリーミングサーバのテストスケジュールによって、各クラウドストリーミングサーバのテスト結果伝送要請信号を順次に伝送できる。
通信部2402は、通信網2110を介してクラウドストリーミングサーバ2130、2140、2150から伝送されたテスト結果を受信する。このような通信部2402は、有線方式及び無線方式だけでなく、多様な通信方式を介してデータを送受信できる。また、通信部2402は、1つ以上の通信方式を使用してデータを送受信でき、このために、通信部2402は、それぞれ互いに異なる通信方式によってデータを送受信する複数の通信モジュールを含むことができる。
格納部2404は、仮想クライアントモジュール2250の動作に必要な情報を格納し、特に、クラウドストリーミングサーバ2130、2140、2150から受信したテスト結果を格納できる。また、受信したテスト結果に対して所定のデータ処理を行い、最終的に画面に出力されたテスト結果ビデオを格納でき、また、設定によって結果イメージのキャプチャ時点情報をあらかじめ格納していてもよい。このような格納部2404は、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(Magnetic Media)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Video Disk)のような光記録媒体(OpticalMedia)、フロプティカルディスク(Floptical Disk)のような磁気−光媒体(Magneto−Optical Media)及びロム(ROM)、ラム(RAM、Random Access Memory)、フラッシュメモリを含む。
図18は、本発明の一実施例によるテスト結果イメージのうちレファレンス領域を示す図である。
図18を参照すれば、本発明の一実施例によるテスト結果イメージは、3個の領域2510、2512、2520に分けられる。
モジュール制御部によって仮想クライアントモジュールのうちいずれか1つが、結果が順次に変化するようにキースクリプト入力を繰り返して伝送する。
仮想クライアントモジュールは、繰り返されたテスト結果を受信し、動作ケースビデオを生成する。
テスト装置は、動作ケースビデオをキャプチャして生成された動作ケースイメージを比較する。
動作ケースイメージを比較すると、2つの領域2510、2512は、繰り返す度に同一に変化するが、1つの領域2520は、不規則に変化する場合、差異が発生しない領域2510、2512をレファレンス領域として生成できる。
この際、入力と関係なく変化する領域2520は、時計やアニメーションが表示される領域であることができる。
それでは、前記のように構成されたテストシステムにおいてクラウドストリーミングサーバの正常動作可否をテストする過程について添付の図19及び図20を参照して具体的に説明する。
図19は、本発明の実施例によるテストシステムにおいてクラウドストリーミングサーバの正常動作可否をテストするための過程を示す流れ図である。
クラウドストリーミングサーバ2130は、テスト結果をテスト装置2120の仮想クライアントモジュール2250に繰り返して伝送する(S2610)。
この際、クラウドストリーミングサーバ2130は、仮想クライアントモジュール2250のテストスクリプトキー入力に相当してテスト結果を伝送するものであることができる。
この際、クラウドストリーミングサーバ2130は、基準サーバであることができる。
仮想クライアントモジュール2250をクラウドストリーミングサーバ2130から受信されたテスト結果をデコーディングして動作ケースビデオを生成し、これを比較部2220に提供し(S2611)、比較部2220は、動作ケースイメージを生成する(S2613)。
この際、動作ケースビデオの提供は、テスト制御部2200からのテスト要求に相当して行われるものであってもよい。この際、比較部2220は、仮想クライアントモジュール2250にクラウドストリーミングサーバ2130から受信したテスト結果伝達を要請できる。この際、前記仮想クライアントモジュール2250は、受信したテスト結果を実際クライアント2100のように処理し、動作ケースビデオを生成した後、画面に出力されるようにし、この際、前記比較部2220で要求した時点、または既定の特定の時点に画面に出力される動作ケースビデオをキャプチャして比較部2220に伝送できる。すなわち、動作ケースビデオをキャプチャして動作ケースイメージを生成することは、仮想クライアントモジュール2250によって行われてもよく、比較部2220によって行われてもよい。
比較部2220は、動作ケースイメージを比較してレファレンス領域を生成する(S2614)。
実施例によって、比較部2220は、前記動作ケースイメージの比較結果、同一のテストスクリプトキー入力に対して差異が発生しない領域を検出し、前記領域をレファレンス領域として生成できる。
例えば、時計やアニメーション等のような領域を除いた残りの領域をレファレンス領域として生成できる。
クラウドストリーミングサーバ2130、2140、2150は、テスト結果をテスト装置2120の仮想クライアントモジュール2250、2252、2254に同時に伝送する(S2620〜S2622)。すなわち、1つのクラウドストリーミングサーバ2130は、仮想クライアントモジュール2250にテスト結果を伝送し、他のクラウドストリーミングサーバ2140は、仮想クライアントモジュール2252にテスト結果を伝送し、残りのクラウドストリーミングサーバ2150は、仮想クライアントモジュール2254にテスト結果を伝送できる。これとは異なって、1つの仮想クライアントモジュールが多数のクラウドストリーミングサーバ2130、2140、2150から時間差をもって順次にテスト結果を受信することもできる。
この際、クラウドストリーミングサーバ2130、2140、2150は、仮想クライアントモジュール2250、2252、2254のテストスクリプトキー入力に相当してテスト結果を伝送するものであることができる。
各仮想クライアントモジュール2250、2252、2254は、クラウドストリーミングサーバ2130、2140、2150から受信されたテスト結果をデコーディングしてテスト結果ビデオを生成し、これを比較部2220に提供する(S2630〜S2632)。この際、テスト結果ビデオの提供は、テスト制御部2200からのテスト要求に相当して行われるのであってもよい。この際、比較部2220は、各仮想クライアントモジュール2250、2252、2254にクラウドストリーミングサーバ2130、2140、2150から受信したテスト結果伝達を要請できる。この際、前記仮想クライアントモジュール2250、2252、2254は、受信したテスト結果を実際クライアント2100、2101、2102)のように処理し、テスト結果ビデオを生成した後、画面に出力されるようにし、この際、前記比較部2220で要求した時点、または既定の特定の時点に画面に出力される動作ケースビデオをキャプチャして比較部2220に伝送できる。すなわち、動作ケースビデオをキャプチャして動作ケースイメージを生成することは、仮想クライアントモジュール2250によって行われてもよく、比較部2220によって行われてもよい。
比較部2220は、受信した各テスト結果ビデオをキャプチャしたテスト結果イメージと既定の基準結果イメージを比較した後、比較結果をテスト制御部2200に伝達する(S2424、S2426)。ここで、基準結果イメージは、テスト結果が正常に伝送されて出力されるときに現われる結果イメージをあらかじめ格納していてもよく、前記仮想クライアントモジュール2250、2252、2254のうち既定の特定仮想クライアントモジュールから出力された結果イメージを基準結果イメージとして設定してもよい。このために、前記比較部2220は、比較を行うのに先立って、基準結果イメージを設定する過程をさらに行うことができる。
この際、テスト結果イメージと基準結果イメージを比較するときには、レファレンス領域だけに対して比較を行う。入力と関係なく変化する領域は、互いに一致しないと言ってエラーがあると見なしくいからである。
それでは、テスト制御部2200は、比較結果によってクラウドストリーミングサーバの障害可否を判断し、この際、比較結果、受信したテスト結果でキャプチャした結果イメージとあらかじめ設定された基準結果イメージが互いに一致しなければ、当該クラウドストリーミングサーバは障害があると判断し、互いに一致すれば、当該クラウドストリーミングサーバに障害がないと判断する(S2427)。この際、比較結果は、参照符号2130、2140、2150のクラウドストリーミングサーバそれぞれに対してテスト制御部2200に伝達され、テスト制御部2200は、比較結果によって各クラウドストリーミングサーバに対する障害可否を判断するようになる。
図20は、本発明の実施例によるテスト装置2120においてクラウドストリーミングサーバ2130、2140、2150の正常動作可否をテストするための方法を示す動作流れ図である。
図20を参照すれば、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、レファレンス領域を生成する(S2710)。レファレンス領域を生成する段階については、図21で詳しく説明する。
また、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、仮想クライアントモジュールによってクラウドストリーミングサーバにテストスクリプトに相当するキー入力を伝送し、クラウドストリーミングサーバから仮想クライアントモジュールがテスト結果を受信し、テスト結果ビデオを生成する(S2720)。
また、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、テスト結果ビデオをキャプチャしてテスト結果イメージを生成する(S2730)。
この際、クラウドストリーミングサーバに相当するテスト結果イメージは、いずれも基準サーバに相当するテスト結果イメージと同一時点にキャプチャされ得る。
この際、段階S2730は、図15に示された仮想クライアントモジュール2250、2252、2254によって行われてもよく、比較部2220によって行われてもよい。
また、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、基準サーバのテスト結果イメージを他のクラウドストリーミングサーバのテスト結果イメージと比較し、比較結果が一致するかを判断する(S2740、S2750)。
この際、テスト結果イメージを比較するときには、レファレンス領域だけに対して比較を行う。入力と関係なく変化する領域は、互いに一致しないと言ってエラーがあると見なしにくいからである。
比較結果が一致すれば、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、当該クラウドストリーミングサーバに障害がないと判断する(S2760)。
比較結果が一致しなければ、本発明の一実施例によるクラウドストリーミングサーバテスト方法は、当該クラウドストリーミングサーバに障害があると判断する(S2770)。
図21は、図20に示されたレファレンス領域を生成する段階を示す動作流れ図である。
図21を参照すれば、図20に示されたレファレンス領域を生成する段階は、仮想クライアントモジュールのうちいずれか1つが、前記クラウドストリーミングサーバのうちいずれか1つから繰り返された前記テストスクリプトキー入力に相当するテスト結果を受信し、動作ケースビデオを生成する(S2810)。
この際、仮想クライアントモジュールのうちいずれか1つは、基準サーバから前記テスト結果を受信できる。
また、図20に示されたレファレンス領域を生成する段階は、前記動作ケースビデオをキャプチャして生成された動作ケースイメージを比較する(S2820)。
この際、動作ケースイメージは、それぞれ同一の時点にキャプチャされ得る。
この際、同一のテストスクリプトキー入力に相当するテスト結果によって生成された動作ケースビデオなので、同一のイメージがキャプチャされなければならないが、入力と関係なく変化する領域があり得、このような領域を検出するために比較を実施する。
また、図20に示されたレファレンス領域を生成する段階は、前記動作ケースイメージの比較結果によってレファレンス領域を生成する(S2830)。
実施例によって、レファレンス生成部2330は、前記動作ケースイメージの比較結果、同一のテストスクリプトキー入力に対して差異が発生しない領域を検出し、前記領域をレファレンス領域として生成できる。
例えば、時計やアニメーション等のような領域を除いた残りの領域をレファレンス領域として生成できる。
図19、図20及び図21に示された各段階は、図19、図20及び図21に示された手順、その逆順または同時に行われることができる。
本発明によるクラウドストリーミングサーバテスト方法は、多様なコンピュータ手段を介して行われることができるプログラムまたはスマートフォンアプリで具現され得る。この際、プログラムまたはスマートフォンアプリは、コンピュータ読み取り可能な媒体に記録され得る。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造等を単独でまたは組み合わせて含むことができる。前記媒体に記録されるプログラム命令は本発明のために特別に設計され構成されたものであるか、コンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVDのような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような磁気−光媒体(magneto−optical media)、及びロム(ROM)、ラム(RAM)、フラッシュメモリ等のようなプログラム命令を格納し実行するように特別に構成されたすべての形態のハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作われるもののような機械語コードだけでなくインタプリタ等を使用してコンピュータによって実行され得る高級言語コードを含むことができる。このようなハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして作動するように構成され得、その逆も同様である。
以上のように、本発明によるクラウドストリーミングサーバテスト方法、そのための装置及びシステムは、前述した実施例の構成と方法が限定されるように適用され得るものではなく、前記実施例は、多様な変形が行われるように各実施例の全部または一部が選択的に組み合わされて構成されてもよい。
以下では、クラウドストリーミングサーバ管理システムについて説明する。
図22は、本発明の一実施例によるクラウドストリーミングサーバ管理システムを示すブロック図である。
図22を参照すれば、本発明の一実施例によるクラウドストリーミングサーバ管理システムは、クラウドストリーミング管理サーバ3110、クラウドストリーミングサーバ3120−1、3120−2、...、3120−N及びネットワーク3130を含む。
クラウドストリーミング管理サーバ3110は、複数のクラウドストリーミングサーバ3120−1、3120−2、...、3120−Nのリアルタイム負荷情報をモニタリングし、前記複数のクラウドストリーミングサーバ3120−1、3120−2、...、3120−Nのプロパティを格納し、前記リアルタイム負荷情報に基づいて前記複数のクラウドストリーミングサーバ3120−1、3120−2、...、3120−Nのうち代表サーバと下位サーバを決定し、クラウドストリーミング管理サーバ3110の格納部に問題が発生した場合、前記代表サーバから前記プロパティのバックアップ本を受信し、前記格納部を復元する。
この際、代表サーバは、前記下位サーバからプロパティを受信し、前記受信したプロパティのバックアップ本を格納できる。
この際、クラウドストリーミング管理サーバ3110は、前記代表サーバが前記下位サーバのプロパティのバックアップ本を要請できるように、前記代表サーバに前記下位サーバのリストを伝送できる。
この際、クラウドストリーミング管理サーバ3110は、前記複数のクラウドストリーミングサーバ3120−1、3120−2、...、3120−Nを複数のグループに分け、前記リアルタイム負荷情報に基づいて各グループ別に代表サーバと下位サーバを決定できる。
クラウドストリーミングサーバ3120−1、3120−2、...、3120−Nは、それぞれプロパティを格納し、前記プロパティを代表サーバ及びクラウドストリーミング管理サーバ3110のうちいずれか1つ以上に伝送し、前記代表サーバの要請を受ければ、前記クラウドストリーミングサーバの負荷によって前記プロパティの伝送を制御する。
この際、クラウドストリーミングサーバ3120−1、3120−2、...、3120−Nは、それぞれクラウドストリーミング管理サーバから代表サーバに決定された場合、下位サーバのプロパティのバックアップ本をさらに格納し、前記クラウドストリーミング管理サーバ3110の要請を受けて前記バックアップ本を伝送できる。
この際、クラウドストリーミングサーバ3120−1、3120−2、...、3120−Nは、それぞれ前記クラウドストリーミング管理サーバ3110から前記下位サーバのリストを受信し、前記下位サーバにバックアップ本の伝送を要請できる。
この際、クラウドストリーミングサーバ3120−1、3120−2、...、3120−Nは、それぞれ前記負荷が既定の程度より低い場合、前記プロパティを前記代表サーバ及び前記クラウドストリーミング管理サーバ3110に伝送するように制御し、そうではない場合、前記プロパティを前記代表サーバにのみ伝送するように制御できる。
ネットワーク3130は、クラウドストリーミング管理サーバ3110及びクラウドストリーミングサーバ3120−1、3120−2、...、3120−Nの間にデータを伝達する通路を提供するものであって、既存に利用されるネットワーク及び以後に開発可能なネットワークをすべて包括する概念である。例えば、ネットワーク3130は、限定された地域内で各種情報装置の通信を提供する有無線近距離通信網、移動体相互間及び移動体と移動体外部との通信を提供する移動通信網、衛星を利用して地球局と地球局間の通信を提供する衛星通信網や有無線通信網のうちいずれか1つであるか、2つ以上の結合よりなることができる。一方、ネットワーク3130の伝送方式標準は、既存の伝送方式標準に限定されるものではなく、以後開発されるすべての伝送方式標準を含むことができる。また、図22でクラウドストリーミング管理サーバ3110とクラウドストリーミングサーバ3120−1との間に使用されるネットワークは、クラウドストリーミング管理サーバ3110及びクラウドストリーミングサーバ3120−2の間で使用されるネットワークと異なってもよく、同一であってもよい。また、図22でクラウドストリーミング管理サーバ3110とクラウドストリーミングサーバ3120−1またはクラウドストリーミングサーバ3120−2の間に使用されるネットワークは、クラウドストリーミングサーバ3120−1及びクラウドストリーミングサーバ3120−2の間で使用されるネットワークと異なってもよく、同一であってもよい。
図23は、図22に示されたクラウドストリーミング管理サーバの一例を示すブロック図である。
図23を参照すれば、図22に示されたクラウドストリーミング管理サーバは、モニタリング部3210、格納部3220、代表サーバ決定部3230及び復元部3240を含む。
モニタリング部3210は、複数のクラウドストリーミングサーバのリアルタイム負荷情報をモニタリングする。
この際、リアルタイム負荷情報は、クラウドストリーミングサーバの現在ユーザ数、CPU使用率、GPU使用率及びメモリ使用率のうちいずれか1つであるか、2つ以上の組合であることができる。
格納部3220は、データを格納するための装置であって、主記憶装置及び補助記憶装置を含み、クラウドストリーミング管理サーバの機能動作に必要な応用プログラムを格納する。このような格納部3220は、大きく、プログラム領域とデータ領域を含むことができる。この際、格納部3220は、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(Magnetic Media)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Video Disk)のような光記録媒体(Optical Media)、フロプティカルディスク(Floptical Disk)のような磁気−光媒体(Magneto−optical Media)及びロム(Read Only Memory;ROM)、ラム(Random Access Memory;RAM)、フラッシュメモリ(Flash Memory)を含む。特に、本発明による格納部3220は、複数のクラウドストリーミングサーバのプロパティを格納する。
この際、クラウドストリーミングサーバのプロパティは、クラウドストリーミングサーバに対するデータであることができる。例えば、クラウドストリーミングサーバのプロパティは、クラウドストリーミングサーバのID、IPアドレス、ポート番号、使用有無、最大接続者数及びアプリタイプのうちいずれか1つ以上であることができる。
代表サーバ決定部3230は、前記リアルタイム負荷情報に基づいて前記複数のクラウドストリーミングサーバのうち代表サーバと下位サーバを決定する。
この際、代表サーバとして決定されないクラウドストリーミングサーバを下位サーバに決定できる。
この際、代表サーバは、1個であってもよいが、複数のクラウドストリーミングサーバが代表サーバとして決定され得る。
実施例によって、代表サーバ決定部3230は、前記代表サーバが前記下位サーバのプロパティのバックアップ本を要請できるように、前記代表サーバに前記下位サーバのリストを伝送できる。
この際、代表サーバが複数の場合、それぞれの代表サーバに伝送する下位サーバのリストは、異なってもよい。
この際、代表サーバは、前記リストに含まれた下位サーバにプロパティの伝送を要請できる。
実施例によって、代表サーバは、前記下位サーバからプロパティを受信し、前記受信したプロパティのバックアップ本を格納できる。
実施例によって、代表サーバ決定部3230は、前記複数のクラウドストリーミングサーバを複数のグループに分け、前記リアルタイム負荷情報に基づいて各グループ別に代表サーバと下位サーバを決定できる。
この際、各グループで負荷が少ないクラウドストリーミングサーバを代表サーバに決定し、グループの残りのクラウドストリーミングサーバを下位サーバに決定できる。
復元部3240は、前記格納部3220に問題が発生した場合、前記代表サーバから前記プロパティのバックアップ本を受信し、前記格納部3220を復元する。
この際、復元部3240は、クラウドストリーミングサーバとネットワークを介してデータを送受信するための機能を行うことができる。ここで、復元部3240は、送信される信号の周波数を上昇変換及び増幅するRF送信手段と、受信される信号を低雑音増幅し、周波数を下降変換するRF受信手段等を含むことができる。このような復元部3240は、無線通信モジュール(図示せず)及び有線通信モジュール(図示せず)のうち少なくとも1つを含むことができる。そして、無線通信モジュールは、無線通信方法によってデータを送受信するための構成であり、クラウドストリーミングサーバが無線通信を利用する場合、無線網通信モジュール、無線LAN通信モジュール及び無線PAN通信モジュールのうちいずれか1つを利用してデータをクラウドストリーミング管理サーバまたは他のクラウドストリーミングサーバに送受信できる。また、有線通信モジュールは、有線でデータを送受信するためのものである。有線通信モジュールは、有線を介してネットワークに接続し、クラウドストリーミング管理サーバまたは他のクラウドストリーミングサーバにデータを送受信できる。すなわち、クラウドストリーミングサーバは、無線通信モジュールまたは有線通信モジュールを利用してネットワークに接続し、ネットワークを介してクラウドストリーミング管理サーバまたは他のクラウドストリーミングサーバとデータを送受信できる。
この際、代表サーバは、下位サーバのプロパティのバックアップ本を格納しているので、代表サーバの情報を取り集める場合、全体クラウドストリーミングサーバのプロパティをすべて取集めることができる。すなわち、格納部が格納していたプロパティを早い時間内に復元することができる。
図24は、図22に示されたクラウドストリーミングサーバの一例を示すブロック図である。
図24を参照すれば、図22に示されたクラウドストリーミングサーバは、格納部3310、通信部3320及び制御部3330を含む。
格納部3310は、データを格納するための装置であって、主記憶装置及び補助記憶装置を含み、クラウドストリーミングサーバの機能動作に必要な応用プログラムを格納する。このような格納部3310は、大きく、プログラム領域とデータ領域を含むことができる。この際、格納部3310は、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(Magnetic Media)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Video Disk)のような光記録媒体(Optical Media)、フロプティカルディスク(Floptical Disk)のような磁気−光媒体(Magneto−optical Media)及びロム(Read Only Memory;ROM)、ラム(Random Access Memory;RAM)、フラッシュメモリ(Flash Memory)を含む。特に、本発明による格納部3310は、クラウドストリーミングサーバのプロパティを格納する。
実施例によって、クラウドストリーミング管理サーバから代表サーバに決定された場合、格納部3310は、下位サーバのプロパティのバックアップ本をさらに格納できる。
通信部3320は、クラウドストリーミング管理サーバ及び他のクラウドストリーミングサーバとネットワークを介してデータを送受信するための機能を行う。ここで、通信部3320は、送信される信号の周波数を上昇変換及び増幅するRF送信手段と、受信される信号を低雑音増幅して周波数を下降変換するRF受信手段等を含む。このような通信部3320は、無線通信モジュール(図示せず)及び有線通信モジュール(図示せず)のうち少なくとも1つを含むことができる。そして、無線通信モジュールは、無線通信方法によってデータを送受信するための構成であり、クラウドストリーミングサーバが無線通信を利用する場合、無線網通信モジュール、無線LAN通信モジュール及び無線PAN通信モジュールのうちいずれか1つを利用してデータをクラウドストリーミング管理サーバまたは他のクラウドストリーミングサーバに送受信できる。また、有線通信モジュールは、有線でデータを送受信するためのものである。有線通信モジュールは、有線を介してネットワークに接続し、クラウドストリーミング管理サーバまたは他のクラウドストリーミングサーバにデータを送受信できる。すなわち、クラウドストリーミングサーバは、無線通信モジュールまたは有線通信モジュールを利用してネットワークに接続し、ネットワークを介してクラウドストリーミング管理サーバまたは他のクラウドストリーミングサーバとデータを送受信できる。特に、本発明による通信部3320は、前記プロパティを代表サーバ及びクラウドストリーミング管理サーバのうちいずれか1つ以上に伝送する。
この際、通信部3320は、有線方式及び無線方式を含んで多様な通信方式を介してデータを送受信できる。
この際、通信部3320は、それぞれ互いに異なる通信方式によってデータを送信する複数の通信モジュールを含むことができる。
この際、プロパティを代表サーバに伝送する場合、代表サーバは、プロパティを受信してバックアップ本を格納できる。また、クラウドストリーミング管理サーバに伝送する場合、クラウドストリーミング管理サーバは、クラウドストリーミングサービスのためにクラウドストリーミングサーバのプロパティを格納できる。
実施例によって、クラウドストリーミング管理サーバから代表サーバに決定された場合、通信部3320は、前記クラウドストリーミング管理サーバの要請を受けて前記バックアップ本を伝送できる。
この際、クラウドストリーミング管理サーバの格納に問題が発生し、バックアップ本の伝送を要請するものであることができる。代表サーバがバックアップ本を伝送すれば、クラウドストリーミング管理サーバがバックアップ本を受信して復元することができる。
実施例によって、代表サーバに決定されたクラウドストリーミングサーバは、前記クラウドストリーミング管理サーバから前記下位サーバのリストを受信し、前記下位サーバにバックアップ本の伝送を要請できる。
制御部3330は、前記代表サーバの要請を受ければ、前記クラウドストリーミングサーバの負荷によって前記プロパティの伝送を制御する。
実施例によって、制御部3330は、前記負荷が既定の程度より低い場合、前記プロパティを前記代表サーバ及び前記クラウドストリーミング管理サーバに伝送するように制御し、そうではない場合、前記プロパティを前記代表サーバにのみ伝送するように制御できる。
すなわち、負荷が少なくて余裕があるクラウドストリーミングサーバは、代表サーバにプロパティを伝送してバックアップ本を格納するようにする一方で、クラウドストリーミング管理サーバでプロパティを格納するようにすることができる。他方、負荷が多くて余裕がないクラウドストリーミングサーバは、代表サーバにのみプロパティを伝送できる。
この際、代表サーバにのみプロパティを伝送した場合、代表サーバがクラウドストリーミング管理サーバにプロパティを伝送し、最新の情報に維持するようにすることができる。
図25は、本発明の一実施例によるクラウドストリーミングサーバ管理方法(クラウドストリーミング管理サーバの観点)の一例を示す動作流れ図である。
図25を参照すれば、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、複数のクラウドストリーミングサーバのリアルタイム負荷情報をモニタリングする(S3410)。
この際、リアルタイム負荷情報は、クラウドストリーミングサーバの現在ユーザ数、CPU使用率、GPU使用率及びメモリ使用率のうちいずれか1つであるか、または2つ以上の組合であることができる。
また、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、前記複数のクラウドストリーミングサーバのプロパティを格納する(S3420)。
この際、クラウドストリーミングサーバのプロパティは、クラウドストリーミングサーバに対するデータであることができる。例えば、クラウドストリーミングサーバのプロパティは、クラウドストリーミングサーバのID、IPアドレス、ポート番号、使用有無、最大接続者数及びアプリタイプのうちいずれか1つ以上であることができる。
本発明の一実施例によるクラウドストリーミングサーバ管理方法は、前記リアルタイム負荷情報に基づいて前記複数のクラウドストリーミングサーバのうち代表サーバと下位サーバを決定する(S3430)。
この際、代表サーバに決定されないクラウドストリーミングサーバを下位サーバに決定できる。
この際、代表サーバは、1個であってもよいが、複数のクラウドストリーミングサーバが代表サーバに決定されてもよい。
実施例によって、代表サーバと下位サーバを決定する段階は、前記代表サーバが前記下位サーバのプロパティのバックアップ本を要請できるように前記代表サーバに前記下位サーバのリストを伝送できる。
この際、代表サーバが複数の場合、それぞれの代表サーバに伝送する下位サーバのリストは、異なってもよい。
この際、代表サーバは、前記リストに含まれた下位サーバにプロパティの伝送を要請できる。
実施例によって、代表サーバは、前記下位サーバからプロパティを受信し、前記受信したプロパティのバックアップ本を格納できる。
実施例によって、代表サーバと下位サーバを決定する段階は、前記複数のクラウドストリーミングサーバを複数のグループに分け、前記リアルタイム負荷情報に基づいて各グループ別に代表サーバと下位サーバを決定できる。
この際、各グループで負荷が少ないクラウドストリーミングサーバを代表サーバに決定し、グループの残りのクラウドストリーミングサーバを下位サーバに決定できる。
本発明の一実施例によるクラウドストリーミングサーバ管理方法は、前記格納されたプロパティに問題が発生したか否かを感知する(S3440)。
前記格納されたプロパティに問題が発生した場合、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、前記代表サーバから前記プロパティのバックアップ本を受信し、前記格納されたプロパティを復元する(S3450)。
この際、代表サーバは、下位サーバのプロパティのバックアップ本を格納しているので、代表サーバの情報だけを取り集める場合、全体クラウドストリーミングサーバのプロパティをすべて取り集めることができる。すなわち、格納部が格納していたプロパティを早い時間内に復元できる。
図26は、本発明の一実施例によるクラウドストリーミングサーバ管理方法(クラウドストリーミングサーバの観点)の一例を示す動作流れ図である。
図26を参照すれば、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、プロパティを格納する(S3510)。
また、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、代表サーバに決定されず、下位サーバに決定された場合(S3520)、代表サーバからプロパティの要請を受ける(S3530)。
また、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、クラウドストリーミングサーバの負荷を判断し(S3540)、前記負荷が既定の程度より低い場合、前記プロパティを前記代表サーバ及び前記クラウドストリーミング管理サーバに伝送するように制御する(S3550)。
この際、プロパティを代表サーバに伝送する場合、代表サーバは、プロパティを受信してバックアップ本を格納できる。また、クラウドストリーミング管理サーバに伝送する場合、クラウドストリーミング管理サーバは、クラウドストリーミングサービスのためにクラウドストリーミングサーバのプロパティを格納できる。
また、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、負荷が既定の程度より低くない場合、前記プロパティを前記代表サーバにのみ伝送するように制御する(S3552)。
すなわち、負荷が少なくて余裕があるクラウドストリーミングサーバは、代表サーバにプロパティを伝送し、バックアップ本を格納するようにする一方で、クラウドストリーミング管理サーバでプロパティを格納するようにすることができる。他方、負荷が多くて余裕がないクラウドストリーミングサーバは、代表サーバにのみプロパティを伝送できる。
この際、代表サーバにのみプロパティを伝送した場合、代表サーバがクラウドストリーミング管理サーバにプロパティを伝送し、最新の情報に維持するようにすることができる。
また、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、代表サーバに決定された場合(S3520)、前記クラウドストリーミング管理サーバから前記下位サーバのリストを受信し、前記下位サーバにバックアップ本の伝送を要請する(S3560)。
また、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、下位サーバのプロパティのバックアップ本を受信して格納する(S3570)。
また、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、前記クラウドストリーミング管理サーバの要請を受信する(S3580)。
また、本発明の一実施例によるクラウドストリーミングサーバ管理方法は、前記バックアップ本を伝送する(S3590)。
この際、クラウドストリーミング管理サーバの格納に問題が発生し、バックアップ本の伝送を要請するものであることができる。代表サーバがバックアップ本を伝送すれば、クラウドストリーミング管理サーバがバックアップ本を受信して復元することができる。
図27は、本発明の一実施例によるクラウドストリーミングサーバ管理方法を全体的に示す動作流れ図である。
図27を参照すれば、クラウドストリーミング管理サーバ3110がクラウドストリーミングサーバ3120−1、3120−2のリアルタイム負荷情報をモニタリングする(S3610、S3611)。
クラウドストリーミングサーバ3120−1、3120−2がそれぞれプロパティを伝送する(S3620、S3621)。プロパティを受信したクラウドストリーミング管理サーバ3110は、プロパティを格納する(S3622)。
クラウドストリーミング管理サーバ3110がリアルタイム負荷情報に基づいてクラウドストリーミングサーバ3120−1を代表サーバに決定する(S3630)。代表サーバに決定されなかったクラウドストリーミングサーバ3120−2は、下位サーバに決定される(S3631)。
この際、クラウドストリーミング管理サーバ3110が複数のクラウドストリーミングサーバ3120−1、3120−2を複数のグループに分け、前記リアルタイム負荷情報に基づいて各グループ別に代表サーバと下位サーバを決定できる。
クラウドストリーミング管理サーバ3110は、代表サーバ3120−1が下位サーバ3120−2のプロパティのバックアップ本を要請できるように、代表サーバ3120−1に下位サーバ3120−2のリストを伝送できる。
代表サーバ3120−1は、下位サーバ3120−2に下位サーバ3120−2のプロパティの伝送を要請して、要請を受信した下位サーバ3120−2は、プロパティを伝送する(S3640)。
図27では、下位サーバ3120−2がプロパティを代表サーバ3120−1にのみ伝送するものと図示されたが、下位サーバ3120−2は、負荷が既定の程度より低い場合、前記プロパティを前記代表サーバ3120−1及び前記クラウドストリーミング管理サーバ3110に伝送でき、そうではない場合、前記プロパティを前記代表サーバにのみ伝送できる。
代表サーバ3120−1は、プロパティを受信し、バックアップ本を格納する(S3641)。
クラウドストリーミング管理サーバ3110は、格納部に問題が発生したことを感知する(S3650)。
クラウドストリーミング管理サーバ3110は、代表サーバ3120−1にプロパティのバックアップ本の伝送を要請する(S3651)。
代表サーバ3120−1は、クラウドストリーミング管理サーバ3110にプロパティのバックアップ本を伝送する(S3660)。
クラウドストリーミング管理サーバ3110は、代表サーバ3120−1からプロパティのバックアップ本を受信し、格納部を復元する(S3661)。
図27では、クラウドストリーミングサーバ3120−1、3120−2が2つである場合を例示したが、クラウドストリーミングサーバは、ずっと多くてもよい。また、クラウドストリーミング管理サーバ3110によって決定された代表サーバ及び下位サーバは、ずっと多くてもよい。
図25、図26及び図27に示された各段階は、図25、図26及び図27に示された手順、その逆順または同時に行われることができる。
本発明によるクラウドストリーミングサーバ管理方法は、多様なコンピュータ手段を介して行われることができるプログラムまたはスマートフォンアプリで具現され得る。この際、プログラムまたはスマートフォンアプリは、コンピュータ読み取り可能な媒体に記録され得る。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造等を単独でまたは組み合わせて含むことができる。前記媒体に記録されるプログラム命令は本発明のために特別に設計され構成されたものであってもよく、コンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、プロッピィーディスク及び磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVDのような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような磁気−光媒体(magneto−optical media)、及びロム(ROM)、ラム(RAM)、フラッシュメモリ等のようなプログラム命令を格納し実行するように特別に構成されたすべての形態のハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作われるもののような機械語コードだけでなく、インタプリタ等を使用してコンピュータによって実行され得る高級言語コードを含むことができる。このようなハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして作動するように構成され得、その逆も同様である。
以上のように、本発明によるクラウドストリーミングサーバ管理システム、クラウドストリーミングサーバ管理方法及びそのための装置は、前述した実施例の構成と方法が限定されるように適用され得るものではなく、前記実施例は、多様な変形が行われるように各実施例の全部または一部が選択的に組み合わされて構成されてもよい。