JP5246640B2 - ユーザの操作を自動化する技術 - Google Patents

ユーザの操作を自動化する技術 Download PDF

Info

Publication number
JP5246640B2
JP5246640B2 JP2007255952A JP2007255952A JP5246640B2 JP 5246640 B2 JP5246640 B2 JP 5246640B2 JP 2007255952 A JP2007255952 A JP 2007255952A JP 2007255952 A JP2007255952 A JP 2007255952A JP 5246640 B2 JP5246640 B2 JP 5246640B2
Authority
JP
Japan
Prior art keywords
input
unit
parameter value
communication
parameter
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
JP2007255952A
Other languages
English (en)
Other versions
JP2009087032A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2007255952A priority Critical patent/JP5246640B2/ja
Priority to US12/234,769 priority patent/US9355059B2/en
Publication of JP2009087032A publication Critical patent/JP2009087032A/ja
Application granted granted Critical
Publication of JP5246640B2 publication Critical patent/JP5246640B2/ja
Priority to US15/132,367 priority patent/US9832285B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、ユーザの操作を自動化する技術に関する。特に、本発明は、通信の履歴に基づいてユーザの操作を自動化する技術に関する。
近年、ウェブページには、チェックボックス、ラジオボタンおよび入力フォームなどの、ユーザの入力を受け付けるための様々なオブジェクトが設けられている。ユーザは、ある目的、例えば商品の購入、情報の表示又は設定値の変更、などを実現するために、次々に表示される複数のウェブページにおいてこれらのオブジェクトを操作する。時には、ユーザが行う一連の操作は、過去にそのユーザが行う一連の操作と似通っている場合がある。そのような場合であっても、所定の目的を達するためには、ユーザはその一連の操作を最初からやり直さなければならない。
下記の特許文献1−3には、ユーザの操作を自動化する技術が開示されている。
特開平10−340277号公報 特開2002−7020号公報 特開2001−290809号公報
ユーザの操作を自動化するために、マウスおよびキーボードが受けた操作を再現する方法が考えられる。しかしながら、この方法は、操作を記憶するためのコンピュータと操作を再現するコンピュータとが、実質的に同一のコンピュータでなければならないので、汎用的でない。例えば操作を記憶するためのコンピュータと操作を再現するコンピュータとの間で画面の解像度やウィンドウの配置が異なると、操作を正しく再現できない。
また、そもそも、過去の操作と全く同じ操作を再現してもあまり有用でない場合が多い。例えば、商品の購入において、購入に至る過程は似通っていても、購入する商品は異なる場合が多い。また、設定値の変更において、変更の手順は似通っていても、設定値自体は異なる場合が多い。このように、自動化する部分と自動化しない部分とを区別するためには、ユーザによる判断が必要になり、ユーザの手間がかかる場合が多い。
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
上記課題を解決するために、本発明の第1の形態においては、ユーザの操作を代行するシステムであって、記憶装置と、クライアント・コンピュータがユーザの操作を受けてサーバ・コンピュータと通信する履歴を取得して前記記憶装置に格納する履歴取得部と、前記記憶装置にアクセスして、それぞれが前記クライアント・コンピュータに同一の画面遷移を発生させる複数の通信シーケンスを前記履歴の中から検出する検出部と、前記記憶装置にアクセスして、前記複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する第1選択部と、前記選択した入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力をクライアント・コンピュータにより受け付けさせる入力受付部と、当該新たなパラメータ値の入力に応じて、当該新たなパラメータ値を前記選択した入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を発生させる通信シーケンスをクライアント・コンピュータにより実行させる実行部とを備えるシステムを提供する。また、当該システムとしてコンピュータを機能させるプログラム、および、当該システムによりユーザの操作を代行させる方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る情報システム10の構成全体の概要を示す。情報システム10は、クライアント・コンピュータ100と、サーバ・コンピュータ200とを備える。クライアント・コンピュータ100は、基本的なハードウェアとして、ネットワーク・インターフェイス・カードなどの通信インターフェイス102と、ハードディスク・ドライブなどの記憶装置104とを有する。また、記憶装置104に記憶されたプログラムを中央処理装置が実行することで、クライアント・コンピュータ100はウェブ・ブラウザ106および代行システム108として機能する。
サーバ・コンピュータ200は、基本的なハードウェアとして、ネットワーク・インターフェイス・カードなどの通信インターフェイス202と、ハードディスク・ドライブなどの記憶装置204とを有する。また、記憶装置204に記憶されたプログラムを中央処理装置が実行することで、サーバ・コンピュータ200は、ウェブ・サーバ206として機能する。
ウェブ・ブラウザ106は、ユーザの操作に応じて、HTTP(Hypertext Transfer Protocol)などの通信プロトコルに準拠したリクエスト50をウェブ・サーバ206に送信する。ウェブ・サーバ206は、これに応じて、HTTPなどに準拠したレスポンス52をウェブ・ブラウザ106に返信する。これを受けて、ウェブ・ブラウザ106に表示される画面は他の画面に遷移する。
ユーザは、このようにして次々に遷移する画面を操作する。これにより、所望の目的、例えばサーバ・コンピュータ200内に保存された設定値を変更したり、サーバ・コンピュータ200により実現されるウェブサイトで商品を購入したりすることができる。
代行システム108は、クライアント・コンピュータ100がユーザの操作を受けてサーバ・コンピュータ200と通信する履歴を記録する。そして、代行システム108は、その履歴から、例えば高頻度で繰り返される通信シーケンスを検出する。また、代行システム108は、それらの通信シーケンスの中から、通信シーケンスごとにパラメータ値が変更された入力パラメータを選択する。
そして、代行システム108は、選択したその入力パラメータに設定するための新たなパラメータ値の入力を受け付けると共に、そのパラメータ値の入力に応じてその通信シーケンスを再現する。すると、クライアント・コンピュータ100は、あたかもユーザによる一連の操作を再度受けたかのように動作する。これにより、使用者は最初にパラメータ値を入力するだけで、過去に行った処理を再現できる。
このように、本実施形態に係る代行システム108は、単に通信シーケンスを再現するのみならず、再現すると便利な一連のシーケンスを自動的に検出するとともに、必要な可変パラメータを自動的に選択することで、使用者の利便性を向上させることを目的とする。以下、具体的に説明する。
図2は、本実施形態に係るクライアント・コンピュータ100がサーバ・コンピュータ200と通信する具体例を示す。ユーザは、ある目的を達成するために、次々に遷移する複数のウェブページに対し所定の操作を行う場合がある。この図2では、そのようなウェブページの画面の集合を画面106A、画面106Bおよび画面106Cとする。
また、画面106Aをウェブ・ブラウザ106に表示させるためにクライアント・コンピュータ100が送信するリクエストを50Aとする。そして、リクエスト50Aに対するレスポンスを52Aとする。また、ユーザが画面106Aを操作したことに応じてクライアント・コンピュータ100が送信するリクエストを50Bとする。そして、リクエスト50Bに対するレスポンスを52Bとする。ウェブ・ブラウザ106はレスポンス52Bを受けて画面106Bを表示する。
また、ユーザが画面106Bを操作したことに応じてクライアント・コンピュータ100が送信するリクエストを50Cとする。そして、リクエスト50Cに対するレスポンスを52Cとする。ウェブ・ブラウザ106はレスポンス52Cを受けて画面106Cを表示する。また、ユーザが画面106Cを操作したことに応じてクライアント・コンピュータ100が送信するリクエストを50Dとする。
図3は、本実施形態に係るリクエスト50Aの一例を示す。第1行目は、リクエストラインを示し、具体的には、コマンド名「POST」、パス名「/admin/secure/logon.do」およびプロトコル名「HTTP/1.1」を含む。2−4行目は、ウェブ・ブラウザ106が受け入れるファイルの属性を示す。5行目は、ウェブ・ブラウザ106の種類などを示す。
6行目は、リクエストの送信先となるサーバ・コンピュータ200のホスト名を示す。たとえばここでは「terminal□□□」がサーバ・コンピュータ200のホスト名である。1行目と併せて把握すると、このリクエスト50Aは、URL「terminal□□□/admin/secure/logon.do」により指定されるウェブページを要求している。なお、7行目は、接続の継続を要求することを示す。
図4は、本実施形態に係るレスポンス52Aの一例を示す。図3に示すリクエスト50Aに対し、図4に示すレスポンス52Aが返信される。第1行目は、プロトコル名「HTTP/1.1」および通信が成功したことを示す識別子「200 OK」を示す。2行目は、通信日時を示す。3行目は、ウェブ・サーバ206の種類を示す。4行目は、レスポンス52Aに含まれるコンテンツの種類を示し、具体的には「text/html」はHTMLデータであることを示す。
また、「UTF−8」は文字コードを示す。5行目は、レスポンス52Aに含まれるコンテンツの言語設定を示す。また、7行目以降は、ウェブ・ブラウザ106に表示するべきウェブページを示す。例えばこの図4の例で、ウェブページは、HTMLタグおよびHEADタグから始まる。このレスポンス52Aを受けてウェブ・ブラウザ106は図5に示す画面106Aを表示する。
図5は、本実施形態に係るウェブ・ブラウザ106がレスポンス52Aを受けて表示する画面106Aの一例を示す。画面106Aは、例えば、所定のサーバ(サーバ・コンピュータ200がそのサーバを兼用していてもよい)を管理し、または、そのサーバの設定を変更するための画面を示す。
具体的には、アドレス欄にはリクエスト50Aによって指定されたURL「terminal□□□/admin/secure/logon.do」が表示される。また、画面左側には、設定変更のための各種メニューが表示される。その中の「仮想ホスト」をユーザがクリックすると、画面右下のウィンドウが表示される。
この「仮想ホスト」は、物理的な1つのコンピュータを、あたかも複数のコンピュータが動作しているかのように他のコンピュータに認識させる機能を示す。このウィンドウは、新たな仮想ホストを作成するための操作をユーザから受け付ける。例えば、画面106A中央下寄りにある「新規作成」というボタンをユーザが操作すると、サーバ・コンピュータ200は新たな仮想ホストの生成処理を開始する。このボタンが操作された場合にウェブ・ブラウザ106が送信するリクエストを図6に示す。
図6は、本実施形態に係るリクエスト50Bの一例を示す。第1行目は、図3に示すリクエストラインと概ね同様であるが、パス名は異なっている。即ち、第1行目は、「/admin/virtualHostCollection.do」というパス名により指定されるウェブページを要求することを示す。第2行目から第7行目は図3に示すリクエスト50Aと略同一であるから説明を省略する。
第1行目から第7行目までの部分(ヘッダ部という)以降は、リクエスト50Bの本体部である。例えばX行目は、ユーザの操作に基づく入力パラメータを示す。その中の「button.new=xxxx」という部分は、ユーザにより「新規作成」ボタンが操作されたことを示す。このように、ユーザによる操作は、入力パラメータ「button.new」およびそのパラメータ値「xxxx」の組として表現されて、リクエスト50Bに含めてウェブ・サーバ206に対し送信される。
図7は、本実施形態に係るレスポンス52Bの一例を示す。第1行目から第5行目までのヘッダ部分は、図4に示すレスポンス52Aと略同一であるから説明を省略する。一方、ヘッダ部分以降の本体部分は、ウェブ・ブラウザ106に表示するべきウェブページを示す。例えば第Y行目から第(Y+8)行目は、各種テキストおよび入力欄を、HTMLのテーブル機能を利用して整列して表示させるための各種のタグを含む。
具体的には、<tr>タグは、テーブル内の行方向の要素を指定するタグであり、<td>タグは、テーブル内のある行に含まれるセルを指定するタグである。この結果、第(Y+2)行目に含まれる「名前」というテキストは、ウェブページ内の所定の位置に整列して表示される。また、第(Y+6)行目に指定されるイメージ・データ、および、第(Y+7)行目に指定される入力欄は、並べて表示される。
図8は、本実施形態に係るウェブ・ブラウザ106がレスポンス52Bを受けて表示する画面106Bの一例を示す。画面106Aにおいてユーザが「新規作成」ボタンを操作したことに応じて、ウェブ・ブラウザ106の画面はこの画面106Bに遷移する。画面106Bの右下には、仮想ホストの名前の入力を受け付けるためのウィンドウが表示される。
このウィンドウには、図7を参照して説明したように、「名前」というテキストデータと、例えば星型のイメージ・データと、入力欄とが整列して表示される。使用者は、この入力欄に文字列を入力して「OK」というボタンを操作することで、仮想ホストの名前を決定できる。ここでは、「vh005」という文字列が入力されボタン「OK」が操作されたものとして説明をすすめる。
図9は、本実施形態に係るリクエスト50Cの一例を示す。第1行目は、図3に示すリクエストラインと概ね同様であるが、パス名は異なっている。即ち、第1行目は、「/admin/virtualHostDetail.do」というパス名により指定されるウェブページを要求することを示す。第2行目から第7行目は図3に示すリクエスト50Aと略同一であるから説明を省略する。
第1行目から第7行目までのヘッダ部分以降は、リクエスト50Cの本体部である。例えばZ行目は、ユーザの操作に基づく入力パラメータを示す。その中の「action=New」という部分は仮想ホストの新規作成が指示されたことを示し、「name=vh005」という部分は、その仮想ホストの名前が「vh005」であることを示し、「save=OK」という部分は、その仮想ホストの設定を保存するべきことを示す。
図10は、本実施形態に係るレスポンス52Cの一例を示す。第1行目から第5行目までのヘッダ部分は、図4に示すレスポンス52Aと略同一であるから説明を省略する。一方、ヘッダ部分以降の本体部分は、ウェブ・ブラウザ106に表示するべきウェブページを示す。例えば第W行目から第(W+9)行目は、入力パラメータ「column2」のパラメータ値を設定するためのプルダウンメニューを示す。
具体的には、第W行目は、設定するべき入力パラメータが「column2」であることを示す。また、第(W+1)行目から第(W+8)行目までのそれぞれは、プルダウンメニューに表示される項目を示す。具体的には、項目は、「default」、「admin_host」、「Test1 Host」、「vh001」、「vh002」、「vh003」、「vh004」、および「vh005」である。
図11は、本実施形態に係るウェブ・ブラウザ106がレスポンス52Cを受けて表示する画面106Cの一例を示す。画面106Bにおいてユーザが「OK」ボタンを操作したことに応じて、ウェブ・ブラウザ106の画面は画面106Bからこの画面106Cに遷移する。画面106Cの右下には、仮想ホストの詳細設定を行うためのウィンドウが表示される。
このウィンドウには、図10を参照して説明したように、入力パラメータにパラメータ値を設定するためのプルダウンメニューが表示される。使用者は、このプルダウンメニューを利用してパラメータ値を選択することで、例えばWebモジュールをインストールするホストを決定することができる。ここでは、「vh005」が選択されたものとする。
図12は、本実施形態に係るリクエスト50Dの一例を示す。第1行目から第7行目は図9に示すリクエスト50Cと略同一であるから説明を省略する。一方、本体部の第L行目は、入力パラメータ「column2」にパラメータ値「vh005」を設定することを示す。これにより、サーバ・コンピュータ200において仮想ホストvh005に対するインストール処理が開始される。
以上、図2から図12を参照して説明したように、例えば仮想ホストの新規作成という目的を達するために、ユーザは次々に表示されるウェブ・ブラウザ106の画面上で様々な操作を行う。操作とは、例えばボタンまたはタグなどのオブジェクトのクリックのみならず、入力欄への文字入力を含む。これらの操作に応じ、内部処理としては、ウェブ・ブラウザ106はリクエストを次々にウェブ・サーバ206に送信し、ウェブ・サーバ206はレスポンスを次々にウェブ・ブラウザ106に返信する。
本実施形態に係る代行システム108は、次の図13を参照して説明するように、これらの過去の一連の通信シーケンスの中から自動化するべき通信シーケンスを取り出してユーザに提供することで、ユーザの操作を代行してゆく。
図13は、本実施形態に係る代行システム108の機能構成の一例を示す。代行システム108は、履歴取得部300と、検出部310と、第1選択部320と、第2選択部330と、一致判断部340と、設定部350と、生成部360とを有する。履歴取得部300は、クライアント・コンピュータ100がユーザの操作を受けてサーバ・コンピュータ200と通信する履歴を取得して記憶装置104に格納する。
この履歴は、図1から図12に例示したリクエスト若しくはレスポンス、または、これらの組合せである。従って、履歴は、HTTPのコマンドおよびリクエスト先のURLのみならず、入力パラメータおよびそのパラメータ値などの、多様な情報を含む。
なお、本実施形態において履歴取得部300はクライアント・コンピュータ100に設けられ、ウェブ・ブラウザ106がウェブ・サーバ206に対し送信しようとしているリクエスト、および、ウェブ・ブラウザ106がウェブ・サーバ206から受信しようとしているレスポンスを履歴として取得する。これに代えて、履歴取得部300はサーバ・コンピュータ200に設けられ、ウェブ・サーバ206がウェブ・ブラウザ106から受信しようとしているリクエスト、および、ウェブ・サーバ206がウェブ・ブラウザ106に送信しようとしているレスポンスを履歴として取得してもよい。更に他の例として、履歴取得部300は、クライアント・コンピュータ100およびサーバ・コンピュータ200の間の通信を中継するプロキシ・サーバに設けられ、通信回線を転送されてゆくリクエストおよびレスポンスを履歴として取得してもよい。
検出部310は、記憶装置104にアクセスして、それぞれがクライアント・コンピュータ100に同一の画面遷移を発生させる複数の通信シーケンスを履歴の中から検出する。ここでいう画面遷移とは、たとえば、リクエストに含めて次々に送信されるURLにより定められる画面遷移をいう。具体的には、図1から図12までの例では、URL「/admin/secure/logon.do」により指定される画面から、URL「/admin/virtualHostCollection.do」により指定される画面を経て、URL「/admin/virtualHostDetai.do」により指定される画面に遷移している。
通信シーケンスの検出は、クライアント・コンピュータ100からサーバ・コンピュータ200に送信されるリクエストのリクエストライン、例えば図1から図12までの例では第1行を参照することで実現される。即ち例えば、まず、検出部310は、履歴に含まれる各リクエストを時系列に並べ替えたうえで、エラー発生などを示す不要なリクエストを除外する。そして、検出部310は、各リクエストからコマンド名およびURLを抽出する。そして、検出部310は、コマンド名がページの要求を示すことを条件に(例えばHTTPではPOSTまたはGETであることを条件に)、そのコマンド名に対応するURLを選択する。この結果選択されたURLの順列が画面遷移を示す。
検出部310は、このようにして履歴の中に含まれる全ての画面遷移を特定したうえで、同一の画面遷移を発生させる複数の通信シーケンスを履歴の中から検出する。例えば、検出部310は、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスとして検出してもよい。これは、例えば過去の予め定められた期間内に予め定められた基準回数以上の回数現れる通信シーケンスを検出することで実現される。この結果、頻出の画面遷移が特定される。
次に、第1選択部320は、記憶装置104にアクセスして、検出された当該複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する。例えば上記図5−6の例で、ボタン「新規作成」が操作された場合の入力パラメータ「button.new」に設定されるパラメータ値「xxxx」は、通信シーケンスごとには変更されない。
一方で、上記図8−9の例で、入力パラメータ「name」に設定されたパラメータ値「vh005」はユーザの操作によって変更され得る。第1選択部320は、このような入力パラメータを、実際にユーザがそのパラメータ値を変更したという履歴に基づいて選択する。一例として、この入力パラメータ「name」が通信シーケンスごとに例えば「vh001」、「vh002」または「vh003」などと変更されていたならば、第1選択部320は、この入力パラメータ「name」を選択する。
第2選択部330は、記憶装置104にアクセスして、検出部310により検出された複数の通信シーケンスのうち少なくとも1つの通信シーケンスについて、同一のパラメータ値が設定されている複数の入力パラメータを選択する。例えば、上記図9の例で、入力パラメータ「name」には、パラメータ値「vh005」が設定されている。そして、上記図12の例で、入力パラメータ「column2」にも、パラメータ値「vh005」が設定されている。従って、第2選択部330は、これらの入力パラメータ「name」および「column2」を選択する。
一致判断部340は、記憶装置104にアクセスして、検出部310により検出された当該複数の通信シーケンスのうち少なくとも1つの通信シーケンスについて、ある第1のレスポンスに含まれるある第1のパラメータのパラメータ値が、その第1のレスポンス以降に送信される第2のリクエストに含まれる第2パラメータのパラメータ値と一致するかどうかを判断する。
例えば、上記図10の第(W+8)行目で、第1のパラメータ「value」のパラメータ値「vh005」が、上記図12の第L行目で、第2のパラメータ「column2」のパラメータ値として設定されている。従って、一致判断部340は、これらのパラメータのパラメータ値が一致すると判断する。
次に、設定部350は、第1選択部320および第2選択部330による選択結果、および、一致判断部340による判断結果をユーザに表示して、その結果に基づいて通信シーケンスを自動化してよいかどうかをユーザに確認する。その確認の画面は画面106Xとして後に例示する。
生成部360は、設定部350による確認の結果に基づいて、クライアント・コンピュータ100により通信シーケンスを再現させるプログラムを生成して記憶装置104に格納する。このプログラムは、いわゆるウィザード・プログラムであり、ユーザから対話形式でパラメータ値の入力を受け付けて、通信シーケンスを再現するためのものである。このプログラムは、代行システム108自体により実行されてもよい。この場合、代行システム108は、入力受付部370および実行部380として機能する。
入力受付部370は、第1選択部320により選択された入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力を、例えばクライアント・コンピュータ100のウェブ・ブラウザ106により受け付けさせる。また、入力受付部370は、第2選択部330により選択された複数の入力パラメータに共通して設定するべき新たなパラメータ値の入力を、例えばクライアント・コンピュータ100のウェブ・ブラウザ106により受け付けさせる。但し、これらの入力パラメータについて新たなパラメータ値の入力を受け付けるかどうかは、生成部360によるユーザへの確認の結果に基づく。
そして、実行部380は、これらの新たなパラメータ値の入力に応じて、当該新たなパラメータ値を第1選択部320および第2選択部330により選択されたそれぞれの入力パラメータに設定して通信シーケンスを再現する。この通信シーケンスは、検出部310により検出されたそれぞれの通信シーケンスと同一の画面遷移を発生させる通信シーケンスである。例えば、実行部380は、記憶装置104から読み出した通信シーケンスのうち、入力パラメータのパラメータ値だけを変更して、ウェブ・サーバ206に対し送信してよい。
さらに、実行部380は、一致判断部340による判断の結果に基づいてパラメータ値を自動的に設定してもよい。即ち、実行部380は、通信シーケンスの実行中に上記第1のレスポンスに含めて受信した上記第1のパラメータのパラメータ値を、上記第1のレスポンス以降に送信する第2のリクエストに含まれる上記第2のパラメータに設定させる。これにより、レスポンスに基づき以降のリクエストを決定することができるので、自動化のバリエーションをより広げることができる。
なお、入力受付部370および実行部380は、クライアント・コンピュータ100に限らず、クライアント・コンピュータ100以外の他のクライアント・コンピュータに働きかけて、当該他のクライアント・コンピュータにより通信を再現させてもよい。具体的には、記憶装置104により生成されたプログラムは、記録媒体または電気通信回線によって他のクライアント・コンピュータに転送され、当該他のクライアント・コンピュータにより実行されてもよい。このように、履歴を取得するコンピュータとそれに基づき通信シーケンスを再現するコンピュータとは別であってよい。
図14は、本実施形態に係る代行システム108が通信の履歴に基づいてプログラムを生成する処理の流れを示す。履歴取得部300は、クライアント・コンピュータ100がユーザの操作を受けてサーバ・コンピュータ200と通信する履歴を取得して記憶装置104に格納する(S1400)。
次に、検出部310は、それぞれがクライアント・コンピュータ100に同一の画面遷移を発生させる複数の通信シーケンスであって、予め定められた基準頻度以上の頻度で表れる複数の通信シーケンスを検出する(S1410)。次に、第1選択部320は、検出された当該複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する(S1420)。
また、第2選択部330は、検出部310により検出された複数の通信シーケンスのうち少なくとも1つの通信シーケンスについて、同一のパラメータ値が設定されている複数の入力パラメータを選択する(S1430)。このような複数の入力パラメータは、ユーザの同意を条件に、一括入力のために集約される。即ち、通信シーケンスの再現時において、このような複数の入力パラメータのそれぞれには、同一のパラメータ値が設定される。
また、一致判断部340は、検出部310により検出された当該複数の通信シーケンスのうち少なくとも1つの通信シーケンスについて、ある第1のレスポンスに含まれるある第1のパラメータのパラメータ値を、その第1のレスポンス以降に送信される第2のリクエストに含まれる第2パラメータのパラメータ値と照合する(S1440)。
次に、設定部350は、第1選択部320および第2選択部330による選択結果、および、一致判断部340による照合結果をユーザに表示して(S1450)、その結果に基づいて通信シーケンスを自動化してよいかどうかをユーザに確認する(S1460)。
生成部360は、設定部350による確認の結果に基づいて、クライアント・コンピュータ100により通信シーケンスを再現させるプログラムを生成して記憶装置104に格納する(S1470)。このプログラムは、外部の他のクライアント・コンピュータに対し出力されてもよい。
図15は、S1410における処理の流れの詳細を示す。まず、検出部310は、記憶装置104にアクセスして通信の履歴を読み出す(S1500)。この通信は、HTTPに準拠しているものとして説明をすすめる。次に、検出部310は、読み出したその履歴を通信のセッション毎に分類する(S1510)。
この分類の実現方法は、セッションの実現方法によって異なる。例えば、検出部310は、HTTPリクエストを、そのHTTPリクエストの所定のフィールドに設定されたセッションIDによって分類してもよい。また、検出部310は、HTTPリクエストを、そのHTTPリクエストの宛先URLの末尾に付加されたセッションIDによって分類してもよい。
次に、検出部310は、分類したそれぞれの履歴から、GETコマンドまたはPOSTコマンド以外のコマンドを含むリクエストを除外する(S1520)。また、これに伴い、検出部310は、除外したそのリクエストに対応するレスポンスを除外する。
次に、検出部310は、分類したそれぞれの履歴の中から、HTMLデータのレスポンスを選択する(S1530)。これは、Content−Typeフィールドが「text/html」に設定されたHTTPレスポンスを選択することで実現される。そして、検出部310は、選択したそのレスポンス以外のレスポンスに対応するリクエストを除外する。これにより、ある画面の一部分を構成する画像のリクエストなどを除外できる。
次に、検出部310は、分類したそれぞれの履歴の中から、状態コードがエラーまたは無効を示すレスポンスを選択する(S1540)。そして、検出部310は、選択したレスポンスに対応するリクエストを、その履歴の中から除外する。
そして、検出部310は、セッション毎に分類され、かつ、上記各種条件に基づき不要部分が除外された履歴の中から、予め定められた基準頻度以上の頻度で現れる通信シーケンスを検出する(S1550)。例えば、検出部310は、時系列の通信履歴を先頭から順次走査して、最長一致となるような通信シーケンスを複数検出する。即ち例えば、画面1、画面2、画面3、および画面4という遷移と、画面5、画面1、画面2、画面3という遷移とが履歴に含まれる場合においては、これらの共通部分のうちの最長部分である画面1、画面2および画面3という遷移を発生させる通信シーケンスが検出される。
但し、基準頻度以上の頻度で表れたとしても、遷移する画面の数が基準数よりも少ない通信シーケンスについては、検出の対象から除外されてよい。そのような通信シーケンスは自動化してもあまり便利でなく、また、そのような通信シーケンスを含めて検出すると、検出される通信シーケンスが多過ぎてより重要な通信シーケンスが埋没してしまうからである。
図16は、S1450においてウェブ・ブラウザ106に表示される画面106Xの一例を示す。設定部350は、検出部310により検出された通信シーケンスのそれぞれを画面106Xとしてウェブ・ブラウザ106に一覧表示する。具体的には、設定部350は、通信シーケンスの識別番号(ID)、遷移する各画面のサムネイル画像、通信シーケンスに含まれるリクエストの数、および、検出の頻度を表示してよい。
これに加えて、設定部350は、それぞれの通信シーケンスを再現するためのプログラムを作成するかどうかの入力を受け付ける。例えば、画面106Xの右端のカラムには、プログラム作成のためのハイパーリンクが表示される。ユーザがこのハイパーリンクをクリックすると、対応する通信シーケンスを再現するためのプログラム作成が開始される。図17にその場合の画面106Xを示す。
図17は、S1460においてウェブ・ブラウザ106に表示される画面106Xの一例を示す。画面106Xの上部に示すように、生成部360は、ユーザからプログラム名の入力を受け付ける。ここに入力されたプログラム名は、生成されるプログラムに対応付けて記憶装置104に格納される。これに加えて、生成部360は、ユーザからプログラムの説明の入力を受け付けて、そのプログラムの説明をそのプログラムに対応付けて記憶装置104に格納してよい。
また、設定部350は、画面106Xの中央から下側において、各種入力パラメータの設定の入力を受け付ける。ここに表示される入力パラメータは、第1選択部320若しくは第2選択部330により選択され、または、一致判断部340により照合されたパラメータである。
例えば、番号1の入力パラメータは、第1選択部320により選択された入力パラメータを示す。これについて、設定部350は、この入力パラメータのIDと、履歴においてこの入力パラメータに設定されていたパラメータ値とを表示する。ここでは、IDとして「name」が表示され、パラメータ値として「vh001,vh002,vh003」が表示される。
この入力パラメータは、例えば上記図9に示すリクエスト50Cに設定されていた入力パラメータ「name」に対応する。この「name」について、通信シーケンスの毎に「vh001,vh002,vh003」のように異なるパラメータ値が設定されていたとすれば、設定部350は、この画面106Xのようにその旨を表示する。
これに加えて、設定部350は、この入力パラメータに設定するために入力受付部370により新たなパラメータ値の入力を受け付けさせるかどうかを、ユーザの指示に基づいて設定させる。これは、例えばこの画面106Xの右端のカラムのラジオボタンにより実現される。「可変パラメータ」のラジオボタンが選択されると、この設定に基づくプログラムの動作により、入力受付部370は、この入力パラメータに設定するために新たなパラメータ値の入力を受け付ける。
この場合には、さらに、設定部350は、この入力パラメータに設定するラベル名および説明の入力を受け付ける。ここで入力されたラベル名および説明は、入力受付部370による通信シーケンスの実行時に、ユーザによる入力のガイドのために表示されてよい。
一方、「固定パラメータ」のラジオボタンが選択された場合には、設定部350は、この入力パラメータに設定するための新たなパラメータ値の入力を受け付けさせない。この場合において、設定部350は、この入力パラメータに設定する固定パラメータの入力を受け付けてもよい。例えば、「固定パラメータ」のラジオボタンに対応して表示した入力ボックスに入力された文字列が、固定パラメータとして設定される。この場合には、入力受付部370は、この固定パラメータを第1選択部320により選択された入力パラメータに設定して通信シーケンスを実行させることとなる。
番号2の入力パラメータは、第2選択部330により選択された複数の入力パラメータをまとめて示している。これについて、設定部350は、当該複数の入力パラメータのそれぞれのIDと、履歴においてこれらの入力パラメータに共通して設定されていたパラメータ値とを表示する。ここでは、IDとして「name,id,param」が表示され、パラメータ値として「term002」が表示される。これは、パラメータname、パラメータid、および、パラメータparamのそれぞれに、パラメータ値term002が共通して設定されていたことを示す。
設定部350は、使用者の指示に基づいて、これらの入力パラメータを集約するかどうかを設定する。これは、例えば画面106Xの右端のカラムにより実現される。即ち、「YES」のラジオボタンが選択された場合において、設定部350は、これらの入力パラメータを集約する。この設定がされた場合において、入力受付部370は、通信シーケンスの実行時にこれらの入力パラメータに共通して設定するべきパラメータ値の入力を受け付ける。この場合には、入力受付部370は、上記番号1のパラメータの例と同様、画面106Xにて入力させたラベル名および説明を表示してよい。
番号3の入力パラメータは、一致判断部340により照合されて、レスポンスに含まれるパラメータと一致すると判断されたパラメータを示す。これについて、設定部350は、レスポンスに設定されたパラメータのIDと、そのレスポンス以降に送信されたリクエストに設定されたパラメータのIDと、これらのパラメータに共通して設定されていたパラメータ値とを表示する。
画面106Xの例では、レスポンス側のIDとして「secure id」が表示され、リクエスト側のIDとして「auth id」が表示され、共通するパラメータ値として「323564」が表示される。そして、設定部350は、通信シーケンスの再現時に、このレスポンス側のIDに設定されたパラメータ値を、そのまま、以降のリクエストのIDに設定するかどうかの入力を受け付ける。
これは、画面106Xの右端のカラムにより実現される。即ち、「YES」のラジオボタンが選択された場合には、設定部350は、通信シーケンスの再現時において、このレスポンスに設定されたパラメータ値をリクエストに設定させる。一方、「NO」のラジオボタンが選択された場合には、設定部350は、通信シーケンスの再現時において、このレスポンスに設定されたパラメータ値をリクエストに設定させない。
この場合には、設定部350は、通信シーケンスの再現時においてリクエストに設定するべきパラメータ値の入力を入力受付部370に受け付けさせる。この際には、上記の例と同様、画面106Xで入力されたラベル名および説明が画面106Yに表示されてよい。
以上のような入力パラメータの設定に加えて、設定部350は、通信シーケンスの自動実行を中断させる設定を行ってよい。具体的には、画面106Xの番号1のオプションを通じて、設定部350は、入力パラメータに関連する画面において通信シーケンスの自動実行を中断させるよう指定することができる。また、自動実行を中断させる画面の指定方法としては、開始から何番目の画面であるかを示す番号であってもよいし、中断させる画面のURLであってもよい。これらの入力に基づき、設定部350は、実行部380により実行される通信シーケンスによる画面遷移のうち、遷移を一時中断させる画面を設定する。
そして、生成部360は、「決定」ボタンの操作を受けると、以上の設定を反映させたプログラムを生成して記憶装置104に格納する。このプログラムは、通信シーケンス再現のために順次送信するべき複数のリクエストと、新たにパラメータ値の入力を受け付ける指令と、を少なくとも含む。このプログラムに基づく入力受付部370および実行部380の処理の流れ一例を図18に示す。
図18は、本実施形態に係る代行システム108がユーザの指示に基づいてその操作を代行する処理の流れを示す。クライアント・コンピュータ100やその他のクライアント・コンピュータは、記憶装置104などの記憶装置からプログラム名を読み出して一覧表示する(S1800)。そして、ユーザにより指定されたプログラム名に対応するプログラムを、記憶装置から読み出して実行することで、下記の処理を行う。
まず、入力受付部370は、新たなパラメータ値の入力を受け付けるフォームをウェブ・ブラウザ106に表示する(S1805)。フォームは、上記設定部350により設定されたラベル名および説明が付加されて表示されてよい。また、通信シーケンスの一時停止が設定されている場合において、入力受付部370は、停止前までに送信するリクエストに設定するべきパラメータ値の入力を受け付け、再開後に送信するリクエストに設定するべきパラメータ値の入力についてはここでは受け付けない。
そして、実行部380は、通信シーケンスの実行を開始する指示を受けたことを条件に(S1810:YES)、まず、最初のリクエストを送信する(S1820)。リクエストには、必要に応じて、新たに受け付けたパラメータ値が設定される。
これに応じたレスポンスを受けたことを条件に(S1830:YES)、実行部380は、予め定められた終了条件が成立したかどうかを判断する(S1840)。終了条件は、正常終了によるものと、エラー発生によるものとがあってよい。正常終了による終了条件とは、通信シーケンスに含まれる全てのリクエストを送信し終えた場合である。
エラー発生による終了条件は例えば下記の通りである。実行部380は、通信シーケンスの実行中に、状態コードがエラーまたは無効を示すレスポンスを受信したかどうかを判断する。そして、そのようなレスポンスを受信した場合には、実行部380は、エラー発生による終了条件が成立したと判断して図18の処理を終了する。
また、実行部380は、通信シーケンスの実行中に受信したレスポンスを、履歴に含まれるレスポンスと比較することで、エラー発生を判断してよい。その結果、パラメータ値を除きこれらが一致していれば、当該通信シーケンスの実行を継続し、一致していなければ、当該通信シーケンスにエラーが発生したと判断してよい。これを実現するために、プログラムは、履歴として記憶されていた各レスポンスを含んでいることが望ましい。
終了条件が成立しない場合に(S1840:NO)、実行部380は、設定部350により一時停止の設定された画面への遷移に対応する通信を行ったかどうかを判断する(S1850)。当該通信を行ったかどうかの判断は、例えば、設定部350により設定された画面遷移の回数(例えば図17の画面最下部に入力された数字)と実行部380により送信されたリクエストの回数とを比較することで実現されてよい。
当該通信を行ったことを条件に(S1850:YES)、入力受付部370は、通信シーケンスの実行を中断させて、再開後の通信シーケンスに含まれる各リクエストに設定するべき新たなパラメータ値の入力を受け付けるために、入力フォームを表示する(S1860)。その場合には、直近に受信したレスポンスの必要部分が併せて表示されてよい。
そして、通信再開の指示を受けたことを条件に(S1870:YES)、実行部380は、入力フォームに入力された当該新たなパラメータ値を設定して当該通信シーケンスを再開させる。具体的には、実行部380は、未処理の次のリクエストを送信する(S1880)。その後、処理はS1820に戻り、終了条件が成立するまで順次通信シーケンスが継続して実行される。
図19は、S1805においてウェブ・ブラウザ106に表示される画面106Yの一例を示す。入力受付部370は、例えば「仮想ホスト名」や「Webモジュール名」などのラベル名を、パラメータ値の入力欄に対応付けて表示する。そして、実行部380は、「実行」ボタンが操作されたことに応じて、通信シーケンスを実行する。その際、この入力欄に入力されたパラメータ値がリクエストに設定される。
図20は、本実施形態に係るクライアント・コンピュータ100のハードウェア構成の一例を示す。クライアント・コンピュータ100は、ホストコントローラ1082により相互に接続されるCPU1000、RAM1020、及びグラフィックコントローラ1075を有するCPU周辺部と、入出力コントローラ1084によりホストコントローラ1082に接続される通信インターフェイス102、ハードディスク・ドライブ104、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスクドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。
ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィックコントローラ1075は、CPU1000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス102、ハードディスク・ドライブ104、及びCD−ROMドライブ1060を接続する。通信インターフェイス102は、ネットワークを介して外部の装置と通信する。ハードディスク・ドライブ104は、クライアント・コンピュータ100が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020又はハードディスク・ドライブ104に提供する。
また、入出力コントローラ1084には、ROM1010と、フレキシブルディスクドライブ1050や入出力チップ1070等の比較的低速な入出力装置とが接続される。ROM1010は、クライアント・コンピュータ100の起動時にCPU1000が実行するブートプログラムや、クライアント・コンピュータ100のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、入出力チップ1070を介してRAM1020またはハードディスク・ドライブ104に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
クライアント・コンピュータ100に提供されるプログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ1070及び/又は入出力コントローラ1084を介して、記録媒体から読み出されクライアント・コンピュータ100にインストールされて実行される。プログラムがクライアント・コンピュータ100等に働きかけて行わせる動作は、図1から図19において説明したクライアント・コンピュータ100における動作と同一であるから、説明を省略する。
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをクライアント・コンピュータ100に提供してもよい。
以上、本実施形態に係るクライアント・コンピュータ100によれば、過去の通信履歴の中で頻出する通信シーケンスを選択して、その通信シーケンスを再現することで、複数の画面に対して行われる一連の操作を自動化してユーザの負荷を軽減できる。また、クライアント・コンピュータ100は、通信シーケンスの毎に変更されているパラメータや、同一のパラメータ値が設定されているパラメータを検出して、自動実行時の入力パラメータに設定する。これにより、履歴に含まれる通信シーケンスと完全に同じ動作のみならず、自動実行時に必要な変更を加えた動作を行わせることができ、ユーザの利便性を向上できる。さらに、自動実行の一時停止や各種設定によれば、実行するべき通信シーケンスをより細かく調節することができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
図1は、本実施形態に係る情報システム10の構成全体の概要を示す。 図2は、本実施形態に係るクライアント・コンピュータ100がサーバ・コンピュータ200と通信する具体例を示す。 図3は、本実施形態に係るリクエスト50Aの一例を示す。 図4は、本実施形態に係るレスポンス52Aの一例を示す。 図5は、本実施形態に係るウェブ・ブラウザ106がレスポンス52Aを受けて表示する画面106Aの一例を示す。 図6は、本実施形態に係るリクエスト50Bの一例を示す。 図7は、本実施形態に係るレスポンス52Bの一例を示す。 図8は、本実施形態に係るウェブ・ブラウザ106がレスポンス52Bを受けて表示する画面106Bの一例を示す。 図9は、本実施形態に係るリクエスト50Cの一例を示す。 図10は、本実施形態に係るレスポンス52Cの一例を示す。 図11は、本実施形態に係るウェブ・ブラウザ106がレスポンス52Cを受けて表示する画面106Cの一例を示す。 図12は、本実施形態に係るリクエスト50Dの一例を示す。 図13は、本実施形態に係る代行システム108の機能構成の一例を示す。 図14は、本実施形態に係る代行システム108が通信の履歴に基づいてプログラムを生成する処理の流れを示す。 図15は、S1410における処理の流れの詳細を示す。 図16は、S1450においてウェブ・ブラウザ106に表示される画面106Xの一例を示す。 図17は、S1460においてウェブ・ブラウザ106に表示される画面106Xの一例を示す。 図18は、本実施形態に係る代行システム108がユーザの指示に基づいてその操作を代行する処理の流れを示す。 図19は、S1805においてウェブ・ブラウザ106に表示される画面106Yの一例を示す。 図20は、本実施形態に係るクライアント・コンピュータ100のハードウェア構成の一例を示す。
符号の説明
10 情報システム
50 リクエスト
52 レスポンス
100 クライアント・コンピュータ
102 通信インターフェイス
104 記憶装置
106 ウェブ・ブラウザ
108 代行システム
200 サーバ・コンピュータ
202 通信インターフェイス
204 記憶装置
206 ウェブ・サーバ
300 履歴取得部
310 検出部
320 第1選択部
330 第2選択部
340 一致判断部
350 設定部
360 生成部
370 入力受付部
380 実行部

