JP2013122655A - ブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラム - Google Patents

ブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラム Download PDF

Info

Publication number
JP2013122655A
JP2013122655A JP2011270418A JP2011270418A JP2013122655A JP 2013122655 A JP2013122655 A JP 2013122655A JP 2011270418 A JP2011270418 A JP 2011270418A JP 2011270418 A JP2011270418 A JP 2011270418A JP 2013122655 A JP2013122655 A JP 2013122655A
Authority
JP
Japan
Prior art keywords
script
browser
data
information
statement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011270418A
Other languages
English (en)
Other versions
JP5535184B2 (ja
Inventor
Ryoji Ogiwara
亮二 荻原
Masaki Aoyama
正輝 青山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Systems Ltd
Original Assignee
Hitachi Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Systems Ltd filed Critical Hitachi Systems Ltd
Priority to JP2011270418A priority Critical patent/JP5535184B2/ja
Publication of JP2013122655A publication Critical patent/JP2013122655A/ja
Application granted granted Critical
Publication of JP5535184B2 publication Critical patent/JP5535184B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】Webページに埋め込まれたスクリプトもしくはスクリプトファイルについて、Webブラウザおよびそのバージョン毎の差異を吸収するブラウザ実行スクリプト変換システムを提供する。
【解決手段】Webシステム20から出力された出力データ25を取得して第1のスクリプトデータを抽出し、またWebブラウザ41から送信されたリクエストデータ42に含まれるブラウザ情報を取得する入出力部31と、1つ以上の種類のWebブラウザ41についてブラウザ情報と変換対象となるスクリプトの対応を保持する対応表34と、前記ブラウザ情報に応じて、前記第1のスクリプトデータのステートメントを対応表34に基づいて変換して第2のスクリプトデータを得る変換部32とを有し、入出力部31は、前記第1のスクリプトデータを前記第2のスクリプトデータによって置換した変換後出力データ35を、レスポンスとしてWebブラウザ41に応答する。
【選択図】図1

Description

本発明は、クライアント端末のWebブラウザ上でコンテンツを表示する技術に関し、特に、静的または動的なWebページに埋め込まれたスクリプトもしくはスクリプトファイルについて、Webブラウザおよびそのバージョン毎の差異を吸収するブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラムに適用して有効な技術に関するものである。
クライアント端末からインターネット等を介してWebサーバにアクセスし、コンテンツを取得・表示するためには通常Webブラウザが用いられる。Webブラウザは、複数の開発ベンダー等から異なる種類のものが提供されており、これらは、各ベンダー等により様々な新機能の追加や操作の効率化などを目的として、過去の製品との互換性の確保や、HTML(HyperText Markup Language)、CSS(Cascading Style Sheets)等のWeb標準規格への準拠に最大限配慮しつつ、新バージョンのリリースがなされている。
また、昨今のセキュリティ事情を考慮して、安全性や信頼性の向上のため、Webサイト閲覧時のウイルス感染の可能性や、Webサイトのなりすまし、フィッシング詐欺などの問題に対する対策として、セキュリティホールへの対応などを含む新バージョンのリリースや、セキュリティパッチなどの修正プログラムの配布が行われるなど、クライアント端末において利用するWebブラウザは日々進化している。
このように、Webブラウザには複数の種類が存在し、また、これらについて相当の頻度で新しいバージョンのリリースが行われている。このため、Webサーバにおいて提供するコンテンツが、その実装方法によっては、あるWebブラウザでは動作する(正常に表示される)が別のWebブラウザでは動作しない(正常に表示されない)といったことや、あるバージョンのWebブラウザでは動作していたものが新しいバージョンでは動作しなくなるといった状況が発生する。
これに対し、従来では、開発者はWebブラウザの種類やバージョン等の動作環境を考慮し、それぞれに対応した複数種類のコンテンツの実装を行う必要があった。また、Webブラウザの新たなバージョンのリリースに合わせて、複数の他のWebブラウザでの動作を確保しつつ、当該Webブラウザの新バージョンに対応したコンテンツとなる様に都度改修や動作確認作業を行う必要があった。
このような状況に対して、コンテンツをマルチプラットフォーム(ブラウザ)、マルチバージョンに対応させるための技術として、例えば、特開2002−132646号公報(特許文献1)には、クライアント機器によって生成されるクライアント要求を処理することによりクライアントタイプを決定し、クライアント要求において識別されるウェブコンテンツを検索し、ウェブコンテンツと特定のクライアントタイプとに関連する1つまたは複数のオーグメンテーションファイルを検索して、これによりウェブコンテンツを変更し、変更したウェブコンテンツをクライアント機器に配信するウェブプロキシサーバの技術が記載されている。これにより、ウェブプロキシサーバの所有または制御をする必要なく、効率的に異なるクライアントをサポートするために、ウェブコンテンツを変換・補完することを可能とする。
特開2002−132646号公報
昨今では、WebサーバからWebブラウザに出力・表示されるコンテンツには、JavaScript(登録商標)などのWebブラウザ上で動作するスクリプトが用いられる場合が多い。これらのスクリプトについても、実装方法等によってはWebブラウザの差異により動作しない場合や、バージョンアップにより動作しなくなる場合が発生する。
この点、特許文献1などの従来技術によれば、プロキシサーバにおいて、クライアントのWebブラウザの動作環境や取得するコンテンツのタイプに応じてオーグメンテーションファイル(パッチファイル)を取得し、これによりコンテンツを変更することで、Webブラウザの環境に合わせてコンテンツを適宜変更することができる。
しかしながら、例えばWebブラウザ上で動作するスクリプト(コンテンツがスクリプトファイルからなる場合、もしくはWebページにスクリプトが含まれている場合)についてWebブラウザの動作環境に合わせて変換することを考えた場合、どのように実装するのが効率的かという点について特許文献1等には具体的な実装手法については開示されていない。また、プロキシサーバを有さない構成ではどのように実装するのが効率的かという点についても開示されていない。
そこで本発明の目的は、静的または動的なコンテンツ(Webページ)に埋め込まれたスクリプトもしくはスクリプトファイルについて、Webブラウザおよびそのバージョン毎の差異を吸収するブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
本発明の代表的な実施の形態によるブラウザ実行スクリプト変換システムは、Webブラウザを有する複数のクライアント端末とネットワークを介して接続されるWebシステムから、前記Webブラウザからのリクエストに対するレスポンスとして出力された出力データに含まれるスクリプトを、前記Webブラウザの動作環境に応じて変換するシステムであって、以下の特徴を有するものである。
すなわち、ブラウザ実行スクリプト変換システムは、前記Webシステムから出力された前記出力データを取得して、前記出力データに含まれる第1のスクリプトデータを抽出し、また、前記Webブラウザから送信されたリクエストデータに含まれる前記Webブラウザの種類とバージョンの情報を含むブラウザ情報を取得する入出力部と、1つ以上の種類のWebブラウザについてブラウザ情報と変換対象となるスクリプトの対応を保持する対応表と、前記ブラウザ情報に応じて、前記第1のスクリプトデータのステートメントを前記対応表に基づいて変換して第2のスクリプトデータを得る変換部とを有し、前記入出力部は、前記出力データに含まれる前記第1のスクリプトデータを前記第2のスクリプトデータによって置換した変換後出力データを、レスポンスとして前記Webブラウザに応答することを特徴とするものである。
また、本発明は、コンピュータを上記のようなブラウザ実行スクリプト変換システムとして動作させるプログラムにも適用することができる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
すなわち、本発明の代表的な実施の形態によれば、静的または動的なコンテンツ(Webページ)に埋め込まれたスクリプトもしくはスクリプトファイルについて、Webブラウザおよびそのバージョン毎の差異を吸収することが可能となり、システムの信頼性を維持することが可能となる。また、スクリプトを含む個々のコンテンツを修正することなく、最小限の開発によりWebブラウザの動作環境毎に対応させることでシステムの保守性を向上させることが可能となる。
本発明の一実施の形態であるスクリプト変換システムを有するWebアプリケーションシステムの構成例について概要を示した図である。 本発明の一実施の形態における対応表のデータ構成と具体的なデータの例について示した図である。 本発明の一実施の形態における出力データの変換処理の例について概要を示した図である。 本発明の一実施の形態における出力データの変換処理の流れの例について概要を示したフローチャートである。 本発明の一実施の形態におけるスクリプト変換処理の流れの例について概要を示したフローチャートである。 本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。 本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。 本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。 本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。 本発明の一実施の形態における出力データ中のスクリプトを変換する処理の具体例について説明する図である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
本発明の一実施の形態であるブラウザ実行スクリプト変換システム(以下では単に「スクリプト変換システム」と記載する場合がある)は、ブラウザ実行スクリプト変換プログラム(以下では単に「スクリプト変換プログラム」と記載する場合がある)によって実装され、Webシステムが稼働するWebアプリケーションサーバ上に組み込まれて稼動するシステムである。
スクリプト変換システムは、クライアント端末上のWebブラウザからのリクエストに対してWebシステムによって出力されたレスポンスデータを取得し、後処理として、Webブラウザからのリクエストデータに含まれるWebブラウザの動作環境の情報(以下では「ブラウザ情報」と記載する場合がある)に応じて、出力データに含まれるスクリプトの命令(ステートメント)をマッピングテーブル(対応表)に基づいて変換し、変換後の出力データをレスポンスとしてWebブラウザに応答する。
これにより、クライアント端末上のWebブラウザは、スクリプト変換システムにより当該Webブラウザ用に変換されたコンテンツを出力・表示することが可能となる。また、スクリプト変換システムにおいてクライアント端末におけるWebブラウザの動作環境(Webブラウザの種類やバージョン)の差異を吸収することができ、システムの信頼性を維持することが可能となる。また、スクリプトを含む個々のコンテンツを修正することなく、最小限の開発によりWebブラウザの動作環境毎に対応させることでシステムの保守性を向上させることが可能となる。
<システム構成>
図1は、本発明の一実施の形態であるスクリプト変換システムを有するWebアプリケーションシステムの構成例について概要を示した図である。Webアプリケーションシステム1は、コンピュータシステムからなるサーバ機器等によって構成されるWebアプリケーションサーバ10に対して、1つ以上のクライアント端末40が図示しないインターネット等のネットワークを介して接続する構成を有する。
クライアント端末40は、ユーザが利用するPC(Personal Computer)やスマートフォン、携帯電話等の情報処理端末であり、Webアプリケーションサーバ10にアクセスするためのWebブラウザ41を有する。Webブラウザ41は、独立したアプリケーションプログラムとして実装されているものに限らず、他のアプリケーションプログラムに組み込まれているものであってもよい。
Webアプリケーションサーバ10は、クライアント端末40のWebブラウザ41からのリクエストデータ42によるリクエストを受けて、Webブラウザ41に出力・表示するレスポンスデータ43をレスポンスとして応答する機能を有し、既存のWebシステム20、および本発明の一実施の形態であるスクリプト変換システム30を有する。
Webシステム20は、ソフトウェアにより実装され、図示しないWebサーバプログラムを介してWebブラウザ41から送信されたリクエストデータ42を受け付け、Webブラウザ41に出力・表示するための出力データ25をレスポンスとして出力する。リクエストデータ42によるリクエストに基づいて、データベースやファイル等として保持しているコンテンツ22のスクリプトファイル26を出力データ25として出力したり、アプリケーションプログラム等からなる処理プログラム21によってスクリプトを含むWebページ27を生成して出力したりする。
スクリプト変換システム30は、上述したように、ソフトウェア(スクリプト変換プログラム)によって実装され、Webシステム20から出力された出力データ25を取得して、後処理として、リクエストデータ42に含まれるブラウザ情報に応じて、出力データ25に含まれるスクリプトのステートメントを後述する対応表34に基づいて変換し、変換後出力データ35をレスポンスデータ43としてWebシステム20(もしくは図示しないWebサーバプログラム)を介してWebブラウザ41に応答する。
スクリプト変換システム30は、例えば、入出力部31、変換部32、および制御部33などの各部を有し、また、ブラウザ情報と変換対象のスクリプトの対応を登録した対応表34をデータベース(またはファイルシステム)として有する。対応表34には、後述するように、Webブラウザ41の種類やバージョン、スクリプト言語、および変換対象のステートメントなどを含む情報を登録しておく。
入出力部31は、Webシステム20からの出力データ25(スクリプトファイル26もしくはスクリプトを含むWebページ27)を取得し、また、Webブラウザ41からのリクエストデータ42からブラウザ情報等の詳細情報を取得し、これらに基づいてレスポンス種別を判定する。さらに、レスポンス種別に応じて出力データ25からスクリプトを抽出し、変換部32によってスクリプトの変換処理を行って変換結果を得る。この変換結果によって出力データ25の該当ステートメントを置換することで変換後出力データ35(変換後スクリプトファイル36もしくは変換後のスクリプトを含む変換後Webページ37)を取得し、これをレスポンスデータ43としてWebブラウザ41に応答する。
変換部32は、入出力部31から取得したスクリプトのデータから判定されるWebブラウザ41の種類の情報と、リクエストデータ42から取得したWebブラウザ41の種類の情報とを比較し、異なっている場合は変換が必要と判断して、対応表34に基づいてスクリプトのデータを変換・置換し、変換結果を入出力部31に渡す。制御部33は、必要に応じて、入出力部31による出力データ25および変換後出力データ35に係る処理や、対応表34を利用した変換部32によるスクリプトの変換処理の制御を行う。対応表34の内容についてのメンテナンス機能(登録や更新等のユーザインタフェースなど)を有していてもよい。
<データ構成>
図2は、対応表34のデータ構成と具体的なデータの例について示した図である。対応表34は、1つ以上の種類のWebブラウザ41についてのブラウザ情報(Webブラウザ41の種類、バージョン)と変換対象のスクリプトの対応を登録したマッピングテーブルである。Webブラウザ41の動作環境に応じて動作や実装方法が異なるスクリプト命令語(ステートメント)を定義し、Webシステム20から出力された出力データ25に含まれるスクリプト言語をWebブラウザ41の動作環境において動作するよう変換するために用いられるテーブルであり、例えば、動作ID、ブラウザ情報、スクリプト情報、ステートメント、および引数などの項目を有する。
動作IDの項目は、同一の動作毎にこれを識別するために採番されたIDの情報を保持する。Webブラウザ41の動作環境間で異なるステートメントであっても同一の動作IDが割り当てられている場合は同一の動作を実現するものであることを示す。従って、同一の動作IDの間では、Webブラウザ41の動作環境に応じてステートメントを相互に置換可能である。
ブラウザ情報の項目は、Webブラウザ41の動作環境の情報として、例えば、Webブラウザ41からのリクエストデータ42のHTTP(HyperText Transfer Protocol)ヘッダにおけるUserAgent情報など、Webブラウザ41の種類・規格や名称、およびバージョンを識別可能な情報を保持する。スクリプト情報の項目は、対象のスクリプトの言語名など、スクリプト言語(およびバージョン)を識別可能な情報を保持する。
ステートメントの項目は、変換対象のステートメント(Webブラウザ41の動作環境に応じて動作や実装方法が異なるステートメント)の情報を保持する。すなわち、動作IDで特定される動作を対象のWebブラウザ41の動作環境で実装するための対象のスクリプト言語におけるステートメントの情報を保持する。引数の項目は、対象のステートメントが関数である場合に指定するべき引数の並びの情報を保持する。引数が固定ではない場合に対応するため、例えば、“{name}”のように引数に意味を持たせておき、変換時に実際の引数により置換するようにしてもよい。
なお、図2で示したテーブルのデータ構成(項目)はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。
<変換処理>
図3は、スクリプト変換システム30(スクリプト変換プログラム)による出力データ25の変換処理の例について概要を示した図である。スクリプト変換システム30は、Webシステム20から出力された出力データ25に含まれるスクリプトに対して変換を行う。出力データ25には、上述したように、Webブラウザ41からのリクエストデータ42によって指定された既存のコンテンツ22のスクリプトファイル26や、既存の処理プログラム21によって生成・出力されたスクリプトを含むWebページ27が含まれる。
この出力データ25からスクリプトのデータを抽出し、これに対して、リクエストデータ42におけるブラウザ情報に基づいて、対応表34によりステートメントの関数や型などに変換をかける。図3の例では、出力データ25から抽出したスクリプトにおける関数“A”を、リクエストデータ42におけるブラウザ情報“BB”に基づいて、対応表34により同一の動作IDの関数“B”に変換している。変換後のスクリプトのデータは、元の出力データ25におけるステートメントと置換して埋め込み直すことで変換後出力データ35を得る。この変換後出力データ35をWebブラウザ41に対してレスポンスデータ43として送信する。
図4は、スクリプト変換システム30(スクリプト変換プログラム)による上記の出力データ25の変換処理の流れの例について概要を示したフローチャートである。処理を開始すると、まず、入出力部31は、Webシステム20からWebブラウザ41に対するレスポンスとして出力された出力データ25を取得する(S01)。また、Webシステム20を介して、Webブラウザ41からのリクエストデータ42を取得し、リクエストデータ42からブラウザ情報や要求リソース名などの詳細情報を取得する(S02)。
その後、出力データ25のファイル名の拡張子やタグ属性等からレスポンス種別を判別した上で、レスポンス種別に基づいて、出力データ25についてスクリプトの変換が必要か否かを判定する(S03)。出力データ25がスクリプトファイル26である場合(レスポンス種別が例えばJavaScriptやVisual Basic(登録商標)などの場合)や、ブラウジング可能なWebページ27である場合(レスポンス種別が例えばHTMLやJSP(JavaServer Pages)(登録商標)などの場合)は変換が必要であり、それ以外のレスポンス種別の場合は変換が不要であると判定する。変換が不要と判定した場合は、後述するステップS07へ進む。
ステップS03で変換が必要と判定した場合は、出力データ25からスクリプトのデータを抽出する(S04)。例えば、出力データ25がスクリプトファイル26である場合は、スクリプトファイル26の内容からXML(eXtensible Markup Language)コメントを除いたスクリプトの内容を抽出する。また、出力データ25がスクリプトを含むブラウジング可能なWebページ27である場合は、まずWebページ27をXMLデータとして読み込み、読み込んだデータから“<script>”タグの内容、および各タグ内の属性として記述されたスクリプトの内容を抽出する。
その後、変換部32によって、ステップS04で抽出したスクリプトの内容を、対象のWebブラウザ41におけるアクション(ステートメント)に変換するスクリプト変換処理を行う(S05)。スクリプト変換処理の詳細については後述する。その後、入出力部31によって、ステップS05で出力された変換後スクリプトのデータにより出力データ25を置換する(S06)。例えば、出力データ25がスクリプトファイル26である場合は、変換後のデータである変換後スクリプトファイル36によってスクリプトファイル26を上書きして変換後出力データ35を得る。出力データ25がWebページ27である場合は、変換後のスクリプトのデータをWebページ27の対応箇所に上書きして変換後Webページ37を得る。
その後、ステップS06で得た変換後出力データ35(もしくはステップS03で変換不要と判定した場合の出力データ25)をレスポンスとしてWebシステム20を介してWebブラウザ41に対して送信し(S07)、処理を終了する。以上の処理により、クライアント端末40上のWebブラウザ41の動作環境に適したスクリプトの出力を実現することができる。
<スクリプト変換処理>
図5は、図4のステップS05のスクリプト変換処理の流れの例について概要を示したフローチャートである。変換部32は、スクリプト変換処理を開始すると、まず、入出力部31が取得したスクリプトのデータ、スクリプトの種類やバージョンなどのスクリプト情報、およびWebブラウザ41の種類やバージョンなどのブラウザ情報を取得する(S11)。その後、解析後のスクリプトのデータを格納する領域を確保した上で、スクリプトのデータをステップ毎に分割し、その全ステップについてステップ毎に処理を繰り返すループ処理を開始する(S12)。
ループ処理では、まず、処理対象のステップ内のステートメントについて、(1)入出力部31から取得した出力データ25のスクリプト情報が対応表34の「スクリプト情報」の項目の値と等しい、(2)対象のステートメントが対応表34の「ステートメント」の項目の値と等しい、の2つの条件に合致するレコードが対応表34に存在するか否かを確認する(S13)。存在しない場合は、対象のステップは変換不要であるとして、当該ステップのスクリプトを解析済みとし、格納領域に保持した上で、ステップS19に進み、ループ処理にて次のステップの処理に移る(S19、S12)。一方、レコードが存在する場合は、対象のレコードのデータ(“T1”とする)を保持しておく(S14)。
その後、“T1”のデータの中に、“ブラウザ情報”の項目の値がステップS11で入出力部31から取得したWebブラウザ41のブラウザ情報と合致するものがあるか否かを判定する(S15)。合致するものがある場合は、当該ブラウザ情報の環境において対象のステートメントは問題なく動作可能であることから、対象のステップは変換不要であるとして、当該ステップのスクリプトを解析済みとし、格納領域に保持した上で、ステップS19に進み、ループ処理にて次のステップの処理に移る(S19、S12)。
一方、ステップS15で合致するものがない場合は、対象のステートメントは変換が必要であることから、次に、対応表34のデータに、(1)「動作ID」の項目の値が、“T1”のデータの「動作ID」の項目の値と等しい、(2)「ブラウザ情報」の項目の値が、ステップS11で入出力部31から取得したWebブラウザ41のブラウザ情報と等しい、(3)「スクリプト情報」の項目の値が、ステップS11で入出力部31から取得したスクリプト情報と等しい、の3つの条件に合致するレコードがあるか否かを判定する(S16)。存在しない場合は、対応表34にマッピング情報がないことから、対象のステップは変換不可であるとして、当該ステップのスクリプトを解析済みとし、格納領域に保持した上で、ステップS19に進み、ループ処理にて次のステップの処理に移る(S19、S12)。一方、レコードが存在する場合は、対象のレコードのデータ(“T2”とする)を保持しておく(S17)。
その後、対象のステートメントを“T2”のデータの「ステートメント」の項目の値により変換する(S18)。このとき、対象のステートメントに引数が存在する場合は、引数についても合わせて“T2”のデータの「引数」の項目の値により変換する。その後、処理対象のステップのスクリプトを解析済みとし、“変換済み”の情報を設定して格納領域に保持した上で、ステップS19に進み、ループ処理にて次のステップの処理に移る(S19、S12)。
全ステップについてのループ処理を終了すると(S19)、格納領域に保持されたデータを変換後スクリプトとして出力し(S20)、スクリプト変換処理を終了する。
<変換処理例>
以下では、図6〜図10により、出力データ25中のスクリプトを変換する処理の具体例について説明する。図6は、スクリプト変換システム30による出力データ25の変換処理前の各データの状態の例について概要を示した図である。図6の例では、対応表34には、ある動作(「動作ID」=“1”)について、“Internet Explorer(登録商標)”の“バージョン7”と“Firefox(登録商標)”の“バージョン9”の各Webブラウザ41で実装するためのステートメントがそれぞれ登録されていることを示している。また、Webブラウザ41からのリクエストデータ42には、ブラウザ情報として“Firefox”の“バージョン9”が指定されており、また、Webシステム20から出力された出力データ25はJavaScriptによるスクリプトファイル26であることを示している。
ここでは、図5のスクリプト変換処理のステップS12〜S19のループ処理において、図6の例におけるスクリプトファイル26を先頭から1ステップずつ処理し、例えば、図6の例におけるスクリプトファイル26の“var pointX=…”のステップが処理対象となった場合を例として説明する。このとき、図5のステップS13の処理では、図7に示すように、対応表34に、スクリプトファイル26のスクリプト情報(JavaScript)と、対象のステップのステートメント(“window.event…”)が合致するレコードが存在する。従って、図5のステップS14の処理では対応表34の当該レコードを“T1”として保持する。
その後、図5のステップS15の処理では、図8に示すように、“T1”のデータの中に、リクエストデータ42のブラウザ情報(“Firefox”の“バージョン9”)に合致するデータが存在しない。このとき、図5のステップS16の処理では、図9に示すように、対応表34に、“T1”のデータと「動作ID」の値(“1”)が同じであり、リクエストデータ42のブラウザ情報(“Firefox”の“バージョン9”)と、スクリプトファイル26のスクリプト情報(JavaScript)が合致するレコードが存在する。従って、図5のステップS17の処理では対応表34の当該レコードを“T2”として保持する。
最後に、図5のステップS18の処理において、図10に示すように、スクリプトファイル26の対象のステートメントを、対応表34の“T2”のデータの「ステートメント」の値(“e.pageX”)によって変換(引数なし)し、最終的に変換後スクリプトファイル36を得る。この変換後スクリプトファイル36は、リクエストを行ったWebブラウザ41(図10の例では“Firefox”の“バージョン9”)上で正常に稼働するよう変換されたものである。
以上に説明したように、本発明の一実施の形態であるスクリプト変換システム30(スクリプト変換プログラム)によれば、クライアント端末40上のWebブラウザ41からのリクエストに対してWebシステム20によって出力された出力データ25を取得し、後処理として、Webブラウザ41からのリクエストデータ42に含まれるブラウザ情報に応じて、出力データ25に含まれるスクリプトのステートメントを対応表34に基づいて変換し、変換後出力データ35をレスポンスとしてWebブラウザ41に応答する。
これにより、クライアント端末40上のWebブラウザ41は、スクリプト変換システム30により当該Webブラウザ41用に変換されたコンテンツ22を出力・表示することが可能となる。また、スクリプト変換システム30においてクライアント端末40におけるWebブラウザ41の動作環境の差異を吸収することができ、システムの信頼性を維持することが可能となる。また、スクリプトを含む個々のコンテンツ22を修正することなく、最小限の開発によりWebブラウザ41の動作環境毎に対応させることでシステムの保守性を向上させることが可能となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、静的または動的なWebページに埋め込まれたスクリプトもしくはスクリプトファイルについて、Webブラウザおよびそのバージョン毎の差異を吸収するブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラムに利用可能である。
1…Webアプリケーションシステム、
10…Webアプリケーションサーバ、
20…Webシステム、21…処理プログラム、22…コンテンツ、25…出力データ、26…スクリプトファイル、27…Webページ、
30…スクリプト変換システム、31…入出力部、32…変換部、33…制御部、34…対応表、35…変換後出力データ、36…変換後スクリプトファイル、37…変換後Webページ、
40…クライアント端末、41…Webブラウザ、42…リクエストデータ、43…レスポンスデータ。

Claims (8)

  1. Webブラウザを有する複数のクライアント端末とネットワークを介して接続されるWebシステムから、前記Webブラウザからのリクエストに対するレスポンスとして出力された出力データに含まれるスクリプトを、前記Webブラウザの動作環境に応じて変換するブラウザ実行スクリプト変換システムであって、
    前記Webシステムから出力された前記出力データを取得して、前記出力データに含まれる第1のスクリプトデータを抽出し、また、前記Webブラウザから送信されたリクエストデータに含まれる前記Webブラウザの種類とバージョンの情報を含むブラウザ情報を取得する入出力部と、
    1つ以上の種類のWebブラウザについてブラウザ情報と変換対象となるスクリプトの対応を保持する対応表と、
    前記ブラウザ情報に応じて、前記第1のスクリプトデータのステートメントを前記対応表に基づいて変換して第2のスクリプトデータを得る変換部とを有し、
    前記入出力部は、前記出力データに含まれる前記第1のスクリプトデータを前記第2のスクリプトデータによって置換した変換後出力データを、レスポンスとして前記Webブラウザに応答することを特徴とするブラウザ実行スクリプト変換システム。
  2. 請求項1に記載のブラウザ実行スクリプト変換システムにおいて、
    前記対応表は、変換対象のスクリプトのステートメント毎に、前記Webブラウザにおける対象のステートメントの動作内容を特定する情報、前記各Webブラウザのブラウザ情報、対象のスクリプトの言語情報を含む情報を保持し、
    前記変換部は、前記第1のスクリプトデータに含まれる第1のステートメントについて、前記対応表に、言語情報およびステートメントの内容が、前記第1のスクリプトデータの言語情報および前記第1のステートメントとそれぞれ合致する第1のレコードが存在し、かつ、前記第1のレコードに、ブラウザ情報が、前記入出力部が取得した前記ブラウザ情報と合致するレコードがなく、かつ、前記対応表に、動作内容を特定する情報が、前記第1のレコードのステートメントの動作内容を特定する情報と合致し、ブラウザ情報および言語情報が、前記入出力部が取得した前記ブラウザ情報および前記第1のスクリプトデータの言語情報とそれぞれ合致する第2のレコードが存在する場合に、前記第1のスクリプトデータにおいて、前記第1のステートメントを前記第2のレコードのステートメントの内容によって変換することを特徴とするブラウザ実行スクリプト変換システム。
  3. 請求項2に記載のブラウザ実行スクリプト変換システムにおいて、
    前記対応表は、変換対象のスクリプトのステートメント毎に、さらに、対象のステートメントの引数の情報を保持し、
    前記変換部は、前記第1のスクリプトデータにおいて、前記第1のステートメントを前記第2のレコードのステートメントの内容によって変換する際、前記第1のステートメントが引数を有する場合、これを前記第2のレコードの引数の内容によって変換することを特徴とするブラウザ実行スクリプト変換システム。
  4. 請求項1〜3のいずれか1項に記載のブラウザ実行スクリプト変換システムにおいて、 前記出力データは、スクリプトファイルであることを特徴とするブラウザ実行スクリプト変換システム。
  5. 請求項1〜3のいずれか1項に記載のブラウザ実行スクリプト変換システムにおいて、
    前記出力データは、スクリプトを含んだWebページであることを特徴とするブラウザ実行スクリプト変換システム。
  6. Webブラウザを有する複数のクライアント端末とネットワークを介して接続されるWebシステムから、前記Webブラウザからのリクエストに対するレスポンスとして出力された出力データに含まれるスクリプトを、前記Webブラウザの動作環境に応じて変換するブラウザ実行スクリプト変換システムとしてコンピュータを動作させるブラウザ実行スクリプト変換プログラムであって、
    前記Webシステムから出力された前記出力データを取得して、前記出力データに含まれる第1のスクリプトデータを抽出し、また、前記Webブラウザから送信されたリクエストデータに含まれる前記Webブラウザの種類とバージョンの情報を含むブラウザ情報を取得する第1の工程と、
    前記ブラウザ情報に応じて、前記第1のスクリプトデータのステートメントを、1つ以上の種類のWebブラウザについてブラウザ情報と変換対象となるスクリプトの対応を保持する対応表に基づいて変換して第2のスクリプトデータを得る第2の工程と、
    前記出力データに含まれる前記第1のスクリプトデータを前記第2のスクリプトデータによって置換した変換後出力データを、レスポンスとして前記Webブラウザに応答する第3の工程とを実行することを特徴とするブラウザ実行スクリプト変換プログラム。
  7. 請求項6に記載のブラウザ実行スクリプト変換プログラムにおいて、
    前記対応表は、変換対象のスクリプトのステートメント毎に、前記Webブラウザにおける対象のステートメントの動作内容を特定する情報、前記各Webブラウザのブラウザ情報、対象のスクリプトの言語情報を含む情報を保持し、
    前記第2の工程では、前記第1のスクリプトデータに含まれる第1のステートメントについて、前記対応表に、言語情報およびステートメントの内容が、前記第1のスクリプトデータの言語情報および前記第1のステートメントとそれぞれ合致する第1のレコードが存在し、かつ、前記第1のレコードに、ブラウザ情報が、前記第1の工程で取得した前記ブラウザ情報と合致するレコードがなく、かつ、前記対応表に、動作内容を特定する情報が、前記第1のレコードのステートメントの動作内容を特定する情報と合致し、ブラウザ情報および言語情報が、前記第1の工程で取得した前記ブラウザ情報および前記第1のスクリプトデータの言語情報とそれぞれ合致する第2のレコードが存在する場合に、前記第1のスクリプトデータにおいて、前記第1のステートメントを前記第2のレコードのステートメントの内容によって変換することを特徴とするブラウザ実行スクリプト変換プログラム。
  8. 請求項7に記載のブラウザ実行スクリプト変換プログラムにおいて、
    前記対応表は、変換対象のスクリプトのステートメント毎に、さらに、対象のステートメントの引数の情報を保持し、
    前記第2の工程で、前記第1のスクリプトデータにおいて、前記第1のステートメントを前記第2のレコードのステートメントの内容によって変換する際、前記第1のステートメントが引数を有する場合、これを前記第2のレコードの引数の内容によって変換することを特徴とするブラウザ実行スクリプト変換プログラム。
JP2011270418A 2011-12-09 2011-12-09 ブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラム Expired - Fee Related JP5535184B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011270418A JP5535184B2 (ja) 2011-12-09 2011-12-09 ブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011270418A JP5535184B2 (ja) 2011-12-09 2011-12-09 ブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラム

Publications (2)

Publication Number Publication Date
JP2013122655A true JP2013122655A (ja) 2013-06-20
JP5535184B2 JP5535184B2 (ja) 2014-07-02

Family

ID=48774588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011270418A Expired - Fee Related JP5535184B2 (ja) 2011-12-09 2011-12-09 ブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラム

Country Status (1)

Country Link
JP (1) JP5535184B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016537696A (ja) * 2013-09-20 2016-12-01 オラクル・インターナショナル・コーポレイション フォームフィルプロキシアプリケーションによるウェブベースシングルサインオン
JP2020047148A (ja) * 2018-09-21 2020-03-26 京セラドキュメントソリューションズ株式会社 情報処理装置、ウェブアプリケーションプログラム及び情報処理システム
JP2021140431A (ja) * 2020-03-04 2021-09-16 九電ビジネスソリューションズ株式会社 通信メッセージ変換方法、通信メッセージ変換装置、及び通信メッセージ変換プログラム
JP2022162320A (ja) * 2021-04-12 2022-10-24 ソフラ株式会社 ウェブ化サーバーおよび該ウェブ化サーバーを用いたアプリケーション運用システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077659A (ja) * 2007-09-18 2008-04-03 Hitachi Ltd コントローラ、コントローラ管理システム及びコントローラ管理方法
JP2008186160A (ja) * 2007-01-29 2008-08-14 Fuji Xerox Co Ltd 文書表示装置およびプログラム
JP2011048605A (ja) * 2009-08-27 2011-03-10 Hitachi Ltd プログラム実行装置及びアプリケーションプログラムの実行方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186160A (ja) * 2007-01-29 2008-08-14 Fuji Xerox Co Ltd 文書表示装置およびプログラム
JP2008077659A (ja) * 2007-09-18 2008-04-03 Hitachi Ltd コントローラ、コントローラ管理システム及びコントローラ管理方法
JP2011048605A (ja) * 2009-08-27 2011-03-10 Hitachi Ltd プログラム実行装置及びアプリケーションプログラムの実行方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016537696A (ja) * 2013-09-20 2016-12-01 オラクル・インターナショナル・コーポレイション フォームフィルプロキシアプリケーションによるウェブベースシングルサインオン
US10225244B2 (en) 2013-09-20 2019-03-05 Oracle International Corporation Web-based interface integration for single sign-on
US10693865B2 (en) 2013-09-20 2020-06-23 Oracle International Corporation Web-based interface integration for single sign-on
JP2020047148A (ja) * 2018-09-21 2020-03-26 京セラドキュメントソリューションズ株式会社 情報処理装置、ウェブアプリケーションプログラム及び情報処理システム
JP7205130B2 (ja) 2018-09-21 2023-01-17 京セラドキュメントソリューションズ株式会社 情報処理装置、ウェブアプリケーションプログラム及び情報処理システム
JP2021140431A (ja) * 2020-03-04 2021-09-16 九電ビジネスソリューションズ株式会社 通信メッセージ変換方法、通信メッセージ変換装置、及び通信メッセージ変換プログラム
JP7267223B2 (ja) 2020-03-04 2023-05-01 Qsol株式会社 通信メッセージ変換方法、通信メッセージ変換装置、及び通信メッセージ変換プログラム
JP2022162320A (ja) * 2021-04-12 2022-10-24 ソフラ株式会社 ウェブ化サーバーおよび該ウェブ化サーバーを用いたアプリケーション運用システム
JP7193877B2 (ja) 2021-04-12 2022-12-21 ソフラ株式会社 ウェブ化サーバーおよび該ウェブ化サーバーを用いたアプリケーション運用システム

Also Published As

Publication number Publication date
JP5535184B2 (ja) 2014-07-02

Similar Documents

Publication Publication Date Title
US10412176B2 (en) Website access method, apparatus, and website system
US9448776B1 (en) Method and apparatus for converting a website into a native mobile application
EP2916243B1 (en) Method, apparatus, server and system for implementing web application
US10346502B2 (en) Mobile enablement of existing web sites
US9444899B2 (en) Use of internet information services logging to collect user information in an asynchronous manner
US9460222B2 (en) System for rewriting dynamically generated uniform resource locators in proxied hyper text markup language content in accordance with proxy server rules
EP2724251B1 (en) Methods for making ajax web applications bookmarkable and crawlable and devices thereof
US10318318B2 (en) Extending user interface of a web console
WO2018001124A1 (zh) 网页文件发送方法、网页渲染方法及装置、网页渲染系统
US9984052B2 (en) Verifying content of resources in markup language documents
US8250226B2 (en) Generating one or more clients for generating one or more synthetic transactions with one or more web service operations
WO2015021809A1 (zh) 动态语言代码执行方法和装置
EP3063673A1 (en) Establishment of state representation of a web page represented in a web browser
JP5535184B2 (ja) ブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラム
JP2016540333A (ja) 端末標記方法、端末標記装置、プログラム及び記録媒体
CN111124544A (zh) 界面显示方法、装置、电子设备及存储介质
US9571557B2 (en) Script caching method and information processing device utilizing the same
CN112579118A (zh) 微服务的配置信息更新方法、装置、系统、介质和设备
JP5039946B2 (ja) クライアント装置およびサーバ装置の間の通信を中継する技術
CN103544209A (zh) 访问网页的方法和系统
US9870216B2 (en) Application providing method including extracting and converting packaged application
AU2018390863B2 (en) Computer system and method for extracting dynamic content from websites
CN105808727A (zh) 基于html5的网站跨屏适配技术架构和适配方法
US11829434B2 (en) Method, apparatus and computer program for collecting URL in web page
JP2016018552A (ja) スクリプトのキャッシュ方法及びそれを適用した情報処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140319

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140422

R150 Certificate of patent or registration of utility model

Ref document number: 5535184

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees