(57)【要約】  スプレッドシートのような共有コンピュータ・アプリケーション内のプライベート・シートが開示される。１態様では、第１のクライアントおよび第２のクライアントがパブリック・シートにアクセス可能であり、さらに、第２のクライアントのみがプライベート・シートにアクセス可能である。プライベート・シートはパブリック・シート内のコンテンツにアクセスするように構成されるが、パブリック・シートはプライベート・シート内のコンテンツにアクセスすることはできない。このように、ユーザは、パブリック・シート上で他のユーザと共同作業しながら、プライベート・シートを使用してプライベート・シート側で計算またはモデリングを行うことができる。別の態様では、パブリック・シートに加えた変更を、パブリック・シート内のコンテンツに対して係る変更がプライベート・シートによって参照されている場合は、プライベート・シート内に反映することができる。しかし、プライベート・シートに加えた変更はパブリック・シートには反映されない。パブリック・シートの値にアクセスするがパブリック・シートの式にはアクセスしないプライベート・シートのような、他の多数の特定の態様も開示されている。
2010521743.tif 000002
【特許請求の範囲】
【請求項１】
共有コンピュータ・アプリケーション内にプライベート領域を提供するためのシステムであって、
第１のクライアント１００および第２のクライアント１０５がアクセスできるパブリック・シート１２０と、
前記第１のクライアントおよび前記第２のクライアントのうち前記第２のクライアントのみがアクセスでき、前記パブリック・シート内のコンテンツにアクセスされるよう構成されたプライベート・シート１２５であって、前記パブリック・シートは前記プライベート・シート内のコンテンツにはアクセスできない、プライベート・シート１２５と、
を備えるシステム。
【請求項２】
前記パブリック・シートへの変更は、前記パブリック・シート内のコンテンツに対して係る変更が前記プライベート・シートによって参照されている場合、前記プライベート・シートに反映される、請求項１に記載のシステム。
【請求項３】
前記プライベート・シートに加えた変更は前記パブリック・シートに反映されない、請求項１に記載のシステム。
【請求項４】
前記パブリック・シートが、前記第１のクライアントと前記第２のクライアントにサービスするように構成されたサーバ上に常駐している、請求項１に記載のシステム。
【請求項５】
前記プライベート・シートは前記第２のクライアント上に常駐している、請求項１に記載のシステム。
【請求項６】
前記第１のクライアントと前記第２のクライアントはピアツーピア・ネットワークの一部である、請求項１に記載のシステム。
【請求項７】
前記プライベート・シートは前記第１のクライアントからはアクセス不可能であり、さらに不可視である、請求項１に記載のシステム。
【請求項８】
前記パブリック・シートと前記プライベート・シートは同じスプレッドシート・アプリケーションの一部である、請求項１に記載のシステム。
【請求項９】
共有コンピュータ・アプリケーション内にプライベート領域を提供するための方法であって、
パブリック・シート１２０をサーバ上に保持するステップであって、第１のクライアント１００と第２のクライアント１０５は前記パブリック・シートにアクセスできるステップと、
プライベート・シート１２５を前記第２のクライアント上に保持するステップであって、前記第１のクライアントおよび前記第２のクライアントのうち前記第２のクライアントうち前記第２のクライアントのみが前記プライベート・シートにアクセスでき、前記プライベート・シートは前記パブリック・シート内のコンテンツにアクセスするように構成されているが、前記パブリック・シートは前記プライベート・シート内のコンテンツにアクセスできないステップと、
を含む方法。
【請求項１０】
前記プライベート・シート内の前記パブリック・シートに加えた変更を、前記パブリック・シート内のコンテンツに対して係る変更が前記プライベート・シートによって参照されている場合に、更新するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記プライベート・シートに加えた任意の変更を前記パブリック・シート内で更新できないようにするステップをさらに含む、請求項９に記載の方法。
【請求項１２】
前記プライベート・シートが前記第１のクライアントに見えないようにするステップをさらに含む、請求項９に記載の方法。
【請求項１３】
前記パブリック・シートと前記プライベート・シートを少なくとも１つのスプレッドシート・アプリケーションの一部としてホストするステップをさらに含む、請求項９に記載の方法。
【請求項１４】
前記パブリック・シートの値にはアクセスするが前記パブリック・シートの式にはアクセスしないように前記プライベート・シートを構成するステップをさらに含む、請求項９に記載の方法。
【請求項１５】
コンピューティング・システム上に有形に存在するコンピュータ実行可能命令を有するコンピュータ読取可能媒体であって、前記命令は共有コンピュータ・アプリケーション内のプライベート領域を提供し、前記命令は、
パブリック・シート１２０をサーバ上で保持する第１の命令であって、第１のクライアント１００および第２のクライアント１０５は前記パブリック・シートにアクセスできる、第１の命令と、
プライベート・シート１２５を前記第２のクライアント上で保持する第２の命令であって、前記第１のクライアントおよび前記第２のクライアントのうち前記第２のクライアントのみが前記プライベート・シートにアクセスでき、前記プライベート・シートは前記パブリック・シート内のコンテンツにアクセスするように構成されるが、前記パブリック・シートは前記プライベート・シート内のコンテンツにはアクセスできない、第２の命令と、
を含む、コンピュータ読取可能媒体。
【請求項１６】
前記パブリック・シートに加えた変更を、前記パブリック・シート内のコンテンツに対して係る変更が前記プライベート・シートによって参照されている場合に更新する第３の命令をさらに含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項１７】
前記プライベート・シートに加えた任意の変更を前記パブリック・シート内で更新できないようにする第４の命令をさらに含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項１８】
前記プライベート・シートが前記第１のクライアントに見えないようにする第５の命令をさらに含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項１９】
前記パブリック・シートと前記プライベート・シートを少なくとも１つのスプレッドシート・アプリケーションの一部としてホストすることを可能にする第６の命令をさらに含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項２０】
前記パブリック・シートの値にはアクセスするが前記パブリック・シートの式にはアクセスしないように前記プライベート・シートを構成する第７の命令をさらに含む、請求項１５に記載のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権の表示と許諾事項
本特許文書の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権者は、米国特許商標庁の特許ファイルまたは記録中に現われる通りであれば、何人によるこの特許書類または特許開示の複製についても異議を唱えないが、それ以外は、いかなるものでもすべての著作権を留保する。Ｃｏｐｙｒｉｇｈｔ  （Ｃ）  ２００６、２００７  Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐという表示が本文書に適用されるものとする。
【０００２】
本明細書で開示する主題は、コンピューティングの分野に関し（しかし、決してその分野に限定されない）、特に、スプレッドシート・アプリケーションの分野に関する。
【背景技術】
【０００３】
スプレッドシート・アプリケーションによりユーザは、実際のデータ内部の情報を検証するといった、仮説シナリオまたは幾分単純なマイクロ・モデリングの検討を支援する手っ取り早い計算を容易に書くことができる。人々が協調的に編集できるようにスプレッドシートをサーバに配置すると、係る編集により互いの編集が衝突する可能性がある。さらに、ユーザが実際のデータの左側または右側にある領域をスクラッチ・パッドとして使用することが一般的となっている。共同作業を行うとき、その情報も共有され、その情報は他のユーザに潜在的な「雑音」を与える。
【０００４】
従って、ちょうどスプレッドシートの残りの部分のように振る舞う（計算を可能とする、など）が、ワークブックの残りの部分を不可視またはアクセス不可能とする、「プライベートな」領域をもたせることは有利であるはずである。さらに、スクラッチ・パッドとして使用でき、スプレッドシートでの全機能（ｐｏｗｅｒ  ｏｆ  ｗｏｒｋｉｎｇ）を利用するが、データを残りのユーザに伝達することのない、プライベート領域をもたせることは有利であるはずである。
【発明の概要】
【０００５】
本明細書で開示する様々な態様では、スプレッドシートのような共有コンピュータ・アプリケーション内にプライベート領域（または１つの非限定的な例では、「シート」）を提供するためのシステム、方法、コンピュータ読取可能媒体などが開示される。例えば、１態様では、第１のクライアントと第２のクライアントがパブリック・シートにアクセスすることができ、さらに、（その第１と第２のクライアントのうち）第２のクライアントのみがプライベート・シートにアクセスすることができる。プライベート・シートはパブリック・シート内のコンテンツにアクセスするように構成されるが、パブリック・シートはプライベート・シート内のコンテンツにアクセスすることはできない。このように、ユーザは、パブリック・シート上で他のユーザと共同作業しながら、プライベート・シートを使用してプライベート・シート側で計算またはモデリングを行うことができる。
【０００６】
別の態様では、パブリック・シートに加えた変更を、パブリック・シート内のコンテンツに対して係る変更がプライベート・シートによって参照されている場合は、プライベート・シート内に反映することができる。例えば、パブリック・シート内で変化する値は、係る値がプライベート・シートによって更新用にマークまたは参照されている場合は、その変化に対応してプライベート・シート内で変化する。しかし、個々のユーザによるプライベートな変更は残りの１組のユーザによる公の共同作業に影響を及ぼすべきではないので、プライベート・シートに加えた変更はパブリック・シート内には反映されない。
【０００７】
さらに他の態様では、パブリック・シートは、第１および第２のクライアントにサービスを提供するように構成されたサーバ上に常駐することができる。従って、自身のプライベート・シートをもつクライアントは、パブリック・シートをホストするサーバを使用して協調的なセッションを行うことができる。しかし、代替的に、開示した主題を（クライアント・サーバ・ネットワークと対照的に）ピアツーピア・ネットワーク上で容易に実装することもできる。最終的な実装形態が何であれ、他の様々な細部を他の態様で使用することができる。例えば、（上述したように）プライベート・シートを第１のクライアントからアクセス不可能とし、さらに不可視とすることができる。アプリケーションに応じて、パブリック・シートとプライベート・シートは同じスプレッドシート・アプリケーションの一部であることができる。従って、パブリック・シートの値にアクセスしパブリック・シートの計算式にはアクセスしないように構成するといった、或る種の規則を課すことができる。
【０００８】
本発明の概要は、選択した概念を簡潔な形で導入するために与えたことに留意されたい。その概念は、発明を実施するための形態で後にさらに説明する。本発明の概要はクレーム主題の主要な特徴または本質的な特徴を特定しようとするものではなく、クレーム主題の範囲の決定を支援するために使用しようとするものでもない。
【０００９】
本発明の概要、ならびに後の発明を実施するための形態は、添付の図面と関連して読むとより良く理解される。本開示を例示するため、本開示の様々な態様が例示されている。しかし、本開示は示した特定の態様に限定されない。
【図面の簡単な説明】
【００１０】
【図１】サーバのような共通の集合場所を使用することによってクライアントがアプリケーション上で共同作業できる従来技術のシステムを示す図である。
【図２】シート内部のセルが他のセルに対する様々な参照、依存関係、およびアクセス・ポイントを生成できる、図１の追加の詳細な態様を示す図である。
【図３】ワークブック内部の幾つかのシートが、一部のクライアントには可視および／またはアクセス可能であるが、その他のクライアントには可視および／またはアクセス可能ではないことを示す図である。
【図４】クライアントが、自身のプライベート・シートと任意のパブリック・シートには変更を加えることができるが、互いのプライベート・シートには変更を加えることができないことを示す図である。
【図５】図４を参照して論じた変更がどのようにプライベート・シートとパブリック・シートの間に影響を及ぼすかを示す図である。即ち、（特に、図６と関連して）係るシート間の影響の流れがどの程度非対称であるかを示す図である。
【図６】図５と対照的に、プライベート・シート内の変更がパブリック・シート内のコンテンツに影響を及ぼさないことを示す図である。
【図７】典型的なネットワーク環境における、プライベート・シートの記憶位置と実行位置を示す図である。
【図８】（本明細書で開示した主題の他の態様で使用できる、クライアント・サーバ・アーキテクチャを有する図１に示す態様と対照的に）本明細書で開示した主題の１つの例示的且つ非限定的な態様に対するピアツーピア・ネットワークが関与するシナリオを示す図である。
【図９】本明細書で開示した主題の１つの例示的且つ非限定的な実装形態に対するフローチャートをブロック図の形で示す図である。
【図１０】本明細書で開示した主題の様々な態様に関して使用される例示的なＰＣを示す図である。
【図１１】スプレッドシート・アプリケーションを図９に示す複数のＰＣ間で共有できる例示的なネットワーク環境を示す図である。
【発明を実施するための形態】
【００１１】
導入および概要
発明を実施するための形態では、本明細書で開示する主題の例示的且つ非限定的な態様を詳細に説明する。しかし、本態様は、スプレッドシートとの関連でプライベート・シートに着目するが、「シート」または「スプレッドシート」に限定されない。「ページ」および「ワード・プロセッシング・プログラム」、または「パレット」および「描画／製図プログラム（ｄｒａｗｉｎｇ／ｄｒａｆｔｉｎｇ  ｐｒｏｇｒａｍ）」、等も容易に論ずることができたことが当業者には容易に理解されよう。本明細書で開示する主題は任意のコンピュータ・アプリケーションに関して適用可能である。しかし、簡略のため、および本明細書で開示する主題を効果的に具体化するため、以降ではスプレッドシート内のプライベート・シートの様々な態様を論ずる。
【００１２】
従って、本明細書ではコンピュータ・プログラム、即ち、スプレッドシート内のプライベート・シートを開示する。以下で詳細に論ずる１態様によると、第１のクライアントおよび第２のクライアントがパブリック・シートにアクセスすることができる。さらに、第２のクライアントのみがプライベート・シートにアクセスすることができる。プライベート・シートはパブリック・シート内のコンテンツにアクセスするように構成されるが、パブリック・シートはプライベート・シート内のコンテンツにはアクセスすることができない。このように、ユーザは、パブリック・シート上で他のユーザと共同作業しながら、プライベート・シートを使用してプライベート・シート側で計算またはモデリングを行うことができる。別の態様によると、やはり後で詳細に検討するが、パブリック・シートに加えた変更を、パブリック・シート内のコンテンツに対して係る変更がプライベート・シートによって参照されている場合は、プライベート・シート内に反映することができる。しかし、プライベート・シートに加えた変更はパブリック・シートには反映されない。パブリック・シートの値にアクセスするがパブリック・シートの式にはアクセスしないプライベート・シートのような、他の多数の特定の態様も開示されている。
【００１３】
スプレッドシート内のプライベート・シートの諸態様
スプレッドシートに関連して、「ワークブック」というアプリケーションは、１つまたは複数の「ワークシート」を含むファイルであることができ、これらの「ワークシート」を使用して様々な種類の関連情報を編成することができる。データを幾つかのワークシート上で同時に入力および編集することができ、２つ以上のワークシートのデータに基づいて計算を実行することができる。例えば、チャートを生成するとき、当該チャートをその関連するデータと同じワークシートに配置するか、別のチャート・シートに配置することができる。「シート」、「ワークブック」、等のような概念が与えられるならば、典型的なスプレッドシート・プログラムは様々な形態をとりうることが当業者には容易に理解されよう。
【００１４】
ここで最初の図に戻ると、図１はサーバのような共通の集合場所を使用することによってクライアントがアプリケーション上で共同作業できる従来技術のシステムを示す。具体的には、クライアントＡ  １００は幾つかのネットワークを介してサーバ１１０と通信することができる（本明細書で考慮するネットワークの種類に関しては後の広汎な議論を参照）。クライアントＡ  １００はＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）だけでなくハンドヘルド、携帯電話、等のような任意のコンピューティング装置でありうることができることに留意されたい（本明細書で考慮されるコンピューティング装置の種類に関する広汎な議論は後で行う）。
【００１５】
別のクライアント、即ち、クライアントＢ  １０５もこのサーバ１１０と通信することができる。従って、このように、クライアントＡ  １００とクライアントＢ  １０５はともに、サーバ１１０上で「出会う」ことによって、幾つかのプロジェクトで共同作業することができる。例えば、クライアントＡ  １００およびクライアントＢ  １０５は、サーバ１１０上で稼動しているアプリケーション１４５上で共同作業することができる。このアプリケーション１４５は、複数のワークブックと、これらのワークブックに付随する複数のシートを有することができる。具体的には、ワークブックＡ  １１５はシートＣ  １２０およびシートＤ  １２５を有することができ、ワークブックＢ  １３０はシートＥ  １３５およびシートＦ  １４０を有することができる。クライアントＡ  １００およびクライアントＢ  １０５はこれらのワークブック１１５、１３０、およびその中に常駐するシート１２０、１２５、１３５、１４０の何れかの上で一緒にまたは独立して作業することができる。
【００１６】
さらに、図２は図１の追加の詳細な態様を示す。この場合、シート内のセルは他のセルに対する様々な参照、依存関係、およびアクセス・ポイントを生成することができる。本明細書で使用する際、「参照」、「依存関係」、および「アクセス」は、セルが互いと有しうる様々な関係を広い意味で伝達するものと理解される。例えば、第１のシートの１つのセルの値は、第２のシートの第２のセルの値に依存することができる。同様に、セルは他のセルを参照して値（または他のコンテンツ、例えば、式）を求めることができる。何れにせよ、適切な文脈が与えられれば、これらの用語の意味するところは当業者には容易に理解されよう。換言すれば、それらの用語には本明細書ではどのような限定的な意味も与えられておらず、反対に、それらの用語は、スプレッドシートのようなコンピューティング・プログラムを使用している間にユーザが一般に関与する様々なシナリオを含んでいる。
【００１７】
次に、図３は、ワークブック内部の幾つかのシートが、一部のクライアントには可視および／またはアクセス可能であるが、その他のクライアントには可視および／またはアクセス可能ではないことを示す。図３において、クライアントＡ  １００はシートＣ１２０を見ることができ、且つ／またはシートＣ  １２０にアクセスすることができる。このシート１２０は、他のクライアントが見ることができ、且つ／またはアクセスできるので、「パブリック・シート」である。シートは（１）見えるかもしくは見えないか、且つ／または（２）アクセスできるかもしくはアクセスできないか、であることに留意されたい。前者のシナリオにおいて、他者にプライベート・シートを見ることを可能とする、即ち、係るプライベート・シートは手元にあるがユーザはそのコンテンツを読み取ることはできないという意味で見ることを可能とする一方で当該他者は当該プライベート・シートにアクセスできない、例えば編集できないとすることは、そもそも当該プライベート・シートを表示しないほどは有効でないかもしれない。しかし、そこまでするのはユーザのニーズに依存した実装上の些細な点である。後者のシナリオでは、「アクセス」は、データを読み書きできることを少なくとも伴うことと理解される。しかし、「アクセス」は、値および／または式をセルから入手できることを意味することもできる（がそれに限定されない）。
【００１８】
シートＣ  １２０と対照的に、シートＤ  １２５はクライアントＢ  １０５によってのみ可視であり、且つ／またはアクセス可能である。実際、クライアントＢ  １０５はシートＣ  １２０およびシートＤ  １２５の両方を見ることができ、且つ／またはそれらにアクセスすることができる。しかし、クライアントＡ  １００はシートＣ  １２０のみを見ることおよび／またはアクセスすることができる。点線３００、３０５はこの概念を示すものであり、内部の点線３００はクライアントＡ  １００の見える範囲および／またはアクセスをシートＣ  １２０に限定し、外側の点線１０５はクライアントＢ  １０５がシート１２０、１２５の両方を見ることおよび／またはアクセスすることを可能とするものである。
【００１９】
次に、図４は、クライアントが、自身のプライベート・シートと任意のパブリック・シートには変更を加えることができるが、他者のプライベート・シートには変更を加えることができないことを示す。図４では、クライアントＡ  １００は変更（即ち、書き込みのような修正）をシートＧ  １４５、そのクライアント１００のプライベート・シート、および、さらに、パブリック・シートＣ  １２０に加えることができる。同様に、クライアントＢ  １０５は自身のプライベート・シートＤ  １２５とそのパブリック・シートＣ  １２０に変更を加えることができる。しかし、クライアントＡ  １００はクライアントＢ  １０５のプライベート・シートＤ  １２５には変更を加えることができず、それと対応して、クライアントＢ  １０５はクライアントＡ  １００のプライベート・シートＧ  １４５に変更を加えることはできない。勿論、上で論じたように、係る限定は変更だけでなく、クライアントが他のクライアントのプライベート・ページを単純に読み出す能力や、係る他のクライアントがそもそもプライベート・ページをもっているという知識にまで及びうることは理解されよう。プライベート・シート１４５、１２５に対するセキュリティ・レベルおよびプライバシ・レベルをユーザ毎、および／またはシステム毎、および／またはアプリケーション仕様毎に設定することができる。何れの場合でも、点線の箱４００、４０５は、前と同様、クライアントの動作範囲を定めるためのものである。即ち、クライアントＡ  １００はシートＧ  １４５およびＣ  １２０上で動作可能で、クライアントＢ  １０５はシートＣ  １２０およびＤ  １２５上で動作可能である。
【００２０】
プライベート・シートが存続してもしなくてもよいことにも留意されたい。換言すれば、プライベート・シートは、ユーザが特定のタスク、セッション、またはワークブックを終えたときに削除されるスクラッチ・パッドそのものであってもよい。他方、十分に重要または関連性があると考えてプライベート・シートを残し、所与のワークブックの不可欠な部分として統合させてもよい。
【００２１】
次に、図５は、図４を参照して論じた変更がどのようにプライベート・シートとパブリック・シートの間に影響を及ぼすかを示す。即ち、図５は（特に、図６と関連して）係るシート間の影響の流れがどの程度非対称であるかを示す。これは、例えば、パブリック・シート内の変更をプライベート・ページへ浸透させたい場合はそのようにできるが、プライベート・シート内の変更をパブリック・シートへ浸透させることはできないことを意味する。図５は、ワークブックＡ  １１５のパブリック・シートＣ  １２０内のセルＡ  ５００が、その範囲内部にある別のセル（即ち、やはりシートＣ  １２０内部にあるセルＢ  ５０５）に対して（矢印[１]で示す）何らかの影響を及ぼしうることを示す。セルＢ  ５０５がセルＡ  ５００により影響を受ける場合、図５は、プライベート・シート内のセルＣ  ５１０もセルＢ  ５０５によって（矢印[２]で示す）影響を受けうることを示す。これは、例えば、セルＣ  ５１０がセルＢ  ５０５を参照して値を求めるときに生ずる可能性がある。
【００２２】
１つの具体的なシナリオを与えるため、セルＡ  ５００は最初に「１００」の値（図示せず）を有することができ、セルＢ  ５０５はこの値を取って２を掛けて「２００」を得る。さらに、セルＣ  ５１０は次いでこの値を取って他の何らかの値、例えば１を足して最終結果の「２０１」を得ることができる。ここで、セルＡ  ５００がその値を例えば「１０」に変更すると、セルＢ  ５０５はそれに応じてその値を「２０」に変更し、セルＣ  ５１０はその値を「２１」に変更するはずである。ここでの要点は、シートＣ  １２０のようなパブリック・シート内の変更が、シートＤ  １２５のような幾つかのプライベート・シート内の値に影響を及ぼしうる（が、シートＧ  １４５のような他のプライベート・シートには影響を及ぼさない）ことである。
【００２３】
図５と対照的に、図６はプライベート・シート内の変更がパブリック・シート内のコンテンツに影響を及ぼすことができないことを示す。従って、一部のユーザのプライベート・シートでありうるシートＧ  １４５は、シートＣ  １２０のようなパブリック・シートに影響を及ぼさない（か、またはパブリック・シート内のデータを変更することができない）ことが示されている。同様に、シートＣ  １２０上で共同作業している他のユーザの他のプライベート・シート（シートＤ  １２５）も、シートＣ  １２０内のコンテンツを変更することはできない。そのようにする様々な理由がありうる。その１つは、パブリック空間１２０内のデータが、複数人のユーザのうち１人のユーザだけがアクセスできる場所１４５、１２５からの変更を受けないとするものである。何れの場合でも、矢印は「Ｘ」を伴う（Ｘ→および←Ｘはこの概念を視覚的に示すものである）。この文脈で実行できないとした変更の種類には値だけでなく、式も含めることができることに留意されたい。
【００２４】
本明細書で開示した主題の別の態様において、図７は典型的なネットワーク環境における、プライベート・シートの記憶位置と実行位置を示す。図１を参照して既に論じたように、典型的な共同作業のシナリオでは、複数のクライアントが同じプロジェクトで共同作業できるようにするサーバをおくことができる。（パブリック・シートに加えて）プライベート・シートを導入すると、係るプライベート・シートを記憶し実行する場所に関する問題が生ずる。１つのシナリオでは、係るプライベート・シートはそのクライアント上でローカルに記憶および／または実行され、任意のパブリック・シートはサーバ側に記憶される。
【００２５】
ここで図７を参照すると、プライベート・シートであるシートＧ  １４５がクライアントＡ  ７００、即ち、ローカル・コンピューティング装置７２０でユーザ向けに記憶（または常駐および／もしくは実行）されていることが分かる。同様に、プライベート・シートＤ  １２５はクライアントＢ  ７１０、即ち、ローカル・コンピューティング装置７２０で別のユーザ向けに記憶（または常駐および／もしくは実行）されている。共同作業している任意のユーザ間で共有されたコンピューティング装置７２５、即ちサーバ７０５が、シートＣ  １２０のような任意のパブリック・シートを記憶および／または実行する。従って、要するに、この態様では、プライベート・シートはローカル・コンピューティング装置（クライアント）上で記憶および／または実行され、パブリック・シートは共有コンピューティング装置（サーバ）上で記憶および／または実行される。
【００２６】
しかし、これが本明細書で開示した主題の好ましい実施形態でありうるとしても、プライベート・シートを共有コンピューティング装置に記憶することも容易に想像することができる。しかし、係るシナリオでは、ユーザが互いのプライベート・シートを見、且つ／または修正できないことを保証するための安全な機構を実装する必要があるはずである。さらに、技術的に述べると、ピアツーピア・ネットワークでは、サーバが共同作業向けの集合場所として使用されない（が、サーバは確実にルーティング／ゲートウェイ機能として使用できる）はずなので、パブリック・シートはローカル・コンピューティング装置に記憶されるはずである。
【００２７】
図８は実際に、（本明細書で開示した主題の他の態様で使用できる、クライアント・サーバ・アーキテクチャを有する図１に示す態様と対照的に）本明細書で開示した主題の１つの例示的且つ非限定的な態様に対するピアツーピア・ネットワークが関与するシナリオを示す。図８では、プライベート・シートＧ  １４５をピア・コンピューティング装置Ａ  ８００上で常駐させ、または実行することができ、一方で、プライベート・シートＤ  １２５およびパブリック・シートＣ  １２０をともにピア・コンピューティング装置Ｂ  ８０５上で常駐させ、または実行することができる。勿論、本明細書で開示したプライベート・シートまたはパブリック・シートの主題に関して（クライアント・サーバおよびピアツーピアのシナリオに対して）他のアーキテクチャのシナリオが当業者には容易に理解されよう。例えば、ハイブリッド型ピアツーピア構成を使用してもよく、この場合、中央サーバはピア上の情報を保持し、その情報の要求に応答するが、ピアがどのようなリソースを共有したいかを中央サーバに知らせ、中央サーバに要求したピアが中央サーバの共有可能リソースを利用できるようにするために、ピアは利用可能なリソースをホストする責任を有する（中央サーバがその利用可能なリソースを有さないため）。
【００２８】
図９は、本明細書で開示した主題の１つの例示的且つ非限定的な実装形態に対するフローチャートをブロック図の形で示す。ブロック９００から始まり、パブリック・シートがサーバ上で保持され、第１のクライアントおよび第２のクライアントはパブリック・シートにアクセス可能である。次に、ブロック９０５で、プライベート・シートが第２のクライアント上で保持され、第１のクライアントと第２のクライアントのうち第２のクライアントのみがプライベート・シートにアクセス可能であり、プライベート・シートはパブリック・シート内のコンテンツにアクセスするように構成されるが、パブリック・シートはプライベート・シート内のコンテンツにアクセスすることはできない。これをプライベート・シートとパブリック・シートの間の非対称なアクセス可能性と考えることができる。
【００２９】
次に、ブロック９１０で、パブリック・シートに加えた変更は、パブリック・シート内のコンテンツに対する係る変更がプライベート・シートによって参照される場合、プライベート・シート内で更新される（が、上で詳細に説明したように、その反対は行われない）。このシナリオは図５を参照して上で既に論じた。この場合、パブリック・シート内の変更は、係る変更がセル・レベルで参照されていたので、プライベート・シートに浸透する。例えば、プライベート・シートのセルの値がパブリック・シートの値に依存するかもしれないので、パブリック・シート内のセルＸ内の変更をプライベート・シート内のセルＹ内で更新することができる。幾つかの態様では、係る参照を値のみに制限することができ、他の態様では係る参照は式を含むこともできる。さらに他の態様では、式を明示的に排除することができる。即ち、プライベート・シートはパブリック・シートの値にアクセスすることはできるが、パブリック・シートの式にはアクセスすることができない。
【００３０】
プライベート・シートに加えた任意の変更がパブリック・シートに浸透することを防ぐことができることは既に述べた。この概念は、ブロック９１０において、パブリック・シートに加えた変更「のみ」を更新し、逆は行わないことによって捉えられる。この一般的な保持および更新の機構を、ブロック９１０からブロック９００に戻る戻り矢印によって示されるように、連続的に実行することができる。最後に、パブリック・シートおよびプライベート・シートをスプレッドシート・アプリケーションの一部としてホストすることができるが、上で説明したように、係るホスティングはスプレッドシート・アプリケーションに限定されず、実際には、ページを有するワード・プロセッシング・プログラム、パレットを有する描画プログラム、等のような他の任意のコンピューティング・アプリケーションにも適用可能である。
【００３１】
スプレッドシートで使用するための例示的なＰＣおよびネットワークの態様
次に、図１０を参照すると、上で開示した主題の実装に関して使用するのに適した例示的なコンピューティング装置を表すブロック図が示されている。例えば、スプレッドシート内のプライベート・シートを提供するためのプロセスおよび方法を実行するコンピュータ実行可能命令を、図１０に示すコンピューティング環境内で常駐させ、且つ／または実行することができる。コンピューティング・システム環境２２０は適切なコンピューティング環境の１例に過ぎず、本明細書で開示した主題の使用範囲または機能範囲に関してどのような限定を示唆しようとするものではない。また、コンピューティング環境２２０が、例示的な動作環境２２０内に示した構成要素の任意の１つまたは組合せに関してどのような依存関係または要件を有するとも解釈すべきでない。
【００３２】
本明細書で開示した主題の態様は、他の多数の汎用目的または特殊目的のコンピューティング・システム環境または構成で動作可能である。この主題での使用に適しうる有名なコンピューティング・システム、環境、および／または構成の例には、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルド装置またはラップトップ装置、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能消費家電、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ、上記システムまたは装置の何れかを含む分散コンピューティング環境、等が含まれるがこれらに限らない。
【００３３】
本明細書で開示した主題の態様を、プログラム・モジュールのような、コンピュータによって実行されているコンピュータ実行可能命令の一般的な文脈で実装することができる。一般に、プログラム・モジュールは、特定のタスクを実施するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含む。本明細書で開示した主題の態様を、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実施される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラム・モジュールを、メモリ記憶装置を含むローカル・コンピュータ記憶媒体およびリモート・コンピュータ記憶媒体の両方に配置することができる。
【００３４】
本明細書で開示した主題の態様を実装するための例示的なシステムは、コンピュータ２４１の形で汎用目的のコンピューティング装置を含む。コンピュータ２４１の構成要素は、処理ユニット２５９、システム・メモリ２２２、およびシステム・メモリを含む様々なシステム構成要素を処理ユニット２５９に結合するシステム・バス２２１を含むことができるがこれらに限らない。システム・バス２２１はメモリ・バスまたはメモリ・コントローラ、周辺バス、様々なバス・アーキテクチャの何れかを使用したローカル・バスを含む数種のバス構造のうち何れかであることができる。限定ではなく例として、係るアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカル・バス、およびメザニン・バスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００３５】
コンピュータ２４１は一般に様々なコンピュータ読取可能媒体を含む。コンピュータ読取可能媒体は、コンピュータ２４１によりアクセスできる任意の使用可能媒体であることができ、揮発性および不揮発性媒体、取外し可能および取外し不能媒体の両方を含む。限定ではなく例として、コンピュータ読取可能媒体はコンピュータ記憶媒体と通信媒体を備える。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラム・モジュールまたは他のデータのような情報を記憶するための任意の方法または技術で実装した、揮発性および不揮発性媒体、取外し可能および取外し不能媒体の両方が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）もしくは他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報の記憶に使用できコンピュータ２４１によりアクセスできる他の任意の媒体が含まれるがこれらに限らない。通信媒体は一般にコンピュータ読取可能命令、データ構造、プログラム・モジュールまたは他のデータを搬送波または他の伝送機構のような変調データ信号で具現化し、任意の情報送達媒体を含む。「変調データ信号」という用語は、１つまたは複数のその特性を有するか信号内の情報をエンコードするように変換した信号を意味する。限定ではなく例として、通信媒体には有線ネットワークまたは直接配線接続のような有線媒体と、音響、ＲＦ、赤外線および他の無線媒体のような無線媒体が含まれる。上記の何れかから成る組合せもコンピュータ読取可能媒体の範囲に含まれるべきである。
【００３６】
システム・メモリ２２２はコンピュータ記憶媒体をＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）２２３およびＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）２６０のような揮発性および／または不揮発性メモリの形で含む。ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）２２４は、例えば起動中にコンピュータ２４１内部の要素間での情報伝送を支援する基本的なルーチンを含み、一般にＲＯＭ２２３に記憶される。ＲＡＭ２６０は一般に、処理ユニット２５９が即座にアクセス可能であるデータ、および／または処理ユニット２５９上で現在稼働中のプログラム・モジュールを含む。限定ではなく例として図１０はオペレーティング・システム２２５、アプリケーション・プログラム２２６、他のプログラム・モジュール２２７、およびプログラム・データ２２８を示す。
【００３７】
コンピュータ２４１は他の取外し可能または取外し不能のコンピュータ記憶媒体、揮発性または不揮発性のコンピュータ記憶媒体を含むこともできる。例としてのみ、図１０は取外し不能で不揮発性の磁気媒体を読み書きするハード・ディスク・ドライブ２３８、取外し可能で不揮発性の磁気ディスク２５４を読み書きする磁気ディスク・ドライブ２３９、およびＣＤ  ＲＯＭまたは他の光媒体のような取外し可能で不揮発性の光ディスク２５３を読み書きする光ディスク・ドライブ２４０を示す。例示的な動作環境で使用できる他の取外し可能または取外し不能のコンピュータ記憶媒体、揮発性または不揮発性のコンピュータ記憶媒体には、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、固体ＲＡＭ、固体ＲＯＭ、等が含まれるがこれらに限らない。ハード・ディスク・ドライブ２３８は一般にインタフェース２３４のような取外し不能メモリ・インタフェースを介してシステム・バス２２１に接続され、磁気ディスク・ドライブ２３９および光ディスク・ドライブ２４０は一般にインタフェース２３５のような取外し可能メモリ・インタフェースによってシステム・バス２２１に接続される。
【００３８】
上で論じ、図１０で示したドライブおよびその関連するコンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラム・モジュール、および他のデータをコンピュータ２４１のために記憶する。図１０では、例えば、ハード・ディスク・ドライブ２３８がオペレーティング・システム２５８、アプリケーション・プログラム２５７、他のプログラム・モジュール２５６、およびプログラム・データ２５５を記憶するとして示してある。これらの構成要素はオペレーティング・システム２２５、アプリケーション・プログラム２２６、他のプログラム・モジュール２２７、およびプログラム・データ２２８と同一であるかまたは異なることができることに留意されたい。オペレーティング・システム２５８、アプリケーション・プログラム２５７、他のプログラム・モジュール２５６にはここでは異なる番号を与え、最低限それらが異なるコピーであることを示す。ユーザはキーボード２５１および一般にはマウス、トラックボールまたはタッチ・パッドと呼ばれるポインティング・デバイス２５２のような入力装置を介してコンピュータ２４１にコマンドおよび情報を入力することができる。他の入力装置（図示せず）にはマイクロフォン、ジョイスティック、ゲーム・パッド、パラボラ・アンテナ、スキャナ、等を含めることができる。これらおよび他の入力装置はしばしば、システム・バスに結合されたユーザ入力インタフェース２３６を介して処理ユニット２５９に接続されるが、パラレル・ポート、ゲーム・ポートまたはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）のような他のインタフェースおよびバス構造によって接続してもよい。モニタ２４２または他種の表示装置も、ビデオ・インタフェース２３２のようなインタフェースを介してシステム・バス２２１に接続される。モニタに加えて、コンピュータはスピーカ２４４およびプリンタ２４３のような他の周辺出力装置も含むことができ、これらは出力周辺インタフェース２３３を介して接続することができる。
【００３９】
コンピュータ２４１は、リモート・コンピュータ２４６のような１つまたは複数のリモート・コンピュータへの論理接続を使用してネットワーク環境で動作することができる。リモート・コンピュータ２４６はパーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイスまたは他の共通ネットワーク・ノードであることができ、一般にはコンピュータ２４１に関して上述した要素の多くまたは全てを含むが、メモリ記憶装置２４７のみを図１０に示した。図１０に示した論理接続はＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）２４５とＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｏｗｏｒｋ）２４９を含むが、他のネットワークを含んでもよい。係るネットワーク環境は職場、企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットで一般的である。
【００４０】
ＬＡＮネットワーク環境で使用する場合、コンピュータ２４１はネットワーク・インタフェースまたはアダプタ２３７を介してＬＡＮ２４５に接続される。ＷＡＮネットワーク環境で使用する場合、コンピュータ２４１は一般にモデム２５０または、インターネットのようなＷＡＮ２４９上で通信を確立するための他の手段を備える。モデム２５０は内部または外部にあることができ、ユーザ入力インタフェース２３６または他の適切な機構を介してシステム・バス２２１に接続することができる。ネットワーク環境では、コンピュータ２４１に関して示したプログラム・モジュールまたはその一部をリモート・メモリ記憶装置に記憶することができる。限定ではなく例として、図１０はメモリ装置２４７上に常駐したリモート・アプリケーション・プログラム２４８を示す。示したネットワーク接続は例であって、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。
【００４１】
本明細書で説明した様々な技法を、ハードウェアもしくはソフトウェアで、または必要に応じてその両方の組合せと関連して実装できることは理解されよう。従って、本明細書で開示した主題の方法および機器、またはその或る特定の態様もしくは一部は、フロッピ・ディスク、ＣＤ−ＲＯＭ、ハード・ドライブ、または他の任意の機械読取可能記憶媒体のような有形媒体で具現化したプログラム・コード（即ち、命令）の形を取ることができ、当該プログラム・コードをコンピュータのようなマシンによりロードし実行すると、当該マシンは本明細書で開示した主題を実施するための機器となる。プログラム・コードをプログラム可能コンピュータ上で実行する場合、コンピューティング装置は一般にプロセッサ、プロセッサによって読取可能な記憶媒体（揮発性および不揮発性のメモリおよび／または記憶要素を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。１つまたは複数のプログラムは、例えば、ＡＰＩの利用、再利用可能コントロール、等を介して、本明細書で開示した主題に関連して説明した処理を実装または利用することができる。コンピュータ・システムと通信するために係るプログラムを高レベルの手続きまたはオブジェクト指向のプログラミング言語で実装することが好ましい。しかし、必要ならば、プログラム（複数可）をアセンブリ言語またはマシン語で実装することができる。何れの場合でも、言語はコンパイル言語またはインタプリタ言語であることができ、ハードウェア実装と組み合わせることができる。
【００４２】
例示的な実施形態は本明細書で開示した主題の態様を１つまたは複数のスタンドアロン・コンピュータ・システムと関連して利用することを参照したが、その主題はそのような利用に限定されず、ネットワークまたは分散コンピューティング環境のような任意のコンピューティング環境と関連して実装してもよい。さらに、本明細書で開示した主題の態様を複数の処理チップまたは装置で、またはそれらに渡って実装してもよく、同様に複数の装置に渡って記憶域を設けてもよい。係る装置はパーソナル・コンピュータ、ネットワーク・サーバ、ハンドヘルド装置、スーパー・コンピュータ、または自動車および航空機のような他のシステムに組み込んだコンピュータを含むことができる。
【００４３】
図１０で与えた一般的なフレームワークに従って構築できる多様なコンピューティング環境を考慮すると、本明細書で提供したシステムおよび方法は決して特定のコンピューティング・アーキテクチャに限定されると解釈することはできない。そうではなく、本明細書で開示した主題はどのような単一の実施形態にも限定されず、添付の特許請求に従った広さ、範囲で解釈されるべきである。
【００４４】
最後に、図１１を参照すると、上述の処理を実行するように多数のコンピュータ化されたプロセスを実装できる例示的なネットワーク型のコンピューティング環境が示されている。即ち、このネットワーク環境では、ユーザが上述の様々なプロジェクトで共同作業できるようにすることができる。例えば、図１１のネットワーク上の様々なクライアントが検索プロパティのフラットなリストの定義を使用および／または実装し、そのリストをリッチに構造化された型から抽出するような並列コンピューティングが、係るネットワーク環境の一部であることができる。ネットワークが任意のコンピュータまたは他のクライアント装置もしくはサーバ装置に接続することができ、または分散コンピューティング環境内で接続できることが当業者には理解されよう。この点で、任意数の処理ユニット、メモリ・ユニット、または記憶ユニット、および同時に発生する任意数のアプリケーションおよびプロセスを有する任意のコンピュータ・システムまたは環境が、提供されたシステムおよび方法と関連した使用に適していると考えられる。
【００４５】
分散コンピューティングでは、コンピュータのリソースとサービスを、それらを複数のコンピューティング装置およびシステムの間で交換することによって共有する。これらのリソースおよびサービスには情報の交換、ファイルのキャッシュ記憶およびディスク記憶が含まれる。分散コンピューティングはネットワーク接続を利用し、クライアントが自身の収集能力を利用して企業全体に利益をもたらすことを可能とする。この点で、様々な装置は、本明細書で説明した処理に関わるアプリケーション、オブジェクトまたはリソースを有することができる。
【００４６】
図１１は、例示的なネットワークまたは分散コンピューティング環境の略図を提供する。当該環境は、コンピューティング装置２７１、２７２、２７６および２７７、ならびにオブジェクト２７３、２７４、および２７５、ならびにデータベース２７８を含む。これらのエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８の各々はプログラム、メソッド、データ記憶、プログラム可能ロジック、等を備えるか、利用することができる。エンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８はＰＤＡ、オーディオ／ビデオ装置、ＭＰ３プレイヤ、パーソナル・コンピュータ、等のような同じまたは異なる装置の一部に及ぶことができる。各エンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８は通信ネットワーク２７０により別のエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８と通信することができる。この点で、任意のエンティティはデータベース２７８または他の記憶要素の維持と更新の責任を有しうる。
【００４７】
このネットワーク２７０はそれ自体、サービスを図３のシステムに提供する他のコンピューティング・エンティティを含むことができ、複数の相互接続されたネットワークを表すことができる。本明細書で開示した主題の態様によると、各エンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８は、ＡＰＩ、または他のオブジェクト、ソフトウェア、ファームウェアおよび／またはハードウェアを利用して１つまたは複数の他のエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８のサービスを要求できる離散的な機能プログラム・モジュールを含むことができる。
【００４８】
２７５のようなオブジェクトを別のコンピューティング装置２７６にホストできることは理解されよう。従って、図示した物理環境では接続された装置をコンピュータとして示すことができたが、係る説明は例示に過ぎず、ＰＤＡ、テレビ、ＭＰ３プレイヤ、等のような様々なデジタル装置、インタフェース、ＣＯＭオブジェクト、等のようなソフトウェア・オブジェクトを備える物理環境を代替的に図示または説明してもよい。
【００４９】
分散コンピューティング環境をサポートする様々なシステム、コンポーネント、およびネットワーク構成がある。例えば、コンピューティング・システムを有線または無線システムによって接続することができ、ローカル・ネットワークまたは広域分散ネットワークによって接続することができる。現在、多数のネットワークがインターネットに接続されており、広域分散のコンピューティングのためのインフラを提供し、多種多様なネットワークを含んでいる。係る任意のインフラは、インターネットに接続されていようとなかろうと、提供したシステムおよび方法と関連して使用することができる。
【００５０】
ネットワーク・インフラは、クライアント／サーバ、ピアツーピア、またはハイブリッドアーキテクチャのようなネットワーク・トポロジのホストを可能とすることができる。「クライアント」は、関連がない別のクラスまたはグループのサービスを使用するクラスまたはグループのメンバである。コンピューティングにおいては、クライアントはプロセス、即ち、大まかには別のプログラムによって提供されるサービスを要求する１組の命令またはタスクである。クライアント・プロセスは、他のプログラムまたはサービス自体に関する動作の詳細を何ら「知る」必要なしに、要求されたサービスを利用する。クライアント／サーバ・アーキテクチャ、特にネットワーク・システムでは、クライアントは通常、別のコンピュータ、例えばサーバによって提供される共有ネットワーク・リソースにアクセスするコンピュータである。図１１の例では、任意のエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８を、情況に応じてクライアント、サーバ、またはその両方と考えることができる。
【００５１】
サーバは通常、必ずしもそうではないが、インターネットのようなリモートまたはローカル・ネットワークを介してアクセス可能なリモート・コンピュータ・システムである。クライアント・プロセスは第１のコンピュータ・システムにおいてアクティブであることができ、サーバ・プロセスは第２のコンピュータ・システムでアクティブであることができ、通信媒体を介して互いと通信し、従って分散機能を提供し、複数のクライアントがサーバの情報収集機能を利用できるようにする。任意のソフトウェア・オブジェクトを複数のコンピューティング装置またはオブジェクトに渡って分散させることができる。
【００５２】
クライアント（複数可）およびサーバ（複数可）は、プロトコル層（複数可）によって提供される機能を利用して互いに通信する。例えば、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）、または「ウェブ」と関連して使用される共通プロトコルである。通常、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスのようなコンピュータのネットワーク・アドレスまたはＵＲＬ（Ｕｎｉｖｅｒｓａｌ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）のような他の参照を使用して、サーバまたはクライアント・コンピュータを互いに対して特定することができる。ネットワーク・アドレスをＵＲＬアドレスと称することができる。通信媒体を介して通信を提供することができる。例えば、クライアント（複数可）およびサーバ（複数可）を、大容量通信向けのＴＣＰ／ＩＰ接続（複数可）を介して互いに接続することができる。
【００５３】
図１１で提供した一般的なフレームワークに従って構築できる分散コンピューティング環境と、図１１のネットワーク環境のようなネットワーク環境におけるコンピューティングにおいて発生しうるさらなる多様性とを考慮すると、本明細書で提供したシステムおよび方法は決して特定のコンピューティング・アーキテクチャまたはオペレーティング・システムに限定されると解釈することはできない。そうではなく、本明細書で開示した主題はどの単一の実施形態にも限定されず、添付の特許請求の範囲に従って広範囲に解釈すべきである。
【００５４】
最後に、本明細書で説明した様々な技法を、ハードウェアもしくはソフトウェアで、または必要に応じてその両方の組合せに関連して実装できることは理解されよう。従って、本明細書で開示した主題の方法、コンピュータ読取可能媒体、およびシステム、またはその或る特定の態様もしくは一部は、フロッピ・ディスク、ＣＤ−ＲＯＭ、ハード・ドライブ、または他の任意の機械読取可能記憶媒体のような有形媒体で具現化したプログラム・コード（即ち、命令）の形を取ることができ、当該プログラム・コードをコンピュータのようなマシンによりロードし実行すると、当該マシンは本明細書で開示した主題を実施するための機器となる。
【００５５】
プログラム・コードをプログラム可能コンピュータ上で実行する場合、コンピューティング装置は一般にプロセッサ、プロセッサによって読取可能な記憶媒体（揮発性および不揮発性のメモリおよび／または記憶要素を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。コンピュータ・システムと通信するために、例えばデータ処理ＡＰＩ、等の使用を介して本発明のドメイン固有プログラミング・モデル態様の生成および／または実装を利用できる１つまたは複数のプログラムを高レベルの手続きまたはオブジェクト指向のプログラミング言語で実装することが好ましい。しかし、必要ならば、プログラム（複数可）をアセンブリ言語またはマシン語で実装することができる。何れの場合でも、言語はコンパイル言語またはインタプリタ言語であることができ、ハードウェア実装と組み合わせることができる。
【００５６】
最後に、本開示を好ましい態様に関して説明し、様々な図面で例示したが、他の同様な態様を使用してもよく、または、本開示から逸脱しない修正および追加を説明した態様に行って本開示と同じ機能を実施できることは理解されよう。例えば、本開示の様々な態様では、スプレッドシート内のプライベート・シートを論じた。しかし、これらの説明した態様と均等な他の機構も本明細書の教示内容によって考慮されている。従って、本開示はどの単一の態様にも限定されず、添付の特許請求の範囲に従って広範囲に解釈されるべきである。
【図１】
2010521743.tif 000003
【図２】
2010521743.tif 000004
【図３】
2010521743.tif 000005
【図４】
2010521743.tif 000006
【図５】
2010521743.tif 000007
【図６】
2010521743.tif 000008
【図７】
2010521743.tif 000009
【図８】
2010521743.tif 000010
【図９】
2010521743.tif 000011
【図１０】
2010521743.tif 000012
【図１１】
2010521743.tif 000013
【国際調査報告】
2010521743.tif 000014
2010521743.tif 000015