(57)【要約】  フォールトトレラント外部アプリケーションサーバ。外部アプリケーションサーバは、クライアントコンピューティング装置の利用者がホストと通信する汎用クライアントアプリケーションを介してネットワーク上のファイルとの作業をすることを可能とするｗｅｂ対応システムである。ホストは機能の仲介をし、かつ外部アプリケーションサーバとの対話のためのプラットホームを提供する。外部アプリケーションサーバは、サーバファームとして実装される。フォールトトレラントファームシステムは、ファーム構成装置間の潜在的な構成複写を交替可能なファーム構成装置、および外部アプリケーションサーバファームが実時間の状態管理データベースを必要とすることなく全機能を維持しつつオンザフライ構成を提供することを可能とする任意選択の正常性監視と組み合わせる。
2014530435.tif 000002
【特許請求の範囲】
【請求項１】
外部(external)アプリケーションサーバであって、
ファーム(farm)構成(configuration)と、
各コンピューティング装置がサーバファーム(server farm)の構成装置(member)であり、各前記構成装置が前記ファーム構成のコピーを記憶するためのローカルな構成記憶場所(configuration storage location)を有する、１つまたは複数のコンピューティング装置と、
各前記構成装置のための管理(management)エージェントであって、各前記構成装置が前記管理エージェントの１つのインスタンスを実行し(running)、１つの前記管理エージェントがマスター管理エージェントとして指定され、前記マスター管理エージェントを実行する前記構成装置上の前記ローカルな構成記憶場所が前記ファーム構成のマスターコピーを保持する(holding)ための中央構成記憶場所(central configuration storage location)として指定され、前記マスター管理エージェントが前記ファーム構成の前記マスターコピーを維持する(maintaining)、管理エージェントと、
各前記構成装置のためのレプリケーション(replication)エージェントであって、各前記構成装置が前記レプリケーションエージェントの１つのインスタンスを実行し(running)、前記レプリケーションエージェントが周期的に(periodically)前記ファーム構成のコピーを前記マスター管理エージェントに要求し、かつ前記ファーム構成の前記コピーを前記構成装置上の前記ローカルな構成記憶場所に記憶させる(storing)レプリケーションエージェントと、
各前記構成装置のための文書処理(document handling)エージェントであって、各前記構成装置が、前記文書処理エージェントの１つのインスタンスを実行し、前記文書処理エージェントが、選択されたファイル形式(type)の文書と対話する(interact with)機能(functionality)を提供する、文書処理エージェントと、
を備える外部アプリケーションサーバ。
【請求項２】
さらに複数の動作監視(watchdog)エージェントを備え、各前記構成装置が各動作監視エージェントの１つのインスタンスを実行し、前記複数の動作監視エージェントが動作監視対象(watched)エージェントのための動作監視エージェントを含み、前記動作監視対象エージェントが前記構成装置上で実行される別のエージェントを含む、請求項１に記載の外部アプリケーションサーバ。
【請求項３】
さらに複数の正常性評価(health assessment)エージェントを備え、各前記構成装置が前記正常性評価エージェントの１つのインスタンスを実行し、各前記動作監視エージェントが対応する前記動作監視対象エージェント(watched agent)の動作監視対象エージェント状態(watched agent status)を前記正常性評価エージェントに報告し、前記正常性評価エージェントが前記動作監視対象エージェントの状態に基づき構成装置正常性報告(member health report)を生成し、各前記正常性評価エージェントが前記構成装置正常性報告を前記マスター管理エージェントに報告する、請求項２に記載の外部アプリケーションサーバ。
【請求項４】
前記マスター管理エージェントが前記構成装置正常性報告を前記ファーム構成中に記憶することを特徴とする、請求項３に記載の外部アプリケーションサーバ。
【請求項５】
各前記構成装置が所期の役割(intended role)を割り当てられ、かつ各前記構成装置が前記構成装置に割り当てられた前記所期の役割に拘わらず前記構成装置に対してなされた任意の要求(any request)に応答することを特徴とする、請求項１から４のいずれか一項に記載の外部アプリケーションサーバ。
【請求項６】
外部アプリケーションサーバファームにフォールトトレランス(fault tolerance)を提供する方法であって、
各コンピューティング装置がサーバファームの構成装置である１つまたは複数のコンピューティング装置を提供するステップと、
各前記構成装置上の管理エージェントを実行するステップと、
１つの前記構成装置上の前記管理エージェントをマスター管理エージェントとして指定するステップと、
前記マスター管理エージェントを使用して正式な(official)ファーム構成(configuration)を中央ファーム構成記憶装置に記憶するステップと、
各前記構成装置上でレプリケーション(replication)エージェントを実行するステップと、
前記レプリケーションエージェントを使用して前記正式なファーム構成のコピーを前記マスター管理エージェントに要求するステップと、
前記正式なファーム構成の前記コピーを前記構成装置上のローカルな構成記憶装置内に記憶するステップと、
各前記構成装置上で文書処理エージェントを実行し、前記文書処理エージェントが選択されたファイル形式(type)の文書と対話する(interact with)ための機能(functionality)を提供するステップと、
を備える方法。
【請求項７】
各前記管理エージェント、各前記レプリケーションエージェント、および各前記文書処理(document handling)エージェントが動作監視対象エージェントであり、前記方法がさらに各前記構成装置上の各動作監視対象エージェントに対する各動作監視エージェントを実行するステップを含むことを特徴とする、請求項６に記載の方法。
【請求項８】
各前記構成装置上で正常性評価エージェントを実行するステップと、
対応する前記監視対象エージェントのエージェント状態(agent status)を、各前記動作監視(watchdog)エージェントを使用して前記正常性評価(health assessment)エージェントに報告するステップと、
各前記エージェント状態に基づく構成装置正常性報告を、前記正常性評価エージェントを使用して前記マスター管理エージェントに送信するステップと、
をさらに含む、請求項７記載の方法。
【請求項９】
各前記構成装置が、前記構成装置の前記所期の役割に拘わらず前記構成装置になされたすべての要求に応答することを可能とするステップをさらに含む、請求項６から８のいずれか一項に記載の方法
【請求項１０】
ファーム構成と、
各コンピューティング装置がサーバファームの構成装置であり、各前記構成装置が前記ファーム構成のコピーを記憶するためのローカルな構成記憶場所を有している、１つまたは複数のコンピューティング装置と、
（ｉ）各前記構成装置上で実行される管理エージェントであって、１つの前記管理エージェントがマスター管理エージェントとして指定され、前記マスター管理エージェントを実行する前記構成装置上の前記ローカルな構成記憶場所が前記ファーム構成のマスターコピーを保持するための中央構成記憶場所として指定され、前記マスター管理エージェントが前記ファーム構成の前記マスターコピーを維持する、管理エージェント、
（ｉｉ）各前記構成装置で実行されるレプリケーションエージェントであって、各前記レプリケーションエージェントが周期的に前記ファーム構成のコピーを前記マスター管理エージェントに要求し、かつ前記ファーム構成の前記コピーを前記構成装置上の前記ローカルな構成記憶場所に記憶させるレプリケーションエージェント、および
（ｉｉｉ）各前記構成装置上で実行される文書処理エージェントであって、各前記文書処理エージェントが、選択されたファイル形式の文書と対話する機能を提供する、文書処理エージェント、
を備える複数の動作管理対象エージェントと、
各構成装置上で実行される複数の動作監視エージェントであって、各前記動作監視エージェントが１つの前記動作監視対象エージェントと一意に関連付けられ、各前記動作監視エージェントが関連する前記動作監視対象エージェントの動作監視対象エージェント状態を報告する、動作管理エージェントと、
各構成装置上で実行される正常性評価エージェントであって、各前記正常性評価エージェントが前記動作監視対象エージェント状態を受信しおよび構成装置正常性報告を生成し、前記正常性評価エージェントが前記ファーム構成に包含される(for inclusion)ように前記構成装置正常性報告を前記マスター管理エージェントに送信する、正常性評価エージェントと、
を備える外部アプリケーションサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明の一実施例は、例えば、フォールトトレラント外部アプリケーションサーバに関する。
【背景技術】
【０００２】
[0001]企業は多くの場合、異なる場所に異なる目的で保管された様々な形式の文書を維持管理している。多くの場合、これらの文書は様々な異なるソフトウェアアプリケーションおよび記憶システムにより生成され、かつ記憶される。例えば、文書は、ワードプロッサアプリケーション、表計算アプリケーション、プレゼンテーションアプリケーション、ノートアプリケーション、グラフィック設計アプリケーション、写真処理アプリケーションなどを使用して生成することができる。生成された文書は、様々な形式の文書を記憶するために使用される１つまたは複数のコンテンツサーバ、電子メール項目（Ｅメール）への添付物として文書を記憶するためのサーバ、会議用の添付物として文書を記憶するための記憶システム、見込み客あるいは顧客に対する添付物として文書を記憶するための顧客関係管理（ＣＲＭ）システム、日常使用される文書を記憶するための汎用文書記憶装置、および／または特定の、高度に規制された用途用の文書を記憶するための特定の文書記憶装置（例えば、Ｄｏｃｕｍｅｎｔｕｍ社のＤｏｃｕｍｅｎｔｕｍ（登録商標））を含む、様々な記憶システムにより記憶されうる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0002]一般的なサーバファームでは、機能の喪失を避けるためにファームのトポロジおよび構成についての最新かつ完全な理解を共有するための厳密な運用がファームのすべての構成員に要求される。最新状況を理解させるために、一般的なサーバファームでは、状態構成データベースに頼っているが、状態構成データベースの使用は一般的にサーバファームの管理、要求条件、運営の複雑性およびコストを増加させる。
【０００４】
[0003]本発明の目的は、これらおよびその他の問題に鑑みてなされたものである。
【課題を解決するための手段】
【０００５】
[0004]以下の概要は、後述の詳細な説明に詳しく記述される概念の中から選択したものを簡単化した形で紹介するために提供するものである。この概要は、請求項に係る主題の主な特徴または本質的な特徴を同定することを意図したものでも、請求項に係る主題の範囲を限定するために使用されることを意図したものでもない。
【０００６】
[0005]実施形態によれば、外部アプリケーションサーバファームは、フォールトトレラントファーム（ＦＴＦ）システムが含む。外部アプリケーションサーバファームは、低い管理負担、最小限の支援ソフトウェアの必要性、ならびにＦＴＦシステムの結果としての優れた堅牢性、信頼性およびスケーラビリティ達成する。ＦＴＦシステムの主要な構成要素には、ファーム管理構成要素、代替可能なサーバ構成要素、および正常性監視構成要素が含まれる。一般的に、ＦＴＦシステムは、状態管理データベースのコストおよび複雑性を伴うことなく外部アプリケーションサーバファームの現在の状態を記述するファーム状態を管理する。このことを達成するために、ＦＴＦシステムは、外部アプリケーションサーバファームの各構成装置上で実行される様々なエージェントを含んでいる。エージェントは、ファーム構成装置がエージェントを実行するための個別の機能を提供するシステムサービスである。
【０００７】
[0006]ファーム管理構成要素は、ファーム状態マネージャおよびファーム状態レプリケータを含む。ファーム管理構成要素の主たる機能は、ファーム状態の構成変更を管理することおよびファーム状態をファーム構成装置に配送することである。ファーム状態マネージャは各ファーム構成装置上で実行されるエージェントである。各ファーム構成装置は、ファーム状態マネージャを実行するが、ファーム状態マネージャの１つのインスタンスのみが、任意の所与の時点でマスターファーム状態マネージャとして指定される。マスターとして指定されていないいずれのファーム状態マネージャのインスタンス（すなわち、２次インスタンス）も、一般に実行を継続するが、責任は有していない（すなわち、何も行わない）。マスターファーム状態マネージャは、外部アプリケーションサーバファーム全体に対するファーム状態の「正式の」（すなわち、真の）バージョンを維持する。ＦＴＦシステムは、中央構成記憶装置内に正式なファーム状態を記憶する。各ファーム構成装置は、ローカル構成記憶装置内にファーム状態のローカルなコピーを蓄積する。
【０００８】
[0007]ＦＴＦシステムは、動作中のマスターファーム状態マネージャが故障となったとしても外部アプリケーションサーバファームが機能し続けることを可能とする。この場合、管理者は、手動で別のファーム状態マネージャをマスターに指定する。ＦＴＦシステムによるファーム状態操作の流動的な設計の結果、別のファーム状態マネージャを昇格させる必要がない。新しいマスターファーム状態マネージャが指定されるまで、ファーム状態マネージャの各個別のインスタンスは、個別のコンピューティング装置のローカルな構成記憶装置内に蓄積されている最後に知り得たファーム状態を使用して独立に動作し続ける。
【０００９】
[0008]ファーム状態レプリケータは、各ファーム構成装置が正式なバージョンのファーム状態のほぼ現在のコピーを確実に持てるようにするエージェントである。各コンピューティング装置は、ファーム状態レプリケータのインスタンスを実行する。ローカルに蓄積されたバージョンのファーム状態をほぼ現状に保つために、ファーム状態レプリケータは、周期的にマスターファーム状態マネージャと連絡を取り、正式なファーム状態をコンピューティング装置のローカルな構成記憶装置にコピーする。
【００１０】
[0009]ローカルな構成記憶装置が更新される間の時間量はファーム管理構成要素の固有の遅延時間に相当する。ファーム管理構成要素によりもたらされるファーム構成装置に対する正式なファーム状態の伝搬に関与した遅延時間があることから、全ファーム状態は、整合が取れなくなる（すなわち、個々のファーム構成装置に知られるファーム状態が、正式なファーム状態および／または他のファーム構成装置に知られているファーム状態と異なりうる）と推定される。遅延時間の段階はなんら構成変更がなくても経過することから、全ファーム状態は、一度各ファーム構成装置が中央構成記憶装置から正式なファーム状態を取得すると、整合が取れてくる（すなわち、外部アプリケーションサーバは、管理者が意図するように動作する）。外部アプリケーションサーバファームが機能し続けるために遅延時間の段階を短くする必要はない。遅延時間の段階が長くなると、すべてのファーム構成装置が管理者の意図したように動作するまでに要求される時間量は単純に増加する。
【００１１】
[0010]外部アプリケーションサーバは、代替可能なサーバ構成要素により高度の対障害性を示す。他の利点の中でも、代替可能なサーバ構成要素は、外部アプリケーションサーバファームが機能を損なうことなく整合が取れていないファーム状態で動作することを可能とする。代替可能なサーバ構成要素の第１の態様は、所期の役割の構成要素である。ファームの構成装置および各ファーム構成装置の役割は、ファーム構成の中で指定される、しかしながら、外部アプリケーションサーバの役割は、構成装置の機能を制限することなく当該特定構成装置の主眼を示す役割が意図されている。代替可能なサーバ構成要素は、すべてのファーム構成装置にすべてのエージェント、あるいは少なくとも外部アプリケーションサーバの機能に対して指定されたすべてのエージェントを、常時実行することを要求する。従って、各構成装置は、通常外部アプリケーションサーバにより取り扱われる任意の動作を遂行する能力がある。さらに、各ファーム構成装置は、当該構成装置に割り当てられた所期の役割に関わりなく要求された任意の動作を遂行することになる。
【００１２】
[0011]代替可能なサーバ構成要素の第２の態様は、フォールバック運転構成要素である。外部アプリケーションサーバは、外部の情報源から要求を受信し、かつ、これらの要求は外部アプリケーションサーバの構成に基づきファーム構成装置に配送される。さらに、ファーム内部の要求も、ファーム構成装置間でなされうる。ファーム構成装置に対して要求が作られたが、外部アプリケーションサーバ制御できる範囲内で何らかの理由により当該要求が満足されない場合、要求が満足されるまで、要求元を含む、他のファーム構成装置に対して当該要求が、作成されることになる。フォールバック運転構成要素は、ファーム状態の構成上の問題に対する外部アプリケーションサーバファームの応答を取り扱う。設定が管理者によって解決できないほどに誤って構成されている、または外部アプリケーションサーバにより理解されない場合、外部アプリケーションサーバは、状況に応じて、設定のデフォルト値に復帰する、または設定を無視する。
【００１３】
[0012]所期の役割の構成要素およびフォールバック運転構成要素の組み合わせにより、代替可能なサーバシステムは、外部アプリケーションサーバを個別のファーム構成装置の故障または動作しないことについて極めてフォールトトレラントなものとする。所期の役割のサブシステムおよびフォールバック運転サブシステムは、外部アプリケーションサーバに対してなされるすべての要求がなんら機能の外見的に明らかな（すなわち、利用者に対して明らかになる）損失なしに取り扱われることを保証する。
【００１４】
[0013]正常性監視構成要素は、各ファーム構成装置および各構成装置上で実行される様々なエージェントの正常性を監視する。各ファーム構成装置は、複数の動作監視エージェントおよび正常性評価エージェントを実行する。各動作監視エージェントは、ファーム構成装置上で実行される動作監視対象エージェントの状態を監視する役を果たす。監視されている動作監視対象エージェントに問題がある場合、担当の動作監視エージェントは適切な処置を取ることになる。様々な実施形態では、適切な処置には、実行していない関連した動作監視対象エージェントの再起動を試みること、および正常性評価エージェントに関連した動作監視対象エージェントの問題を報告することが含まれるが、これらに限定されない。正常性評価エージェントは、ファーム構成装置が正常であるか否かを動作監視エージェントからの報告に基づき決定し、かつマスターファーム状態マネージャに正常性判定結果（すなわち、構成装置正常性報告）を報告する。次いで、マスターファーム状態マネージャは、各構成装置正常性報告をファーム状態の一部として記録する。
【００１５】
[0014]本開示のより詳細、態様および利点は、詳細をより明確に示すために要素が原寸通りでなく、同一の参照番号が複数の図を通して同一の要素を示す、以下の詳細な説明、添付の特許請求の範囲、および添付の図面を参照することによってより良く理解されることになる。
【図面の簡単な説明】
【００１６】
【図１】[0015]ホスト非依存型文書アクセスシステムの一実施形態を用いた企業ネットワークのブロック図を示す図である。
【図２】[0016]外部アプリケーションサーバの構造の一実施形態のブロック図を示す図である。
【図３】[0017]フォールトトレラントファーム（ＦＴＦ）システムの構成要素の一実施形態を示す外部アプリケーションサーバのブロック図を示す図である。
【図４】[0018]本発明の実施形態が実践されうるコンピューティング装置の簡単化したブロック図である。
【図５Ａ】[0019]本発明が実践されうる実施形態を備えた移動体コンピューティング装置の簡単化されたブロック図である。
【図５Ｂ】本発明が実践されうる実施形態を備えた移動体コンピューティング装置の簡単化されたブロック図である。
【図６】[0020]本発明が実践されうる実施形態の分散型コンピューティングシステムの簡単化されたブロック図である。
【発明を実施するための形態】
【００１７】
[0021]フォールトトレラント外部アプリケーションサーバが本明細書で説明され、添付の図面に例示されている。外部アプリケーションサーバは、クライアントコンピューティング装置の利用者がホストと通信する一般的なクライアントアプリケーションを介してネットワーク上のファイルを操作することを可能とするｗｅｂ対応システムである。ホストは機能の仲介をし、かつ外部アプリケーションサーバとの対話のためのプラットホームを提供する。外部アプリケーションサーバは、サーバファームとして実装される。フォールトトレラントファームシステムは、外部アプリケーションサーバファームがオンザフライ構成を提供して、実時間状態管理データベースを要求することなく全機能を維持することを可能とするために潜在的なファーム構成装置間構成の複製、相互交換可能なファーム構成装置、および任意選択の正常性監視を組み合わせる。
【００１８】
[0022]図１は、１つまたは複数のホスト１０２および１つまたは複数の外部アプリケーションサーバ１０４を含む例示的企業ネットワーク１００の一実施形態を例示する。利用者１０６は、クライアントコンピューティング装置１１０からｗｅｂブラウザ１０８を用いてホスト１０２にアクセスする。ホスト１０２は、最も典型的には、文書記憶システム１２６中に文書を記憶し、かつ利用者１０６に対する許可を管理するコンテンツサーバである。一般的に、ホスト１０２は、ホスト１０２の通常機能を取り扱うホスト−利用者インタフェース１１４を提供するホストアプリケーション１１２を実行する。少なくとも幾つかのホスト１０２の通常の機能は、コンテンツ記憶装置１２６内に保管され、かつ支援アプリケーションを用いて参照され、かつ／または編集されることが意図された記録文書１１６へのアクセスを利用者１０６に提供することになる。ホスト１０２はまた、外部アプリケーションサーバ１０４のサービスを利用者１０６が利用可能とするための一般的なプラットホームを提供する。外部アプリケーションサーバ１０４は、利用者１０６がホストを通じて利用可能な文書と対話するブラウザを使ったｗｅｂアプリケーションを提供する。オープンプラットホームインタフェースは、ホスト１０２と外部アプリケーションサーバ１０４間の文書操作を定義しかつ指示する。ホスト１０２はまた、外部アプリケーションサーバ１０４からの通信を受信するエンドポイント１２０を実装する。ホスト１０２は、外部アプリケーションサーバ１０４のサービスに関わるシナリオを始動するが、ホスト１０２は、外部アプリケーションサーバ１０４を呼び出すことはない。その代わりに、外部アプリケーションサーバ１０４は、コールバックを用いてサポートしている文書形式を操作するためにサポートしている機能を公開する。
【００１９】
[0023]外部アプリケーションサーバ１０４は、特定の文書形式を操作するために必要となる適切なアプリケーションをローカルにインストールすることを要求することなくネットワークを通じてクライアントコンピューティング装置１１０からコンテンツ（すなわち、ファイルまたは文書）へアクセスし、参照し、編集し、かつ任意選択で他の操作を遂行し、さらに、フォルダー（すなわち、ディレクトリ）管理を遂行することを利用者１０６に可能とする１つまたは複数のｗｅｂに基づくサービスアプリケーション１１８を実行する。外部アプリケーションサーバ１０４の操作および出力は、外部アプリケーションサーバ１０４の機能を呼び出すホスト１０２にとって特殊なものではない。各サービスアプリケーション１１８は一般的に、外部アプリケーションサーバ１０４上のサービスとして実行される。外部アプリケーションサーバ１０４は、ホスト１０２と統合するためにオープンプラットホームインタフェースおよび一連のオープンプラットホームインタフェース規約を使用する。外部アプリケーションサーバ１０４は、選択されたファイル形式の文書を操作するために必要な動作および機能を提供する。外部アプリケーションサーバ１０４は、ホスト非依存である。言い換えれば、外部アプリケーションサーバ１０４の動作および／または出力は、外部アプリケーションサーバ１０４のサービスにアクセスを容易にするホスト１０２にとって特別なものではない。様々な文書形式を取り扱うためのサービスアプリケーション１１８の例は、ワードプロッサ文書、表計算、プレゼンテーション、およびノートを操作するための標準的な（すなわち、ローカルにインストールされている）アプリケーションに対するオンラインの（すなわち、ｗｅｂに基づく）相手方を含んでいる。
【００２０】
[0024]各サービスアプリケーション１１８により提供される動作は、通常選択されたファイル形式に特化されているか、またはフォルダー管理に関連している。外部アプリケーションサーバ１０４により提供される核となる動作は、文書を参照することおよび編集することである。様々な実施形態において、サービスアプリケーション１１８は、移動体装置上で参照するための文書の書式替え、新規文書の生成、文書の変換、文書の埋め込み、および文書の同報を含むが、これらに限定されない、１つまたは複数の付加的動作を提供する。外部アプリケーションサーバ１０４の観点からは、同報および埋め込みは、特別の対話型利用者の流れである。同報の場合には、外部アプリケーションサーバ１０４は、文書を複数のクライアントコンピューティング装置１１０上に表示し、かつ、一実施形態では、各複数のクライアントコンピューティング装置で参照されている現在のページを追跡する。ホスト１０２は、文書のアップロード、同報の始動、およびリッチクライアント・エントリポイントを管理する。同報動作の別な実施形態では、ページ追跡は、ホスト１０２により取り扱われる。
【００２１】
[0025]各サービスアプリケーション１１８にサポートされている動作は、１つまたは複数のサービスアプリケーションエントリＵＲＬを通じてアクセスされる。各サービスアプリケーションエントリＵＲＬは、特定の文書形式についての特定の動作のための外部アプリケーションサーバ１０４に対するエントリポイントの役を果たす。一般的に、各サービスアプリケーションエントリＵＲＬは、外部アプリケーションサーバ１０４のアドレスを含み、かつ、タスク（例えば、表計算アプリケーションを使用した埋め込み型編集）および要求されたタスクを完遂するために要求されたデータ、すなわち文書およびアクセス権限を与えるアクセストークン用のメタデータＵＲＬの両者を特定する。
【００２２】
[0026]利用者１０６が、文書に対する動作を選択した場合、ホスト１０２は、利用者に選択された文書に対する当該動作のためのサービスアプリケーションエントリＵＲＬを生成する。より詳細には、外部アプリケーションホストページ１２２は、サービスアプリケーション１１８に使用されるＵＲＬパラメータを生成する。外部アプリケーションホストページ１２２により生成されたパラメータは、アクセストークンおよびソースＵＲＬを含むが、これらに限定されない。ソースＵＲＬは、サービスアプリケーション１１８が、ホストエンドポイント１２０および文書にアクセスするために使用するＵＲＬである。アクセストークンは、ホストエンドポイント１２０が利用者１０６を認証し、かつ文書および／またはサービスアプリケーション１１８へのアクセス権を与える利用者／オブジェクト対に対して固有となるトークンである。様々な実施形態において、アクセストークンは、利用者識別子、時刻スタンプ、および文書識別子の内の１つまたは複数のハッシュに基づき計算され、かつ、ホスト１０２に知られている（例えば、ホストの構成データベース中に記憶されている）秘密により暗号化される。
【００２３】
[0027]サービスアプリケーションエントリポイントは、ホスト１０２により提供されたラッパーを通じて取り扱われる。ホスト１０２により提供されたラッパーは、外部アプリケーションサーバ１０４の出力を表示し、かつ、クライアントコンピューティング装置１１０からの入力を利用者１０６がサービスアプリケーション１１８により提供される機能を利用して文書を操作することを可能とする枠組みまたは環境である。一実施形態では、ラッパーは、外部アプリケーションホストページ１２２および／またはアプリケーションフレーム１２４を含む。例として、ホスト１０２により生成された外部アプリケーションホストページ１２２の一実施形態では、エッジ・ツゥ・エッジ・レイアウトを持つインラインフレーム（ｉＦｒａｍｅ）などのｗｅｂページコンテナ中にアプリケーションサーバ１０４により生成されたすべてのサービスアプリケーションページに対応する単一のページである。外部アプリケーションホストページ１２２は、それ自身の利用者インタフェースを持たない。外部アプリケーションホストページ１２２の別の実装では、利用者インタフェースが含むか、または上記に説明したものに対する他のｗｅｂページコンテナおよびレイアウトの代わりをなしうる。
【００２４】
[0028]外部アプリケーションサーバ１０４は、様々な文書形式にアクセス、編集、参照およびその他の方法で処理または操作するために必要な機能を提供する。説明した実施形態では、外部アプリケーションサーバ１０４は、ネットワークへのアクセス、利用者認証、ファイル記憶、ネットワークおよびファイルのセキュリティ、ならびに通常ネットワーク内の他のサーバにより取り扱われ、かつしばしば個々の企業にとって特有の他の管理業務に関連した複雑性およびオーバヘッドを含んでいない。そのような特徴を省略し、かつオープンプラットホームインタフェースを通じて文書操作を取り扱う上での外部アプリケーションサーバ１０４に焦点を絞ることで、外部アプリケーションサーバ１０４が幅広い企業ネットワークのシナリオの中で使用されることを可能とする。外部アプリケーションサーバ１０４が本明細書に記載されたように実行されかつ通常は企業ネットワーク上の他のサーバにより取り扱われるさらなる役割および責任を仮定することが本発明の範囲および趣旨内に留まることを理解されたい。
【００２５】
[0029]ホストは、ｗｅｂブラウザなど一般的なクライアントアプリケーションを使用してネットワーク上にアクセスする能力のあるオンラインサーバアプリケーションである。外部アプリケーションサーバ１０４により提供されるサービスは、ホストにより実行され、クライアントコンピューティング装置に利用可能となる。外部アプリケーションサーバ１０４に接続されると、ホストは、外部アプリケーションサーバ１０４によりサポートされているサービスアプリケーションおよび機能を知ることになる。オープンプラットホームインタフェースは、双方向拡張可能であり、かつクロスバージョンのインタフェース通信のサポートを提供する。オープンプラットホームインタフェースの基本的データ送信機構は、クロスプラットフォーム通信を容易にする。様々な実施形態において、基本的なデータは、Ｊａｖａ（登録商標）ｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）の本文中で転送されるが、他の人間および／または機械読み取り可能なデータの交換フォーマットが、本発明の範囲および趣旨内に留まることを理解されたい。オープンプラットホームインタフェースはまた、Ｗｉｎｄｏｗｓ（登録商標）  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｆｏｕｎｄａｔｉｏｎ（ＷＣＦ）などのいくつかのアプリケーションプログラミングインタフェースで使用されている「あなたが期待していなかったものを無視せよ」および「あなたが期待していたが得られなかったデータに対してデフォルト値を使用せよ」というサービス指向型アーキテクチャ原理に従う。オープンプラットホームインタフェースで使用される「デフォルト値は受け入れ可能な振る舞いをもたらさなければならない」ことの意味は、高度なクロスバージョンの世界における機能の維持に役立つ。
【００２６】
[0030]図２は、複数サーバのファームとして実装された外部アプリケーションサーバ１０４のトポロジの一実施形態を例示する。外部アプリケーションサーバ１０４にとって複数のサーバを含む必要はない。外部アプリケーションサーバ１０４の一実施形態は、単一サーバ「ファーム」として効果的に動作する、単一のコンピューティング装置を使用して実装される。一実施形態では、外部アプリケーションサーバファーム２００の各構成装置２０２、２０４ａ、２０４ｂ、２０４ｃは、フロントエンドサーバ２０２またはバックエンドサーバ２０４ａ、２０４ｂ、２０４ｃとして役割を与えられている。フロントエンドサーバ２０２は、選択された文書形式に関連したバックエンドサーバ２０４ａ、２０４ｂ、２０４ｃに文書取り扱い要求を経路付けする役を果たす。２つ以上のフロントエンドサーバ２０２が使用される場合、性能の改善は、フロントエンドサーバ２０２間のトラフィックを分散させるために任意選択の負荷分散装置２０６を使用することによって達成される。バックエンドサーバ２０４ａ、２０４ｂ、２０４ｃは、サポートされた文書に対する文書処理サービスを提供する。図示された実施形態では、各バックエンドサーバ２０４ａ、２０４ｂ、２０４ｃは、個別の文書形式に対する文書処理サービスを提供する。
【００２７】
[0031]図示された実施形態では、外部アプリケーションサーバ１０４のファーム状態２０８は、中央構成記憶装置２１０内に格納された１つまたは複数のファイル中に記憶される。ファーム状態２０８中に格納された情報は、以下の項目：ファームトポロジー（すなわち、ファームの構成装置の識別情報）、ファーム構成装置の役割、ファーム構成装置に対する構成設定、外部アプリケーションサーバ構成設定、サービスアプリケーション構成設定、およびファーム構成装置正常性の内の１つまたは複数を含むが、それらに限定されない。各ファーム構成装置２０２、２０４ａ、２０４ｂ、２０４ｃは、中央構成記憶装置２１０へのアクセスを読み取らなければならない。図示された実施形態では、中央構成記憶装置２１０は、外部アプリケーションサーバを作り上げている各コンピューティング装置により読み取り可能な共用フォルダーである。様々な実施形態において、ファーム状態２０８を記憶しているファイルは、機械読み込み可能であり、かつ任意選択で人間が読み込み可能である。
【００２８】
[0032]外部アプリケーションサーバ１０４は、標準的ネットワーク資源のアドレス指定方式を通じてアクセス可能である。適切なネットワークアドレス指定方式は、汎用命名規則（ＵＮＣ）のパス、ドライブマッピング、およびユニフォーム・リソース・ネーム（ＵＲＮ）およびユニフォーム・リソース・ロケータ（ＵＲＬ）などのユニフォーム・リソース・アイデンティファイア（ＵＲＩ）を含むが、これらに限定されない。外部から見えるアドレスは、インターネットまたはイントラネットいずれにも向かっており、かつ一般にＵＲＬを使用してアクセスされる。構成フォルダーのパスなどの、外部アプリケーションサーバ１０４の内部アドレスは、一般にＵＮＣパスを使用してアクセスされる。
【００２９】
[0033]一実施形態では、ファーム内部の通信は、ファームの構成装置のみがキャッシュおよびバックエンドサーバに対して要求を作成することを確実にするように保証される。このことは、要求している機械の身元を検査することにより達成される。ファーム内部の通信は、セキュリティを高めるために任意選択で暗号化される。
【００３０】
[0034]図３は、フォールトトレラントファーム（ＦＴＦ）システム３００の一実施形態を持つ外部アプリケーションサーバファーム２００を例示する。外部アプリケーションサーバファーム２００は、ＦＴＦシステム３００の結果として低い管理負担、最小限の支援ソフトウェアの要求条件、ならびに優れた堅牢性、信頼性、およびスケーラビリティを達成する。ＦＴＦシステム３００の主要な構成要素は、ファーム管理構成要素３０２、代替可能なサーバ構成要素３０４、および正常性監視構成要素３０６を含む。一般に、ＦＴＦシステム３００は、状態管理データベースのコストおよび複雑性なしに、外部アプリケーションサーバファーム２００の現在の状態を記述するファーム状態２０８を管理する。このことを達成するために、ＦＴＦシステム３００は、外部アプリケーションサーバファーム２００の各構成装置上で実行される様々なエージェントを含む。エージェントは、エージェントを実行するファーム構成装置に対して個別に機能部品を提供するシステムサービスである。例示された実施形態では、外部アプリケーションサーバファーム２００は、可変なファーム構成装置３０８ａ〜３０８ｎの組を示している。
【００３１】
[0035]ファーム管理構成要素３０２は、ファーム状態マネージャ３１０ａ、３１０ｂおよびファーム状態レプリケータ３１２を含む。ファーム管理構成要素３０２の主たる機能は、ファーム状態の構成変更管理すること、およびファーム構成装置３０８ａ〜３０８ｎにファーム状態を配布することである。
【００３２】
[0036]ファーム状態マネージャ３１０ａ、３１０ｂは、各ファーム構成装置３０８ａ〜３０８ｎ上で実行されるエージェントである。各ファーム構成装置３０８ａ〜３０８ｎは、ファーム状態マネージャ３１０ａ、３１０ｂを実行するが、１つのファーム状態マネージャのインスタンスのみが、所与の時点でマスターファーム状態マネージャ３１０ａとして指定される。マスターと指定されていない（すなわち、２次インスタンス）ファーム状態マネージャ３１０ｂのいずれのインスタンスも、通常実行され続けるが責任は持ってない（すなわち、それらは何も行わない）。別の実施形態では、ファーム状態マネージャ３１０ｂの２次インスタンスは、マスターファーム状態マネージャ３１０ａが発見されている時には停止され、かつマスターファーム状態マネージャ３１０ａが利用可能ではない場合または管理者の手動で要求された時にのみ起動される。
【００３３】
[0037]マスターファーム状態マネージャ３１０ａは、外部アプリケーションサーバファーム２００全体についてのファーム状態２０８の「正式な」（すなわち、真の）バージョンを維持する。ＦＴＦシステム３００は、中央構成記憶装置２１０中に正式なファーム状態２０８を記憶する。各ファーム構成装置は、ローカルな構成記憶装置３１４中にファーム状態のローカルコピーを蓄積する。
【００３４】
[0038]マスターファーム状態マネージャ３１０ａは、任意のファーム構成装置からなされた構成変更を受け入れ、かつ中央構成記憶装置２１０中の構成状態の正式なバージョンを更新する。複数の構成変更が同時に試みられた場合に発生する競合を防止するために、マスターファーム状態は中央構成記憶装置２１０へのアクセス制御を行使する。一実施形態では、マスターファーム状態マネージャ３１０ａは、中央構成記憶装置２１０中の構成ファイルへ構成状態変更を書き込み、かつ、構成変更が受信された時に、構成ファイルをロックすることにより競合を制御する。一実施形態では、中央構成記憶装置２１０は、マスターファーム状態マネージャ３１０ａが実行されているファーム構成装置上のローカル構成記憶装置３１４である。マスターファーム状態マネージャ３１０ａはまた、任意のファーム構成装置３０８ａ〜３０８ｎからファーム状態の現状のコピーについての要求を受け付ける。いくつかの実施形態では、マスターファーム状態マネージャ３１０ａは、選択されたファーム構成装置および／または外部アプリケーションサーバファーム２００の構成装置ではない選択されたコンピューティング装置からの構成変更および要求のみを受け付ける。
【００３５】
[0039]ＦＴＦシステム３００は、動作中のマスターファーム状態マネージャ３１０ａが故障した場合でも外部アプリケーションサーバファーム２００が機能し続けることを可能とする。その場合には、管理者は、手動で別のファーム状態マネージャ３１０ｂをマスターに指定する。ＦＴＦシステム３００によりファーム状態が流動的に取り扱われる設計の結果、別のファーム状態マネージャ３１０ｂを昇格させる必要はない。新しいマスターファーム状態マネージャ３１０ａが特定されるまで、ファーム状態マネージャ３１０ｂの各個別のインスタンスは、その特定のコンピューティング装置のローカル構成記憶装置３１４中に蓄積された最後に知らされたファーム状態を使用して独立に動作し続ける。別な実施形態では、外部アプリケーションサーバは、別のファーム状態マネージャを自動的にマスターに昇格させる。様々な実施形態において、ファーム状態マネージャのあるインスタンスを自動的に昇格させる自動決定は、完全に任意である、または選択基準（例えば、コンピューティング装置の役割、負荷、および／または資源および／または最後のファーム状態複写操作の時刻を考慮すること）に基づいている。
【００３６】
[0040]ファーム状態レプリケータ３１２は、各ファーム構成装置３０８ａ〜３０８ｎがファーム状態の正式なバージョンのほぼ現状のコピーを有していることを確実にするエージェントである。各コンピューティング装置は、ファーム状態レプリケータ３１２のインスタンスを実行するが、ファーム状態マネージャと異なり、マスターファーム状態レプリケータというものはない。ファーム状態のローカルに蓄積したバージョンをほぼ現状のものとするために、ファーム状態レプリケータ３１２は、周期的にマスターファーム状態マネージャ３１０ａに接続し、かつ当該コンピューティング装置のローカル構成記憶装置３１４に正式なファーム状態を複写する。一実施形態では、ファーム状態レプリケータ３１２は、スケジュールに従い（例えば、３０秒毎）ファーム構成装置のローカルなファーム状態を更新する。いくつかの実施形態では、各個別のファーム状態レプリケータ３１２は、独立したスケジュールで動作する。他の実施形態では、各個別のファーム状態レプリケータ３１２は、マスター時計に基づく共通スケジュール（例えば、同期が取られた時計の毎分の開始時に）に従い動作する。ある実施形態では、ファーム状態レプリケータ３１２は、ある事象または他の類似の引き金に応答してローカルな構成状態を更新する。
【００３７】
[0041]ローカル構成記憶装置に対する更新間の時間量は、ファーム管理構成要素３０２内の固有の遅延時間を表す。ファーム管理構成要素３０２により導かれるファーム構成装置３０８ａ〜３０８ｎへの正式なファーム状態の伝搬には遅延時間があるために、全ファーム状態は、首尾一貫しなくなる（すなわち、個々のファーム構成装置に知られたファーム状態は、正式なファーム状態および／または他のファーム構成装置に知られているファーム状態と異なりうる）と推定される。遅延時間の段階は何らの構成変更がなくとも経過するので、ファーム状態全体は、一度各ファーム構成装置３０８ａ〜３０８ｎが中央構成記憶装置２１０から正式なファーム状態を入手すると整合が取れてくる（すなわち、外部アプリケーションサーバは、管理者の意図通りに動作する）。遅延時間の段階が機能し続けるために外部アプリケーションサーバファーム２００にとって短いことは必要ではない。延長された遅延時間の段階は、すべてのファーム構成装置が管理者の意図しているように動作するまでに必要とされる時間量を単に増加させる。
【００３８】
[0042]外部アプリケーションサーバ１０４は、代替可能なサーバ構成要素３０４により高度な耐障害性を示す。他の利点の中で、代替可能なサーバ構成要素３０４は、外部アプリケーションサーバファーム２００が機能を損なうことなく首尾一貫しないファーム状態で動作することを可能とする。代替可能なサーバ構成要素３０４の第１の態様は、所期の役割の構成要素である。ファームの構成装置および各ファーム構成装置３０８ａ〜３０８ｎの役割は、ファーム構成の中で特定される、しかしながら、外部アプリケーションサーバの役割は、通常のサーバで一般に使用される厳密な役割ではなく所期の役割である。厳密な役割は、特定のサーバ上で実行されるサービスを定義する。サーバに厳密な役割を割り当てることは、サーバの処理能力を最適化する、または特定のサーバにより操作される機能を当該サーバの資源に適合させるためにしばしば行われる。対照的に、所期の役割は、構成装置の機能を規制することなく当該特定の構成装置の主眼を記述する。所期の役割は、構成装置の機能に直接的に強い影響を与えることはないが、所期の役割の使用は、ファーム構成装置間の負荷分散の結果としての性能改善などの、別な利点を与える。
【００３９】
[0043]代替可能なサーバ構成要素３０４は、常時、すべてのファーム構成装置３０８ａ〜３０８ｎにすべてのエージェントを実行する、または少なくとも外部アプリケーションサーバ１０４の機能に特化したすべてのエージェントを実行することを要求する。このことは、ファーム管理エージェント（例えば、ファーム状態マネージャ３１０およびファーム状態レプリケータ３１２）、文書操作エージェント３１６ａ〜３１６ｄ（例えば、ワードプロッシングビューワー・エージェント、表計算編集エージェント、およびプレゼンテーション同報エージェント）、および監視エージェント（例えば、動作監視エージェントおよび正常性評価エージェント）を含むが、それらに限定されない。従って、各構成装置は、外部アプリケーションサーバにより通常取り扱われる任意の動作を実行する能力がある。さらに、各ファーム構成装置３０８ａ〜３０８ｎは、当該構成装置に割り当てられた所期の役割に拘わらず要求された任意の動作を実行することになる。言い換えれば、外部アプリケーションサーバファーム２００の構成装置は、代替可能である。要求者に知られているファーム状態が期限切れであることから要求が誤ったファーム構成装置３０８ａ〜３０８ｎに送られたとしても、その「誤った」構成装置は、要求を取り扱うことになる。
【００４０】
[0044]代替可能なサーバ構成装置３０４の第２の態様は、フォールバック運転構成要素である。外部アプリケーションサーバ１０４は、外部の情報源から要求を受信し、かつこれらの要求は、外部アプリケーションサーバの構成に基づきファーム構成装置に配送される。付加的に、ファーム内部での要求が、ファーム構成装置３０８ａ〜３０８ｎ間でなされうる。要求がファーム構成装置に対してなされたが、要求が外部アプリケーションサーバの制御範囲内で何らかの理由により満たされない場合、要求は、要求が満たされるまで、要求元を含む他のファーム構成装置に対してなされる。極端な場合、代替可能なサーバシステムは、構成装置（すなわち、要求者）が自身の要求を取り扱うことを可能とする。フォールバック運転構成要素は、ファーム状態における構成問題に対する外部アプリケーションサーバファーム２００の応答を取り扱う。設定が解決できないほどに管理者によって誤構成されているか、または外部アプリケーションサーバ１０４に理解できない場合、外部アプリケーションサーバ１０４は、状況に応じて、設定に対するデフォルト値に復帰させる、または設定を無視する。
【００４１】
[0045]所期の役割の構成要素およびフォールバック運転構成要素の組み合わせにより、代替可能なサーバシステムは、外部アプリケーションサーバを個別のファーム構成装置の故障または他の動作不良について極めてフォールトトレラントなものにする。所期の役割のサブシステムおよびフォールバック運転サブシステムは、外部アプリケーションサーバによってなされたすべての要求がなんら外見上明らかな（すなわち、利用者に対して明らかな）機能の損失なく取り扱われることを保証する。
【００４２】
[0046]正常性監視構成要素３０６は、各ファーム構成装置の正常性および各構成装置上で実行される様々なエージェントを監視する。各ファーム構成装置は、複数の動作監視エージェント３１８ａ〜３１８ｆおよび正常性評価エージェント３２０を実行する。各動作監視エージェント３１８ａ〜３１８ｆは、ファーム構成装置３０８ａ〜３０８ｎ上で実行される動作監視対象エージェント（例えば、ファーム管理エージェント３１０ａ、３１０ｂ、３１２および文書処理エージェント３１６ａ〜３１６ｄ）の状態を監視する役を果たす。一実施形態では、各動作監視エージェントは、動作監視対象エージェントの１つと一意的に対となっている（すなわち、付随している）。監視している動作監視対象エージェントに問題がある場合、担当の動作監視エージェントは、適切な処置を取ることになる。様々な実施形態において、適切な処置は、実行していない関連した動作監視対象エージェントの再起動を試みること、および正常性評価エージェント３２０に関連した動作監視対象エージェントについての問題を報告することを含むが、それらに限定されない。いくつかの実施形態では、動作監視エージェントは、関連した動作監視対象エージェントについての問題を直接マスターファーム状態マネージャ３１０ａに報告することになる。他の実施形態では、担当の動作監視エージェントは、問題が検出されるか否かに拘わらず関連した動作監視対象エージェントの状態を周期的に報告する。
【００４３】
[0047]正常性評価エージェント３２０は、動作監視エージェントからの報告に基づきファーム構成装置が正常であるか否かを決定し、かつ正常性判定結果（すなわち、構成装置正常性報告）をマスターファーム状態マネージャ３１０ａに報告する。次に、マスターファーム状態マネージャ３１０ａは、ファーム状態の一部として報告された各構成装置正常性報告を記録する。一実施形態では、ファーム構成装置は、当該構成装置上のすべてのエージェントが正しく実行されている場合に、正常と看做される。別な実施形態では、ファーム構成装置は、外部アプリケーションサーバの機能に特有のすべてのエージェントが正しく実行されている場合に、正常と看做される。さらに他の実施形態では、ファーム構成装置は、当該構成装置上の選択されたエージェントが正しく実行されている場合に、正常と看做される。様々な実施形態において、正常性評価エージェント３２０は、ファーム構成装置が正常であるか否かを判定する時、動作監視エージェントを含む。このような実施形態では、正常性評価エージェント３２０は、ファーム構成装置上で実行される動作監視エージェントを認識しており、かつ当該動作監視エージェントが報告を作成しない場合動作監視エージェントが故障していると判定する。一実施形態では、正常性評価エージェント３２０は、ファーム構成装置が正常でない場合にのみマスターファーム状態マネージャ３１０ａに報告する。
【００４４】
[0048]信頼性の利点は別として、ＦＴＦシステム３００は、外部アプリケーションサーバファーム２００の管理者に別の利点を提供する。第１に、各ファーム構成装置からファーム状態の正常性報告を集めることにより、ファームの正常性を点検するために見なければならない場所が１箇所になることから、管理負担が単純化される。各ファーム構成装置の正常性を個別に点検する必要がない。第２に、集められた正常性データは、独自の監視ツールにより容易に監視される。例えば、正常性データは、イベントログまたは独自の監視ツール（例えば、総合的な企業またはネットワーク監視システム）に組み込まれ、かつ警報が、問題発生時に外部アプリケーションサーバ管理者に送信されうる。第３に、ファーム状態がすべてのファーム構成装置により蓄積されていることから、正式なファーム状態の真のコピーまたは、少なくともほぼ最新のコピーが、中央構成記憶装置が故障した場合にさえ利用可能である。このことは、障害の原因を調査する場合に有用となりうる価値ある正常性データを含んでいる。
【００４５】
[0049]ＦＴＦシステム３００は、高度に制御された状態管理システムにより提供されるいくつかの効率性を活用することにより低コストで、管理が容易なシステムにおいて堅牢な耐障害性を提供する。ＦＴＦシステム３００により引き起こされた遅延時間の結果であっても、ファーム構成装置故障の結果としてであっても、ファーム状態が不整合になった場合、負荷分散の欠如または複数のフォールバック要求を行わなければならないことに起因する効率の潜在的な損失を伴うとしても、外部アプリケーションシステムは、動作を継続する。マスターファーム状態マネージャ３１０ａが１つも利用可能ではないという極端な場合には、ＦＴＦシステム３００は、各構成装置が構成装置のローカル構成記憶装置内に蓄積されたファーム状態に基づき自動的に動作しながら、外部アプリケーションサーバが機能し続ける（がおそらく非効率）ことを可能とする。ファーム状態の整合が取れてくると、外部アプリケーションサーバファーム２００は、落ち着いてきて、管理者により意図されたように動作する。
【００４６】
[0050]本明細書で説明した実施形態および機能は、ホスト１０２および外部アプリケーションサーバ１０４、などの多数のコンピューティングシステム、と有線および無線コンピューティングシステム、移動体コンピューティングシステム（例えば、携帯電話、タブレットまたは石板状コンピュータ、ラップトップコンピュータ、など）を含む、図１を参照して上記に説明したクライアント装置１１０により動作することができる。さらに、本明細書で説明した実施形態および機能は、アプリケーション機能、メモリ、データ記憶装置、と検索および様々な処理機能が、インターネットまたはイントラネットなどの分散型コンピューティングネットワーク上で互いに遠隔で運転されうる、分散型システム（例えば、クラウド型コンピューティングシステム）上で動作することができる。様々な形式の利用者インタフェースおよび情報が、内蔵のコンピューティング装置ディスプレイにより、または１つまたは複数のコンピューティング装置に付随した遠隔ディスプレイ装置により表示されうる。例えば、様々な形式の利用者インタフェースおよび情報は、様々な形式の利用者インタフェースおよび情報が投影された壁面上に表示されかつ対話されうる。本発明の実施形態が実践されうる多数のコンピューティングシステムとの対話は、キー入力、タッチスクリーン入力、音声または他の可聴音入力、関連したコンピューティング装置がコンピューティング装置の機能を制御するために利用者のジェスチャーを補足しかつ解釈するための検出器（例えば、カメラ）機能を装着しているジェスチャー入力、などを含む。図４から図６および関連した説明は、本発明の実施形態が実践されうる様々な動作環境についての考察を提供する。しかしながら、図４から図６に関して例示されかつ説明された装置およびシステムは、例および例示を目的としているもので、本明細書で説明した、本発明の実施形態を実践するために利用されうる膨大な数のコンピューティング装置構成を限定するものではない。
【００４７】
[0051]図４は、本発明の実施形態が実践されうる例示的コンピューティング装置４００の物理的な構成要素の例を示すブロック図である。以下に説明されるコンピューティング装置構成要素は、上記に説明されたコンピューティング装置、例えば、ホスト１０２、外部アプリケーションサーバ１０４、およびクライアントコンピューティング装置１１０に適しうる。基本的な構成において、コンピューティング装置４００は、少なくとも１つの処理装置４０２およびシステムメモリ４０４を含む。コンピューティング装置の構成および形式に応じて、システムメモリ４０４は、揮発性の（例えば、ランダムアクセスメモリ（ＲＡＭ））、不揮発性の（例えば、読み出し専用メモリ（ＲＯＭ））、フラッシュメモリ、または任意の組み合わせを備えるが、それらに限定されない。システムメモリ４０４は、オペレーティングシステム４０５、クライアントアプリケーション（例えば、利用者エージェント／ｗｅｂブラウザ１０８）またはサーバアプリケーション（例えば、ホストアプリケーション１１２またはサービスアプリケーション１１８）などのアプリケーション４２０を実行することに適している、１つまたは複数のプログラムモジュール４０６を含む。オペレーティングシステム４０５は、例えば、コンピューティング装置４００の動作を制御することに適しうる。さらに、本発明の実施形態は、画像ライブラリ、他のオペレーティングシステム、または任意の他のアプリケーションプログラムと共に実践され得て、かつ何らの特定のアプリケーションまたはシステムに限定されない。この基本的構成は、点線４０８の範囲内のこれらの構成要素により図４内に例示されている。
【００４８】
[0052]コンピューティング装置４００は、別の特徴または機能を持つことができる。例えば、コンピューティング装置４００はまた、例えば、磁気ディスク、光ディスク、またはテープなどの付加的なデータ記憶装置（可換型および／または非可換型）を含むことができる。このような付加的な記憶装置は、可換型記憶装置４０９および非可換型記憶装置４１０により図４中に例示されている。
【００４９】
[0053]上記に述べたように、いくつかのプログラムモジュールおよびデータファイルは、オペレーティングシステム４０５を含め、システムメモリ４０４中に記憶されうる。処理装置４０２上で実行されるが、プログラムモジュール４０６は、例えば、フォールトトレラントファームシステム３００の方法の段階の１つまたは複数を含む処理を遂行することができる。前述の処理は、ある例であり、処理装置４０２は、他の処理を遂行することができる。本発明の実施形態に従って使用されうる他のプログラムモジュールは、電子メールおよび連絡先アプリケーション、ワードプロセッシングアプリケーション、表計算アプリケーション、データベースアプリケーション、スライド表示アプリケーション、描画またはコンピュータ支援アプリケーション、などを含むことができる。
【００５０】
[0054]一般に、本発明の実施形態に合致する形で、プログラムモジュールは、ルーチン、プログラム、構成要素、データ構造、および特定の業務を遂行することができる、または特定の抽象データ形式を実装できる他の形式の構造を含むことができる。さらに、本発明の実施形態は、携帯装置、マルチプロセッサシステム、マイクロプロセッサ型、またはプログラム可能な家電機器、ミニコンピュータ、メインフレームコンピュータ、などを含むその他のコンピュータシステム構成で実践されうる。本発明の実施形態はまた、通信ネットワークを通じて結合されている遠隔処理装置により業務が実行される分散コンピューティング環境においても実践されうる。分散コンピューティング環境において、プログラムモジュールは、ローカルおよび遠隔のメモリ記憶装置の両方の中に置かれうる。
【００５１】
[0055]さらに、本発明の実施形態は、個別電子素子を備えた電子回路、論理ゲートを内蔵したパッケージ化されたまたは集積された電子チップ、マイクロプロセッサを利用した回路、あるいは電子素子またはマイクロプロセッサを内蔵した単一のチップ内に実践されうる。例えば、本発明の実施形態は、図４中に例示された構成要素の各々または多くが単一の集積回路上に集積されうるシステム・オン・チップ（ＳＯＣ）により実践されうる。このようなＳＯＣ装置は、１つまたは複数の処理装置、グラフィック装置、通信装置、システム仮想化装置、および様々なアプリケーション機能が含まれ、それらのすべてが、単一の集積回路としてチップ基板上に集積されて（または「焼かれて」）いる。ＳＯＣにより動作する場合、様々なクライアントおよび／またはサーバアプリケーションの機能は、単一集積回路（チップ）上にコンピューティング装置４００の他の構成要素と統合されたアプリケーション専用ロジックにより実装されうる。本発明の実施形態はまた、機械的、光型の、流体型の、および量子技術を含むが限定されない、例えば、ＡＮＤ、ＯＲ、およびＮＯＴなどの論理動作を実行する能力のある他の技術を用いて実践されうる。加えて、本発明の実施形態は、汎用コンピュータ内で、または任意の他の回路またはシステム内で実践されうる。
【００５２】
[0056]本発明の実施形態は、例えば、コンピュータ処理過程（方法）、コンピューティングシステムとして、またはコンピュータプログラム製品またはコンピュータ可読媒体としてといった、製造業者の製品として実装されうる。コンピュータプログラム製品は、コンピュータシステムにより読み取り可能な、かつコンピュータ処理過程を実行するためにコンピュータプログラムの命令を暗号化しているコンピュータの記憶装置媒体であり得る。
【００５３】
[0057]本明細書で使用される用語、コンピュータ可読媒体は、コンピュータの記憶装置媒体を含むことができる。コンピュータの記憶装置媒体は、コンピュータが読み取り可能な命令、データ構造、プログラムモジュールまたはその他のデータなどの、情報の記憶のために何らかの方法または技術で実装されている揮発性および不揮発性、可換型および非可換型媒体を含むことができる。システムメモリ４０４、可換型記憶装置４０９、および非可換型記憶装置４１０は、すべてコンピュータ記憶装置媒体の例（すなわち、メモリ記憶装置）である。コンピュータ記憶装置媒体は、ＲＡＭ、ＲＯＭ、電気的に消去可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多目的ディスク（ＤＶＤ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、あるいは情報を記憶するために使用されうる、およびコンピューティング装置４００によりアクセスされうる任意の他の媒体を含むことができるが、それらに限定されない。任意のこのようなコンピュータ記憶装置もまた、装置４００の一部であり得る。コンピューティング装置４００はまた、キーボード、マウス、ペン、音響入力装置、タッチ入力装置他などの入力装置４１２を有することができる。表示装置、スピーカ、印刷装置他などの出力装置４１４もまた含まれうる。前述の装置は、例であり、他のものも使用されうる。
【００５４】
[0058]本明細書で使用される用語、コンピュータ可読媒体はまた、通信媒体を含む。通信媒体は、コンピュータ読み込み可能な命令、データ構造、プログラムモジュール、または搬送波または他の転送機構などの、変調されたデータ信号中の他のデータにより具現化され得て、かつ、任意の情報配信媒体を含む。用語「変調されたデータ信号」は、１つまたは複数の特性集合を有している、または信号中の情報を符号化するような方法で変更された信号と説明することができる。限定されないが、例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音波、無線周波（ＲＦ）、赤外線、およびその他の無線媒体などの無線媒体を含むことができる。コンピューティング装置４００は、他のコンピューティング装置４１８との通信を可能とする通信接続１６を含むことができる。適切な通信接続４１６の例は、ＲＦ送信機、受信機、および／または送受信機回路すなわちユニバーサル・シリアル・バス（ＵＳＢ）、パラレルまたはシリアルポート、ならびに対象コンピュータが読み込み可能な媒体と共に使用するために適切なその他の接続を含むが、それらに限定されない。
【００５５】
[0059]図５Ａおよび図５Ｂ は、本発明の実施形態が実践される、適切な移動体コンピューティング環境、例えば、携帯電話５００、スマートフォン、タブレット型パソコン、ラップトップコンピュータ、などを例示している。図５Ａを参照すると、実施形態を実装するための例の移動体コンピューティング装置５００が例示されている。基本的な構成において、移動体コンピューティング装置５００は、入力素子および出力素子の両者を持つ携帯コンピュータである。入力素子は、利用者が移動体コンピューティング装置５００に情報を入力することを可能とするタッチスクリーン表示装置５０５および入力ボタン５１０を含む。移動体コンピューティング装置５００はまた、さらなる利用者入力を可能とする任意選択の側面入力素子５１５を組み込むことができる。任意選択の側面入力素子５１５は、回転スイッチ、ボタンまたは任意の他の形式の手動入力素子でありえる。別の実施形態では、移動体コンピューティング装置５００は、より多くのまたはより少ない入力素子を組み込むことができる。例えば、表示装置５０５は、いくつかの実施形態ではタッチスクリーンではないかもしれない。さらに別の実施形態では、移動体コンピューティング装置は、表示装置５０５および入力ボタン５１０を有する携帯電話などの携帯電話システムである。移動体コンピューティング装置５００はまた、任意選択のキーパッド５３５を含むことができる。任意選択のキーパッド５３５は、物理的なキーパッドまたはタッチスクリーン表示装置上に生成される「ソフト」キーパッドでありえる。
【００５６】
[0060]移動体コンピューティング装置５００は、グラフィカル・ユーザー・インターフェース（ＧＵＩ）を表示することができる、表示装置５０５などの出力素子を組み込んでいる。その他の出力素子は、スピーカ５２５およびＬＥＤライト５２０を含む。さらに、移動体コンピューティング装置５００は、利用者に事象を通知するために移動体コンピューティング装置に振動を起こさせるバイブレーションモジュール（図示されない）を組み込むことができる。さらに別の実施形態では、移動体コンピューティング装置５００は、出力信号を提供する別な手段を提供するためのヘッドホンジャック（図示されない）を組み込むことができる。
【００５７】
[0061]移動体コンピューティング装置５００と組み合わせて本明細書では説明されているが、別の実施形態では、本発明は、デスクトップ環境、ラップトップまたはノートブックコンピュータシステム、マイクロプロセッサシステム、マイクロプロセッサ型またはプログラム可能な家電機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、などの任意の数のコンピュータシステムと組み合わせて使用される。本発明の実施形態はまた、業務が分散コンピューティング環境内の通信ネットワークを通じて結合されている遠隔処理装置により実行される分散コンピューティング環境の中で実践され得て、プログラムはローカルおよび遠隔のメモリ記憶装置の両方の内に置かれうる。要約すれば、複数の環境センサー、利用者に通知を提供するための複数の出力素子、および複数の通知事象形式有する任意のコンピュータシステムが、本発明の実施形態に組み込まれうる。
【００５８】
[0062]図５Ｂ は、図５Ａに示されるコンピューティング装置などの、一実施形態の中で使用される移動体コンピューティング装置の構成要素を例示するブロック図である。すなわち、移動体コンピューティング装置５００は、ある実施形態を実装するためにシステム５０２を組み込むことができる。例えば、システム５０２は、例えば、ブラウザ、Ｅメール、スケジュール帳、インスタントメッセージング、およびメディアプレーヤアプリケーションなどのデスクトップまたはノートブックコンピュータのアプリケーションに類似した１つまたは複数のアプリケーションを実行することができる「スマートフォン」を実装するために使用されうる。いくつかの実施形態では、システム５０２は、携帯情報端末（ＰＤＡ）および無線電信機などのコンピューティング装置として統合される。
【００５９】
[0063]１つまたは複数のアプリケーションプログラム５６６は、メモリ５６２に読み込まれ、かつオペレーティングシステム５６４上でまたは連携して実行されることができる。アプリケーションプログラムの例は、電話のダイアルプログラム、Ｅメールプログラム、個人情報管理（ＰＩＭ）プログラム、ワードプロセッシングプログラム、表計算プログラム、インターネットブラウザプログラム、メッセージングプログラム、その他を含む。システム５０２はまた、メモリ５６２内に不揮発性記憶装置５６８を含む。不揮発性記憶装置５６８は、システム５０２の電源が落とされた場合に消失されるべきではない永続的情報を記憶するために使用されうる。アプリケーション５６６は、ＥメールまたはＥメールアプリケーションにより使用される他のメッセージ、などのような情報を不揮発性記憶装置５６８内で使用しかつ記憶することができる。同期アプリケーション（図示されない）もまた、システム５０２上に存在し、かつ不揮発性記憶装置５６８内に記憶された情報をホストコンピュータに記憶されている対応する情報と同期させておくためにホストコンピュータ上に存在する対応した同期アプリケーションと対話するようにプログラムされている。本明細書で説明した様々なクライアントおよびサーバアプリケーションを含む、他のアプリケーションが、メモリ５６２に読み込まれかつ装置５００上で実行できることを理解されたい。
【００６０】
[0064]システム５０２は、１つまたは複数の電池として実装されうる、電源５７０を有する。電源５７０はさらに、ＡＣアダプターまたは電池を補充または再充電する電源格納台などの外部供給電源を含む。
【００６１】
[0065]システム５０２はまた、無線周波通信を送信および受信する機能を実行する無線装置５７２を含む。
無線装置５７２は、通信回線業者またはサービス提供業者を介したシステム５０２と「外部の世界」間の無線接続を容易にする。無線装置５７２へのおよびからの送信受信は、オペレーティングシステム５６４の制御のもとで行われる。言い換えれば、無線装置５７２により受信された通信は、オペレーティングシステム５６４を介してアプリケーションプログラム５６６に伝搬され得て、逆もまた同様である。
【００６２】
[0066]無線装置５７２は、システム５０２がネットワーク上でなど、他のコンピューティング装置と通信することを可能とする。無線装置５７２は、通信媒体の一例である。通信媒体は一般に、搬送波または他の転送機構などの変調されたデータ信号中のコンピュータが読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータにより具現化され、かつ任意の情報配送媒体を含むことができる。用語「変調されたデータ信号」は、その特性集合の１つまたは複数を有する、または信号中の情報を符号化するためのそのような方法により変更された信号を意味する。限定されないが、例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、と音波、ＲＦ、赤外線および他の無線媒体などの無線媒体を含む。本明細書中で使用される用語、コンピュータ可読媒体は、記憶媒体および通信媒体両者を含む。
【００６３】
[0067]システム５０２のこの実施形態は、２つの形式の通知出力装置すなわち視覚的な通知を提供するために使用されうる発光ダイオード（ＬＥＤ）５２０および音声通知を提供するためにスピーカ５２５で使用されうる音声インタフェース５７４により示される。これらの装置は、プロセッサ５６０および他の構成要素が電池電力を消費しないように終了されるかも知れないにも拘わらず、起動された時、通知機構により指示された期間オンのままであるように電源５７０に直接連結されうる。ＬＥＤ５２０は、利用者が装置の電源オン状態を示すように行動するまで、無期限にオンのままであるようにプログラムされうる。音声インタフェース５７４は、利用者に可聴信号を提供しかつ利用者から可聴信号を受信するために使用される。例えば、スピーカ５２５に連結されていることに加え、音声インタフェース５７４もまた、電話の会話を容易にするためなど、可聴入力を受信するためにマイクロフォンに連結されうる。本発明の実施形態によれば、マイクロフォンはまた、以下に説明されるように、通知の制御を容易にするために音声センサーとして役に立ちうる。システム５０２はさらに、静止画、動画ストリームなどを記録するために内蔵カメラ５３０の動作を可能とするビデオインタフェース５７６を含むことができる。
【００６４】
[0068]システム５０２を実装している移動体コンピューティング装置は、さらなる特徴または機能を有しうる。例えば、装置はまた、磁気ディスク、光ディスクまたはテープなどの付加的なデータ記憶装置（可換型および／または非可換型）を含むことができる。このような付加的な記憶装置は、図５Ｂ中に記憶装置５６８により示されている。コンピュータ記憶装置媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータなどの、情報の記憶のための任意の方法または技術により実装された揮発性および不揮発性、可換型および非可換型媒体含むことができる。
【００６５】
[0069]装置５００により生成されたまたは捕捉され、かつシステム５０２により記憶されたデータ／情報は、上記に説明してように、装置５００上にローカルに記憶されうる、または、データは、装置５００と装置５００に関連した別個のコンピューティング装置、例えば、インターネットなどの分散コンピューティングネットワーク内のサーバコンピュータ間で無線装置５７２を介してまたは有線接続を介して本装置によりアクセスされうる任意の数の記憶媒体上に記憶されうる。このようなデータ／情報が装置５００を介して無線装置５７２または分散コンピューティングネットワークによりアクセスされうることを理解されたい。同様に、このようなデータ／情報は、電子メールおよび協調的データ／情報共有システムを含む公知のデータ／情報転送および記憶手段に従って記憶および使用のためにコンピューティング装置間で即時に転送されうる。
【００６６】
[0070]図６は、上記に説明したように、ブラウザアプリケーション１０８、ホストアプリケーション１１２および／またはサービスアプリケーション１１８を１つまたは複数のクライアント装置に提供するためのシステムアーキテクチャを例示する。ホストアプリケーション１１２および／またはサービスアプリケーション１１８によって開発され、対話されまたは編集されたコンテンツは、異なる通信チャネルまたは他の記憶形式で記憶されうる。例えば、様々な文書は、ディレクトリサービス６２２、ｗｅｂポータル６２４、メールボックスサービス６２６、インスタントメッセージング記憶装置６２８、およびソーシャルネットワーキングサイト６３０を使用して記憶されうる。ホストアプリケーション１１２および／またはサービスアプリケーション１１８は、本明細書中で説明したように、データの利用を可能とするためにこれらの形式のシステムまたは同様のもののいずれか使用することができる。サーバ６２０は、クライアントにホストアプリケーション１１２および／またはサービスアプリケーション１１８を提供することができる。１つの例として、サーバ６２０は、ｗｅｂ上でホストアプリケーション１１２および／またはサービスアプリケーション１１８を提供するｗｅｂサーバでありえる。サーバ６２０は、ネットワーク６１５を通じてクライアントにｗｅｂ上でホストアプリケーション１１２および／またはサービスアプリケーション１１８を提供することができる。ホストに依存しない文書アクセスシステム１００にアクセスすることができるクライアントの例は、任意の汎用目的パソコン１１０ａ、タブレットコンピューティング装置１１０ｂ、および／またはスマートフォンなどの移動体コンピューティング装置１１０ｃを含みうるコンピューティング装置４００を含む。任意のこれらの装置は、記憶装置６１６からコンテンツを入手できる。
【００６７】
[0071]本発明の実施形態は、例えば、本発明の実施形態に従った方法、システム、およびコンピュータプログラム製品のブロック図および／または動作例図を参照して上記に説明されている。ブロック中で言及された機能／動作は、いずれの流れ図に示されるような順序を外れうる。例えば、連続して示される２つのブロックは、実際には、ほぼ同時に実行されうる、またはブロックは、関わっている機能／動作に応じてしばしば逆順で実行されうる。
【００６８】
[0072]本発明のいくつかの実施形態を説明してきたが、その他の実施形態が存在しうる。さらに、本発明の実施形態が、メモリおよび他の記憶媒体中に記憶されたデータに関連しているように説明されてきているが、データはまた、ハードディスク、フロッピー（登録商標）ディスク、またはＣＤ−ＲＯＭのような２次記憶装置、インターネットからの搬送波、あるいはＲＡＭまたはＲＯＭの他の形式などの、他の形式のコンピュータ可読媒体上に記憶または他の形式のコンピュータ可読媒体上から読み出されうる。さらに、開示した方法の段階は、本発明を逸脱することなく、段階の順序替えおよび／または段階の挿入または削除を含む、任意の態様で変更されうる。
【００６９】
[0073]様々な実施形態において、本発明を作り上げるコンピューティング装置間の通信を使用するためのネットワークの形式は、インターネット、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、および仮想プライベートネットワーク（ＶＰＮ）を含むが、これらに限定されない。本出願においては、ネットワークは、企業ネットワークおよびクライアントコンピューティング装置が企業ネットワークにアクセスするネットワーク（すなわち、クライアントネットワーク）を含む。一実施形態では、クライアントネットワークは、企業ネットワークの一部である。別な実施形態では、クライアントネットワークは、ゲートウェイ、遠隔アクセスプロトコル、あるいは公衆または私設インターネットアドレスなどの、外部から利用可能なエントリポイントを通じて企業ネットワークにアクセスする個別のネットワークである。
【００７０】
[0074]本出願で提供された１つまたは複数の実施形態の説明および例図は、いかなる形であれ請求項に記載の本発明の範囲を限定または制限することを意図したものではない。本出願中で提供される実施形態、例、および詳細は、所有権を伝え、さらに請求する発明の最良の形態を他社が作成しかつ使用することを可能とするに十分であると考えられる。請求項に係る発明は、本出願中で提供されるいかなる実施形態、例、および詳細に限定されるものと解釈されるべきではない。組み合わせてまたは個別に示されかつ説明されているか否かに拘わらず、様々な特徴（構造的および方法論的両者）は、特定の特徴集合を持つ実施形態を生成するために選択的に含められまたは除外されることを意図している。本出願の説明および例図を提供してきたことから、当業者は、請求項に係る発明の幅広い態様および幅広い範囲から逸脱しない本出願中に表現された一般的な発明上の概念の範囲内に留まる変形、修正、および代替の実施形態描くことができよう。
【図１】
2014530435.tif 000003
【図２】
2014530435.tif 000004
【図３】
2014530435.tif 000005
【図４】
2014530435.tif 000006
【図５Ａ】
2014530435.tif 000007
【図５Ｂ】
2014530435.tif 000008
【図６】
2014530435.tif 000009
【国際調査報告】
2014530435.tif 000010
2014530435.tif 000011