(57)【特許請求の範囲】
【請求項１】
Ｗｅｂブラウザを有する複数のクライアント端末とネットワークを介して接続されるＷｅｂシステムから、前記Ｗｅｂブラウザからのリクエストに対するレスポンスとして出力された出力データに含まれるスクリプトを、前記Ｗｅｂブラウザの動作環境に応じて変換するブラウザ実行スクリプト変換システムであって、
前記Ｗｅｂシステムから出力された前記出力データを取得して、前記出力データに含まれる第１のスクリプトデータを抽出し、また、前記Ｗｅｂブラウザから送信されたリクエストデータに含まれる前記Ｗｅｂブラウザの種類とバージョンの情報を含むブラウザ情報を取得する入出力部と、
１つ以上の種類のＷｅｂブラウザについて変換対象となるスクリプトのステートメント毎に、前記Ｗｅｂブラウザにおける対象のステートメントの動作内容を特定する情報、前記各Ｗｅｂブラウザのブラウザ情報、対象のスクリプトの言語情報を含む情報を保持する対応表と、
前記ブラウザ情報に応じて、前記第１のスクリプトデータに含まれる第１のステートメントについて、前記対応表に、言語情報およびステートメントの内容が、前記第１のスクリプトデータの言語情報および前記第１のステートメントとそれぞれ合致する第１のレコードが存在し、かつ、前記第１のレコードに、ブラウザ情報が、前記入出力部が取得した前記ブラウザ情報と合致するレコードがなく、かつ、前記対応表に、動作内容を特定する情報が、前記第１のレコードのステートメントの動作内容を特定する情報と合致し、ブラウザ情報および言語情報が、前記入出力部が取得した前記ブラウザ情報および前記第１のスクリプトデータの言語情報とそれぞれ合致する第２のレコードが存在する場合に、前記第１のスクリプトデータにおいて、前記第１のステートメントを前記第２のレコードのステートメントの内容によって変換して第２のスクリプトデータを得る変換部とを有し、
前記入出力部は、前記出力データに含まれる前記第１のスクリプトデータを前記第２のスクリプトデータによって置換した変換後出力データを、レスポンスとして前記Ｗｅｂブラウザに応答することを特徴とするブラウザ実行スクリプト変換システム。
【請求項２】
請求項１に記載のブラウザ実行スクリプト変換システムにおいて、
前記対応表は、変換対象のスクリプトのステートメント毎に、さらに、対象のステートメントの引数の情報を保持し、
前記変換部は、前記第１のスクリプトデータにおいて、前記第１のステートメントを前記第２のレコードのステートメントの内容によって変換する際、前記第１のステートメントが引数を有する場合、これを前記第２のレコードの引数の内容によって変換することを特徴とするブラウザ実行スクリプト変換システム。
【請求項３】
請求項１または２に記載のブラウザ実行スクリプト変換システムにおいて、
前記出力データは、スクリプトファイルであることを特徴とするブラウザ実行スクリプト変換システム。
【請求項４】
請求項１または２に記載のブラウザ実行スクリプト変換システムにおいて、
前記出力データは、スクリプトを含んだＷｅｂページであることを特徴とするブラウザ実行スクリプト変換システム。
【請求項５】
Ｗｅｂブラウザを有する複数のクライアント端末とネットワークを介して接続されるＷｅｂシステムから、前記Ｗｅｂブラウザからのリクエストに対するレスポンスとして出力された出力データに含まれるスクリプトを、前記Ｗｅｂブラウザの動作環境に応じて変換するブラウザ実行スクリプト変換システムとしてコンピュータを動作させるブラウザ実行スクリプト変換プログラムであって、
前記Ｗｅｂシステムから出力された前記出力データを取得して、前記出力データに含まれる第１のスクリプトデータを抽出し、また、前記Ｗｅｂブラウザから送信されたリクエストデータに含まれる前記Ｗｅｂブラウザの種類とバージョンの情報を含むブラウザ情報を取得する第１の工程と、
前記ブラウザ情報に応じて、前記第１のスクリプトデータに含まれる第１のステートメントについて、
１つ以上の種類のＷｅｂブラウザについて変換対象となるスクリプトのステートメント毎に、前記Ｗｅｂブラウザにおける対象のステートメントの動作内容を特定する情報、前記各Ｗｅｂブラウザのブラウザ情報、対象のスクリプトの言語情報を含む情報を保持する対応表に、
言語情報およびステートメントの内容が、前記第１のスクリプトデータの言語情報および前記第１のステートメントとそれぞれ合致する第１のレコードが存在し、かつ、前記第１のレコードに、ブラウザ情報が前記第１の工程において取得した前記ブラウザ情報と合致するレコードがなく、
かつ、前記対応表に、
動作内容を特定する情報が前記第１のレコードのステートメントの動作内容を特定する情報と合致し、ブラウザ情報および言語情報が前記第１の工程において取得した前記ブラウザ情報および前記第１のスクリプトデータの言語情報とそれぞれ合致する第２のレコードが存在する場合に、
前記第１のスクリプトデータにおいて、前記第１のステートメントを前記第２のレコードのステートメントの内容によって変換して第２のスクリプトデータを得る第２の工程と、
前記出力データに含まれる前記第１のスクリプトデータを前記第２のスクリプトデータによって置換した変換後出力データを、レスポンスとして前記Ｗｅｂブラウザに応答する第３の工程とを実行することを特徴とするブラウザ実行スクリプト変換プログラム。
【請求項６】
請求項５に記載のブラウザ実行スクリプト変換プログラムにおいて、
前記対応表は、変換対象のスクリプトのステートメント毎に、さらに、対象のステートメントの引数の情報を保持し、
前記第２の工程で、前記第１のスクリプトデータにおいて、前記第１のステートメントを前記第２のレコードのステートメントの内容によって変換する際、前記第１のステートメントが引数を有する場合、これを前記第２のレコードの引数の内容によって変換することを特徴とするブラウザ実行スクリプト変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント端末のＷｅｂブラウザ上でコンテンツを表示する技術に関し、特に、静的または動的なＷｅｂページに埋め込まれたスクリプトもしくはスクリプトファイルについて、Ｗｅｂブラウザおよびそのバージョン毎の差異を吸収するブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
クライアント端末からインターネット等を介してＷｅｂサーバにアクセスし、コンテンツを取得・表示するためには通常Ｗｅｂブラウザが用いられる。Ｗｅｂブラウザは、複数の開発ベンダー等から異なる種類のものが提供されており、これらは、各ベンダー等により様々な新機能の追加や操作の効率化などを目的として、過去の製品との互換性の確保や、ＨＴＭＬ（HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）等のＷｅｂ標準規格への準拠に最大限配慮しつつ、新バージョンのリリースがなされている。
【０００３】
また、昨今のセキュリティ事情を考慮して、安全性や信頼性の向上のため、Ｗｅｂサイト閲覧時のウイルス感染の可能性や、Ｗｅｂサイトのなりすまし、フィッシング詐欺などの問題に対する対策として、セキュリティホールへの対応などを含む新バージョンのリリースや、セキュリティパッチなどの修正プログラムの配布が行われるなど、クライアント端末において利用するＷｅｂブラウザは日々進化している。
【０００４】
このように、Ｗｅｂブラウザには複数の種類が存在し、また、これらについて相当の頻度で新しいバージョンのリリースが行われている。このため、Ｗｅｂサーバにおいて提供するコンテンツが、その実装方法によっては、あるＷｅｂブラウザでは動作する（正常に表示される）が別のＷｅｂブラウザでは動作しない（正常に表示されない）といったことや、あるバージョンのＷｅｂブラウザでは動作していたものが新しいバージョンでは動作しなくなるといった状況が発生する。
【０００５】
これに対し、従来では、開発者はＷｅｂブラウザの種類やバージョン等の動作環境を考慮し、それぞれに対応した複数種類のコンテンツの実装を行う必要があった。また、Ｗｅｂブラウザの新たなバージョンのリリースに合わせて、複数の他のＷｅｂブラウザでの動作を確保しつつ、当該Ｗｅｂブラウザの新バージョンに対応したコンテンツとなる様に都度改修や動作確認作業を行う必要があった。
【０００６】
このような状況に対して、コンテンツをマルチプラットフォーム（ブラウザ）、マルチバージョンに対応させるための技術として、例えば、特開２００２−１３２６４６号公報（特許文献１）には、クライアント機器によって生成されるクライアント要求を処理することによりクライアントタイプを決定し、クライアント要求において識別されるウェブコンテンツを検索し、ウェブコンテンツと特定のクライアントタイプとに関連する１つまたは複数のオーグメンテーションファイルを検索して、これによりウェブコンテンツを変更し、変更したウェブコンテンツをクライアント機器に配信するウェブプロキシサーバの技術が記載されている。これにより、ウェブプロキシサーバの所有または制御をする必要なく、効率的に異なるクライアントをサポートするために、ウェブコンテンツを変換・補完することを可能とする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−１３２６４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
昨今では、ＷｅｂサーバからＷｅｂブラウザに出力・表示されるコンテンツには、ＪａｖａＳｃｒｉｐｔ（登録商標）などのＷｅｂブラウザ上で動作するスクリプトが用いられる場合が多い。これらのスクリプトについても、実装方法等によってはＷｅｂブラウザの差異により動作しない場合や、バージョンアップにより動作しなくなる場合が発生する。      
【０００９】
この点、特許文献１などの従来技術によれば、プロキシサーバにおいて、クライアントのＷｅｂブラウザの動作環境や取得するコンテンツのタイプに応じてオーグメンテーションファイル（パッチファイル）を取得し、これによりコンテンツを変更することで、Ｗｅｂブラウザの環境に合わせてコンテンツを適宜変更することができる。
【００１０】
しかしながら、例えばＷｅｂブラウザ上で動作するスクリプト（コンテンツがスクリプトファイルからなる場合、もしくはＷｅｂページにスクリプトが含まれている場合）についてＷｅｂブラウザの動作環境に合わせて変換することを考えた場合、どのように実装するのが効率的かという点について特許文献１等には具体的な実装手法については開示されていない。また、プロキシサーバを有さない構成ではどのように実装するのが効率的かという点についても開示されていない。
【００１１】
そこで本発明の目的は、静的または動的なコンテンツ（Ｗｅｂページ）に埋め込まれたスクリプトもしくはスクリプトファイルについて、Ｗｅｂブラウザおよびそのバージョン毎の差異を吸収するブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１３】
本発明の代表的な実施の形態によるブラウザ実行スクリプト変換システムは、Ｗｅｂブラウザを有する複数のクライアント端末とネットワークを介して接続されるＷｅｂシステムから、前記Ｗｅｂブラウザからのリクエストに対するレスポンスとして出力された出力データに含まれるスクリプトを、前記Ｗｅｂブラウザの動作環境に応じて変換するシステムであって、以下の特徴を有するものである。
【００１４】
すなわち、ブラウザ実行スクリプト変換システムは、前記Ｗｅｂシステムから出力された前記出力データを取得して、前記出力データに含まれる第１のスクリプトデータを抽出し、また、前記Ｗｅｂブラウザから送信されたリクエストデータに含まれる前記Ｗｅｂブラウザの種類とバージョンの情報を含むブラウザ情報を取得する入出力部と、１つ以上の種類のＷｅｂブラウザについてブラウザ情報と変換対象となるスクリプトの対応を保持する対応表と、前記ブラウザ情報に応じて、前記第１のスクリプトデータのステートメントを前記対応表に基づいて変換して第２のスクリプトデータを得る変換部とを有し、前記入出力部は、前記出力データに含まれる前記第１のスクリプトデータを前記第２のスクリプトデータによって置換した変換後出力データを、レスポンスとして前記Ｗｅｂブラウザに応答することを特徴とするものである。
【００１５】
また、本発明は、コンピュータを上記のようなブラウザ実行スクリプト変換システムとして動作させるプログラムにも適用することができる。
【発明の効果】
【００１６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１７】
すなわち、本発明の代表的な実施の形態によれば、静的または動的なコンテンツ（Ｗｅｂページ）に埋め込まれたスクリプトもしくはスクリプトファイルについて、Ｗｅｂブラウザおよびそのバージョン毎の差異を吸収することが可能となり、システムの信頼性を維持することが可能となる。また、スクリプトを含む個々のコンテンツを修正することなく、最小限の開発によりＷｅｂブラウザの動作環境毎に対応させることでシステムの保守性を向上させることが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態であるスクリプト変換システムを有するＷｅｂアプリケーションシステムの構成例について概要を示した図である。
【図２】本発明の一実施の形態における対応表のデータ構成と具体的なデータの例について示した図である。
【図３】本発明の一実施の形態における出力データの変換処理の例について概要を示した図である。
【図４】本発明の一実施の形態における出力データの変換処理の流れの例について概要を示したフローチャートである。
【図５】本発明の一実施の形態におけるスクリプト変換処理の流れの例について概要を示したフローチャートである。
【図６】本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。
【図７】本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。
【図８】本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。
【図９】本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。
【図１０】本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
本発明の一実施の形態であるブラウザ実行スクリプト変換システム（以下では単に「スクリプト変換システム」と記載する場合がある）は、ブラウザ実行スクリプト変換プログラム（以下では単に「スクリプト変換プログラム」と記載する場合がある）によって実装され、Ｗｅｂシステムが稼働するＷｅｂアプリケーションサーバ上に組み込まれて稼動するシステムである。
【００２１】
スクリプト変換システムは、クライアント端末上のＷｅｂブラウザからのリクエストに対してＷｅｂシステムによって出力されたレスポンスデータを取得し、後処理として、Ｗｅｂブラウザからのリクエストデータに含まれるＷｅｂブラウザの動作環境の情報（以下では「ブラウザ情報」と記載する場合がある）に応じて、出力データに含まれるスクリプトの命令（ステートメント）をマッピングテーブル（対応表）に基づいて変換し、変換後の出力データをレスポンスとしてＷｅｂブラウザに応答する。
【００２２】
これにより、クライアント端末上のＷｅｂブラウザは、スクリプト変換システムにより当該Ｗｅｂブラウザ用に変換されたコンテンツを出力・表示することが可能となる。また、スクリプト変換システムにおいてクライアント端末におけるＷｅｂブラウザの動作環境（Ｗｅｂブラウザの種類やバージョン）の差異を吸収することができ、システムの信頼性を維持することが可能となる。また、スクリプトを含む個々のコンテンツを修正することなく、最小限の開発によりＷｅｂブラウザの動作環境毎に対応させることでシステムの保守性を向上させることが可能となる。
【００２３】
＜システム構成＞
図１は、本発明の一実施の形態であるスクリプト変換システムを有するＷｅｂアプリケーションシステムの構成例について概要を示した図である。Ｗｅｂアプリケーションシステム１は、コンピュータシステムからなるサーバ機器等によって構成されるＷｅｂアプリケーションサーバ１０に対して、１つ以上のクライアント端末４０が図示しないインターネット等のネットワークを介して接続する構成を有する。
【００２４】
クライアント端末４０は、ユーザが利用するＰＣ（Personal Computer）やスマートフォン、携帯電話等の情報処理端末であり、Ｗｅｂアプリケーションサーバ１０にアクセスするためのＷｅｂブラウザ４１を有する。Ｗｅｂブラウザ４１は、独立したアプリケーションプログラムとして実装されているものに限らず、他のアプリケーションプログラムに組み込まれているものであってもよい。
【００２５】
Ｗｅｂアプリケーションサーバ１０は、クライアント端末４０のＷｅｂブラウザ４１からのリクエストデータ４２によるリクエストを受けて、Ｗｅｂブラウザ４１に出力・表示するレスポンスデータ４３をレスポンスとして応答する機能を有し、既存のＷｅｂシステム２０、および本発明の一実施の形態であるスクリプト変換システム３０を有する。
【００２６】
Ｗｅｂシステム２０は、ソフトウェアにより実装され、図示しないＷｅｂサーバプログラムを介してＷｅｂブラウザ４１から送信されたリクエストデータ４２を受け付け、Ｗｅｂブラウザ４１に出力・表示するための出力データ２５をレスポンスとして出力する。リクエストデータ４２によるリクエストに基づいて、データベースやファイル等として保持しているコンテンツ２２のスクリプトファイル２６を出力データ２５として出力したり、アプリケーションプログラム等からなる処理プログラム２１によってスクリプトを含むＷｅｂページ２７を生成して出力したりする。
【００２７】
スクリプト変換システム３０は、上述したように、ソフトウェア（スクリプト変換プログラム）によって実装され、Ｗｅｂシステム２０から出力された出力データ２５を取得して、後処理として、リクエストデータ４２に含まれるブラウザ情報に応じて、出力データ２５に含まれるスクリプトのステートメントを後述する対応表３４に基づいて変換し、変換後出力データ３５をレスポンスデータ４３としてＷｅｂシステム２０（もしくは図示しないＷｅｂサーバプログラム）を介してＷｅｂブラウザ４１に応答する。
【００２８】
スクリプト変換システム３０は、例えば、入出力部３１、変換部３２、および制御部３３などの各部を有し、また、ブラウザ情報と変換対象のスクリプトの対応を登録した対応表３４をデータベース（またはファイルシステム）として有する。対応表３４には、後述するように、Ｗｅｂブラウザ４１の種類やバージョン、スクリプト言語、および変換対象のステートメントなどを含む情報を登録しておく。
【００２９】
入出力部３１は、Ｗｅｂシステム２０からの出力データ２５（スクリプトファイル２６もしくはスクリプトを含むＷｅｂページ２７）を取得し、また、Ｗｅｂブラウザ４１からのリクエストデータ４２からブラウザ情報等の詳細情報を取得し、これらに基づいてレスポンス種別を判定する。さらに、レスポンス種別に応じて出力データ２５からスクリプトを抽出し、変換部３２によってスクリプトの変換処理を行って変換結果を得る。この変換結果によって出力データ２５の該当ステートメントを置換することで変換後出力データ３５（変換後スクリプトファイル３６もしくは変換後のスクリプトを含む変換後Ｗｅｂページ３７）を取得し、これをレスポンスデータ４３としてＷｅｂブラウザ４１に応答する。
【００３０】
変換部３２は、入出力部３１から取得したスクリプトのデータから判定されるＷｅｂブラウザ４１の種類の情報と、リクエストデータ４２から取得したＷｅｂブラウザ４１の種類の情報とを比較し、異なっている場合は変換が必要と判断して、対応表３４に基づいてスクリプトのデータを変換・置換し、変換結果を入出力部３１に渡す。制御部３３は、必要に応じて、入出力部３１による出力データ２５および変換後出力データ３５に係る処理や、対応表３４を利用した変換部３２によるスクリプトの変換処理の制御を行う。対応表３４の内容についてのメンテナンス機能（登録や更新等のユーザインタフェースなど）を有していてもよい。
【００３１】
＜データ構成＞
図２は、対応表３４のデータ構成と具体的なデータの例について示した図である。対応表３４は、１つ以上の種類のＷｅｂブラウザ４１についてのブラウザ情報（Ｗｅｂブラウザ４１の種類、バージョン）と変換対象のスクリプトの対応を登録したマッピングテーブルである。Ｗｅｂブラウザ４１の動作環境に応じて動作や実装方法が異なるスクリプト命令語（ステートメント）を定義し、Ｗｅｂシステム２０から出力された出力データ２５に含まれるスクリプト言語をＷｅｂブラウザ４１の動作環境において動作するよう変換するために用いられるテーブルであり、例えば、動作ＩＤ、ブラウザ情報、スクリプト情報、ステートメント、および引数などの項目を有する。
【００３２】
動作ＩＤの項目は、同一の動作毎にこれを識別するために採番されたＩＤの情報を保持する。Ｗｅｂブラウザ４１の動作環境間で異なるステートメントであっても同一の動作ＩＤが割り当てられている場合は同一の動作を実現するものであることを示す。従って、同一の動作ＩＤの間では、Ｗｅｂブラウザ４１の動作環境に応じてステートメントを相互に置換可能である。
【００３３】
ブラウザ情報の項目は、Ｗｅｂブラウザ４１の動作環境の情報として、例えば、Ｗｅｂブラウザ４１からのリクエストデータ４２のＨＴＴＰ（HyperText Transfer Protocol）ヘッダにおけるＵｓｅｒＡｇｅｎｔ情報など、Ｗｅｂブラウザ４１の種類・規格や名称、およびバージョンを識別可能な情報を保持する。スクリプト情報の項目は、対象のスクリプトの言語名など、スクリプト言語（およびバージョン）を識別可能な情報を保持する。      
【００３４】
ステートメントの項目は、変換対象のステートメント（Ｗｅｂブラウザ４１の動作環境に応じて動作や実装方法が異なるステートメント）の情報を保持する。すなわち、動作ＩＤで特定される動作を対象のＷｅｂブラウザ４１の動作環境で実装するための対象のスクリプト言語におけるステートメントの情報を保持する。引数の項目は、対象のステートメントが関数である場合に指定するべき引数の並びの情報を保持する。引数が固定ではない場合に対応するため、例えば、“｛ｎａｍｅ｝”のように引数に意味を持たせておき、変換時に実際の引数により置換するようにしてもよい。
【００３５】
なお、図２で示したテーブルのデータ構成（項目）はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。
【００３６】
＜変換処理＞
図３は、スクリプト変換システム３０（スクリプト変換プログラム）による出力データ２５の変換処理の例について概要を示した図である。スクリプト変換システム３０は、Ｗｅｂシステム２０から出力された出力データ２５に含まれるスクリプトに対して変換を行う。出力データ２５には、上述したように、Ｗｅｂブラウザ４１からのリクエストデータ４２によって指定された既存のコンテンツ２２のスクリプトファイル２６や、既存の処理プログラム２１によって生成・出力されたスクリプトを含むＷｅｂページ２７が含まれる。
【００３７】
この出力データ２５からスクリプトのデータを抽出し、これに対して、リクエストデータ４２におけるブラウザ情報に基づいて、対応表３４によりステートメントの関数や型などに変換をかける。図３の例では、出力データ２５から抽出したスクリプトにおける関数“Ａ”を、リクエストデータ４２におけるブラウザ情報“ＢＢ”に基づいて、対応表３４により同一の動作ＩＤの関数“Ｂ”に変換している。変換後のスクリプトのデータは、元の出力データ２５におけるステートメントと置換して埋め込み直すことで変換後出力データ３５を得る。この変換後出力データ３５をＷｅｂブラウザ４１に対してレスポンスデータ４３として送信する。
【００３８】
図４は、スクリプト変換システム３０（スクリプト変換プログラム）による上記の出力データ２５の変換処理の流れの例について概要を示したフローチャートである。処理を開始すると、まず、入出力部３１は、Ｗｅｂシステム２０からＷｅｂブラウザ４１に対するレスポンスとして出力された出力データ２５を取得する（Ｓ０１）。また、Ｗｅｂシステム２０を介して、Ｗｅｂブラウザ４１からのリクエストデータ４２を取得し、リクエストデータ４２からブラウザ情報や要求リソース名などの詳細情報を取得する（Ｓ０２）。
【００３９】
その後、出力データ２５のファイル名の拡張子やタグ属性等からレスポンス種別を判別した上で、レスポンス種別に基づいて、出力データ２５についてスクリプトの変換が必要か否かを判定する（Ｓ０３）。出力データ２５がスクリプトファイル２６である場合（レスポンス種別が例えばＪａｖａＳｃｒｉｐｔやＶｉｓｕａｌ  Ｂａｓｉｃ（登録商標）などの場合）や、ブラウジング可能なＷｅｂページ２７である場合（レスポンス種別が例えばＨＴＭＬやＪＳＰ（JavaServer Pages）（登録商標）などの場合）は変換が必要であり、それ以外のレスポンス種別の場合は変換が不要であると判定する。変換が不要と判定した場合は、後述するステップＳ０７へ進む。
【００４０】
ステップＳ０３で変換が必要と判定した場合は、出力データ２５からスクリプトのデータを抽出する（Ｓ０４）。例えば、出力データ２５がスクリプトファイル２６である場合は、スクリプトファイル２６の内容からＸＭＬ（eXtensible Markup Language）コメントを除いたスクリプトの内容を抽出する。また、出力データ２５がスクリプトを含むブラウジング可能なＷｅｂページ２７である場合は、まずＷｅｂページ２７をＸＭＬデータとして読み込み、読み込んだデータから“＜ｓｃｒｉｐｔ＞”タグの内容、および各タグ内の属性として記述されたスクリプトの内容を抽出する。
【００４１】
その後、変換部３２によって、ステップＳ０４で抽出したスクリプトの内容を、対象のＷｅｂブラウザ４１におけるアクション（ステートメント）に変換するスクリプト変換処理を行う（Ｓ０５）。スクリプト変換処理の詳細については後述する。その後、入出力部３１によって、ステップＳ０５で出力された変換後スクリプトのデータにより出力データ２５を置換する（Ｓ０６）。例えば、出力データ２５がスクリプトファイル２６である場合は、変換後のデータである変換後スクリプトファイル３６によってスクリプトファイル２６を上書きして変換後出力データ３５を得る。出力データ２５がＷｅｂページ２７である場合は、変換後のスクリプトのデータをＷｅｂページ２７の対応箇所に上書きして変換後Ｗｅｂページ３７を得る。
【００４２】
その後、ステップＳ０６で得た変換後出力データ３５（もしくはステップＳ０３で変換不要と判定した場合の出力データ２５）をレスポンスとしてＷｅｂシステム２０を介してＷｅｂブラウザ４１に対して送信し（Ｓ０７）、処理を終了する。以上の処理により、クライアント端末４０上のＷｅｂブラウザ４１の動作環境に適したスクリプトの出力を実現することができる。
【００４３】
＜スクリプト変換処理＞
図５は、図４のステップＳ０５のスクリプト変換処理の流れの例について概要を示したフローチャートである。変換部３２は、スクリプト変換処理を開始すると、まず、入出力部３１が取得したスクリプトのデータ、スクリプトの種類やバージョンなどのスクリプト情報、およびＷｅｂブラウザ４１の種類やバージョンなどのブラウザ情報を取得する（Ｓ１１）。その後、解析後のスクリプトのデータを格納する領域を確保した上で、スクリプトのデータをステップ毎に分割し、その全ステップについてステップ毎に処理を繰り返すループ処理を開始する（Ｓ１２）。
【００４４】
ループ処理では、まず、処理対象のステップ内のステートメントについて、（１）入出力部３１から取得した出力データ２５のスクリプト情報が対応表３４の「スクリプト情報」の項目の値と等しい、（２）対象のステートメントが対応表３４の「ステートメント」の項目の値と等しい、の２つの条件に合致するレコードが対応表３４に存在するか否かを確認する（Ｓ１３）。存在しない場合は、対象のステップは変換不要であるとして、当該ステップのスクリプトを解析済みとし、格納領域に保持した上で、ステップＳ１９に進み、ループ処理にて次のステップの処理に移る（Ｓ１９、Ｓ１２）。一方、レコードが存在する場合は、対象のレコードのデータ（“Ｔ１”とする）を保持しておく（Ｓ１４）。
【００４５】
その後、“Ｔ１”のデータの中に、“ブラウザ情報”の項目の値がステップＳ１１で入出力部３１から取得したＷｅｂブラウザ４１のブラウザ情報と合致するものがあるか否かを判定する（Ｓ１５）。合致するものがある場合は、当該ブラウザ情報の環境において対象のステートメントは問題なく動作可能であることから、対象のステップは変換不要であるとして、当該ステップのスクリプトを解析済みとし、格納領域に保持した上で、ステップＳ１９に進み、ループ処理にて次のステップの処理に移る（Ｓ１９、Ｓ１２）。
【００４６】
一方、ステップＳ１５で合致するものがない場合は、対象のステートメントは変換が必要であることから、次に、対応表３４のデータに、（１）「動作ＩＤ」の項目の値が、“Ｔ１”のデータの「動作ＩＤ」の項目の値と等しい、（２）「ブラウザ情報」の項目の値が、ステップＳ１１で入出力部３１から取得したＷｅｂブラウザ４１のブラウザ情報と等しい、（３）「スクリプト情報」の項目の値が、ステップＳ１１で入出力部３１から取得したスクリプト情報と等しい、の３つの条件に合致するレコードがあるか否かを判定する（Ｓ１６）。存在しない場合は、対応表３４にマッピング情報がないことから、対象のステップは変換不可であるとして、当該ステップのスクリプトを解析済みとし、格納領域に保持した上で、ステップＳ１９に進み、ループ処理にて次のステップの処理に移る（Ｓ１９、Ｓ１２）。一方、レコードが存在する場合は、対象のレコードのデータ（“Ｔ２”とする）を保持しておく（Ｓ１７）。
【００４７】
その後、対象のステートメントを“Ｔ２”のデータの「ステートメント」の項目の値により変換する（Ｓ１８）。このとき、対象のステートメントに引数が存在する場合は、引数についても合わせて“Ｔ２”のデータの「引数」の項目の値により変換する。その後、処理対象のステップのスクリプトを解析済みとし、“変換済み”の情報を設定して格納領域に保持した上で、ステップＳ１９に進み、ループ処理にて次のステップの処理に移る（Ｓ１９、Ｓ１２）。
【００４８】
全ステップについてのループ処理を終了すると（Ｓ１９）、格納領域に保持されたデータを変換後スクリプトとして出力し（Ｓ２０）、スクリプト変換処理を終了する。
【００４９】
＜変換処理例＞
以下では、図６〜図１０により、出力データ２５中のスクリプトを変換する処理の具体例について説明する。図６は、スクリプト変換システム３０による出力データ２５の変換処理前の各データの状態の例について概要を示した図である。図６の例では、対応表３４には、ある動作（「動作ＩＤ」＝“１”）について、“Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）”の“バージョン７”と“Ｆｉｒｅｆｏｘ（登録商標）”の“バージョン９”の各Ｗｅｂブラウザ４１で実装するためのステートメントがそれぞれ登録されていることを示している。また、Ｗｅｂブラウザ４１からのリクエストデータ４２には、ブラウザ情報として“Ｆｉｒｅｆｏｘ”の“バージョン９”が指定されており、また、Ｗｅｂシステム２０から出力された出力データ２５はＪａｖａＳｃｒｉｐｔによるスクリプトファイル２６であることを示している。
【００５０】
ここでは、図５のスクリプト変換処理のステップＳ１２〜Ｓ１９のループ処理において、図６の例におけるスクリプトファイル２６を先頭から１ステップずつ処理し、例えば、図６の例におけるスクリプトファイル２６の“ｖａｒ  ｐｏｉｎｔＸ＝…”のステップが処理対象となった場合を例として説明する。このとき、図５のステップＳ１３の処理では、図７に示すように、対応表３４に、スクリプトファイル２６のスクリプト情報（ＪａｖａＳｃｒｉｐｔ）と、対象のステップのステートメント（“ｗｉｎｄｏｗ．ｅｖｅｎｔ…”）が合致するレコードが存在する。従って、図５のステップＳ１４の処理では対応表３４の当該レコードを“Ｔ１”として保持する。
【００５１】
その後、図５のステップＳ１５の処理では、図８に示すように、“Ｔ１”のデータの中に、リクエストデータ４２のブラウザ情報（“Ｆｉｒｅｆｏｘ”の“バージョン９”）に合致するデータが存在しない。このとき、図５のステップＳ１６の処理では、図９に示すように、対応表３４に、“Ｔ１”のデータと「動作ＩＤ」の値（“１”）が同じであり、リクエストデータ４２のブラウザ情報（“Ｆｉｒｅｆｏｘ”の“バージョン９”）と、スクリプトファイル２６のスクリプト情報（ＪａｖａＳｃｒｉｐｔ）が合致するレコードが存在する。従って、図５のステップＳ１７の処理では対応表３４の当該レコードを“Ｔ２”として保持する。
【００５２】
最後に、図５のステップＳ１８の処理において、図１０に示すように、スクリプトファイル２６の対象のステートメントを、対応表３４の“Ｔ２”のデータの「ステートメント」の値（“ｅ．ｐａｇｅＸ”）によって変換（引数なし）し、最終的に変換後スクリプトファイル３６を得る。この変換後スクリプトファイル３６は、リクエストを行ったＷｅｂブラウザ４１（図１０の例では“Ｆｉｒｅｆｏｘ”の“バージョン９”）上で正常に稼働するよう変換されたものである。
【００５３】
以上に説明したように、本発明の一実施の形態であるスクリプト変換システム３０（スクリプト変換プログラム）によれば、クライアント端末４０上のＷｅｂブラウザ４１からのリクエストに対してＷｅｂシステム２０によって出力された出力データ２５を取得し、後処理として、Ｗｅｂブラウザ４１からのリクエストデータ４２に含まれるブラウザ情報に応じて、出力データ２５に含まれるスクリプトのステートメントを対応表３４に基づいて変換し、変換後出力データ３５をレスポンスとしてＷｅｂブラウザ４１に応答する。
【００５４】
これにより、クライアント端末４０上のＷｅｂブラウザ４１は、スクリプト変換システム３０により当該Ｗｅｂブラウザ４１用に変換されたコンテンツ２２を出力・表示することが可能となる。また、スクリプト変換システム３０においてクライアント端末４０におけるＷｅｂブラウザ４１の動作環境の差異を吸収することができ、システムの信頼性を維持することが可能となる。また、スクリプトを含む個々のコンテンツ２２を修正することなく、最小限の開発によりＷｅｂブラウザ４１の動作環境毎に対応させることでシステムの保守性を向上させることが可能となる。
【００５５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００５６】
本発明は、静的または動的なＷｅｂページに埋め込まれたスクリプトもしくはスクリプトファイルについて、Ｗｅｂブラウザおよびそのバージョン毎の差異を吸収するブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラムに利用可能である。
【符号の説明】
【００５７】
１…Ｗｅｂアプリケーションシステム、
１０…Ｗｅｂアプリケーションサーバ、
２０…Ｗｅｂシステム、２１…処理プログラム、２２…コンテンツ、２５…出力データ、２６…スクリプトファイル、２７…Ｗｅｂページ、
３０…スクリプト変換システム、３１…入出力部、３２…変換部、３３…制御部、３４…対応表、３５…変換後出力データ、３６…変換後スクリプトファイル、３７…変換後Ｗｅｂページ、
４０…クライアント端末、４１…Ｗｅｂブラウザ、４２…リクエストデータ、４３…レスポンスデータ。
【図１】
0005535184.tif 000002
【図２】
0005535184.tif 000003
【図３】
0005535184.tif 000004
【図４】
0005535184.tif 000005
【図５】
0005535184.tif 000006
【図６】
0005535184.tif 000007
【図７】
0005535184.tif 000008
【図８】
0005535184.tif 000009
【図９】
0005535184.tif 000010
【図１０】
0005535184.tif 000011