(57)【特許請求の範囲】
【請求項１】
三次元オブジェクトをサーバー・コンピューター上においてレンダリングする方法であって、
サーバー・コンピューターにおいて文書をレンダリングする要求をクライアント・コンピューターから受けるステップと、
前記要求を受けたことに応答して、前記文書が三次元オブジェクトを収容しているか否か判断するために、前記サーバー・コンピューターにおいて前記文書を解析するステップと、
前記文書が三次元オブジェクトを収容していると判断したことに応答して、
前記三次元オブジェクトを前記サーバー・コンピューター上においてレンダリングし、
前記文書の前記三次元オブジェクトを除く部分を前記サーバー・コンピューター上においてレンダリングし、
前記レンダリングされた三次元オブジェクトと前記文書の前記レンダリングされた部分とを前記サーバー・コンピューターにおいて合体して、レンダリング済み文書を作成し、
前記文書をレンダリングする要求に応答して、前記レンダリング済み文書を前記クライアント・コンピューターに供給するステップと、
を備えている、方法。
【請求項２】
請求項１記載の方法であって、更に、前記文書が三次元オブジェクトを収容していないと判断したことに応答して、
前記文書を前記サーバー・コンピューターにおいてレンダリングするステップと、
前記文書レンダリング要求に応答して、前記レンダリングされた文書を前記クライアント・コンピューターに供給するステップと、
を備えている、方法。
【請求項３】
請求項１記載の方法において、
前記文書レンダリング要求は、文書の内の１ページをレンダリングする要求を備えており、
前記文書が三次元オブジェクトを収容しているか否か判断するために前記文書を解析するステップは、前記ページが三次元オブジェクトを収容しているか否か判断するために前記文書の前記１ページを解析することを含み、
前記レンダリングされた三次元オブジェクトを含む前記文書をレンダリングしてレンダリング済み文書を作成するステップは、前記三次元オブジェクトを除く前記文書の前記１ページをレンダリングし、前記レンダリングされた三次元オブジェクトと前記文書の前記レンダリングされた部分とを合体して前記文書のレンダリング済みページを作成することを含み、
前記文書レンダリング要求に応答して前記レンダリング済み文書を供給するステップは、前記文書の前記１ページをレンダリングする要求に応答して前記文書の前記レンダリング済みページをクライアント・コンピューターに供給することを含む、方法。
【請求項４】
請求項１記載の方法において、前記レンダリング済み文書は、前記文書を作成するのに利用されたアプリケーション・プログラムによって発生された文書のレンダリングと同様である、方法。
【請求項５】
請求項１記載の方法において、前記レンダリング済み文書は画像を含み、前記画像はワールド・ワイド・ウェブ（ウェブ）標準画像フォーマットにしたがってフォーマットされている、方法。
【請求項６】
三次元オブジェクトをサーバー・コンピューター上においてレンダリングするシステムであって、
文書をレンダリングする要求をクライアント・コンピューターから受け、前記文書が三次元オブジェクトを収容しているか否か判断するために前記文書を解析し、前記文書が三次元オブジェクトを収容していると判断したことに応答して、前記三次元オブジェクトをレンダリングする要求を第２サーバー・コンポーネントに送信するように動作する第１サーバー・コンポーネントを備えており、
前記第２サーバー・コンポーネントは、前記三次元オブジェクトをレンダリングする要求を前記第１サーバー・コンポーネントから受け、前記三次元オブジェクトをレンダリングし、前記第１サーバー・コンポーネントからの前記三次元オブジェクトをレンダリングする要求に応答して、前記レンダリングされた三次元オブジェクトを前記第１サーバー・コンポーネントに戻すように動作し、
前記第１サーバー・コンポーネントは、更に、
前記レンダリングされた三次元オブジェクトを前記第２サーバー・コンポーネントから受け取り、
前記文書の前記三次元オブジェクトを除く部分をレンダリングし、
前記レンダリングされた三次元オブジェクトと前記文書の前記レンダリングされた部分とを合体して、レンダリング済み文書を作成し、
前記文書レンダリング要求に応答して、前記レンダリング済み文書を前記クライアント・コンピューターに供給する、ように動作する、
システム。
【請求項７】
請求項６記載のシステムにおいて、前記文書が三次元オブジェクトを収容していないと判断したことに応答して、前記第１サーバー・コンポーネントは、更に、
前記文書をレンダリングして、レンダリング済み文書を作成し、
前記文書レンダリング要求に応答して、前記レンダリング済み文書を前記クライアント・コンピューターに供給する、
ように動作する、システム。
【請求項８】
請求項７記載のシステムにおいて、前記第１サーバー・コンポーネントは第１サーバー・コンピューター上で実行され、前記第２サーバー・コンポーネントは第２サーバー・コンピューター上で実行される、システム。
【請求項９】
請求項７記載のシステムにおいて、前記第１サーバー・コンポーネントおよび前記第２サーバー・コンポーネントは１つのサーバー・コンピューター上において実行される、システム。
【請求項１０】
請求項７記載のシステムにおいて、前記レンダリング済み文書は、前記文書を作成するのに利用されたアプリケーション・プログラムによって発生された文書のレンダリングと同様である、システム。
【請求項１１】
請求項１０記載のシステムにおいて、前記レンダリング済み文書は画像を含み、前記画像はワールド・ワイド・ウェブ（ウェブ）標準画像フォーマットにしたがってフォーマットされている、システム。
【請求項１２】
コンピューター実行可能な命令が記憶されており信号ではないコンピューター可読媒体であって、前記命令はコンピューターによって実行されると、前記コンピューターに、
文書をレンダリングする要求をクライアント・コンピューターから受けるステップと、
前記要求を受けたことに応答して、前記文書が三次元オブジェクトを収容しているか否か判断するために前記文書を解析するステップと、
前記文書が三次元オブジェクトを収容していると判断したことに応答して、
前記三次元オブジェクトを標準画像フォーマットでレンダリングし、
前記文書の前記三次元オブジェクトを除く部分をレンダリングし、
前記レンダリングされた三次元オブジェクトと前記文書の前記レンダリングされた部分とを合体して、前記文書を作成するのに用いられたアプリケーション・プログラムによって生成された文書のレンダリングと同様である前記標準画像フォーマットでレンダリング済み文書を作成するステップと、
前記文書が三次元オブジェクトを収容していないと判断したことに応答して、前記文書をレンダリングして前記文書を作成するのに用いられたアプリケーション・プログラムによって生成された文書のレンダリングと同様である前記標準画像フォーマットでレンダリング済み文書を作成するステップと、
前記文書レンダリング要求に応答して、前記レンダリングされた文書を前記クライアント・コンピューターに供給するステップと、
を実行させる、コンピューター可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
デスクトップ生産ソフトウェア・アプリケーションは、ユーザがワープロ文書、表計算文書、プレゼンテーション文書、およびその他の種類の文書を作成することを可能にする。これらの文書は、多くの場合、テキスト、フォーマッティング(formatting)、画像、および三次元（「３−Ｄ」）オブジェクトを含むその他の種類のオブジェクトを含む。例えば、このような文書は、三次元テキスト、三次元の表、三次元形状、三次元グラフィック、および三次元チャートのような、三次元オブジェクトを含む。このような三次元オブジェクトをワープロ文書または表計算文書に追加して、その文書に視覚的素材(flair)を付加するのは、ユーザにとって極当たり前のことである。
【０００２】
文書の作成に加えて、典型的なデスクトップ生産アプリケーションは、同じアプリケーションまたは互換性があるアプリケーションを用いて他のユーザが作成した文書を、ユーザが見ることおよび編集することも可能にする。しかしながら、別のユーザが作成した文書を見るためには、その文書を作成するために利用した該当のソフトウェア・アプリケーション、または互換性のあるアプリケーション・プログラムを、その文書を見ようとするコンピューター上にインストールしなければならないのが通例である。例えば、ユーザがワープロ文書を別のユーザから受信し、画像、三次元オブジェクト、およびその他の内部に収容されているコンテンツの全てを含む、その文書を見ることを望む場合、通例、その文書を作成するために利用したワープロ・アプリケーション・プログラムのコピーをユーザのコンピューターにインストールする必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
多くの場合、ユーザは、文書を作成するために利用したアプリケーション・プログラムのコピーが彼らのコンピューター上にインストールされていなければ、文書を全く見ることができないと考えられる。他の場合では、ユーザが文書を見るためには、文書を表示するための互換ビューア・アプリケーション・プログラムを突き止め、ダウンロードし、彼らのコンピューター上にインストールする必要がある場合もある。しかしながら、このようなビューア・アプリケーションを突き止め、インストールし、実行することは、ユーザにとって難しい場合もある。更に別の場合には、ユーザが文書を見ることを望むデバイスの形式に合ったアプリケーション・プログラムまたはビューア・プログラムの互換バージョンが入手できない場合もある。例えば、ユーザがパーソナル・ディジタル・アシスタント（「ＰＤＡ」）またはワイヤレス移動体電話機上で文書を見たいと思っても、その文書を作成するために利用したアプリケーション・プログラムまたはビューア・アプリケーションには、その機種に合ったバージョンが存在しない場合もある。これは、文書、ならびにその中に収容されている画像、三次元オブジェクト、およびその他のコンテンツの全てを見る必要があるが、その文書を作成するために利用した必要なアプリケーション・プログラムを所持していないユーザにとって、非常に苛立たしいことになり得る。
【０００４】
本明細書では、これらの考慮すべき事項およびその他に関して、この開示を紹介することとする。
【課題を解決するための手段】
【０００５】
本明細書では、サーバー・コンピューター上において三次元オブジェクトを収容する文書をレンダリングするための技術について記載する。即ち、本明細書において紹介する技術および概念の利用によって、１つ又は複数の三次元オブジェクトを収容する文書を、ワールド・ワイド・ウェブ（「ウェブ」）ブラウザ・アプリケーションのような、クライアント・コンピューター上で実行する標準的なビューア・アプリケーション・プログラムを用いて、表示のためにサーバー・コンピューター上にレンダリングすることができる。この文書は、内部にいずれの三次元オブジェクトを収容していても、サーバー・コンピューター上でレンダリングされるので、その文書を作成するために利用されたアプリケーション・プログラムも、その文書形式に合わせた特定のビューア・アプリケーションも、クライアント・コンピューター上にインストールする必要がない。
【０００６】
本明細書において紹介する一態様によれば、クライアント・コンピューターが、ワープロ文書、プレゼンテーション文書、または表計算文書のような文書を表示する要求を受ける。この要求は、例えば、その文書を見るユーザの要求に応答して到来する場合がある。このような要求に応答して、クライアント・コンピューターは、その文書を作成する際に利用したアプリケーション・プログラムが、文書を表示するためにクライアント・コンピューターに入手可能か否か判断する。文書を作成する際に利用したアプリケーション・プログラムが、文書を表示するために入手可能でない場合、クライアント・コンピューターは、サーバー・コンピューターに、当該文書に収容されているあらゆる三次元オブジェクトのレンダリングを含む、文書レンダリング要求を送信する。
【０００７】
文書レンダリング要求を受けたことに応答して、サーバー・コンピューターは文書を解析して、その文書が何らかの三次元オブジェクトを収容しているか否か判断する。例えば、サーバー・コンピューターは、文書を解析して、何らかの三次元の表、チャート、グラフィック、形状、またはテキストが文書に収容されているか否か判断することができる。文書が三次元オブジェクトを収容している場合、サーバー・コンピューターはその三次元オブジェクトをレンダリングする。レンダリング・プロセスによって、三次元オブジェクトは二次元画像に変換される。一実施形態では、移植可能ネットワーク・グラフィクス（「ＰＮＧ」）フォーマットのような、ウェブ標準画像フォーマットで、画像がレンダリングされる。実施形態によれば、三次元オブジェクトのレンダリングは、同じサーバー・コンピューターまたは異なるサーバー・コンピューターでも実行することができる。このように、レンダリング・プロセスは、多数のサーバー・コンピューターに拡大(scale)することができる。
【０００８】
一旦三次元オブジェクトをレンダリングしたなら、文書の残りの部分もウェブ標準画像フォーマットにレンダリングする。この際、レンダリングしたあらゆる三次元オブジェクトを文書に合体することが含まれる。次いで、元の文書レンダリング要求に応答して、文書のレンダリングしたバージョンをクライアント・コンピューターに戻す。レンダリング済み文書はウェブ標準画像フォーマットになっているので、このレンダリング済み文書は、ウェブ・ブラウザ・アプリケーション・プログラムのような、多くの種類のデバイス上で極普通に入手可能な、標準的なビューア・アプリケーションによって、クライアント・コンピューター上に表示することができる。文書のレンダリングしたバージョン、およびその中に収容されておりレンダリングされているあらゆる三次元オブジェクトは、標準的なビューア・アプリケーションによって表示されるときは、あたかもその文書を作成したアプリケーション・プログラムによって表示されたかのように、実質的に同様に見える。実施形態によれば、何らかの三次元オブジェクトを内部に収容している文書は、文書全体ではなく、一度に１ページずつレンダリングすることもできる。
【０００９】
前述の主題は、コンピューター制御装置、コンピューター・プロセス、コンピューティングシステムとして、またはコンピューター読み取り可能媒体のような製造品目としても実現できることも認められてしかるべきである。これらおよび種々のその他の特徴は、以下の詳細な説明を読み、添付図面を検討することから明白となろう。
【００１０】
この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために用いることも意図していない。更に、特許請求する主題は、本開示の任意の部分に記されている任意の欠点または全ての欠点を解決する実施態様に限定されるのでもない。
【図面の簡単な説明】
【００１１】
【図１】図１は、動作環境の一例、および本明細書において紹介する実施形態によって提供する様々なソフトウェア・コンポーネントの態様を示すネットワーク図である。
【図２】図２は、本明細書において紹介する一実施形態において設けられる、クライアント・コンピューターの動作の態様をそれぞれ示す流れ図である。
【図３】図３は、は、本明細書において紹介する一実施形態において設けられる、フロント・エンド・サーバー・コンピューターの動作の態様をそれぞれ示す流れ図である。
【図４】図４は、本明細書において紹介する一実施形態において設けられる、バック・エンド・サーバー・コンピューターの動作の態様をそれぞれ示す流れ図である。
【図５】図５は、本明細書において紹介する実施形態の態様を実現することができるコンピューティングシステムについて、コンピューター・ハードウェアおよびソフトウェア・アーキテクチャの一例を示すコンピューター・アーキテクチャ図である。
【発明を実施するための形態】
【００１２】
以下の詳細な説明は、三次元オブジェクトをサーバー・コンピューター上においてレンダリングする技術を対象とする。本明細書において紹介する技術および概念の使用により、１つ又は複数の三次元オブジェクトを収容する文書を、クライアント・コンピューター上で実行する標準的なビューア・アプリケーション・プログラムを用いて、表示のためにレンダリングすることが可能となる。このプロセスによって、文書を見るために、当該文書を作成するために利用したアプリケーション・プログラムや、その文書の形式に合わせた特定のビューア・アプリケーションをクライアント・コンピューター上にインストールする必要がなくなる。
【００１３】
本明細書において記載する主題は、コンピューター・システム上におけるオペレーティング・システムおよびアプリケーション・プログラムの実行と共に実行するプログラム・モジュールという一般的なコンテキストにおいて紹介するが、他の種類のプログラム・モジュールと組み合わせて他の実施態様も実行可能であることは、当業者には認められよう。一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データー構造、および特定のタスクを実行するかまたは特定の抽象データー・タイプを実装するその他の種類の構造を含む。更に、本明細書において記載する主題は、他のコンピューター・システム構成でも実用化できることは、当業者には認められよう。他のコンピューター・システム構成は、ハンド・ヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー主体またはプログラマブル消費者電子機器、ミニコンピューター、メインフレーム・コンピューター等を含む。
【００１４】
以下の詳細な説明では、その一部をなし、具体的な実施形態または例を一例として示す添付図面を参照する。ここで図面を参照すると、同様の参照番号は、様々な図全体を通じて同様の要素を表しており、三次元オブジェクトをサーバー・コンピューター上でレンダリングするコンピューティングシステムおよび方法の態様について説明する。
【００１５】
これより図１に移り、動作環境の一例、および本明細書において紹介する実施形態によって提供する様々なソフトウェア・コンポーネントに関する詳細を示す。即ち、図１は、三次元オブジェクトをサーバー・コンピューター上においてレンダリングするシステム１００の態様を示す。システム１００は、クライアント・コンピューター１０４、１つ又は複数のフロント・エンド・サーバー・コンピューター１０６Ａ〜１０６Ｎ、および１つ又は複数のバック・エンド・サーバー・コンピューター１０８Ａ〜１０８Ｎを含む。図１に示すように、クライアント・コンピューター１０４、フロント・エンド・サーバー・コンピューター１０６Ａ、およびバック・エンド・サーバー・コンピューター１０８Ａは、ネットワーク１１７のような１系統以上のローカルおよびワイド・エリア・ネットワークを通じて相互接続されている。尚、図１に示すよりも多くのネットワーク接続を利用してもよいことは認められてしかるべきである。
【００１６】
図１に示すクライアント・コンピューター１０４は、オペレーティング・システムおよび１つ又は複数のアプリケーション・プログラムを実行することができる標準的なデスクトップまたはラップトップ・コンピューター・システムを備えている。即ち、実施形態によれば、クライアント・コンピューター１０４は文書作成アプリケーション１１２を実行するように動作する。文書作成アプリケーション１１２は、文書１１４を作成するためのアプリケーション・プログラムを備えており、文書１１４は、３−Ｄオブジェクト１１６のような１つ又は複数の三次元オブジェクトを含んでも含まなくてもよい。
【００１７】
実施態様によれば、文書作成アプリケーション１１２は、ワープロ文書、プレゼンテーション文書、または表計算文書を作成するためのアプリケーション・プログラムを備えている。しかしながら、本明細書において記載する実施態様は、内部に３−Ｄオブジェクトを収容する文書であれば、いずれの形式の文書を作成するための文書作成アプリケーションとでも利用できることは認められてしかるべきである。他の態様によれば、３−Ｄオブジェクト１１６は三次元の表、三次元チャート、三次元グラフィック、三次元形状、または三次元のテキスト・オブジェクトを備えている。しかしながら、３−Ｄオブジェクト１１６は、三次元特性を有するオブジェクトであればいずれの種類でも備えることができることは認められてしかるべきである。
【００１８】
図１に示すように、クライアント・コンピューター１０４はクライアント・ビューア・アプリケーション１１２も実行するように動作する。一実施態様によれば、クライアント・ビューア・アプリケーション１１０は、標準的な画像フォーマットにしたがってフォーマットした画像を表示するように構成されているアプリケーションを備えている。たとえば、一実施態様では、クライアント・ビューア・アプリケーション１１０は、ＰＮＧ画像ファイルを表示することができるアプリケーション・プログラムを備えている。また、クライアント・ビューア・アプリケーション１１２は、他の形式のウェブ標準画像フォーマットを表示するように構成することもできる。特定的な一実施態様では、クライアント・ビューア・アプリケーション１１０は、ウェブ標準画像フォーマットでフォーマットした画像を表示することができる、ウェブ・ブラウザ・アプリケーション・プログラムを備えている。しかしながら、本明細書においてクライアント・ビューア・アプリケーション１１０によって実行するものとして記載する機能(functionality)は、ウェブ標準画像フォーマットを表示することができる他の種類のプログラムに統合することもできることは認められてしかるべきである。
【００１９】
以下で更に詳しく論ずるが、クライアント・コンピューター１０４は、文書１１４のような、文書を表示する要求を受けるように動作する。このような要求の受けたことに応答して、クライアント・コンピューター１０４は、文書作成アプリケーション１１２が文書１１４をレンダリングし表示するために入手可能か否か判断する。文書作成アプリケーション１１２が文書１１４を表示するために入手可能でない場合、クライアント・コンピューター１０４は、フロント・エンド・サーバー・コンピューター１０６Ａおよびバック・エンド・サーバー・コンピューター１０８Ａが備えている、文書１１４をレンダリングするための機能を利用する。文書作成アプリケーション１１２は、例えば、文書作成アプリケーション１１２がクライアント・コンピューター１０４上にインストールされていない場合、またはインストールされているが機能しない場合には、利用できない場合がある。
【００２０】
クライアント・コンピューター１０４が文書１１４を表示する要求を受けたが、そのための文書作成アプリケーション１１２が入手できない場合、クライアント・コンピューター１０４は要求１１８Ａをフロント・エンド・サーバー・コンピューター１０６Ａに送信する。図１に示す実施形態では、要求１１８Ａはレンダリング要求１２０および文書１１４を含む。しかしながら、別の実施形態では、要求１１８Ａはレンダリング要求１２０および文書１１４に対する参照を含む。この実施形態では、文書１１４は要求１１８Ａと一緒に送信されない。代わりに、クライアント・コンピューター１０３は、ネットワークに接続されておりフロント・エンド・サーバー・コンピューター１０６Ａおよびバック・エンド・サーバー・コンピューター１０８Ａによってアクセス可能な格納場所に文書１１４を格納する。このようにすると、文書１１４を要求１１８Ａと一緒に送信する必要はない。
【００２１】
文書１１４が、３−Ｄオブジェクト１１６のような、何らかの３−Ｄオブジェクトを収容している場合、これらのオブジェクトも要求１１８と一緒に送信される。また、要求１１８Ａは、文書１１４をレンダリングする際に、フロント・エンド・サーバー・コンピューター１０６Ａおよびバック・エンド・サーバー・コンピューター１０８Ａが使用することができる、クライアント・コンピューター１０４およびクライアント・ビューア・アプリケーション１１０の処理機能(capabilities)に関する情報も含むことができる。例えば、クライアント・コンピューター１０４は、それに接続されているディスプレイ・デバイスの解像度に関する情報を送信することができる。この情報は、文書１１４をレンダリングすべき解像度を決定するために、フロント・エンド・サーバー・コンピューター１０６Ａおよびバック・エンド・サーバー・コンピューター１０８Ａによって利用される。
【００２２】
フロント・エンド・サーバー・コンピューター１０６Ａが要求１１８Ａを受けると、フロント・エンド・サーバー・コンピューター１０６Ａは、文書１１４が何らかの三次元オブジェクトを収容しているか否か判断する。三次元オブジェクトが文書１１４に収容されている場合、フロント・エンド・サーバー・コンピューター１０６Ａは、三次元オブジェクトレンダリング要求１１８Ｂをバック・エンド・サーバー・コンピューター１０８Ａに送信する。要求１１８Ｂは、レンダリングする三次元オブジェクト１１６を含む。バック・エンド・サーバー・コンピューター１０８Ａは、要求１１８Ｂを受け、３−Ｄレンダリング・プロセス１２１を開始する。
【００２３】
３−Ｄレンダリング・プロセス１２１は、３−Ｄオブジェクト１１６を取り込み、３−Ｄオブジェクト１１６を画像にレンダリングする。実施形態によれば、ＰＮＧのような標準的な画像フォーマットを利用すれば、３−Ｄオブジェクト１１６をレンダリングすることができる。他の形式の画像フォーマットも利用することができる。３−Ｄレンダリング・プロセス１２１が３−Ｄオブジェクト１１６をレンダリングし終えると、フロント・エンド・サーバー・コンピューター１０６Ａに応答１２２が返送される。応答１２２は、レンダリング済み３−Ｄオブジェクト１２４を含む。
【００２４】
フロント・エンド・サーバー・コンピューター１０６Ａが応答１２２を受信すると、フロント・エンド・レンダリング・プロセス１１９を利用して、文書１１４の他の部分をレンダリングする。これは、例えば、文書１１４の中にある他のコンテンツをレンダリングし、レンダリング済み３−Ｄオブジェクト１２４を、レンダリング済み文書１２８の中に合体させることを含むことができる。３−Ｄレンダリング・プロセス１２１と同様に、フロント・エンド・レンダリング・プロセス１１９は文書１１４を、ＰＮＧのような、ウェブ標準画像フォーマットにレンダリングする。このようにして、ウェブ標準画像フォーマットをレンダリングすることができる標準的なビューア・アプリケーションであればいずれでも、フロント・エンド・レンダリング・プロセス１１９からの出力を表示することが可能となる。
【００２５】
一旦フロント・エンド・レンダリング・プロセス１１９が完了したなら、フロント・エンド・サーバー・コンピューター１０６Ａは応答１２６をクライアント・ビューア・アプリケーション１１０に送信する。応答１２６は、レンダリング済み文書１２８およびあらゆるレンダリング済み３−Ｄオブジェクト１２４を含む。一旦応答１２６がクライアント・ビューア・アプリケーション１１０によって受信されたなら、クライアント・ビューア・アプリケーション１１０は、クライアント・コンピューター１０４のディスプレイ・デバイス上に、レンダリング済み文書１２８を表示する。
【００２６】
尚、図１を参照して以上に記載したプロセスでは、文書１１４全体をサーバー・コンピューター１０６Ａおよび１０８Ａによってレンダリングさせるが、他の実施態様では、一度に文書１１４の下位部分(sub-portions)をレンダリングさせてもよいことは認められてしかるべきである。例えば、一実施態様によれば、３−Ｄオブジェクトを内部に収容する文書１１４の個々のページを、サーバー・コンピューター１０６Ａおよび１０８Ａによってレンダリングし、クライアント・ビューア・アプリケーション１１０に戻すこともできる。文書１１４のページを１回に１枚ずつレンダリングすることによって、フロント・エンド・サーバー・コンピューター１０６Ａおよびバック・エンド・サーバー・コンピューター１０８Ａの計算要件が低減する。
【００２７】
また、図１に関して説明したプロセスは、１つのフロント・エンド・サーバー・コンピューター１０６Ａおよび１つのバック・エンド・サーバー・コンピューター１０８Ａと合わせて説明したが、多数のコンピューティングシステムを利用してもよいことも、認められてしかるべきである。例えば、多数のフロント・エンド・サーバー・コンピューター１０６Ａ〜１０６Ｎを利用すると、クライアント・コンピューター１０４からの要求１１８Ａをてきぱき処理することができる。同様に、多数のバック・エンド・サーバー・コンピューター１０８Ａ〜１０８Ｎを利用すると、３−Ｄオブジェクトを並列にレンダリングすることができる。他の実施態様によれば、多数の中央演算装置または多数のコア中央演算装置のように、各バック・エンド・サーバー・コンピューター１０８Ａ〜１０８Ｎ上において多数の演算装置を利用することによって、スケーラビリティ(scalability)を得ることもできる。このように、多くの３−Ｄオブジェクトのレンダリングを並列に実行することができる。他の実施態様では、本明細書では多数のコンピューティングシステム上で行われるものとして紹介した処理を、１つのコンピューティングシステム上で実行することもできる。
【００２８】
また、内部に収容されている何らかのレンダリング済み３−Ｄオブジェクト１２４が含まれる、レンダリング済み文書１１８は、フロント・エンド・サーバー・コンピューター１０６Ａおよびバック・エンド・サーバー・コンピューター１０８Ａによって、最大の視覚的忠実度をもって、レンダリングされることも認められてしかるべきである。最大の視覚的忠実度とは、フロント・エンド・サーバー・コンピューター１０６Ａおよびバック・エンド・サーバー・コンピューター１０８Ａが、視覚品質の損失を伴わずに、文書１１４、およびその中に収容されているあらゆる三次元オブジェクト１１６をレンダリングできることを意味する。このように、レンダリング済み文書１２８、およびその中に収容されておりあらゆるレンダリング済み３−Ｄオブジェクト１２４は、クライアント・コンピューター１０４のユーザにとっては、文書１１４が文書作成アプリケーション１１２によって表示されたかのように、実質的に同様に見える。図１に示す種々のコンピューティングシステムおよびソフトウェア・コンポーネントに関する更なる詳細を、図２から図５に関して以下に示す。
【００２９】
これより図２から図４を参照して、三次元オブジェクトをサーバー・コンピューター上においてレンダリングするための、本明細書において紹介した実施形態に関する更なる詳細を示す。即ち、図２から図４は、本明細書において紹介する一実施形態における、クライアント・コンピューター１０４、フロント・エンド・サーバー・コンピューター１０６Ａ、およびバック・エンド・サーバー・コンピューター１０８Ａそれぞれの動作の態様を示す流れ図である。クライアント・コンピューター１０４、フロント・エンド・サーバー・コンピューター１０６Ａ、およびバック・エンド・サーバー・コンピューター１０８Ａ間における相互作用を例示するために、図２から図４を纏めて説明する。
【００３０】
尚、ここで説明する論理動作は、（１）コンピューティングシステム上で走る一連のコンピューター実施行為またはプログラム・モジュールとして、および／または（２）コンピューティングシステム内部において相互接続された機械論理回路または回路モジュールとして実現されていることは、認められてしかるべきである。この実施態様は、コンピューティングシステムの性能およびその他の要件に応じた選択事項である。したがって、ここで説明する論理動作は、状態動作、構造的デバイス、行為、またはモジュールというように、様々な呼称がある。これらの動作、構造的デバイス、行為、およびモジュールは、ソフトウェア、ファームウェア、特殊目的ディジタル・ロジック、およびその任意の組み合わせにおいて実現することができる。また、図に示しここで説明する動作よりも多い動作または少ない動作でも実行できることも認められてしかるべきである。また、これらの動作は、ここに説明する順序とは異なる順序で実行してもよい。
【００３１】
ルーチン２００は動作２０２において開始し、ここで、クライアント・コンピューター１０４が文書１１４表示要求を受ける。このような要求は、例えば、文書１１４の内容を見るユーザの要求に応答して到来する場合もある。動作２０２から、ルーチン２００は動作２０４に進み、ここで、クライアント・コンピューター１０４は、文書１１４を表示するために文書作成アプリケーション１１２が入手可能か否か判断する。文書作成アプリケーション１１２が入手可能である場合、ルーチン２００は動作２０６に進み、ここで、クライアント・コンピューター１０４は文書作成アプリケーション１１２に文書１１４を開かせ、そしてこの文書を表示させる。動作２０６から、ルーチン２００は動作２１４に進み、ここで終了する。
【００３２】
文書作成アプリケーション１１２が入手できない場合、ルーチン２００は動作２０４から動作２０８に分岐する。動作２０８において、クライアント・コンピューター１０４は要求１１８をフロント・エンド・サーバー・コンピューター１０６Ａに送信する。前述のように、要求１１８は、フロント・エンド・サーバー・コンピューター１０６に文書１１４をレンダリングする要求を備えており、この要求は文書１１４およびその内部に収容されているあらゆる三次元オブジェクト１１６を含む。
【００３３】
フロント・エンド・サーバー・コンピューター１０６Ａは、ルーチン３００の動作３０２において、要求１１８Ａを受ける。このような要求を受けたことに応答して、フロント・エンド・サーバー・コンピューター１０６Ａは、動作３０４において、文書１１４を解析する。一旦解析が完了したなら、ルーチン３００は動作３０６に進み、ここで、フロント・エンド・サーバー・コンピューター１０６Ａは、文書１１４に何らかの三次元コンテンツが収容されているか否か判断する。文書１１４に三次元コンテンツが収容されていない場合、ルーチン３００は動作３０６から、以下で説明する動作３１２に分岐する。しかしながら、文書１１４が１つ又は複数の３−Ｄオブジェクト１１６を収容している場合、ルーチン３００は動作３０６から動作３０８に進む。動作３０８において、フロント・エンド・サーバー・コンピューター１０６Ａは要求１１８Ｂをバック・エンド・サーバー・コンピューター１０８Ａに送信する。先に論じたように、要求１１８Ｂは、バック・エンド・サーバー・コンピューター１０８Ａに対する３−Ｄオブジェクト１１６をレンダリングする要求を備えている。
【００３４】
バック・エンド・サーバー１０８Ａは、ルーチン４００の動作４０２において、要求１１８Ｂを受ける。次いで、ルーチン４００は動作４０４に進み、ここで、３−Ｄレンダリング・プロセス１２１を実行して、３−Ｄオブジェクト１１６をレンダリングして、レンダリング済み３−Ｄオブジェクト１２４とする。一旦３−Ｄレンダリング・プロセス１２１が完了したなら、レンダリング済み３−Ｄオブジェクト１２４を含む応答１２１を、動作４０６において、フロント・エンド・サーバー・コンピューター１０６Ａに戻す。動作４０６から、ルーチン４００は動作４０８に進み、ここで終了する。
【００３５】
フロント・エンド・サーバー・コンピューター１０６Ａは、ルーチン３００の動作３１０において、レンダリング済み３−Ｄオブジェクト１２４を受信する。動作３１０から、ルーチン３００は動作３１２に進み、ここで、フロント・エンド・レンダリング・プロセス１１９によって文書１１４をレンダリングする。この動作には、レンダリング済み３−Ｄオブジェクト１２４を、レンダリング済み文書１２８に合体することを含む。一旦フロント・エンド・レンダリング・プロセスが文書１２８を完全にレンダリングしたなら、ルーチン３００は動作３１４に進み、ここで応答１２６をクライアント・コンピューター１０４に戻す。応答１２６は、レンダリング済み文書１２８およびレンダリング済み３−Ｄオブジェクト１２４を含む。
【００３６】
クライアント・コンピューター１０４は、ルーチン２００の動作２１０において、応答１２６を受信する。レンダリング済み文書１２８を含む応答１２６を受け取ったことに応答して、ルーチン２００は動作２１２に進み、ここで、クライアント・ビューア・アプリケーション１１０は、その内部に収容されているあらゆるレンダリング済み３−Ｄオブジェクト１２４を含む、レンダリング済み文書１２８を表示する。動作２１２から、ルーチン２００は動作２１４に進み、ここで終了する。
【００３７】
尚、ルーチン２００、３００、および４００は、文書１１４全体をレンダリングするプロセスを例示するが、同様のプロセスは、一度に文書１１４の１ページずつレンダリングする際にも利用できることは認められてしかるべきである。また、文書１１４のレンダリングは、フロント・エンド・サーバー・コンピューター１０６Ａおよびバック・エンド・サーバー・コンピューター１０８Ａ双方によって実行するものとして説明したが、これらのプロセスは１つのサーバー・コンピューターによって実行することもできることも認められてしかるべきである。即ち、フロント・エンド・レンダリング・プロセス１１９および３−Ｄレンダリング・プロセス１２１は、１つのサーバー・コンピューター上において実行することもできる。また、他の種類の実施態様を利用しても、本明細書に記載した種々のコンピューターのネットワーク性能およびプロセッサーの利用度を最大限高めることができる。
【００３８】
図５は、先に紹介したように、三次元オブジェクトをサーバー・コンピューター上でレンダリングするための、本明細書において記載したソフトウェア・コンポーネントを実行することができるコンピューター５００のコンピューター・アーキテクチャ例を示す。図５に示すコンピューター・アーキテクチャは、従来のデスクトップ、ラップトップ、またはサーバー・コンピューターを示し、本明細書において紹介したソフトウェア・コンポーネントのいずれの態様を実行するためにでも利用することができる。これらのソフトウェア・コンポーネントは、クライアント・コンピューター１０４、フロント・エンド・コンピューター１０６Ａ〜１０６Ｎ、またはバック・エンド・コンピューター１０８Ａ〜１０８Ｎ上において実行するものとして記載した。
【００３９】
図５に示すコンピューター・アーキテクチャは、中央演算装置５０２（「ＣＰＵ」）、ランダム・アクセス・メモリー５１４（「ＲＡＭ」）およびリード・オンリ・メモリー（「ＲＯＭ」）５１６を含むシステム・メモリー５０８、ならびにこれらのメモリーをＣＰＵ５０２に結合するシステム・バス５０４を含む。基本入出力システムは、起動中のように、コンピューター５００内のエレメント間において情報を転送するのに役立つ基本的なルーチンを含み、ＲＯＭ５１６に格納されている。更に、コンピューター５００は、オペレーティング・システム５１８、アプリケーション・プログラム、およびその他のプログラム・モジュールを格納する大容量記憶装置５１０も含む。他のプログラム・モジュールについては、本明細書の中で更に詳しく説明する。
【００４０】
大容量記憶装置５１０は、ＣＰＵ５０２に、バス５０４に接続されている大容量記憶コントローラー（図示せず）を介して接続されている。大容量記憶装置５１０およびそれに付随するコンピューター読み取り可能媒体は、コンピューター５００に不揮発性ストレージを備えている。本明細書に収蔵するコンピューター読み取り可能媒体の記述は、ハード・ディスクまたはＣＤ−ＲＯＭドライブのような大容量記憶デバイスに言及するが、コンピューター読み取り可能媒体は、コンピューター５００によってアクセスすることができる、任意の入手可能なコンピューター記憶媒体とすることができることは、当業者には認められてしかるべきであろう。
【００４１】
一例として、そして限定ではなく、コンピューター読み取り可能媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターというような情報の格納のために、任意の方法または技術で実施される、揮発性および不揮発性、リムーバブル、および非リムーバブル媒体を含む。例えば、コンピューター読み取り可能媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたはその他のソリッド・ステート・メモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ、またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができしかもコンピューター５００がアクセス可能なその他のいずれの媒体も含むが、これらに限定されるのではない。
【００４２】
種々の実施形態によれば、コンピューター５００は、ネットワーク５２０のようなネットワークを通じて、リモート・コンピューターへの論理接続を用いて、ネットワーク型環境において動作することもできる。コンピューター５００は、バス５０４に接続されているネットワーク・インターフェース・ユニット５０６を通じてネットワーク５２０に接続することができる。尚、ネットワーク・インターフェース・ユニット５０６は、他の種類のネットワークおよびリモート・コンピューター・システムに接続するためにも利用することができることは、認められてしかるべきである。また、コンピューター５００は、キーボード、マウス、または電子スタイラス（図５には示されていない）を含む、多数のその他のデバイスから入力を受け取り処理するために、入力／出力コントローラー５１２も含むことができる。同様に、入力／出力コントローラーは、表示画面、プリンター、またはその他の種類の出力デバイス（これも図５には示されていない）に出力を供給することができる。  
【００４３】
先に端的に述べたように、ネットワーク型デスクトップ、ラップトップ、またはサーバー・コンピューターの動作を制御するのに適したオペレーティング・システム５１８を含む、多数のプログラム・モジュールおよびデーター・ファイルをコンピューター５００の大容量記憶デバイス５１０およびＲＡＭ５１４に格納することができる。大容量記憶デバイス５１０およびＲＡＭ５１４は、１つ又は複数のプログラム・モジュールも格納することができる。即ち、大容量記憶デバイス５１０およびＲＡＭ５１４は、クライアント・ビューア・アプリケーション１１０、フロント・エンド・レンダリング・プロセス１１９、および３−Ｄレンダリング・プロセス１２１を格納することができ、これらの各々については、図１から図４に関して先に詳細に説明した。また、大容量記憶装置５１０およびＲＡＭ５１４は、他の種類のプログラム・モジュールも格納することができる。
【００４４】
以上の説明に基づいて、三次元オブジェクトをサーバー・コンピューター上においてレンダリングする技術が、本明細書において紹介されたことが認められてしかるべきである。本明細書において紹介した主題は、コンピューターの構造的特徴、方法論的行為、およびコンピューター読み取り可能媒体に特定した文言で記載したが、添付する特許請求の範囲において定義する発明は、本明細書において記載した具体的な特徴、行為、または媒体のいずれにも必ずしも限定されないことは言うまでもない。むしろ、これら具体的な特徴、行為、および媒体は、特許請求の範囲を実現する形態例として開示したに過ぎない。
【００４５】
以上に記載した主題は、例示のために提示したのであって、限定と解釈してはならない。本明細書に記載した主題には、図示および記載した実施形態例およびアプリケーション例に従わなくとも、そして以下の特許請求の範囲に明記する本発明の真の主旨および範囲から逸脱することなく、種々の修正や変更が可能である。
【図１】
0005389809.tif 000002
【図２】
0005389809.tif 000003
【図３】
0005389809.tif 000004
【図４】
0005389809.tif 000005
【図５】
0005389809.tif 000006