(57)【特許請求の範囲】
【請求項１】
コンピュータ上でコンテンツをレンダリングするコンピュータ実行方法であって、
アプリケーションプログラムから、前記コンテンツの閲覧要求を受け取るコンピュータ実行操作と、
前記コンテンツの閲覧要求の受け取りに応答して第１のファイルフォーマットで表現されている前記コンテンツの複数の部分を、第２のファイルフォーマットで表現するレンダリングコンテンツの複数の部分に変換するコンピュータ実行操作であって、前記第１のファイルフォーマットで表現されている前記コンテンツの複数の部分は、ユーザに関連付けられたユーザプロファイルに基づいて、ユーザが頻繁にアクセスする１つ又は複数のファイルフォーマットに変換され、前記第２のファイルフォーマットは前記１つ又は複数のファイルフォーマットに含まれる、コンピュータ実行操作と、
前記コンテンツの前記複数の部分を、前記レンダリングコンテンツの複数の部分に変換する間、前記レンダリングコンテンツの前記複数の部分の少なくとも１つをアプリケーションプログラムに与えるコンピュータ実行操作であって、
前記アプリケーションプログラムは前記第２のファイルフォーマットの前記レンダリングコンテンツを表示し、前記第１のファイルフォーマットのコンテンツを表示することはできないように構成されており、
前記アプリケーションプログラムはウェブブラウザを有し、
前記レンダリングコンテンツは、前記ウェブブラウザとは別個のビューワを起動して前記ウェブブラウザ内で前記レンダリングコンテンツを見せることなく、前記ウェブブラウザにより当該コンテンツの完全忠実度表現を提供するように適合されており、
前記レンダリングコンテンツの前記複数の部分の少なくとも１つをアプリケーションプログラムに与えることは、当該レンダリングコンテンツの複数の部分の少なくとも１つを前記ウェブブラウザに与えることを含む、コンピュータ実行操作と
を含むことを特徴とするコンピュータ実行方法。
【請求項２】
前記コンテンツは、ドキュメントを含み、前記コンテンツの複数の部分を前記レンダリングコンテンツの部分に変換することは、前記ドキュメントのページを、レンダリングドキュメントのページに変換することを含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項３】
前記コンテンツはプレゼンテーションを含み、前記コンテンツの複数の部分を前記レンダリングコンテンツの部分に変換することは、前記プレゼンテーションのスライドをレンダリングプレゼンテーションのスライドに変換することを含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項４】
前記レンダリングコンテンツをドキュメントキャッシュに格納するコンピュータ実行操作をさらに含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項５】
前記ウェブブラウザを操作するユーザが、前記コンテンツを閲覧するための許可を得ているかどうか判定するコンピュータ実行操作をさらに含み、
前記コンテンツの複数の部分を前記レンダリングコンテンツの複数の部分に変換することは、前記ウェブブラウザを操作する前記ユーザが、前記コンテンツを閲覧するための許可を得ているという判定に応答して、前記コンテンツの部分を前記レンダリングコンテンツの部分に変換することを含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項６】
前記ウェブブラウザを操作する前記ユーザが、前記コンテンツを閲覧するための許可を得ているという判定に応答して、状態情報を認可キャッシュに格納するコンピュータ実行操作をさらに含み、該状態情報は前記ユーザが前記許可を得ているか得ていないかを示すことを特徴とする請求項５に記載のコンピュータ実行方法。
【請求項７】
前記ウェブブラウザから、前記コンテンツの指定部分を求めるリクエストを受け取るコンピュータ実行操作をさらに含み、
前記コンテンツの複数の部分を前記レンダリングコンテンツの複数の部分に変換することは、前記コンテンツの前記指定部分を、前記レンダリングコンテンツの指定部分に変換することを含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項８】
前記ウェブブラウザから前記コンテンツの指定部分を求めるリクエストを受け取ることは、前記ウェブブラウザから前記コンテンツおよび第２のコンテンツを求めるリクエストを受け取ることを含み、
前記コンテンツの複数の部分を前記レンダリングコンテンツの複数の部分に変換している間、コンテンツストアから前記第２のコンテンツを取り出し、前記第２のコンテンツをレンダリングキューに格納するコンピュータ実行操作をさらに含むことを特徴とする請求項７に記載のコンピュータ実行方法。
【請求項９】
前記コンテンツの複数の部分を前記レンダリングコンテンツの複数の部分に変換するのに先立って、前記コンテンツをドキュメントストアから取り出すコンピュータ実行操作をさらに含み、
前記コンテンツの部分をレンダリングコンテンツの部分に変換することは、前記ドキュメントストアから前記コンテンツを取り出している間、前記コンテンツの複数の部分を前記レンダリングコンテンツの複数の部分に変換することを含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項１０】
前記コンテンツの複数の部分を前記レンダリングコンテンツの複数の部分に変換することは、
第１のレンダリングモジュールにより、前記コンテンツの一部分にある第１の要素を、前記レンダリングコンテンツの第１の要素に変換することと、
第２のレンダリングモジュールにより、前記コンテンツの前記一部分にある第２の要素を、前記レンダリングコンテンツの第２の要素に変換することと、
前記レンダリングコンテンツの前記第１の要素と前記レンダリングコンテンツの前記第２の要素を合成して、前記レンダリングコンテンツの前記一部分を形成することと
を含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項１１】
前記レンダリングコンテンツを、複数の記憶ユニットの１つに格納するコンピュータ実行操作と、
前記レンダリングコンテンツの位置を位置キャッシュに格納するコンピュータ実行操作であって、前記位置は前記複数の記憶ユニットの１つと対応している、位置キャッシュに格納するコンピュータ実行操作と
をさらに含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項１２】
第１のファイルフォーマットで表現されたドキュメントを格納するように動作するドキュメントストアと、
少なくとも１つのプロセッサおよび１つのメモリを有するアプリケーションサーバであって、該アプリケーションサーバは、
（ｉ）ネットワークを通じてウェブブラウザから前記ドキュメントの閲覧要求を受信し、
（ｉｉ）前記ウェブブラウザから前記ドキュメントの閲覧要求を受信することに応答して前記ドキュメントストアから前記ドキュメントを取り出し、
（ｉｉｉ）前記第１のファイルフォーマットで表現されたドキュメントの複数の部分を第２のファイルフォーマットで表現されるレンダリングドキュメントの部分に変換するように動作し、
前記レンダリングドキュメントは、前記ウェブブラウザとは別個のビューワを起動して前記ウェブブラウザ内で前記レンダリングドキュメントを見せることなく、前記ウェブブラウザにより前記ドキュメントの完全忠実度表現を提供するように適合されており、
（ｉｖ）前記第１のファイルフォーマットで表現されたドキュメントの複数の部分を前記第２のファイルフォーマットで表現されるレンダリングドキュメントの複数の部分に変換している間、前記レンダリングドキュメントの複数の部分の１つまたは複数を前記ネットワークを介して前記ウェブブラウザに提供し、
前記ウェブブラウザは、前記第２のファイルフォーマットで表現されたレンダリングドキュメントを表示し、および、前記第１のファイルフォーマットのドキュメントを表示することはできないように構成されている、アプリケーションサーバと、
前記アプリケーションサーバからの前記レンダリングドキュメントを格納するように動作する出力ストアと、
前記ウェブブラウザと前記アプリケーションサーバとの間の通信を実行させるフロントエンドであって、前記フロントエンドは、ユーザに関連付けられたユーザプロファイルに基づいて、前記第１のファイルフォーマットで表現されたドキュメントの複数の部分を、ユーザが頻繁にアクセスする１つ又は複数のファイルフォーマットに変換するよう、前記アプリケーションサーバに指令するように構成され、前記第２のファイルフォーマットは前記１つ又は複数のファイルフォーマットに含まれる、フロントエンドと
を備えることを特徴とするレンダリング用コンピュータシステム。
【請求項１３】
前記アプリケーションサーバは、
（ｉ）前記ウェブブラウザから、前記ネットワークを介して、前記ドキュメントを求めるリクエストを受け取り、（ｉｉ）前記ドキュメントを求める前記リクエストの受取りに応答して、前記ドキュメントの複数の部分を前記レンダリングドキュメントの複数の部分に変換するように動作するレンダリングモジュールと、
前記レンダリングモジュールによるレンダリングのために、前記ドキュメントストアからのドキュメントの取り出しを管理するように動作するアプリケーションマネージャであって、
（ｉ）前記ウェブブラウザから、前記ネットワークを介して、前記ドキュメントを求める前記リクエストを受け取り、
（ｉｉ）前記ドキュメントを求める前記リクエストの受取りに応答して、前記ネットワークを介して、前記レンダリングドキュメントの１つの部分を、前記ウェブブラウザによる表示用に前記ウェブブラウザに与えるようにさらに動作する、アプリケーションマネージャと、
前記レンダリングドキュメントを格納するバックエンドキャッシュと
を備えることを特徴とする請求項１２に記載のレンダリング用コンピュータシステム。
【請求項１４】
前記アプリケーションマネージャは、
前記ドキュメントストアから追加ドキュメントを取り出すように動作するダウンロードマネージャと、
前記ダウンロードマネージャによって取り出された前記追加ドキュメントを格納するように動作するレンダリングキューであって、前記追加ドキュメントを、レンダリング用に前記レンダリングモジュールに与えるように動作する、レンダリングキューと
を備えることを特徴とする請求項１３に記載のレンダリング用コンピュータシステム。
【請求項１５】
前記フロントエンドは、
前記レンダリングドキュメントを格納するように動作するドキュメントキャッシュと、
前記ウェブブラウザを操作するユーザが、前記ドキュメントにアクセスするための許可を得ているかどうかを示す認可情報を格納するように動作する認可キャッシュと、
前記レンダリングドキュメントの位置を、１つまたは複数の記憶ユニットに格納するように動作する位置キャッシュと
を備えることを特徴とする請求項１２に記載のレンダリング用コンピュータシステム。
【請求項１６】
前記フロントエンドは、前記ドキュメントをレンダリングしているアプリケーションサーバを示す追跡データを保持するように動作するリクエストマージモジュールをさらに備え、前記フロントエンドは、同じドキュメントを求める追加リクエストを同じアプリケーションサーバに向けるようにさらに動作することを特徴とする請求項１５に記載のレンダリング用コンピュータシステム。
【請求項１７】
コンピュータ実行可能命令を格納したコンピュータ読み取り可能媒体であって、コンピュータにより実行されたときに前記コンピュータ実行可能命令は前記コンピュータに、
ネットワークを介してウェブブラウザから第１のドキュメントおよび第２のドキュメントの要求を受け取ることであって、前記第１のドキュメントおよび前記第２のドキュメントは第１のファイルフォーマットで表現されている、要求を受け取ることと、
前記要求の受け取りに応答してドキュメントストアから前記第１のドキュメントを取り出すことと、
前記ドキュメントストアからの前記第１のドキュメントの取り出しに応答して前記第１のドキュメントのページを第２のファイルフォーマットで表現されるレンダリングドキュメントのページに変換することであって、前記レンダリングドキュメントは、前記ウェブブラウザとは別個のビューワを起動して前記ウェブブラウザ内で前記レンダリングドキュメントを見せることなく、前記ウェブブラウザにより前記ドキュメントの完全忠実度表現を提供するように適合され、前記第１のファイルフォーマットで表現されている前記第１のドキュメントは、ユーザに関連付けられたユーザプロファイルに基づいて、ユーザが頻繁にアクセスする１つ又は複数のファイルフォーマットに変換され、前記第２のファイルフォーマットは前記１つ又は複数のファイルフォーマットに含まれる、レンダリングドキュメントのページに変換することと、
前記第１のドキュメントのページを前記レンダリングドキュメントのページに変換している間、前記ドキュメントストアから前記第２のドキュメントを取り出すことと、
前記ドキュメントの追加のページを前記レンダリングドキュメントの追加のページに変換することと、
前記ドキュメントの追加のページを前記レンダリングドキュメントの追加のページに変換している間、前記ウェブブラウザから前記レンダリングドキュメントのページについての要求を受け取ることと、
当該レンダリングドキュメントのページについての要求に応答して、前記レンダリングドキュメントのページを前記ウェブブラウザに、該ウェブブラウザによる表示用に提供することであって、前記ウェブブラウザは前記第２のファイルフォーマットのレンダリングドキュメントを表示するように、および、第１のファイルフォーマットのドキュメントを表示することはできないように構成されている、前記レンダリングドキュメントのページを提供することと
を実行させることを特徴とするコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータにおけるコンテンツレンダリングに関する。
【背景技術】
【０００２】
文書処理アプリケーション、表計算アプリケーション、およびプレゼンテーションアプリケーションなどの生産性アプリケーションプログラムにより、ユーザは、様々なタイプのドキュメントを作成することが可能になる。こうしたドキュメントは、ある特定のドキュメントタイプに、さらにはある特定のアプリケーションプログラムにも固有のデータを含む。この固有データを閲覧するためには、ユーザは、ドキュメントを作成した生産性アプリケーションプログラムによりドキュメントを閲覧すればよい。たとえば、ユーザは、ある特定の文書処理アプリケーションに依拠して、その文書処理アプリケーションによって作成された文書処理ドキュメントを閲覧する。
【０００３】
ウェブブラウザによりワールドワイドウェブ（これ以降、「ウェブ」と呼ばれる）全体でドキュメントが共有される場合、問題が起こる。具体的には、典型的なウェブブラウザは、所与のドキュメントをその固有形式で読むことができない場合がある。この問題に対処するために、ドキュメントを、その固有形式から、ウェブブラウザにより閲覧することができるウェブ互換形式にレンダリング（編集）することが可能なコードを実行するウェブサーバを実装することが可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなウェブサーバの従来の実装では、レンダリングバージョンをウェブブラウザに与えるのに先立って、ドキュメントの全体をレンダリングする。これは、ドキュメント事前レンダリングと呼ばれる。事前レンダリングの間、所与のドキュメントの閲覧をリクエストするユーザは、ドキュメントが完全にレンダリングされるまで、かなりの時間待つように強制される。この遅れは、ユーザを相当いら立たせ、不便を感じさせる。
【課題を解決するための手段】
【０００５】
本明細書において提示される開示内容は、こうした検討事項および他の検討事項に関連するものである。
【０００６】
ドキュメントなどのコンテンツをレンダリングする技術について、本明細書で説明する。ドキュメントおよび他のコンテンツを、固有ドキュメント形式から、ウェブブラウザまたは他の適切なアプリケーションにより閲覧されることが可能なウェブ互換形式にレンダリングするアプリケーションサーバが提供される。アプリケーションサーバは、レンダリングモジュールを含み、レンダリングモジュールは、ドキュメントを増分レンダリングするように動作する。増分レンダリングにより、アプリケーションサーバは、固有ドキュメントがまだレンダリングされている最中に、レンダリングされているドキュメントの部分をウェブブラウザに与えることができる。本明細書で説明する技術の他の実装形態例は、ある形式から、別の形式へのドキュメントのコンバート（たとえば、バイナリファイル形式から、Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬ形式、Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｒｏｍａｔ（「ＰＤＦ」）などへのドキュメントの変換）を含む。
【０００７】
レンダリングモジュールのスループットを増すためのダウンロードマネージャも提供される。レンダリングモジュールが、あるドキュメントをレンダリングしている間、ダウンロードマネージャは、後でレンダリングされるべき他のドキュメントを検索し始めることができる。こうした他のドキュメントは、記憶サーバからダウンロードし、アプリケーションサーバ上のレンダリングキューに格納することができる。レンダリングモジュールが利用可能になると、レンダリングモジュールは、ドキュメントが検索されるのを待つ間、いかなるダウン時間もなしで、こうした他のドキュメントをレンダリングキューから直接、直ちにレンダリングし始めてよい。
【０００８】
ドキュメントおよび他のコンテンツを検索するのに使用される作業の量を削減するために、１つまたは複数のキャッシュも提供される。キャッシュの例は、ドキュメントキャッシュ、認可キャッシュ、および位置キャッシュを含む。ドキュメントキャッシュは、レンダリングドキュメントをフロントエンドに格納するように動作することができ、そうすることによって、バックエンド内の他の記憶ユニットから、レンダリングドキュメントを検索する必要をなくす。認可キャッシュは、認可および認証データを格納するように動作することができ、そうすることによって、同じドキュメントに後でアクセスするユーザを認可し直し、または認承し直す必要をなくす。位置キャッシュは、レンダリングドキュメントの位置を格納するように動作することができる。位置キャッシュの使用により、複数の記憶ユニットに問い合わせる必要なく、レンダリングドキュメントが、関連する記憶ユニットから効率的に検索される。
【０００９】
一実施形態によると、コンピュータ上で動作するウェブブラウザによる閲覧用にコンテンツをレンダリングする方法が、本明細書において提供される。コンテンツの部分は、レンダリングコンテンツの部分に変換される。コンテンツの部分が、レンダリングコンテンツの部分に変換されている間、レンダリングコンテンツの部分の少なくとも１つが、アプリケーションプログラムに与えられる。
【００１０】
上述した対象は、コンピュータ制御機器、コンピュータプロセス、コンピューティングシステム、またはコンピュータ可読媒体などの製造品として実装されることを理解されたい。こうした特徴および他の様々な特徴が、以下の「発明を実施するための形態」を読み、関連する図面を精査することによって明らかになるであろう。
【００１１】
本概要は、「発明を実施するための形態」において後でさらに説明する概念一式を、簡略化された形で紹介するためのものである。本概要は、本特許請求対象の主要な特徴または本質的な特徴を識別することは意図しておらず、本概要が本特許請求対象の範囲を限定するのに使われることも意図していない。さらに、本特許請求対象は、本開示の任意の部分に記される一部またはすべての欠点を解決する実装形態に限定されない。
【図面の簡単な説明】
【００１２】
【図１】いくつかの実施形態による、ウェブブラウザによる閲覧用にドキュメントをレンダリングするように動作する例示的システムアーキテクチャを示すブロック図である。
【図２】いくつかの実施形態による、図１のシステムアーキテクチャにあるアプリケーションマネージャの例示的実装形態を示すブロック図である。
【図３】いくつかの実施形態による、図１のシステムアーキテクチャにあるフロントエンドの例示的実装形態を示すブロック図である。
【図４Ａ】いくつかの実施形態による、ウェブブラウザによる閲覧用にコンテンツをレンダリングする例示的プロセスを示すフロー図である。
【図４Ｂ】いくつかの実施形態による、レンダリングコンテンツの一部分を取得する例示的プロセスを示すフロー図である。
【図５】本明細書で提示する実施形態を実装することが可能なコンピューティングシステムのための例示的コンピュータハードウェアアーキテクチャを示すコンピュータアーキテクチャ図である。
【発明を実施するための形態】
【００１３】
以下の詳細な説明は、ドキュメントなどのコンテンツをレンダリングする技術を対象とする。本明細書で提示する技術および概念の利用により、ドキュメントまたは他のコンテンツを、その固有形式から、ウェブ互換形式などの別の形式に増分レンダリングするように動作するアプリケーションサーバが提供される。事前レンダリングとは対照的に、コンテンツが増分レンダリングされているとき、レンダリング済みの、ドキュメントまたは他のコンテンツの各個別部分が、ユーザに対して利用可能となる。レンダリングコンテンツを検索するのに使用される作業量を削減するために、１つまたは複数のキャッシュも提供される。
【００１４】
本明細書で説明する実施形態では、ドキュメントおよびレンダリングドキュメントの個別部分として、ページおよびスライドに言及する。ただし、ページおよびスライドは、個別部分の例に過ぎず、限定的であることは意図していないことを理解されたい。当業者によって企図されるような他の種類の個別部分も、同様に実装することができる。
【００１５】
そのように限定されているわけではないが、本明細書で説明する実施形態では主として、ドキュメントおよびドキュメントレンダリングに言及する。ただし、本明細書で説明する実施形態は、固有形式から別の形式にレンダリングすることができる適切などのコンテンツにも同様に適用可能であることを理解されたい。このようなコンテンツは、テキスト、画像、音声、映像、およびその組合せなど、どのマルチメディアも含む。さらに、本明細書で説明する実施形態では主として、レンダリング形式を、ウェブブラウザにより閲覧されることが可能なウェブ互換形式と呼ぶ。ただし、レンダリング形式は、当業者によって企図されるような、他の適切な形式でもよいことを理解されたい。
【００１６】
本明細書で説明する本特許請求対象は、コンピュータシステム上のオペレーティングシステムおよびアプリケーションプログラムの実行とともに実行するプログラムモジュールという一般的状況において提示されるが、他の実装形態も、他のタイプのプログラムモジュールと組み合わせて実施されることが当業者には理解されよう。概して、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データタイプを実装するルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含む。さらに、本明細書で説明する本特許請求対象は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家電製品、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成を用いて実施されることが、当業者には理解されよう。
【００１７】
以下の詳細な説明において、本説明の一部をなすとともに、例示のために具体的な実施形態または例を示している添付の図面に対して参照が行われる。ここで、いくつかの図面を通して同じ番号が同じ要素を表している図面を参照し、オンデマンドなコンテンツ閲覧を提供する概念および技術について説明する。具体的には、図１は、いくつかの実施形態による、ドキュメントをレンダリングするように、およびレンダリングドキュメントを検索するように動作するシステムアーキテクチャ１００を示すブロック図である。アーキテクチャ１００は、コンピュータ１０４と通信するように動作するフロントエンド１０２を含む。フロントエンド１０２は、インターネットなどのネットワーク１０８を介してウェブブラウザ１０６からリクエストを受け取り、処理することができる。たとえば、フロントエンド１０２は、ドキュメントストア１１２に格納されたドキュメント１１０Ａなどの具体的ドキュメントを求めるリクエストを伴うハイパーテキスト転送プロトコル（「ＨＴＴＰ」）メッセージを受け取ることができる。アーキテクチャ１００のコンポーネントは、これ以外の実施形態によると、同じサーバ上に存在可能であることを理解されたい。アーキテクチャ１００をフロントエンドおよびアプリケーションサーバに分けることは、実装設計上の選択に過ぎず、限定的であることは意図していない。
【００１８】
ＨＴＴＰリクエストの受取りに応答して、ウェブフロントエンド１０２は、出力ストア１１４から、リクエストされたドキュメント１１０Ａに対応するウェブ互換のレンダリングドキュメント１１０Ｂを検索することを試みてよい。たとえば、レンダリングドキュメント１１０Ｂは、ドキュメント１１０Ａが最近レンダリングされた場合、出力ストア１１４に格納されている場合がある。出力ストア１１４が、ドキュメント１１０Ａに対応するレンダリングドキュメント１１０Ｂを含んでいる場合、出力ストア１１４は、レンダリングドキュメント１１０Ｂをフロントエンド１０２に戻せばよい。
【００１９】
出力ストア１１４が、レンダリングドキュメント１１０Ｂを含まない場合、アプリケーションサーバ１１６、およびより具体的にはレンダリングモジュール１１８が、ドキュメントストア１１２からドキュメント１１０Ａを検索してよい。いくつかの実施形態によると、アプリケーションサーバ１１６内のレンダリングモジュール１１８は、ドキュメント１１０Ａを、レンダリングドキュメント１１０Ｂにレンダリングする（すなわち、コンバートし、変換する）ように動作する。レンダリングモジュール１１８は、レンダリングドキュメント１１０Ｂを、適切なウェブブラウザによって表示されることが可能などの形式でも生成することができる。形式例は、画像形式（たとえば、Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ（「ＰＮＧ」）、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（「ＪＰＥＧ」）など）、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴ、ＡＤＯＢＥ  ＦＬＡＳＨなどを含む。レンダリングモジュール１１８は、ウェブ対応描画における個々のデータタイプがウェブブラウザによって集合的に理解されるように、レンダリングドキュメント１１０Ｂを、拡張マークアップ言語（「ＸＭＬ」）、スクリプト、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）、画像などを含むウェブ対応描画に生成することもできる。こうしたデータタイプはそれぞれ、本明細書で説明する増分レンダリングプロセスによって生成されると、ユーザに対して利用可能となる。レンダリングモジュール１１８は、複数のドキュメントを同時にレンダリングするようにも動作する。レンダリングドキュメント１１０Ｂを生成すると、アプリケーションサーバ１１６は、レンダリングドキュメント１１０Ｂを出力ストア１１４に格納し、レンダリングドキュメント１１０Ｂをフロントエンド１０２に戻すことができる。
【００２０】
レンダリングドキュメント１１０Ｂを受け取ると、フロントエンド１０２は、ＨＴＴＰプロトコルにより、レンダリングドキュメント１１０Ｂをウェブブラウザ１０６に与えることによってＨＴＴＰリクエストに応答することができる。ウェブブラウザ１０６は次いで、レンダリングドキュメント１１０Ｂを表示することができ、ドキュメント１１０Ｂは、対応するドキュメント１１０Ａの完全忠実度表現である。完全忠実度表現は、元の表現において見られる同じフォーマッティング（たとえば、レイアウト、解像度、コンテンツなど）を含む。したがって、ユーザは、ドキュメントが生産性アプリケーションプログラムにより、またはウェブブラウザ１０６などのウェブブラウザにより閲覧するかに関わらず、所与のドキュメントを閲覧する場合に同じ体験を期待することができる。完全忠実度表現は、低忠実度表現とは対照的でよく、低忠実度表現では、たとえば、レイアウトが変更される場合も、解像度およびコンテンツが削減される場合もある。他の実施形態では、レンダリングドキュメント１１０Ｂは、編集用にバイナリファイルから別のドキュメントタイプへのコンバートなど、非閲覧シナリオ用に使用することができる。たとえば、ＭＩＣＲＯＳＯＦＴ  ＯＦＦＩＣＥバイナリファイルが、ＯＰＥＮ  ＯＦＦＩＣＥ拡張マークアップ言語（「ＯＯＸＭＬ」）ファイルにレンダリングされる。
【００２１】
図１のアーキテクチャ１００内部のコンポーネントおよびコンポーネントの構成は例示に過ぎず、限定的であることは意図していないことを理解されたい。他の実施形態では、アーキテクチャ１００は、追加フロントエンドおよび／または追加アプリケーションサーバを含む。さらに、複数のフロントエンドおよび／または複数のアプリケーションサーバが、同じサーバ上にあってよい。たとえば、ウェブブラウザからの比較的大量のリクエストを扱うのに、追加フロントエンドが使用される。一実施形態では、比較的重い負荷のレンダリングを扱うように、追加アプリケーションサーバが展開される。別の実施形態では、追加アプリケーションサーバが、様々なタイプのドキュメントをレンダリングするように展開される。たとえば、あるアプリケーションサーバは、文書処理ドキュメントのレンダリングに専用でよく、別のアプリケーションサーバは、プレゼンテーションのレンダリングに専用でよい。さらに別の実施形態では、追加アプリケーションサーバが、所与のドキュメントの様々な要素をレンダリングするように展開される。レンダリングされた要素は次いで、合成されて、レンダリングドキュメントを作成する。たとえば、あるアプリケーションサーバは、プレゼンテーションにおける映像をレンダリングすることができ、別のアプリケーションサーバは、プレゼンテーションにおけるテキストをレンダリングすることができる。この場合、フロントエンド１０２は、２つのアプリケーションサーバの結果を合成して、レンダリングプレゼンテーションを形成するように動作する。
【００２２】
いくつかの実施形態では、ドキュメントを所与の形式でレンダリングするための単一のリクエストに応答して、フロントエンド１０２は、複数のデバイスタイプおよびウェブクライアント構成に渡る様々な用途をサポートするために、ドキュメントを複数の形式にレンダリングするよう、アプリケーションサーバ１１６に指令する。たとえば、ウェブブラウザ１０６は、フロントエンド１０２に対して、ＡＤＯＢＥ  ＦＬＡＳＨでレンダリングされた所与のドキュメントをリクエストする。フロントエンド１０２は、ウェブブラウザ１０６を操作するユーザに関連づけられたユーザプロファイルにより、ＡＤＯＢＥ  ＦＬＡＳＨ、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴ、Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ（「ＰＮＧ」）、モバイル、および完全バージョンのドキュメントにユーザが頻繁にアクセスすると判定する。フロントエンド１０２は、ユーザプロファイルにより、ＸＭＬ、スクリプト、ＨＴＭＬ、画像などの組合せを含むウェブ対応描画のドキュメントにユーザが頻繁にアクセスすると判定する場合もある。この場合、フロントエンド１０２は、こうしたバージョンの１つまたは複数でドキュメントをレンダリングすることによって、リクエストを満たすことができる。他の適切なデータが、単一のレンダリングリクエストに応答してドキュメントを複数の形式にレンダリングするよう、フロントエンド１０２がアプリケーションサーバ１１６に指令するかどうか判定するのに同様に使用される。追加形式を求める特定の複数のリクエストに応答してドキュメントをレンダリングするのではなく、単一のリクエストに応答してドキュメントを複数の形式に積極的にレンダリングすることによって、アーキテクチャ１００は、レンダリングドキュメントをより迅速に提供することができる。
【００２３】
いくつかの実施形態によると、アプリケーションサーバ１１６は、アプリケーションマネージャ１２０をさらに含む。アプリケーションマネージャ１２０は、ドキュメント１１０Ａからレンダリングドキュメント１１０Ｂへの増分レンダリングを管理するように動作する。本明細書で使用する「増分レンダリング」は、ドキュメント１１０Ａがレンダリングモジュール１１８によってレンダリングされているときに、レンダリングドキュメント１１０Ｂの部分を提供することを指す。たとえば、文書処理ドキュメントのレンダリングされた第１のページまたはプレゼンテーションのレンダリングされた第１のスライドを、フロントエンド１０２に与えることができ、フロントエンド１０２は次いで、レンダリングされた第１のページまたはレンダリングされた第１のスライドを、表示用にウェブブラウザ１０６に与えることができる。他の実施形態では、ドキュメント中の特定のどのページまたはスライドもレンダリングすることができる。他の実施形態では、ページまたはスライドに加え、コンテンツの他の部分をレンダリングすることもできる。文書処理ドキュメントまたはプレゼンテーションの残りがレンダリングモジュール１１８によってレンダリングされているとき、アプリケーションマネージャ１２０は、追加のレンダリングページおよびレンダリングスライドをウェブブラウザ１０６に与えることができる。
【００２４】
増分レンダリングを実現するために、アプリケーションマネージャ１２０は、ドキュメント１１０Ａがレンダリングモジュール１１８によってレンダリングされているとき、レンダリングドキュメント１１０Ｂの部分を利用可能にすればよい。フロントエンド１０２は次いで、レンダリングドキュメント１１０Ｂのこうした部分を、必要に応じてアプリケーションサーバ１１６から検索すればよい。一実施形態では、レンダリングドキュメント１１０Ｂの部分は、アプリケーションサーバ１１６内のバックエンドキャッシュ１２２に格納されている。
【００２５】
増分レンダリングの間、ドキュメントのページまたはスライドは、予め定義されたどの順序でレンダリングされてもよい。レンダリングページまたはスライドは次いで、レンダリングされたときと同じ順序で、フロントエンド１０２に対して利用可能にされる。一実施形態では、ドキュメントは、ドキュメントの冒頭からドキュメントの末尾に向かってレンダリングされる。
【００２６】
ドキュメント全体がレンダリングされるまでユーザが待たなければならない従来の事前レンダリングとは対照的に、増分レンダリングは、ドキュメントの、冒頭や他の何らかの部分などの一部分をユーザが閲覧できるようになるまでのレンダリング時間量を削減する。たとえば、従来の事前レンダリングでは、文書処理ドキュメントの第１のページまたはプレゼンテーションの第１のスライドを閲覧することを望むユーザは、文書処理ドキュメントまたはプレゼンテーション全体がレンダリングされるまで待つ必要があったであろう。増分レンダリングの例示的実施では、ユーザは、第１のページまたは第１のスライドを、文書処理ドキュメントまたはプレゼンテーションの残りがレンダリングされるのに先立って、より早く閲覧することができる。
【００２７】
いくつかの実施形態では、ユーザは、ドキュメントのページＮまたはスライドＮをリクエストすることができ、ここで変数Ｎは、ドキュメント内の任意のページまたはスライドを表す。リクエストは、ドキュメントがレンダリングされるのに先立って、またはレンダリングされている間に起こる。ページＮまたはスライドＮを求めるリクエストを受け取ると、アプリケーションマネージャ１２０は、ドキュメント内の特定のページまたはスライドを探すことによって、ページＮまたはスライドＮをレンダリングするよう、レンダリングモジュール１１８に指令すればよい。レンダリングページＮまたはスライドＮは次いで、フロントエンド１０２に対して利用可能となる。レンダリングページＮまたはスライドＮを利用可能にすると、アプリケーションマネージャ１２０は、ドキュメントの残りのレンダリングを進めることができる。
【００２８】
いくつかの実施形態では、レンダリングモジュール１１８は、ドキュメント全体がまだダウンロードされていないときでも、ドキュメントを増分レンダリングするように動作する。つまり、レンダリングモジュール１１８は、ファイル全体がダウンロードされるまで待つのではなく、ドキュメントを、ドキュメントストア１１２からダウンロードされている間にレンダリングし始めることができる。ドキュメントを、全体をダウンロードする前にレンダリングするこの手法により、特にドキュメントが比較的大きい場合、レンダリングモジュール１１８がドキュメントをレンダリングするのにかかる時間量を削減することができる。
【００２９】
ここで図２に移り、アプリケーションマネージャ１２０に関する追加詳細を説明する。具体的には、図２は、いくつかの実施形態によるアプリケーションマネージャ１２０を示すブロック図である。アプリケーションマネージャ１２０は、ダウンロードマネージャ２０２およびレンダリングキュー２０４を含む。いくつかの実施形態によると、ダウンロードマネージャ２０２は、レンダリングモジュール１１８がドキュメントをレンダリングするのに先立って、ドキュメントストア１１２からそのドキュメントをダウンロードするように動作する。ダウンロードマネージャ２０２は次いで、レンダリングモジュール１１８が、ドキュメントをレンダリングするのに利用可能になるまで、ダウンロードされたドキュメントをレンダリングキュー２０４に格納すればよい。レンダリングキュー２０４は、ダウンロードマネージャ２０２なしで動作することを理解されたい。ただし、レンダリングキュー２０４による高速処理に、ダウンロードマネージャ２０２が使用される。さらに、ダウンロードマネージャ２０２が存在する場合でも、レンダリングキュー２０４は、アプリケーションマネージャ１２０に過負荷がかかっている場合にはダウンロードマネージャ２０２に依存せずにインスタンスを扱うように動作する。
【００３０】
説明のための例において、第１のドキュメント２０６Ａおよび第２のドキュメント２０６Ｂをレンダリングするためのリクエストが行われた場合、ダウンロードマネージャ２０２は、ドキュメントストア１１２から第１のドキュメント２０６Ａをダウンロードすることができ、レンダリングモジュール１１８は、第１のドキュメント２０６Ａをレンダリングし始めることができる。レンダリングモジュール１１８が第１のドキュメント２０６Ａをレンダリングするとき、ダウンロードマネージャ２０２は同時に、ドキュメントストア１１２から第２のドキュメント２０６Ｂをダウンロードし、第２のドキュメント２０６Ｂをレンダリングキュー２０４に格納してよい。第１のドキュメント２０６Ａをレンダリングすると、レンダリングモジュール１１８は次いで、第２のドキュメント２０６Ｂがダウンロードされるのを待たずに、レンダリングキュー２０４にある第２のドキュメント２０６Ｂのレンダリングに直ちに進んでよい。このようにして、レンダリングモジュール１１８が第２のドキュメント２０６Ｂをダウンロードするのを待つことになる従来の実施形態において見られるいかなるアイドル時間もなくすことによって、レンダリングモジュール１１８のスループットが改善される。
【００３１】
レンダリングキュー２０４は、当業者によって企図されるように、任意の数のドキュメントを格納するように構成されることを理解されたい。いくつかの実施形態では、同時にダウンロードされるドキュメントの数およびレンダリングを待ち受けている、レンダリングキュー２０４に格納されるドキュメントの最大数を調整するように、ダウンロードマネージャ２０２がユーザによって構成(設定)される。このようにして、ユーザは、所与の任意のときにダウンロードされ、および／または格納されるドキュメントの数により、システムリソースに過度の負担がかからないようにすることができる。
【００３２】
ここで図３に移り、フロントエンド１０２に関する追加詳細を説明する。具体的には、図３は、いくつかの実施形態によるフロントエンド１０２を示すブロック図である。フロントエンド１０２は、リクエストマージモジュール３０２と、ドキュメントキャッシュ３０４Ａ、認可キャッシュ３０４Ｂ、および位置キャッシュ３０４Ｃを含むいくつかのキャッシュ３０４とを含む。いくつかの実施形態によると、リクエストマージモジュール３０２は、所与のドキュメントを現在レンダリングしている、ある特定のアプリケーションサーバを識別するデータの追跡を持続する。リクエストマージモジュール３０２は、この追跡データを使用して、同じドキュメントを求める追加リクエストを、同じアプリケーションサーバに向けることができる。同じドキュメントを求める追加リクエストを同じアプリケーションサーバに向けることによって、アプリケーションサーバの間の冗長作業が削減され、他のアプリケーションサーバは、他のドキュメントを自由にレンダリングする。
【００３３】
上で説明したように、図１のシステムアーキテクチャ１００は、複数のフロントエンドおよび複数のアプリケーションサーバを含む。こうしたフロントエンドは、互いと通信することが可能であっても可能でなくてもよい。フロントエンドが互いと通信しないケースにおいて、リクエストマージモジュール３０２は、ある特定のドキュメントリクエスト用のある特定のアプリケーションサーバを識別するために、コンシステントハッシュを実施するように構成される。コンシステントハッシュにおいて、所与のドキュメントリクエストの１つまたは複数の側面が分析されて、こうした側面が、ある特定のアプリケーションサーバにマップされる。このようにして、フロントエンドが互いと通信することができない場合でも、別々のフロントエンドが、同じドキュメントを求める複数のリクエストを同じアプリケーションサーバに向けることができる。ドキュメントリクエストの側面の例は、リクエストされるドキュメントの名称である。この場合のコンシステントハッシュは、異なるアプリケーションサーバ上ではドキュメントが何度もレンダリングされない可能性を大幅に高めることを理解されたい（たとえば、複数のフロントエンドが、同じドキュメントを求めるリクエストを受け取る場合がある）。コンシステントハッシュがない場合、多くのアプリケーションサーバは、こうしたリクエストを受け取り、同じドキュメントを処理することができる。ドキュメントリクエストをアプリケーションサーバにマップすることが可能な他のハッシュ技法も、同様に使用することができる。
【００３４】
キャッシュ３０４は、出力ストア１１４およびアプリケーションサーバ１１６など、システムアーキテクチャ１００の他のパーツにフロントエンド１０２がアクセスする必要性を低減させることによって、フロントエンド１０２の性能を向上させる。いくつかの実施形態によると、ドキュメントキャッシュ３０４Ａは、レンダリングドキュメントの少なくともいくつかの部分を、人気によってキャッシュするように動作する。たとえば、頻繁にリクエストされるドキュメントは、出力ストア１１４またはアプリケーションサーバ１１６にアクセスするのではなく、ドキュメントキャッシュ３０４Ａから直接検索することができる。様々な要因および方法論のいずれも、当業者によって企図されるように、ドキュメントの人気を判定するのに使用することができる。
【００３５】
いくつかの実施形態によると、認可キャッシュ３０４Ｂは、ユーザに関連づけられた認可または認証情報を格納するように動作する。ドキュメントおよびレンダリングドキュメントへのアクセスは、ユーザ名およびパスワードなどの識別情報をユーザが入れるための認可プロセスに基づいて制限される。たとえば、ユーザが、ある特定のドキュメントへのアクセスを試みると、フロントエンド１０２は、認可モジュール（図示せず）にアクセスすればよく、このモジュールは、ユーザを識別する、ログイン識別子およびパスワードなどの情報をリクエストする。認可モジュールは次いで、ドキュメントにアクセスするための許可をユーザが得ているかどうか判定すればよい。認可モジュールは、ユーザが許可を得ていることを認可モジュールが確認した場合にのみ、ドキュメントへのアクセスを許可するように構成される。
【００３６】
認可モジュールがユーザの確認に成功すると、認可キャッシュ３０４Ｂは、ユーザが確認済みであることを示す状態情報を格納してよい。フロントエンド１０２は、この状態情報を使用して、ドキュメントにアクセスするための許可をユーザが得ているか、得ていないかを、認可モジュールにアクセスする必要なく、確認することができる。このように、フロントエンド１０２は、リモート認可サービスに証明を送ることを求められず、そうすることによって、フロントエンド１０２の性能が最適化される。さらに、ユーザは、同じドキュメントにアクセスするための追加リクエスト用に識別情報を入れ直す必要がない。
【００３７】
認可キャッシュ３０４Ｂに格納された状態情報は、一度に所与のドキュメントの一部分のみをユーザがリクエストする場合は特に有用である。たとえば、ユーザは最初に、多ページドキュメントの第１のページのみをリクエストする場合がある。ドキュメントの第１のページを求めるリクエストを提出すると、ユーザは、第１のページを閲覧するために、識別情報（すなわち、証明）を入れるよう求められる場合がある。ユーザが続いて、ドキュメントの追加ページをリクエストする場合、フロントエンド１０２は、認可キャッシュ３０４Ｂに格納された証明に基づいて、ユーザを迅速に認可することができる。したがって、ユーザの各認証の結果、必ずしもユーザは証明を要求されるわけではない。さらに、ユーザを認証し認可するために他のサーバに問合せし直す必要をなくすことができる。認可キャッシュ３０４Ｂは、任意の時間量だけ状態情報を格納するように構成することができ、その時間量の後で状態情報は消去してよい。
【００３８】
いくつかの実施形態によると、「辞書」とも呼ばれる位置キャッシュ３０４Ｃは、所与のレンダリングドキュメントの位置を格納するように動作する。たとえば、位置キャッシュ３０４Ｃは、ある特定のレンダリングドキュメントを格納している特定の記憶ユニットを示す。記憶ユニットの例は、出力ストア１１４およびバックエンドキャッシュ１２２を含む。記憶ユニットは、システムアーキテクチャ１００の一部でもよく、システムアーキテクチャ１００から独立していてもよい。レンダリングドキュメントの位置を位置キャッシュ３０４Ｃに格納することによって、フロントエンド１０２は、各記憶ユニットに個別に問い合わせ、記憶ユニットに対する追加負荷を引き起こすのとは反対に、レンダリングドキュメントを求めるリクエストを特定の記憶ユニットに向けることができる。
【００３９】
ここで図４Ａ、４Ｂを参照し、ウェブブラウザによる閲覧用にドキュメントをレンダリングする、本明細書で提示した実施形態に関する追加詳細を挙げる。具体的には、図４Ａは、コンピュータ上で動作するウェブブラウザによる閲覧用にコンテンツをレンダリングする一方法を示すフロー図である。図４Ｂは、コンテンツのレンダリング部分を取得する一方法を示すフロー図である。図４Ｂの方法は、図４Ａの方法が実施されるのと同時に、またはその後で実施することができる。本明細書で説明する論理演算は、（１）コンピューティングシステム上で稼動する一連のコンピュータ実施作用もしくはプログラムモジュールとして、および／または（２）コンピューティングシステム内の、相互接続されたマシン論理回路もしくは回路モジュールとして実装されることを理解されたい。この実装は、コンピューティングシステムの性能および他の要件に依存する選択の問題である。したがって、本明細書で説明する論理演算は、状態、動作、構造デバイス、作用、またはモジュールと、様々に呼ばれる。こうした動作、構造デバイス、作用およびモジュールは、ソフトウェア、ファームウェア、特殊目的デジタル論理、およびそのどの組合せの形でも実装することができる。図面に示し本明細書で説明するよりも多い、または少ない動作が実施されることを理解されたい。こうした動作は、本明細書で説明するのとは異なる順序で実施してもよい。
【００４０】
図４Ａにおいて、ルーチン４００は動作４０２で始まり、ここでフロントエンド１０２は、ドキュメント１１０Ａなどのドキュメントを求めるウェブブラウザ１０６からのリクエストを受け取る。ルーチン４００は次いで、動作４０４に進み、ここでフロントエンド１０２は、ドキュメント１１０Ａを増分レンダリングし始めるよう、レンダリングモジュール１１８に指令する。具体的には、レンダリングモジュール１１８は、ドキュメントストア１１２からドキュメント１１０Ａを検索すればよい。ドキュメントストア１１２からドキュメント１１０Ａを検索すると、レンダリングモジュール１１８は、ドキュメント１１０Ａの第１のページまたは第１のスライドをレンダリングすることができる。いくつかの実施形態では、リクエストは、ドキュメント１１０Ａのある特定のスライドまたはページを指定することができる。この場合、レンダリングモジュール１１８は、第１のページまたは第１のスライドではなく、特定のページまたは特定のスライドをレンダリングすればよい。レンダリングドキュメント１１０Ｂの第１のページまたは第１のスライドを生成すると、ルーチンは動作４０６に進む。
【００４１】
動作４０６で、レンダリングモジュール１１８は、ドキュメント１１０Ａが完全にレンダリングされたかどうか判定する。ドキュメント１１０Ａが完全にレンダリングされている場合、ルーチン４００Ａは終了する。ドキュメント１１０Ａが完全にレンダリングされているわけではない場合、ルーチン４００は動作４０４に戻り、ここでドキュメント１１０Ａの次のページまたは次のスライドがレンダリングされる。ドキュメント１１０Ａがレンダリングドキュメント１１０Ｂに完全にレンダリングされるまで、動作４０４が必要な回数だけ繰り返される。
【００４２】
図４Ｂにおいて、ルーチン４００Ｂが動作４０８で始まり、ここでフロントエンド１０２は、ドキュメント１１０Ａなどのドキュメントを求めるウェブブラウザ１０６からのリクエストを受け取る。ルーチン４００Ｂは次いで、動作４１０に進み、ここで、レンダリングドキュメント１１０Ｂのページまたはスライドがレンダリングモジュール１１８によってレンダリングされるとき、アプリケーションマネージャ１２０は、レンダリングドキュメント１１０Ｂのこうしたページまたはスライドを、フロントエンド１０２に対して利用可能にしてよい。ある特定のページまたは特定のスライドがリクエストされる場合、アプリケーションマネージャ１２０は、その特定のページまたは特定のスライドを利用可能にしてもよい。レンダリングモジュール１１８は、レンダリングドキュメント１１０Ｂのページまたはスライドを、バックエンドキャッシュ１２２により利用可能にすることができる。フロントエンド１０２は次いで、レンダリングドキュメント１１０Ｂのページまたはスライドをバックエンドキャッシュ１２２から検索し、レンダリングドキュメント１１０Ｂのページまたはスライドを、表示のためにウェブブラウザ１０６に伝送すればよい。
【００４３】
ドキュメント１１０Ａがルーチン４００Ａにより増分レンダリングされている間に、ルーチン４００Ｂが実施されることを理解されたい。つまり、レンダリングモジュール１１８がルーチン４００Ａによりドキュメント１１０Ａのページまたはスライドをレンダリングしている間、アプリケーションマネージャ１２０は、ルーチン４００Ｂにより、こうしたレンダリングページまたはスライドを求めるリクエストを満たすことができる。このようにして、フロントエンド１０２は、レンダリングドキュメント１１０Ｂ全体が生成されるのを待たずに、レンダリングドキュメント１１０Ｂの追加ページまたはスライドを検索し続けることができる。さらに、アプリケーションマネージャ１２０が、レンダリングドキュメント１１０Ｂのページまたはスライドを求めるリクエストを満たしている間、レンダリングモジュール１１８は、ドキュメント１１０Ａからの追加ページまたはスライドをレンダリングし続けることができる。
【００４４】
一部の実施形態によると、他のドキュメントを求める追加リクエストが、フロントエンド１０２によって受け取られる。レンダリングモジュール１１８がドキュメント１１０Ａをレンダリングドキュメント１１０Ｂにレンダリングし終えるのを待つのではなく、ダウンロードマネージャ２０２は、レンダリングモジュール１１８がまだドキュメント１１０Ａをレンダリングしている間に、ドキュメントストア１１２から他のドキュメントを検索し、ドキュメントをレンダリングキュー２０４に格納してよい。ドキュメント１１０Ａをレンダリングドキュメント１１０Ｂにレンダリングすると、レンダリングモジュール１１８は、こうした他のドキュメントを、ドキュメントストア１１２から検索されるのを待たずに、レンダリングし始めることができる。
【００４５】
一部の実施形態によると、ドキュメント１１０Ａを求める追加リクエストが、同じアプリケーションサーバ１１６に向けられる。このようにして、他のアプリケーションサーバが、他のドキュメントをレンダリングするのに利用可能になる。さらに、一部の実施形態によると、レンダリングモジュール１１８は、単一のリクエストに応答して、ドキュメント１１０Ａを複数の形式にレンダリングすることができる。
【００４６】
ここで図５を参照すると、コンピュータ５００を示す例示的なコンピュータアーキテクチャ図が示されている。コンピュータ５００は、処理ユニット５０２（「ＣＰＵ」）、システムメモリ５０４、およびメモリ５０４をＣＰＵ５０２に結合するシステムバス５０６を含む。コンピュータ５００は、レンダリングモジュール１１８など、１つまたは複数のプログラムモジュール５１４と、ドキュメントストア１１２など、１つまたは複数のデータベース５１６とを格納する大容量記憶デバイス５１２をさらに含む。他のプログラムモジュール５１４は、ウェブブラウザ１０６、ダウンロードマネージャ２０２、およびリクエストマージモジュール３０２を含む。他のデータベース５１６は、出力ストア１１４、レンダリングキュー２０４、およびキャッシュ３０４を含む。大容量記憶デバイス５１２は、バス５０６に接続された大容量記憶コントローラ（図示せず）を介してＣＰＵ５０２に接続される。大容量記憶デバイス５１２およびそれに関連するコンピュータ可読媒体は、コンピュータ５００のための不揮発性記憶を実現する。本明細書に含まれるコンピュータ可読媒体の説明では、ハードディスクやＣＤ−ＲＯＭドライブなどの大容量記憶デバイスに言及するが、コンピュータ可読媒体は、コンピュータ５００によってアクセスすることができる、市販されているどのコンピュータ記憶媒体でもよいことを当業者は理解されたい。
【００４７】
限定ではなく例として、コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのどの方法でも技術でも実現される揮発性媒体および不揮発性媒体、取外し可能媒体および固定式媒体を含む。たとえば、コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他の固体メモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（「ＤＶＤ」）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ、もしくは他の光学記憶デバイス、磁気カセット、磁気テープ、磁気ディスク記憶デバイスもしくは他の磁気記憶デバイス、または所望の情報を格納するのに使われるとともにコンピュータ５００によってアクセスされる他のどの媒体も含むが、それに限定されない。
【００４８】
様々な実施形態によると、コンピュータ５００は、ネットワーク１０８などのネットワークを介した、リモートコンピュータへの論理接続を用いて、ネットワーク接続された環境において動作することができる。バス５０６に接続されたネットワークインターフェイスユニット５１０を介して、コンピュータ５００がネットワーク１０８に接続される。他のタイプのネットワークおよびリモートコンピュータシステムに接続するのにも、ネットワークインターフェイスユニット５１０が使用されることを理解されたい。コンピュータ５００は、キーボード、マウス、マイクロホンおよびゲームコントローラを含むいくつかの入力デバイス（図示せず）からの入力を受け取り、処理する入出力コントローラ５０８も含む。同様に、入出力コントローラ５０８は、ディスプレイまたは他のタイプの出力デバイス（図示せず）に出力を与える。
【００４９】
上記に基づいて、ウェブブラウザによる閲覧用にドキュメントなどのコンテンツをレンダリングする技術を本明細書に提示したことを理解されたい。本明細書に提示した対象は、コンピュータの構造的特徴、方法論的作用、およびコンピュータ可読媒体に特有の言葉で説明したが、添付の特許請求の範囲において定義される本発明は、本明細書で説明した具体的な特徴、作用、または媒体に必ずしも限定されないことを理解されたい。そうではなく、具体的な特徴、作用および媒体は、請求項を実施する形の例として開示してある。
【００５０】
上述した対象は、例示のために示したに過ぎず、限定的と企図されるべきでない。例示し説明した実施形態および適用形態例に従うことなく、および添付の請求項で説明される本発明の真の精神および範囲から逸脱することなく、様々な修正および変更を本特許請求対象に対して行うことができる。
【図１】
0005537571.tif 000002
【図２】
0005537571.tif 000003
【図３】
0005537571.tif 000004
【図４Ａ】
0005537571.tif 000005
【図４Ｂ】
0005537571.tif 000006
【図５】
0005537571.tif 000007