JP2010518521A - クライアントデバイスに表示する情報コンテンツを提供する方法及び装置 - Google Patents

クライアントデバイスに表示する情報コンテンツを提供する方法及び装置 Download PDF

Info

Publication number
JP2010518521A
JP2010518521A JP2009549257A JP2009549257A JP2010518521A JP 2010518521 A JP2010518521 A JP 2010518521A JP 2009549257 A JP2009549257 A JP 2009549257A JP 2009549257 A JP2009549257 A JP 2009549257A JP 2010518521 A JP2010518521 A JP 2010518521A
Authority
JP
Japan
Prior art keywords
browser
command
script
nscript
information content
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
JP2009549257A
Other languages
English (en)
Other versions
JP5551938B2 (ja
Inventor
グレゴリー・ジェイ・エイサス
デイビッド・ウィスティ
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.)
Novarra Inc
Original Assignee
Novarra Inc
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 Novarra Inc filed Critical Novarra Inc
Publication of JP2010518521A publication Critical patent/JP2010518521A/ja
Application granted granted Critical
Publication of JP5551938B2 publication Critical patent/JP5551938B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

クライアントデバイス上に表示する情報コンテンツを処理する方法及び装置を提供する。情報コンテンツは、クライアントデバイス上で実行できないスクリプトコマンドを含む。上記スクリプトコマンドの機能が決定される。スクリプトコマンドは情報コンテンツにおいてクライアントデバイス上で実行可能なブラウザコマンドに置換されて、スクリプトコマンドの機能を実行する。ブラウザコマンドは、nScriptアプリケーションプログラミングインタフェース(API)を用いて記述されてもよい。nScriptAPIはハイパーテキストマークアップ言語(HTML)を拡張し、縮小機能スクリプトエンジン(RFSE)へのインタフェースを提供する。情報コンテンツはその後、クライアントデバイスに送信される。クライアントデバイス上のクライアントブラウザはRFSEの1つ又は複数のスクリプトエンジン関数を用いてブラウザコマンドを実行してもよい。

Description

