(57)【要約】【課題】Ｗｅｂアプリケーション間でのデータの受け渡しを容易にする。【解決手段】中継サーバは、各Ｗｅｂアプリケーションに第１および第２のスクリプトを注入する。第１のスクリプトは、第１のＷｅｂアプリケーションからのコピー操作のコピー元情報およびコピーデータを中継サーバに送信すると共に、第２のＷｅｂアプリケーションへのペースト操作のペースト先情報およびペーストデータを中継サーバに送信する。第２のスクリプトは、第１のＷｅｂアプリケーションの連携元識別情報および連携対象データを中継サーバに送信すると共に、中継サーバから受信する転送先情報に基づいて連携対象データを第２のＷｅｂアプリケーションに渡す。中継サーバは、連携元識別情報がコピー元情報に一致すると、連携対象データおよびコピー元情報に対応するペースト先情報である転送先情報をＷｅｂブラウザに送信する。【選択図】図４
2011022856.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂサーバから中継サーバを介してＷｅｂブラウザに提供される第１および第２のＷｅｂアプリケーションの連携方法であって、
前記中継サーバにおいて、各Ｗｅｂアプリケーションに第１および第２のスクリプトを注入することにより、前記第１および第２のスクリプトを前記Ｗｅｂブラウザに送信するステップと、
前記中継サーバにおいて、前記第１および第２のスクリプトからの要求に応じて、前記第１のＷｅｂアプリケーションから前記第２のＷｅｂアプリケーションへデータを受け渡すステップ、を有し、
前記第１のスクリプトは、前記第１のＷｅｂアプリケーションから共通メモリ領域へのコピー操作を検出したときに、コピー元を識別するコピー元情報およびコピーデータを前記中継サーバに送信すると共に、前記共通メモリ領域から前記第２のＷｅｂアプリケーションへのペースト操作を検出したときに、ペースト先を識別するペースト先情報およびペーストデータを前記中継サーバに送信する手順を記述し、
前記第２のスクリプトは、前記第１のＷｅｂアプリケーション内の連携元要素を識別する連携元識別情報およびその連携元要素に保持されている連携対象データを前記中継サーバに送信すると共に、前記中継サーバから送られてくる転送先情報に基づいて、前記中継サーバから送られてくる前記連携対象データを前記第２のＷｅｂアプリケーションに渡す手順を記述し、
前記中継サーバは、前記コピーデータおよびペーストデータが互いに一致したときに、前記コピー元情報および前記ペースト先情報を対応づけて保持し、
前記中継サーバは、前記連携元識別情報の少なくとも一部が前記コピー元情報に一致したときに、前記連携対象データを前記Ｗｅｂブラウザに送信すると共に、前記コピー元情報に対応づけて保持されている前記ペースト先情報を前記転送先情報として前記Ｗｅｂブラウザに送信する
ことを特徴とするＷｅｂアプリケーション連携方法。
【請求項２】
請求項１に記載のＷｅｂアプリケーション連携方法であって、
前記コピー元から前記ペースト先へデータを転送する連携動作を実行するか否かをユーザに問い合わせ、前記連携動作の実行が指示されたときに前記第２のスクリプトを呼び出す第３のスクリプトを、前記中継サーバにおいて、前記第１のＷｅｂアプリケーションに注入するステップをさらに有する
ことを特徴とするＷｅｂアプリケーション連携方法。
【請求項３】
請求項１に記載のＷｅｂアプリケーション連携方法であって、
前記連携元要素のデータが変化したときに前記第２のスクリプトを呼び出す第４のスクリプトを、前記中継サーバにおいて、前記第１のＷｅｂアプリケーションに注入するステップをさらに有する
ことを特徴とするＷｅｂアプリケーション連携方法。
【請求項４】
請求項１〜３のいずれか１つに記載のＷｅｂアプリケーション連携方法であって、
前記中継サーバは、最新のコピー元情報およびコピーデータを保持し、前記最新のコピーデータおよび前記ペーストデータが互いに一致したときに、前記最新のコピー元情報および前記ペースト先情報を対応づけて保持する
ことを特徴とするＷｅｂアプリケーション連携方法。
【請求項５】
ＷｅｂサーバからＷｅｂブラウザに提供される第１および第２のＷｅｂアプリケーションを連携させるＷｅｂアプリケーション連携装置であって、
各Ｗｅｂアプリケーションに第１および第２のスクリプトを注入することにより、前記第１および第２のスクリプトを前記Ｗｅｂブラウザに送信するスクリプト注入部と、
前記第１および第２のスクリプトからの要求に応じて、前記第１のＷｅｂアプリケーションから前記第２のＷｅｂアプリケーションへデータを中継する中継制御部、を有し、
前記第１のスクリプトは、前記第１のＷｅｂアプリケーションから共通メモリ領域へのコピー操作を検出したときに、コピー元を識別するコピー元情報およびコピーデータを前記Ｗｅｂアプリケーション連携装置に送信すると共に、前記共通メモリ領域から前記第２のＷｅｂアプリケーションへのペースト操作を検出したときに、ペースト先を識別するペースト先情報およびペーストデータを前記Ｗｅｂアプリケーション連携装置に送信する手順を記述し、
前記第２のスクリプトは、前記第１のＷｅｂアプリケーション内の連携元要素を識別する連携元識別情報およびその連携元要素に保持されている連携対象データを前記Ｗｅｂアプリケーション連携装置に送信すると共に、前記Ｗｅｂアプリケーション連携装置から送られてくる転送先情報に基づいて、前記Ｗｅｂアプリケーション連携装置から送られてくる前記連携対象データを前記第２のＷｅｂアプリケーションに渡す手順を記述し、
前記Ｗｅｂアプリケーション連携装置は、前記コピーデータおよびペーストデータが互いに一致したときに、前記コピー元情報および前記ペースト先情報を対応づけて保持する保持部をさらに備え、
前記中継制御部は、前記連携元識別情報の少なくとも一部が前記コピー元情報に一致したときに、前記連携対象データを前記Ｗｅｂブラウザに送信すると共に、前記保持部において前記コピー元情報に対応づけて保持されている前記ペースト先情報を前記転送先情報として前記Ｗｅｂブラウザに送信する
ことを特徴とするＷｅｂアプリケーション連携装置。
【請求項６】
Ｗｅｂサーバから中継サーバを介してＷｅｂブラウザに提供される第１および第２のＷｅｂアプリケーションを連携させるＷｅｂアプリケーション連携プログラムであって、
前記中継サーバに、
各Ｗｅｂアプリケーションに第１および第２のスクリプトを注入することにより、前記第１および第２のスクリプトを前記Ｗｅｂブラウザに送信するステップと、
前記第１および第２のスクリプトからの要求に応じて、前記第１のＷｅｂアプリケーションから前記第２のＷｅｂアプリケーションへデータを受け渡すステップ、を実行させ、
前記第１のスクリプトは、前記第１のＷｅｂアプリケーションから共通メモリ領域へのコピー操作を検出したときに、コピー元を識別するコピー元情報およびコピーデータを前記中継サーバに送信すると共に、前記共通メモリ領域から前記第２のＷｅｂアプリケーションへのペースト操作を検出したときに、ペースト先を識別するペースト先情報およびペーストデータを前記中継サーバに送信する手順を記述し、
前記第２のスクリプトは、前記第１のＷｅｂアプリケーション内の連携元要素を識別する連携元識別情報およびその連携元要素に保持されている連携対象データを前記中継サーバに送信すると共に、前記中継サーバから送られてくる転送先情報に基づいて、前記中継サーバから送られてくる前記連携対象データを前記第２のＷｅｂアプリケーションに渡す手順を記述し、
前記中継サーバに、さらに、
前記コピーデータおよびペーストデータが互いに一致したときに、前記コピー元情報および前記ペースト先情報を対応づけて保持するステップと、
前記連携元識別情報の少なくとも一部が前記コピー元情報に一致したときに、前記連携対象データを前記Ｗｅｂブラウザに送信すると共に、前記コピー元情報に対応づけて保持されている前記ペースト先情報を前記転送先情報として前記Ｗｅｂブラウザに送信するステップ、を実行させる
ことを特徴とするＷｅｂアプリケーション連携プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂブラウザ内で実行される複数のＷｅｂアプリケーションの連携方法に係わる。
【背景技術】
【０００２】
複数のＷｅｂアプリケーションを並べて利用するコンポジットアプリケーションと呼ばれる利用形態が普及してきている。コンポジットアプリケーションでは、複数のアプリケーションを並べるだけでなく、並べられたアプリケーション間でデータを受け渡すことにより、利便性が向上する。
【０００３】
コンポジットアプリケーションにおけるマッシュアップでは、アプリケーション間でデータを受け渡すことにより、それらのアプリケーションが連携できることが多い。ところが、従来の技術では、通常、連携させたいアプリケーションに対してデータ受渡しのための関数が予め作成されている必要があり、一般的なＷｅｂアプリケーションに手を加えずにそれらを連携させることはできなかった。
【０００４】
Ｗｅｂブラウザを利用してＷｅｂアプリケーション間でデータを受け渡す方法は、例えば、Ｗｅｂページ中のJavaScriptが、他のＷｅｂアプリケーション上で行われるコピー操作によるクリップボードの変化を監視することで実現することができる。しかし、多くのＷｅｂブラウザでは、セキュリティ上の理由により、スクリプトがクリップボードへアクセスすることが禁止または制限されている。したがって、多くのＷｅｂブラウザは、クリップボードの監視によりＷｅｂアプリケーション間でのデータ受渡しの自動化を図ることができない。
【０００５】
なお、関連する技術として、クリップボードのデータを管理し、ダウンロード側のコンピュータの要求に応じてそのデータを提供する方法が提案されている。（例えば、特許文献１および特許文献２）
また、他の関連する技術として、クリップボードを利用する電子文書の一部または全部のコピーを制御する方法が提案されている。この方法では、文書判別モジュールは、コピー元文書およびコピー先文書がそれぞれ重要文書であるか否かを判別する。コピー元文書が一般文書であれば、指定されたコピーデータは、ＯＳにより提供されるクリップボードに書き込まれる。コピー元文書が重要文書であれば、指定されたコピーデータは、クリップボード抑止モジュールにより重要文書クリップボードに書き込まれる。コピー先文書が一般文書であれば、クリップボードからコピーデータが読み出される。コピー先文書が重要文書であれば、クリップボード抑止モジュールにより重要文書クリップボードからコピーデータが読み出される。（例えば、特許文献３）
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−２８８１２４
【特許文献２】特開２００２−２８８１６２
【特許文献３】国際公開ＷＯ２００６／１０３７５２
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の課題は、Ｗｅｂアプリケーション間でのデータの受け渡しを容易にすることである。
【課題を解決するための手段】
【０００８】
本発明の１つの態様のＷｅｂアプリケーション連携方法は、Ｗｅｂサーバから中継サーバを介してＷｅｂブラウザに提供される第１および第２のＷｅｂアプリケーションを連携させる方法であって、前記中継サーバにおいて、各Ｗｅｂアプリケーションに第１および第２のスクリプトを注入することにより、前記第１および第２のスクリプトを前記Ｗｅｂブラウザに送信するステップと、前記中継サーバにおいて、前記第１および第２のスクリプトからの要求に応じて、前記第１のＷｅｂアプリケーションから前記第２のＷｅｂアプリケーションへデータを受け渡すステップ、を有する。
【０００９】
前記第１のスクリプトは、前記第１のＷｅｂアプリケーションから共通メモリ領域へのコピー操作を検出したときに、コピー元を識別するコピー元情報およびコピーデータを前記中継サーバに送信すると共に、前記共通メモリ領域から前記第２のＷｅｂアプリケーションへのペースト操作を検出したときに、ペースト先を識別するペースト先情報およびペーストデータを前記中継サーバに送信する手順を記述する。また、前記第２のスクリプトは、前記第１のＷｅｂアプリケーション内の連携元要素を識別する連携元識別情報およびその連携元要素に保持されている連携対象データを前記中継サーバに送信すると共に、前記中継サーバから送られてくる転送先情報に基づいて、前記中継サーバから送られてくる前記連携対象データを前記第２のＷｅｂアプリケーションに渡す手順を記述する。
【００１０】
さらに、前記中継サーバは、前記コピーデータおよびペーストデータが互いに一致したときに、前記コピー元情報および前記ペースト先情報を対応づけて保持する。また、前記中継サーバは、前記連携元識別情報の少なくとも一部が前記コピー元情報に一致したときに、前記連携対象データを前記Ｗｅｂブラウザに送信すると共に、前記コピー元情報に対応づけて保持されている前記ペースト先情報を前記転送先情報として前記Ｗｅｂブラウザに送信する。
【発明の効果】
【００１１】
本発明の１つの態様によれば、Ｗｅｂアプリケーション間でのデータの受け渡しを容易になる。
【図面の簡単な説明】
【００１２】
【図１】Ｗｅｂアプリケーション間でのデータの受け渡しの一例を示す図である。
【図２】連携検出の流れを示す図である。
【図３】連携実行の流れを示す図である。
【図４】中継サーバの構成を示す図である。
【図５】ＷｅｂアプリケーションのＨＴＭＬドキュメントの一例を示す図である。
【図６】コピーアンドペースト操作検出スクリプトのコピー検出部の実施例である。
【図７】コピー操作検出のシーケンス図である。
【図８】コピーアンドペースト操作検出スクリプトのペースト検出部の実施例である。
【図９】ペースト操作検出のシーケンス図である。
【図１０】ペースト操作検出の他のシーケンスを示す図である。
【図１１】連携管理画面の表示例である。
【図１２】連携実行ボタンの実施例である。
【図１３】テキスト送受信スクリプトによるデータ送受信のシーケンス図である。
【図１４】ブラウザにおけるキー入力判定を示すフローチャートである。
【図１５】中継サーバからの指示に対応するブラウザ動作を示すフローチャートである。
【図１６】ＵＲＩ／XPathの汎用化について説明する図である。
【図１７】テキスト監視スクリプトを利用する手順を示す図である。
【図１８】実施形態の中継サーバのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１３】
実施形態のＷｅｂアプリケーション連携方法では、第１のＷｅｂアプリケーションから第２のＷｅｂアプリケーションへデータが受け渡される。以下、図１を参照しながら、Ｗｅｂアプリケーション間でのデータの受け渡しの一例を示す。
【００１４】
図１に示す例では、Ｗｅｂブラウザ上に２つのＷｅｂアプリケーション（アドレス帳１およびメーラ４）が表示されている。Ｗｅｂアプリケーションは、特に限定されるものではないが、Ｗｅｂサーバ上で実行され、Ｗｅｂブラウザは、データ入力および処理結果の表示を行う。アドレス帳１は、名前入力ボックス２およびアドレス表示ボックス３を備えている。また、メーラ４は、アドレス表示ボックス５および文書入力ボックス６を備えている。アドレス帳１およびメーラ４の動作は、例えば、以下の通りである。
【００１５】
（１）ユーザは、図１（ａ）に示すように、名前入力ボックス２に「山田」を入力し、検索を実行する。アドレス要求は、Ｗｅｂサーバへ送信される。
（２）アドレス帳アプリケーションは、Ｗｅｂサーバ上で実行され、アドレス要求に対する検索結果としてメールアドレスを返送する。この実施例では、返送されるメールアドレスは「yamada@example.com」である。メールアドレスは、図１（ｂ）に示すように、アドレス帳１のアドレス表示ボックス３に表示される。
【００１６】
（３）ユーザは、図１（ｃ）に示すように、アドレス帳１により得られたメールアドレスを、メーラ４のアドレス入力ボックス５にコピーする。このとき、メールアドレスは、アドレス帳１からクリップボードへコピーされ、クリップボードからメーラ４へペーストされる。
【００１７】
（４）ユーザは、図１（ｄ）に示すように、文書入力ボックス６に文書を入力し、メールを送信する。このメールは、Ｗｅｂサーバ上で動作するメーラアプリケーションによって宛て先へ転送される。
【００１８】
（５）この後ユーザは、図１（ｅ）に示すように、「田中」へもメールを送るものとする。この場合、ユーザは、名前入力ボックス２に「田中」を入力して検索を実行する。この結果、対応するメールアドレス（tanaka@example.com）が得られ、アドレス表示ボックス３に表示される。このとき、実施形態のＷｅｂアプリケーション連携方法においては、図１（ｃ）に示すコピーアンドペースト操作を行うことなく、自動的あるいは半自動的に、アドレス帳１のアドレス表示ボックス３からメーラ４のアドレス表示ボックス５へメールアドレスが受け渡される。
【００１９】
なお、実施形態のＷｅｂアプリケーション連携方法は、上述のアドレス帳１とメーラ４との連携に限定されるものではなく、任意のＷｅｂアプリケーション間でデータを受け渡す手順に適用可能である。また、クリップボードを介して行われるコピーアンドペーストは、１つの実施例であり、実施形態のＷｅｂアプリケーションの連携方法は、第１および第２のＷｅｂアプリケーション間で共通メモリ領域を利用してデータを転送する手順に適用可能である。
【００２０】
次に、実施形態の連携方法の流れを簡単に説明する。実施形態の連携方法は、連携を検出する手順、および連携を実行する手順を含む。
図２は、実施形態の連携方法において連携を検出する手順の流れを示す図である。ここでは、Ｗｅｂサーバ（address.example.com）１１がアドレス帳アプリケーションを提供し、Ｗｅｂサーバ（mailer.example.com）１２がメーラアプリケーションを提供しているものとする。また、クライアント２０は、Ｗｅｂブラウザを備え、中継サーバ３０を介してアドレス帳アプリケーションおよびメーラアプリケーションを読み込むものとする。さらに、クライアント２０は、後述する連携管理画面２１を備える。以下、クライアント２０が、Ｗｅｂサーバ１１、１２に対してアドレス帳アプリケーションおよびメーラアプリケーションを要求した後の手順を説明する。
【００２１】
（１）中継サーバ３０は、Ｗｅｂサーバ１１、１２から、アドレス帳アプリケーションおよびメーラアプリケーションのＨＴＭＬおよびスクリプトを読み込み、中継のためのアドレス置換処理を行う。このとき、中継サーバ３０は、各Ｗｅｂアプリケーション（ここでは、アドレス帳アプリケーション、メーラアプリケーション）に、それぞれ、コピーアンドペースト操作検出スクリプト、連携ボタン表示スクリプト、テキスト送受信スクリプトを注入する。したがって、クライアント２０がＷｅｂアプリケーションを使用すると、そのＷｅｂアプリケーションに埋め込まれた上記３つのスクリプトが必要に応じて呼び出される。図１に示す例では、クライアント２０がアドレス帳１またはメーラ４を使用する際に、ユーザ操作または中継サーバ３０からの指示等に応じて、コピーアンドペースト操作検出スクリプト、連携ボタン表示スクリプト、テキスト送受信スクリプトが呼び出されて実行される。
【００２２】
（２）ユーザは、クライアント２０のブラウザ上に表示されたアドレス帳１を利用してアドレス検索を行う。この検索要求は、中継サーバ３０を経由してＷｅｂサーバ１１に転送される。そして、Ｗｅｂサーバ１１による検索結果は、中継サーバ３０を介してクライアント２０のアドレス帳１に返送される。
【００２３】
（３）ユーザがアドレス帳１においてメールアドレスのコピー操作を行うと、アドレス帳１に埋め込まれているコピーアンドペースト操作検出スクリプトが呼び出される。コピーアンドペースト操作検出スクリプトは、アドレス帳１においてコピー操作が行われたことを検出すると、そのコピー操作を中継サーバ３０に通知する。中継サーバ３０は、この通知に応じて、最終コピー操作記録部３１にコピー操作に係わる情報を記録する。このとき、アドレス帳１からコピーされたデータは、いったんクリップボードに保存される。なお、最終コピー操作記録部３１には、中継サーバ３０に最後に通知されたコピー操作（すなわち、最新のコピー操作）に係わる情報が記録される。
【００２４】
（４）ユーザがアドレス帳１から取り出したメールアドレスをメーラ４にペーストすると、メーラ４に埋め込まれているコピーアンドペースト操作検出スクリプトは、メーラ４に対してペースト操作が行われたことを検出し、そのペースト操作を中継サーバ３０に通知する。中継サーバ３０は、通知されたペースト操作が、最終コピー操作記録部３１に記録されているコピー操作に対応するか否かをチェックする。そして、このペースト操作が上記コピー操作に対応していたときは、中継サーバ３０は、一連のコピーアンドペースト操作に係わる１組のコピー操作情報およびペースト操作情報を履歴ＤＢ３２に記録する。なお、履歴ＤＢ３２に記録される１組のコピー操作情報およびペースト操作情報は、例えば、コピーアンドペースト操作のコピー元を識別するコピー元情報およびペースト先を識別するペースト先情報を含む。
【００２５】
（５）ユーザは、ブラウザ上でメール本文を作成し、そのメールの送信を要求する。この要求は、中継サーバ３０を介してＷｅｂサーバ１２に転送され、あて先へメールが送信される。
【００２６】
このように、実施形態の連携方法では、クライアント２０においてＷｅｂアプリケーション間でコピーアンドペースト操作が行われると、コピーアンドペースト操作検出スクリプトにより、その操作が中継サーバ３０に通知される。そして、通知されたコピーアンドペースト操作は、履歴ＤＢ３２に記録される。
【００２７】
図３は、実施形態の連携方法において連携を実行する手順の流れを示す図である。ここでは、図２に示す手順により、履歴ＤＢ３２にコピーアンドペースト操作が記録されているものとする。
【００２８】
（１）履歴ＤＢ３２に新たなコピーアンドペースト操作が記録されると、中継サーバ３０は、クライアント２０の連携管理画面２１を利用して、そのコピーアンドペースト操作に係わる連携処理を許可するか否かをユーザに問い合わせる。図１に示す例では、アドレス帳１からメーラ４へのコピーアンドペースト操作に係わる連携を許可するか否かの問合せが行われる。
【００２９】
（２）ユーザが連携を許可すると、中継サーバ３０の連携定義ＤＢ３３に、許可されたアドレス帳１からメーラ４へのコピーアンドペースト操作が登録される。
（３）中継サーバ３０は、連携実行ボタンを表示するための指示をクライアント２０に送信する。そうすると、クライアント２０において連携ボタン表示スクリプトが呼び出される。このとき、例えば、連携元のＷｅｂアプリケーション（ここでは、コピーアンドペースト操作のコピー元であるアドレス帳１）に埋め込まれている連携ボタン表示スクリプトが呼び出される。連携ボタン表示スクリプトは、中継サーバ３０から受信した指示に応じて、ユーザにより許可されたコピーアンドペースト操作を自動化（または、半自動化）するためのインタフェースを提供する。例えば、アドレス帳１のアドレス表示ボックス３の近くに連携実行ボタンが表示される。
【００３０】
（４）ユーザは、図１（ｅ）に示すように、アドレス帳１を利用して別の「名前」を入力して新たなアドレス検索を実行する。この検索要求に対して、Ｗｅｂサーバ１１は、対応するメールアドレスを返送する。この結果、アドレス帳１のアドレス表示ボックス３には、新たな「名前」に対応するメールアドレスが表示される。
【００３１】
（５）ユーザがアドレス帳１に表示されている連携実行ボタンを押下すると、そのアドレス帳１に埋め込まれているテキスト送受信スクリプトが呼び出される。テキスト送受信スクリプトは、連携元Ｗｅｂアプリケーション上の指定された領域に書き込まれているテキスト（連携対象データ）とコピー元を特定するための情報を中継サーバ３０へ送信する。図１（ｅ）に示す例では、アドレス帳１のアドレス表示ボックス３に表示されているメールアドレスが連携対象データとして中継サーバ３０へ送信される。
【００３２】
（６）中継サーバ３０は、連携定義ＤＢ３３を参照し、連携元Ｗｅｂアプリケーションから取得したテキストの転送先を決定する。例えば、上記（５）の連携元と、連携定義ＤＢ３３に登録されているコピーアンドペースト操作のコピー元とが一致した場合には、そのコピーアンドペースト操作のペースト先がテキストの転送先として指定される。ここでは、連携元およびコピー元がいずれもアドレス帳１のアドレス表示ボックス３であり、テキストの転送先としてメーラ４のアドレス表示ボックス５が指定される。
【００３３】
（７）中継サーバ３０は、上記（５）で連携元Ｗｅｂアプリケーションから取得したテキストとペースト先を特定するための情報をメーラ４に送信する。そうすると、メーラ４に埋め込まれているテキスト送受信スクリプトは、中継サーバ３０から受信したテキストをメーラ４のアドレス表示ボックス５に表示する。
【００３４】
このように、実施形態の連携方法では、クライアント２０においてＷｅｂアプリケーション間での連携実行が要求されると、テキスト送受信スクリプトによりＷｅｂアプリケーション間で受け渡すべきデータが中継サーバ３０に送信される。そうすると、中継サーバ３０は、連携定義ＤＢ３３を参照し、連携先のＷｅｂアプリケーションに対してそのデータを転送する。すなわち、ユーザは、コピーアンドペースト操作を行うことなく、単に連携実行ボタンを押下するだけで、Ｗｅｂアプリケーション間のデータの受け渡しが中継サーバ３０を介して実現される。
【００３５】
図４は、中継サーバ３０の構成を示す図である。中継サーバ３０は、クライアントとＷｅｂサーバ１１、１２との間を中継する。クライアントは、例えば図２および図３に示すクライアント２０（window/(i)frame）に相当し、Ｗｅｂブラウザを備える。Ｗｅｂサーバ１１、１２が提供するアプリケーションは、例えば、図２および図３に示すアドレス帳アプリケーションおよびメーラアプリケーションである。この場合、Ｗｅｂブラウザには、アドレス帳１およびメーラ４が表示される。
【００３６】
中継サーバ３０は、プロキシ部４１、コピーアンドペースト履歴収集部４４、連携管理部４５、連携ボタン表示指示部４６、コピーアンドペースト実行指示部４７、リクエスト振り分け部４８、最終コピー操作記録部３１、履歴ＤＢ３２、連携定義ＤＢ３３を備えている。なお、図４では、実施形態の連携方法に直接的に係わりのない要素は、省略されている。
【００３７】
プロキシ部４１は、ＵＲＩ置換部４２およびスクリプト注入部４３を備える。ＵＲＩ置換部４２は、Ｗｅｂサーバ１１、１２とクライアントとの間でＵＲＩを置換する。スクリプト部４３は、上述したように、Ｗｅｂサーバ１１、１２からクライアントへＷｅｂアプリケーションが提供される際に、予め用意してあるスクリプトを各Ｗｅｂアプリケーションに注入する。各Ｗｅｂアプリケーションには、上述したように、コピーアンドペースト操作検出スクリプト、連携ボタン表示スクリプト、およびテキスト送受信スクリプトが注入される。したがって、クライアントが受け取る各Ｗｅｂアプリケーションには、それぞれ上記３つのスクリプトが埋め込まれている。
【００３８】
図５は、ＷｅｂアプリケーションのＨＴＭＬドキュメントの一例を示す図である。スクリプト注入部４３は、ＷｅｂアプリケーションのＨＴＭＬドキュメントをクライアントに提供する際に、例えば、body部の末尾に上記３つのスクリプトを注入する。ただし、スクリプトを注入する位置は、body部の末尾に限定されるものではなく、例えば、body部の先頭にスクリプトが注入されてもよい。
【００３９】
コピーアンドペースト履歴収集部４４は、コピー元のコピーアンドペースト操作検出スクリプトからコピー操作情報（コピー元を識別する情報およびコピーデータ）を受信すると、それを最終コピー操作記録部３１に記録する。また、コピーアンドペースト履歴収集部４４は、ペースト先のコピーアンドペースト操作検出スクリプトからペースト操作情報（ペースト先を識別する情報およびペーストデータ）を受信すると、コピー操作情報と対応づけて履歴ＤＢ３２に記録する。
【００４０】
連携管理部４５は、Ｗｅｂブラウザの連携管理画面２１を利用して、履歴ＤＢ３２に記録されているＷｅｂアプリケーション間の連携動作（コピーアンドペースト処理）を許可するか否かをユーザに問い合わせる。そして、連携管理部４５は、許可された連携動作を連携定義ＤＢ３３に記録する。
【００４１】
連携ボタン表示指示部４６は、連携定義３３に新たな連携動作が記録されると、連携実行ボタンを表示するための指示を、連携元の連携ボタン表示スクリプトへ送信する。これにより、連携ボタン表示スクリプトは、連携実行ボタンを表示する。
【００４２】
コピーアンドペースト実行指示部４７は、連携元のテキスト送受信スクリプトからコピー操作情報（コピー元を識別する情報およびコピーデータ）を受信すると、連携定義ＤＢ３３を参照して連携先を決定する。そして、コピーアンドペースト実行指示部４７は、受信したデータを決定した連携先のテキスト送受信スクリプトへ送信する。これにより、連携元から中継サーバ３０を介して連携先へデータが受け渡される。
【００４３】
リクエスト振り分け部４８は、クライアントから受信するリクエストを対応するあて先に振り分ける。例えば、Ｗｅｂサーバへのアクセスは、プロキシ部４１へ転送される。また、コピーアンドペースト操作検出スクリプトからのリクエストは、コピーアンドペースト履歴収集部４４へ転送される。
【００４４】
最終コピー操作記録部３１は、最後に通知されたコピー操作情報を記録する。具体的には、最終コピー操作記録部３１には、例えば、最後に行われたコピー操作に係わるユーザＩＤ、そのコピー操作が実行された日時、コピー元ＵＲＩ、コピー元XPath、コピーデータが記録される。過去のコピー操作情報は、廃棄されてもよいし、他の記憶領域に保存されてもよい。履歴ＤＢ３２は、コピー操作情報およびペースト操作情報を互いに対応づけて記録する。具体的には、履歴ＤＢ３２には、例えば、ユーザＩＤ、コピーアンドペースト操作が実行された日時、コピー元ＵＲＩ、コピー元XPath、ペースト先ＵＲＩ、ペースト先XPathが記録される。連携定義ＤＢ３３は、ユーザにより許可された連携動作を記録する。具体的には、連携定義ＤＢ３３には、例えば、ユーザＩＤ、コピーアンドペースト操作が実行された日時、コピー元ＵＲＩ、コピー元XPath、ペースト先ＵＲＩ、ペースト先XPathが記録される。
【００４５】
なお、中継サーバ３０は、Ｗｅｂアプリケーション連携装置として動作することができる。また、履歴ＤＢ３２および／または連携定義ＤＢ３３は、コピー元情報およびペースト先情報を対応づけて保持する保持部として機能することができる。さらに、コピーアンドペースト履歴収集部４４および／または連携ボタン表示指示部４６および／またはコピーアンドペースト実行指示部４７は、第１のＷｅｂアプリケーションから第２のＷｅｂアプリケーションへデータを中継する中継制御部として動作することができる。
【００４６】
以下、実施形態の連携方法を詳しく説明する。
＜コピー操作の検出＞
コピーアンドペースト操作検出スクリプトは、ユーザのキー入力を監視する。この実施例では、コピーアンドペースト操作検出スクリプトは、「Ctrl+C」の入力を検知することにより、コピー操作が行われたことを検出する。この方法によれば、Ｗｅｂブラウザ上でスクリプトがクリップボードへアクセスすることが禁止されている場合であっても、コピー操作を検出することができる。なお、「Ctrl+C」は、指定されたデータをコピーする命令に相当する。なお、この実施例では、「Ctrl+C」の入力をモニタすることによりコピー操作が検出されるが、他の方法でコピー操作が検出されてもよい。
【００４７】
図６は、コピーアンドペースト操作検出スクリプトのコピー検出部の実施例である。このコピー部は、ユーザにより「Ctrl+C」が入力されたことにより実行される。即ち、ユーザにより何らかのキーが入力されると、copyPasteMashup_onKeyDown関数が呼び出される。この関数は、入力キーが「Ctrl+C」であるか否かをチェックする。そして、入力キーが「Ctrl+C」であれば、記述１０１、１０２が実行される。記述１０１は、コピー操作において選択された範囲のテキストを取得する。また、記述１０２は、コピー操作において選択された範囲のXPathを取得する。記述１０３は、実施形態の連携方法のために予め中継サーバ３０において予約されているパス/CopyPasteMashup/Copyを指定する。記述１０４は、記述１０３で指定されたパスに対してＵＲＩ、XPath、テキストを送信する。
【００４８】
図７は、コピーアンドペースト操作検出スクリプトによるコピー操作検出のシーケンス図である。ここでは、ユーザにより「Ctrl+C」が入力されたものとする。そして、この入力により、copyPasteMashup_onKeyDown関数が呼び出される。
【００４９】
コピーアンドペースト操作検出スクリプトは、入力キーが「Ctrl+C」であるか否かをチェックする。続いて、このスクリプトは、ユーザにより指定されているコピー対象範囲内のテキストを取得する。図１に示す例では、アドレス帳１のアドレス表示ボックス３に表示されているメールアドレスが取得される。さらに、このスクリプトは、ユーザにより指定されているコピー対象範囲のXPathを取得する。図１に示す例では、アドレス帳１のアドレス表示ボックス３を指示するXPathが取得される。
【００５０】
この後、コピーアンドペースト操作検出スクリプトは、コピーイベント（取得したテキスト、コピー元のＷｅｂアプリケーションのＵＲＩ、取得したXPath）を、集計サーバ３０のコピーアンドペースト履歴収集部４４へ送信する。そうすると、コピーアンドペースト履歴収集部４４は、受信情報を最終コピー操作記録部３１に記録する。また、ブラウザ側では、copyPasteMashup_onKeyDown関数の呼び出しが終了した後に、コピー処理が実行され、ユーザにより指定された範囲内のデータがクリップボードに格納される。
【００５１】
＜ペースト操作の検出＞
コピーアンドペースト操作検出スクリプトは、この実施例では、「Ctrl+V」の入力を検知することにより、ペースト操作が行われたことを検出する。この方法によれば、Ｗｅｂブラウザ上でスクリプトがクリップボードへアクセスすることが禁止されている場合であっても、ペースト操作を検出することができる。なお、「Ctrl+V」は、クリップボードに格納されているデータを指定された領域にペーストする命令に相当する。なお、この実施例では、「Ctrl+V」の入力をモニタすることによりペースト操作が検出されるが、他の方法でペースト操作が検出されてもよい。
【００５２】
図８は、コピーアンドペースト操作検出スクリプトのペースト検出部の実施例である。このペースト部は、ユーザにより「Ctrl+V」が入力されたことにより実行される。すなわち、ユーザにより何らかのキーが押下された後にその「Ctrl+V」キーが開放されると、copyPasteMashup_onKeyUp関数が呼び出される。この関数は、開放されたキーが「Ctrl+V」であるか否かをチェックする。そして、開放されたキーが「Ctrl+V」であれば、記述１１１〜１１３が実行される。記述１１１は、ペースト操作においてフォーカスされている要素を取得する。記述１１２は、フォーカスされている入力要素のテキストを取得する。記述１１３は、フォーカスされている要素のXPathを取得する。さらに、記述１１４は、実施形態の連携方法のために予め中継サーバ３０において予約されているパス/CopyPasteMashup/Pasteを指定する。記述１１５は、記述１１４で指定されたパスに対してＵＲＩ、XPath、テキストを送信する。
【００５３】
図９は、コピーアンドペースト操作検出スクリプトによるペースト操作検出のシーケンス図である。ここでは、ユーザにより「Ctrl+V」キーが押下された後に開放されたものとする。このキー操作における押下により、ブラウザ上でペースト処理が実行される。すなわち、クリップボードから、ユーザにより指定されている要素（フォーカスされている要素）にデータがペーストされる。また、このキー操作における解放により、copyPasteMashup_onKeyUp関数が呼び出される。
【００５４】
コピーアンドペースト操作検出スクリプトは、開放されたキーが「Ctrl+V」であるか否かをチェックする。続いて、このスクリプトは、フォーカスされている要素のテキストがクリップボードに格納されていたテキストであると推定し、そのフォーカスされている要素のテキストを取得する。図１（ｃ）に示す例では、メーラ４のアドレス表示ボックス５からメールアドレスが取得される。さらに、このスクリプトは、フォーカスされている要素のXPathを取得する。図１（ｃ）に示す例では、メーラ４のアドレス表示ボックス５を指示するXPathが取得される。
【００５５】
この後、コピーアンドペースト操作検出スクリプトは、ペーストイベント（取得したテキスト、ペースト先のＷｅｂアプリケーションのＵＲＩ、取得したXPath）を、中継サーバ３０のコピーアンドペースト履歴収集部４４へ送信する。そうすると、コピーアンドペースト履歴収集部４４は、新たに受信したペーストイベントが、最終コピー操作記録部３１に記録されている最新のコピー操作に対応するペースト操作であるかをチェックする。そして、これらのコピー操作およびペースト操作が互いに対応する場合は、一連のコピーアンドペースト操作に属するコピー操作およびペースト操作として履歴ＤＢ３２に記録される。
【００５６】
図１０は、ペースト操作検出の他のシーケンスを示す図である。このシーケンスでは、ペースト処理が実行される前（すなわち、「Ctrl+V」キーが押下された後であって、その「Ctrl+V」キーが開放される前）に、テキストボックスのキャレット位置および選択範囲の位置が記憶される。そして、ペースト処理の実行後に、先に記憶されている位置からテキストが取得される。このシーケンスによれば、ペーストテキストを精度よく推定することができる。
【００５７】
＜１組のコピー操作およびペースト操作の検出＞
上述したように、コピーアンドペースト操作検出スクリプトは、コピー操作を検出すると、コピー元のＷｅｂアプリケーションのＵＲＩ、コピー元XPath、コピーテキストを中継サーバ３０へ送信する。そして、中継サーバ３０のコピーアンドペースト履歴収集部４４は、ユーザＩＤと共に、これらのコピー元ＵＲＩ、コピー元XPath、コピーテコピキストを最終コピー操作記録部３１に記録する。ここで、最終コピー操作記録部３１には、最新のコピー操作情報が記録される。
【００５８】
また、コピーアンドペースト操作検出スクリプトは、ペースト操作を検出すると、ペースト先のＷｅｂアプリケーションのＵＲＩ、ペースト先XPath、ペーストテキストを中継サーバ３０へ送信する。そうすると、コピーアンドペースト履歴収集部４４は、最終コピー操作記録部３１に記録されている最新のコピー操作のコピーテキストと、新たに受信したペーストテキストとを比較する。そして、これらのコピーテキストとペーストテキストが互いに一致していれば、一連のコピーアンドペースト操作に属するコピー操作およびペースト操作が検出されたと判断する。この場合、履歴ＤＢ３２に、ユーザＩＤ、コピー元ＵＲＩ、コピー元XPath、ペースト先ＵＲＩ、ペースト先XPathが記録される。
【００５９】
なお、監視対象のコピーアンドペースト操作以外のアプリケーション（例えば、中継サーバ３０を経由しないＷｅｂアプリケーションまたはデスクトップのアプリケーションなど）においてコピー操作が行われた場合には、クリップボードに格納されているデータが変更される。この場合、コピーアンドペースト操作検出スクリプトにより検出されるペーストテキストは、最終コピー操作記録部３１に記録されているコピーテキストとは異なっている。したがって、コピーアンドペースト履歴収集部４４は、コピーテキストとペーストテキストとを比較することにより、同じコピーアンドペースト操作に属さないコピー操作とペースト操作とを連携させてしまうことを回避している。
【００６０】
＜連携の管理＞
中継サーバ３０の連携管理部４５は、コピーアンドペースト履歴収集部４４により検出された１組のコピー操作およびペースト操作を、Ｗｅｂブラウザのユーザに提示する。この場合、連携管理部４５は、例えば図１１（ａ）に示すコピーアンドペースト履歴をブラウザへ送信する。ここで、コピーアンドペースト履歴は、ユーザＩＤを利用して履歴ＤＢ３２から抽出される。そして、ブラウザは、中継サーバ３０から受信したコピーアンドペースト履歴を連携管理画面２１に表示する。コピーアンドペースト履歴は、コピーアンドペースト操作が行われた日時、コピー元ＵＲＩ、コピー元XPath、ペースト先ＵＲＩ、ペースト先XPathを含む。さらに、連携管理画面２１には、コピーアンドペースト操作を自動化するか否かをユーザに問い合わせるために「アクション（連携許可／履歴から削除）」が表示される。
【００６１】
ユーザは、提示されたコピーアンドペーストを自動化する場合には、「連携許可」を選択する。連携管理部４５は、「連携許可」が選択されたことを検出すると、選択されたコピーアンドペースト操作を連携定義ＤＢ３３に追加する。一方、連携管理部４５は、「履歴から削除」が選択されたことを検出すると、選択されたコピーアンドペースト操作を履歴ＤＢ３２から削除する。
【００６２】
なお、連携管理画面２１には、ユーザからの指示等に応じて、図１１（ｂ）に示すように、連携が有効化されているコピーアンドペースト操作の一覧が表示される。そして、ユーザは、表示された連携を解除したい場合には、「連携定義から削除」を指定する。そうすると、連携管理部４５は、指定されたコピーアンドペースト操作を連携定義ＤＢ３３から削除する。
【００６３】
＜連携ボタン表示スクリプト＞
連携定義ＤＢ３３に新たなコピーアンドペースト操作が記録されると、中継サーバ３０の連携ボタン表示指示部４６は、連携実行ボタンの表示指示をクライアントにプッシュする。プッシュ方式は、特に限定されるものではないが、例えば、Cometである。この表示指示は、例えば、連携元ＵＲＩおよび連携元XPathを含むようにしてもよい。
【００６４】
上記表示指示を受信すると、連携ボタン表示スクリプトは、連携定義に記録されているコピー元ＵＲＩ／コピー元XPathが指し示す要素の近くに連携実行ボタンを表示する。例えば、図１に示す例では、コピー元ＵＲＩはアドレス帳１であり、コピー元XPathはアドレス表示ボックス３である。この場合、連携ボタン表示スクリプトは、図１２に示すように、アドレス帳１のアドレス表示ボックス３の隣に連携実行ボタン７を表示する。連携実行ボタン７は、対応する要素のXPathを保持している。
【００６５】
なお、連携定義ＤＢ３３からコピーアンドペースト操作が削除されたときは、対応する連携実行ボタン７も削除される。この削除処理も、連携ボタン表示スクリプトにより実行される。
【００６６】
＜テキスト送受信スクリプト＞
図１３は、テキスト送受信スクリプトによるデータ送受信のシーケンス図である。ここでは、Ｗｅｂアプリケーション間でのコピーアンドペースト操作がユーザにより許可されており、コピー元Ｗｅｂアプリケーションに連携実行ボタン７が表示されているものとする。また、図１３では、ブラウザ１に連携元Ｗｅｂアプリケーションが表示され、ブラウザ２に連携先Ｗｅｂアプリケーションが表示されている。
【００６７】
連携元Ｗｅｂアプリケーションにおいて連携実行ボタンが押下されると、テキスト送受信スクリプトが呼び出される。テキスト送受信スクリプトは、連携実行ボタンが保持しているコピー元XPathが指示する要素のテキストを取得する。そしてテキスト送受信スクリプトは、XMLHttpRequestで、中継サーバ３０上に予め予約されているパス（例えば、/CopyPasteMashup/Send）へ連携元情報（連携元ＵＲＩ、連携元XPath、取得したテキスト）を送信する。例えば、図１（ｅ）に示す例では、アドレス帳１のＵＲＩ、アドレス表示ボックス３のXPath、アドレス表示ボックス３に表示されているメールアドレスが中継サーバ３０へ送信される。
【００６８】
中継サーバ３０において、コピーアンドペースト実行指示部４７は、受信した連携元ＵＲＩ、連携元XPathに対応する送信先をサーチするために、連携定義ＤＢ３３を参照する。このとき、連携定義ＤＢ３３において、連携元ＵＲＩ／XPathに一致するコピー元ＵＲＩ／XPathがサーチされる。そして、ヒットしたコピー元ＵＲＩ／XPathに対応するペースト先ＵＲＩ／XPathが抽出される。例えば、連携定義ＤＢ３３に図１１（ｂ）に示す連携定義情報が記録されているものとする。そして、テキスト送受信スクリプトから「連携元ＵＲＩ：http://a.test/index.html」「連携元XPath：//div[@id=‘mail’]」を受信したときは、送信先として、「ペースト先ＵＲＩ：http://b.test/1.html」「ペースト先XPath：//input[@id=‘to’]」が抽出される。
【００６９】
コピーアンドペースト実行指示部４７は、ペースト先ＵＲＩ、ペースト先XPath、連携元から受信したテキスト、を連携先のブラウザ２に送信する。そうすると、ブラウザ２は、受信したペースト先ＵＲＩ／XPathに従って、受信したテキストを設定する。これにより、連携元Ｗｅｂアプリケーションにおいて連携実行ボタンにより指示されたテキストは、中継サーバ３０により中継され、連携先Ｗｅｂアプリケーションの連携先XPathが指示する要素にペーストされる。図１（ｅ）に示す例では、アドレス帳１のアドレス表示ボックス３に表示されているメールアドレスが、中継サーバ３０を介して、メーラ４のアドレス表示ボックス５に転送されることになる。
【００７０】
なお、ペースト先ＵＲＩ、ペースト先XPath、テキストは、中継サーバ３０からクライアントにプッシュされる。プッシュ方式は、特に限定されるものではないが、例えば、Cometである。
【００７１】
このように、実施形態の連携方法によれば、一般的なコピーアンドペースト操作よりも簡単な操作で、Ｗｅｂアプリケーション間のデータ転送が実現される。ここで、このデータ転送を実現するためのスクリプトは、クリップボードにアクセスすることはない。すなわち、クリップボードへのアクセスが禁止または制限されているシステムであっても、実施形態の連携方法は実現可能である。したがって、実施形態の連携方法によれば、セキュリティを確保しながら、ユーザの操作性を向上させることができる。
【００７２】
＜フローチャート＞
図１４は、ブラウザにおけるキー入力判定を示すフローチャートである。なお、このブラウザには、中継サーバ３０により注入されたコピーアンドペースト操作検出スクリプトが設定されている。
【００７３】
ブラウザは、常時、ユーザによるキー入力をモニタしている、そして、「Ctrl+C」が入力されると、ステップＳ１において、コピー元のＷｅｂアプリケーションにおいてコピーアンドペースト操作検出スクリプトが呼び出される。コピーアンドペースト操作検出スクリプトは、図６〜図７を参照しながら説明したように、コピー元ＵＲＩ、コピー元XPath、コピーテキストを中継サーバ３０へ送信する。ステップS２では、コピー処理が実行される。なお、コピー処理は、ブラウザにより実行される。
【００７４】
「Ctrl+V」が入力されると、ステップＳ３において、ペースト処理が実行される。ペースト処理は、ブラウザにより実行される。続いて、ステップS４において、ペースト先のＷｅｂアプリケーションにおいてコピーアンドペースト操作検出スクリプトが呼び出される。コピーアンドペースト操作検出スクリプトは、図８〜図１０を参照しながら説明したように、ペースト先ＵＲＩ、ペースト先XPath、ペーストテキストを中継サーバ３０へ送信する。なお、他のキーが入力された場合は、ブラウザは、ステップS５において、そのキーに対応する処理を実行する。
【００７５】
図１５は、中継サーバ３０からの指示に対応するブラウザ動作を示すフローチャートである。中継サーバ３０は、例えばComet等のプッシュ通信により、ブラウザに指示を送信する。
【００７６】
ステップＳ１１では、中継サーバ３０から受信した指示の内容を判定する。連携ボタン表示指示部４６から連携実行ボタンの表示指示を受信した場合は、ステップＳ１２において、連携元Ｗｅｂアプリケーションの連携ボタン表示スクリプトが呼び出される。連携ボタン表示スクリプトは、表示指示に含まれている連携元ＵＲＩ／XPathに基づいて、連携元を表す要素を特定する。ステップＳ１３では、連携ボタン表示スクリプトは、特定した要素の近くに連携実行ボタン７を表示する。
【００７７】
一方、コピーアンドペースト実行指示部４７から連携実行指示を受信した場合は、ステップＳ１４において、連携先Ｗｅｂアプリケーションのテキスト送受信スクリプトが呼び出される。テキスト送受信スクリプトは、連携実行指示に含まれている連携先ＵＲＩ／XPathに基づいて、連携先を表す要素を特定する。ステップＳ１５では、テキスト送受信スクリプトは、連携実行指示と共に受信したテキストを、特定した要素に設定する。
【００７８】
＜バリエーション１＞
中継サーバ３０は、コピーアンドペースト操作のＵＲＩおよびXPathを汎用化するようにしてもよい。すなわち、中継サーバ３０は、連携定義ＤＢ３３に互いに類似する複数のコピー元ＵＲＩ／XPathが登録されている場合には、それらを汎用化してもよい。例えば、図１６（ａ）に示すように、連携定義ＤＢ３３に下記の２つのコピーアンドペースト操作が登録されているものとする。ここでは、送信元XPathのみを示す。
Ａ：//tbody[@id='t']/tr[1]/td[2]
Ｂ：//tbody[@id='t']/tr[2]/td[2]
これら２つのXPathは、「tr[1]」および「tr[2]」が互いに異なっているが、他の文字列は互いに同じである。すなわち、これら２つのXPathは互いに類似している。この場合、中継サーバ３０は、下記の汎用化コピー元XPathを生成し、ユーザに提示する。
汎用：//tbody[@id='t']/tr/td[2]
ユーザが汎用化コピー元XPathを含むコピーアンドペースト操作についての連携を許可した場合、中継サーバ３０は、その汎用化コピー元XPathを含むコピーアンドペースト操作が連携定義ＤＢ３３に登録される。また、Ｗｅｂブラウザ側では、図１６（ｂ）に示すように、汎用化コピー元XPathを含む１または複数の要素に対して連携実行ボタンが表示される。この場合、少なくとも、図１６（ａ）に示す要素Ａ、Ｂに対して連携実行ボタンが表示される。さらに図１６（ｂ）に示す例では、要素Ｃに対しても連携実行ボタンが表示されている。要素ＣのXPathは、例えば//tbody[@id='t']/tr[3]/td[2]である。なお、図１６に示す実施例は、XPathが汎用化されているが、ＵＲＩが汎用化されてもよい。
【００７９】
この連携方法によれば、将来行われる可能性のあるコピーアンドペースト操作が類推され、予め登録される。すなわち、類似のＷｅｂアプリケーション間でコピーアンドペースト操作が行われていた場合には、過去に行われていないコピーアンドペースト操作であっても登録され得る。したがって、ユーザの利便性がさらに向上する。
【００８０】
＜バリエーション２＞
上述の実施例では、中継サーバ３０は、Ｗｅｂアプリケーションに３つのスクリプトを注入しているが、さらにテキスト監視スクリプトを注入するようにしてもよい。テキスト監視スクリプトは、ユーザにより連携が許可されているコピーアンドペースト操作のコピー元XPathが指示する要素を監視する。例えば、図１７に示す実施例では、アドレス帳１のアドレス表示ボックス３が監視される。以下、テキスト監視スクリプトにより監視される要素がアドレス帳１のアドレス表示ボックス３であるものとする。
【００８１】
テキスト監視スクリプトは、アドレス表示ボックス３に表示されているテキストを定期的に取得し、一次記憶領域に記憶する。そして、新たに取得したテキストが一次記憶領域に記憶されているテキストを異なっていた場合に、テキスト監視スクリプトは、アドレス表示ボックス３が更新されたと判定する。すなわち、アドレス帳１を利用して新たなアドレス検索が実行されたと判定される。そうすると、テキスト監視スクリプトは、テキスト送受信スクリプトを呼び出す。以降の処理は、テキスト送受信スクリプトにより実行される。なお、テキスト送受信スクリプトの処理は、上述した通りである。
【００８２】
図１７に示す実施例は、図１（ａ）〜図１（ｄ）に示す手順で「山田」のメールアドレスが検索され、「山田」宛てにメールが送信された後に、新たに「田中」のメールアドレスが検索される場合を示している。この場合、一次記憶領域には、「山田」のメールアドレスyamada@example.comが記憶されている。そして、「田中」のメールアドレスが検索されると、アドレス表示ボックス３にはメールアドレスtanaka@example.comが設定される。したがって、テキスト監視スクリプトは、アドレス表示ボックス３のテキストが変更されたことを認識し、テキスト送受信スクリプトを呼び出す。そして、テキスト送受信スクリプトは、アドレス表示ボックス３に表示されているメールアドレス（および、コピー元ＵＲＩ、コピー元XPath）を中継サーバ３０へ送信する。以降、上述した手順が実行され、メーラ４にメールアドレスtanaka@example.comが設定される。
【００８３】
この連携方法によれば、ユーザは、アドレス帳１を利用してメールアドレスを検索するだけで、その検索結果がメーラ４に設定される。すなわち、Ｗｅｂアプリケーション間でのデータバインディングと同等の処理が自動的に実現される。したがって、ユーザの利便性がさらに向上する。
【００８４】
＜中継サーバ３０のハードウェア構成＞
図１８は、実施形態の中継サーバ３０のハードウェア構成を示す図である。図１８において、ＣＰＵ１０１は、メモリ１０３を利用してＷｅｂアプリケーション連携プログラムを実行することにより中継サーバに各処理手順を実行させる。記憶装置１０２は、例えばハードディスクであり、Ｗｅｂアプリケーション連携プログラムを格納する。なお、記憶装置１０２は、外部記録装置であってもよい。メモリ１０３は、例えば半導体メモリであり、ＲＡＭ領域およびＲＯＭ領域を含んで構成される。
【００８５】
読み取り装置１０４は、ＣＰＵ１０１の指示に従って可搬型記録媒体１０５にアクセスする。可搬性記録媒体１０５は、例えば、半導体デバイス（ＰＣカード等）、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体を含むものとする。通信インタフェース１０６は、ＣＰＵ１０１の指示に従って、ネットワークを介してデータを送受信する。入出力装置１０７は、例えば、ユーザからの指示を受け付けるデバイス等に相当する。
【００８６】
実施形態に係わるＷｅｂアプリケーション連携プログラムは、例えば、下記の形態で提供される。
（１）記憶装置１０２に予めインストールされている。
（２）可搬型記録媒体１０５により提供される。
（３）プログラムサーバ１１０からダウンロードする。
【００８７】
そして、上記構成のコンピュータでＷｅｂアプリケーション連携プログラムを実行することにより、実施形態に係わる中継サーバが実現される。
【符号の説明】
【００８８】
１  アドレス帳
３  アドレス表示ボックス
４  メーラ
５  アドレス表示ボックス
１１、１２  Ｗｅｂサーバ
２０  クライアント
２１  連携管理画面
３０  中継サーバ
３１  最終コピー操作記録部
３２  履歴ＤＢ
３３  連携定義ＤＢ
４１  プロキシ部
４２  ＵＲＩ置換部
４３  スクリプト注入部
４４  コピーアンドペースト履歴収集部
４５  連携管理部
４６  連携ボタン表示指示部
４７  コピーアンドペースト実行指示部
４８  リクエスト振り分け部
【図１】
2011022856.tif 000003
【図２】
2011022856.tif 000004
【図３】
2011022856.tif 000005
【図４】
2011022856.tif 000006
【図５】
2011022856.tif 000007
【図６】
2011022856.tif 000008
【図７】
2011022856.tif 000009
【図８】
2011022856.tif 000010
【図９】
2011022856.tif 000011
【図１０】
2011022856.tif 000012
【図１１】
2011022856.tif 000013
【図１２】
2011022856.tif 000014
【図１３】
2011022856.tif 000015
【図１４】
2011022856.tif 000016
【図１５】
2011022856.tif 000017
【図１６】
2011022856.tif 000018
【図１７】
2011022856.tif 000019
【図１８】
2011022856.tif 000020