(57)【要約】【課題】複数のＷｅｂアプリを１つのＷｅｂアプリに融合する際、見映えの良いＷｅｂアプリを融合できるＷｅｂアプリケーション融合装置及びＷｅｂアプリケーション融合プログラムを提供することを目的とする。【解決手段】Ｗｅｂアプリケーション融合装置１０であって、融合対象である複数のＷｅｂアプリを受信したとき、Ｗｅｂアプリ画面上でアクセスされた表示要素をＷｅｂアプリケーション融合装置１０に通知するように、ソースコードを書き換えてクライアントに送信し、クライアントからのアクセスされた表示要素の通知に基づき、情報テーブルにアクセスされた表示要素を示す情報を記録し、情報テーブルを参照して、Ｗｅｂアプリ上でアクセスされなかった表示要素を判断し、アクセスされなかった表示要素を表示しないように書き換えた各ソースコードを結合してクライアントに送信することにより上記課題を解決する。【選択図】  図４
2010282409.tif 000002
【特許請求の範囲】
【請求項１】
外部サーバよりそれぞれ取得されるソースコードに基づいて、クライアントのブラウザで実行される複数のＷｅｂアプリケーションを、１つのＷｅｂアプリケーションに融合するＷｅｂアプリケーション融合装置であって、
融合対象である前記複数のＷｅｂアプリケーションの各ソースコードを外部サーバから受信したときに、該Ｗｅｂアプリケーション画面上でアクセスされた表示要素を前記Ｗｅｂアプリケーション融合装置に通知するように、該ソースコードを書き換える、ソースコード書き換え手段と、
書き換えられた前記ソースコードを、前記クライアントに送信する手段と、
書き換えられた前記ソースコードに基づいてクライアントのブラウザで実行された前記Ｗｅｂアプリケーションからの、前記アクセスされた表示要素の通知に基づいて、情報テーブルに、該アクセスされた表示要素に対応付けて、アクセスされたことを示す情報を記録する記録手段と、
前記情報テーブルを参照して、前記Ｗｅｂアプリケーション上でアクセスされなかった表示要素を判断する判断手段と、
アクセスされなかったと判断された前記表示要素を表示しないように書き換えられた前記各ソースコードを結合する結合手段と、
結合されたソースコードを前記クライアントに送信する送信手段と、
を有するＷｅｂアプリケーション融合装置。
【請求項２】
前記ソースコード書き換え手段による前記ソースコードの書き換えは、
前記Ｗｅｂアプリケーション上の全表示要素を前記Ｗｅｂアプリケーション融合装置に通知する処理と、該Ｗｅｂアプリケーション上でアクセスされた表示要素を前記Ｗｅｂアプリケーション融合装置に通知する処理とを該クライアントのブラウザに行わせるように、書き換える
ことを特徴とする請求項１記載のＷｅｂアプリケーション融合装置。
【請求項３】
前記アクセスされた表示要素の記録開始の指示をクライアントから受け付ける受付手段を更に有し、
前記ソースコード書き換え手段は、前記融合対象である前記複数のＷｅｂアプリケーションを識別する情報を含む前記記録開始の指示に基づいて、該識別する情報で特定される複数のＷｅｂアプリケーションのソースコードを書き換え、
前記結合手段は、前記識別する情報で特定される複数のＷｅｂアプリケーションそれぞれの書き換えられたソースコードを結合する
ことを特徴とする請求項１または２記載のＷｅｂアプリケーション融合装置。
【請求項４】
外部サーバよりそれぞれ取得されるソースコードに基づいて、クライアントのブラウザで実行される複数のＷｅｂアプリケーションを、１つのＷｅｂアプリケーションに融合するコンピュータを、
融合対象である前記複数のＷｅｂアプリケーションの各ソースコードを外部サーバから受信したときに、該Ｗｅｂアプリケーション画面上でアクセスされた表示要素を前記Ｗｅｂアプリケーション融合装置に通知するように、該ソースコードを書き換える、ソースコード書き換え手段と、
書き換えられた前記ソースコードを、前記クライアントに送信する手段と、
書き換えられた前記ソースコードに基づいてクライアントのブラウザで実行された前記Ｗｅｂアプリケーションからの、前記アクセスされた表示要素の通知に基づいて、情報テーブルに、該アクセスされた表示要素に対応付けて、アクセスされたことを示す情報を記録する記録手段と、
前記情報テーブルを参照して、前記Ｗｅｂアプリケーション上でアクセスされなかった表示要素を判断する判断手段と、
アクセスされなかったと判断された前記表示要素を表示しないように書き換えられた前記各ソースコードを結合する結合手段と、
結合されたソースコードを前記クライアントに送信する送信手段と、
して機能させるためのＷｅｂアプリケーション融合プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂアプリケーション融合装置及びＷｅｂアプリケーション融合プログラムに係り、特に連携を行うＷｅｂアプリケーションを融合するＷｅｂアプリケーション融合装置及びＷｅｂアプリケーション融合プログラムに関する。
【背景技術】
【０００２】
近年、Ｗｅｂサイト上に複数のガジェットを配置するサイトやポータルは、増加傾向にある。ガジェットとは、アプリケーションソフト（以下、アプリケーションという）やデスクトップ上で動作するミニアプリケーションである。ガジェットのうち、Ｗｅｂブラウザによる閲覧を想定してＷｅｂサイト上に置いたものはＷｅｂガジェットと呼ばれる。
【０００３】
Ｗｅｂガジェットの記述方法は主に２種類存在する。１つのＷｅｂガジェットの記述方法はＨＴＭＬ（HyperText Markup Language）やＪａｖａＳｃｒｉｐｔなどをＷｅｂブラウザがそのまま表示可能な形式で記述する方法である。もう１つのＷｅｂガジェットの記述方法は、あらかじめベンダなどによって定められたスキーマに従ってＸＭＬ（Extensible Markup Language）などを用いて記述する方法である。
【０００４】
後者のＷｅｂガジェットの記述方法の場合は、中継サーバによってＷｅｂブラウザ（以下、単にブラウザという）が表示可能な形式に変換される。以下では、何れのＷｅｂガジェットの記述方法の場合にせよ最終的にブラウザが表示可能なＨＴＭＬ、ＪａｖａＳｃｒｉｐｔに変換された状態のものをＷｅｂガジェット（以下、単にガジェットという）であるとみなす。
【０００５】
ガジェットは、それ自体が独立した１つのアプリケーションであるが、他のガジェットとの間で通信を行い、データをやり取りして連携すること（マッシュアップ）により価値が付加されることもある。ガジェットの使い方は、利用者によって異なる。
【０００６】
例えば、ある利用者が複数のガジェットを単体で用いずに、常に連携して用いている場合は、別々のガジェットに分かれているものを、１つのガジェットに融合できると利便性が向上する。従来、別々のガジェットに分かれているものを、１つのガジェットに融合する場合はＣａｊａと呼ばれるツールが利用されていた。Ｃａｊａは、複数のガジェットを同じコンテキスト上に表示することが可能な仕組みを持つツールである（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】“google-caja”、[online]、[平成２１年３月２６日検索]、インターネット＜URL：http://code.google.com/p/google-caja/＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ガジェットを融合する際には、ガジェットが単体のときに使われていた機能が使われなくなることがある。したがって、ガジェットを融合する際には、使われなくなる機能を無効としたい。
【０００９】
しかし、Ｃａｊａは別々のガジェットに分かれているものを、１つのガジェットに融合する場合、一部コードを書き換えることによってセキュリティや名前空間などの問題を解決しているが、機能的側面において素朴にソースをつなぎ合わせているだけである。
【００１０】
このため、Ｃａｊａを利用して１つに融合したガジェットは融合によって不要になった機能（コンポーネント）が残存してしまう。また、一般に不要な機能というのは利用者によって異なる可能性がある。このように、Ｃａｊａを利用して１つに融合したガジェットは融合によって不要になった機能や利用者にとって不要な機能が残ってしまい、利用者にとって見映えが悪く、場合によっては操作性が悪くなるという問題があった。
【００１１】
本発明の一実施形態は上記の点に鑑みなされたもので、複数のＷｅｂアプリケーションを１つのＷｅｂアプリケーションに融合する際、見映えの良いＷｅｂアプリケーションを融合できるＷｅｂアプリケーション融合装置及びＷｅｂアプリケーション融合プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明の一実施形態は、外部サーバよりそれぞれ取得されるソースコードに基づいて、クライアントのブラウザで実行される複数のＷｅｂアプリケーションを、１つのＷｅｂアプリケーションに融合するＷｅｂアプリケーション融合装置であって、融合対象である前記複数のＷｅｂアプリケーションの各ソースコードを外部サーバから受信したときに、該Ｗｅｂアプリケーション画面上でアクセスされた表示要素を前記Ｗｅｂアプリケーション融合装置に通知するように、該ソースコードを書き換える、ソースコード書き換え手段と、書き換えられた前記ソースコードを、前記クライアントに送信する手段と、書き換えられた前記ソースコードに基づいてクライアントのブラウザで実行された前記Ｗｅｂアプリケーションからの、前記アクセスされた表示要素の通知に基づいて、情報テーブルに、該アクセスされた表示要素に対応付けて、アクセスされたことを示す情報を記録する記録手段と、前記情報テーブルを参照して、前記Ｗｅｂアプリケーション上でアクセスされなかった表示要素を判断する判断手段と、アクセスされなかったと判断された前記表示要素を表示しないように書き換えられた前記各ソースコードを結合する結合手段と、結合されたソースコードを前記クライアントに送信する送信手段と、を有する。
【００１３】
なお、本発明の一実施形態の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１４】
上述の如く、本発明の一実施形態によれば、複数のＷｅｂアプリケーションを１つのＷｅｂアプリケーションに融合する際、見映えの良いＷｅｂアプリケーションを融合できるＷｅｂアプリケーション融合装置及びＷｅｂアプリケーション融合プログラムを提供可能である。
【図面の簡単な説明】
【００１５】
【図１】別々のガジェットに分かれているものを１つのガジェットに融合する処理の一例のイメージ図である。
【図２】単体のときに使われていたガジェットの機能が融合により使われなくなる例を表した画面イメージ図である。
【図３】ガジェットの融合により使われなくなった機能を合成後ガジェットから無くした一例の画面イメージ図である。
【図４】本実施例の中継サーバを含むシステムの一実施例の構成図である。
【図５】中継サーバの一例のハードウェア構成図である。
【図６】融合前のガジェットの表示内容を表した一例のイメージ図である。
【図７】連携情報テーブルの一例の構成図である。
【図８】記録処理を行うためのトリガ画面の一例のイメージ図である。
【図９】融合実行情報テーブルの一例の構成図である。
【図１０】中継サーバを含むシステムの処理を表した一例のフローチャートである。
【図１１】ガジェットＡ及びＢの変換後のガジェットコードを表した説明図である。
【図１２】ブラウザによって表示されるガジェットＡ及びＢのイメージ図である。
【図１３】ガジェットＡ及びＢに挿入された初期読み込み完了部及びアクセス監視部のガジェットコードを表した説明図である。
【図１４】ガジェット情報テーブルの一例の構成図である。
【図１５】ガジェットＡ及びＢのアクセス監視部から通知された内容に基づいてアクセス有無の情報が更新されたガジェット情報テーブルを表した説明図である。
【図１６】ＨＴＭＬフォームアクセス情報の記録処理が終了した時のガジェット情報テーブルの一例の構成図である。
【図１７】スタイルシート注入後の合成後ガジェットのガジェットコードを表した説明図である。
【図１８】合成後ガジェットの一例のイメージ図である。
【図１９】融合ガジェット情報テーブルの一例の構成図である。
【図２０】中継サーバの処理を表した一例のフローチャートである。
【図２１】融合した後の合成後ガジェットを使用する処理手順を表したフローチャートである。
【発明を実施するための形態】
【００１６】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【００１７】
図１は別々のガジェットに分かれているものを１つのガジェットに融合する処理の一例のイメージ図である。Ｗｅｂサイト上に配置されているガジェットＡ，Ｂは、常に連携して用いられるものとする。図１のイメージ図は、別々に分かれているガジェットＡ，Ｂを１つのガジェットＡ＋Ｂに融合する例を表している。
【００１８】
図２は単体のときに使われていたガジェットの機能が融合により使われなくなる例を表した画面イメージ図である。従業員一覧ガジェット１及び電話番号検索ガジェット２はブラウザによって表示される。
【００１９】
従業員一覧ガジェット１は単体のとき、表４を表示する。電話番号検索ガジェット２は単体のとき、入力欄５に検索語を入力した後、検索ボタン６を押下して使用される。電話番号検索ガジェット２は検索結果が下段に表示されている。なお、従業員一覧ガジェット１及び電話番号検索ガジェット２は連携して用いられるとき、従業員一覧ガジェット１の表４の名前を選択すると電話番号検索ガジェット２により自動検索される。
【００２０】
従業員一覧ガジェット１及び電話番号検索ガジェット２を合成した合成後ガジェット３は従業員一覧ガジェット１の表４，電話番号検索ガジェット２の入力欄５，検索ボタン６を表示する。また、合成後ガジェット３は検索結果が下段に表示されている。
【００２１】
合成後ガジェット３では上段の表４の名前を選択すると自動検索されるため、入力欄５及び検索ボタン６が不要となる。しかし、図２の合成後ガジェット３では、融合により使われなくなった入力欄５及び検索ボタン６が残っている。本実施例は、融合により使われなくなった入力欄５及び検索ボタン６を合成後ガジェット３から無くすことで利用者の見映えを良くするものである。
【００２２】
図３はガジェットの融合により使われなくなった機能を合成後ガジェットから無くした一例の画面イメージ図である。本実施例では、利用者が従業員一覧ガジェット１及び電話番号検索ガジェット２を連携して実行する際、従業員一覧ガジェット１及び電話番号検索ガジェット２上のどのＨＴＭＬフォーム要素（表示要素）にアクセスしたかを表すＨＴＭＬフォームアクセス情報と、従業員一覧ガジェット１及び電話番号検索ガジェット２の中身とを中継サーバ１０に通知して記録しておく。
【００２３】
従業員一覧ガジェット１及び電話番号検索ガジェット２の連携終了後、利用者から従業員一覧ガジェット１及び電話番号検索ガジェット２の融合要求を受けると、中継サーバ１０は記録しておいたＨＴＭＬフォームアクセス情報を利用して、従業員一覧ガジェット１及び電話番号検索ガジェット２上のＨＴＭＬフォーム要素のうち、アクセスしなかったＨＴＭＬフォーム要素を抽出する。例えば図３の例では電話番号検索ガジェット２上の入力欄５及び検索ボタン６がアクセスしなかったＨＴＭＬフォーム要素として抽出される。
【００２４】
中継サーバ１０は従業員一覧ガジェット１及び電話番号検索ガジェット２を融合して合成後ガジェット３ａを作成する際、従業員一覧ガジェット１及び電話番号検索ガジェット２上のＨＴＭＬフォーム要素のうち、連携実行時にアクセス記録が無かった入力欄５及び検索ボタン６を非表示にして合成後ガジェット３ａを作成する。
【００２５】
合成後ガジェット３ａは、従業員一覧ガジェット１の表４を表示する。また、合成後ガジェット３ａは検索結果が下段に表示されている。中継サーバ１０は利用者のガジェット表示のリクエストを中継するとき、上記処理を行うためのスクリプトを後述するように挿入する。
【００２６】
以下、Ｗｅｂアプリケーション融合装置の一例としての中継サーバ１０について説明していく。図４は本実施例の中継サーバを含むシステムの一実施例の構成図である。
【００２７】
図４のシステムは、外部サーバ１１とクライアント１２との間に、通信を中継する中継サーバ１０が配置されている。外部サーバ１１はガジェットＡ，Ｂを提供する。また、クライアント１２はガジェットＡ，Ｂをブラウザ４４上で利用する。
【００２８】
外部サーバ１１が提供するガジェットＡ，Ｂは、それぞれ連携スクリプト４１が挿入されている。また、外部サーバ１１が提供するガジェットＡ，Ｂは、後述する記録処理を行うとき、中継サーバ１０で初期読み込み完了部４２及びアクセス監視部４３が挿入されたあと、クライアント１２に提供される。
【００２９】
中継サーバ１０は、ガジェット書換部２１と、ガジェット保存部２２と、ガジェット記録部２３と、ガジェット判断部２４と、ガジェット結合部２５と、融合受付部２６と、ガジェット解釈部２７と、ガジェット情報テーブル２８と、連携情報取得部２９と、連携情報テーブル３０と、融合ガジェット情報テーブル３１と、ガジェット格納部３２と、融合実行情報テーブル３３とを有する。なお、中継サーバ１０が有する各部の処理については後述する。
【００３０】
図５は、中継サーバの一例のハードウェア構成図である。中継サーバ１０は、それぞれバスＢで相互に接続されている入力装置５１，出力装置５２，ドライブ装置５３，補助記憶装置５４，主記憶装置５５，演算処理装置５６及びインターフェース装置５７を有している。
【００３１】
入力装置５１はキーボードやマウス等である。入力装置５１は、各種信号を入力するために用いられる。出力装置５２はディスプレイ装置等である。出力装置５２は各種ウインドウやデータ等を表示するために用いられる。インターフェース装置５７はモデム，ＬＡＮカード等である。インターフェース装置５７は、ネットワークを介して外部サーバ１１及びクライアント１２に接続する為に用いられる。
【００３２】
本実施例のＷｅｂアプリケーション融合プログラムは、中継サーバ１０を制御する各種プログラムの少なくとも一部である。Ｗｅｂアプリケーション融合プログラムは例えば記録媒体５８の配布やネットワークからのダウンロードなどによって提供される。Ｗｅｂアプリケーション融合プログラムを記録した記録媒体５８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３３】
また、Ｗｅｂアプリケーション融合プログラムを記録した記録媒体５８がドライブ装置５３にセットされると、Ｗｅｂアプリケーション融合プログラムは記録媒体５８からドライブ装置５３を介して補助記憶装置５４にインストールされる。ネットワークからダウンロードされたＷｅｂアプリケーション融合プログラムは、インターフェース装置５７を介して補助記憶装置５４にインストールされる。
【００３４】
補助記憶装置５４は、インストールされたＷｅｂアプリケーション融合プログラムを格納すると共に、必要なファイル，データ等を格納する。主記憶装置５５は、Ｗｅｂアプリケーション融合プログラムの起動時に補助記憶装置５４からＷｅｂアプリケーション融合プログラムを読み出して格納する。そして、演算処理装置５６は主記憶装置５５に格納されたＷｅｂアプリケーション融合プログラムに従って、後述するような各種処理を実現している。
【００３５】
図６は融合前のガジェットの表示内容を表した一例のイメージ図である。図６に表した融合前のガジェットは在庫検索システムに関するものである。図６の左側のＡ社在庫検索システムガジェットは、以下、ガジェットＡと呼ぶ。図６の右側のＢ・Ｃ社在庫検索システムガジェットは、以下、ガジェットＢと呼ぶ。
【００３６】
ガジェットＡ及びＢはテキストフィールド６１〜６３内に品名を入力して検索ボタン６４〜６６を押下することにより、検索結果が下段に表示されるものである。ガジェットＡ及びＢは連携スクリプト４１により、すでに連携が行われているものとする。ガジェットＡ及びＢは、例えば以下のように連携を行う。
【００３７】
まず、ガジェットＡはテキストフィールド６１に品名（例えば机）が入力されて検索ボタン６４が押下される。ガジェットＡ及びＢは、それぞれの連携スクリプト４１により連携を開始する。ガジェットＢは、それぞれの連携スクリプト４１により、ガジェットＡのテキストフィールド６１に入力された品名（例えば机）が、テキストフィールド６２へ自動的に入力される。結果、利用者はガジェットＡのテキストフィールド６１に品名を入力して検索ボタン６４を押下すると、ガジェットＡによるＡ社在庫検索結果とガジェットＢによるＢ社在庫検索結果とをブラウザ４４上に表示させることができる。
【００３８】
なお、従来技術を用いてガジェットＡ及びＢを融合した場合は、単純に計３つのテキストフィールド６１〜６３，計３つの検索ボタン６４〜６６が並んだ合成後ガジェット３しか作成することができない。
【００３９】
本実施例の中継サーバ１０では使用に先立ち、連携情報取得部２９が、どのガジェット同士を連携するかの情報を取得し、連携情報として連携情報テーブル３０に記録する。図７は連携情報テーブルの一例の構成図である。
【００４０】
図７の連携情報テーブル３０は送信ガジェットＵＲＬと受信ガジェットＵＲＬとの組に一意のＩＤ（連携ＩＤ）が割り当てられている。図６に示したガジェットＡ及びＢの場合はガジェットＡのＵＲＬが送信ガジェットＵＲＬとなり、ガジェットＢのＵＲＬが受信ガジェットＵＲＬとなる。
【００４１】
連携情報取得部２９が、どのガジェット同士を連携するかの情報を取得する方法は問わないが、最終的に連携情報テーブル３０に記録される必要がある。本実施例では既に連携が行われているガジェット（例えばガジェットＡ及びＢ）を融合させるため、何らかの外部手段を用いることで、どのガジェット同士が連携を行っているか、その具体的なＵＲＬを取得するのは容易である。
【００４２】
ガジェットＡ及びＢを融合する場合、中継サーバ１０ではガジェットＡ及びＢ上のどのＨＴＭＬフォーム要素にアクセスしたかを表すＨＴＭＬフォームアクセス情報の記録処理を行う必要がある。中継サーバ１０の融合受付部２６はクライアント１２のブラウザ４４上に例えば図８のようなトリガ画面７０を表示させる。
【００４３】
図８は記録処理を行うためのトリガ画面の一例のイメージ図である。図８のトリガ画面７０は融合したいガジェットとしてガジェットＡ及びＢが選択されている。ガジェットＡ及びＢが選択されている状態で記録開始ボタン７１が押下されると、融合受付部２６はガジェットＡ及びＢの組に割り当てられている連携ＩＤと記録開始の指示とを受け取り、図９のような融合実行情報テーブル３３に記録する。また、ガジェットＡ及びＢが選択されている状態で記録終了ボタン７２が押下されると、融合受付部２６はガジェットＡ及びＢの組に割り当てられている連携ＩＤと記録終了の指示とを受け取り、図９の融合実行情報テーブル３３に記録する。
【００４４】
図９は融合実行情報テーブルの一例の構成図である。図９の融合実行情報テーブル３３は融合したいガジェットの組に割り当てられている連携ＩＤと記録開始（○）又は記録終了（×）の指示を表す記録中フラグとが記録されている。中継サーバ１０は融合実行情報テーブル３３の記録中フラグに記録開始（○）の指示が記録されているときに、ＨＴＭＬフォームアクセス情報の記録処理を行う。
【００４５】
図１０は、中継サーバを含むシステムの処理を表した一例のフローチャートである。ステップＳ１に進み、中継サーバ１０のガジェット解釈部２７は外部サーバ１１が提供するガジェットＡ，Ｂのガジェットコードをブラウザ４４が表示可能なコードに変換する。前述したようにガジェットＡ，Ｂは最終的にブラウザ４４上に表示させる必要がある為、ガジェットコードの定義がＸＭＬなどで記述されたものであればＨＴＭＬなどの適切な形式に変換する必要がある。
【００４６】
図１１はガジェットＡ及びＢの変換後のガジェットコードを表した説明図である。図１２はブラウザによって表示されるガジェットＡ及びＢのイメージ図である。
【００４７】
図１１（Ａ）は、ガジェットＡの変換後のガジェットコードを表す。図１１（Ｂ）はガジェットコードＢの変換後のガジェットコードを表す。
【００４８】
図１２（Ａ）は図１１（Ａ）のガジェットコードがブラウザ４４によって表示されるときの内容を表している。図１２（Ｂ）は図１１（Ｂ）のガジェットコードがブラウザ４４によって表示されるときの内容を表している。
【００４９】
ステップＳ２に進み、ガジェット書換部２１は図９の融合実行情報テーブル３３を参照して、ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）であるかを判定する。
【００５０】
ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）でなければステップＳ３に進み、ガジェット書換部２１はＨＴＭＬフォームアクセス情報の記録処理を行うことなく、ガジェットＡ及びＢのガジェットコードを、そのままブラウザ４４に表示させる。
【００５１】
ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）であればステップＳ４に進み、ガジェット書換部２１はガジェットＡ及びＢのガジェットコードをブラウザ４４に渡す前に後述の書き換えを行うため、ステップＳ４に進む。
【００５２】
ステップＳ４に進み、ガジェット書換部２１はガジェット保存部２２及びガジェット記録部２３が処理を行えるためのコード書き換えを行い、ガジェットＡ及びＢに初期読み込み完了部４２とアクセス監視部４３とを挿入する。
【００５３】
図１３は、ガジェットＡ及びＢに挿入された初期読み込み完了部及びアクセス監視部のガジェットコードを表した説明図である。図１３のガジェットコードはレンダリング完了時に現在のＤＯＭ構造をガジェット保存部２２に通知するためのスクリプトとして初期読み込み完了部４２を挿入している。また、図１３のガジェットコードはガジェットＡ及びＢの連携が行われる際に、ガジェット記録部２３へＨＴＭＬフォームアクセス情報を通知するためのスクリプトとしてアクセス監視部４３を挿入している。
【００５４】
初期読み込み完了部４２は、レンダリング完了時、ブラウザ４４によって実行されるwindow.onload関数の中でＤＯＭ構造をガジェット保存部２２に通知する。アクセス監視部４３は、利用者によるアクセスを監視するため、各ＨＴＭＬフォーム要素にイベントリスナ（addEventlistener）を追加して、イベント実行時にガジェット保存部２２へ通知を行う関数を挿入したものである。
【００５５】
また、アクセス監視部４３は、プログラムによるアクセスを監視するため、ＤＯＭアクセスＡＰＩ（getElementByIdとgetElementByNamesなど）のメソッドを上書きしてガジェット記録部２３へ通知を行う関数を挿入したものである。なお、中継サーバ１０のガジェット保存部２２及びガジェット記録部２３への通知はXmlHttpRequestを通じて行われる。
【００５６】
ステップＳ５に進み、ブラウザ４４内のメモリに読み込まれた初期読み込み完了部４２はレンダリング完了時に現在のＤＯＭ構造を中継サーバ１０のガジェット保存部２２に通知する。具体的に、初期読み込み完了部４２はＤＯＭ構造として、ガジェットＵＲＬ，ＤＯＭ中の要素ＩＤ，フォーム要素か否かの情報を、中継サーバ１０のガジェット保存部２２に通知する。
【００５７】
ステップＳ６に進み、ガジェット保存部２２はブラウザ４４から通知されたＤＯＭ構造をガジェット情報テーブル２８に格納する。図１４はガジェット情報テーブルの一例の構成図である。
【００５８】
ガジェット情報テーブル２８は、ガジェットＵＲＬ，ＤＯＭ中の要素ＩＤ，フォーム要素か否かの情報，連携ＩＤ，アクセス有無の情報が記録されている。フォーム要素か否かはガジェット保存部２２がＨＴＭＬフォーム要素のタグの内容によって判断する。例えばinputタグ、selectタグ又はtextareaタグのいずれかであれば、ガジェット保存部２２はフォーム要素であると判定する。
【００５９】
ガジェット保存部２２は連携ＩＤとして連携情報テーブル３０に記録されているものを用いる。ガジェット保存部２２はアクセス有無の情報を空白にしておく。
【００６０】
ステップＳ７に進み、レンダリング完了後、ガジェットＡ及びＢの連携スクリプト４１は連携を実施する。ステップＳ８に進み、ガジェット記録部２３は融合実行情報テーブル３３を参照して、ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）であるかを判定する。
【００６１】
ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）であればガジェット記録部２３はガジェットＡ及びＢのアクセス監視部４３からＨＴＭＬフォームアクセス情報が通知されるのを待つ。
【００６２】
ステップＳ９に進み、ガジェットＡ及びＢのアクセス監視部４３は利用者又はプログラムからＨＴＭＬフォーム要素へのアクセスの有無を監視する。ステップＳ１０に進み、ガジェットＡ及びＢのアクセス監視部４３は利用者又はプログラムからアクセスのあったＨＴＭＬフォーム要素をＨＴＭＬフォームアクセス情報によってガジェット記録部２３に通知する。具体的に、ガジェットＡ及びＢのアクセス監視部４３はＨＴＭＬフォームアクセス情報としてガジェットＵＲＬとアクセスのあったＨＴＭＬフォーム要素の要素ＩＤとをガジェット記録部２３に通知する。
【００６３】
ステップＳ１１に進み、ガジェット記録部２３はガジェットＡ及びＢのアクセス監視部４３から通知されたＨＴＭＬフォームアクセス情報に基づき、ガジェット情報テーブル２８のアクセス有無の情報にアクセス有りのフラグ「○」を設定した後、ステップＳ７の処理に戻る。
【００６４】
図１５はガジェットＡ及びＢのアクセス監視部から通知された内容に基づいてアクセス有無の情報が更新されたガジェット情報テーブルを表した説明図である。図１５では利用者がガジェットＡのテキストフィールド内に机と入力した際、ガジェットＡのガジェットＵＲＬとアクセスしたテキストフィールドの要素ＩＤ(=txt1)とがガジェット記録部２３に通知されている。
【００６５】
ガジェット記録部２３はガジェット情報テーブル２８の中からガジェットＵＲＬと要素ＩＤとがマッチする行を探し、ガジェットＵＲＬと要素ＩＤとがマッチする行のアクセス有無の情報にアクセス有りのフラグ「○」を設定する。
【００６６】
ステップＳ８において、ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録終了（×）であればガジェット記録部２３はＨＴＭＬフォームアクセス情報の記録処理が終了したと判定し、ステップＳ１２に進む。ガジェット判断部２４はガジェット情報テーブル２８を参照してアクセス有無の情報にアクセス有りのフラグ「○」が設定されなかった行を抽出する。
【００６７】
なお、抽出するＨＴＭＬフォーム要素をフォーム要素が「○」である場合に限るか否かは必要に応じて利用者、或いは管理者などによって指定しておく。図１６はＨＴＭＬフォームアクセス情報の記録処理が終了した時のガジェット情報テーブルの一例の構成図である。
【００６８】
図１６のガジェット情報テーブル２８の場合、ガジェット判断部２４は、アクセス有無の情報にアクセス有りのフラグ「○」が設定されなかった行として要素ＩＤが「txt2」及び「btn2」の行を抽出する。
【００６９】
ステップＳ１３に進み、ガジェット結合部２５はガジェットＡ及びＢを結合する。その際に、ガジェット結合部２５はステップＳ１２で抽出した行の要素ＩＤに対応するＨＴＭＬフォーム要素を非表示にするスタイルシートを合成後ガジェットのガジェットコードに注入する。例えばステップＳ１３ではスタイルシートを用いてステップＳ１２で抽出した行の要素ＩＤに対応するＨＴＭＬフォーム要素のvisibility属性をhiddenにする。
【００７０】
図１７はスタイルシート注入後の合成後ガジェットのガジェットコードを表した説明図である。ガジェット結合部２５は図１７に示すようなスタイルシート注入後の合成後ガジェットのガジェットコードをガジェット格納部３２に提供する。なお、図１７に示す合成後ガジェットのガジェットコードをブラウザ４４に表示させると、図１８に示すようになる。図１８の合成後ガジェットは、ＨＴＭＬフォームアクセス情報の記録処理時に使われなかったＨＴＭＬフォーム要素の「txt2」と「btn2」とが非表示になっている。
【００７１】
ステップＳ１４に進み、ガジェット格納部３２はステップＳ１３で融合された合成後ガジェットのガジェットコードを融合ガジェット情報テーブル３１に記録する。図１９は融合ガジェット情報テーブルの一例の構成図である。
【００７２】
図１９の融合ガジェット情報テーブル３１は、生成ＩＤ，連携ＩＤ，ガジェットＵＲＬが記録されている。生成ＩＤは合成後ガジェットを示すユニークなＩＤである。連携ＩＤは送信ガジェットＵＲＬと受信ガジェットＵＲＬとの組に割り当てられている一意のＩＤである。ガジェットＵＲＬは合成後ガジェットのＵＲＬである。図１９の融合ガジェット情報テーブル３１は、中継サーバ１０がrelayサーバとして合成後ガジェットのＸＭＬファイルが置かれることを想定している。
【００７３】
図２０は、中継サーバの処理を表した一例のフローチャートである。ステップＳ２１に進み、ガジェット解釈部２７は外部サーバ１１が提供するガジェットＡ，Ｂのガジェットコードを例えば図１１のようにブラウザ４４が表示可能なコードに変換する。
【００７４】
ステップＳ２２に進み、ガジェット書換部２１は図９の融合実行情報テーブル３３を参照して、ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）であるかを判定する。
【００７５】
ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）でなければステップＳ２３に進み、ガジェット書換部２１はＨＴＭＬフォームアクセス情報の記録処理を行うことなく、ガジェットＡ及びＢのガジェットコードを、そのままブラウザ４４に送信する。
【００７６】
ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）であればステップＳ２４に進み、ガジェット書換部２１はガジェットＡ及びＢのガジェットコードをブラウザ４４に渡す前に、ガジェット保存部２２及びガジェット記録部２３が処理を行えるためのコード書き換えを行い、ガジェットＡ及びＢに初期読み込み完了部４２とアクセス監視部４３とを図１３のように挿入する。
【００７７】
ガジェットＡ及びＢに挿入された初期読み込み完了部のガジェットコードは、レンダリング完了時に現在のＤＯＭ構造をガジェット保存部２２に通知するためのスクリプトである。ガジェットＡ及びＢに挿入されたアクセス監視部のガジェットコードはガジェットＡ及びＢの連携が行われる際に、ガジェット記録部２３へＨＴＭＬフォームアクセス情報を通知するためのスクリプトである。
【００７８】
ステップＳ２５に進み、ガジェット書換部２１は初期読み込み完了部４２とアクセス監視部４３とが挿入されたガジェットＡ及びＢのガジェットコードを、ブラウザ４４に送信する。ステップＳ２６に進み、ガジェット保存部２２はブラウザ４４から通知されたＤＯＭ構造を図１４のガジェット情報テーブル２８に格納する。
【００７９】
ステップＳ２７に進み、ガジェット記録部２３は融合実行情報テーブル３３を参照してガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）であるかを判定する。
【００８０】
ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録開始（○）であればガジェット記録部２３はガジェットＡ及びＢのアクセス監視部４３からＨＴＭＬフォームアクセス情報が通知されるのを待つ。
【００８１】
ガジェットＡ及びＢのアクセス監視部４３からＨＴＭＬフォームアクセス情報が通知されると、ガジェット記録部２３はステップＳ２８に進み、通知されたＨＴＭＬフォームアクセス情報に基づき、ガジェット情報テーブル２８のアクセス有無の情報にアクセス有りのフラグ「○」を図１５のように設定した後、ステップＳ２７の処理に戻る。
【００８２】
ステップＳ２７において、ガジェットＡ及びＢの組の連携ＩＤに対応する記録中フラグが記録終了（×）であればガジェット記録部２３はＨＴＭＬフォームアクセス情報の記録処理が終了したと判定し、ステップＳ２９に進む。ガジェット判断部２４はガジェット情報テーブル２８を参照してアクセス有無の情報にアクセス有りのフラグ「○」が設定されなかった行を抽出する。
【００８３】
ステップＳ３０に進み、ガジェット結合部２５はガジェットＡ及びＢを結合する。その際に、ガジェット結合部２５はステップＳ２９で抽出した行の要素ＩＤに対応するＨＴＭＬフォーム要素を非表示にするスタイルシートを合成後ガジェットのガジェットコードに注入する。
【００８４】
ガジェット結合部２５は図１７に示すようなスタイルシート注入後の合成後ガジェットのガジェットコードをガジェット格納部３２に提供する。ステップＳ３１に進み、ガジェット格納部３２はステップＳ３０で融合された合成後ガジェットのガジェットコードを融合ガジェット情報テーブル３１に記録する。
【００８５】
その後、ガジェット格納部３２はクライアント１２から要求があると、融合された合成後ガジェットのガジェットコードを例えば図２０に示す処理手順でクライアント１２に送信する。
【００８６】
図２１は融合した後の合成後ガジェットを使用する処理手順を表したフローチャートである。ステップＳ４１に進み、ガジェット格納部３２は、クライアント１２から要求された生成ＩＤに対応するガジェットＵＲＬを、融合ガジェット情報テーブル３１から取り出す。ステップＳ４２に進み、ガジェット解釈部２７はステップＳ４１で取り出したガジェットＵＲＬの合成後ガジェットのガジェットコードを、ブラウザ４４が表示可能なコードに変換する。ステップＳ４３に進み、クライアント１２のブラウザ４４はステップＳ４２で変換されたコードで合成後ガジェットの表示を行う。
【００８７】
以上、本実施例によれば、素朴にガジェットを併せた合成後ガジェットよりも、各利用者にとって見映えの良い合成後ガジェットを作成することが可能となる。特に、不要な箇所と言うのは利用者によって異なる可能性があるが、本実施例では実際にガジェットを動かして、その動作を元に融合を行うため、利用者ごとに適した合成後ガジェットを作成することができる。本実施例によれば、一から人手などでガジェットを結合するよりも容易且つ利用者にとって見映えの良い合成後ガジェットを作成できる効果がある
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００８８】
１    従業員一覧ガジェット
２    電話番号検索ガジェット
３、３ａ    合成後ガジェット
４    表
５    入力欄
６    検索ボタン
１０    中継サーバ
１１    外部サーバ
１２    クライアント
２１    ガジェット書換部
２２    ガジェット保存部
２３    ガジェット記録部
２４    ガジェット判断部
２５    ガジェット結合部
２６    融合受付部
２７    ガジェット解釈部
２８    ガジェット情報テーブル
２９    連携情報取得部
３０    連携情報テーブル
３１    融合ガジェット情報テーブル
３２    ガジェット格納部
３３    融合実行情報テーブル
４１    連携スクリプト
４２    初期読み込み完了部
４３    アクセス監視部
５１    入力装置
５２    出力装置
５３    ドライブ装置
５４    補助記憶装置
５５    主記憶装置
５６    演算処理装置
５７    インターフェース装置
５８    記録媒体
６１〜６３    テキストフィールド
６４〜６６    検索ボタン
７０    トリガ画面
７１    記録開始ボタン
７２    記録終了ボタン
Ｂ    バス
【図１】
2010282409.tif 000003
【図２】
2010282409.tif 000004
【図３】
2010282409.tif 000005
【図４】
2010282409.tif 000006
【図５】
2010282409.tif 000007
【図６】
2010282409.tif 000008
【図７】
2010282409.tif 000009
【図８】
2010282409.tif 000010
【図９】
2010282409.tif 000011
【図１０】
2010282409.tif 000012
【図１１】
2010282409.tif 000013
【図１２】
2010282409.tif 000014
【図１３】
2010282409.tif 000015
【図１４】
2010282409.tif 000016
【図１５】
2010282409.tif 000017
【図１６】
2010282409.tif 000018
【図１７】
2010282409.tif 000019
【図１８】
2010282409.tif 000020
【図１９】
2010282409.tif 000021
【図２０】
2010282409.tif 000022
【図２１】
2010282409.tif 000023