【文献】
小松健作,HTML5で理解する次世代Web(第5回)負荷軽減と高速通信を両立「WebSocket」でHTTPを越える,日経コンピュータ,日本,日経BP社,2011年 3月 3日,第777号,p.118-121
【文献】
岡田英彦,旭敏之,ユーザインタフェース変換に基づくPC遠隔操作システムの開発,ヒューマンインタフェース学会誌,日本,ヒューマンインタフェース学会,2002年11月25日,第4巻,第4号,p.235-244
【文献】
鈴村幸太郎,製品比較 EJB性能評価ツール 機能とユーザビリティの両面からJ2EE対応3製品を徹底評価,月刊ソリューションIT,日本,株式会社リックテレコム,2001年12月 1日,第13巻,第12号,p.72-79
(58)【調査した分野】(Int.Cl.,DB名)
複数のクライアントからネットワークを介して複数の携帯端末にアクセスするためのサーバであって、前記複数のクライアントは前記ネットワークを介して前記サーバに接続され、前記サーバは前記複数の携帯端末に接続され、前記複数の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、
1以上のHTMLファイルを前記複数のクライアントに送る第1の手段であって、前記1以上のHTMLファイルは、前記複数のクライアントが解釈したときに、該複数のクライアントに、前記複数の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された前記携帯端末を示す端末IDを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた前記入力を携帯端末に対するコマンドに変換させる文字列と、携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、第1の手段と、
複数の第2の手段であって、該複数の第2の手段の各々は、前記複数の携帯端末の各々に関連し、該複数の第2の手段の各々は、前記指示を関連した携帯端末に送り、携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、複数の第2の手段と、
新たな携帯端末が前記サーバに接続されたときに、該新たな携帯端末に関連した新たな第2の手段を前記サーバに追加し、それによって、各々が前記複数の携帯端末の各々に関連した前記複数の第2の手段を、前記複数の携帯端末の各々が前記サーバに接続されている間前記サーバが含むようにする第3の手段であって、更に、前記複数のクライアントから受けた前記端末IDと、該端末IDを送ったクライアントとの対応関係を記憶し、前記複数の携帯端末のうちの1つから該サーバが前記スクリーンショットを受けたときに、記憶した前記対応関係に基づき、該スクリーンショットを前記複数のクライアントのうちの特定のクライアントであって、該スクリーンショットを送った携帯端末を表す前記端末IDを送ったクライアントに送り、携帯端末に対する前記コマンドを該サーバが受けたときに、記憶した前記対応関係に基づき、該コマンドを前記複数の第2の手段のうちの特定の第2の手段であって、該コマンドを送ったクライアントから送られた前記端末IDが示す携帯端末に関連した第2の手段に送る第3の手段と
を備え、
前記サーバは、該サーバが前記端末IDを受けたときに、受けた前記端末IDが示す携帯端末にプログラムを送る第5の手段を更に備え、
前記1以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末IDが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、サーバ。
クライアントからネットワークを介して1以上の携帯端末にアクセスするためのサーバであって、前記クライアントは前記ネットワークを介して前記サーバに接続され、前記サーバは前記1以上の携帯端末に接続され、前記1以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、
1以上のHTMLファイルを前記クライアントに送る第1の手段であって、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、前記1以上の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された前記携帯端末を示す端末IDを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、前記1以上の携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた前記入力を前記1以上の携帯端末に対するコマンドに変換させる文字列と、前記1以上の携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、第1の手段と、
1以上の第2の手段であって、該1以上の第2の手段の各々は、前記1以上の携帯端末の各々に関連し、該1以上の第2の手段の各々は、前記指示を関連した携帯端末に送り、前記1以上の携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、1以上の第2の手段と、
前記サーバが受けた前記端末IDによって示された携帯端末から該サーバが前記スクリーンショットを受けたときに、該スクリーンショットを前記クライアントに送り、前記1以上の携帯端末に対する前記コマンドを該サーバが受けたときに、該コマンドを前記1以上の第2の手段のうちの該サーバが受けた前記端末IDによって示された携帯端末に関連した第2の手段に送る第3の手段と
を備え、前記サーバは、該サーバが前記端末IDを受けたときに、受けた前記端末IDが示す携帯端末にプログラムを送る第5の手段を更に備え、
前記1以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末IDが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、サーバ。
前記端末ID、前記スクリーンショット及び前記コマンドは、値の集合として表現され、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて前記サーバとの双方向の接続であって、該接続を介して送受できる値が制限された接続を確立させる文字列を更に含み、前記サーバは、前記プロトコルを解釈し、前記接続を介して、前記端末ID、前記スクリーンショット及び前記コマンドは前記クライアントと前記サーバとの間で送受され、
前記サーバは、前記接続を介して送ることが可能な値の集合として表現されるように、該サーバが受けた前記スクリーンショットをある符号化方式により変換する第4の手段を更に備えた、請求項1又は2に記載のサーバ。
前記1以上のHTMLファイルは、テスト・コードの入力を受ける第3の領域を表示させる文字列と、該テスト・コードを解釈させる文字列とを更に含み、該テスト・コードは、前記クライアントが解釈したときに、該クライアントに、選択した携帯端末に関するある状態がある条件を満たしているかを判定させるテスト・コードを含み、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、前記判定の結果を示すための第4の領域を表示させる文字列を更に含む、請求項1〜4のうちの何れか一項に記載のサーバ。
複数のクライアントからネットワークを介して複数の携帯端末にアクセスするための方法であって、前記複数のクライアントは前記ネットワークを介してサーバに接続され、前記サーバは前記複数の携帯端末に接続され、前記複数の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、第1の手段と、複数の第2の手段と、第3の手段とを備え、前記複数の第2の手段の各々は、前記複数の携帯端末の各々に関連し、前記方法は、
前記第1の手段が、1以上のHTMLファイルを前記複数のクライアントに送るステップであって、前記1以上のHTMLファイルは、前記複数のクライアントが解釈したときに、該複数のクライアントに、前記複数の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された前記携帯端末を示す端末IDを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた前記入力を携帯端末に対するコマンドに変換させる文字列と、携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、ステップと、
前記第3の手段が、新たな携帯端末が前記サーバに接続されたときに、該新たな携帯端末に関連した新たな第2の手段を前記サーバに追加し、それによって、各々が前記複数の携帯端末の各々に関連した前記複数の第2の手段を、前記複数の携帯端末の各々が前記サーバに接続されている間前記サーバが含むようにするステップと、
前記第3の手段が、前記複数のクライアントから受けた前記端末IDと、該端末IDを送ったクライアントとの対応関係を記憶するステップと、
前記第3の手段が、携帯端末に対する前記コマンドを前記サーバが受けたときに、記憶した前記対応関係に基づき、該コマンドを前記複数の第2の手段のうちの特定の第2の手段であって、該コマンドを送ったクライアントから送られた前記端末IDが示す携帯端末に関連した第2の手段に送るステップと、
前記複数の第2の手段のうちの1つが、携帯端末に対する前記コマンドを受けたときに該コマンドを関連した携帯端末に送るステップと、
前記第2の手段のうちの1つが、前記指示を関連した前記携帯端末に送るステップと、
前記第3の手段が、前記複数の携帯端末のうちの1つから該サーバが前記スクリーンショットを受けたときに、記憶した前記対応関係に基づき、該スクリーンショットを前記複数のクライアントのうちの特定のクライアントであって、該スクリーンショットを送った携帯端末を表す前記端末IDを送ったクライアントに送るステップと
を含み、
前記サーバは第5の手段を更に備え、前記方法は、前記第5の手段が、該サーバが前記端末IDを受けたときに、受けた前記端末IDが示す携帯端末にプログラムを送るステップを更に含み、
前記1以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末IDが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、方法。
クライアントからネットワークを介して1以上の携帯端末にアクセスするための方法であって、前記クライアントは前記ネットワークを介してサーバに接続され、前記サーバは前記1以上の携帯端末に接続され、前記1以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、第1の手段と、1以上の第2の手段と、第3の手段とを備え、前記1以上の第2の手段の各々は、前記1以上の携帯端末の各々に関連し、前記方法は、
前記第1の手段が、1以上のHTMLファイルを前記クライアントに送るステップであって、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、前記1以上の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された前記携帯端末を示す端末IDを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、前記1以上の携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた前記入力を前記1以上の携帯端末に対するコマンドに変換させる文字列と、前記1以上の携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、ステップと、
前記第3の手段が、前記1以上の携帯端末に対する前記コマンドを前記サーバが受けたときに、該コマンドを前記1以上の第2の手段のうちの該サーバが受けた前記端末IDによって示された携帯端末に関連した第2の手段に送るステップと、
前記第2の手段が、前記1以上の携帯端末に対する前記コマンドを受けたときに該コマンドを関連した携帯端末に送るステップと、
前記第2の手段が、前記指示を関連した前記携帯端末に送るステップと、
前記第3の手段が、前記サーバが受けた前記端末IDによって示された携帯端末から該サーバが前記スクリーンショットを受けたときに、該スクリーンショットを前記クライアントに送るステップと
を含み、前記サーバは第5の手段を更に備え、前記方法は、前記第5の手段が、該サーバが前記端末IDを受けたときに、受けた前記端末IDが示す携帯端末にプログラムを送るステップを更に含み、
前記1以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末IDが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、方法。
前記端末ID、前記スクリーンショット及び前記コマンドは、値の集合として表現され、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて前記サーバとの双方向の接続であって、該接続を介して送受できる値が制限された接続を確立させる文字列を更に含み、前記サーバは、前記プロトコルを解釈し、前記接続を介して、前記端末ID、前記スクリーンショット及び前記コマンドは前記クライアントと前記サーバとの間で送受され、
前記サーバは第4の手段を更に備え、前記方法は、前記第4の手段が、前記接続を介して送ることが可能な値の集合として表現されるように、該サーバが受けた前記スクリーンショットをある符号化方式により変換するステップを更に含む、請求項7又は8に記載の方法。
前記1以上のHTMLファイルは、テスト・コードの入力を受ける第3の領域を表示させる文字列と、該テスト・コードを解釈させる文字列とを更に含み、該テスト・コードは、前記クライアントが解釈したときに、該クライアントに、選択した携帯端末に関するある状態がある条件を満たしているかを判定させるテスト・コードを含み、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、前記判定の結果を示すための第4の領域を表示させる文字列を更に含む、請求項7〜10のうちの何れかに記載の方法。
コンピュータを、複数のクライアントからネットワークを介して複数の携帯端末にアクセスするためのサーバとして機能させるプログラムであって、前記複数のクライアントは前記ネットワークを介して前記コンピュータに接続され、前記コンピュータは前記複数の携帯端末に接続され、前記複数の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記コンピュータに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記プログラムは、前記コンピュータを、
1以上のHTMLファイルを前記クライアントに送る第1の手段であって、前記1以上のHTMLファイルは、前記複数のクライアントが解釈したときに、該複数のクライアントに、前記複数の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された前記携帯端末を示す端末IDを前記コンピュータに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた前記入力を携帯端末に対するコマンドに変換させる文字列と、携帯端末に対する前記コマンドを前記コンピュータに送ることをさせる文字列とを含む、第1の手段と、
複数の第2の手段であって、該複数の第2の手段の各々は、前記複数の携帯端末の各々に関連し、該複数の第2の手段の各々は、前記指示を関連した携帯端末に送り、携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、複数の第2の手段と
として機能させ、更に、
新たな携帯端末が前記コンピュータに接続されたときに、該新たな携帯端末に関連した新たな第2の手段として前記コンピュータが更に機能するようにし、それによって、各々が前記複数の携帯端末の各々に関連した前記複数の第2の手段として、前記複数の携帯端末の各々が前記コンピュータに接続されている間前記コンピュータが機能するようにする第3の手段であって、更に、前記複数のクライアントから受けた前記端末IDと、該端末IDを送ったクライアントとの対応関係を記憶し、前記複数の携帯端末のうちの1つから該コンピュータが前記スクリーンショットを受けたときに、記憶した前記対応関係に基づき、該スクリーンショットを前記複数のクライアントのうちの特定のクライアントであって、該スクリーンショットを送った携帯端末を表す前記端末IDを送ったクライアントに送り、携帯端末に対する前記コマンドを該コンピュータが受けたときに、記憶した前記対応関係に基づき、該コマンドを前記複数の第2の手段のうちの特定の第2の手段であって、該コマンドを送ったクライアントから送られた前記端末IDが示す携帯端末に関連した第2の手段に送る第3の手段と
として機能させ、
前記プログラムは、前記コンピュータを、該コンピュータが前記端末IDを受けたときに、受けた前記端末IDが示す携帯端末にプログラムを送る第5の手段として更に機能させ、
前記1以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末IDが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、プログラム。
コンピュータを、クライアントからネットワークを介して1以上の携帯端末にアクセスするためのサーバとして機能させるプログラムであって、前記クライアントは前記ネットワークを介して前記コンピュータに接続され、前記コンピュータは前記1以上の携帯端末に接続され、前記1以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記コンピュータに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記プログラムは、前記コンピュータを、
1以上のHTMLファイルを前記クライアントに送る第1の手段であって、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、前記1以上の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された前記携帯端末を示す端末IDを前記コンピュータに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、前記1以上の携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた前記入力を前記1以上の携帯端末に対するコマンドに変換させる文字列と、前記1以上の携帯端末に対する前記コマンドを前記コンピュータに送ることをさせる文字列とを含む、第1の手段と、
1以上の第2の手段であって、該1以上の第2の手段の各々は、前記1以上の携帯端末の各々に関連し、該1以上の第2の手段の各々は、前記指示を関連した携帯端末に送り、前記1以上の携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、1以上の第2の手段と、
前記コンピュータが受けた前記端末IDによって示された携帯端末から該コンピュータが前記スクリーンショットを受けたときに、該スクリーンショットを前記クライアントに送り、前記1以上の携帯端末に対する前記コマンドを該コンピュータが受けたときに、該コマンドを前記1以上の第2の手段のうちの該コンピュータが受けた前記端末IDによって示された携帯端末に関連した第2の手段に送る第3の手段と
として機能させ、前記プログラムは、前記コンピュータを、該コンピュータが前記端末IDを受けたときに、受けた前記端末IDが示す携帯端末にプログラムを送る第5の手段として更に機能させ、
前記1以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末IDが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、プログラム。
前記端末ID、前記スクリーンショット及び前記コマンドは、値の集合として表現され、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて前記コンピュータとの双方向の接続であって、該接続を介して送受できる値が制限された接続を確立させる文字列を更に含み、前記プログラムは、前記コンピュータに前記プロトコルを解釈させ、前記接続を介して、前記端末ID、前記スクリーンショット及び前記コマンドは前記クライアントと前記コンピュータとの間で送受され、
前記プログラムは、前記コンピュータを、前記接続を介して送ることが可能な値の集合として表現されるように、該コンピュータが受けた前記スクリーンショットをある符号化方式により変換する第4の手段として更に機能させる、請求項12又は13に記載のプログラム。
前記1以上のHTMLファイルは、テスト・コードの入力を受ける第3の領域を表示させる文字列と、該テスト・コードを解釈させる文字列とを更に含み、該テスト・コードは、前記クライアントが解釈したときに、該クライアントに、選択した携帯端末に関するある状態がある条件を満たしているかを判定させるテスト・コードを含み、前記1以上のHTMLファイルは、前記クライアントが解釈したときに、該クライアントに、前記判定の結果を示すための第4の領域を表示させる文字列を更に含む、請求項12〜15のうちの何れか一項に記載のプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、従来のサービスには制限があった。
【0008】
例えば、Keynote DeviceAnywhereというサービスは、遠隔の携帯端末にアクセスするために、開発者の端末に専用のソフトウェアをインストールしなければならないという制限があった。このサービスは、専用のソフトウェアの存在しない処理系の端末からは利用できない。
【0009】
また、例えば、Mobile Cloudというサービスは、遠隔の携帯端末にアクセスするために、Webブラウザを用いるサービスである。しかし、このサービスを利用するためには、Flashプラグインを利用できるWebブラウザでなければならないという制限があった。このサービスは、当然、Flashプラグインを利用できないWebブラウザからは利用できない。
【0010】
そのために、専用のソフトウェアをインストールすることなく、また、Flashプラグインを利用することなく、より多くのソフトウェア開発者が遠隔の携帯端末にアクセスできるサービスの登場が望まれていた。
【課題を解決するための手段】
【0011】
本願発明の一実施形態は、クライアントからネットワークを介して1以上の携帯端末にアクセスするためのサーバである。上記クライアントは上記ネットワークを介して上記サーバに接続されている。上記サーバは上記1以上の携帯端末に接続されている。上記1以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを上記サーバに送るように構成されている。上記スクリーンショットは、上記表示手段に表示された情報を表すものである。
【0012】
上記サーバは、1以上のHTMLファイルを上記クライアントに送る第1の手段を備えている。上記1以上のHTMLファイルは、上記クライアントが解釈したときに、該クライアントに、上記1以上の携帯端末のうちの1つを選択するための第1の領域を表示させる文字列と、選択された上記携帯端末を示す端末IDを上記サーバに送ることをさせる文字列と、上記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、上記1以上の携帯端末への入力を受けるための第2の領域を表示させる文字列と、受けた上記入力を上記1以上の携帯端末に対するコマンドに変換させる文字列と、上記1以上の携帯端末に対する上記コマンドを上記サーバに送ることをさせる文字列とを含んでいる。
【0013】
また、上記サーバは、1以上の第2の手段を備えている。該1以上の第2の手段の各々は、上記1以上の携帯端末の各々に関連し、該1以上の第2の手段の各々は、上記指示を関連した携帯端末に送り、上記1以上の携帯端末に対する上記コマンドを受けたときに該コマンドを関連した上記携帯端末に送るように構成されている。
【0014】
更に、上記サーバは、該サーバが受けた上記端末IDによって示された携帯端末から該サーバが上記スクリーンショットを受けたときに、該スクリーンショットを上記クライアントに送り、上記1以上の携帯端末に対する上記コマンドを該サーバが受けたときに、該コマンドを上記1以上の第2の手段のうちの該サーバが受けた上記端末IDによって示された携帯端末に関連した第2の手段に送る第3の手段を備えている。
【0015】
上記1以上のHTMLファイルは、上記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて上記コンピュータとの双方向の接続を確立させる文字列を更に含むことができる。この場合、上記サーバは、上記プロトコルを解釈するように構成される。上記接続を介して、上記端末ID、上記スクリーンショット及び上記コマンドは上記クライアントと上記サーバとの間で送受することができる。
【0016】
また、上記サーバは、該サーバが受けた上記スクリーンショットをある符号化方式により変換する第4の手段を更に備えることができる。上記符号化方式は、該符号化方式により変換された上記スクリーンショットを上記接続を介して送ることが可能であるようなものである。
【0017】
上記サーバは、該サーバが上記端末IDを受けたときに、受けた上記端末IDが示す携帯端末にプログラムを送る第5の手段を更に備えることができる。
【0018】
また、上記1以上の携帯端末の各々は、上記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備えることができる。
【0019】
受けた上記端末IDが示す上記携帯端末に送られた上記プログラムは、該携帯端末に、上記記憶手段に記憶された上記データを、上記クライアントが表示可能な形式のデータに変換させることができる。この場合、上記スクリーンショットは、上記クライアントが表示可能な形式の上記データを含むことができる。
【0020】
上記スクリーンショットは上記表示手段の画面の画像を含むことができる。上記1以上のHTMLファイルが含む上記の文字列はHTML5に準拠したHTMLタグ及びJavaScript(登録商標)のうちの一方又は双方を含み、上記HTMLタグはJavaScript(登録商標)を含むファイルへのリンクのためのタグを含むことができる。上記プロトコルはWebSocketプロトコルを含み、上記符号化方式はBase64を含み、上記形式はPortable Network Graphics(PNG)形式及びJoint Photographic Experts Group(JPEG)形式のうちの一方又は双方を含むことができる。
【0021】
本願発明の別の実施形態は、上記サーバと、上記1以上の携帯端末とを含むシステムである。
【0022】
本願発明のまた別の実施形態は、クライアントからネットワークを介して1以上の携帯端末にアクセスするための方法である。
【0023】
上記方法は、上記第1の手段が、上記1以上のHTMLファイルを上記クライアントに送るステップと、上記第3の手段が、上記1以上の携帯端末に対する上記コマンドを上記サーバが受けたときに、該コマンドを上記1以上の第2の手段のうちの該サーバが受けた上記端末IDによって示された携帯端末に関連した第2の手段に送るステップと、上記第2の手段が、上記1以上の携帯端末に対する上記コマンドを受けたときに該コマンドを関連した上記携帯端末に送るステップと、上記第2の手段が、上記指示を関連した携帯端末に送るステップと、上記第3の手段が、上記サーバが受けた上記端末IDによって示された携帯端末から該サーバが上記スクリーンショットを受けたときに、該スクリーンショットを上記クライアントに送るステップとを含んでいる。
【0024】
上記方法は、上記第4の手段が、該サーバが受けた上記スクリーンショットをある符号化方式により変換するステップを更に含むことができる。
【0025】
上記方法は、上記第5の手段が、該サーバが上記端末IDを受けたときに、受けた上記端末IDが示す携帯端末にプログラムを送るステップを更に含むことができる。
【0026】
本願発明の更に別の実施形態は、コンピュータを、クライアントからネットワークを介して1以上の携帯端末にアクセスするためのサーバとして機能させるプログラムである。このプログラムは、コンピュータを上記の手段のうちの1以上として機能させるものである。
【発明の効果】
【0027】
本願発明の一実施形態によると、専用のソフトウェアをインストールすることなく、また、Flashプラグインを利用することなく、ソフトウェア開発者が遠隔の携帯端末にアクセスできるサービスが提供できる。
【0028】
また、本願発明の一実施形態によると、クライアントとサーバとの間で送受できるデータが制限されている場合でも、上記サービスを提供することができる。
【0029】
更に、本願発明の一実施形態によると、上記サービスを提供する際の負荷を分散することができ、また、携帯端末にスクリーンショットを取得する機能が存在しない場合でも、上記サービスを提供することができる。
【0030】
ところで、最近、HTML5という技術が脚光を浴びている。この技術は、上述したFlashプラグインを置き換えることが期待された技術である。また、HTML5に関連した技術として、WebSocketという技術が存在し、その標準化の作業が進められている。WebSocketは、従来不可能であった、クライアントとサーバとの間でのHTTPをベースとした完全な双方向通信を実現する技術である。これらHTML5やWebSocketに対応したWebブラウザは、広く普及することが見込まれている。
【0031】
従って、本願発明の一実施形態によると、より多くのクライアントに対して、上記サービスを提供することができる。
【発明を実施するための形態】
【0033】
以下、本明細書で使用する一般的な用語を説明する。
【0034】
「コンピュータ」とは、ハードウェア資源である演算手段と、制御手段と、記憶手段と、入力手段と、出力手段とを含む装置のことである。演算手段及び制御手段はCPU及びMPU等を含む。記憶手段は、メモリ、ハードディスク及びSSD等を含む。入力手段は、マウス、キーボード、タッチパネル及びネットワーク・インターフェース等を含む。出力手段は、ネットワーク・インターフェース、ディスプレイ、プリンタ及びスピーカ等を含む。FPGAやマイクロコンピュータ等を使用して、演算手段と制御手段と記憶手段と入力手段と出力手段とのうちの2つ以上を物理的に1つのものとすることもできる。これらハードウェア資源である演算手段、制御手段、記憶手段、入力手段及び出力手段のうちの1以上と、ソフトウェアである任意のプログラムとが協働して、以下で説明する各「手段」を実現し、各「処理」を実行することができることは、当業者には明らかであろう。
【0035】
「サーバ」とは、あるサービスを提供するためのコンピュータのことである。以下で説明する一実施形態における1つのサービスは、このサービスのユーザに、遠隔の携帯端末へのアクセスを提供するサービスである。別実施形態において異なるサービスを提供できることは言うまでもない。
【0036】
「クライアント」とは、あるサービスを受けるためのコンピュータのことである。
【0037】
「携帯端末」とは、携帯可能なコンピュータのことであり、Androidプラットフォームの携帯電話やタブレットやノートパソコン、iOSプラットフォームのiPhoneやiPod TouchやiPad、及び、Windows(登録商標) MobileプラットフォームのWindows(登録商標) Phone等を含む。以下で説明する一実施形態において、「携帯端末」はAndoroidプラットフォームの携帯電話であると仮定している。
【0038】
「HTMLファイル」とは、ハイパーテキスト・マークアップ・ランゲージで記述された文字列を含むファイルのことである。この文字列は、コンピュータに対する命令として機能し、HTMLタグ及びJavaScript(登録商標)のうちの一方又は双方を含むことができる。HTMLタグは、JavaScript(登録商標)を含むファイルへのリンクのためのタグを含むことができる。HTMLタグは、HTML5に準拠したタグであることができる。
【0039】
以下、本願発明の一実施形態を説明する。
【0040】
図1は、本願発明の一実施形態を示すブロック図である。
【0041】
サーバ100は、ユーザが遠隔の携帯端末にアクセスするために、該ユーザのクライアント120と携帯端末130との間のやり取りを中継する。この図においてサーバ100は物理的に1つのものとして示されているが、このサーバは複数のコンピュータから構成されてもよい。
【0042】
サーバ100には、ネットワーク110を介してクライアント120が接続されている。この実施形態において、クライアント120上ではSafari等のWebブラウザが動作しており、それにより、このクライアントはHTMLファイルが含む文字列を解釈可能である。別実施形態においては、任意の、HTMLファイルが含む文字列を解釈可能なクライアント120を使用することができる。この図においては1つのクライアント120が示されているが、サーバ100には複数のクライアントを接続することができる。
【0043】
また、サーバ100には、3つの携帯端末130a〜cが接続されている。携帯端末130a〜cは、情報を表示するための表示手段131a〜c、例えば、液晶ディスプレイを備えている。これら携帯端末は、指示を受けたときにスクリーンショットをサーバ100に送るように構成されている。「スクリーンショット」は、携帯端末130が備える上記表示手段131に表示された情報を表し、例えば、液晶ディスプレイに表示された画面の画像である。また、携帯端末130a〜cは、表示手段131a〜cに表示された情報に対応したデータが記憶された記憶手段132a〜cを含むことができる。記憶手段132a〜cに関しては後述する。この図においては3つの携帯端末130a〜cが示されているが、サーバ100には1以上の任意の数の携帯端末を接続することができる。
【0044】
サーバ100は、1以上のHTMLファイルをクライアント120に送るための手段101を備えている。この手段は、例えば、サーバ100上で動作するhttpデーモンによって実現することができる。
【0045】
上記1以上のHTMLファイルは、クライアント120が解釈したときに、該クライアントに、
図3aに関して後述するように、携帯端末130のうちの1つを選択するための領域を表示させる文字列と、ユーザが携帯端末130の1つを選択したときに、選択された携帯端末を示す端末IDをサーバ100に送ることをさせる文字列とを含んでいる。
【0046】
また、上記1以上のHTMLファイルは、クライアント120が解釈したときに、該クライアントに、
図3bに関して後述するように、サーバ100を介して携帯端末130からスクリーンショットを受けたときにこのスクリーンショットを表示させる文字列を含んでいる。
【0047】
更に、上記1以上のHTMLファイルは、クライアント120が解釈したときに、該クライアントに、
図2c及び
図3bに関して後述するように、携帯端末への入力を受けるための領域を表示させる文字列と、受けた上記入力を携帯端末に対するコマンドに変換させる文字列と、携帯端末に対するコマンドをサーバ100に送ることをさせる文字列とを含んでいる。
【0048】
なお、上記1以上のHTMLファイルは、クライアント120が解釈したときに、
図2及び3に関して後述する処理の実行や画面の表示をさせる文字列を更に含むことができる。
【0049】
また、サーバ100は、各々が携帯端末130a〜cの各々に関連した手段102a〜cを備えている。この図においては3つの手段102a〜cが示されているが、サーバ100に接続された携帯端末の数に応じて、手段102の数も増減することは言うまでもない。手段102は、関連した携帯端末130に、スクリーンショット取得指示を送る。また、手段102は、携帯端末に対する上記コマンドを受けたときに、関連する携帯端末130にそのコマンドを送る。なお、手段102は、サーバ100上で動作する端末制御デーモンによって実現することができる。ここで、サーバ100上では複数のデーモンを実行することができる。サーバ100上で新たにデーモンが実行されると、該デーモンに対応した手段102がサーバ100に新たに追加されることになる。
【0050】
更に、サーバ100は、該サーバが受けたデータを該サーバに備わった各手段やクライアント120に転送する手段103を備えている。手段103は、サーバ100がクライアント120から上記端末IDを受けた後、この端末IDが示す携帯端末からスクリーンショットを受けたときに、このスクリーンショットをクライアント120に送る。また、手段103は、サーバ100がクライアント120から上記端末IDを受けた後、クライアント120から携帯端末に対する上記コマンドを受けたときに、このコマンドを特定の携帯端末に送る。ここで、特定の携帯端末は、携帯端末130のうちの、受けた上記端末IDが示す携帯端末である。
【0051】
上記1以上のHTMLファイルは、クライアント120が解釈したときに、該クライアントに、あるプロトコルを用いてサーバ100との双方向の接続を確立させる文字列を更に含むことができる。この場合、サーバ100は上記プロトコルを解釈できるように構成される。ここで、あるプロトコルの一例は、WebSocketプロトコルである。このような接続が確立された場合、該接続を介して、上記の端末ID、スクリーンショット及び携帯端末に対するコマンド等のデータをクライアント120とサーバ100との間で送受することができる。
【0052】
場合によっては、該接続を介したデータの送受が制限されることがある。より詳細には、一般的なコンピュータにおいて、データは8bitの数値、即ち0〜255までの数値の集合として表現されるが、上記接続を介して、そのうちの一部の数値以外の数値を含むデータの送受ができないことがある。例えば、クライアント120によっては、動作しているWebブラウザの仕様上、WebSocketプロトコルの一部のみが実装されていることがあり、WebSocketプロトコルを用いた上記接続を介して、アルファベット及び数字等の人間が文章を作成する際に使用する文字を示す数値以外の数値を含むデータを送受できないことがある。一方、一般的に、携帯端末130のスクリーンショットは、上述の0〜255の全ての数値を含みうるデータである。
【0053】
従って、サーバ100は、携帯端末130から該サーバが受けたスクリーンショットを、ある符号化方式により変換する手段104を更に備えることができる。符号化方式は、上記接続を介して、該符号化方式により変換されたスクリーンショットを送ることが可能である任意の符号化方式であってよい。上述の一例においては、Base64によりスクリーンショットを変換することができる。この場合、手段102は、変換後のスクリーンショットをクライアント120に送ることになる。
【0054】
更に、サーバ100は、携帯端末130に特定の処理を行わせるために、携帯端末130にプログラムを送るための手段105を備えることができる。この実施形態において、手段105は、
図2aに関して後述する端末選択処理において、サーバ100が端末IDを受けたときに、この端末IDが示す携帯端末に上記プログラムを送る。別実施形態において、手段105は、他の適切なときに、例えば、
図2eに関して後述する携帯端末登録処理において、サーバ100に携帯端末が新たに接続されたときに、上記プログラムを接続された携帯端末に送ることができる。サーバ100上で行う一部の処理を携帯端末上で行うことによって、サーバ100の負荷を減らすことができ、負荷分散が実現できる。
【0055】
特に、手段105は、セキュリティ等の理由により、携帯端末130にスクリーンショットを取得する機能、例えば該携帯端末で動作しているOSのAPIが存在しない場合に有用である。このような場合にスクリーンショットを取得するためには、上述した記憶手段132、例えば、液晶ディスプレイの画面の画像に対応したデータが記憶されたフレームバッファを直接読み取る必要がある。しかし、フレームバッファに記憶されたデータは携帯端末に依存した形式のデータであり、一般的にはクライアント120が表示可能な形式のデータではない。この場合、記憶手段132に記憶されたデータの形式を、クライアント120が表示可能な形式のデータに変換することが必要となる。
【0056】
従って、上記プログラムは、携帯端末130に、記憶手段132に記憶されたデータをクライアント120が表示可能な形式のデータに変換させるプログラムであることができる。表示可能な形式はクライアントに依存するが、例えば、限定するわけではないが、Portable Network Graphic(PNG)形式、Joint Photographic Experts Group(JPEG)形式、Graphics Interchange Format(GIF)形式等であれば、多くのクライアントが表示可能であろう。
【0057】
なお、図示していないが、サーバ100は、上記HTMLファイルやプログラムを記憶する手段、及び、該サーバとは別の装置から上記HTMLファイルやプログラムを取得する手段のうちの一方又は双方を含むことができる。
【0058】
次に、本願発明の一実施形態における処理を説明する。但し、本願発明に関する分野で一般的な処理、例えば、ユーザがサーバ100にログインするための処理等については、省略する。
【0059】
図2aは、アクセスする携帯端末をユーザが選択するときに実行される端末選択処理を示すフロー図である。
【0060】
ユーザから携帯端末の選択を受けたクライアント120は、サーバ100に、選択された携帯端末を示す端末IDを送る(ステップ211)。ユーザがどのように携帯端末を選択するかについては、
図3aに関して後述する。
【0061】
サーバ100が端末IDを受けたときに、手段103は、該IDが示す携帯端末に関連した手段102に、後述のスクリーンショット取得処理の繰り返しを開始する指示を送る(ステップ212)。このとき、手段103は、ユーザが選択した携帯端末を、サーバ100に備わった各手段が後の処理において識別するために、任意の手法により、受けた端末IDそのもの、又は、該IDが示す携帯端末を示す何らかの情報を記憶することができる。また、複数のクライアントが同時に接続する場合には、手段103は、任意の手法により、複数のクライアントのうちの1つと、該クライアントから受けた端末IDとの対応関係を記憶することができる。
【0062】
指示を受けた手段102は、後述のスクリーンショット取得処理の繰り返しを開始する(ステップ213)。この処理は他の処理とは非同期に繰り返すことができるため、該手段が作成したスクリーンショット取得スレッドにより実行することができる。
【0063】
図2bは、スクリーンショット取得処理を示すフロー図である。
【0064】
手段102は、関連した携帯端末130に、上述のスクリーンショット取得指示を送る(ステップ221)。
【0065】
上記指示を受けた携帯端末130は、スクリーンショットを取得し、取得したスクリーンショットをサーバ100に送る(ステップ222)。
【0066】
サーバ100がスクリーンショットを受けたときに、手段103は、Base64によりスクリーンショットを変換する(ステップ223)。なお、このステップは、携帯端末130がステップ222において行ってもよい。また、このステップは、上述したように、サーバ100とクライアント120との間のデータの送受に制限があるために行うものである。別実施形態において、そのような制限がない場合には、省略することができる。
【0067】
次に、手段103は、クライアント120に、変換後のスクリーンショットを送る(ステップ224)。
【0068】
スクリーンショットを受けたクライアント120は、該スクリーンショットを表示する(ステップ225)。どのようにスクリーンショットが表示されるのかについては、
図3bに関して後述する。
【0069】
図2cは、ユーザが携帯端末にアクセスするときに実行される携帯端末アクセス処理を示すフロー図である。
【0070】
ユーザからの入力を受けたクライアント120は、該入力を携帯端末に対するコマンドに変換する(ステップ231)。どのように入力を受けるのかについては、
図3bに関して後述する。携帯端末に対するコマンドは、携帯端末上でフリック操作、タップ操作、ソフト・キー入力及びハード・キー入力等が行われたときに生ずるイベントを、該携帯端末上で発生させるコマンドを含む。
【0071】
次に、クライアント120は、サーバ100に、携帯端末に対するコマンドを送る(ステップ232)。
【0072】
サーバ100が携帯端末に対するコマンドを受けたときに、手段103は、先に受けた端末IDが示す携帯端末130に関連した手段102に、該コマンドを送る(ステップ233)。
【0073】
携帯端末のコマンドを受けた手段102は、関連した携帯端末130に、該コマンドを送る(ステップ234)。
【0074】
携帯端末のコマンドを受けた携帯端末130は、該コマンドに対応したイベントを発生する(ステップ235)。このイベントの発生により、携帯端末130上では何らかの挙動が発生することになる。この挙動は、携帯端末130が備える表示手段131、例えば液晶ディスプレイの画面上の変化を含む。この手段の画面上の変化が生じた場合には、非同期に実行されている上述のスクリーンショット取得処理によって、変化したスクリーンショットがクライアント120上には表示されることになる。
【0075】
図3cに関して後述するように、携帯端末130にはユーザが開発したソフトウェアを送りインストールすることができる。この携帯端末アクセス処理によって、そのようなソフトウェアを携帯端末130上で実行し、任意のイベントを発生させることにより、このソフトウェアの携帯端末130上での挙動をテストすることができる。
【0076】
また、
図3bに関して後述するように、携帯端末に対するコマンドは、ユーザが記述したテスト・コードに従ってサーバ100に送ることもできる。この場合、ステップ231は省略される。
【0077】
図2dは、アクセスする携帯端末の選択をユーザが解除するときに実行される端末選択解除処理を示すフロー図である。
【0078】
クライアント120が、サーバ100に、携帯端末の選択を解除する指示を送る(ステップ241)。
【0079】
サーバ100が指示を受けたときに、手段103は、サーバ100が先に受けた端末IDが示す携帯端末に関連した手段102に、スクリーンショット取得処理の繰り返しを終了する指示を送る(ステップ242)。
【0080】
指示を受けた手段102は、スクリーンショット取得処理の繰り返しを終了する(ステップ243)。スクリーンショット取得処理をスクリーンショット取得スレッドにより実行している場合には、該スレッドを削除する。
【0081】
図2eは、サーバ100に新たに携帯端末を接続したときに実行される携帯端末登録処理を示すフロー図である。
【0082】
サーバ100に新たな携帯端末が接続されたときに、手段103は、接続された携帯端末に関する情報を取得する(ステップ251)。この情報は、携帯端末がAndroidプラットフォームの携帯電話等である場合、adb等のAndroidプラットフォーム用のソフトウェア開発環境に含まれるツールにより取得することができる。また、この情報は、該携帯端末の端末ID、機種名、メーカー名及びインストールされているOSバージョン等を含む。また、このステップは、手段103が、任意の手法により、上記情報を記憶するステップを含むことができる。
【0083】
次に、手段103は、接続された携帯端末に関連した新たな手段102を追加する(ステップ252)。上述のように、手段102が端末制御デーモンにより実現される場合、サーバ100上で新たな端末制御デーモンを起動することにより、該サーバに新たな手段102が追加されることになる。
【0084】
次に、本願発明の一実施形態において、クライアント120に表示される画面を説明する。なお、以下で行われる「入力」や「選択」は、クライアント120に備わった図示しない任意の入力手段を使用して、ユーザが行うことができる。また、以下で使用する「領域」は、クライアント120に表示されるUIコンポーネントを含んでいる。「UIコンポーネント」とは、例えば、ラベル、テキスト・ボックス、ボタン、ラジオ・ボタン、チェック・ボックスのことである。
【0085】
図3aは、アクセスする携帯端末をユーザが選択するための画面300を示している。
【0086】
領域301a〜cの各々には、サーバ100に接続された携帯端末130a〜cの各々を示す情報が表示される。この情報は、携帯端末の機種名、メーカー名及びインストールされているOSバージョン等を含むことができる。この情報は、携帯端末の端末IDを含んでいてもよい。
【0087】
領域302a〜cの各々には、携帯端末130a〜cの各々の状態を示す情報が表示される。この情報は、例えば、接続されているが、何らかの理由により選択ができないときに表示される「準備中」の文字列、既に他のユーザに選択されてしまっているときに表示される「他ユーザ選択中」の文字列、及び、ユーザが選択可能であることを示す「選択可能」の文字列を含む。この図においては、携帯端末130bのみが選択可能であり、それ以外は「準備中」又は「他ユーザ選択中」であると仮定している。
【0088】
この図においては3つの領域の組301a〜c及び302a〜cが示されているが、サーバ100に接続された携帯端末の数に応じて、これら領域の組の数も増減することは言うまでもない。多数の携帯端末がサーバ100に接続された場合には、一度に全ての携帯端末に対応した領域301及び302は表示できないため、図示していないスクロールバーを使用して、画面300の表示を切り替えることになるであろう。
【0089】
領域303は、ユーザが携帯端末を選択するときに使用される。この図においては、携帯端末130bのみが選択可能であるため、該携帯端末に対応した領域303bのみが表示されている。ユーザがこの領域を選択することにより、対応した携帯端末が選択される。なお、上述したように、続いて、選択された携帯端末を示す端末IDがクライアント120からサーバ100に送られることになる。
【0090】
図3bは、ユーザが携帯端末にアクセスし、該携帯端末の挙動をテストするための画面310を示している。
【0091】
領域311には、サーバ100からクライアント120が受けた、携帯端末130のスクリーンショットが表示される。上述のように、スクリーンショット取得処理は非同期に繰り返し行うことができるため、クライアント120はこの領域を自動的に更新し、常に最新のスクリーンショットを表示し続けることができる。なお、領域311には、クライアント120がスクリーンショットを受ける前は、任意の画像を表示することができる。
【0092】
また、ユーザが領域311上でドラッグ及びクリック等の入力を行うと、この入力は、携帯端末上でフリック操作及びタップ操作等の入力が行われたときに生ずるイベントを該携帯端末上で発生させるコマンドに変換される。
【0093】
領域312は、携帯端末においてソフト・キー入力を行うために使用される。ユーザがこの領域に文字列を入力すると、この入力は、対応したソフト・キー入力が携帯端末130上で行われたときに生ずるイベントを該携帯端末上で発生させるコマンドに変換される。
【0094】
領域313は、携帯端末においてハード・キー入力を行うために使用される。この一実施形態において、ハード・キーは「BACK」、「HOME」及び「MENU」のキーであると想定しているため、この図においては3つの領域313a〜cが表示されている。しかし、領域313の数は、想定するハード・キーの数に依存して増減することは言うまでもない。ユーザが入力として領域313を選択すると、この入力は、選択された領域に対応したハード・キー入力が携帯端末130上で行われたときに生ずるイベントを該携帯端末上で発生させるコマンドに変換される。
【0095】
領域314は、テスト・コードを入力するために使用される。ユーザは、領域314において携帯端末に対するテスト・コードを入力することができる。
【0096】
テスト・コードは、1以上の上述したようなイベントを携帯端末上で発生させるためのコードを含む。
【0097】
また、テスト・コードは、携帯端末上で表示されるUIコンポーネントの状態がある条件を満たしているかどうか、例えば、テキスト・ボックスに入力された文字列が特定の文字列と一致するかどうかをチェックするためのコードを含む。なお、上記条件のことを、以下では「テスト・ケース」と呼ぶ。テスト・コードは、複数のテスト・ケースを含むことができる。
【0098】
更に、テスト・コードは、任意の時点で、領域311に表示されたスクリーンショットを保存するためのコードを含む。なお、スクリーンショットは、任意の手法で、クライアント120又はサーバ100に保存することができる。
【0099】
一実施形態においては、複数のUIテスト・ライブラリのうちの1つを用いて、ユーザは上記テスト・コードを記述することができる。UIテスト・ライブラリの例は、Monkey Runner、Native Driver及びAndroid Driverという名称のライブラリである。上記のコードは、UIテスト・ライブラリごとに異なるため、ユーザは、
図3fに関して後述するように、好みのUIテスト・ライブラリを選択することができる。
【0100】
領域315は、入力されたテスト・コードを実行するために使用される。ユーザが領域315を選択すると、領域314に入力されたテスト・コードに従って、クライアント120はサーバ100に携帯端末130に対するコマンドを送り、テスト・ケースがチェックされ、スクリーンショットが保存される。領域316は、入力されたテスト・コードを保存するために使用される。ユーザが領域316を選択すると、任意の手法により、クライアント120又はサーバ100に、入力されたテスト・コードが保存される。
【0101】
領域317には、テスト・コードの入力を補助するための情報が表示される。領域311、312及び313に対して何らかの入力がなされると、その入力に対応したコードが317に表示される。ユーザは、領域317に表示されたコードを利用して、領域314にテスト・コードを入力することができる。
【0102】
領域318は、領域311に表示されているスクリーンショットを保存するために使用される。領域318が選択されると、領域318を選択したときに領域311に表示されているスクリーンショットは、任意の手法により、クライアント120又はサーバ100に保存される。
【0103】
領域319は、領域317に表示されたコードに対するコメントを入力するために使用される。領域319に入力されたコメントは、領域317にコードとともに表示することができる。例えば、ユーザが領域319に文字列を入力しEnterキーを押下したときに、入力された文字列をコメントとして領域317に出力することができる。
【0104】
領域320及び321は、携帯端末を選択及び選択解除するために使用される。領域320が選択されると、
図3aに示される上記画面が表示される。領域321が選択されると、上記端末選択解除処理が実行される。
【0105】
図3cは、テストを管理するための画面330を示している。
【0106】
領域331は、携帯端末130にインストールするソフトウェアを指定するために使用される。例えば、クライアント120がMac OS X等のデスクトップ環境が動作したコンピュータである場合、クライアント120に備わった図示しない任意の入力手段を使用して、指定したいソフトウェアのファイルをユーザが領域331上にドラッグ&ドロップすることによって、そのソフトウェアをサーバ100にアップロードすることができる。
【0107】
領域332は、アップロードされたソフトウェアを携帯端末130にインストールするために使用される。この領域が選択されると、選択された携帯端末に、アップロードされたソフトウェアがインストールされる。領域333は、アップロードされたソフトウェアをサーバ100から削除するために使用される。
【0108】
領域334は、テスト・クラスを作成するためのボタンである。テスト・クラスとはテストの一単位のことであり、テスト・クラスごとに、入力されたテスト・コード、利用されるUIテスト・ライブラリ及び後述するテスト結果等が管理される。領域334が選択されると、
図3fに関して後述するテスト・クラス作成画面が表示される。
【0109】
領域335には、作成されたテスト・クラスに関する情報が表示される。この情報は、テスト・クラスの名前、利用されるUIテスト・ライブラリの名前、テスト・コードの最終更新日等を含む。また、領域335は、図示していないが、テスト・クラスの名前等を変更したり、作成されているテスト・クラスを削除したりするために使用される領域を含むことができる。なお、この図において、3つの領域335a〜cが表示されているが、その数は、作成されたテスト・クラスの数に依存することは言うまでもない。
【0110】
図3dは、テスト履歴を示す画面340を示している。
【0111】
領域341a〜cの各々は、1回のテストに対応し、1回のテストは、上記テスト・コードの1回の実行を含む。領域341には、テスト・コードの実行の結果が表示される。従って、この図は、テスト・コードの実行が今までに3回行われたことを示している。上述のように、テスト・コードは複数のテスト・ケースを含むことができ、これら領域には、これら複数のテスト・ケースの全てが満たされたときに「OK」の文字列を、そうでないときに「ERROR」の文字列を表示することができる。ユーザが領域341a〜cの各々を選択すると、選択された領域に対応する、
図3eに関して後述する結果の詳細を示す画面が表示されることになる。
【0112】
領域342a〜cの各々には、領域341a〜cの各々に対応するテスト・コードが実行された際に選択されていた携帯電話130を示す情報が表示される。
【0113】
領域343a〜cの各々には、領域341a〜cの各々に対応するテスト・コードの実行に関するログが表示される。このログは、テスト・コードの実行にかかった時間、満たされなかったテスト・ケースの数、満たされなかったテスト・ケースを示す情報及びテスト・コードの実行の完了日時等を含む。テスト・コードにおいては、テスト・ケースに名前を付けることができ、テスト・ケースを示す情報は、テスト・ケースの名前を含む。
【0114】
図3eは、1回のテスト・コード実行の結果の詳細を表示するための画面350を示している。
【0115】
領域351には、上述した、テスト・コードの実行の結果が表示される。
【0116】
領域352には、上述した、テスト・コードが実行された際に選択されていた携帯電話130を示す情報が表示される。
【0117】
領域353には、上述した、テスト・コードの実行に関するログが表示される。
【0118】
領域354には、実行したテスト・コードに含まれるテスト・ケースを示す情報が表示される。
【0119】
領域355には、テスト・コードの実行中に保存されたスクリーンショットが表示される。テスト・コードの実行中に複数のスクリーンショットが保存された場合には、複数のスクリーンショットが表示される。
【0120】
図3cに関して前述したように、ユーザは、任意のソフトウェアを選択した携帯端末にインストールすることができる。ソフトウェアのインストールし、任意のテスト・コードを実行した後に画面350を参照することにより、そのソフトウェアの携帯端末130上での挙動を、この画面を参照することによって確認することができる。
【0121】
図3fは、新たにテスト・クラスを作成するための画面360を示している。
【0122】
領域361は、テスト・クラスの名前を入力するために使用される。
【0123】
領域362a〜cの各々は、用意されたUIテスト・ライブラリの各々に関連し、このテスト・クラスにおいて利用するUIテスト・ライブラリを選択するために使用される。この図においては3つの領域362a〜cが示されているが、用意されたUIテスト・ライブラリの数に応じて、領域362の数も増減することは言うまでもない。
領域363は、テスト・クラスを作成するために使用される。この領域が選択されると、領域361に入力されたテスト・クラス名及び選択された領域362に対応したUIテスト・ライブラリとともにテスト・クラスが作成される。作成されたテスト・クラスは、
図3cに関して前述した画面に追加されることになる。
【0124】
以上、本願発明の一実施形態について説明してきたが、この実施形態は、本願発明の一例に過ぎないことに注意されたい。本願発明は、特許請求の範囲によってのみ特定され、上述の実施形態に対して様々な変形、修正、削除及び代替をした実施形態をも含んでいる。