(57)【要約】【課題】端末上で動作するブラウザへの所定のイベントに応じて実行されるべきイベント処理コードを含む第１コンテンツデータを端末に送信するシステムを提供する。【解決手段】サーバは、端末上で動作するブラウザへのアドオンとして実行され、ブラウザに対するコンテンツへのアクセスイベントに応じて実行されユーザによるコンテンツへのアクセスを防止するイベント処理コードが実行されるか否かを判定する判定コードと、アクセス防止コードが実行されないと判定された場合にコンテンツの提供を停止する制御コードとを含む第２コンテンツデータを端末に送信するデータ送信部と、第２コンテンツデータに従って処理を実行している端末からコンテンツの要求を取得する要求取得部と、要求取得部がコンテンツの要求を取得した場合に、要求されたコンテンツとイベント処理コードとを含む第１コンテンツデータを生成するデータ生成部とを備える。【選択図】図２
2011145772.tif 000002
【特許請求の範囲】
【請求項１】
端末上で動作するブラウザによりユーザに提供されるべきコンテンツと、ユーザによる前記ブラウザに対する前記コンテンツへのアクセスイベントに応じて実行されユーザによる前記コンテンツへのアクセスを防止するイベント処理コードとを含む第１コンテンツデータを前記端末に送信するサーバであって、
前記端末上で動作するブラウザへのアドオンとして実行され、前記アクセスイベントに応じて前記イベント処理コードが実行されるか否かを判定する判定コードと、前記アクセスイベントに応じて前記イベント処理コードが実行されない旨が前記判定コードにより判定された場合に、前記ブラウザによるユーザへの前記コンテンツの提供を停止させる制御コードとを含む第２コンテンツデータを、前記端末に送信するデータ送信部と、
前記第２コンテンツデータに従って処理を実行している前記端末から、前記コンテンツの要求を取得する要求取得部と、
前記要求取得部が前記コンテンツの要求を取得した場合に、要求されたコンテンツと、当該コンテンツを読み込んだ前記ブラウザへの前記アクセスイベントに応じて実行されるべき前記イベント処理コードとを含む前記第１コンテンツデータを生成するデータ生成部と
を備えるサーバ。
【請求項２】
前記要求取得部が前記コンテンツの要求を取得した場合に、前記コンテンツを外部のサーバから取得するコンテンツ取得部
をさらに備え、
データ生成部は、前記コンテンツ取得部が取得した前記コンテンツに前記イベント処理コードを埋め込むことにより、前記第１コンテンツデータを生成する
請求項１に記載のサーバ。
【請求項３】
前記判定コードは、
前記イベント処理コードを実行するコード処理系と同じコード処理系で前記ブラウザに所定のコードを実行させる実行コードと、
前記所定のコードの実行結果に基づいて、前記判定を行う判定実行コードと
を含む請求項１または２に記載のサーバ。
【請求項４】
前記実行コードは、前記端末で実行される複数のソフトウェアコンポーネント間でデータが共有される記憶領域に所定値を記憶させるコードを前記ブラウザに実行させ、
前記判定実行コードは、前記実行コードの実行後に前記記憶領域に記憶されている値に基づいて前記判定を行う
請求項３に記載のサーバ。
【請求項５】
前記判定コードは、前記イベント処理コードを実行するコード処理系と同じコード処理系で実行され、前記記憶領域に記憶されている値を取得するコードを、前記ブラウザに実行させるデータ取得コードをさらに含み、
前記判定実行コードは、前記データ取得コードの実行により取得された値に基づいて、前記判定を行う
請求項４に記載のサーバ。
【請求項６】
前記制御コードは、前記判定コードにより、前記アクセスイベントに応じて前記イベント処理コードが実行されない旨が判定された場合に、前記コンテンツを表示している前記ブラウザの画面を書き換える画面制御コードを含む
請求項１から５のいずれかに記載のサーバ。
【請求項７】
前記制御コードは、前記判定コードにより、前記アクセスイベントに応じて前記イベント処理コードが実行されない旨が判定された場合に、前記コンテンツを表示している前記ブラウザの画面を閉じさせる画面制御コードを含む
請求項１から５のいずれかに記載のサーバ。
【請求項８】
前記コンテンツデータは、マークアップ言語で記述されたＷｅｂコンテンツであり、前記イベント処理コードは、ＪａｖａＳｃｒｉｐｔで記述されたコードである
請求項１から７のいずれかに記載のサーバ。
【請求項９】
前記第２コンテンツデータは、Ｆｌａｓｈコンテンツであり、前記判定コードは、ＡｃｔｉｏｎＳｃｒｉｐｔで記述されたコードである
請求項８に記載のサーバ。
【請求項１０】
前記アクセスイベントは、前記ブラウザで表示された前記コンテンツを出力する指示によって前記ブラウザに生じるイベントである
請求項１から９のいずれかに記載のサーバ。
【請求項１１】
前記指示は、前記端末における複数のソフトウェアコンポーネント間でデータ共有される記憶領域に、前記ブラウザにより表示されたデータを記憶するユーザ指示を含む
請求項１０に記載のサーバ。
【請求項１２】
前記指示は、前記ブラウザによる表示内容をプリントするユーザ指示を含む
請求項１０または１１に記載のサーバ。
【請求項１３】
前記イベント処理コードは、前記ブラウザにおいて前記アクセスイベントを生じさせるユーザ操作をフックして、前記ブラウザによる規定の処理に替えて実行される
請求項１から１２のいずれかに記載のサーバ。
【請求項１４】
端末上で動作するブラウザによりユーザに提供されるべきコンテンツと、ユーザによる前記ブラウザに対する前記コンテンツへのアクセスイベントに応じて実行されユーザによる前記コンテンツへのアクセスを防止するイベント処理コードとを含む第１コンテンツデータを前記端末に送信するサーバを制御する制御方法であって、サーバに、
前記ブラウザへのアドオンとして実行され、前記アクセスイベントに応じて前記イベント処理コードが実行されるか否かを判定する判定コードと、前記アクセスイベントに応じて前記イベント処理コードが実行されない旨が前記判定コードにより判定された場合に、前記ブラウザによるユーザへの前記コンテンツの提供を停止させる制御コードとを含む第２コンテンツデータを、前記端末に送信するデータ送信段階と、
前記第２コンテンツデータに従って処理を実行している前記端末から、前記コンテンツの要求を取得する要求取得段階と、
前記要求取得段階において前記コンテンツの要求が取得された場合に、要求されたコンテンツと、当該コンテンツを読み込んだ前記ブラウザへの前記アクセスイベントに応じて実行されるべき前記イベント処理コードとを含む前記第１コンテンツデータを生成するデータ生成段階と
を実行させる制御方法。
【請求項１５】
端末上で動作するブラウザによりユーザに提供されるべきコンテンツと、ユーザによる前記ブラウザに対する前記コンテンツへのアクセスイベントに応じて実行されユーザによる前記コンテンツへのアクセスを防止するイベント処理コードとを含む第１コンテンツデータを端末に送信するサーバ用のプログラムであって、コンピュータを、
前記端末上で動作するブラウザへのアドオンとして実行され、前記アクセスイベントに応じて前記イベント処理コードが実行されるか否かを判定する判定コードと、前記アクセスイベントに応じて前記イベント処理コードが実行されない旨が前記判定コードにより判定された場合に、前記ブラウザによるユーザへの前記コンテンツの提供を停止させる制御コードとを含む第２コンテンツデータを、前記端末に送信するデータ送信部、
前記第２コンテンツデータに従って処理を実行している前記端末から、前記コンテンツの要求を取得する要求取得部、
前記要求取得部が前記コンテンツの要求を取得した場合に、要求されたコンテンツと、当該コンテンツを読み込んだ前記ブラウザへの前記アクセスイベントに応じて実行されるべき前記イベント処理コードとを含む前記第１コンテンツデータを生成するデータ生成部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ、制御方法、および、プログラムに関する。
【背景技術】
【０００２】
ＪａｖａＳｃｒｉｐｔを利用したＷｅｂシステムが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−００３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＪａｖａＳｃｒｉｐｔなど、ブラウザの拡張言語で記述したスクリプトを利用することで、ブラウザを用いて効果的なアプリケーションをユーザに提供することができる。例えば、ユーザによるクリップボードへのコピー操作、ブラウザ画面の印刷操作を防ぐスクリプトを用いることで、ブラウザに表示された情報を外部に流出させにくくすることができる。また、ユーザ操作に応じた動作を定義したスクリプトを用いることで、インタラクティブなＷｅｂアプリケーションを提供することもできる。しかしながら、スクリプトを無効にする設定がブラウザになされている場合には、スクリプトによる上記利点を得ることはできない。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の第１の態様においては、端末上で動作するブラウザによりユーザに提供されるべきコンテンツと、ユーザによるブラウザに対するコンテンツへのアクセスイベントに応じて実行されユーザによるコンテンツへのアクセスを防止するイベント処理コードとを含む第１コンテンツデータを端末に送信するサーバであって、端末上で動作するブラウザへのアドオンとして実行され、アクセスイベントに応じてイベント処理コードが実行されるか否かを判定する判定コードと、アクセスイベントに応じてイベント処理コードが実行されない旨が判定コードにより判定された場合に、ブラウザによるユーザへのコンテンツの提供を停止させる制御コードとを含む第２コンテンツデータを、端末に送信するデータ送信部と、第２コンテンツデータに従って処理を実行している端末から、コンテンツの要求を取得する要求取得部と、要求取得部がコンテンツの要求を取得した場合に、要求されたコンテンツと、当該コンテンツを読み込んだブラウザへのアクセスイベントに応じて実行されるべきイベント処理コードとを含む第１コンテンツデータを生成するデータ生成部とを備える。
【０００６】
要求取得部がコンテンツの要求を取得した場合に、コンテンツを外部のサーバから取得するコンテンツ取得部をさらに備え、データ生成部は、コンテンツ取得部が取得したコンテンツにイベント処理コードを埋め込むことにより、第１コンテンツデータを生成してよい。
【０００７】
判定コードは、イベント処理コードを実行するコード処理系と同じコード処理系でブラウザに所定のコードを実行させる実行コードと、所定のコードの実行結果に基づいて、判定を行う判定実行コードとを含んでよい。実行コードは、端末で実行される複数のソフトウェアコンポーネント間でデータが共有される記憶領域に所定値を記憶させるコードをブラウザに実行させ、判定実行コードは、実行コードの実行後に記憶領域に記憶されている値に基づいて判定を行ってよい。判定コードは、イベント処理コードを実行するコード処理系と同じコード処理系で実行され、記憶領域に記憶されている値を取得するコードを、ブラウザに実行させるデータ取得コードをさらに含み、判定実行コードは、データ取得コードの実行により取得された値に基づいて、判定を行ってよい。
【０００８】
制御コードは、判定コードにより、アクセスイベントに応じてイベント処理コードが実行されない旨が判定された場合に、コンテンツを表示しているブラウザの画面を書き換える画面制御コードを含んでよい。制御コードは、判定コードにより、アクセスイベントに応じてイベント処理コードが実行されない旨が判定された場合に、コンテンツを表示しているブラウザの画面を閉じさせる画面制御コードを含んでよい。
【０００９】
コンテンツデータは、マークアップ言語で記述されたＷｅｂコンテンツであり、イベント処理コードは、ＪａｖａＳｃｒｉｐｔで記述されたコードであってよい。第２コンテンツデータは、Ｆｌａｓｈコンテンツであり、判定コードは、ＡｃｔｉｏｎＳｃｒｉｐｔで記述されたコードであってよい。
【００１０】
アクセスイベントは、ブラウザで表示されたコンテンツを出力する指示によってブラウザに生じるイベントであってよい。指示は、端末における複数のソフトウェアコンポーネント間でデータ共有される記憶領域に、ブラウザにより表示されたデータを記憶するユーザ指示を含んでよい。指示は、ブラウザによる表示内容をプリントするユーザ指示を含でよい。イベント処理コードは、ブラウザにおいてアクセスイベントを生じさせるユーザ操作をフックして、ブラウザによる規定の処理に替えて実行されてよい。
【００１１】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係るシステム１０の一例を示す図である。
【図２】サーバ１００のブロック構成の一例を示す図である。
【図３】処理シーケンスの一例を示す図である。
【図４】ブラウザが表示するウィンドウの一例を示す図である。
【図５】生成されるＷｅｂコンテンツデータの一例を示す図である。
【図６】判定ルーチンにおける処理フローの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１４】
図１は、一実施形態に係るシステム１０の一例を示す。システム１０は、複数のクライアント１２０ａ−ｄ、サーバ１００、および、社内サーバ１１０を備える。以後の説明では、クライアント１２０ａ−ｄをクライアント１２０と総称する。なお、クライアント１２０は、この発明における端末の一例であるとする。
【００１５】
社内ネットワーク２０に接続された社内サーバ１１０は、Ｗｅｂサーバを含み、Ｗｅｂアプリケーション環境をクライアント１２０のそれぞれに提供する。具体的には、社内サーバ１１０は、メールサーバ、ワークフローサーバ、ファイルサーバなどのサーバを含むサーバシステムであってよく、社内サーバ１１０は、これらの各サーバからのデータまたは社内サーバ１１０が保持するデータを、クライアント１２０からの要求に応じて加工して、クライアント１２０に提供する。
【００１６】
社内サーバ１１０、クライアント１２０ｃ、クライアント１２０ｄは、社内ネットワーク２０に接続され、クライアント１２０ａおよびクライアント１２０ｂは、通信回線１８０に接続される。通信回線１８０は、社内ネットワーク２０の外の通信ネットワークであり、インターネット網、携帯電話通信網などの公衆の通信ネットワークを含む。クライアント１２０ａはパーソナルコンピュータであり、クライアント１２０ｂは携帯電話、携帯情報端末（ＰＤＡ）などの携帯端末であってよい。
【００１７】
サーバ１００は、社内サーバ１１０ならびにクライアント１２０と通信することができる。サーバ１００は、社内ネットワーク２０に接続されており、クライアント１２０ｃおよびクライアント１２０ｄは、社内ネットワーク２０を通じてサーバ１００と通信することができる。また、サーバ１００は、通信回線１８０に接続されており、クライアント１２０ａおよびクライアント１２０ｂは、通信回線１８０を通じてサーバ１００と通信することができる。
【００１８】
クライアント１２０は、クライアント１２０上で動作するブラウザを通じてサーバ１００にアクセスして、サーバ１００からコンテンツを取得して表示する。具体的には、クライアント１２０はサーバ１００に対して、コンテンツを要求する。サーバ１００は、クライアント１２０からのコンテンツの要求に応じて、要求されたコンテンツをクライアント１２０に送信する。例えば、クライアント１２０は、ＨＴＴＰリクエストをサーバ１００に送信する。サーバ１００は、クライアント１２０からのＨＴＴＰリクエストに応じて、ＨＴＴＰレスポンスをクライアント１２０に送信する。
【００１９】
サーバ１００は、サーバ１００が提供する独自のコンテンツと、社内サーバ１１０が提供するＷｅｂコンテンツとを、クライアント１２０からの要求に応じて提供する。ここで、Ｗｅｂコンテンツは、社内サーバ１１０が提供するＷｅｂアプリケーションを通じた要求により、社内サーバ１１０で生成されるとする。
【００２０】
具体的には、サーバ１００は、クライアント１２０からリクエストがあった場合に、予め定められた独自のコンテンツをクライアント１２０に送信する。予め定められた独自のコンテンツとは、Ｆｌａｓｈコンテンツを含むコンテンツデータを例示することができる。ここで、Ｆｌａｓｈコンテンツは、ＡｃｔｉｏｎＳｃｒｉｐｔで記述されたコードを含む。また、Ｆｌａｓｈコンテンツは、社内サーバ１１０が提供するＷｅｂコンテンツを要求するインタフェースを提供する。ＡｃｔｉｏｎＳｃｒｉｐｔで記述されたコードについては後述する。なお、Ｆｌａｓｈコンテンツを含むコンテンツデータは、この発明における第２コンテンツデータの一例であるとする。
【００２１】
クライアント１２０は、Ｆｌａｓｈコンテンツを通じて、社内サーバ１１０が提供するＷｅｂコンテンツをサーバ１００に要求する。サーバ１００は、社内サーバ１１０からＷｅｂコンテンツを取得して、取得したＷｅｂコンテンツに、ＪａｖａＳｃｒｉｐｔで記述されたイベント処理コードを埋め込んで、クライアント１２０に提供する。このように、サーバ１００は、クライアント１２０に対してプロクシサーバとして機能する。なお、本コードが埋め込まれたコンテンツデータは、この発明における第１コンテンツデータの一例であるとする。
【００２２】
ここで、社内サーバ１１０が提供するＷｅｂコンテンツは、ＨＴＭＬなどのマークアップ言語で記述されたコンテンツであってよい。サーバ１００が提供するＦｌａｓｈコンテンツを含むコンテンツデータも、マークアップ言語およびＪａｖａＳｃｒｉｐｔで記述されたコンテンツ部分を含んでよい。また、サーバ１００が提供するコンテンツデータもＷｅｂコンテンツとみなすこともできる。しかしながら、説明が複雑になることを防ぐべく、以後の説明では、社内サーバ１１０が提供するコンテンツを単に「Ｗｅｂコンテンツ」と呼び、サーバ１００が提供するコンテンツを単に「Ｆｌａｓｈコンテンツ」と呼ぶことで、両者を区別する。
【００２３】
サーバ１００が埋め込むＪａｖａＳｃｒｉｐｔのコードは、クライアント１２０におけるユーザによる所定のキーボード操作またはマウス操作をフックするコードを含む。当該所定の操作としては、ブラウザの表示内容を出力する操作を含む。ブラウザにより表示された表示データを出力するとは、クリップボードなどの端末の内部リソースに表示データをコピーすること、表示データをプリントすること、表示データを外部に送信すること、などを含む概念とする。ブラウザの表示データとは、ユーザ操作により選択することができるテキストデータ、画像などを含む。所定のユーザ操作は、サーバ１００が埋め込むＪａｖａＳｃｒｉｐｔのコードによってフックされてＪａｖａＳｃｒｉｐｔのコードで処理され、上述した印刷、クリップボードへのコピーなどの、ブラウザが有する規定の出力機能は実行されない。
【００２４】
ここで、クライアント１２０は、Ｆｌａｓｈコンテンツに含まれるＡｃｔｉｏｎＳｃｒｉｐｔのコードに従って、ブラウザでＪａｖａＳｃｒｉｐｔの実行が有効に設定されているか否かを継続的にチェックする。ＪａｖａＳｃｒｉｐｔの実行がブラウザで無効に設定されていることが検出された場合には、Ｆｌａｓｈコンテンツに含まれるＡｃｔｉｏｎＳｃｒｉｐｔのコードにより、Ｗｅｂコンテンツのブラウザ・ウィンドウが強制的に閉じられたり、Ｗｅｂコンテンツの表示画面が、ＪａｖａＳｃｒｉｐｔを有効に設定するヘルプ画面で強制的に書き換えられたりされる。
【００２５】
以上説明したサーバ１００によれば、社内サーバ１１０が提供するＷｅｂアプリケーションが、コピー・ペースト操作、プリント操作などのセキュリティ上危険なユーザ操作を防止する機能を有していなくても、それらのユーザ操作を防止することができる。このため、クライアント１２０を通じて企業の機密情報等が漏洩してしまう可能性を著しく低減することができる。また、既存の社内ネットワーク２０にサーバ１００を追加するだけでよく、ユーザ操作を防止するために社内サーバ１１０が提供するＷｅｂアプリケーションに変更を加えなくて済む。
【００２６】
図２は、サーバ１００のブロック構成の一例を示す。サーバ１００は、クライアント通信部２１０、要求取得部２２０、コンテンツ要求生成部２３０、外部サーバ通信部２４０、コンテンツ取得部２５０、データ生成部２６０、コンテンツ記憶部２７０、および、埋め込みコード記憶部２８０を有する。
【００２７】
クライアント通信部２１０は、クライアント１２０と通信することができ、外部サーバ通信部２４０は、サーバ１００の外部のサーバと通信することができる。外部のサーバとしては、社内サーバ１１０を例示することができる。ここではクライアント通信部２１０および外部サーバ通信部２４０を別個の機能ブロックとして説明したが、これらの機能ブロックは１つの機能ブロックとして実装されてよいことは言うまでもない。また、クライアント通信部２１０の一部の機能および外部サーバ通信部２４０の一部の機能が、それぞれ別個のネットワークインタフェースカードで実装されてよいが、別個のネットワークインタフェースカードにより実装されることは要しない。なお、本図に説明する他の機能ブロックについて同様であり、別個の機能ブロックで表すことが別個のソフトウェアコンポーネントまたはハードウェアコンポーネントで実装されることを要するものではないことは当然である。
【００２８】
要求取得部２２０は、クライアント１２０からの要求を取得する。具体的には、要求取得部２２０は、クライアント１２０からＦｌａｓｈコンテンツの要求を取得する。要求取得部２２０がＦｌａｓｈコンテンツの要求を取得した場合に、データ生成部２６０は、Ｆｌａｓｈコンテンツのデータを生成する。具体的には、コンテンツ記憶部２７０がＦｌａｓｈコンテンツを予め記憶しており、データ生成部２６０はコンテンツ記憶部２７０が記憶しているＦｌａｓｈコンテンツをコンテンツ記憶部２７０から取得して、取得したＦｌａｓｈコンテンツのデータをクライアント通信部２１０に供給する。クライアント通信部２１０は、Ｆｌａｓｈコンテンツデータをクライアント１２０に送信する。なお、クライアント通信部２１０は、Ｆｌａｓｈコンテンツデータをクライアント１２０に送信する送信部として機能する。
【００２９】
Ｆｌａｓｈプログラムは、クライアント１２０に対して、社内サーバ１１０が提供するＷｅｂアプリケーションへのインタフェースを提供する。また、Ｆｌａｓｈコンテンツデータは、ブラウザへの所定のイベントに応じてイベント処理コードが実行されるか否かを判定する判定コードを含んでいる。判定コードとは、ブラウザにおいてＪａｖａＳｃｒｉｐｔが有効に設定されているか否かを判定する、ＡｃｔｉｏｎＳｃｒｉｐｔで記述されたコードを含む。
【００３０】
ここで、所定のイベントとしては、ユーザによるブラウザに対するコンテンツへのアクセスイベントを例示することができる。この場合においてイベント処理コードは、ユーザによるコンテンツへのアクセスを防止するコードであってよい。アクセスイベントとしては、ブラウザで表示されたコンテンツを外部に出力する指示によってブラウザに生じるイベントを例示することができる。また、当該外部に出力する指示としては、クライアント１２０における複数のソフトウェアコンポーネント間でデータ共有される記憶領域に、ブラウザにより表示されたデータを記憶するユーザ指示を含む。他にも、外部出力する指示としては、ブラウザによる表示画面を印刷するユーザ指示を含む。
【００３１】
ここで、ブラウザに表示されたデータとは、ブラウザに表示されたテキストデータ、イメージデータなどを含む概念であってよい。クライアント１２０における複数のソフトウェアコンポーネント間でデータ共有される記憶領域は、ハードウェアとしてはメモリ、ハードディスク等の記憶デバイスであってよく、ソフトウェアとしてはいわゆるクリップボードなどの共有のメモリアドレス空間であってよい。また、データを記憶するとは、一時的に記憶することを含む概念であるとする。データを記憶するとは、例えばデータを電子ファイルとしてファイルシステムに記録する概念を含む。
【００３２】
クライアント１２０に送信されたＦｌａｓｈコンテンツデータは、クライアント１２０上で動作するブラウザへのアドオン（またはプラグイン）として実行される。具体的には、ブラウザには、Ｆｌａｓｈコンテンツを実行するソフトウェアコンポーネントであるアドオンプログラムが拡張機能として組み込まれており、当該アドオンプログラムにより、Ｆｌａｓｈコンテンツデータが実行される。なお、Ｆｌａｓｈコンテンツはいわば動画の一種とみなすこともできるので、Ｆｌａｓｈコンテンツデータの実行を、Ｆｌａｓｈコンテンツデータの再生と言い換えることもできる。
【００３３】
また、要求取得部２２０は、Ｆｌａｓｈコンテンツデータに従って処理を実行しているクライアント１２０から、コンテンツの要求を取得する。具体的には、要求取得部２２０は、Ｆｌａｓｈコンテンツデータに従って処理を実行しているクライアント１２０から、社内サーバ１１０が提供するＷｅｂコンテンツの要求を取得する。より具体的には、Ｆｌａｓｈコンテンツデータには、社内サーバ１１０が提供するＷｅｂコンテンツの場所を示すリンク情報が含まれている。要求取得部２２０は、クライアント１２０上で動作しているブラウザ上でリンク情報が選択されることでクライアント１２０から発行されるＨＴＴＰリクエストを、Ｗｅｂコンテンツの要求として取得する。
【００３４】
要求取得部２２０が、社内サーバ１１０が提供するＷｅｂコンテンツの要求を取得した場合に、コンテンツ要求生成部２３０は、外部の社内サーバ１１０にＷｅｂコンテンツを要求するＨＴＴＰリクエストを生成する。コンテンツ要求生成部２３０が生成したＨＴＴＰリクエストは、外部サーバ通信部２４０により社内サーバ１１０に送信される。外部サーバ通信部２４０は、社内サーバ１１０と通信して、社内サーバ１１０が提供するＷｅｂコンテンツを取得する。
【００３５】
コンテンツ取得部２５０は、要求取得部２２０がコンテンツの要求を取得した場合に、コンテンツを外部のサーバから取得する。具体的には、コンテンツ取得部２５０は、外部サーバ通信部２４０が取得した通信データからＷｅｂコンテンツを抽出する。
【００３６】
データ生成部２６０は、要求されたＷｅｂコンテンツと、当該Ｗｅｂコンテンツを読み込んだブラウザへのアクセスイベントに応じて実行される、ユーザによるコンテンツへのアクセスを防止するためのイベント処理コードとを含むＷｅｂコンテンツデータを生成する。具体的には、データ生成部２６０は、コンテンツ取得部２５０が取得したＷｅｂコンテンツに当該イベント処理コードを埋め込むことにより、Ｗｅｂコンテンツデータを生成する。このように、データ生成部２６０は、要求取得部２２０がコンテンツの要求を取得した場合に、Ｗｅｂコンテンツデータを生成する。なお、埋め込みコード記憶部２８０は、イベント処理コードを記憶しており、データ生成部２６０は、埋め込みコード記憶部２８０が記憶しているイベント処理コードをＷｅｂコンテンツに埋め込むことにより、Ｗｅｂコンテンツデータを生成する。データ生成部２６０が生成したＷｅｂコンテンツデータは、クライアント通信部２１０によりクライアント１２０に送信される。
【００３７】
以上説明したように、サーバ１００は、上記判定コードを含むＦｌａｓｈコンテンツおよびイベント処理コードが埋め込まれたＷｅｂコンテンツをクライアント１２０に提供する。これにより、クライアント１２０上で動作するブラウザでＪａｖａＳｃｒｉｐｔの設定が無効にされたことを検出でき、クライアント１２０のユーザによる所定のキー操作をイベント処理コードにより確実に禁止することができる。
【００３８】
なお、記録媒体９０は、サーバ１００用のプログラムを記憶している。記録媒体９０が記憶しているプログラムは、本実施形態に係るサーバ１００として機能するコンピュータなどの電子情報処理装置に提供される。当該コンピュータが有するＣＰＵは、当該プログラムの内容に応じて動作して、当該コンピュータの各部を制御する。ＣＰＵが実行するプログラムは、図１以後の図に関連して説明されるサーバ１００などとして、当該コンピュータを機能させる。
【００３９】
記録媒体９０としては、ＣＤ−ＲＯＭの他に、ＤＶＤまたはＰＤ等の光学記録媒体、ＭＯまたはＭＤなどの光磁気記録媒体、テープ媒体またはハードディスク装置などの磁気記録媒体、半導体メモリ、磁気メモリなどを例示することができる。また、専用通信ネットワークあるいはインターネットに接続されたサーバシステムに設けたハードディスクまたはＲＡＭ等の記憶装置が、記録媒体９０として機能することもできる。
【００４０】
図３は、サーバ１００、クライアント１２０、および社内サーバ１１０の処理シーケンスの一例を示す。Ｓ３０２において、クライアント１２０は、ユーザの操作に応じて、Ｆｌａｓｈコンテンツをクライアント１２０に要求する。データ生成部２６０は、当該要求へのレスポンスとして、コンテンツ記憶部２７０が記憶しているＦｌａｓｈコンテンツをクライアント１２０に返信する（Ｓ３０４）。クライアント１２０は、受信したＦｌａｓｈコンテンツをブラウザのアドオンで再生することにより、Ｆｌａｓｈコンテンツを表示する（Ｓ３０６）。
【００４１】
Ｆｌａｓｈコンテンツには、社内サーバ１１０が提供するＷｅｂコンテンツへのリンク情報が含まれている。ユーザが当該リンク情報をマウス操作などで選択すると、クライアント１２０は、リンク情報で示されるＷｅｂコンテンツを要求するＨＴＴＰリクエストを、サーバ１００を宛先として送信する（Ｓ３０８）。サーバ１００では、要求取得部２２０が当該ＨＴＴＰリクエストを受け取った場合に、コンテンツ要求生成部２３０は、送信元をサーバ１００、宛先を社内サーバ１１０として、Ｗｅｂコンテンツを要求するＨＴＴＰリクエストを生成する。コンテンツ要求生成部２３０が生成したＨＴＴＰリクエストは、外部サーバ通信部２４０により社内サーバ１１０に送信される（Ｓ３１０）。
【００４２】
社内サーバ１１０は、サーバ１００から受信したＨＴＴＰリクエストに応じて、要求されたＷｅｂコンテンツをサーバ１００に送信する（Ｓ３１２）。サーバ１００では、データ生成部２６０により、社内サーバ１１０から取得したＷｅｂコンテンツに、イベント処理コードが埋め込まれる（Ｓ３１４）。クライアント通信部２１０は、イベント処理コードが埋め込まれたＷｅｂコンテンツを、送信元をサーバ１００、宛先をクライアント１２０として、クライアント１２０に送信する。
【００４３】
クライアント１２０は、Ｆｌａｓｈコンテンツ内のＡｃｔｉｏｎＳｃｒｉｐｔで記述されたコードに従って、サーバ１００から受信したイベント処理コードが埋め込まれたＷｅｂコンテンツを、新たなウィンドウを生成して表示する。これにより、クライアント１２０は、Ｆｌａｓｈコンテンツを再生しているブラウザ・ウィンドウと、社内サーバ１１０が提供するＷｅｂコンテンツを表示するブラウザ・ウィンドウとを表示する。
【００４４】
クライアント１２０上で動作するブラウザにおいてＪａｖａＳｃｒｉｐｔが有効に設定されている場合に、社内サーバ１１０が提供するＷｅｂコンテンツを表示しているブラウザ・ウィンドウに対して所定のユーザ操作がなされると、その操作はイベント処理コードによりフックされる。このように、イベント処理コードは、ブラウザにおいてアクセスイベントを生じさせるユーザ操作をフックして、ブラウザによる規定の処理に替えて実行される。このため、ブラウザが当該ユーザ操作に対して定めている規定の処理は実行されない。
【００４５】
一方、Ｆｌａｓｈコンテンツを再生しているブラウザ・ウィンドウの存在により、ＡｃｔｉｏｎＳｃｒｉｐｔで記述された判定コードによって、ブラウザにおいてＪａｖａＳｃｒｉｐｔが有効に設定されているか否かが継続的に判定される。したがって、ブラウザにおいてＪａｖａＳｃｒｉｐｔが無効に設定された場合には、そのことが検出される。なお、Ｆｌａｓｈコンテンツには、判定コードの他に、アクセスイベントに応じてイベント処理コードが実行されない旨が判定コードにより判定された場合に、ブラウザによるユーザへのコンテンツの提供を停止させる制御コードが含まれていてよい。制御コードには、Ｗｅｂコンテンツを表示しているブラウザの画面を制御するＡｃｔｉｏｎＳｃｒｉｐｔのコードが含まれていてよい。
【００４６】
より具体的には、制御コードには、アクセスイベントに応じてイベント処理コードが実行されない旨が判定コードの実行により判定された場合に、Ｗｅｂコンテンツを表示しているブラウザの画面を書き換える画面制御コードが含まれてよい。例えば、画面制御コードの実行により、社内サーバ１１０のＷｅｂコンテンツを表示しているブラウザの画面は、ＪａｖａＳｃｒｉｐｔを有効に設定する操作を促すヘルプ画面で強制的に書き換えられる。他にも、制御コードには、イベント処理コードが実行されない旨が判定コードの実行により判定された場合に、Ｗｅｂコンテンツを表示しているブラウザの画面を閉じさせる画面制御コードが含まれてよい。これにより、ＪａｖａＳｃｒｉｐｔが無効にされた場合には、社内サーバ１１０が提供するＷｅｂコンテンツは強制的に閉じられる。このため、ユーザがＪａｖａＳｃｒｉｐｔを無効にしてＷｅｂコンテンツからデータを抽出しようとする行為を防止することができる。
【００４７】
図４は、クライアント１２０上で動作するブラウザが表示するウィンドウの一例を示す。ウィンドウ４００は、図３のＳ３０６のステップにおいてブラウザが表示するＦｌａｓｈコンテンツの一例を示す。Ｆｌａｓｈコンテンツは、ブラウザへのアドオンプログラムにより再生され、再生結果はブラウザに表示される。
【００４８】
ブラウザは、Ｆｌａｓｈコンテンツを再生することにより、ウィンドウ４００内にアイコン４１０ａ−ｆを表示する。ウィンドウ４００内のアイコン４１０ａ−ｅがマウスによりクリックされると、それぞれ受信メール、メールボックス、新規メール、予定表、アドレス帳、および設定変更の各機能を実行するコードが実行される。それぞれのアイコン４１０がクリックされた場合の動作は、Ｆｌａｓｈコンテンツに含まれるＡｃｔｉｏｎＳｃｒｉｐｔのコードで定められる。
【００４９】
ここで、アイコン４１０ｆがクリックされると、Ｗｅｂアプリケーションが立ち上がる。具体的には、アイコン４１０ｆがクリックされると、アイコン４１０ｆへのクリック操作に対応づけられたＡｃｔｉｏｎＳｃｒｉｐｔのコードが実行され、社内サーバ１１０が提供するＷｅｂアプリケーションのＷｅｂコンテンツを要求するリクエストがサーバ１００に送信される。ブラウザは、Ｗｅｂコンテンツを受信した場合に、新たに生成されたウィンドウ４２０にＷｅｂコンテンツを表示する。
【００５０】
ウィンドウ４２０は、Ｗｅｂアプリケーションにより提供されたＷｅｂコンテンツを表示したブラウザの画面の一例を示す。ブラウザは、社内サーバ１１０が生成したＷｅｂコンテンツを解釈して、顧客情報などのテキストデータ４３０ａ、ｂをウィンドウ４２０内に表示する。クライアント１２０のユーザは、クライアント１２０が有するマウス、キーボードなどの入力デバイスを操作して、ウィンドウ４２０内に表示されたテキストデータ４３０を選択することができる。
【００５１】
ここで、クライアント１２０では、ソフトウェアコンポーネント間でデータを共用することを一つの目的として、ＯＳまたはＯＳ上で動作するソフトウェアコンポーネントの機能により、選択されたデータをクリップボード等の共通のメモリ領域に記憶させる操作が定められている。例えば、データが選択された状態でキーボードのコントロール・キーおよび"Ｃ"キーが共に押下された場合に、選択されたデータは共通のメモリ領域に記憶され少なくとも一時的に保持される。
【００５２】
一方、ウィンドウ４２０には、入力デバイスによる所定の操作の一例として、キーボードのコントロール・キーおよび"Ｃ"キーが共に押下する操作をフックするＪａｖａＳｃｒｉｐｔのコードが組み込まれたＷｅｂコンテンツが表示されている。このため、ウィンドウ４２０内で選択したテキストデータをクリップボードにコピーすべく、ウィンドウ４２０が選択された状態でユーザが入力デバイスで当該キー操作をすると、ブラウザが提供するクリップボードへの記憶機能ではなく、ブラウザは当該ＪａｖａＳｃｒｉｐｔのコードを実行する。このため、顧客情報などの機密データがクリップボードにコピーされることを防ぐことができる。したがって、ウィンドウ４２０内に表示されたデータを他のソフトウェアコンポーネントで不正に利用されることを未然に防ぐことができる。
【００５３】
また、ウィンドウ４００に表示されたＦｌａｓｈコンテンツには、ブラウザにおいてＪａｖａＳｃｒｉｐｔが有効に設定されているか否かを継続的に判定するＡｃｔｉｏｎＳｃｒｉｐｔのコードが含まれている。ウィンドウ４００の存在により、ＪａｖａＳｃｒｉｐｔが無効にされたことを検出することができる。このため、データをクリップボードにコピーすべくユーザがＪａｖａＳｃｒｉｐｔを無効に設定すると、当該判定コードによりその行為が検出される。
【００５４】
また、Ｆｌａｓｈコンテンツには、Ｆｌａｓｈコンテンツを再生しているウィンドウ４００が閉じられた場合に、Ｗｅｂコンテンツを表示しているウィンドウ４２０を強制的に閉じるＡｃｔｉｏｎＳｃｒｉｐｔコードが含まれてよい。これにより、ウィンドウ４００が閉じられた場合にウィンドウ４２０を強制的に閉じることができ、ＪａｖａＳｃｒｉｐｔの無効設定を検出できない状態でウィンドウ４２０が開かれたままになってしまうことを防ぐことができる。
【００５５】
図５は、サーバ１００が生成するＷｅｂコンテンツの一例を示す。サーバ１００は、イベント処理コード５３０を含むヘッダ部５１０と、本文５２０とを含む、ＨＴＭＬで記載されたＷｅｂコンテンツデータを生成する。具体的には、社内サーバ１１０からは、イベント処理コード５３０を含まないＷｅｂコンテンツがサーバ１００に提供され、サーバ１００においてイベント処理コード５３０がヘッダ部５１０に埋め込まれる。イベント処理コード５３０は、サーバ１００内の埋め込みコード記憶部２８０に予め記憶され、データ生成部２６０においてＷｅｂコンテンツに埋め込まれる。そして、イベント処理コード５３０が埋め込まれたＷｅｂコンテンツデータは、サーバ１００からクライアント１２０に送信される。
【００５６】
図示されるように、イベント処理コード５３０としては、サーバ１００が保持している"ＣｏｎｎｅｃｔＯＮＥ．ｊｓ"という名前のファイルに記載されたコードを組み込む旨の記述形式をとることができる。ファイル"ＣｏｎｎｅｃｔＯＮＥ．ｊｓ"には、ＪａｖａＳｃｒｉｐｔでイベント処理コードの実体が記述されており、クライアント１２０は、当該ファイルに記載されたイベント処理コードを読み込み、当該コードに従って動作する。
【００５７】
ここで、イベント処理コードとして、キーイベントの発生をフックするキーイベント関数が記述されてよい。キーイベント関数は、発生したキーイベントを取得して、発生したキーイベントが予め定められた種類のイベントである場合に、Ｆａｌｓｅ値を返却する関数であってよい。また、キーイベント関数は、発生したキーイベントが予め定められた種類以外のイベントである場合に、Ｔｒｕｅ値を返却する関数であってよい。予め定められた種類のキーイベントとは、複数のキーイベントの組み合わせの種類であってもよい。
【００５８】
一例として、キーイベント関数は、発生したキーイベントが、クリップボードコピーの操作が割り当てられているコントロール・キーと"Ｃ"キーとの組み合わせの押下イベントである場合に、Ｆａｌｓｅ値を返却してよい。このため、当該イベントが発生した場合には、ブラウザを介して本来実行されるクリップボードコピー機能は実行されずに終了する。このため、選択されたデータはクリップボードにコピーされることはない。他にも、キーイベント関数は、所定のメッセージをポップアップ表示して終了する関数であってよい。所定のメッセージとしては、「コピー・ペースト機能は禁止されています」等の警告メッセージを例示することができる。
【００５９】
クリップボードコピーの操作の他、禁止されるべきキーイベントとしては、クライアント１２０のローカルリソースにコンテンツを保存するキーイベント、ウィンドウ画面をキャプチャするキーイベント、ウィンドウ画面をプリントするキーイベントなどを例示することができる。ここで、プリントとは、プリンタへの印刷出力および電子データとしてのプリント出力を含む概念とする。また、キーイベントとは、キーボードの押下イベントの他に、マウスのクリックイベントを含む概念とする。
【００６０】
なお、既に説明したように、ＪａｖａＳｃｒｉｐｔが有効に設定されているか否かはＡｃｔｉｏｎＳｃｒｉｐｔのコードで判定される。しかしながら、Ｆｌａｓｈコンテンツを再生するアドオンが無効に設定されると、ＪａｖａＳｃｒｉｐｔが有効に設定されているか否かを判定することができない場合がある。このため、ファイル"ＣｏｎｎｅｃｔＯＮＥ．ｊｓ"には、アドオンが無効に設定されているか否かを判定するコードが含まれていてよい。また、本コードによりアドオンが無効に設定されている旨が判定された場合に、Ｗｅｂコンテンツを表示しているブラウザ・ウィンドウを強制的に閉じるコードがさらに含まれていてよい。これにより、ＪａｖａＳｃｒｉｐｔが有効であるか否かと、Ｆｌａｓｈアドオンが有効であるか否かを、ＪａｖａＳｃｒｉｐｔのコードと、ＡｃｔｉｏｎＳｃｒｉｐｔのコードとで相互に監視することができる。
【００６１】
以上に例示した埋め込みコードにより、ブラウザから情報が外部に流出してしまうことを未然に防ぐことができる。このため、サーバ１００を追加することにより、社内サーバ１１０のＷｅｂアプリケーションに変更を加えずとも、情報が外部に漏洩しにくいＷｅｂアプリケーション環境をクライアント１２０に提供することができる。
【００６２】
図６は、ＪａｖａＳｃｒｉｐｔが有効か否かを判定する判定ルーチンにおける処理フローの一例を示す。本判定フローの実行機能は、ＡｃｔｉｏｎＳｃｒｉｐｔのコードによりクライアント１２０に組み込まれ、クライアント１２０が各ステップを実行する。
【００６３】
Ｓ６０２において、クリップボードに所定値を書き込むＪａｖａＳｃｒｉｐｔ関数をブラウザに実行させる。本ステップの機能は、ＪａｖａＳｃｒｉｐｔの関数をコールするＡｃｔｉｏｎＳｃｒｉｐｔのサブルーチンを用いて実装される。例えば、Ｆｌａｓｈコンテンツをリンクとして含むＨＴＭＬドキュメントに、引数で与えられた値をクリップボードに記憶するＪａｖａＳｃｒｉｐｔの関数を組み込んでおく。そして、ＡｃｔｉｏｎＳｃｒｉｐｔでは、当該ＪａｖａＳｃｒｉｐｔの関数と当該関数の引数となる所定値とを指定して、上記サブルーチンを呼び出す。ここで、所定値は、Ｆｌａｓｈコンテンツに組み込まれた固定値であってよいが、上記サブルーチンを呼び出す度に生成される、実質的にランダムな値であってよい。
【００６４】
そして、Ｓ６０４において、クリップボードに書き込まれている値を取得するＪａｖａＳｃｒｉｐｔを、ブラウザに実行させる。そして、Ｓ６０６において、ＪａｖａＳｃｒｉｐｔの実行結果を戻り値で取得する。具体的には、Ｆｌａｓｈコンテンツをリンクとして含むＨＴＭＬドキュメントに、クリップボードに記憶されている値をクリップボードから読み出して、読み出した値を返却するＪａｖａＳｃｒｉｐｔの関数を組み込んでおく。そして、ＡｃｔｉｏｎＳｃｒｉｐｔでは、当該ＪａｖａＳｃｒｉｐｔの関数を指定して、上記サブルーチンを呼び出すことで、クリップボードに記憶された値を戻り値で取得する。
【００６５】
そして、Ｓ６０８において、Ｓ６０６で取得した値が書き込んだ値と一致しているか否かを判断する。一致している場合には、本判定ルーチンを終了する。一致していない場合には、現在表示しているＷｅｂコンテンツの画面を、所定の画面に書き換える。所定の画面とは、上述したヘルプ画面であってよい。本判定ルーチンが所定の時間間隔で実行されることにより、ブラウザにおいてＪａｖａＳｃｒｉｐｔが有効であるか否かが継続的にチェックされる。
【００６６】
なお、本図のＳ６０２〜Ｓ６０４では、ＪａｖａＳｃｒｉｐｔによるクリップボード操作を通じた処理を例示した。この処理は、ＪａｖａＳｃｒｉｐｔが有効に設定されているか否かを判定する処理の一例に過ぎない。本クリップボード操作を通じた処理以外にも、ＪａｖａＳｃｒｉｐｔの処理系で実行されるコードをＡｃｔｉｏｎＳｃｒｉｐｔから実行させ、その実行結果に基づく判定処理を用いることができる。
【００６７】
すなわち、ＡｃｔｉｏｎＳｃｒｉｐｔによる判定コードは、上述したイベント処理コードを実行するコード処理系と同じコード処理系でブラウザに所定のコードを実行させる実行コードと、所定のコードの実行結果に基づき、判定を行う判定実行コードとを含む。具体的には、本図のＳ６０２の処理のように、実行コードは、クライアント１２０で実行される複数のソフトウェアコンポーネント間でデータが共有される記憶領域に所定値を記憶させるコードをブラウザに実行させ、判定実行コードは、実行コードの実行後に当該記憶領域に記憶されている値に基づいて判定を行う。
【００６８】
そして、Ｓ６０４およびＳ６０６の処理のように、判定コードは、イベント処理コードを実行するコード処理系と同じコード処理系で実行され、上述の記憶領域に記憶されている値を取得するコードを、ブラウザに実行させるデータ取得コードをさらに含む。そして、判定実行コードは、データ取得コードの実行により取得された値に基づいて、判定を行う。
【００６９】
なお、本図のＳ６０２〜Ｓ６０６の処理では、クリップボードへの書き込み処理および読み出し処理を、ともにＪａｖａＳｃｒｉｐｔの処理系で実行させた。判定コードを実行する処理系で当該記憶領域に直接アクセスすることができる場合には、書き込み処理および読み出し処理のいずれか一方だけをＪａｖａＳｃｒｉｐｔの処理系で実行させてよい。具体的には、Ｓ６０４およびＳ６０６に替えて、クリップボードに直接アクセスして値を読み出しする処理を実行してもよい。他にも、Ｓ６０２に替えて、クリップボードに直接アクセスして所定値を書き込む処理を実行してもよい。
【００７０】
本図では、ＡｃｔｉｏｎＳｃｒｉｐｔのコードからＪａｖａＳｃｒｉｐｔのコードを実行して、ＪａｖａＳｃｒｉｐｔが有効に設定されているか否かを判定する処理を例示した。逆に、ＪａｖａＳｃｒｉｐｔのコードから、ＡｃｔｉｏｎＳｃｒｉｐｔのコードまたは関数を実行して、ＡｃｔｉｏｎＳｃｒｉｐｔを実行するアドオンが有効に設定されているか否かを判定することができる。
【００７１】
以上の説明では、サーバ１００がＦｌａｓｈコンテンツを提供するとしたが、サーバ１００は、Ｆｌａｓｈコンテンツ以外に、Ｊａｖａ（登録商標）アプレットのコンテンツを提供してもよい。Ｊａｖａ（登録商標）アプレットのコードによっても、上述したＡｃｔｉｏｎＳｃｒｉｐｔのコードによる機能と同様の機能を実装することができる。
【００７２】
以上説明したように、システム１０によれば、ＪａｖａＳｃｒｉｐｔが有効に設定されているか否かを判定することができる。これにより、本実施形態を通じて説明したようにＪａｖａＳｃｒｉｐｔのコードを用いて所定のキー操作を禁止することができる。また、システム１０によれば、所定のキー操作を禁止することだけでなく、以下の利点を提供することができる。
【００７３】
例えば、ＪａｖａＳｃｒｉｐｔが動作することを前提として構築されたＷｅｂアプリケーションでは、クライアント１２０側でＪａｖａＳｃｒｉｐｔが無効にされることで誤った処理をしてしまう可能性がある。システム１０によれば、クライアント１２０側でＪａｖａＳｃｒｉｐｔの有効／無効を判定することができるので、ＪａｖａＳｃｒｉｐｔが無効にされてＷｅｂアプリケーションが誤った処理をしてしまうことを未然に防ぐことができる。
【００７４】
また、本実施形態でいうブラウザとは、ブラウジング機能を有するソフトウェアコンポーネントを含む概念であるとする。すなわち、いわゆる単体のブラウザ・ソフトウェアとして提供されるソフトウェアコンポーネントだけでなく、ワードプロセッサなどの種々のソフトウェアコンポーネントにブラウジング・エンジンが組み込まれるなどして、いわゆるブラウザ・ソフトウェアとして機能するソフトウェアコンポーネントも、本実施形態でいうブラウザに含まれる。
【００７５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７６】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００７７】
１０  システム
２０  社内ネットワーク
９０  記録媒体
１００  サーバ
１１０  社内サーバ
１２０  クライアント
１８０  通信回線
２１０  クライアント通信部
２２０  要求取得部
２３０  コンテンツ要求生成部
２４０  外部サーバ通信部
２５０  コンテンツ取得部
２６０  データ生成部
２７０  コンテンツ記憶部
２８０  埋め込みコード記憶部
４００  ウィンドウ
４１０  アイコン
４２０  ウィンドウ
４３０  テキストデータ
５１０  ヘッダ部
５２０  本文
５３０  イベント処理コード
【図１】
2011145772.tif 000003
【図２】
2011145772.tif 000004
【図３】
2011145772.tif 000005
【図４】
2011145772.tif 000006
【図５】
2011145772.tif 000007
【図６】
2011145772.tif 000008