(57)【要約】【課題】ウェブサーバが提供する２以上のサービスをユーザが自由に組み合わせて新たなサービスを作成できるようにする。【解決手段】ユーザがウェブ・ブラウザを操作した履歴を取得して記憶装置に格納する履歴取得部と、記憶装置にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、第１操作よりも操作順序が後の他の第２操作の履歴を検索する検索部と、ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するサービス・プログラムを生成して記憶装置に格納する生成部とを備え、サービス・プログラムは、第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付ける入力受付部、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、第２操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う処理部としてコンピュータを機能させるシステムを提供する。
2008126796.tif 000002
【特許請求の範囲】
【請求項１】
サービス・プログラムを生成するためのシステムであって、
記憶装置と、
ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納する履歴取得部と、
前記記憶装置にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、前記第１操作よりも操作順序が後の他の第２操作の履歴を検索する検索部と、  ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するサービス・プログラムを生成して前記記憶装置に格納する生成部とを備え、
前記サービス・プログラムは、
前記第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付ける入力受付部、
この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、前記第２操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う処理部
としてコンピュータを機能させるシステム。
【請求項２】
前記履歴取得部は、ユーザがウェブ・ブラウザを操作して１以上のウェブサイトから２以上のサービスを受けた履歴を格納し、
前記生成部は、ユーザがウェブ・ブラウザを操作することで提供を受けた２以上のサービスを組み合わせて新たなサービスを提供するサービス・プログラムとして、コンピュータを前記入力受付部および前記処理部として機能させるプログラムを生成して前記記憶装置に格納する、請求項１に記載のシステム。
【請求項３】
前記記憶装置に格納された前記第１操作の履歴について、履歴として取得されたパラメータを前記処理部による処理に用いるか否かをユーザの指示に基づき設定し、設定結果を前記記憶装置に格納するパラメータ設定部を更に備え、
前記入力受付部は、履歴として取得されたパラメータを前記処理部による処理に用いない設定がされた第１操作について、新たなパラメータの入力を受け付け、
前記処理部は、履歴として取得されたパラメータを前記処理部による処理に用いない設定がされた第１操作について、この新たなパラメータをウェブページに入力する処理を行い、履歴として取得されたパラメータを前記処理部による処理に用いる設定がされた第１操作については、その第１操作に予め対応付けられた処理をウェブ・ブラウザに対し行う  請求項１に記載のシステム。
【請求項４】
ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて前記記憶装置に格納するオブジェクト選択部を更に備え、  前記処理部は、各操作に対応する処理を行ったウェブ・ブラウザに表示されたウェブページから、前記記憶装置に格納された配置に対応する表示オブジェクトを選択して、前記処理部による処理の結果として出力する
請求項１に記載のシステム。
【請求項５】
ユーザが操作するウェブ・ブラウザである第１画面、および、前記記憶装置に格納された操作の履歴の一覧を表示する第２画面を表示する表示部を更に備え、
前記オブジェクト選択部は、ユーザが第１画面中の表示オブジェクトを第２画面中の操作の履歴に関連付ける指示を受け付けることで、関連付けられたその操作に対応する処理の結果として表示されるウェブページから選択するべき表示オブジェクトを選択する
請求項４に記載のシステム。
【請求項６】
前記履歴取得部は、前記第１操作について、操作の種類、操作対象の表示オブジェクトのウェブページ内における配置、および、入力されたパラメータの組を、前記第１操作の履歴として格納し、
前記処理部は、ウェブ・ブラウザを起動し、新たなパラメータの入力に応じて、このウェブ・ブラウザに表示された、前記第１操作の履歴として格納された配置に対応する表示オブジェクトに対し、履歴として格納されたパラメータに代えてこの新たなパラメータを入力する処理を行う
請求項１に記載のシステム。
【請求項７】
前記履歴取得部は、前記第１操作の履歴として、さらに、ユーザがパラメータを入力したウェブページにおいてそのパラメータを入力する入力欄をユーザに識別させるために付されたラベルを格納し、
前記入力受付部は、前記第１操作の履歴として格納されたラベルを、新たなパラメータを入力させる入力欄に対応付けて表示することで、新たなパラメータの入力をユーザから受け付ける
請求項６に記載のシステム。
【請求項８】
前記処理部は、それぞれの操作について、その操作をウェブ・ブラウザが受けたならば発生するイベントを、ウェブ・ブラウザにおいて発生させる指令を発行する
請求項１に記載のシステム。
【請求項９】
前記履歴取得部は、ポインティング・デバイスのクリック操作、および、ポインティング・デバイスによりクリックされた表示オブジェクトの配置の組を履歴として格納し、
前記処理部は、ポインティング・デバイスによりクリックされた表示オブジェクトの配置、および、ポインティング・デバイスがクリックされたならば発生するイベントの種類を引数とし、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す
請求項８に記載のシステム。
【請求項１０】
前記履歴取得部は、パラメータの入力操作、入力先の表示オブジェクトの配置、および、入力されたパラメータの組を履歴として格納し、
前記処理部は、パラメータが入力されたならば発生するイベントの種類、入力先の表示オブジェクトの配置、および、履歴として格納したパラメータ或いは新たに入力したパラメータを引数とし、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す
請求項８に記載のシステム。
【請求項１１】
前記履歴取得部は、ウェブ・ブラウザを起動する操作、および、起動したウェブ・ブラウザにおいて表示させるウェブページのアドレスの組を履歴として格納し、
前記処理部は、ウェブページのアドレスを引数としてウェブ・ブラウザを起動するＡＰＩを呼び出す
請求項８に記載のシステム。
【請求項１２】
前記履歴取得部は、表示オブジェクトをドラッグ・アンド・ドロップする操作、および、ドラッグされる表示オブジェクトの識別情報、および、ドロップ先の表示オブジェクトの識別情報の組を履歴として格納し、
前記処理部は、ドラッグ・アンド・ドロップという操作を示す操作の種類、ドラッグされる表示オブジェクトの識別情報、および、ドロップ先の表示オブジェクトの識別情報を引数として、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す
請求項８に記載のシステム。
【請求項１３】
前記処理部は、前記第１操作に対応して新たなパラメータをウェブページに入力する処理を行い、ユーザにより予め設定された待機時間が経過してから、前記第１操作に予め対応付けられた処理を行う
請求項１に記載のシステム。
【請求項１４】
ウェブ・ブラウザは、複数の表示オブジェクトについてそれらの配置をツリー構造のデータにより定義したファイルを読み込むことで、それらの表示オブジェクトを含むウェブページを表示し、
前記オブジェクト選択部は、ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザに指定された表示オブジェクト、および、その表示オブジェクトと前記ツリー構造のデータにおいて祖先の表示オブジェクトが共通する他の表示オブジェクトを、前記処理部による処理の結果として表示する表示オブジェクトとして選択する
請求項３に記載のシステム。
【請求項１５】
前記検索部は、さらに、前記第２操作より操作順序が後であり、ウェブページにパラメータを入力する第３操作の履歴、および、前記第３操作より操作順序が後の他の第４操作の履歴を検索し、
前記入力受付部は、前記処理部が前記第２操作に予め対応付けられた処理を行ったことに応じて、さらに、前記第３操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付け、
前記処理部は、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、前記第４操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う
請求項１に記載のシステム。
【請求項１６】
前記検索部は、さらに、前記第２操作より操作順序が後であり、ウェブページにパラメータを入力する第３操作の履歴、および、前記第３操作より操作順序が後の他の第４操作の履歴を検索し、
前記入力受付部は、前記第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータに加えて、さらに、前記第３操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付け、
前記処理部は、これらの新たなパラメータの入力に応じて、前記第１操作に対応する新たなパラメータをウェブページに入力する処理、前記第２操作に予め対応付けられた処理、前記第３操作に対応する新たなパラメータをウェブページに入力する処理、および、前記第４操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う
請求項１に記載のシステム。
【請求項１７】
サービス・プログラムを生成するための方法であって、
コンピュータの履歴取得部が、ユーザがウェブ・ブラウザを操作した履歴を取得してコンピュータの記憶装置に格納するステップと、
コンピュータの検索部が、前記記憶装置にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、前記第１操作よりも操作順序が後の他の第２操作の履歴を検索するステップと、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するサービス・プログラムを生成して前記記憶装置に格納するステップとを備え、
前記サービス・プログラムは、
前記第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付ける入力受付部、
コンピュータの処理部が、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、前記第２操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う処理部、
としてコンピュータを機能させる方法。
【請求項１８】
サービス・プログラムを生成するためのプログラムであって、記憶装置を備えたコンピュータを
ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納する履歴取得部と、
前記記憶装置にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、前記第１操作よりも操作順序が後の他の第２操作の履歴を検索する検索部と、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するサービス・プログラムを生成して前記記憶装置に格納する生成部と
して機能させ、
前記サービス・プログラムは、
ユーザの指示に応じて、前記第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付ける入力受付部、
この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、前記第２操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う処理部
としてコンピュータを機能させるプログラム。
【請求項１９】
サービス・プログラムを生成するシステムであって、
記憶装置と、
ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納する履歴取得部と、
ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて前記記憶装置に格納するオブジェクト選択部と、
前記記憶装置にアクセスして、それぞれの操作の履歴を検索する検索部と、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するサービス・プログラム生成して前記記憶装置に格納する生成部とを備え、
前記サービス・プログラムは、
検索した各操作に対応する処理をウェブ・ブラウザに対してその操作の順序で行い、各操作に対応する処理を行ったウェブ・ブラウザに表示されたウェブページから、前記記憶装置に格納された配置に対応する表示オブジェクトを選択して出力する処理部
としてコンピュータを機能させる、システム。
【請求項２０】
ユーザが操作するウェブ・ブラウザである第１画面、および、前記記憶装置に格納された操作の履歴の一覧を表示する第２画面を表示する表示部を更に備え、
前記オブジェクト選択部は、ユーザが第１画面中の表示オブジェクトを第２画面中の操作の履歴に関連付ける指示を受け付けることで、関連付けられたその操作に対応する処理の結果として表示されるウェブページから選択するべき表示オブジェクトを選択する
請求項１９に記載のシステム。
【請求項２１】
前記履歴取得部は、ユーザがウェブ・ブラウザを操作して１以上のウェブサイトから２以上のサービスを受けた履歴を格納し、
前記生成部は、ユーザがウェブ・ブラウザを操作することで提供を受けた２以上のサービスを組み合わせて新たなサービスを提供するサービス・プログラムとして、コンピュータを前記処理部として機能させるプログラムを生成する、請求項１９に記載のシステム。
【請求項２２】
サービス・プログラムを生成するための方法であって、
コンピュータの履歴取得部が、ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納するステップと、
コンピュータのオブジェクト選択部が、ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて前記記憶装置に格納するステップと、
コンピュータの検索部が、前記記憶装置にアクセスして、それぞれの操作の履歴を検索するステップと、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するサービス・プログラム生成して前記記憶装置に格納するステップとを備え、
前記サービス・プログラムは、
検索した各操作に対応する処理をウェブ・ブラウザに対してその操作の順序で行い、各操作に対応する処理を行ったウェブ・ブラウザに表示されたウェブページから、前記記憶装置に格納された配置に対応する表示オブジェクトを選択して出力する処理部
としてコンピュータを機能させる、方法。
【請求項２３】
サービス・プログラムを生成するためのプログラムであって、
記憶装置を備えたコンピュータを、
ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納する履歴取得部と、
ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて前記記憶装置に格納するオブジェクト選択部と、
前記記憶装置にアクセスして、それぞれの操作の履歴を検索する検索部と、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するサービス・プログラム生成して前記記憶装置に格納する生成部として機能させ、
前記サービス・プログラムは、
検索した各操作に対応する処理をウェブ・ブラウザに対してその操作の順序で行い、各操作に対応する処理を行ったウェブ・ブラウザに表示されたウェブページから、前記記憶装置に格納された配置に対応する表示オブジェクトを選択して出力する処理部
としてコンピュータを機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの操作を代行するプログラムを生成する技術に関する。特に、本発明は、ウェブ・ブラウザに対する操作を代行するプログラムを生成する技術に関する。
【背景技術】
【０００２】
近年、ウェブサーバにより提供されるサービスを組み合わせて新たなサービスを作成するマッシュアップという考え方が注目されている。マッシュアップを実現するためには、ウェブサーバで動作する様々なプログラムを呼び出すためのＡＰＩが公開されていることが前提となる。ＡＰＩが公開されていれば、プログラマは、様々なＡＰＩを自由な順序や条件で呼び出すような新たなプログラムを作成することで、既に提供されているサービスを組み合わせて新たなサービスを作成できる。
特許文献１については後述する。
【特許文献１】特開２００４−２７２８７１号公報
【非特許文献１】「Selenium Recorderの使用方法」、ホームページＵＲＬ「http://seleniumrecorder.mozdev.org/index-ja.html」、２００７年４月２日検索
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、マッシュアップのためのＡＰＩは、一部のウェブサーバにより試験的に公開されているに過ぎず、プログラマがインターネット上で提供されるサービスを自由に組み合わせることができるとは言い難い。また、公開されていたとしても、新たなプログラムの作成はある程度熟練したプログラマでなければ困難であり、一般ユーザが手軽に実現できるものではない。【０００４】
一方、近年、多様なサービスがウェブページ上で提供されるようになってきており、その利用の仕方もユーザによって様々である。このため、一般ユーザといえども複数のサービスを自由に組み合わせて新たなサービスを生成することで利便性を向上させることができると考えられる。例えば、情報提供用のウェブページから株価の情報を取得し、その株価から株式発注の指値を自動的に決定して、証券会社のウェブページにおいてその指値で株式を自動的に注文するようなプログラムを、一般ユーザが手軽に作成できれば、ユーザの利便性は大幅に向上する。【０００５】
参考技術として上記特許文献１を挙げる。この技術は、本来は端末装置のウェブ・ブラウザからウェブサーバに対し送信されるであろうＨＴＴＰリクエストを、ウェブ・ブラウザに代わって送信するソフトウェアに関するものである。しかしながら、このソフトウェアはウェブ・ブラウザそのものではない以上、現在公開されている高度なウェブページにおいては様々な課題が生じ得る。【０００６】
第１にセッションを適切に維持管理する点である。高度なウェブページにおいては、複数のＨＴＴＰリクエストを一連のセッションとして管理するため、ＨＴＴＰリクエストには前回に受け取ったＨＴＴＰレスポンスに含まれていたセッションＩＤを含めて送信する必要がある。しかしながら、この文献にはそのような機能については記載も示唆もされていない。【０００７】
第２に動的に変化するウェブページに関する点である。高度なウェブページはＨＴＴＰリクエストを受信する毎にその構造を大きく変化させる場合がある。しかしながら、この文献にはそのように変化するウェブページに対し、その変化に追従して適切なＨＴＴＰリクエストを送信することについては記載も示唆もされていない。【０００８】
また、他の参考技術として、ブラウザ上で行った操作をウィンドウに記録してゆくソフトウェアが提案されている（非特許文献１を参照。）。ウィンドウに記録されたテストケースは、Play ボタンを押すと再生される。また、ウィンドウ内でテストケースの編集・保存・ロードが可能である。この技術は、ウェブ・アプリケーションのテストを目的としたものである。したがって、この技術では、このような操作の履歴に基づいて、ユーザが再利用可能なプログラムを作成することはできない。【０００９】
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の一側面においては、サービス・プログラムを生成するためのシステムであって、記憶装置と、ユーザがウェブ・ブラウザを操作した履歴を取得して記憶装置に格納する履歴取得部と、記憶装置にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、第１操作よりも操作順序が後の他の第２操作の履歴を検索する検索部と、ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するサービス・プログラムを生成して記憶装置に格納する生成部とを備え、サービス・プログラムは、第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付ける入力受付部、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、第２操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う処理部としてコンピュータを機能させるシステム、当該システムとしてコンピュータを機能させるプログラム、および方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【００１１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。【００１２】
図１は、情報システム１０の全体構成を示す。情報システム１０は、クライアント・コンピュータ１００と、サーバ・コンピュータ２００と、通信回線３００と、プロキシ・サーバ４００と、ウェブサイト６０２−６０４を実現する複数のウェブサーバとを備える。クライアント・コンピュータ１００は、インターネット５００などの通信回線により複数のウェブサーバに接続されている。これらのウェブサーバでは、ウェブサイト６０２、ウェブサイト６０４およびウェブサイト６０６などのウェブサイトが運営されている。クライアント・コンピュータ１００は、ウェブ・ブラウザ１０２を動作させており、ユーザの操作に応じてこれらのウェブサイトにアクセスする。このアクセスには、記憶装置であるハードディスクドライブ１０４や通信インターフェイス１０６が用いられる。さらに、通信の効率化や情報セキュリティのため、クライアント・コンピュータ１００およびインターネット５００間にプロキシ・サーバ４００が設けられていてもよい。なお、ここでは主要なハードウェア資源のみを示しているから、更に詳細なハードウェア構成については後に説明する図２５を参照されたい。【００１３】
また、クライアント・コンピュータ１００は、例えばローカル・エリア・ネットワークなどである通信回線３００によりサーバ・コンピュータ２００に接続されている。そして、クライアント・コンピュータ１００は、ユーザの指示に基づき生成した各種のデータをサーバ・コンピュータ２００に格納し、または、他のユーザが作成した各種のデータをサーバ・コンピュータ２００から読み出す。データの格納や読み出しの機能を実現するために、サーバ・コンピュータ２００ではウェブ・アプリケーション・サーバ２０２が動作している。ウェブ・アプリケーション・サーバ２０２は、記憶装置であるハードディスクドライブ２０４や通信インターフェイス２０６と協働して、クライアント・コンピュータ１００に対するデータの提供などを行う。
本実施形態に係る情報システム１０は、ウェブサイト６０２−６０４で提供される様々なサービスを組み合わせて新たなサービスを提供するためのプログラムを、一般ユーザが手軽に作成できるように支援することを目的とする。【００１４】
図２は、情報システム１０がユーザの操作に応じて行う処理の全体の流れを示す。ユーザがウェブ・ブラウザ１０２を操作すると（Ｓ１０）、クライアント・コンピュータ１００はその操作の履歴をハードディスクドライブ１０４に格納する。また、ユーザはその操作により１以上のウェブサイトから２以上のサービスを受ける。具体的には、クライアント・コンピュータ１００は、ユーザの操作に応じてウェブサイト６０２−６０４にＨＴＴＰリクエストを送信し、ウェブサイト６０２−６０４からＨＴＴＰレスポンスの返信を受ける（Ｓ１２）。クライアント・コンピュータ１００は、ユーザがウェブ・ブラウザ１０２を操作した履歴に基づき、ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するサービス・プログラムを生成する。実際に生成されるのはサービス・プログラム自体でなくとも良く、それを変換することでサービス・プログラムを生成可能なサービス定義であってよい。そして、クライアント・コンピュータ１００は、そのプログラムを定義するための情報であるサービス定義をサーバ・コンピュータ２００に送信する。【００１５】
次に、ユーザがウェブ・ブラウザ１０２を操作して複数のサービス・プログラムを組み合わせる作業を行う（Ｓ２０）。この結果、複数のサービス定義がサーバ・コンピュータ２００からクライアント・コンピュータ１００に読み込まれて組み合わされ、１つのアプリケーション・プログラムが作成される。ユーザは、このアプリケーション・プログラムが表示する入力欄に対しパラメータを入力する（３０）。これを受けてクライアント・コンピュータ１００は、ウェブサイト６０２−６０６との間でＨＴＴＰリクエストおよびＨＴＴＰレスポンスの送受信を自律的に行って（Ｓ３２）、その結果をユーザに表示する（Ｓ３５）。【００１６】
図３は、図２のＳ１０−Ｓ１５の詳細を示す。ユーザがウェブ・ブラウザ１０２を操作すると、ウェブ・ブラウザ１０２内部の処理としてその操作に予め対応付けられたイベントが発生する。たとえば、ユーザがある領域をポインティング・デバイスでクリックすると、クリックされたことを示すイベントが発生する。ウェブ・ブラウザ１０２は、クリックされた領域がハイパーリンクである場合や、ページ遷移をもたらすボタンである場合には、ＨＴＴＰリクエストを送信する。送信先は例えばウェブサイト６０２である。ウェブ・ブラウザ１０２は、ＨＴＴＰレスポンスを受信して、それに基づいてユーザに画面を表示する。【００１７】
ユーザによる次の操作が入力操作の場合には、その入力操作に予め対応付けられたイベントが発生する。この場合も、必要に応じて入力されたパラメータがＨＴＴＰリクエストとしてウェブサイト６０６等を運営するウェブサーバに送信される。このように、ユーザが操作する毎にクライアント・コンピュータ１００においては内部でイベントが発生し、必要に応じてＨＴＴＰリクエストが送信される。ＨＴＴＰリクエストが送信されない場合であっても、ウェブ・ブラウザ１０２に読み込まれて動作するプログラム（例えばＪａｖａＳｃｒｉｐｔなどのページ更新機能をサポートする言語で記述されたプログラムなど）によりウェブ・ブラウザ１０２に表示されたウェブページが自動的に更新される場合もある（図中のＤＯＭ操作）。【００１８】
ユーザは一連の操作を終えた後に、ウェブ・ブラウザ１０２を操作して表示されたウェブページの中から、任意に表示オブジェクトを指定する。そして、クライアント・コンピュータ１００は、ユーザがウェブ・ブラウザ１０２を操作した履歴に、指定されたこの表示オブジェクトのウェブページ中における配置を対応付けてハードディスクドライブ１０４に格納する。履歴の取得およびその格納は、例えば、ウェブ・ブラウザに設けられたプラグイン・プログラムによって実現されてよい。そして、クライアント・コンピュータ１００は、この履歴に基づいて動作するサービス・プログラムを生成して、その定義を示す情報であるサービス定義をサーバ・コンピュータ２００に送信する。【００１９】
図４は、図２のＳ２５−Ｓ３２の詳細を示す。サービス・プログラムは、上述のようにユーザにより作成されて、あるいは、サーバ・コンピュータ２００から読み込まれた他のサービス・プログラムと組み合わされて（Ｓ２５）アプリケーション・プログラムとして動作している。このアプリケーション・プログラムは、ウェブ・ブラウザ１０２のプラグイン・プログラムとして動作しており、ユーザに対し入力欄を表示している。ユーザがこの入力欄にパラメータを入力すると（Ｓ３０）、アプリケーション・プログラムは、履歴取得時に発生していたイベントをその発生順に順次発生させる。ウェブ・ブラウザ１０２は、イベントの発生に応じて必要な場合にはＨＴＴＰリクエストを送信する（Ｓ３２）。【００２０】
そして、サービス・プログラムはイベントの発生を終えると、履歴取得時にユーザに指定された表示オブジェクトを、そのイベント発生後のウェブ・ブラウザの画面中から選択してユーザに出力する（Ｓ３５）。
このように、クライアント・コンピュータ１００は、新たなパラメータの入力に応じてユーザの操作履歴に基づき動作し、なおかつその結果を画面から選択して出力するプログラムを生成することで、ユーザの操作を代行して複数のサービスを組み合わせることができる。以下、この機能の詳細について説明する。【００２１】
図５は、クライアント・コンピュータ１００の機能を機能ブロックにより示す。クライアント・コンピュータ１００は、記憶装置５０５と、履歴取得部５１０と、表示部５２０と、パラメータ設定部５３０と、オブジェクト選択部５４０と、検索部５５０と、生成部５６０と、入力受付部５７０と、処理部５８０とを備える。これらの各部材は、ウェブ・ブラウザ１０２のプラグイン・プログラムが、後述の図２５に示すハードウェア資源と協働することで実現される。記憶装置５０５は、後述のハードディスクドライブ１０４０もしくはＲＡＭ１０２０により実現され、ユーザの操作履歴を記憶するために設けられている。履歴取得部５１０は、ユーザがウェブ・ブラウザ１０２を操作して１以上のウェブサイトから２以上のサービスを受けた履歴を取得して、記憶装置５０５に格納する。【００２２】
表示部５２０は、ユーザが操作するウェブ・ブラウザである第１画面、および、記憶装置５０５に格納された操作の一覧を表示する第２画面を表示する。パラメータ設定部５３０は、履歴として取得された操作のうち、ユーザがウェブページにパラメータを入力する操作について、履歴として取得されたパラメータを処理部５８０による処理に用いるか否かをユーザの指示に基づき設定する。この指示は、第２画面に表示した履歴に対する、ポインティング・デバイスのクリック操作であってもよい。そして、パラメータ設定部５３０は、この設定結果を記憶装置５０５に格納する。【００２３】
オブジェクト選択部５４０は、ユーザが操作したウェブ・ブラウザ１０２に表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて記憶装置５０５に格納する。検索部５５０は、記憶装置５０５にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、その第１操作よりも操作順序が後の他の第２操作の履歴を検索する。生成部５６０は、クライアント・コンピュータ１００を後述の入力受付部５７０および処理部５８０として機能させるサービス・プログラムを生成する。サービス・プログラムそれ自体、または、サービス・プログラムを定義する情報はサーバ・コンピュータ２００に出力されてもよいし、他のサービス・プログラムを定義する情報がクライアント・コンピュータ１００に読み込まれて動作してもよい。サービス・プログラムを定義する情報についてはサービス定義５０として後にその一例を説明する。【００２４】
入力受付部５７０は、ユーザの指示に応じて動作を開始する。そして、入力受付部５７０は、第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力をユーザから受け付ける。但し、新たなパラメータの入力を受け付ける第１操作は、履歴として取得されたパラメータを処理部５８０による処理に用いないと設定された第１操作に限られる。なお、入力受付部５７０は、この新たなパラメータの入力を、ユーザからではなく、他のプログラムから受け付けてもよい。即ち例えば、このサービス・プログラムは他のプログラムがパラメータを出力したことに応じて動作を開始し、入力受付部５７０はこのパラメータを受け取ってよい。そして、処理部５８０は、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、第２操作に予め定められた処理をウェブ・ブラウザに対してこの順に順次行う。これらの処理は、例えば、ウェブ・ブラウザ１０２がこれら各操作を受けたならば発生するイベントをウェブ・ブラウザ１０２において発生させることにより実現される。【００２５】
図６は、記憶装置５０５のデータ構造の一例を示す。記憶装置５０５は、ユーザの各操作の履歴をレコードとしてその操作順に記憶している。各レコードは、操作の種類、操作対象の表示オブジェクトのウェブページ内における配置、および、入力されたパラメータを含む。例えば、ウェブ・ブラウザを新たに起動する操作については、操作の種類として「オープン」が、入力されたパラメータとしてウェブページのアドレスが履歴として記憶される。また、パラメータの入力操作については、操作の種類として「インプット」が、操作対象の表示オブジェクトの配置として「／／ｉｎｐｕｔ［＠ｉｄ＝ｕｓｅｒ］」が、入力されたパラメータとして「ｔｅｓｔｕｓｅｒ」が、それぞれ履歴として記憶される。【００２６】
表示オブジェクトの配置は、例えばＸＰａｔｈ（ＸＭＬ  Ｐａｔｈ  Ｌａｎｇｕａｇｅ）により表される。ＸＰａｔｈの記法において、／／はＸＭＬ文書全体の任意の階層にある任意のタグを示す。そして／／に続く文字列はタグ名を示す。また、＠に続く文字列は属性名を示す。即ち、「／／ｉｎｐｕｔ［＠ｉｄ＝ｕｓｅｒ］」は、ＸＭＬ文書全体の任意の階層にあるｉｎｐｕｔというタグのうち、ｉｄという属性がｕｓｅｒというタグを示す。履歴取得部５１０は、このようなＸＰａｔｈの記述を、ユーザが行った操作の対象となった表示オブジェクトの配置を示す情報として取得して、記憶装置５０５に格納する。【００２７】
記憶装置５０５は、さらに、ユーザがパラメータを入力したウェブページにおいてそのパラメータを入力する入力欄をユーザに識別させるために付されたラベルを、ユーザの入力操作の履歴に含めて格納してもよい。このラベルは、例えば、ユーザが何を入力すればよいか分かり易くするために、入力欄の隣に表示される文字列である。たとえば、ある入力欄の隣に「株数」という文字列が表示され、その入力欄に数値２００が入力された場合には、操作の種類、操作対象となった表示オブジェクトの配置、および、パラメータ「２００」に更に対応付けて、ラベル「株数」が格納される。【００２８】
さらに、記憶装置５０５は、入力操作の履歴については、その操作により入力されたパラメータを処理部５８０による処理にそのまま用いるかどうかを設定した情報を記憶してよい。図中ではこの情報を「公開」というフィールド内のチェック印で示す。即ち、「公開」がチェックされた操作履歴については、その操作によって入力されたパラメータに代えて新たなパラメータの入力が求められる。一方、「公開」がチェックされなかった操作履歴については、その操作によって入力されたパラメータはそのまま処理部５８０による処理に用いられ、新たなパラメータの入力が求められないばかりかそのパラメータ自体も非公開となる。【００２９】
また、記憶装置５０５は、操作の履歴に対応付けて、その操作を代行した結果として表示するべき表示オブジェクトの配置を示す情報を記憶してもよい。そのような配置を示す情報は、図中では「リファレンス」というエントリにより表される。即ち、ある「リファレンス」というエントリは、それよりも操作順序が先の各操作の履歴に対応付けられており、それらの操作を代行して表示されたウェブページから所望の表示オブジェクトを選択してユーザに表示することを示す。【００３０】
次に、図７から図９を参照して、ユーザが履歴を編集する作業の一例と、それに関連する機能を説明する。
図７は、表示部５２０の第１表示例を示す。表示部５２０は、第１画面であるウェブ・ブラウザ１０２、および、第２画面である履歴表示画面１０８を表示する。ウェブ・ブラウザ１０２は既存のウェブ・ブラウザと同様である。即ち例えば、ウェブ・ブラウザ１０２は、「ＵＲＬ：」を付したアドレス入力フィールドに入力されたアドレスからファイルを読み込む。このファイルには、ウェブページとして表示する複数の表示オブジェクトについてそれらの配置をツリー構造で表したデータが格納されている。具体的には、このファイルは、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）またはＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などの、データを構造化して記述するための言語で記述されていてもよい。そして、ウェブ・ブラウザ１０２は、このファイルを読み込んで構文解析することで、それらの表示オブジェクトを含むウェブページを表示する。【００３１】
一方、履歴表示画面１０８にはユーザがウェブ・ブラウザ１０２を操作した履歴が表示される。具体的には、履歴取得部５１０は、履歴表示画面１０８内の丸印のボタンがポインティング・デバイスなどによってクリックされると履歴の取得を開始する。履歴取得部５１０は、開始後にユーザがウェブ・ブラウザ１０２を操作した履歴を取得して記憶装置５０５に順次格納する。ユーザがウェブ・ブラウザ１０２を操作した履歴であれば、その操作が例えば複数のウェブサイトに渡って行われたものであっても、ひとまとまりの履歴として記憶装置５０５に格納される。格納された履歴は履歴表示画面１０８に表示される。履歴取得部５１０は、履歴表示画面１０８内の四角印のボタンがクリックされると履歴の取得を終了して、その結果をファイルに保存する。【００３２】
ユーザは、履歴表示画面１０８上で履歴を自由に編集できる。例えば、ユーザは履歴表示画面１０８内である履歴をドラッグ・アンド・ドロップして、他の履歴との間の操作順序を入替えてもよい。また、ユーザはある履歴を削除してもよい。これらの操作を受けて、履歴取得部５１０は、記憶装置５０５内で履歴の記憶順序を入れ替え、または、記憶装置５０５から履歴を削除する。さらに、ユーザは履歴表示画面１０８の画面上で履歴に含めて記憶されたラベルを編集してもよい。さらに、パラメータ設定部５３０は、履歴として取得されたパラメータをそのまま処理部５８０による処理に用いるかどうかの設定を、この履歴表示画面１０８において受け付けてもよい。例えば、ユーザが履歴表示画面１０８に一覧表示されたある履歴をクリックする毎に、履歴として取得されたパラメータをそのまま処理部５８０による処理に用いる設定（即ち上述の「非公開」の設定）、および、新たなパラメータの入力を受け付ける設定（即ち上述の「公開」の設定）が交互に切り替わる。【００３３】
図８は、表示部５２０の第２表示例を示す。ユーザがウェブ・ブラウザ１０２中の表示オブジェクトをクリックすると、ウェブ・ブラウザ１０２はコンテキストメニューを表示する。その中の「エレメントの参照追加」は、操作を代行した結果として表示する表示オブジェクトを履歴に関連付ける指示を示す。たとえば、ユーザが「９５．１９」という表示オブジェクトを選択して「エレメントの参照追加」を選択すると、オブジェクト選択部５４０は、この「９５．１９」という表示オブジェクトの配置を取得して、履歴表示画面１０８に表示されている履歴に関連付けて記憶装置５０５に格納する。この結果、処理部５８０は、関連付けられたその操作を代行して表示されたウェブページから、関連付けられたこの配置にある表示オブジェクトを選択して、関連付けられたその操作に対応する処理の結果として出力する。選択された表示オブジェクトは、ユーザに表示されてもよいし、他のプログラムに対し出力され、当該他のプログラムの入力として用いられてもよい。【００３４】
関連付けの操作は、上記のようなコンテキストメニューからの選択で実現されてもよいが、その他にポインティング・デバイスのドラッグ・アンド・ドロップなどにより実現されてもよい。即ち例えば、オブジェクト選択部５４０は、「９５．１９」などの表示オブジェクトをドラッグして履歴表示画面１０８内の履歴にドロップする操作を受け付けると、その表示オブジェクトの配置を取得して、その履歴に対応付けて記憶装置５０５に格納してもよい。このように、ユーザが関連付けを指示できるような操作であればその種類は問わない。【００３５】
表示オブジェクトが繰り返し要素の場合には、それらの表示要素を一括して配列として取得したい場合がある。以下、図９を参照して多数の表示オブジェクトを効率的に選択できるようにする機能を説明する。
図９は、表示部５２０の第３表示例を示す。ユーザが表示オブジェクトを指定して、コンテキストメニューの中で「繰り返し要素の追加」という項目を選択すると、これに関連する複数の表示オブジェクトがまとめて選択される。詳細には、オブジェクト選択部５４０は、ユーザに指定された表示オブジェクトに加えて、さらに、ウェブページを示すツリー構造のデータにおいてその表示オブジェクトと祖先の表示オブジェクトが共通する他の表示オブジェクトを選択する。【００３６】
祖先の表示オブジェクトが複数の場合には、指定された表示オブジェクトに加えて選択する他の表示オブジェクトとして複数の候補が存在する。例えば、「／／ｂｏｄｙ／ｔａｂｌｅ［１］／ｔｂｏｄｙ［１］／ｔｒ「１」／ｔｄ［１］」というＸＰａｔｈで指定される表示オブジェクトが指定された場合において、文書のツリー構造においてその祖先には、「／／ｂｏｄｙ／ｔａｂｌｅ［１］／ｔｂｏｄｙ［１］／ｔｒ［１］」という表示オブジェクトの他、「／／ｂｏｄｙ／ｔａｂｌｅ［１］／ｔｂｏｄｙ［１］」や「／／ｂｏｄｙ／ｔａｂｌｅ［１］」などがある。（なお、ＸＰａｔｈの記法において要素名に続くカッコは要素の出現順を示す。例えばｔｒという要素が複数配置される場合でもｔｒ［２］と表記すればそのうちの２番目の要素を一意に指定することができる。）このため、どの祖先を共通とするかによって、他の表示オブジェクトとして複数の候補が存在する。【００３７】
この場合、オブジェクト選択部５４０は、これら複数の候補のそれぞれについて、その表示オブジェクトの配置をコンテキストメニューに表示してもよい。たとえば、「／／ｂｏｄｙ／ｔａｂｌｅ［１］／ｔｂｏｄｙ［１］／ｔｒ「１」／ｔｄ」のようなＸＰａｔｈは、「／／ｂｏｄｙ／ｔａｂｌｅ［１］／ｔｂｏｄｙ［１］／ｔｒ「１」」を祖先として共有する全てのｔｄタグを表している。オブジェクト選択部５４０は、このように複数のタグをリストとしてまとめて表すＸＰａｔｈを、選択の候補の１つとして表示してもよい。【００３８】
さらに、オブジェクト選択部５４０は、以上のＸＰａｔｈの例に加えて、ユーザに対してどの表示オブジェクトが選択の候補となっているかを分かり易く示すために、選択の候補となっている各表示オブジェクトを枠で囲んでウェブ・ブラウザ１０２内に表示してもよい。たとえば、図９の画面の例においては、当初に指定された「９５．１９」という表示オブジェクトに加えて、「Ｆｅｂ．２２」という表示オブジェクトと、「↓０．１７」という表示オブジェクトの周囲に枠が表示されている。この時点でユーザがポインティング・デバイスのボタンから手を離すと、オブジェクト選択部５４０によりこれらの表示オブジェクトがまとめて選択される。
以上、図９に示す例によれば、ツリー構造において先祖を共通とする複数の表示オブジェクトがあり、それらの表示オブジェクトの個数が可変である場合でも、あらかじめそれらの表示オブジェクトを一括して指定することができる。また、一括して指定した表示オブジェクトの集合は、そのオブジェクトの数の出力データではなく、ひとまとまりの配列型の出力データとして処理の対象とすることができる。【００３９】
図１０は、サービス定義５０の具体例を示す。サービス定義５０は、ユーザの操作を代行するサービス・プログラムを定義する情報であり、そのサービス・プログラムが提供するサービスの名称の他、そのサービスの提供にあたりウェブ・ブラウザ１０２内部で発生させるべきイベントをその発生順に記録している。各イベントは、たとえば＜ｓｔｅｐ＞という開始タグと＜／ｓｔｅｐ＞という終了タグの間の記述により定義される。具体例として第２行から第８行までの間には、ウェブ・ブラウザ１０２がクリック操作を受けたならば発生するイベントが定義されている。第３行の＜ａｃｔｉｏｎ＞タグは、イベントの種類「ｃｌｉｃｋ」を示す。第４行の＜ｔａｒｇｅｔ＞タグは、イベントを発生させる対象となる表示オブジェクトを示す。第５行から第７行には入力されるパラメータやラベルなどが定義されるがこの例では未定義である。【００４０】
また第９行から第１５行までの間には、ウェブ・ブラウザ１０２がウェブページにパラメータを入力する操作を受けたならば発生するイベントが定義されている。第１０行にはイベントの種類「ｔｙｐｅ」が定義されており、第１１行には入力の対象となる表示オブジェクトの配置が定義されている。また、第１２行には入力されるパラメータが定義され、第１３行には入力欄に対応付けて表示するべき文字列であるラベルが定義される。また、第１４行にはこの入力欄を表示するべきかどうかが定義される。【００４１】
各イベントは、ユーザがウェブ・ブラウザ１０２を操作した履歴に基づいて生成部５６０により生成される。例えば、生成部５６０は、ユーザがウェブ・ブラウザ１０２をクリックした履歴に基づいて、イベントの種類を「ｃｌｉｃｋ」とするイベントの発生を定義して、サービス定義５０に含めて記録する。また、生成部５６０は、ユーザがウェブ・ブラウザ１０２を操作してウェブページにパラメータを入力した履歴に基づいて、イベントの種類を「ｔｙｐｅ」とするイベントの発生を定義して、サービス定義５０に含めて記録する。これに加えて、クライアント・コンピュータ１００はこのサービス定義５０をテキストエディタなどで編集可能に管理していてもよい。これにより、プログラミングに熟練したユーザは履歴から作成したサービスを容易に改変して、より望ましい他のサービスを作成できる。【００４２】
また、サービス定義５０は、操作を代行した結果として表示する表示オブジェクトを定義する。例えば、オブジェクト選択部５４０がある配置の表示オブジェクトを操作代行の結果として表示する表示オブジェクトとして選択していた場合において、生成部５６０は、その配置の表示オブジェクトを操作代行の結果表示された表示オブジェクトから選択して出力するべきことを示すイベントの発生を定義する。具体的には、第１６行から第２２行において、イベントの種類「ｒｅｆ」が定義されている。このイベントは、第１８行に示す＜ｔａｒｇｅｔ＞タグで指定された配置の表示オブジェクトをウェブページから選択することを示す。また、結果として表示される表示オブジェクトには、第２０行で定義された「参照１」という文字列が対応付けて表示される。【００４３】
以上に例示したサービス定義は、インタープリター型やコンパイラ型の言語処理系により、クライアント・コンピュータ１００上で直接動作するサービス・プログラムに変換されて、クライアント・コンピュータ１００により実行される。そしてこのサービス・プログラムは、クライアント・コンピュータ１００を入力受付部５７０および処理部５８０として機能させる。このほかに、サービス定義はサーバ・コンピュータ２００に送信されて蓄積されてもよいし、反対に、サーバ・コンピュータ２００に蓄積された他のサービス定義がクライアント・コンピュータ１００に読み込まれて実行されてもよい。【００４４】
図１１は、クライアント・コンピュータ１００が操作履歴に基づきサービス・プログラムを生成する処理の流れを示す。履歴取得部５１０は、ユーザがウェブ・ブラウザ１０２を操作して１以上のウェブサイトから２以上のサービスを受けた履歴を取得して、記憶装置５０５に格納する（Ｓ１１００）。たとえば、履歴取得部５１０は、ポインティング・デバイスのクリック操作、および、ポインティング・デバイスによりクリックされた表示オブジェクトの配置の組を履歴として取得してもよい。また、履歴取得部５１０は、パラメータの入力操作、入力先の表示オブジェクトの配置、および、入力されたパラメータの組を履歴として取得してもよい。この場合には履歴取得部５１０は、パラメータの入力欄に付されたラベルを更に取得してもよい。また、履歴取得部５１０は、ウェブ・ブラウザを起動する操作、および、起動したウェブ・ブラウザにおいて表示させるウェブページのアドレスの組を履歴として取得してもよい。さらには、履歴取得部５１０は、表示オブジェクトをドラッグ・アンド・ドロップする操作、および、ドラッグされる表示オブジェクトの識別情報、および、ドロップ先の表示オブジェクトの識別情報の組を履歴として取得してもよい。【００４５】
表示部５２０は、記憶装置５０５に格納された操作の一覧を履歴表示画面１０８に表示する（Ｓ１１１０）。そして、クライアント・コンピュータ１００は、履歴が示す操作の各種設定変更について操作を受け付ける（Ｓ１１２０）。たとえば、パラメータ設定部５３０は、履歴として取得された操作のうち、ユーザがウェブページにパラメータを入力する操作について、履歴として取得されたパラメータを処理部５８０による処理にそのまま用いるか否かをユーザの指示に基づき設定する。毎回同じパラメータを入力する操作について、そのままそのパラメータを用いる設定をすれば、操作代行のたびに毎回同じパラメータを入力する手間を省くことができる。また、履歴取得部５１０は、履歴の一部を追加又は削除する操作や、操作順序を入れ替える操作を受け付けてもよい。これにより、履歴取得中の操作ミスの履歴などを削除できるので、操作ミスをしても最初から履歴取得をやり直さなくても済み、利便である。また、履歴取得部５１０は、履歴に含めて取得したラベルを編集する操作を受け付けてもよい。これにより、後の利用時を想定してわかり易い表示を実現できる。【００４６】
オブジェクト選択部５４０は、ユーザが操作したウェブ・ブラウザ１０２に表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて記憶装置５０５に格納する（Ｓ１１３０）。検索部５５０は、記憶装置５０５にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、その第１操作よりも操作順序が後の他の第２操作の履歴を区別して検索する（Ｓ１１４０）。生成部５６０は、クライアント・コンピュータ１００を後述の入力受付部５７０および処理部５８０として機能させるサービス・プログラムを生成する。【００４７】
図１２は、クライアント・コンピュータ１００がサービス・プログラムに基づきユーザの操作を代行する処理の流れを示す。クライアント・コンピュータ１００は、まず、ユーザの操作を代行する指示に応じてウェブ・ブラウザを起動する。このウェブ・ブラウザは処理部５８０による処理を実現するために便宜的に起動されるものであるから、ユーザには見えないように、または、見えにくいように設定されることが望ましい。そして、クライアント・コンピュータ１００は、このウェブ・ブラウザに対し以下の処理を行う。入力受付部５７０は、履歴として取得されたパラメータを処理部５８０による処理に用いない設定がされた第１操作について、新たなパラメータの入力を受け付ける（Ｓ１２００）。具体的には、入力受付部５７０は、この新たなパラメータを入力するための入力欄を表示すると共に、それに対応付けて、この第１操作の履歴に含めて取得されたラベルが示す文字列を表示してもよい。一方、入力受付部５７０は、履歴として取得されたパラメータを処理部５８０による処理に用いる設定がされた第１操作については、新たなパラメータの入力を受け付けない。【００４８】
処理部５８０は、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理と、この第１操作よりも操作順序が後の第２操作に予め定められた処理とをこの順に順次実行する（Ｓ１２１０）。これらの処理は、これらの各操作をウェブ・ブラウザ１０２が受けたならば発生するイベントを、ウェブ・ブラウザ１０２において発生させる指令を、ウェブ・ブラウザ１０２に対して送信することによって実現される。イベントの発生は、具体的には、イベントを発生させるＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を、発生させるイベントの種類、入力するべきパラメータ、および、イベントを発生させる対象となる表示オブジェクトの配置などを引数として呼び出すことによって実現される。このＡＰＩは、プラグイン・プログラムにより提供されるものであってもよいが、例えば、ウェブ・ブラウザ１０２やオペレーティングシステムにより提供されるものであってもよい。【００４９】
個別の操作に対応する具体例は以下の通りである。履歴として取得されたパラメータを処理部５８０による処理に用いない設定がされた第１操作について、処理部５８０は、パラメータが入力されたならば発生するイベントの種類、入力先の表示オブジェクトの配置、および、入力された新たなパラメータを引数とし、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す。クリック操作について、処理部５８０は、ポインティング・デバイスによりクリックされた表示オブジェクトの配置、および、ポインティング・デバイスがクリックされたならば発生するイベントの種類を引数とし、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す。【００５０】
また、履歴として取得されたパラメータを処理部５８０による処理に用いない設定がされた第１操作については、処理部５８０は、パラメータが入力されたならば発生するイベントの種類、入力先の表示オブジェクトの配置、および、履歴として格納したパラメータを引数とし、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す。また、ドラッグ・アンド・ドロップ操作について、処理部５８０は、ドラッグ・アンド・ドロップという操作を示す操作の種類、ドラッグされる表示オブジェクトの識別情報、および、ドロップ先の表示オブジェクトの識別情報を引数として、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す。さらに、ウェブ・ブラウザの起動操作について、処理部５８０は、ウェブページのアドレスを引数としてウェブ・ブラウザを起動するＡＰＩを呼び出す。【００５１】
そして、処理部５８０は、各操作に対応する処理を行ったウェブ・ブラウザに表示されたウェブページから、操作履歴に対応付けて格納された配置に対応する表示オブジェクトを選択して、ユーザの操作を代行した結果として表示する（Ｓ１２２０）。【００５２】
図１３は、操作履歴に基づく２つの動作例を対比して示す。図１３左に示すように、入力操作の履歴が複数取得され、かつ、操作を代行した結果として表示するべき表示オブジェクトが複数設定される場合がある。この場合、検索部５５０は、まず、入力操作である第１操作１３００を検出する。そして、検索部５５０は、それよりも後の操作順序であって、かつ、操作を代行した結果として表示するべき表示オブジェクトが設定された操作よりも後の次の入力操作よりも前の操作を第２操作１３１０として検出する。これに加えて、検索部５５０は、その後の入力操作である第３操作１３２０、および、それより操作順序が後の他の第４操作１３３０を検出する。そしてこの場合には、クライアント・コンピュータ１００は、ユーザの指示に応じて、全てのパラメータが入力されてから一括して操作を代行する動作、または、一部のパラメータが入力される毎に操作の一部ずつを分割して代行する動作を選択的に行う。【００５３】
一括して操作を代行する動作は以下の通りである。入力受付部５７０は、第１操作１３００により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータに加えて、さらに、第３操作１３２０により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力をユーザから受け付ける。これらのパラメータの入力に応じて、処理部５８０は、第１操作１３００に対応する新たなパラメータをウェブページに入力する処理、第２操作１３１０に予め対応付けられた処理、第３操作１３２０に対応する新たなパラメータをウェブページに入力する処理、および、第４操作１３３０に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う。このように、一括して操作を代行する動作においては、全ての入力操作に対応する新たなパラメータが入力されることが動作開始の条件となる。【００５４】
一部ずつを分割して代行する動作は以下の通りである。入力受付部５７０は、まず、第１操作１３００により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力をユーザから受け付ける。そして、処理部５８０は、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、第２操作１３１０に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う。この時点で既に代行した操作に、操作の結果として表示するべき表示オブジェクトが設定されている場合には、処理部５８０は、操作を代行して表示したウェブ・ブラウザからその表示オブジェクトを選択してユーザに表示する。【００５５】
次に、入力受付部５７０は、処理部５８０が第２操作１３１０に予め対応付けられた処理を行ったことに応じて、さらに、第３操作１３２０により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力をユーザから受け付ける。そして、処理部５８０は、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、第４操作１３３０に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う。このように、分割して操作を代行する動作においては、一部の入力操作に対応する新たなパラメータが入力されれば、それによって可能となる一部の操作に対応する処理が開始される。【００５６】
操作代行の分割により、例えば以下のような応用が可能となる。ユーザは、株価の情報等を得るために、情報提供用のウェブページに対し第１操作１３００により株式コードを入力する。その後に、ユーザは第２操作１３１０を経て目的の株価を表示させる。ユーザはそれを見て株式をどのような価格や方法で注文するかを判断する。そして、ユーザは株式の注文価格や方法を第３操作１３２０により証券会社のウェブページに入力する。第４操作１３３０を経て注文結果や約定結果がユーザに表示される。以上のような操作を代行する場合においては、ユーザの判断や株価の情報に関わらず普遍的な第２操作１３１０や第３操作１３４０は自動化したいが、ユーザの判断に基づく第１操作１３００および第３操作は代行の都度新たなパラメータを入力させることが望ましい。更には、第４操作１３３０に対応して入力するパラメータ、例えば注文価格などは第２操作の結果に依存してユーザが決定するものである。操作代行の分割によれば、このようなユーザのニーズに応えて、ユーザの判断が必要な場面では操作代行を中断して新たなパラメータの入力を求めることができる。【００５７】
以上、図１から図１３を参照して、ユーザの操作を代行させるサービス・プログラムの作成を支援する処理機能について説明してきた。この処理機能によれば、一般ユーザが簡単な操作によって自己の操作を代行させるサービス・プログラムを作成することができる。そして、このサービス・プログラムはＨＴＴＰリクエストの代行ではなく操作の代行を実現するものであるから、近年一般的と成ってきた動的に構成を変化させるウェブページへの操作や、複数のウェブページに渡る操作を忠実に再現することができる。このような操作を再現するプログラムによれば、２以上のウェブサイトで提供される複数の既存サービスであってもそれらを組み合わせて新たなサービスを提供させることができる。【００５８】
次に、他のサービスを提供可能とする例を図１４−１６を参照して説明する。  図１４は、表示部５２０の他の表示例を示す。表示部５２０は、第１画面であるウェブ・ブラウザ１０２、および、第２画面である履歴表示画面１０８を表示する。ウェブ・ブラウザ１０２は、「ＵＲＬ：」を付したアドレス入力フィールドに入力されたアドレスからファイルを読み込んで表示する。この結果表示されたウェブ・サイトは、入力欄７２に郵便番号が入力されると、その郵便番号に該当する都市を検索してその名称を文字列として表示するものである。【００５９】
ユーザが入力欄７２に郵便番号を入力すると、履歴表示画面１０８はその入力の操作の履歴を表示する。この履歴にラベルを対応付けるためには、ユーザは入力操作の直後に、ラベルを入力するための入力欄７５にラベルを示す文字列を入力すればよい。これを受けて、履歴取得部５１０は、この履歴に対応付けてラベルを格納する。格納された結果は履歴表示画面１０８にも表示される。ここでは、ラベルとして入力欄７２に入力した文字列「Ｚｉｐ」が履歴表示画面１０８に表示される。【００６０】
図１５は、表示部５２０の他の表示例を示す。ユーザが入力欄７２に郵便番号を入力すると、ウェブサイトの機能により検索結果の都市名が表示される。この図の例では郵便番号「１０００１」に対応する都市名として「Ｎｅｗ  Ｙｏｒｋ」が表示される。ユーザがこの都市名をポインティング・デバイスでクリックした後、右クリックすると、コンテキストメニュー８２が表示される。その中の「エレメントの参照追加」をユーザが選択すると、ウェブページ中におけるこの「Ｎｅｗ  Ｙｏｒｋ」という文字列の配置を示す情報が履歴取得部５１０により取得されて、履歴に対応付けて記憶装置５０５に格納される。【００６１】
この時点でユーザが入力欄７５にラベルを示す文字列を入力すると、ユーザの操作を代行した結果として表示される表示オブジェクトの配置に対応付けて、このラベルが記憶装置５０５に格納される。これは、ユーザの操作を代行したときに、その結果として表示する表示オブジェクトに対応付けて表示するために用いられる。入力欄７５に入力されたラベルは、記憶装置５０５に格納されると共に履歴表示画面１０８にも表示される。この結果、都市名「Ｎｅｗ  Ｙｏｒｋ」の配置には、ラベル「Ｃｉｔｙ」が対応付けられて格納される。また、同様の操作を州名である「ＮＹ」について行い、ラベルとして「Ｓｔａｔｅ」を入力すれば、州名「ＮＹ」の配置にはラベル「Ｓｔａｔｅ」が対応付けられて格納される。【００６２】
図１６は、表示部５２０の他の表示例を示す。ユーザは、このようにして履歴取得部５１０により取得されて記憶装置５０５に格納された履歴に、名称を付けることができる。この名称は、クライアント・コンピュータ１００を入力受付部５７０および処理部５８０として動作させるプログラム、或いはこのプログラムの動作を定義する定義データの名称として用いられる。例えば、ユーザが入力欄９０にラベル「Ｃｉｔｙ  Ｓｅａｒｃｈ」を入力して、履歴をファイルとして保存する旨の操作をすると、プログラム或いは定義データにこのラベルが対応付けられて保存される。
次に、作成したこのサービス・プログラムを実行するためのインターフェイス、および、このサービス・プログラムを他のサービス・プログラムと組み合わせて実行させる処理機能について、図１７から図２８を参照して説明する。【００６３】
図１７は、サービス・プログラムを組み合わせてアプリケーション・プログラムを開発する環境と、それに関連する画面表示を示す。ウェブ・ブラウザ１０２の画面で、アプリケーション・プログラムを開発するためのＵＲＬが入力されると、ウェブ・アプリケーション・サーバ２０２によって、開発環境用のモジュールが、アプリケーション管理モジュール２６０から、クライアント・コンピュータ１００にダウンロードされる。この結果、ウェブ・ブラウザ１０２には、図１７に示すような画面が表示され、開発環境の使用が可能になる。【００６４】
開発環境は、サービスモデル表示部１６２と、アプリケーション編集部１６４と、ＧＵＩ部品表示部１６６と、サービスリスト表示部１６８と、データハブ１７０と、プロパティ編集部１７２、という複数の領域からなる。この実施例では、サービスモデル表示部１６２と、ＧＵＩ部品表示部１６６とが、そこからＧＵＩ部品をアプリケーション編集部１６４に貼り付けることができる、パレット領域である。これらの領域は、この実施例では、タイル型に区分けされた領域であるが、個々の領域で互いに重畳を許す、マルチウインドウ表示方式で実装されてもよい。【００６５】
ＧＵＩ部品リスト表示部１６６は、詳細は図示しないが、ボタン、エディット領域、メモ、ラベル、コンボボックス、ラジオボタンなどの、ＧＵＩ部品を表示し、そこから、アプリケーション編集部１６４に、ＧＵＩ部品をドラッグ・アンド・ドロップ可能である。サービスリスト表示部１６８は、ウェブ・アプリケーション・サーバ２０２が備えるサービス管理部２５６により管理されるサービス・プログラムを、ハードディスクドライブ２０４から読み出してそのリストを表示する。このサービス・プログラムは、システム管理者がウェブサービスアクセスのために予め作成したものでもよい。また、このサービス・プログラムは、図１から図１６を参照して説明した諸機能により作成されたサービス・プログラムであってもよい。【００６６】
サービスモデル表示部１６２は、サービスリスト表示部１６８で選ばれているサービスの、トリガ（Trigger）要素として示された入力要素と、Outputとして示された出力要素を、階層的且つ図式的に表示する領域である。これらの表示された入力要素と、出力要素は、アプリケーション編集部１６４あるいは、後述するデータハブ１７０に、ドラッグ・アンド・ドロップ可能であり、また、アプリケーション編集部１６４あるいは、データハブ１７０から、ドラッグ・アンド・ドロップ可能である。【００６７】
サービスの出力要素として、単なるテキスト文字列以外に、例えば、ＸＭＬで構造化されたリストをとることがあり得る。出力要素が単なるテキスト文字列である場合は、そこからデータハブ１７０にドラッグ・アンド・ドロップされたとき、データハブ１７０で占めるセルは、単一であるが、出力要素がリストである場合は、そこからデータハブ１７０にドラッグ・アンド・ドロップされたとき、データハブ１７０で、当該リストに含まれる文字列または数字の数のセルを占め、且つそのセルの各々に、リストに対応する文字列または数字が格納されることを理解されたい。【００６８】
アプリケーション編集部１６４は、ＧＵＩ部品リスト表示部１６６からＧＵＩ部品を、サービスモデル表示部１６２から、Trigger要素、入力要素あるいは出力要素を、それぞれ、ドラッグ・アンド・ドロップ可能である。このようにして作成された各種要素やＧＵＩ部品の定義は、複数のサービス・プログラムを組み合わせたアプリケーション・プログラムを定義するものとして、ウェブ・アプリケーション・サーバ２０２のアプリケーション管理部２５８により管理され、ハードディスクドライブ２０４などに格納される。【００６９】
サービスモデル表示部１６２のTrigger要素は、アプリケーション編集部１６４に貼り付け、プログラムを実行させた状態でクリックすると、そのサービスに指定されたＵＲＬへのアクセスを開始させる。サービスモデル表示部１６２に表示されたサービスの入力要素とは、ＵＲＬにアクセスする際に与えられるパラメータのことである。例えば、http://www.CitySearch.com/Search/CGI?&zipcode=98231のようなアクセスが行われるとき、zipcodeがパラメータ入力要素（以下、単にパラメータとも呼ぶ）であり、98231が、その内容である。http://www.CitySearch.com/Search/CGI?&zipcode=2428502&coutry=Japanのように、パラメータは、複数取りえる。なお、ウェブサービスは、必ず入力パラメータまたは要素をもつとは限らず、入力要素のないウェブサービスもあり得ることを理解されたい。例えば、単に現在のグリニッジ標準時を返すようなウェブサービスだと、パラメータは不要である。【００７０】
一方、ウェブサイトにアクセスしたとき返されるデータは、ＨＴＭＬであったり、ＸＭＬであったり、ＪａｖａＳｃｒｉｐｔ言語の仕様の一部を利用した、比較的軽いデータ交換フォーマットである、ＪＳＯＮ(JavaScript Object Notation)であったりする。このように、ウェブサイトにアクセスしたとき返されるデータは、構造化されたデータであり得るので、サービスモデル表示部１６２の出力要素として、ドラッグ・アンド・ドロップ可能な単位も、返されるＸＭＬのリスト全体であったり、そのリストの一部であったり、と多様な形態を取りえる。【００７１】
また、この実施例で、ウェブサイトまたはウェブサービスにアクセスされるときは、好適には、Ａｊａｘと呼ばれる技術に基づく、ＸＭＬＨｔｔｐＲｅｑｕｅｓｔと呼ばれる、サーバとの非同期通信が利用される。この技術を利用することによって、画面の書き換えを迅速化し、且つデータ通信量を低減することができる。但し、通常のＨＴＴＰプロトコルのコマンドを利用するものであってもよい。【００７２】
データ連携領域としてのデータハブ１７０は、好適には、スプレッドシート（表計算プログラムとも呼ばれる）の外観のインターフェイスをもつものであり、縦横に区分けされた区域からなる。これらの区域を、スプレッドシートプログラムの慣用に倣って、Ａ１、Ａ２、Ｂ１などの名前のセルと呼ぶことにする。各セルには、ユーザが値を入れることもできるし、アプリケーション編集部１６４に貼り付けられたＧＵＩ部品からドラッグ・アンド・ドロップ可能であるし、スプレッドシートでよく知られた形式の、=A1+B1や、=A1&","&B1のような計算式を入れることもできる。どのような式を許容するかは、ＪａｖａＳｃｒｉｐｔなどを使用したプログラミングのコードに依存する。一方、それらの各セルを、逆に、アプリケーション編集部１６４に貼り付けられているＧＵＩ部品、あるいは、サービスモデル表示部１６２に表示されているサービスの入力要素を宛先として、ドラッグ・アンド・ドロップ可能である。すなわち、この実施例では、データハブ１７０は、上記のようなドラッグ・アンド・ドロップ、及びセル間の様々な計算機能を提供するように、ＪａｖａＳｃｒｉｐｔの機能を利用して作り込まれている。【００７３】
また、データハブ１７０には、ウェブサービスの出力要素として、ＸＭＬなどで記述されたリスト出力要素が貼り付けられることがあり、そのような場合、リスト出力要素がデータハブ１７０にドラッグ・アンド・ドロップされると、リストに含まれる要素の数だけのセルを、占めることになる。このように、リストからドラッグ・アンド・ドロップされた複数のセルに対しては、統計処理を行う必要性があり得るので、この実施例では、=SUM(A1..E1)のような合計関数、=AVERAGE(A1..E1)のような平均関数、=STDEVA(A1..E1)のような標準偏差関数、=MAX(A1..E1)のような最大関数、=MIN(A1..E1)のような最小関数などさまざまな統計関数も用意されている。このような数式処理のＪａｖａＳｃｒｉｐｔによる実装は、プログラミング技法として確立されたものなので、特に詳述しない。【００７４】
また、データハブ１７０で、ユーザが数式を入力したセルは、一般的には、サービスモデル表示部１６２に表示されたサービスモデルの、入力要素、トリガ要素などにドラッグ・アンド・ドロップされて、関連付けられる。しかし、このような要素上ではなく、例えば、アプリケーション編集部１６４の空白領域に直接ドラッグ・アンド・ドロップすることによって、そこに、テキスト入力領域のＧＵＩ部品を自動的に貼り付け、そこに、ドラッグ・アンド・ドロップのもととなったデータハブ１７０のセルの値が関連付けられるように、図１７のクライアント開発環境の機能を設定しておくこともできる。例えば、ＧＵＩ部品リスト表示部１６６からアプリケーション編集部１６４の空白領域へのドラッグ・アンド・ドロップは、慣用的な技術によって、選択したＧＵＩ部品のアプリケーション編集部１６４上への配置をもたらす。従って、これと同様の技術を利用して、データハブ１７０のセルから、アプリケーション編集部１６４の空白領域へのドラッグ・アンド・ドロップが行われることに応答して、ドラッグ・アンド・ドロップされた箇所に、テキスト入力領域をあらわすＧＵＩ部品を貼り付け、続いて、そのテキスト入力領域に、ドラッグ・アンド・ドロップの元のデータハブ１７０のセルから、関連付けを行う、という処理が自動的に行われるように、クライアント開発環境に機能を付与することができる。【００７５】
プロパティ編集部１７２は、一旦アプリケーション編集部１６４に貼り付けられ、マウスのクリックにより選択されたＧＵＩ部品またはサービスの入出力要素の、色、フォント、表示／非表示、Enable/Disableなどの属性を設定、あるいは変更するためのものである。【００７６】
次に、アプリケーションの開発のための操作を、具体例で説明する。ここで、ユーザは、(1) ＣｉｔｙＳｅａｒｃｈというサービス・プログラムに、ｚｉｐｃｏｄｅを入力することで、都市と州のデータを入手し、(2) その都市と州のデータを組み合わせて、ＭａｐＣｏｄｅというサービス・プログラムにアクセスし、(3) その都市の緯度と経度を得る、というアプリケーション・プログラムを作成することを意図している。ただ、ＣｉｔｙＳｅａｒｃｈは、都市と州のデータを個別に返すが、ＭａｐＣｏｄｅは、都市と州とを組み合わせたデータを要求する。そのことを自動的に処理するために、本実施例の特徴が好適に利用される。【００７７】
図１８を参照すると、アプリケーションの新規開発の初期画面が示されている。この画面では、ＧＵＩ部品リスト表示部１６６と、プロパティ編集部１７２は、以下の説明では関連性が薄いので、表示を省略していることに留意されたい。さて、この画面で、ユーザは、サービスリスト表示部１６８から、矢印１４０２で示すように、ＣｉｔｙＳｅａｒｃｈを、サービスモデル表示部１６２に、ドラッグ・アンド・ドロップする。【００７８】
すると、図１９に示すように、サービスモデル表示部１６２に、ＣｉｔｙＳｅａｒｃｈの入出力を含む構造が表示される。この構造は、システム管理者などによってＣｉｔｙＳｅａｒｃｈに対応して予め作成されたものであってもよい。また、サービス・プログラムが図１から図１６を参照して説明した機能により作成された場合においては、サービス定義において「公開」に設定された入力パラメータがサービスモデル表示部１６２においてＩｎｐｕｔ要素またはＴｒｉｇｇｅｒ要素として表示される。また、サービス・プログラムを実行した結果として表示するべきとして設定された表示オブジェクトが、サービスモデル表示部１６２においてＯｕｔｐｕｔ要素として表示される。【００７９】
ここで、図１９で、サービスモデル表示部１６２から、ＣｉｔｙＳｅａｒｃｈのtriggerを、矢印１５０２で示すようにアプリケーション編集部１６４にドラッグ・アンド・ドロップし、ＣｉｔｙＳｅａｒｃｈのinput1を、矢印１５０４で示すようにアプリケーション編集部１６４にドラッグ・アンド・ドロップする。【００８０】
すると、図２０に示すように、triggerをドラッグ・アンド・ドロップした箇所は、「Go」という文字を含むボタン１６０２となり、input1をドラッグ・アンド・ドロップした箇所は、テキスト入力欄１６０４となる。【００８１】
ここで、図２１に示すように、テキスト入力欄１６０４に、10001というｚｉｐｃｏｄｅを入れて、ボタン１６０２をクリックすると、ウェブ・アプリケーション・サーバ２０２を介して、ＣｉｔｙＳｅａｒｃｈに、zipcode=10001というパラメータを以ってアクセスがはかられ、ＣｉｔｙＳｅａｒｃｈは、<City>に、'New York'を、<State>に'NY'を返す。ここで、ユーザは、サービスモデル表示部１６２のＣｉｔｙＳｅａｒｃｈのOutputの<City>を矢印１７０２で示すように、データハブ１７０のセルＡ１にドラッグ・アンド・ドロップし、同様にOutputの<State>を矢印１７０４で示すように、データハブ１７０のセルＢ１にドラッグ・アンド・ドロップする。【００８２】
すると、セルＡ１は<City>に、セルＢ１は<State>にそれぞれバインドされるので、図２２に示すように、データハブ１７０のセルＡ１には、'New York'が表示され、セルＢ１には、'NY'が表示される。【００８３】
そこで、ユーザは、データハブ１７０のセルＣ１に、文字列結合演算子＆を用いて、=A1&','&B1と計算式を入れて改行キーを押す。すると、図２３に示すように、その計算式が計算されて、セルＣ１には、'New York,NY'が表示される。なお、この実施例では、ここでの演算子の規則は、通常のスプレッドシートプログラムで慣用の形式になるように、ＪａｖａＳｃｒｉｐｔを用いてコーディングされているが、=A1+','+B2のような、他のプログラミング言語で慣用の記法を許すようにすることもできる。また、文字列結合演算子以外にも、加算、減算、その他の数学的関数など、任意の演算を実現することができることが、この分野の当業者には明らかであろう。【００８４】
さらに、この例では、セルＡ１とセルＢ１の両方に、ウェブサービスからのoutputをそれぞれ格納したが、一方のセルを、ユーザが直接セルに打ち込んだ文字列、あるいは、他セルへの参照を含む、計算式とするなど、さまざまな応用例が考えられる。【００８５】
次に、図２４に示すように、サービスリスト表示部１６８から、ＭａｐＣｏｄｅを、サービスモデル表示部１６２の任意の領域に、矢印２００２で示すように、ドラッグ・アンド・ドロップする。すると、図２５に示すように、サービスモデル表示部１６２には、ＭａｐＣｏｄｅの入出力を含む構造が表示される。この構造は、システム管理者によってＭａｐＣｏｄｅに対応して予め作成されている。【００８６】
そこで、ユーザは、図２５の画面で、データハブ１７０のセルＣ１を、矢印２１０２、２１０４で示すように、サービスモデル表示部１６２内部の、ＭａｐＣｏｄｅのTriggerとInput1とにそれぞれ、ドラッグ・アンド・ドロップする。Input1だけでなく、Triggerにもドラッグ・アンド・ドロップする理由は、データハブ１７０のセルＣ１の値に変更に自動的に応答して、Input1をパラメータとして、ＭａｐＣｏｄｅへのアクセスが行われるようにするためである。【００８７】
なお、このとき、セルＣ１を直接、サービスリスト表示部１６８に表示されているＭａｐＣｏｄｅのInput1にドラッグ・アンド・ドロップする代わりに、ＭａｐＣｏｄｅのInput1を、アプリケーション編集部１６４に一旦、ドラッグ・アンド・ドロップし、そのアプリケーション編集部１６４のドラッグ・アンド・ドロップした箇所に、セルＣ１をドラッグ・アンド・ドロップしてもよい。それでも、セルＣ１の値が、ＭａｐＣｏｄｅのInput1に提供される、という意味では同じであるが、このようにしておくと、後で、アプリケーションを起動したときに、画面で、途中経過としてのＭａｐＣｏｄｅのInput1に提供された値を、ユーザが目で見ることができる。【００８８】
実際、ＭａｐＣｏｄｅのTriggerが、このドラッグ・アンド・ドロップ操作に応答して、何にも関連づけられていなかった状態から、関連付けられた状態に変化したことにより、ＭａｐＣｏｄｅが、New York,NYというパラメータでアクセスされ、ＭａｐＣｏｄｅは、ニューヨーク市の緯度と経度を、それぞれ、<latitude>=40.71, <longitude>=-75.59として返す。そこで、サービスモデル表示部１６２から、アプリケーション編集部１６４に、矢印２２０２、２２０４でそれぞれ示すように、ＭａｐＣｏｄｅのoutputである、<latitude>及び<longitude>をドラッグ・アンド・ドロップすることにより、それらの値が、アプリケーション編集部１６４上で実際に見えるようになる。その様子を、図２６で示す。【００８９】
これで一応アプリケーションは完成であるが、図２７に示すように、後は、ユーザは、適宜、アプリケーション・プログラムを分かりやすくするための説明の文字列２３０２、２３０４、２３０６を追加して、アプリケーション・プログラムをセーブする。このようにしてセーブされたアプリケーション・プログラムは、ユーザの指示に基づき起動して入力欄を表示し、パラメータの入力に応じてサービスの提供を開始する。【００９０】
たとえば、入力受付部５７０は、まずＣｉｔｙＳｅａｒｃｈを提供するサービス・プログラムの働きかけにより動作を開始し、テキスト入力欄１６０４およびボタン１６０２を表示して、入力パラメータであるＺｉｐｃｏｄｅを受け付ける。そして、このパラメータの入力を条件に、処理部５８０は、サービス定義に規定された各種のイベントをウェブ・ブラウザにおいて発生させる。この処理は、サービス・プログラムが操作履歴に基づき作成されたものである場合にはその操作の代行に相当する。そして、処理部５８０は、操作を代行した結果としてウェブ・ブラウザに表示されたウェブページから、予め設定された表示オブジェクトを選択して、操作を代行した結果として表示する。例えば、図２７の例においては、テキスト入力欄２２０６およびテキスト入力欄２２０８にその結果が表示される。【００９１】
以上、図１７から図２７を参照して説明した例によれば、ユーザによる直感的なＧＵＩ操作によって、サービス・プログラムを様々なＧＵＩ要素と組み合わせ、または、他のサービス・プログラムと組み合せて、アプリケーション・プログラムを作成することができる。このように、サービス・プログラムはそれ単独で動作しても複数のサービスを組み合わせることができるが、アプリケーション・プログラムの一部品として機能することで更に高度な処理を実現できる。【００９２】
図２８は、クライアント・コンピュータ１００のハードウェア構成の一例を示す。クライアント・コンピュータ１００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。【００９３】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。【００９４】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、クライアント・コンピュータ１００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。【００９５】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、クライアント・コンピュータ１００の起動時にＣＰＵ１０００が実行するブートプログラムや、クライアント・コンピュータ１００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。【００９６】
クライアント・コンピュータ１００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されてユーザによって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されクライアント・コンピュータ１００にインストールされて実行される。プログラムがクライアント・コンピュータ１００等に働きかけて行わせる動作は、図１から図２７において説明したクライアント・コンピュータ１００における動作と同一であるから、説明を省略する。【００９７】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをクライアント・コンピュータ１００に提供してもよい。【００９８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることのできることが当業者にとって明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００９９】
【図１】図１は、情報システム１０の全体構成を示す。
【図２】図２は、情報システム１０がユーザの操作に応じて行う処理の全体の流れを示す。
【図３】図３は、図２のＳ１０−Ｓ１５の詳細を示す。
【図４】図４は、図２のＳ２５−Ｓ３２の詳細を示す。
【図５】図５は、クライアント・コンピュータ１００の機能を機能ブロックにより示す。
【図６】図６は、記憶装置５０５のデータ構造の一例を示す。
【図７】図７は、表示部５２０の第１表示例を示す。
【図８】図８は、表示部５２０の第２表示例を示す。
【図９】図９は、表示部５２０の第３表示例を示す。
【図１０】図１０は、サービス定義５０の具体例を示す。
【図１１】図１１は、クライアント・コンピュータ１００が操作履歴に基づきサービス・プログラムを生成する処理の流れを示す。
【図１２】図１２は、クライアント・コンピュータ１００がサービス・プログラムに基づきユーザの操作を代行する処理の流れを示す。
【図１３】図１３は、操作履歴に基づく２つの動作例を対比して示す。
【図１４】図１４は、表示部５２０の他の表示例を示す。
【図１５】図１５は、表示部５２０の他の表示例を示す。
【図１６】図１６は、表示部５２０の他の表示例を示す。
【図１７】図１７は、サービス・プログラムを組み合わせてアプリケーション・プログラムを開発する環境と、それに関連する画面表示を示す。
【図１８】図１８は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図１９】図１９は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図２０】図２１は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図２１】図２１は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図２２】図２２は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図２３】図２３は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図２４】図２４は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図２５】図２５は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図２６】図２６は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図２７】図２７は、アプリケーション・プログラムを開発する画面の具体例を示す。
【図２８】図２８は、クライアント・コンピュータ１００のハードウェア構成の一例を示す。
【符号の説明】
【０１００】
１０  情報システム
５０  サービス定義
１００  クライアント・コンピュータ
１０２  ウェブ・ブラウザ
１０４  ハードディスクドライブ
１０６  通信インターフェイス
１０８  履歴表示画面
１６２  サービスモデル表示部
１６４  アプリケーション編集部
１６６  ＧＵＩ部品リスト表示部
１６８  サービスリスト表示部
１７０  データハブ
１７２  プロパティ編集部
２００  サーバ・コンピュータ
２０２  ウェブ・アプリケーション・サーバ
２０４  ハードディスクドライブ
２０６  通信インターフェイス
２５６  サービス管理部
２５８  アプリケーション管理部
２６０  アプリケーション管理モジュール
３００  通信回線
４００  プロキシ・サーバ
５００  インターネット
５０５  記憶装置
５１０  履歴取得部
５２０  表示部
５３０  パラメータ設定部
５４０  オブジェクト選択部
５５０  検索部
５６０  生成部
５７０  入力受付部
５８０  処理部
６０２  ウェブサイト
６０４  ウェブサイト
６０６  ウェブサイト
１３００  第１操作
１３１０  第２操作
１３２０  第３操作
１３３０  第４操作
１４０２  矢印
１５０２  矢印
１５０４  矢印
１６０２  ボタン
１６０４  テキスト入力欄
１７０２  矢印
１７０４  矢印
２００２  矢印
２１０２  矢印
２１０４  矢印
２２０２  矢印
２２０４  矢印
２２０６  テキスト入力欄
２２０８  テキスト入力欄
２３０２  文字列
２３０４  文字列
２３０６  文字列
【図１】
2008126796.tif 000003
【図２】
2008126796.tif 000004
【図３】
2008126796.tif 000005
【図４】
2008126796.tif 000006
【図５】
2008126796.tif 000007
【図６】
2008126796.tif 000008
【図７】
2008126796.tif 000009
【図８】
2008126796.tif 000010
【図９】
2008126796.tif 000011
【図１０】
2008126796.tif 000012
【図１１】
2008126796.tif 000013
【図１２】
2008126796.tif 000014
【図１３】
2008126796.tif 000015
【図１４】
2008126796.tif 000016
【図１５】
2008126796.tif 000017
【図１６】
2008126796.tif 000018
【図１７】
2008126796.tif 000019
【図１８】
2008126796.tif 000020
【図１９】
2008126796.tif 000021
【図２０】
2008126796.tif 000022
【図２１】
2008126796.tif 000023
【図２２】
2008126796.tif 000024
【図２３】
2008126796.tif 000025
【図２４】
2008126796.tif 000026
【図２５】
2008126796.tif 000027
【図２６】
2008126796.tif 000028
【図２７】
2008126796.tif 000029
【図２８】
2008126796.tif 000030
【手続補正書】
【提出日】平成21年2月4日(2009.2.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サービス・プログラムを生成するためのシステムであって、
記憶装置と、
ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納する履歴取得部と、
前記記憶装置にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、前記第１操作よりも操作順序が後の他の第２操作の履歴を検索する検索部と、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するために使用されるサービス・プログラムを生成して前記記憶装置に格納する生成部とを備え、
前記サービス・プログラムは、
前記第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付ける入力受付部、
この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、前記第２操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う処理部
としてコンピュータを機能させ、
前記履歴取得部は、ウェブ・ブラウザを起動する操作、および、起動したウェブ・ブラウザにおいて表示させるウェブページのアドレスの組を履歴として格納し、
前記処理部は、ウェブページのアドレスを引数としてウェブ・ブラウザを起動するＡＰＩを呼び出す、システム。
【請求項２】
前記履歴取得部は、ユーザがウェブ・ブラウザを操作して１以上のウェブサイトから２以上のサービスを受けた履歴を格納し、
前記生成部は、ユーザがウェブ・ブラウザを操作することで提供を受けた２以上のサービスを組み合わせて新たなサービスを提供するために使用されるサービス・プログラムとして、コンピュータを前記入力受付部および前記処理部として機能させるプログラムを生成して前記記憶装置に格納する、請求項１に記載のシステム。
【請求項３】
前記記憶装置に格納された前記第１操作の履歴について、履歴として取得されたパラメータを前記処理部による処理に用いるか否かをユーザの指示に基づき設定し、設定結果を前記記憶装置に格納するパラメータ設定部を更に備え、
前記入力受付部は、履歴として取得されたパラメータを前記処理部による処理に用いない設定がされた第１操作について、新たなパラメータの入力を受け付け、
前記処理部は、履歴として取得されたパラメータを前記処理部による処理に用いない設定がされた第１操作について、この新たなパラメータをウェブページに入力する処理を行い、履歴として取得されたパラメータを前記処理部による処理に用いる設定がされた第１操作については、その第１操作に予め対応付けられた処理をウェブ・ブラウザに対し行う請求項１に記載のシステム。
【請求項４】
ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて前記記憶装置に格納するオブジェクト選択部を更に備え、前記処理部は、各操作に対応する処理を行ったウェブ・ブラウザに表示されたウェブページから、前記記憶装置に格納された配置に対応する表示オブジェクトを選択して、前記処理部による処理の結果として出力する
請求項１に記載のシステム。
【請求項５】
ユーザが操作するウェブ・ブラウザである第１画面、および、前記記憶装置に格納された操作の履歴の一覧を表示する第２画面を表示する表示部を更に備え、
前記オブジェクト選択部は、ユーザが第１画面中の表示オブジェクトを第２画面中の操作の履歴に関連付ける指示を受け付けることで、関連付けられたその操作に対応する処理の結果として表示されるウェブページから選択するべき表示オブジェクトを選択する
請求項４に記載のシステム。
【請求項６】
前記履歴取得部は、前記第１操作について、操作の種類、操作対象の表示オブジェクトのウェブページ内における配置、および、入力されたパラメータの組を、前記第１操作の履歴として格納し、
前記処理部は、ウェブ・ブラウザを起動し、新たなパラメータの入力に応じて、このウェブ・ブラウザに表示された、前記第１操作の履歴として格納された配置に対応する表示オブジェクトに対し、履歴として格納されたパラメータに代えてこの新たなパラメータを入力する処理を行う
請求項１に記載のシステム。
【請求項７】
前記履歴取得部は、前記第１操作の履歴として、さらに、ユーザがパラメータを入力したウェブページにおいてそのパラメータを入力する入力欄をユーザに識別させるために付されたラベルを格納し、
前記入力受付部は、前記第１操作の履歴として格納されたラベルを、新たなパラメータを入力させる入力欄に対応付けて表示することで、新たなパラメータの入力をユーザから受け付ける
請求項６に記載のシステム。
【請求項８】
前記処理部は、それぞれの操作について、その操作をウェブ・ブラウザが受けたならば発生するイベントを、ウェブ・ブラウザにおいて発生させる指令を発行する
請求項１に記載のシステム。
【請求項９】
前記履歴取得部は、ポインティング・デバイスのクリック操作、および、ポインティング・デバイスによりクリックされた表示オブジェクトの配置の組を履歴として格納し、
前記処理部は、ポインティング・デバイスによりクリックされた表示オブジェクトの配置、および、ポインティング・デバイスがクリックされたならば発生するイベントの種類を引数とし、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す
請求項８に記載のシステム。
【請求項１０】
前記履歴取得部は、パラメータの入力操作、入力先の表示オブジェクトの配置、および、入力されたパラメータの組を履歴として格納し、
前記処理部は、パラメータが入力されたならば発生するイベントの種類、入力先の表示オブジェクトの配置、および、履歴として格納したパラメータ或いは新たに入力したパラメータを引数とし、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す
請求項８に記載のシステム。
【請求項１１】
（削除）
【請求項１２】
前記履歴取得部は、表示オブジェクトをドラッグ・アンド・ドロップする操作、および、ドラッグされる表示オブジェクトの識別情報、および、ドロップ先の表示オブジェクトの識別情報の組を履歴として格納し、
前記処理部は、ドラッグ・アンド・ドロップという操作を示す操作の種類、ドラッグされる表示オブジェクトの識別情報、および、ドロップ先の表示オブジェクトの識別情報を引数として、ウェブ・ブラウザにおいてイベントを発生させるＡＰＩを呼び出す
請求項８に記載のシステム。
【請求項１３】
前記処理部は、前記第１操作に対応して新たなパラメータをウェブページに入力する処理を行い、ユーザにより予め設定された待機時間が経過してから、前記第１操作に予め対応付けられた処理を行う
請求項１に記載のシステム。
【請求項１４】
ウェブ・ブラウザは、複数の表示オブジェクトについてそれらの配置をツリー構造のデータにより定義したファイルを読み込むことで、それらの表示オブジェクトを含むウェブページを表示し、
前記オブジェクト選択部は、ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザに指定された表示オブジェクト、および、その表示オブジェクトと前記ツリー構造のデータにおいて祖先の表示オブジェクトが共通する他の表示オブジェクトを、前記処理部による処理の結果として表示する表示オブジェクトとして選択する
請求項３に記載のシステム。
【請求項１５】
前記検索部は、さらに、前記第２操作より操作順序が後であり、ウェブページにパラメータを入力する第３操作の履歴、および、前記第３操作より操作順序が後の他の第４操作の履歴を検索し、
前記入力受付部は、前記処理部が前記第２操作に予め対応付けられた処理を行ったことに応じて、さらに、前記第３操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付け、
前記処理部は、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、前記第４操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う
請求項１に記載のシステム。
【請求項１６】
前記検索部は、さらに、前記第２操作より操作順序が後であり、ウェブページにパラメータを入力する第３操作の履歴、および、前記第３操作より操作順序が後の他の第４操作の履歴を検索し、
前記入力受付部は、前記第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータに加えて、さらに、前記第３操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付け、
前記処理部は、これらの新たなパラメータの入力に応じて、前記第１操作に対応する新たなパラメータをウェブページに入力する処理、前記第２操作に予め対応付けられた処理、前記第３操作に対応する新たなパラメータをウェブページに入力する処理、および、前記第４操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う
請求項１に記載のシステム。
【請求項１７】
サービス・プログラムを生成するための方法であって、
コンピュータの履歴取得部が、ユーザがウェブ・ブラウザを操作した履歴を取得してコンピュータの記憶装置に格納するステップと、
コンピュータの検索部が、前記記憶装置にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、前記第１操作よりも操作順序が後の他の第２操作の履歴を検索するステップと、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するために使用されるサービス・プログラムを生成して前記記憶装置に格納するステップとを備え、
前記サービス・プログラムは、
前記第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付ける入力受付部、
コンピュータの処理部が、この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、前記第２操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う処理部、
としてコンピュータを機能させ、
前記履歴取得部は、ウェブ・ブラウザを起動する操作、および、起動したウェブ・ブラウザにおいて表示させるウェブページのアドレスの組を履歴として格納し、
前記処理部は、ウェブページのアドレスを引数としてウェブ・ブラウザを起動するＡＰＩを呼び出す、方法。
【請求項１８】
サービス・プログラムを生成するためのプログラムであって、記憶装置を備えたコンピュータを
ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納する履歴取得部と、
前記記憶装置にアクセスして、ウェブページにパラメータを入力する第１操作の履歴、および、前記第１操作よりも操作順序が後の他の第２操作の履歴を検索する検索部と、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するために使用されるサービス・プログラムを生成して前記記憶装置に格納する生成部と
して機能させ、
前記サービス・プログラムは、
ユーザの指示に応じて、前記第１操作により入力されたパラメータに代えてウェブページに入力するべき新たなパラメータの入力を受け付ける入力受付部、
この新たなパラメータの入力に応じて、この新たなパラメータをウェブページに入力する処理、および、前記第２操作に予め対応付けられた処理をウェブ・ブラウザに対してこの順に順次行う処理部
としてコンピュータを機能させ、
前記履歴取得部は、ウェブ・ブラウザを起動する操作、および、起動したウェブ・ブラウザにおいて表示させるウェブページのアドレスの組を履歴として格納し、
前記処理部は、ウェブページのアドレスを引数としてウェブ・ブラウザを起動するＡＰＩを呼び出す、プログラム。
【請求項１９】
サービス・プログラムを生成するシステムであって、
記憶装置と、
ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納する履歴取得部と、
ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて前記記憶装置に格納するオブジェクト選択部と、
前記記憶装置にアクセスして、それぞれの操作の履歴を検索する検索部と、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するために使用されるサービス・プログラム生成して前記記憶装置に格納する生成部とを備え、
前記サービス・プログラムは、
検索した各操作に対応する処理をウェブ・ブラウザに対してその操作の順序で行い、各操作に対応する処理を行ったウェブ・ブラウザに表示されたウェブページから、前記記憶装置に格納された配置に対応する表示オブジェクトを選択して出力する処理部
としてコンピュータを機能させ、
前記履歴取得部は、ウェブ・ブラウザを起動する操作、および、起動したウェブ・ブラウザにおいて表示させるウェブページのアドレスの組を履歴として格納し、
前記処理部は、ウェブページのアドレスを引数としてウェブ・ブラウザを起動するＡＰＩを呼び出す、システム。
【請求項２０】
ユーザが操作するウェブ・ブラウザである第１画面、および、前記記憶装置に格納された操作の履歴の一覧を表示する第２画面を表示する表示部を更に備え、
前記オブジェクト選択部は、ユーザが第１画面中の表示オブジェクトを第２画面中の操作の履歴に関連付ける指示を受け付けることで、関連付けられたその操作に対応する処理の結果として表示されるウェブページから選択するべき表示オブジェクトを選択する
請求項１９に記載のシステム。
【請求項２１】
前記履歴取得部は、ユーザがウェブ・ブラウザを操作して１以上のウェブサイトから２以上のサービスを受けた履歴を格納し、
前記生成部は、ユーザがウェブ・ブラウザを操作することで提供を受けた２以上のサービスを組み合わせて新たなサービスを提供するために使用されるサービス・プログラムとして、コンピュータを前記処理部として機能させるプログラムを生成する、請求項１９に記載のシステム。
【請求項２２】
サービス・プログラムを生成するための方法であって、
コンピュータの履歴取得部が、ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納するステップと、
コンピュータのオブジェクト選択部が、ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて前記記憶装置に格納するステップと、
コンピュータの検索部が、前記記憶装置にアクセスして、それぞれの操作の履歴を検索するステップと、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するために使用されるサービス・プログラム生成して前記記憶装置に格納するステップとを備え、
前記サービス・プログラムは、
検索した各操作に対応する処理をウェブ・ブラウザに対してその操作の順序で行い、各操作に対応する処理を行ったウェブ・ブラウザに表示されたウェブページから、前記記憶装置に格納された配置に対応する表示オブジェクトを選択して出力する処理部
としてコンピュータを機能させ、
前記履歴取得部は、ウェブ・ブラウザを起動する操作、および、起動したウェブ・ブラウザにおいて表示させるウェブページのアドレスの組を履歴として格納し、
前記処理部は、ウェブページのアドレスを引数としてウェブ・ブラウザを起動するＡＰＩを呼び出す、方法。
【請求項２３】
サービス・プログラムを生成するためのプログラムであって、
記憶装置を備えたコンピュータを、
ユーザがウェブ・ブラウザを操作した履歴を取得して前記記憶装置に格納する履歴取得部と、
ユーザが操作したウェブ・ブラウザに表示されたウェブページの中から、ユーザの指示に基づいて表示オブジェクトを選択し、その表示オブジェクトのウェブページ中における配置を操作の履歴に対応付けて前記記憶装置に格納するオブジェクト選択部と、
前記記憶装置にアクセスして、それぞれの操作の履歴を検索する検索部と、
ユーザがウェブ・ブラウザを操作することで提供を受けたサービスを提供するために使用されるサービス・プログラム生成して前記記憶装置に格納する生成部として機能させ、
前記サービス・プログラムは、
検索した各操作に対応する処理をウェブ・ブラウザに対してその操作の順序で行い、各操作に対応する処理を行ったウェブ・ブラウザに表示されたウェブページから、前記記憶装置に格納された配置に対応する表示オブジェクトを選択して出力する処理部
としてコンピュータを機能させ、
前記履歴取得部は、ウェブ・ブラウザを起動する操作、および、起動したウェブ・ブラウザにおいて表示させるウェブページのアドレスの組を履歴として格納し、
前記処理部は、ウェブページのアドレスを引数としてウェブ・ブラウザを起動するＡＰＩを呼び出す、プログラム。
【国際調査報告】
2008126796.tif 000031
2008126796.tif 000032
2008126796.tif 000033
2008126796.tif 000034
2008126796.tif 000035
2008126796.tif 000036
2008126796.tif 000037
2008126796.tif 000038