JP5500968B2 - 情報処理装置、情報処理方法、及び情報処理プログラム - Google Patents
情報処理装置、情報処理方法、及び情報処理プログラム Download PDFInfo
- Publication number
- JP5500968B2 JP5500968B2 JP2009285018A JP2009285018A JP5500968B2 JP 5500968 B2 JP5500968 B2 JP 5500968B2 JP 2009285018 A JP2009285018 A JP 2009285018A JP 2009285018 A JP2009285018 A JP 2009285018A JP 5500968 B2 JP5500968 B2 JP 5500968B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- alternative
- acquisition
- uri
- resource
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Description
具体的に、Webアプリケーションは、従来のローカルアプリケーションにおけるソフトウエアに代えて、Webサーバ側のソフトウエアとWebクライアント(情報処理装置、例えば、Webブラウザ機能を有するWebブラウザ端末)側のソフトウエアを実行することによって提供される。提供に際しては、Webサーバ側のソフトウエアは主にデータ処理を実行し、Webクライアント側のソフトウエアは画面表示やユーザによる操作に関する処理を実行する分担になっていることが多い。
ここで、Webクライアント側のソフトウエアは、Webブラウザ端末で実行されるソフトウエアである。なお、Webクライアント側のソフトウエアには、従来の静的なHTMLコンテンツと異なり、アプリケーションとして動作するための動的なコンテンツを提供するソフトウエアが含まれる。また、Webクライアント側のソフトウエアは、例えばJavascript(登録商標。以下同じ)言語のようなスクリプト言語で記述されたプログラム(JSプログラムという)を、Webブラウザ機能の一部として実行する。具体的には、JSプログラムは、Webサーバ側で保持され、Webアプリケーション実行時にWebクライアント側へダウンロードされた後、Webブラウザ機能の一部として実行される。
これらライブラリとして用意されたJSプログラムを利用する際には、ライブラリ毎に定められたAPI(Application Program Interface)を用いる。APIとは、命令や関数の集合を利用するためのプログラム上の手続きを定めた規約の集合であり、JSプログラムでは規約に従ってライブラリが提供する機能を呼び出す。例えば、上述のprototype.jsやjquery.jsなどのライブラリについても、その機能を利用するAPIが定められ、公開されている。
この問題に対して、Webアプリケーションの画面表示内容については、従来の静的なHTMLコンテンツの場合と同様に、携帯電話装置上のWebブラウザで「ユーザCSS(Cascading Style Sheets)」を設定することで、その携帯電話装置の表示画面のサイズに応じた表示に合わせて修正することが知られている。CCSとは、HTMLやXMLで記載されたプログラムをどのように修飾して表示するかを指示する仕様である。
この問題に対して、特許文献1には、個々の端末がそれぞれ異なる処理性能、表示能力、ネット通信頻度を持ち、サーバが個々の端末の前記情報を保持管理するシステムについて記載されている。このシステムでは、サーバが保持管理している個々の端末の情報に基づいて個々の端末毎に適切な処理スクリプトを供給し、端末は供給された処理スクリプトをサーバからダウンロードして実行する。
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1は、本発明の第1の実施形態に係る情報処理システムを示す概念図である。図1において、情報処理システムは、WebサーバA1、WebサーバB1、Webブラウザ端末C11、C12、・・・(各々をWebブラウザ端末C1という)を具備する。ネットワークN1はインターネットやLAN等のネットワークであり、WebサーバA1、WebサーバB1、及びWebブラウザ端末C1はネットワークN1を介して無線又は有線で接続され、互いに通信を行う。
なお、HTMLとは、Webページを記述するためのマークアップ言語でありW3Cが規格を作成している。また、CSSファイルa12も複数の共通利用できるプログラムをまとめた汎用のライブラリであり、APIを用いて利用される。
ここで、Webブラウザ端末C1は、APIを用いるとき、JSライブラリのAPIを用いるか、代替ライブラリのAPIを用いるかを判定し、判定結果に基づいて、WebサーバA1又はB1のいずれかが提供するAPIを用いてJSプログラムを利用する。
図2は、本実施形態に係るWebブラウザ端末C1のハードウェア構成を示す概略ブロック図である。この図において、Webブラウザ端末C1は、CPU(央演算処理装置)c101、メモリ(主記憶装置)c102、外部記憶部c103、入力部c104、表示部c105、通信部c106、及びデータバスc107を含んで構成される。
外部記憶部c103は、ソフトウエアプログラムやこのプログラムが使用するデータファイル等の情報を記憶する。例えば、外部記憶部c103は、代替JSファイル(Webブラウザ端末C1が記憶する代替JSファイルをローカル代替JSファイルf2という)を予め記憶する。外部記憶部c103は、例えば、不揮発性半導体記憶装置や、ハードディスク装置である。
表示部c105は、CPU c101の演算処理結果の情報(表示データ)を取得し、その情報をWebブラウザで表示する。表示部c105は、例えば、液晶ディスプレイやCRT(カソード・レイ・チューブ)モニタである。
データバスc107は、CPU c101、メモリc102、外部記憶部c103、入力部c104、表示部c105、及び通信部c106を相互に接続し、情報を交換するための経路である。
また、通信部c106は、スクリプト取得部c112から入力されたリソース取得先URIが示す通信装置へアクセスし、図1のWeb代替JSファイルb11又はJSファイルa13を取得する。通信部c106は、取得したWeb代替JSファイルb11及びJSファイルa13をスクリプト取得部c112に出力する。
表示制御部c111は、URI判定部c122から入力されたリソース取得先URIをスクリプト取得部c112に出力する。表示制御部c111は、スクリプト取得部c112から入力されたWeb代替JSファイルb11、JSファイルa13、又は、ローカル代替JSファイルf2のJSプログラムを用いて、通信部c106から入力されたファイルのプログラムを実行する。表示制御部c111は、プログラムの実行結果の画像情報を表示部c105に出力する。
URI判定部c122は、判定情報記憶部c121が記憶するURI判定情報テーブルの情報と、表示制御部c111から入力されたリソースURIに基づいて、このリソースURIを置き換える代替URIがあるか否かを判定する。代替URIがあると判定した場合、URI判定部c122は、代替URIをリソース取得先URIとして表示制御部c111に出力する。一方、代替URIがないと判定した場合、URI判定部c122は、入力されたリソースURIをリソース取得先URIとして表示制御部c111に出力する。なお、代替判定部c12(判定情報記憶部c121及びURI判定部c122)が行う処理を代替URI処理という。
スクリプト取得部c112は、通信部c106から入力されたWeb代替JSファイルb11、JSファイルa13、及び、読み出したローカル代替JSファイルf2を、リソースURIのJSファイルに代えて、表示制御部c111に出力する。
ここで、代替JSファイルについて詳細を説明する。
リソースURIのJSファイルを用いてアニメーション表示などの画像表示を行うと、例えば、画面表示能力が低いWebブラウザ端末等では、画面表示処理が高負荷となり表示に要する時間が長く掛かって操作性が低下する、又は頻繁な画像書換えにより表示が見え難くなるといった、不都合が発生する場合がある。
Webブラウザ端末C1では、リソースURIのJSファイルに代えて、Webブラウザ端末C1毎に代替URIを判定し、その代替URIから取得した代替JSファイルを用いて画像表示を行う。これにより、そのWebブラウザ端末C1では、例えば、画面表示能力に応じたJSプログラムを実行することができる。
図4は、本実施形態に係る代替JSファイルのJSプログラムの一例を示す概略図である。この図においては、説明のため、プログラムに行番号を付している。なお、この図は、リソースURIのJSファイル(元ファイルという)にjQueryのVersion1.3.2を用いている場合に、画面上の視覚効果が高い表示を行うことを強制的に抑止し、画面表示処理が高負荷となることを防止するような修正変更を加えた代替JSファイルの一例である。
一方、「3978」行目のプログラムでは、変数opt.durationに「0」を代入している。この変数opt.durationはアニメーション表示などの画面上の視覚効果の実行時間を指定する変数である。この変数opt.durationに「0」を代入すると、初期画像が表示された直後に最終画像が表示され、中間画像が表示されない。つまり、画面上の視覚効果が高い表示を行うことを強制的に抑止し、情報処理能力が低いWebブラウザ端末C1で、画面表示処理が高負荷となることを防止する。
このように、例えば、情報処理能力が低いWebブラウザ端末C1は、動画処理のJSプログラムに代えて、動画処理を省略した動作を実現する代替JSプログラムを実行する。つまり、代替JSファイルのJSプログラムは、Webブラウザ端末C1の情報処理能力に応じたプログラムである。
なお、情報処理能力が低いWebブラウザ端末C1は、動画処理のJSプログラムに代えて或いは加えて、動画のコマ数を少なくする代替JSプログラム、又は画像中で移動する画像や文字の移動間隔を小さくする代替JSプログラム等に置き換えてもよい。
なお、URI判定オブジェクトは図3のURI判定部c112で実装され、ローダーオブジェクトo121及びスキーム別ローダーオブジェクトはスクリプト取得部c112で実装される。その他のオブジェクトは表示制御部c111で実装される。
リソースオブジェクトo11は、Webブラウザで表示する画面を構成するオブジェクトである。構成要素の種類により個々のリソースオブジェクトo11が存在する。具体的に図5では、リソースオブジェクトo11には、画面リソースオブジェクトo111、htmlリソースオブジェクトo112及びJavascriptリソースオブジェクト(JSリソースオブジェクトという)o113等が含まれる。なお、図5において、htmlリソースオブジェクトo112は、リソースビルダーオブジェクトo12へリソースオブジェクト生成命令(リソースURIを含む命令)を送付することにより行う。また、1つの画面に含まれるリソースオブジェクトo11として、画面リソースオブジェクトo111のほかにhtmlリソースオブジェクトo112及びJSリソースオブジェクトo113について説明を行うが、例えば画像データのように、その他にも画面を構成するリソースオブジェクトは存在する(図5では、「○○リソースオブジェクト」として示す)。
このhtmlリソースオブジェクトo112の生成に際しては、画面リソースオブジェクトo111がリソースビルダーオブジェクトo12へリソースオブジェクト生成命令を送り、このリソースオブジェクト生成命令に基づいて生成されたhtmlリソースオブジェクトを画面リソースオブジェクトo111自身の子オブジェクトとして関係付ける。
このJSリソースオブジェクトo113の生成に際しては、htmlリソースオブジェクトo112がリソースビルダーオブジェクトo12へリソースオブジェクト生成命令を送り、このリソースオブジェクト生成命令に基づいて生成されたJSリソースオブジェクトo113をhtmlリソースオブジェクトo112自身の子オブジェクトとして関係付ける。
URI判定オブジェクトo123は、代替URI処理を行って、送付されたリソースURIに対するリソース取得先URIをリソースビルダーオブジェクトo12に返却する。なお、URI判定オブジェクトo123が行う代替URI処理については、後述する。
リソースビルダーオブジェクトo12は、URI判定オブジェクトo123から返却されたリソース取得先URIを含むリソース取得メッセージを、ローダーオブジェクトo121に送付する。リソースビルダーオブジェクトo12は、ローダーオブジェクトo121がリソース取得メッセージに基づいて取得したリソースデータを含むレンダリング命令を生成し、レンダラーオブジェクトo122に送付する。リソースビルダーオブジェクトo12は、レンダラーオブジェクトo122がレンダリング命令に基づいて生成したリソースオブジェクトを、リソースオブジェクト生成命令の返値として返却する。
httpローダーオブジェクトo1211はスキームがhttpの場合に対応するスキーム別ローダブジェクトである。httpローダーオブジェクトo1211は、httpプロトコルを用いて、取得先URIで指定されたリソースデータを取得する。fileローダーオブジェクトo1212は、スキームがfileの場合に対応するスキーム別ローダブジェクトである。例えば、fileローダーオブジェクトo1212は、外部記憶部c103からURIで指定された場所に格納されているリソースデータを取得する。
ローダーオブジェクトo121は、スキーム別ローダが取得したリソースデータをリソースビルダーオブジェクトo12へ返却する。返却するリソースデータには、データ種別を表すmime−type値とデータ実体を表すdata値を含まれる。
htmlレンダラーオブジェクトo1221は、mime−type値がhtmlデータであることを示す「text/html」の場合に呼び出され、htmlリソースオブジェクトを生成する。具体的には、htmlレンダラーオブジェクトo1221は、htmlファイルの文書構成を解析しhtmlリソースオブジェクトo112内にDOMツリーを生成する。
なお、JSファイル処理は、以下のように行われる。htmlファイルに基づいて生成されたhtmlリソースオブジェクトo112は、リソースオブジェクト生成命令をリソースビルダーオブジェクトo12に対して送付する。htmlファイル内に、例えば、「<script type=”text/javascript” src=”http://www.XXX・・・.com/example.js”></script>」という記述があった場合に、このリソースオブジェクト生成命令には、リソース取得先URIとして、「script」タグの属性「src」の値であるURI値(この例では”http://www.XXX・・・.com/example.js”)が含まれる。リソースビルダーオブジェクトo12は、リソース取得先URIからJSファイルを取得し、JSリソースオブジェクトo113を生成する。htmlリソースオブジェクトo112は、リソースビルダーオブジェクトo12が生成したJSリソースオブジェクトo113を自身の子オブジェクトとして関係付ける。
(ステップS101)htmlリソースオブジェクトo112は、リソースビルダーオブジェクトo12に対し、新たに取得するJavascriptリソースの所在を表すURI(リソースURI)を含むリソースオブジェクト生成命令を、リソースビルダーオブジェクトo12に送付する。その後、ステップS102へ進む。
(ステップS102)リソースビルダーオブジェクトo12は、ステップS101で送付されたリソースオブジェクト生成命令を取得する。リソースビルダーオブジェクトo12は、取得したリソースオブジェクト生成命令のリソースURIをリソース取得先URIとして、このリソース取得先URIを含むリソース取得メッセージを、ローダーオブジェクトo121に送付する。その後、ステップS103へ進む。
(ステップS104)ローダーオブジェクトo121は、ステップS103で判定したスキームのスキーム別ローダーオブジェクト(httpローダーオブジェクトo1211)に対して、リソース取得先URIを含むデータ取得メッセージを送付する。httpローダーオブジェクトo1211は、送付されたデータ取得メッセージを取得し、取得したデータ取得メッセージのリソース取得先URIからhttpプロトコルを用いてリソースデータを取得する。その後、ステップS105へ進む。
(ステップS106)ローダーオブジェクトo121は、ステップS105で返却されたリソースデータを、リソースビルダーオブジェクトo12に返却する。その後、ステップS107へ進む。
(ステップS108)レンダラーオブジェクトo122は、ステップS107で送付されたレンダリング命令を取得し、取得したレンダリング命令のリソースデータからmime−type値及びdata値を抽出する。その後、ステップS109へ進む。
(ステップS109)レンダラーオブジェクトo122は、ステップS108で抽出したmime−type値のレンダラーオブジェクト(JSレンダラーオブジェクトo1222)に対して、ステップS108で抽出したdata値を送付する。
(ステップS111)JSレンダラーオブジェクトo1222は、ステップS109で送付されたdata値を取得し、取得したdata値に対して命令文解析処理を行う。この命令文解析処理は、data値をJSプログラムのプログラムコードとみなしてその言語の文法に沿って内容を解析する処理である。その後、ステップS112へ進む。
(ステップS112)JSレンダラーオブジェクトo1222は、ステップS111での命令文解析処理の結果、JSプログラムの実行コードを生成し、生成した実行コードを生成したJSリソースオブジェクトo113に書き込む。その後、ステップS113へ進む。このステップS110〜S112の処理によって、JSリソースオブジェクトo113が生成される。その後、ステップS113へ進む。
(ステップS114)レンダラーオブジェクトo122は、ステップS113で返却されたJSリソースオブジェクトo113を、リソースビルダーオブジェクトo12に返却する。その後、ステップS115へ進む。
(ステップS115)リソースビルダーオブジェクトo12は、ステップS114で返却されたJSリソースオブジェクトo113を、htmlリソースオブジェクトo112に返却する。その後、ステップS116へ進む。
(ステップS116)htmlリソースオブジェクトo112は、ステップS115で返却されたJSリソースオブジェクトo113を、自身の子オブジェクトに追加して関係付ける。
URI判定オブジェクトo123は、ステップS21で送付された代替URI存在チェックメッセージを取得し、取得した代替URI存在チェックメッセージのリソースURIに基づいて代替URIが存在するか否かを判定する。また、代替URIが存在すると判定した場合、URI判定オブジェクトo123は、その代替URIを読み出す。その後、ステップS212へ進む。
(ステップS202)リソースビルダーオブジェクトo12は、ステップS22で返却されたURIを含むリソース取得メッセージを、ローダーオブジェクトo121に送付する。その後、ステップS103へ進む。
なお、URI判定オブジェクトo123が行うステップS21、S22の処理が代替URI処理である。
図8は、本実施形態に係るURI判定情報テーブルの一例を示す概略図である。図示するようにURI判定情報テーブルは、リソースURI及び代替URIの各項目の列を有している。URI判定情報テーブルは、行毎にURI判定情報が格納される行と列からなる2次元の表形式のデータである。
なお、URI1104のように「http://」という文字列で始まるファイルは、例えば図1のWeb代替JSファイルb11であり、自装置以外の装置からhttpプロトコルを用いて取得するファイルである。一方、URI1101のように「file://」という文字列で始まるファイルは、例えば図2のローカル代替JSファイルf2であり、自装置内の記憶部から取得するファイルである。ローダーオブジェクトo121は、このようにURIの先頭部分の文字列でスキームを判定し、Web代替JSファイルb11、又はローカル代替JSファイルf2を取得する。
(ステップS211)図3のURI判定部c122(URI判定オブジェクトo123)は、取得した代替URI存在チェックメッセージのリソースURI(チェック対象URI)を文字列として文字列変数INに代入する。その後、ステップS212へ進む。
(ステップS212)URI判定部c122は、整数変数Nに「1」を代入する。また、なお、この変数Nは配列T及び配列Rの添え字として用いられる。また、URI判定部c122は、判定情報記憶部c121が記憶するURI判定情報テーブル(図8)でのn行目のリソースURIを配列Tのn番目の要素に代入する。また、URI判定部c122は、判定情報記憶部c121が記憶するURI判定情報テーブルでのn行目の代替URIを配列Rのn番目の要素に代入する。その後、ステップS213へ進む。
(ステップS214)URI判定部c122は、ステップS213の比較の結果、文字列が完全に一致したか否かを判定する。判定の結果、文字列が完全に一致したと判定した場合、ステップS218へ進む。一方、文字列が完全に一致しないと判定した場合、ステップS215へ進む。
(ステップS215)URI判定部c122は、変数Nの値を1増やす。その後、ステップS216へ進む。
(ステップS217)URI判定部c122は、配列INの内容、つまり、ステップS211で取得したリソースURIをそのまま、リソース取得先URI(リソースビルダーオブジェクトo12への返値)に設定する。その後、動作を終了する。
(ステップS218)URI判定部c122は、配列RのN番目の内容を、つまり、配列RのN番目の要素である代替URIの文字列(図8でのN行目の代替URI)を、スクリプト取得部c112の出力値(リソースビルダーオブジェクトo12への返値)に設定する。つまり、この場合は、配列TのN番目の要素との比較結果が一致した場合であり、配列TのN番目の要素に対応する配列RのN番目の内容(代替URI)を、リソース取得先URIに設定する。その後、動作を終了する。
なお、URI判定部c122は、ステップS217又はS218で設定したリソース取得先URIを表示制御部c111に出力する。
本実施形態によれば、個々のWebブラウザ端末C1に合わせた代替JSファイルを個々のWebブラウザ端末C1が記憶する場合、管理用サーバでの管理コストを削減することができる。
また、従来技術では、各情報処理装置は処理スクリプトを必ずサーバからダウンロードして取得する必要があるので、実行時にはファイルをダウンロードする時間を要するという欠点があった。なお、仮にファイルキャッシュの仕組みを備えていたとしても、その効果は2回目の実行時以降にのみ発生し、初回の実行時にはダウンロードに要する時間の発生は避けられない。
本実施形態によれば、個々のWebブラウザ端末C1に合わせた代替JSファイルを個々のWebブラウザ端末C1が記憶する場合、実行時にサーバから代替JSファイルをダウンロードしないため、初回の実行時であってもダウンロードに要する時間が発生しない。
本実施形態では、Webブラウザ端末C1がリソースURIの全文字列に基づいて代替URI処理を行う場合について説明をした。しかし、本発明はこれに限らず、Webブラウザ端末C3はリソースURIの一部の文字列に基づいて代替URI処理を行ってもよい。
変形例1では、URI判定部c122は、リソースURIのファイル名に基づいて、代替URIが存在するか否かを判定する。
例えば、図10の2行目のURI判定情報は、符号1202を付したファイル名「jquery.js」(ファイル名1202)に対する代替URIとして、符号1102を付した「file://script/jquery−1.3.2.min.js」(URI1102)が対応付けられていることを示す。
URI判定部c122(URI判定オブジェクト)は、リソースURIの文字列において、文字列の後ろから順に「/」という文字を検索する。URI判定部c122は、検索した「/」の直後の文字列から「&」という文字、又は「&」という文字がない場合には文字列まで、文字列を抽出する。なお、「&」という文字までに限るのは、URIでは「&」の後に変数等のファイル名とは関係ないパラメータが付与されるので、「&」の後の文字列は抽出しない。
例えば、リソースURIが「http://YYY・・・.com/ajax/libs/jquery/1.3.2/jquery.min.js」である場合には、URI判定部c122は、「jquery.min.js」をファイル名として抽出する。
変形例1では、URI判定部c122は、配列TのリソースURIに変えてファイル名を代入する。また、ステップS213の比較において、URI判定部c122は、変数INの文字列に変えて、変数INの文字列から上述のように抽出したファイル名を用いて比較を行う。
例えば、変数INが「http://YYY・・・.com/ajax/libs/jquery/1.3.2/jquery.js」である場合、ステップS213では、URI判定部c122は、ファイル名「jquery.js」を抽出して比較する。一方、配列Tの2番目(n=2)の要素には「jquery.js」が代入されている(図10参照)ので、2回目(N=2)のステップS214で、抽出したファイル名「jquery.js」と一致した(完全一致)と判定する。この場合、URI判定部c122は、ステップS218で、配列RのN番目(N=2)の内容である「file://script/jquery−1.3.2.min.js」を代替URIとして、リソース取得先URIに設定する。
同様に、例えば、変数INが「http://YYY・・・.com/ajax/libs/jquery/1.3.2/jquery.js」である場合も、URI判定部c122は、「jquery.min.js」をファイル名として抽出し、一致すると判定する。この場合も、URI判定部c122は、ステップS218で、配列RのN番目(N=2)の内容である「file://script/jquery−1.3.2.min.js」を代替URIとして、リソース取得先URIに設定する。
変形例2では、URI判定部c122は、リソースURIの先頭部分の文字列(URI部分文字列という)及びファイル名に基づいて、代替URIが存在するか否かを判定する。
例えば、図11の1行目のURI判定情報は、符号1302を付したURI部分文字列「http://YYY・・・.com/ajax/libs/jquery/」及びファイル名「jquery.js」(ファイル名1202)に対する代替URIとして、「file://script/jquery−1.3.2.min.js」(URI1102)が対応付けられていることを示す。
URI判定部c122(URI判定オブジェクト)は、リソースURIの先頭部分の文字列と、URI判定情報テーブルのURI部分文字列を比較し、代替URIが存在するか否かを判定する。例えば、URI判定部c122は、リソースURIが「http://YYY・・・.com/ajax/libs/jquery/1.3.2/jquery.min.js」である場合には、URI判定情報テーブルのURI部分文字列が「http://YYY・・・.com」や「http://YYY・・・.com/ajax/libs/jquery」である場合、代替URIが存在すると判定する。
なお、URI判定部c122は、変形例1と同様にしてファイル名を抽出する。
変形例2では、URI判定部c122は、判定情報記憶部c121が記憶するURI判定情報テーブル(図10)でのn行目のURI部分文字列及びファイル名を、それぞれ、配列T1、T2のn番目の要素に、代入する。URI判定部c122は、URI判定部c122は、配列Tに変えて配列T1及びT2を用いて代替URI処理を行う。
ステップS213の比較において、URI判定部c122は、リソースURIの先頭部分の文字列と配列T1のURI部分文字列とを比較する(先頭一致比較という)。ここで、先頭一致比較とは、2個の文字列を先頭から1文字づつ順番に比較し、先にどちらかの文字列が文字列終端に達した時点で、もう片方の文字列の残りは比較せず、2個の文字列は一致したとする比較方法である。
また、URI判定部c122は、変数INの文字列から抽出したファイル名と、配列T2のファイル名とを比較する(ファイル名比較という)。この2つの比較(先頭一致比較、ファイル名比較)において、いずれの比較でも一致すると判定した場合、ステップS214で一致したと判定する。なお、それ以外の場合は、一致しないと判定する。
同様に、例えば、変数INが「http://YYY・・・.com/ajax/libs/jquery/1.3.0/jquery.js」である場合も、URI判定部c122は、先頭一致比較(「http://YYY・・・.com/ajax/libs/jquery/」)でもファイル名比較でも一致すると判定する。この場合も、URI判定部c122は、ステップS218で、配列RのN番目(N=2)の内容である「file://script/jquery−1.3.2.min.js」を代替URIとして、リソース取得先URIに設定する。
なお、上記変形例2において、URI部分文字列は、リソースURLのドメイン名を用いてもよい。
これにより、同一のWebサイトにおいて、例えばリソースURI文字列の一部にに含まれる「/1.3.2/」のようなバージョン情報や「/2009.08.11/」のようなリリース日付けを意味する部分のみが異なっていても、Webブラウザ端末C1は、適切な代替JSファイルのJSプログラムで置き換えることができる。
また、バージョンやリリース日付けが異なるJSファイルのリソースURI毎に、そのURI判定情報を書き込まなくても、代替URIと対応付けることができる。また、これにより、配列Tの設定個数の増加を防止することができる。
特に著名なJSライブラリの開発を行っているWebサイトでは、同一Webサイト上に過去のものを含む複数バージョンのJSファイルが存在しており、且つ、開発が進むにつれてそのJSファイルの種類が増えていくため、それらJSファイルについて全てを個々に指定することなく代替URIを設定できる。
また、リソースURIとファイル名以外のURIとで部分一致の判定を行うので、偶然ファイル名が同一だったことによって目的とするJSライブラリに対する意図しない置き換えが行われることを防止することができる。
上記第1の実施形態において、Webブラウザ端末C1は、URIに基づいて代替URI処理を行った。本実施形態では、Webブラウザ端末は、リソースURLから取得したJSファイルのリソースデータに基づいて、このリソースデータを代替JSファイルのリソースデータに変更する代替データ処理を行う。以下、本実施形態に係るWebブラウザ端末C2という。
本実施形態に係る情報処理システムを示す概念図は、図1と同じであるので説明は省略する。なお、この図のWebブラウザ端末C11、C12各々がWebブラウザ端末C2である。また、Webブラウザ端末C2のハードウェア構成を示す概略ブロック図は、図2と同じであるので説明は省略する。ただし、本実施形態に係るWebブラウザアプリケーションf2の機能はWebブラウザアプリケーションf1とは異なる。
表示制御部c211は、データ判定部c222から入力された代替URIのWeb代替JSファイルb11、或いはローカル代替JSファイルf2、又は、(データ判定部c222からNULL値が入力された場合)スクリプト取得部c112から入力されたリソースURIのJavascritpファイルa13のJSプログラムを用いて、通信部c106から入力されたファイルのプログラムを実行する。表示制御部c211は、プログラムの実行結果の画像情報を表示部c105に出力する。
データ判定部c222は、判定情報記憶部c221が記憶するデータ判定情報テーブルの情報と、表示制御部c211から入力されたリソースデータに基づいて、代替URIがあるか否かを判定する。
代替URIがあると判定した場合、データ判定部c222は、代替URIをリソース取得先URIとしてスクリプト取得部c112に出力する。データ判定部c222は、スクリプト取得部c112が取得した代替URIのWeb代替JSファイルb11、或いはローカル代替JSファイルf2のリソースデータ(代替リソースデータという)を表示制御部c211に出力する。一方、代替URIがないと判定した場合、データ判定部c222は、NULL値を表示制御部c211に出力する。ここでNULL値とは、通常の文字列とは異なる文字列であり、例えば長さが0の文字列である。
なお、data判定オブジェクトo223は図12のデータ判定部c212で実装され、ローダーオブジェクトo121及びスキーム別ローダーオブジェクトはスクリプト取得部c112で実装される。その他のオブジェクトは表示制御部c211で実装される。
data判定オブジェクトo223は、送付されたリソースデータに対する代替リソースデータをリソースビルダーオブジェクトo22に返却する。
リソースビルダーオブジェクトo22は、data判定オブジェクトo223から返却された代替リソースデータを含むレンダリング命令を生成し、レンダラーオブジェクトo122に送付する。
(ステップS313)ステップS313で代替URIが存在すると判定した場合、data判定オブジェクトo223は、ステップS312で読み出した代替URIをリソース取得先URIとし、このリソース取得先URIを含むリソース取得メッセージを、ローダーオブジェクトo121に送付する。その後、ステップS314へ進む。
一方、ステップS313で代替URIが存在しないと判定した場合は、ステップS317へ進む。
(ステップS316)リソースデータをローダーオブジェクトo121は、ステップS315で返却されたリソースデータを、リソース取得メッセージの返値としてdata判定オブジェクトo223に返却する。その後、ステップS317へ進む。
(ステップS307)リソースビルダーオブジェクトo22は、ステップS317で返却されたリソースデータを含むレンダリング命令を生成し、レンダラーオブジェクトo122に送付する。ここで、ステップS316でNULL値が返却された場合には、リソースビルダーオブジェクトo22は、ステップS106で返却されたリソースデータを含むレンダリング命令を生成し、レンダラーオブジェクトo122に送付する。その後、ステップS108へ進む。
なお、ローダーオブジェクトo121、リソースビルダーオブジェクトo22及びdata判定オブジェクトo223が行うステップS311〜S317、S307の処理が代替データ処理である。
図15は、本実施形態に係るデータ判定情報テーブルの一例を示す概略図である。図示するようにデータ判定情報テーブルは、データファイル名及び代替URIの各項目の列を有している。データ判定情報テーブルは、行毎にデータ判定情報が格納される行と列からなる2次元の表形式のデータである。
例えば、図15の1行目のデータ判定情報は、符号2001を付したデータファイル名「ファイル1」に対する代替URIとして、符号2101を付した「file://script/jquery−1.3.2.min.js」が対応付けられていることを示す。
例えば、データファイル名「ファイル1」のデータファイルは図16に示す内容であり、また、データファイル名「ファイル2」のデータファイルは図17に示す内容である。図16、図17はデータファイルの一例を示す概略図であり、これらのデータファイルはJacascriptコード(JSプログラム)を表わす文字列で記載されている。
(ステップS411)図12のデータ判定部c222(data判定オブジェクトo223)は、取得した代替データ存在チェックメッセージのリソースデータのdata値(チェック対象テキストデータ)を文字列として文字列変数TEXTに代入する。その後、ステップS412へ進む。
(ステップS412)データ判定部c222は、整数変数Nに「1」を代入する。また、この変数Nは配列F及び配列Rの添え字として用いられる。また、データ判定部c222は、判定情報記憶部c221が記憶するデータ判定情報テーブル(図15)でのn行目のデータファイル名のデータファイルの内容(テキストデータ;プログラムの識別情報)を配列Fのn番目の要素に代入する。また、データ判定部c222は、判定情報記憶部c221が記憶するデータ判定情報テーブルでのn行目の代替URIを配列Rのn番目の要素に代入する。その後、ステップS413へ進む。
(ステップS414)データ判定部c222は、ステップS413の比較の結果、文字列が完全に一致したか否かを判定する。判定の結果、文字列が完全に一致したと判定した場合、ステップS418へ進む。一方、文字列が完全に一致しないと判定した場合、ステップS415へ進む。
(ステップS415)データ判定部c222は、変数Nの値を1増やす。その後、ステップS416へ進む。
(ステップS417)データ判定部c222は、NULL値を代替データ存在チェックメッセージの返値(リソースビルダーオブジェクトo22への返値)に設定する。その後、動作を終了する。
(ステップS418)データ判定部c222は、配列RのN番目の内容を、つまり、配列RのN番目の要素である代替URIの文字列(図8でのN行目の代替URI)を、スクリプト取得部c112に出力する。その後、ステップS419へ進む。
(ステップS419)スクリプト取得部c112は、ステップS418で出力された代替URIから代替JSファイルを取得し、データ判定部c222に出力する。データ判定部c222は、入力された代替JSファイルからmime−type値とdata値と抽出し、抽出した値をリソースデータとして、代替データ存在チェックメッセージの返値(リソースビルダーオブジェクトo22への返値)に設定する。その後、動作を終了する。
なお、データ判定部c222は、ステップS417又はS419で設定したリソースデータを表示制御部c211に出力する。
以下、本実施形態の変形例について説明をする。
本実施形態では、Webブラウザ端末C2がJacascriptコード(JSプログラム)を表わす文字列で記載されたファイルのデータに基づいて代替データ処理を行う場合について説明をした。しかし、本発明はこれに限らず、ファイルの内容を数値等の他の文字列に変換し、変換した文字列(変換データという)に基づいてWebブラウザ端末C2が代替データ処理を行ってもよい。ここで、変数TEXTの内容を数値化には、例えば、文字列の文字数を数値化の値としてもよいし、また、文字列の各文字を8ビットの数値としてその総和を求めるチェックサム(Check Sum)を数値化の値としてもよい、また、文字列の各文字を8ビットの数値としてそのハッシュ関数の値を数値化の値してもよい。なお、ハッシュ関数としては例えばSHA(Secure Hash Algorithm)−1やMD(Message Digest Algorithm)5などがある。
図18において、符号2101、2102を付した変換データ(変換データ2101、2102という)は、それぞれ、ハッシュ関数としてMD5を用いて、図16、図17のデータファイルを変換した変換データである。なお、これらの変換データは、16進数で標記したハッシュ値である。
また、文字列を数値化する方法としてハッシュ関数を用いると、異なるJSファイルの内容に対して偶然同一の値になる可能性が大幅に減るため、目的とするJSライブラリに対する意図しない代替が行われることを防止することができる。
JSライブラリを作成する際、グローバルオブジェクトの名称(グローバルオブジェクト名という)、例えばJSライブラリ毎に固有のグローバル変数を1個定義する。そのグローバル変数に値を指定することで、その値に対応付けられたグローバルオブジェクトのメソッドを呼び出すことができる。このように、グローバル変数とその値を、JSライブラリのAPIとして用いることがある。その際、グローバルオブジェクトに値を設定する命令文(グローバルオブジェクト値設定命令文という。例えば、グローバルオブジェクトに値を設定するvar文)が用いられる。ここで、グローバルオブジェクト値設定命令文には、グローバルオブジェクト名が含まれている。
例えば、JSライブラリが「prototype.js」であれば、使用するグローバル変数の名前は「Prototype」と決められている。したがって、グローバルオブジェクト名からどのJSライブラリを利用しようとしているかの判定をすることができるので、そのJSライブラリに変わる代替ライブラリを選択することできる。
本実施形態に係る情報処理システムを示す概念図は、図1と同じであるので説明は省略する。なお、この図のWebブラウザ端末C11、C12各々がWebブラウザ端末C3である。また、Webブラウザ端末C3のハードウェア構成を示す概略ブロック図は、図2と同じであるので説明は省略する。ただし、本実施形態に係るWebブラウザアプリケーションf3の機能はWebブラウザアプリケーションf1とは異なる。
表示制御部c311は、モジュール判定部c322から入力された代替URIをリソース取得先URIとしてスクリプト取得部c112に出力する。表示制御部c111は、スクリプト取得部c112から入力されたWeb代替JSファイルb11、或いはローカル代替JSファイルf2、又は、(モジュール判定部c322からNULL値が入力された場合)スクリプト取得部c112から入力されたリソースURIのJavascritpファイルa13のリソースデータを用いて、JSプログラムの実行コードを生成する。表示制御部c311は、生成した実行コードを実行して、通信部c106から入力されたファイルのプログラムを実行する。表示制御部c311は、プログラムの実行結果の画像情報を表示部c105に出力する。
モジュール判定部c322は、判定情報記憶部c321が記憶するモジュール判定情報テーブルの情報と、表示制御部c311から入力されたグローバルオブジェクト名に基づいて、代替URIがあるか否かを判定する。
代替URIがあると判定した場合、モジュール判定部c322は、代替URIを表示制御部c311に出力する。一方、代替URIがないと判定した場合、モジュール判定部c322は、NULL値を表示制御部c311に出力する。
なお、API判定オブジェクトo323は、図12のデータ判定部c212で実装され、ローダーオブジェクトo121及びスキーム別ローダーオブジェクトはスクリプト取得部c112で実装される。JSレンダラーオブジェクトo3222等のその他のオブジェクトは表示制御部c311で実装される。
API判定オブジェクトo323は、送付されたグローバルオブジェクト名に対する代替URIをJSレンダラーオブジェクトo3222に返却する。
JSレンダラーオブジェクトo3222は、API判定オブジェクトo323から返却された代替URIをローダーオブジェクトo121に送付する。JSレンダラーオブジェクトo3222は、ローダーオブジェクトo121から返却された代替URIのJSファイルのJSプログラムのプログラムコードを解析して実行コードを抽出し、抽出した実行コードが書き込まれたJSリソースオブジェクトo113を生成する。
(ステップS512)JSレンダラーオブジェクトo3222は、ステップS511で検出したグローバルオブジェクト値設定命令文からグローバルオブジェクト名を抽出し、抽出したグローバルオブジェクト名を含む代替モジュール存在チェックメッセージを、API判定オブジェクトo323に送付する。その後、ステップS513へ進む。
リソース取得先URIとして、このリソース取得先URIを含むリソース取得メッセージを、ローダーオブジェクトo121に送付する。その後、ステップS515へ進む。一方、ステップS514でNUUL値が返却された場合は、ステップS518へ進む。
(ステップS515)ローダーオブジェクトo121は、ステップ514で送付されたリソース取得メッセージを取得し、取得したリソース取得メッセージのリソース取得先URIに基づいてスキームを判定する。ローダーオブジェクトo121は、判定したスキームのスキーム別ローダーオブジェクト(fileローダーオブジェクトo1212)に対して、リソース取得先URIを含むデータ取得メッセージを送付する。その後、ステップS516へ進む。
(ステップS517)リソースデータをローダーオブジェクトo121は、ステップS516で返却されたリソースデータを、リソース取得メッセージの返値としてdata判定オブジェクトo223に返却する。その後、ステップS518へ進む。
(ステップS519)JSレンダラーオブジェクトo3222は、ステップS511での命令文解析処理の結果、JSプログラムの実行コードを生成し、生成した実行コードを生成したJSリソースオブジェクトo113に書き込む。その後、ステップS113へ進む。
なお、JSレンダラーオブジェクトo3222及びAPI判定オブジェクトo323が行うステップS511〜S319の処理が代替モジュール処理である。
図23は、本実施形態に係るモジュール判定情報テーブルの一例を示す概略図である。図示するようにモジュール判定情報テーブルルは、グローバルオブジェクト名及び代替URIの各項目の列を有している。モジュール判定情報テーブルは、行毎にデータ判定情報が格納される行と列からなる2次元の表形式のデータである。
例えば、図23の1行目のデータ判定情報は、符号3001を付したグローバルオブジェクト名「jQuery」に対する代替URIとして、符号3101を付した「file://script/jquery−1.3.2.min.js」が対応付けられていることを示す。
(ステップS611)図20のモジュール判定部c322(API判定オブジェクトo323)は、取得した代替モジュール存在チェックメッセージのグローバルオブジェクト名(チェック対象テキストデータ)を文字列として文字列変数NAMEに代入する。その後、ステップS612へ進む。
(ステップS612)モジュール判定部c322は、整数変数Nに「1」を代入する。また、この変数Nは配列M及び配列Rの添え字として用いられる。また、モジュール判定部c322は、判定情報記憶部c321が記憶するモジュール判定情報テーブル(図23)でのn行目のグローバルオブジェクト名を配列Mのn番目の要素に代入する。また、モジュール判定部c322は、判定情報記憶部c321が記憶するモジュール判定情報テーブルでのn行目の代替URIを配列Rのn番目の要素に代入する。その後、ステップS613へ進む。
(ステップS614)モジュール判定部c322は、ステップS613の比較の結果、文字列が完全に一致したか否かを判定する。判定の結果、文字列が完全に一致したと判定した場合、ステップS619へ進む。一方、文字列が完全に一致しないと判定した場合、ステップS615へ進む。
(ステップS615)モジュール判定部c322は、変数Nの値を1増やす。その後、ステップS616へ進む。
(ステップS617)モジュール判定部c322は、NULL値を代替データ存在チェックメッセージの返値(リソースビルダーオブジェクトo22への返値)に設定する。その後、ステップS618へ進む。
(ステップS618)表示制御部c311は、グローバルオブジェクト名を含むグローバルオブジェクト値設定命令文に従い、元のJSファイルを用いて実行コードを生成する。その後、動作を終了する。
(ステップS620)表示制御部c311は、スクリプト取得部c112を介して、ステップS618で出力された代替URIから代替JSファイルを取得する。その後、ステップS621へ進む。
(ステップS621)表示制御部c311(JSレンダラーオブジェクトo3222)は、ステップS620で取得した代替JSファイルを用いて実行コードを生成する。その後、動作を終了する。
以下、本実施形態の変形例について説明をする。
本実施形態では、モジュール判定部c322がグローバルオブジェクト名に基づいて代替モジュール処理を行う場合について説明をした。しかし、本発明はこれに限らず、関数オブジェクトに基づいて代替モジュール処理を行ってもよい。
まず、Jacascript言語の関数オブジェクトには、関数スコープ機能がある。スコープとは、ある変数や関数が特定の名称で参照される範囲のことである。この機能により、関数内部で定義された変数やパラメータについては、関数外部からアクセスすることができない。この機能を利用してJSライブラリ固有の処理を関数内部にカプセル化し、それ以外の処理との間で変数名や関数名の衝突を避けている。
次に、Jacascript言語の関数オブジェクトには、クロージャ機能がある。クロージャはプログラム内で環境を共有するための仕組みである。この機能により、JSライブラリに相当する関数Aの内部で別の関数Bを定義した場合、関数Bを実行する際には関数Aの内部にある変数やパラメータへアクセスすることができる。さらに、関数Bは関数Aの外部で実行することもでき、その場合も関数Aの内部にある変数やパラメータへアクセスできる。これを利用してJSライブラリ内部の処理をJSライブラリの外部から呼出すことができる。
このようにした場合、Jacascript言語によるライブラリAを作成した場合、ライブラリAは名称を持つ必要が無い。そのためライブラリAを無名関数とすることができる。また、この場合、ライブラリAを定義した後に実行することで内部の関数Bが定義されるため、ライブラリAを、その関数定義と同時に実行することもできる。さらに、この場合、関数オブジェクトBを代入するグローバルオブジェクトとして、JSライブラリ固有のグローバル変数を指定せず、関数内部のパラメータ「this」にセットされているグローバルオブジェクトに対して、JSライブラリ固有のメソッドとして設定することもできる。
また、関数オブジェクトBを代入している「var文」は、関数Aの定義内容の冒頭部分に位置する。関数オブジェクトB内の処理を行う「命令文」は、「var文」の後に位置する。
具体的に、この場合、表示制御部c311は、スクリプト取得部c112から入力されたリソースURIのJavascritpファイルa13のリソースデータから「無名関数を用いたfunction式」(「(function(){」と「})();」の組み合わせの文字列)を選択する。表示制御部c311は、選択した無名関数の定義内容の冒頭部分で「var文」で代入対象となっている変数名を抽出し(「(function(){」と「})();」との間で、先頭の「var」から「=」までの文字列)、抽出した変数名をモジュール判定部c322に出力する。
モジュール判定部c322は、判定情報記憶部c321が記憶するモジュール判定情報テーブルの情報(変数名及び代替URIの対応情報)と、表示制御部c311から入力された変数名に基づいて、代替URIがあるか否かを判定する。
また、上記各実施形態において、URI判定情報テーブル、データ判定情報テーブル、モジュール判定情報テーブルが、それぞれ、リソースURI及び代替URI、データファイル名(或いは変換データ)及び代替URI、グローバルオブジェクト名及びURIを対応付けて記憶している場合について説明をしたが、それぞれの項目を別のファイルに記憶してもよい(例えば、リソースURIを記憶するファイルと代替URIを記憶するファイル)。この場合は、例えば、ファイル内の情報の対応付けを順序によって対応付け、それぞれ配列に代入する(例えば、一方のファイルで図8のURI1001を1番目、URI1004を4番目の順に記憶し、もう一方のファイルでURI1101を1番目、URI1104を4番目に記憶する)。また、上記第2の実施形態において、データ判定情報テーブルでデータファイル名を記憶し、そのデータファイル名のデータファイルを配列Fに代入したが、データ判定情報テーブルで、データファイル名に代えて、データファイルの内容を記憶してもよい。この場合、データファイルの内容を直接配列Fに代入する。
例えば、Webブラウザ端末C1〜C3がWebサーバB1に、httpプロトコルを用いてアクセスする場合、User−Agentリクエストヘッダフィールドに固有情報を含めればよい。このUser−Agentリクエストヘッダフィールドは、リクエストを生成したユーザエージェントについての情報を含むものである。このフィールドは、統計目的、プロトコル違反の追跡、特定のユーザエージェントの制限を回避するようなレスポンスを作成するためのユーザエージェントの自動認識のために利用される。このフィールドには、複数の製品トークンや、エージェントやユーザエージェントの重要な付属製品を識別するためのコメントを含める事ができ、慣習によれば、製品トークンはアプリケーションを識別するために重要な順に列挙される。
また、例えば、Webブラウザ端末C1〜C3は、任意のユーザ拡張ヘッダフィールドを用いて固有情報を送信してもよい。具体的には、「X−ProductID」のように「X−」で始まるフィールド名はhttpの仕様書で定義される事は無く、常にユーザ定義ヘッダとして使用できるので、このようなフィールド名のフィールドを用いて固有情報を送信すればよい。
また、例えば、Webブラウザ端末C1〜C3は、問合せ構成要素(query部分)を代替URIに追加し、代替URIの一部として固有情報を送信してもよい。具体的には、代替URIが「http://XXX・・・.com/example.js」である場合、このURIにquery部分「ProductID=model10」(model10が固有情報)を追加した代替URI「http://XXX・・・.com/example.js?ProductID=model10」を用いてアクセスしてもよい。
表示制御部c311及び代替判定部c32を加えてもよい。
なお、代替URI処理及び代替データ処理で判定対象となるJSファイル(リソースURIのJSファイル)と、代替モジュール処理で判定対象となるJSファイルを異なる種類のJSファイルとしてもよい。具体的には、URI判定情報テーブル及びデータ判定情報テーブルには「prototype−1.6.0.3.js」のURI、ファイルデータを含めず、モジュール判定情報テーブルのみに「prototype−1.6.0.3.js」のオブジェクト名(「Prototype」)を含ませる。これにより、既に代替URI処理で取得した代替JSファイルに対して、代替モジュール処理を行うことを防止うることができる。
これは元のJSファイルの動作と代替したバイナリコードの動作が同じ場合に実施する。これは例えば、元のJSファイルの動作が動的に変化するものではない場合である。
この場合、「js−ctypes」拡張を用いて代替したバイナリコードの呼び出しを行う。「js−ctypes」拡張では、予めJavascript実行部を拡張し、オブジェクト「ctypes」の処理を組み込んでおく。このオブジェクトはメソッド「name」をもち、「ctypes.name(〜)」の形式で引数として呼出したいバイナリコードを含む動的ライブラリのファイル名を指定する。このメソッドの実行結果として、ライブラリオブジェクト(「lib」という)が得られる。このライブラリオブジェクトlibはメソッド「declare」を持ち、「lib.declare(〜)」の形式で引数として呼出したいバイナリコードのライブラリに含まれる関数名を指定する。このメソッドの実行結果として、Javascript言語における関数オブジェクトが得られる。
そして、このJavascript言語における関数オブジェクトをJSプログラム内で呼出すことで、呼出したいバイナリコードを含む動的ライブラリ内の指定の関数が呼出される。このように、取得した代替JSファイル内でこの「js−ctypes」拡張を用いてWebブラウザ端末が内蔵し直接実行可能なバイナリコードを実行する。これにより、JSファイルを代替JSファイルに置き換えるだけでなく、実行に際してもJavascript言語による実行よりも効率的な内蔵するバイナリコードによる実行が行える。
Claims (16)
- 動作処理を記述するスクリプト言語のプログラムの取得先を示す情報と前記プログラムの代替プログラムの取得先とを対応付けた判定情報を記憶する判定情報記憶部と、
実行予定の前記プログラムの識別情報と前記判定情報とに基づいて、前記実行予定のプログラムの代替プログラムの取得先を抽出する取得先抽出部と、
前記取得先抽出部が抽出した取得先から前記代替プログラムを取得する取得部と、
を有する情報処理装置であって、
前記判定情報記憶部は、
前記プログラムの内容と前記代替プログラムの取得先とを対応付けた判定情報とを記憶し、
前記取得先抽出部は、
前記判定情報記憶部が記憶するプログラムの内容のうち、前記取得部が取得した代替プログラムの内容と一致しているプログラムの内容に対応する代替プログラムの取得先をさらに抽出し、
前記取得部は、
前記取得先抽出部が抽出した取得先から他の代替プログラムを取得し、
前記実行予定のプログラムを、前記取得部が取得した他の代替プログラムに置き換え、置き換えた代替プログラムを実行する制御部と、
を備えることを特徴とする情報処理装置。 - 動作処理を記述するスクリプト言語のプログラムの取得先を示す情報と前記プログラムの代替プログラムの取得先とを対応付けた判定情報を記憶する判定情報記憶部と、
実行予定の前記プログラムの識別情報と前記判定情報とに基づいて、前記実行予定のプログラムの代替プログラムの取得先を抽出する取得先抽出部と、
前記取得先抽出部が抽出した取得先から前記代替プログラムを取得する取得部と、
を有する情報処理装置であって、
前記判定情報記憶部は、
所定の命令文で用いられる対象の名称と前記代替プログラムの取得先とを対応付けた判定情報とを記憶し、
前記取得先抽出部は、
前記判定情報記憶部が記憶する対象の名称のうち、前記取得部が取得した代替プログラムから抽出された対象の名称に対応する代替プログラムの取得先をさらに抽出し、
前記取得部は、
前記取得先抽出部が抽出した取得先から他の代替プログラムを取得し、
前記実行予定のプログラムを、前記取得部が取得した他の代替プログラムに置き換え、置き換えた代替プログラムを実行する制御部と、
を備えることを特徴とする情報処理装置。 - 前記代替プログラムは、情報処理装置の情報処理能力に応じたプログラムであることを特徴とする請求項1又は2に記載の情報処理装置。
- 前記代替プログラムは、情報処理装置の種類に応じたプログラムであることを特徴とする請求項3に記載の情報処理装置。
- 前記情報処理装置は、プログラムを実行して画像を表示する表示装置であり、
前記代替プログラムは、情報処理装置の動画の再生能力に応じたプログラムであることを特徴とする請求項3に記載の情報処理装置。 - 前記判定情報記憶部が記憶するプログラムの内容は、当該プログラムの内容を変換した文字列で表され、
前記取得先抽出部は、
前記判定情報記憶部が記憶するプログラムの内容のうち、前記取得部が取得した代替プログラムの内容を変換した変換データと一致している変換データに対応する代替プログラムの取得先をさらに抽出することを特徴とする請求項1に記載の情報処理装置。 - 前記命令文は、変数に値を代入する代入文であることを特徴とする請求項2に記載の情報処理装置。
- 前記命令文は、関数を定義する定義文であることを特徴とする請求項2に記載の情報処理装置。
- 前記判定情報を更新することを特徴とする請求項1から8のいずれかに記載の情報処理装置。
- 前記取得部は、外部の装置から前記代替プログラムを取得することを特徴とする請求項1から9のいずれかに記載の情報処理装置。
- 前記プログラムは、ライブラリで提供されるプログラムであることを特徴とする請求項1から10のいずれかに記載の情報処理装置。
- 前記プログラムは、Javascript言語のプログラムであることを特徴とする請求項1から11のいずれかに記載の情報処理装置。
- 動作処理を記述するスクリプト言語のプログラムを実行する情報処理装置における情報処理方法において、
前記情報処理装置が、
前記プログラムの取得先を示す情報と前記プログラムの代替プログラムの取得先とを対応付けた判定情報を記憶する判定情報記憶部に記憶された判定情報と、実行予定の前記プログラムの識別情報とに基づいて、前記実行予定のプログラムの代替プログラムの取得先を抽出する過程と、
前記抽出された取得先から前記代替プログラムを取得する過程と、
前記プログラムの内容と前記代替プログラムの取得先とを対応付けた判定情報とを記憶する判定情報記憶部が記憶するプログラムの内容のうち、前記取得した代替プログラムの内容と一致しているプログラムの内容に対応する代替プログラムの取得先をさらに抽出する過程と、
さらに抽出された取得先から他の代替プログラムを取得する過程と、
前記実行予定のプログラムを、前記他の代替プログラムに置き換え、置き換えた代替プログラムを実行する過程と、
を有することを特徴とする情報処理方法。 - 動作処理を記述するスクリプト言語のプログラムを実行する情報処理装置における情報処理方法において、
前記情報処理装置が、
前記プログラムの取得先を示す情報と前記プログラムの代替プログラムの取得先とを対応付けた判定情報を記憶する判定情報記憶部に記憶された判定情報と、実行予定の前記プログラムの識別情報と前記判定情報とに基づいて、前記実行予定のプログラムの代替プログラムの取得先を抽出する過程と、
前記抽出された取得先から前記代替プログラムを取得する過程と、
所定の命令文で用いられる対象の名称と前記代替プログラムの取得先とを対応付けた判定情報とを記憶する判定情報記憶部が記憶する対象の名称のうち、前記取得された代替プログラムから抽出された対象の名称に対応する代替プログラムの取得先をさらに抽出する過程と、
さらに抽出された取得先から他の代替プログラムを取得する過程と、
前記実行予定のプログラムを、前記抽出された他の代替プログラムに置き換え、置き換えた代替プログラムを実行する過程と、
を有することを特徴とする情報処理方法。 - 動作処理を記述するスクリプト言語のプログラムを実行する情報処理装置のコンピュータに、
前記プログラムの取得先を示す情報と前記プログラムの代替プログラムの取得先とを対応付けた判定情報を記憶する判定情報記憶部に記憶された判定情報と、実行予定の前記プログラムの識別情報とに基づいて、前記実行予定のプログラムの代替プログラムの取得先を抽出する手順、
前記抽出された取得先から前記代替プログラムを取得する手順、
前記プログラムの内容と前記代替プログラムの取得先とを対応付けた判定情報とを記憶する判定情報記憶部が記憶するプログラムの内容のうち、前記取得した代替プログラムの内容と一致しているプログラムの内容に対応する代替プログラムの取得先をさらに抽出する手順、
さらに抽出された取得先から他の代替プログラムを取得する手順、
前記実行予定のプログラムを、前記他の代替プログラムに置き換え、置き換えた代替プログラムを実行する手順、
を実行させるための情報処理プログラム。 - 動作処理を記述するスクリプト言語のプログラムを実行する情報処理装置のコンピュータに、
前記プログラムの取得先を示す情報と前記プログラムの代替プログラムの取得先とを対応付けた判定情報を記憶する判定情報記憶部に記憶された判定情報と、実行予定の前記プログラムの識別情報と前記判定情報とに基づいて、前記実行予定のプログラムの代替プログラムの取得先を抽出する手順、
前記抽出された取得先から前記代替プログラムを取得する手順、
所定の命令文で用いられる対象の名称と前記代替プログラムの取得先とを対応付けた判定情報とを記憶する判定情報記憶部が記憶する対象の名称のうち、前記取得された代替プログラムから抽出された対象の名称に対応する代替プログラムの取得先をさらに抽出する手順、
さらに抽出された取得先から他の代替プログラムを取得する手順、
前記実行予定のプログラムを、前記抽出された他の代替プログラムに置き換え、置き換えた代替プログラムを実行する手順、
を実行させるための情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009285018A JP5500968B2 (ja) | 2009-12-16 | 2009-12-16 | 情報処理装置、情報処理方法、及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009285018A JP5500968B2 (ja) | 2009-12-16 | 2009-12-16 | 情報処理装置、情報処理方法、及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011128762A JP2011128762A (ja) | 2011-06-30 |
JP5500968B2 true JP5500968B2 (ja) | 2014-05-21 |
Family
ID=44291320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009285018A Expired - Fee Related JP5500968B2 (ja) | 2009-12-16 | 2009-12-16 | 情報処理装置、情報処理方法、及び情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5500968B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3006355A1 (en) * | 2015-11-27 | 2017-06-01 | Cadens Imagerie Medicale Inc. | Method and system for executing a function for processing data using a server |
CN111083569B (zh) * | 2018-10-18 | 2021-11-05 | 杭州海康威视数字技术股份有限公司 | 一种视频播放方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5857106A (en) * | 1996-05-31 | 1999-01-05 | Hewlett-Packard Company | Runtime processor detection and installation of highly tuned processor specific routines |
JP3707048B2 (ja) * | 2000-06-12 | 2005-10-19 | 大日本印刷株式会社 | インストール装置及び記録媒体 |
JP2003022189A (ja) * | 2001-07-06 | 2003-01-24 | Mitsubishi Electric Corp | 分散ネットワークコンピューティングシステム |
JP4953531B2 (ja) * | 2001-08-30 | 2012-06-13 | シャープ株式会社 | 端末装置 |
JP2003308213A (ja) * | 2002-04-17 | 2003-10-31 | Hitachi Ltd | ジョブ処理方法、ジョブ処理装置及びストレージ管理システム |
JP2004246413A (ja) * | 2003-02-10 | 2004-09-02 | Mitsubishi Electric Corp | 計算機システム |
US8789016B2 (en) * | 2005-12-29 | 2014-07-22 | Panasonic Corporation | Systems and methods for providing user configurable software libraries |
EP2122508A1 (en) * | 2007-02-09 | 2009-11-25 | Novarra, Inc. | Method and apparatus for providing information content for display on a client device |
-
2009
- 2009-12-16 JP JP2009285018A patent/JP5500968B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011128762A (ja) | 2011-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6922538B2 (ja) | Api学習 | |
US10776567B2 (en) | Method for compiling page data, method, device and storage medium for page rendering | |
CN102521230B (zh) | 用于有条件的数据显示的结果类型 | |
JP6416374B2 (ja) | 動的コンテンツと古いコンテンツとを含んでいるウェブサイトの高速レンダリング | |
US8577914B2 (en) | APIS discovery service | |
US10452765B2 (en) | Web content rewriting, including responses | |
CN102597993B (zh) | 利用统一资源标识符管理应用状态信息 | |
US9544335B2 (en) | Method and system for local calling via webpage | |
CN102124481A (zh) | 在具有广告的网页中嵌入宏 | |
US11474796B1 (en) | Build system for distributed applications | |
EP2033125A2 (en) | Message catalogs for remote modules | |
JP2006235840A (ja) | データベース・アクセス・システム、データベース・アクセス方法 | |
US20150067037A1 (en) | Communication apparatus and communication method | |
JP2004164623A (ja) | 表示データ生成装置、表示データ生成システム、表示データ生成方法、表示データ生成プログラム及び記録媒体 | |
IES20030062A2 (en) | Document transformation | |
AU2010203134A1 (en) | Data comparison system | |
KR20190058141A (ko) | 문서로부터 추출되는 데이터를 생성하는 방법 및 그 장치 | |
US20220043546A1 (en) | Selective server-side rendering of scripted web page interactivity elements | |
US7328234B1 (en) | Agent architecture for triggering remotely initiated data processing operations | |
JP5500968B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JP4448026B2 (ja) | Htmlアプリケーションの送信方法 | |
US9727397B2 (en) | Container-less JSP template | |
CN102231150A (zh) | 嵌入式浏览器字库管理方法及系统 | |
US20140025696A1 (en) | Method, Program and System for Generating RDF Expressions | |
CN110780983A (zh) | 任务异常处理方法、装置、计算机设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121016 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130611 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130809 |
|
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: 20140212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140311 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5500968 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |