(57)【要約】  Ｗｅｂシステムの複数ページにまたがるカスタマイズを可能とし、Ｗｅｂページの内容に応じてカスタマイズ方法を変更できるアプリケーション拡張システム、拡張方法、拡張プログラムを提供する。  自動実行の起動条件を含む処理決定定義１３と自動実行として行う処理の内容を示す自動実行定義１４との登録を受けるインタフェース１１と、ブラウザ２０又はアプリケーション３０からの通信メッセージを受信する通信インタフェース１２とを備え、ブラウザ２０又はアプリケーション３０からの通信メッセージ受信時に、登録されている処理決定定義１３に従って、登録済みの自動実行定義１４を実行するかを決定し、通信メッセージを、送り先であるアプリケーション３０又はブラウザ２０へ送信し、実行すると決定した自動実行定義１４に従って、ブラウザ２０に少なくとも一つのＧＵＩ操作指示を送る。
2010001871.tif 000002
【特許請求の範囲】
【請求項１】
自動実行の起動条件を含む処理決定定義と前記自動実行として行う処理の内容を示す自動実行定義との登録を受けるインタフェースと、
ブラウザ又はアプリケーションからの通信メッセージを受信する通信インタフェースとを備え、
前記ブラウザ又はアプリケーションからの通信メッセージ受信時に、
登録されている前記処理決定定義に従って、登録済みの前記自動実行定義を実行するかを決定し、
前記通信メッセージを、送り先である前記アプリケーション又は前記ブラウザへ送信し、
実行すると決定した前記自動実行定義に従って、前記ブラウザに少なくとも一つのＧＵＩ操作指示を送ることを特徴とするアプリケーション拡張システム。
【請求項２】
前記ブラウザと前記アプリケーションとの間の通信メッセージを制御するプロキシ部と、
前記ブラウザの少なくとも一つのＧＵＩ操作を前記自動実行定義に従って自動実行するブラウザ制御部と、
前記処理決定定義及び前記自動実行定義を格納する拡張定義管理部とを有し、
前記プロキシ部が通信メッセージ受信時に前記処理決定定義に従って自動実行の開始を決定して前記ブラウザ制御部に自動実行の開始を指示し、
自動実行の開始指示を受けた前記ブラウザ制御部が、前記自動実行定義に従ってＧＵＩ操作を行うことを特徴とする請求項１記載のアプリケーション拡張システム。
【請求項３】
前記拡張定義管理部は、通信メッセージを変換するための変換定義をさらに格納し、
前記プロキシ部は、処理決定時にさらに変換処理を行うか否かを決定し、
変換処理を行う場合には、前記変換定義に従って通信メッセージを変換することを特徴とする請求項２記載のアプリケーション拡張システム。
【請求項４】
前記通信メッセージから抽出されたデータを保持するデータ管理部を備え、
前記拡張定義管理部は、通信メッセージから情報を抽出するための情報抽出定義をさらに格納し、
前記プロキシ部は、通信メッセージ受信時に前記情報抽出定義に従って前記通信メッセージから情報を抽出し、取得したデータを前記データ管理部へ保存する情報抽出手段と、前記処理決定の際に前記データ管理部のデータを参照して処理を決定する処理決定手段と、変換処理の際に前記データ管理部のデータを参照して変換処理を行う変換実行手段とを有し、
前記ブラウザ制御部は前記データ管理部のデータを参照して自動実行処理を行うことを特徴とする請求項３記載のアプリケーション拡張システム。
【請求項５】
前記プロキシ部が、通信メッセージ受信時に前記ブラウザと前記アプリケーションとの間のセッション情報を認識し、
前記データ管理部は、保持するデータを前記セッション情報ごとに管理し、
前記プロキシ部の情報抽出処理手段、処理決定手段、及び変換実行手段と、前記ブラウザ制御部とは、処理する通信メッセージのセッションに関連した前記データ管理部から読み出して、各々における処理に用いることを特徴とする請求項４記載のアプリケーション拡張システム。
【請求項６】
前記データ管理部は、前記セッションごとに管理されるデータに加え、異なるセッション間で共有されるデータを保持し、前記プロキシ部及び前記ブラウザ制御部は、両種類のデータを各々における処理に用いることを特徴とする請求項５記載のアプリケーション拡張システム。
【請求項７】
端末装置と通信中継装置とで構成され、
前記ブラウザ制御部が前記端末装置上に、前記プロキシ部が前記通信中継装置上にそれぞれ配置されたことを特徴とする請求項２から６のいずれか１項記載のアプリケーション拡張システム。
【請求項８】
端末装置と通信中継装置とで構成され、
前記ブラウザ制御部と前記プロキシ部とが、前記通信中継装置上に配置されたことを特徴とする請求項２から６のいずれか１項記載のアプリケーション拡張システム。
【請求項９】
前記プロキシ部が、自動実行の開始を決定した時に、前記ブラウザが応答メッセージ受信時に自動起動するように前記ブラウザ制御部を通信の応答メッセージ内に挿入し、前記ブラウザ制御部が前記ブラウザによって起動されると自動実行を開始することを特徴とする請求項２から６のいずれか１項記載のアプリケーション拡張システム。
【請求項１０】
端末装置と通信中継装置とで構成され、
前記端末装置上に配置される変換実行部をさらに有し、前記プロキシ部が変換処理の実行を決定した時に、前記変換実行部に変換処理の実行を指示し、前記ブラウザが応答メッセージを解析して処理した結果の表示画面を前記変換実行部が変換することを特徴とする請求項３から６のいずれか１項記載のアプリケーション拡張システム。
【請求項１１】
自動実行の起動条件を含む処理決定定義と前記自動実行として行う処理の内容を示す自動実行定義との登録を受け付ける工程と、
ブラウザ又はアプリケーションからの通信メッセージを受信する工程と、
登録されている前記処理決定定義に従って、登録済みの前記自動実行定義を実行するかを決定する工程と、
前記受信した通信メッセージを、送り先である前記アプリケーション又は前記ブラウザへ送信する工程と、
実行すると決定した前記自動実行定義に従って、前記ブラウザに少なくとも一つのＧＵＩ操作指示を送る工程とを有することを特徴とするアプリケーション拡張方法。
【請求項１２】
通信メッセージを変換するための変換定義の登録をさらに受け付け、
自動実行定義を実行するかを決定する際に、変換処理を行うか否かをさらに決定し、
変換処理を行う場合には、前記変換定義に従って通信メッセージの変換を行うことを特徴とする請求項１１記載のアプリケーション拡張方法。
【請求項１３】
前記通信メッセージから情報を抽出するための情報抽出定義の登録をさらに受け付け、
通信メッセージ受信時に前記情報抽出定義に従って前記通信メッセージから抽出したデータを保存し、
自動実行定義を実行するか否かの決定、変換処理、自動実行処理の際には、前記保存したデータを用いることを特徴とする請求項１２記載のアプリケーション拡張方法。
【請求項１４】
前記通信メッセージ受信時に前記ブラウザと前記アプリケーションとの間のセッション情報を認識し、
前記通信メッセージから抽出して保存したデータを前記セッション情報ごとに管理し、
前記保存したデータのうち、処理する通信メッセージのセッションに関連するデータを読み出して、前記通信メッセージからのデータの抽出、自動実行定義を実行するか否かの決定、変換処理、及び自動実行処理に用いることを特徴とする請求項１３記載のアプリケーション拡張方法。
【請求項１５】
前記セッションごとに管理されるデータに加え、異なるセッション間で共有されるデータも保持し、両種類のデータを前記通信メッセージからのデータの抽出、自動実行定義を実行するか否かの決定、変換処理、及び自動実行処理に用いることを特徴とする請求項１４記載のアプリケーション拡張方法。
【請求項１６】
請求項１１から１５のいずれか１項記載のアプリケーション拡張方法をコンピュータに実行させるアプリケーション拡張プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主に既存のＷｅｂシステムの利用者の要求に適合するようカスタマイズするアプリケーション拡張システムに関し、特に、複数のＷｅｂページからなるアプリケーションの振る舞いをカスタマイズするアプリケーション拡張システム、拡張方法及び拡張プログラムに関する。
【背景技術】
【０００２】
ＨＴＭＬ（Hyper Text Markup Language）やスクリプト言語などの記述言語で記述されたＧＵＩ（Graphical User Interface）データをＨＴＴＰ（HyperText Transport Protocol）などのプロトコルによってクライアント端末の汎用Ｗｅｂブラウザに解釈や実行、表示を行わせるＷｅｂシステムが、様々な情報システムによって幅広く利用され、既に多くの企業や組織で多数の情報や機能を持ったＷｅｂシステムが多数存在している。【０００３】
しかしながら、現在使用しているＷｅｂシステムが、必ずしも利用者の要求に適した作りになっているとは限らず、利用者にとって使いづらいシステムになっていることが多い。これは、一般的に情報システム構築時に、システムに求められる要件を正確かつ網羅的に把握することが困難であること、一度は要求に適したシステムを構築しても利用者の要求自体が時間とともに変化してしまうこと、そもそも複数の利用者が時には矛盾する要求を持っており、全ての利用者の要求を同時に満たす情報システムの構築が困難である、などの様々な原因で引き起こされ得るものである。このような場合にシステムを利用者の要求に適合させるには、単純にはシステム自体を改造、又は再構築するという手段がある。【０００４】
しかしこのような改造や再構築は、多くの場合に多額の開発コストを必要とする。さらに、異なる利用者に向けてそれぞれ専用のシステムを構築してしまうと、その運用や保守コストも増大するという問題がある。【０００５】
また、システムによっては、その振る舞いを利用者が変更できるようなカスタマイズ機能をシステム自身で持つものもある。しかし、全てのシステムがカスタマイズ機能を持つとは限らず、またカスタマイズ機能があってもそれが利用者の要求を満足するのに不十分である場合も多い。【０００６】
この問題に対応するために、既存のＷｅｂシステム自体は変更せず、その入出力部分であるＨＴＴＰやＨＴＭＬ、ブラウザに表示されたＧＵＩ等に手を加えてカスタマイズを実現する技術がある。【０００７】
例えば、単一のＷｅｂページを変換するものとして、ＨＴＭＬを加工して、ＨＴＭＬにより構成されるＧＵＩの一部となるＧＵＩ部品の追加、変更、削除などを行う技術がある。特許文献１にはＨＴＴＰのプロキシとしてＷｅｂページにページを変更するためのスクリプトを挿入し、このスクリプトがＷｅｂブラウザ上で実行されてＧＵＩの変更を行う手法を開示している。【０００８】
また、特許文献２には、汎用のＷｅｂブラウザではなく端末上の装置でＷｅｂコンテンツに付加情報を付与している。【０００９】
また、ＧＵＩの画面の一部を抽出したり変換したりするものとして、特許文献３ではＷｅｂの画面を携帯端末向けに変換する処理を、ページの意味を解析することで容易化している。【００１０】
また、Ｗｅｂページを書き換えるものではないが、Ｗｅｂページ上で本来ユーザが行う操作を自動実行する技術も開示されている。例えば、特許文献４では、サーバ上でＷｅｂページ操作を自動実行することで、人間が使用するためのＨＴＭＬのみ出力するシステムを電子メールで操作可能としている。また、特許文献５では、クライアント端末上でクライアント／サーバ型のシステムとＷｅｂシステムとを連携するためにＷｅｂシステムの自動操作を行っている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特許第３３９６１７７号公報
【特許文献２】特許第３５９４２３１号公報
【特許文献３】特開２００２−１１６９８３号公報
【特許文献４】特開２００２−３４２１５２号公報
【特許文献５】特開２００１−１０１１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
第１の問題は、複数Ｗｅｂページの画面遷移によって構成されるＷｅｂシステムの、複数ページにまたがるカスタマイズが困難であったことである。ここで、複数ページにまたがるカスタマイズとは、あるページの内容に依存して他のページのカスタマイズの内容を変更したり、ページ間の画面遷移関係を変更したりすることである。【００１３】
単一ページを変換する技術では、一度の変換処理が一つのページ内で完結しており、例えば複数のページの内容を一つのページにまとめて表示するような変更は行えない。また、ページ遷移形態の変更は行えないため、複数のページに亘ってユーザが行う作業の一部のページ遷移を省略するような変更や、特定のユーザ操作による複数画面遷移を経なければ到達できないようなＷｅｂシステム内の機能を取り出して合成することもできない。【００１４】
自動実行の技術のうちサーバ上で自動実行を行う方式では、ページ遷移を自動的に行うことで、ユーザにページ遷移を省略したように見せることは可能であるが、通常クライアント端末上にあるＷｅｂブラウザに相当するＨＴＭＬやスクリプト言語などの実行解釈機能をサーバ上で動作させているため、例えばセッション情報や追加のウインドウの表示などといったＷｅｂシステムの操作過程でブラウザ上に生成される実行状態が全てサーバ上に存在してしまうため、この実行状態を端末上のブラウザへ移す、又は端末上のブラウザからサーバ上に移すことができない。【００１５】
このため、動作にこのような実行状態を必要とするＷｅｂシステムでは、普段はユーザが端末上のＷｅｂブラウザで手動でＷｅｂシステムを操作し、その操作の一部を自動実行させて、自動実行後再び手動操作を継続するといった、ユーザによる端末上でのブラウザの手動操作と自動実行とをシームレスに切り替えることができない。【００１６】
一方、自動実行の技術のうちクライアント端末上で自動実行を行う技術では、自動実行の内容や起動タイミングの決定はクライアント端末上でユーザや端末上の他の装置によって行われるため、サービス提供者が複数のユーザに対して同じ形で自動実行を行うように制御することができず、複数ページにまたがるカスタマイズの実現には使用できない。【００１７】
第２の問題は、Ｗｅｂページの内容に応じたカスタマイズ方法の変更が困難だったことである。
上記特許文献では、対象とするＷｅｂページのＵＲＬによって固定的に変換内容を決定するか、又はＷｅｂページに表示しているユーザの嗜好や役割に応じて内容を変更するだけであり、表示しようとするＷｅｂページの内容によってカスタマイズ内容を変更させることができない。よって、例えば表示内容がセッション状態によって決定され異なるコンテンツが同一ＵＲＬで表示されるようなＷｅｂシステムや、Ｗｅｂシステム自体が閲覧者や状況に応じてコンテンツを変更させる場合に、適切なカスタマイズを行うことができない。さらに、あるページの内容によってその後に表示する別のページの内容のカスタマイズ方法を変更することができない。【００１８】
本発明は係る問題に鑑みてなされたものであり、複数Ｗｅｂページの画面遷移によって構成されるＷｅｂシステムの、複数ページにまたがるカスタマイズを可能とし、Ｗｅｂページの内容に応じてカスタマイズ方法を変更できるアプリケーション拡張システム、拡張方法、拡張プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するため、本発明は、第１の態様として、自動実行の起動条件を含む処理決定定義と自動実行として行う処理の内容を示す自動実行定義との登録を受けるインタフェースと、ブラウザ又はアプリケーションからの通信メッセージを受信する通信インタフェースとを備え、ブラウザ又はアプリケーションからの通信メッセージ受信時に、登録されている処理決定定義に従って、登録済みの自動実行定義を実行するかを決定し、通信メッセージを、送り先であるアプリケーション又はブラウザへ送信し、実行すると決定した自動実行定義に従って、ブラウザに少なくとも一つのＧＵＩ操作指示を送ることを特徴とするアプリケーション拡張システムを提供するものである。【００２０】
また、上記目的を達成するため、本発明は、第２の態様として、自動実行の起動条件を含む処理決定定義と前記自動実行として行う処理の内容を示す自動実行定義との登録を受け付ける工程と、ブラウザ又はアプリケーションからの通信メッセージを受信する工程と、登録されている前記処理決定定義に従って、登録済みの前記自動実行定義を実行するかを決定する工程と、前記受信した通信メッセージを、送り先である前記アプリケーション又は前記ブラウザへ送信する工程と、実行すると決定した前記自動実行定義に従って、前記ブラウザに少なくとも一つのＧＵＩ操作指示を送る工程とを有することを特徴とするアプリケーション拡張方法を提供するものである。【００２１】
また、上記目的を達成するため、本発明は、第３の態様として、上記第２の態様に係るアプリケーション拡張方法をコンピュータに実行させるアプリケーション拡張プログラムを提供するものである。
【発明の効果】
【００２２】
本発明によれば、複数Ｗｅｂページの画面遷移によって構成されるＷｅｂシステムの、複数ページにまたがるカスタマイズを可能とし、Ｗｅｂページの内容に応じてカスタマイズ方法を変更できるアプリケーション拡張システム、拡張方法、拡張プログラムを提供できる。
【図面の簡単な説明】
【００２３】
【図１】本発明に係るアプリケーション拡張システムの構成を示す図である。
【図２】本発明を好適に実施した第１の実施形態に係るアプリケーション拡張システムの構成を示す図である。
【図３】第１の実施形態に係るアプリケーション拡張システムの情報抽出定義の構成を示す図である。
【図４】第１の実施形態に係るアプリケーション拡張システムの処理決定定義の構成を示す図である。
【図５】第１の実施形態に係るアプリケーション拡張システムの変換定義の構成を示す図である。
【図６】第１の実施形態に係るアプリケーション拡張システムの自動実行定義の構成を示す図である。
【図７】第１の実施形態に係るアプリケーション拡張システムのデータ管理部が管理するデータの構造を示す図である。
【図８】第１の実施形態に係るアプリケーション拡張システムの動作の流れを示す図である。
【図９】第１の実施形態に係るアプリケーション拡張システムのブラウザ制御部の動作の流れを示す図である。
【図１０】本発明を好適に実施した第３の実施形態に係るアプリケーション拡張システムのデータ管理部が管理するデータの構造を示す図である。
【図１１】本発明を好適に実施した第４の実施形態に係るアプリケーション拡張システムの動作の流れを示す図である。
【図１２】第４の実施形態に係るアプリケーション拡張システムのブラウザ制御部の動作の流れを示す図である。
【図１３】本発明を好適に実施した第５の実施形態に係るアプリケーション拡張システムの構成を示す図である。
【図１４】本発明を好適に実施した第６の実施形態に係るアプリケーション拡張システムの構成を示す図である。
【図１５】本発明を好適に実施した第７の実施形態に係るアプリケーション拡張システムの情報抽出定義の構成を示す図である。
【図１６】第１の実施例に係るアプリケーション拡張システムの構成を示す図である。
【図１７】第１の実施例でのＷｅｂアプリケーションの動作を示す図である。
【図１８】第１の実施例でのＷｅｂアプリケーションの動作を示す図である。
【図１９】第１の実施例での情報抽出定義の構成を示す図である。
【図２０】第１の実施例での処理決定定義の構成を示す図である。
【図２１】第１の実施例での変換定義の構成を示す図である。
【図２２】第１の実施例での自動実行定義の構成を示す図である。
【図２３】第１の実施例でのデータ管理部が管理するデータの構造を示す図である。
【図２４】第１の実施例でのアプリケーション拡張システムの動作を示す図である。
【図２５】第２の実施例に係るアプリケーション拡張システムの構成を示す図である。
【図２６】第２の実施例でのＷｅｂアプリケーションの動作を示す図である。
【図２７】第２の実施例でのＷｅｂアプリケーションの動作を示す図である。
【図２８】第２の実施例でのＷｅｂアプリケーションの動作を示す図である。
【図２９】第２の実施例でのＷｅｂアプリケーションの動作を示す図である。
【図３０】第２の実施例での情報抽出定義の構成を示す図である。
【図３１】第２の実施例での処理決定定義の構成を示す図である。
【図３２】第２の実施例での変換定義の構成を示す図である。
【図３３】第２の実施例での自動実行定義の構成を示す図である。
【図３４】第２の実施例でのデータ管理部が管理するデータの構造を示す図である。
【図３５】第２の実施例でのアプリケーション拡張システムの動作を示す図である。
【発明を実施するための形態】
【００２４】
図１に示すように、本発明に係るアプリケーション拡張システム１は、自動実行の起動条件を含む処理決定定義１３と自動実行として行う処理の内容を示す自動実行定義１４との登録を受けるインタフェース１１と、ブラウザ２０又はアプリケーション３０からの通信メッセージを受信する通信インタフェース１２とを備え、制御部１５は、ブラウザ２０又はアプリケーション３０からの通信メッセージ受信時に、登録されている処理決定定義１３に従って、登録済みの自動実行定義１４を実行するかを決定し、通信メッセージを、送り先であるアプリケーション３０又はブラウザ２０へ送信し、実行すると決定した自動実行定義１４に従って、ブラウザ２０に少なくとも一つのＧＵＩ操作指示を送ることを特徴とする。ＧＵＩ操作指示とは、ブラウザ２０に表示されるＧＵＩの入力欄に値を入力させたり、ＧＵＩ上のボタンを押下させたりするなどの、ＧＵＩ上の任意の操作に関する指示である。
【００２５】
ここで、インタフェース１１の種類は任意である。例えば、不図示の外部装置から処理決定定義１３及び自動実行定義１４を受信するためのインタフェースであっても良いし、これらの定義を登録するための入力操作を受け付けるためのインタフェース（キーボード等のユーザインタフェース）であっても良い。また、制御部１５の機能はコンピュータによるソフトウェア処理によって実現できる。
【００２６】
このような構成とすることにより、複数Ｗｅｂページの画面遷移によって構成されるＷｅｂシステムの、複数ページにまたがるカスタマイズを可能とし、Ｗｅｂページの内容に応じてカスタマイズ方法を変更できる。
【００２７】
以下、本発明の好適な実施の形態について説明する。
【００２８】
〔第１の実施形態〕
本発明を好適に実施した第１の実施形態について説明する。図２に、本実施形態に係るアプリケーション拡張システムの構成を示す。アプリケーション拡張システム１０１は、プロキシ部１１０、ブラウザ制御部１２０、拡張定義管理部１３０、及びデータ管理部１４０を有する。
【００２９】
プロキシ部１１０は、通信処理部１１１、メッセージ記憶部１１２、情報抽出部１１３、処理決定部１１４及び変換実行部１１５を有する。なお、図１における通信インタフェース１２及び制御部１５の機能の一部が通信処理部１１１に相当する。また、図１における制御部１５の機能の一部が情報抽出部１１３に相当する。また、図１における制御部１５の機能の一部が処理決定部１１４に相当する。また、図１における制御部１５の機能の一部が変換実行部１１５に相当する。
拡張定義管理部１３０は、情報抽出定義１３１、処理決定定義１３２、変換定義１３３及び自動実行定義１３４を有する。
ブラウザ制御部１２０は、Ｗｅｂブラウザ１０３のある端末装置１０４上に設置され、Ｗｅｂブラウザ１０３に接続される。なお、図１における制御部１５の機能の一部がブラウザ制御部１２０に相当する。図１におけるインタフェース１１に相当する構成は不図示であるが、通信中継装置１０２がユーザインタフェースを備えていても良いし、端末装置１０４を含む任意の外部装置を介して処理決定定義１３２や自動実行定義１３４が登録される構成であっても良い。
【００３０】
プロキシ部１１０、ブラウザ制御部１２０、拡張定義管理部１３０及びデータ管理部１４０は、通信中継装置１０２上に設置される。また、通信処理部１１１は、外部のＷｅｂブラウザ１０３とＷｅｂアプリケーション１０５とに接続される。Ｗｅｂブラウザ１０３とＷｅｂアプリケーション１０５とは複数でも良い。
【００３１】
プロキシ部１１０のうち、通信処理部１１１、情報抽出部１１３、処理決定部１１４はコンピュータによるソフトウェア処理で機能を実現できる。また、ブラウザ制御部１２０も、コンピュータによるソフトウェア処理によって機能を実現できる。
【００３２】
図３に、情報抽出定義１３１の構造を示す。情報抽出定義１３１は抽出式と保存先とで定義される。抽出式の記述方法は様々なものが考えられるが、好適な例としてはＨＴＴＰプロトコルの特定ヘッダ名やＨＴＭＬの内部構造に対するＸＰａｔｈ記述式、さらに数値や文字列演算などを行う計算式などである。保存先はデータ管理部１４０のデータ名である。
【００３３】
図４に、処理決定定義１３２の構造を示す。処理決定定義１３２は、データ名及びその値に対する演算や評価式と、評価式が満たされた時に実行する変換定義１３３又は自動実行定義１３４の定義名とのリストとして定義される。なお、図１における処理決定定義１３が処理決定定義１３２に相当する。
【００３４】
図５に、変換定義１３３の構造を示す。変換定義１３３は、定義名（変換定義名）と、ＨＴＴＰプロトコルのヘッダやメッセージデータを加工するための変換プログラム（変換内容）とのリストとして定義される。
【００３５】
図６に、自動実行定義１３４の構造を示す。自動実行定義１３４は、定義名（自動実行定義名）と、定義内容として処理記述とのリストで定義される。なお、図１における自動実行定義１４が自動実行定義１３４に相当する。
【００３６】
図７に、データ管理部１４０が持つデータの構造を示す。データ管理部１４０は複数のデータブロック６０１を持つことができ、各データブロック６０１はデータ名とデータ値とのリストとして定義される。
【００３７】
抽出式や演算、評価式、変換プログラム、マクロ記述などの記述方法には、公知技術を適用可能であり、特定の記述方法に限定されない。
【００３８】
アプリケーション拡張システム１０１の動作について説明する。
通信処理部１１１はＷｅｂブラウザ１０３からＷｅｂアプリケーション１０５への要求メッセージ、又はＷｅｂアプリケーション１０５からＷｅｂブラウザ１０３への応答メッセージを受信し、メッセージをメッセージ記憶部１１２に記録し、情報抽出部１１３を呼び出す。
【００３９】
情報抽出部１１３は、拡張定義管理部１３０の情報抽出定義１３１に従い、メッセージ記憶部１１２の要求や応答メッセージから必要な情報を抽出し、データ管理部１４０に保存し、処理決定部１１４を呼び出す。
【００４０】
処理決定部１１４は、拡張定義管理部１３０の処理決定定義１３２に従ってデータ管理部１４０のデータを参照し、適用すべき変換又は自動実行処理を決定し、変換実行部１１５又はブラウザ制御部１２０に実行を指示する。
【００４１】
変換実行部１１５は、実行指示を受けると拡張定義管理部１３０の指定された変換定義１３３を実行し、メッセージ記憶部１１２の要求又は応答メッセージを変更し、通信処理部１１１に送信指示を送る。
【００４２】
通信処理部１１１は、送信指示を受けるとメッセージ記憶部１１２に記録されている変更済みのメッセージをＷｅｂブラウザ１０３又はＷｅｂアプリケーション１０５に送信する。
【００４３】
ブラウザ制御部１２０は、実行指示を受けると拡張定義管理部１３０の指定された自動実行定義１３４を実行し、Ｗｅｂブラウザ１０３へユーザのＧＵＩに相当する制御イベントを送る。
【００４４】
図８に、本実施形態に係るアプリケーション拡張システム１０１の動作の流れを示す。
アプリケーション拡張システム１０１は、まず通信メッセージの受信を待ち（ステップＳ７０１）、通信処理部１１１がメッセージを受信すると、通信処理部１１１はメッセージをメッセージ記憶部１１２に記録する（ステップＳ７０２）。
【００４５】
次に、情報抽出部１１３は、拡張定義管理部１３０から情報抽出定義１３１を取り出し（ステップＳ７０３）、情報抽出定義１３１に従ってメッセージから情報を抽出し（ステップＳ７０４）、抽出した情報をデータ管理部１４０に保存する（ステップＳ７０５）。
【００４６】
次に、処理決定部１１４は、拡張定義管理部１３０から処理決定定義１３２を取り出し（ステップＳ７０６）、処理決定定義１３２に従ってデータ管理部１４０のデータを参照して適用すべき処理を決定し（ステップＳ７０７）、変換処理が決定されていれば（ステップＳ７０８／Ｙｅｓ）、拡張定義管理部１３０から指定された変換定義１３３を取り出し（ステップＳ７０９）、変換定義１３３を実行して必要に応じてデータ管理部１４０のデータを参照しながらメッセージ記憶部１１２に記録されているメッセージを変更する（ステップＳ７１０）。適用すべき変換処理が無ければ（ステップＳ７０８／Ｎｏ）、いずれの変換定義も実行しない。
【００４７】
次に、自動実行処理が決定されていれば（ステップＳ７１１／Ｙｅｓ）、決定した自動実行定義１３４の実行をブラウザ制御部１２０に指示する（ステップＳ７１２）。
【００４８】
最後に、通信処理部１１１は、メッセージ記憶部１１２に記録されているメッセージをＷｅｂブラウザ１０３又はＷｅｂアプリケーション１０５へ送信する（ステップＳ７１３）。その後、ステップＳ７０１へ戻る。
【００４９】
図９に、ブラウザ制御部１２０の動作の流れを示す。
ブラウザ制御部１２０は、実行指示を受けると（ステップＳ８０１）、拡張定義管理部１３０から指定された自動実行定義１３４を取り出す（ステップＳ８０２）。そして、ブラウザ制御部１２０は、自動実行定義１３４から次に実行すべき処理記述を取り出す（ステップＳ８０３）。処理記述がデータ管理部１４０のデータ処理であれば（ステップＳ８０４／Ｙｅｓ）、ブラウザ制御部１２０は、データ管理部１４０を呼び出してデータの参照や蓄積を行う（ステップＳ８０５）。処理記述がブラウザ制御であれば（ステップＳ８０４／Ｎｏ、Ｓ８０６／Ｙｅｓ）、ブラウザ制御部１２０は、Ｗｅｂブラウザ１０３にデータの入力やボタンのクリックなどの指定されたユーザＧＵＩ操作に相当する制御イベントを送る（ステップＳ８０７）。さらに実行すべき処理記述があれば（ステップＳ８０８／Ｙｅｓ）、ステップＳ８０３に戻って実行を繰り返す。
【００５０】
ブラウザ制御部１２０による自動実行とプロキシ部１１０によるメッセージ処理とは並行して行われ、ブラウザ制御部１２０による自動実行の過程で次のメッセージがプロキシ部１１０へ送られた場合、このメッセージに対してもステップＳ７０１以降の処理が適用される。
【００５１】
このように、本実施形態に係るアプリケーション拡張システム１は、ＨＴＴＰの通信を制御するプロキシ部１１０と、Ｗｅｂブラウザ１０３によるＷｅｂアプリケーション１０５のＧＵＩ操作を自動的に行うブラウザ制御部１２０と、異なるページ間やアプリケーション間で共有するデータを管理するデータ管理部１４０とを備え、プロキシ部１１０が要求や応答メッセージから必要な情報を抽出してデータ管理部１４０に保存し、データ管理部１４０の内容から実行すべき処理の内容を決定する。処理の内容は要求又は応答メッセージの変換と自動実行の開始となる。
元のＷｅｂアプリケーションに対するカスタマイズの内容として、異なるページへの遷移や、ユーザの操作のエミュレーションが必要な場合は、ブラウザ制御部１２０に自動実行を指示する。
また、元のＷｅｂブラウザに対するカスタマイズの内容として、ページ内の書き換えが必要な場合は変換処理を指示する。
処理内容の決定や、変換処理、自動実行処理で別ページに含まれる情報を利用する場合は、データ管理部１４０から取得することで、複数ページにまたがる情報を用いた拡張を行う。
【００５２】
このような構成とすることにより、複数Ｗｅｂページの画面遷移によって構成されるＷｅｂページにおいて、あるページの内容を他のページの変換に使用したり、複数の画面にまたがったユーザの操作手順を変更するといった、複数ページにまたがるカスタマイズと、Ｗｅｂページの内容によってカスタマイズ方法を変更することが可能となる。
【００５３】
これは、まずプロキシ部１１０がＷｅｂページ内から情報を抽出してデータ管理部１４０に保存し、処理決定部１３２がデータ管理部１４０に保存された同一又は異なるページから抽出された情報を用いてカスタマイズ方法を決定し、決定内容を変換実行部１１５又はブラウザ制御部１２０に指示し、変換実行部１１５がデータ管理部１４０に保存された同一又は異なるページに含まれる情報を用いた変換処理を行い、ブラウザ制御部１２０がプロキシ部１１０からの指示によってユーザが使用しているＷｅｂブラウザ１０３上で自動実行を開始し他のページへ画面遷移させることができるためである。
【００５４】
本実施形態に係るアプリケーション拡張システムは、複数のページにまたがってアプリケーションの振る舞いを変更し、既存のアプリケーションを変更せずにカスタマイズを実現したり、利用者によって異なる要求に一つのアプリケーションで対応するといった用途に適用できる。
【００５５】
〔第２の実施形態〕
本発明を好適に実施した第２の実施形態について説明する。
上記第１の実施形態においては、データ管理部１４０は単純に指示されたデータを保存していたが、本実施形態においては、このデータの管理をＷｅｂブラウザ１０３と通信中継装置１０２やＷｅｂアプリケーション１０５間で管理される何らかのセッションに関連付けて管理する。ここでいうセッションとは、一般にＷｅｂシステムで広く用いられている、一連の操作によって発生する複数のＨＴＴＰ要求や応答を一塊として扱うための仕組みであり、塊として扱う単位は端末装置ごと、利用ユーザごと、プロキシ部１１０にログイン処理を設けてログインが有効な間、など様々な単位がありうる。セッションを実現する方法は様々なものがあるが、特定の方法には限定されない。セッション管理の好適な例は、ＨＴＴＰのクッキーを用いてセッションＩＤを記録し、このＩＤをメッセージに付与するものである。
【００５６】
本実施形態では、通信処理部１１１がメッセージ受信時にセッションを識別すると、セッションを通信中継装置１０２内で一意に識別するセッションＩＤとあわせてメッセージをメッセージ記憶部１１２に記録し、データ管理部１４０は保存するデータをセッションＩＤごとに分けて保存する。また、あるメッセージ受信に対する処理として情報抽出部１１３、処理決定部１１４、ブラウザ制御部１２０が動作する場合、受信したメッセージのセッションＩＤが一致するデータのみを操作（読み出しや書き換えなど）する。
【００５７】
何らかの形でセッションの終了（ログアウトやブラウザとの接続の切断やタイムアウトなど）が通信処理部１１１によって検出された場合、データ管理部１４０はそのセッションのデータを破棄しても良い。
データ管理部１４０のデータをセッションに関連付けて管理することで、処理の決定や変換、自動実行などで用いるデータを特定ユーザの特定の一連処理中でのみ有効な一時的データとして扱うことができる。
【００５８】
〔第３の実施形態〕
本発明を好適に実施した第３の実施形態について説明する。
上記第２の実施形態においては、データ管理部１４０は全てのデータをセッションに関連付けられた一時的データとして扱っていたが、本実施形態においては、データによって一時的データかセッションに依存しない永続的データかを選択できるようにする。さらに永続的データの場合その共有範囲などを設定できるようにしても良い。共有範囲は、全ての通信で共有、同じユーザの全てのセッション間で共有、ある特定のユーザ属性を持つユーザ間で共有などの様々形態が考えられる。
【００５９】
ユーザやユーザ属性など何らかの管理単位で共有範囲を指定可能にする場合、通信処理部１１１がユーザ管理機能や認証機能など管理単位に関する情報を持ち、メッセージが属するユーザなどの管理単位の情報を取得できる必要がある。
【００６０】
図１０に、本実施形態のデータ管理部１４０に管理されるデータの構造を示す。本実施形態では、データ管理部１４０が、データブロックごとに共有範囲の項目を持ち、これが一時的の場合にはデータを第２の実施形態のようにセッションに関連付けて管理し、共有範囲が永続的なものの場合は全てのセッションが同一のデータを操作する。永続的の時にさらにユーザ間などの共有範囲が設定されている場合、この共有範囲ごとにデータを分けて管理する。
【００６１】
一時的データや共有データを混在して管理可能とすることで、処理の決定や実行に必要な様々な情報を柔軟に管理することが可能となる。
【００６２】
〔第４の実施形態〕
本発明を好適に実施した第４の実施形態について説明する。
上記第１の実施形態においては、ブラウザ制御部１２０は端末装置１０４上に事前に配備されていたが、本実施形態においては、ブラウザ制御部１２０をＷｅｂブラウザ１０３上で実行されるスクリプトとして実装し、処理決定部１１４が自動実行を決定した時に、変換実行部１１５が応答メッセージの中にブラウザ制御部１２０を挿入するようにする。開始すべき自動実行定義１３４の名前や内容は同時に挿入するか、又はＷｅｂブラウザ１０３上でブラウザ制御部１２０が実行を開始した後に通信中継装置１０２と通信して取得する。
【００６３】
図１１に、本実施形態に係るアプリケーション拡張システムの動作の流れを示す。図８に示したフローチャートとはステップＳ７１２の相当する部分の動作が異なっている。本実施形態では、処理決定部１１４が自動実行を決定すると（ステップＳ７１１／Ｙｅｓ）、変換実行部１１５に自動実行の指示を行い、変換実行部１１５は実行に加え、自動実行の指示を受けると応答メッセージにブラウザ制御部１２０のスクリプトを挿入する処理を行う（ステップＳ１００１）。これ以外は図８に示した動作と同様である。
【００６４】
図１２に、本実施形態に係るブラウザ制御部１２０の動作の流れを示す。ブラウザ制御部１２０のスクリプトは、まず最初にＷｅｂアプリケーション１０５のＧＵＩを表示しているウインドウとは別のウインドウを生成し、その生成したウインドウ内でスクリプトを実行し、ブラウザ制御部１２０としての動作を行う（ステップＳ１１０１）。以降の処理は、図９のステップＳ８０２以降と同様である。
【００６５】
ブラウザ制御部１２０を通信中継装置１０２が挿入することで、端末装置１０４側は汎用のブラウザのみがあれば事前準備なしにアプリケーション拡張システムを実現できる。
【００６６】
また、通常Ｗｅｂブラウザ内で実行されるスクリプトは画面遷移が起きると実行が停止してしまうが、別ウインドウを生成してこれにブラウザ制御部１２０の実行を行わせることで、元のＷｅｂアプリケーション１０５のＧＵＩを表示しているウインドウが画面遷移してしまっても、ブラウザ制御部１２０としての機能を継続することができる。
【００６７】
〔第５の実施形態〕
本発明を好適に実施した第５の実施形態について説明する。
上記第１の実施形態においては、ブラウザ制御部１２０は端末装置１０４上に配備されていたが、ブラウザ制御部を通信中継装置１０２内に配置し、ブラウザ制御部からＷｅｂブラウザ１０３への制御イベントを通信を用いて送信するようにしても良い。通信方式は様々なものが考えられるが、好適な例はリモートプロシジャーコール（Remote Procedure Call）による遠隔処理呼び出しである。
【００６８】
図１３に、本実施形態に係るアプリケーション拡張システムの構成を示す。ブラウザ制御部１２０１が通信中継装置１０２上に配置されている点で、第１の実施形態と異なっている。
このようなＷｅｂブラウザ１０３の遠隔制御が可能か否かは、Ｗｅｂブラウザ１０３や端末装置１０４のＯＳなどの作りに依存するが、機能の遠隔制御自体は広く使用されている一般的な技術であり、これが利用できる環境であれば、本実施形態の構成を適用し、端末装置１０４側は汎用のＷｅｂブラウザ１０３のみがあれば事前準備なしにアプリケーション拡張システムを実現できる。
【００６９】
〔第６の実施形態〕
本発明を好適に実施した第６の実施形態について説明する。
上記第１の実施形態では、変換実行部１１５は通信中継装置１０２上に配備されていたが、変換実行部を端末装置１０４上に配置し、Ｗｅｂブラウザ１０３がページを表示した後で画面を書き換えるようにしても良い。
【００７０】
図１４に、本実施形態に係るアプリケーション拡張システムの構成を示す。変換実行部１３０１が端末装置１０４上に配置され、変換処理はＨＴＭＬなどを含んだ通信メッセージではなく、Ｗｅｂブラウザ１０３が解釈実行した結果の画面に対して行う。
【００７１】
スクリプトのＷｅｂブラウザ１０３での実行によって表示する内容をＷｅｂブラウザ１０３上で動的に生成するＷｅｂアプリケーション１０５では、変換すべき画面の内容がＨＴＭＬとして応答メッセージには含まれない場合があるが、本実施形態ではこのようなＷｅｂアプリケーションの画面変換も実現可能である。
【００７２】
〔第７の実施形態〕
本発明を好適に実施した第７の実施形態について説明する。
上記第１の実施形態では、情報抽出定義１３１は常に全ての定義が評価されていたが、本実施形態においては、情報抽出定義がＨＴＴＰヘッダやデータ管理部１４０のデータなどを用いた起動条件を持つようにし、起動条件を満たした抽出式のみを評価するようにする。
【００７３】
図１５に、本実施形態に係るアプリケーション拡張システムの情報抽出定義１３１の構成を示す。
要求メッセージのポストデータや応答メッセージのＨＴＭＬデータからの情報抽出は、メッセージによってポストデータはＨＴＭＬの有無や内容が大きく変化するため、抽出式の対象となるデータが存在しない場合や、本来の意図とは異なるデータが抽出されてしまう可能性がある。本実施形態のように、起動条件を指定することで意図したメッセージにのみ抽出式を適用することが可能となる。
【００７４】
以下、本発明の好適な実施の形態に係るアプリケーション拡張システムの実施例について説明する。
【実施例１】
【００７５】
〔構成〕
図１６に示すように、通信中継装置１０２上にプロキシ部１１０、データ管理部１４０、拡張定義管理部１３０が設置されており、また端末装置１０４にはＷｅｂブラウザ１０３に接続されたブラウザ制御部１２０が設置されている。
プロキシ部１１０の通信処理部１１１は、Ｗｅｂブラウザ１０３とＷｅｂアプリケーション１５０１とに接続されている。【００７６】
図１７は、Ｗｅｂアプリケーション１５０１の動作示す図である。
Ｗｅｂアプリケーション１５０１は、ページＡ、ページＢ、ページＣの３ページにまたがり情報ａ１、ａ２、ｂ１、ｂ２、ｃ１、ｃ２を入力するアプリケーションであり、データを入力後「次へ」ボタンを押下することで次のページに遷移するようになっている。また、Ｃページで「登録」ボタンを押下すると入力データがアプリケーションに保存される。【００７７】
また、Ｗｅｂアプリケーション１５０１の全てのページは同一のＵＲＬでアクセスするようになっており、アプリケーション内部でそれ以前の通信の状態から応答メッセージで返すＷｅｂページの内容を変更するようになっている。【００７８】
ここで、利用者の要求として、ユーザの入力作業を簡略化できるように、いくつかの入力欄は省略するようにＷｅｂアプリケーション１５０１をカスタマイズすることを想定する。【００７９】
図１８に、利用者の望むカスタマイズがなされたＷｅｂアプリケーション１５０１の動作を示す。
ａ２、ｂ１、ｂ２は常に同じ固定値なので入力を省略し、ａ１、ｃ１、ｃ２のみを入力し、またｃ１は完全に固定値ではないが多くの場合同じ値なので既定値を設定し必要な時のみ変更できるようにする。【００８０】
図１９は、拡張定義管理部１３０に登録されている情報抽出定義１３１である。抽出式として、ページ内の一つ目の入力欄の項目名（文字列ａ１、ｂ１、ｃ１など）を取り出すためのＸＰａｔｈ式“//table/tr[1]/td[1]”が指定されており、保存先としてデータＰの“項目名”にその内容を保存するようになっている。【００８１】
図２０は、拡張定義管理部１３０に登録されている処理決定定義１３２である。データＰの“項目名”の値によってページの内容がページＡ、Ｂ、Ｃのいずれであるかを判別し、ページＡかページＣならば変換定義ＡかＣを、ページＢの場合には変換定義Ｂと自動実行定義Ｂとを実行する。【００８２】
図２１は、拡張定義管理部１３０に登録されている変換定義１３３である。
変換定義Ａでは、ａ２の入力欄にデータＸのデータ名“ａ２”の値を挿入し、かつａ２の文字列及び入力欄の表示を隠すように変換する。
変換定義Ｂでは、ｂ１、ｂ２の文字列及び入力欄の表示を隠すように変換する。
変換定義Ｃでは、ｃ１の入力欄にデータＸのデータ名“ｃ１”の値を挿入するように変換する。
なお、表示を隠す場合、Ｗｅｂブラウザ１０３上には表示はされないが、Ｗｅｂブラウザ制御部１２０からは操作可能で入力されたデータはサーバへ送信される状態である。【００８３】
図２２は、拡張定義管理部１３０に登録されている自動実行定義１３４である。自動実行定義Ｂは、データの取り出し及び入力欄への設定が二つずつと、ボタンの押下とで五つの処理記述からなる。【００８４】
図２３は、データ管理部１４０が管理するデータである。“項目名”のデータが持つ一時的データのデータＰと、“ａ２”、“ｂ１”、“ｂ２”、“ｃ１”のデータを持つ永続的データのデータＸとがある。【００８５】
〔動作〕
アプリケーション拡張システムの動作について説明する。図２４にアプリケーション拡張システムの動作の一例を示す。ユーザがＷｅｂブラウザ１０３からアプリケーション拡張システム１０１の通信処理部１１１を介してＷｅｂアプリケーション１５０１にアクセス要求を送ると（２３０１）、通信処理部１１１は要求メッセージをメッセージ記憶部１１２に記録し、情報抽出部１１３が情報抽出を試みる。ここでは抽出式は応答メッセージのＨＴＭＬ文書にのみ適用されるため、要求メッセージの場合データＰの項目名の値は空文字列となる。【００８６】
次に、処理決定部１１４が処理決定定義１３２の三つの評価式を評価するが、ここでは該当する式は無いため、何の処理も行わないことが決定され、通信処理部１１１は受信した要求メッセージをＷｅｂアプリケーション１５０１に送信する。【００８７】
なお、ここでは要求メッセージに対する処理は行わないため、以後ページＢとページＣとに対する要求メッセージの処理の記載は省略する。【００８８】
次に、Ｗｅｂアプリケーション１５０１は、要求メッセージを受け取ると、最初の通信なのでページＡのＨＴＭＬを応答メッセージとして返し、これが通信処理部１１１へ送られる（２３０２）。【００８９】
通信処理部１１１は応答メッセージをメッセージ記憶部１１２に記録し、情報抽出部１１３が情報抽出を試み、ページ内の一つ目の入力欄の項目名として文字列“ａ１”を取り出し、データＰの“項目名”のデータ値に格納する。【００９０】
次に、処理決定部１１４が処理決定定義１３２の三つの評価式を評価し、１行目の式が条件を満たすため、その処理内容から変換定義Ａを実行することを決定し、変換実行部１１５に変換定義Ａの実行を指示する。【００９１】
変換実行部１１５は、拡張定義管理部１３０から変換定義Ａを取り出し、その定義内容を実行し、データＸのデータ名ａ２の値“値１”を取り出し、ａ２の入力欄の初期値として設定すると同時に、ａ２の表示及び入力欄を見えなくなるようにメッセージ記憶部１１２の応答メッセージのＨＴＭＬを変更する。【００９２】
変換が終了すると、通信処理部１１１は変更された応答メッセージをＷｅｂブラウザ１０３に送信する（２３０２’）。【００９３】
Ｗｅｂブラウザ１０３は、受信したページＡを表示するが、ここではａ２の入力欄は表示されない。【００９４】
次に、ユーザがａ１に値を入力し、「次へ」ボタンを押下すると（２３０３）、二つ目の要求メッセージがアプリケーション拡張システムを介してＷｅｂアプリケーション１５０１へ送られ、Ｗｅｂアプリケーション１５０１はページＢの内容を応答メッセージとして返す（２３０４）。【００９５】
通信処理部１１１は、応答メッセージをメッセージ記憶部１１２に記録し、情報抽出部１１３が情報抽出を試み、ページ内の一つ目の入力欄の項目名として文字列“ｂ１”を取り出し、データＰの項目名の値に格納する。【００９６】
次に、処理決定部１１４が処理決定定義１３２の三つの評価式を評価し、２行目の式が条件を満たすため、その処理内容から変換定義Ｂと自動実行定義Ｂとを実行することを決定し、変換実行部１１５に変換定義Ｂの実行を、ブラウザ制御部１２０に自動実行定義Ｂの実行をそれぞれ指示する。【００９７】
変換実行部１１５は、拡張定義管理部１３０から変換定義Ｂを取り出し、ｂ１とｂ２との表示及び入力欄を見えなくするようにメッセージ記憶部１１２の応答メッセージのＨＴＭＬを変更し、通信処理部１１１は変更された応答メッセージをＷｅｂブラウザ１０３に送信する（２３０４’）。
同時にブラウザ制御部１２０は、拡張定義管理部１３０から自動実行定義Ｂの定義内容を取り出し、処理記述を順次実行し、１行目と３行目とでデータ処理としてデータＸ．ｂ１とデータＸ．ｂ２から値を取り出し、２、４、５行目でブラウザにｂ１とｂ２との入力欄に入力と「次へ」ボタンの押下という制御イベントとを送る（２３０５、２３０６、２３０７）。
この自動実行により、Ｗｅｂアプリケーション１５０１に次の要求メッセージが送られることとなる。
この結果、Ｗｅｂブラウザ１０３にページＢは「次へ」ボタンのみ表示されて、かつすぐに自動で次の画面に遷移してしまうように見える。【００９８】
次に、三つ目の要求メッセージが一つ目や二つ目と同様にＷｅｂアプリケーション１５０１へ送られ（２３０８）、応答メッセージとしてページＣの内容が返る（２３０９）。【００９９】
通信処理部１１１は、応答メッセージをメッセージ記憶部１１２に記録し、情報抽出部１１３が情報抽出を試み、ページ内の一つ目の入力欄の項目名として文字列“ｃ１”を取り出し、データＰの項目名の値に格納する。【０１００】
次に処理決定部１１４が処理決定定義１３２の三つの評価式を評価し、３行目の式が条件を満たすため、その処理内容から変換定義Ｃを実行することを決定し、変換実行部１１５に変換定義Ｃの実行を指示し、変換実行部１１５は変換定義Ｃを取り出して実行し、データＸ．ｃ１を取り出しｃ１の入力欄に初期値を設定し、Ｗｅｂブラウザ１０３へ送信する（２３０９’）。【０１０１】
これにより、ユーザはＷｅｂアプリケーション１５０１をあたかも図１８のような一部ページ遷移を省略した形で利用することが可能となる。【０１０２】
さらに、Ｗｅｂアプリケーション１５０１の内部の実行状態や、クッキーやウインドウの生成といったＷｅｂブラウザ１０３の実行状態はアプリケーション拡張システムを使用せず直接使用した場合と同じであるため、たとえＷｅｂアプリケーション１５０１がページＡ、Ｂ、Ｃ以外の複数のページを持ち、その動作がこれら実行状態に依存するものであっても、カスタマイズを施した後でも他のページをそのまま使い続けることが可能となる。【０１０３】
また、ここでは永続データであるデータＸの共有範囲は特に規定しなかったが、例えばこの永続データの共有範囲をユーザの所属部門ごととすると、所属部門ごとに自動入力する固定値の値を変更することが容易に行える。
【実施例２】
【０１０４】
〔構成〕
図２５に、アプリケーション拡張システムの構成を示す。接続されるＷｅｂアプリケーションと、登録される拡張定義が異なる以外は、実施例１と同様である。Ｗｅｂアプリケーションとしては、Ｗｅｂアプリケーション２４０２、２４０３、２４０４に接続されている。【０１０５】
図２６に、Ｗｅｂアプリケーション２４０２の動作を示す。Ｗｅｂアプリケーション２４０２は、Ｗｅｂアプリケーション１５０１と同様にページＡ、ページＢ、ページＣの３ページにまたがり情報を入力するが、入力項目はａ１、ｂ１、ｃ１のみである。【０１０６】
図２７に、Ｗｅｂアプリケーション２４０３の動作を示す。Ｗｅｂアプリケーション２４０３は、ページＤとページＥとからなり、ページＤにＷｅｂアプリケーション２４０２のｂ１の入力値を入力すると、ページＥで入力値の関連情報を表示する。【０１０７】
図２８に、Ｗｅｂアプリケーション２４０４の動作を示す。Ｗｅｂアプリケーション２４０４は、ページＦとページＧとからなり、ページＦにＷｅｂアプリケーション２４０２のｂ１の値を入力すると、ページＧで入力値の関連情報を表示する。【０１０８】
ここで、ａ１の入力内容は顧客の業種名とし、Ｗｅｂアプリケーション２４０３は製造業の情報を、Ｗｅｂアプリケーション２４０４はそれ以外の業種の情報を管理しているとする。【０１０９】
利用者の要求として、ユーザが入力作業をしやすくなるよう、参考に関連情報の表示を追加するようＷｅｂアプリケーション２４０２をカスタマイズするとする。図２９は、利用者の望むカスタマイズがなされたＷｅｂアプリケーション２４０２の動作を示す図である。ページＡは変わらないが、ページＢとＣとでは前のページで入力した内容を、さらにページＣではＷｅｂアプリケーション２４０３又は２４０４でｂ１への入力値の関連情報を検索した結果を追加して表示する。【０１１０】
図３０に、拡張定義管理部１３０に登録されている情報抽出定義１３１を示す。抽出式として、実施例１と同様にページ内の一つ目の入力欄の項目名を取り出すためのＸＰａｔｈ式とその保存先データＰの“項目名”に加えて、要求がＨＴＴＰのＰＯＳＴコマンドである場合にそのＰＯＳＴするデータの名前がそれぞれａ１、ｂ１のものの値を取り出し、データＹのａ１かｂ１にそれぞれ保存する定義を持つ。【０１１１】
図３１に、拡張定義管理部１３０に登録されている処理決定定ｚ義１３２を示す。データＰの“項目名”の値によってページの内容がページＢかページＣかを判別し、ページＢなら変換定義Ｂを実行する。さらにページＣの場合、データＹのａ１の値を参照し、ａ１が“製造業”なら変換定義Ｃ１及び自動実行定義Ｃ１を、ａ１が“製造業”でなければ変換定義Ｃ２及び自動実行定義Ｃ２を実行する。【０１１２】
図３２は、拡張定義管理部１３０に登録されている変換定義１３３である。
変換定義Ｂでは、ａ１とその値の表示を追加する。
変換定義Ｃ１では、ａ１及びｂ１のそれぞれの値の表示に加え、Ｗｅｂアプリケーション２４０３の埋め込み表示を追加する。
変換定義Ｃ２では、ａ１及びｂ１のそれぞれの値の表示に加え、Ｗｅｂアプリケーション２４０４の埋め込み表示を追加する。
なお、埋め込み表示はＨＴＭＬのＩＦｒａｍｅなどで記述できる。【０１１３】
図３３は、拡張定義管理部１３０に登録されている自動実行定義１３４である。
自動実行定義Ｃ１は、データの取り出しと、入力欄への設定と、検索ボタンの押下との三つの処理記述からなる。一方、自動実行定義Ｃ２は、データの取り出しと、入力欄への設定と、submitボタンの押下との三つの処理記述からなる。【０１１４】
図３４は、データ管理部１４０の管理するデータである。
“項目名”のデータを持つ一時的データのデータＰと、“ａ１”、“ｂ１”のデータを持つ一時的データのデータＹとがある。【０１１５】
〔動作〕
図３５に、アプリケーション拡張システムの動作を示す。なお、通信処理部１１１がメッセージを受信してメッセージ記憶部１１２に記録し、最後に記録されたメッセージを送信する動作は第１の実施例と同様であるため、説明は省略する。
また、ページ内の一つ目の入力欄の項目名をデータＰに格納し、ページＢ、Ｃの判定に用いる部分も第１の実施例と同じであるため、説明は省略する。【０１１６】
本実施例では、ページＡとページＢの「次へ」ボタンを押下したときに送られる要求メッセージから、情報抽出部１１３がそれぞれ入力されたａ１とｂ１との値を取り出し、データＹに格納する。【０１１７】
ページＢの応答メッセージに対しては、変換定義Ｂが選択されて変換実行部１１５で実行される。変換処理としては、以前の要求メッセージに含まれていたａ１の入力値がデータＹから取り出されてページＢのＨＴＭＬに埋め込まれる。【０１１８】
ページＣの応答メッセージに対しては、まず処理決定定義１３２の評価式を評価する段階で、以前の要求メッセージに含まれていたａ１の入力値がデータＹから取り出されて評価され、その値が“製造業”か否かで、変換定義Ｃ１及び自動実行定義Ｃ１か、変換定義Ｃ２及び自動実行定義Ｃ２かの、どちらの処理が行われるかが決定される。【０１１９】
ａ１の入力値が“製造業”だった場合、変換実行部１１５で変換定義Ｃ１が実行され、前のページでのａ１、ｂ１の入力値がデータＹから取り出されて表示が追加されるのに加えて、Ｗｅｂアプリケーション２４０３の埋め込み表示が追加される。【０１２０】
次いで、ブラウザ制御部１２０で自動実行定義Ｃ１が実行され、データＹのｂ１の入力値が取り出され、埋め込み表示されているＷｅｂアプリケーション２４０３のｂ１の入力欄に挿入し、検索ボタンが押下される。【０１２１】
その結果、ページＣの関連情報の部分には、Ｗｅｂアプリケーション２４０３のページＥが埋め込み表示されることとなる。【０１２２】
ａ１の入力値が“製造業”以外だった場合、変換実行部１１５で変換定義Ｃ２が実行され、前のページでのａ１、ｂ１の入力値がデータＹから取り出されて表示が追加されるのに加えて、Ｗｅｂアプリケーション２４０４の埋め込み表示が追加される。【０１２３】
次いで、ブラウザ制御部１２０で自動実行定義Ｃ２が実行され、データＹのｂ１の入力値が取り出され、埋め込み表示されているＷｅｂアプリケーション２４０４のｂ１の入力欄に挿入し、submitボタンが押下される。【０１２４】
その結果、ページＣの関連情報の部分には、Ｗｅｂアプリケーション２４０４のページＧが埋め込まれることになる。【０１２５】
これにより、以前にやりとりされた要求や応答のメッセージの内容を参照し、その内容を追加表示したり、内容に応じてカスタマイズの動作を変更したりできる。【０１２６】
また、ページＥやページＧのように、何らかのＧＵＩ操作を行わないと表示できない情報を、他のアプリケーションと組み合わせて表示することが可能となる。【０１２７】
アプリケーションには変更を加えずにカスタマイズを実現することで、アプリケーション拡張システムを複数配置したり、又はユーザによって適用する拡張定義を変更するだけで、異なる要求を持つ利用者ごとにアプリケーションの振る舞いをカスタマイズして見せることが可能となる。【０１２８】
なお、上記各実施形態においては、ＨＴＴＰとＨＴＭＬとにより構成されるＷｅｂシステムを例としたが、メッセージの配送プロトコルはＨＴＴＰに限定されるものではなく、またメッセージの内容もＨＴＭＬに限定されるものではない。汎用的な端末上のブラウザが、通信を介してアプリケーションからＧＵＩの内容を記述したデータを取得して解釈、表示し、ユーザがブラウザに表示されたＧＵＩを操作する形式のシステムであれば本発明は適用可能である。
このように、本発明は様々な変形が可能である。【０１２９】
この出願は、２００８年６月３０日に出願された日本出願特願２００８−１７０２９７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１３０】
１、１０１    アプリケーション拡張システム
１１    インタフェース
１２    通信インタフェース
１３、１３２    処理決定定義
１４、１３４    自動実行定義
１５    制御部
２０    ブラウザ
３０    アプリケーション
１０２    通信中継装置
１０３    Ｗｅｂブラウザ
１０４    端末装置
１０５、１５０１、２４０２、２４０３、２４０４    Ｗｅｂアプリケーション
１１０    プロキシ部
１１１    通信処理部
１１２    メッセージ記憶部
１１３    情報抽出部
１１４    処理決定部
１１５、１３０１    変換実行部
１２０、１２０１    ブラウザ制御部
１３０    拡張定義管理部
１３１    情報抽出定義
１３３    変換定義
１４０    データ管理部
【図１】
2010001871.tif 000003
【図２】
2010001871.tif 000004
【図３】
2010001871.tif 000005
【図４】
2010001871.tif 000006
【図５】
2010001871.tif 000007
【図６】
2010001871.tif 000008
【図７】
2010001871.tif 000009
【図８】
2010001871.tif 000010
【図９】
2010001871.tif 000011
【図１０】
2010001871.tif 000012
【図１１】
2010001871.tif 000013
【図１２】
2010001871.tif 000014
【図１３】
2010001871.tif 000015
【図１４】
2010001871.tif 000016
【図１５】
2010001871.tif 000017
【図１６】
2010001871.tif 000018
【図１７】
2010001871.tif 000019
【図１８】
2010001871.tif 000020
【図１９】
2010001871.tif 000021
【図２０】
2010001871.tif 000022
【図２１】
2010001871.tif 000023
【図２２】
2010001871.tif 000024
【図２３】
2010001871.tif 000025
【図２４】
2010001871.tif 000026
【図２５】
2010001871.tif 000027
【図２６】
2010001871.tif 000028
【図２７】
2010001871.tif 000029
【図２８】
2010001871.tif 000030
【図２９】
2010001871.tif 000031
【図３０】
2010001871.tif 000032
【図３１】
2010001871.tif 000033
【図３２】
2010001871.tif 000034
【図３３】
2010001871.tif 000035
【図３４】
2010001871.tif 000036
【図３５】
2010001871.tif 000037
【国際調査報告】
2010001871.tif 000038
2010001871.tif 000039
2010001871.tif 000040