(57)【要約】【課題】ＵＩ種別が追加されたときに、それに応じた操作内容の抽出・記録の処理や形式を、他のＵＩ種別の処理や形式に影響を与えないように容易に新たに追加できるユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体を提供する。【解決手段】複数種のアプリケーションを統合的に操作する端末装置10に、オペレータ1による対象アプリケーションの操作情報を監視するイベントメッセージ監視部142と、イベントメッセージ監視部142から受信した操作情報をシナリオファイル232およびワークデータファイル231に保存するティーチング部131と、シナリオファイル232およびワークデータファイル231から読み出した操作情報を送信するプロセス制御部132と、プロセス制御部132から受信した操作情報に基づいて対象アプリケーションの操作を実行するオペレーション実行部141とを備える。【選択図】図４
2010204840.tif 000002
【特許請求の範囲】
【請求項１】
複数種のアプリケーションを統合的に操作するコンピュータ端末装置におけるユーザインターフェース操作統合システムのカスタマイズ方法であって、
オペレーション実行部とイベントメッセージ監視部とを有するユーザインターフェース操作・監視インターフェース提供部と、ティーチング部とプロセス制御部とを有する業務記録・実行インターフェース提供部とを、ユーザインターフェース操作統合システムの内部アーキテクチャに設けるとともに、
前記オペレーション実行部と前記プロセス制御部との間および前記イベントメッセージ監視部と前記ティーチング部との間をアダプタタイプ識別・振り分け機能部によって接続し、
前記ティーチング部は追加拡張可能な複数のティーチングモジュールを有するとともに、前記プロセス制御部は追加拡張可能な複数のリプレイモジュールを有し、
前記イベントメッセージ監視部が、前記ティーチング部の所定のティーチングモジュールからの指示を受け、特定のウィンドウやコンポーネントに対するイベントを監視し、イベント発生時には前記指示を受けたティーチングモジュールにイベント内容或いはメッセージ内容を通知するステップと、
前記通知を受けたティーチングモジュールが、前記イベントメッセージ監視部から前記イベント内容或いはメッセージ内容を受け、該イベント内容或いはメッセージ内容に基づいて作業の実行内容を記述したワークデータファイルと前記作業の実行順序を記述したシナリオファイルを記憶部に保存するステップと、
所定のリプレイモジュールが、前記記憶部に保存されている前記ワークデータファイルと前記シナリオファイルとを読み出し、該ワークデータファイルとシナリオファイルの内容にもとづいてオペレーション実行部へイベント内容或いはメッセージ内容を送信するステップと、
前記オペレーション実行部が、前記リプレイモジュールから送信されたイベント内容或いはメッセージ内容を受け、所定のユーザインターフェース操作を実行するステップと、
対象アプリケーションの追加に応じて該対象アプリケーションに対応するティーチングモジュールとリプレイモジュールを追加するステップとを含む
ことを特徴とするユーザインターフェース操作統合システムのカスタマイズ方法。
【請求項２】
前記イベント内容が、ユーザが実際に対象アプリケーションを操作しているときのマウスやキーボードのイベントの内容であり、前記メッセージ内容がユーザインターフェース要素のメッセージである
ことを特徴とする請求項１に記載のユーザインターフェース操作統合システムのカスタマイズ方法。
【請求項３】
複数種のアプリケーションを統合的に操作する端末装置において、
ユーザによる対象アプリケーションの操作情報を監視するイベントメッセージ監視部と、
前記イベントメッセージ監視部から前記操作情報を受信し、該操作情報をシナリオファイルおよびワークデータファイルに保存するティーチング部と、
前記シナリオファイルおよび前記ワークデータファイルから前記操作情報を読み出し、該読み出した操作情報をオペレーション実行部に送信するプロセス制御部と、
前記プロセス制御部から受信した操作情報に基づき対象アプリケーションの操作を実行するオペレーション実行部とを備える
ことを特徴とする端末装置。
【請求項４】
前記ティーチング部は、抽象レベルごとの情報抽出処理機能を任意に読み込んで実行可能なティーチングモジュールとして個別に実装し、
前記イベントメッセージ監視部は、追加拡張が可能なグラフィックユーザインターフェースプラットフォームに依存した監視機能を任意に接続可能なアダプタとして個別に実装するとともに、これらのアダプタと前記ティーチングモジュールとを接続するアダプタタイプ識別・振り分け機能部を備える
ことを特徴とする請求項３に記載の端末装置。
【請求項５】
前記プロセス制御部は、抽象レベルごとのオペレーション実行処理機能を任意に読み込んで実行可能なリプレイモジュールとして個別に実装し、
前記オペレーション実行部は、追加拡張が可能なグラフィックユーザインターフェースプラットフォームに依存した実行機能を任意に接続可能なアダプタとして個別に実装するとともに、これらのアダプタと前記リプレイモジュールとを接続するアダプタタイプ識別・振り分け機能部を備える
ことを特徴とする請求項３に記載の端末装置。
【請求項６】
オペレーション実行部とイベントメッセージ監視部とを有するユーザインターフェース操作・監視インターフェース提供部と、ティーチング部とプロセス制御部とを有する業務記録・実行インターフェース提供部とを、ユーザインターフェース操作統合システムの内部アーキテクチャに備えるとともに、前記オペレーション実行部と前記プロセス制御部との間および前記イベントメッセージ監視部と前記ティーチング部との間がアダプタタイプ識別・振り分け機能部によって接続され、前記ティーチング部は追加拡張可能な複数のティーチングモジュールを有するとともに、前記プロセス制御部は追加拡張可能な複数のリプレイモジュールを有するユーザインターフェース操作統合システムを備え、複数種のアプリケーションを統合的に操作するコンピュータ端末装置における前記ユーザインターフェース操作統合システムのコンピュータプログラムであって、
前記請求項1に記載の各ステップを含むことを特徴とするコンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント端末装置上で動作する複数のアプリケーションを統合的に操作する技術に属するものである。
【背景技術】
【０００２】
従来、例えばネットワークオペレーションなどの業務効率化に向け、複数のシステムを効率的に連携させるための技術が検討されている。
【０００３】
例えば、特許文献１（特開２００４−３８７５９号公報）では、様々な種別のアプリケーションサーバソフトウェアを連携させ、統合的に操作する技術を提供している。この技術では、アプリケーション毎の違いに拠らない共通的な処理を行うスクリプト処理エンジンと、アプリケーション毎の違いに対応してデータ値の取得・設定に関わる個別の処理を行うアプリケーションアダプタによる構成となっている。スクリプト処理エンジンは、連携表示させたい情報の内容に応じて予め作成されたスクリプトを実行し、両機能部間はアプリケーション種別に依存しない共通的なインターフェース（以下、単にＩＦと称する）で接続することによって、通常の開発方法にくらべ、低コスト、短期間での開発を実現している。
【０００４】
また一方で例えば、アプリケーション操作を自動化するソフトウェアツールが、フリーソフトとして公開・配布されている。操作自動化ツールは、ユーザが実際に対象アプリケーションを操作しているときの、マウスやキーボードなど入出力デバイスのイベントならびにテキストフィールドやボタンなどユーザインターフェース（以下、単にＵＩと称する）要素のメッセージを監視して必要な情報を抽出するとともにそれらをファイルに保存し、後でそれらを擬似的に発生（エミュレーション）させることで任意回数同じ操作内容を実行することが可能である。つまり、プログラムについて詳しい知識を持たなくても目的とするアプリケーション操作の内容を間接的に記述することができる。
【０００５】
あるいは、例えば、特許文献２（特開平６−３０１５２５号公報）では、マルチウィンドウシステムにおける実行制御方式に関し、複数のウィンドウを連携させる処理を、多大の労力を費やすことなく、実行可能にしている。この技術においても、上記フリーソフトと同様の内部構成により、目的を達成している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３８７５９号公報
【特許文献２】特開平６−３０１５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に示す技術においては、連携で扱う処理をデータの取得更新を最新に保つことに特殊化している。実際のネットワークオペレーション等の業務においては、データの検索や外部装置の制御など多様な処理を実行できることが望ましい。また、特許文献１においては、データ更新取得処理の範囲に限ってスクリプトエディタを使ってコンパイルすることなく、開発を行うことができる。これは通常の開発方法にくらべれば、低コスト、短期間で開発が可能であるが、さらに開発そのもの（コーディングやプログラミング）を行わずに、業務スキル者自身がアプリケーション仕様を定義・実行できるような、より手軽で簡便な方法が望ましい。
【０００８】
このような観点から、アプリケーション操作自動化ツールと同様、操作内容をユーザの操作の実演から抽出・記録し、同じ内容を後から任意回数実行する方法は有効である。しかし、当該ツールの方式では、あらかじめ定められたＵＩ種別にしか対応できない。実際のネットワークオペレーション支援システムは、管理対象設備に応じて異なるシステムとなっている場合が多く、それらが異なるウィンドウシステムや異なるグラフィックユーザインターフェース（以下、単にＧＵＩと称する）プラットフォームで実装されることを考慮する必要がある。特に、技術革新の多いネットワーク（以下、単にＮＷと称する）設備に応じて数年のサイクルで新しいシステムが開発される現状においては、それに対応可能にする必要がある。すなわち、ＵＩ種別が追加されたときに、それに応じた操作内容の抽出・記録の処理や形式を、他のＵＩ種別の処理や形式に影響を与えないように新たに追加しなければならず、実現が困難であった。
【０００９】
本発明の目的は、上記の問題点に鑑み、ＵＩ種別が追加されたときに、それに応じた操作内容の抽出・記録の処理や形式を、他のＵＩ種別の処理や形式に影響を与えないように容易に新たに追加できるユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、複数種のアプリケーションを統合的に操作するコンピュータ端末装置におけるユーザインターフェース操作統合システムのカスタマイズ方法であって、オペレーション実行部とイベントメッセージ監視部とを有するユーザインターフェース操作・監視インターフェース提供部と、ティーチング部とプロセス制御部とを有する業務記録・実行インターフェース提供部とを、ユーザインターフェース操作統合システムの内部アーキテクチャに設けるとともに、前記オペレーション実行部と前記プロセス制御部との間および前記イベントメッセージ監視部と前記ティーチング部との間をアダプタタイプ識別・振り分け機能部によって接続し、前記ティーチング部は追加拡張可能な複数のティーチングモジュールを有するとともに、前記プロセス制御部は追加拡張可能な複数のリプレイモジュールを有し、前記イベントメッセージ監視部が、前記ティーチング部の所定のティーチングモジュールからの指示を受け、特定のウィンドウやコンポーネントに対するイベントを監視し、イベント発生時には前記指示を受けたティーチングモジュールにイベント内容或いはメッセージ内容を通知し、前記通知を受けたティーチングモジュールが、前記イベントメッセージ監視部から前記イベント内容或いはメッセージ内容を受け、該イベント内容或いはメッセージ内容に基づいて作業の実行内容を記述したワークデータファイルと前記作業の実行順序を記述したシナリオファイルを記憶部に保存し、所定のリプレイモジュールが、前記記憶部に保存されている前記ワークデータファイルと前記シナリオファイルとを読み出し、該ワークデータファイルとシナリオファイルの内容にもとづいてオペレーション実行部へイベント内容或いはメッセージ内容を送信し、前記オペレーション実行部が、前記リプレイモジュールから送信されたイベント内容或いはメッセージ内容を受け、所定のユーザインターフェース操作を実行し、対象アプリケーションの追加に応じて該対象アプリケーションに対応するティーチングモジュールとリプレイモジュールを追加する。
【発明の効果】
【００１１】
本発明によれば、追加拡張可能な複数のティーチングモジュールを用いることにより、ティーチング部において利用できる監視情報の種類を従来の処理に大きな影響を与えることなく追加拡張することができるとともに、追加拡張可能な複数のリプレイモジュールを用いることにより、プロセス制御部において利用できる実行手段の種類を従来の処理に大きな影響を与えることなく追加拡張することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態におけるシステム構成の一形態を示す図
【図２】本発明の一実施形態におけるシステム構成の他の形態を示す図
【図３】本発明の一実施形態におけるシステム構成の他の形態を示す図
【図４】本発明の一実施形態におけるシステム端末装置を示す機能ブロック図
【図５】本発明の一実施形態におけるシステム端末装置が実行する処理の手順を示すフロー図
【図６】本発明の一実施形態におけるシステム端末装置が実行する処理の手順を示すフロー図
【図７】本発明の一実施形態におけるシステム端末装置が実行する処理の手順を示すフロー図
【図８】本発明の一実施形態におけるティーチング部の内部構成図
【図９】本発明の一実施形態におけるシナリオファイルに保存されている作業履歴を示す図
【図１０】本発明の一実施形態におけるワークデータファイルに保存されている作業データを示す図
【図１１】本発明の一実施形態におけるイベントメッセージ監視部に対するＩＦの振り分け方法を説明する機能ブロック図
【図１２】本発明の一実施形態におけるイベントメッセージ監視部に対するＩＦの振り分け方法を説明するシーケンス図
【図１３】本発明の一実施形態におけるティーチング部で作成したファイルをもとに自動実行を行うプロセス制御部の内部構成を示す図
【図１４】本発明の一実施形態におけるオペレーション実行部に対するＩＦの振り分け方法を説明する機能ブロック図
【図１５】本発明の一実施形態におけるオペレーション実行部に対するＩＦの振り分け方法を説明するシーケンス図
【図１６】本発明の一実施形態において、対象アプリケーションの外部制御に関するノウハウを実装する場合の機能呼び出し関係を示す図
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の一実施形態を説明する。
【００１４】
図１乃至図３は本発明の一実施形態におけるシステム構成図である。これらの図において、１はシステム端末装置１０のオペレータ（ユーザ）である。所定のコンピュータプログラムによって動作するコンピュータ装置からなるシステム端末装置１０の内部には複数のアプリケーションＵＩ（１１）と統合システム１２が備えられている。オペレータ１はシステム端末装置１０のアプリケーションＵＩ（１１）を操作１３して、システム端末装置１０及びシステム端末装置１０に接続されている既存システム２０の操作を行うことができる。またこのとき、統合システム１２は操作１３に対応してアプリケーションＵＩ（１１）の動作などを制御１４する。
【００１５】
本実施形態における統合システム１２はシステム端末装置１０に常駐し、対象とするアプリケーションＵＩ（１１）の操作を監視・代行することを基本とする。図１に示す利用形態では、任意のＵＩ操作シーケンスをオペレータ１のボタン押下のみで自動実行する場合を示している。図２に示す利用形態では、ＵＩ操作シーケンスの途中でデータ内容を確認する或いはオペレータ１からの入力を促すなどの対話処理を行う場合を示している。これは図１に示す形態に対してダミーＵＩ（１５）を別途開発して、連携対象アプリケーションに加えることで、統合システム１２の基本機能を変えることなく実現できる。ただし、この場合は操作として、ＵＩ上のデータ表示の読み取りデータ入力欄への投入など、高度な内容が含まれる。詳しくは後述する。図３に示す利用形態では、複数のアプリケーションＵＩ（１１）からのデータの取得・設定だけでは目的とする業務が実現できない場合を示している。これは図２に示す形態で不足している処理内容を実行する簡易なヘルパーアプリケーション１６（例えば、データ値の組合せに対するチェックロジックや、所定のルールに基づいて実行内容を変えるための判断ロジックなど）を別途開発することで実現できる。本実施形態では、ヘルパーアプリケーション１６は上記のチェックロジックや判断ロジックを含むビジネスロジック１７を備えている。
【００１６】
このように、本実施形態のシステムはユーザインターフェースの操作に関する統合に絞って扱う技術であり、表示に関する統合については、別途の技術として確立したものと自由に組み合わせて利用することができる。これは、後に述べるティーチング機能によって、本発明の仕組みとは独立した表示統合技術を図３のようにコーディングレスに連携させられるということである。よって、広い意味（操作と表示の両方扱う意味）でのユーザインターフェース操作統合技術を構成するものである。
【００１７】
また、本実施形態では、後述するように、自動実行内容をワークデータファイルとシナリオファイルの形式で保持する。具体的には、従来のようなプログラムコードとしてハードコーディングしたり、プログラムロジックそのものをスクリプトコードとして外部に保持したり（特許文献１やフリーソフト）、といったことは行わず、抽象レベルでの作業の単位要素の定義（シナリオファイルのファンクションパートのfuncタグで定義）やその実行順序（同シナリオパートのfuncタグのシーケンスで指定）のみを保持し、それらを実際に実行する際に必要な細かい処理内容は、プロセス制御部のリプレイモジュールに隠蔽する。また、ティーチング部のティーチングモジュール（図６に示すフロー）において、作業のデータ定義（ワークデータファイル）をシナリオと明確に分けて定義する。
【００１８】
さらに本実施形態では、自動実行機能（プロセス制御機能）とティーチング機能を別々の独立したプログラムとせずに、ユーザインターフェース操作統合システムの内部アーキテクチャに統合する。後述するように、オペレーション実行部とイベントメッセージ監視部、ティーチング部とプロセス制御部のように対になる機能をそれぞれ、ＵＩ操作・監視ＩＦ提供部、業務記録・実行ＩＦ提供部に配し、それらの間を共通的なアダプタタイプ識別・振り分け機能によって接続する。
【００１９】
さらにまた本実施形態では、後述するように、業務記録・実行ＩＦ提供部の内部を、追加拡張可能なモジュール（ティーチングモジュール、リプレイモジュール）によって構成する。また、共通的機能としてファイル保存・読込機能、作業データオブジェクト、作業履歴（シナリオ）オブジェクトを具備する。
【００２０】
図４は本実施形態におけるシステム端末装置１０を示す機能ブロック図である。図に示すようにシステム端末装置１０の内部には統合システム１２の他にWindows（登録商標） OS(210)と操作ＧＵＩ(220)のコンピュータプログラムが搭載され、さらに記憶部230にはワークデータファイル231とシナリオファイル232が格納される。
【００２１】
統合システム１２は、業務記録・実行ＩＦ提供部130とＵＩ操作・監視ＩＦ提供部140とアダプタ部150を備えている。業務記録・実行ＩＦ提供部130はティーチング部131とプロセス制御部132を有し、ＵＩ操作・監視ＩＦ提供部140はオペレーション実行部141とイベントメッセージ監視部142を有している。また、アダプタ部150としては、例えばWindows（登録商標） OS(210)が備えるインターネット・エクスプローラ（以下、単にＩＥと称する）、ドットネット・フレームワーク（以下、単に．ＮＥＴと称する）、マイクロソフト・ファウンデイション・クラス（以下、単にＭＦＣと称する）、マウス、キーボードのためのＩＥアダプタ151、．ＮＥＴアダプタ152、ＭＦＣアダプタ153、マウスアダプタ154、キーボードアダプタ155を備えている。なお、アダプタ部150の各アダプタ151-155は、オペレーション実行部141とイベントメッセージ監視部142の双方に接続可能であり、アダプタ部150に他のアダプタをさらに任意に追加拡張可能である。
【００２２】
業務記録・実行ＩＦ提供部130のティーチング部131は、オペレータ１（ユーザ）が実際に対象アプリケーションを操作しているときの、マウスやキーボードのイベントならびにＵＩ要素のメッセージをイベントメッセージ監視部142から受け、その内容をシナリオファイル232とワークデータファイル231として保存する。プロセス制御部132はこれらシナリオファイル232とワークデータファイル231を読み込み、その内容にもとづいてオペレーション実行部141へイベントやメッセージを送信する。
【００２３】
ＵＩ操作・監視ＩＦ提供部140のイベントメッセージ監視部142はティーチング部131からの指示を受け、特定のウィンドウやコンポーネントに対するイベントを監視し、イベント発生時にはティーチング部131に内容を通知する。オペレーション実行部141は、上記業務記録・実行ＩＦ提供部130からのデータや実行内容指定を受け、所定のＵＩ操作を実行する。これらは、図４において２つの実線矢印で示されている。そのほかの２つの破線矢印は、補助的な機能呼び出しを表すものであり、その詳細は後述する。
【００２４】
図５乃至図７は本実施形態におけるシステム端末装置１０が実行する処理の手順を示すフロー図である。
【００２５】
まず手順について説明する。
【００２６】
本実施形態におけるシステム端末装置１０をオペレータ１が起動（ソフトウェアを起動）する(S101)と、操作ＧＵＩ220を保持するウィンドウが表示され、システム端末装置１０は「操作ＧＵＩ220」へのオペレータ１の操作を待つ(S103)。オペレータ１は、操作ＧＵＩ220のティーチング設定ＧＵＩ224、リプレイ設定ＧＵＩ223、動作モード変更セレクタ222を利用して、システム端末装置１０の内部の設定やモードを変更できる。
【００２７】
最初、オペレータ１は、ティーチング設定ＧＵＩ224を操作して(S103)、本システム端末装置１０で操作対象とするウィンドウ（あらかじめ操作対象とするアプリケーションを起動し、表示しておく）を指定し、リプレイ設定ＧＵＩ223を操作して(S105)、リプレイ設定内容を変更し、動作モード変更セレクタ222を操作して動作モードを設定する(S109)。このとき、イベントメッセージ監視部142によって、ティーチング・リプレイで使用する監視手段が自動的に決定される。例えば、指定したウィンドウに含まれるＧＵＩが「．ＮＥＴ」と呼ばれるＧＵＩプラットフォームで開発されている場合、監視手段は「．ＮＥＴ」に決定される。このとき、ＧＵＩプラットフォームに対する直接的な監視・実行ではなく、マウスによる入力イベントを監視・実行したい場合は、監視手段として「マウス」をオペレータ１が指定することができる。
【００２８】
オペレータ１が起動・停止ボタン221を押下すると(S107)、システム端末装置１０は作業を開始する。このとき動作モードがティーチングに設定されていると(S111)、ティーチング作業を開始する。ティーチング作業において、本システム端末装置１０のティーチング部131は、作業データオブジェクトと作業シナリオオブジェクトを初期化（空に）するか否かの確認ダイアログを表示し、オペレータ１の入力に従って処理を行う(S113)。ただし、ティーチング内容を、それ以前のティーチング内容に追加挿入したい場合は、初期化せずに次の処理に進むことができる。これは本処理の実行時点に、オペレータ１に確認ダイアログを通して決定させることで実現している。続いて、システム端末装置１０はティーチング設定の内容における、「・監視手段」、「・監視対象ウィンドウ」を参照し、それに相当する「・タイプ識別子」、「・監視依頼内容」を引数として「イベントメッセージ監視部142」に監視依頼を発行し(S115)、イベント通知待ちの状態に入る。
【００２９】
ティーチング部131は、イベント通知待ちの状態において通知を受け取ると(S119)、先ず操作対象となったＧＵＩの種別をイベントメッセージ監視部142のアダプタ部150から受け取り、その種別を判断し(S123)、それがボタンの場合には(S125)、作業シナリオオブジェクトにＧＵＩのＩＤやクラス名などの操作内容情報（プラットフォーム依存）を格納し(S127)、S117の処理に移行して再びイベント通知待ち状態になる。一方、それがテキストフィールドの場合には(S129)、当該の操作時点でシステム端末装置１０はオペレータ１に対し「入力項目ＩＤ」（他と重複しないユニークな文字列）の入力を促すダイアログを表示する(S131)。オペレータ１はその直前に対象ウィンドウの当該ＧＵＩ要素へ入力したデータに付けたい名称（例えば、「生年月日」など）を入力項目ＩＤとして投入する。それを受け取ったシステム端末装置１０は、入力項目ＩＤと入力値をセットにして（例えばハッシュテーブルのキーと値として）作業データオブジェクトに格納する(S133)。さらにボタンのときと同様、作業シナリオオブジェクトにＧＵＩのＩＤやクラス名などの操作内容情報を格納し(S135)、前記S117の処理に移行して再びイベント通知待ち状態になる。
【００３０】
イベント通知待ちの状態から、起動・停止ボタン221が押下されると、ティーチング部131は作業データオブジェクトを基にワークデータファイル231を記憶部230に書き込み(S137)、作業シナリオオブジェクトを基にシナリオファイル232を記憶部230に書き込み(S139)、前記S103の処理に移行して操作ＧＵＩ220への操作待ち状態に戻る。
【００３１】
オペレータ１は、動作モードをティーチングからリプレイに変更し、起動・停止ボタン221を押下することで、システム端末装置１０にリプレイ動作を開始させることができる。リプレイ動作において、システム端末装置１０のプロセス制御部132は、起動・停止ボタン221が押下されて動作モードがリプレイであると判断すると(S141)、記憶部230に格納されている所定のワークデータファイル231とシナリオファイル232をプロセス制御部132に読み込み、これらを読み込んだプロセス制御部132はそれぞれに対応する作業データオブジェクトと作業シナリオオブジェクトを生成する(S143,S145)。そして、プロセス制御部132は、作業シナリオオブジェクトのfuncタグを先頭から所定の順に解釈し、オペレーション実行部141に実行依頼を送信する(S147)。プロセス制御部132は、作業シナリオオブジェクトの次のfuncタグが存在する場合は、それについて解釈・実行依頼を実施し(S149)、次のfuncタグが存在しなくなるまでこれを繰り返す。最後に、次のfuncタグが存在しなくなると、プロセス制御部132はシナリオ実行を停止し(S151)、システム端末装置１０は前記S103の処理に移行して「操作ＧＵＩ220」の操作待ち状態に戻る。
【００３２】
なお、図５乃至図７において、ティーチング作業がマウスイベントに対して行われた場合は、前記S123の処理である「操作対象となったＧＵＩの種別を識別する」は、他の処理に置き換えられる。すなわち、マウス座標を指定されたティーチング設定内容に基づいて座標計算した上で、作業シナリオオブジェクトに格納する処理に置き換えられる。
【００３３】
また、図５乃至図７において、テキストフィールドの値の取得についても、各ＧＵＩプラットフォーム毎のティーチングモジュールに、そのプラットフォームに依存した実装方法により処理が実現できる。さらに、チェックボタン、リストボックス、チェックボックスなどのＧＵＩ要素に対する選択の設定や取得についても、同様に処理が実現できる。
【００３４】
図８はティーチング部131の内部構成図である。
【００３５】
ＵＩ種別ごとのティーチング処理の実装コードがティーチングモジュール311として組み込まれ、本システムで対応するＵＩ種別が追加されるごとに、ティーテングモジュール311も新規に作成・追加される。またティーチングの際に対象となるアプリケーションのＵＩ種別や、ティーチング時に表示されているウィンドウ等のオブジェクトインスタンスが、それぞれティーチング対象指定機能部320の種別指定321、インスタンス指定322として保持される。これらの指定は、図４における操作ＧＵＩ220のティーチング設定ＧＵＩ224を介して指定される。種別指定に対応するティーチングモジュール311が起動され、当該モジュール311はイベントメッセージ監視部142内のアダプタ150を間接的に呼び出して、Windows（登録商標） 0S(210)(例えば、WindowsXP（登録商標）など)から発行されるイベントやメッセージを監視する。得られたイベントやメッセージは作業シナリオオブジェクト340に蓄積される。また、メッセージに付帯する入力データや選択データなどの値は、作業データオブジェクト330に蓄積される。作業データオブジェクト330と作業シナリオオブジェクト340はファイル保存機能部350によって記憶部230内のワークデータファイル231とシナリオファイル232に保存される。
【００３６】
図９及び図１０は蓄積された作業シナリオオブジェクト340や作業データオブジェクト330に蓄積されている作業履歴と作業データを、ファイル保存したときの形式の具体例である。図９はシナリオファイルに保存されている作業履歴を表し、図１０はワークデータファイルに保存されている作業データを表している。
【００３７】
シナリオファイル232には作業履歴が保存される。作業履歴は、シナリオパート（XMLのscenarioタグ）とファンクションパート（XMLのfunctionタグ）から構成される。ティーチングモードでの動作開始から終了までの間がひとまとまりとして蓄積され、ファンクション識別子が付与される。これは、例えば具体例のようなXMLにおけるfunctionタグのname属性として保存される。ファンクション識別子は、ティーチング設定ＧＵＩ224を介して、ティーチングを行うオペレータ１によって入力指定される。
【００３８】
また、ワークデータファイル231には作業データが保存される。作業データは、ＵＩ操作において、TextFieldに値を入力するなどした場合に蓄積され、パラメータ識別子が付与される。これは、例えば具体例のようなXMLにおけるparamタグのname属性として保存される。作業データは、オペレータ１がＵＩに値を入力する度に、ティーチング設定ＧＵＩ224の子ダイアログウィンドウなどを介して、オペレータ１によって入力指定される。
【００３９】
なお、図９及び図１０のバリエーションとして、マウスイベントを記録する場合がある。この場合は、作業シナリオオブジェクト340における座標値とマウスクリック種別（右、左）が、カンマとセミコロンを用いた文字列にエンコードされ、図９及び図１０におけるfuncタグの形式でファイルに記録される。このとき、複数のマウスイベントを１つの文字列にエンコードすることで、低レベルイベントが大量に蓄積される傾向がある課題に対して、シナリオファイル232のサイズの増大を抑えることも可能である。キーボードイベントについても、キーの種類と操作種別（ＵＰ、ＤＯＷＮ）を文字列エンコードすることで同様な記録を行う。
【００４０】
図１１はＵＩ操作・監視ＩＦ提供部140の振り分け方式として、特にイベントメッセージ監視部142に対するＩＦの振り分け方法を説明する機能ブロック図である。
【００４１】
ティーチングモジュール311からの監視依頼は、イベントメッセージ監視部142の共通ＩＦを通って、アダプタタイプ識別・振り分け機能部421で解釈される。そこでは、依頼内容に含まれるアダプタタイプ識別子に応じて、図１２のシーケンス図に示す手順によって、ティーチングモジュール311はアダプタ部150に備わるどのアダプタ151〜155に依頼が可能かを特定する。具体的には、アダプタ151〜155に自身のアダプタタイプ識別子を回答させるためにアダプタ151〜155ごとにタイプ識別子交換手続(611)を行い、該当するアダプタ151〜155を判断する。ついで、ティーチングモジュール311は該当するアダプタ151〜155に対して監視依頼を行い(612)、依頼を受けたアダプタ151〜155は該当時にイベント通知を当該ティーチングモジュール311に送る(613)。
【００４２】
また、ここでの「監視依頼内容」には、例えば以下の情報が含まれる。
【００４３】
(1) 監視する範囲指定の有無
監視するイベント発生元の範囲を無制限とするか（端末装置上の全てのイベントを監視する）、イベント発生源が特定のウィンドウであるようなものに範囲を限定するか、のモード選択。
【００４４】
(2) 監視する範囲対象の指定
上記監視する範囲が指定されている場合、その範囲を表すウィンドウのタイトル文字列。
【００４５】
(3) 監視結果の記録方法の指定
マウスに関するイベントの場合、マウスのクリック位置をウィンドウ（ウィンドウ指定がない場合はデスクトップ）の右上、右下、左上、左下の何れを原点とした場合の相対位置とするかのモード選択、ならびに位置の座標単位を何にするか（ピクセル値で記録するか、移動可能範囲を０〜１００％とした場合の割合で記録するか）のモード選択。
【００４６】
この監視依頼内容は受け取る側のアダプタ151-155によって変化する場合がある。(1)(2)はほとんどのアダプタ151-155が共通して参照する情報であるが、(3)はマウスイベントを扱うマウスアダプタ154だけに対して送信される情報である。
【００４７】
図１３はティーチング部131で作成したファイルをもとに自動実行を行うプロセス制御部132の内部構成を示す図である。
【００４８】
作成したワークデータファイル231とシナリオファイル232はファイル読込機能部550により、作業データオブジェクト530と作業シナリオオブジェクト540に展開される。操作ＧＵＩ220の起動・停止ボタン221の押下によって、実行が開始されると、シナリオ解釈機能部520が作業シナリオオブジェクト540内のシナリオパートにおける最初のfuncタグに実行位置ポインタ521を設定し、そこから実行を開始する。ポインタ位置のfuncタグのname属性の文字列値をもとに、ファンクションパートのfunctionタグ配下のfuncタグ集合から同じname属性値のものを検索し、得られたfuncタグの属性値をもとに具体的なオペレーション実行を行う。その際、type属性（ＵＩプラットフォーム種別）によってどのリプレイモジュール511に実行を依頼するかを決定する。依頼を受けたリプレイモジュール511は当該のfuncタグ内容を参照し、targetID（ＵＩ要素インスタンスＩＤ）を引数として、オペレーション実行部141の機能を呼び出す。その際、必要があれば、param属性（引数値）をもとに、作業データオブジェクト530から実行に必要な引数値を取得し、オペレーション実行部141に渡し、実行完了後、テキストフィールド内の文字列取得のように返却値があるオペレーションの場合はその値を受け取って作業データオブジェクト530に格納する。param属性には、作業データオブジェクト530における意図するparamタグのname属性にある文字列が指定される。これら文字列の一致によって、シナリオとワークデータが結び付けられる。この文字列は図６に示すS131,S133の処理における「入力項目ＩＤ」のことである。
【００４９】
図１４はＵＩ操作・監視ＩＦ提供部140の振り分け方式として、特にオペレーション実行部141に対するＩＦの振り分け方法を説明する機能ブロック図である。
【００５０】
リプレイモジュール511からの実行依頼は、オペレーション実行部141の共通ＩＦを通って、アダプタタイプ識別・振り分け機能部411で解釈される。そこでは、依頼内容に含まれるアダプタタイプ識別子に応じて、図１５のシーケンス図に示す手順によって、リプレイモジュール511はアダプタ部150に備わるどのアダプタ151〜155に依頼が可能かを特定する。具体的には、各アダプタ151〜155に自身のアダプタタイプ識別子を回答させるためにアダプタ151〜155ごとにタイプ識別子交換手続(711)を行い、該当するアダプタ151〜155を判断する。ついで、リプレイモジュール511は該当するアダプタ151〜155に対して実行依頼を行い(712)、依頼を受けたアダプタ151〜155は実行完了時に実行完了通知を当該リプレイモジュール511に送る(713)。
【００５１】
図１６は対象アプリケーションの外部制御に関するノウハウを、図４の構成において実装する場合の機能呼び出し関係を示す図である。
【００５２】
対象アプリケーションの外部制御に関するノウハウとは、オペレーション実行の際に、対象アプリケーションとは異なる実行プロセスから、ＯＳのイベントやＧＵＩプラットフォームのメッセージを擬似的に発生させて、ＵＩ操作をオペレータ１に代わって当該ソフトウェアから実行する関係上、必要となる詳細な周辺処理のことである。具体的には、対象アプリケーションの内部状態がイベントやメッセージを意図したとおりに受理・実行するコンテキストにあるかどうかを事前にチェックしたり、実際に実行した結果が意図したとおりに完了・反映した内部状態にあるかを事後にチェックしたり、あるいはそれぞれにチェック処理をポーリングして対象アプリケーションの内部状態が遷移するのを所定の時間待ち合わせる、といった処理のことをさす。
【００５３】
リプレイにおいてイベント・メッセージ監視を必要とする状況
例えば、テキストフィールドにデータ値を設定しようとしても、当該テキストフィールドがディスエーブルになっている場合がある。ウィンドウシステム（ＧＵＩ部品のライブラリ）によっては、データ値の設定操作をしたときに実行結果の返却や処理例外の発効を行わないため、後に続く動作との整合が失われ、正常な連携ができなくなる。そこで本実施形態では３つの対策を組み合わせて、連携の信頼性を向上することが考えられる。
Ａ）操作対象が有効になっているかどうかを、その直前で確認し、無効な場合は有効に変化するまで処理を待機させる。
Ｂ）実際に操作が終了するまでの間に、当該ＧＵＩ部品のディスエーブル／イネーブルの変化イベントが発効されないかを監視しつづける。
Ｃ）操作終了後に、当該ＧＵＩ部品に対して値の読取を実行し、直前に設定した値が実際に反映されているかを確認する。
【００５４】
さらに、図２や図３において、ダミーＡＰやヘルパーＡＰとユーザとの間の対話操作の状況と連携をとるために、上記制御機能を間接的に利用することもできる。すなわち、これらＡＰにおける特定のテキストフィールド（ＧＵＩ部品）をあらかじめ無効にしておき、ユーザから必要な情報の入力が行われていればイネーブル、そうでない場合にディスエーブルとするようＡＰ内部の処理を作成しておく。本実施形態のスクリプト上の所望のタイミング箇所で当該テキストフィールドの値を読み込む操作をティーチングしておけば、前記「Ａ」の対策の効用により、ダミーＡＰやヘルパーＡＰとユーザとの間の対話操作の状況に呼応して処理を待機させることができる。すなわち、これらＡＰにおけるユーザの操作と他のシステムに対する外部操作との連携をとることができる。
【００５５】
このようなノウハウを実装する場合、オペレーション実行部141だけではなく、イベントメッセージ監視部142の機能も適宜呼び出せることが望ましい。本構成では、業務記録・実行ＩＦ提供部130とＵＩ操作・監視ＩＦ提供部140の間の機能呼び出しが統一されており、必要なアダプタ151-155の呼び出しは図１１に示すようにハードコーディングではなく、アダプタ追加拡張に対応できる機構が具備されている。これによって、リプレイモジュール511から、オペレーション実行部141とイベントメッセージ監視部142における多様な実行・監視手段を呼び出すことができる。
【００５６】
同様のノウハウはティーチングの際にも必要となる場合がある。これは、イベント監視だけではなく、オペレータ１の操作に影響のない範囲において背後でオペレーション実行を行って、その実行結果を取得することによって操作対象の内部状態を把握する、より能動的なセンシング機能に相当する。これによって、受動的にイベントを監視しているだけでは不明であった外部から隠れたコンテキストに対しても、適合した操作種別を判断してシナリオファイルに記録することができる。
【００５７】
ティーチングにおいてオペレーション実行を必要とする状況
例えば、、サードパーティー製のＧＵＩコンポーネントなどは、そこへフォーカスがあたりはじめた開始時点（ユーザのキーボード入力の反映先が当該ＧＵＩコンポーネントになる）とフォーカスがはずれた終了時点（前記状態がおわった）とをイベント監視を通して知ることができるが、その内部に設定されている値に変化があったかどうか監視によってはわからない場合がある。このような場合は、フォーカスがあたりはじめる開始時点で当該ＧＵＩコンポーネントが保持する値を読み取り、はずれた終了時点で再度値を読み取って、前後の変化を比較することによって、間接的に変化のイベントを監視することが考えられる。
【００５８】
なお、図４において、ティーチング部131・プロセス制御部132とオペレーション実行部141・イベントメッセージ監視部142の間が４つの矢印で相互に接続されており、うち２つが破線で示されているのは、これら２つの波線矢印が上記のノウハウを実装する上での補助的な機能呼び出しを表しているからである。
【００５９】
前述したように本実施形態によれば、追加拡張可能な複数のティーチングモジュール311を用いることにより、ティーチング部131において利用できる監視情報の種類を従来の処理に大きな影響を与えることなく追加拡張することができるとともに、追加拡張可能な複数のリプレイモジュール511を用いることにより、プロセス制御部132において利用できる実行手段の種類を従来の処理に大きな影響を与えることなく追加拡張することができる。
【００６０】
さらに、本実施形態のＵＩ操作統合システムの端末装置10によれば、以下の作用効果を奏する。
【００６１】
・本構成によって、ユーザインターフェース操作統合システムで実施したい作業の自動実行処理を定義する場合に、操作の対象ＩＤ、種類、引数を指定し、それら実行順序を定めるだけで、対象アプリケーションの外部制御に関するノウハウを個別に記述しなくてもすむ。その結果、従来のようにプログラミング言語における変数に相当する、処理ロジック（目的とする操作手順と外部制御ノウハウが混然一体となっている）と密接に関係したデータ保持ではなく、ＵＩ操作で参照する引数として、外部制御ノウハウを隠蔽した抽象度が高いデータ保持を行うことができる。これにより、作業データの内容を任意に変えて、異なる値のデータ入力作業を行うなどが安全かつ簡潔に実現できる。また、作業データとシナリオを別々にファイル化することで、外部からデータ内容の変更を行って当該機能を呼び出すなど、上位機能の実装を簡易化することができる。
【００６２】
・本構成によって、ＵＩ要素に擬似的にメッセージを送信して自動操作を行う方法と、ＧＵＩプラットフォームやＯＳに擬似的にイベントを送信して自動操作を行う方法など、複数の異なる抽象レベルの自動操作手段を組み合わせてオペレーション実行を行うことができる。その結果、一種類の自動操作方法だけでは一部対応できない（もしくは対応手段の発見や実装に時間がかかる）ＧＵＩプラットフォームやアプリケーションに対しても、該当部分に代替手段をとることが容易にでき、対応幅の拡大や即応性の向上などの効果がある。なお、前記「抽象レベル」とは、オペレータ１による入力動作を段階的に分解して解析した動作手順およびこの動作手順をプログラムによってどのように解釈するかを抽象化して表したものである。例えば、マウスボタンの押下の場合は、マウスボタンの押し下げと押し上げ、マウスボタンのクリック、マウスボタンのダブルクリックなど、異なる解釈レベルで入力動作を分解して解析した動作手順を抽象化したものである。
【００６３】
・本構成によって、自動実行機能だけではなく、ティーチング機能を提供できる。ティーチングは、自動実行したい内容を事前にオペレータ１（ユーザ）自身の操作を手本として示すことによって、ユーザインターフェース操作統合システムが自動的に抽出・保存する機能である。これには所望の自動操作手段（抽象レベル）に応じてイベントやメッセージの監視を行い、そこから必要情報を抽出する処理を実行する必要がある。これらは、ティーチング部とイベント監視部の連携ならびにワークデータファイルとシナリオファイルの生成によって実現される。
【００６４】
・本構成によって、複数種類の監視情報を参照してティーチング機能を実現でき、また利用できる監視情報の種類を従来の処理に大きな影響を与えることなく追加拡張することができる。すなわち、当該システムで対応する（追加拡張が可能な）ＧＵＩプラットフォームに依存した監視機能はイベントメッセージ監視部142にプラガブルな（任意に適宜接続可能な）アダプタとして個別に実装し、抽象レベルごとの情報抽出処理をティーチング部131にローダブルな（任意に適宜読み込んで実行可能な）ティーチングモジュール311として個別に実装し、これらをアダプタタイプ識別・振り分け機能421によって接続することにより、相互の独立性を高める効果がある。
【００６５】
・本構成によって、複数種類のオペレーション実行手段や監視情報を組み合わせて自動実行を実現でき、また利用できる実行手段や監視情報の種類を従来の処理に大きな影響を与えることなく追加拡張することができる。すなわち、オペレーション実行においては、対象アプリケーションの外部制御に関するノウハウをつくりこむ必要があり、その際、複数種類の実行手段や監視情報を包括的に用いることで、対向するＡＰ（アプリケーションプログラム）やＧＵＩのつくりに対する対応幅の広さや実行時タイミングの偶然性に対する安定度の高さを達成しやすくなる。しかし、個々のリプレイモジュール511で個別に実行手段や監視情報を扱っていては、類似の実行コードが多数発生しプログラムの品質性や保守性が低下してしまう。本構成の上記特徴によって、これら相反する課題を解消する効果がある。
【００６６】
なお、本実施形態では統合システム１２をコンピュータプログラムによって構成したが、本実施形態の統合システム１２はコンピュータ（ハードウェア）とコンピュータプログラムの両方によっても実現でき、コンピュータプログラムを記録媒体に記録することも可能であり、またコンピュータプログラムをネットワークを通して提供することも可能であることは言うまでもないことである。
【符号の説明】
【００６７】
１…オペレータ（ユーザ）、１０…システム端末装置、１１…アプリケーションＵＩ、１２…統合システム、１５…ダミーＵＩ、１６…ヘルパーアプリケーション、１７…ビジネスロジック、２０…既存システム、130…業務記録・実行ＩＦ提供部、131…ティーチング部、132…プロセス制御部、140…ＵＩ操作・監視ＩＦ提供部、141…オペレーション実行部、142…イベントメッセージ監視部、150…アダプタ、151…ＩＥアダプタ、152…．ＮＥＴアダプタ、153…ＭＦＣアダプタ、154…マウスアダプタ、155…キーボードアダプタ、210…Windows（登録商標） OS、220…操作ＧＵＩ、221…起動・停止ボタン、222…動作モード変更セレクタ、223…リプレイ設定ＧＵＩ、224…ティーチング設定ＧＵＩ、230…記憶部、231…ワークデータファイル、232…シナリオファイル、311…ティーチングモジュール、320…ティーチング対象指定機能部、321…種別指定、322…インスタンス指定、330…作業データオブジェクト、340…作業シナリオオブジェクト、350…ファイル保存機能部、411,421…アダプタタイプ識別・振り分け機能部、511…リプレイモジュール、520…シナリオ解釈機能部、521…実行位置ポインタ、530…作業データオブジェクト、540…作業シナリオオブジェクト、550…ファイル読込機能部。
【図１】
2010204840.tif 000003
【図２】
2010204840.tif 000004
【図３】
2010204840.tif 000005
【図４】
2010204840.tif 000006
【図５】
2010204840.tif 000007
【図６】
2010204840.tif 000008
【図７】
2010204840.tif 000009
【図８】
2010204840.tif 000010
【図９】
2010204840.tif 000011
【図１０】
2010204840.tif 000012
【図１１】
2010204840.tif 000013
【図１２】
2010204840.tif 000014
【図１３】
2010204840.tif 000015
【図１４】
2010204840.tif 000016
【図１５】
2010204840.tif 000017
【図１６】
2010204840.tif 000018