Claims (16)

  1. ユーザの操作を代行するシステムであって、
    記憶装置と、
    クライアント・コンピュータがユーザの操作を受けてサーバ・コンピュータと通信する履歴を取得して前記記憶装置に格納する履歴取得部と、
    前記記憶装置にアクセスして、それぞれが前記クライアント・コンピュータに同一の画面遷移を発生させる複数の通信シーケンスを前記履歴の中から検出する検出部と、
    前記記憶装置にアクセスして、前記複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する第1選択部と、
    前記選択した入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力をクライアント・コンピュータにより受け付けさせる入力受付部と、
    当該新たなパラメータ値の入力に応じて、当該新たなパラメータ値を前記選択した入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を発生させる通信シーケンスをクライアント・コンピュータにより実行させる実行部と
    を備えるシステム。
  2. 前記記憶装置にアクセスして、前記検出部により検出された前記複数の通信シーケンスのうちの少なくとも1つの通信シーケンスについて、同一のパラメータ値が設定されている複数の入力パラメータを選択する第2選択部を更に備え、
    前記入力受付部は、前記第2選択部により選択された前記複数の入力パラメータに共通して設定するべき新たなパラメータ値の入力を受け付けさせ、
    前記実行部は、受け付けた当該パラメータ値を、前記第2選択部が選択した前記複数の入力パラメータのそれぞれに設定して前記通信シーケンスを実行させる、請求項1に記載のシステム。
  3. 前記履歴取得部は、前記履歴として、前記クライアント・コンピュータが前記サーバ・コンピュータに対し送信するリクエスト、および、前記リクエストに対し前記サーバ・コンピュータが前記クライアント・コンピュータに返信するレスポンス、を取得し、
    前記記憶装置にアクセスして、前記検出部により検出された前記複数の通信シーケンスのうちの少なくとも1つの通信シーケンスについて、ある第1のレスポンスに含まれる第1パラメータのパラメータ値が、前記第1のレスポンス以降に送信される第2のリクエストに含まれる第2パラメータのパラメータ値と一致するかどうかを判断する一致判断部、
    を更に備え、
    前記第1および第2パラメータのパラメータ値が一致することを条件に、
    前記実行部は、前記通信シーケンスの実行中に前記第1のレスポンスに含めて受信した前記第1パラメータのパラメータ値を、前記第1のレスポンス以降に送信する前記第2のリクエストに含まれる前記第2パラメータに設定させる、請求項1又は2に記載のシステム。
  4. 前記第1選択部により選択された入力パラメータに設定するために前記入力受付部により新たなパラメータ値の入力を受け付けさせるかどうかを、ユーザの指示に基づいて設定する設定部、を更に備え、
    前記入力受付部は、前記設定部により新たなパラメータ値の入力を受け付けさせると設定されたことを条件に、新たにパラメータ値の入力を受け付けさせる、請求項1から3のいずれか1項に記載のシステム。
  5. 前記設定部は、前記第1選択部により選択された入力パラメータに設定するために新たなパラメータ値の入力を受け付けない場合に、さらに、当該入力パラメータに設定する固定パラメータをユーザの指示に基づいて設定し、
    前記実行部は、前記第1選択部により選択された入力パラメータに設定するために新たなパラメータ値の入力を受け付けない場合に、前記設定部により設定された前記固定パラメータを前記第1選択部により選択された入力パラメータに設定して前記通信シーケンスを実行させる、請求項4に記載のシステム。
  6. 前記入力受付部は、クライアント・コンピュータで動作するウェブ・ブラウザに当該新たなパラメータ値の入力を受け付けるフォームを表示し、
    前記実行部は、ユーザの指示に応じて、当該フォームに入力されたパラメータ値を前記選択された入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を行わせる通信シーケンスを実行する、請求項1から5のいずれか1項に記載のシステム。
  7. クライアント・コンピュータを前記入力受付部および前記実行部として機能させるプログラムを生成するとともに、ユーザからプログラム名の入力を受け付け、入力された前記プログラム名に対応付けて前記プログラムを前記記憶装置に格納する生成部を更に備え、
    前記クライアント・コンピュータは、前記記憶装置から前記プログラム名を読み出して表示すると共に、ユーザにより指定されたプログラム名に対応する前記プログラムを、前記記憶装置から読み出して実行する、請求項1から6のいずれか1項に記載のシステム。
  8. 前記実行部により実行される前記通信シーケンスによる画面遷移のうち、ユーザの指示に基づいて、遷移を一時中断させる画面を設定する設定部、を更に備え、
    前記実行部は、前記通信シーケンスの実行中に、前記設定部により設定された画面への遷移に対応する通信を行ったことを条件に、当該通信シーケンスの実行を中断させ、
    前記入力受付部は、当該通信シーケンスの実行を中断した場合に、再開後の通信におけるパラメータに設定するべき新たなパラメータ値の入力を受け付けさせ、さらに、
    前記実行部は、当該新たなパラメータ値の入力を受け付けたことを条件に、当該新たなパラメータ値を設定して当該通信シーケンスを再開させる、請求項1から7のいずれか1項に記載のシステム。
  9. 前記検出部は、同一の画面遷移を示す複数の通信シーケンスの中から、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスを検出する、請求項1から8のいずれか1項に記載のシステム。
  10. 前記検出部は、前記履歴を通信のセッション毎に分類し、分類したそれぞれのセッションについて、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスを検出する、請求項9に記載のシステム。
  11. 前記通信シーケンスはHTTP(Hypertext Transfer Protocol)のリクエストおよびレスポンスであり、
    前記画面遷移は、複数のウェブページを順次表示することを示し、
    前記履歴取得部は、前記履歴として、前記クライアント・コンピュータが前記サーバ・コンピュータに対し送信するリクエスト、および、前記リクエストに対し前記サーバ・コンピュータが前記クライアント・コンピュータに返信するレスポンス、を取得し、
    前記検出部は、前記履歴の中から、HTMLデータのレスポンスに対応するリクエストを選択し、選択した当該リクエストのシーケンスの中から、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスを検出する、請求項10に記載のシステム。
  12. 前記検出部は、前記履歴の中から、状態コードがエラーまたは無効を示すレスポンスに対応するリクエストを除外し、除外した当該リクエストのシーケンスの中から、予め定められた基準頻度以上の頻度で現れる複数の通信シーケンスを検出する、請求項11に記載のシステム。
  13. 前記実行部は、前記通信シーケンスの実行中に、状態コードがエラー又は無効を示すレスポンスを受信したことを条件に、前記通信シーケンスの実行を停止させる、請求項1から12のいずれか1項に記載のシステム。
  14. 前記実行部は、前記通信シーケンスの実行中に受信したレスポンスが、前記履歴に含まれるレスポンスと比較してパラメータ値を除き一致することを条件に、当該通信シーケンスの実行を継続させる、請求項13に記載のシステム。
  15. ユーザの操作を代行するシステムとして、記憶装置を有するコンピュータを機能させるプログラムであって、
    前記コンピュータを、
    クライアント・コンピュータがユーザの操作を受けてサーバ・コンピュータと通信する履歴を取得して前記記憶装置に格納する履歴取得部と、
    前記記憶装置にアクセスして、それぞれが前記クライアント・コンピュータに同一の画面遷移を発生させる複数の通信シーケンスを前記履歴の中から検出する検出部と、
    前記記憶装置にアクセスして、前記複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択する第1選択部と、
    前記選択した入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力をクライアント・コンピュータにより受け付けさせる入力受付部と、
    当該新たなパラメータ値の入力に応じて、当該新たなパラメータ値を前記選択した入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を発生させる通信シーケンスをクライアント・コンピュータにより実行させる実行部と
    して機能させるプログラム。
  16. 記憶装置を有するコンピュータによって、ユーザの操作を代行する方法であって、
    クライアント・コンピュータがユーザの操作を受けてサーバ・コンピュータと通信する履歴を取得して前記記憶装置に格納するステップと、
    前記記憶装置にアクセスして、それぞれが前記クライアント・コンピュータに同一の画面遷移を発生させる複数の通信シーケンスを前記履歴の中から検出するステップと、
    前記記憶装置にアクセスして、前記複数の通信シーケンスの何れにも含まれる入力パラメータのうち、通信シーケンスごとにパラメータ値が変更されている入力パラメータを選択するステップと、
    前記選択した入力パラメータのパラメータ値として設定するべき新たなパラメータ値の入力をクライアント・コンピュータにより受け付けさせるステップと、
    当該新たなパラメータ値の入力に応じて、当該新たなパラメータ値を前記選択した入力パラメータに設定して、検出したそれぞれの前記通信シーケンスと同一の画面遷移を発生させる通信シーケンスをクライアント・コンピュータにより実行させるステップと
    を備える方法。