(関連出願の相互参照)
本特許出願は、2007年2月9日に提出された米国仮特許出願第60/889,137号に対し特許法第119条(e)に基づく優先権を主張するものであり、本参照によりその内容はすべて、本明細書にそのまま記載されたものとして開示に含まれる。
(発明の分野)
本件出願は、一般に、ウェブブラウジング及びネットワーク通信の分野に関する。より具体的には、本件出願は、大型コンピュータ用に設計されたコンテンツを含むウェブページからの情報を変換してセルラ電話又はパーソナルデジタルアシスタント(PDA)などの小型デバイスへ提示するための方法及び装置に関する。
昨今は、様々なテキスト及び非テキストのコンテンツタイプを提供する多くのワールドワイドウェブページ(HTML文書)が入手可能である。大型画面を備えて標準的なウェブブラウザを実行する従来的なデスクトップ又はラップトップコンピュータ上では、これらのコンテンツタイプは容易に配置され、かつ表示されて視聴される。例えば、写真画像を表示するウェブサイトは、ビューワが一度にそれを調べるように複数の画像を配信することがある。これらの複数の画像のうちの各画像は、決まった時間内にスライドショーとして表示される場合もあれば、「次の画像」ボタンをクリックすることなどによるビューワからの入力に応答して表示される場合もある。
これと同時に、通信、及びより具体的には無線電気通信の分野は現在、急速に拡大しつつある。この技術的な拡張は、パーソナルデジタルアシスタント(PDA)、セルラ電話、ページャ及び他の電子デバイスなどの小型でハンドヘルド型の電子デバイスが、パーソナルコンピュータ(PC)及びPCベースのブラウザを使用して接続可能であるものと同じウェブサーバ又はデータベースなどの情報ソースへ接続することを可能にする。ウェブからのコンテンツをハンドヘルドデバイスへ表示するいくつかの小型デバイスクライアントブラウザが利用可能である。
米国特許第7072984号明細書。 米国特許出願公開第10/280263号明細書。 米国特許出願公開第09/843036号明細書。
ECMA International, ECMA Script Language Specification, Edition 3 Final, March 24, 2000.
しかしながら、これらの小型デバイスは、典型的には、デスクトップコンピュータ又はラップトップコンピュータへの表示を意図したウェブコンテンツを表示する画面スペース、処理能力、又はナビゲーション機能に欠けている。したがって、小型画面上でウェブページをナビゲートするユーザを支援するためにクライアントブラウザが利用する技術がいくつか存在する。例えば、クライアントブラウザはウェブコンテンツのレイアウトを変更し、画像の位置合わせを変え、又は単にいくつかのウェブコンテンツを表示しない場合がある。
JavaScript又は類似のスクリプト言語で記述されたHTML文書などのウェブコンテンツ内のスクリプトコマンドもまた、小型デバイス上へのコンテンツ表示に課題を抱えている。PCベースのブラウザ上で実行されるスクリプトコマンドは、PCベースのブラウザのユーザが利用できる情報コンテンツのいくつか、又はすべてを生成する場合がある。しかしながら、小型デバイス上で利用可能なメモリ及び処理能力が少量であることに起因して、スクリプトコマンドをサポートするための小型デバイスは最良でも限定的である。
第1の主要態様において、一例示的な実施形態は、クライアントデバイスに表示するために情報コンテンツを処理する方法を提供する。本方法によれば、情報コンテンツが受信される。この情報コンテンツは1つ又は複数のスクリプトコマンドを含む。この1つ又は複数のスクリプトコマンドは、クライアントデバイス上では実行できない。この1つ又は複数のスクリプトコマンドの機能が決定される。情報コンテンツにおいて、この1つ又は複数のスクリプトコマンドは、クライアントデバイス上で実行可能な1つ又は複数のブラウザコマンドに置換される。情報コンテンツは、クライアントデバイスへ送信される。
第2の主要態様では、サーバが提供される。サーバは、メモリに格納されたソフトウェアアプリケーションを実行するプロセッサ、及びクライアントデバイスインタフェースを含む。ソフトウェアアプリケーションは、サーバブラウザを含む。サーバブラウザは、情報ソースから情報コンテンツを受信する。この情報コンテンツは、クライアントデバイス上で実行できない1つ又は複数のスクリプトコマンドを含む。サーバブラウザは、スクリプトコマンドの機能を決定し、かつ1つ又は複数のブラウザコマンドを決定してスクリプトコマンドを置換する。ブラウザコマンドは、決定されたスクリプトコマンドの機能を実行する。ブラウザコマンドは、クライアントデバイス上で実行可能な1つ又は複数のnScriptブラウザコマンドを含む。
サーバブラウザは、(a)情報コンテンツからスクリプトコマンドを除去し、(b)情報コンテンツ内にブラウザコマンド用の1つ又は複数の挿入位置を決定し、かつ(c)その挿入位置においてブラウザコマンドを情報コンテンツに挿入することによって、変換された情報コンテンツを組み立てる。クライアントデバイスインタフェースは、この変換された情報コンテンツを送信する。
添付の図面を適宜参照して、以下の詳細な説明を読めば、当業者には、これらの態様、並びに他の態様及び優位点が明らかとなるであろう。さらに、本明細書におけるこの概要及び他の部分に記述された実施形態は単なる例であり、必ずしも発明の範囲を限定するものではない点は理解されるべきである。
以下、図面を参照して本発明の例示的な実施形態について説明する。
情報コンテンツにアクセスし、これを適合させて、電子デバイスへ提示するシステムの例を示すブロック図である。 ハイパーテキストマークアップ言語(HTML)のアンカーエレメントの例のコンテンツを表示するクライアントブラウザのブラウザウィンドウの例を示す。 上記HTMLのアンカーエレメントの例のコンテンツをクリックした結果として表示されるウェブページの例を示す。 表4に示すnScriptブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウの例を示す。 表4に示すnScriptブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウの例を示す。 表4に示すnScriptブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウの例を示す。 表5に示すnScriptブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウを示す。 表5に示すnScriptブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウを示す。 サーバのブロック図の例である。 クライアントデバイス上へ表示するために情報コンテンツを処理する方法の機能ブロックの例を示したフローチャートである。
諸図に示す参照数字は、図中の様々な構成要素を識別するためのものである。同じ参照数字で示される構成要素は、実質的に同一の構成要素、又は同一の構成要素である。
クライアントブラウザがスクリプトコマンドの実行をサポートしていなければ、スクリプトコマンドの使用に依存する情報コンテンツは、クライアントブラウザによって小型デバイス上へ容易に表示できない場合がある。スクリプトコマンドを含む情報コンテンツを小型デバイスへ提供するためには、典型的には、スクリプトコマンドがサーバ上で実行されて情報コンテンツが生成される。次に、サーバが、生成された情報コンテンツを小型デバイスへ送信する。生成された情報コンテンツをサーバから小型デバイスへ送信することは、ネットワークのオーバーヘッド及び遅延を招く追加の通信を必要とする。
スクリプトコマンドを含む情報コンテンツを、より少ない通信オーバーヘッドで元々意図されたデバイス以外のデバイス上へ表示するように適合させることが望ましい。情報コンテンツは、スクリプトコマンドを小型デバイス上のクライアントブラウザで実行可能なブラウザコマンドで置換することなどにより、情報コンテンツを変換して適合させられてもよい。ブラウザコマンドは、情報コンテンツ上の一般的なオペレーションを実行するスクリプトコマンドを置換してもよい。情報コンテンツ上の一般的なオペレーションの例には、情報コンテンツ内に生成されるアイテムのグループ内をナビゲートすること、及びそのアイテムのグループ内の各アイテムの可視性(visibility)を制御することが含まれる。
一実施形態は、スクリプトコマンドをブラウザコマンドに置換することによって情報コンテンツを変換するサーバを備える。スクリプトコマンドは、JavaScript又はこれに類似するスクリプト言語で記述されてもよい。ブラウザコマンドは、クライアントブラウザ上で実行可能であり、nScriptアプリケーションプログラミングインタフェース(API)を使用して記述されてもよい。本明細書で記述しているように、nScriptAPIは、関連したアイテムのグループ上のオペレーションをサポートし、かつクライアントブラウザ内のイベントを処理することによってハイパーテキストマークアップ言語(HTML)を拡張する。nScriptAPIブラウザコマンドを実行するためには、クライアントブラウザの縮小機能スクリプトエンジン(RFSE:reduced functionality scripting engine)のサポートが必要とされる場合がある。
1.情報コンテンツを提示する一例示的なシステム
次に、図1を参照すると、情報コンテンツにアクセスし、これを適合させて、電子デバイスへ提示するシステム100のブロック図が示されている。システム100は、情報ソース102と、サーバ104と、クライアントデバイス106とを含む。
情報ソース102には、ウェブサーバ、アプリケーションサーバ、データベース又は他のバックエンドシステム、もしくは情報プロバイダへの任意のインタフェースなどの任意のタイプのデバイスが含まれる。情報ソース102は、HTML、拡張可能なスタイルシート(XSL)を備える又は備えない拡張可能なマークアップ言語(XML)、ボイスXML(VoiceXML)、拡張可能なハイパーテキストマークアップ言語(XHTML)又は無線マークアップ言語(WML)を含む技術上周知のマークアップ言語などのマークアップ言語で表現される情報コンテンツを提供する。さらに、情報コンテンツは、情報ソース102により提供されるべき画像情報、ビデオ情報又はオーディオ情報を参照することができる。
情報ソース102は、サーバ104により、サーバブラウザ108を介して任意タイプのネットワークを経由してアクセスされることが可能である。サーバブラウザ108は、任意タイプのネットワーク上でクライアントブラウザ110を介してクライアントデバイス106と通信してもよい。サーバブラウザ108は、クライアントブラウザ110と閲覧のためのウェブページコンテンツの情報ソース102との間でプロキシとして作用する。サーバブラウザ108は、情報ソース102のクライアントとして動作して、情報コンテンツを検索してもよい。例えば、サーバブラウザ108は、通信制御プロトコル/インターネットプロトコル(TCP/IP)などの通信プロトコルの既知の組を使用して、ハイパーテキスト転送プロトコル(HTTP)リクエストを情報ソース102へ発行することができる。
技術上周知であるものなどのHTTPリクエストを使用することにより、サーバブラウザ108は、情報ソース102におけるアプリケーション、及び静的な並びに動的なコンテンツを含む情報コンテンツにアクセスすることができる。動的なウェブページなどの動的なコンテンツは、ネットスケープ(Netscape)(www.netscape.com)によって開発されたJavaScript、マイクロソフト(Microsoft)(www.microsoft.com)により開発されたJscript、VBScript、Visual Basic及びC#、及び/又はTclなどのスクリプト言語で記述されてもよい。JavaScriptはまた、対話型アニメコンテンツを有するリッチなインターネットアプリケーションを配信する代替技術であるダイナミックHTML(DHTML)のコンポーネントでもある。
サーバブラウザ108及びクライアントブラウザ110は、同じプラットフォーム上に存在していても、互いから分離されていてもよい。例えば、図1に示すように、サーバブラウザ108はバックエンドサーバ上で提供されてもよく、かつクライアントブラウザ110はハンドヘルド電子デバイス上で提供されてもよい。しかしながら、プラットフォーム又は電子デバイスが適切なハードウェア及びネットワーク機能を有していれば、サーバブラウザ108及びクライアントブラウザ110が電子デバイス上などの同じプラットフォーム上で提供され得ることは理解されるべきである。したがって、本明細書に記載している多くの実施形態において、機能性は、クライアントブラウザ110の一部として、又はサーバブラウザ108の一部として記述されてもよい。
クライアントデバイス106及びサーバ104は同じデバイス上に共存してもよく、よって、どちらの機能も互いによって置換され得ることは理解されるべきである。したがって、クライアントブラウザ110は、サーバブラウザ108によって実行されるものとして説明される機能を実行してもよく、サーバブラウザ108は、クライアントブラウザ110によって実行されるものとして説明される機能を実行してもよい。サーバブラウザ及びクライアントブラウザを利用することにより、限定的なハードウェア機能を有するより小型の電子デバイスは、機能豊富な情報又はデータにアクセスすることができる。
一般に、サーバ104及びクライアントデバイス106は、中央処理装置と、メモリ(一次及び/又は二次メモリユニット)と、データを受信するための入力インタフェースと、1つ又は複数の入力デバイス(例えば、キーボード、マウス、他)から入力信号を受信するための入力インタフェースと、出力デバイス(例えば、モニタ)と通信するための出力インタフェースとを含む。一般に、サーバ104及びクライアントデバイス106は、集積回路開発技術を使用して開発されるハードウェアオブジェクト、又はソフトウェア環境で順序づけられ、パラメータ化され、接続されるハードウェアオブジェクト及びソフトウェアオブジェクトの組合せを包含して、本明細書に記述しているさまざまな機能を実装することは理解されるべきである。また、ハードウェアオブジェクトは、異なるデータを表す信号の状態を有する電気信号を使用して通信することも可能である。
また、サーバ104及びクライアントデバイス106は、一般に、サーバ104及びクライアントデバイス106に存在するアプリケーションプログラムをオペレーティングシステムの制御下で実行することも留意されるべきである。サーバブラウザ108及びクライアントブラウザ110などのアプリケーションプログラムは、サーバ104及びクライアントデバイス106内のメモリに格納されてもよく、マシン語命令又はJava(登録商標)プログラミング言語などのオブジェクト指向命令を有するソフトウェアを使用して提供されてもよい。しかしながら、他のプログラミング言語(C++プログラミング言語など)が使用される可能性もある。
一例として、クライアントブラウザ110はクライアントデバイス106上に存在してもよく、クライアントデバイス106は、パーソナルコンピュータ(PC)、無線電話、パーソナルデジタルアシスタント(PDA)、ハンドヘルドコンピュータ、ネットワークアプライアンス、及びナビゲーション機能(例えば、キーボード、タッチスクリーン、マウス、他)並びにダウンロードされた情報コンテンツを見るためのオプションのディスプレイを有する場合もある様々な他のタイプの電子デバイスのうちの任意のものを含む電子デバイスであってもよい。さらに、クライアントデバイス106は、W3C(www.w3.org)ボイス拡張可能なマークアップ言語(VoiceXML)などの音声合成マークアップを利用する機能を有する任意のタイプのデバイスを含むことができる。コンピュータシステムの当業者は、これらの実施形態の例がクライアントデバイス106用に使用されるコンピュータの任意の特定のクラス又はモデルに限定されないことを理解して、適切なシステムを選択することができるであろう。
1つの例示的な説明を提供するために、PDAがクライアントブラウザ110を提供し、PCがサーバブラウザ108を提供し、かつPDA及びPCが共にイーサネット(登録商標)ネットワークへ接続されると仮定する。その後、クライアントブラウザ110及びサーバブラウザ108は、イーサネット(登録商標)ネットワーク上で情報トランザクションを実行する可能性もある。このようなトランザクションは、イーサネット(登録商標)又はこれに類似するIEEE802.3プロトコルを利用する。この例では、クライアントブラウザ及びサーバブラウザは有線ネットワーク上で通信する。これらの通信はまた、ローカルエリア無線ネットワーク(LAWN)又は無線ローカルエリアネットワーク(WLAN)などの無線ネットワークを含む場合もある。さらに、これらの通信は、ブルートゥース(Bluetooth)(登録商標)、無線アプリケーションプロトコル(WAP)、時分割多元接続(TDMA)又は符号分割多元接続(CDMA)などの他の既知のプロトコル及び技術を利用する無線ネットワークを含む場合もある。
図1を再度参照すると、クライアントブラウザ110は情報のためのリクエストをサーバブラウザ108へ送信することができる。クライアントブラウザ110は、イベントトランスレータ114を含み、クライアントブラウザ110からのHTTPリクエストなどのリクエスト/レスポンスプロトコル(例えば、WML、XHTML、cHTML、他)をサーバブラウザ108が認識するイベントへ変換してもよい。変換プロセスは、クライアントブラウザ110と情報ソース102との間のトランザクション(例えば、HTML形式の提出)が持続されるようにイベント情報、コンテンツ情報及びイベントのコンテキストを含む可能性がある。
情報ソース102からの情報コンテンツは検索され、かつサーバブラウザ108によりクライアントブラウザ110上で使用するために調整されることが可能である。代替として、サーバブラウザ108が情報コンテンツを検索し、かつこの情報コンテンツをクライアントブラウザ110へ送信してもよく、クライアントブラウザ110はこの情報を見るために自らが適切に情報を調整する。要求される情報コンテンツ(例えば、ウェブページ)は当初、ハンドヘルドデバイスの限定的な画面サイズ上ではなくPCの大型画面上で見るように設計されている可能性があることから、コンテンツの変換が必要とされる場合がある。その結果、サーバブラウザ108又はクライアントブラウザ110のいずれかが情報コンテンツの変換を実行し、又はデバイスごとのスタイルシートを適用して、提示(例えば、表示又はボイス)及びナビゲーション(例えば、キーボード、タッチスクリーン又はスクロール)を援助し、かつ限定された量のデータを受け入れる電子デバイスのためにコンテンツのグループ化を実行することができる。
これらの機能を配信するために、サーバブラウザ108又はクライアントブラウザ110は、例えばユーザエージェント、クッキーハンドラ、QDOM、スクリプトエグゼキュータ、ノーマライザ及びシリアライザを含むモジュール(図示せず。)を含んでもよい。情報コンテンツの変換又はカスタマイズに関する追加の情報は、特許文献1、特許文献2、及び特許文献3に含まれており、これらの特許文献の各々の内容は、本参照により本明細書にそのまま記載されたものとして開示に含まれる。
本明細書の文脈において、「変換する」及び「変換」という用語は、コンピュータハードウェア又はソフトウェアを使用して実装されて、情報コンテンツをトランスコードし、修正し、更新し、置換し、適合化し、変更し、変換し、変じ、改変し、再生し、再配置し、再成形し、補正し、及び/又は他の方法で変えるプロセスを説明するために使用されている。
2.HTML及び組み込みスクリプト言語のコマンド
クライアントブラウザ110によって受信される情報コンテンツは、ウェブページを備えてもよい。ウェブページは、HTMLなどのマークアップ言語で記述された1つ又は複数のブラウザコマンドを備える。具体的には、HTMLブラウザコマンドは、1つ又は複数のHTMLエレメントを備える。HTMLエレメントは少なくとも1つのタグを備え、かつ開始タグ、コンテンツ、及び終了タグを備えてもよい。開始タグは、<tag[attrib1=“value”,[attrib2=“value2”...]>の形式であり、ここで、tagは実行されるべきHTMLコマンドであり、attrib1及びattrib2はHTMLコマンドに関する情報を修正し及び/又は提供するオプションの属性である。コンテンツは開始タグの後に開始する。終了タグはコンテンツの終わりを区切り、かつ典型的には</tag>と表示される。
HTMLエレメントの一例は、ハイパーテキストリンクを情報コンテンツとして提供するアンカーエレメントである。例えば、ノバラ(Novarra)ホームページへのリンクを提供してワード「Novarra」を表示するために、アンカーエレメントが使用される。リンク及び表示を提供するHTMLエレメントの例は、下記のアンカー(又は「a」)エレメントである。
<a href=“http://www.novarra.com”>Novarra</a>
開始アンカータグは、使用されるべき参照の値を有するハイパーテキスト参照(HREF)属性を必要とする。この例では、参照は、ユニフォームリソースロケータ(URL)であるhttp://www.novarra.comによって参照されるノバラウェブページである。終了アンカータグは、“</a>”である。他の多くのHTMLエレメント及びタグが存在し、当業者には周知である。
図2A及び図2Bは、クライアントデバイスのブラウザウィンドウのウェブページ及びウェブページエレメントの概念的なディスプレイを示す例である。図2Aは、ノバラホームページへのリンクを提供する“Novarra”のコンテンツを有するHTMLアンカーエレメントの例であるコンテンツ130を表示するブラウザウィンドウ120の例を示す。1つ又は複数のHTMLブラウザコマンドを受信すると、クライアントブラウザ110は、この1つ又は複数のHTMLブラウザコマンドを実行し、この1つ又は複数のHTMLブラウザコマンドにおける1つ又は複数のHTMLエレメントをレンダリングし、かつレンダリングされたHTMLエレメントをブラウザウィンドウ120内でクライアントブラウザ110のユーザへ表示するように動作可能である。レンダリングされたHTMLエレメントは、HTMLエレメントのコンテンツを含んでもよい。図2Aは、ブラウザウィンドウ120内のレンダリングされたHTMLエレメントを、HTMLエレメントの例のコンテンツ130として示す。
図2Bは、HTMLアンカーエレメントの例のコンテンツをクリックした結果として表示されるウェブページを示す。具体的には、図2Bは、ウェブページ140を表示するクライアントブラウザ100のブラウザウィンドウ120を示す。クライアントブラウザ110がHTMLエレメントをレンダリングすると、クライアントブラウザ110のユーザはHTMLエレメントのコンテンツ130をクリックしてもよい。HTMLエレメントが参照属性を含んでいれば、ユーザがコンテンツ130をクリックすると、クライアントブラウザ110はこれに応答して、必要であれば参照属性において指定される参照の送信を要求する。その後、クライアントブラウザ110はこの参照を受信し、レンダリングし、かつ表示してもよい。
一例として、クライアントブラウザ110のユーザが図2Aに表示されたHTMLエレメントの例のコンテンツ130をクリックしていれば、クライアントブラウザ110は、その参照がhttp://www.novarra.comのURLであると決定し、これに応答してこの参照の送信を要求してもよい。クライアントブラウザ110が送信された参照を受信すると、クライアントブラウザ110はこの参照のブラウザコマンドを実行し、参照のHTMLエレメントをレンダリングする。その後、クライアントブラウザ110は、参照のレンダリングされたHTMLエレメントをブラウザウィンドウ120に表示する。図2Bに示すように、ウェブページ140は、参照http://www.novarra.comのHTMLエレメントの表示である。
クライアントブラウザ110により受信される情報コンテンツは、1つ又は複数のスクリプトコマンドを含んでもよい。スクリプトコマンドは、ウェブブラウザなどのソフトウェアアプリケーションに対する指示である。ウェブブラウザに指示するスクリプトコマンドは、カスタムの機能又は追加の機能を提供するためにウェブページ内に組み込まれてもよい。表1は、HTMLブラウザコマンド及びウェブページ内に組み込まれたJavaScriptスクリプトコマンドを有するウェブページを示す。
Figure 2010518521
このウェブページは、htmlエレメントの「html」開始タグで始まり、このウェブページはHTMLで記述されることをウェブブラウザに示す。本体エレメントの「body」開始タグは、ウェブブラウザにウェブページの主要部分又は本体が始まる場所を知らせる。スクリプトエレメントの「script」開始タグは、ウェブブラウザに、ウェブページ内に組み込まれたスクリプトコマンドが存在することを知らせる。script開始タグのlanguage属性は、スクリプトコマンドがJavaScriptスクリプト言語で記述されることを明記する。「//」で始まる行は、JavaScriptスクリプト言語におけるコメントである。JavaScriptスクリプト言語の「document.write」コマンドは、ウェブブラウザにテキストを表示するように指示する。表1に示す例では、テキストは「JavaScript functionality」である。終了タグ「</script>」、「</body>」、及び「</html>」は各々、このウェブページのスクリプト、本体、及びhtmlエレメントを閉じる。
ウェブブラウザが「script」タグに指定されるスクリプト言語をサポートしていなければ、スクリプトコマンドにより提供される機能はウェブブラウザのユーザへ提供されない場合がある。ウェブブラウザが実行されているコンピューティングデバイスがスクリプトエンジンを有していなければ、ウェブブラウザはスクリプト言語をサポートしない場合がある。スクリプトエンジンは、スクリプト言語を解釈して実行するために必要とされるソフトウェアである。さらに、コンピューティングデバイスの処理能力及び/又はメモリが、スクリプトエンジンを実行するには不十分である場合もある。スクリプトコマンドがウェブブラウザによって実行できなければ、ウェブブラウザはすべてのウェブページを表示しない場合がある。表1に示すウェブページ例の場合、ウェブブラウザがJavaScript用のスクリプトエンジンを有していなければ、ウェブブラウザはテキスト「JavaScript functionality」を表示しない場合がある。
3.nScriptアプリケーションプログラミングインタフェース(API)
本発明の一実施形態では、サーバブラウザ108は、情報コンテンツ内の1つ又は複数のスクリプトコマンドをクライアントブラウザ110上で実行可能な1つ又は複数のブラウザコマンドで置換してもよい。スクリプトコマンドは、クライアントブラウザ110上で実行できない場合がある。好適には、ブラウザコマンドは、nScriptアプリケーションプログラミングインタフェース(API)を使用して記述される。nScriptAPIは、少なくとも本明細書に明記されているnScriptAPIの機能を備え、「nScriptブラウザコマンド」は、本明細書に明記されているnScriptの機能の任意の部分を提供するように修正されたHTMLブラウザコマンドである。1つ又は複数のnScriptブラウザコマンドは、クライアントブラウザ110が、そうでなければ少なくとも1つのスクリプトコマンドを実行することによって実行されると思われる共通のオペレーションを実行できるようにしてもよい。
nScriptAPIは、RFSE112に接続してこれを利用するための1つ又は複数のnScriptブラウザコマンドを提供することによってHTMLを拡張してもよい。RFSE112は、1つ又は複数のスクリプトエンジン関数をクライアントブラウザ110へ提供することによって、nScriptブラウザコマンドの実行をサポートする。クライアントブラウザ110は、少なくとも部分的にRFSE112の1つ又は複数のスクリプトエンジン関数を実行することによって、nScriptブラウザコマンドを実行してもよい。しかしながら、RFSE112は、クライアントブラウザ110が、非特許文献1に明記されているようなJavaScript1.5などのスクリプト言語で記述されたすべてのコマンドを実行できるようにする機能を提供することを含む、本明細書に記述しているものより多くの機能を伴ってもよいことは理解されるべきである。
図1に示すように、RFSE112はクライアントブラウザ110の一部である。RFSE112は、搭載するコンピュータ処理能力及びメモリが比較的少量であるクライアントデバイス106を含む広範囲のクライアントデバイス106上で実行可能であってもよい。
nScriptAPIは、関連したアイテムのグループ、並びにこの関連したアイテムのグループにおけるそれぞれのアイテムを決定するために使用されてもよいnScriptマークアップ構造を提供する。nScriptAPIは、関連したアイテムのグループを処理するためのnScript関数の組を提供する。nScriptAPIは、クライアントブラウザにより発生されるイベントの取り扱い(すなわち、サポート)を提供する。クライアントブラウザにより発生されるイベントは、1つ又は複数のnScript関数を使用して取り扱われてもよい。
nScriptAPIはウェブページの外部制御をサポートし、外部制御は、ユーザが選択可能な制御、例えばユーザインタフェースのボタン又はキーからのコマンドである。nScriptAPIはまた、ウェブページの内部制御をサポートし、内部制御は、ウェブブラウザによって講じられ、ユーザが選択可能な制御に直接的に関連しないアクションである。
本発明の一実施形態では、クライアントデバイス110上での使用及び/又は表示を意図した情報コンテンツを生成するための1つ又は複数のnScriptブラウザコマンドを含む情報コンテンツが記述されてもよい。この実施形態では、nScriptブラウザコマンドを使用して記述される情報コンテンツは、具体的にはクライアントデバイス106及び/又はクライアントブラウザ110上で使用し及び/又は表示するために設計される。この実施形態における情報コンテンツの例としては、(a)クライアントデバイス106及び/又はクライアントブラウザ110上に表示するように設計されたポータルページを含むウェブページ、(b)クライアントデバイス106のためのクライアントブラウザベースのソフトウェアアプリケーション、及び(c)クライアントデバイス106及び/又はクライアントブラウザ110上で使用可能な「ウィジェット」と称されるソフトウェアアプリケーション及び/又はウェブページの一部が含まれるが、この限りではない。
nScriptブラウザコマンドで記述された情報コンテンツは、テストウェブブラウザを使用してテストされてもよい。但し、このテストウェブブラウザはクライアントブラウザ110でなくてもよい。テストウェブブラウザは、nScriptブラウザコマンドを使用して記述されたウェブコンテンツの生成及び/又はテストを容易かつ簡便にするために使用されてもよい。また、テストウェブブラウザは、クライアントブラウザ上へ表示されるnScriptブラウザコマンドを使用して記述された情報コンテンツと、テストウェブブラウザを使用して表示される情報コンテンツとの間の互換性及び/又は等価性を保証するために使用されてもよい。
a.nScriptマークアップ構造
1つ又は複数のnScriptブラウザコマンドは、nScriptマークアップ構造として配置されてもよい。nScriptマークアップ構造は、アイテムのグループ、並びにそのアイテムのグループにおけるそれぞれのアイテムを決定する。nScriptマークアップ構造は、1つ又は複数のHTML分割(<div>)エレメントを備える。各HTML分割エレメントは、そのエレメントをnScriptマークアップ構造の一部として識別する属性を含む。
表2は、4つのHTML分割エレメントを備えるnScriptマークアップ構造を示す。4つのHTML分割エレメントは各々、その分割エレメントを「NovarraGroup」又は「NovarraGroupItem」の何れかとして識別する「クラス」属性を有する。「NovarraGroup」のクラスを有する分割エレメントはnScriptマークアップ構造におけるグループを決定し、「NovarraGroupItem」のクラスを有する分割エレメントはnScriptマークアップ構造におけるグループ内のアイテムを決定する。グループアイテムは、以下の表4に示すイメージ(<img>)エレメントなどの他のHTMLエレメントのクラス属性を使用して決定されてもよいことに留意されたい。アイテムのグループ又はアイテムのグループ内のアイテムを決定する分割エレメントは、分割エレメントの「id」属性を使用してグループ又はグループアイテムの名称又は識別子を指定してもよい。
Figure 2010518521
表2におけるnScriptマークアップ構造は、「tab_page_1」、「tab_page_2」及び「tab_page_3」という名称の3つのグループアイテムを有する「myGroup」という名称のアイテムのグループを決定している。表2における第1の分割エレメントは、第1の分割エレメントのクラス属性が「NovarraGroup」であるとしてアイテムのグループを決定し、かつこのアイテムのグループにmyGroupの名称を指定する。表2における第2の分割エレメントは、第2の分割エレメントのクラス属性が「NovarraGroupItem」であるとしてアイテムのグループmyGroupにおけるアイテムを決定し、かつこのグループアイテムに「tab_page_1」の名称を指定する。さらに、表2の第3の及び第4の分割エレメントは各々、アイテムのグループmyGroupにおける「tab_page_2」アイテム及び「tab_page_3」アイテムを決定する。
分割エレメントのスタイル属性は、ディスプレイ情報をクライアントブラウザ110へ指示するために指定されてもよい。スタイルが指定されていなければ、クライアントブラウザ110は、初期状態でそのエレメントを表示してもよい。表2は、アイテムtab_page_1が指定されたスタイル属性を有しておらず、よって初期状態でクライアントブラウザ110によって可視化される(すなわち、表示される)ことを示している。表2はまた、アイテムtab_page_2及びtab_page_3が共に「display=none」というスタイル属性を有することを示している。スタイル属性「display=none」に応答して、クライアントブラウザ110は、初期状態ではグループアイテムtab_page_2及びtab_page_3を表示しない。tab_page_2及びtab_page_3は、隠れオブジェクトの例である(すなわち、これらは初期状態では表示されない)。
nScriptAPIは、共通に表示されたアイテムのグループを処理するための一連の専門化されたグループ、又は「組み込み」グループを提供する。例えば、ピクチャ用の組み込みグループはnScriptの一部として提供される。nScriptAPIは、URLのブラウザグループのユーザにより指定されるお気に入りのリンク用に組み込みグループを提供し、かつブラウザのユーザが最近訪れたリンクとして履歴リンク用の組み込みグループを提供する。これらの組み込みグループに類似する他のグループも可能であることは理解されるべきである。
リストとして表示されるべきピクチャのグループを生成するために、HTML分割エレメント内の下記の組み込みグループが使用されてもよい。
<div class=“NovarraBuiltInGroup” id=“NovarraPictures” type=“List”>
組み込みグループ内のアイテムは、表2に示すような分割エレメントとして指定されてもよい。
b.nScript関数
nScriptAPIは、グループ内のグループアイテムの表示を処理制御するためのnScript関数の組を提供する。nScript関数の組における各関数は、関連したアイテムのグループにおけるアイテム及び/又は関連したアイテムのグループ上で動作してもよい。
好適には、呼び出されるべきnScript関数は、HTMLアンカーエレメントの一部として明記される。すなわち、nScript関数の呼び出しは、文書オブジェクトモデル(DOM)レベル0インラインエレメントとして明記される。
例えば、下記のnScriptブラウザコマンドは、ユーザがコンピュータマウスをクリックすると、「NovarraPictures」と命名されたグループ内の次のアイテムを表示するために「setGroupNext」nScript関数を呼び出す。
<a onclick=“setGroupNext(‘NovarraPictures’)” href=“#”>
nScript関数の呼び出しを含むnScriptブラウザコマンドの構文は、JavaScriptコマンドなどのスクリプト言語コマンドの構文と同じであっても、類似するものであってもよい。nScriptブラウザコマンド及びスクリプト言語コマンドの双方に同じ(又は類似する)構文を使用することは、クライアントブラウザ110上でのウェブページのテスト及び/又は配備より前にテストウェブブラウザ上でのウェブページのテストを手助けする場合がある。
nScript関数の例示的な組を表3に記す。
Figure 2010518521
nScript関数の組はこれらより多い、又は少ない数の関数を含んでもよいこと、及びnScript関数は他の機能を含んでもよいことは理解されるべきである。他の機能には、画像位置を変更する能力、フォーム操作オペレーション、追加のユーザ制御、自動データ更新、及び外部のデータソースとの相互作用が含まれてもよいが、この限りではない。
フォーム操作オペレーションは、フォームデータの検証及び/又はユーザフォームの自動記入(automatically completing)を含んでもよい。追加のユーザ制御は、ユーザ制御及び/又は追加のフォーカスオペレーションを備えてもよい。ユーザ制御は、メニュー、エディタ、ツリー及びカレンダーなどの制御を備えてもよい。追加のフォーカスオペレーションは、ユーザがグループアイテム上にフォーカス(マウス、キーボードナビゲーション制御又は他の指示デバイスによって指示されるユーザにとって関心のある位置)を置くとさらなる情報を提供しかつ/又はアイテムの表示を変更することを備えてもよい。自動データ更新は、ニュース、天気、スポーツのスコア、及び株価などの情報の自動更新を提供してもよい。外部のデータソースとの相互作用は、グーグルマップなどの外部のデータソースと相互に作用する1つ又は複数の機能を提供することを備えてもよい。
c.nScriptAPIによるイベント処理
nScript関数の組内の各nScript関数は、イベント駆動システム内で発生されるイベントによってトリガされると実行されてもよい。イベント駆動システムは、イベント駆動システム内で発生するアクションに応答して1つ又は複数のイベントを発生させる場合のあるソフトウェアシステムである。イベント駆動システムの一例は、クライアントブラウザ110である。2つのイベントの例は、クライアントブラウザ110へのユーザ入力、又はクライアントブラウザ110によるオペレーション(例えば、ウェブページの表示)の完了である。各イベントは、全体として情報コンテンツに関連してもよく、かつ/又は情報コンテンツの特定のエレメントに関連してもよい。イベントの発生は、イベントトランスレータ114内のソフトウェアによって、又はクライアントブラウザ110内の他のソフトウェアによって実行されてもよい。
イベントの発生の一例として、以下のHTMLエレメントの例がレンダリングされたとき、表示されたコンテンツ「Novarra」上をクリックするなどのように、ユーザがウェブブラウザにより表示されたエレメントをクリックする、又は選択すると、デフォルトのイベントが発生される。
<a href=“http://www.novarra.com”>Novarra</a>
デフォルトイベントに応答して、ウェブブラウザは、上述したように、参照として指定されたウェブページを読み込む。
具体的には、1つ又は複数のイベントは、クライアントブラウザ110によって自律的に、又はクライアントブラウザ110のユーザによるアクションに起因して、クライアントブラウザ110によって発生されてもよい。クライアントブラウザ110により自律的に発生されるイベントの2つの例は、「オンロード(onload)」イベント及び「オンショー(onshow)」イベントであり、これらの各イベントは、ウェブページが各々クライアントブラウザ110によって読み込まれ、又は可視化されると発生される。ユーザのアクションによって発生されるイベントの3つの例は、クライアントブラウザ110のユーザがキーボード、マウス、タッチスクリーン又は他の選択デバイスを使用してウェブページのエレメントをフォーカス(すなわち、選択)すると発生される「オンフォーカス(onfocus)」(すなわち、フォーカス)イベント、クライアントブラウザ110によってウェブページのエレメントが表示されている間にユーザがキーを押すと発生される「オンキープレス(onkeypress)」及び/又は「オンキーダウン(onkeydown)」イベント、及び選択デバイスがクライアントブラウザ110により表示されたエレメントをクリックするために利用されると発生される「オンクリック(onclick)」イベントである。nScriptAPIは、少なくともデフォルト(default)、オンロード(onload)、オンショー(onshow)、オンフォーカス(onfocus)、オンキープレス(onkeypress)、及びオンキーダウン(onkeydown)イベントのサポートを提供する。
nScriptAPIは、nScriptイベントハンドラを使用してイベントを処理する能力を提供する。下記のアンカータグは、nScriptイベントハンドラの一例である。
<a onclick=“setGroupNext(‘NovarraPictures’)” href=“#”>
アンカータグは、nScript関数の名称を指定することにより、イベントを処理するnScriptイベントハンドラを指定する。このアンカータグの例では、nScript関数setGroupNextがonclickイベントを処理するように指定されている。その後、このアンカータグの例を備えるエレメントに対してonclickイベントが発生されれば、クライアントブラウザ110はnScript関数setGroupNextを実行する。nScript関数setGroupNextは、そのアイテムのグループ内の次のアイテムを可視化する。これらのアイテムは、ウェブページに明記されるように順序づけられてもよく、及び/又はそのエレメントを指定するnScriptマークアップ構造内のエレメントの「id」属性にしたがって順序づけられてもよい。
アイテムのグループにおける次のアイテムは、現在のアイテムに続く「id」を有するエレメントであってもよい。例えば、3つのアイテムから成るグループが指定されていて、これらのアイテムは各々id属性「item1」、「item2」、及び「item3」で指定され、現在のアイテムがitem2であると仮定する。この例では、アイテムのグループ内において、item2の後に続くアイテムの「id」はitem3である。現在のアイテムがアイテムのグループにおける最終のアイテムであれば、後続のアイテムはアイテムのグループにおける最初のアイテムであってもよく、本例では、現在のアイテムがitem3であれば、後続のアイテムはitem1である。
同様に、アイテムのグループにおける先行のアイテムは、現在のアイテムに先行する「id」を有するアイテムであってもよく、本例では、アイテムのグループの例におけるitem2に先行するアイテムの「id」はitem1である。現在のアイテムがアイテムのグループの最初のアイテムであれば、先行のアイテムはアイテムのグループにおける最終のアイテムであってもよく、本例では、現在のアイテムがitem1であれば、先行のアイテムはitem3である。
イベントハンドラは、イベントの処理に複数のnScript関数が使用されることを指定してもよい。例えば、下記のnScriptイベントハンドラは、オンクリック(onclick)イベントを処理するためにnScript関数setGroupVisible及びupdateGroupの双方をコールする。
<a onclick=“setGroupVisible();updateGroup()” href=“#”>
1つ又は複数のnScriptブラウザコマンドは、動的なウェブページ内に組み込まれてもよい。動的なウェブページは、情報コンテンツ上で共通のオペレーションを実行するための1つ又は複数のnScriptブラウザコマンドを備えるウェブページである。一例として、1つ又は複数のnScriptブラウザコマンドは、動的なウェブページが複数のタブを提供できるようにしてもよい。複数のタブの各々は、ウェブページの一部又は全体に対応してもよく、したがって、ユーザによる複数のタブのうちの1つのタブの選択は、選択されたタブに対応するウェブページの一部又は全体の表示を可能にする。
動的なウェブページの別の例は、複数のフォルダを提供する。複数のフォルダにおける各フォルダは、フォルダアイテムのグループを含んでもよく、各フォルダアイテムはURL、画像ファイル、音声ファイル、テキストファイル又は他のデータソースであってもよい。ユーザは、動的なウェブページ上のフォルダを開けても、閉じてもよい。複数のフォルダのうちの1つのフォルダが開いていれば、そのフォルダアイテムのグループがユーザに表示される。複数のフォルダのうちの1つのフォルダが閉じていれば、そのフォルダアイテムのグループはユーザに表示されない。1つ又は複数のnScriptブラウザコマンドは、開ける及び閉じるを含むフォルダのアクションを可能にする。本明細書に説明されているもの以外の動的なウェブページが、1つ又は複数のnScriptブラウザコマンドを使用して記述されてもよいことは理解されるべきである。
d.外部制御
nScriptAPIは、ウェブページが外部制御及び内部制御をサポートすることを可能にする。nScriptAPIは、ウェブページの外部制御をサポートし、外部制御は、ユーザが選択可能な制御(例えば、ユーザインタフェースのボタン又はキー)からのコマンドである。nScriptAPIはまた、ウェブページの内部制御をサポートし、内部制御は、ウェブブラウザにより講じられ、ユーザが選択可能な制御に直接的に関連しないアクションである。
より具体的には、ウェブページは、(1)ウェブページがユーザインタフェースのボタン、矢印又はこれらに類似する他のエレメントなどの1つ又は複数のユーザが選択可能な制御を指定し、(2)ユーザが選択可能な制御に対するユーザによる選択に応じて、ウェブページがウェブページのディスプレイを変更するときに、外部制御をサポートする。
表4は、ユーザがグループ「cape_images」におけるアイテムを循環させることを可能にする外部制御をサポートするウェブページの部分の例を示す。ユーザは、クライアントブラウザ110上に表示される左ボタン及び右ボタンをクリックすることによってアイテム間を循環することができ、表4の例において明記されている左ボタン及び右ボタンは、ユーザが選択可能な制御として動作する。左ボタン及び右ボタンは、それぞれ「picleft.png」画像及び「picright.png」画像を指定するイメージエレメントをレンダリングすることによって表示される。HTMLイメージエレメントは、終了タグを必要としないことに留意されたい。
Figure 2010518521
図3A、図3B、及び図3Cは各々、表4に示すnScriptブラウザコマンドを実行した後のクライアントブラウザ110のクライアントブラウザウィンドウ150を示す。左ボタン152及び右ボタン154が、クライアントブラウザ110のブラウザウィンドウ150に表示される。図3Aでは、第1の画像156がブラウザウィンドウ150に表示されている。図3Bでは、第2の画像158がブラウザウィンドウ150に表示されている。図3Cでは、第3の画像160がブラウザウィンドウ150に表示されている。
第1の画像156、第2の画像158、及び第3の画像160は各々、グループcape_imagesのグループアイテムに対応する。ここで、対応するグループアイテムは各々、id属性「cape0」、「cape1」、及び「cape2」を有する画像エレメントである。初期状態では、グループアイテムcape1及びcape2は隠れアイテムであることから、グループアイテムcape0のみが表示される。グループアイテムcape1及びcape2は、「display:none」というスタイル属性を有するので、隠れアイテムである。
左ボタン152及び右ボタン154は、クライアントブラウザ110のユーザがグループ内の画像間をナビゲートすること、及びグループ内のアイテムの可視性を制御することを可能にする。表4は、左ボタンのアンカータグが「onClick=setGroupPrev(‘cape_images’)」という参照を備えることを示している。この参照は、nScript関数setGroupPrevを左ボタン152に関するデフォルトイベントを処理するためのイベントハンドラとして確立する。同様に、「onClick=setGroupNext(‘cape_images’)」という参照は、nScript関数setGroupNextを右ボタン154に関するデフォルトイベントを処理するためのイベントハンドラとして確立する。
一例として、図3Aに示すように、第1の画像156がブラウザウィンドウ150においてユーザに提示されていて、その後、ユーザが左ボタン152をクリックし、これによりデフォルトイベントが発生されると仮定する。左ボタン152のデフォルトイベントはnScript関数setGroupPrevによって処理され、この関数はこれに応答して、グループ内の先行のアイテムを可視化する。この例では、グループcape_images内の最初のグループアイテムが現在のアイテムであることから、グループ内の先行のアイテムはグループの最終のアイテムであり、本例において、グループの最終の画像は第3の画像160である。nScript関数setGroupPrevはまた、グループ内の他のアイテムを不可視化することによってグループ内の他のアイテム、例えば第1の画像156及び第2の画像158にも影響し、すなわち、グループ内の他のアイテムを表示しない。図3Cは、ブラウザウィンドウ150内で可視化された第3の画像160の表示を示している。
第2の例として、同じく図3Aに示すように第1の画像156がユーザに提示されていて、その後、ユーザが右ボタン154をクリックし、これによりデフォルトイベントが発生されると仮定する。右ボタン154のデフォルトイベントはnScript関数setGroupNextによって処理され、この関数はこれに応答して、グループ内の次のアイテムが可視化される。この例では、グループcape_images内の最初のグループアイテムが現在のアイテムであることから、グループ内の次のアイテムは第2のグループアイテムであり、本例において、グループの次のアイテムは第2の画像158である。nScript関数setGroupNextはまた、グループ内の他のアイテム(例えば、第1の画像156及び第3の画像160)を不可視化する。図3Bは、ブラウザウィンドウ150内で可視化された第2の画像158の表示を示している。
表4に示した例に類似するキーボードナビゲーションのための機能性は、イベントハンドラとしてnScript関数horizGroupNavを使用してもよい。(上記の表3に記述されている)nScript関数horizGroupNavは、左矢印キーが押されるとnScript関数setGroupPrevを呼び出し、右矢印キーが押されるとnScript関数setGroupNextを呼び出す。上記の表4で決定されたグループcape_imagesのオンキーダウン(onkeydown)イベントを処理するためにnScript関数horizGroupNavを割り当てるnScriptブラウザコマンドの例を、以下に示す。
<a onkeydown=“horizGroupNav(‘cape_images’,‘cape’,event)”></a>
nScript関数cycleGroupは、タイマ切れに少なくとも部分的に基づいて関連した画像のグループの可視性を制御するように呼び出されてもよい。上記の表3において記述されているように、nScript関数cycleGroupは、nScript関数setGroupNextを呼び出して、指定された画像の集合内の1つの画像を表示してもよい。nScript関数cycleGroupは、ある時間期間の後に時間切れになるようにタイマをセットしてもよく、この場合の時間期間は、nScript関数cycleGroupの呼び出しによって指定される。その時間期間の後にタイマが切れると、nScript関数cycleGroupはnScript関数setGroupNextを呼び出して、グループ内の次の画像を表示してもよく、かつその時間期間の後に時間切れになるようにタイマをリセットしてもよい。nScript関数cycleGroupは、nScript関数cycleGroupが0以下のタイマ値で呼び出されるまで、(i)nScript関数setGroupNextを呼び出すステップと、(ii)タイマが時間切れになった時点でタイマを上記時間期間にリセットするステップとを繰り返す。
ウェブページを読み込んだ時点でオンロード(onload)イベントが発生されるとnScript関数cycleGroupを呼び出すnScriptブラウザコマンドの例を、以下に示す。nScript関数cycleGroupは、各画像を5000ミリ秒(5秒)間表示することによって、(表4で決定された)グループcape_imagesを含むウェブページを読み込むイベントを処理する。
<a onload=“cycleGroup(‘cape_images’,5000,‘cape’)”></a>
e.内部制御
内部制御は、ウェブブラウザにより講じられ、ユーザによるアクションに直接的に関連しないアクションである。ユーザインタフェース設計の中には、可視化エレメントと共に可視性を変更するnScriptマークアップエレメントなどのイベントハンドラを提供するマークアップエレメントを必要とするものがある。このようなマークアップエレメントには、タブスタートページ、フォルダ又はフォーム全体の変更においてなど、多くの用途が存在する。例えば、ユーザがウェブページのエレメントを選択するとき、ウェブブラウザは選択されたエレメントを可視化してもよい。しかしながら、ウェブブラウザの1つ又は複数の内部制御は、ウェブページの1つ又は複数の他のエレメントを不可視化してもよい。
表5は、内部制御をサポートするウェブページの一部の例を示す。図4A及び図4Bは各々、表5に示すnScriptブラウザコマンドを実行した後のクライアントブラウザ110のクライアントブラウザウィンドウ170を示している。
Figure 2010518521
このウェブページの部分の例は、グループアイテム「bm_closed」及びグループアイテム「bm_open」を有するグループ「bookmarks」を生成する。初期状態では、グループアイテムbm_openは「display:none」というスタイル属性で指定される通り、隠れアイテムであることから、クライアントブラウザはグループアイテムbm_closedを表示する。グループアイテムbm_closedのコンテンツは、閉じられたコンテンツ画像エレメント及び閉じられたコンテンツアンカータグを備える。閉じられたコンテンツ画像エレメントは、「favorites.png」というソース属性を有するお気に入りの画像を備える。閉じられたコンテンツアンカータグは、デフォルトイベントのためのイベントハンドラを備える。デフォルトイベントのためのイベントハンドラはnScript関数setGroupVisibleであり、このnScript関数setGroupVisibleは、グループアイテムbm_openを可視化することによってデフォルトイベントを処理する。上記の表3に記述されているように、nScript関数setGroupVisibleは内部制御として作用し、かつ他のすべてのグループアイテム(例えば、アイテムbm_closed)を不可視化する。
図4Aは、グループアイテムbm_closedのコンテンツを表示するクライアントブラウザ110のクライアントブラウザウィンドウ170を示す。アイテムbm_closedのコンテンツは、クライアントブラウザウィンドウ170に表示されているように、お気に入りの画像172及びサインクローズド(sign closed)画像174を備える。クライアントブラウザ110のユーザがサインクローズド画像174をクリックすれば、グループアイテムbm_closedに対するデフォルトイベントが発生される。nScript関数setGroupVisibleはこのデフォルトイベントを処理し、かつアイテムbm_openを可視化してアイテムbm_closedを不可視化する。
図4Bは、グループアイテムbm_openのコンテンツを表示するクライアントブラウザ110のクライアントブラウザウィンドウ170を示す。クライアントブラウザウィンドウ170は、図4Aに示すサインクローズド画像174をユーザがクリックすることに応答して、グループアイテムbm_openのコンテンツを表示してもよい。アイテムbm_openのコンテンツは、開かれたコンテンツ画像エレメント、開かれたコンテンツアンカータグ及びブックマークリストを備える。開かれたコンテンツ画像エレメントは、閉じられたコンテンツ画像エレメント内で使用されたお気に入りの画像を備える。図4Bは、このエレメントに関して指示されるお気に入りの画像172を示す。
開かれたコンテンツアンカータグは、「sign_open.png」というソース属性によって画像エレメントにより指定されるコンテンツとしてのサインオープン(sign open)画像、及びデフォルトイベントのためのイベントハンドラを備える。図4Bは、サインオープン画像176を表示するブラウザウィンドウ170を示す。デフォルトイベントのためのイベントハンドラはnScript関数setGroupVisibleであり、このnScript関数setGroupVisibleは、グループアイテムbm_closedを可視化することによってデフォルトイベントを処理する。
グループアイテムbm_openが表示され、ユーザがサインオープン画像176をクリックすれば、グループアイテムbm_openのデフォルトイベントが発生され、nScript関数setGroupVisibleがこのデフォルトイベントを処理する。nScript関数setGroupVisibleはグループアイテムbm_closedを可視化し、かつ他のすべてのグループアイテム(例えば、グループアイテムbm_open)を不可視化する。図4Aは、サインクローズド画像174を表示することによって示されるようにグループアイテムbm_closedが可視であり、かつグループアイテムbm_openが不可視であるブラウザウィンドウ170を示す。
表5のウェブページの例において、ブックマークリストは3つのブックマーク、すなわち、ソリューションブックマーク、会社ブックマーク及び連絡先ブックマークを有する。再度図4Bを参照すると、ブラウザウィンドウ170は、ソリューションブックマーク182と、会社ブックマーク184と、連絡先ブックマーク186とを有するブックマークリスト180を表示している。ユーザによってブックマークが選択されれば、クライアントブラウザ110は、表示されたブックマークへの関連したリンクのコンテンツを表示する。例えば、連絡先ブックマーク186が選択されると、クライアントブラウザは、連絡先ブックマーク186のリンクhttp://www.novarra.com/Company2.htmのコンテンツを検索して表示する。
クライアントデバイス106上で外部制御及び内部制御のサポートを提供することにより、nScriptAPIが必要とするサーバ104とクライアントデバイス106との間の通信は、nScriptAPIをサポートしないクライアントブラウザ108が必要とする通信より少ない。nScriptを介したクライアントブラウザ110における内部制御及び外部制御のサポートは、クライアントブラウザ110が、典型的にはスクリプトエンジンによってレンダリングされるウェブページのエレメントに対する変更をレンダリングすることを可能にする。クライアントブラウザ110がウェブページのエレメントに対する変更をレンダリングすることができなければ、クライアントブラウザ110は、サーバ104がサーバブラウザ108を介してウェブページに対する変更を処理し、かつ変更されたウェブページをクライアントデバイス106へ送信することを要求しなければならなくなるであろう。したがって、クライアントデバイス106上で外部制御及び内部制御に対するサポートを提供することは、サーバ104とクライアントデバイス106との間の通信を減らす。
3.サーバの例
図5は、サーバ200のブロック図である。サーバ200は、メモリ260へ接続される情報ソースインタフェース210及びクライアントデバイスインタフェース250と、プロセッサ270とを含む。情報ソースインタフェース210は、サーバ200と1つ又は複数の情報ソース202との間の通信インタフェースを提供する。クライアントデバイスインタフェース250は、サーバ200と1つ又は複数のクライアントデバイス252との間の通信インタフェースを提供する。図5では分離して示されているが、情報ソースインタフェース210及びクライアントデバイスインタフェース250は1つのインタフェースとして実装されてもよい。
プロセッサ270は、少なくとも図6に描かれた方法を実行するソフトウェアを実行するに足る処理能力を有する1つ又は複数のコンピュータプロセッサを備える。メモリ260は1つ又は複数の記憶デバイスを備え、これらは、少なくとも上記ソフトウェアを記憶するに足る記憶容量を有する揮発性及び/又は不揮発性メモリを備えてもよく、かつ上記ソフトウェアが図6のフローチャートに描かれた方法を実行するために必要とする任意の追加のメモリを備えてもよい。
プロセッサ270は、メモリ260にアクセスして、コンテンツ修正モジュール220、スクリプト言語実行モジュール230、及び情報ソースアセンブラモジュール240の動作を可能にするソフトウェア又はプログラム命令を実行する。コンテンツ修正モジュール220は、情報コンテンツをクライアントデバイス252上に表示され得る等価な変換された情報コンテンツへ変換するためにプロセッサ270により実行可能なソフトウェアアプリケーションである。特に、コンテンツ修正モジュール220は、少なくとも1つのスクリプトコマンドを含む情報コンテンツを、クライアントデバイス252上に存在するクライアントブラウザによって実行可能な少なくとも1つのブラウザコマンドを含む等価な変換された情報コンテンツへ変換するように動作可能である。スクリプト言語実行モジュール230は、1つ又は複数のスクリプト言語コマンドを実行してウェブページをレンダリングするためにプロセッサ270により実行可能なソフトウェアアプリケーションである。情報ソースアセンブラモジュール240は、情報ソース変換器220及びスクリプト言語実行モジュール230からの入力からクライアントデバイス252上に表示され得る情報ソースを組み立てるためにプロセッサ270により実行可能なソフトウェアアプリケーションである。
4.クライアントデバイス上へ表示する情報コンテンツの処理方法
図6は、クライアントデバイス上へ表示する情報コンテンツを処理する方法300の機能ブロックの例を示したフローチャートである。このフローチャートにおける各ブロック、及び本明細書に提示された他のフローチャート内の各ブロックが、プロセスにおける特定の論理機能又はステップを実装するための1つ又は複数の実行可能な命令を含むコンピュータプログラムコードのモジュール、セグメント又は一部を表す場合があることは理解されるべきである。説明している実施形態の一般的な当業者には理解されるであろうが、機能が、含まれた機能性に応じて、図示された又は議論されたものとは異なる順序、実質的に同時又は逆順を含む、で実行されてもよい代替の実装は、本実施形態の例の範囲に含まれる。
ブロック310において、方法300は、サーバで情報コンテンツを受信することを含む。情報コンテンツは、ウェブブラウザ上で実行されるように動作可能であるスクリプト言語で記述された少なくとも1つのスクリプトコマンドを備える。この少なくとも1つのスクリプトコマンドは、JavaScriptスクリプト言語で記述されてもよい。
ブロック320において、方法300は、情報コンテンツ内の少なくとも1つのスクリプトコマンドの機能を決定することを含む。方法300は少なくとも1つのスクリプトコマンドの機能を、この少なくとも1つのスクリプトコマンドのキーワード、パターン及び/又は構造を調査することによって決定する。
少なくとも1つのスクリプトコマンドにおけるキーワード及び/又は構造の調査は、この少なくとも1つのスクリプトコマンドが少なくとも1つのブラウザコマンドによって置換されてもよいことを表す場合がある。例えば、1つ又は複数のオブジェクトは、JavaScriptスクリプト言語を使用して生成されてもよい。JavaScriptでは、オブジェクトは「隠れオブジェクト」(初期状態ではウェブブラウザにより示されない)であってもよく、オブジェクトの属性「display.value」を「none」に等しく設定することによって生成されてもよい。したがって、「display.value=none」のキーワード探索は隠れオブジェクトを発見する場合があり、次にこれは、類似の隠れオブジェクトを生成する1つ又は複数のブラウザコマンドで置換されてもよい。別の例として、グーグルマップライブラリなどの広く使用されているスクリプトライブラリは、「google」などのキーワードを探索することによって識別されてもよい。次に、1つ又は複数のブラウザコマンドが、広く使用されているスクリプトライブラリを参照する1つ又は複数のスクリプトコマンドを置換するために使用されてもよい。
少なくとも1つのスクリプトコマンドの文法構造及び/又は少なくとも1つのスクリプトコマンド内のパターンは、この少なくとも1つのスクリプトコマンドの機能を決定してもよい。(以下のブロック330において記述される)スクリプト言語インタープリタは、少なくとも1つのスクリプトコマンドの文法構造を決定してもよい。(以下のブロック330において記述される)パターン認識装置は、少なくとも1つのスクリプトコマンド内のパターンを決定してもよい。
ブロック330において、方法300は、少なくとも1つのスクリプトコマンドを少なくとも1つの代用のブラウザコマンドで置換することを含み、この場合、少なくとも1つの代用のブラウザコマンドは、ブロック320で識別された少なくとも1つのスクリプトコマンドの機能を有する。スクリプトコマンドを代用のブラウザコマンドに置換するいくつかの例は、(1)外部制御に基づいて画像の可視性を変更するスクリプトコマンドを上記の表4に示すブラウザコマンドで置換すること、(2)ブックマークを処理するスクリプトコマンドを上記の表5に示すブラウザコマンドに置換すること、及び(3)隠れオブジェクトを生成するスクリプトコマンドを、類似の隠れオブジェクトを生成する上記の表2に示すものに類似するブラウザコマンドに置換することである。好適には、ブラウザコマンドは少なくとも1つのnScriptブラウザコマンドを備える。
ブラウザコマンドによるスクリプトコマンドの置換は、データベースの使用によって実装されてもよい。データベースは1つ又は複数のnScriptブラウザコマンドを記憶してもよく、かつデータベースクエリに応答して、記憶されたnScriptブラウザコマンドを検索してもよい。データベースクエリは、構造化問合せ言語(Structured Query Language)(SQL)、Java(登録商標)におけるSQL(SQL in Java)(SQLJ)、共通問合せ言語(Common Query Language)(CQL)及び/又はオブジェクト問合せ言語(Object Query Language)(OQL)などのデータベース問合せ言語又は情報検索問合せ言語で記述されてもよい。
記憶されたnScriptブラウザコマンドは、1つ又は複数のテンプレートコマンドを備えてもよく、この場合、テンプレートコマンドは、データベースからの検索の後、テンプレートコマンドが情報エレメントに使用される前に、追加の処理を必要とする。このような追加の処理は、関連したアイテムのグループの名称をテンプレートコマンドに挿入すること、又は関連したアイテムのグループ内のアイテムの名称をテンプレートコマンドに挿入することを含んでもよいが、この限りではない。
データベースクエリは、サーバによって定式化されてもよい。データベースクエリは、スクリプトコマンドの一部又はすべてを備えてもよい。データベースクエリは、情報コンテンツ内に発見される1つ又は複数のキーワードを備えてもよい。データベースクエリは、スクリプトコマンドの構造に関する情報を備えてもよい。スクリプトコマンドの構造に関する情報は、スクリプトコマンドのいくつか、又はすべてを備えてもよい。
代用のブラウザコマンドによる情報コンテンツ内のスクリプトコマンドの置換は、パターン認識装置の使用を含んでもよい。パターン認識装置は、情報コンテンツ内のスクリプトコマンドにおけるパターンを認識し、スクリプトコマンドの認識されたパターンを代用のブラウザコマンドで置換してもよい。
情報コンテンツ内のスクリプトコマンドのパターンは、命名規則及び/又は標準ソフトウェアライブラリへの参照を含んでもよい。命名規則は、スクリプトコマンドにおけるパターンを決定してもよい。命名規則の一例は、アイテムの可視性を制御するためのスクリプトコマンド内の「visible」又は「make_visible」などの変数の変数名の使用である。1つ又は複数の標準ソフトウェアライブラリへの参照は、スクリプトコマンド内のパターンであってもよい。例えば、パターン認識装置は、1つ又は複数のスクリプトコマンド内でフラッシュアニメーション機能を提供する標準ソフトウェアライブラリへの参照におけるパターンを決定してもよい。次に、パターン認識装置は、命名規則及び/又は参照標準ソフトウェアライブラリに準じるスクリプトコマンドを、同じ機能を実行する代用のブラウザコマンドに置換してもよい。
パターン認識装置は、情報コンテンツにおける1つ又は複数の関連したブラウザコマンドも調査することによって、スクリプトコマンド内のパターンを認識してもよい。例えば、パターン認識装置は、おそらく関連したブラウザコマンドと共に1つ又は複数の共通する機能を実行するスクリプトコマンドのパターンを認識してもよい。次に、パターン認識装置は、スクリプトコマンド及び/又は関連したブラウザコマンドを、1つ又は複数の同じ機能を実行する代用のブラウザコマンドに置換してもよい。例えば、パターンは、アイテムのグループの可視性を制御するスクリプトコマンドにおいて認識されてもよく、この場合、アイテムのグループはブラウザコマンドを用いて生成される。この例では、パターン認識装置は、スクリプトコマンド及び/又は関連したブラウザコマンドを、アイテムのグループを生成しかつ/又はアイテムのグループの可視性を制御する代用のブラウザコマンドに置換してもよい。
代用のブラウザコマンドによるスクリプトコマンドの置換は、スクリプト言語インタープリタを使用して実装されてもよい。スクリプト言語インタープリタは、スクリプト言語で記述された1つ又は複数のスクリプトコマンドを読み込み、スクリプトコマンドの字句解析及び/又はスクリプトコマンドの構文解析を実行してスクリプトコマンドの文法構造を決定し、かつスクリプトコマンドの文法構造と同じ、又はこれに類似する文法構造を有する1つ又は複数の代用のブラウザコマンドを出力してもよい。
スクリプトコマンドの字句解析は、スクリプトコマンドの各々に対応する1つ又は複数のトークンを決定することを含んでもよい。トークンは、スクリプト言語の1つ又は複数の字句規則にしたがってスクリプトコマンドを類別することにより決定されてもよい。字句規則は、用語が等しいことを意味するキャラクタ「=」の使用などのテキストパターンを説明するものであってもよい。入力「=」のトークンの一例は、EQUALSであってもよい。
スクリプトコマンドの文法構造の構文解析又は決定は、トークンをスクリプト言語のパーサへの入力として使用することを含んでもよい。スクリプト言語のパーサは、スクリプト言語の1つ又は複数の文法規則に従ったトークンの類別に基づいてトークンを構文解析してもよい。スクリプト言語の文法規則は、変数が等号の左側にある場合に、変数への値の代入を決定することなど、スクリプト言語の文法を定義してもよい。この例では、パーサは、VARIABLE(x) EQUALS VARIABLE(y)などのトークンストリングを、トークンEQUALの右側の変数yに保持された値をトークンEQUALの左側の変数xへ代入する文法構造へ翻訳する文法規則を有してもよい。スクリプトコマンドの文法構造が決定されると、好適にはnScriptで記述される1つ又は複数の代用のブラウザコマンドが、1つ又は複数のスクリプトコマンドを置換するために同じ(又は類似の)文法構造によって発生されてもよい。
ブロック340において、方法300は、変換された情報コンテンツを組み立てることを含む。変換された情報コンテンツは、まず情報コンテンツをコピーし、次にコピーされた情報コンテンツにおけるすべてのスクリプトコマンドを除去することによって組み立てられてもよい。変換された情報コンテンツ内の少なくとも1つの挿入位置が、1つ又は複数の代用のブラウザコマンド用に決定されてもよく、次に、1つ又は複数の代用のブラウザコマンドがその挿入位置に挿入される。
例えば、下記の表6に示すように、情報コンテンツはスクリプトコマンドS1、S2及びS3を備え、スクリプトコマンドS1、S2及びS3はHTMLエレメントE1、E2、E3、E4を備えるウェブページに埋め込まれ、かつスクリプトコマンドS1、S2及びS3はHTMLエレメントE4によって呼び出されるものと仮定する。
Figure 2010518521
さらに、nScriptで記述されたエレメントE5は、スクリプトコマンドS1、S2、及びS3、並びにスクリプトコマンドの呼び出しを置換するためにE4内の挿入ポイントに挿入されるものと仮定する。変換された情報コンテンツでは、元の情報エレメントがコピーされ、次いでS1、S2、及びS3が除去される。E4内の挿入ポイントにおけるE5の挿入は、E4のコンテンツをE4の第1の元のコンテンツとE4の第2の元のコンテンツとに分離してもよい。下記の表7は、変換された情報コンテンツを示す。
Figure 2010518521
ブロック350において、方法300は、変換された情報コンテンツをサーバからクライアントデバイスへ送信することを含む。サーバは、変換された情報コンテンツを、クライアントデバイスインタフェース250を使用して送信してもよい。
5.まとめ
JavaScriptコマンドの変換を含むスクリプトコマンドの変換を使用して本件出願を説明したが、他のタイプのスクリプトコマンドがこれまでに説明したものと同じ、又は類似の方法で変換されてもよい。例えば、とりわけJScript、VBScript、Visual Basic及び/又はTclなどの言語で記述されたスクリプトコマンドが変換されてもよい。別段の指示のない限り、本明細書に記述されたプログラム、プロセス、方法及びシステムは、任意の特定のタイプのコンピュータ又はネットワークシステム(ハードウェア又はソフトウェア)に関連づけられず、又は限定されないことは理解されるべきである。様々なタイプの汎用の又は専用のコンピュータシステムは、本明細書に記述された教示内容にしたがって使用されてもよく、又はオペレーションを実行してもよい。
さらに、本明細書に記述されている種々の配置は単に例示を目的とするものであることも理解されるべきである。したがって当業者には、所望される結果に応じて、他の配置及び他の構成要素(例えば、マシン、インタフェース、関数、順序及び関数のグループ化、他)を代用でき、かついくつかの構成要素は完全に省略されてもよいことが認識されるであろう。さらに、記述されている構成要素の多くは、離散又は分散コンポーネントとして、又は他のコンポーネントと共に任意の適切な組み合わせ及びロケーションで実装されてもよい機能エンティティである。
本件出願の原理を適用できる広範な実施形態を考慮して、説明された実施形態は単に例示的なものであり、よって本件出願の範囲を限定するものとして捉えられるべきでない点は理解されるべきである。例えば、フロー図の諸ステップは、記述されているもの以外の順序で講じられてもよく、より多い、又はより少ない数の構成要素がブロック図において使用されてもよい。実施形態の様々な構成要素はソフトウェアで実装されるものとして説明されているが、他の実施形態ではハードウェア又はファームウェアによる実装が代替的に使用されてもよく、逆もまた可能である。
本件出願を完全に機能的なサーバ及びクライアントデバイスシステム及び方法のコンテキストで説明したが、当業者であれば、本件出願のメカニズムは命令のコンピュータ読み取り可能な媒体の形式で様々な形に分散され得ること、及び本件発明は実際に分散の実行に使用される特定のタイプの信号伝送媒体(signal bearing media)に関わらず等しく適用されることを認識する点に留意されたい。例えば、コンピュータ使用可能な媒体(computer usable media)は、コンピュータ読み取り可能なプログラムコードセグメントが記憶されている、ハードドライブデバイス、CD−ROM、DVD−ROM、又はコンピュータディスケットなどの読み取り可能なメモリデバイスを含むことが可能である。コンピュータ読み取り可能な媒体はまた、デジタルデータ信号又はアナログデータ信号としてプログラムコードセグメントを搬送している光学式、有線又は無線の何れかであるバス又は通信リンクなどの通信媒体又は伝送媒体を含むことが可能である。したがって、本明細書に記述されている方法は、サーバ104又はクライアントデバイス110内に存在するものとして記述されている1つ又は複数のコンピュータ読み取り可能な媒体を含むコンピュータプログラム製品において具現されてもよい。
特許請求の範囲は、その旨の記述のない限り、本明細書に記述されている順序又は構成要素に限定されるものとして読まれるべきではない。したがって、下記の特許請求の範囲及びその同等物の範囲及び精神に包含されるすべての実施形態は、発明として請求される。
本特許文書の開示内容の一部は、著作権保護の対象である資料を含んでいる。著作権所有者は、それが特許商標庁のファイル又は記録に存在するものであれば如何なる者による特許文書又は特許開示の複製にも異議を唱えるものではないが、それ以外は如何なるものもすべて著作権により保護される。

Claims (20)

  1. クライアントデバイス上に表示する情報コンテンツを処理する方法において、
    上記クライアントデバイス上では実行できないスクリプトコマンドを含む情報コンテンツを受信するステップと、
    上記スクリプトコマンドの機能を決定するステップと、
    上記情報コンテンツにおいて、上記スクリプトコマンドを、上記クライアントデバイス上で実行可能であり上記スクリプトコマンドの機能を実行するブラウザコマンドに置換するステップと、
    上記情報コンテンツをクライアントデバイスへ送信するステップとを含む方法。
  2. 上記ブラウザコマンドは、nScriptブラウザコマンドを備え、
    上記nScriptブラウザコマンドは、nScriptアプリケーションプログラミングインタフェース(API)を使用して記述され、かつ上記クライアントデバイス上で実行可能である請求項1記載の方法。
  3. 上記nScriptブラウザコマンドはアンカータグを備え、
    上記アンカータグはイベントハンドラを備える請求項2記載の方法。
  4. 上記スクリプトコマンドは、JavaScriptスクリプト言語で記述される請求項1記載の方法。
  5. 上記スクリプトコマンドの機能は、表示可能なアイテムを表示することを含む請求項1記載の方法。
  6. 上記スクリプトコマンドの機能は、動的なウェブページを表示することを含む請求項1記載の方法。
  7. 上記スクリプトコマンドの機能は、フォルダを表示することを含む請求項1記載の方法。
  8. 上記スクリプトコマンドは、上記クライアントデバイスにおけるイベントを処理するスクリプトコマンドを備え、
    上記ブラウザコマンドは、上記クライアントデバイスにおけるイベントを処理する上記クライアントデバイスにより実行可能なnScriptブラウザコマンドを備える請求項1記載の方法。
  9. 上記クライアントデバイスにおけるイベントは、オンロードイベント、オンショーイベント、オンフォーカスイベント、オンキープレスイベント、及びオンキーダウンイベントより成るグループから選択されるイベントを含む請求項8記載の方法。
  10. 上記ブラウザコマンドを含み、かつ上記スクリプトコマンドを除外する新しい情報コンテンツを組み立てるステップをさらに含む請求項1記載の方法。
  11. 上記新しい情報コンテンツは、第1の分割タグと第2の分割タグとを備えるnScriptブラウザコマンドを備え、
    上記第1の分割タグは、関連したアイテムのグループを識別し、
    上記第2の分割タグは、上記関連したアイテムのグループにおけるアイテムを識別する請求項10記載の方法。
  12. 上記スクリプトコマンドの機能を決定するステップは、データベースに問い合わせるステップを含む請求項1記載の方法。
  13. 上記データベースは、1つ又は複数のnScriptブラウザコマンドを記憶する請求項12記載の方法。
  14. 上記データベースに問い合わせるステップは、
    上記情報コンテンツ内で発見されるキーワードを備えた上記データベースのクエリを定式化するステップと、
    上記クエリに応答して、上記データベースに記憶された1つ又は複数のnScriptコマンドを検索するステップとを含む請求項13記載の方法。
  15. 上記スクリプトコマンドの機能を決定するステップは、スクリプト言語インタープリタの使用によって上記スクリプトコマンドの機能を決定するステップを含む請求項1記載の方法。
  16. 上記スクリプトコマンドの機能を決定するステップは、パターン認識装置の使用によって上記スクリプトコマンドの機能を決定するステップを含む請求項1記載の方法。
  17. 処理ユニットに請求項1記載の方法を実行させる命令を記憶しているコンピュータ読み取り可能な媒体。
  18. (i)情報ソースから、クライアントデバイス上で実行できないスクリプトコマンドを含む元の情報コンテンツを受信し、
    (ii)上記スクリプトコマンドの機能を決定し、
    (iii)上記スクリプトコマンドを置換するブラウザコマンドを決定し、
    (iv)変換された情報コンテンツを、
    (a)上記元の情報コンテンツから上記スクリプトコマンドを除去し、
    (b)上記元の情報コンテンツ内にブラウザコマンドのための挿入位置を決定し、
    (c)上記挿入位置で上記ブラウザコマンドを上記元の情報コンテンツに挿入することによって組み立てるサーバブラウザを含むメモリに記憶されたソフトウェアアプリケーションを実行するプロセッサと、
    上記変換された情報コンテンツを送信するクライアントデバイスインタフェースとを備え、
    上記ブラウザコマンドは、上記決定されたスクリプトコマンドの機能を実行し、上記クライアントデバイス上で実行可能なnScriptブラウザコマンドを備えたサーバ。
  19. 上記サーバブラウザは、データベースに記憶された情報に基づいて上記1つ又は複数のスクリプトコマンドを置換する1つ又は複数のブラウザコマンドを決定する請求項18記載のサーバ。
  20. 上記データベースは、上記ブラウザコマンドを記憶し、
    上記ブラウザコマンドは、上記スクリプトコマンドを備えたデータベースクエリに基づいて検索される請求項18記載のサーバ。
JP2009549257A 2007-02-09 2008-02-08 クライアントデバイスに表示する情報コンテンツを提供する方法及び装置 Expired - Fee Related JP5551938B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US88913707P 2007-02-09 2007-02-09
US60/889,137 2007-02-09
PCT/US2008/053426 WO2008098174A1 (en) 2007-02-09 2008-02-08 Method and apparatus for providing information content for display on a client device

Publications (2)

Publication Number Publication Date
JP2010518521A true JP2010518521A (ja) 2010-05-27
JP5551938B2 JP5551938B2 (ja) 2014-07-16

Family

ID=39495871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009549257A Expired - Fee Related JP5551938B2 (ja) 2007-02-09 2008-02-08 クライアントデバイスに表示する情報コンテンツを提供する方法及び装置

Country Status (5)

Country Link
US (1) US20080196046A1 (ja)
EP (1) EP2122508A1 (ja)
JP (1) JP5551938B2 (ja)
CA (1) CA2676697C (ja)
WO (1) WO2008098174A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5154716B1 (ja) * 2012-03-09 2013-02-27 株式会社Murakumo 情報処理装置、方法およびプログラム
JP2013186886A (ja) * 2012-12-05 2013-09-19 Murakumo Corp 情報処理装置、方法およびプログラム
JP2013186885A (ja) * 2012-12-05 2013-09-19 Murakumo Corp 情報処理装置、方法およびプログラム
JP2013186887A (ja) * 2012-12-05 2013-09-19 Murakumo Corp 情報処理装置、方法およびプログラム
JP2016537696A (ja) * 2013-09-20 2016-12-01 オラクル・インターナショナル・コーポレイション フォームフィルプロキシアプリケーションによるウェブベースシングルサインオン
KR101806288B1 (ko) 2010-09-17 2017-12-08 삼성전자주식회사 위젯 환경 구축 방법 및 그 장치

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157975B2 (en) 2008-01-18 2021-10-26 Blackberry Limited System and method for network interaction between computing devices
JP5537044B2 (ja) * 2008-05-30 2014-07-02 キヤノン株式会社 画像表示装置及びその制御方法、コンピュータプログラム
US9715557B2 (en) * 2008-12-09 2017-07-25 Blackberry Limited System, device and method for providing context sensitive content on a computing device
EP2387765B1 (en) * 2009-01-19 2018-05-23 Koninklijke Philips N.V. Browser with dual scripting engine for privacy protection
US8700982B2 (en) 2009-03-30 2014-04-15 Blackberry Limited System, device and method for providing interactive content on an computing device
CN102414681A (zh) * 2009-03-30 2012-04-11 诺基亚公司 用于处理文档对象模型(dom)以处理视频内容的方法和系统
WO2010118019A1 (en) * 2009-04-06 2010-10-14 Nokia Corporation Methods and systems for using multipart messaging with preset constraints
JP5500968B2 (ja) * 2009-12-16 2014-05-21 シャープ株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US8560731B2 (en) 2010-04-09 2013-10-15 Mobila, Inc. Subscription-based dynamic content optimization
US8606923B2 (en) 2010-09-15 2013-12-10 Core Mobile Networks, Inc. System and method for real time delivery of context based content from the cloud to mobile devices
US10511609B2 (en) 2010-09-15 2019-12-17 Core Mobile Networks, Inc. Context-based analytics and intelligence
US8847985B2 (en) * 2010-12-30 2014-09-30 International Business Machines Corporation Protecting screen information
JP5276145B2 (ja) * 2011-06-13 2013-08-28 株式会社ソニー・コンピュータエンタテインメント リスト表示装置
US20130326005A1 (en) * 2012-06-04 2013-12-05 Nokia Corporation Methods, apparatuses and computer program products for enabling modification of content delivered to mobile browsers
JP6325796B2 (ja) * 2013-11-06 2018-05-16 キヤノン株式会社 情報処理端末およびその制御方法、並びにプログラム
US9076231B1 (en) * 2014-02-18 2015-07-07 Charles Hill Techniques for displaying content on a display to reduce screenshot quality
US10642903B2 (en) * 2014-09-29 2020-05-05 International Business Machines Corporation Tagging and querying system objects
US10521106B2 (en) 2017-06-27 2019-12-31 International Business Machines Corporation Smart element filtering method via gestures
CN109765793B (zh) * 2018-12-07 2022-04-12 深圳绿米联创科技有限公司 设备状态显示方法、装置、终端及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005716A (ja) * 1999-06-18 2001-01-12 Nec Corp Html文書をmheg文書に変換する方法
JP2001346270A (ja) * 2000-05-31 2001-12-14 Toshiba Corp 情報システムおよび電子サービスガイド方法
JP2002215503A (ja) * 2001-01-17 2002-08-02 Sony Corp 変換装置及び方法、課金方法、並びにスクリプト変換システム及び方法
JP2003036223A (ja) * 2001-04-10 2003-02-07 Nec Corp マークアップ文書変換方式
JP2003271508A (ja) * 2002-03-14 2003-09-26 Ntt Comware Corp 携帯端末向けコンテンツ変換システム、及びコンテンツ変換方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3932462B2 (ja) * 1997-05-27 2007-06-20 ソニー株式会社 クライアント装置、画像表示制御方法、共有仮想空間提供装置および方法、並びに記録媒体
US7447712B2 (en) * 1997-09-28 2008-11-04 Global 360, Inc. Structured workfolder
US6101503A (en) * 1998-03-02 2000-08-08 International Business Machines Corp. Active markup--a system and method for navigating through text collections
US6470349B1 (en) * 1999-03-11 2002-10-22 Browz, Inc. Server-side scripting language and programming tool
US6714928B1 (en) * 1999-03-19 2004-03-30 Sybase, Inc. Development system providing HTML database control object
US7103647B2 (en) * 1999-08-23 2006-09-05 Terraspring, Inc. Symbolic definition of a computer system
US7191397B2 (en) * 1999-09-20 2007-03-13 Dell Products L.P. XML server pages language
US20010043234A1 (en) * 2000-01-03 2001-11-22 Mallik Kotamarti Incorporating non-native user interface mechanisms into a user interface
AU2001245554A1 (en) * 2000-03-13 2001-09-24 Broadfire Technologies Corporation Information management system
US8397223B2 (en) * 2000-03-17 2013-03-12 Gutenberg Printing Llc Web application generator
JP2001306309A (ja) * 2000-04-17 2001-11-02 Internatl Business Mach Corp <Ibm> 入力装置、インタフェース作成システム、データ処理方法、記憶媒体及びプログラム伝送装置
US20040049737A1 (en) * 2000-04-26 2004-03-11 Novarra, Inc. System and method for displaying information content with selective horizontal scrolling
US7072984B1 (en) * 2000-04-26 2006-07-04 Novarra, Inc. System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
US20020065851A1 (en) * 2000-06-02 2002-05-30 Watson Emerson C. System and method for creating a website
FR2811782B1 (fr) * 2000-07-12 2003-09-26 Jaxo Europ Systeme de conversion de documents a structure arborescente par parcours selectif de ladite structure
US7089330B1 (en) * 2000-09-28 2006-08-08 I2 Technologies Us, Inc. System and method for transforming custom content generation tags associated with web pages
US6983331B1 (en) * 2000-10-17 2006-01-03 Microsoft Corporation Selective display of content
US7260777B2 (en) * 2001-08-17 2007-08-21 Desknet Inc. Apparatus, method and system for transforming data
US7181684B2 (en) * 2000-12-12 2007-02-20 Oracle International Corporation Dynamic tree control system
US7616971B2 (en) * 2000-12-29 2009-11-10 International Business Machines Corporation System and method for providing access to forms for displaying information on a wireless access device
CA2437346A1 (en) * 2001-02-02 2002-08-15 Opentv, Inc. A method and apparatus for the compilation of an interpretative language for interactive television
WO2002082229A2 (en) * 2001-04-09 2002-10-17 America Online Incorporated Server-based browser system
US7546576B2 (en) * 2001-06-15 2009-06-09 Lightsurf Technology, Inc. Software framework for web-based applications
US20030014442A1 (en) * 2001-07-16 2003-01-16 Shiigi Clyde K. Web site application development method using object model for managing web-based content
US7149776B1 (en) * 2001-08-31 2006-12-12 Oracle International Corp. System and method for real-time co-browsing
JP2003233618A (ja) * 2002-02-07 2003-08-22 Fujitsu Ltd 横断検索方法,及び、横断検索プログラム
AU2003262702A1 (en) * 2002-08-23 2004-03-11 Jway Group, Inc. Extensible user interface (xui) framework and development environment
US7069497B1 (en) * 2002-09-10 2006-06-27 Oracle International Corp. System and method for applying a partial page change
US7219350B2 (en) * 2003-03-19 2007-05-15 International Business Machines Corporation Dynamic server page meta-engines with data sharing for dynamic content and non-JSP segments rendered through other engines
US20060053411A1 (en) * 2004-09-09 2006-03-09 Ibm Corporation Systems, methods, and computer readable media for consistently rendering user interface components
US7509649B2 (en) * 2005-03-03 2009-03-24 Research In Motion Limited System and method for conversion of generic services' applications into component based applications for devices
US20070067305A1 (en) * 2005-09-21 2007-03-22 Stephen Ives Display of search results on mobile device browser with background process
US7788577B2 (en) * 2005-09-23 2010-08-31 Google Inc. Displaying information on a mobile device
US20070250711A1 (en) * 2006-04-25 2007-10-25 Phonified Llc System and method for presenting and inputting information on a mobile device
US7861213B2 (en) * 2006-09-05 2010-12-28 Oracle International Corporation Mechanism for developing AJax applications using java swing framework and method for using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005716A (ja) * 1999-06-18 2001-01-12 Nec Corp Html文書をmheg文書に変換する方法
JP2001346270A (ja) * 2000-05-31 2001-12-14 Toshiba Corp 情報システムおよび電子サービスガイド方法
JP2002215503A (ja) * 2001-01-17 2002-08-02 Sony Corp 変換装置及び方法、課金方法、並びにスクリプト変換システム及び方法
JP2003036223A (ja) * 2001-04-10 2003-02-07 Nec Corp マークアップ文書変換方式
JP2003271508A (ja) * 2002-03-14 2003-09-26 Ntt Comware Corp 携帯端末向けコンテンツ変換システム、及びコンテンツ変換方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101806288B1 (ko) 2010-09-17 2017-12-08 삼성전자주식회사 위젯 환경 구축 방법 및 그 장치
JP5154716B1 (ja) * 2012-03-09 2013-02-27 株式会社Murakumo 情報処理装置、方法およびプログラム
WO2013132643A1 (ja) * 2012-03-09 2013-09-12 株式会社Murakumo 情報処理装置、方法およびプログラム
JP2013186886A (ja) * 2012-12-05 2013-09-19 Murakumo Corp 情報処理装置、方法およびプログラム
JP2013186885A (ja) * 2012-12-05 2013-09-19 Murakumo Corp 情報処理装置、方法およびプログラム
JP2013186887A (ja) * 2012-12-05 2013-09-19 Murakumo Corp 情報処理装置、方法およびプログラム
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

Also Published As

Publication number Publication date
US20080196046A1 (en) 2008-08-14
WO2008098174A1 (en) 2008-08-14
EP2122508A1 (en) 2009-11-25
CA2676697A1 (en) 2008-08-14
CA2676697C (en) 2012-12-18
JP5551938B2 (ja) 2014-07-16

Similar Documents

Publication Publication Date Title
JP5551938B2 (ja) クライアントデバイスに表示する情報コンテンツを提供する方法及び装置
US7873668B2 (en) Application data binding
KR100810010B1 (ko) 웹 장치에서의 html 페이지의 프리젠테이션을 개선하는방법 및 시스템
US9524353B2 (en) Method and system for providing portions of information content to a client device
JP4162209B2 (ja) 視聴覚障害を有するユーザのアクセシビリティを向上させるためのhtml文書におけるアクティブaltタグ
US7505978B2 (en) Aggregating content of disparate data types from disparate data sources for single point access
US10339197B2 (en) Method and system for bookmarking a webpage
US7756849B2 (en) Method of searching for text in browser frames
EP1258819A2 (en) System and method for providing a file in multiple languages
US20070192674A1 (en) Publishing content through RSS feeds
US20070214422A1 (en) Framework for implementing skins into a portal server
WO2013028081A1 (en) Page based navigation and presentation of web content
US20190197065A1 (en) Automatic browser search provider detection and usage
US20150161111A1 (en) Interpreted Language Translation System and Method
JP2006065395A (ja) ハイパーリンク生成装置、ハイパーリンク生成方法及びハイパーリンク生成プログラム
WO2010094927A1 (en) Content access platform and methods and apparatus providing access to internet content for heterogeneous devices
Butler Current technologies for device independence
US20040205587A1 (en) System and method for enumerating arbitrary hyperlinked structures in which links may be dynamically calculable
Artail et al. Device-aware desktop web page transformation for rendering on handhelds
Kao et al. A personal Web page tailoring toolkit for mobile devices
JP2000222326A (ja) 学習支援方法及びシステム及び学習支援プログラムを格納した記憶媒体
TWI354214B (ja)
JP2009157797A (ja) データ入力支援システム、データ入力支援方法及びプログラム
Agosti et al. Managing the interactions between handheld devices, mobile applications, and users
KR20030007734A (ko) 퍼스널 배너 작성 프로그램

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120327

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121030

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121106

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20121214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140523

R150 Certificate of patent or registration of utility model

Ref document number: 5551938

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees