(57)【特許請求の範囲】
【請求項１】
複数のクライアントからネットワークを介して複数の携帯端末にアクセスするためのサーバであって、前記複数のクライアントは前記ネットワークを介して前記サーバに接続され、前記サーバは前記複数の携帯端末に接続され、前記複数の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、
１以上のＨＴＭＬファイルを前記複数のクライアントに送る第１の手段であって、前記１以上のＨＴＭＬファイルは、前記複数のクライアントが解釈したときに、該複数のクライアントに、前記複数の携帯端末のうちの１つを選択するための第１の領域を表示させる文字列と、選択された前記携帯端末を示す端末ＩＤを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、携帯端末への入力を受けるための第２の領域を表示させる文字列と、受けた前記入力を携帯端末に対するコマンドに変換させる文字列と、携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、第１の手段と、
複数の第２の手段であって、該複数の第２の手段の各々は、前記複数の携帯端末の各々に関連し、該複数の第２の手段の各々は、前記指示を関連した携帯端末に送り、携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、複数の第２の手段と、
新たな携帯端末が前記サーバに接続されたときに、該新たな携帯端末に関連した新たな第２の手段を前記サーバに追加し、それによって、各々が前記複数の携帯端末の各々に関連した前記複数の第２の手段を、前記複数の携帯端末の各々が前記サーバに接続されている間前記サーバが含むようにする第３の手段であって、更に、前記複数のクライアントから受けた前記端末ＩＤと、該端末ＩＤを送ったクライアントとの対応関係を記憶し、前記複数の携帯端末のうちの１つから該サーバが前記スクリーンショットを受けたときに、記憶した前記対応関係に基づき、該スクリーンショットを前記複数のクライアントのうちの特定のクライアントであって、該スクリーンショットを送った携帯端末を表す前記端末ＩＤを送ったクライアントに送り、携帯端末に対する前記コマンドを該サーバが受けたときに、記憶した前記対応関係に基づき、該コマンドを前記複数の第２の手段のうちの特定の第２の手段であって、該コマンドを送ったクライアントから送られた前記端末ＩＤが示す携帯端末に関連した第２の手段に送る第３の手段と
を備え、
前記サーバは、該サーバが前記端末ＩＤを受けたときに、受けた前記端末ＩＤが示す携帯端末にプログラムを送る第５の手段を更に備え、
前記１以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末ＩＤが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、サーバ。
【請求項２】
クライアントからネットワークを介して１以上の携帯端末にアクセスするためのサーバであって、前記クライアントは前記ネットワークを介して前記サーバに接続され、前記サーバは前記１以上の携帯端末に接続され、前記１以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、
１以上のＨＴＭＬファイルを前記クライアントに送る第１の手段であって、前記１以上のＨＴＭＬファイルは、前記クライアントが解釈したときに、該クライアントに、前記１以上の携帯端末のうちの１つを選択するための第１の領域を表示させる文字列と、選択された前記携帯端末を示す端末ＩＤを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、前記１以上の携帯端末への入力を受けるための第２の領域を表示させる文字列と、受けた前記入力を前記１以上の携帯端末に対するコマンドに変換させる文字列と、前記１以上の携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、第１の手段と、
１以上の第２の手段であって、該１以上の第２の手段の各々は、前記１以上の携帯端末の各々に関連し、該１以上の第２の手段の各々は、前記指示を関連した携帯端末に送り、前記１以上の携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、１以上の第２の手段と、
前記サーバが受けた前記端末ＩＤによって示された携帯端末から該サーバが前記スクリーンショットを受けたときに、該スクリーンショットを前記クライアントに送り、前記１以上の携帯端末に対する前記コマンドを該サーバが受けたときに、該コマンドを前記１以上の第２の手段のうちの該サーバが受けた前記端末ＩＤによって示された携帯端末に関連した第２の手段に送る第３の手段と
を備え、前記サーバは、該サーバが前記端末ＩＤを受けたときに、受けた前記端末ＩＤが示す携帯端末にプログラムを送る第５の手段を更に備え、
前記１以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末ＩＤが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、サーバ。
【請求項３】
前記端末ＩＤ、前記スクリーンショット及び前記コマンドは、値の集合として表現され、前記１以上のＨＴＭＬファイルは、前記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて前記サーバとの双方向の接続であって、該接続を介して送受できる値が制限された接続を確立させる文字列を更に含み、前記サーバは、前記プロトコルを解釈し、前記接続を介して、前記端末ＩＤ、前記スクリーンショット及び前記コマンドは前記クライアントと前記サーバとの間で送受され、
前記サーバは、前記接続を介して送ることが可能な値の集合として表現されるように、該サーバが受けた前記スクリーンショットをある符号化方式により変換する第４の手段を更に備えた、請求項１又は２に記載のサーバ。
【請求項４】
前記スクリーンショットは前記表示手段の画面の画像を含み、
前記１以上のＨＴＭＬファイルが含む前記の文字列はＨＴＭＬ５に準拠したＨＴＭＬタグ及びＪａｖａＳｃｒｉｐｔのうちの一方又は双方を含み、前記ＨＴＭＬタグはＪａｖａＳｃｒｉｐｔを含むファイルへのリンクのためのタグを含み、
前記プロトコルはＷｅｂＳｏｃｋｅｔプロトコルを含み、
前記符号化方式はＢａｓｅ６４を含み、
前記形式はＰｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ（ＰＮＧ）形式及びＪｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧ）形式のうちの一方又は双方を含む、請求項３に記載のサーバ。
【請求項５】
前記１以上のＨＴＭＬファイルは、テスト・コードの入力を受ける第３の領域を表示させる文字列と、該テスト・コードを解釈させる文字列とを更に含み、該テスト・コードは、前記クライアントが解釈したときに、該クライアントに、選択した携帯端末に関するある状態がある条件を満たしているかを判定させるテスト・コードを含み、前記１以上のＨＴＭＬファイルは、前記クライアントが解釈したときに、該クライアントに、前記判定の結果を示すための第４の領域を表示させる文字列を更に含む、請求項１〜４のうちの何れか一項に記載のサーバ。
【請求項６】
請求項１〜５の何れか一項に記載のサーバと、１以上の携帯端末とを含むシステム。
【請求項７】
複数のクライアントからネットワークを介して複数の携帯端末にアクセスするための方法であって、前記複数のクライアントは前記ネットワークを介してサーバに接続され、前記サーバは前記複数の携帯端末に接続され、前記複数の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、第１の手段と、複数の第２の手段と、第３の手段とを備え、前記複数の第２の手段の各々は、前記複数の携帯端末の各々に関連し、前記方法は、
前記第１の手段が、１以上のＨＴＭＬファイルを前記複数のクライアントに送るステップであって、前記１以上のＨＴＭＬファイルは、前記複数のクライアントが解釈したときに、該複数のクライアントに、前記複数の携帯端末のうちの１つを選択するための第１の領域を表示させる文字列と、選択された前記携帯端末を示す端末ＩＤを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、携帯端末への入力を受けるための第２の領域を表示させる文字列と、受けた前記入力を携帯端末に対するコマンドに変換させる文字列と、携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、ステップと、
前記第３の手段が、新たな携帯端末が前記サーバに接続されたときに、該新たな携帯端末に関連した新たな第２の手段を前記サーバに追加し、それによって、各々が前記複数の携帯端末の各々に関連した前記複数の第２の手段を、前記複数の携帯端末の各々が前記サーバに接続されている間前記サーバが含むようにするステップと、
前記第３の手段が、前記複数のクライアントから受けた前記端末ＩＤと、該端末ＩＤを送ったクライアントとの対応関係を記憶するステップと、
前記第３の手段が、携帯端末に対する前記コマンドを前記サーバが受けたときに、記憶した前記対応関係に基づき、該コマンドを前記複数の第２の手段のうちの特定の第２の手段であって、該コマンドを送ったクライアントから送られた前記端末ＩＤが示す携帯端末に関連した第２の手段に送るステップと、
前記複数の第２の手段のうちの１つが、携帯端末に対する前記コマンドを受けたときに該コマンドを関連した携帯端末に送るステップと、
前記第２の手段のうちの１つが、前記指示を関連した前記携帯端末に送るステップと、
前記第３の手段が、前記複数の携帯端末のうちの１つから該サーバが前記スクリーンショットを受けたときに、記憶した前記対応関係に基づき、該スクリーンショットを前記複数のクライアントのうちの特定のクライアントであって、該スクリーンショットを送った携帯端末を表す前記端末ＩＤを送ったクライアントに送るステップと
を含み、
前記サーバは第５の手段を更に備え、前記方法は、前記第５の手段が、該サーバが前記端末ＩＤを受けたときに、受けた前記端末ＩＤが示す携帯端末にプログラムを送るステップを更に含み、
前記１以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末ＩＤが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、方法。
【請求項８】
クライアントからネットワークを介して１以上の携帯端末にアクセスするための方法であって、前記クライアントは前記ネットワークを介してサーバに接続され、前記サーバは前記１以上の携帯端末に接続され、前記１以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記サーバに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記サーバは、第１の手段と、１以上の第２の手段と、第３の手段とを備え、前記１以上の第２の手段の各々は、前記１以上の携帯端末の各々に関連し、前記方法は、
前記第１の手段が、１以上のＨＴＭＬファイルを前記クライアントに送るステップであって、前記１以上のＨＴＭＬファイルは、前記クライアントが解釈したときに、該クライアントに、前記１以上の携帯端末のうちの１つを選択するための第１の領域を表示させる文字列と、選択された前記携帯端末を示す端末ＩＤを前記サーバに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、前記１以上の携帯端末への入力を受けるための第２の領域を表示させる文字列と、受けた前記入力を前記１以上の携帯端末に対するコマンドに変換させる文字列と、前記１以上の携帯端末に対する前記コマンドを前記サーバに送ることをさせる文字列とを含む、ステップと、
前記第３の手段が、前記１以上の携帯端末に対する前記コマンドを前記サーバが受けたときに、該コマンドを前記１以上の第２の手段のうちの該サーバが受けた前記端末ＩＤによって示された携帯端末に関連した第２の手段に送るステップと、
前記第２の手段が、前記１以上の携帯端末に対する前記コマンドを受けたときに該コマンドを関連した携帯端末に送るステップと、
前記第２の手段が、前記指示を関連した前記携帯端末に送るステップと、
前記第３の手段が、前記サーバが受けた前記端末ＩＤによって示された携帯端末から該サーバが前記スクリーンショットを受けたときに、該スクリーンショットを前記クライアントに送るステップと
を含み、前記サーバは第５の手段を更に備え、前記方法は、前記第５の手段が、該サーバが前記端末ＩＤを受けたときに、受けた前記端末ＩＤが示す携帯端末にプログラムを送るステップを更に含み、
前記１以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末ＩＤが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、方法。
【請求項９】
前記端末ＩＤ、前記スクリーンショット及び前記コマンドは、値の集合として表現され、前記１以上のＨＴＭＬファイルは、前記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて前記サーバとの双方向の接続であって、該接続を介して送受できる値が制限された接続を確立させる文字列を更に含み、前記サーバは、前記プロトコルを解釈し、前記接続を介して、前記端末ＩＤ、前記スクリーンショット及び前記コマンドは前記クライアントと前記サーバとの間で送受され、
前記サーバは第４の手段を更に備え、前記方法は、前記第４の手段が、前記接続を介して送ることが可能な値の集合として表現されるように、該サーバが受けた前記スクリーンショットをある符号化方式により変換するステップを更に含む、請求項７又は８に記載の方法。
【請求項１０】
前記スクリーンショットは前記表示手段の画面の画像を含み、
前記１以上のＨＴＭＬファイルが含む前記の文字列はＨＴＭＬ５に準拠したＨＴＭＬタグ及びＪａｖａＳｃｒｉｐｔのうちの一方又は双方を含み、前記ＨＴＭＬタグはＪａｖａＳｃｒｉｐｔを含むファイルへのリンクのためのタグを含み、
前記プロトコルはＷｅｂＳｏｃｋｅｔプロトコルを含み、
前記符号化方式はＢａｓｅ６４を含み、
前記形式はＰｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ（ＰＮＧ）形式及びＪｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧ）形式のうちの一方又は双方を含む、請求項９に記載の方法。
【請求項１１】
前記１以上のＨＴＭＬファイルは、テスト・コードの入力を受ける第３の領域を表示させる文字列と、該テスト・コードを解釈させる文字列とを更に含み、該テスト・コードは、前記クライアントが解釈したときに、該クライアントに、選択した携帯端末に関するある状態がある条件を満たしているかを判定させるテスト・コードを含み、前記１以上のＨＴＭＬファイルは、前記クライアントが解釈したときに、該クライアントに、前記判定の結果を示すための第４の領域を表示させる文字列を更に含む、請求項７〜１０のうちの何れかに記載の方法。
【請求項１２】
コンピュータを、複数のクライアントからネットワークを介して複数の携帯端末にアクセスするためのサーバとして機能させるプログラムであって、前記複数のクライアントは前記ネットワークを介して前記コンピュータに接続され、前記コンピュータは前記複数の携帯端末に接続され、前記複数の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記コンピュータに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記プログラムは、前記コンピュータを、
１以上のＨＴＭＬファイルを前記クライアントに送る第１の手段であって、前記１以上のＨＴＭＬファイルは、前記複数のクライアントが解釈したときに、該複数のクライアントに、前記複数の携帯端末のうちの１つを選択するための第１の領域を表示させる文字列と、選択された前記携帯端末を示す端末ＩＤを前記コンピュータに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、携帯端末への入力を受けるための第２の領域を表示させる文字列と、受けた前記入力を携帯端末に対するコマンドに変換させる文字列と、携帯端末に対する前記コマンドを前記コンピュータに送ることをさせる文字列とを含む、第１の手段と、
複数の第２の手段であって、該複数の第２の手段の各々は、前記複数の携帯端末の各々に関連し、該複数の第２の手段の各々は、前記指示を関連した携帯端末に送り、携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、複数の第２の手段と
として機能させ、更に、
新たな携帯端末が前記コンピュータに接続されたときに、該新たな携帯端末に関連した新たな第２の手段として前記コンピュータが更に機能するようにし、それによって、各々が前記複数の携帯端末の各々に関連した前記複数の第２の手段として、前記複数の携帯端末の各々が前記コンピュータに接続されている間前記コンピュータが機能するようにする第３の手段であって、更に、前記複数のクライアントから受けた前記端末ＩＤと、該端末ＩＤを送ったクライアントとの対応関係を記憶し、前記複数の携帯端末のうちの１つから該コンピュータが前記スクリーンショットを受けたときに、記憶した前記対応関係に基づき、該スクリーンショットを前記複数のクライアントのうちの特定のクライアントであって、該スクリーンショットを送った携帯端末を表す前記端末ＩＤを送ったクライアントに送り、携帯端末に対する前記コマンドを該コンピュータが受けたときに、記憶した前記対応関係に基づき、該コマンドを前記複数の第２の手段のうちの特定の第２の手段であって、該コマンドを送ったクライアントから送られた前記端末ＩＤが示す携帯端末に関連した第２の手段に送る第３の手段と
として機能させ、
前記プログラムは、前記コンピュータを、該コンピュータが前記端末ＩＤを受けたときに、受けた前記端末ＩＤが示す携帯端末にプログラムを送る第５の手段として更に機能させ、
前記１以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末ＩＤが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、プログラム。
【請求項１３】
コンピュータを、クライアントからネットワークを介して１以上の携帯端末にアクセスするためのサーバとして機能させるプログラムであって、前記クライアントは前記ネットワークを介して前記コンピュータに接続され、前記コンピュータは前記１以上の携帯端末に接続され、前記１以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを前記コンピュータに送り、前記スクリーンショットは、前記表示手段に表示された情報を表し、前記プログラムは、前記コンピュータを、
１以上のＨＴＭＬファイルを前記クライアントに送る第１の手段であって、前記１以上のＨＴＭＬファイルは、前記クライアントが解釈したときに、該クライアントに、前記１以上の携帯端末のうちの１つを選択するための第１の領域を表示させる文字列と、選択された前記携帯端末を示す端末ＩＤを前記コンピュータに送ることをさせる文字列と、前記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、前記１以上の携帯端末への入力を受けるための第２の領域を表示させる文字列と、受けた前記入力を前記１以上の携帯端末に対するコマンドに変換させる文字列と、前記１以上の携帯端末に対する前記コマンドを前記コンピュータに送ることをさせる文字列とを含む、第１の手段と、
１以上の第２の手段であって、該１以上の第２の手段の各々は、前記１以上の携帯端末の各々に関連し、該１以上の第２の手段の各々は、前記指示を関連した携帯端末に送り、前記１以上の携帯端末に対する前記コマンドを受けたときに該コマンドを関連した前記携帯端末に送る、１以上の第２の手段と、
前記コンピュータが受けた前記端末ＩＤによって示された携帯端末から該コンピュータが前記スクリーンショットを受けたときに、該スクリーンショットを前記クライアントに送り、前記１以上の携帯端末に対する前記コマンドを該コンピュータが受けたときに、該コマンドを前記１以上の第２の手段のうちの該コンピュータが受けた前記端末ＩＤによって示された携帯端末に関連した第２の手段に送る第３の手段と
として機能させ、前記プログラムは、前記コンピュータを、該コンピュータが前記端末ＩＤを受けたときに、受けた前記端末ＩＤが示す携帯端末にプログラムを送る第５の手段として更に機能させ、
前記１以上の携帯端末の各々は、前記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備え、
受けた前記端末ＩＤが示す前記携帯端末に送られた前記プログラムは、該携帯端末に、前記記憶手段に記憶された前記データを、前記クライアントが表示可能な形式のデータに変換させ、前記スクリーンショットは、前記クライアントが表示可能な形式の前記データを含む、プログラム。
【請求項１４】
前記端末ＩＤ、前記スクリーンショット及び前記コマンドは、値の集合として表現され、前記１以上のＨＴＭＬファイルは、前記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて前記コンピュータとの双方向の接続であって、該接続を介して送受できる値が制限された接続を確立させる文字列を更に含み、前記プログラムは、前記コンピュータに前記プロトコルを解釈させ、前記接続を介して、前記端末ＩＤ、前記スクリーンショット及び前記コマンドは前記クライアントと前記コンピュータとの間で送受され、
前記プログラムは、前記コンピュータを、前記接続を介して送ることが可能な値の集合として表現されるように、該コンピュータが受けた前記スクリーンショットをある符号化方式により変換する第４の手段として更に機能させる、請求項１２又は１３に記載のプログラム。
【請求項１５】
前記スクリーンショットは前記表示手段の画面の画像を含み、
前記１以上のＨＴＭＬファイルが含む前記の文字列はＨＴＭＬ５に準拠したＨＴＭＬタグ及びＪａｖａＳｃｒｉｐｔのうちの一方又は双方を含み、前記ＨＴＭＬタグはＪａｖａＳｃｒｉｐｔを含むファイルへのリンクのためのタグを含み、
前記プロトコルはＷｅｂＳｏｃｋｅｔプロトコルを含み、
前記符号化方式はＢａｓｅ６４を含み、
前記形式はＰｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ（ＰＮＧ）形式及びＪｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧ）形式のうちの一方又は双方を含む、請求項１４に記載のプログラム。
【請求項１６】
前記１以上のＨＴＭＬファイルは、テスト・コードの入力を受ける第３の領域を表示させる文字列と、該テスト・コードを解釈させる文字列とを更に含み、該テスト・コードは、前記クライアントが解釈したときに、該クライアントに、選択した携帯端末に関するある状態がある条件を満たしているかを判定させるテスト・コードを含み、前記１以上のＨＴＭＬファイルは、前記クライアントが解釈したときに、該クライアントに、前記判定の結果を示すための第４の領域を表示させる文字列を更に含む、請求項１２〜１５のうちの何れか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、第１の装置からネットワークを介して第２の装置にアクセスすることに関する。より詳細には、本願発明は、携帯端末のソフトウェアを開発しているユーザのクライアントからネットワークを介して遠隔の携帯端末にアクセスして、該携帯端末にインストールされたソフトウェアの挙動をテストすることに関する。
【背景技術】
【０００２】
昨今、Ａｎｄｒｏｉｄをプラットフォームとした携帯電話等の携帯端末のソフトウェア開発が盛んに行われている。【０００３】
ソフトウェアの開発において重要なステップの一つに、対象となる端末上でそのソフトウェアが実際に動作したときの挙動をテストするステップがある。【０００４】
ソフトウェアの挙動というのは、たとえ同じプラットフォームに属する携帯端末であったとしても、携帯端末の機種やＯＳバージョンによって微妙に異なるため、ソフトウェアの挙動テストは、そのソフトウェアが対象とする全ての機種及びＯＳバージョンにおいて行われることが好ましい。【０００５】
しかし、携帯端末は製品のライフサイクルが比較的早く、また、開発しているメーカーも様々であるため、想定される全てのＯＳバージョンの全ての機種を用意するのは困難であった。【０００６】
そのために、ネットワークを介して遠隔の携帯端末にアクセスし、その携帯端末にてテストを行うことで、開発者自らがテスト用の携帯端末を用意することなく、挙動テストを行うためのサービスが登場した。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、従来のサービスには制限があった。【０００８】
例えば、Ｋｅｙｎｏｔｅ  ＤｅｖｉｃｅＡｎｙｗｈｅｒｅというサービスは、遠隔の携帯端末にアクセスするために、開発者の端末に専用のソフトウェアをインストールしなければならないという制限があった。このサービスは、専用のソフトウェアの存在しない処理系の端末からは利用できない。【０００９】
また、例えば、Ｍｏｂｉｌｅ  Ｃｌｏｕｄというサービスは、遠隔の携帯端末にアクセスするために、Ｗｅｂブラウザを用いるサービスである。しかし、このサービスを利用するためには、Ｆｌａｓｈプラグインを利用できるＷｅｂブラウザでなければならないという制限があった。このサービスは、当然、Ｆｌａｓｈプラグインを利用できないＷｅｂブラウザからは利用できない。【００１０】
そのために、専用のソフトウェアをインストールすることなく、また、Ｆｌａｓｈプラグインを利用することなく、より多くのソフトウェア開発者が遠隔の携帯端末にアクセスできるサービスの登場が望まれていた。
【課題を解決するための手段】
【００１１】
本願発明の一実施形態は、クライアントからネットワークを介して１以上の携帯端末にアクセスするためのサーバである。上記クライアントは上記ネットワークを介して上記サーバに接続されている。上記サーバは上記１以上の携帯端末に接続されている。上記１以上の携帯端末の各々は、情報を表示するための表示手段を備え、指示を受けたときにスクリーンショットを上記サーバに送るように構成されている。上記スクリーンショットは、上記表示手段に表示された情報を表すものである。【００１２】
上記サーバは、１以上のＨＴＭＬファイルを上記クライアントに送る第１の手段を備えている。上記１以上のＨＴＭＬファイルは、上記クライアントが解釈したときに、該クライアントに、上記１以上の携帯端末のうちの１つを選択するための第１の領域を表示させる文字列と、選択された上記携帯端末を示す端末ＩＤを上記サーバに送ることをさせる文字列と、上記スクリーンショットを受けたときに該スクリーンショットを表示させる文字列と、上記１以上の携帯端末への入力を受けるための第２の領域を表示させる文字列と、受けた上記入力を上記１以上の携帯端末に対するコマンドに変換させる文字列と、上記１以上の携帯端末に対する上記コマンドを上記サーバに送ることをさせる文字列とを含んでいる。【００１３】
また、上記サーバは、１以上の第２の手段を備えている。該１以上の第２の手段の各々は、上記１以上の携帯端末の各々に関連し、該１以上の第２の手段の各々は、上記指示を関連した携帯端末に送り、上記１以上の携帯端末に対する上記コマンドを受けたときに該コマンドを関連した上記携帯端末に送るように構成されている。【００１４】
更に、上記サーバは、該サーバが受けた上記端末ＩＤによって示された携帯端末から該サーバが上記スクリーンショットを受けたときに、該スクリーンショットを上記クライアントに送り、上記１以上の携帯端末に対する上記コマンドを該サーバが受けたときに、該コマンドを上記１以上の第２の手段のうちの該サーバが受けた上記端末ＩＤによって示された携帯端末に関連した第２の手段に送る第３の手段を備えている。【００１５】
上記１以上のＨＴＭＬファイルは、上記クライアントが解釈したときに、該クライアントに、あるプロトコルを用いて上記コンピュータとの双方向の接続を確立させる文字列を更に含むことができる。この場合、上記サーバは、上記プロトコルを解釈するように構成される。上記接続を介して、上記端末ＩＤ、上記スクリーンショット及び上記コマンドは上記クライアントと上記サーバとの間で送受することができる。【００１６】
また、上記サーバは、該サーバが受けた上記スクリーンショットをある符号化方式により変換する第４の手段を更に備えることができる。上記符号化方式は、該符号化方式により変換された上記スクリーンショットを上記接続を介して送ることが可能であるようなものである。【００１７】
上記サーバは、該サーバが上記端末ＩＤを受けたときに、受けた上記端末ＩＤが示す携帯端末にプログラムを送る第５の手段を更に備えることができる。【００１８】
また、上記１以上の携帯端末の各々は、上記表示手段に表示された情報に対応したデータが記憶された記憶手段を更に備えることができる。【００１９】
受けた上記端末ＩＤが示す上記携帯端末に送られた上記プログラムは、該携帯端末に、上記記憶手段に記憶された上記データを、上記クライアントが表示可能な形式のデータに変換させることができる。この場合、上記スクリーンショットは、上記クライアントが表示可能な形式の上記データを含むことができる。【００２０】
上記スクリーンショットは上記表示手段の画面の画像を含むことができる。上記１以上のＨＴＭＬファイルが含む上記の文字列はＨＴＭＬ５に準拠したＨＴＭＬタグ及びＪａｖａＳｃｒｉｐｔ（登録商標）のうちの一方又は双方を含み、上記ＨＴＭＬタグはＪａｖａＳｃｒｉｐｔ（登録商標）を含むファイルへのリンクのためのタグを含むことができる。上記プロトコルはＷｅｂＳｏｃｋｅｔプロトコルを含み、上記符号化方式はＢａｓｅ６４を含み、上記形式はＰｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ（ＰＮＧ）形式及びＪｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧ）形式のうちの一方又は双方を含むことができる。【００２１】
本願発明の別の実施形態は、上記サーバと、上記１以上の携帯端末とを含むシステムである。【００２２】
本願発明のまた別の実施形態は、クライアントからネットワークを介して１以上の携帯端末にアクセスするための方法である。【００２３】
上記方法は、上記第１の手段が、上記１以上のＨＴＭＬファイルを上記クライアントに送るステップと、上記第３の手段が、上記１以上の携帯端末に対する上記コマンドを上記サーバが受けたときに、該コマンドを上記１以上の第２の手段のうちの該サーバが受けた上記端末ＩＤによって示された携帯端末に関連した第２の手段に送るステップと、上記第２の手段が、上記１以上の携帯端末に対する上記コマンドを受けたときに該コマンドを関連した上記携帯端末に送るステップと、上記第２の手段が、上記指示を関連した携帯端末に送るステップと、上記第３の手段が、上記サーバが受けた上記端末ＩＤによって示された携帯端末から該サーバが上記スクリーンショットを受けたときに、該スクリーンショットを上記クライアントに送るステップとを含んでいる。【００２４】
上記方法は、上記第４の手段が、該サーバが受けた上記スクリーンショットをある符号化方式により変換するステップを更に含むことができる。【００２５】
上記方法は、上記第５の手段が、該サーバが上記端末ＩＤを受けたときに、受けた上記端末ＩＤが示す携帯端末にプログラムを送るステップを更に含むことができる。【００２６】
本願発明の更に別の実施形態は、コンピュータを、クライアントからネットワークを介して１以上の携帯端末にアクセスするためのサーバとして機能させるプログラムである。このプログラムは、コンピュータを上記の手段のうちの１以上として機能させるものである。
【発明の効果】
【００２７】
本願発明の一実施形態によると、専用のソフトウェアをインストールすることなく、また、Ｆｌａｓｈプラグインを利用することなく、ソフトウェア開発者が遠隔の携帯端末にアクセスできるサービスが提供できる。【００２８】
また、本願発明の一実施形態によると、クライアントとサーバとの間で送受できるデータが制限されている場合でも、上記サービスを提供することができる。【００２９】
更に、本願発明の一実施形態によると、上記サービスを提供する際の負荷を分散することができ、また、携帯端末にスクリーンショットを取得する機能が存在しない場合でも、上記サービスを提供することができる。【００３０】
ところで、最近、ＨＴＭＬ５という技術が脚光を浴びている。この技術は、上述したＦｌａｓｈプラグインを置き換えることが期待された技術である。また、ＨＴＭＬ５に関連した技術として、ＷｅｂＳｏｃｋｅｔという技術が存在し、その標準化の作業が進められている。ＷｅｂＳｏｃｋｅｔは、従来不可能であった、クライアントとサーバとの間でのＨＴＴＰをベースとした完全な双方向通信を実現する技術である。これらＨＴＭＬ５やＷｅｂＳｏｃｋｅｔに対応したＷｅｂブラウザは、広く普及することが見込まれている。【００３１】
従って、本願発明の一実施形態によると、より多くのクライアントに対して、上記サービスを提供することができる。
【図面の簡単な説明】
【００３２】
【図１】本願発明の一実施形態を示すブロック図である。
【図２ａ】端末選択処理を示すフロー図である。
【図２ｂ】スクリーンショット取得処理を示すフロー図である。
【図２ｃ】携帯端末アクセス処理を示すフロー図である。
【図２ｄ】端末選択解除処理を示すフロー図である。
【図２ｅ】携帯端末登録処理を示すフロー図である。
【図３ａ】アクセスする携帯端末をユーザが選択するための画面３００を示す図である。
【図３ｂ】ユーザが携帯端末にアクセスし、該携帯端末の挙動をテストするための画面３１０を示す図である。
【図３ｃ】テストを管理するための画面３３０を示す図である。
【図３ｄ】テスト履歴を示す画面３４０を示す図である。
【図３ｅ】１回のテスト・コード実行の結果の詳細を表示するための画面３５０を示す図である。
【図３ｆ】新たにテスト・クラスを作成するための画面３６０を示す図である。
【発明を実施するための形態】
【００３３】
以下、本明細書で使用する一般的な用語を説明する。
【００３４】
「コンピュータ」とは、ハードウェア資源である演算手段と、制御手段と、記憶手段と、入力手段と、出力手段とを含む装置のことである。演算手段及び制御手段はＣＰＵ及びＭＰＵ等を含む。記憶手段は、メモリ、ハードディスク及びＳＳＤ等を含む。入力手段は、マウス、キーボード、タッチパネル及びネットワーク・インターフェース等を含む。出力手段は、ネットワーク・インターフェース、ディスプレイ、プリンタ及びスピーカ等を含む。ＦＰＧＡやマイクロコンピュータ等を使用して、演算手段と制御手段と記憶手段と入力手段と出力手段とのうちの２つ以上を物理的に１つのものとすることもできる。これらハードウェア資源である演算手段、制御手段、記憶手段、入力手段及び出力手段のうちの１以上と、ソフトウェアである任意のプログラムとが協働して、以下で説明する各「手段」を実現し、各「処理」を実行することができることは、当業者には明らかであろう。
【００３５】
「サーバ」とは、あるサービスを提供するためのコンピュータのことである。以下で説明する一実施形態における１つのサービスは、このサービスのユーザに、遠隔の携帯端末へのアクセスを提供するサービスである。別実施形態において異なるサービスを提供できることは言うまでもない。
【００３６】
「クライアント」とは、あるサービスを受けるためのコンピュータのことである。
【００３７】
「携帯端末」とは、携帯可能なコンピュータのことであり、Ａｎｄｒｏｉｄプラットフォームの携帯電話やタブレットやノートパソコン、ｉＯＳプラットフォームのｉＰｈｏｎｅやｉＰｏｄ  ＴｏｕｃｈやｉＰａｄ、及び、Ｗｉｎｄｏｗｓ（登録商標）  ＭｏｂｉｌｅプラットフォームのＷｉｎｄｏｗｓ（登録商標） Ｐｈｏｎｅ等を含む。以下で説明する一実施形態において、「携帯端末」はＡｎｄｏｒｏｉｄプラットフォームの携帯電話であると仮定している。
【００３８】
「ＨＴＭＬファイル」とは、ハイパーテキスト・マークアップ・ランゲージで記述された文字列を含むファイルのことである。この文字列は、コンピュータに対する命令として機能し、ＨＴＭＬタグ及びＪａｖａＳｃｒｉｐｔ（登録商標）のうちの一方又は双方を含むことができる。ＨＴＭＬタグは、ＪａｖａＳｃｒｉｐｔ（登録商標）を含むファイルへのリンクのためのタグを含むことができる。ＨＴＭＬタグは、ＨＴＭＬ５に準拠したタグであることができる。
【００３９】
以下、本願発明の一実施形態を説明する。
【００４０】
図１は、本願発明の一実施形態を示すブロック図である。
【００４１】
サーバ１００は、ユーザが遠隔の携帯端末にアクセスするために、該ユーザのクライアント１２０と携帯端末１３０との間のやり取りを中継する。この図においてサーバ１００は物理的に１つのものとして示されているが、このサーバは複数のコンピュータから構成されてもよい。
【００４２】
サーバ１００には、ネットワーク１１０を介してクライアント１２０が接続されている。この実施形態において、クライアント１２０上ではＳａｆａｒｉ等のＷｅｂブラウザが動作しており、それにより、このクライアントはＨＴＭＬファイルが含む文字列を解釈可能である。別実施形態においては、任意の、ＨＴＭＬファイルが含む文字列を解釈可能なクライアント１２０を使用することができる。この図においては１つのクライアント１２０が示されているが、サーバ１００には複数のクライアントを接続することができる。
【００４３】
また、サーバ１００には、３つの携帯端末１３０ａ〜ｃが接続されている。携帯端末１３０ａ〜ｃは、情報を表示するための表示手段１３１ａ〜ｃ、例えば、液晶ディスプレイを備えている。これら携帯端末は、指示を受けたときにスクリーンショットをサーバ１００に送るように構成されている。「スクリーンショット」は、携帯端末１３０が備える上記表示手段１３１に表示された情報を表し、例えば、液晶ディスプレイに表示された画面の画像である。また、携帯端末１３０ａ〜ｃは、表示手段１３１ａ〜ｃに表示された情報に対応したデータが記憶された記憶手段１３２ａ〜ｃを含むことができる。記憶手段１３２ａ〜ｃに関しては後述する。この図においては３つの携帯端末１３０ａ〜ｃが示されているが、サーバ１００には１以上の任意の数の携帯端末を接続することができる。
【００４４】
サーバ１００は、１以上のＨＴＭＬファイルをクライアント１２０に送るための手段１０１を備えている。この手段は、例えば、サーバ１００上で動作するｈｔｔｐデーモンによって実現することができる。
【００４５】
上記１以上のＨＴＭＬファイルは、クライアント１２０が解釈したときに、該クライアントに、図３ａに関して後述するように、携帯端末１３０のうちの１つを選択するための領域を表示させる文字列と、ユーザが携帯端末１３０の１つを選択したときに、選択された携帯端末を示す端末ＩＤをサーバ１００に送ることをさせる文字列とを含んでいる。
【００４６】
また、上記１以上のＨＴＭＬファイルは、クライアント１２０が解釈したときに、該クライアントに、図３ｂに関して後述するように、サーバ１００を介して携帯端末１３０からスクリーンショットを受けたときにこのスクリーンショットを表示させる文字列を含んでいる。
【００４７】
更に、上記１以上のＨＴＭＬファイルは、クライアント１２０が解釈したときに、該クライアントに、図２ｃ及び図３ｂに関して後述するように、携帯端末への入力を受けるための領域を表示させる文字列と、受けた上記入力を携帯端末に対するコマンドに変換させる文字列と、携帯端末に対するコマンドをサーバ１００に送ることをさせる文字列とを含んでいる。
【００４８】
なお、上記１以上のＨＴＭＬファイルは、クライアント１２０が解釈したときに、図２及び３に関して後述する処理の実行や画面の表示をさせる文字列を更に含むことができる。
【００４９】
また、サーバ１００は、各々が携帯端末１３０ａ〜ｃの各々に関連した手段１０２ａ〜ｃを備えている。この図においては３つの手段１０２ａ〜ｃが示されているが、サーバ１００に接続された携帯端末の数に応じて、手段１０２の数も増減することは言うまでもない。手段１０２は、関連した携帯端末１３０に、スクリーンショット取得指示を送る。また、手段１０２は、携帯端末に対する上記コマンドを受けたときに、関連する携帯端末１３０にそのコマンドを送る。なお、手段１０２は、サーバ１００上で動作する端末制御デーモンによって実現することができる。ここで、サーバ１００上では複数のデーモンを実行することができる。サーバ１００上で新たにデーモンが実行されると、該デーモンに対応した手段１０２がサーバ１００に新たに追加されることになる。
【００５０】
更に、サーバ１００は、該サーバが受けたデータを該サーバに備わった各手段やクライアント１２０に転送する手段１０３を備えている。手段１０３は、サーバ１００がクライアント１２０から上記端末ＩＤを受けた後、この端末ＩＤが示す携帯端末からスクリーンショットを受けたときに、このスクリーンショットをクライアント１２０に送る。また、手段１０３は、サーバ１００がクライアント１２０から上記端末ＩＤを受けた後、クライアント１２０から携帯端末に対する上記コマンドを受けたときに、このコマンドを特定の携帯端末に送る。ここで、特定の携帯端末は、携帯端末１３０のうちの、受けた上記端末ＩＤが示す携帯端末である。
【００５１】
上記１以上のＨＴＭＬファイルは、クライアント１２０が解釈したときに、該クライアントに、あるプロトコルを用いてサーバ１００との双方向の接続を確立させる文字列を更に含むことができる。この場合、サーバ１００は上記プロトコルを解釈できるように構成される。ここで、あるプロトコルの一例は、ＷｅｂＳｏｃｋｅｔプロトコルである。このような接続が確立された場合、該接続を介して、上記の端末ＩＤ、スクリーンショット及び携帯端末に対するコマンド等のデータをクライアント１２０とサーバ１００との間で送受することができる。
【００５２】
場合によっては、該接続を介したデータの送受が制限されることがある。より詳細には、一般的なコンピュータにおいて、データは８ｂｉｔの数値、即ち０〜２５５までの数値の集合として表現されるが、上記接続を介して、そのうちの一部の数値以外の数値を含むデータの送受ができないことがある。例えば、クライアント１２０によっては、動作しているＷｅｂブラウザの仕様上、ＷｅｂＳｏｃｋｅｔプロトコルの一部のみが実装されていることがあり、ＷｅｂＳｏｃｋｅｔプロトコルを用いた上記接続を介して、アルファベット及び数字等の人間が文章を作成する際に使用する文字を示す数値以外の数値を含むデータを送受できないことがある。一方、一般的に、携帯端末１３０のスクリーンショットは、上述の０〜２５５の全ての数値を含みうるデータである。
【００５３】
従って、サーバ１００は、携帯端末１３０から該サーバが受けたスクリーンショットを、ある符号化方式により変換する手段１０４を更に備えることができる。符号化方式は、上記接続を介して、該符号化方式により変換されたスクリーンショットを送ることが可能である任意の符号化方式であってよい。上述の一例においては、Ｂａｓｅ６４によりスクリーンショットを変換することができる。この場合、手段１０２は、変換後のスクリーンショットをクライアント１２０に送ることになる。
【００５４】
更に、サーバ１００は、携帯端末１３０に特定の処理を行わせるために、携帯端末１３０にプログラムを送るための手段１０５を備えることができる。この実施形態において、手段１０５は、図２ａに関して後述する端末選択処理において、サーバ１００が端末ＩＤを受けたときに、この端末ＩＤが示す携帯端末に上記プログラムを送る。別実施形態において、手段１０５は、他の適切なときに、例えば、図２ｅに関して後述する携帯端末登録処理において、サーバ１００に携帯端末が新たに接続されたときに、上記プログラムを接続された携帯端末に送ることができる。サーバ１００上で行う一部の処理を携帯端末上で行うことによって、サーバ１００の負荷を減らすことができ、負荷分散が実現できる。
【００５５】
特に、手段１０５は、セキュリティ等の理由により、携帯端末１３０にスクリーンショットを取得する機能、例えば該携帯端末で動作しているＯＳのＡＰＩが存在しない場合に有用である。このような場合にスクリーンショットを取得するためには、上述した記憶手段１３２、例えば、液晶ディスプレイの画面の画像に対応したデータが記憶されたフレームバッファを直接読み取る必要がある。しかし、フレームバッファに記憶されたデータは携帯端末に依存した形式のデータであり、一般的にはクライアント１２０が表示可能な形式のデータではない。この場合、記憶手段１３２に記憶されたデータの形式を、クライアント１２０が表示可能な形式のデータに変換することが必要となる。
【００５６】
従って、上記プログラムは、携帯端末１３０に、記憶手段１３２に記憶されたデータをクライアント１２０が表示可能な形式のデータに変換させるプログラムであることができる。表示可能な形式はクライアントに依存するが、例えば、限定するわけではないが、Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃ（ＰＮＧ）形式、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧ）形式、Ｇｒａｐｈｉｃｓ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ（ＧＩＦ）形式等であれば、多くのクライアントが表示可能であろう。
【００５７】
なお、図示していないが、サーバ１００は、上記ＨＴＭＬファイルやプログラムを記憶する手段、及び、該サーバとは別の装置から上記ＨＴＭＬファイルやプログラムを取得する手段のうちの一方又は双方を含むことができる。
【００５８】
次に、本願発明の一実施形態における処理を説明する。但し、本願発明に関する分野で一般的な処理、例えば、ユーザがサーバ１００にログインするための処理等については、省略する。
【００５９】
図２ａは、アクセスする携帯端末をユーザが選択するときに実行される端末選択処理を示すフロー図である。
【００６０】
ユーザから携帯端末の選択を受けたクライアント１２０は、サーバ１００に、選択された携帯端末を示す端末ＩＤを送る（ステップ２１１）。ユーザがどのように携帯端末を選択するかについては、図３ａに関して後述する。
【００６１】
サーバ１００が端末ＩＤを受けたときに、手段１０３は、該ＩＤが示す携帯端末に関連した手段１０２に、後述のスクリーンショット取得処理の繰り返しを開始する指示を送る（ステップ２１２）。このとき、手段１０３は、ユーザが選択した携帯端末を、サーバ１００に備わった各手段が後の処理において識別するために、任意の手法により、受けた端末ＩＤそのもの、又は、該ＩＤが示す携帯端末を示す何らかの情報を記憶することができる。また、複数のクライアントが同時に接続する場合には、手段１０３は、任意の手法により、複数のクライアントのうちの１つと、該クライアントから受けた端末ＩＤとの対応関係を記憶することができる。
【００６２】
指示を受けた手段１０２は、後述のスクリーンショット取得処理の繰り返しを開始する（ステップ２１３）。この処理は他の処理とは非同期に繰り返すことができるため、該手段が作成したスクリーンショット取得スレッドにより実行することができる。
【００６３】
図２ｂは、スクリーンショット取得処理を示すフロー図である。
【００６４】
手段１０２は、関連した携帯端末１３０に、上述のスクリーンショット取得指示を送る（ステップ２２１）。
【００６５】
上記指示を受けた携帯端末１３０は、スクリーンショットを取得し、取得したスクリーンショットをサーバ１００に送る（ステップ２２２）。
【００６６】
サーバ１００がスクリーンショットを受けたときに、手段１０３は、Ｂａｓｅ６４によりスクリーンショットを変換する（ステップ２２３）。なお、このステップは、携帯端末１３０がステップ２２２において行ってもよい。また、このステップは、上述したように、サーバ１００とクライアント１２０との間のデータの送受に制限があるために行うものである。別実施形態において、そのような制限がない場合には、省略することができる。
【００６７】
次に、手段１０３は、クライアント１２０に、変換後のスクリーンショットを送る（ステップ２２４）。
【００６８】
スクリーンショットを受けたクライアント１２０は、該スクリーンショットを表示する（ステップ２２５）。どのようにスクリーンショットが表示されるのかについては、図３ｂに関して後述する。
【００６９】
図２ｃは、ユーザが携帯端末にアクセスするときに実行される携帯端末アクセス処理を示すフロー図である。
【００７０】
ユーザからの入力を受けたクライアント１２０は、該入力を携帯端末に対するコマンドに変換する（ステップ２３１）。どのように入力を受けるのかについては、図３ｂに関して後述する。携帯端末に対するコマンドは、携帯端末上でフリック操作、タップ操作、ソフト・キー入力及びハード・キー入力等が行われたときに生ずるイベントを、該携帯端末上で発生させるコマンドを含む。
【００７１】
次に、クライアント１２０は、サーバ１００に、携帯端末に対するコマンドを送る（ステップ２３２）。
【００７２】
サーバ１００が携帯端末に対するコマンドを受けたときに、手段１０３は、先に受けた端末ＩＤが示す携帯端末１３０に関連した手段１０２に、該コマンドを送る（ステップ２３３）。
【００７３】
携帯端末のコマンドを受けた手段１０２は、関連した携帯端末１３０に、該コマンドを送る（ステップ２３４）。
【００７４】
携帯端末のコマンドを受けた携帯端末１３０は、該コマンドに対応したイベントを発生する（ステップ２３５）。このイベントの発生により、携帯端末１３０上では何らかの挙動が発生することになる。この挙動は、携帯端末１３０が備える表示手段１３１、例えば液晶ディスプレイの画面上の変化を含む。この手段の画面上の変化が生じた場合には、非同期に実行されている上述のスクリーンショット取得処理によって、変化したスクリーンショットがクライアント１２０上には表示されることになる。
【００７５】
図３ｃに関して後述するように、携帯端末１３０にはユーザが開発したソフトウェアを送りインストールすることができる。この携帯端末アクセス処理によって、そのようなソフトウェアを携帯端末１３０上で実行し、任意のイベントを発生させることにより、このソフトウェアの携帯端末１３０上での挙動をテストすることができる。
【００７６】
また、図３ｂに関して後述するように、携帯端末に対するコマンドは、ユーザが記述したテスト・コードに従ってサーバ１００に送ることもできる。この場合、ステップ２３１は省略される。
【００７７】
図２ｄは、アクセスする携帯端末の選択をユーザが解除するときに実行される端末選択解除処理を示すフロー図である。
【００７８】
クライアント１２０が、サーバ１００に、携帯端末の選択を解除する指示を送る（ステップ２４１）。
【００７９】
サーバ１００が指示を受けたときに、手段１０３は、サーバ１００が先に受けた端末ＩＤが示す携帯端末に関連した手段１０２に、スクリーンショット取得処理の繰り返しを終了する指示を送る（ステップ２４２）。
【００８０】
指示を受けた手段１０２は、スクリーンショット取得処理の繰り返しを終了する（ステップ２４３）。スクリーンショット取得処理をスクリーンショット取得スレッドにより実行している場合には、該スレッドを削除する。
【００８１】
図２ｅは、サーバ１００に新たに携帯端末を接続したときに実行される携帯端末登録処理を示すフロー図である。
【００８２】
サーバ１００に新たな携帯端末が接続されたときに、手段１０３は、接続された携帯端末に関する情報を取得する（ステップ２５１）。この情報は、携帯端末がＡｎｄｒｏｉｄプラットフォームの携帯電話等である場合、ａｄｂ等のＡｎｄｒｏｉｄプラットフォーム用のソフトウェア開発環境に含まれるツールにより取得することができる。また、この情報は、該携帯端末の端末ＩＤ、機種名、メーカー名及びインストールされているＯＳバージョン等を含む。また、このステップは、手段１０３が、任意の手法により、上記情報を記憶するステップを含むことができる。
【００８３】
次に、手段１０３は、接続された携帯端末に関連した新たな手段１０２を追加する（ステップ２５２）。上述のように、手段１０２が端末制御デーモンにより実現される場合、サーバ１００上で新たな端末制御デーモンを起動することにより、該サーバに新たな手段１０２が追加されることになる。
【００８４】
次に、本願発明の一実施形態において、クライアント１２０に表示される画面を説明する。なお、以下で行われる「入力」や「選択」は、クライアント１２０に備わった図示しない任意の入力手段を使用して、ユーザが行うことができる。また、以下で使用する「領域」は、クライアント１２０に表示されるＵＩコンポーネントを含んでいる。「ＵＩコンポーネント」とは、例えば、ラベル、テキスト・ボックス、ボタン、ラジオ・ボタン、チェック・ボックスのことである。
【００８５】
図３ａは、アクセスする携帯端末をユーザが選択するための画面３００を示している。
【００８６】
領域３０１ａ〜ｃの各々には、サーバ１００に接続された携帯端末１３０ａ〜ｃの各々を示す情報が表示される。この情報は、携帯端末の機種名、メーカー名及びインストールされているＯＳバージョン等を含むことができる。この情報は、携帯端末の端末ＩＤを含んでいてもよい。
【００８７】
領域３０２ａ〜ｃの各々には、携帯端末１３０ａ〜ｃの各々の状態を示す情報が表示される。この情報は、例えば、接続されているが、何らかの理由により選択ができないときに表示される「準備中」の文字列、既に他のユーザに選択されてしまっているときに表示される「他ユーザ選択中」の文字列、及び、ユーザが選択可能であることを示す「選択可能」の文字列を含む。この図においては、携帯端末１３０ｂのみが選択可能であり、それ以外は「準備中」又は「他ユーザ選択中」であると仮定している。
【００８８】
この図においては３つの領域の組３０１ａ〜ｃ及び３０２ａ〜ｃが示されているが、サーバ１００に接続された携帯端末の数に応じて、これら領域の組の数も増減することは言うまでもない。多数の携帯端末がサーバ１００に接続された場合には、一度に全ての携帯端末に対応した領域３０１及び３０２は表示できないため、図示していないスクロールバーを使用して、画面３００の表示を切り替えることになるであろう。
【００８９】
領域３０３は、ユーザが携帯端末を選択するときに使用される。この図においては、携帯端末１３０ｂのみが選択可能であるため、該携帯端末に対応した領域３０３ｂのみが表示されている。ユーザがこの領域を選択することにより、対応した携帯端末が選択される。なお、上述したように、続いて、選択された携帯端末を示す端末ＩＤがクライアント１２０からサーバ１００に送られることになる。
【００９０】
図３ｂは、ユーザが携帯端末にアクセスし、該携帯端末の挙動をテストするための画面３１０を示している。
【００９１】
領域３１１には、サーバ１００からクライアント１２０が受けた、携帯端末１３０のスクリーンショットが表示される。上述のように、スクリーンショット取得処理は非同期に繰り返し行うことができるため、クライアント１２０はこの領域を自動的に更新し、常に最新のスクリーンショットを表示し続けることができる。なお、領域３１１には、クライアント１２０がスクリーンショットを受ける前は、任意の画像を表示することができる。
【００９２】
また、ユーザが領域３１１上でドラッグ及びクリック等の入力を行うと、この入力は、携帯端末上でフリック操作及びタップ操作等の入力が行われたときに生ずるイベントを該携帯端末上で発生させるコマンドに変換される。
【００９３】
領域３１２は、携帯端末においてソフト・キー入力を行うために使用される。ユーザがこの領域に文字列を入力すると、この入力は、対応したソフト・キー入力が携帯端末１３０上で行われたときに生ずるイベントを該携帯端末上で発生させるコマンドに変換される。
【００９４】
領域３１３は、携帯端末においてハード・キー入力を行うために使用される。この一実施形態において、ハード・キーは「ＢＡＣＫ」、「ＨＯＭＥ」及び「ＭＥＮＵ」のキーであると想定しているため、この図においては３つの領域３１３ａ〜ｃが表示されている。しかし、領域３１３の数は、想定するハード・キーの数に依存して増減することは言うまでもない。ユーザが入力として領域３１３を選択すると、この入力は、選択された領域に対応したハード・キー入力が携帯端末１３０上で行われたときに生ずるイベントを該携帯端末上で発生させるコマンドに変換される。
【００９５】
領域３１４は、テスト・コードを入力するために使用される。ユーザは、領域３１４において携帯端末に対するテスト・コードを入力することができる。
【００９６】
テスト・コードは、１以上の上述したようなイベントを携帯端末上で発生させるためのコードを含む。
【００９７】
また、テスト・コードは、携帯端末上で表示されるＵＩコンポーネントの状態がある条件を満たしているかどうか、例えば、テキスト・ボックスに入力された文字列が特定の文字列と一致するかどうかをチェックするためのコードを含む。なお、上記条件のことを、以下では「テスト・ケース」と呼ぶ。テスト・コードは、複数のテスト・ケースを含むことができる。
【００９８】
更に、テスト・コードは、任意の時点で、領域３１１に表示されたスクリーンショットを保存するためのコードを含む。なお、スクリーンショットは、任意の手法で、クライアント１２０又はサーバ１００に保存することができる。
【００９９】
一実施形態においては、複数のＵＩテスト・ライブラリのうちの１つを用いて、ユーザは上記テスト・コードを記述することができる。ＵＩテスト・ライブラリの例は、Ｍｏｎｋｅｙ  Ｒｕｎｎｅｒ、Ｎａｔｉｖｅ  Ｄｒｉｖｅｒ及びＡｎｄｒｏｉｄ  Ｄｒｉｖｅｒという名称のライブラリである。上記のコードは、ＵＩテスト・ライブラリごとに異なるため、ユーザは、図３ｆに関して後述するように、好みのＵＩテスト・ライブラリを選択することができる。
【０１００】
領域３１５は、入力されたテスト・コードを実行するために使用される。ユーザが領域３１５を選択すると、領域３１４に入力されたテスト・コードに従って、クライアント１２０はサーバ１００に携帯端末１３０に対するコマンドを送り、テスト・ケースがチェックされ、スクリーンショットが保存される。領域３１６は、入力されたテスト・コードを保存するために使用される。ユーザが領域３１６を選択すると、任意の手法により、クライアント１２０又はサーバ１００に、入力されたテスト・コードが保存される。
【０１０１】
領域３１７には、テスト・コードの入力を補助するための情報が表示される。領域３１１、３１２及び３１３に対して何らかの入力がなされると、その入力に対応したコードが３１７に表示される。ユーザは、領域３１７に表示されたコードを利用して、領域３１４にテスト・コードを入力することができる。
【０１０２】
領域３１８は、領域３１１に表示されているスクリーンショットを保存するために使用される。領域３１８が選択されると、領域３１８を選択したときに領域３１１に表示されているスクリーンショットは、任意の手法により、クライアント１２０又はサーバ１００に保存される。
【０１０３】
領域３１９は、領域３１７に表示されたコードに対するコメントを入力するために使用される。領域３１９に入力されたコメントは、領域３１７にコードとともに表示することができる。例えば、ユーザが領域３１９に文字列を入力しＥｎｔｅｒキーを押下したときに、入力された文字列をコメントとして領域３１７に出力することができる。
【０１０４】
領域３２０及び３２１は、携帯端末を選択及び選択解除するために使用される。領域３２０が選択されると、図３ａに示される上記画面が表示される。領域３２１が選択されると、上記端末選択解除処理が実行される。
【０１０５】
図３ｃは、テストを管理するための画面３３０を示している。
【０１０６】
領域３３１は、携帯端末１３０にインストールするソフトウェアを指定するために使用される。例えば、クライアント１２０がＭａｃ  ＯＳ  Ｘ等のデスクトップ環境が動作したコンピュータである場合、クライアント１２０に備わった図示しない任意の入力手段を使用して、指定したいソフトウェアのファイルをユーザが領域３３１上にドラッグ＆ドロップすることによって、そのソフトウェアをサーバ１００にアップロードすることができる。
【０１０７】
領域３３２は、アップロードされたソフトウェアを携帯端末１３０にインストールするために使用される。この領域が選択されると、選択された携帯端末に、アップロードされたソフトウェアがインストールされる。領域３３３は、アップロードされたソフトウェアをサーバ１００から削除するために使用される。
【０１０８】
領域３３４は、テスト・クラスを作成するためのボタンである。テスト・クラスとはテストの一単位のことであり、テスト・クラスごとに、入力されたテスト・コード、利用されるＵＩテスト・ライブラリ及び後述するテスト結果等が管理される。領域３３４が選択されると、図３ｆに関して後述するテスト・クラス作成画面が表示される。
【０１０９】
領域３３５には、作成されたテスト・クラスに関する情報が表示される。この情報は、テスト・クラスの名前、利用されるＵＩテスト・ライブラリの名前、テスト・コードの最終更新日等を含む。また、領域３３５は、図示していないが、テスト・クラスの名前等を変更したり、作成されているテスト・クラスを削除したりするために使用される領域を含むことができる。なお、この図において、３つの領域３３５ａ〜ｃが表示されているが、その数は、作成されたテスト・クラスの数に依存することは言うまでもない。
【０１１０】
図３ｄは、テスト履歴を示す画面３４０を示している。
【０１１１】
領域３４１ａ〜ｃの各々は、１回のテストに対応し、１回のテストは、上記テスト・コードの１回の実行を含む。領域３４１には、テスト・コードの実行の結果が表示される。従って、この図は、テスト・コードの実行が今までに３回行われたことを示している。上述のように、テスト・コードは複数のテスト・ケースを含むことができ、これら領域には、これら複数のテスト・ケースの全てが満たされたときに「ＯＫ」の文字列を、そうでないときに「ＥＲＲＯＲ」の文字列を表示することができる。ユーザが領域３４１ａ〜ｃの各々を選択すると、選択された領域に対応する、図３ｅに関して後述する結果の詳細を示す画面が表示されることになる。
【０１１２】
領域３４２ａ〜ｃの各々には、領域３４１ａ〜ｃの各々に対応するテスト・コードが実行された際に選択されていた携帯電話１３０を示す情報が表示される。
【０１１３】
領域３４３ａ〜ｃの各々には、領域３４１ａ〜ｃの各々に対応するテスト・コードの実行に関するログが表示される。このログは、テスト・コードの実行にかかった時間、満たされなかったテスト・ケースの数、満たされなかったテスト・ケースを示す情報及びテスト・コードの実行の完了日時等を含む。テスト・コードにおいては、テスト・ケースに名前を付けることができ、テスト・ケースを示す情報は、テスト・ケースの名前を含む。
【０１１４】
図３ｅは、１回のテスト・コード実行の結果の詳細を表示するための画面３５０を示している。
【０１１５】
領域３５１には、上述した、テスト・コードの実行の結果が表示される。
【０１１６】
領域３５２には、上述した、テスト・コードが実行された際に選択されていた携帯電話１３０を示す情報が表示される。
【０１１７】
領域３５３には、上述した、テスト・コードの実行に関するログが表示される。
【０１１８】
領域３５４には、実行したテスト・コードに含まれるテスト・ケースを示す情報が表示される。
【０１１９】
領域３５５には、テスト・コードの実行中に保存されたスクリーンショットが表示される。テスト・コードの実行中に複数のスクリーンショットが保存された場合には、複数のスクリーンショットが表示される。
【０１２０】
図３ｃに関して前述したように、ユーザは、任意のソフトウェアを選択した携帯端末にインストールすることができる。ソフトウェアのインストールし、任意のテスト・コードを実行した後に画面３５０を参照することにより、そのソフトウェアの携帯端末１３０上での挙動を、この画面を参照することによって確認することができる。
【０１２１】
図３ｆは、新たにテスト・クラスを作成するための画面３６０を示している。
【０１２２】
領域３６１は、テスト・クラスの名前を入力するために使用される。
【０１２３】
領域３６２ａ〜ｃの各々は、用意されたＵＩテスト・ライブラリの各々に関連し、このテスト・クラスにおいて利用するＵＩテスト・ライブラリを選択するために使用される。この図においては３つの領域３６２ａ〜ｃが示されているが、用意されたＵＩテスト・ライブラリの数に応じて、領域３６２の数も増減することは言うまでもない。
領域３６３は、テスト・クラスを作成するために使用される。この領域が選択されると、領域３６１に入力されたテスト・クラス名及び選択された領域３６２に対応したＵＩテスト・ライブラリとともにテスト・クラスが作成される。作成されたテスト・クラスは、図３ｃに関して前述した画面に追加されることになる。
【０１２４】
以上、本願発明の一実施形態について説明してきたが、この実施形態は、本願発明の一例に過ぎないことに注意されたい。本願発明は、特許請求の範囲によってのみ特定され、上述の実施形態に対して様々な変形、修正、削除及び代替をした実施形態をも含んでいる。
【符号の説明】
【０１２５】
１００  サーバ
１０１  第１の手段
１０２  第２の手段
１０３  第３の手段
１０４  第４の手段
１０５  第５の手段
１１０  ネットワーク
１２０  クライアント
１３０  携帯端末
１３１  表示手段
１３２  記憶手段
【図１】
0005959535.tif 000002
【図２ａ】
0005959535.tif 000003
【図２ｂ】
0005959535.tif 000004
【図２ｃ】
0005959535.tif 000005
【図２ｄ】
0005959535.tif 000006
【図２ｅ】
0005959535.tif 000007
【図３ａ】
0005959535.tif 000008
【図３ｂ】
0005959535.tif 000009
【図３ｃ】
0005959535.tif 000010
【図３ｄ】
0005959535.tif 000011
【図３ｅ】
0005959535.tif 000012
【図３ｆ】
0005959535.tif 000013