JP2007255952A 2007-09-28 2007-09-28 ユーザの操作を自動化する技術 Active JP5246640B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007255952A JP5246640B2 (ja) 2007-09-28 2007-09-28 ユーザの操作を自動化する技術
US12/234,769 US9355059B2 (en) 2007-09-28 2008-09-22 Automating user's operations
US15/132,367 US9832285B2 (en) 2007-09-28 2016-04-19 Automating user's operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007255952A JP5246640B2 (ja) 2007-09-28 2007-09-28 ユーザの操作を自動化する技術

Publications (2)

Publication Number Publication Date
JP2009087032A JP2009087032A (ja) 2009-04-23
JP5246640B2 true JP5246640B2 (ja) 2013-07-24

Family

ID=40509592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007255952A Active JP5246640B2 (ja) 2007-09-28 2007-09-28 ユーザの操作を自動化する技術

Country Status (2)

Country Link
US (2) US9355059B2 (ja)
JP (1) JP5246640B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869028B2 (en) * 2009-05-18 2014-10-21 Xerox Corporation Interface structures and associated method for automated mining of legacy systems using visual configuration tools
JP5493567B2 (ja) * 2009-08-05 2014-05-14 日本電気株式会社 メッセージ送受信システム、メッセージ送受信方法、メッセージ中継サーバ及びメッセージ送受信用プログラム
JP5649944B2 (ja) * 2009-12-15 2015-01-07 株式会社Nttドコモ ウェブベースのモバイルタスクを記録及び再生するためのシステム及び方法
JP5287749B2 (ja) * 2010-01-29 2013-09-11 富士通株式会社 情報処理装置、情報処理プログラム、および情報処理方法
JP5699721B2 (ja) * 2010-08-30 2015-04-15 富士通株式会社 リクエスト処理プログラム、リクエスト処理装置及びリクエスト処理方法
JP5737166B2 (ja) * 2011-12-15 2015-06-17 富士通株式会社 中継装置、中継プログラムおよび中継方法
US8856295B2 (en) * 2012-01-10 2014-10-07 Oracle International Corporation System and method for providing an enterprise deployment topology with thick client functionality
US20170364371A1 (en) * 2016-06-15 2017-12-21 Microsoft Technology Licensing, Llc Context-Dependent Digital Action-Assistance Tool

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5167010A (en) 1989-08-03 1992-11-24 Westinghouse Electric Corp. Expert advice display processing system
JPH06259296A (ja) * 1993-03-08 1994-09-16 Nippon Telegr & Teleph Corp <Ntt> ヒューマン・マシン・インタフェース構築ツール
DE69516210T2 (de) * 1994-06-10 2000-08-10 Matsushita Electric Ind Co Ltd Vorführ- und Schneideeinrichtung für Daten mehrerer Medien
JP3201143B2 (ja) * 1994-06-10 2001-08-20 松下電器産業株式会社 情報提示装置
US5748499A (en) * 1995-09-19 1998-05-05 Sony Corporation Computer graphics data recording and playback system with a VCR-based graphic user interface
US5812780A (en) * 1996-05-24 1998-09-22 Microsoft Corporation Method, system, and product for assessing a server application performance
US5877759A (en) * 1997-03-26 1999-03-02 Netscape Communications Corporation Interface for user/agent interaction
US6292905B1 (en) * 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
JP3726459B2 (ja) * 1997-12-01 2005-12-14 富士ゼロックス株式会社 データ中継装置、データ中継方法、情報端末装置、情報端末装置の情報処理方法、データ通信システムおよび記録媒体
JP3221396B2 (ja) 1998-05-18 2001-10-22 日本電気株式会社 サーバアクセス装置
JP4634547B2 (ja) * 1998-06-30 2011-02-16 株式会社東芝 リアルタイム情報配信方法
US7200804B1 (en) * 1998-12-08 2007-04-03 Yodlee.Com, Inc. Method and apparatus for providing automation to an internet navigation application
JP2001092524A (ja) * 1999-09-24 2001-04-06 Toshiba It & Control Systems Corp マクロ画面操作装置
US6820111B1 (en) * 1999-12-07 2004-11-16 Microsoft Corporation Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history
JP2001290809A (ja) 2000-04-04 2001-10-19 Casio Comput Co Ltd データ処理装置、及び記憶媒体
US7225244B2 (en) * 2000-05-20 2007-05-29 Ciena Corporation Common command interface
US20020116485A1 (en) * 2001-02-21 2002-08-22 Equipe Communications Corporation Out-of-band network management channels
US6934749B1 (en) * 2000-05-20 2005-08-23 Ciena Corporation Tracking distributed data retrieval in a network device
JP2002007020A (ja) 2000-06-22 2002-01-11 Hitachi Ltd 操作監視に基づく定型処理の自動化手法
US20020026507A1 (en) * 2000-08-30 2002-02-28 Sears Brent C. Browser proxy client application service provider (ASP) interface
GB2386724A (en) * 2000-10-16 2003-09-24 Tangis Corp Dynamically determining appropriate computer interfaces
US7263597B2 (en) * 2001-04-19 2007-08-28 Ciena Corporation Network device including dedicated resources control plane
US8112529B2 (en) * 2001-08-20 2012-02-07 Masterobjects, Inc. System and method for asynchronous client server session communication
US20090006543A1 (en) * 2001-08-20 2009-01-01 Masterobjects System and method for asynchronous retrieval of information based on incremental user input
US20030120762A1 (en) * 2001-08-28 2003-06-26 Clickmarks, Inc. System, method and computer program product for pattern replay using state recognition
JP2003122992A (ja) * 2001-10-11 2003-04-25 Nippon Telegr & Teleph Corp <Ntt> 情報とメディアの選択システム、及び情報とメディアの選択方法
US7024256B2 (en) 2002-06-27 2006-04-04 Openpeak Inc. Method, system, and computer program product for automatically managing components within a controlled environment
US7716322B2 (en) * 2002-09-23 2010-05-11 Alcatel-Lucent Usa Inc. Automatic exploration and testing of dynamic Web sites
JP2005130087A (ja) * 2003-10-22 2005-05-19 Canon Inc マルチメディア情報機器
JP2005148857A (ja) * 2003-11-11 2005-06-09 Canon Inc 情報処理装置及びその制御方法、プログラム
US8566438B2 (en) * 2003-12-01 2013-10-22 International Business Machines Corporation Communication tagging
US20050125838A1 (en) * 2003-12-04 2005-06-09 Meng Wang Control mechanisms for enhanced features for streaming video on demand systems
JP4903054B2 (ja) * 2003-12-31 2012-03-21 オープンピーク インコーポレイテッド 制御環境内のコンポーネントを自動的に管理するための方法、システムおよびコンピュータプログラム製品
JP2008503011A (ja) * 2004-06-08 2008-01-31 ダートデバイセズ コーポレーション ユニバーサルデバイスインタオペラビリティプラットフォームのためのデバイスチームリクルートメントおよびコンテンツレンディションのアーキテクチャ装置および方法
JP2006072772A (ja) * 2004-09-03 2006-03-16 Nec Corp サーバ構築支援システム、サーバ構築支援装置、サーバ構築支援方法及びそのプログラム
JP4631562B2 (ja) * 2005-06-27 2011-02-16 富士ゼロックス株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
US20080065617A1 (en) * 2005-08-18 2008-03-13 Yahoo! Inc. Search entry system with query log autocomplete
JP5018520B2 (ja) * 2008-02-01 2012-09-05 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム

