JP5646650B2 - ウェブアプリケーションのリアルタイム検証 - Google Patents

ウェブアプリケーションのリアルタイム検証 Download PDF

Info

Publication number
JP5646650B2
JP5646650B2 JP2012548218A JP2012548218A JP5646650B2 JP 5646650 B2 JP5646650 B2 JP 5646650B2 JP 2012548218 A JP2012548218 A JP 2012548218A JP 2012548218 A JP2012548218 A JP 2012548218A JP 5646650 B2 JP5646650 B2 JP 5646650B2
Authority
JP
Japan
Prior art keywords
platform
test
client
node
verification system
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.)
Active
Application number
JP2012548218A
Other languages
English (en)
Other versions
JP2013516715A5 (ja
JP2013516715A (ja
Inventor
ハギンズ,ジェイソン
ヘイゼル,スティーヴン
ダナム,ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sauce Labs Inc
Original Assignee
Sauce Labs Inc
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
Application filed by Sauce Labs Inc filed Critical Sauce Labs Inc
Publication of JP2013516715A publication Critical patent/JP2013516715A/ja
Publication of JP2013516715A5 publication Critical patent/JP2013516715A5/ja
Application granted granted Critical
Publication of JP5646650B2 publication Critical patent/JP5646650B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Description

関連出願の相互参照
本出願は、参照により本明細書に組み込まれる、2010年1月8日に出願された米国仮特許出願第61/293,606号明細書「Real Time Verification of Web Application in Virtual Space」の優先権の利益を主張する。
本発明は、概して、クラウドサービスにおける仮想マシンの同時利用可能性に関し、より具体的には、所定のプラットホームを備えた仮想マシンがネットワーク接続クライアントに利用可能となる時間を最小限に抑えるための新規の装置および方法に関する。
ウェブアプリケーションは、一般に、インターネットなどのネットワーク上で起動しているクライアント常駐ウェブブラウザを介してアクセスされるサーバにホストされたソフトウェアアプリケーションを指す。また、ウェブアプリケーションは、HTML、JavaScript、Javaなどのブラウザが支持する言語で符号化され、アプリケーションを実行可能にするクライアントウェブブラウザに依存する、かかるサーバソフトウェアアプリケーションも指す。したがって、ウェブアプリケーションは、ウェブページ、ウェブサイト、遠隔操作によって実行可能なアプリケーションおよびアプリケーションモジュール、スクリプト、オブジェクト、アプレット、インターフェースおよび同様のものの何れか、ならびに、サーバとネットワーク通信を行っているクライアント側のブラウザインターフェースを通じてサーバ上で遠隔操作によって実行することができ、そのような実行の結果がクライアントに返送されブラウザインターフェースで表示される、他のありとあらゆる命令セットまたは手順を例示的に含み得る。
従来は市販の共用リソースサービスであったクラウドサービスでは、単一の物理的なマシンは、複数の仮想マシンをホストするよう構成される。通常、クラウドサービスのプロバイダは複数の物理的なマシンを有し、その各々が複数の仮想マシンのそれぞれの仮想マシンをホストする。
仮想マシンの何れか1つは、一般に、クラウドサービスにアクセスする必要がある認証情報の提示および認証と同時に、一般に、ネットワーク接続クライアントが利用できるようになり得、その結果、ネットワーククライアントと利用可能な仮想マシンとの間の接続を確立することができる。一旦接続が確立されれば、ネットワーク接続クライアントは、接続された仮想マシン上の1つまたは複数のプログラムの立ち上げ、起動または実行を行うことができ、仮想マシンでは、そのようなプログラムがローカルで実行されているかのように、実質的にすべてのI/Oオペレーションはネットワーク接続クライアントの管理下で起こる。
さらに、クライアントは、クラウドサービスにおいて任意のアプリケーションを立ち上げて起動する前に、そのようなアプリケーションの特定のリリースバージョンとそのようなアプリケーションが起動されるオペレーティングシステムの特定のリリースバージョンの何れかまたは両方を指定することができる。統合すると、アプリケーションとオペレーティングシステムバージョンは、本明細書ではプラットホームと呼ばれる。ネットワーク接続クライアントが特定のプラットホームに対する要求を行うと、クラウドサービスは、そのようなプラットホームが現在存在するかどうか、そうでなければ、アイドル状態であるかどうか、したがって、そのようなクライアントとの接続に利用可能か判断する。
要求されたプラットホームが利用可能であれば、クラウドサービスは、要求に対応し、要求されたプラットホームを有する仮想マシンにクライアントを接続する。しかし、そのような要求されたプラットホームを有するアイドル状態の仮想マシンが利用可能でない場合は、クラウドサービスは、起動コマンドを発行してそのようなプラットホームを備えた新しい仮想マシンを始動する。
通常、クラウドサービスは、そのようなプラットホームのイメージが既に存在すれば、そこからそのようなプラットホームのイメージをコピーできる仮想マシンのイメージのイメージキャッシュを有し得る。指定プラットホームに対してイメージが存在する場合は、従来公知の通り、イメージは物理的なマシンにコピーされ、そのようなイメージから新しい仮想マシンが始動される。一旦イメージがコピーされ、仮想マシンが使用できるようになれば、物理的なマシンは、その旨をクラウドサービスに送信する。次いで今度は、クラウドサービスが、仮想マシンの利用可能性についてネットワーククライアントに通知することができ、それにより、ネットワーククライアントによるそのような仮想マシンへの接続が可能になる。
しかし、クラウドサービスが起動コマンドを発行する時間から新しい仮想マシンを起動してクライアントとの接続に利用できる時間まで、著しい時間遅延が存在する。この特有の時間遅延により、クライアントがリアルタイムで仮想マシン上の所望のアプリケーションを実行する能力は不利に制限される。
その上、所望のプラットホームのイメージがイメージキャッシュ内に存在しない場合は、クラウドサービスは新しい仮想マシンを始動しなければならず、一旦始動すれば、そのようなプラットホーム用に構成しなければならない。当業者は、特定のプラットホームに対する要求がなされてから、仮想マシンが始動され、指定プラットホームを有するよう構成され、最終的にネットワーククライアントが利用できるようになるまでの時間間隔が受け入れ難いほど過当なものであることを認識されたい。
イメージキャッシュからコピーされたイメージから所望のプラットホームを備えた仮想マシンを始動することができる場合でさえ、特有の時間遅延はそれにもかかわらず、リアルタイムでクラウドサービスが提供する複数のプラットホームにアクセスする必要があるユーザにとって不利である。例えば、そのようなユーザは、ウェブアプリケーション開発者のアプリケーションへのアクセスに使用されるさまざまなクライアントの各種の型およびモデルの何れか1つに存在し得る潜在的プラットホームの何れか1つのプラットホーム上で、ウェブアプリケーション開発者のアプリケーションが適正に実行することを検証する必要があるウェブアプリケーション開発者を含み得る。
上記で参照された関連出願には、そのような開発者のためのウェブアプリケーション検証システムが開示されている。開示される検証システムは、指定プラットホームのテストノード上のウェブアプリケーションの互換性をリアルタイムで検証するのに有用である。例示的には、ウェブアプリケーションは、一般にインターネットユーザがアクセス可能なサーバ上でホストされるものであり、ユーザの各々は、上記で論じられた通り、さまざまなネットワーククライアントの何れか1つを有する。テストを実行するため、ウェブ開発者は、検証システムコマンドテストノードを1つずつ順番に調べ(ノードの各々は、クラウドサービスにおけるそれぞれの指定プラットホームの仮想マシンであり得る)、ホストされたウェブアプリケーションにアクセスしてその場でさまざまなテストオペレーションを実行する。テストオペレーションの結果は、各テストノードで記録し、検証システム全体を通してウェブ開発者が利用できるようにすることができる。
より具体的には、開示される検証システムは、テストノードに加えて、クライアントマネージャおよびエクスペディタ(expediter)を含む。クライアントマネージャは、検証システムと検証システムに接続されたネットワーククライアントとの間のセッションを管理するよう動作する。エクスペディタは、クラウドサービスにおいて利用可能なすべてのテストノードおよびそのそれぞれのプラットホームを認識する。
セッション中は、開発者クライアント側の開発者は、実行されるべきそれぞれの互換性テストに対して、開発者が選択したテストコマンドを実行するための所望のプラットホームを指定する。指定プラットホームを有するテストノードが現時点において利用可能である場合は、エクスペディタは、そのようなテストノードの位置(通常、URLで指定)をクライアントマネージャに伝えることによって、そのような利用可能性についてクライアントマネージャに通知し、その結果、クライアントマネージャはそのテストノードに接続することができる。
要求がなされた時点で指定プラットホーム用のテストノードが利用可能でない場合は、エクスペディタは、そのようなプラットホームを有する新しいテストノードを立ち上げるよう努める。しかし、上記のクラウドサービスでは、そのようなサーバを立ち上げてクライアントが利用できるようになるまでの待ち時間に過度の遅延(通常、およそ数十分)をもたらし得る。
そのような遅延を緩和するため、関連出願はその中で、検証システムが、静的マシンと仮想マシンの何れかまたは両方として構成されるローカルテストノードであり得るローカルサーバプールをさらに含み得ることを開示している。エクスペディタが、クラウドサービスにおいて要求されたプラットホームの1つまたは複数のテストノードを位置付けることができない場合は、エクスペディタは、ローカルサーバプールに目を向け、クライアントが利用可能な、要求されたプラットホームと一致するそのテストノードの1つを作成する。
現時点においてローカルプールが必要なプラットホームのテストノードを含まない場合は、エクスペディタは、上記で論じられた通り、そのようなプラットホームを備えた新しいテストノードをローカルプール内で立ち上げ、次いで、セッションクライアントが利用できるようにするよう動作する。ローカルサーバプール内のテストノードはたった数秒で立ち上げることができるため、セッションクライアントが利用できるようになるまでの待ち時間は、それに応じて最小であり、それにより、リアルタイムでテストを進行することができる。
また、ローカルプール内のテストノードが利用可能になると、エクスペディタは、現時点で使用中のローカルプールテストノードのプラットホームと一致する追加のテストノードを提供するようクラウドサービスに要求する。クラウドサービスにおけるテストノードが利用可能になり次第、エクスペディタは、関連出願で開示されている通り、同一のプラットホーム構成のクラウドサービステストノードをすべてのさらなるテストの対象とする。それに応じて、関連出願で開示されている通り、ローカルプールは短期間の「バースト」サーバとして機能を果たし、プール内で起動している仮想マシンはアイドル状態として最適に維持される。
本発明によれば、ローカルプールは、仮想マシンスナップショットのキャッシュを含む。これらのスナップショットの各々は、既存の仮想マシン上で立ち上げることができ、それにより、そのようなプラットホームを備えた新しい仮想マシンを立ち上げる必要性を除去するプラットホームである。スナップショットキャッシュは、リアルタイムでネットワーク接続クライアントにプラットホームを提供する際の遅延をさらに有利に緩和する。
ネットワーククライアントが現時点で利用できないプラットホームを要求すると、エクスペディタは、ローカルキャッシュからローカルプール上で起動している仮想マシンへイメージをコピーするというコマンドを発行する。同時に、それとともに、クラウドサービスは、所望のプラットホームを用いて仮想マシンを始動することができるイメージを用意するという命令も受ける。
本発明のさらなる実施形態では、スナップショットイメージは、ローカルプールのRAM内に直接コピーすることができる。それに応じて、仮想マシンは、スナップショットイメージから直接始動することができ、それにより、仮想マシンの始動パラメータを有利に回避することができる。
その上、プールサーバは、クラウドサービスと協調してプラットホームソースとして有利に使用することもでき、先に開示された通り、バーストオペレーションのみに制限されることはない。例えば、クラウドサービスにおけるプラットホームへのアクセスは、ローカルプールに加えて、クラウドサービスプラットホームへのアクセスが検証システムによって事前に認証および資格認定されたこれらの開発者クライアントに制限され得る。そのような場合、適正に認証および資格認定されたユーザによるアクセスは、必要に応じてローカルプールとクラウドサービスの何れかまたは両方におけるプラットホームへのアクセスであり得る。その上、エクスペディタは、現時点においてローカルプール内のプラットホームにアクセスしているそのような認証および資格認定されたユーザに対して、クラウドサービスにおいてプラットホームをさらに展開することができ、後に、そのようなユーザを新しく展開されたプラットホームに移動して、ローカルプール内の仮想マシンを利用できるようにする。他のすべてのユーザは、ローカルプールのみに制限されることになる。
本発明のさらに別の実施形態では、ウェブアプリケーションがテストノードで検証されているユーザセッションの実行中は、プラットホームでテストを実行する際にスクリーンディスプレイのリアルタイムビデオを記録することができる。ビデオは、テストノードで起動しているブラウザウィンドウのフレームバッファを記録し、その記録は、開発者クライアントにストリーム配信される。この機能は、上記で参照された出願に記載されている通り、提供されているテストの静的なスクリーンショットのみに必要とされるであろう追加のセットアップを必要とすることなく、実行されているテストをリアルタイムで変更することを有利に可能にする。
本発明のさらに別の実施形態では、指定プラットホームを有するテストノード上でウェブアプリケーションの互換性をリアルタイムで検証するためのウェブアプリケーション検証システムは、クライアントマネージャおよびエクスペディタを含む。クライアントマネージャは、検証システムと接続されたセッションクライアントとの間のセッションを管理する。クライアント側のユーザは、セッションのためのテストノードのプラットホームを指定する。エクスペディタは、すべての利用可能なテストノードおよびそのそれぞれのプラットホームを認識し、そのような指定プラットホームが利用可能であれば、エクスペディタは、そのようなテストノードの利用可能性についてクライアントマネージャに通知し、クライアントマネージャがテストノードに接続できるようにテストノードの位置をクライアントマネージャにさらに伝える。そうでない場合は、エクスペディタは、指定プラットホームを有する新しいテストノードを立ち上げる。
一旦テストノードが取得され接続されると、セッションクライアント側のユーザは、テストノードのブラウザがナビゲートする、テストされるべきウェブアプリケーションのURLを伝える。次いで、ユーザは、ウェブアプリケーション上のテストノードのブラウザによって行われる操作に対する一連のコマンドを入力することができる。各コマンドを与え、テストノードのブラウザに応答を返送すると、テストノード上で行われたブラウザプロセスに関するデータはデータファイルに収集される。また、テストノードでのブラウザウィンドウのスクリーンショットおよびビデオは、収集されたデータと同期化され得る。セッションの終了時には、捕捉されたスクリーンショットおよびデータはユーザに返送される。
本発明のさらに別の態様では、テストノードの各々はクラウドベースサービスにおける仮想サーバである。テストシステムは、静的サーバとして構成された複数のローカルテストノードをさらに含み得る。エクスペディタが要求されるプラットホームの1つまたは複数の仮想サーバテストノードを位置付けることができない場合は、エクスペディタは、要求されるプラットホームと一致するURLを静的サーバテストノードの1つに送信する。本発明のさらなる実施形態では、エクスペディタは、現時点で使用中の静的サーバのプラットホームと一致する追加のテストを提供するよう、仮想サーバテストノードサービスにさらに要求する。そのような仮想サーバテストノードが利用可能になり次第、エクスペディタは、同一のプラットホーム構成の仮想サーバテストノードをすべてのさらなるテストの対象とする。
本発明のこれらのおよび他の目的、利点および特徴は、以下の発明を実施するための形態の研究を添付の図面と併せて読み進めるに従い、当業者には容易に明らかとなろう。
図1は、本発明の原理に従って構築されたソフトウェア検証システムの概略ブロック図である。 図2は、本発明の原理に従って構築されたソフトウェア検証システムを有するクラウドコンピューティング環境の概略ブロック図である。 図3は、図2のソフトウェア検証システムの詳細なブロック図である。
ここで図1を参照すると、ウェブアプリケーション検証システム10が示され、このシステムは説明の通り構築され得る。開発者クライアント12は、クラウドサービス16側のプラットホームとして提供されるリモートテストノード16、または、ローカルの仮想マシンプール14側のプラットホームとして提供されるローカルテストノード14でウェブアプリケーションをテストするためのネットワーク上で検証システム10に接続することができる。
また、参照された出願でも開示されている通り、検証システム10は、クライアントマネージャ30およびエクスペディタ20を含む。クライアントマネージャ30は、開発者クライアント12と検証システム10との間のセッションを管理する。エクスペディタ20は、クラウドサービスプール14およびローカルプール14の各々においてテストノードに対して利用可能な利用可能なプラットホームの各々を認識する。開発者クライアント12が新しいセッションを要求すると、クライアントマネージャは、エクスペディタから所望のプラットホームの利用可能なテストノードのURLを入手し、そのようなURLを開発者クライアントに送信し、次いで今度は、そのようなURLを有するテストノードに接続して検証セッションを行うことができる。例えば、URLがローカルプール14側で提供されるテストノード14に対するものであれば、その間に接続が施される。
さらに、テストセッション中、ブラウザウィンドウのリアルタイムビデオを入手することができる。この点で、ビデオインターフェース42は、テストノード14で起動しているブラウザのフレームバッファ情報を収集し、確立された接続を通じて開発者クライアント12にそのような情報を送信することができる。次いで、フレームバッファ情報を使用して、開発者クライアント12側でテストノード14のブラウザスクリーンを再生することができる。
検証システムは、イメージキャッシュ24をさらに含み得、イメージキャッシュには、さまざまなプラットホームに対する複数の仮想マシンイメージまたはスナップショット24、24、...、24nが格納される。クラウドプール16ローカルプール14で現時点において起動されていないプラットホームに対して要求がなされると、エクスペディタは、そのようなプラットホームと一致するイメージ24、24、...、24nの1つをローカルプール16内で利用可能な仮想マシンにコピーする。好ましくは、イメージ24、24、...、24nの選択された1つのイメージは、ローカルプール14のRAM26内に直接コピーされる。イメージキャッシュ24には、特定のプラットホーム用に構成された、入手された仮想マシンのスナップショットが格納し得る。RAMにイメージをコピーすることにより、仮想マシンの始動パラメータを構成する必要性が除去される。
クライアントマネージャ30の管理下のクライアントセッションが認証および資格認定されると、エクスペディタは、クラウドプール16またはローカルプール14の任意の仮想マシンを、テストノードとして開発者クライアント12が利用できるようにすることができる。それに応じて、エクスペディタは、検証システム10のための利用可能なリソースのバランスを保って管理することができる。
ここで図2を参照すると、上記で定義されているウェブアプリケーションの開発および検証中に有用なウェブアプリケーション検証システム10が示される。一般に、クライアント12側のユーザは、サーバ16上に存在するウェブアプリケーションが、そのユーザインターフェースを介してウェブアプリケーションを起動することを目的としてサーバ16への接続に使用され得るデバイス18のプラットホーム構成と互換性を有するか検証することを希望する。デバイス18は、任意のタイプのパーソナルコンピュータ、または、ウェブブラウザがユーザインターフェースを提供する他のタイプのウェブ接続デバイスであり得る。クライアント12側のユーザは、通常、ウェブアプリケーションに何らかの関心を有し、例えば、ウェブアプリケーションの一部もしくはすべての開発者であること、または、そうでない場合、そのような互換性検証を実行するためにそのようなウェブアプリケーションの所有者もしくは開発者によって雇用もしくは認証されていることなどが挙げられる。
以下にさらに詳細に説明されるように、クライアント12側のユーザは、ウェブアプリケーション検証システム10に接続し、クライアント12上で起動しているクライアントブラウザのユーザインターフェースを通じて、サーバ16側のウェブアプリケーションの互換性に対して検証が行われる特定のプラットホーム構成についてアプリケーション検証システム10に通知する。次いで、アプリケーション検証システム10は、特定のプラットホーム構成を有するテストノード22を位置付けてテストノード22上のテストブラウザを立ち上げるよう動作する。
クライアント12はアプリケーション検証システム10に接続されるが、クライアントブラウザのインターフェースを通じたクライアント12側のユーザは、テストノード22上のテストブラウザにサーバ16上のウェブアプリケーションの位置へナビゲートするよう、アプリケーション検証システム10に命令する。一旦テストノード22とサーバ16との間で接続が確立されれば、クライアント12側のユーザは、次いで、クライアントブラウザを通じて、テストノード22側のテストブラウザにウェブアプリケーション上で1つまたは複数のコマンドを入力するよう、アプリケーション検証システム10にさらに命令し、ウェブアプリケーションでは、入力されたそれぞれのコマンドに対して、ウェブアプリケーションによるそのようなコマンドの実行結果は、テストノード22に、次いで、システム10に返送される。次いで、クライアント12側のユーザは、クライアント12側のクライアントブラウザのインターフェースにおいてそのような結果を閲覧することができる。
アプリケーション検証システム10は、好ましくは、クライアント12、サーバ16およびテストノード22がインターネットなどのネットワーク26上でアプリケーション検証システム10と通信を行うクラウドコンピューティング環境で動作することが企図される。そのような環境では、アプリケーション検証システム10は、ホストされたウェブサイトであり得る。
アプリケーション検証システム10は、複数のクライアント121〜i側のユーザからアクセス可能であることも企図される。その上、アプリケーション検証システム10は、利用可能な複数のテストノード221〜jを有することで複数のユーザに対応し、その各々は、それぞれのサーバ161〜nおよび複数のプラットホーム構成上で1つまたは複数のウェブアプリケーションを検証する。
テストノード22は、静的サーバまたは仮想サーバの何れかであり得、アプリケーション検証システム10がホストされる同じサーバと一緒に配置された状態で存在するか、または、そこからサーバをサービスとして得ることができる任意のサーバファームに存在し得る。その上、テストノード22の何れか1つは、人間の介入および管理を受けるネットワーク接続デバイス、例えば、タブレット、スマートフォンまたはコンピュータなどの別個のプラットホームでもあり得る。テストノード22の各々は、その上で起動しているテストブラウザのそれぞれの1つを有する。
好ましくは、テストノード221〜jは、弾力的なクラウドサービス、例えば、Amazon EC2サービスからの要求に応じて利用可能な仮想サーバである。以下でさらに説明されるように、弾力的なクラウドサービスにより、テストノード221〜jは、オペレーティングシステムおよびウェブブラウザの任意の組合せから決定される指定プラットホーム構成、ならびに、ブラウザインターフェースを通じてウェブアプリケーションを起動することができる複数のインターネット接続デバイス181〜kの何れかにおいて見出され得るそのそれぞれのバージョンを有するよう容易に構成できるようになる。
図3を参照すると、アプリケーション検証システム10は、入口ハブ28、クライアントマネージャ30およびエクスペディタ20を含む。クライアント121〜i(図2)の何れか1つであり得るクライアント12側のユーザは、従来の方法でそのそれぞれのクライアントブラウザのユーザインターフェースを通じてアプリケーション検証システム10に接続する。そのようなインターフェースを通じて、ユーザは、入口ハブ28にアクセスすることによって検証手順が着手されることを示すことができる。場合により、ユーザの資格情報の認証には、入口ハブ28へのアクセスを認証することが要求され得る。
接続が確立されると、クライアントマネージャ30は、接続しつつあるクライアント12との通信に着手する。より具体的には、クライアントマネージャ30は、クライアント12にHTTPヘッダを送信し、クライアント12との検証セッションを開始する。次いで、セッションに着手したクライアント12側のユーザは、そのようなユーザのクライアント12のクライアントブラウザのインターフェースを通じて、現行セッションの検証が起こるプラットホームをクライアントマネージャ30に指定することができる。
クライアントマネージャは、これを通じてこのクライアント12に関連するアプリケーション検証システム10との取引および同アプリケーション検証システム10内での取引が登録され得るセッションクライアント12用のセッションIDをさらに発行する。クライアントマネージャ30は、各セッションID、および、接続され得るすべてのそのようなクライアント121〜i(図2)に対する各セッションに使用されるプラットホームの記録を維持する。本発明の一実施形態では、クライアントデータベース34を使用してそのような記録を維持することができる。
エクスペディタ20は、クライアントデータベース34に例示的に繰返しクエリを行うことによって、クライアントマネージャ30によって着手された任意の新しいセッションのインスタンスをモニタするよう動作する。エクスペディタ32が新しいセッションを認識すると、エクスペディタ32は、セッションに対して指定されたプラットホームと同じプラットホーム構成を有するすべてのテストノード221〜j(図2)からテストノード22を位置付けるよう試みる。必要なテストノード22が位置付けられれば、エクスペディタ32は、そのそれぞれのテストブラウザを立ち上げるよう、そのようなテストノード22に命令する。次いで、エクスペディタ32は、セッションに対するプラットホーム構成の利用可能性についてクライアントマネージャ30に通知し、利用可能なテストノード22の位置をクライアントマネージャ30に伝える。
利用可能なテストノード22の位置を知ることにより、クライアントマネージャ30は、次いで、利用可能なテストノード22に接続し、テストノード22のそのような利用可能性についてセッションクライアント12にさらに知らせる。クライアントマネージャ30が仲介体として動作することで、セッションクライアント12側のユーザは、クライアントブラウザのインターフェースを通じて、テストノード22側のテストブラウザによってコマンドが実行されその応答が記録されるように、利用可能なテストノードに送信された一連のコマンド(例示的には、Selenium APIコールであり得る)をその場で入力することができる。通常、初期のコマンドは、サーバ16側に存在するテスト中のウェブアプリケーションの位置(例示的には、URLで与えられる)までナビゲートするという、テストノード22側のテストブラウザに対する命令であろう。
コマンドの終了または停止は、テストブラウザによってテスト中のウェブアプリケーションの検証セッションが終了することを意味する。そのような終了時には、検証セッションの結果は、セッションクライアント12による見直しまたはセッションクライアント12へのアップロードのため、クライアントマネージャ30に送信される。検証セッションの結果は、それぞれのコマンドおよび関連する応答に対してテストノード22上で実行するテストブラウザのプロセスに関連するデータを含み得る。また、結果は、コマンドが与えられて応答がなされた際にテストブラウザ22のユーザインターフェースを記録するために仮想ネットワークコンピュータを通じて例示的に入手できるテストブラウザ22セッションのビデオも含み得る。その上、本発明によれば、テストブラウザ22セッションのスクリーンショットのそのようなビデオは、テストブラウザのプロセスに関連するデータと同期化される。
また、上記のアプリケーション検証システム10は、サーバ161−nの1つが公的にアクセス可能なサイトの代わりに安全なファイアウォールの後方に存在すれば、サーバ161−nの何れか1つに存在し得るウェブアプリケーションの何れか1つをテストすることもできる。そのような場合、アプリケーション検証システム10は、VPNトンネルを作成して安全なファイアウォールの後方のサーバへのマッピングを作成するよう要求することができる。VPNトンネルの変更は、上記の通り、クライアントマネージャが仲介体として動作することを可能にするためにのみ行えばよい。
本発明によれば、エクスペディタ32は、新しく着手されたセッションに対して指定されたプラットホームが現時点で利用可能でなければ、上記の通り、新しく着手されたセッションに対するテストノード221〜jの何れか1つの利用可能性を判断するのみでなく、必要に応じてテストノード221〜jの新しいノードを立ち上げるようさらに動作し得る。それに応じて、エクスペディタ20は、すべての利用可能なテストノード221〜jの現状を認識するよう任務が課される。状態とは、テストノード221〜jの何れか1つがアイドル状態であるかどうか、したがって、現時点で新しいセッションに利用可能か、または、現行のセッションで手一杯かを指す。各々の現状にかかわらずそのようなすべてのテストノード221〜jの総数は、絶対数でも所定の数でもなく、弾力的なクラウドコンピューティング環境におけるプラットホームに対する要求に応じて公知の通り変動することを認識されたい。
テストノード221〜jの各々の状態の現記録を維持するため、ソフトウェアテストシステムは、状態モニタ36、テストノードデータベースマネージャ38およびテストノードデータベース40をさらに含み得る。テストノード221〜jの各々の状態が公知となるかまたは変更されると、状態モニタ36は、テストノードデータベースマネージャ38にそのような状態を提供するよう動作し、テストノードデータベースマネージャ38は、テストノード221〜jの特定された1つのノードと関連してテストノードデータベース40にそのような状態を格納する。それに応じて、テストノードデータベースマネージャ38のクエリを実施することによって、エクスペディタ20は、テストノード221〜jの各々の状態を常に認識する。
状態モニタ36は、弾力的なクラウドコンピューティング環境におけるサービスとしてプラットホームに対して開発されてきた公知の実施技法を使用して、そのようなテストノード221〜jがいつオンライン状態であるか、いつアイドル状態であるかまたはいつ手一杯であるかを知るために、テストノード221〜jが存在する弾力的なクラウドをモニタする。java script object notationプロトコルは、例示的な実装形態において使用することができる。
上記の通り、エクスペディタ20は、必要に応じてテストノード221〜jの新しいノードを立ち上げるよう動作する。テストノード221〜jの新しい1つのノードが必要とされるセッションは、テストノード221〜jの新しい1つのノードがオンライン状態となりそのようなセッションで利用できるようになるのを待つ間、クライアントマネージャ30によってキュー内に配置される。しかし、弾力的なクラウドでは、クライアント121〜iの1つの任意のユーザを待つことは、検証プロセスがリアルタイムで起こることを期待するユーザに、受け入れ難いほど長い時間遅延をもたらす恐れがある。例えば、弾力的なクラウドでは、テストノード221〜jの新しい1つのノードがオンライン状態となり利用できるようになるまで、最大で15分またはそれ以上要する場合がある。
そのような遅延を緩和するため、ソフトウェア検証システム10は、事前に選択された数のサーバを含むローカルのスタンバイサーバプール14をさらに含み得、そのサーバの各々は、テストノード221〜jの各々に対して上記で説明されたものと同様に、ソフトウェア検証システム10とともに機能し、ソフトウェア検証システム10と相互作用することができる。また、サーバプール14のサーバの各々は、静的サーバまたは仮想サーバの何れかでもあり得る。エクスペディタ20がテストノードデータベース40内でセッションに要求されるプラットホームを有する利用可能なサーバを見出せない場合は、エクスペディタ20は、必要なプラットホームを備えたプールサーバ14を立ち上げる。
サーバプール14は、ソフトウェア検証システム10、より具体的には、エクスペディタ20の管理下にあるため、プールサーバ14をおよそ10秒で立ち上げてオンラインで利用可能にすることができ、それにより、ユーザが経験する遅延を緩和し、実質的にほぼリアルタイムでのソフトウェア検証システム10との相互作用が可能になる。その上、エクスペディタ20は、サーバプール14の利用度を追跡することもでき、そのような全利用度が所定の閾値に近づけば、エクスペディタ20は、今後の要求を満たすため、アイドル状態のテストノード221〜jの追加のノードを立ち上げることができる。また、サーバプールは、試験的に検証システム10を使用することを希望し得るユーザに対する「サンドボックス」サーバとして使用することもできる。
上記では、新規のホストベースのウェブアプリケーションテストシステムおよび方法について説明してきた。この時点で、当業者は、本明細書で開示される発明概念から逸脱することなく、上記の実施形態を多様に使用したり、上記の実施形態から逸脱したりすることができる。

Claims (19)

  1. ソフトウェア検証システムにおいて、
    各々複数の仮想マシンをホストするよう構成される複数の物理的なマシンを有する市販の共用リソースサービスであるクラウドサービスと、
    各々がプラットホームを起動する1つの仮想マシンである複数のテストノードと、
    複数のクライアントの1つと検証システムとの間の検証セッションを管理するためのクライアントマネージャと、
    サーバのクラウドサービスプールおよびサーバのローカルプールのそれぞれにおいて前記複数のテストノードによって使用するための複数の利用可能なプラットホームを認識するエクスペディタであって、前記複数のクライアントの1つが指定プラットホームを使用するために前記検証セッションを要求すると、前記エクスペディタは前記指定プラットホームを起動している前記複数のテストノードの利用可能な1つのネットワークアドレスを入手し、前記エクスペディタは前記要求を行うクライアントに前記ネットワークアドレスを送信し、次いで、前記要求を行うクライアントを前記要求されたプラットホームを起動している前記利用可能なテストノードに接続する、エクスペディタと、
    を備え、
    前記要求されたプラットホームが利用可能でない場合、前記サーバのローカルプール内に位置し前記要求されたプラットホームを有する新しい仮想マシンが始動され、前記要求を行うクライアントと接続されることを特徴とするソフトウェア検証システム。
  2. 請求項1に記載のシステムにおいて、前記複数のテストノードの各々の状態を判断するため、および、テストノードデータベース内に各状態を格納するためにそのような状態をデータベースマネージャに提供するための状態モニタをさらに備え、前記データベースマネージャは前記複数のテストノードの各々の状態を前記エクスペディタに提供するよう動作可能であることを特徴とするシステム。
  3. 請求項1に記載のシステムにおいて、利用可能なテストノードで動作するブラウザのフレームバッファ情報を収集するため、および、前記要求を行うクライアントと前記利用可能なテストノードとの間の接続を通じて前記情報を送信するために、ビデオインターフェースをさらに備えることを特徴とするシステム。
  4. 請求項1に記載のシステムにおいて、複数の仮想マシンイメージを格納するためのイメージキャッシュをさらに備え、前記複数の仮想マシンイメージの各々は複数の指定プラットホームの1つのプラットホーム用に構成される既存の仮想マシン上で動作可能であることを特徴とするシステム。
  5. 請求項に記載のシステムにおいて、前記サーバのローカルプール内に位置する前記新しい仮想マシンは、前記要求されたプラットホームの前記格納された仮想マシンイメージを使用して始動されることを特徴とするシステム。
  6. ソフトウェアを検証するための方法において、
    複数の物理的なマシンの各々を、クラウドサービスにおいて複数の仮想マシンをホストするよう構成するステップであって、前記クラウドサービスは市販の共用リソースサービスである、ステップと、
    複数のテストノードの1つとして前記複数の仮想マシンの各々の仮想マシン上でプラットホームを起動するステップと、
    複数のクライアントの1つと前記複数のテストノードの1つとの間の検証セッションを管理するステップと、
    サーバのクラウドサービスプールおよびサーバのローカルプールのそれぞれにおいて前記複数のテストノードによって使用するための複数の利用可能なプラットホームを認識するステップと、
    前記複数のクライアントの1つが指定プラットホームを使用するためにソフトウェアの検証を要求すると、前記指定プラットホームを起動している前記複数のテストノードの利用可能な1つのノードのネットワークアドレスを入手するステップと、
    前記要求を行うクライアントに前記ネットワークアドレスを送信し、次いで、前記要求を行うクライアントを、前記要求されたプラットホームを起動している前記利用可能なテストノードに接続するステップと、
    を含み、
    前記指定プラットホームが利用可能でない場合、前記サーバのローカルプール内に位置し、前記要求されたプラットホームを有する新しい仮想マシンが始動され、前記新しい仮想マシンが前記要求を行うクライアントと接続されることを特徴とするソフトウェアを検証するための方法。
  7. 請求項6に記載の方法において、前記複数のテストノードの各々の状態を判断するステップと、テストノードデータベース内に各状態を格納するためにそのような状態をデータベースマネージャに提供するステップとをさらに備え、前記データベースマネージャは前記複数のテストノードの各々の状態を提供するよう動作可能であることを特徴とする方法。
  8. 請求項6に記載の方法において、前記利用可能なテストノードで動作するブラウザのフレームバッファ情報を収集するステップと、前記要求を行うクライアントと前記利用可能なテストノードとの間の接続を通じて前記情報を送信するステップとをさらに含むことを特徴とする方法。
  9. 請求項6に記載の方法において、複数の仮想マシンイメージをイメージキャッシュ内に格納するステップをさらに備え、前記複数の仮想マシンイメージの各々は複数の指定プラットホームの1つのプラットホーム用に構成される既存の仮想マシン上で動作可能であることを特徴とする方法。
  10. 請求項9に記載の方法において、前記サーバのローカルプール内に位置する前記新しい仮想マシンは、前記要求されたプラットホームの前記格納されたイメージを使用して始動されることを特徴とする方法。
  11. ネットワーク接続クライアントから、複数のネットワーク接続テストノードの少なくとも1つのノード上でのウェブアプリケーションの操作性の検証を可能にするためのソフトウェア検証システムにおいて、前記テストノードの各々は所定のプラットホーム構成を有し、
    前記クライアントとのセッションを管理し、所望のプラットホーム構成の仕様を前記クライアントから受信するよう動作可能なクライアントマネージャと、
    前記テストノードの各々および前記テストノードの各々の前記プラットホーム構成の現時点における利用可能性を認識し、前記所定のプラットホーム構成が前記所望のプラットホーム構成に見合う前記テストノードの特定された1つのノードのネットワーク位置を前記クライアントマネージャに通知するよう動作可能であるエクスペディタとを備え、前記クライアントマネージャは、前記通知に応じて、前記テストノードの前記特定された1つのノードに前記クライアントを接続するよう動作可能であり、それと同時に、前記クライアントは、ウェブ位置のURLを前記テストノードの前記特定された1つのノードに送信するよう動作可能であり、ウェブ位置のURLでは、前記クライアントが前記テストノードの特定された1つのノードのブラウザに命令して命令セットに従って前記ウェブ位置にナビゲートできるように前記ウェブアプリケーションが動作可能であり、データは、前記クライアントへの送信のため前記命令セットの実行時に収集されることを特徴とする検証システム。
  12. 請求項11に記載の検証システムにおいて、前記テストノードの何れも前記所望のプラットホーム構成に見合う前記プラットホーム構成を有しない場合、前記エクスペディタは、前記所望のプラットホーム構成を有する前記テストノードの新しい1つのノードを立ち上げるよう動作することを特徴とする検証システム。
  13. 請求項12に記載の検証システムにおいて、前記テストノードの前記各々はクラウドサーバシステムにおける仮想プラットホームであり、前記テストノードの前記新しい1つのノードは前記クラウドサーバシステムにおける仮想プラットホームであることを特徴とする検証システム。
  14. 請求項12に記載の検証システムにおいて、前記テストノードの前記各々はクラウドサーバシステムにおける仮想プラットホームであり、前記テストノードの前記新しい1つのノードは前記検証システムとローカル接続されるプールサーバシステムにおける仮想プラットホームであることを特徴とする検証システム。
  15. 請求項14に記載の検証システムにおいて、前記エクスペディタは、前記命令セットの完了時に前記クライアントマネージャが前記クライアント前記テストノードのさらなる新しい1つのノードに接続するよう動作するように、前記プールサーバシステムにおける前記テストノードの前記新しい1つのノードの前記プラットホーム構成と実質的に同様のプラットホーム構成を有する前記テストノードの前記さらなる新しい1つのノードを前記クラウドサーバシステムにおいて立ち上げるようさらに動作することを特徴とする検証システム。
  16. 請求項11に記載の検証システムにおいて、前記テストノードの前記1つのノードは、前記クライアントマネージャに接続される別個のプラットホームネットワークであることを特徴とする検証システム。
  17. 請求項11に記載の検証システムにおいて、前記別個のプラットホームである前記テストノードの1つのノードは、前記命令セットに従って人間の介入および管理を受けることを特徴とする検証システム。
  18. 請求項11に記載の検証システムにおいて、前記収集されたデータは、前記ブラウザのスクリーンショットの選択された1つのスクリーンショット、および、前記テストノードの前記1つのノードの前記ブラウザのビデオであることを特徴とする検証システム。
  19. 請求項11に記載の検証システムにおいて、 前記テストノードの各々の現在の状態を入手するよう動作可能な状態モニタと、
    前記テストノードの各々の前記現在の状態を格納したデータベースと、
    前記状態モニタ、前記データベースおよび前記エクスペディタの各々と通信し、前記データベース前記状態モニタによって入手される前記現在の状態を格納し、エクスペディタからの問い合わせ(inquiry)時に前記現在の状態を前記エクスペディタに通知するよう動作可能なデータベースマネージャと、
    をさらに備えることを特徴とする検証システム。
JP2012548218A 2010-01-08 2011-01-10 ウェブアプリケーションのリアルタイム検証 Active JP5646650B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US29360610P 2010-01-08 2010-01-08
US61/293,606 2010-01-08
PCT/US2011/020719 WO2011085335A2 (en) 2010-01-08 2011-01-10 Real time verification of web applications

Publications (3)

Publication Number Publication Date
JP2013516715A JP2013516715A (ja) 2013-05-13
JP2013516715A5 JP2013516715A5 (ja) 2014-10-16
JP5646650B2 true JP5646650B2 (ja) 2014-12-24

Family

ID=44306188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012548218A Active JP5646650B2 (ja) 2010-01-08 2011-01-10 ウェブアプリケーションのリアルタイム検証

Country Status (4)

Country Link
US (1) US9170847B2 (ja)
EP (1) EP2521976B1 (ja)
JP (1) JP5646650B2 (ja)
WO (1) WO2011085335A2 (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720569B2 (en) 2006-08-14 2017-08-01 Soasta, Inc. Cloud-based custom metric/timer definitions and real-time analytics of mobile applications
US9990110B1 (en) 2006-08-14 2018-06-05 Akamai Technologies, Inc. Private device cloud for global testing of mobile applications
US9154611B1 (en) 2006-08-14 2015-10-06 Soasta, Inc. Functional test automation for gesture-based mobile applications
US8959217B2 (en) 2010-01-15 2015-02-17 Joyent, Inc. Managing workloads and hardware resources in a cloud resource
US9495473B2 (en) 2010-07-19 2016-11-15 Soasta, Inc. Analytic dashboard with user interface for producing a single chart statistical correlation from source and target charts during a load test
US8341462B2 (en) * 2010-07-19 2012-12-25 Soasta, Inc. System and method for provisioning and running a cross-cloud test grid
US9251035B1 (en) 2010-07-19 2016-02-02 Soasta, Inc. Load test charts with standard deviation and percentile statistics
US9021362B2 (en) 2010-07-19 2015-04-28 Soasta, Inc. Real-time analytics of web performance using actual user measurements
US9436579B2 (en) 2010-07-19 2016-09-06 Soasta, Inc. Real-time, multi-tier load test results aggregation
US9229842B2 (en) 2010-07-19 2016-01-05 Soasta, Inc. Active waterfall charts for continuous, real-time visualization of website performance data
US8555276B2 (en) 2011-03-11 2013-10-08 Joyent, Inc. Systems and methods for transparently optimizing workloads
JP5592303B2 (ja) * 2011-04-07 2014-09-17 株式会社日立製作所 実行環境構築装置および実行環境構築システム
US8732665B2 (en) * 2011-06-28 2014-05-20 Microsoft Corporation Deploying environments for testing by providing instantaneous availability of prebuilt environments
WO2013018914A1 (ja) * 2011-08-01 2013-02-07 日本電気株式会社 試験装置、システム、プログラム、及び、方法
US8635607B2 (en) 2011-08-30 2014-01-21 Microsoft Corporation Cloud-based build service
US8839035B1 (en) 2011-09-14 2014-09-16 Amazon Technologies, Inc. Cloud-based test execution
US9785533B2 (en) 2011-10-18 2017-10-10 Soasta, Inc. Session template packages for automated load testing
US8782224B2 (en) 2011-12-29 2014-07-15 Joyent, Inc. Systems and methods for time-based dynamic allocation of resource management
US8547379B2 (en) 2011-12-29 2013-10-01 Joyent, Inc. Systems, methods, and media for generating multidimensional heat maps
CN102594617B (zh) * 2012-01-12 2014-07-02 易云捷讯科技(北京)有限公司 用于对云计算服务进行评测的系统及评测方法
US9268587B2 (en) * 2012-04-13 2016-02-23 Empire Technology Development Llc Determining destination cloud system requirements
US9942083B1 (en) * 2012-09-10 2018-04-10 Amazon Technologies, Inc. Capacity pool management
US8826279B1 (en) 2013-03-14 2014-09-02 Joyent, Inc. Instruction set architecture for compute-based object stores
US9104456B2 (en) 2013-03-14 2015-08-11 Joyent, Inc. Zone management of compute-centric object stores
US9772923B2 (en) 2013-03-14 2017-09-26 Soasta, Inc. Fast OLAP for real user measurement of website performance
US8943284B2 (en) 2013-03-14 2015-01-27 Joyent, Inc. Systems and methods for integrating compute resources in a storage area network
US8677359B1 (en) 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US8881279B2 (en) 2013-03-14 2014-11-04 Joyent, Inc. Systems and methods for zone-based intrusion detection
US8775485B1 (en) 2013-03-15 2014-07-08 Joyent, Inc. Object store management operations within compute-centric object stores
US8793688B1 (en) 2013-03-15 2014-07-29 Joyent, Inc. Systems and methods for double hulled virtualization operations
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
WO2014179731A1 (en) * 2013-05-02 2014-11-06 Amazon Technologies, Inc. Program testing service
US9395890B2 (en) * 2013-05-15 2016-07-19 Microsoft Technology Licensing, Llc Automatic discovery of system behavior
US10489175B2 (en) 2013-06-10 2019-11-26 Amazon Technologies, Inc. Pre-configure and pre-launch compute resources
US11663025B2 (en) 2013-09-23 2023-05-30 Bankvault Pty Ltd Maintenance of and caching of suspended virtual computers in a pool of suspended virtual computers
JP5553950B1 (ja) * 2013-11-01 2014-07-23 エヌ・ティ・ティレゾナント・テクノロジー株式会社 画像送信システム
US10601674B2 (en) 2014-02-04 2020-03-24 Akamai Technologies, Inc. Virtual user ramp controller for load test analytic dashboard
US10867264B2 (en) * 2014-10-31 2020-12-15 Xerox Corporation Methods and systems for estimating lag times in a cloud computing infrastructure
GB2532076A (en) * 2014-11-10 2016-05-11 Inst Information Ind Backup method, pre-testing method for environment updating and system thereof
US10346431B1 (en) 2015-04-16 2019-07-09 Akamai Technologies, Inc. System and method for automated run-tme scaling of cloud-based data store
US10389746B2 (en) 2015-09-28 2019-08-20 Microsoft Technology Licensing, Llc Multi-tenant environment using pre-readied trust boundary components
US11093374B2 (en) 2016-08-09 2021-08-17 SeaLights Technologies LTD System and method for continuous testing and delivery of software
CN107402785A (zh) * 2017-07-12 2017-11-28 北京潘达互娱科技有限公司 一种配置方法与装置
US10725890B1 (en) 2017-07-12 2020-07-28 Amazon Technologies, Inc. Program testing service
US10445221B2 (en) 2018-03-08 2019-10-15 Sauce Labs Inc. Automated application testing system
US11755919B2 (en) 2018-05-07 2023-09-12 Sauce Labs Inc. Analytics for an automated application testing platform
US11550708B1 (en) 2018-05-17 2023-01-10 Konark Research, Inc. System, method and apparatus for selection of hardware and software for optimal implementation of one or more functionality or algorithm
US11080168B1 (en) 2018-05-17 2021-08-03 Konark Research, Inc. System, method and apparatus for selection of hardware and software for optimal implementation of one or more functionality or algorithm
US11086759B2 (en) 2018-09-27 2021-08-10 SeaLights Technologies LTD System and method for probe injection for code coverage
US10942837B2 (en) 2019-05-13 2021-03-09 Sauce Labs Inc. Analyzing time-series data in an automated application testing system
US11042472B2 (en) * 2019-09-10 2021-06-22 Sauce Labs Inc. Authoring automated test suites using artificial intelligence
US11573885B1 (en) 2019-09-26 2023-02-07 SeaLights Technologies LTD System and method for test selection according to test impact analytics
JP7440747B2 (ja) * 2020-01-27 2024-02-29 富士通株式会社 情報処理装置、情報処理システムおよびネットワーク疎通確認方法
US11451973B2 (en) 2020-09-23 2022-09-20 T-Mobile Usa, Inc. Simulating operation of a 5G wireless telecommunication network
CN115374420B (zh) * 2022-10-27 2023-01-03 中安网脉(北京)技术股份有限公司 基于人脸安全验证的跨浏览器高并发数据访问的软件系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148608A1 (en) * 2003-01-24 2004-07-29 Gendreau James K. Portable executable software architecture
CN1835507A (zh) * 2005-03-17 2006-09-20 国际商业机器公司 用于用户与web浏览器交互的服务器端处理的方法与系统
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
JP2009537892A (ja) 2006-05-18 2009-10-29 サンギュ イ クライアントおよびサーバの保護方法
JP4240062B2 (ja) * 2006-05-31 2009-03-18 日本電気株式会社 計算機システムおよび性能計測方法ならびに管理サーバ装置
US8219987B1 (en) * 2007-08-24 2012-07-10 Vmware, Inc. Optimized virtual machine specification for provisioning application specific runtime environment
US8347263B1 (en) * 2007-05-09 2013-01-01 Vmware, Inc. Repository including installation metadata for executable applications
US20080301770A1 (en) * 2007-05-31 2008-12-04 Kinder Nathan G Identity based virtual machine selector
US9015592B2 (en) * 2008-03-14 2015-04-21 Verizon Patent And Licensing Inc. Method, apparatus, and computer program for providing web service testing
US7596620B1 (en) * 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
JP5401922B2 (ja) * 2008-11-04 2014-01-29 富士通株式会社 仮想システム制御プログラム、方法及び装置
CN101753594B (zh) * 2008-11-28 2014-03-12 国际商业机器公司 一种激活虚拟机的方法和装置
US8019837B2 (en) * 2009-01-14 2011-09-13 International Business Machines Corporation Providing network identity for virtual machines
US20100332629A1 (en) * 2009-06-04 2010-12-30 Lauren Ann Cotugno Secure custom application cloud computing architecture
US8307362B1 (en) * 2009-12-18 2012-11-06 Emc Corporation Resource allocation in a virtualized environment

Also Published As

Publication number Publication date
EP2521976A4 (en) 2015-04-22
WO2011085335A3 (en) 2011-10-27
EP2521976B1 (en) 2018-04-18
JP2013516715A (ja) 2013-05-13
US20120017210A1 (en) 2012-01-19
WO2011085335A2 (en) 2011-07-14
EP2521976A2 (en) 2012-11-14
US9170847B2 (en) 2015-10-27

Similar Documents

Publication Publication Date Title
JP5646650B2 (ja) ウェブアプリケーションのリアルタイム検証
US20220094737A1 (en) Method, server and system for converging desktop application and web application
JP6438940B2 (ja) シングルサインオンのためのウェブベースインターフェース統合
KR102102168B1 (ko) 가상 데스크탑 서비스 장치 및 방법
US20150334184A1 (en) Enabling execution of remotely-hosted applications using application metadata and client updates
US10958633B2 (en) Method and system for securely transmitting volumes into cloud
US10223062B1 (en) Method and apparatus of capturing a screen image of a remotely managed machine
KR102102169B1 (ko) 가상 데스크탑 서비스를 위한 장치 및 가상 데스크탑 서비스 방법
CN110740118A (zh) 与合作伙伴站点发起会话的协议
Markelov Certified OpenStack Administrator Study Guide
JP5522735B2 (ja) セッション管理装置、セッション管理システム、セッション管理方法、及びプログラム
JP4440608B2 (ja) ネットワークブートシステム,ネットワークブート方法およびネットワークブート用キャッシュ装置
TWM410935U (en) Cloud pseudo service initiator for universal series bus
US11082534B2 (en) Methods and devices for testing applications
EP3370396A1 (en) Methods and devices for testing applications
KR101951913B1 (ko) 웹 가상화 시스템 및 서비스 방법
US20230251842A1 (en) Application installation on a remote desktop using local installation files
JP6942042B2 (ja) 仮想サーバリモート接続システムおよび仮想サーバリモート接続方法
TWI505188B (zh) 用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統
TW201519606A (zh) 網路服務方法以及伺服器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140901

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20140901

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: 20141007

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141105

R150 Certificate of patent or registration of utility model

Ref document number: 5646650

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250