(57)【要約】  マークアップ言語（ＭＬ）文書からデバイス固有言語の文書へのカスタマイズされたレンダリングのためのプラットフォームであって、該デバイス固有言語文書は、その後ターゲット遠隔デバイスによって表示するために提供される。ターゲット遠隔デバイスのレンダリングコンテキスト及びＭＬ文書がプラットフォームによって受け取られ、このプラットフォームが、ページ付けを行ってページを完全レンダリングすることができるプロセスを実行し、これらのページは、その後、ターゲット遠隔デバイスによって表示するために配信される。デバイス固有言語文書におけるメディアアイテムの付加的プロセスを実行するために、レンダリング後プロセスも提供することができる。この付加的プロセスは、デバイス固有言語文書のページ内にメディアアイテムへのリンクを含めるか、又は埋め込む段階を含むことができる。遠隔デバイスは、ネットワーク上で有線及び／又は無線通信を提供するクライアントデバイスとして構成することができる。【選択図】      図５Ａ
2010505194.tif 000002
【特許請求の範囲】
【請求項１】
遠隔デバイスによって表示するためにマークアップ言語（ＭＬ）文書をレンダリングする方法であって、
前記ＭＬ文書を受け取る段階と、
前記遠隔デバイスにより後で表示するため前記ＭＬ文書のレンダリングを可能にする情報を含む、前記遠隔デバイスにネイティブなレンダリングコンテキストを受け取る段階と、
前記レンダリングコンテキストを利用して前記ＭＬ文書のページ付けを可能にし、前記ＭＬ文書の各ページのサイズを前記遠隔デバイスによる表示の有効サイズよりも大きくないように前記ＭＬ文書をページ付けする段階と、
前記レンダリングコンテキストを利用して、少なくとも１つのプロセスが前記ＭＬ文書をデバイス固有言語の文書に完全レンダリングするのを可能にする段階と、
前記デバイス固有言語文書を前記遠隔デバイスに提供できるようにする段階と、
を含む方法。
【請求項２】
前記デバイス固有言語文書内にメディアアイテムを埋め込む段階と、
前記デバイス固有言語文書内のメディアアイテムへのリンクを含める段階と、
を更に含む、
請求項１に記載の方法。
【請求項３】
前記ＭＬ文書を完全レンダリングするよう複数のプロセスの各々が実行されるのを判定する段階と、
全体として前記ＭＬ文書の完全レンダリングを可能にする各判定プロセスのパイプラインを構築する段階と、
前記ＭＬ文書をツリーに構成し、前記レンダリングコンテキスト及び前記プロセスのパイプラインを利用して、前記ツリーを前記ＭＬ文書から前記デバイス固有言語文書への完全レンダリングにする段階と、
を更に含む、
請求項１に記載の方法。
【請求項４】
前記受け取ったＭＬ文書をアセンブルする段階を更に含み、前記アセンブルが、モジュールへの単位の付加、空白の充填、ヘッダの付加、又はフッタの付加のうちの少なくとも１つを含む、
請求項１に記載の方法。
【請求項５】
前記デバイス固有言語文書を前記遠隔デバイスに提供できるようにする段階が、前記デバイス固有言語文書を文字列にシリアライズする段階を更に含む、
請求項１に記載の方法。
【請求項６】
既存のＭＬ  ＩＤに現在関連付けられていない各一意の文字列に対して一時マークアップ言語（ＭＬ）ＩＤを作成する段階と、
各一時ＭＬ  ＩＤ及び各既存のＭＬ  ＩＤの一時インデックスを生成する段階と、
複数のプロセスの少なくとも１つに対して前記一時インデックスを利用して、前記ＭＬ文書内の各一意の文字列をレンダリングする段階と、
前記遠隔デバイスに提供される前に、前記デバイス固有言語文書から前記一時インデックス及び各一時ＭＬ  ＩＤを削除する段階と、
を更に含む、
請求項１に記載の方法。
【請求項７】
前記マークアップ言語は、前記遠隔デバイス上にＭＬ文書内のコンテンツを表示するための作成者の意図を提供する移動体マークアップ言語であり、前記遠隔デバイスにより表示するためにレンダリングされた前記コンテンツの実際の構成が、前記レンダリングコンテキストに少なくとも部分的に基づいている、
請求項１に記載の方法。
【請求項８】
前記ＭＬ文書のレンダリングが、
リクエストに応答して前記遠隔デバイスに関する位置情報を提供できるか否かを判定する段階と、
余剰シートを削除することによってカスケーディング・スタイル・シート（ＣＳＳ）を縮小する段階と、
カスケーディング・スタイル・シートをストリップしてＭＬコードとしてリライトすることにより前記カスケーディング・スタイル・シートを文字装飾する段階と、
ＭＬ文書を圧縮して前記遠隔デバイスにとって余剰なあらゆるＭＬコードを削除する段階と、
レンダリングされた前記ＭＬ文書に含められるように各メディアアイテムの１つ又はそれ以上の属性を指定する段階と、
各ページサイズの推定値を利用して、前記遠隔デバイスの有効サイズを超えないサイズに前記ＭＬ文書のページを再ページ付けする段階と、
ターゲット遠隔デバイスの有効サイズよりも大きくレンダリングされると推定される前記ＭＬ文書のページ内のＭＬコードを調整する段階と、
メディアアイテムの位置を含めるようにＵＲＬをリライトする段階と、
セッション識別情報を含めるようにＵＲＬをリライトする段階と、
を含む複数のプロセスの少なくとも１つを含む、
請求項１に記載の方法。
【請求項９】
前記遠隔デバイスがネットワーク上の有線又は無線通信の少なくとも１つを提供する、
請求項１に記載の方法。
【請求項１０】
表示するためにマークアップ言語（ＭＬ）文書をレンダリングするためのシステムであって、
前記レンダリングされたＭＬ文書を表示するように適合された遠隔デバイスと、プラットフォームとを備え、
前記プラットフォームが、
前記レンダリング文書と、前記遠隔デバイスにより後で表示するため前記ＭＬ文書のレンダリングを可能にする情報を含む別のリソースからのレンダリングコンテキストとを受け取る段階と、
前記レンダリングコンテキストを利用して、前記ＭＬ文書の各ページのサイズを前記遠隔デバイスによる表示の有効サイズよりも大きくないように前記ＭＬ文書をページ付けする段階と、
前記レンダリングコンテキストを利用して、少なくとも１つのプロセスが前記ＭＬ文書をデバイス固有言語の文書に完全レンダリングするのを可能にする段階と、
前記デバイス固有言語文書を前記遠隔デバイスにより表示するためネットワーク上で提供する段階と、
を含む動作を実行するよう構成されている、
ことを特徴とするシステム。
【請求項１１】
前記プラットフォームが、
前記デバイス固有言語文書内にメディアアイテムを埋め込む段階と、
前記デバイス固有言語文書内のメディアアイテムへのリンクを含める段階と、
を含む更なる動作の少なくとも１つを実施する、
請求項１０に記載のシステム。
【請求項１２】
前記プラットフォームが、
前記ＭＬ文書を前記デバイス固有言語文書に完全レンダリングするよう複数のプロセスの各々が実行されるのを判定する段階と、
全体として前記ＭＬ文書の前記デバイス固有言語文書への完全レンダリングを可能にする各判定プロセスのパイプラインを構築する段階と、
前記ＭＬ文書をツリーに構成して、前記レンダリングコンテキスト及び前記プロセスのパイプラインを利用して、前記ツリーを前記ＭＬ文書から前記デバイス固有言語文書にする段階と、
を含む更なる動作の少なくとも１つを実施する、
請求項１０に記載のシステム。
【請求項１３】
前記プラットフォームが、
前記受け取ったＭＬ文書をアセンブルする段階を更に含み、前記アセンブルが、モジュールへの単位の付加、空白の充填、ヘッダの付加、又はフッタの付加のうちの少なくとも１つを含む、
更なる動作を実施する、
請求項１０に記載のシステム。
【請求項１４】
前記デバイス固有言語文書を前記遠隔デバイスに提供できるようにする段階が、前記デバイス固有言語文書を文字列にシリアライズする段階を更に含む、
請求項１０に記載のシステム。
【請求項１５】
前記プラットフォームが、
既存のＭＬ  ＩＤに現在関連付けられていない各一意の文字列に対して一時マークアップ言語（ＭＬ）ＩＤを作成する段階と、
各一時ＭＬ  ＩＤ及び各既存のＭＬ  ＩＤの一時インデックスを生成する段階と、
複数のプロセスの少なくとも１つに対して前記一時インデックスを利用して、前記ＭＬ文書内の各一意の文字列をレンダリングする段階と、
前記遠隔デバイスに提供される前に、前記デバイス固有言語文書から前記一時インデックス及び各一時ＭＬ  ＩＤを削除する段階と、
を含む更なる動作の少なくとも１つを実施する、
請求項１０に記載のシステム。
【請求項１６】
前記マークアップ言語は、前記遠隔デバイス上にＭＬ文書内のコンテンツを表示するための作成者の意図を提供する移動体マークアップ言語であり、前記遠隔デバイスにより表示するための前記コンテンツの実際の構成が、前記レンダリングコンテキストに少なくとも部分的に基づいている、
請求項１０に記載のシステム。
【請求項１７】
前記ＭＬ文書のレンダリングが、
リクエストに応答して前記遠隔デバイスに関する位置情報を提供できるか否かを判定する段階と、
余剰シートを削除することによってカスケーディング・スタイル・シート（ＣＳＳ）を縮小する段階と、
カスケーディング・スタイル・シートをストリップしてＭＬコードとしてリライトすることにより前記カスケーディング・スタイル・シートを文字装飾する段階と、
ＭＬ文書を圧縮して前記遠隔デバイスにとって余剰なあらゆるＭＬコードを削除する段階と、
レンダリングされた前記ＭＬ文書に含められるように各メディアアイテムの１つ又はそれ以上の属性を指定する段階と、
各ページサイズの推定値を利用して、前記遠隔デバイスの有効サイズを超えないサイズに前記ＭＬ文書のページを再ページ付けする段階と、
ターゲット遠隔デバイスの有効サイズよりも大きくレンダリングされると推定される前記ＭＬ文書のページ内のＭＬコードを調整する段階と、
メディアアイテムの位置を含めるようにＵＲＬをリライトする段階と、
セッション識別情報を含めるようにＵＲＬをリライトする段階と、
を含む複数のプロセスの少なくとも１つを実施する、
請求項１０に記載のシステム。
【請求項１８】
前記遠隔デバイスがネットワーク上の有線又は無線通信の少なくとも１つを提供する、
請求項１０に記載のシステム。
【請求項１９】
遠隔デバイスによって表示されることになるマークアップ言語（ＭＬ）文書をレンダリングするための動作を可能にする複数のコンポーネントを備えたプロセッサ可読媒体であって、前記コンポーネントが、
前記ＭＬ文書を受け取るための第１のコンポーネントと、
前記遠隔デバイスにより後で表示するため前記ＭＬ文書をデバイス固有言語文書にレンダリング可能にする情報を含む、前記遠隔デバイスにネイティブなレンダリングコンテキストを受け取る第２のコンポーネントと、
前記レンダリングコンテキストを利用して前記ＭＬ文書のページ付けを可能にし、前記デバイス固有言語文書の各ページのサイズを前記遠隔デバイスによる表示の有効サイズよりも大きくないようにページ付けする第３のコンポーネントと、
前記レンダリングコンテキストを利用して、少なくとも１つのプロセスが前記ＭＬ文書をデバイス固有言語の文書に完全レンダリングするのを可能にする第４のコンポーネントと、
前記デバイス固有言語文書を前記遠隔デバイスに提供できるようにする第５のコンポーネントと、
を含む、
ことを特徴とするプロセッサ可読媒体。
【請求項２０】
遠隔デバイスによって表示するためにマークアップ言語（ＭＬ）文書のレンダリングを可能にするサーバであって、
データを格納するメモリと、プロセッサとを備え、
前記プロセッサが、
前記ＭＬ文書を受け取る段階と、
前記遠隔デバイスにより後で表示するため前記ＭＬ文書をデバイス固有言語文書にレンダリング可能にする情報を含む、前記遠隔デバイスにネイティブなレンダリングコンテキストを受け取る段階と、
前記レンダリングコンテキストを利用して前記ＭＬ文書のページ付けを可能にし、前記デバイス固有言語文書の各ページのサイズを前記遠隔デバイスによる表示の有効サイズよりも大きくないようにページ付けする段階と、
前記レンダリングコンテキストを利用して、少なくとも１つのプロセスが前記ＭＬ文書をデバイス固有言語の文書に完全レンダリングするのを可能にする段階と、
前記デバイス固有言語文書を前記遠隔デバイスに提供できるようにする段階と、
を含む動作を可能にする、
ことを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００６年９月２９日に出願され、引用により本明細書に全体が組み込まれる米国出願番号１１／５３７,５９３に対する優先権を主張する。
本発明は、一般に、ネットワーク上でのコンテンツの提供に関し、より具体的には、遠隔配置された特定のデバイスで使用するために異種ソースからのコンテンツのレンダリングを可能にすることに関する。
【背景技術】
【０００２】
最近の調査では、移動電話など１０，０００を超える様々なモデルの移動デバイスが世界中で稼動中であることが確認された。移動デバイスの高まる人気を満たすために、毎週１０又はそれ以上の新しいモデルが市場に導入されている。また、移動デバイス及び他の遠隔配置されたデバイスにコンテンツを提供するための様々な機能を備えた幅広い種類の無線サービス及び通信リンクを可能にする異なるキャリアが世界中に何百も存在する。結果として、ターゲット遠隔デバイス及び／又はキャリアで使用するためのコンテンツを提供しレンダリングするコンテキストが多種多様なものになる可能性がある。
【０００３】
例えば、ディスプレイ画面に関して標準のサイズ又はカラーパレットは存在しない。結果として、例えあったとしても、あるサイズのカラーディスプレイで使用するようにレンダリングされたコンテンツは、異なるサイズの白黒ディスプレイにより正確に表示可能ではない場合がある。また、キャリアによって個々の顧客に提供される様々な通信リンクの容量及び信頼性は、遠隔デバイス上に表示するためのコンテンツの正確且つ適時のレンダリングに重大な影響を与える可能性がある。付加的に、ブラウザなどのクライアントアプリケーションにおける一般動作及び既知のバグは大きく異なる可能性がある。更に、開発者は、１つ又はそれ以上の異なる言語でコンテンツを生成する場合があり、これは、ターゲット遠隔デバイス上に表示するためのコンテンツの正確なレンダリングに関して考慮が必要なパラメータを有する可能性がある。
本発明の非限定的で非網羅的な実施形態を、以下の図面を参照しながら説明する。図面において、他に明確に言及されていない限り、同様の参照数字は様々な図全体にわたって同じ要素を示している。
本発明をよりよく理解するために、添付図面を参照しながら以下の「発明を実施するための形態」について説明する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国出願番号１１／５３７,５９３
【図面の簡単な説明】
【０００５】
【図１】本発明を実施することができる例示的なシステムの一実施形態の図である。
【図２】例示的な移動デバイスの一実施形態を示す図である。
【図３】例示的なネットワークデバイスの一実施形態を示す図である。
【図４】ターゲット遠隔デバイスによって表示するためにマークアップ言語文書をレンダリングするための例示的なプラットフォームの一実施形態を示す図である。
【図５Ａ】ターゲット遠隔デバイスによって表示するためにパイプラインステージを利用してマークアップ言語文書をレンダリングする例示的なプラットフォームの別の実施形態を示す図である。
【図５Ｂ】ターゲット遠隔デバイスによって表示するためにマークアップ言語文書をレンダリングするためのプラットフォームで利用される例示的なパイプラインステージの一実施形態を示す図である。
【図６】ターゲット遠隔デバイスによって表示するためにプラットフォームがマークアップ言語文書をレンダリングできるようにするモジュールの例示的なクラスツリーの更に別の実施形態を示す図である。
【図７】ターゲット遠隔デバイスによって表示するためにプラットフォームを全体的に利用してマークアップ言語文書をレンダリングするためのプロセスの概要を示す図である。
【図８】ターゲット遠隔デバイスによって表示するためにプラットフォームを利用してマークアップ言語文書をレンダリングするプロセスの概要を示す図である。
【図９】ターゲット遠隔デバイスによって表示するためにマークアップ言語文書のレンダリングを可能にするモジュールのクラスツリーを利用するプロセスの概要を示す図である。
【図１０】ターゲット遠隔デバイスによって表示するためにマークアップ言語文書をレンダリングするパイプラインステージのプロセスを示す図である。
【図１１Ａ】本発明により、ターゲット遠隔デバイスによって表示するために一時ＩＤ及びインデックスを利用してマークアップ言語文書のレンダリングをパイプライン処理するためのプロセスを示す図である。
【図１１Ｂ】本発明により、ターゲット遠隔デバイスによって表示するために一時ＩＤ及び一時インデックスを利用してマークアップ言語文書をレンダリングするためのプロセスを示す図である。
【発明を実施するための形態】
【０００６】
ここで本発明を本明細書の一部を成す添付図面を参照しながら以下でより詳細に説明するが、ここでは、本発明を実施することができる特定の例示的な実施形態を例証として示している。しかしながら、本発明は、多くの異なる形式で具現化することができ、本明細書に記載された実施形態に限定されるものと解釈すべきではない。むしろ、これらの実施形態は、本開示が詳細且つ完全であり、当業者に本発明の範囲を十分に伝えるように提供されている。とりわけ、本発明は、方法又は装置として具現化することができる。従って、本発明は、完全なハードウェアの実施形態、完全なソフトウェアの実施形態、ソフトウェア及びハードウェア態様を組み合わせた実施形態の形式をとることができる。従って、以下の詳細な説明は、限定的な意味で捉えるべきではない。
【０００７】
明細書及び請求項全体にわたって、文脈上別に明確に言及されていない限り、以下の用語は、本明細書で明確に関連付けられた意味をとる。本明細書で使用される語句「１つの実施形態において」は、必ずしも同じ実施形態を指すとは限らない。更に、本明細書で使用する語句「別の実施形態において」とは、必ずしも異なる実施形態を指すとは限らない。従って、以下で説明するように、本発明の範囲又は精神から逸脱することなく、本発明の様々な実施形態は容易に組み合わせることができる。
【０００８】
加えて、本明細書で使用する用語「又は」は、包含的な「又は」演算子であり、別途文脈上で明確に言及されていない限り、用語「及び／又は」と相当語句である。用語「に基づく」とは、排他的ではなく、文脈で別途明確に言及されていない限り、記載されていない付加的な要因に基づくことを許容する。加えて、本明細書全体にわたって、単数表現の意味は、複数の言及を含む。「において」の意味は、「において」及び「上で」を含む。
【０００９】
本明細書で使用するように、リクエスト、応答、又は他のメッセージなどのアイテムをデバイス又は構成要素から「受け取る」という用語は、１つ又はそれ以上のデバイス又は構成要素によって転送される場合のように、メッセージを間接的に受け取ることを含む。同様に、デバイス又は構成要素にアイテムを「送信する」とは、１つ又はそれ以上のデバイス又は構成要素によって転送される場合のように、メッセージを間接的に送信することを含む。
【００１０】
本明細書で使用する用語「移動体識別番号（ｍｏｂｉｌｅ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｎｕｍｂｅｒ（ＭＩＮ）」とは、移動体キャリアのネットワーク内で移動デバイスを一意に識別する番号を指す。携帯電話の電話番号は、ＭＩＮとして使用することができる。
【００１１】
本明細書で使用する用語「移動クライアントアプリケーション」とは、移動デバイス上で実行されるアプリケーションを指す。移動クライアントアプリケーションは、「Ｃ」「Ｃ＋＋」「Ｊ２ＭＥ」「Ｂｒｅｗ」、Ｊａｖａ（登録商標）、及び同様のものなどの各種言語のうちの１つ又はそれ以上で記述することができる。ブラウザ、電子メールクライアント、テキストメッセージングクライアント、カレンダー、及びゲームが移動クライアントアプリケーションの実施例である。
【００１２】
本明細書で使用する用語「ネットワークアプリケーション」とは、ネットワークにわたって少なくとも１つの他の構成要素と直接的又は間接的に通信するコンピュータベースのアプリケーションを指す。ウェブサイト、電子メールサーバ、メッセージングサーバ、及びゲームサーバがネットワークアプリケーションの実施例である。
【００１３】
本明細書で使用する用語「統一資源識別子（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ、ＵＲＩ）」とは、抽象又は物理リソースを識別するために用いられる識別子を指す。ＵＲＩという用語は、統一資源位置指定子（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ、ＵＲＬ）及び統一資源名（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｎａｍｅ、ＵＲＮ）を含む。ＲＦＣ３９８６は、ＵＲＩの構文を記述している。本明細書で使用する用語ＵＲＩとは、この構文に限定されず、他の構文を含むことができる。
【００１４】
要約すれば、本発明は、遠隔デバイスによって後で表示するために、ネットワーク上で提供されるマークアップ言語のページのカスタマイズされたレンダリングのためのプラットフォームに関する。ターゲット遠隔デバイスのレンダリングコンテキスト及びマークアップ言語（ＭＬ）文書はプラットフォームにより受け取られ、該プラットフォームが、ページ付けを行って、該ページをデバイス固有言語に完全にレンダリングすることができるプロセスを可能にする。その後、デバイス固有言語文書は、ターゲット遠隔デバイスが表示するために配信される。デバイス固有言語の文書におけるメディアアイテムの付加的プロセスを実行するために、レンダリング後プロセスもまた提供することができる。この付加的プロセスは、画像を取り出してデバイス固有文書のページに埋め込む段階を含むことができる。例えば、ページがデバイス固有言語でレンダリングされて画像へのリンクを含む場合、後処理コンポーネントは、画像を取り出してこれをｂａｓｅ６４符号化データ又は他のフォーマットとしてページ内に埋め込むことができる。この後処理はまた、デバイス固有言語文書内のメディアアイテムへのリンク、例えば、ターゲット遠隔デバイスにより表示するのに好適なＧＩＦ又はＪＰＥＧなどのデバイス固有フォーマットで特定の位置に格納された画像ファイルへのリンクをリライトする段階も提供することができる。プラットフォームは、マークアップ言語に不可知であり、カスタムレンダリングプロセスにおいてテンプレートを利用することができる。また、少なくとも１つの実施形態において、遠隔デバイスは、ネットワーク上で有線及び／又は無線通信を提供するクライアントデバイスとして構成される。
【００１５】
マークアップ言語文書は、限定ではないが、汎用マークアップ言語（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＳＧＭＬ）、ハイパーテキストマークアップ言語（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＨＴＭＬ）、拡張可能マークアップ言語（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＸＭＬ）、及び同様のものを含む、実質的にあらゆる標準又は非標準フォーマットで提供することができる。付加的に、遠隔デバイスのデバイス固有言語は、限定ではないが、ハンドヘルドデバイスマークアップ言語（Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＨＤＭＬ）、無線マークアップ言語（Ｗｉｒｅｌｅｓｓ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＷＭＬ）、ＷＭＬＳｃｒｉｐｔ、Ｃｏｍｐａｃｔ  ＨＴＭＬ（ｃＨＴＭＬ）、ｅＸｔｅｎｓｉｂｌｅ  ＨＴＭＬ（ＸＨＴＭＬ）、及び同様のものを含むことができる。
【００１６】
少なくとも１つの実施形態において、ターゲット遠隔デバイスと独立したモジュールを含む移動体マークアップ言語（ＭＭＬ）でプラットフォームにＭＬ文書を提供することができる。この場合、プラットフォームは、ＭＭＬ文書を調べてＭＭＬモジュールを識別し、含まれているモジュールに基づいてクラスツリーをインスタンス化する。その後、プラットフォームなどのリソースは、ツリーにされるので、ターゲット遠隔デバイスにより後で表示するために完全レンダリングされたＭＭＬ文書を提供することができるようになる。
【００１７】
レンダリングコンテキストは、様々なパラメータ及びデータを含むデータ構造として構成することができ、これらはプラットフォームによって利用されて特定の遠隔デバイスで表示するためにＭＬ文書内の各ページのレンダリングを最適化する。レンダリングコンテキストは、一般に、コンテンツプロバイダ、キャリア、及び／又は他の第三者サービスによって管理することができる別個のアプリケーション、プラットフォーム、又はプロセスによってプラットフォームに提供される。遠隔デバイスのレンダリングコンテキストは、限定ではないが、画面サイズ、色機能、マークアップ言語のタイプ、ブラウザアプリケーション、移動デバイス又はネットワークゲートウェイのソフトウェア又はハードウェアバージョンの既知のバグ、又は同様のものを含むことができる。また、プラットフォームは、様々な遠隔デバイス及びネットワークキャリアの属性に関連する構成データ、及び構成データを格納して取り出す方法を記憶することができる。少なくとも１つの実施形態において、ターゲット遠隔デバイスのレンダリングコンテキストに関連するデータ及び／又はパラメータの格納及び取り出しは、ＨＴＴＰクッキーで提供される。
【００１８】
デバイス固有言語文書へのＭＬ文書のレンダリングは、複数の様々なプロセスを含むことができ、（１）リクエストに応答してターゲット遠隔デバイスに関する位置情報を提供できるか否かを判定する段階と、（２）余剰シートを削除することによってカスケーディング・スタイル・シート（ＣＳＳ）を縮小する段階と、（３）カスケーディング・スタイル・シートをストリップしてＭＬコードとしてリライトすることによりＣＳＳを文字装飾する段階と、（４）ＭＬ文書を圧縮してターゲット遠隔デバイスにとって余剰なあらゆるＭＬコードを削除する段階と、（５）ページ内に埋め込むか又はリンクさせる各メディアアイテムの１つ又はそれ以上の属性を指定する段階と、（６）各ページサイズの推定値を利用して、ターゲット遠隔デバイスの有効ディスプレイ画面サイズを超えないサイズにＭＬ文書のページを再ページ付けする段階と、（７）ターゲット遠隔デバイスの有効ディスプレイ画面サイズよりも大きくレンダリングされると推定されるページ内のＭＬコードを調整／削除する段階と、及び／又は（８）コンテンツの位置及び／又はセッション識別情報を含むようにページ内のＵＲＬをリライトする段階と、を含む。
【００１９】
更に、ターゲット遠隔デバイスのためのＭＬ文書のページのレンダリングは、文書内のリンク又はＵＲＩをリライトする段階を含むことができる。例えば、ＭＬ文書が１つのフォーマットでの画像へのリンクを含む場合、ターゲット遠隔デバイスがこの第１フォーマットを表示することができない場合には、このリンクを第２フォーマットの代替的画像に変更することができる。リンクはまた、継続中のセッションを識別するための値などのパラメータを含むようにリライトすることができ、その結果、このリンクを用いた新たなリクエストがセッション識別子を返すようになる。
【００２０】
付加的に、複数の異なるプロセスのうちの少なくとも１つによりマークアップ言語文書のより高速な及び／又は効率的なレンダリングを可能にするために、一時マークアップ言語識別（ＭＬ  ＩＤ）を、既存ＭＬ  ＩＤをまだ有していない文書のページ内の各一意の文字列に付加することができる。各既存及び一時ＭＬ  ＩＤごとに一時インデックスを構築することができ、次いで、これを複数のプロセスで使用して、ＭＬ文書内の対応する要素（一意の文字列）を迅速に見つけてレンダリングする。デバイス固有言語へのレンダリングが完了すると、一時ＭＬ  ＩＤ及び一時インデックスは削除することができる。一時ＭＬ  ＩＤ及び一時インデックスを使用すると、特定のプロセスがターゲット遠隔デバイスのデバイス固有言語文書のレンダリングの一部を実行するためにＭＬ文書全体を構文解析しなければならない可能性を低減することができる。また、少なくとも１つの実施形態において、一時ＭＬ  ＩＤは、ＸＭＬ  ＩＤである。
【００２１】
（例示的な動作環境）
図１は、本発明を実施することができる環境の１つの実施形態の構成要素を示している。本発明を実施するために全ての構成要素が必要なわけではなく、本発明の精神又は範囲から逸脱することなく、各構成要素の配置及び種類において変形形態を形成することができる。図示のように図１のシステム１００は、ローカルエリアネットワーク（「ＬＡＮ」）、／広域ネットワーク（「ＷＡＮ」）−（ネットワーク）１０５、無線ネットワーク１１０、コンテンツレンダリングプラットフォーム（Ｃｏｎｔｅｎｔ  Ｒｅｎｄｅｒｉｎｇ  Ｐｌａｔｆｏｒｍ、ＣＲＰ）１０６、移動デバイス（クライアントデバイス）１０２−１０４、クライアントデバイス１０１、及びコンテンツプロバイダ１０７を含む。
【００２２】
移動デバイス１０２−１０３の１つの実施形態を図２に関連して以下で詳細に説明する。しかしながら、一般に、移動デバイス１０２−１０４は、ネットワーク１０５、無線ネットワーク１１０、又は同様のもののようなネットワーク上でメッセージを送受信することができるあらゆる携帯用コンピューティングデバイスを実質的に含むことができる。移動デバイス１０２−１０４はまた、携帯可能であるように構成されたクライアントデバイスとして一般に説明することもできる。従って、移動デバイス１０２−１０４は、他のコンピューティングデバイスに接続して情報を受け取ることができるあらゆる携帯用コンピューティングデバイスを実質的に含むことができる。このようなデバイスは、携帯電話、スマートフォン、ディスプレイページャ、無線周波数（ＲＦ）デバイス、赤外線（ＩＲ）デバイス、携帯情報端末（ＰＤＡ）、ハンドヘルドコンピュータ、ラップトップコンピュータ、ウェアラブルコンピュータ、タブレットコンピュータ、前述のデバイスの１つ又はそれ以上を組み合わせた統合型デバイス、及び同様のものなどの携帯用デバイスを含む。従って、移動デバイス１０２−１０４は通常、機能及び特徴の点で広範にわたる。例えば、携帯電話は、数字キーパッド、及びテキストのみを表示可能な数行の白黒のＬＣＤディスプレイを有することができる。別の実施例では、ウェブ対応の移動デバイスが、タッチセンシティブスクリーン、スタイラス、及びテキスト及びグラフィックスの両方を表示可能な数行のカラーＬＣＤディスプレイを有することができる。
【００２３】
ウェブ対応の移動デバイスは、ウェブページ、ウェブベースのメッセージ、及び同様のものを送受信するように構成されたブラウザアプリケーションを含むことができる。ブラウザアプリケーションは、無線アプリケーションプロトコルメッセージ（ＷＡＰ）及び同様のものを含むあらゆるウェブベースの言語を実質的に利用して、グラフィックス、テキスト、マルチメディア、及び同様のものを受け取って表示するように構成することができる。１つの実施形態において、移動デバイスのブラウザアプリケーションは、ハンドヘルドデバイスマークアップ言語（Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＨＤＭＬ）、無線マークアップ言語（Ｗｉｒｅｌｅｓｓ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＷＭＬ）、ＷＭＬＳｃｒｉｐｔ、ＪａｖａＳｃｒｉｐｔ（登録商標）、汎用マークアップ言語（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＳＧＭＬ）、ハイパーテキストマークアップ言語（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＨＴＭＬ）、拡張可能マークアップ言語（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＸＭＬ）、及び同様のものを利用してコンテンツを表示し、メッセージを通信できるようになっている。
【００２４】
移動デバイス１０２−１０４はまた、他のコンピューティングデバイスからコンテンツを受け取るように構成された少なくとも１つの別のクライアントアプリケーションを含むこともできる。クライアントアプリケーションは、テキストコンテンツ、グラフィックコンテンツ、オーディオコンテンツ、及び同様のものを提供して受け取る能力を含むことができる。クライアントアプリケーションは、更に、タイプ、能力、名前、及び同様のものを含む自己を識別する情報を提供することができる。１つの実施形態において、移動デバイス１０２−１０４は、電話番号、移動体識別番号（Ｍｏｂｉｌｅ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ、ＭＩＮ）、電子シリアル番号（ＥＳＮ）、又は他の移動デバイス識別子を含む様々な機構のいずれかを通じて自己を一意に識別させることができる。情報はまた、移動デバイスに利用可能なコンテンツフォーマット、移動デバイス製造者、モデル番号、ディスプレイ色、ディスプレイサイズ、使用可能機能、及び無線キャリアを示すこともできる。このような情報は、メッセージ又は同様のもので提供することができ、ＣＲＰ１０６、クライアントデバイス１０１、又は他のコンピューティングデバイスに送信される。
【００２５】
移動デバイス１０２−１０４はまた、ショートメッセージサービス（Ｓｈｏｒｔ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ、ＳＭＳ）、マルチメディアメッセージサービス（Ｍｕｌｔｉｍｅｄｉａ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ、ＭＭＳ）、インスタントメッセージング（ＩＭ）、インターネットリレーチャット（ＩＲＣ）、Ｍａｒｄａｍ−Ｂｅｙ’ｓ ＩＲＣ（ｍＩＲＣ）、Ｊａｂｂｅｒ、及び同様のものなどを通じて、ＣＲＰ１０６、クライアントデバイス１０１、又は同様のものなどの他のコンピューティングデバイスの間でメッセージを通信するように構成することができる。しかしながら、本発明は、これらのメッセージプロトコルに限定されず、実質的に他のあらゆるメッセージプロトコルを利用することもできる。
【００２６】
移動デバイス１０２−１０４は更に、ユーザがＩＭセッションなどの通信セッションに参加できるように構成することができる。従って、移動デバイス１０２−１０４は、クライアントデバイスの代わりに様々な動作を管理するように構成されたクライアントアプリケーションを含むことができる。例えば、クライアントアプリケーションにより、ユーザは、ブラウザアプリケーション、電子メールアプリケーション、ＩＭアプリケーション、ＳＭＳアプリケーション、ＭＭＳアプリケーション、及び同様のものと対話できるようにすることができる。
【００２７】
移動デバイス１０２−１０４は更に、エンドユーザがエンドユーザアカウントにログインできるようにするクライアントアプリケーションを含むように構成することができ、エンドユーザアカウントは、コンテンツプロバイダ１０７などの他のコンピューティングデバイスによって管理することができる。例えばこのようなエンドユーザアカウントは、エンドユーザが、電子メールの受信、ＩＭメッセージ、ＳＭＳメッセージの送受信、選択したウェブページへのアクセス、ソーシャルネットワーキング活動への参加、又は同様のものを行えるように構成することができる。しかしながら、種々のソーシャルネットワーキング活動への参加はまた、エンドユーザアカウントにログインしなくても実行することができる。付加的に、移動デバイス１０２−１０４はまた、クライアントデバイス１０１又は同様のものなどの非移動体クライアントデバイスと通信することもできる。
【００２８】
クライアントデバイス１０１は、ソーシャルネットワーキング情報又は同様のものを含む情報を送受信するためにネットワーク上で通信可能なあらゆるコンピューティングデバイスを実質的に含むことができる。このようなデバイスのセットは、パーソナルコンピュータ、マルチプロセッサシステム、マイクロプロセッサベース又はプログラム可能消費者電子技術、ネットワークＰＣ、又は同様のものなど、典型的に有線又は無線通信を用いて接続するデバイスを含むことができる。
【００２９】
無線ネットワーク１１０は、移動デバイス１０２−１０４及びその構成要素をネットワーク１０５と結合するように構成されている。無線ネットワーク１１０は、様々な無線サブネットワークのいずれかを含むことができ、これらは更に、スタンドアロンのアドホックネットワーク及び同様のものにオーバーレイして、インフラストラクチャ指向接続を移動デバイス１０２−１０４に提供することができる。このようなサブネットワークは、メッシュネットワーク、無線ＬＡＮ（ＷＬＡＮ）ネットワーク、セルラーネットワーク、及び同様のものを含むことができる。
【００３０】
無線ネットワーク１１０は更に、無線ラジオ回線及び同様のものによって接続された端末、ゲートウェイ、ルータ、及び同様のものの自律システムを含むことができる。これらのコネクタは、自由且つランダムに移動して自己を任意に編成するように構成することができるので、無線ネットワーク１１０のトポロジは迅速に変化することができる。
【００３１】
無線ネットワーク１１０は更に、セルラーシステム用の第２（２Ｇ）、第３（３Ｇ）、及び第４（３Ｇ）世代無線アクセス、ＷＬＡＮ、ＷｉＭａｘ、無線ルータ（Ｗｉｒｅｌｅｓｓ  Ｒｏｕｔｅｒ、ＷＲ）メッシュ、及び同様のものを含む、複数のアクセス技術を利用することができる。２Ｇ、３Ｇ、３Ｇ及びそれ以降の無線アクセスネットワークなどのアクセス技術は、様々な移動度を有する移動デバイス１０２−１０４など、移動デバイスに対して広範なカバレッジを可能にすることができる。例えば、無線ネットワーク１１０は、移動体通信用グローバルシステム（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎ、ＧＳＭ）、汎用パケット無線サービス（Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅｓ、ＧＰＲＳ）、Ｅｎｈａｎｃｅｄ  Ｄａｔａ  ＧＳＭ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＥＤＧＥ）、広帯域符号分割多元接続（Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ、ＷＣＤＭＡ）、ユニバーサル移動体通信システム（Ｕｎｉｖｅｒｓａｌ  Ｍｏｂｉｌｅ  Ｔｅｌｅｐｈｏｎｅ  Ｓｙｓｔｅｍ、ＵＭＴＳ）、及び同様のものなど、無線ネットワークアクセスを通じて無線接続を可能にすることができる。基本的に、無線ネットワーク１１０は、移動デバイス１０２−１０４と他のコンピューティングデバイス、ネットワーク、及び同様のものとの間を情報が移動できるあらゆる無線通信機構を実質的に含むことができる。
【００３２】
ネットワーク１０５は、ＣＲＰ１０６及びその構成要素を、移動デバイス１０２−１０４、クライアントデバイス１０１を含む他のコンピューティングデバイスと結合し、無線ネットワーク１１０を通じて移動デバイス１０２−１０４に結合するように構成されている。ネットワーク１０５は、一方の電子デバイスから他方に情報を通信するためにあらゆる形式のコンピュータ可読媒体を利用できるようにされている。また、ネットワーク１０５は、ローカルエリアネットワーク（ＬＡＮ）及び広域ネットワーク（ＷＡＮ）に加えてインターネット、ユニバーサルシリアルバス（ＵＳＢ）ポートなどを通じたダイレクト接続、他の形式のコンピュータ可読媒体、或いはこれらのあらゆる組み合わせなどを含むことができる。様々なアーキテクチャ及びプロトコルに基づくものを含むＬＡＮの相互接続セット上において、ルータは、ＬＡＮ間のリンクとして動作し、一方から他方へメッセージを送信することを可能にする。また、ＬＡＮ内の通信リンクは通常、ツイストペア線又は同軸ケーブルを含むが、ネットワーク間の通信リンクは、アナログ電話回線、Ｔ１、Ｔ２、Ｔ３、及びＴ４を含む完全又は部分的な専用デジタル回線、総合デジタル通信網（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｇｉｔａｌ  ｎｅｔｗｏｒｋｓ、ＩＳＤＮ）、デジタル加入者回線（Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅｓ、ＤＳＬ）、衛星回線を含む無線回線、或いは当業者に公知の他の通信リンクを利用することができる。更に、遠隔コンピュータ及び他の関連電子デバイスは、モデム及び一時電話回線を介してＬＡＮ又はＷＡＮのいずれかに遠隔で接続することができる。基本的に、ネットワーク１０５は、ＣＲＰ１０６、クライアントデバイス１０１、及び他のコンピューティングデバイスとの間を情報が移動できるあらゆる通信方法を含む。
【００３３】
付加的に、通信媒体は通常、コンピュータ読み出し可能命令、データ構造、プログラムモジュール、或いは搬送波データ信号、又は他の伝送機構などの変調データ信号内の他のデータを具現化し、あらゆる情報配信媒体を含む。用語「変調データ信号」及び「搬送波信号」は、情報、命令、データ及び同様のものを信号内で符号化するようにして設定又は変更された特性の１つ又はそれ以上を有する信号を含む。例証として、通信媒体は、ツイストペア、同軸ケーブル、光ファイバー、導波管、及び他の有線媒体などの有線媒体と、音響、ＲＦ、赤外線、及び他の無線媒体などの無線媒体とを含む。
【００３４】
ＣＲＰ１０６の１つの実施形態を図３に関連して以下でより詳細に説明する。しかしながら簡潔に述べると、ＣＲＰ１０６は、ネットワーク１０５に接続して、移動デバイス１０２−１０４及びクライアントデバイス１０１などの特定の遠隔デバイスによって後で表示するために、マークアップ言語のテンプレート及びページの言語不可知のレンダリング用プラットフォームを有効にできるあらゆるコンピューティングデバイスを含むことができる。特定の遠隔デバイスのレンダリングコンテキスト及びマークアップ言語文書は、プラットフォームによって受け取られ、これらを共に処理してデバイス固有言語で文書を生成し、この文書が後で特定の遠隔デバイスに配信され、該デバイスによって表示される。ＣＲＰ１０６として動作することができるデバイスは、パーソナルコンピュータ、デスクトップコンピュータ、マルチプロセッサシステム、マイクロプロセッサベース又はプログラム可能消費者電子技術、ネットワークＰＣ、サーバ、及び同様のものを含む。
【００３５】
図１では、ＣＲＰ１０６を単一のコンピューティングデバイスとして示しているが、本発明はこれに限定されない。例えば、ＣＲＰ１０６の１つ又はそれ以上の機能を１つ又はそれ以上の別個のコンピューティングデバイスにわたって分散させることができる。例えば、コンテンツのレンダリング及び同様のことを本発明の範囲又は精神から逸脱することなく複数のコンピューティングデバイスによって実行することができる。
【００３６】
コンテンツプロバイダ１０７はまた、コンテンツを遠隔デバイスに提供するのに用いられる各種のサービスを含むことができる。このようなサービスは、限定ではないが、ウェブサービス、第三者サービス、オーディオサービス、ビデオサービス、電子メールサービス、ＩＭサービス、ＳＭＳサービス、ＭＭＳサービス、ＶＯＩＰサービス、ビデオゲームサービス、ゲームサービス、カレンダーサービス、ショッピングサービス、写真サービス、又は同様のものを含む。コンテンツプロバイダ１０７として動作することができるデバイスは、パーソナルコンピュータ、デスクトップコンピュータ、マルチプロセッサシステム、マイクロプロセッサベース又はプログラム可能消費者電子技術、ネットワークＰＣ、サーバ、及び同様のものを含む。
【００３７】
（例示的な移動デバイス）
図２は、本発明を実施するシステムに含めることができる移動デバイス２００の１つの実施形態を示している。移動デバイス２００は、図２に示したよりも多いか又は少ない構成要素を含むことができる。しかしながら、図示の構成要素は、本発明を実施するための例示的な実施形態を開示するのに十分である。例えば、移動デバイス２００は、図１の移動デバイス１０２−１０４を表すことができる。
【００３８】
図に示すように、移動デバイス２００は、バス２２４を介してマスメモリ２３０と通信する処理ユニット（ＣＰＵ）２２２を含む。移動デバイス２００はまた、電源２２６、１つ又はそれ以上のネットワークインタフェース２５０、オーディオインタフェース２５２、ディスプレイ２５４、キーパッド２５６、発光体２５８、入力／出力インタフェース２６０、触覚インタフェース２６２、及び任意の全地球測位システム（ＧＰＳ）受信機２６４を含む。電源２２６は、移動デバイス２００に電力を供給する。充電式又は非充電式電池を用いて電力を供給することができる。電力はまた、ＡＣアダプタ又は電池を補足する又は再充電する電力供給用ドッキングクレードルのような外部電源によって供給することもできる。
【００３９】
移動デバイス２００は、任意選択的に、基地局（図示せず）と通信し、或いは別のコンピューティングデバイスと直接通信することができる。ネットワークインタフェース２５０は、移動デバイス２００を１つ又はそれ以上のネットワークに結合するための回路を含み、限定ではないが、移動体通信用グローバルシステム（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎ、ＧＳＭ）、符号分割多元接続（ｃｏｄｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ、ＣＤＭＡ）、広帯域ＣＤＭＡ（Ｗｉｄｅ  ＣＤＭＡ、ＷＣＤＭＡ）、時分割多元接続（ｔｉｍｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ、ＴＤＭＡ）、ユニバーサル移動体通信システム（Ｕｎｉｖｅｒｓａｌ  Ｍｏｂｉｌｅ  Ｔｅｌｅｐｈｏｎｅ  Ｓｙｓｔｅｍ、ＵＭＴＳ）、ユーザデータグラムプロトコル（ＵＤＰ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ＳＭＳ、汎用パケット無線サービス（ｇｅｎｅｒａｌ  ｐａｃｋｅｔ  ｒａｄｉｏ  ｓｅｒｖｉｃｅ、ＧＰＲＳ）、ＷＡＰ、超広帯域（ＵＷＢ）、ＩＥＥＥ  ８０２．１６のＷｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ Ａｃｃｅｓｓ  （ＷｉＭａｘ）、ＳＩＰ／ＲＴＰ、又は様々な他の無線通信プロトコルのいずれかを含む、１つ又はそれ以上の通信プロトコル及び技術と共に使用するように構成されている。ネットワークインタフェース２５０は、場合によっては、トランシーバ、送受信デバイス、又はネットワークインタフェースカード（ＮＩＣ）としても知られる。
【００４０】
オーディオインタフェース２５２は、人間の音声などのオーディオ信号を生成し受信するように構成されている。例えば、オーディオインタフェース２５２は、スピーカ及びマイクロフォン（図示せず）に結合されて、他との電気通信を可能にし、及び／又は何らかの行動に関するオーディオ確認応答を生成することができる。ディスプレイ２５４は、液晶ディスプレイ（ＬＣＤ）、ガスプラズマ、発光ダイオード（ＬＥＤ）、又はコンピューティングデバイスで用いられる他のあらゆるタイプのディスプレイとすることができる。ディスプレイ２５４はまた、スタイラスなどの物体又は人間の手による指からの入力を受け取るように構成されたタッチセンシティブスクリーンを含むことができる。
【００４１】
キーパッド２５６は、ユーザからの入力を受け取るように構成されたあらゆる入力デバイスを含むことができる。例えば、キーパッド２５６は、プッシュボタン式の数字ダイヤル又はキーパッドを含むことできる。キーパッド２５６はまた、画像の選択及び送信に関連するコマンドボタンを含むことができる。発光体２５８は、ステータス表示を提供し及び／又は光を提供することができる。発光体２５８は、特定の時間期間又はイベントに応答してアクティブを維持することができる。例えば、発光体２５８がアクティブであるときに、キーパッド２５６上のボタンをバックライトで照らし、クライアントデバイスに電源が入っている間はそのままの状態を続けることができる。また、発光体２５８は、別のクライアントデバイスにダイヤルするなど、特定の動作が実行されるときに様々なパターンでこれらのボタンをバックライトで照らすことができる。発光体２５８はまた、動作に応答して発光するようにクライアントデバイスの透明又は半透明ケース内に光源を配置させることもできる。
【００４２】
移動デバイス２００はまた、ヘッドセット、或いは図２に示していない他の入力又は出力デバイスなどの外部デバイスと通信するための入力／出力インタフェース２６０を含むことができる。入力／出力インタフェース２６０は、ＵＳＢ、赤外線、Ｂｌｕｅｔｏｏｔｈ（商標）、又は同様のものなど、１つ又はそれ以上の通信技術を利用することができる。触覚インタフェース２６２は、クライアントデバイスのユーザに触覚フィードバックを提供するように構成されている。例えば、触覚インタフェースを利用して、コンピューティングデバイスの他のユーザが呼び出しているときに特定の方法で移動デバイス２００を振動させることができる。
【００４３】
任意選択のＧＰＳトランシーバ２６４は、地球表面上の移動デバイス２００の物理座標を特定することができ、通常は、位置を緯度及び経度として出力する。ＧＰＳトランシーバ２６４はまた、限定ではないが、三角測量、アシストＧＰＳ（ＡＧＰＳ）、Ｅ−ＯＴＤ、ＣＩ、ＳＡＩ、ＥＴＡ、ＢＳＳ、又は同様のものを含む他の測位機構を利用して、地球表面上の移動デバイス２００の物理位置を特定することができる。様々な状況下において、ＧＰＳトランシーバ２６４は、移動デバイス２００に関してミリメートル内で物理位置を特定することができ、他の事例では、特定された物理位置がメートル単位又は極めて大きな距離内など、精度が低い場合もある点は理解されたい。しかしながら、１つの実施形態において、移動デバイスは、他の構成要素を通じて、例えばＭＡＣアドレス、ＩＰアドレス、又は同様のものを含むデバイスの物理位置を特定するのに利用可能な他の情報を提供することができる。
【００４４】
マスメモリ２３０は、ＲＡＭ２３２、ＲＯＭ２３４、及び他の格納手段を含む。マスメモリ２３０は、コンピュータ読み出し可能命令、データ構造、プログラムモジュール、又は他のデータなどの情報を格納するためのコンピュータ記憶媒体の別の実施例を示している。マスメモリ２３０は、移動デバイス２００の下位動作を制御する基本入出力システム（「ＢＩＯＳ」）２４０を格納する。マスメモリはまた、移動デバイス２００の動作を制御するためのオペレーティングシステム２４１も格納する。この構成要素は、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（商標）などの汎用オペレーティングシステム、或いは、Ｗｉｎｄｏｗｓ  Ｍｏｂｉｌｅ（商標）又はＳｙｍｂｉａｎ（登録商標）オペレーティングシステムなどの専用クライアント通信オペレーティングシステムを含むことができる点は理解されるであろう。オペレーティングシステムは、Ｊａｖａ（登録商標）アプリケーションプログラムを介してハードウェア構成要素及び／又はオペレーティングシステム動作の制御を可能にするＪａｖａ（登録商標）仮想マシンモジュールを含む、或いはこれとインタフェースすることができる。
【００４５】
メモリ２３０は更に、１つ又はそれ以上のデータストレージ２４４を含み、これらは、とりわけ、アプリケーション２４２及び／又は他のデータを格納するために移動デバイス２００によって利用することができる。例えば、データストレージ２４４はまた、移動デバイス２００の様々な機能を記述する情報を格納するために利用することもできる。この情報は次に、通信中にヘッダの一部として送信される、リクエストに応じて送信される、又は同様のことを含む、様々なイベントのいずれかに基づいて他のデバイスに提供することができる。
【００４６】
アプリケーション２４２は、移動デバイス２００によって実行されたときに、メッセージ（例えば、ＳＭＳ、ＭＭＳ、ＩＭ、電子メール、及び／又は他のメッセージ）、オーディオ、及びビデオを送信、受信、及び／又は他の方法で処理して、他のクライアントデバイスの他のユーザとの電気通信を可能にするコンピュータ実行可能命令を含むことができる。アプリケーションプログラムの別の実施例は、カレンダー、ブラウザ、電子メールクライアント、ＩＭアプリケーション、ＳＭＳアプリケーション、ＶＯＩＰアプリケーション、コンタクトマネージャ、タスクマネージャ、トランスコーダ、データベースプログラム、ワードプロセッシングプログラム、セキュリティアプリケーション、スプレッドシートプログラム、ビデオゲーム、ゲームプログラム、検索プログラム、ショッピングカートプログラム、及びその他を含む。アプリケーション２４２は更に、ブラウザ２４５を含むことができる。
【００４７】
ブラウザ２４５は、コンテンツプロバイダ１０７からＣＲＰ１０６によって提供されたレンダリングされたコンテンツの表示を受け取って有効にするように構成することができる。更に、ブラウザ２４５は、移動デバイス２００のユーザが、レンダリングされたコンテンツによって表示された様々な行動を選択できるようにする。少なくとも１つの実施形態において、ブラウザ２４５により、ユーザは、購入する製品の１つ又はそれ以上の選択、コンテンツの検索及び結果の表示、移動電話デバイスに電話をかけること、メッセージの表示及び応答、或いは同様のことを行うことができる。移動デバイス上に表示するためにコンテンツをレンダリングするための様々な実施形態を以下でより詳細に説明する。
【００４８】
（例示的なネットワークデバイス）
図３は、本発明の１つの実施形態によるネットワークデバイスの１つの実施形態を示している。ネットワークデバイス３００は、ここに図示したよりも多くの構成要素を含むことができる。しかしながら、ここに図示した構成要素は、本発明を実施するための例示的な実施形態を開示するのに十分である。ネットワークデバイス３００は、例えば、図１のＣＲＰ１０６、クライアントデバイス１０１、及び／又はコンテンツプロバイダ１０７を表すことができる。
【００４９】
ネットワークデバイス３００は、処理ユニット３１２、ビデオディスプレイアダプタ３１４、及びマスメモリを含み、これらは全てバス３２２を介して互いに通信している。マスメモリは、一般に、ＲＡＭ３１６、ＲＯＭ３３２、及びハードディスクドライブ３２８、テープドライブ、光学式ドライブ、及び／又はフロッピー（登録商標）ディスクドライブなどの１つ又はそれ以上の永続的大容量記憶装置を含む。マスメモリは、ネットワークデバイス３００の動作を制御するためのオペレーティングシステム３２０を格納する。あらゆる汎用オペレーティングシステムを利用することができる。ネットワークデバイス３００の下位動作を制御するために、基本入出力システム（「ＢＩＯＳ」）３１８も設けられる。図３に示すように、ネットワークデバイス３００はまた、インタフェース又は他の何らかの通信ネットワークとネットワークインタフェースユニット３１０を介して通信することもでき、ネットワークインタフェースユニットは、ＴＣＰ／ＩＰプロトコルを含む様々な通信プロトコルで使用するように構成されている。ネットワークインタフェースユニット３１０は、場合によっては、トランシーバ、送受信デバイス、又はネットワークインタフェースカード（ＮＩＣ）としても知られる。
【００５０】
上述のようなマスメモリは、他のタイプのコンピュータ可読媒体、すなわち、コンピュータ記憶媒体を示している。コンピュータ記憶媒体は、コンピュータ読み出し可能命令、データ構造、プログラムモジュール、又は他のデータなど、情報を格納するためにいずれかの方法又は技術で実装された揮発性、不揮発性、取り外し可能、及び取り外し不能媒体を含むことができる。コンピュータ記憶媒体の実施例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、又は他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、又は他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、又は他の磁気記憶装置、或いは、所望の情報を格納するために使用することができ且つコンピューティングデバイスによってアクセス可能な他のあらゆる媒体を含む。
【００５１】
マスメモリはまた、プログラムコード及びデータを格納する。１つ又はそれ以上のアプリケーション３５０は、マスメモリにロードされ、オペレーティングシステム３２０上で実行される。アプリケーションプログラムの実施例は、トランスコーダ、スケジューラ、カレンダー、データベースプログラム、ワードプロセッシングプログラム、ＨＴＴＰプログラム、カスタマイズ可能ユーザインタフェースプログラム、ＩＰＳｅｃアプリケーション、暗号化プログラム、セキュリティプログラム、ＶＰＮプログラム、ＳＭＳメッセージサーバ、ＩＭメッセージサーバ、電子メールサーバ、アカウント管理、及びその他を含むことができる。コンテンツレンダリングプラットフォーム（ＣＲＰ）３５４もまた、アプリケーションプログラムとしてアプリケーション３５０内に含めることができる。
【００５２】
ＣＲＰ３５４は、１つ又はそれ以上のリソースからレンダリングコンテキスト情報及びマークアップ言語文書を受け取るプラットフォーム及び／又はサーバとして構成可能である。ＣＲＰ３５４は、ターゲット遠隔デバイス上での後続の表示及び／又は対話に好適な方法でレンダリングコンテキストに少なくとも部分的に基づいて、デバイス固有言語文書で自動的にマークアップ言語文書をレンダリング及び調整する。
【００５３】
（例示的なプラットフォーム）
図４は、複合マークアップ言語（ＭＬ）文書及びレンダリングコンテキストを利用して、文書をデバイス固有言語文書にレンダリングして後でターゲット遠隔デバイス上に表示するためのプラットフォーム４００の１つの実施形態の概要を示している。複合ＭＬ文書４０６は、より多くのＭＬコードに分解することができる。また、レンダリングコンテキスト４０４は、ターゲット遠隔デバイスのデータ及びパラメータの特定の組み合わせを識別するための一意の識別子を含むことができる。
【００５４】
１つ又はそれ以上の他のサービス、プラットフォーム、及び／又はアプリケーションから、メインコンポーネント４０２が、複合ＭＬ文書４０６及びレンダリングコンテキスト４０４を受け取る。メインコンポーネント４０２は、複合ＭＬコードの妥当性を確認して、レンダリングコンテキストと共に含まれているデータ、パラメータ、及び一意の識別子をチェックする。エラーが検出された場合、メインコンポーネント４０２は、このようなエラーの通知を提供し、これを、ターゲット遠隔デバイス及び／又はメインコンポーネントに対する複合ＭＬ文書の提供者に提供することができる。
【００５５】
少なくとも１つの実施形態において、コンテンツプロバイダ、他のプラットフォーム、及び／又はアプリケーションによって複合ＭＬ文書がプラットフォーム４００に提供される。同様に、レンダリングコンテキストは、１つ又はそれ以上のサービス、プラットフォーム、アプリケーション、及び／又は遠隔デバイスの製造者、遠隔デバイスからのメッセージ内のヘッダ情報、遠隔デバイスと通信しているキャリアのゲートウェイからの情報、移動デバイスのソフトウェア及び／又はハードウェア内の既知のバグを含むソースからリアルタイム及び／又は帯域外で別個に特定される。
【００５６】
キャッシュ４１２は、複合ＭＬ文書に含まれるコードの文書オブジェクトモデルツリーを格納するように構成されている。また、文書オブジェクトモデルツリーがキャッシュ４１２内に最初に存在しない場合、ＭＬパーサ４１０が文書を構文解析してＭＬ文書オブジェクトモデルツリー４１４を作成し、その後、これがキャッシュ内に格納される。いずれの場合においても、キャッシュに入れられたツリーは、マークアップエキスパンダ４１４に転送されて、これがネイティブＭＬタグの文書オブジェクトモデルツリーを生成する。リソースマネージャ４３４は、コンポーネント４３６を利用して指定リソースの置換を可能にし、コンポーネント４３８を利用してライブラリから複合タグを拡張する。
【００５７】
マークアップエキスパンダ４１８は、コンディショナ４２６にネイティブＭＬツリー４２４を提供し、ここで解決プロセス、すなわち、ターゲット遠隔デバイスによって後で表示するために空白の削除及びページ付けが実行される。調整されたネイティブＭＬツリーは、マークアップレゾルバ４２８に提供され、ここでコンポーネント４３０が、テンプレートのレンダリングを実行し、コンポーネント４３２がキャッシュ内に含まれたタグをレンダリングする。タグテンプレートは、リソースマネージャ４３４に関連付けられたコンポーネント４４０によって提供される。マークアップレゾルバ４２８は、最初に提供された複合ＭＬ文書に基づいてデバイス固有言語の文書をメインコンポーネント４０２に提供する。メインコンポーネント４０２は、その後、ターゲット遠隔デバイスに配信するためにデバイス固有言語文書４１６を提供する。
【００５８】
レンダリングは、デバイス固有言語の文書へのＭＬ文書の完全レンダリングに寄与する複数の様々なプロセスを含むことができ、（１）リクエストに応答してターゲット遠隔デバイスに関する位置情報を提供できるか否かを判定する段階と、（２）余剰シートを削除することによってカスケーディング・スタイル・シート（ＣＳＳ）を縮小する段階と、（３）カスケーディング・スタイル・シートをストリップしてＭＬコードとしてリライトすることによりＣＳＳを文字装飾する段階と、（４）ＭＬ文書を圧縮してターゲット遠隔デバイスにとって余剰なあらゆるＭＬコードを削除する段階と、（５）ページ内に埋め込むか又はリンクさせる各メディアアイテムの１つ又はそれ以上の属性を指定する段階と、（６）各ページサイズの推定値を利用して、ターゲット遠隔デバイスの有効ディスプレイ画面サイズを超えないサイズにＭＬ文書のページを再ページ付けする段階と、（７）ターゲット遠隔デバイスの有効ディスプレイ画面サイズよりも大きくレンダリングされると推定されるページ内のＭＬコードを調整／削除する段階と、及び（８）メディアアイテムの位置及び／又はセッション識別情報を含むようにページ内のＵＲＬをリライトする段階と、を含む。
【００５９】
ページ付けプロセスは、一般に、マークアップレゾルバ４２８及びコンディショナ４２６の組み合わせ動作と共に実行される。レンダリングコンテキスト４０４には、コンディショナ４２６によって各ページのターゲット遠隔デバイスの有効／最大ページサイズが問い合わせされる。レンダリングされることになる各ページのサイズの一般的な推定値は、各ページ内に含まれるノードを分析することによって求められる。推定値は、ターゲット遠隔デバイスの有効ページサイズと比較されて、別の新しいページに再ページ付けするか又は既存ページから調整／削除する必要のあるページデータのオフセットが存在するか否かを判定する。コンディショナ４２６はまた、ネイティブＭＬツリーを調べて、オフセットが位置する場所で分割可能として定義される各ノードを識別する。分割可能なノードの後のコンテナは、マークアップレゾルバ４２８による後続のマークアップ解決のためのブレークオフポイントとしてコンディショナ４２６によってタグで識別される。
【００６０】
更に、ページ付けプロセスはマークアップレゾルバ４２８によって完了され、マークアップレゾルバ４２８は、コンディショナ４２６によってレンダリングのためにタグ付けされたページ内のノードをレンダリングし、他はレンダリングしない。しかしながら、ノードがレンダリングされるたびに、レンダリングされたノードのサイズは、その特定のページの現在の合計サイズに記入される。マークアップレゾルバ４２８が、分割するためにタグ付けされたコンテナをレンダリングした後、レゾルバは、分割が他のタグ内で発生するか否かをチェックする。タグ上で分割が発生した場合、分割は、前のタグ又はデータに従うように設定される。しかしながら、分割がタグ上で発生しない場合、分断方法を実行してオフセットを見つけ、分割が、過度に長いワード、例えば、リソースマネージャ４３４によって調整可能な１００文字長を超える空白上で発生する。付加的に、ページ内に分割を挿入した後、マークアップレゾルバ４２８は、分割ページの次及び前ページへの表示可能なリンクを必要に応じて含むページの末尾タグをレンダリングすることができる。
【００６１】
また、図示していないが、プラットフォームは、レンダリング後コンポーネントが、ターゲット遠隔デバイスにより後で表示／再生するために、デバイス固有言語文書内にメディアアイテムを埋め込むのを可能にすることができる。メディアアイテムは、画像、オーディオファイル、サウンド、グラフィックス、ビデオ、アニメーション、又は同様のものを含むことができる。付加的に、文書をターゲット遠隔デバイスに提供する前に、デバイス固有言語文書のテキスト及び他のあらゆる要素のローカライゼーションを実行することができる。
【００６２】
図５Ａは、ターゲット遠隔デバイスの対応するレンダリングコンテキスト５０６に少なくとも部分的に基づくマークアップ言語（ＭＬ）文書５０４のパイプラインレンダリングにおけるプラットフォーム５０２の１つの実施形態の概要５００を示している。レンダリングコンテキスト５０６及びＭＬ文書５０４は、マスタ文書アセンブラ５０８によって事前処理することができ、ここで略式手続きが処理され、例えば、単位を付加し、空白を埋め、及び／又はフッタを付加することができる。マスタ文書アセンブラ５０８は、（事前処理された）ＭＬ文書５０４及びレンダリングコンテキスト５０４をプラットフォーム５０２に提供して、ここでパイプラインビルダコンポーネント５１２が文書を構文解析し、デバイス固有言語の文書へのＭＬ文書の完全レンダリングに寄与する様々な処理ステージを求めて識別し、これはまた、ターゲット遠隔デバイスのレンダリングコンテキストに少なくとも部分的に基づいている。パイプラインビルダコンポーネント５１２は、パイプラインステージライブラリ５１４を利用してパイプラインステージコンポーネント５１６を生成し、これは、デバイス固有言語の文書へのＭＬ文書５０４の完全レンダリングに寄与する識別された各プロセスのステージを含めるように構成されている。更に、メインコンポーネント５１０は、ＭＬ文書５０４及びレンダリングコンテキスト５０６に基づく文書オブジェクトモデル（ＤＯＭ）ツリーを生成する。ＤＯＭツリー及びレンダリングコンテキスト５０６の両方が、パイプラインステージコンポーネント５１６内のステージの少なくとも一部に提供される。
【００６３】
ステージは、デバイス固有言語文書へのＭＬ文書５０４の完全レンダリングに寄与する複数の様々なプロセスを可能にすることができ、（１）リクエストに応答してターゲット遠隔デバイスに関する位置情報を提供できるか否かを判定する段階と、（２）余剰シートを削除することによってカスケーディング・スタイル・シート（ＣＳＳ）を縮小する段階と、（３）カスケーディング・スタイル・シートをストリップしてＭＬコードとしてリライトすることによりＣＳＳを文字装飾する段階と、（４）ＭＬ文書を圧縮してターゲット遠隔デバイスにとって余剰なあらゆるＭＬコードを削除する段階と、（５）ページ内に埋め込むか又はリンクさせる各メディアアイテムの１つ又はそれ以上の属性を指定する段階と、（６）各ページサイズの推定値を利用して、ターゲット遠隔デバイスの有効ディスプレイ画面サイズを超えないサイズにＭＬ文書のページを再ページ付けする段階と、（７）ターゲット遠隔デバイスの有効ディスプレイ画面サイズよりも大きくレンダリングされると推定されるページ内のＭＬコードを調整／削除する段階と、及び（８）メディアアイテムの位置及び／又はセッション識別情報を含むようにページ内のＵＲＬをリライトする段階と、を含む。
【００６４】
付加的に、一時インデックス付加及び一時インデックス削除ステージ（図示せず）をパイプラインステージライブラリ５１４内に任意選択的に含め、及びパイプラインステージコンポーネント５１６内の処理ステージとして含めることができる。一時インデックス付加ステージは、ＭＬ文書５０４を構文解析し、ＸＭＬＩＤタグをまだ有していない文書内の各一意の文字列を識別し、その後、これらの一意の文字列に一時ＩＤタグを提供するように構成することができる。また、このステージは、一時及び既存ＸＭＬＩＤタグの全てに関して一時インデックスをオンザフライで構築することができる。その後、コンポーネント５１６内の他のパイプラインステージは、この一時インデックスを用いて、特定のステージによってデバイス固有言語にレンダリングされることになるＭＬ文書内のこれらの要素にだけ迅速にアクセスすることができるようになる。他のパイプラインステージによってレンダリングが完了すると、一時インデックス削除ステージが、一時ＸＭＬＩＤ及び一時インデックスを削除する。一時ＭＬ  ＩＤ及び一時インデックスを使用すると、特定のプロセスがターゲット遠隔デバイスのデバイス固有言語文書への完全レンダリングの一部分を実行するためにＭＬ文書全体を構文解析しなければならない可能性を低減することができる。
【００６５】
シリアライザ５１８は、ターゲット遠隔デバイスのデバイス固有言語文書を受け取って、これを該デバイスとの通信リンク上での送信に好適なキャラクタバイトのストリームに変換する。付加的に、特定の言語のキャラクタバイトをローカライズするように別個のコンポーネントを構成することができ、ターゲット遠隔デバイスのキャラクタストリーム内にメディアアイテムを埋め込むように他のコンポーネントを構成することができる。
【００６６】
図５Ｂは、図５Ａに示したようなパイプラインステージコンポーネント５１６内に含めることができる複数の例示的なステージの１つの実施形態の概要を示している。コンポーネント５１６は、一時インデックス付加ステージ５３０、位置リクエストステージ５３２、縮小ステージ５３４、ページ付けステージ５３６、文字装飾ステージ５３８、メディアアイテムステージ５４０、及び一時インデックス削除ステージ５４２を含むように示されている。コンポーネント５１６内に含まれるステージは、特定のターゲット遠隔デバイスに対応し、異なるターゲット遠隔デバイスにレンダリングが実行されることになっている場合には、全てのステージではないその一部分に加えて、場合によっては他のステージもまた、コンポーネント５１６に含めることができる。
【００６７】
（例示的な移動体マークアップ言語）
図６は、移動体マークアップ言語（ＭＭＬ）で作成された文書内に含まれるモジュールからインスタンス化することができるクラスツリーの概要６００を示している。ＭＭＬは、ターゲット遠隔デバイスの考慮事項とは相対的に無関係であり、そのクラスは、少なくとも上述のプラットフォーム又は他のリソースの様々な実施形態によってインスタンス化することができる。プラットフォームのメインコンポーネントは、ＭＭＬ文書を自動的に構文解析して、各ＭＭＬモジュールを識別し、その後、識別したモジュールに基づいてクラスツリーをインスタンス化することができる。別の実施形態では、ターゲット遠隔デバイスにおいて後で表示するためにレンダリングすることができる実質的にあらゆるタイプのマークアップ言語文書を生成するようにクラスを構成することができる。
【００６８】
デバイス固有言語文書へのＭＭＬ文書のレンダリングは、レンダリングに寄与する複数の様々なプロセスを含むことができ、（１）リクエストに応答してターゲット遠隔デバイスに関する位置情報を提供できるか否かを判定する段階と、（２）余剰シートを削除することによってカスケーディング・スタイル・シート（ＣＳＳ）を縮小する段階と、３）カスケーディング・スタイル・シートをストリップしてＭＬコードとしてリライトすることによりＣＳＳを文字装飾する段階と、（４）ＭＬ文書を圧縮してターゲット遠隔デバイスにとって余剰なあらゆるＭＬコードを削除する段階と、（５）ページ内に埋め込むか又はリンクさせる各メディアアイテムの１つ又はそれ以上の属性を指定する段階と、（６）各ページサイズの推定値を利用して、ターゲット遠隔デバイスの有効ディスプレイ画面サイズを超えないサイズにＭＬ文書のページを再ページ付けする段階と、（７）ターゲット遠隔デバイスの有効ディスプレイ画面サイズよりも大きくレンダリングされると推定されるページ内のＭＬコードを調整／削除する段階と、及び（８）メディアアイテムの位置及び／又はセッション識別情報を含むようにページ内のＵＲＬをリライトする段階と、を含む。
【００６９】
付加的に、ＭＭＬ文書は、少なくとも２つのカテゴリのデータ構造、例えば、構造及びモジュールタグを含むことができる。構造カテゴリは、コンテンツタグ、形式タグ、モードタグ、及び構成タグ、及び同様のものを含むことができる。また、モジュールカテゴリは、汎用モジュールタグ、グローバルモジュールタグ、及びプロパティモジュールタグを含むことができる。付加的に、モジュールタグの一部は、ＭＭＬ文書のレンダリングを調整するように設定することができる。
【００７０】
ＭＭＬタグの少なくとも一部の一覧表示を以下に示す。
構造タグ
コンテンツタグ−＜ｔｅｘｔ＞
タイプタグ−＜ｍｅｄｉａ＞；＜ｍｉ＞（メディアアイテム）
形式タグ−＜ｉｎｐｕｔ＞、＜ｓｕｂｍｉｔ＞、＜ｈｉｄｄｅｎ＞、＜ｌａｂｅｌ＞、＜ｖａｌｕｅ＞
モードタグ−＜ａ＞、＜ｈｅａｄｉｎｇ＞、＜ｓｕｂｈｅａｄｉｎｇ＞
構成タグ−＜ｐ＞、＜ｉｔｅｍ＞、＜ａｒｒａｙ＞、＜ｊｏｉｎ＞、＜ｙｍｌ＞
モジュールタグ
汎用モジュール−＜ｍｏｄｕｌｅ．ｃｏｎｔａｉｎｅｒ＞、＜ｍｏｄｕｌｅ．ｇｒｉｄ＞、＜ｍｏｄｕｌｅ．ｐａｎｅ＞、＜ｍｏｄｕｌｅ．ｌｉｓｔ＞、＜ｍｏｄｕｌｅ．ｐｌａｉｎ＞
様式（属性）
グローバルモジュール−＜ｙａｈｏｏ．ｈｅａｄｅｒ＞、＜ｙａｈｏｏ．ｆｏｏｔｅｒｎａｖ＞、＜ｙａｈｏｏ．ｆｏｏｔｅｒｌｅｇａｌ＞
プロパティモジュール−＜ｙａｈｏｏ．ｓｃｈ．ｒｅｓｕｌｔ＞
【００７１】
２つのカテゴリ内のモジュールの名前は、これらの機能性の説明的なものとなる傾向があるが（他のマークアップ言語内の同音のタグに幾分類似する）、ＭＭＬタグは、主に、プログラマの意図を捉えるために用いられ、ターゲット遠隔デバイス上に表示するために実際にページをレンダリングするのに必要な様式ではない。例えば、汎用モジュールタグ＜ｍｏｄｕｌｅ．ｌｉｓｔ＞は、ターゲット遠隔デバイス上に表示するためのリストをレンダリングするためのプラットフォームによるリクエストとして処理される。しかしながら、＜ｍｏｄｕｌｅ．ｌｉｓｔ＞タグは、実際にレンダリングを実行するために必要な実質的な詳細は指定しないので、プラットフォームは、レンダリングコンテキスト内に含まれているデータ及びパラメータ、例えば、リストの縦及び横方向、有効なディスプレイ画面の幅及び長さ、及びページを表示するためのページ付けサイズを用いることによって、これらの詳細を処理する。ＭＭＬタグの意図のレンダリングは、上述のプラットフォームの少なくとも１つ又は他のリソースによって、他のタイプのマークアップ言語文書で提供される他のタグと実質的に類似の方法で処理される。
【００７２】
（プラットフォームの一般的動作）
ここで、本発明の特定の態様に関する方法及びプロセスを図７−１１Ｂに関連して説明する。
図７は、ターゲット遠隔デバイスにより表示するためにマークアップ言語（ＭＬ）文書をレンダリングするための本発明のプラットフォームのあらゆる実施形態で一般的に利用されるプロセスの概要７００を示している。開始ブロックから移動して、プロセスはブロック７０２に進み、ここで、特定のターゲット遠隔デバイスのレンダリングコンテキストが受け取られる。ブロック７０４において、マークアップ言語文書も受け取られる。ＭＬ文書及びレンダリングコンテキストは、限定ではないが、コンテンツプロバイダ、キャリア、ウェブサーバ、関係会社、ユーザ、及びウェブサイトを含む同じか又は異なるリソースの１つ又はそれ以上によって生成された後、提供される。
【００７３】
ブロック７０６に進み、ターゲット遠隔デバイスのレンダリングコンテキストに含まれているデータ及びパラメータが１つ又はそれ以上のプロセスによって利用され、遠隔デバイスのデバイス固有言語の文書にＭＬ文書を完全レンダリングする。ブロック７０８に進み、プロセスは、デバイス固有言語文書内のリンクによって参照又は埋め込むことができるメディアアイテムを任意選択的に提供することができる。ブロック７１０において、デバイス固有言語文書が、後で表示するためにターゲット遠隔デバイスに提供される。１つの実施形態では、キャリアは、デバイス固有言語文書を通信リンク上で文字列としてターゲット遠隔デバイスに提供する。次に、プロセスは、他の動作を実行する段階に戻る。
【００７４】
図８は、少なくとも図４に示したプラットフォームによって実行することができるプロセスの概要８００を示している。開始ブロックから移動して、プロセスはブロック８０２に進み、ここで、マークアップ言語（ＭＬ）文書及びターゲット遠隔デバイスのレンダリングコンテキストが他のリソースから受け取られる。ブロック８０４に進み、プロセスは、ＭＬ文書及びレンダリングコンテキストに含まれているデータ及びパラメータの妥当性をチェックする。ブロック８０６において、文書オブジェクトモデルツリーが生成される。ブロック８０８において、レンダリングコンテキストにより、ターゲット遠隔デバイスにとってネイティブなＭＬコードでＤＯＭツリーを読み込むことができる。
【００７５】
ブロック８１０に進み、プロセスは、ＭＬ文書のレンダリングされたページに対するページ付けを判定する。プロセスは、これらのページをターゲット遠隔デバイスのディスプレイ画面の有効なサイズよりも大きくないようにページ付けする。場合によっては、新しくページ付けされたページに関して次及び前リンクが作成される。プロセスはまた、ＭＬ文書内の相対的に不要な空白を削除することもできる。ブロック８１２において、プロセスは、読み込まれたＤＯＭツリーを構文解析し、ネイティブＭＬコードをデバイス固有言語の文書にする。ブロック８１４に進み、１つ又はそれ以上のメディアアイテムが任意選択的にデバイス固有言語文書内のリンクによって参照され又は埋め込むことができる。ブロック８１６において、デバイス固有言語文書が、後で表示するためにターゲット遠隔デバイスに提供される。１つの実施形態では、キャリアは、デバイス固有言語文書を通信リンク上で文字列としてターゲット遠隔デバイスに提供する。次に、プロセスは、他の動作を実行する段階に戻る。
【００７６】
図９は、プログラマの意図を提供するが文書の実際のレンダリングに関連する特定の詳細は提供しないよう構成された移動体マークアップ言語（ＭＭＬ）で記述された文書をターゲット遠隔デバイスにより後で表示するためにデバイス固有言語文書に完全レンダリングする、プラットフォームの開示された実施形態のうちの少なくとも１つを利用するプロセスの概要９００を示している。
【００７７】
開始ブロックから移動して、プロセスはブロック９０２に進み、ここで、移動体マークアップ言語（ＭＭＬ）文書及びターゲット遠隔デバイスのレンダリングコンテキストが他のリソースから受け取られる。ブロック９０４に進み、プロセスは、ＭＬ文書及びレンダリングコンテキストに含まれているデータ及びパラメータの妥当性をチェックする。ブロック９０６において、文書オブジェクトモデルツリーが生成される。ブロック９０８において、レンダリングコンテキストにより、ターゲット遠隔デバイスにとってネイティブなＭＬコードでＤＯＭツリーを読み込むことができる。
【００７８】
ブロック９１０に進むと、プロセスは、ＭＬ文書のレンダリングされたページのページ付けを判定する。プロセスは、これらのページをターゲット遠隔デバイスのディスプレイ画面の有効なサイズよりも大きくないようにページ付けする。場合によっては、新しくページ付けされたページに関して次及び前リンクが作成される。プロセスはまた、ＭＬ文書内の相対的に不要な空白を削除することもできる。ブロック９１２において、プロセスは、読み込まれたＤＯＭツリーを構文解析し、ネイティブＭＬコードをデバイス固有言語の文書にする。ブロック９１４に進み、１つ又はそれ以上のメディアアイテムが任意選択的に完全レンダリングされたＭＬ文書内のリンクによって参照され又は埋め込むことができる。ブロック９１６において、デバイス固有言語文書が、後で表示するためにターゲット遠隔デバイスに提供される。１つの実施形態では、キャリアは、デバイス固有言語文書を通信リンク上で文字列としてターゲット遠隔デバイスに提供する。次に、プロセスは、他の動作を実行する段階に戻る。
【００７９】
図１０は、プラットフォームを利用してマークアップ言語（ＭＬ）文書を完全レンダリングするためのプロセスの概要１０００を示しており、プラットフォームは、ＭＬ文書の様々な部分をレンダリングするためのパイプラインステージを提供する。開始ブロックから移動して、プロセスはブロック１００２に進み、ここで、ＭＬ文書及びターゲット遠隔デバイスのレンダリングコンテキストが同じか又は異なるリソースの１つ又はそれ以上から受け取られる。ブロック１００４において、ＭＬ文書は処理のためにアセンブルされる。例えば、共通のヘッダ及びフッタ、単位、及び他の付随要素をＭＬ文書に付加することができる。次に、ブロック１００６において、プロセスは、ＭＬ文書を構文解析し、レンダリングコンテキストのデータ及びパラメータをレビューして、パイプラインステージのインスタンスを構築し、これによりＭＬ文書内に含まれている要素の完全レンダリングを可能にすることができる。プロセスはまた、アセンブルされたＭＬ文書を文書オブジェクトモデル（ＤＯＭ）文書に変換する。
【００８０】
ブロック１００８において、プロセスは、ＤＯＭ文書に含まれる要素のパイプラインステージレンダリング及びページ付けを実行して、少なくとも部分的にターゲット遠隔デバイスのレンダリングコンテキストに基づくデバイス固有言語文書にする。ブロック１０１０に進み、プロセスは、レンダリングされたＤＯＭ文書（ここではデバイス固有言語文書）を文字列にシリアライズし、この文字列は、任意選択的にターゲット遠隔デバイスの特定の言語にローカライズすることができる。
【００８１】
ブロック１０１２に進み、プロセスは、完全レンダリングされた文字列内のリンクによって参照されるか又は埋め込むことができるメディアアイテムを任意選択的に提供することができる。ブロック１０１４において、ターゲット遠隔デバイスによって後で表示するために、文字列に加えて、含まれるあらゆるメディアアイテムが利用可能にされる。１つの実施形態では、キャリアは、デバイス固有言語文書を通信リンク上で文字列としてターゲット遠隔デバイスに提供する。次に、プロセスは、他の動作を実行する段階に戻る。
【００８２】
図１１Ａは、受け取ったＸＭＬ文書内の一意の文字列に対する一時ＸＭＬ  ＩＤを一時的にオンザフライで生成してインデックス付けを行い、ターゲット遠隔デバイスによって後で表示するための文書のページのパイプラインステージレンダリングを迅速化するプラットフォームのプロセス１１００を示している。また、少なくとも１つの実施形態において、一時オンザフライインデックス及びＸＭＬ  ＩＤを利用して、ローカルデバイス又は分散コンピューティングデバイスによって更に処理するためにＸＭＬ文書のレンダリングを迅速化することができる。
【００８３】
開始ブロックから移動して、プロセスはブロック１１０２に進み、ここで、受け取ったマークアップ言語（ＸＭＬ）文書が構文解析されて各一意の文字列を識別する。ターゲット遠隔デバイスのレンダリングコンテキストもまた受け取られる。決定ブロック１１０６において、一意の文字列に関してＸＭＬ  ＩＤが存在する場合、プロセスはブロック１１０８に進む。しかしながら、識別された一意の文字列が既存のＸＭＬ  ＩＤに対応していない場合、ブロック１１０４において、一時ＸＭＬ  ＩＤがこの一意の文字列に付加される。いずれの場合においても、識別された各一意の文字列が既存の又は一時ＸＭＬ  ＩＤに対応した後、プロセスはブロック１１０８に進み、ここで、既存の又は一時ＸＭＬ  ＩＤに少なくとも部分的に基づいて、ＸＭＬ文書内の各一意の文字列の位置をリストする一時インデックスがＸＭＬ文書に関して生成される。
【００８４】
ブロック１１１０において、一時インデックス及びレンダリングコンテキストを利用して、ターゲット遠隔デバイス上に表示するためにＸＭＬ文書のページサイズを推定し、その後、大きすぎる推定値に対してページを調整及び／又は再ページ付けする。また、必要に応じてセッションＩＤを付加してＵＲＬをリライトすることができる。ブロック１１１２に進み、プロセスは、ＸＭＬ文書全体がデバイス固有言語の文書に完全レンダリングされるまで、一時インデックス及びレンダリングコンテキストを利用して各一意の文字列に対してパイプラインステージレンダリングを実行する。
【００８５】
ブロック１１１４において、一時インデックス及び一時ＸＭＬ  ＩＤがデバイス固有言語文書から削除される。ブロック１１１６に進み、プロセスは、デバイス固有言語文書内のリンクによって参照されるか又は埋め込むことができるメディアアイテムを任意選択的に提供することができる。ブロック１１１８において、ターゲット遠隔デバイスによって後で表示するために、デバイス固有言語文書に加えて、含まれるあらゆるメディアアイテムが利用可能にされる。１つの実施形態では、キャリアは、デバイス固有言語文書を通信リンク上で文字列としてターゲット遠隔デバイスに提供する。次に、プロセスは、他の動作を実行する段階に戻る。
【００８６】
図１１Ｂは、受け取ったマークアップ言語（ＭＬ）文書内の一意の文字列に一時ＩＤを一時的にオンザフライで生成してインデックス付けを行い、ターゲット遠隔デバイスによって後で表示するためのデバイス固有言語文書への文書のページのレンダリングを迅速化するプラットフォームのプロセス１１２０を示している。しかしながら、少なくとも１つの実施形態において、一時オンザフライインデックス及びＭＬ  ＩＤを利用して、ローカルデバイス又は分散コンピューティングデバイスによって更に処理するためにＭＬ文書のレンダリングを迅速化することができる。
【００８７】
開始ブロックから移動して、プロセスはブロック１１２２に進み、ここで、受け取ったマークアップ言語（ＭＬ）文書が構文解析されて各一意の文字列を識別する。ターゲット遠隔デバイスのレンダリングコンテキストもまた受け取られる。決定ブロック１１２４において、一意の文字列のＸＭＬ  ＩＤが存在する場合、プロセスはブロック１１２８に進む。しかしながら、識別された一意の文字列が既存のＭＬ  ＩＤに対応していない場合、ブロック１１２６において、一時ＭＬ  ＩＤがこの一意の文字列に付加される。いずれの場合においても、識別された各一意の文字列が既存の又は一時ＭＬ  ＩＤに対応した後、プロセスはブロック１１２８に進み、ここで、既存の又は一時ＭＬ  ＩＤに少なくとも部分的に基づいて、ＭＬ文書内の各一意の文字列の位置をリストする一時インデックスがＭＬ文書に関して生成される。
【００８８】
ブロック１１３０において、一時インデックス及びレンダリングコンテキストを利用して、ターゲット遠隔デバイス上に表示するためにＸＭＬ文書のページサイズを推定し、その後、大きすぎる推定値に対してページを調整／再ページ付けする。また、必要に応じてセッションＩＤを付加してＵＲＬをリライトすることができる。ブロック１１３２に進み、プロセスは、ＭＬ文書全体がデバイス固有言語の文書に完全レンダリングされるまで、一時インデックス及びレンダリングコンテキストを利用して各一意の文字列のレンダリングを実行する。
【００８９】
ブロック１１３４において、一時インデックス及び一時ＭＬ  ＩＤがデバイス固有言語文書から削除される。ブロック１１３６に進み、プロセスは、デバイス固有言語文書内のリンクによって参照されるか又は埋め込むことができるメディアアイテムを任意選択的に提供することができる。ブロック１１３８において、ターゲット遠隔デバイスによって後で表示するために、デバイス固有言語文書に加えて、含まれるあらゆるメディアアイテムが利用可能にされる。１つの実施形態では、キャリアは、デバイス固有言語文書を通信リンク上で文字列としてターゲット遠隔デバイスに提供する。次に、プロセスは、他の動作を実行する段階に戻る。
【００９０】
上記のフローチャート説明の各ブロック、及びフローチャート説明内のブロックの組み合わせは、コンピュータプログラム命令によって実装することができる点は理解されたい。これらのプログラム命令は、マシンを生成するためにプロセッサに提供することができるので、プロセッサ上で実行される命令は、フローチャートの１つ又は複数のブロックで指定された動作を実施するための手段を提供する。コンピュータプログラム命令は、プロセッサにより実行されて、一連の動作ステップをプロセッサが実施することができるようにし、その結果、プロセッサ上で実行される命令は、上述のフローチャートに示した動作を実施するためのステップを提供するようになる。
【００９１】
従って、フローチャート図のブロックは、指定の動作を実施するための手段の組み合わせ、指定の動作を実行するためのステップの組み合わせ、及び指定の動作を実施するためのプログラム命令手段をサポートする。フローチャート図の各ブロック及びフローチャート図内のブロックの組み合わせは、指定の動作又はステップを実施する特定用途のハードウェアベースシステム、或いは特定用途のハードウェアとコンピュータ命令の組み合わせによって実装することができる。
【００９２】
前述の仕様において、本発明をその特定の例示的な実施形態を参照しながら説明してきた。しかしながら、添付の請求項に記載される本発明のより広範な精神及び範囲から逸脱することなく、これらの特定の例示的な実施形態に対して様々な修正及び変更を加えることができる点は明らかであろう。従って、本明細書及び図面は、限定的な意味ではなく例示的な意味とみなすべきである。
【符号の説明】
【００９３】
５０２  プラットフォーム
５０４  ＭＬ文書
５０６  レンダリングコンテキスト
５０８  マスタ文書アセンブラ
５１０  主要
５１２  パイプラインビルダ
５１４  パイプラインステージライブラリ
５１６  パイプラインステージ
５１８  シリアライザ
５２０  遠隔デバイスのデバイス固有文書
【図１】
2010505194.tif 000003
【図２】
2010505194.tif 000004
【図３】
2010505194.tif 000005
【図４】
2010505194.tif 000006
【図５Ａ】
2010505194.tif 000007
【図５Ｂ】
2010505194.tif 000008
【図６】
2010505194.tif 000009
【図７】
2010505194.tif 000010
【図８】
2010505194.tif 000011
【図９】
2010505194.tif 000012
【図１０】
2010505194.tif 000013
【図１１Ａ】
2010505194.tif 000014
【図１１Ｂ】
2010505194.tif 000015
【手続補正書】
【提出日】平成21年3月30日(2009.3.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
遠隔デバイスによって表示するためにマークアップ言語（ＭＬ）文書をレンダリングする方法であって、
前記ＭＬ文書を受け取る段階と、
前記遠隔デバイスにより後で表示するため前記ＭＬ文書のレンダリングを可能にする情報を含む、前記遠隔デバイスにネイティブなレンダリングコンテキストを受け取る段階と、
前記レンダリングコンテキストを利用して前記ＭＬ文書のページ付けを可能にし、前記ＭＬ文書の各ページのサイズを前記遠隔デバイスによる表示の有効サイズよりも大きくないように前記ＭＬ文書をページ付けする段階と、
前記レンダリングコンテキストを利用して、少なくとも１つのプロセスが前記ＭＬ文書をデバイス固有言語の文書に完全レンダリングするのを可能にする段階と、
前記デバイス固有言語文書を前記遠隔デバイスに提供できるようにする段階と、
を含む方法。
【請求項２】
前記デバイス固有言語文書内にメディアアイテムを埋め込む段階と、
前記デバイス固有言語文書内のメディアアイテムへのリンクを含める段階と、
を更に含む、
請求項１に記載の方法。
【請求項３】
前記受け取ったＭＬ文書をアセンブルする段階を更に含み、前記アセンブルが、モジュールへの単位の付加、空白の充填、ヘッダの付加、又はフッタの付加のうちの少なくとも１つを含む、
請求項１に記載の方法。
【請求項４】
既存のＭＬ  ＩＤに現在関連付けられていない各一意の文字列に対して一時マークアップ言語（ＭＬ）ＩＤを作成する段階と、
各一時ＭＬ  ＩＤ及び各既存のＭＬ  ＩＤの一時インデックスを生成する段階と、
複数のプロセスの少なくとも１つに対して前記一時インデックスを利用して、前記ＭＬ文書内の各一意の文字列をレンダリングする段階と、
前記遠隔デバイスに提供される前に、前記デバイス固有言語文書から前記一時インデックス及び各一時ＭＬ  ＩＤを削除する段階と、
を更に含む、
請求項１に記載の方法。
【請求項５】
前記マークアップ言語は、前記遠隔デバイス上にＭＬ文書内のコンテンツを表示するための作成者の意図を提供する移動体マークアップ言語であり、前記遠隔デバイスにより表示するためにレンダリングされた前記コンテンツの実際の構成が、前記レンダリングコンテキストに少なくとも部分的に基づいている、
請求項１に記載の方法。
【請求項６】
前記ＭＬ文書のレンダリングが、
リクエストに応答して前記遠隔デバイスに関する位置情報を提供できるか否かを判定する段階と、
余剰シートを削除することによってカスケーディング・スタイル・シート（ＣＳＳ）を縮小する段階と、
カスケーディング・スタイル・シートをストリップしてＭＬコードとしてリライトすることにより前記カスケーディング・スタイル・シートを文字装飾する段階と、
ＭＬ文書を圧縮して前記遠隔デバイスにとって余剰なあらゆるＭＬコードを削除する段階と、
レンダリングされた前記ＭＬ文書に含められるように各メディアアイテムの１つ又はそれ以上の属性を指定する段階と、
各ページサイズの推定値を利用して、前記遠隔デバイスの有効サイズを超えないサイズに前記ＭＬ文書のページを再ページ付けする段階と、
ターゲット遠隔デバイスの有効サイズよりも大きくレンダリングされると推定される前記ＭＬ文書のページ内のＭＬコードを調整する段階と、
メディアアイテムの位置を含めるようにＵＲＬをリライトする段階と、
セッション識別情報を含めるようにＵＲＬをリライトする段階と、
を含む複数のプロセスの少なくとも１つを含む、
請求項１に記載の方法。
【請求項７】
前記遠隔デバイスがネットワーク上の有線又は無線通信の少なくとも１つを提供する、
請求項１に記載の方法。
【請求項８】
表示するためにマークアップ言語（ＭＬ）文書をレンダリングするためのシステムであって、
前記レンダリングされたＭＬ文書を表示するように適合された遠隔デバイスと、プラットフォームとを備え、
前記プラットフォームが、
前記レンダリング文書と、前記遠隔デバイスにより後で表示するため前記ＭＬ文書のレンダリングを可能にする情報を含む別のリソースからのレンダリングコンテキストとを受け取る段階と、
前記レンダリングコンテキストを利用して、前記ＭＬ文書の各ページのサイズを前記遠隔デバイスによる表示の有効サイズよりも大きくないように前記ＭＬ文書をページ付けする段階と、
前記レンダリングコンテキストを利用して、少なくとも１つのプロセスが前記ＭＬ文書をデバイス固有言語の文書に完全レンダリングするのを可能にする段階と、
前記デバイス固有言語文書を前記遠隔デバイスにより表示するためネットワーク上で提供する段階と、
を含む動作を実行するよう構成されている、
ことを特徴とするシステム。
【請求項９】
前記プラットフォームが、
前記デバイス固有言語文書内にメディアアイテムを埋め込む段階と、
前記デバイス固有言語文書内のメディアアイテムへのリンクを含める段階と、
を含む更なる動作の少なくとも１つを実施する、
請求項８に記載のシステム。
【請求項１０】
前記プラットフォームが、
前記受け取ったＭＬ文書をアセンブルする段階を更に含み、前記アセンブルが、モジュールへの単位の付加、空白の充填、ヘッダの付加、又はフッタの付加のうちの少なくとも１つを含む、
更なる動作を実施する、
請求項８に記載のシステム。
【請求項１１】
前記プラットフォームが、
既存のＭＬ  ＩＤに現在関連付けられていない各一意の文字列に対して一時マークアップ言語（ＭＬ）ＩＤを作成する段階と、
各一時ＭＬ  ＩＤ及び各既存のＭＬ  ＩＤの一時インデックスを生成する段階と、
複数のプロセスの少なくとも１つに対して前記一時インデックスを利用して、前記ＭＬ文書内の各一意の文字列をレンダリングする段階と、
前記遠隔デバイスに提供される前に、前記デバイス固有言語文書から前記一時インデックス及び各一時ＭＬ  ＩＤを削除する段階と、
を含む更なる動作の少なくとも１つを実施する、
請求項８に記載のシステム。
【請求項１２】
前記マークアップ言語は、前記遠隔デバイス上にＭＬ文書内のコンテンツを表示するための作成者の意図を提供する移動体マークアップ言語であり、前記遠隔デバイスにより表示するための前記コンテンツの実際の構成が、前記レンダリングコンテキストに少なくとも部分的に基づいている、
請求項８に記載のシステム。
【請求項１３】
前記ＭＬ文書のレンダリングが、
リクエストに応答して前記遠隔デバイスに関する位置情報を提供できるか否かを判定する段階と、
余剰シートを削除することによってカスケーディング・スタイル・シート（ＣＳＳ）を縮小する段階と、
カスケーディング・スタイル・シートをストリップしてＭＬコードとしてリライトすることにより前記カスケーディング・スタイル・シートを文字装飾する段階と、
ＭＬ文書を圧縮して前記遠隔デバイスにとって余剰なあらゆるＭＬコードを削除する段階と、
レンダリングされた前記ＭＬ文書に含められるように各メディアアイテムの１つ又はそれ以上の属性を指定する段階と、
各ページサイズの推定値を利用して、前記遠隔デバイスの有効サイズを超えないサイズに前記ＭＬ文書のページを再ページ付けする段階と、
ターゲット遠隔デバイスの有効サイズよりも大きくレンダリングされると推定される前記ＭＬ文書のページ内のＭＬコードを調整する段階と、
メディアアイテムの位置を含めるようにＵＲＬをリライトする段階と、
セッション識別情報を含めるようにＵＲＬをリライトする段階と、
を含む複数のプロセスの少なくとも１つを実施する、
請求項８に記載のシステム。
【請求項１４】
前記遠隔デバイスがネットワーク上の有線又は無線通信の少なくとも１つを提供する、
請求項８に記載のシステム。
【請求項１５】
遠隔デバイスによって表示するためにマークアップ言語（ＭＬ）文書のレンダリングを可能にするサーバであって、
データを格納するメモリと、プロセッサとを備え、
前記プロセッサが、
前記ＭＬ文書を受け取る段階と、
前記遠隔デバイスにより後で表示するため前記ＭＬ文書をデバイス固有言語文書にレンダリング可能にする情報を含む、前記遠隔デバイスにネイティブなレンダリングコンテキストを受け取る段階と、
前記レンダリングコンテキストを利用して前記ＭＬ文書のページ付けを可能にし、前記デバイス固有言語文書の各ページのサイズを前記遠隔デバイスによる表示の有効サイズよりも大きくないようにページ付けする段階と、
前記レンダリングコンテキストを利用して、少なくとも１つのプロセスが前記ＭＬ文書をデバイス固有言語の文書に完全レンダリングするのを可能にする段階と、
前記デバイス固有言語文書を前記遠隔デバイスに提供できるようにする段階と、
を含む動作を可能にする、
ことを特徴とするサーバ。
【国際調査報告】
2010505194.tif 000016
2010505194.tif 000017