Also Published As

Publication number Publication date
JP2009087032A (ja) 2009-04-23
US20160234347A1 (en) 2016-08-11
US20090089368A1 (en) 2009-04-02
US9832285B2 (en) 2017-11-28
US9355059B2 (en) 2016-05-31

Similar Documents

Publication Publication Date Title
JP5246640B2 (ja) ユーザの操作を自動化する技術
US8527883B2 (en) Browser operation with sets of favorites
JP5110201B2 (ja) 検索処理方法及び装置
KR100705411B1 (ko) 로컬 컴퓨터 검색 시스템 및 이를 이용한 로컬 컴퓨터 검색방법
US6832220B1 (en) Method and apparatus for file searching, accessing file identifiers from reference page
JP4140918B2 (ja) ウィンドウの表示を制御するシステムおよびその方法
US20070204089A1 (en) Multi-protocol removable storage device
JPH10222541A (ja) html中で指定されたリンクに対応するウェブ・ページの事前ロード装置および方法
WO2009011837A1 (en) Extraction and reapplication of design information to existing websites
WO2005048079A2 (en) Mobile content engine with enhanced features
JP2006065395A (ja) ハイパーリンク生成装置、ハイパーリンク生成方法及びハイパーリンク生成プログラム
CN101395605A (zh) 比较性web搜索
US20190362142A1 (en) Electronic form identification using spatial information
JP5178219B2 (ja) アクセス解析装置及びアクセス解析方法及びアクセス解析プログラム
US20100057770A1 (en) System and method of file management, and recording medium storing file management program
KR100644159B1 (ko) 검색 컨트롤러 제어 방법 및 그 장치
TW201209604A (en) Methods and systems for viewing web pages, and computer program products thereof
US20140108356A1 (en) Information processing apparatus
JP2007104671A (ja) UPnPによらない個体をUPnPデバイスまたはコンテンツで表現する方法及び装置
US20090119620A1 (en) Method and Apparatus for Hardware Controlled Intelligent Web Content Navigation System
US8311801B2 (en) Technology for supporting modification of messages displayed by program
JP5821631B2 (ja) 再生装置、再生方法、及び再生プログラム
US20100223550A1 (en) Appratus, program and method for assisting a user in understanding content
EP1387298A2 (en) Method, system and program for specifying content displayed on browser
WO2012114490A1 (ja) 情報処理装置,情報取得方法及び情報取得プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120501

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130313

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130402

R150 Certificate of patent or registration of utility model

Ref document number: 5246640

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3