(57)【特許請求の範囲】
【請求項１】
ユーザの操作を代行するシステムであって、
記憶装置と、
クライアント・コンピュータがユーザの操作を受けてサーバ・コンピュータと通信する履歴を取得して前記記憶装置に格納する履歴取得部と、
前記記憶装置にアクセスして、それぞれが前記クライアント・コンピュータに同一の画面遷移を発生させる複数の通信シーケンスを前記履歴の中から検出する検出部と、
前記記憶装置にアクセスして、前記複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する第１選択部と、
前記選択した入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力をクライアント・コンピュータにより受け付けさせる入力受付部と、
当該新たなパラメータ値の入力に応じて、当該新たなパラメータ値を前記選択した入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を発生させる通信シーケンスをクライアント・コンピュータにより実行させる実行部と
を備えるシステム。
【請求項２】
前記記憶装置にアクセスして、前記検出部により検出された前記複数の通信シーケンスのうちの少なくとも１つの通信シーケンスについて、同一のパラメータ値が設定されている複数の入力パラメータを選択する第２選択部を更に備え、
前記入力受付部は、前記第２選択部により選択された前記複数の入力パラメータに共通して設定するべき新たなパラメータ値の入力を受け付けさせ、
前記実行部は、受け付けた当該パラメータ値を、前記第２選択部が選択した前記複数の入力パラメータのそれぞれに設定して前記通信シーケンスを実行させる、請求項１に記載のシステム。
【請求項３】
前記履歴取得部は、前記履歴として、前記クライアント・コンピュータが前記サーバ・コンピュータに対し送信するリクエスト、および、前記リクエストに対し前記サーバ・コンピュータが前記クライアント・コンピュータに返信するレスポンス、を取得し、
前記記憶装置にアクセスして、前記検出部により検出された前記複数の通信シーケンスのうちの少なくとも１つの通信シーケンスについて、ある第１のレスポンスに含まれる第１パラメータのパラメータ値が、前記第１のレスポンス以降に送信される第２のリクエストに含まれる第２パラメータのパラメータ値と一致するかどうかを判断する一致判断部、
を更に備え、
前記第１および第２パラメータのパラメータ値が一致することを条件に、
前記実行部は、前記通信シーケンスの実行中に前記第１のレスポンスに含めて受信した前記第１パラメータのパラメータ値を、前記第１のレスポンス以降に送信する前記第２のリクエストに含まれる前記第２パラメータに設定させる、請求項１又は２に記載のシステム。
【請求項４】
前記第１選択部により選択された入力パラメータに設定するために前記入力受付部により新たなパラメータ値の入力を受け付けさせるかどうかを、ユーザの指示に基づいて設定する設定部、を更に備え、
前記入力受付部は、前記設定部により新たなパラメータ値の入力を受け付けさせると設定されたことを条件に、新たにパラメータ値の入力を受け付けさせる、請求項１から３のいずれか１項に記載のシステム。
【請求項５】
前記設定部は、前記第１選択部により選択された入力パラメータに設定するために新たなパラメータ値の入力を受け付けない場合に、さらに、当該入力パラメータに設定する固定パラメータをユーザの指示に基づいて設定し、
前記実行部は、前記第１選択部により選択された入力パラメータに設定するために新たなパラメータ値の入力を受け付けない場合に、前記設定部により設定された前記固定パラメータを前記第１選択部により選択された入力パラメータに設定して前記通信シーケンスを実行させる、請求項４に記載のシステム。
【請求項６】
前記入力受付部は、クライアント・コンピュータで動作するウェブ・ブラウザに当該新たなパラメータ値の入力を受け付けるフォームを表示し、
前記実行部は、ユーザの指示に応じて、当該フォームに入力されたパラメータ値を前記選択された入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を行わせる通信シーケンスを実行する、請求項１から５のいずれか１項に記載のシステム。
【請求項７】
クライアント・コンピュータを前記入力受付部および前記実行部として機能させるプログラムを生成するとともに、ユーザからプログラム名の入力を受け付け、入力された前記プログラム名に対応付けて前記プログラムを前記記憶装置に格納する生成部を更に備え、
前記クライアント・コンピュータは、前記記憶装置から前記プログラム名を読み出して表示すると共に、ユーザにより指定されたプログラム名に対応する前記プログラムを、前記記憶装置から読み出して実行する、請求項１から６のいずれか１項に記載のシステム。
【請求項８】
前記実行部により実行される前記通信シーケンスによる画面遷移のうち、ユーザの指示に基づいて、遷移を一時中断させる画面を設定する設定部、を更に備え、
前記実行部は、前記通信シーケンスの実行中に、前記設定部により設定された画面への遷移に対応する通信を行ったことを条件に、当該通信シーケンスの実行を中断させ、
前記入力受付部は、当該通信シーケンスの実行を中断した場合に、再開後の通信におけるパラメータに設定するべき新たなパラメータ値の入力を受け付けさせ、さらに、
前記実行部は、当該新たなパラメータ値の入力を受け付けたことを条件に、当該新たなパラメータ値を設定して当該通信シーケンスを再開させる、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
前記検出部は、同一の画面遷移を示す複数の通信シーケンスの中から、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスを検出する、請求項１から８のいずれか１項に記載のシステム。
【請求項１０】
前記検出部は、前記履歴を通信のセッション毎に分類し、分類したそれぞれのセッションについて、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスを検出する、請求項９に記載のシステム。
【請求項１１】
前記通信シーケンスはＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）のリクエストおよびレスポンスであり、
前記画面遷移は、複数のウェブページを順次表示することを示し、
前記履歴取得部は、前記履歴として、前記クライアント・コンピュータが前記サーバ・コンピュータに対し送信するリクエスト、および、前記リクエストに対し前記サーバ・コンピュータが前記クライアント・コンピュータに返信するレスポンス、を取得し、
前記検出部は、前記履歴の中から、ＨＴＭＬデータのレスポンスに対応するリクエストを選択し、選択した当該リクエストのシーケンスの中から、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスを検出する、請求項１０に記載のシステム。
【請求項１２】
前記検出部は、前記履歴の中から、状態コードがエラーまたは無効を示すレスポンスに対応するリクエストを除外し、除外した当該リクエストのシーケンスの中から、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスを検出する、請求項１１に記載のシステム。
【請求項１３】
前記実行部は、前記通信シーケンスの実行中に、状態コードがエラー又は無効を示すレスポンスを受信したことを条件に、前記通信シーケンスの実行を停止させる、請求項１から１２のいずれか１項に記載のシステム。
【請求項１４】
前記実行部は、前記通信シーケンスの実行中に受信したレスポンスが、前記履歴に含まれるレスポンスと比較してパラメータ値を除き一致することを条件に、当該通信シーケンスの実行を継続させる、請求項１３に記載のシステム。
【請求項１５】
ユーザの操作を代行するシステムとして、記憶装置を有するコンピュータを機能させるプログラムであって、
前記コンピュータを、
クライアント・コンピュータがユーザの操作を受けてサーバ・コンピュータと通信する履歴を取得して前記記憶装置に格納する履歴取得部と、
前記記憶装置にアクセスして、それぞれが前記クライアント・コンピュータに同一の画面遷移を発生させる複数の通信シーケンスを前記履歴の中から検出する検出部と、
前記記憶装置にアクセスして、前記複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する第１選択部と、
前記選択した入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力をクライアント・コンピュータにより受け付けさせる入力受付部と、
当該新たなパラメータ値の入力に応じて、当該新たなパラメータ値を前記選択した入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を発生させる通信シーケンスをクライアント・コンピュータにより実行させる実行部と
して機能させるプログラム。
【請求項１６】
記憶装置を有するコンピュータによって、ユーザの操作を代行する方法であって、
クライアント・コンピュータがユーザの操作を受けてサーバ・コンピュータと通信する履歴を取得して前記記憶装置に格納するステップと、
前記記憶装置にアクセスして、それぞれが前記クライアント・コンピュータに同一の画面遷移を発生させる複数の通信シーケンスを前記履歴の中から検出するステップと、
前記記憶装置にアクセスして、前記複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択するステップと、
前記選択した入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力をクライアント・コンピュータにより受け付けさせるステップと、
当該新たなパラメータ値の入力に応じて、当該新たなパラメータ値を前記選択した入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を発生させる通信シーケンスをクライアント・コンピュータにより実行させるステップと
を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの操作を自動化する技術に関する。特に、本発明は、通信の履歴に基づいてユーザの操作を自動化する技術に関する。
【背景技術】
【０００２】
近年、ウェブページには、チェックボックス、ラジオボタンおよび入力フォームなどの、ユーザの入力を受け付けるための様々なオブジェクトが設けられている。ユーザは、ある目的、例えば商品の購入、情報の表示又は設定値の変更、などを実現するために、次々に表示される複数のウェブページにおいてこれらのオブジェクトを操作する。時には、ユーザが行う一連の操作は、過去にそのユーザが行う一連の操作と似通っている場合がある。そのような場合であっても、所定の目的を達するためには、ユーザはその一連の操作を最初からやり直さなければならない。
【０００３】
下記の特許文献１−３には、ユーザの操作を自動化する技術が開示されている。
【特許文献１】特開平１０−３４０２７７号公報
【特許文献２】特開２００２−７０２０号公報
【特許文献３】特開２００１−２９０８０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ユーザの操作を自動化するために、マウスおよびキーボードが受けた操作を再現する方法が考えられる。しかしながら、この方法は、操作を記憶するためのコンピュータと操作を再現するコンピュータとが、実質的に同一のコンピュータでなければならないので、汎用的でない。例えば操作を記憶するためのコンピュータと操作を再現するコンピュータとの間で画面の解像度やウィンドウの配置が異なると、操作を正しく再現できない。
【０００５】
また、そもそも、過去の操作と全く同じ操作を再現してもあまり有用でない場合が多い。例えば、商品の購入において、購入に至る過程は似通っていても、購入する商品は異なる場合が多い。また、設定値の変更において、変更の手順は似通っていても、設定値自体は異なる場合が多い。このように、自動化する部分と自動化しない部分とを区別するためには、ユーザによる判断が必要になり、ユーザの手間がかかる場合が多い。
【０００６】
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の第１の形態においては、ユーザの操作を代行するシステムであって、記憶装置と、クライアント・コンピュータがユーザの操作を受けてサーバ・コンピュータと通信する履歴を取得して前記記憶装置に格納する履歴取得部と、前記記憶装置にアクセスして、それぞれが前記クライアント・コンピュータに同一の画面遷移を発生させる複数の通信シーケンスを前記履歴の中から検出する検出部と、前記記憶装置にアクセスして、前記複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する第１選択部と、前記選択した入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力をクライアント・コンピュータにより受け付けさせる入力受付部と、当該新たなパラメータ値の入力に応じて、当該新たなパラメータ値を前記選択した入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を発生させる通信シーケンスをクライアント・コンピュータにより実行させる実行部とを備えるシステムを提供する。また、当該システムとしてコンピュータを機能させるプログラム、および、当該システムによりユーザの操作を代行させる方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本実施形態に係る情報システム１０の構成全体の概要を示す。情報システム１０は、クライアント・コンピュータ１００と、サーバ・コンピュータ２００とを備える。クライアント・コンピュータ１００は、基本的なハードウェアとして、ネットワーク・インターフェイス・カードなどの通信インターフェイス１０２と、ハードディスク・ドライブなどの記憶装置１０４とを有する。また、記憶装置１０４に記憶されたプログラムを中央処理装置が実行することで、クライアント・コンピュータ１００はウェブ・ブラウザ１０６および代行システム１０８として機能する。
【００１０】
サーバ・コンピュータ２００は、基本的なハードウェアとして、ネットワーク・インターフェイス・カードなどの通信インターフェイス２０２と、ハードディスク・ドライブなどの記憶装置２０４とを有する。また、記憶装置２０４に記憶されたプログラムを中央処理装置が実行することで、サーバ・コンピュータ２００は、ウェブ・サーバ２０６として機能する。
【００１１】
ウェブ・ブラウザ１０６は、ユーザの操作に応じて、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などの通信プロトコルに準拠したリクエスト５０をウェブ・サーバ２０６に送信する。ウェブ・サーバ２０６は、これに応じて、ＨＴＴＰなどに準拠したレスポンス５２をウェブ・ブラウザ１０６に返信する。これを受けて、ウェブ・ブラウザ１０６に表示される画面は他の画面に遷移する。
【００１２】
ユーザは、このようにして次々に遷移する画面を操作する。これにより、所望の目的、例えばサーバ・コンピュータ２００内に保存された設定値を変更したり、サーバ・コンピュータ２００により実現されるウェブサイトで商品を購入したりすることができる。
【００１３】
代行システム１０８は、クライアント・コンピュータ１００がユーザの操作を受けてサーバ・コンピュータ２００と通信する履歴を記録する。そして、代行システム１０８は、その履歴から、例えば高頻度で繰り返される通信シーケンスを検出する。また、代行システム１０８は、それらの通信シーケンスの中から、通信シーケンスごとにパラメータ値が変更された入力パラメータを選択する。
【００１４】
そして、代行システム１０８は、選択したその入力パラメータに設定するための新たなパラメータ値の入力を受け付けると共に、そのパラメータ値の入力に応じてその通信シーケンスを再現する。すると、クライアント・コンピュータ１００は、あたかもユーザによる一連の操作を再度受けたかのように動作する。これにより、使用者は最初にパラメータ値を入力するだけで、過去に行った処理を再現できる。
【００１５】
このように、本実施形態に係る代行システム１０８は、単に通信シーケンスを再現するのみならず、再現すると便利な一連のシーケンスを自動的に検出するとともに、必要な可変パラメータを自動的に選択することで、使用者の利便性を向上させることを目的とする。以下、具体的に説明する。
【００１６】
図２は、本実施形態に係るクライアント・コンピュータ１００がサーバ・コンピュータ２００と通信する具体例を示す。ユーザは、ある目的を達成するために、次々に遷移する複数のウェブページに対し所定の操作を行う場合がある。この図２では、そのようなウェブページの画面の集合を画面１０６Ａ、画面１０６Ｂおよび画面１０６Ｃとする。
【００１７】
また、画面１０６Ａをウェブ・ブラウザ１０６に表示させるためにクライアント・コンピュータ１００が送信するリクエストを５０Ａとする。そして、リクエスト５０Ａに対するレスポンスを５２Ａとする。また、ユーザが画面１０６Ａを操作したことに応じてクライアント・コンピュータ１００が送信するリクエストを５０Ｂとする。そして、リクエスト５０Ｂに対するレスポンスを５２Ｂとする。ウェブ・ブラウザ１０６はレスポンス５２Ｂを受けて画面１０６Ｂを表示する。
【００１８】
また、ユーザが画面１０６Ｂを操作したことに応じてクライアント・コンピュータ１００が送信するリクエストを５０Ｃとする。そして、リクエスト５０Ｃに対するレスポンスを５２Ｃとする。ウェブ・ブラウザ１０６はレスポンス５２Ｃを受けて画面１０６Ｃを表示する。また、ユーザが画面１０６Ｃを操作したことに応じてクライアント・コンピュータ１００が送信するリクエストを５０Ｄとする。
【００１９】
図３は、本実施形態に係るリクエスト５０Ａの一例を示す。第１行目は、リクエストラインを示し、具体的には、コマンド名「ＰＯＳＴ」、パス名「／ａｄｍｉｎ／ｓｅｃｕｒｅ／ｌｏｇｏｎ．ｄｏ」およびプロトコル名「ＨＴＴＰ／１．１」を含む。２−４行目は、ウェブ・ブラウザ１０６が受け入れるファイルの属性を示す。５行目は、ウェブ・ブラウザ１０６の種類などを示す。
【００２０】
６行目は、リクエストの送信先となるサーバ・コンピュータ２００のホスト名を示す。たとえばここでは「ｔｅｒｍｉｎａｌ□□□」がサーバ・コンピュータ２００のホスト名である。１行目と併せて把握すると、このリクエスト５０Ａは、ＵＲＬ「ｔｅｒｍｉｎａｌ□□□／ａｄｍｉｎ／ｓｅｃｕｒｅ／ｌｏｇｏｎ．ｄｏ」により指定されるウェブページを要求している。なお、７行目は、接続の継続を要求することを示す。
【００２１】
図４は、本実施形態に係るレスポンス５２Ａの一例を示す。図３に示すリクエスト５０Ａに対し、図４に示すレスポンス５２Ａが返信される。第１行目は、プロトコル名「ＨＴＴＰ／１．１」および通信が成功したことを示す識別子「２００  ＯＫ」を示す。２行目は、通信日時を示す。３行目は、ウェブ・サーバ２０６の種類を示す。４行目は、レスポンス５２Ａに含まれるコンテンツの種類を示し、具体的には「ｔｅｘｔ／ｈｔｍｌ」はHTMLデータであることを示す。
【００２２】
また、「ＵＴＦ−８」は文字コードを示す。５行目は、レスポンス５２Ａに含まれるコンテンツの言語設定を示す。また、７行目以降は、ウェブ・ブラウザ１０６に表示するべきウェブページを示す。例えばこの図４の例で、ウェブページは、ＨＴＭＬタグおよびＨＥＡＤタグから始まる。このレスポンス５２Ａを受けてウェブ・ブラウザ１０６は図５に示す画面１０６Ａを表示する。
【００２３】
図５は、本実施形態に係るウェブ・ブラウザ１０６がレスポンス５２Ａを受けて表示する画面１０６Ａの一例を示す。画面１０６Ａは、例えば、所定のサーバ（サーバ・コンピュータ２００がそのサーバを兼用していてもよい）を管理し、または、そのサーバの設定を変更するための画面を示す。
【００２４】
具体的には、アドレス欄にはリクエスト５０Ａによって指定されたＵＲＬ「ｔｅｒｍｉｎａｌ□□□／ａｄｍｉｎ／ｓｅｃｕｒｅ／ｌｏｇｏｎ．ｄｏ」が表示される。また、画面左側には、設定変更のための各種メニューが表示される。その中の「仮想ホスト」をユーザがクリックすると、画面右下のウィンドウが表示される。
【００２５】
この「仮想ホスト」は、物理的な１つのコンピュータを、あたかも複数のコンピュータが動作しているかのように他のコンピュータに認識させる機能を示す。このウィンドウは、新たな仮想ホストを作成するための操作をユーザから受け付ける。例えば、画面１０６Ａ中央下寄りにある「新規作成」というボタンをユーザが操作すると、サーバ・コンピュータ２００は新たな仮想ホストの生成処理を開始する。このボタンが操作された場合にウェブ・ブラウザ１０６が送信するリクエストを図６に示す。
【００２６】
図６は、本実施形態に係るリクエスト５０Ｂの一例を示す。第１行目は、図３に示すリクエストラインと概ね同様であるが、パス名は異なっている。即ち、第１行目は、「／ａｄｍｉｎ／ｖｉｒｔｕａｌＨｏｓｔＣｏｌｌｅｃｔｉｏｎ．ｄｏ」というパス名により指定されるウェブページを要求することを示す。第２行目から第７行目は図３に示すリクエスト５０Ａと略同一であるから説明を省略する。
【００２７】
第１行目から第７行目までの部分（ヘッダ部という）以降は、リクエスト５０Ｂの本体部である。例えばＸ行目は、ユーザの操作に基づく入力パラメータを示す。その中の「ｂｕｔｔｏｎ．ｎｅｗ＝ｘｘｘｘ」という部分は、ユーザにより「新規作成」ボタンが操作されたことを示す。このように、ユーザによる操作は、入力パラメータ「ｂｕｔｔｏｎ．ｎｅｗ」およびそのパラメータ値「ｘｘｘｘ」の組として表現されて、リクエスト５０Ｂに含めてウェブ・サーバ２０６に対し送信される。
【００２８】
図７は、本実施形態に係るレスポンス５２Ｂの一例を示す。第１行目から第５行目までのヘッダ部分は、図４に示すレスポンス５２Ａと略同一であるから説明を省略する。一方、ヘッダ部分以降の本体部分は、ウェブ・ブラウザ１０６に表示するべきウェブページを示す。例えば第Ｙ行目から第（Ｙ＋８）行目は、各種テキストおよび入力欄を、ＨＴＭＬのテーブル機能を利用して整列して表示させるための各種のタグを含む。
【００２９】
具体的には、＜ｔｒ＞タグは、テーブル内の行方向の要素を指定するタグであり、＜ｔｄ＞タグは、テーブル内のある行に含まれるセルを指定するタグである。この結果、第（Ｙ＋２）行目に含まれる「名前」というテキストは、ウェブページ内の所定の位置に整列して表示される。また、第（Ｙ＋６）行目に指定されるイメージ・データ、および、第（Ｙ＋７）行目に指定される入力欄は、並べて表示される。
【００３０】
図８は、本実施形態に係るウェブ・ブラウザ１０６がレスポンス５２Ｂを受けて表示する画面１０６Ｂの一例を示す。画面１０６Ａにおいてユーザが「新規作成」ボタンを操作したことに応じて、ウェブ・ブラウザ１０６の画面はこの画面１０６Ｂに遷移する。画面１０６Ｂの右下には、仮想ホストの名前の入力を受け付けるためのウィンドウが表示される。
【００３１】
このウィンドウには、図７を参照して説明したように、「名前」というテキストデータと、例えば星型のイメージ・データと、入力欄とが整列して表示される。使用者は、この入力欄に文字列を入力して「ＯＫ」というボタンを操作することで、仮想ホストの名前を決定できる。ここでは、「ｖｈ００５」という文字列が入力されボタン「ＯＫ」が操作されたものとして説明をすすめる。
【００３２】
図９は、本実施形態に係るリクエスト５０Ｃの一例を示す。第１行目は、図３に示すリクエストラインと概ね同様であるが、パス名は異なっている。即ち、第１行目は、「／ａｄｍｉｎ／ｖｉｒｔｕａｌＨｏｓｔＤｅｔａｉｌ．ｄｏ」というパス名により指定されるウェブページを要求することを示す。第２行目から第７行目は図３に示すリクエスト５０Ａと略同一であるから説明を省略する。
【００３３】
第１行目から第７行目までのヘッダ部分以降は、リクエスト５０Ｃの本体部である。例えばＺ行目は、ユーザの操作に基づく入力パラメータを示す。その中の「ａｃｔｉｏｎ＝Ｎｅｗ」という部分は仮想ホストの新規作成が指示されたことを示し、「ｎａｍｅ＝ｖｈ００５」という部分は、その仮想ホストの名前が「ｖｈ００５」であることを示し、「ｓａｖｅ＝ＯＫ」という部分は、その仮想ホストの設定を保存するべきことを示す。
【００３４】
図１０は、本実施形態に係るレスポンス５２Ｃの一例を示す。第１行目から第５行目までのヘッダ部分は、図４に示すレスポンス５２Ａと略同一であるから説明を省略する。一方、ヘッダ部分以降の本体部分は、ウェブ・ブラウザ１０６に表示するべきウェブページを示す。例えば第Ｗ行目から第（Ｗ＋９）行目は、入力パラメータ「ｃｏｌｕｍｎ２」のパラメータ値を設定するためのプルダウンメニューを示す。
【００３５】
具体的には、第Ｗ行目は、設定するべき入力パラメータが「ｃｏｌｕｍｎ２」であることを示す。また、第（Ｗ＋１）行目から第（Ｗ＋８）行目までのそれぞれは、プルダウンメニューに表示される項目を示す。具体的には、項目は、「ｄｅｆａｕｌｔ」、「ａｄｍｉｎ＿ｈｏｓｔ」、「Ｔｅｓｔ１  Ｈｏｓｔ」、「ｖｈ００１」、「ｖｈ００２」、「ｖｈ００３」、「ｖｈ００４」、および「ｖｈ００５」である。
【００３６】
図１１は、本実施形態に係るウェブ・ブラウザ１０６がレスポンス５２Ｃを受けて表示する画面１０６Ｃの一例を示す。画面１０６Ｂにおいてユーザが「ＯＫ」ボタンを操作したことに応じて、ウェブ・ブラウザ１０６の画面は画面１０６Ｂからこの画面１０６Ｃに遷移する。画面１０６Ｃの右下には、仮想ホストの詳細設定を行うためのウィンドウが表示される。
【００３７】
このウィンドウには、図１０を参照して説明したように、入力パラメータにパラメータ値を設定するためのプルダウンメニューが表示される。使用者は、このプルダウンメニューを利用してパラメータ値を選択することで、例えばＷｅｂモジュールをインストールするホストを決定することができる。ここでは、「ｖｈ００５」が選択されたものとする。
【００３８】
図１２は、本実施形態に係るリクエスト５０Ｄの一例を示す。第１行目から第７行目は図９に示すリクエスト５０Ｃと略同一であるから説明を省略する。一方、本体部の第Ｌ行目は、入力パラメータ「ｃｏｌｕｍｎ２」にパラメータ値「ｖｈ００５」を設定することを示す。これにより、サーバ・コンピュータ２００において仮想ホストｖｈ００５に対するインストール処理が開始される。
【００３９】
以上、図２から図１２を参照して説明したように、例えば仮想ホストの新規作成という目的を達するために、ユーザは次々に表示されるウェブ・ブラウザ１０６の画面上で様々な操作を行う。操作とは、例えばボタンまたはタグなどのオブジェクトのクリックのみならず、入力欄への文字入力を含む。これらの操作に応じ、内部処理としては、ウェブ・ブラウザ１０６はリクエストを次々にウェブ・サーバ２０６に送信し、ウェブ・サーバ２０６はレスポンスを次々にウェブ・ブラウザ１０６に返信する。
本実施形態に係る代行システム１０８は、次の図１３を参照して説明するように、これらの過去の一連の通信シーケンスの中から自動化するべき通信シーケンスを取り出してユーザに提供することで、ユーザの操作を代行してゆく。
【００４０】
図１３は、本実施形態に係る代行システム１０８の機能構成の一例を示す。代行システム１０８は、履歴取得部３００と、検出部３１０と、第１選択部３２０と、第２選択部３３０と、一致判断部３４０と、設定部３５０と、生成部３６０とを有する。履歴取得部３００は、クライアント・コンピュータ１００がユーザの操作を受けてサーバ・コンピュータ２００と通信する履歴を取得して記憶装置１０４に格納する。
【００４１】
この履歴は、図１から図１２に例示したリクエスト若しくはレスポンス、または、これらの組合せである。従って、履歴は、ＨＴＴＰのコマンドおよびリクエスト先のＵＲＬのみならず、入力パラメータおよびそのパラメータ値などの、多様な情報を含む。
【００４２】
なお、本実施形態において履歴取得部３００はクライアント・コンピュータ１００に設けられ、ウェブ・ブラウザ１０６がウェブ・サーバ２０６に対し送信しようとしているリクエスト、および、ウェブ・ブラウザ１０６がウェブ・サーバ２０６から受信しようとしているレスポンスを履歴として取得する。これに代えて、履歴取得部３００はサーバ・コンピュータ２００に設けられ、ウェブ・サーバ２０６がウェブ・ブラウザ１０６から受信しようとしているリクエスト、および、ウェブ・サーバ２０６がウェブ・ブラウザ１０６に送信しようとしているレスポンスを履歴として取得してもよい。更に他の例として、履歴取得部３００は、クライアント・コンピュータ１００およびサーバ・コンピュータ２００の間の通信を中継するプロキシ・サーバに設けられ、通信回線を転送されてゆくリクエストおよびレスポンスを履歴として取得してもよい。
【００４３】
検出部３１０は、記憶装置１０４にアクセスして、それぞれがクライアント・コンピュータ１００に同一の画面遷移を発生させる複数の通信シーケンスを履歴の中から検出する。ここでいう画面遷移とは、たとえば、リクエストに含めて次々に送信されるＵＲＬにより定められる画面遷移をいう。具体的には、図１から図１２までの例では、ＵＲＬ「／ａｄｍｉｎ／ｓｅｃｕｒｅ／ｌｏｇｏｎ．ｄｏ」により指定される画面から、ＵＲＬ「／ａｄｍｉｎ／ｖｉｒｔｕａｌＨｏｓｔＣｏｌｌｅｃｔｉｏｎ．ｄｏ」により指定される画面を経て、ＵＲＬ「／ａｄｍｉｎ／ｖｉｒｔｕａｌＨｏｓｔＤｅｔａｉ．ｄｏ」により指定される画面に遷移している。
【００４４】
通信シーケンスの検出は、クライアント・コンピュータ１００からサーバ・コンピュータ２００に送信されるリクエストのリクエストライン、例えば図１から図１２までの例では第１行を参照することで実現される。即ち例えば、まず、検出部３１０は、履歴に含まれる各リクエストを時系列に並べ替えたうえで、エラー発生などを示す不要なリクエストを除外する。そして、検出部３１０は、各リクエストからコマンド名およびＵＲＬを抽出する。そして、検出部３１０は、コマンド名がページの要求を示すことを条件に（例えばＨＴＴＰではＰＯＳＴまたはＧＥＴであることを条件に）、そのコマンド名に対応するＵＲＬを選択する。この結果選択されたＵＲＬの順列が画面遷移を示す。
【００４５】
検出部３１０は、このようにして履歴の中に含まれる全ての画面遷移を特定したうえで、同一の画面遷移を発生させる複数の通信シーケンスを履歴の中から検出する。例えば、検出部３１０は、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスとして検出してもよい。これは、例えば過去の予め定められた期間内に予め定められた基準回数以上の回数現れる通信シーケンスを検出することで実現される。この結果、頻出の画面遷移が特定される。
【００４６】
次に、第１選択部３２０は、記憶装置１０４にアクセスして、検出された当該複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する。例えば上記図５−６の例で、ボタン「新規作成」が操作された場合の入力パラメータ「ｂｕｔｔｏｎ．ｎｅｗ」に設定されるパラメータ値「ｘｘｘｘ」は、通信シーケンスごとには変更されない。
【００４７】
一方で、上記図８−９の例で、入力パラメータ「ｎａｍｅ」に設定されたパラメータ値「ｖｈ００５」はユーザの操作によって変更され得る。第１選択部３２０は、このような入力パラメータを、実際にユーザがそのパラメータ値を変更したという履歴に基づいて選択する。一例として、この入力パラメータ「ｎａｍｅ」が通信シーケンスごとに例えば「ｖｈ００１」、「ｖｈ００２」または「ｖｈ００３」などと変更されていたならば、第１選択部３２０は、この入力パラメータ「ｎａｍｅ」を選択する。
【００４８】
第２選択部３３０は、記憶装置１０４にアクセスして、検出部３１０により検出された複数の通信シーケンスのうち少なくとも１つの通信シーケンスについて、同一のパラメータ値が設定されている複数の入力パラメータを選択する。例えば、上記図９の例で、入力パラメータ「ｎａｍｅ」には、パラメータ値「ｖｈ００５」が設定されている。そして、上記図１２の例で、入力パラメータ「ｃｏｌｕｍｎ２」にも、パラメータ値「ｖｈ００５」が設定されている。従って、第２選択部３３０は、これらの入力パラメータ「ｎａｍｅ」および「ｃｏｌｕｍｎ２」を選択する。
【００４９】
一致判断部３４０は、記憶装置１０４にアクセスして、検出部３１０により検出された当該複数の通信シーケンスのうち少なくとも１つの通信シーケンスについて、ある第１のレスポンスに含まれるある第１のパラメータのパラメータ値が、その第１のレスポンス以降に送信される第２のリクエストに含まれる第２パラメータのパラメータ値と一致するかどうかを判断する。
【００５０】
例えば、上記図１０の第（Ｗ＋８）行目で、第１のパラメータ「ｖａｌｕｅ」のパラメータ値「ｖｈ００５」が、上記図１２の第Ｌ行目で、第２のパラメータ「ｃｏｌｕｍｎ２」のパラメータ値として設定されている。従って、一致判断部３４０は、これらのパラメータのパラメータ値が一致すると判断する。
【００５１】
次に、設定部３５０は、第１選択部３２０および第２選択部３３０による選択結果、および、一致判断部３４０による判断結果をユーザに表示して、その結果に基づいて通信シーケンスを自動化してよいかどうかをユーザに確認する。その確認の画面は画面１０６Ｘとして後に例示する。
【００５２】
生成部３６０は、設定部３５０による確認の結果に基づいて、クライアント・コンピュータ１００により通信シーケンスを再現させるプログラムを生成して記憶装置１０４に格納する。このプログラムは、いわゆるウィザード・プログラムであり、ユーザから対話形式でパラメータ値の入力を受け付けて、通信シーケンスを再現するためのものである。このプログラムは、代行システム１０８自体により実行されてもよい。この場合、代行システム１０８は、入力受付部３７０および実行部３８０として機能する。
【００５３】
入力受付部３７０は、第１選択部３２０により選択された入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力を、例えばクライアント・コンピュータ１００のウェブ・ブラウザ１０６により受け付けさせる。また、入力受付部３７０は、第２選択部３３０により選択された複数の入力パラメータに共通して設定するべき新たなパラメータ値の入力を、例えばクライアント・コンピュータ１００のウェブ・ブラウザ１０６により受け付けさせる。但し、これらの入力パラメータについて新たなパラメータ値の入力を受け付けるかどうかは、生成部３６０によるユーザへの確認の結果に基づく。
【００５４】
そして、実行部３８０は、これらの新たなパラメータ値の入力に応じて、当該新たなパラメータ値を第１選択部３２０および第２選択部３３０により選択されたそれぞれの入力パラメータに設定して通信シーケンスを再現する。この通信シーケンスは、検出部３１０により検出されたそれぞれの通信シーケンスと同一の画面遷移を発生させる通信シーケンスである。例えば、実行部３８０は、記憶装置１０４から読み出した通信シーケンスのうち、入力パラメータのパラメータ値だけを変更して、ウェブ・サーバ２０６に対し送信してよい。
【００５５】
さらに、実行部３８０は、一致判断部３４０による判断の結果に基づいてパラメータ値を自動的に設定してもよい。即ち、実行部３８０は、通信シーケンスの実行中に上記第１のレスポンスに含めて受信した上記第１のパラメータのパラメータ値を、上記第１のレスポンス以降に送信する第２のリクエストに含まれる上記第２のパラメータに設定させる。これにより、レスポンスに基づき以降のリクエストを決定することができるので、自動化のバリエーションをより広げることができる。
【００５６】
なお、入力受付部３７０および実行部３８０は、クライアント・コンピュータ１００に限らず、クライアント・コンピュータ１００以外の他のクライアント・コンピュータに働きかけて、当該他のクライアント・コンピュータにより通信を再現させてもよい。具体的には、記憶装置１０４により生成されたプログラムは、記録媒体または電気通信回線によって他のクライアント・コンピュータに転送され、当該他のクライアント・コンピュータにより実行されてもよい。このように、履歴を取得するコンピュータとそれに基づき通信シーケンスを再現するコンピュータとは別であってよい。
【００５７】
図１４は、本実施形態に係る代行システム１０８が通信の履歴に基づいてプログラムを生成する処理の流れを示す。履歴取得部３００は、クライアント・コンピュータ１００がユーザの操作を受けてサーバ・コンピュータ２００と通信する履歴を取得して記憶装置１０４に格納する（Ｓ１４００）。
【００５８】
次に、検出部３１０は、それぞれがクライアント・コンピュータ１００に同一の画面遷移を発生させる複数の通信シーケンスであって、予め定められた基準頻度以上の頻度で表れる複数の通信シーケンスを検出する（Ｓ１４１０）。次に、第１選択部３２０は、検出された当該複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する（Ｓ１４２０）。
【００５９】
また、第２選択部３３０は、検出部３１０により検出された複数の通信シーケンスのうち少なくとも１つの通信シーケンスについて、同一のパラメータ値が設定されている複数の入力パラメータを選択する（Ｓ１４３０）。このような複数の入力パラメータは、ユーザの同意を条件に、一括入力のために集約される。即ち、通信シーケンスの再現時において、このような複数の入力パラメータのそれぞれには、同一のパラメータ値が設定される。
【００６０】
また、一致判断部３４０は、検出部３１０により検出された当該複数の通信シーケンスのうち少なくとも１つの通信シーケンスについて、ある第１のレスポンスに含まれるある第１のパラメータのパラメータ値を、その第１のレスポンス以降に送信される第２のリクエストに含まれる第２パラメータのパラメータ値と照合する（Ｓ１４４０）。
【００６１】
次に、設定部３５０は、第１選択部３２０および第２選択部３３０による選択結果、および、一致判断部３４０による照合結果をユーザに表示して（Ｓ１４５０）、その結果に基づいて通信シーケンスを自動化してよいかどうかをユーザに確認する（Ｓ１４６０）。
【００６２】
生成部３６０は、設定部３５０による確認の結果に基づいて、クライアント・コンピュータ１００により通信シーケンスを再現させるプログラムを生成して記憶装置１０４に格納する（Ｓ１４７０）。このプログラムは、外部の他のクライアント・コンピュータに対し出力されてもよい。
【００６３】
図１５は、Ｓ１４１０における処理の流れの詳細を示す。まず、検出部３１０は、記憶装置１０４にアクセスして通信の履歴を読み出す（Ｓ１５００）。この通信は、ＨＴＴＰに準拠しているものとして説明をすすめる。次に、検出部３１０は、読み出したその履歴を通信のセッション毎に分類する（Ｓ１５１０）。
【００６４】
この分類の実現方法は、セッションの実現方法によって異なる。例えば、検出部３１０は、ＨＴＴＰリクエストを、そのＨＴＴＰリクエストの所定のフィールドに設定されたセッションＩＤによって分類してもよい。また、検出部３１０は、ＨＴＴＰリクエストを、そのＨＴＴＰリクエストの宛先ＵＲＬの末尾に付加されたセッションＩＤによって分類してもよい。
【００６５】
次に、検出部３１０は、分類したそれぞれの履歴から、ＧＥＴコマンドまたはＰＯＳＴコマンド以外のコマンドを含むリクエストを除外する（Ｓ１５２０）。また、これに伴い、検出部３１０は、除外したそのリクエストに対応するレスポンスを除外する。
【００６６】
次に、検出部３１０は、分類したそれぞれの履歴の中から、ＨＴＭＬデータのレスポンスを選択する（Ｓ１５３０）。これは、Ｃｏｎｔｅｎｔ−Ｔｙｐｅフィールドが「ｔｅｘｔ／ｈｔｍｌ」に設定されたＨＴＴＰレスポンスを選択することで実現される。そして、検出部３１０は、選択したそのレスポンス以外のレスポンスに対応するリクエストを除外する。これにより、ある画面の一部分を構成する画像のリクエストなどを除外できる。
【００６７】
次に、検出部３１０は、分類したそれぞれの履歴の中から、状態コードがエラーまたは無効を示すレスポンスを選択する（Ｓ１５４０）。そして、検出部３１０は、選択したレスポンスに対応するリクエストを、その履歴の中から除外する。
【００６８】
そして、検出部３１０は、セッション毎に分類され、かつ、上記各種条件に基づき不要部分が除外された履歴の中から、予め定められた基準頻度以上の頻度で現れる通信シーケンスを検出する（Ｓ１５５０）。例えば、検出部３１０は、時系列の通信履歴を先頭から順次走査して、最長一致となるような通信シーケンスを複数検出する。即ち例えば、画面１、画面２、画面３、および画面４という遷移と、画面５、画面１、画面２、画面３という遷移とが履歴に含まれる場合においては、これらの共通部分のうちの最長部分である画面１、画面２および画面３という遷移を発生させる通信シーケンスが検出される。
【００６９】
但し、基準頻度以上の頻度で表れたとしても、遷移する画面の数が基準数よりも少ない通信シーケンスについては、検出の対象から除外されてよい。そのような通信シーケンスは自動化してもあまり便利でなく、また、そのような通信シーケンスを含めて検出すると、検出される通信シーケンスが多過ぎてより重要な通信シーケンスが埋没してしまうからである。
【００７０】
図１６は、Ｓ１４５０においてウェブ・ブラウザ１０６に表示される画面１０６Ｘの一例を示す。設定部３５０は、検出部３１０により検出された通信シーケンスのそれぞれを画面１０６Ｘとしてウェブ・ブラウザ１０６に一覧表示する。具体的には、設定部３５０は、通信シーケンスの識別番号（ＩＤ）、遷移する各画面のサムネイル画像、通信シーケンスに含まれるリクエストの数、および、検出の頻度を表示してよい。
【００７１】
これに加えて、設定部３５０は、それぞれの通信シーケンスを再現するためのプログラムを作成するかどうかの入力を受け付ける。例えば、画面１０６Ｘの右端のカラムには、プログラム作成のためのハイパーリンクが表示される。ユーザがこのハイパーリンクをクリックすると、対応する通信シーケンスを再現するためのプログラム作成が開始される。図１７にその場合の画面１０６Ｘを示す。
【００７２】
図１７は、Ｓ１４６０においてウェブ・ブラウザ１０６に表示される画面１０６Ｘの一例を示す。画面１０６Ｘの上部に示すように、生成部３６０は、ユーザからプログラム名の入力を受け付ける。ここに入力されたプログラム名は、生成されるプログラムに対応付けて記憶装置１０４に格納される。これに加えて、生成部３６０は、ユーザからプログラムの説明の入力を受け付けて、そのプログラムの説明をそのプログラムに対応付けて記憶装置１０４に格納してよい。
【００７３】
また、設定部３５０は、画面１０６Ｘの中央から下側において、各種入力パラメータの設定の入力を受け付ける。ここに表示される入力パラメータは、第１選択部３２０若しくは第２選択部３３０により選択され、または、一致判断部３４０により照合されたパラメータである。
【００７４】
例えば、番号１の入力パラメータは、第１選択部３２０により選択された入力パラメータを示す。これについて、設定部３５０は、この入力パラメータのＩＤと、履歴においてこの入力パラメータに設定されていたパラメータ値とを表示する。ここでは、ＩＤとして「ｎａｍｅ」が表示され、パラメータ値として「ｖｈ００１，ｖｈ００２，ｖｈ００３」が表示される。
【００７５】
この入力パラメータは、例えば上記図９に示すリクエスト５０Ｃに設定されていた入力パラメータ「ｎａｍｅ」に対応する。この「ｎａｍｅ」について、通信シーケンスの毎に「ｖｈ００１，ｖｈ００２，ｖｈ００３」のように異なるパラメータ値が設定されていたとすれば、設定部３５０は、この画面１０６Ｘのようにその旨を表示する。
【００７６】
これに加えて、設定部３５０は、この入力パラメータに設定するために入力受付部３７０により新たなパラメータ値の入力を受け付けさせるかどうかを、ユーザの指示に基づいて設定させる。これは、例えばこの画面１０６Ｘの右端のカラムのラジオボタンにより実現される。「可変パラメータ」のラジオボタンが選択されると、この設定に基づくプログラムの動作により、入力受付部３７０は、この入力パラメータに設定するために新たなパラメータ値の入力を受け付ける。
【００７７】
この場合には、さらに、設定部３５０は、この入力パラメータに設定するラベル名および説明の入力を受け付ける。ここで入力されたラベル名および説明は、入力受付部３７０による通信シーケンスの実行時に、ユーザによる入力のガイドのために表示されてよい。
【００７８】
一方、「固定パラメータ」のラジオボタンが選択された場合には、設定部３５０は、この入力パラメータに設定するための新たなパラメータ値の入力を受け付けさせない。この場合において、設定部３５０は、この入力パラメータに設定する固定パラメータの入力を受け付けてもよい。例えば、「固定パラメータ」のラジオボタンに対応して表示した入力ボックスに入力された文字列が、固定パラメータとして設定される。この場合には、入力受付部３７０は、この固定パラメータを第１選択部３２０により選択された入力パラメータに設定して通信シーケンスを実行させることとなる。
【００７９】
番号２の入力パラメータは、第２選択部３３０により選択された複数の入力パラメータをまとめて示している。これについて、設定部３５０は、当該複数の入力パラメータのそれぞれのＩＤと、履歴においてこれらの入力パラメータに共通して設定されていたパラメータ値とを表示する。ここでは、ＩＤとして「ｎａｍｅ，ｉｄ，ｐａｒａｍ」が表示され、パラメータ値として「ｔｅｒｍ００２」が表示される。これは、パラメータｎａｍｅ、パラメータｉｄ、および、パラメータｐａｒａｍのそれぞれに、パラメータ値ｔｅｒｍ００２が共通して設定されていたことを示す。
【００８０】
設定部３５０は、使用者の指示に基づいて、これらの入力パラメータを集約するかどうかを設定する。これは、例えば画面１０６Ｘの右端のカラムにより実現される。即ち、「ＹＥＳ」のラジオボタンが選択された場合において、設定部３５０は、これらの入力パラメータを集約する。この設定がされた場合において、入力受付部３７０は、通信シーケンスの実行時にこれらの入力パラメータに共通して設定するべきパラメータ値の入力を受け付ける。この場合には、入力受付部３７０は、上記番号１のパラメータの例と同様、画面１０６Ｘにて入力させたラベル名および説明を表示してよい。
【００８１】
番号３の入力パラメータは、一致判断部３４０により照合されて、レスポンスに含まれるパラメータと一致すると判断されたパラメータを示す。これについて、設定部３５０は、レスポンスに設定されたパラメータのＩＤと、そのレスポンス以降に送信されたリクエストに設定されたパラメータのＩＤと、これらのパラメータに共通して設定されていたパラメータ値とを表示する。
【００８２】
画面１０６Ｘの例では、レスポンス側のＩＤとして「ｓｅｃｕｒｅ  ｉｄ」が表示され、リクエスト側のＩＤとして「ａｕｔｈ  ｉｄ」が表示され、共通するパラメータ値として「３２３５６４」が表示される。そして、設定部３５０は、通信シーケンスの再現時に、このレスポンス側のＩＤに設定されたパラメータ値を、そのまま、以降のリクエストのＩＤに設定するかどうかの入力を受け付ける。
【００８３】
これは、画面１０６Ｘの右端のカラムにより実現される。即ち、「ＹＥＳ」のラジオボタンが選択された場合には、設定部３５０は、通信シーケンスの再現時において、このレスポンスに設定されたパラメータ値をリクエストに設定させる。一方、「ＮＯ」のラジオボタンが選択された場合には、設定部３５０は、通信シーケンスの再現時において、このレスポンスに設定されたパラメータ値をリクエストに設定させない。
【００８４】
この場合には、設定部３５０は、通信シーケンスの再現時においてリクエストに設定するべきパラメータ値の入力を入力受付部３７０に受け付けさせる。この際には、上記の例と同様、画面１０６Ｘで入力されたラベル名および説明が画面１０６Ｙに表示されてよい。
【００８５】
以上のような入力パラメータの設定に加えて、設定部３５０は、通信シーケンスの自動実行を中断させる設定を行ってよい。具体的には、画面１０６Ｘの番号１のオプションを通じて、設定部３５０は、入力パラメータに関連する画面において通信シーケンスの自動実行を中断させるよう指定することができる。また、自動実行を中断させる画面の指定方法としては、開始から何番目の画面であるかを示す番号であってもよいし、中断させる画面のＵＲＬであってもよい。これらの入力に基づき、設定部３５０は、実行部３８０により実行される通信シーケンスによる画面遷移のうち、遷移を一時中断させる画面を設定する。
【００８６】
そして、生成部３６０は、「決定」ボタンの操作を受けると、以上の設定を反映させたプログラムを生成して記憶装置１０４に格納する。このプログラムは、通信シーケンス再現のために順次送信するべき複数のリクエストと、新たにパラメータ値の入力を受け付ける指令と、を少なくとも含む。このプログラムに基づく入力受付部３７０および実行部３８０の処理の流れ一例を図１８に示す。
【００８７】
図１８は、本実施形態に係る代行システム１０８がユーザの指示に基づいてその操作を代行する処理の流れを示す。クライアント・コンピュータ１００やその他のクライアント・コンピュータは、記憶装置１０４などの記憶装置からプログラム名を読み出して一覧表示する（Ｓ１８００）。そして、ユーザにより指定されたプログラム名に対応するプログラムを、記憶装置から読み出して実行することで、下記の処理を行う。
【００８８】
まず、入力受付部３７０は、新たなパラメータ値の入力を受け付けるフォームをウェブ・ブラウザ１０６に表示する（Ｓ１８０５）。フォームは、上記設定部３５０により設定されたラベル名および説明が付加されて表示されてよい。また、通信シーケンスの一時停止が設定されている場合において、入力受付部３７０は、停止前までに送信するリクエストに設定するべきパラメータ値の入力を受け付け、再開後に送信するリクエストに設定するべきパラメータ値の入力についてはここでは受け付けない。
【００８９】
そして、実行部３８０は、通信シーケンスの実行を開始する指示を受けたことを条件に（Ｓ１８１０：ＹＥＳ）、まず、最初のリクエストを送信する（Ｓ１８２０）。リクエストには、必要に応じて、新たに受け付けたパラメータ値が設定される。
【００９０】
これに応じたレスポンスを受けたことを条件に（Ｓ１８３０：ＹＥＳ）、実行部３８０は、予め定められた終了条件が成立したかどうかを判断する（Ｓ１８４０）。終了条件は、正常終了によるものと、エラー発生によるものとがあってよい。正常終了による終了条件とは、通信シーケンスに含まれる全てのリクエストを送信し終えた場合である。
【００９１】
エラー発生による終了条件は例えば下記の通りである。実行部３８０は、通信シーケンスの実行中に、状態コードがエラーまたは無効を示すレスポンスを受信したかどうかを判断する。そして、そのようなレスポンスを受信した場合には、実行部３８０は、エラー発生による終了条件が成立したと判断して図１８の処理を終了する。
【００９２】
また、実行部３８０は、通信シーケンスの実行中に受信したレスポンスを、履歴に含まれるレスポンスと比較することで、エラー発生を判断してよい。その結果、パラメータ値を除きこれらが一致していれば、当該通信シーケンスの実行を継続し、一致していなければ、当該通信シーケンスにエラーが発生したと判断してよい。これを実現するために、プログラムは、履歴として記憶されていた各レスポンスを含んでいることが望ましい。
【００９３】
終了条件が成立しない場合に（Ｓ１８４０：ＮＯ）、実行部３８０は、設定部３５０により一時停止の設定された画面への遷移に対応する通信を行ったかどうかを判断する（Ｓ１８５０）。当該通信を行ったかどうかの判断は、例えば、設定部３５０により設定された画面遷移の回数（例えば図１７の画面最下部に入力された数字）と実行部３８０により送信されたリクエストの回数とを比較することで実現されてよい。
【００９４】
当該通信を行ったことを条件に（Ｓ１８５０：ＹＥＳ）、入力受付部３７０は、通信シーケンスの実行を中断させて、再開後の通信シーケンスに含まれる各リクエストに設定するべき新たなパラメータ値の入力を受け付けるために、入力フォームを表示する（Ｓ１８６０）。その場合には、直近に受信したレスポンスの必要部分が併せて表示されてよい。
【００９５】
そして、通信再開の指示を受けたことを条件に（Ｓ１８７０：ＹＥＳ）、実行部３８０は、入力フォームに入力された当該新たなパラメータ値を設定して当該通信シーケンスを再開させる。具体的には、実行部３８０は、未処理の次のリクエストを送信する（Ｓ１８８０）。その後、処理はＳ１８２０に戻り、終了条件が成立するまで順次通信シーケンスが継続して実行される。
【００９６】
図１９は、Ｓ１８０５においてウェブ・ブラウザ１０６に表示される画面１０６Ｙの一例を示す。入力受付部３７０は、例えば「仮想ホスト名」や「Webモジュール名」などのラベル名を、パラメータ値の入力欄に対応付けて表示する。そして、実行部３８０は、「実行」ボタンが操作されたことに応じて、通信シーケンスを実行する。その際、この入力欄に入力されたパラメータ値がリクエストに設定される。
【００９７】
図２０は、本実施形態に係るクライアント・コンピュータ１００のハードウェア構成の一例を示す。クライアント・コンピュータ１００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０２、ハードディスク・ドライブ１０４、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００９８】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００９９】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０２、ハードディスク・ドライブ１０４、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０２は、ネットワークを介して外部の装置と通信する。ハードディスク・ドライブ１０４は、クライアント・コンピュータ１００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスク・ドライブ１０４に提供する。
【０１００】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、クライアント・コンピュータ１００の起動時にＣＰＵ１０００が実行するブートプログラムや、クライアント・コンピュータ１００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスク・ドライブ１０４に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【０１０１】
クライアント・コンピュータ１００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されクライアント・コンピュータ１００にインストールされて実行される。プログラムがクライアント・コンピュータ１００等に働きかけて行わせる動作は、図１から図１９において説明したクライアント・コンピュータ１００における動作と同一であるから、説明を省略する。
【０１０２】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをクライアント・コンピュータ１００に提供してもよい。
【０１０３】
以上、本実施形態に係るクライアント・コンピュータ１００によれば、過去の通信履歴の中で頻出する通信シーケンスを選択して、その通信シーケンスを再現することで、複数の画面に対して行われる一連の操作を自動化してユーザの負荷を軽減できる。また、クライアント・コンピュータ１００は、通信シーケンスの毎に変更されているパラメータや、同一のパラメータ値が設定されているパラメータを検出して、自動実行時の入力パラメータに設定する。これにより、履歴に含まれる通信シーケンスと完全に同じ動作のみならず、自動実行時に必要な変更を加えた動作を行わせることができ、ユーザの利便性を向上できる。さらに、自動実行の一時停止や各種設定によれば、実行するべき通信シーケンスをより細かく調節することができる。
【０１０４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【０１０５】
【図１】図１は、本実施形態に係る情報システム１０の構成全体の概要を示す。
【図２】図２は、本実施形態に係るクライアント・コンピュータ１００がサーバ・コンピュータ２００と通信する具体例を示す。
【図３】図３は、本実施形態に係るリクエスト５０Ａの一例を示す。
【図４】図４は、本実施形態に係るレスポンス５２Ａの一例を示す。
【図５】図５は、本実施形態に係るウェブ・ブラウザ１０６がレスポンス５２Ａを受けて表示する画面１０６Ａの一例を示す。
【図６】図６は、本実施形態に係るリクエスト５０Ｂの一例を示す。
【図７】図７は、本実施形態に係るレスポンス５２Ｂの一例を示す。
【図８】図８は、本実施形態に係るウェブ・ブラウザ１０６がレスポンス５２Ｂを受けて表示する画面１０６Ｂの一例を示す。
【図９】図９は、本実施形態に係るリクエスト５０Ｃの一例を示す。
【図１０】図１０は、本実施形態に係るレスポンス５２Ｃの一例を示す。
【図１１】図１１は、本実施形態に係るウェブ・ブラウザ１０６がレスポンス５２Ｃを受けて表示する画面１０６Ｃの一例を示す。
【図１２】図１２は、本実施形態に係るリクエスト５０Ｄの一例を示す。
【図１３】図１３は、本実施形態に係る代行システム１０８の機能構成の一例を示す。
【図１４】図１４は、本実施形態に係る代行システム１０８が通信の履歴に基づいてプログラムを生成する処理の流れを示す。
【図１５】図１５は、Ｓ１４１０における処理の流れの詳細を示す。
【図１６】図１６は、Ｓ１４５０においてウェブ・ブラウザ１０６に表示される画面１０６Ｘの一例を示す。
【図１７】図１７は、Ｓ１４６０においてウェブ・ブラウザ１０６に表示される画面１０６Ｘの一例を示す。
【図１８】図１８は、本実施形態に係る代行システム１０８がユーザの指示に基づいてその操作を代行する処理の流れを示す。
【図１９】図１９は、Ｓ１８０５においてウェブ・ブラウザ１０６に表示される画面１０６Ｙの一例を示す。
【図２０】図２０は、本実施形態に係るクライアント・コンピュータ１００のハードウェア構成の一例を示す。
【符号の説明】
【０１０６】
１０  情報システム
５０  リクエスト
５２  レスポンス
１００  クライアント・コンピュータ
１０２  通信インターフェイス
１０４  記憶装置
１０６  ウェブ・ブラウザ
１０８  代行システム
２００  サーバ・コンピュータ
２０２  通信インターフェイス
２０４  記憶装置
２０６  ウェブ・サーバ
３００  履歴取得部
３１０  検出部
３２０  第１選択部
３３０  第２選択部
３４０  一致判断部
３５０  設定部
３６０  生成部
３７０  入力受付部
３８０  実行部
【図１】
0005246640.tif 000002
【図２】
0005246640.tif 000003
【図３】
0005246640.tif 000004
【図４】
0005246640.tif 000005
【図５】
0005246640.tif 000006
【図６】
0005246640.tif 000007
【図７】
0005246640.tif 000008
【図８】
0005246640.tif 000009
【図９】
0005246640.tif 000010
【図１０】
0005246640.tif 000011
【図１１】
0005246640.tif 000012
【図１２】
0005246640.tif 000013
【図１３】
0005246640.tif 000014
【図１４】
0005246640.tif 000015
【図１５】
0005246640.tif 000016
【図１６】
0005246640.tif 000017
【図１７】
0005246640.tif 000018
【図１８】
0005246640.tif 000019
【図１９】
0005246640.tif 000020
【図２０】
0005246640.tif 000021