JP2008527564A - 実行可能なウェブコンテンツの提供及び処理システム及び方法 - Google Patents

実行可能なウェブコンテンツの提供及び処理システム及び方法 Download PDF

Info

Publication number
JP2008527564A
JP2008527564A JP2007551194A JP2007551194A JP2008527564A JP 2008527564 A JP2008527564 A JP 2008527564A JP 2007551194 A JP2007551194 A JP 2007551194A JP 2007551194 A JP2007551194 A JP 2007551194A JP 2008527564 A JP2008527564 A JP 2008527564A
Authority
JP
Japan
Prior art keywords
file
web content
terminal
gateway
web
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.)
Pending
Application number
JP2007551194A
Other languages
English (en)
Inventor
ユン ホ ジョン
Original Assignee
リアルネットワークスアジア太平洋株式会社
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 リアルネットワークスアジア太平洋株式会社 filed Critical リアルネットワークスアジア太平洋株式会社
Publication of JP2008527564A publication Critical patent/JP2008527564A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • CCHEMISTRY; METALLURGY
    • C02TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02FTREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02F3/00Biological treatment of water, waste water, or sewage
    • C02F3/02Aerobic processes
    • C02F3/12Activated sludge processes
    • C02F3/20Activated sludge processes using diffusers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01FMIXING, e.g. DISSOLVING, EMULSIFYING OR DISPERSING
    • B01F23/00Mixing according to the phases to be mixed, e.g. dispersing or emulsifying
    • B01F23/20Mixing gases with liquids
    • B01F23/23Mixing gases with liquids by introducing gases into liquid media, e.g. for producing aerated liquids
    • B01F23/231Mixing gases with liquids by introducing gases into liquid media, e.g. for producing aerated liquids by bubbling
    • B01F23/23105Arrangement or manipulation of the gas bubbling devices
    • B01F23/2312Diffusers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01FMIXING, e.g. DISSOLVING, EMULSIFYING OR DISPERSING
    • B01F2101/00Mixing characterised by the nature of the mixed materials or by the application field
    • B01F2101/305Treatment of water, waste water or sewage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Chemical & Material Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Microbiology (AREA)
  • Hydrology & Water Resources (AREA)
  • Environmental & Geological Engineering (AREA)
  • Water Supply & Treatment (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Organic Chemistry (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】本発明は、実行可能なウェブコンテンツを端末に提供するシステムであって、宣言的言語からなる宣言的言語部及び非宣言的部分を含む実行可能なウェブコンテンツを提供するサーバと、前記実行可能なウェブコンテンツを前記サーバから転送を受けて前記端末のウェブブラウザで実行できる形態に変換して前記端末に転送するゲートウェイを含むシステムを提供する。
【選択図】図1

Description

本発明は、携帯電話などデータ通信のためのネットワーク接続が可能な携帯用端末において、多様なコンテンツ及びサービスを提供することができる方法及びシステムを提供するためのものである。より具体的には、ウェブ方式及びダウンロードアプリケーション方式の技術的特徴と長所を提供することができる無線インターネットプラットフォームを提供するためのものである。
従来は、携帯用端末でインターネットを用いるためにWAP(Wireless Application Protocol)ブラウザに代表される無線インターネット専用のブラウザが用いられた。WAPブラウザの複数のバージョンのうち、1.xバージョンと2.xバージョンは、動作する方式が大きく異なっている。WAP 1.xバージョンでは、WML(Wireless Markup Language)とWMLScriptという固有のコンテンツ形式を用いる。即ち、有線インターネットのマークアップ言語であるHTML(HyperText Markup Language)に該当するWMLを用い、簡単なコードを端末で実行するためには、有線インターネットのジャバスクリプト(JavaScript(登録商標))に該当するWMLScriptを用いる。このような形式で表現されたコンテンツは、まず有線ネットワークを介してWAPゲートウェイに伝達され、ゲートウェイでよりコンパクトかつ効率的なバイナリ形式(「WBXML」と称する)に変換された後、無線ネットワークを介して転送される。
一方、WAP 2.xバージョンは、有線インターネットのHTML標準に、より近いXHTML(eXtensible HyperText Markup Language)Mobile Profile(XHTMLMP)マークアップ言語を用い、ジャバスクリプトと類似のエクマスクリプト(ECMAScript)が間もなく導入されると見通されている。
有無線に関係なくブラウザは、基本的に語彙が制限され、宣言的な文法を有するマークアップ言語をコンテンツ形式で用いるため、表現形式の自由度が高いコンテンツを作り難い。このような制約を克服するために、次のような技術が既に導入され、若しくは導入される予定である。
スクリプト:ジャバスクリプトに代表されるスクリプトは、テキスト形式になっているプログラムコードをウェブサーバに載せておけば、テキスト形式そのままでブラウザに転送されるか、あるいはWAPの場合、ゲートウェイでバイトコードに変換されてブラウザに転送される。スクリプトは、マークアップ言語に比べて相対的に強力な機能を有するプログラミング言語であって、HTML、WMLなど宣言的文法形式では具現が不可能な機能を端末で具現するために用いられる。
アプレット(Applet):サン・マイクロシステムズ社で開発したジャバアプレット(Java(登録商標) Applet)は、ジャバ言語で作成された小さなプログラムである。このようなアプレットを予めコンパイルしてウェブサーバに載せておけば、ブラウザがこれをダウンロードし、ブラウザ内のジャバ仮想マシンを用いて実行し、その結果を他のコンテンツと共に画面に示す。
プラグイン(Plug−in):例えば、マイクロソフト社のウィンドウズ(登録商標)のアクティブエックス(ActiveX)プラグインは、端末プラットフォームに固有の固有コードとして作られ、大体DLL(Dynamic Load Library)形式を有する。ブラウザによりダウンロードされた後、動的にロードされて実行され、端末プラットフォームが提供する全てのAPI(Application Programming Interface)を用いることができ、強力かつ多様な機能を提供できるが、それに対し、ポインタ演算が可能であり、プログラムの機能を予め検査し難いなどの理由で、ウイルスや悪性ソフトウェア(malware)などがクライアントコンピュータで実行されることを防止し難いという短所を有する。
HTML系列のマークアップ言語は、本来単純なテキストのディスプレイを主目的として作ったものであって、これに伴う基本的な限界を有している。このようなマークアップ言語の限界を克服するために、前述したような技術がHTMLあるいはWMLを主言語とするコンテンツに補助的に導入されており、これらはそれぞれ互いに異なる長短所を有するため、最近のPC用ブラウザでは、前記技術を全てサポートしている。従って、ブラウザの構造が複雑になり、サイズも大きくなり、前記のような技術を用いるにおいてセキュリティ問題が発生することがあり、また、ブラウザが不安定になる可能性がある。携帯電話のように相対的にPCなどに比べてコンピュータパワーが弱く、メモリなどのリソースが不足した携帯用端末においても、益々多様なブラウザの機能が要求されており、従って、PC用ブラウザと類似の機能が漸進的に導入されている。しかし、携帯電話においては、PCに比べてブラウザのサイズと複雑度、不安定性の問題がより大きな制約として作用する。
PCの場合、前述したブラウザ及びマークアップ言語の限界と短所を克服するために、従来のHTMLと全く異なる方式の技術が提案されている。ロングhorn(Longhorn,ビスタと呼ばれる)というコード名のオペレーションシステムには、「XAML(extensible Application Markup Language)」と呼ばれる新たなマークアップ形式をサポートするブラウザが搭載される予定である。「XAML」は、「C#」プログラミング言語コードとなっている部分をその一部として含むことができ、マイクロソフトドットネット(.NET)フレームワークのCLR(Common Language Runtime)で実行可能な媒介言語(IL:Intermediate Language)バイトコードに変換されてから実行される。このような変換は、予めオフラインで行われ、バイトコードを直接サーバからブラウザに転送することもでき、またはテキスト形態でブラウザに転送されたコンテンツがブラウザ内でバイトコードに変換されて実行されることもできる。いずれにせよプログラミング言語(C#など)と宣言的マークアップ言語(XAML)で作成されたコンテンツは、最終的に直接実行が可能な媒介言語(IL)バイトコードに変換され、ブラウザにより動的にローディングされて実行される。このような技術を用いれば、マークアップ言語が有する長所、即ち、コンパクトかつ易しい表現形式及び既存のウェブ開発方式との互換性を維持しながらも汎用プログラミング言語の長所(多様な機能とユーザーインターフェースの提供)を必要に応じて受容することができる。従って、現在HTML及び付加言語(スクリプト、プラグインなど)により作られるウェブサイトに比べて、はるかに強力かつ便利なユーザーインターフェースを提供することができると予想される。しかし、このような技術は、強力なCPUと大容量のメモリを有するPCを対象として開発される技術であって、演算力が小さく、メモリ容量も少ない携帯電話のような携帯用端末に具現されるには適していない。
一方、有線インターネットの場合、ウイルスや個人情報の流出防止のために、ユーザーがダウンロードするコンテンツやプログラムに対して所定のセキュリティ装置が必要であり、幅広く具現されている。無線ネットワークは、有線ネットワークに比べて通信費用が高価で、ユーザーが通信量に応じて使用料を負担する場合が多いので、もしユーザーがダウンロードしたコンテンツがユーザーの知らない内に所期の動作を行う場合、ユーザーが所望しない通信費用が発生し得る。従って、即ち、有線インターネットの場合のウイルス配布や、個人情報流出などの問題に加えてユーザーに直接的な金銭的被害を与えることがある。
セキュリティ機能の必要性及び従来の具現方法をより具体的に詳察すれば、ジャバアプレット、アクティブaxeなどのように、ネットワークからダウンロードされたコードを直接実行する際には、このコードがどんなことをするのか端末側で予め分かりにくいため、セキュリティ機能が必要である。一般のバイナリコードをダウンロードして実行する場合、即ち、ActiveXのようなネイティブコード(CPUが直接行うコード)の場合は、そのコードがどんなことを行うのか端末側で予め検査したりランタイムに特定のセキュリティポリシーを強制することができない。従って、ウイルスや悪性ソフトウェアが端末側で行われることを防止するために、このコードをダウンロードする際に認証を受けるようにする手続を経るようにすることができる。
一方、ジャバの代表的なエディションである「Java(登録商標) 2 Standard Edition(J2SE)」には、最初からネットワークを介してコードをダウンロードすることを前提として規格が作られたため、ActiveXの場合よりも精巧なセキュリティ機能を有しているが、この機能は、主にコードがどのサーバからダウンロードされたのかによって、該当コードの実行時に、許容される機能が制限される方式をとる。
モバイル装置のためのジャバ(Java(登録商標) 2 Mobile Edition, J2ME)、特にこの中でも携帯電話のようにメモリとプロセシングパワーが制約された装置のためのコンフィギュレーション、即ち、CLDC(Connected Limited Device Configuration)の仮想マシン(VM)とランタイムライブラリは、メモリ使用量を減らし、実行速度を向上させるために、前述したJ2SEと比較すれば、さらに簡単なセキュリティ機能を有している。MIDP 1.xバージョンでは、認証を受けたアプリケーションなのか否かによって敏感な機能への接近を許容または遮断する簡単な区分のみ可能である。最近定義されたMIDP 2.0バージョンの規格では、機能別に許否のポリシーを設定することができる。
従来のモバイル用ジャバのセキュリティメカニズムは、いずれも1つのアプリケーションが1つのサーバからダウンロードされることを仮定し、このサーバの住所によってセキュリティポリシーが選択されて適用され、このポリシーは、そのアプリケーションと仮想マシンが終了するまで変更できないという限界点を有する。従って、1つのウェブコンテンツのアプリケーションを構成するコードが複数のサーバからダウンロードされ得る場合は、前述したような既存のジャバのセキュリティメカニズムを用いては適切なセキュリティ機能を具現することができない。また、その他の面においても、十分に場合に応じて多様に適用できる精巧なセキュリティ機能を提供することができなかった。
本発明の目的は、実行可能なウェブコンテンツを提供するための新たなウェブプラットフォームに関するものであって、具体的には携帯用端末の低いプロセシング速度とメモリの限界を克服し、豊富かつ多様な機能及び形態を有するコンテンツを無線ネットワークを介して提供し、端末で実行できるようにする方法及びシステムを提供することにある。
本発明の他の目的は、無線ネットワークを介して転送される無線コンテンツ及びこれを実行するための端末のセキュリティ機能を強化し、精巧にする方法及びシステムを提供することにある。
本発明のその他の目的は、無線ネックワークを介したウェブコンテンツ転送の効率性を改善する方法及びシステムを提供することにある。
本発明のその他の目的は、無線ウェブコンテンツをキャッシングするにおいて、キャッシュの一貫性を具現するための方法及びシステムを提供することにある。
前記目的を達成するために、本発明の一面によれば、実行可能なウェブコンテンツを端末に提供するシステムであって、
宣言的言語となっている宣言的言語部及び非宣言的部分を含む実行可能なウェブコンテンツを提供するサーバと、
前記実行可能なウェブコンテンツを前記サーバから転送を受け、前記端末のウェブブラウザで実行できる形態に変換し、前記端末に転送するゲートウェイを備えるシステムを提供する。
前記端末は、無線通信端末であり、前記ウェブコンテンツは、無線ウェブコンテンツである。
前記ウェブサーバと前記ゲートウェイは、有線ネットワークによって連結され、前記ゲートウェイは、無線ネットワークを介して端末に連結される。
前記端末は、無線ウェブブラウザを備え、
前記ゲートウェイは、前記無線ウェブブラウザからの所定のウェブコンテンツの要請を無線ネットワークを介して受信し、有線ネットワークを介して前記所定のウェブコンテンツを前記サーバに要請し、
前記ウェブコンテンツは、1つ以上のファイルを含み、
前記サーバへのウェブコンテンツの要請は、前記1つ以上のファイルの要請を含み、
前記ゲートウェイは、前記サーバへの要請に従ってサーバから受信した、ウェブコンテンツを構成する1つ以上のファイルを一回のトランザクションで端末に転送する。
前記ウェブコンテンツを構成する1つ以上のファイルは、ウェブコンテンツファイルと少なくとも1つのリソースファイルを含み、
前記ウェブコンテンツの要請は、ウェブコンテンツファイルの要請と、少なくとも1つのリソースファイルの要請を含む。
前記ウェブコンテンツは、静的ファイル、動的に生成されるファイル、手続的コードのソースコード、実行可能な二進ファイル、マルチメディアファイルのうち1つ以上を含む。
前記非宣言的部分は、手続的コードを含み、
前記ゲートウェイは、宣言的言語部を手続的コードに変換する手段と、手続的コードをコンパイルして実行可能なファイルに変換する手段を備えることができる。
前記非宣言的部分は、手続的コードを含み、前記ゲートウェイは、宣言的言語部をコンパイルする手段と、手続的コードをコンパイルする手段と、前記宣言的言語部をコンパイルした結果と、手続的コードをコンパイルした結果をマージして実行可能なファイルを生成する手段とを備えることができる。
前記ゲートウェイは、端末のウェブブラウザで実行できる形態に変換されたウェブコンテンツ内にセキュリティポリシーに違反する機能が含まれているかを検出する手段を備える。
前記検出手段は、ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含まれている場合、該当ファイルを端末に転送しないか、該当ファイルを端末に転送するに先立って端末ユーザーの許諾を受けるか、該当ファイルに、ランタイム時に、システムの既に設定されたセキュリティポリシーによって決定される所定の動作を行うようにするコードを挿入する。
本発明の他の一面によれば、実行可能なウェブコンテンツを端末に提供するシステムであって、
実行可能なウェブコンテンツを提供するサーバと、
前記実行可能なウェブコンテンツを前記サーバから転送を受け、前記端末のウェブブラウザで実行できる形態に変換し、前記端末に転送するゲートウェイを備え、前記ウェブコンテンツは、静的ファイル、動的に生成されるファイル、手続的コードのソースコード、実行可能な二進ファイル、マルチメディアファイルのうち1つ以上を含み、
前記ゲートウェイは、宣言的言語及び手続的コードをコンパイルして実行可能なファイルに変換する手段を備えるシステムを提供する。
前記手続的コードのソースコードは、ジャバコードを含み、前記実行可能な二進ファイルは、jarファイルを含むことができる。
本発明の他の一面によれば、実行可能なウェブコンテンツをサーバから受け、端末のウェブブラウザで実行できる形態に変換するゲートウェイであって、前記ウェブコンテンツは、静的ファイル、動的に生成されるファイル、手続的コードのソースコード、実行可能な二進ファイル、マルチメディアファイルのうち1つ以上を含み、宣言的言語及び手続的コードをコンパイルして実行可能なファイルに変換する手段を備えるゲートウェイを提供する。
前記ゲートウェイは、有線ネットワークによって前記サーバと通信し、前記ゲートウェイは、無線ネットワークを介して端末と通信する。
前記端末は、無線ウェブブラウザを備え、前記ゲートウェイは、前記無線ウェブブラウザからの所定のウェブコンテンツの要請を無線ネットワークを介して受信し、有線ネットワークを介して前記所定のウェブコンテンツを前記サーバに要請し、前記ウェブコンテンツは、1つ以上のファイルを含み、前記サーバへのウェブコンテンツの要請は、前記1つ以上のファイルの要請を含み、前記ゲートウェイは、前記サーバへの要請に従ってサーバから受信した、ウェブコンテンツを構成する1つ以上のファイルを一回のトランザクションで端末に転送する。
前記ウェブコンテンツを構成する1つ以上のファイルは、ウェブコンテンツ本文とリソースファイルを含み、前記ウェブコンテンツの要請は、ウェブコンテンツの本文の要請と、リソースファイルの要請を含む。
前記手続的コードのソースコードは、ジャバコードを含み、前記実行可能な二進ファイルはjarファイルを含む。
ゲートウェイは、宣言的言語部を手続的コードに変換させる変換部と、手続的コードをコンパイルするコンパイラとウェブサーバから受けた実行可能な二進ファイルを分析し、追加の外部ファイルを参照する場合、これを取り込む処理部とウェブサーバから受けたウェブコンテンツに、セキュリティに問題になる機能が含まれているかを決定するセキュリティ管理部を備える。
ゲートウェイは、端末のウェブブラウザで実行できる形態に変換されたウェブコンテンツ内にセキュリティポリシーに違反する機能が含まれているかを検出する手段をさらに備える。
ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含まれている場合、該当ファイルを端末に転送しない。
ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含まれている場合、該当ファイルを端末に転送するに先立って端末ユーザーの許諾を受ける。
ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含まれている場合、該当ファイルに、ランタイム時に所定の動作を行うようにするコードを挿入し、前記所定の動作は、システムの既に設定されたセキュリティポリシーによって決定される。
前記端末は、無線ウェブブラウザを備え、前記ウェブコンテンツは、1つまたはそれ以上のファイルを含み、前記ゲートウェイは、前記無線ウェブブラウザからの所定のウェブコンテンツの要請を無線ネットワークを介して受信し、前記所定のウェブコンテンツの要請は、ウェブコンテンツのうちブラウザに既にキャッシングされているファイルの名称及び最終変更時間の情報を含み、前記ゲートウェイは、有線ネットワークを介して前記所定のウェブコンテンツを前記サーバに要請し、前記サーバへのウェブコンテンツの要請は、前記1つまたはそれ以上のファイルの要請を含み、前記ゲートウェイは、前記サーバへの要請に従ってサーバから受信した、ウェブコンテンツを構成する1つまたはそれ以上のファイルを受信し、前記キャッシングされているファイルの名称及び最終変更時間の情報と比較してキャッシングされたファイルから変更されたり新たに追加されたファイルのみを端末に転送する。
本発明の他の一面によれば、実行可能なウェブコンテンツをブラウジングするためのウェブブラウザを格納するコンピュータ格納媒体であって、前記ウェブブラウザは、バイナリ実行コード形態のウェブコンテンツを受信して実行することを特徴とする格納媒体が提供される。
本発明の他の一面によれば、実行可能なウェブコンテンツをブラウジングするためのウェブブラウザを備える端末であって、前記ウェブブラウザは、バイナリ実行コード形態のウェブコンテンツを受信して実行することを特徴とする端末が提供される。
前記ウェブコンテンツは、1つ以上のファイルを含み、前記1つ以上のファイルは、他のファイルで参照される共有リソースファイルを含み、前記端末は、キャッシュを含み、前記共有リソースファイルが前記キャッシュにキャッシングされるとき、前記共有リソースファイルが如何に多くの他のファイルで参照されるかを示す参照回数が共に格納される。
前記端末が前記キャッシングされた共有リソースファイルのキャッシングされたバージョンよりも新たなバージョンのファイルを含むウェブコンテンツの転送を受けた場合、前記新たなバージョンの共有リソースファイルをキャッシュに格納し、前記既に格納された共有リソースファイルの参照回数を1減少する。
前記減少後、参照回数が0であれば、前記既に格納された共有リソースファイルを削除する。
端末300で直ちに実行が可能な形態に変換されたウェブコンテンツがゲートウェイ200から端末300に転送されるので、処理能力に限界がある端末でもコンテンツの迅速な実行及びディスプレイが可能である。
宣言的文法により生成されるコードと手続的コードが同一のAPIとオブジェクトを用いるので、両者の連動がより直接的かつ効率的である。
端末のブラウザにより制限されることなく、ジャバ仮想マシン(JVM)及び端末ライブラリが有する全てのAPI及び機能を用いることができ、端末ではウェブページファイルをパーシングする過程なしに直ちにコードを実行するだけでよい。
コンテンツを表現するマークアップ言語に新たな文法が追加されなければならないときにも、端末のブラウザに該当機能を追加するなどの変更が必要ではない。
無線区間の通信回数を最小化し、キャッシュの効率的使用によりトラフィック量を低減するなどの方法で通信効率を高めることができる。キャッシュの効率性を維持しながらもキャッシュされたファイルの一貫性を維持し、バージョンの不一致現象を防止することができる。
本発明では、新たな方式のマークアップ言語である実行可能なコンテンツ用マークアップ言語(XCML:eXecutable Content Markup Language)を提案し、これを用いてウェブコンテンツを提供する方法及びシステムを提供する。本発明で提案するXCMLは、既存の無線インターネットコンテンツの標準形式であるWMLあるいはXHTMLと同様にXMLを基盤とするマークアップ言語である。即ち、XCMLは、HTMLやWMLと同様に、宣言的形式を有する宣言的言語部(タグを用いて表現されるという意味で、以下、「タグ部」と称することもある)を主な内容とし、HTML内にジャバスクリプトが含まれるのと同様に、宣言的文法で表現できない内容(非宣言的部分)は、ジャバスクリプトのような手続的コードにより表現し、テキスト形態でウェブコンテンツファイル内に含むか(「ジャバコード部」)、外部のジャバファイルをファイル内で参照できるようにしたマークアップ言語の形式である。
本発明による、XCML形式のコンテンツ及びその他のウェブコンテンツを提供するためのネットワークシステムは、図1に示すように、まずウェブサーバ100と有線ネットワークで連結されたゲートウェイ200でコンテンツをジャバなどの実行コード(ジャバの場合、一般にジャババイトコードと称する)に変換した後、無線ネットワークを介して端末300に転送、実行するように構成されている。従って、従来のネックワークシステムがウェブサーバ(サーバ団)とブラウザ(クライアント団)で構成されるのに対し、本発明によるネットワークシステムは、ウェブサーバと、ゲートウェイ及びブラウザ(クライアント)で構成されている。
図1は、このように構成されたネットワークシステムを示すブロック図であり、図2は、図1に示す各構成要素である、ウェブサーバ100、ゲートウェイ200、端末300をそれぞれさらに詳細に示したブロック図である。
以下、図1〜2の各部分について説明する。以下でプログラミング言語としてはジャバを、実行コードとしてジャババイトコードを仮定しているが、本発明は、これに限定されず、類似の性格の他の言語も適用することができる。
図1及び図2でウェブサーバ100は、HTTPプロトコルにより一般のウェブあるいはWAPのコンテンツを提供する一般のウェブサーバであってもよい。ウェブサーバが提供するコンテンツは、静的なテキストやイメージファイルであってもよく、CGI(Common Gateway Interface)やサブレット(Servlet)などにより動的に生成されるファイルであってもよい。このようなファイルは、本発明によるXCML形式のテキストファイル(図2の120、130)やジャバソースコードファイル140、jarファイル(150、1つ以上のジャバクラスファイル及びその他リソースファイルが1つに合わせられたファイル)、またはイメージ、音楽、動画像ファイル160などを含むことができる。ウェブサーバ100が提供するXCMLファイルは、多様な実行可能な要素を自由に含むことができ、既存の無線インターネットコンテンツに比べて強力な機能を遂行することができるコンテンツの提供が可能である。本明細書でファイルとは、従来のコンピュータファイルシステムで用いられるファイルの概念のみならず、ネットワークを介して1つの単位で転送されるデータ(プログラムコード、二進ファイルなど含む)の集合を含む概念である。本発明によれば、端末のブラウザが提供する機能に限定されず、無線端末のプラットフォーム(オペレーションシステム)自体で提供される多様な機能を用いるコンテンツの開発及び提供が可能になる。例えば、端末に格納された電話番号情報を用いて所定の動作を行うコンテンツのように、既存のブラウザでは用いることができなかったコンテンツの提供が可能である。
本発明のゲートウェイでは、端末のキャッシュ格納内容の更新要否をウェブサーバと多数(即ち、無線区間である端末−ゲートウェイ間の無線通信よりも多い回数)の通信で確認する。有線区間では、数回のトランザクションが起こってもそれほど時間が要されないが、無線区間では、往復時間が長いため、複数回にわたって情報が分けられて伝達されるようになれば、時間遅延が非常に大きくなるという点を用いるために、無線区間の単位通信(トランザクション)の回数を減らすためである。このような方式によれば、端末のキャッシュの機能を完全に用いながらも、ゲートウェイと端末間(即ち、無線区間)のトラフィックの回数を減らして効率性を高める。このようにキャッシングを用いた通信の効率性向上については、図5〜図8を参照してさらに詳細に説明する。
図2を参照して、XCゲートウェイ200内の各ブロックの機能を詳細に考察すれば、次の通りである。XCMLジャバ変換部210は、本発明によるXCML形式からなっているテキストファイルを予め定められた方法でジャバコードに変換する機能を遂行する。この時に生成されるジャバコードは、テキスト形式のジャバソースコードであるか、あるいはソースコードの断片(fragment)を含む所定の表現形式のコードであってもよい。前述したように、XCMLにはXCML固有のタグからなる部分(既に説明した「タグ部」)とテキスト形態で含まれたジャバコード部がある。XCMLタグからなる宣言的部分は、ゲートウェイ200でジャバコードに変換され、サーバ側100で最初からジャバで作成された部分(ジャバコード部)と合わせられてコンパイルされ、ジャバクラスをなすようになる。このようにタグ部とジャバコード部を合わせてジャバクラスとしてコンパイルするための方法は様々なものがあるが、その1つは、タグ部をジャバソースコードテキストに変換した後、既存のジャバコード部と結合して1つの完全なジャバプログラムソースを生成した後、これをコンパイルするものである。このような方式でXCMLジャバ変換部210は、XCMLテキストファイルのうちタグ部をテキスト形式のジャバソースコードに転換し、既存のジャバコード部と合わせてジャバコンパイラ220に伝達する役割をし、ジャバコンパイラ220は、ジャバソースコードをコンパイルしてジャバクラスファイルとして作る役割をする。
本発明の他の実施例によれば、タグ部をジャバソースコード形態に変換する代わりに、直ちにジャババイトコードに変換し、本来ジャバコードで作成されたジャバコード部は、別途にコンパイルし、タグ部のバイトコードと結合することにより、1つのジャバクラスを作ることができる。この場合、XCMLジャバ変換部210は、XCMLファイルのうちタグ部をバイトコードに転換し、ジャバコンパイラ220は、ジャバコード部をコンパイルし、かつタグ部のバイトコードと結合してジャバクラスファイルを生成する役割をする。
XCMLファイルのうちジャバコード(図2の140)を参照する場合、ゲートウェイではウェブサーバにジャバコード140を要請し、この転送を受ける。この場合、XCMLジャバ変換部210で生成されたジャバコードとウェブサーバから取り込まれたジャバコードを結合して実行ファイルを作る。この場合、ジャバコンパイラ220は、XCMLジャバ変換部210で生成されたジャバコードのみならず、ウェブサーバで取り込んだジャバコードもともにコンパイルして結合する役割をする。
XCMLファイルの中では、ジャバコード(図2の140)のみならず、jarファイルを直接参照する場合もあり得る。この場合、ゲートウェイがXCMLファイルを解析し、必要なjarファイルをウェブサーバに要請して転送を受ける。また、ブラウザがゲートウェイを通じてサーバに要求する新たなウェブコンテンツがXCMLではなく、最初からジャバで作成、別途コンパイルされたjarファイルで構成されている場合もある。jarファイル処理部230は、このようにウェブサーバ100からダウンロードされたファイルがコンパイルの不要なjarファイルである場合、ジャバコンパイラ220の代わりにダウンロードされたファイルを処理するブロックである。jarファイル処理部230では、jarファイルが参照する外部ファイルがある場合、そのリストを抽出してウェブサーバ100から取り込むようにする。
これと同様にウェブサーバ100からのXCMLファイルに、このファイルが参照する別途のファイルがある場合、このようなリソースもウェブサーバ100から取り込まれる。このように参照される外部リソースファイル取り込みのための別途のリソース取り込み部(図示せず)がXCゲートウェイ200内に具現できる。
キャッシュ部260は、ウェブサーバ100から取り込んできたファイルやコンパイルされた結果のバイナリファイルなどを保管するなど、格納機能を遂行する空間であって、多様な機能を遂行するように設計できることが当業者に知られているので、その詳細な連結関係や機能は図示しない。キャッシュ部260は、HTTPプロトコル規格によりキャッシュの有効性をチェックするという点で、従来のウェブキャッシュと類似しているが、ウェブサーバから受けた形式ではなく、コンパイルされた結果を格納する場合があるという点では差がある。
セキュリティ管理部240は、バイトコードがクライアント側、即ち、端末300に転送される前にセキュリティ上問題になるコードを含んでいるかを検査する。もし転送されるバイトコードがセキュリティ上問題になるコードを含んでいれば、ダウンロードを拒否するか、あるいは端末ユーザーの同意を得てダウンロードされるようにすることができる。具体的なセキュリティ管理方法については、以下で詳細に説明する。
プロトコルスタック250は、通信プロトコルの各層を具現したプログラム要素のセットであって、端末との接続のための無線インターネットの特性を考慮し、往復距離を最小化できるように変形されたHTTPプロトコルを用いる。本発明によるこのようなプロトコルのより具体的な事項については、以下で詳細に説明する。
次に、端末300側の構成要素をさらに詳細に説明する。端末300は、携帯電話、PDA(personal digital assistance)など、無線インターネットコンテンツをダウンロードして実行し、ディスプレイするための多様な種類の装置を含むことができる。
図1及び図2のXCブラウザ(eXecutable Content Browser, XCB, 310)は、XCゲートウェイ200と接続し、バイトコードを主内容とするコンテンツのダウンロードを受けて実行するクライアントアプリケーションであって、端末300で実行される。
ユーザーインターフェース320は、共通のメニューなどブラウザ310自体のユーザーインターフェースを意味する。即ち、コンテンツと関連なく、ブラウザが本来有している共通のユーザーインターフェース要素を意味する。例えば、戻る、更新、URLのオープン、ブックマーク、ヒストリー、オプションなどがこれに含まれる。
図2で、ページ1、ページ2などは、ウェブサーバ100からダウンロードされて実行されるコンテンツの単位を示すブロックである。各ページは、URLにより固有に定義され、1つ以上のジャバクラス及びリソースファイルで構成できる。
UI(User Interface)要素360は、ラベル(1行のテキストボックス)、ボタンなどのようなUIの要素を意味し、XCMLあるいはジャバプログラムで用いたり相続できる。具体的に本発明の一実施例によれば、XCMLでは、各UI要素をこれに該当する1つのタグを用いて表現することができる。例えば、「Help」というテキストが表示されるボタンを作るためには、
<button text=“Help”/>
のように記述することができ、このタグは、特定クラス、例えば、UI要素である「widerthan.xcb.Xbutton」クラスの1つのインスタンスを生成するコードに変換される。本発明によれば、コンテンツ内でシステム(XCB)が提供する基本UI要素360の外観や機能を拡張または変更することが可能になる。即ち、基本UI要素を拡張または変更するために、UI要素に該当するジャバクラスを新たなクラスに相続して一部機能を追加または変更することができる。例えば、widerthan.xcb.XButtonクラスを相続するMyButtonというクラスを、XCMLコンテンツ内の「header」部分で定義し、このクラスを用いるためにXCMLコンテンツの「body」部分では、
<button text=“Help”class=“MyButton”/>
のように記述することができる。
レイアウト管理者350(あるいはレイアウトエンジンと称することもある)は、UI構成要素360を、コンテンツにより決定された条件に応じて画面上に配置する役割をする。例えば、画面の左側に所定の形態のボタン構成要素が配置されるものとしてウェブサーバのコンテンツに記述されている場合、このコンテンツがゲートウェイ200で変換されたバイトコードがXCブラウザ310で実行されるとき、レイアウト管理者350は、本来のコンテンツに合うように構成要素を配置する役割をする。
キャッシュ270は、サーバからダウンロードされたジャババイトコード及びその他のリソースファイルをキャッシングする役割をする。以下でさらに詳細に記述するように、適切なキャッシング機能を通じてゲートウェイ200と端末300間の無線区間の通信量を少なくすることができる。
ブラウザ310のプロトコルスタックは、XCゲートウェイ200のプロトコルスタックに対応する。
前述したように、XCMLは、HTMLやWMLと同様に宣言的形式を有する部分を主内容とし、HTML内にジャバスクリプトが含まれるのと同様に、宣言的文法で表現できないコンテンツは、ジャバコードにより表現し、ウェブコンテンツファイル内に含めるか、またはウェブコンテンツファイル(XCMLファイル)内で外部ジャバファイルを参照することができる。
従来のウェブサーバと端末で構成されたネットワークシステムにおいて、宣言的マークアップ言語とジャバスクリプト部分を含むウェブコンテンツファイルが最終的に端末画面に表示される過程の一例は次の通りである。
(1)端末のブラウザがウェブサーバに特定URLにより指定されるウェブコンテンツファイルを要求する。
(2)ウェブサーバでウェブコンテンツファイルを生成するか、あるいはURLにより指定されるウェブコンテンツファイルを読み出してネットワークに転送する。
(3)端末のブラウザが前記ファイルをダウンロードしてパーシングする。
(4)パーサーが定められた方法によりUIコンポーネントを生成し、ファイルで指定する形式により初期化する。
(5)ジャバスクリプト部分は、実行可能な内部表現形式に変換し、格納される。
(6)ユーザーの入力は、各UIコンポーネントを初期化するとき、指定された属性によって処理するか、またはUIコンポーネントの基本機能ではない、機能を遂行しようとする場合には、UIコンポーネントに連結されたジャバスクリプトを呼び出して処理する。例えば、ボタン入力などにより複数のUIのうち特定のUIコンポーネントにフォーカスが当たるように動作させたとき、色相が変更されるように初期化するのは、次のようなコードで具現できる。
<a href=“http://www.foo.com”
onfocus=“javascript:this.style.backgroundcolor=’yellow’“>
Link
</a>
このような初期化内容に従って、特定のコンポーネントにフォーカスを移動させるユーザーの入力は、色相変更という動作を引き起こすように指定される。
これに比べて本発明によるXCMLファイルを端末にダウンロードして行うためには、例えば、次のような過程を経るようになる。
(1)ブラウザ(端末)が予め指定されたXCゲートウェイ200に接続し、特定のURLにより指定されるXCMLファイルの要請をゲートウェイに転送する。
(2)ゲートウェイがサーバ100に端末300で要請したXCMLファイルを要請する。
(3)サーバ100でXCMLファイルを生成するか、またはURLにより指定されたファイルを読み出してネットワークに転送する。
(4)ゲートウェイ200がXCMLファイルをダウンロードし、パーシングしてジャバ実行コードを生成する。このとき、生成されるコードは、上記従来のブラウザがUIコンポーネントを生成して初期化するのと同一の動作を行うコードである。
(5)ゲートウェイが、ダウンロードされたXCMLファイル内に含まれるジャバコードやXCMLファイルが参照する外部ジャバコードを共にジャババイトコードとしてコンパイルし、端末300のXCブラウザに転送する。
(6)XCブラウザ310は、ジャババイトコードのダウンロードを受け、ジャババイトコードに該当するクラスを動的にローディングし、このコードを実行する。即ち、XCブラウザ310は、ジャババイトコードをネットワークからダウンロードした後、現在実行中であるジャババーチャルマシンにローディングし、アプリケーションでこのバイトコードにより定義されるクラスを用いることができるようにした後、このコードを実行する。このコード実行過程でUIコンポーネントが生成され初期化される。
(7)ユーザー入力は、前記(6)の過程で生成されたUIコンポーネントが処理するか、または別途に含まれたジャバコードが処理する。
即ち、従来のウェブサーバと端末のブラウザを用いたブラウジング方式と本発明の方式の代表的な差異は次の通りである。
(i)既存のブラウザでは、ブラウザ内にウェブコンテンツファイルを解析し、UIコンポーネント360を生成、初期化する機能が含まれているのに対し、本発明による方式では、このような機能がゲートウェイ200側にある。即ち、ゲートウェイがジャバコードを生成して端末側にダウンロードし、クライアントでは単にこのコードを実行するだけである。
(ii)既存のブラウザで手続的要素は、ジャバスクリプトで表現され、このようにジャバスクリプトで表現された部分は、これを実行可能な形式(主に固有のバイトコード)に変換するジャバスクリプトコンパイラ及びバイトコード解釈器により行われる。それに対し、本発明によれば、ジャバで表現された手続的コードが宣言的言語部と共にコンパイルされ、同一にジャババイトコードに変換された後、端末のジャバ仮想マシン(JVM)で実行されるという点である。
このような本発明の方式の長所は、次のような点を含む。
−(宣言的言語部の)宣言的文法により生成されるコードと(非宣言的部分の)手続的コードが同一のAPI(Application Program Interface)を用いるので、両者間の連動がより直接的かつ効率的である。
−端末のブラウザにより制限されることなく、ジャバ仮想マシン(JVM)及び端末ライブラリが有する全てのAPI及び機能を用いることができ、端末では、ウェブページファイルをパーシングする過程なしに直ちにコードを実行すればよい。
−コンテンツを表現するマークアップ言語に新たな文法が追加されなければならないときにも、端末のブラウザに該当機能を追加するなどの変更が必要ではない。
[セキュリティ機能]
以下では、図3を参照して本発明によるセキュリティ機能を説明する。
図3は、本発明により実行可能なウェブコンテンツ(XC)を提供するためのネットワークシステムの概略図であって、本発明によるセキュリティ機能を例示的に説明するためのものである。図3の場合と同様に、コンテンツ提供者(CP)のサーバBのPというページを端末で実行しようとするとき、Pが通信事業者のサーバAにあるライブラリLを参照する場合、XCゲートウェイ200は、PとLが合わせられたジャバアプリケーションをクライアント(XC Browser, 310)にダウンロードする。このとき、通信事業者のライブラリと、コンテンツ提供者のプログラムには、異なる水準のセキュリティポリシーが適用され得る。即ち、通信事業者によりその内容が管理されるLに対しては、端末の全ての機能を用いることができるように許容をし、Pに対しては、電話をかけることや住所録など特定機能に対する接近を遮断するセキュリティポリシーが必要となり得る。
本発明によれば、このように1つのコンテンツ(P+L)内においても、互いに異なるセキュリティポリシーを具現することが可能な新たなセキュリティメカニズムを提供する。本発明では、既存の場合と異なり、ゲートウェイが各サーバからダウンロードを受けたジャバコードを静的に検査し、各サーバ別に指定されたセキュリティポリシーに違反するコードが含まれている場合、ダウンロードを禁止したり、ユーザーの許諾を受けるようにする方案を提示する。
以下では、本発明によるセキュリティメカニズムを詳細に説明する。対象になるページがジャバコードではなく、マークアップ言語で作成されている場合、ゲートウェイ200がこのファイルをパーシングし、ジャバコードを生成する過程でセキュリティポリシーを強制する場合、具体的な方法は知られているので、この場合に関する詳細な説明は省略し、以下では、ジャバクラスファイルの構造及びこれによるセキュリティメカニズムについて説明する。
ゲートウェイ200があるサーバ100からジャバソースコードあるいはバイナリファイル(クラスファイルあるいはクラスファイルを含むjarファイル)をダウンロードした場合、ゲートウェイでセキュリティ機能を具現するために、ゲートウェイがダウンロードしたコードが端末のいかなる機能にアクセスするかを判断し、これを制御することができなければならない。このためには、ゲートウェイがジャバクラスファイルを分析する必要がある。図4は、ジャバのクラスファイルの構造の一例を示す。このうち、実際に実行されるバイトコードは、「methods」領域に含まれている。任意のメモリに対するアクセスが可能なネイティブコード(例えば、アセンブリコード)とは異なり、ジャバインタープリターやJIT(just−in−time)コンパイラを経て実行されるジャババイトコードは、クラスファイル内のコンスタントプール(constant pool:図4参照)により指定されるクラスと関数のみをアクセスすることができる。
一旦あるコードがポリシー上、接近が禁止されたクラスや関数に接近しているということ(例えば、電話帳への読み出し動作を禁止することが可能)をゲートウェイ200が発見すれば、このコードの使用を禁止したり端末のユーザーに該当機能の使用に対する許可を受けるなどの機能を遂行しなければならず、このようにするのには、様々な方法があり得る。このような方法のいくつかの例を下記に説明する。このような多数の方法のうち、いかなる方法を適用するかは、通信事業者のポリシーあるいはセキュリティドメイン別に指定されるセキュリティポリシーにより決定され得る。
(a)ダウンロードを禁止する方法:ユーザー(即ち、クライアント)がダウンロードしようとするページをなすクラスファイルのうち、セキュリティポリシーに違反するコードが含まれている場合、このファイルのゲートウェイから端末へのダウンロードを中止させ、ユーザーと管理者にそのような事実を通知する。図1及び2に示された実施例では、セキュリティマネージャ240により前記のような機能が行われる。
(b)ダウンロード時にユーザーの確認を受けるようにする方法:ユーザーが要請するページがいかなる機能に接近するのかをユーザーにまず知らせ、ユーザーがこれを承認する場合にのみそのページに移動する。例えば、クライアントがゲートウェイに要求したページが電話かけ関数を参照する場合、ゲートウェイはまずこのような事実をユーザーに知らせ(例えば、「このプログラムは電話をかける機能が含まれています。続けますか。」というメッセージを端末装置側に送る)、ユーザーの承諾如何をクライアントが再びゲートウェイに知らせ、ユーザーが承諾する場合にのみ、該当ページを端末にダウンロードする。
(c)ランタイム時にユーザーの確認を受ける方法:上記2つの方法は、あるコードが実際にセキュリティポリシーに違反することをする前にダウンロードが根本的に遮断されるという特徴を有している。しかし、実際にそのコードを実行するとき、これを遮断したり承諾を受けるようにすることがさらに望ましい場合がある。即ち、一律的に所定の機能のコードが遮断されるようにするのではなく、実行時に具体的にどんなことをするかによってセキュリティポリシーを異なって適用するのが望ましい場合として、例えば、全てのサーバへの接続を統制する代わりに、所定のサーバへの接続のみを許容したり、端末側ファイルにアクセスするコードを全面的に遮断する代わりに、所定のファイル(所定のディレクトリ内のファイル)のアクセスのみを許容することなどがある。このようにランタイム時に異なる条件に応じてセキュリティポリシーが選択的に適用されるようにすることは、ゲートウェイでは不可能で、端末でのランタイム時にだけ可能である。従って、ゲートウェイでは、ランタイム時に所定の動作を行うようにするコードをプログラムに挿入することにより、所望の機能を具現することができる。ランタイム時に確認する方法をプログラムで具現する方法の実施例は次の通りである。即ち、第一の方法は、参照されるクラスを入れ替える方法であって、所定の無線ウェブページPのあるコードが、セキュリティポリシー上接近が禁止されたクラスCの関数Fにアクセスするとき、クラスCを相続し、関数Fをオーバーライドする新たなクラスC1を予め端末に設けておくか、またはPに含ませてダウンロードする。端末では、クラスC1の関数Fは、ユーザーの承諾を受けたときにのみCの関数Fを呼び出す。このようなセキュリティ機能の具現のためのゲートウェイの動作を詳察すれば、Pに含まれたクラスのコンスタントプール(constant pool)でCを参照する項目を、代わりにC1を参照するように修正し、修正されたバージョンをクライアントにダウンロードする。C1はCを相続するため、F以外の全ての関数はCの関数がそのまま呼び出されるようになり、Fの実行を除けば、いずれも本来のページPの機能が全て行われる。上記方法は、クラスCや関数Fが最終的な属性を有している場合、オーバーライドが不可能な場合もあり、そのような場合は適用することができないという短所がある。
第二の方法は、このような短所を克服するための方法であって、Cを相続するC1ではない、新たなクラスDを作り、DのFがユーザーの承諾を受けた後、CのFを呼び出すようにする。DはCを相続するクラスではなく、単にFのみを呼び出す役割をするものであるので、上記のようにコンスタントプールのCに対する参照をDに差し替えれば、F以外の関数を呼び出すことができなくなる。従って、コンスタントプールにDのための新たな項目を作り、メソッド(method)領域のバイトコードをスキャンし、問題になるクラスCのFを呼び出すコードを、代わりにクラスDのFを呼び出すように修正する一方、DのFには、CのFを呼び出す前にユーザーの承諾を受けるようにするコードを挿入する。
上記方法によれば、コードの一部に対してのみ、それぞれ異なるセキュリティポリシーを設定し、強制することができるようになる。即ち、例えば、1つのページがそれぞれ異なるサーバからダウンロードされる場合もこのコードに対してそれぞれ異なるセキュリティポリシーを設定し、強制することができる。
以上説明したものの他にもランタイム時の条件に応じてセキュリティポリシーを適用する多様な方法があり得る。
[通信効率の改善]
無線インターネットで既存の方式(WAP、特にweb)のブラウザを用いれば、反応速度が有線インターネットと比較して大変遅いが、これは、無線インターネットの遅い転送速度と共に、特に転送速度に比べてもさらに遅い往復時間(RTT)に起因する。既存のブラウザの場合、HTMLあるいはWMLで書かれた本文をサーバからダウンロードし、パーシングしてからこそそのページが必要とする他のファイル、例えば、イメージファイル、ジャバスクリプトファイル、CSS(cascade style sheet)ファイルなどをサーバに要求することができるため、1ページを示すために複数回のトランザクション(要求と応答を含む)を行わなければならない。有線(PC)ブラウザの場合、複数のファイルのダウンロードを受ける時間を減らすために、HTTP 1.1のパイプラインプロトコルを用いたり、サーバと2以上のTCP連結を開ける方法を用いる。無線インターネットで用いるWAPブラウザの場合、具現上の問題により大部分HTTP 1.1のパイプラインや複数のTCP連結を用いない。また、たとえ具現が可能であっても、複数のTCP連結を開けるようになれば、各連結ごとに初期接続に必要な遅延及び初期速度の遅いTCPの特性に応じたオーバーヘッドを有するようになるので、特にこのような遅延やオーバーヘッドの影響が大きく示される無線インターネットでは効率的でない。また、HTTP 1.1のパイプライニングは、全体的なページローディングの時間を減らす効果があるが、この場合にも外部ファイルを参照するウェブページの場合、少なくとも2回のトランザクションに必要な時間(即ち、ページ本文を受けるためのトランザクションと、本文のパーシング後に把握された残りのリソース/ファイルを要請するトランザクション)と受信したファイルをパーシングするのに要される時間の和が必要である。
後述する本発明の一実施例による、改善されたプロトコルを用いれば、トランザクションの数を最小化しながらも転送量が増加しないようにし、ページローディングの時間を低減することができる。
図5及び6は、本発明の一実施例によりトランザクションの数を減らす基本的な方法を説明するための図面である。即ち、図5は、従来の無線インターネットサーバとブラウザにおいて、多数のファイルを含む1つのウェブページがブラウザにダウンロードされる過程を示し、図6は、本発明の一実施例により多数のファイルを含む1つのウェブページをブラウザにダウンロードする過程を示すものである。図5で1つの矢印は1回のトランザクションを意味し、小さな長方形は1つのファイルを示す。図5に示す方法によれば、ブラウザがまず所定のページの本文ファイルをもってきて、これを解釈した後、ページ内で参照するファイルを順にもってきて、従って、1つのファイル当たり1回のトランザクションが発生し、全てのトランザクションは、無線ネットワークを介して行われる。たとえゲートウェイがサーバとブラウザ間にあるシステム(図5において点線で示すゲートウェイがシステム内に存在する場合)であっても、従来のゲートウェイは、ファイル要請とその結果をそのまま通過させるだけであり、サーバからいかなるファイルを転送するかは全てブラウザで決定されるので、無線トランザクションの数には影響を与えない。
一方、図6に示す本発明の一実施例によれば、ブラウザ310がゲートウェイ200に所定のウェブページを要求すれば、ゲートウェイ200は、ブラウザの介入なしでも前記ページが必要とする他のファイルまで全てサーバから取り込んで一度にブラウザに転送する。このような方式が可能になるためには、特定のページで必要とするファイルが何かをゲートウェイ200が把握することができなければならない。所定のページで必要とするファイルを全てゲートウェイが分るというのは、ブラウザが特定のページを代表する1つのURL(代表URL)のみを明示してページを要求する場合、ゲートウェイがこのページで必要とする他のファイルが何かを探し出すという意味である。本発明によるXCゲートウェイ200は、ブラウザ310から転送される代表URLに該当するXCMLファイルをサーバから取り込んでこれをパーシングするため、XCMLファイルから静的に参照する外部ファイルが分り、そのため、ブラウザの要求なしでもウェブサーバ100にこれらファイルを再び要求し、ページ本文のファイルと共に全て集めて端末のブラウザ310に一度にダウンロードすることができる。このようにすれば、有線区間で複数回のトランザクションによりゲートウェイがサーバから集めたデータを無線区間では一回のトランザクションで端末に転送させるようになる。図5と図6は、いずれも3つのファイルが1つのウェブページに含まれている場合を想定した例であって、トランザクション数を比較すれば、図5の場合(ゲートウェイがない場合)、3回の無線トランザクションを含むのに対し、図6は、1回の無線トランザクションと3回の有線トランザクションを含む。一般に有線ネットワークでのRTTは無線のRTTよりはるかに短いため、有線ネットワーク区間で複数回のトランザクションをすることは、全体の応答時間に大きな影響を及ぼさない。従って、全体的に無線区間のトランザクション数が少ない図6の方法は、図5の方法に比べて通信効率がさらに高い。
また、本発明の他の実施例によれば、通信方式をさらに効率的に作るために、既にブラウザの該当ページの最新バージョンのファイルが、端末内のキャッシュにキャッシングされている場合、これを再びダウンロードしないようにして通信に要される時間を最小化する。
無線インターネットの場合、大体ユーザーに転送容量に比例するパケット当たりの課金をするため、不要なダウンロードがなされる場合、不当に過多な料金が請求され得、応答時間も遅くなるため、既にあるファイルがブラウザにキャッシュされている場合、これを再びダウンロードしないのが望ましい。図7及び図8は、本発明の一実施例による、キャッシュを用いて不要な転送を防止するアルゴリズムを説明するための図面であって、それぞれブラウザ側及びゲートウェイ側で実行されるアルゴリズムを示す。以下では、図7及び8を参照してブラウザ及びゲートウェイそれぞれの動作を説明するのに先んじて、本発明のキャッシュ利用アルゴリズムを概括的に説明する。
1.ブラウザ100が特定のページを代表するURLを利用し、ゲートウェイ200にこのがページを要求するとき、このページが端末にキャッシュされている場合には、
−キャッシュされたウェブコンテンツファイルの最終の変更時間、このページで参照するファイルのうち現在キャッシュに残っているファイルの名称及びそれぞれの最終の変更時間を含む「キャッシングされたページファイルリスト」を共にゲートウェイに知らせる。このためにブラウザは、各ページの関連ファイル(メインページ及び参照ファイル)と共にキャッシングされたページファイルリストを共にキャッシュに格納する。本発明の一実施例によれば、キャッシュに格納されたファイルは、ページ単位で満了されキャッシュから削除されるので、殆どの場合、所定のページが必要とする参照ファイルは、該当ページのメインページファイルと共にキャッシュに格納されているようになるが、ページが更新され新たなファイルをページで参照する場合は、キャッシュに格納されたファイルと実際の参照ファイルに差が出るようになる。
ゲートウェイは、ブラウザが要求した代表URLに相応するウェブコンテンツファイルを要求する。
2a.ゲートウェイがサーバから受けたメインページがXCML形式の場合:XCMLをパーシングする。パーシングの結果でこのページで参照するファイルのリストであるページファイルリストが得られる。このページファイルリストは、前述したものと類似して所定のページで必要とするファイル名とファイルの最終の変更時間を含む。このリストで明示されたファイルの最新バージョンをサーバからもってきてゲートウェイキャッシュに格納する。このとき、ゲートウェイキャッシュの内容が最新の場合、HTTP If−Modified−Sinceプロトコルにより実際に内容のダウンロードが起こりはしない。それと同時に、ページファイルリストには、各ファイルの最終の変更時間情報が加えられる。ゲートウェイは、上記1段階でブラウザが転送したブラウザにキャッシングされたページファイルリストとゲートでパーシングの結果で得たページファイルリストを比較する。比較の結果、ゲートウェイはキャッシングされたファイルから変更されたり新たに追加されたファイルをゲートウェイで得たページファイルリストと共にダウンロードし、サーバ側からなくなったファイルは削除することを端末のブラウザに指示する。ブラウザにキャッシングされたファイルと、サーバにあるファイルのファイル名及び最終の変更時間が同一の場合は、変更されていないものと判断してダウンロードしない。
2b.サーバから受けたメインページファイルがバイナリファイルの場合:このようなバイナリファイルは、ジャバクラスファイルと共に該当ページのメタ情報を共に有しているように構成されている。例えば、ジャバプログラムのパッケージングと転送に標準的に用いるjarファイルの場合、META−INFという内部ディレクトリにMANIFEST.MFという名称のテキストファイルを含んでおり、このファイルには、バージョン、プログラムの名称、開始クラスなどが明示されている。本発明の一実施例によれば、MANIFEST.MFファイルに、従来含まれる情報に追加で該当ページが参照する他のファイルの目録を表記するようにする。この場合、ゲートウェイは、このようなメタ情報ファイルをパーシングし、メインページが必要とする参照ファイル名と最終の変更時間を含むページファイルリストを得て、その後メインページがXCMLの場合と同一の手続により新たにダウンロードが必要なファイルのみを(即ち、ブラウザにキャッシングされたものと異なるファイルのみを)ブラウザにダウンロードする。
但し、2aと2bにおいて、1段階でブラウザが代表するページURLのみを転送し、ページファイルリストを転送しない場合、即ち、ブラウザが該当ページをキャッシングしていない場合には、ゲートウェイはブラウザにページファイルリストのみを先に転送し、実際のファイルを転送しない。これは、ブラウザが該当ページをキャッシングしてはいないが、このページで参照するファイル中の一部が他のページでも参照され、ブラウザのキャッシュに存在する場合、不要なダウンロードを防ぐためである。
3.前記のような動作によりブラウザは、ゲートウェイが送るファイルとページファイルリストを受ける(S60)。もしリスト内に含まれたファイルを別途に受けていないのにこのファイルがキャッシュにも格納されていないか、またはキャッシュに格納されたファイルの最終の変更時間がリストに表示された最終の変更時間よりも前である場合、このようなファイルをゲートウェイに新たに要求する(S80)。
4.ブラウザは、これまでキャッシュになかったファイルをキャッシュに格納し、更新されたファイルの場合、キャッシュを更新する。ページで参照するファイル目録などを含むページファイルリストも受信した情報により更新する(S100)。
5.ファイルのダウンロード及び格納が完了すれば、ページに該当するジャバクラスをロードして実行する(S110)。
このようなアルゴリズムによれば、ブラウザとゲートウェイ間に最大2回のトランザクションにより必要な全てのファイルを不要な転送なしにダウンロードすることができる。
以下では、図7を参照して前記のようなアルゴリズムを具現するために、端末側でなされる動作を詳察する。
段階S10でユーザーが過去のページまたはブックマークで所定のリンクをクリックする等の方法で新たなページを要請すれば、段階S20で端末のキャッシュに選択された該当ページの内容がキャッシュされているかを判断する。選択されたページがキャッシュにない場合、段階S50で該当ページをゲートウェイに要求する。該当ページがキャッシュされている場合、ブラウザは、キャッシュからキャッシングされたページファイルリストをもってきて(S30)、選択されたページをゲートウェイに要請すると同時にキャッシングされたページファイルリストをゲートウェイに転送する(S40)。ブラウザの要請に従ってゲートウェイで送るメインページファイル、参照ファイル及びページファイルリストを段階S60で受信し、段階S70では、ゲートウェイから受けたリスト内に含まれてはいるものの、キャッシングされていないファイルがあるか確認する。キャッシングされていないファイルがある場合は、追加で必要なファイルをゲートウェイに要求して(S80)受信し(S90)、受信が完了し、これ以上受けるファイルがなければ、受信したファイルをキャッシュに格納(S100)した後、メインページファイルを実行する(S110)。
次は、図8を参照して、本発明の一実施例により前記のようなアルゴリズムを具現するために、ゲートウェイ側で行われる動作を考察する。
段階S210でゲートウェイは端末が接続し、通信を開始することを待機し、端末が接続してきたら、所定の接続手続により通信を開始させ、段階S220に移る。段階S220では、端末からの要求を待って要求があればこれを受信する。段階S230では、受信された要求が接続終了の要求なのかを判断し、接続終了の要求である場合には、該当端末の接続に関連した動作を終了する。接続終了の要求ではない場合には、代表URLの要求なのかを判断する(S240)。代表URLの要求とは、ユーザーがURLを入力したり、リンクをクリックするなどの方法で所定のページを新たに要請する場合、この該当URLのデータを要請することを意味する。代表URLの要求は、ブラウザで所期のページのファイルを一部受けた後、不足したファイルをさらに要求することと相対する概念である。即ち、前述したように、1つのメインページファイルの実行に必要なファイルがブラウザに転送された後、ブラウザが1つのページを完成させるのに必要なファイルが全てあるかを確認し、不足したファイルがあれば、これを要請するようになり、ブラウザのゲートウェイに対する要求は、接続要求、接続終了の要求などの通信のための基本的は要求以外に、代表URLの要求及び前述した個別ファイルの要求(ページを作るための一部ファイルが不足した場合)などを含む。代表URLの要求の場合、ゲートウェイは、ブラウザから該当ページに必要なファイルのうちキャッシュされているファイルの名称及びファイルの最終の変更時間を含むキャッシングされたページファイルリストをともに受信する。
ブラウザからの要求が代表URLの要求である場合、ゲートウェイは、該当URLのメインページの内容をウェブサーバに要求する(S250)。ゲートウェイは、メインページファイル(ウェブコンテンツファイル)を受信した後、受信したページの種類を確認し(S260)、XCMLタイプのファイルの場合は、このファイルをパーシングし、その結果でページファイルリストを作成する(S270)。受信したファイルがjarファイルのようなバイナリファイルである場合は、MANIFESTファイルをパーシングしてページファイルリストを作成する(S280)。ページファイルリストの作成後、ブラウザから受けたキャッシングされたページファイルリストと比較して、ブラウザに新たにダウンロードすべきファイルの目録を作成する(S290)。ダウンロードするファイルが決定された後には、これをサーバあるいはゲートウェイ内のキャッシュからもってきた後(S300)、ファイルリストと共にブラウザに転送する(S310)。
段階S240でブラウザからの要請が代表URLではない場合は、ブラウザが不足したファイルを要請する場合である。この場合は、段階S300に戻って該当ファイルをサーバまたはキャッシュからもってきた後(S300)、該当ファイルをブラウザに転送する(S310)。
陳述した方法の他にも、端末側のキャッシュを効率的に用いるために、ゲートウェイに予め端末に格納されたファイルに関する情報を与え、ゲートウェイは必要なファイルのみを転送する他の具体的な方法があり得る。
[共有リソース管理機能]
一般ウェブの場合と同様に、XCBでも複数のページ間に共通するライブラリやイメージなどは共有をしてキャッシュの使用率を高めることがページローディングの速度やパケット料金、キャッシュ使用量などいくつかの理由で望ましい。ところが、互いに異なるページ間にライブラリやイメージなどのリソース(以下、「共有リソース」という)を共有すれば、バージョンが合わない状況が発生し得る。
図9は、従来技術のブラウザの共有リソースを管理する方法を示す図面である。a.xhtmlとb.xhtmlは、それぞれ異なるページを示すXHTMLファイルであり、ジャバスクリプトライブラリc.jsを共に共有している。
図9(a)は、サーバに各xhtmlファイルのバージョン1.0があり、このファイルがx.jsバージョン1.0を共有し、全てのファイルが端末にキャッシングされている状況を示している。
サーバのファイルが全てバージョン1.1にアップグレードされたとき、図9(b)は、端末がサーバとオンラインで接続した状態でa.xhtmlページにアクセスし、端末キャッシュのa.xhtmlとc.jsファイルがそれぞれver 1.1にアップグレードされた状況を示す。
この状態で端末がオフライン状態になれば、ユーザーがb.xhtmlページを用いようとするとき、b.xhtmlはバージョン1.0であるが、c.jsはバージョン1.1であって、図9(c)に示すようにバージョンの不一致現象が発生する。
このようにあるリソースを互いに異なるページで共に共有するときに発生し得るバージョンの不一致問題は、単にウェブページだけでなく、一般のデスクトップオペレーションシステムに複数のアプリケーションを設けるときにも現われる現象である。このような問題を解決するための最も簡単な方法は、ウェブページ間にリソースを共有せずにウェブページ別に互いに異なる位置に各自の個別的なコピーファイルをおくことであるが、この方法は、端末のメモリが制限されており、特に小さなサイズのページが多い場合には適用し難い。
本発明の一実施例によれば、前記したようなバージョンの不一致問題を解決するために図10に示すような方法を用いる。
図10(a)は、図9(a)と同様にサーバにバージョン1.0のa.xcml、b.xcml、c.javaファイルがあり、クライアントのキャッシュにも同じバージョンがキャッシングされている状況を示す。このとき、本発明の一実施例で、共有できる全てのリソースファイルは該当ファイルの参照回数値を有するようにする。参照回数は、該当リソースファイルが如何に多くの他のファイルで参照されるかを示す数字であって、図10(a)でc.javaの参照回数は2である。
図10(b)では、端末がオンライン上態でa.xcmlページにアクセスし、a.xcmlとc.javaのバージョン1.1ファイルをもってくる。このとき、前述したように実際に端末に伝達、格納されるファイルは、XCMLとジャバのソースファイルではなく、これらファイルがゲートウェイで処理され生成されたクラスファイルであるが、便宜上図10ではソースファイルの名称で表現することにする。このとき、バージョン1.1のc.javaファイルを端末に格納する前に、既存のキャッシュに格納されていたバージョン1.0 c.javaの参照回数を1だけ減少する。このとき、図10(b)に示すように、減少後に既存バージョンの参照回数が0ではなければ、バージョン1.0のc.javaを削除することなく、バージョン1.1のc.javaを別途に格納する。バージョン1.1 a.xcmlは、バージョン1.0 a.xcmlに取って代わってバージョン1.1 c.javaにアクセスすることができるリンクを有する。
図10(c)に示すように、クライアントがオフライン状態でb.xcmlにアクセスすれば、本来リンクされていたバージョン1.0のc.javaが共に用いられる。a.xcmlにアクセスすれば、バージョン1.1のc.javaが共にアクセスされる。
もし参照回数が1であった共有リソースファイルが更新されれば、更新されたファイルのみが残り、本来のリソースファイルは削除する(本来のリソースファイルの参照回数が0になったため)。このような方法によれば、複数のページで同じリソースの同じバージョンを共有する場合、1つのファイルのみを格納し、効率を高めかつバージョンが異なるようになれば、互いに異なるバージョンを格納してバージョンの不一致を防止することができる。
以下は、前記のような動作を具現するためのアルゴリズムの例を示す疑似コードである。以下で「page」は該当「url」が示すページファイルを意味し、「resources」は「page」が必要とするリソースファイルのリストである。
function download_page(url):
page, resources=request_page(url)
for r in resources:
cache_resource(r)
cache_page(page)

function cache_page(page):
if page.url in cache:
;unlink previous page
for r in ache[page.url].resources:
r.ref_count−−;
if r.ref_count==0:
delete cache[ r.url+ r.version]
;put new page
cache[page.url]=page
for r in page.resources:
cache[r.url+r.version].ref_c ount++

function cache_resource(r):
cache[r.url+r.versoin]=r
本明細書で図面に示す各ブロックは、プログラムの機能を表示するためのものであって、実際のプログラムで具現する過程で1つのブロックが1つまたはそれ以上のプログラム部分(要素)で具現されることができ、または複数のブロックの機能が1つのプログラム要素により具現されることができ、複数のプログラム要素により複合的に具現され得る。具体的な機能ブロックを具現する方法は、当業者により多様な変形と組合わせが可能である。
本発明により実行可能なウェブコンテンツ(XC)を提供するためのネットワークシステムの概略図である。 図1の詳細な細部ブロック図である。 本発明により実行可能なウェブコンテンツ(XC)を提供するためのネットワークシステムの他の概略図であって、本発明によるセキュリティ機能を説明するための概略図である。 ジャバのクラスファイルの構造の一例を示す図である。 本発明の一実施例によりトランザクションの数を低減する基本的な方法を説明するためのネットワークシステムの概略図である。 本発明の一実施例によりトランザクションの数を低減する基本的な方法を説明するためのネットワークシステムの概略図である。 本発明の一実施例による、キャッシュを用いて不要な転送を防止するアルゴリズムを説明するための図であって、ブラウザ側のアルゴリズムを示す図である。 本発明の一実施例による、キャッシュを用いて不要な転送を防止するアルゴリズムを説明するための図であって、ゲートウェイ側で実行されるアルゴリズムを示す図である。 従来技術のブラウザの共有リソースを管理する方法を示す図である。 本発明の一実施例により共有リソースを管理する方法を示す図である。
符号の説明
100 ウェブサーバ
200 ゲートウェイ
210 XCML−ジャバ変換部
220 ジャバコンパイラ
230 jar処理部
240 セキュリティ管理部
250 プロトコルスタック
260 キャッシュ
300 端末
310 ブラウザ

Claims (31)

  1. 実行可能なウェブコンテンツを端末に提供するシステムにおいて、
    宣言的な言語からなる宣言的言語部及び非宣言的部分を含む実行可能なウェブコンテンツを提供するサーバと、
    前記実行可能なウェブコンテンツを前記サーバから転送を受け、前記端末のウェブブラウザで実行できる形態に変換し、前記端末に転送するゲートウェイと
    を備えるシステム。
  2. 前記端末は、無線通信端末であり、前記ウェブコンテンツは、無線ウェブコンテンツである請求項1記載のシステム。
  3. 前記ウェブサーバと前記ゲートウェイは、有線ネットワークにより連結され、前記ゲートウェイは、無線ネットワークを介して端末に連結される請求項1記載のシステム。
  4. 前記端末は、無線ウェブブラウザを備え、
    前記ゲートウェイは、前記無線ウェブブラウザからの所定のウェブコンテンツの要請を無線ネットワークを介して受信し、有線ネットワークを介して前記所定のウェブコンテンツを前記サーバに要請し、
    前記ウェブコンテンツは、1つ以上のファイルを含み、
    前記サーバへのウェブコンテンツの要請は、前記1つ以上のファイルの要請を含み、
    前記ゲートウェイは、前記サーバへの要請に従ってサーバから受信した、ウェブコンテンツを構成する1つ以上のファイルを一回のトランザクションで端末に転送する請求項3記載のシステム。
  5. 前記ウェブコンテンツを構成する1つ以上のファイルは、ウェブコンテンツファイルと少なくとも1つのリソースファイルを含み、
    前記ウェブコンテンツの要請は、ウェブコンテンツファイルの要請と、前記少なくとも1つのリソースファイルの要請を含む請求項4記載のシステム。
  6. 前記ウェブコンテンツは、静的ファイル、動的に生成されるファイル、手続的コードのソースコード、実行可能な二進ファイル、マルチメディアファイルのうちの1つ以上を含む請求項1記載のシステム。
  7. 前記非宣言的部分は、手続的コードを含み、
    前記ゲートウェイは、宣言的言語部を手続的コードに変換する手段と、手続的コードをコンパイルして実行可能なファイルに変換する手段を備える請求項1記載のシステム。
  8. 前記非宣言的部分は、手続的コードを含み、前記ゲートウェイは、宣言的言語部をコンパイルする手段と、手続的コードをコンパイルする手段と、前記宣言的言語部をコンパイルした結果と、手続的コードをコンパイルした結果をマージ(merge)して実行可能なファイルを生成する手段を備える請求項1記載のシステム。
  9. 前記ゲートウェイは、端末のウェブブラウザで実行できる形態に変換されたウェブコンテンツ内にセキュリティポリシーに違反する機能が含まれているかを検出する手段を備える請求項1記載のシステム。
  10. 前記検出手段は、ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含められている場合、該当ファイルを端末に転送しないことを特徴とする請求項9記載のシステム。
  11. 前記検出手段は、ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含められている場合、該当ファイルを端末に転送するに先立って端末ユーザーの許諾を受けることを特徴とする請求項9記載のシステム。
  12. 前記検出手段は、ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含められている場合、該当ファイルに、ランタイム時に所定の動作を行うようにするコードを挿入し、
    前記所定の動作は、システムの既に設定されたセキュリティポリシーによって決定されることを特徴とする請求項9記載のシステム。
  13. 実行可能なウェブコンテンツを端末に提供するシステムにおいて、
    実行可能なウェブコンテンツを提供するサーバと、
    前記実行可能なウェブコンテンツを前記サーバから転送を受け、前記端末のウェブブラウザで実行できる形態に変換して前記端末に転送するゲートウェイと
    を備え、前記ウェブコンテンツは、静的ファイル、動的に生成されるファイル、手続的コードのソースコード、実行可能な二進ファイル、マルチメディアファイルのうちの1つ以上を含み、
    前記ゲートウェイは、宣言的言語及び手続的コードをコンパイルするシステム。
  14. 前記手続的コードのソースコードは、ジャバコードを含み、前記実行可能な二進ファイルはjarファイルを含むことを特徴とする請求項6または請求項13に記載のシステム。
  15. 実行可能なウェブコンテンツをサーバから受け、端末のウェブブラウザで実行できる形態に変換するゲートウェイであって、前記ウェブコンテンツは、静的ファイル、動的に生成されるファイル、手続的コードのソースコード、実行可能な二進ファイル、マルチメディアファイルのうちの1つ以上を含み、
    前記ゲートウェイは、宣言的言語及び手続的コードをコンパイルして実行可能なファイルに変換する手段を備えるゲートウェイ。
  16. 前記端末は、無線通信端末であり、前記ウェブコンテンツは、無線ウェブコンテンツである請求項15記載のゲートウェイ。
  17. 前記ゲートウェイは、有線ネットワークによって前記サーバと通信し、前記ゲートウェイは、無線ネットワークを介して端末と通信することを特徴とする請求項15記載のゲートウェイ。
  18. 前記端末は、無線ウェブブラウザを備え、
    前記ゲートウェイは、前記無線ウェブブラウザからの所定のウェブコンテンツの要請を無線ネットワークを介して受信し、有線ネットワークを介して前記所定のウェブコンテンツを前記サーバに要請し、
    前記ウェブコンテンツは、1つ以上のファイルを含み、
    前記サーバへのウェブコンテンツの要請は、前記1つ以上のファイルの要請を含み、
    前記ゲートウェイは、前記サーバへの要請に従ってサーバから受信した、ウェブコンテンツを構成する1つ以上のファイルを一回のトランザクションで端末に転送することを特徴とする請求項17記載のゲートウェイ。
  19. 前記ウェブコンテンツを構成する1つ以上のファイルは、ウェブコンテンツ本文とリソースファイルを含み、
    前記ウェブコンテンツの要請は、ウェブコンテンツの本文の要請と、リソースファイルの要請とを含む請求項18記載のゲートウェイ。
  20. 前記手続的コードのソースコードは、ジャバコードを含み、前記実行可能な二進ファイルは、jarファイルを含む請求項15記載のゲートウェイ。
  21. 宣言的言語部を手続的コードに変換させる変換部と、
    手続的コードをコンパイルするコンパイラと、
    ウェブサーバから受けた実行可能な二進ファイルを分析し、追加の外部ファイルを参照する場合、前記外部ファイルを取り込む処理部と、
    ウェブサーバから受けたウェブコンテンツに、セキュリティに問題になる機能が含まれているかを決定するセキュリティ管理部と
    を備える請求項15記載のゲートウェイ。
  22. 端末のウェブブラウザで実行できる形態に変換されたウェブコンテンツ内にセキュリティポリシーに違反する機能が含まれているかを検出する手段を備える請求項15記載のゲートウェイ。
  23. 前記検出手段は、ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含まれている場合、該当ファイルを端末に転送しないことを特徴とする請求項22記載のゲートウェイ。
  24. 前記検出手段は、ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含まれている場合、該当ファイルを端末に転送するに先立って端末ユーザーの許諾を受けることを特徴とする請求項22記載のゲートウェイ。
  25. 前記検出手段は、ウェブコンテンツ内にセキュリティポリシーに違反する機能を有するファイルが含まれている場合、該当ファイルに、ランタイム時に所定の動作を行うようにするコードを挿入し、
    前記所定の動作は、システムの既に設定されたセキュリティポリシーによって決定されることを特徴とする請求項22記載のゲートウェイ。
  26. 前記端末は、無線ウェブブラウザを備え、
    前記ウェブコンテンツは、1つまたはそれ以上のファイルを含み、
    前記ゲートウェイは、前記無線ウェブブラウザからの所定のウェブコンテンツの要請を無線ネットワークを介して受信し、
    前記所定のウェブコンテンツの要請は、ウェブコンテンツのうちブラウザに既にキャッシングされているファイルの名称及び最終変更時間の情報を含み、
    前記ゲートウェイは、有線ネットワークを介して前記所定のウェブコンテンツを前記サーバに要請し、
    前記サーバへのウェブコンテンツの要請は、前記1つまたはそれ以上のファイルの要請を含み、
    前記ゲートウェイは、前記サーバへの要請に従ってサーバから受信した、ウェブコンテンツを構成する1つまたはそれ以上のファイルを受信し、前記キャッシングされているファイルの名称及び最終変更時間の情報と比較してキャッシングされたファイルから変更されたり新たに追加されたファイルのみを端末に転送することを特徴とする請求項17記載のゲートウェイ。
  27. 実行可能なウェブコンテンツをブラウジングするためのウェブブラウザを格納するコンピュータ格納媒体であって、前記ウェブブラウザは、バイナリ実行コード形態のウェブコンテンツを受信して実行することを特徴とする格納媒体。
  28. 実行可能なウェブコンテンツをブラウジングするためのウェブブラウザを備える端末であって、前記ウェブブラウザは、バイナリ実行コード形態のウェブコンテンツを受信して実行することを特徴とする端末。
  29. 前記ウェブコンテンツは、1つ以上のファイルを含み、前記1つ以上のファイルは、他のファイルで参照される共有リソースファイルを含み、
    前記端末は、キャッシュを含み、
    前記共有リソースファイルが前記キャッシュにキャッシングされるとき、前記共有リソースファイルが如何に多くの他のファイルで参照されるかを示す参照回数が共に格納されることを特徴とする請求項28記載の端末。
  30. 前記端末が前記キャッシングされた共有リソースファイルのキャッシングされたバージョンよりも新たなバージョンのファイルを含むウェブコンテンツの転送を受けた場合、前記新たなバージョンの共有リソースファイルをキャッシュに格納し、前記既に格納された共有リソースファイルの参照回数を1減少することを特徴とする請求項29記載の端末。
  31. 前記減少後に参照回数が0であれば、前記既に格納された共有リソースファイルを削除することを特徴とする請求項30記載の端末。
JP2007551194A 2005-01-12 2006-01-11 実行可能なウェブコンテンツの提供及び処理システム及び方法 Pending JP2008527564A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050003032A KR20060082353A (ko) 2005-01-12 2005-01-12 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법
PCT/KR2006/000119 WO2006075872A1 (en) 2005-01-12 2006-01-11 System and method for providing and handling executable web content

Publications (1)

Publication Number Publication Date
JP2008527564A true JP2008527564A (ja) 2008-07-24

Family

ID=36677875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007551194A Pending JP2008527564A (ja) 2005-01-12 2006-01-11 実行可能なウェブコンテンツの提供及び処理システム及び方法

Country Status (6)

Country Link
US (1) US20100005527A1 (ja)
EP (1) EP1839189A4 (ja)
JP (1) JP2008527564A (ja)
KR (1) KR20060082353A (ja)
CN (1) CN100543724C (ja)
WO (1) WO2006075872A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8561039B2 (en) 2007-05-04 2013-10-15 Thomson Licensing Method for generating a set of machine-interpretable instructions for presenting media content to a user
JP2017142552A (ja) * 2016-02-08 2017-08-17 株式会社日立アドバンストシステムズ マルウェア注意喚起装置および方法

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814198B2 (en) * 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
US20070022459A1 (en) 2005-07-20 2007-01-25 Gaebel Thomas M Jr Method and apparatus for boundary-based network operation
US8826411B2 (en) * 2006-03-15 2014-09-02 Blue Coat Systems, Inc. Client-side extensions for use in connection with HTTP proxy policy enforcement
US8584147B2 (en) 2006-12-21 2013-11-12 Microsoft Corporation Managed execution environment for software application interfacing
US8024396B2 (en) * 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US20080313545A1 (en) * 2007-06-13 2008-12-18 Microsoft Corporation Systems and methods for providing desktop or application remoting to a web browser
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US7970892B2 (en) * 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
WO2009018168A2 (en) * 2007-07-27 2009-02-05 Synergy Sports Technology, Llc Using a website containing video playlists as input to a download manager
US8230386B2 (en) * 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US20090112932A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Visualizing key performance indicators for model-based applications
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US7926070B2 (en) * 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US8181151B2 (en) * 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US8099720B2 (en) * 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
CN100474253C (zh) * 2007-11-22 2009-04-01 北京飞天诚信科技有限公司 .Net程序保护方法及装置
JP4889664B2 (ja) * 2008-02-12 2012-03-07 コニカミノルタビジネステクノロジーズ株式会社 マニュアル提供方法、周辺装置、および制御用プログラム
US8635701B2 (en) 2008-03-02 2014-01-21 Yahoo! Inc. Secure browser-based applications
CN101546310B (zh) * 2008-03-28 2012-01-04 纬创资通股份有限公司 可提升网页兼容性的方法及装置
US9082409B2 (en) * 2008-08-28 2015-07-14 Avaya Inc. Binary-caching for XML documents with embedded executable code
CN101382958A (zh) * 2008-10-21 2009-03-11 深圳华为通信技术有限公司 网页加载方法和网页加载装置
US20100211983A1 (en) * 2009-02-19 2010-08-19 Pixel8 Networks, Inc. Virtual private content delivery network and method thereof
KR100989217B1 (ko) * 2009-04-20 2010-10-20 주식회사 엘지유플러스 플래시 파일 지원 방법 및 시스템
US8813124B2 (en) 2009-07-15 2014-08-19 Time Warner Cable Enterprises Llc Methods and apparatus for targeted secondary content insertion
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US9237381B2 (en) 2009-08-06 2016-01-12 Time Warner Cable Enterprises Llc Methods and apparatus for local channel insertion in an all-digital content distribution network
US9734037B1 (en) * 2009-09-15 2017-08-15 Symantec Corporation Mobile application sampling for performance and network behavior profiling
US9635421B2 (en) 2009-11-11 2017-04-25 Time Warner Cable Enterprises Llc Methods and apparatus for audience data collection and analysis in a content delivery network
US9317267B2 (en) * 2009-12-15 2016-04-19 International Business Machines Corporation Deployment and deployment planning as a service
US20110154289A1 (en) * 2009-12-18 2011-06-23 Sandya Srivilliputtur Mannarswamy Optimization of an application program
CN101777066B (zh) * 2009-12-31 2013-08-28 优视科技有限公司 一种用于移动通讯设备终端的网页页面渲染浏览系统及其应用方法
WO2011119676A1 (en) * 2010-03-23 2011-09-29 Securityheroes, Inc. Cloud-based web content filtering
US8701138B2 (en) 2010-04-23 2014-04-15 Time Warner Cable Enterprises Llc Zone control methods and apparatus
US8484511B2 (en) 2010-07-01 2013-07-09 Time Warner Cable Enterprises Llc Apparatus and methods for data collection, analysis and validation including error correction in a content delivery network
CN101916276B (zh) * 2010-08-13 2016-12-07 北京新岸线移动多媒体技术有限公司 一种改善富媒体文件在网络中发布的方法、装置及服务器
US8930979B2 (en) 2010-11-11 2015-01-06 Time Warner Cable Enterprises Llc Apparatus and methods for identifying and characterizing latency in a content delivery network
US10148623B2 (en) 2010-11-12 2018-12-04 Time Warner Cable Enterprises Llc Apparatus and methods ensuring data privacy in a content distribution network
US8949726B2 (en) * 2010-12-10 2015-02-03 Wyse Technology L.L.C. Methods and systems for conducting a remote desktop session via HTML that supports a 2D canvas and dynamic drawing
KR101288845B1 (ko) * 2010-12-29 2013-07-23 유경민 멀티 모바일 서비스 시스템 및 그 방법
WO2012148683A2 (en) * 2011-04-29 2012-11-01 Motorola Mobility Llc Method and system for vicarious downloading or uploading of information
US20130055369A1 (en) * 2011-08-24 2013-02-28 Mcafee, Inc. System and method for day-zero authentication of activex controls
CN102594886B (zh) * 2012-02-15 2015-04-29 华为技术有限公司 浏览器与浏览器直通的方法、装置和通信系统
US9078040B2 (en) 2012-04-12 2015-07-07 Time Warner Cable Enterprises Llc Apparatus and methods for enabling media options in a content delivery network
KR101418414B1 (ko) * 2012-06-08 2014-07-14 삼성중공업 주식회사 윈도우폼 기반 응용프로그램 제공 시스템 및 그 방법
CN103488646B (zh) * 2012-06-13 2017-11-14 腾讯科技(深圳)有限公司 一种移动终端浏览器弱光源下浏览网页的方法及装置
US8862155B2 (en) 2012-08-30 2014-10-14 Time Warner Cable Enterprises Llc Apparatus and methods for enabling location-based services within a premises
CN103795848B (zh) * 2012-11-02 2016-03-30 中兴通讯股份有限公司 一种通过移动终端浏览网页的方法和装置
US9131283B2 (en) 2012-12-14 2015-09-08 Time Warner Cable Enterprises Llc Apparatus and methods for multimedia coordination
US11347498B2 (en) * 2013-02-26 2022-05-31 Red Hat, Inc. Bytecode modification
US9954860B2 (en) * 2013-03-15 2018-04-24 Entrust, Inc. Online secure transaction verification system proxy server and method
US9342386B1 (en) 2013-09-05 2016-05-17 Google Inc. Messaging channel for web pages, extensions, and applications to communicate
CN104580097A (zh) * 2013-10-22 2015-04-29 腾讯科技(深圳)有限公司 一种数据处理方法、装置及系统
KR101598820B1 (ko) * 2013-12-02 2016-03-02 한국과학기술연구원 자바 스크립트가 포함된 html 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체
CN104796929B (zh) * 2014-01-22 2019-12-06 腾讯科技(深圳)有限公司 网络调试方法及装置
US9544329B2 (en) 2014-03-18 2017-01-10 Shape Security, Inc. Client/server security by an intermediary executing instructions received from a server and rendering client application instructions
CN104978175B (zh) * 2014-04-09 2019-04-30 阿里巴巴集团控股有限公司 基于Sikuli的操作信息封装方法及装置
US10097565B1 (en) * 2014-06-24 2018-10-09 Amazon Technologies, Inc. Managing browser security in a testing context
US9336126B1 (en) 2014-06-24 2016-05-10 Amazon Technologies, Inc. Client-side event logging for heterogeneous client environments
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10028025B2 (en) 2014-09-29 2018-07-17 Time Warner Cable Enterprises Llc Apparatus and methods for enabling presence-based and use-based services
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) * 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US9760398B1 (en) * 2015-06-29 2017-09-12 Amazon Technologies, Inc. Automatic placement of virtual machine instances
WO2017156158A1 (en) * 2016-03-09 2017-09-14 Shape Security, Inc. Applying bytecode obfuscation techniques to programs written in an interpreted language
US10586023B2 (en) 2016-04-21 2020-03-10 Time Warner Cable Enterprises Llc Methods and apparatus for secondary content management and fraud prevention
US11212593B2 (en) 2016-09-27 2021-12-28 Time Warner Cable Enterprises Llc Apparatus and methods for automated secondary content management in a digital network
US11349816B2 (en) 2016-12-02 2022-05-31 F5, Inc. Obfuscating source code sent, from a server computer, to a browser on a client computer
CN106775900B (zh) * 2017-01-20 2020-10-09 陈刚 应用浏览器的调用方法和系统
WO2018236691A1 (en) * 2017-06-20 2018-12-27 Vfunction, Inc. SYSTEMS AND METHODS FOR PERFORMING SOFTWARE APPLICATIONS ON DISTRIBUTED APPLICATION DEVELOPMENT ENVIRONMENTS
US11741197B1 (en) 2019-10-15 2023-08-29 Shape Security, Inc. Obfuscating programs using different instruction set architectures
US20230267163A1 (en) * 2022-02-22 2023-08-24 Oracle International Corporation Runtime completion of web component metadata
CN115549757B (zh) * 2022-09-13 2024-05-07 中国电子科技集团公司第五十四研究所 一种卫星通信软件在线升级方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6163878A (en) * 1998-03-31 2000-12-19 Jereme Kohl Method and system for designing, generating and storing applications
DE10063249A1 (de) * 1999-12-20 2001-06-21 Delphi Tech Inc Web-basierte Entwicklung von Software für Halteplatinen
US20010034743A1 (en) * 2000-01-14 2001-10-25 Edwin Thomas Method and apparatus for creating relocatable internet web sites
JP2002132646A (ja) * 2000-07-20 2002-05-10 Lucent Technol Inc コンテンツインタポレーティングウェブプロキシサーバ
JP2002215503A (ja) * 2001-01-17 2002-08-02 Sony Corp 変換装置及び方法、課金方法、並びにスクリプト変換システム及び方法
KR20030050085A (ko) * 2001-12-18 2003-06-25 한국전자통신연구원 프락시 서버에서의 악성 자바 애플릿 탐지 방법
WO2003063012A1 (en) * 2002-01-16 2003-07-31 Laszlo Systems, Inc. Presentation server
JP2004533736A (ja) * 2001-02-02 2004-11-04 オープンティブイ・インコーポレーテッド 双方向テレビジョンでの表示のためにコンテンツを再フォーマットする方法及び装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587684B1 (en) * 1998-07-28 2003-07-01 Bell Atlantic Nynex Mobile Digital wireless telephone system for downloading software to a digital telephone using wireless data link protocol
US6970127B2 (en) * 2000-01-14 2005-11-29 Terayon Communication Systems, Inc. Remote control for wireless control of system and displaying of compressed video on a display on the remote
US7111079B2 (en) * 2000-02-23 2006-09-19 Koninklijke Philips Electronics, N.V. Architecture of a bridge between a non-IP network and the web
KR100903528B1 (ko) * 2000-09-27 2009-06-19 노키아 인크 성능이 제한된 장치를 위한 전자문서의 세그먼트화
IL156146A0 (en) * 2000-11-28 2003-12-23 Seachange International Inc Content/service handling and delivery
EP1451981A1 (en) * 2001-10-29 2004-09-01 MPNET International, Inc. Method, system, and data structure for multimedia communications
US7333457B2 (en) * 2002-11-06 2008-02-19 Lucent Technologies Inc. High speed dedicated physical control channel for use in wireless data transmissions from mobile devices
US20050195221A1 (en) * 2004-03-04 2005-09-08 Adam Berger System and method for facilitating the presentation of content via device displays

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6163878A (en) * 1998-03-31 2000-12-19 Jereme Kohl Method and system for designing, generating and storing applications
DE10063249A1 (de) * 1999-12-20 2001-06-21 Delphi Tech Inc Web-basierte Entwicklung von Software für Halteplatinen
US20010034743A1 (en) * 2000-01-14 2001-10-25 Edwin Thomas Method and apparatus for creating relocatable internet web sites
JP2002132646A (ja) * 2000-07-20 2002-05-10 Lucent Technol Inc コンテンツインタポレーティングウェブプロキシサーバ
JP2002215503A (ja) * 2001-01-17 2002-08-02 Sony Corp 変換装置及び方法、課金方法、並びにスクリプト変換システム及び方法
JP2004533736A (ja) * 2001-02-02 2004-11-04 オープンティブイ・インコーポレーテッド 双方向テレビジョンでの表示のためにコンテンツを再フォーマットする方法及び装置
KR20030050085A (ko) * 2001-12-18 2003-06-25 한국전자통신연구원 프락시 서버에서의 악성 자바 애플릿 탐지 방법
WO2003063012A1 (en) * 2002-01-16 2003-07-31 Laszlo Systems, Inc. Presentation server

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8561039B2 (en) 2007-05-04 2013-10-15 Thomson Licensing Method for generating a set of machine-interpretable instructions for presenting media content to a user
JP2017142552A (ja) * 2016-02-08 2017-08-17 株式会社日立アドバンストシステムズ マルウェア注意喚起装置および方法

Also Published As

Publication number Publication date
CN101103352A (zh) 2008-01-09
CN100543724C (zh) 2009-09-23
EP1839189A4 (en) 2010-08-25
WO2006075872A1 (en) 2006-07-20
KR20060082353A (ko) 2006-07-18
EP1839189A1 (en) 2007-10-03
US20100005527A1 (en) 2010-01-07

Similar Documents

Publication Publication Date Title
JP2008527564A (ja) 実行可能なウェブコンテンツの提供及び処理システム及び方法
US11409949B2 (en) Mobile device resource provisioning system and method
FI118311B (fi) Menetelmä, tietojenkäsittelylaite, tietokoneohjelmatuote ja järjestely elektronisen datan prosessointiin
US9009739B2 (en) Safe browser plugins using native code modules
US7117504B2 (en) Application program interface that enables communication for a network software platform
US9063765B2 (en) System and methods for distributed execution of computer executable programs utilizing asymmetric translation
US9244702B1 (en) Installer-free applications using native code modules and persistent local storage
US20080147671A1 (en) System for Running Web Applications Offline and Providing Access to Native Services
US20070067418A1 (en) Object oriented web application framework
KR20140018414A (ko) 브라우저 기반 애플리케이션 프로그램 확장 방법 및 디바이스
Thakkar et al. Next. js
CN111723314B (zh) 网页展示方法、装置、电子设备及计算机可读存储介质
JP4638505B2 (ja) 電子デバイス内の安全なプログラム解釈方法
JP2008521111A5 (ja)

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110215