JP2017505486A - クラウドストリーミングサービスのためのアプリケーションエラー検出方法、そのための装置及びシステム - Google Patents

クラウドストリーミングサービスのためのアプリケーションエラー検出方法、そのための装置及びシステム Download PDF

Info

Publication number
JP2017505486A
JP2017505486A JP2016547040A JP2016547040A JP2017505486A JP 2017505486 A JP2017505486 A JP 2017505486A JP 2016547040 A JP2016547040 A JP 2016547040A JP 2016547040 A JP2016547040 A JP 2016547040A JP 2017505486 A JP2017505486 A JP 2017505486A
Authority
JP
Japan
Prior art keywords
test
server
cloud streaming
time
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016547040A
Other languages
English (en)
Other versions
JP6383424B2 (ja
Inventor
− ス イ、ドン
− ス イ、ドン
− グック キム、ドン
− グック キム、ドン
Original Assignee
エントリクス カンパニー、リミテッド
エントリクス カンパニー、リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020140004400A external-priority patent/KR101543295B1/ko
Priority claimed from KR1020140004600A external-priority patent/KR101544194B1/ko
Priority claimed from KR1020140048059A external-priority patent/KR102059384B1/ko
Priority claimed from KR1020140063782A external-priority patent/KR102055705B1/ko
Application filed by エントリクス カンパニー、リミテッド, エントリクス カンパニー、リミテッド filed Critical エントリクス カンパニー、リミテッド
Publication of JP2017505486A publication Critical patent/JP2017505486A/ja
Application granted granted Critical
Publication of JP6383424B2 publication Critical patent/JP6383424B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/277Tester hardware, i.e. output processing circuits with comparison between actual response and known fault-free response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information

Abstract

本発明は、クラウドストリーミングサービスのためのアプリケーションエラー検出方法、そのための装置及びシステムに関し、本発明によれば、ストリーミングバーで実行されるアプリケーションに対して、アプリケーション実行画面と基準イメージが一致するか否かを判断することによって、アプリケーションエラーを検出可能である。

Description

本発明は、アプリケーションエラー検出方法に関し、より詳細には、クラウドストリーミングサービスを提供するサーバの正常動作可否を、サーバで実行されるアプリケーション実行データを基準イメージと比較することによって、障害可否を確認できるようにするクラウドストリーミングサービスのためのアプリケーションエラー検出方法、そのための装置及びシステムに関する。
本発明は、2014年1月14日に出願された韓国特許出願第10−2014−0004400号、2014年1月14日に出願された韓国特許出願第10−2014−0004600号、2014年4月22日に出願された韓国特許出願第10−2014−0048059号及び2014年5月27日に出願された韓国特許出願第10−2014−0063782号の出願日の利益を主張し、その内容の全部は、本明細書に含まれる。
クラウドコンピューティングというのは、インターネット基盤のコンピュータ技術を意味するもので、ユーザが必要なソフトウェアを自分のコンピュータに設置しなくても、インターネット接続を介していつでも使用でき、ソフトウェア駆動において要求される高価のハードウェアをも容易に共有できるコンピューティングサービスを意味する。すなわち、個人がウェブに接続し、フォトショップ(登録商標)、オフィス等高仕様のソフトウェアを利用でき、これに対するデータ格納もウェブ上で行われる。結局、1つのクラウドコンピューティングサーバ群に多くの人が接続し、個人作業を行うことができる。
IT技術及びアプリケーション市場が発達するに伴い、ユーザが個人所有の端末装置を介して処理するデータ量が急激に増加している。この場合、クラウドコンピューティングシステムは、このようなデータ処理量の増加に対する解決策になり得る。また、クラウドコンピューティングシステムは、端末装置の小型化の基礎になり得る。
例えば、大容量の映像処理が要求されるソフトウェアを実行するに際して、クラウドコンピューティング基盤のサーバを介して前記ソフトウェアを実行するようにし、当該実行結果画面のみをストリーミング技術を利用してユーザの端末機に伝送することによって、ユーザが端末機を介して高仕様のソフトウェアを利用できる。
このように、ユーザの端末装置を利用して、端末装置は、クラウドコンピューティングサーバにソフトウェア実行に対する要請のみを伝送し、クラウドコンピューティングサーバは、ユーザが要請したソフトウェアの実行画面をストリーミングを介してユーザに提供する技術をクラウドストリーミングサービスと言う。
このようなクラウドストリーミングサービス提供のためには、サーバで実行されるアプリケーションが正確に実行されているか、エラー存在有無を検査する技術の必要性が切実に提起されている。
また、クラウドストリーミングサービスを提供するためには、クラウドストリーミングサーバが同時に多数のアプリケーションを実行し、その結果を提供しなければならない。クラウドストリーミングサーバの性能を測定するために、従来には、手動で実行されるアプリケーションの数を設定し、入力を与えながら実行させ、一定の時間の間に人が使用されるシステム資源の変化を観察して、アプリケーションを増やす方式のテストを行った。しかし、このような方式は、労動力が多く必要であり、管理者の間違いによるテストエラーが頻繁に発生する問題点がある。したがって、自動で行うことができる新しいクラウドストリーミングサーバテスト技術の必要性が切実に提起されている。
また、クラウドストリーミングサービス基盤のコンピューティング環境においては、サーバで主要サービスや機能が実行されるため、サーバの障害可否をあらかじめ感知するための技術開発が要求される。
また、クラウドストリーミング管理サーバに問題が発生しても、迅速にクラウドストリーミングサーバの情報を取り集め、再構成して、サービスを再開できる新しいクラウドストリーミングサーバ管理技術の必要性が切実に提起されている。
本発明の目的は、ストリーミングサーバで実行されるアプリケーションに対して、アプリケーションの実行画面と基準イメージが一致するか否かを判断することによって、アプリケーションエラーを検出する方法を提供することにある。
また、本発明の目的は、ストリーミングサーバのアプリケーション実行データを仮想クライアントモジュールに受信し、仮想クライアントモジュールから出力されたアプリケーションの実行画面を利用してアプリケーションエラーを検出することによって、よりユーザの立場でアプリケーションエラーを検出できるアプリケーションエラー検出方法を提供することにある。
また、本発明の目的は、アプリケーションの実行画面のうちキーフレームに対してだけアプリケーションエラー検出を行うことによって、一層効率的にアプリケーションエラーを検出できるアプリケーションエラー検出方法を提供することにある。
また、本発明の目的は、クラウドストリーミングサーバの最適の実行可能なアプリケーション数をテストすることにある。
また、本発明の目的は、クラウドストリーミングサーバのテストをオートテスティングスクリプトによって自動化して労動力を節減し、管理者の間違いによるテストエラーを減少させることにある。
また、本発明の目的は、クラウドストリーミングサーバのテスト中にシステム資源の利用率が最大となる最大負荷地点を把握し、最大負荷地点までにテストを行うことによって、全体テスト時間を短縮することにある。
また、本発明の目的は、クラウドストリーミングサーバのテスト結果をクラウドストリーミングサービスに活用して、ユーザに効率的で且つ適切なサービスを提供することにある。
また、本発明の目的は、複数個のクラウドストリーミングサーバからテスト結果画面を提供されて、互いに比較し、クラウドストリーミングサーバに発生した障害を感知するに際して、適切なタイミングにテスト結果画面をキャプチャして、テストエラーを防止することにある。
また、本発明の目的は、キャプチャしたテスト結果画面を比較するとき、同一の入力に対して差異が発生しない領域に対してだけ比較することによって、テストの信頼度を高めることにある。
また、本発明の目的は、クラウドストリーミング管理サーバを利用して効率的にクラウドストリーミングサーバを管理することにある。
また、本発明の目的は、クラウドストリーミングサーバのうち代表サーバを決定して、クラウドストリーミングサーバの情報のバックアップ本を格納するようにすることにある。
また、本発明の目的は、クラウドストリーミング管理サーバのデータベースに問題が発生したとき、代表サーバからバックアップ本を受信して、迅速に復旧することにある。
また、本発明の目的は、クラウドストリーミング管理サーバのデータベースの問題に起因してサービスが中断されたとき、最大限早い時間内にサービスを再開できるようにすることにある。
前記目的を達成するための本発明によるクラウドストリーミングサービスのためのアプリケーションエラー検出装置は、それぞれ互いに異なるストリーミングサーバから受信したアプリケーション実行データを画面に出力するための少なくとも1つの仮想クライアントモジュールと;前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャし、前記キャプチャされたテストイメージを基準イメージと比較する比較部と;前記テストイメージ及び基準イメージの一致可否によって前記ストリーミングサーバの障害可否を判断するテスト制御部とを含む。
この際、比較部は、前記少なくとも1つの仮想クライアントモジュールのうちいずれか1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャし、前記基準イメージとして設定できる。
この際、比較部は、前記アプリケーション実行データのキーフレームをキャプチャし、前記基準イメージとして設定できる。
この際、比較部は、前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データのうち互いに一致する画面をキャプチャし、前記基準イメージとして設定できる。
この際、比較部は、前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データのキーフレームのうち互いに一致するキーフレームをキャプチャし、前記基準イメージとして設定できる。
この際、テスト制御部は、前記テストイメージ及び基準イメージが互いに一致する場合、前記ストリーミングサーバは障害がないものと判断し、前記テストイメージ及び基準イメージが互いに一致しない場合、前記ストリーミングサーバに障害があるものと判断できる。
この際、仮想クライアントモジュールは、キーフレームだけが含まれた前記アプリケーション実行データを出力できる。
また、本発明によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法は、検出サーバが少なくとも1つの仮想クライアントモジュールを介して少なくとも1つのストリーミングサーバから受信したアプリケーション実行データを画面に出力させる段階と;検出サーバが前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャする段階と;検出サーバが前記キャプチャされたテストイメージを基準イメージと比較する段階と;検出サーバが前記テストイメージ及び基準イメージの一致可否によって前記ストリーミングサーバの障害可否を判断する段階とを含む。
この際、テストイメージを基準イメージと比較する段階は、前記少なくとも1つの仮想クライアントモジュールのうちいずれか1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャし、前記基準イメージとして設定できる。
この際、テストイメージを基準イメージと比較する段階は、前記アプリケーション実行データのキーフレームをキャプチャし、前記基準イメージとして設定できる。
この際、テストイメージを基準イメージと比較する段階は、前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データのうち互いに一致する画面をキャプチャし、前記基準イメージとして設定できる。
この際、障害可否を判断する段階は、前記テストイメージ及び基準イメージが互いに一致する場合、前記ストリーミングサーバは障害がないものと判断し、前記テストイメージ及び基準イメージが互いに一致しない場合、前記ストリーミングサーバに障害があるものと判断できる。
この際、仮想クライアントモジュールは、キーフレームだけが含まれた前記アプリケーション実行データを出力できる。
また、本発明によるクラウドストリーミングサービスのためのアプリケーションエラー検出システムは、障害可否をテストのためにアプリケーション実行データを伝送する少なくとも1つのストリーミングサーバと;それぞれ互いに異なるストリーミングサーバからアプリケーション実行データを受信して画面に出力するための少なくとも1つの仮想クライアントモジュールと;を含み、前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャし、前記キャプチャされたテストイメージを基準イメージと比較し、前記テストイメージ及び基準イメージの一致可否によって前記ストリーミングサーバの障害可否を判断する検出サーバを含む。
また、前記目的を達成するための本発明によるクラウドストリーミングサーバテスト装置は、テストしようとするテストアプリケーションに相当するオートテスティングスクリプトを既定の初期条件によって自動で繰り返して実行することによって、前記テストアプリケーションを1つ以上実行してテストを繰り返して行うテスト実行部と;テストを繰り返す度にテスト中に実行されるテストアプリケーションの数である実行アプリケーション数の増加及び減少のうちいずれか1つを行うアプリケーション調節部と;テスト終了条件を満足するものと判断される場合、前記テストを終了させ、最適の実行可能なアプリケーション数を算出する適正アプリケーション数算出部とを含む。
この際、初期条件は、最大CPU利用率、最大GPU利用率、CPU利用率とGPU利用率を確認する確認間隔、最初テストアプリケーション数、最終テストアプリケーション数及びテスト時間のうちいずれか1つ以上を含むことができる。
この際、テスト実行部は、前記テスト時間の間にシステム資源の利用率が最大値を記録する最大負荷地点を把握し、前記最大負荷地点までをテスト時間に再設定できる。
この際、システム資源の利用率は、前記CPU利用率及び前記GPU利用率のうちいずれか1つ以上を考慮して決定され得る。
この際、テスト実行部は、前記最初テストアプリケーション数が前記最終テストアプリケーション数より小さい場合、アプリケーション増加テストモードに入ることができる。
この際、アプリケーション増加テストモードは、前記テスト終了条件を満足しないものと判断されれば、前記実行アプリケーション数を増加させて前記テストを繰り返すことができる。
この際、テスト終了条件は、前記テスト時間の間に前記CPU利用率及び前記GPU利用率がそれぞれ前記最大CPU利用率及び前記最大GPU利用率以下でないか、または実行アプリケーション数が最終テストアプリケーション数と同一である場合、満足できる。
この際、最適の実行可能なアプリケーション数は、前記テスト終了条件を満足したときの実行アプリケーション数より1小さい数であることができる。
この際、テスト実行部は、前記最初テストアプリケーション数が前記最終テストアプリケーション数より大きい場合、アプリケーション減少テストモードに入ることができる。
この際、アプリケーション減少テストモードは、前記テスト終了条件を満足しないものと判断すれば、前記実行アプリケーション数を減少させて前記テストを繰り返すことができる。
この際、テスト終了条件は、前記テスト時間の間に前記CPU利用率及び前記GPU利用率がそれぞれ前記最大CPU利用率及び前記最大GPU利用率以下であるか、または実行アプリケーション数が最終テストアプリケーション数と同一である場合、満足できる。
この際、最適の実行可能なアプリケーション数は、前記テスト終了条件を満足したときの実行アプリケーション数であることができる。
また、本発明によるクラウドストリーミングサーバテスト方法は、テストしようとするテストアプリケーションに相当するオートテスティングスクリプトを実行させる初期条件を設定する段階と;前記オートテスティングスクリプトを自動で繰り返して実行することによって、前記テストアプリケーションを1つ以上実行してテストを繰り返して行う段階と;テストを繰り返す度にテスト中に実行されるテストアプリケーションの数である実行アプリケーション数の増加及び減少のうちいずれか1つを行う段階と;テスト終了条件を満足するものと判断される場合、前記テストを終了させる段階と;最適の実行可能なアプリケーション数を算出する段階とを含む。
この際、初期条件は、最大CPU利用率、最大GPU利用率、CPU利用率とGPU利用率を確認する確認間隔、最初テストアプリケーション数、最終テストアプリケーション数及びテスト時間のうちいずれか1つ以上を含むことができる。
この際、テストを行う段階は、前記テスト時間の間にシステム資源の利用率が最大値を記録する最大負荷地点を把握し、前記最大負荷地点までをテスト時間に再設定できる。
この際、テストを行う段階は、前記最初テストアプリケーション数が前記最終テストアプリケーション数より小さい場合、アプリケーション増加テストモードに入ることができる。
また、前記目的を達成するための本発明によるクラウドストリーミングサーバテスト装置は、クラウドストリーミングサーバから、既定のテストスクリプトキー入力に相当するテスト結果を受信し、テスト結果ビデオを生成する仮想クライアントモジュールと;前記テスト結果ビデオをキャプチャして生成されたテスト結果イメージのうち比較対象であるレファレンス領域を生成し、前記レファレンス領域を相互比較する比較部と;前記比較結果によって前記クラウドストリーミングサーバのうちいずれか1つ以上の障害可否を判断するテスト制御部とを含む。
この際、比較部は、前記クラウドストリーミングサーバのうち基準サーバを定め、前記基準サーバに相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージと、他のクラウドストリーミングサーバに相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージを比較できる。
この際、テスト制御部は、前記比較結果、比較される2つのイメージが互いに一致すれば、当該クラウドストリーミングサーバは障害がないと判断し、2つのイメージが互いに一致しなければ、当該クラウドストリーミングサーバに障害があると判断できる。
この際、比較部は、前記仮想クライアントモジュールのうちいずれか1つが前記クラウドストリーミングサーバのうちいずれか1つから繰り返された前記テストスクリプトキー入力に相当するテスト結果を受信して動作ケースビデオを生成するように制御するモジュール制御部と;前記動作ケースビデオをキャプチャして生成された動作ケースイメージを比較する動作ケース比較部と;前記動作ケースイメージの比較結果によってレファレンス領域を生成するレファレンス生成部とを含むことができる。
この際、レファレンス生成部は、前記動作ケースイメージの比較結果、差異がない領域を検出し、前記領域をレファレンス領域として生成できる。
この際、モジュール制御部は、前記基準サーバから前記テスト結果を受信するように制御できる。
この際、他のクラウドストリーミングサーバに相当する前記テスト結果イメージは、前記基準サーバに相当するテスト結果イメージと同一時点にキャプチャされ得る。
また、本発明によるクラウドストリーミングサーバテスト方法は、仮想クライアントモジュールが、クラウドストリーミングサーバから伝送されたテスト結果を受信してテスト結果ビデオを生成する段階と;前記テスト結果イメージを比較するとき、比較対象であるレファレンス領域を生成する段階と;前記テスト結果ビデオをキャプチャして生成されたテスト結果イメージのうち前記レファレンス領域を相互比較する段階と;前記比較結果によって前記クラウドストリーミングサーバのうちいずれか1つ以上に障害が発生したと判断する段階とを含む。
この際、比較する段階は、前記クラウドストリーミングサーバのうち基準サーバを定め、前記基準サーバに相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージと、他のクラウドストリーミングサーバに相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージを比較できる。
この際、障害が発生したと判断する段階は、前記比較結果、比較される2つのイメージが互いに一致すれば、当該クラウドストリーミングサーバは障害がないと判断し、2つのイメージが互いに一致しなければ、当該クラウドストリーミングサーバに障害があると判断できる。
この際、レファレンス領域を生成する段階は、前記仮想クライアントモジュールのうちいずれか1つが、前記クラウドストリーミングサーバのうちいずれか1つから繰り返された前記テストスクリプトキー入力に相当するテスト結果を受信して動作ケースビデオを生成する段階と;前記動作ケースビデオをキャプチャして生成された動作ケースイメージを比較する段階と;前記動作ケースイメージの比較結果によってレファレンス領域を生成する段階とを含むことができる。
この際、比較結果によってレファレンス領域を生成する段階は、前記動作ケースイメージの比較結果、差異がない領域を検出し、前記領域をレファレンス領域として生成できる。
この際、動作ケースビデオを生成する段階は、前記基準サーバから前記テスト結果を受信できる。
また、本発明によるクラウドストリーミングサーバのテストシステムは、障害可否テストのために既定のテストスクリプトキー入力に相当するテスト結果を伝送するクラウドストリーミングサーバと;前記テスト結果ビデオをキャプチャして生成されたテスト結果イメージのうち比較対象であるレファレンス領域を生成し、前記レファレンス領域を比較して前記クラウドストリーミングサーバのうち1つ以上の障害可否を判断するテスト装置とを含む。
また、前記目的を達成するための本発明によるクラウドストリーミング管理サーバは、複数のクラウドストリーミングサーバのリアルタイム負荷情報をモニタリングするモニタリング部と;前記複数のクラウドストリーミングサーバのプロパティを格納する格納部と;前記リアルタイム負荷情報に基づいて前記複数のクラウドストリーミングサーバのうち代表サーバと下位サーバを決定する代表サーバ決定部と;前記格納部に問題が発生した場合、前記代表サーバから前記プロパティのバックアップ本を受信し、前記格納部を復元する復元部とを含む。
この際、代表サーバは、前記下位サーバからプロパティを受信し、前記受信したプロパティのバックアップ本を格納できる。
この際、代表サーバ決定部は、前記代表サーバが前記下位サーバのプロパティのバックアップ本を要請できるように、前記代表サーバに前記下位サーバのリストを伝送できる。
この際、代表サーバ決定部は、前記複数のクラウドストリーミングサーバを複数のグループに分け、前記リアルタイム負荷情報に基づいて各グループ別に代表サーバと下位サーバを決定できる。
また、本発明によるクラウドストリーミングサーバは、クラウドストリーミングサーバのプロパティを格納する格納部と;前記プロパティを代表サーバ及びクラウドストリーミング管理サーバのうちいずれか1つ以上に伝送する通信部と;前記代表サーバの要請を受ければ、前記クラウドストリーミングサーバの負荷によって前記プロパティの伝送を制御する制御部とを含む。
この際、クラウドストリーミングサーバは、クラウドストリーミング管理サーバから代表サーバに決定された場合、前記格納部は、下位サーバのプロパティのバックアップ本をさらに格納し、前記通信部は、前記クラウドストリーミング管理サーバの要請を受けて前記バックアップ本を伝送できる。
この際、クラウドストリーミングサーバは、前記クラウドストリーミング管理サーバから前記下位サーバのリストを受信し、前記下位サーバにバックアップ本の伝送を要請できる。
この際、制御部は、前記負荷が既定の程度より低い場合、前記プロパティを前記代表サーバ及び前記クラウドストリーミング管理サーバに伝送するように制御し、そうではない場合、前記プロパティを前記代表サーバにのみ伝送するように制御できる。
また、本発明によるクラウドストリーミングサーバ管理方法は、複数のクラウドストリーミングサーバのリアルタイム負荷情報をモニタリングする段階と;前記複数のクラウドストリーミングサーバのプロパティを格納する段階と;前記リアルタイム負荷情報に基づいて前記複数のクラウドストリーミングサーバのうち代表サーバと下位サーバを決定する段階と;前記格納されたプロパティに問題が発生したか否かを感知する段階と;前記格納されたプロパティに問題が発生した場合、前記代表サーバから前記プロパティのバックアップ本を受信し、前記格納されたプロパティを復元する段階とを含む。
この際、代表サーバと下位サーバを決定する段階は、前記代表サーバが前記下位サーバのプロパティのバックアップ本を要請できるように前記代表サーバに前記下位サーバのリストを伝送できる。
この際、代表サーバと下位サーバを決定する段階は、前記複数のクラウドストリーミングサーバを複数のグループに分け、前記リアルタイム負荷情報に基づいて各グループ別に代表サーバと下位サーバを決定できる。
また、本発明によるクラウドストリーミングサーバ管理方法は、クラウドストリーミングサーバのプロパティを格納する段階と;代表サーバから前記プロパティの要請を受ける段階と;前記クラウドストリーミングサーバの負荷によって前記プロパティの伝送を制御する段階と;前記プロパティを前記代表サーバ及びクラウドストリーミング管理サーバのうちいずれか1つ以上に伝送する段階とを含む。
この際、クラウドストリーミングサーバ管理方法は、下位サーバのプロパティのバックアップ本を格納する段階と;前記クラウドストリーミング管理サーバの要請を受信する段階と;前記バックアップ本を伝送する段階とをさらに含むことができる。
この際、バックアップ本を格納する段階は、前記クラウドストリーミング管理サーバから前記下位サーバのリストを受信し、前記下位サーバにバックアップ本の伝送を要請できる。
この際、制御する段階は、前記負荷が既定の程度より低い場合、前記プロパティを前記代表サーバ及び前記クラウドストリーミング管理サーバに伝送するように制御し、そうではない場合、前記プロパティを前記代表サーバにのみ伝送するように制御できる。
また、本発明によるクラウドストリーミング管理システムは、クラウドストリーミングサーバのプロパティを代表サーバ及びクラウドストリーミング管理サーバのうちいずれか1つ以上に伝送し、且つ前記クラウドストリーミング管理サーバから前記代表サーバに決定されれば、下位サーバのプロパティのバックアップ本を格納し、前記バックアップ本を前記クラウドストリーミング管理サーバに伝送する複数のクラウドストリーミングサーバと;前記複数のクラウドストリーミングサーバのプロパティを格納し、代表サーバと下位サーバを決定し、前記プロパティの格納に問題が発生した場合、前記代表サーバから前記プロパティのバックアップ本を受信して復元するクラウドストリーミング管理サーバとを含む。
本発明によれば、ストリーミングサーバで実行されるアプリケーションに対して、アプリケーションの実行画面と基準イメージが一致するか否かを判断することによって、アプリケーションエラーを検出可能である。
また、本発明は、ストリーミングサーバのアプリケーション実行データを仮想クライアントモジュールに受信し、仮想クライアントモジュールから出力されたアプリケーションの実行画面を利用してアプリケーションエラーを検出することによって、よりユーザの立場でアプリケーションエラーを検出できる。
また、本発明は、アプリケーションの実行画面のうちキーフレームに対してだけアプリケーションエラー検出を行うことによって、一層効率的にアプリケーションエラーを検出できる。
また、本発明によれば、クラウドストリーミングサーバの最適の実行可能なアプリケーション数をテストできる。
また、本発明は、クラウドストリーミングサーバのテストをオートテスティングスクリプトによって自動化して労動力を節減し、管理者の間違いによるテストエラーを減少させることができる。
また、本発明は、クラウドストリーミングサーバのテスト中にシステム資源の利用率が最大になる最大負荷地点を把握し、最大負荷地点までにテストを行うことによって、全体テスト時間を短縮できる。
また、本発明は、クラウドストリーミングサーバのテスト結果をクラウドストリーミングサービスに活用してユーザにさらに効率的で且つ適切なサービスを提供できる。
また、本発明は、クラウドストリーミングサービスを提供するサーバの正常動作可否をテストするに際して、実際クライアント端末機と少なくとも一部の機能が同一の仮想クライアントモジュールを少なくとも1つ具備し、少なくとも1つのクラウドストリーミングサーバから伝送される既定のテスト結果を少なくとも1つの仮想クライアントモジュールを介して受信し、画面に出力するようにした後、前記少なくとも1つの仮想クライアントモジュールから出力される結果イメージをキャプチャし、キャプチャした結果イメージをあらかじめ設定された基準イメージと比較し、同一であるか否かによってクラウドストリーミングサーバの正常動作可否を判断するようにすることによって、クラウドストリーミングサーバの障害を一層容易に検出できる利点がある。
また、このようにサーバの正常動作可否を確認できるようにすることによって、クラウドストリーミングサーバのデータ伝送エラーを事前に防止できる効果がある。
また、本発明は、クラウドストリーミングサービスを提供するサーバの障害をあらかじめ検出することによって、安定的なクラウドストリーミングサービスを提供できるようにして、サービス品質を向上させることができる優れた効果がある。
また、本発明は、キャプチャしたテスト結果画面を比較するとき、同一の入力に対して差異が発生しない領域に対してだけ比較することによって、テスト結果にエラーが発生することを防止できる。
また、本発明によれば、クラウドストリーミング管理サーバを利用して効率的にクラウドストリーミングサーバを管理できる。
また、本発明は、クラウドストリーミングサーバのうち代表サーバを決定して、クラウドストリーミングサーバの情報のバックアップ本を格納できる。
また、本発明は、クラウドストリーミング管理サーバのデータベースに問題が発生したとき、代表サーバからバックアップ本を受信し、迅速に復旧できる。
また、本発明は、クラウドストリーミング管理サーバのデータベースの問題に起因してサービスが中断したとき、最大限早い時間内にサービスを再開できる。
本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出システムを示すブロック図である。 図1に示された検出サーバの一例を示すブロック図である。 本発明による仮想クライアントモジュールの一例を示すブロック図である。 本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法を全体的に示す動作流れ図である。 本発明の一実施例によるクラウドストリーミングサービスのためのアプリケーションエラー検出方法を検出サーバの観点で示す動作流れ図である。 本発明の一実施例によるクラウドストリーミングサーバテスト装置の一例を示すブロック図である。 本発明の一実施例によるオートテスティングスクリプトの初期条件の一例を示すコードである。 本発明の一実施例によるテストの結果の一例を示すグラフである。 本発明の一実施例によるテストの結果の他の例を示すグラフである。 本発明の一実施例によるテストの結果のさらに他の例を示すグラフである。 本発明の一実施例によるクラウドストリーミングサーバテスト方法の一例を示す動作流れ図である。 図11に示されたアプリケーション増加テストモードの一例を示す動作流れ図である。 図11に示されたアプリケーション減少テストモードの一例を示す動作流れ図である。 本発明の実施例によるクラウドストリーミングサーバのテストシステムを示す図である。 本発明の実施例によるクラウドストリーミングサーバテスト装置を示す図である。 図15に示された比較部を示す図である。 本発明の実施例によってテスト結果を受信して処理する仮想クライアントモジュールの構成を示す図である。 本発明の一実施例によるテスト結果イメージのうちレファレンス領域を示す図である。 本発明の実施例によるクラウドストリーミングサーバのテストシステムでのテスト過程を示す流れ図である。 本発明の実施例によるクラウドストリーミングサーバテスト方法を示す動作流れ図である。 図20に示されたレファレンス領域を生成する段階を示す動作流れ図である。 本発明の一実施例によるクラウドストリーミングサーバ管理システムを示すブロック図である。 図22に示されたクラウドストリーミング管理サーバの一例を示すブロック図である。 図22に示されたクラウドストリーミングサーバの一例を示すブロック図である。 本発明の一実施例によるクラウドストリーミングサーバ管理方法(クラウドストリーミング管理サーバの観点)の一例を示す動作流れ図である。 本発明の一実施例によるクラウドストリーミングサーバ管理方法(クラウドストリーミングサーバの観点)の一例を示す動作流れ図である。 本発明の一実施例によるクラウドストリーミングサーバ管理方法を全体的に示す動作流れ図である。
以下、本発明の好ましい実施例を添付した図面を参照して詳しく説明する。ただし、下記の説明及び添付の図面で本発明の要旨を不明にすることができる公知機能または構成に対する詳細な説明は省略する。また、図面全体にわたって、同一の構成要素は、できるだけ同一の参照符号で示していることに留意しなければならない。
以下で説明される本明細書及び請求範囲に使用された用語や単語は、通常的や辞書的な意味に限定すべきものではなく、発明者は、自分の発明を最善の方法で説明するための用語の概念で適切に定義できるという原則に即して本発明の技術的思想に符合する意味と概念に解釈すべきである。したがって、本明細書に記載した実施例と図面に示された構成は、本発明の最も好ましい一実施例に過ぎず、本発明の技術的思想をすべて代弁するものではないので、本出願時点においてこれらを代替できる多様な均等物と変形例があり得ることを理解しなければならない。また、第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つ以上のソフトウェアモジュールとして作動するように構成され得、その逆も同様である。
以上のように、本発明によるクラウドストリーミングサーバ管理システム、クラウドストリーミングサーバ管理方法及びそのための装置は、前述した実施例の構成と方法が限定されるように適用され得るものではなく、前記実施例は、多様な変形が行われるように各実施例の全部または一部が選択的に組み合わされて構成されてもよい。
本発明は、ストリーミングサーバで実行されるアプリケーションに対して、アプリケーションの実行画面と基準イメージが一致するか否かを判断することによって、アプリケーションエラーを検出し、これにより、サーバでアプリケーションの実行時に発生し得るエラーあるいは障害を事前に防止できるようにし、サーバでのアプリケーション正常動作可否を容易に検出できるようにし、これを通じて、クラウドストリーミングサービスの安定化及びサービス品質の向上を図ることができることに照らして、本発明のクラウドストリーミングサービスのためのアプリケーションエラー検出技術は、その活用度が少なくない。
また、本発明によれば、クラウドストリーミングサーバのテストをオートテスティングスクリプトによって自動化でき、クラウドストリーミングサーバのテスト中にシステム資源の利用率が最大となる最大負荷地点を把握し、最大負荷地点までにテストを行うことによって、全体テスト時間を短縮できる。さらに、クラウドストリーミングサーバのテスト結果をクラウドストリーミングサービスに活用して、ユーザにさらに効率的で且つ適切なサービスを提供することによって、産業発展に貢献できる。
また、本発明は、特定のサービスを提供するクラウドストリーミングサーバの正常動作可否をテストするためのシステムに関し、特にクラウドストリーミングサービスを提供するサーバが正常に動作するかどうかを確認できるようにすることによって、クラウドストリーミングサーバでデータの伝送時に発生し得る伝送エラーあるいは障害を前もって防止できるようにし、また、クラウドストリーミングサーバの正常動作可否を容易に検出できるようにし、これを通じて、クラウドストリーミングサービスの安定化及びサービス品質の向上を図ることができ、産業の発展に貢献することができる。
また、本発明によれば、クラウドストリーミング管理サーバを利用して効率的にクラウドストリーミングサーバを管理できる。
また、本発明は、クラウドストリーミングサーバのうち代表サーバを決定して、クラウドストリーミングサーバの情報のバックアップ本を格納するようにすることができる。
また、本発明は、クラウドストリーミング管理サーバのデータベースに問題が発生したとき、代表サーバからバックアップ本を受信し、迅速に復旧できる。
また、本発明は、クラウドストリーミング管理サーバのデータベースの問題に起因してサービスが中断したとき、最大限早い時間内にサービスを再開できる。

Claims (20)

  1. それぞれ互いに異なるストリーミングサーバから受信したアプリケーション実行データを画面に出力するための少なくとも1つの仮想クライアントモジュールと;
    前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャし、前記キャプチャされたテストイメージを基準イメージと比較する比較部と;
    前記テストイメージ及び基準イメージの一致可否によって前記ストリーミングサーバの障害可否を判断するテスト制御部と;を含むことを特徴とするクラウドストリーミングサービスのためのアプリケーションエラー検出装置。
  2. 前記比較部は、
    前記少なくとも1つの仮想クライアントモジュールのうちいずれか1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャし、前記基準イメージとして設定することを特徴とする請求項1に記載のクラウドストリーミングサービスのためのアプリケーションエラー検出装置。
  3. 前記比較部は、
    前記アプリケーション実行データのキーフレームをキャプチャし、前記基準イメージとして設定することを特徴とする請求項2に記載のクラウドストリーミングサービスのためのアプリケーションエラー検出装置。
  4. 前記比較部は、
    前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データのうち互いに一致する画面をキャプチャし、前記基準イメージとして設定することを特徴とする請求項3に記載のクラウドストリーミングサービスのためのアプリケーションエラー検出装置。
  5. 前記比較部は、
    前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データのキーフレームのうち互いに一致するキーフレームをキャプチャし、前記基準イメージとして設定することを特徴とする請求項4に記載のクラウドストリーミングサービスのためのアプリケーションエラー検出装置。
  6. 前記テスト制御部は、
    前記テストイメージ及び基準イメージが互いに一致する場合、前記ストリーミングサーバは障害がないものと判断し、前記テストイメージ及び基準イメージが互いに一致しない場合、前記ストリーミングサーバに障害があるものと判断することを特徴とする請求項5に記載のクラウドストリーミングサービスのためのアプリケーションエラー検出装置。
  7. 前記仮想クライアントモジュールは、
    キーフレームだけが含まれた前記アプリケーション実行データを出力することを特徴とする請求項2に記載のクラウドストリーミングサービスのためのアプリケーションエラー検出装置。
  8. 前記比較部は、
    前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データのうち互いに一致する画面をキャプチャし、前記基準イメージとして設定し、
    前記テスト制御部は、
    前記テストイメージ及び基準イメージが互いに一致する場合、前記ストリーミングサーバは障害がないものと判断し、前記テストイメージ及び基準イメージが互いに一致しない場合、前記ストリーミングサーバに障害があるものと判断することを特徴とする請求項7に記載のクラウドストリーミングサービスのためのアプリケーションエラー検出装置。
  9. 検出サーバが少なくとも1つの仮想クライアントモジュールを介して少なくとも1つのストリーミングサーバから受信したアプリケーション実行データを画面に出力させる段階と;
    検出サーバが前記少なくとも1つの仮想クライアントモジュールから出力されたアプリケーション実行データをキャプチャする段階と;
    検出サーバが前記キャプチャされたテストイメージを基準イメージと比較する段階と;
    検出サーバが前記テストイメージ及び基準イメージの一致可否によって前記ストリーミングサーバの障害可否を判断する段階と;を含むことを特徴とするクラウドストリーミングサービスのためのアプリケーションエラー検出方法。
  10. クラウドストリーミングサーバから、既定のテストスクリプトキー入力に相当するテスト結果を受信し、テスト結果ビデオを生成する仮想クライアントモジュールと;
    前記テスト結果ビデオをキャプチャして生成されたテスト結果イメージのうち比較対象であるレファレンス領域を生成し、前記レファレンス領域を相互比較する比較部と;
    前記比較結果によって前記クラウドストリーミングサーバのうちいずれか1つ以上の障害可否を判断するテスト制御部と;を含み、
    前記比較部は、
    前記クラウドストリーミングサーバのうち基準サーバを定め、前記基準サーバに相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージと、他のクラウドストリーミングサーバに相当するテスト結果ビデオをキャプチャして生成されたテスト結果イメージを比較し、
    前記テスト制御部は、
    前記比較結果、比較される2つのイメージが互いに一致すれば、当該クラウドストリーミングサーバは障害がないと判断し、2つのイメージが互いに一致しなければ、当該クラウドストリーミングサーバに障害があると判断することを特徴とするクラウドストリーミングサーバテスト装置。
  11. 前記比較部は、
    前記仮想クライアントモジュールのうちいずれか1つが前記クラウドストリーミングサーバのうちいずれか1つから繰り返された前記テストスクリプトキー入力に相当するテスト結果を受信し、動作ケースビデオを生成するように制御するモジュール制御部と;
    前記動作ケースビデオをキャプチャして生成された動作ケースイメージを比較する動作ケース比較部と;
    前記動作ケースイメージの比較結果によってレファレンス領域を生成するレファレンス生成部と;を含み、
    前記レファレンス生成部は、
    前記動作ケースイメージの比較結果、差異がない領域を検出し、前記領域をレファレンス領域として生成し、
    前記モジュール制御部は、
    前記基準サーバから前記テスト結果を受信するように制御することを特徴とする請求項10に記載のクラウドストリーミングサーバテスト装置。
  12. 前記他のクラウドストリーミングサーバに相当する前記テスト結果イメージは、
    前記基準サーバに相当するテスト結果イメージと同一時点にキャプチャされることを特徴とする請求項10に記載のクラウドストリーミングサーバテスト装置。
  13. 仮想クライアントモジュールが、クラウドストリーミングサーバから伝送されたテスト結果を受信し、テスト結果ビデオを生成する段階と;
    前記テスト結果イメージを比較するとき、比較対象であるレファレンス領域を生成する段階と;
    前記テスト結果ビデオをキャプチャして生成されたテスト結果イメージのうち前記レファレンス領域を相互比較する段階と;
    前記比較結果によって前記クラウドストリーミングサーバのうちいずれか1つ以上に障害が発生したと判断する段階と;を含むことを特徴とするクラウドストリーミングサーバテスト方法。
  14. テストしようとするテストアプリケーションに相当するオートテスティングスクリプトを既定の初期条件によって自動で繰り返して実行することによって、前記テストアプリケーションを1つ以上実行してテストを繰り返して行うテスト実行部と;
    テストを繰り返す度にテスト中に実行されるテストアプリケーションの数である実行アプリケーション数の増加及び減少のうちいずれか1つを行うアプリケーション調節部と;
    テスト終了条件を満足するものと判断される場合、前記テストを終了させ、最適の実行可能なアプリケーション数を算出する適正アプリケーション数算出部と;を含み、
    前記初期条件は、
    CPU利用率、最大GPU利用率、CPU利用率とGPU利用率を確認する確認間隔、最初テストアプリケーション数、最終テストアプリケーション数及びテスト時間のうちいずれか1つ以上を含み、
    前記テスト実行部は、
    前記テスト時間にシステム資源の利用率が最大値を記録する最大負荷地点を把握し、前記最大負荷地点までをテスト時間に再設定し、
    前記システム資源の利用率は、
    前記CPU利用率及び前記GPU利用率のうちいずれか1つ以上を考慮して決定され、
    前記テスト実行部は、
    前記最初テストアプリケーション数が前記最終テストアプリケーション数より小さい場合、アプリケーション増加テストモードに入り、
    前記アプリケーション増加テストモードは、
    前記テスト終了条件を満足しないものと判断されれば、前記実行アプリケーション数を増加させて前記テストを繰り返し、
    前記テスト終了条件は、
    前記テスト時間の間に前記CPU利用率及び前記GPU利用率がそれぞれ前記最大CPU利用率及び前記最大GPU利用率以下でないか、または実行アプリケーション数が最終テストアプリケーション数と同一である場合に満足し、
    前記最適の実行可能なアプリケーション数は、
    前記テスト終了条件を満足したときの実行アプリケーション数より1小さいことを特徴とするクラウドストリーミングサーバテスト装置。
  15. 前記テスト実行部は、
    前記最初テストアプリケーション数が前記最終テストアプリケーション数より大きい場合、アプリケーション減少テストモードに入り、
    前記アプリケーション減少テストモードは、
    前記テスト終了条件を満足しないものと判断すれば、前記実行アプリケーション数を減少させて前記テストを繰り返し、
    前記テスト終了条件は、
    前記テスト時間の間に前記CPU利用率及び前記GPU利用率がそれぞれ前記最大CPU利用率及び前記最大GPU利用率以下であるか、または実行アプリケーション数が最終テストアプリケーション数と同一である場合に満足し、
    前記最適の実行可能なアプリケーション数は、
    前記テスト終了条件を満足したときの実行アプリケーション数であることを特徴とする請求項14に記載のクラウドストリーミングサーバテスト装置。
  16. テストしようとするテストアプリケーションに相当するオートテスティングスクリプトを実行させる初期条件を設定する段階と;
    前記オートテスティングスクリプトを自動で繰り返して実行することによって、前記テストアプリケーションを1つ以上実行し、テストを繰り返して行う段階と;
    テストを繰り返す度にテスト中に実行されるテストアプリケーションの数である実行アプリケーション数の増加及び減少のうちいずれか1つを行う段階と;
    テスト終了条件を満足するものと判断される場合、前記テストを終了させる段階と;
    最適の実行可能なアプリケーション数を算出する段階と;を含むことを特徴とするクラウドストリーミングサーバテスト方法。
  17. 複数のクラウドストリーミングサーバのリアルタイム負荷情報をモニタリングするモニタリング部と;
    前記複数のクラウドストリーミングサーバのプロパティを格納する格納部と;
    前記リアルタイム負荷情報に基づいて前記複数のクラウドストリーミングサーバのうち代表サーバと下位サーバを決定する代表サーバ決定部と;
    前記格納部に問題が発生した場合、前記代表サーバから前記プロパティのバックアップ本を受信し、前記格納部を復元する復元部;とを含み、
    前記代表サーバは、
    前記下位サーバからプロパティを受信し、前記受信したプロパティのバックアップ本を格納し、
    前記代表サーバ決定部は、
    前記代表サーバが前記下位サーバのプロパティのバックアップ本を要請できるように、前記代表サーバに前記下位サーバのリストを伝送し、
    前記代表サーバ決定部は、
    前記複数のクラウドストリーミングサーバを複数のグループに分け、前記リアルタイム負荷情報に基づいて各グループ別に代表サーバと下位サーバを決定することを特徴とするクラウドストリーミング管理サーバ。
  18. クラウドストリーミングサーバのプロパティを格納する格納部と;
    前記プロパティを代表サーバ及びクラウドストリーミング管理サーバのうちいずれか1つ以上に伝送する通信部と;
    前記代表サーバの要請を受ければ、前記クラウドストリーミングサーバの負荷によって前記プロパティの伝送を制御する制御部と;を含み、
    前記クラウドストリーミングサーバは、
    クラウドストリーミング管理サーバから代表サーバに決定された場合、前記格納部は、下位サーバのプロパティのバックアップ本をさらに格納し、前記通信部は、前記クラウドストリーミング管理サーバの要請を受けて前記バックアップ本を伝送し、
    前記クラウドストリーミング管理サーバから前記下位サーバのリストを受信し、前記下位サーバにバックアップ本の伝送を要請し、
    前記制御部は、
    前記負荷が既定の程度より低い場合、前記プロパティを前記代表サーバ及び前記クラウドストリーミング管理サーバに伝送するように制御し、そうではない場合、前記プロパティを前記代表サーバにのみ伝送するように制御することを特徴とするクラウドストリーミングサーバ。
  19. 複数のクラウドストリーミングサーバのリアルタイム負荷情報をモニタリングする段階と;
    前記複数のクラウドストリーミングサーバのプロパティを格納する段階と;
    前記リアルタイム負荷情報に基づいて前記複数のクラウドストリーミングサーバのうち代表サーバと下位サーバを決定する段階と;
    前記格納されたプロパティに問題が発生したか否かを感知する段階と;
    前記格納されたプロパティに問題が発生した場合、前記代表サーバから前記プロパティのバックアップ本を受信し、前記格納されたプロパティを復元する段階と;を含むことを特徴とするクラウドストリーミングサーバ管理方法。
  20. 請求項9、13、16及び19のいずれかに記載の方法を実行するためのプログラムが記録された記録媒体。
JP2016547040A 2014-01-14 2014-12-10 クラウドストリーミングサービスのためのアプリケーションエラー検出方法、そのための装置及びシステム Active JP6383424B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
KR1020140004400A KR101543295B1 (ko) 2014-01-14 2014-01-14 클라우드 스트리밍 서비스를 위한 어플리케이션 에러 검출 방법, 이를 위한 장치 및 시스템
KR10-2014-0004400 2014-01-14
KR1020140004600A KR101544194B1 (ko) 2014-01-14 2014-01-14 클라우드 스트리밍 서버 테스트 방법 및 이를 위한 장치
KR10-2014-0004600 2014-01-14
KR1020140048059A KR102059384B1 (ko) 2014-04-22 2014-04-22 클라우드 스트리밍 서버 관리 시스템, 클라우드 스트리밍 서버 관리 방법 및 이를 위한 장치
KR10-2014-0048059 2014-04-22
KR10-2014-0063782 2014-05-27
KR1020140063782A KR102055705B1 (ko) 2014-05-27 2014-05-27 클라우드 스트리밍 서버 테스트 방법, 이를 위한 장치 및 시스템
PCT/KR2014/012157 WO2015108283A1 (ko) 2014-01-14 2014-12-10 클라우드 스트리밍 서비스를 위한 어플리케이션 에러 검출 방법, 이를 위한 장치 및 시스템

Publications (2)

Publication Number Publication Date
JP2017505486A true JP2017505486A (ja) 2017-02-16
JP6383424B2 JP6383424B2 (ja) 2018-08-29

Family

ID=53543128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016547040A Active JP6383424B2 (ja) 2014-01-14 2014-12-10 クラウドストリーミングサービスのためのアプリケーションエラー検出方法、そのための装置及びシステム

Country Status (5)

Country Link
US (1) US10282246B2 (ja)
EP (1) EP3096229A4 (ja)
JP (1) JP6383424B2 (ja)
CN (1) CN105917314B (ja)
WO (1) WO2015108283A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463096A (zh) * 2017-08-08 2017-12-12 东北大学 一种具有云控制器编程功能的计算机控制实验系统
KR20210025385A (ko) * 2019-08-27 2021-03-09 주식회사 케이티 멀티뷰 스트리밍 서비스를 테스트하는 클라이언트 서버, 방법 및 컴퓨터 프로그램

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106105242B (zh) 2014-03-10 2020-01-10 Sk 普兰尼特有限公司 用于测试云端流媒体服务器的方法及其装置和系统
KR102232900B1 (ko) * 2014-10-02 2021-03-26 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US10474565B2 (en) * 2015-01-16 2019-11-12 Micro Focus Llc Root cause analysis of non-deterministic tests
JP6574146B2 (ja) * 2016-05-20 2019-09-11 日本電信電話株式会社 サービス監視装置及びサービス監視方法
US10783053B1 (en) 2017-06-16 2020-09-22 Palantir Technologies Inc. Contextualized notifications for verbose application errors
CN107707654B (zh) * 2017-09-30 2019-05-14 中国联合网络通信集团有限公司 容器镜像数据的管理方法、装置及系统
CN108039958B (zh) * 2017-11-17 2021-02-19 深圳前海微众银行股份有限公司 数据查错方法、装置及计算机可读存储介质
CN109710378B (zh) * 2018-12-18 2023-06-02 广东微云科技股份有限公司 虚拟机的故障检测方法
US11487646B2 (en) * 2019-03-01 2022-11-01 Red Hat, Inc. Dynamic test case timers
CN110198480A (zh) * 2019-07-02 2019-09-03 成都极米科技股份有限公司 一种码流测试方法及装置
CN110942031B (zh) * 2019-11-27 2023-07-04 上海米哈游网络科技股份有限公司 一种游戏画面异常的检测方法、装置、电子设备及存储介质
CN111431758B (zh) * 2020-02-20 2022-05-31 平安科技(深圳)有限公司 云网络设备的测试方法、装置、存储介质和计算机设备
US11790591B2 (en) 2021-10-21 2023-10-17 Hewlett-Packard Development Company, L.P. Graphics processor health predictions
CN114500334B (zh) * 2021-12-31 2024-04-09 钉钉(中国)信息技术有限公司 服务端应用架构的诊断方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009049949A (ja) * 2007-08-23 2009-03-05 Yahoo Japan Corp ストリーミング情報の再生制御方法
JP2009211363A (ja) * 2008-03-04 2009-09-17 Nec Corp クライアントサーバシステム
US20110276946A1 (en) * 2010-05-07 2011-11-10 Salesforce.Com, Inc. Visual user interface validator
JP2013065207A (ja) * 2011-09-16 2013-04-11 Kyocera Corp 携帯通信システム、携帯通信端末およびサーバ
JP5266416B1 (ja) * 2012-11-16 2013-08-21 NEUSOFT Japan株式会社 テストシステム及びテストプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1027148A (ja) * 1996-07-10 1998-01-27 Hitachi Ltd インターネット用サーバシステム
JP3290611B2 (ja) * 1997-06-03 2002-06-10 株式会社ピーエフユー コンピュータ診断システム及び診断方法
JP4208493B2 (ja) * 2002-06-14 2009-01-14 キヤノン株式会社 ネットワークサーバへの負荷テストシステム
US7437275B2 (en) * 2005-08-03 2008-10-14 Agilent Technologies, Inc. System for and method of multi-location test execution
KR100877727B1 (ko) * 2008-03-07 2009-01-08 주식회사 엠네스 이동통신 단말기의 기능 및 어플리케이션 검증 장치
KR101453425B1 (ko) * 2008-12-18 2014-10-23 한국전자통신연구원 메타데이터 서버 및 메타데이터 관리 방법
US8506402B2 (en) * 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
KR101082985B1 (ko) * 2009-12-18 2011-11-11 주식회사 케이티 양방향 서비스를 테스트하는 장치
KR101081286B1 (ko) * 2010-02-26 2011-11-08 인하대학교 산학협력단 가용율 기반의 서버 재설정 장치 및 방법
JP2011248597A (ja) * 2010-05-26 2011-12-08 Yokogawa Electric Corp テスタシミュレーション装置、テスタシミュレーションプログラムおよびテスタシミュレーション方法
EP2509332B1 (en) * 2011-04-04 2015-12-30 AGUSTAWESTLAND S.p.A. Automatic test system for digital display systems
KR101111956B1 (ko) * 2011-10-24 2012-02-15 (주)지란지교소프트 컴퓨팅 장치의 모니터링 내용 제공 시스템 및 방법
KR101445539B1 (ko) * 2013-02-04 2014-09-29 에스케이플래닛 주식회사 클라우드 스트리밍 서비스를 위한 서버의 테스트 방법, 이를 위한 장치 및 시스템
US20140325479A1 (en) * 2013-04-24 2014-10-30 Hewlett-Packard Development Company, L.P. Synchronization of an automation script

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009049949A (ja) * 2007-08-23 2009-03-05 Yahoo Japan Corp ストリーミング情報の再生制御方法
JP2009211363A (ja) * 2008-03-04 2009-09-17 Nec Corp クライアントサーバシステム
US20110276946A1 (en) * 2010-05-07 2011-11-10 Salesforce.Com, Inc. Visual user interface validator
JP2013065207A (ja) * 2011-09-16 2013-04-11 Kyocera Corp 携帯通信システム、携帯通信端末およびサーバ
JP5266416B1 (ja) * 2012-11-16 2013-08-21 NEUSOFT Japan株式会社 テストシステム及びテストプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463096A (zh) * 2017-08-08 2017-12-12 东北大学 一种具有云控制器编程功能的计算机控制实验系统
KR20210025385A (ko) * 2019-08-27 2021-03-09 주식회사 케이티 멀티뷰 스트리밍 서비스를 테스트하는 클라이언트 서버, 방법 및 컴퓨터 프로그램
KR102413647B1 (ko) * 2019-08-27 2022-06-27 주식회사 케이티 멀티뷰 스트리밍 서비스를 테스트하는 클라이언트 서버, 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
CN105917314A (zh) 2016-08-31
JP6383424B2 (ja) 2018-08-29
CN105917314B (zh) 2019-10-29
US20160328281A1 (en) 2016-11-10
EP3096229A1 (en) 2016-11-23
WO2015108283A1 (ko) 2015-07-23
US10282246B2 (en) 2019-05-07
EP3096229A4 (en) 2018-01-10

Similar Documents

Publication Publication Date Title
JP6383424B2 (ja) クラウドストリーミングサービスのためのアプリケーションエラー検出方法、そのための装置及びシステム
US9774642B2 (en) Method and device for pushing multimedia resource and display terminal
US9374403B2 (en) Media stream fragment request
WO2016197876A1 (zh) 远程控制方法、远程服务器、管理设备和终端
CN104767775A (zh) 网页应用消息推送方法及系统
WO2015027713A1 (zh) 基于视频聚合服务的视频播放方法、装置及终端设备
CN108696404B (zh) 经由协作平台实现受测试设备会议
US11252267B2 (en) Content stream integrity and redundancy system
KR102059384B1 (ko) 클라우드 스트리밍 서버 관리 시스템, 클라우드 스트리밍 서버 관리 방법 및 이를 위한 장치
JP6116240B2 (ja) 送信装置、送信方法、及びプログラム
EP3754998B1 (en) Streaming media quality monitoring method and system
CN110830527A (zh) 一种网络间数据通信的方法、装置及数据通信系统
KR101445539B1 (ko) 클라우드 스트리밍 서비스를 위한 서버의 테스트 방법, 이를 위한 장치 및 시스템
KR101543295B1 (ko) 클라우드 스트리밍 서비스를 위한 어플리케이션 에러 검출 방법, 이를 위한 장치 및 시스템
KR101997649B1 (ko) 클라우드 스트리밍 서버를 테스트하기 위한 기준 서버 변경 방법, 이를 위한 장치 및 시스템
WO2014015795A1 (zh) 在移动设备中为多个候选应用提供通信连接的方法与设备
CN106878234B (zh) 授权方法和装置、授权码的生成方法和装置
US9071507B2 (en) System and method for registering a CIM provider in a CIM system using information of a device to be configured
KR101997540B1 (ko) 클라우드 스트리밍 서버 테스트 방법, 이를 위한 장치 및 시스템
KR102199296B1 (ko) 클라우드 스트리밍 서버 테스트 방법, 이를 위한 장치 및 시스템
KR102119248B1 (ko) 클라우드 스트리밍 서버 테스트 방법, 이를 위한 장치 및 시스템
KR102058365B1 (ko) 클라우드 스트리밍 서버 테스트 방법, 이를 위한 장치 및 시스템
KR102059376B1 (ko) 클라우드 스트리밍 서버 테스트 방법, 이를 위한 장치 및 시스템
KR102055705B1 (ko) 클라우드 스트리밍 서버 테스트 방법, 이를 위한 장치 및 시스템

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171004

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20171218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180618

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180803

R150 Certificate of patent or registration of utility model

Ref document number: 6383424

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250