ドキュメントを記憶し、第1のアプリケーションで前記ドキュメントを修正するためのコマンドを受信し、前記第1のアプリケーションによって前記受信したコマンドをシリアル化し、前記ドキュメントとは別にコマンドストリームの中に前記シリアル化されたコマンドを記憶し、第2のアプリケーションによって前記ドキュメントを修正して、修正されたドキュメントを作成し、前記第1のアプリケーションによって、前記コマンドストリームの中の前記シリアル化されたコマンドを前記修正されたドキュメントに適用するようにコンピュータ実施動作を実行することを含むことを特徴とするコンピュータ実施方法。前記第1のアプリケーションで前記ドキュメントを保存するための要求を受信すること、前記要求の受信に応答して、番号順に前記ドキュメントに前記コマンドストリームの中の前記コマンドを適用し、前記ドキュメントを保存することをさらに含むことを特徴とする請求項1に記載の方法。大容量記憶装置に前記ドキュメントおよび前記コマンドストリームを保存すること、揮発性メモリから前記コマンドストリームをアンロードすること、第2のコマンドを受信すること、前記第2のコマンドの受信に応答して、前記大容量記憶装置から前記ドキュメントをロードし、前記ドキュメントに前記コマンドストリームを適用し、前記第2のコマンドをシリアル化し、前記ドキュメントとは別に前記コマンドストリームの中に前記シリアル化された第2のコマンドを記憶することをさらに含むことを特徴とする請求項2に記載の方法。1つまたは複数の高負荷のサーバコンピュータを識別すること、前記高負荷のサーバコンピュータの各々で1つまたは複数のドキュメント編集セッションを識別すること、前記識別されたドキュメント編集セッションの各セッションについて、前記ドキュメント編集セッションと関連するドキュメントにコマンドストリームを適用し、非高負荷のサーバコンピュータに前記ドキュメントを移動することをさらに含むことを特徴とする請求項2に記載の方法。前記ドキュメントを編集するためのダウンレベルのアプリケーションプログラムを実行するサーバコンピュータ上で編集セッションを識別すること、前記編集セッションと関連するドキュメントに前記コマンドストリームの中の前記コマンドを適用すること、前記ドキュメントを編集するためのアップレベルのアプリケーションプログラムを実行するサーバコンピュータに前記編集セッションと関連する前記ドキュメントを移動すること、前記ドキュメントを編集するための前記アップレベルのアプリケーションプログラムを実行する前記サーバコンピュータ上で前記編集セッションを再開することをさらに含むことを特徴とする請求項4に記載の方法。コンピュータ実行可能命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、コンピュータによって実行されると前記コンピュータに、ドキュメントを保存させ、前記ドキュメントを修正するためのコマンドを受信させ、前記受信されたコマンドをシリアル化させ、前記ドキュメントとは別にコマンドストリームの中に前記シリアル化されたコマンドを記憶させ、前記ドキュメントを保存するための要求を受信させ、前記要求の受信に応答して、番号順に前記ドキュメントに前記コマンドストリームの中の前記コマンドを適用させ、前記ドキュメントを保存させることを特徴とするコンピュータ可読記憶媒体。第1のアプリケーションが、前記ドキュメントを修正して、修正されたドキュメントを生成し、第2のアプリケーションが、前記シリアル化されたコマンドストリームの中の前記コマンドを前記修正されたドキュメントに適用することを特徴とする請求項6に記載のコンピュータ可読記憶媒体。前記第1のアプリケーションが、デスクトップクライアントアプリケーションを含み、前記第2のアプリケーションが、ウェブアプリケーションを含むことを特徴とする請求項7に記載のコンピュータ可読記憶媒体。コンピュータ実行可能命令をさらに記憶し、前記命令は、前記コンピュータによって実行されると前記コンピュータに、前記ドキュメントおよび前記コマンドストリームを大容量記憶装置に保存させ、前記コンピュータの揮発性メモリから前記コマンドストリームをアンロードさせ、第2のコマンドを受信させ、前記第2のコマンドの受信に応答して、前記大容量記憶装置から前記ドキュメントをロードさせ、前記ドキュメントに前記コマンドストリームを適用させ、前記第2のコマンドをシリアル化させ、前記ドキュメントとは別に前記コマンドストリームの中に前記シリアル化された第2のコマンドを記憶させることを特徴とする請求項8に記載のコンピュータ可読記憶媒体。コンピュータ実行可能命令をさらに記憶し、前記命令は、前記コンピュータによって実行されると前記コンピュータに1つまたは複数の高負荷のサーバコンピュータを識別させ、前記高負荷のサーバコンピュータの各々で1つまたは複数のドキュメント編集セッションを識別させ、前記識別された文章編集セッションの各々について、前記ドキュメント編集セッションと関連するドキュメントにコマンドストリームを適用させ、前記ドキュメントを非高負荷のサーバコンピュータに移動させることを特徴とする請求項7に記載のコンピュータ可読記憶媒体。以下の詳細な説明は、ドキュメント編集コマンドをシリアル化するための技術を対象とする。簡単に上述したように、ドキュメントを編集するためのシリアル化されたコマンドを含む、コマンドストリームが、本明細書に記載の技術を使用して生成され得る。このコマンドストリームは、修正されたドキュメントに適用されて、単一のドキュメントを生成することができ、ウェブアプリケーションおよびクライアントアプリケーションの両方を使用して行われるドキュメントに対する修正を含んでいる。コマンドストリームはまた、ドキュメントを編集するためのウェブアプリケーションからの切断に続いてそのドキュメントの編集された状態を再作成するために、編集セッションが進行中であってもそのウェブアプリケーションを提供するサーバコンピュータのロードバランスをとるために、編集セッションが進行中にウェブアプリケーションを提供するサーバのアップグレードを実行するために、および他の目的で使用され得る。本明細書に記載の主題は、コンピュータシステム上のオペレーティングシステムおよびアプリケーションプログラムの実行と連動して実行するプログラムモジュールとの概括的な文脈で提示されるが、他の実装が他のタイプのプログラムモジュールとの組合せで実行可能であることが、当業者には認識されよう。概して、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造体、および特定のタスクを実行するまたは特定の抽象データ型を実装する他のタイプの構造体を含む。さらに、本明細書に記載の主題は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサを用いるまたはプログラム可能な家庭用電化製品、ミニコンピュータ、およびメインフレームコンピュータなどを含む、他のコンピュータシステム構成で実施され得ることが、当業者には理解されよう。以下の詳細な説明では、例として特定の実施形態または例によって示され、かつ本明細書の一部を成す添付の図面が参照される。次に、同様の数字はいくつかの図面をとおして同様の要素を表す図面を参照すると、ドキュメント編集コマンドをコマンドストリームの中にシリアル化するための、およびそのコマンドストリームを使用するためのコンピュータシステムの態様および方法論が説明される。図1は、本明細書で開示される実施形態の1つの例示的動作環境を示すソフトウェアおよびネットワークアーキテクチャ図である。図1に示す動作環境100は、ウェブブラウザアプリケーションプログラム102を実行するクライアントコンピュータ104にウェブアプリケーション114を提供するように構成される。本明細書においてウェブアプリケーションという用語は、HTTP、SOAP、および非同期JAVASCRIPT登録商標などの標準プロトコルおよび技術を介してアクセスおよび使用することができるアプリケーションを包含するものである。ウェブアプリケーションという用語は、ワールドワイドウェブを介して利用可能なアプリケーションのみに限定されるべきではない。そうではなくて、ウェブアプリケーション114は、広域ネットワーク、ローカルエリアネットワーク、ワイヤレスネットワーク、および他のタイプのネットワークを含むがこれらに限定されない、実質的に任意のタイプのネットワーク108を介してアクセス可能であり得る。図1に示す動作環境100では、いくつかのフロントエンドサーバ106A~106Cが設けられてフロントエンドサーバコンポーネント110を実行する。ウェブブラウザアプリケーションプログラム102から受信されるウェブアプリケーション114への要求は、フロントエンドサーバ106A~106Cに対してロードバランスがとられる。この方法で、フロントエンドサーバ106A~106Cは、特定のドキュメント編集セッションのために割り当てられ得る。特定の編集セッションのためにウェブブラウザアプリケーションプログラム102によって生成されるコマンドは、その編集セッションに割り当てられたフロントエンドサーバ106A~106C上のフロントエンドサーバコンポーネント110によって受信される。これらのコマンドは、次いで、バックエンドサーバコンピュータ112A~112Cのうちの1つで実行するウェブアプリケーション114のインスタンスに転送される。バックエンドサーバコンピュータ112A~112Cはまた、ウェブアプリケーション114が効率の良い形で動作することを確保するために、ロードバランスがとられ得る。同じく図1に示すように、バックエンドサーバ112A~112Cの各々は、オペレーティングシステムおよびウェブアプリケーション114などの実行可能なプログラムコードを記憶するための1つまたは複数のディスク116A~116Cを保持する。ディスク116A~116Cはまた、ドキュメント118A~118Cを記憶するために使用することができる。ドキュメント118A~118Cはまた、ネットワーク108または別のネットワークを介してアクセス可能な別の場所に記憶することができる。一実装形態によれば、ウェブアプリケーション114は、1つまたは複数のドキュメントタイプを作成および編集するための機能を提供する。たとえば、ウェブアプリケーション114は、ワードプロセッシングドキュメント、スプレッドシードドキュメント、プレゼンテーションドキュメント、または別のタイプのドキュメントを作成および編集するように構成され得る。以下にさらに詳しく説明するように、クライアントコンピュータ104上で実行するクライアントアプリケーションはまた、ウェブアプリケーション114によって生成されるドキュメント118A~118Cと互換性のあるドキュメントタイプを作成および編集するように構成され得る。たとえば、ドキュメントは、クライアントアプリケーションを使用するクライアントコンピュータ104で作成され、次いで、ウェブアプリケーション114によって編集され得る。同様に、ドキュメントは、ウェブアプリケーション114で作成され、次いで、クライアントコンピュータ104上で実行するクライアントアプリケーションを使用して編集され得る。図1に示す動作環境100は、単なる例示に過ぎず、他のタイプの動作環境もまた使用され得ることを理解されたい。たとえば、他の実施形態では、フロントエンドサーバ106A~106Cは、使用されなくてもよい。加えて、他の実施形態では、より多くのバックエンドサーバ112A~112C、またはより少ないバックエンドサーバ112A~112Cもまた、使用され得る。さらに、単一のクライアントコンピュータ104が図1に示されるが、図1に示す動作環境100は、より多数のクライアントコンピュータ104を同時にサポートすることができることを理解されたい。本明細書に記載の概念および技術をサポートすることができる他のタイプの動作環境が、当業者には明らかになり得る。図2は、本明細書で開示される一実施形態においてドキュメント編集コマンドをシリアル化するために本明細書で開示される様々なコンポーネントの態様を示すソフトウェアアーキテクチャ図である。図2に示すように、また簡単に前述したように、クライアントコンピュータ104のユーザは、ウェブブラウザアプリケーション102を使用してウェブアプリケーション114と対話することができる。具体的には、ドキュメント118を修正するためのコマンド202が、ユーザによってクライアントコンピュータ104で生成され得る。たとえば、ドキュメント118がプレゼンテーションドキュメントである場合、コマンド202は、そのプレゼンテーションに新しいスライドを追加する、そのプレゼンテーションにグラフィック要素を追加する、そのプレゼンテーションでテキストを追加もしくは修正する、または任意の他のタイプの編集タスクを実行するためのものとすることができ得る。ドキュメント118がワードプロセッシングドキュメントである場合、コマンド202は、そのドキュメントにテキストを追加する、テキストをフォーマットする、グラフィックを追加する、またはそのドキュメントに他の編集を実行するためのものとすることができる。したがって、本明細書においてコマンドという用語は、ドキュメントを編集するための任意のタイプのコマンドを指すことを理解されたい。クライアントコンピュータ104で生成される各コマンド202は、どのようにその編集がドキュメント118に行われるべきかを識別するデータを含む。そのデータは、拡張可能マークアップ言語XML、2進コード化、または別のフォーマットを使用して、指定され得る。たとえば、コマンド202が、ドキュメント118中のテキストを編集するためである場合、コマンド202内に記憶されるデータは、その編集が生じるべきドキュメント内の場所と、その編集がどのように実行されるべきかを記載することができる。コマンド202がプレゼンテーションにスライドを追加するためである場合、コマンド202は、新しいスライドが追加されることになる場所、その新しいスライドのタイトル、および他の情報を指示するデータを含み得る。他のタイプのコマンドもまた、同様に表すことができる。簡単に上述したように、コマンド202は、クライアントコンピュータ104で生成され、フロントエンドサーバ106Aなどのフロントエンドサーバに送信される。次いで、フロントエンドサーバ106Aは、コマンド202をバックエンドサーバ112Aなどの適切なバックエンドサーバ112に送信する。簡単に上述したように、各バックエンドサーバ112は、ウェブアプリケーション114のインスタンスを実行する。やはり簡単に上述したように、各バックエンドサーバ112は、コマンド202が適用されるべき先のドキュメント118を記憶するディスク記憶装置116を保持する、またはそこにアクセスできる。しかし、ドキュメント118に直接コマンド202を適用するのではなくて、ウェブアプリケーション114は、コマンドストリーム206を保持する。以下にさらに詳細に論じるように、コマンドストリーム206は、コマンド202A~202Nのシリアル化されたシーケンスを含む。コマンド202をシリアル化するために、ウェブアプリケーション114は、そのコマンドが生成された絶対または相対的時間を指示するコマンド202A~202Nにデータを追加することができる。シーケンス番号などの他のタイプのデータもまた、コマンド202A~202Nをシリアル化するために使用することができる。コマンド202A~202Nは、次いで、順番にコマンドストリーム206内に記憶される。図2に示す例では、コマンドストリーム206は、バックエンドサーバ112の揮発性メモリ204内に記憶される。他の実施形態では、コマンドストリーム206は、ディスク116で記憶され得ることを理解されたい。図3は、本明細書で開示される実施形態で生成および使用されるコマンドストリーム206の態様を示すデータ構造図である。具体的には、図3は、コマンド202A~202Nが生成された順による順番でシリアル化および配置されたコマンド202A~202Nを示す。したがって、コマンド202A~202Nを記憶するコマンドストリーム206は、修正前のドキュメント118とその現在の状態の間のデルタを表すことを理解されたい。以下にさらに詳しく説明するように、ウェブアプリケーション114は、ドキュメント118の現在の状態を生成するために、番号順でコマンドストリーム206にコマンド202A~202Nを適用することができる。このプロセスおよびこのプロセスのいくつかの適用例に関する詳細が、図4~8を参照して、以下に説明される。図4は、本明細書で開示される一実施形態によるコマンドストリームをシリアル化するための1つの例示的ルーチン400を示す流れ図である。図4およびその他の図に関して本明細書に記載される論理演算は、1コンピュータ実装行動もしくはコンピュータシステム上で走るプログラムモジュールのシーケンスとして、および/または2コンピュータシステム内の相互接続された機械論理回路もしくは回路モジュールとして、実装される。本実装形態は、コンピュータシステムの性能および他の要件に応じて選択できる。したがって、本明細書に記載の論理演算は、動作、構造的デバイス、行動、またはモジュールとして様々に称される。これらの動作、構造的デバイス、行動およびモジュールは、ソフトウェア内に、ファームウェア内に、専用デジタル論理内に、およびそれらの任意の組合せで実装され得る。本明細書で図示および記載するものより多くの動作が実行されても、または少ない動作が実行されてもよいことを理解されたい。これらの動作はまた、本明細書に記載のものとは異なる順番で実行され得る。ルーチン400は、ウェブアプリケーション114がコマンド202を受信する動作402で開始する。コマンドの受信に応答して、ルーチン400は動作404に進み、そこでウェブアプリケーション114がコマンド202をシリアル化する。これは、たとえば、コマンド202が受信された絶対または相対的時間を指示するコマンド202にデータを追加することを含み得る。コマンド202をシリアル化するための他のタイプの機構もまた、使用され得る。コマンド202がシリアル化された後には、ルーチン400は、動作404から動作406に進む。動作406では、シリアル化されたコマンド202が、コマンドストリーム206内に記憶される。ルーチン400は、次いで、動作408に進み、そこで、ウェブアプリケーション114は、要求がそのコマンドストリームに対応するドキュメント118を保存するために受信されたかどうかを判定する。受信されない場合、ルーチン400は、前述の動作402に進み、そこで、追加のコマンド202が、前述の方式で受信およびシリアル化される。要求が動作408で受信されてドキュメント118を保存した場合、ルーチン400は、動作410に進む。動作410で、現在のドキュメント118のコマンドストリーム206内のコマンド202A~202Nが、番号順にドキュメント118に適用される。この方式で、コマンドストリーム206内に記憶されたコマンド202A~202Nは、それらが生成された順番で、ドキュメント118に適用される。コマンドストリーム206の適用の後のドキュメント118は、ドキュメント118の現在の状態を表す。コマンドストリーム206がドキュメント118に適用された後は、ルーチン400は、動作412に進み、そこでドキュメント118がディスクに持続される。ルーチン400は、次いで、動作402に進み、そこで、追加のコマンド202が受信され、シリアル化され、コマンドストリーム206内に記憶される。図5は、本明細書で開示される一実施形態でウェブアプリケーションおよびクライアントアプリケーションの両方で行われる編集を含む修正されたドキュメントを生成するための1つのプロセスの態様を示すデータ構造図である。簡単に上述したように、デスクトップクライアントアプリケーション502は、ウェブアプリケーション114によって生成されたドキュメントを編集することができるクライアントコンピュータ104上で使用することができる。たとえば、簡単に上述したように、ワードプロセッシングデスクトップクライアントアプリケーション502は、ウェブアプリケーション114によって生成されたドキュメント118Aを編集するために使用され得る。同様に、ウェブアプリケーション114は、デスクトップクライアントアプリケーション502によって作成されたドキュメント118Aを編集するために使用され得る。図5の例では、デスクトップクライアントアプリケーション502を使用して、元のドキュメント118Aへの修正504が行われている。結果として生じるドキュメントは、修正されたドキュメント118Dである。1つのシナリオでは、ウェブブラウザアプリケーションプログラム102はまた、ウェブアプリケーション114を使用して、元のドキュメント118Aへの修正を行うことができる。一方、上述したように、ウェブアプリケーション114によって行われた元のドキュメント118Aへの修正は、コマンドストリーム206内に表される。たとえば、図5に示す例では、2つのコマンド202A~202Bを含むコマンドストリーム206が生成されている。ウェブアプリケーション114によって生成されたドキュメントのバージョンとデスクトップクライアントアプリケーション502によって生成されたドキュメントのバージョンとを一致させるために、ウェブアプリケーション114は、修正されたドキュメント118Dにコマンドストリーム206内のコマンド202A~202Bを適用するように構成され得る。この方法で、デスクトップクライアントアプリケーション502によってドキュメント118Aに行われた修正504を含み、そして、ウェブアプリケーション114によってドキュメントに行われた修正も含む、更新されたドキュメント118Eが生成される。この方式で更新されたドキュメント118Eを生成することによって、本明細書で開示される概念および技術は、デスクトップクライアントアプリケーション502およびウェブアプリケーション114を使用する同時の編集同時編集を可能にする。更新されたドキュメント118Eには矛盾が存在し得ることを理解されたい。たとえば、デスクトップクライアントアプリケーション502は、ドキュメント118A内のテキストの一部を削除するために使用されることがある。同時に、ウェブアプリケーション114が、デスクトップクライアントアプリケーション502によって削除されたテキストを編集するために使用されることがある。この例では、コマンドストリーム206が修正されたドキュメント118Dに適用されるとき、矛盾が存在することになる。様々な機構が、その矛盾を解決するために、使用され得ることを理解されたい。たとえば、ユーザは、矛盾する編集の間で選択をするように求められ得る。他の機構もまた、クライアントアプリケーション502でおよびウェブアプリケーション114でドキュメントに行われた修正間の矛盾を解決するために、使用され得る。図6は、本明細書で開示される一実施形態においてコマンドストリーム206を使用してウェブアプリケーション114の性能performanceを最適化するための1つの例示的ルーチン600を示す流れ図である。ルーチン600は、ウェブアプリケーション114で受信されたコマンド202がコマンドストリーム206内にシリアル化される動作602で開始する。ルーチン600は、次いで、動作602から動作604に進み、そこで、ドキュメント118およびその関連するコマンドストリーム206がディスク116に保存される。ドキュメント118およびコマンドストリーム206が保存された後は、ルーチン600は、動作606に進み、そこで、コマンドストリーム206がメモリ204からアンロードされる。図2に示すように、コマンドストリーム206は、バックエンドサーバ112の揮発性メモリ204内で記憶され得る。揮発性メモリ204からコマンドストリーム206をアンロードすることによって、メモリ204は、他の使用のために解放され得る。動作606から、ルーチン600は、動作608に進み、そこで、ウェブアプリケーション114は、追加のコマンド202が、保存されたドキュメント118について受信されたかどうかを判定する。受信されない場合、ルーチン600は、動作608に進み、そこで、別のそのような判定が行われる。コマンドが受信された場合、ルーチン600は、動作610に進み、そこで、ドキュメント118がディスクからロードされる。ディスクに記憶されたコマンドストリームはまた、バックエンドサーバ112の揮発性メモリ204にロードされ得る。ルーチン600は、次いで、動作612に進み、そこで、記憶されたコマンドストリーム206が、前述の方式でドキュメント118に適用される。上述したように、これは、コマンドストリーム206内のすべてのコマンドの適用に続くドキュメントの現在の状態を表すドキュメント118をもたらす。ルーチン600は、次いで、動作614に進み、そこで、新しく受信されたコマンドが、前述の方式でコマンドストリーム206内でシリアル化される。動作614から、ルーチン600は、動作616に進み、終了する。図7は、本明細書で開示される一実施形態においてコマンドストリームを使用してウェブアプリケーションを提供するサーバコンピュータ112の動的なロードバランスをとるための1つの例示的ルーチン700を示す流れ図である。ルーチン700は、動作702で開始し、そこで、高負荷のバックエンドサーバ112A~112Cが識別される。高負荷のサーバコンピュータは、CPUサイクル、メモリ利用、大容量記憶装置の利用および/または他のタイプのリソースの高い利用度などのそのリソースの比較的高い利用度を経験しているサーバコンピュータである。高負荷のバックエンドサーバ112A~112Cが識別された後は、ルーチン700は、動作704に進む。動作704で、別のバックエンドサーバに移動されることになる識別された高負荷のバックエンドサーバ112A~112C上の1つまたは複数の編集セッションが、識別される。別のサーバ112に移動されることになる進行中の編集セッションが、ランダムに、または別の方法で、編集セッションによって使用されるリソースに基づいて、識別され得る。別のサーバ112に移動されることになる1つまたは複数の進行中の編集セッションが識別された後は、ルーチン700は、動作706に進む。動作706で、識別された編集セッションのコマンドストリーム206内のいくつかのまたはすべてのコマンドが、関連ドキュメントに適用され得る。この方式で、各ドキュメントは、別のバックエンドサーバ112にそのドキュメントを移動するより前にその現在の状態にされ得る。このプロセスは、任意選択であり、コマンドストリーム206は、別のバックエンドサーバ112に編集セッションを移動するより前の進行中の編集セッションに関連付けられたドキュメントに適用され得ることを理解されたい。動作706から、ルーチン700は、動作708に進み、そこで、識別された進行中の編集セッションのドキュメント118およびコマンドストリーム206が、非高負荷のバックエンドサーバ112A~112Cに移動される。進行中の編集セッションが移動される先のバックエンドサーバ112A~112Cが、CPU利用、メモリ利用、ディスク利用、および/または他のタイプのリソースの利用などの宛先バックエンドサーバによるリソースの利用に基づいて、識別され得る。進行中の編集セッションが移動された先のバックエンドサーバ112A~112Cは、次いで、進行中の編集セッションを処理する責任を引き継ぐ。この方式では、進行中の編集セッションについて受信された任意の新しいコマンドが、宛先バックエンドサーバ112A~112Cによって処理されることになる。したがって、バックエンドサーバ112A~112Cは、進行中のセッションを中断することなしに動的にロードバランスがとられ得ることを理解されたい。動作708から、ルーチン700は、動作710に進み、そこで終了する。図8は、本明細書で開示される一実施形態におけるコマンドストリームを使用してウェブアプリケーションをアップグレードするための1つの例示的ルーチン800を示す流れ図である。ルーチン800は、動作802で開始し、そこで、ウェブアプリケーション114のアップレベルのバージョンが、編集セッションを現在サポートしていないバックエンドサーバ112上で配備される。ルーチン800は、次いで、動作804に進み、そこで、アップグレードされたサーバ112が、編集セッションの提供の開始を可能にされる。アップレベルのサーバ112が編集セッションの提供を可能にされた後は、ルーチン800は、動作806に進む。動作806で、ダウンレベルのウェブアプリケーション114を実行するバックエンドサーバ112上の進行中の編集セッションが、識別される。識別された進行中の各編集セッションについて、コマンドストリーム206内のコマンド202が、関連ドキュメントに適用される。ルーチン800は、次いで、動作808に進み、そこで、進行中の編集セッションのドキュメントがウェブアプリケーション114のアップレベルのバージョンを実行するアップグレードされたサーバ112に移動される。ドキュメントが移動される先のサーバコンピュータは、次いで、進行中の編集セッションを提供する責任を引き継ぐ。進行中の編集セッションのすべてがダウンレベルのバックエンドサーバ112から移動された後は、ルーチン800は、動作810に進み、そこで、ダウンレベルのサーバコンピュータが、ウェブアプリケーション114のアップレベルのバージョンでアップグレードされ得る。ルーチン800は、次いで、動作810から動作812に進み、そこで終了する。前述を考慮して、ウェブアプリケーション114は、進行中の編集セッションを妨げることなしにアップグレードされ得ることを理解されたい。図9は、本明細書で提示される様々な実施形態を実装することができるコンピュータシステムの例示的コンピュータハードウェアおよびソフトウェアアーキテクチャを示すコンピュータアーキテクチャ図である。図9に示すコンピュータアーキテクチャは、従来のデスクトップ、ラップトップコンピュータ、またはサーバコンピュータを示し、本明細書に記載の様々なソフトウェアコンポーネントを実行するために使用され得る。図9に示すコンピュータアーキテクチャは、中央処理装置902CPUと、ランダムアクセスメモリ914RAMおよび読取り専用メモリROM916を含むシステムメモリ908と、CPU902にメモリを結合させるシステムバス904とを含む。起動中など、コンピュータ900内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力/出力システムBIOSが、ROM916内に格納される。コンピュータ900は、以下でさらに詳しく説明される、オペレーティングシステム918、アプリケーションプログラム、および他のプログラムモジュールを格納するための大容量記憶装置910をさらに含む。大容量記憶装置910は、バス904に接続された大容量記憶装置コントローラ図示せずを介してCPU902に接続される。大容量記憶装置910およびその関連コンピュータ可読記憶媒体は、コンピュータ900の非揮発性記憶スペースを提供する。本明細書に含まれるコンピュータ可読媒体の記載は、ハードディスクまたはCD-ROMドライブなどの大容量記憶装置を指すが、コンピュータ可読記憶媒体は、コンピュータ900によってアクセス可能な任意の使用可能なコンピュータ記憶媒体でもよいことが、当業者には理解されよう。限定ではなく、例として、コンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュールまたは他のデータなどの情報の記憶のための任意の方法または技術で実装された、揮発性および非揮発性の、取外し可能なおよび取外し不可能な媒体を含み得る。たとえば、コンピュータ可読記憶媒体は、RAM、ROM、EPROM、EEPROM、フラッシュメモリもしくは他の固体状態メモリ技術、CD-ROM、デジタル多用途ディスクDVD、HD-DVD、BLU-RAY登録商標もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報を記憶するために使用可能な、およびコンピュータ900によってアクセス可能な任意の他の持続性媒体を含むがこれらに限定されない。本明細書で開示されるコンピュータ可読媒体はまた、通信媒体を包含することを理解されたい。通信媒体は、通常は、搬送波または他の移送機構などの変調されたデータ信号内でコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを実施し、任意の情報配信媒体を含む。変調されたデータ信号という用語は、その信号内の情報をコード化することなどの形で設定または変更されたその特性のうちの1つまたは複数を有する信号を意味する。限定ではなく、例として、通信媒体は、配線式ネットワークもしくは直接配線式接続などの配線式媒体と、音波、RF、赤外線および他のワイヤレス媒体などのワイヤレス媒体とを含む。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれよう。コンピュータ可読記憶媒体は、通信媒体を包含しない。様々な実施形態によれば、コンピュータ900は、ネットワーク920などのネットワークを介する遠隔コンピュータへの論理接続を使用するネットワーク化された環境で動作し得る。コンピュータ900は、バス904に接続されたネットワークインターフェースユニット906を介してネットワーク920に接続することができる。ネットワークインターフェースユニット906はまた、他のタイプのネットワークおよび遠隔コンピュータシステムに接続するために使用され得ることを理解されたい。コンピュータ900はまた、キーボード、マウス、または電子スタイラス図9に示さずを含むいくつかの他のデバイスからの入力を受信および処理するための入力/出力コントローラ912を含み得る。同様に、入力/出力コントローラは、ディスプレイ画面、プリンタ、または他のタイプの出力デバイスこれも図9に示さずに出力を提供することができる。簡単に前述したように、いくつかのプログラムモジュールおよびデータファイルは、ネットワーク化されたデスクトップ、ラップトップ、またはサーバコンピュータの動作を制御するのに適したオペレーティングシステム918を含むコンピュータ900の大容量記憶装置910、およびRAM914内に記憶され得る。大容量記憶装置910およびRAM914はまた、1つまたは複数のプログラムモジュールを記憶することができる。具体的には、大容量記憶装置910およびRAM914は、ウェブブラウザアプリケーションプログラム102および/またはウェブアプリケーション114と、前述のその他のソフトウェアコンポーネントとを記憶することができる。大容量記憶装置910およびRAM914はまた、コマンドストリーム206などの他のプログラムモジュールおよびデータを記憶することができる。概して、ソフトウェアアプリケーションまたはモジュールは、CPU902にロードされ、実行されるときに、CPU902およびコンピュータ900全体を汎用コンピュータシステムから本明細書で提示される機能を実行するようにカスタマイズされた専用コンピュータシステムに変換することができる。CPU902は、任意の数の状態を個々にまたは集合的に仮定し得る、任意の数のトランジスタまたは他のディスクリート回路要素から構築され得る。より詳細には、CPU902は、ソフトウェアまたはモジュール内に含まれる、実行可能命令に応答して、1つまたは複数の有限状態機械として動作することができる。これらのコンピュータ実行可能命令は、状態間のCPU902遷移がどのようであるかを指定することによって、CPU902を変換し、それによって、CPU902を構成するトランジスタまたは他のディスクリートハードウェア要素を物理的に変換することができる。大容量記憶装置上にソフトウェアまたはモジュールをコード化することはまた、大容量記憶装置または関連コンピュータ可読記憶媒体の物理構造を変換し得る。物理構造の個々の変換は、本明細書の異なる実装形態で、様々な要因に依存し得る。そのような要因の例は、そのコンピュータ可読記憶媒体を実装するために使用される技術、コンピュータ可読記憶媒体が1次もしくは2次記憶装置として特徴付けられるかどうか、および同類のものを含むが、これらに限定されない。たとえば、そのコンピュータ可読記憶媒体が、半導体に基づくメモリとして実装される場合、ソフトウェアまたはモジュールは、そのソフトウェアがその中でコード化されるとき、半導体メモリの物理状態を変換し得る。たとえば、そのソフトウェアは、トランジスタ、コンデンサ、または半導体メモリを構成する他のディスクリート回路要素の状態を変換し得る。別の例として、コンピュータ可読記憶媒体は、磁気または光技術を使用して、実装され得る。そのような実装形態で、ソフトウェアまたはモジュールは、そのソフトウェアがその中でコード化されるとき、磁気または光媒体の物理状態を変換することができる。これらの変換は、所与の磁気媒体内の特定の場所の磁気特性を変更することを含み得る。これらの変換はまた、所与の光媒体内の特定の場所の物理的特徴または特性を変更して、それらの場所の光特性を変えることを含み得る。物理媒体の他の変換が、本明細書の範囲および趣旨を逸脱することなしに、本議論を円滑に進めるためにのみ提供される前述の例において可能である。前述に基づいて、コマンドストリームにドキュメント編集コマンドをシリアル化するためのおよびコマンドストリームを使用するための技術が本明細書で提示されることを理解されたい。本明細書で提示される主題は、コンピュータ構造的特徴、方法論的行動、およびコンピュータ可読媒体に特有の言語で説明されるが、添付の特許請求の範囲で定義される本発明は、必ずしも本明細書に記載の特定の特徴、行動、または媒体に限定されないことが、理解されよう。そうではなくて、それらの特定の特徴、行動および媒体は、本特許請求の範囲を実装する例示的な形として開示される。本明細書に記載の主題は、例としてのみ提供され、限定として解釈されるべきではない。様々な修正および変更が、図示および記載される例示的実施形態および適用に従うことなしに、そして、以下の特許請求の範囲に記載の本発明の真の趣旨および範囲を逸脱することなしに、本明細書に記載の主題に行われ得る。