(57)【要約】クライアントデバイスにおける、ユーザによるオブジェクトベース文書の操作のためのシステムは、少なくとも１つのサーバコンピュータ（１７７）及びクライアントデバイス（１０１）を有する。サーバコンピュータは、ライブラリ（２０６）と、データベース（２０４）と、ガードアプリケーション（２０２）と、サーバアプリケーション（１３３Ｂ）と、を備える。システムは、操作アプリケーション（１３３Ａ）をさらに備え、操作アプリケーションによって、オブジェクトベース文書の初期表現が、ＧＵＩアプリケーションのグラフィカルユーザインターフェース（ＧＵＩ）内で形成される。操作アプリケーションは、検知プロセス（２１２）と、操作プロセス（２１４）と、を備える。【選択図】  図１Ａ
2017507388.tif 000002
【特許請求の範囲】
【請求項１】
クライアントデバイスにおける、ユーザによるオブジェクトベース文書の操作のためのシステムであって、
少なくとも１つのサーバコンピュータであり、
予め定義された実行可能な関数のライブラリ、
前記文書に関連付けられているオブジェクトを記憶するためのデータベース、
少なくとも１つのアクセス許可を前記文書の少なくとも一部に適用することを実行可能であるガードアプリケーションであって、前記少なくとも１つのアクセス許可が前記文書の作成者に関連付けられている、ガードアプリケーション、及び、
サーバアプリケーションであって、
前記クライアントデバイスからメッセージコールを受信し、
前記メッセージコールに関連付けられている前記ライブラリから、少なくとも１つの実行可能な関数を選択し、
前記選択された少なくとも１つの実行可能な関数を前記クライアントデバイスに伝達する、
ことを実行可能なサーバアプリケーション、
を備える、少なくとも１つのサーバコンピュータと、
前記クライアントデバイス上で実行可能なグラフィカルユーザインターフェース（ＧＵＩ）アプリケーションと持続的に連携して実行可能な操作アプリケーションであり、該操作アプリケーションによって、前記オブジェクトベース文書の初期表現が前記ＧＵＩアプリケーションのグラフィカルユーザインターフェース内で形成され、
該操作アプリケーションは、
検知プロセスであって、
前記ＧＵＩを介して、前記初期表現のオブジェクトと連携して前記ユーザの動作を検知し、
前記検知されたユーザの動作に応答して、複数の予め定義されたメッセージから少なくとも１つのメッセージを選択し、
前記少なくとも１つのメッセージをメッセージコールとして、前記少なくとも１つのサーバコンピュータに伝達する、
ように構成される、検知プロセス、及び、
操作プロセスであって、
前記初期表現の前記オブジェクトのコンテンツ又はプレゼンテーションのうち少なくとも１つを操作して、対応する更新後のオブジェクトベース文書に関連付けられる更新後の表現を形成するために、前記少なくとも１つのサーバコンピュータから受信される前記少なくとも１つの実行可能な関数を実行し、
前記ユーザによるさらなるアクセスのために、前記更新後の文書を少なくとも前記クライアントデバイスに記憶させ、
前記ユーザと前記作成者との間の前記少なくとも１つのアクセス許可によって定義されている関係に従属して、前記ユーザ及び前記作成者のうちの少なくとも一方によるアクセスのために、前記文書の前記オブジェクトが前記データベースに記憶されている、前記少なくとも１つのサーバコンピュータに、前記更新後の文書を記憶させる、
ように構成される、操作プロセス、
を備える操作アプリケーションと、
を具備するシステム。
【請求項２】
前記ユーザが、前記作成者である、請求項１に記載のシステム。
【請求項３】
前記少なくとも１つの実行可能な関数の実行が、前記ＧＵＩ内に一時メニューを提示する、請求項１に記載のシステム。
【請求項４】
前記検知プロセスが、前記一時メニューによって前記ユーザの動作を検知し、検知された前記ユーザの動作に応答して、前記少なくとも１つのメッセージを選択するように構成される、請求項３に記載のシステム。
【請求項５】
前記更新後の文書が、複数のオブジェクトとして記憶され、各オブジェクトが、少なくとも前記更新後の文書と関連付けられている少なくとも１つの属性を含む、請求項１に記載のシステム。
【請求項６】
各オブジェクトが、前記作成者及び前記ユーザのうち少なくとも一方と関連付けられている少なくとも１つの属性をさらに含む、請求項５に記載のシステム。
【請求項７】
各オブジェクトが、前記ガードアプリケーションによって適用される、前記作成者と前記ユーザとの間の前記アクセス許可の関係を定義する、少なくとも１つの属性をさらに含む、請求項５に記載のシステム。
【請求項８】
前記少なくとも１つのサーバコンピュータと通信を行う任意のユーザによるアクセスのために、前記アクセス許可が、前記更新後の文書を前記少なくとも１つのサーバコンピュータに記憶することを可能にする、請求項１に記載のシステム。
【請求項９】
前記複数の予め定義されたメッセージのそれぞれが、予め定義された実行可能な関数の前記ライブラリのうち１つに対応する、請求項１に記載のシステム。
【請求項１０】
前記文書が、複数のオブジェクトを含み、前記複数のうちのそれぞれのオブジェクトが、前記複数のうちの少なくとも１つの他のオブジェクトを、階層的な文書構造で参照する、請求項１に記載のシステム。
【請求項１１】
前記サーバアプリケーションが、
前記メッセージコールと関連付けられている、選択された前記少なくとも１つの関数の実行を試行し、
選択された前記少なくとも１つの関数の実行を試行した後で、成功か否かに関わらず、前記クライアントデバイスに応答を配信し、
必要であれば、選択された前記少なくとも１つの関数を前記クライアントデバイスに伝達する、
ことを実行可能である、請求項１に記載のシステム。
【請求項１２】
クライアントデバイスにおける、ユーザによるオブジェクトの操作のためのシステムであって、
少なくとも１つのサーバコンピュータであり、
予め定義された実行可能な関数のライブラリ、
オブジェクトを記憶するためのデータベース、
少なくとも１つのアクセス許可を少なくとも前記オブジェクトに適用することを実行可能であるガードアプリケーションであって、前記少なくとも１つのアクセス許可が前記オブジェクトの作成者に関連付けられている、ガードアプリケーション、及び、
サーバアプリケーションであって、
前記オブジェクトに関連付けられている前記クライアントデバイスからメッセージコールを受信し、
前記メッセージコールに関連付けられている前記ライブラリから、少なくとも１つの実行可能な関数を選択し、
前記選択された少なくとも１つの実行可能な関数を前記クライアントデバイスに伝達する、
ことを実行可能なサーバアプリケーション、
を備える、少なくとも１つのサーバコンピュータと、
前記クライアントデバイス上で実行可能なグラフィカルユーザインターフェース（ＧＵＩ）アプリケーションと連携して実行可能な操作アプリケーションであり、該操作アプリケーションによって、少なくとも１つのオブジェクトの初期表現が前記ＧＵＩアプリケーションのグラフィカルユーザインターフェース内で形成され、
該操作アプリケーションは、
検知プロセスであって、
前記ＧＵＩを介して、前記初期表現のオブジェクトと連携して前記ユーザの動作を検知し、
前記検知されたユーザの動作に応答して、複数の予め定義されたメッセージから少なくとも１つのメッセージを選択し、
前記少なくとも１つのメッセージをメッセージコールとして、前記少なくとも１つのサーバコンピュータに伝達する、
ように構成される、検知プロセス、及び、
操作プロセスであって、
前記オブジェクトのコンテンツ又はプレゼンテーションのうち少なくとも１つを操作して、前記オブジェクトの更新後の表現を形成するために、前記少なくとも１つの実行可能な関数を実行し、
前記ユーザと前記作成者との間の前記少なくとも１つのアクセス許可によって定義されている関係に従属して、前記ユーザ及び前記作成者のうちの少なくとも一方によるアクセスのために、前記更新後のオブジェクトが前記データベースに記憶される、前記少なくとも１つのサーバコンピュータに前記更新後のオブジェクトを記憶させる、
ように構成される操作プロセス、
を備える、操作アプリケーションと、
を具備するシステム。
【請求項１３】
前記サーバアプリケーションが、
前記メッセージコールと関連付けられている、選択された前記少なくとも１つの関数の実行を試行し、
選択された前記少なくとも１つの関数の実行を試行した後で、成功か否かに関わらず、前記クライアントデバイスに応答を配信し、
必要であれば、選択された前記少なくとも１つの関数を前記クライアントデバイスに伝達する、
ことを実行可能である、請求項１２に記載のシステム。
【請求項１４】
クライアントデバイスにおける、ユーザによるオブジェクトベース文書の操作のためのシステムであって、
少なくとも１つのサーバコンピュータであり、
予め定義された実行可能な関数のライブラリ、
前記文書に関連付けられているオブジェクトを記憶するためのデータベース、
少なくとも１つのアクセス許可を、前記文書の少なくとも一部に適用することを実行可能であるガードアプリケーションであって、前記少なくとも１つのアクセス許可が前記文書の作成者に関連付けられている、ガードアプリケーション、及び、
サーバアプリケーションであって、
前記クライアントデバイスからメッセージコールを受信し、
前記メッセージコールに関連付けられている前記ライブラリから、少なくとも１つの実行可能な関数を選択し、
前記選択された少なくとも１つの実行可能な関数を前記クライアントデバイスに伝達する、
ことを実行可能なサーバアプリケーション、
を備える、少なくとも１つのサーバコンピュータと、
前記クライアントデバイス上で実行可能なグラフィカルユーザインターフェース（ＧＵＩ）アプリケーションと持続的に連携して実行可能な操作アプリケーションであり、該操作アプリケーションによって、前記オブジェクトベース文書の初期表現が前記ＧＵＩアプリケーションのグラフィカルユーザインターフェース内で形成され、
該操作アプリケーションは、
検知プロセスであって、
前記ＧＵＩを介して、前記初期表現のオブジェクトと連携して前記ユーザの動作を検知し、
前記検知されたユーザの動作に応答して、複数の予め定義されたメッセージから少なくとも１つのメッセージを選択し、
前記少なくとも１つのメッセージに関連付けられている機能が前記クライアントデバイスにおいて利用可能かどうかをチェックし、
前記少なくとも１つのメッセージに関連付けられている前記機能が前記クライアントデバイスにおいて利用可能である場合に、前記少なくとも１つのメッセージをメッセージコールとして、前記少なくとも１つのサーバコンピュータに伝達する、
ように構成される、検知プロセス、及び、
操作プロセスであって、
前記少なくとも１つのメッセージに関連付けられている前記機能が前記クライアントデバイスにおいて利用可能である場合に、前記初期表現の前記オブジェクトのコンテンツ又はプレゼンテーションのうち少なくとも１つを操作して、対応する更新後のオブジェクトベース文書に関連付けられる更新後の表現を形成するために、前記クライアントデバイスにおいて利用可能な前記機能を実行し、
前記少なくとも１つのメッセージに関連付けられている前記機能が前記クライアントデバイスにおいて利用可能でない場合に、前記初期表現の前記オブジェクトのコンテンツ又はプレゼンテーションのうち少なくとも１つを操作して、対応する更新後のオブジェクトベース文書に関連付けられる更新後の表現を形成するために、前記少なくとも１つのサーバコンピュータから受信した前記少なくとも１つの実行可能な関数を実行し、かつ、前記少なくとも１つのサーバコンピュータから受信した前記少なくとも１つの実行可能な関数を前記クライアントデバイスに記憶させ、
前記ユーザによるさらなるアクセスのために、前記更新後の文書を少なくとも前記クライアントデバイスに記憶させ、
前記ユーザと前記作成者との間の前記少なくとも１つのアクセス許可によって定義されている関係に従属して、前記ユーザ及び前記作成者のうちの少なくとも一方によるアクセスのために、前記文書の前記オブジェクトが前記データベースに記憶されている、前記少なくとも１つのサーバコンピュータに、前記更新後の文書を記憶させる、
ように構成される、操作プロセス、
を備える操作アプリケーションと、
を具備するシステム。
【請求項１５】
オブジェクトベース文書の操作のためのクライアントデバイスであって、
プロセッサと、
メモリと、
前記メモリに記憶され、少なくとも１つのサーバコンピュータと通信を確立する前記プロセッサ上で実行可能であるグラフィカルユーザインターフェース（ＧＵＩ）アプリケーションあり、前記少なくとも１つのサーバコンピュータは、
予め定義された実行可能な関数のライブラリ、
前記文書に関連付けられているオブジェクトを記憶するためのデータベース、
少なくとも１つのアクセス許可を前記文書の少なくとも一部に適用することを実行可能であるガードアプリケーションであって、前記少なくとも１つのアクセス許可が前記文書の作成者に関連付けられている、ガードアプリケーション、及び、
サーバアプリケーションであって、
前記クライアントデバイスからメッセージコールを受信し、
前記受信したメッセージコールに関連付けられている前記ライブラリから、少なくとも１つの実行可能な関数を選択し、
前記選択された少なくとも１つの実行可能な関数を前記クライアントデバイスに伝達する、
ことを実行可能なサーバアプリケーション、
を備える、グラフィカルユーザインターフェース（ＧＵＩ）アプリケーションと、
前記プロセッサ上で前記ＧＵＩアプリケーションと持続的に連携して実行可能な操作プロセスであり、該操作プロセスによって、前記オブジェクトベース文書の初期表現が前記ＧＵＩアプリケーションのグラフィカルユーザインターフェース（ＧＵＩ）内で形成され、該操作アプリケーションは、
検知プロセスであって、
前記ＧＵＩを介して、前記初期表現のオブジェクトと連携してユーザの動作を検知し、
前記検知されたユーザの動作に応答して、複数の予め定義されたメッセージから少なくとも１つのメッセージを選択し、
選択された前記少なくとも１つのメッセージをメッセージコールとして、前記少なくとも１つのサーバコンピュータに伝達する、
ように構成される、検知プロセス、及び、
操作プロセスであって、
前記初期表現の前記オブジェクトのコンテンツ又はプレゼンテーションのうち少なくとも１つを操作して、対応する更新後のオブジェクトベース文書に関連付けられる更新後の表現を形成するために、前記少なくとも１つのサーバコンピュータから受信される前記少なくとも１つの実行可能な関数を実行し、
前記ユーザによるさらなるアクセスのために、前記更新後の文書を少なくとも前記メモリに記憶させ、
前記ユーザと前記作成者との間の前記少なくとも１つのアクセス許可によって定義されている関係に従属して、少なくとも前記ユーザによるアクセスのために、前記更新後の文書の前記オブジェクトが前記データベースに記憶されている、前記少なくとも１つのサーバコンピュータの前記データベースに、前記更新後の文書を記憶させる、
ように構成される操作プロセス、
を備える操作アプリケーションと、
を具備するクライアントデバイス。
【請求項１６】
サーバコンピュータであって、
プロセッサと、
メモリと、
予め定義された実行可能な関数のライブラリと、
文書に関連付けられているオブジェクトを記憶するためのデータベースと、
サーバアプリケーションであり、少なくとも１つのクライアントデバイスと通信を確立し、
前記サーバコンピュータと通信するクライアントデバイスからメッセージコールを受信し、
前記メッセージコールに関連付けられている前記ライブラリから、少なくとも１つの実行可能な関数を選択し、
前記選択された少なくとも１つの実行可能な関数を前記クライアントデバイスに伝達する、
ことを、前記プロセッサ上で実行可能なサーバアプリケーションと、
を具備しており、
前記サーバアプリケーションは、少なくとも１つのアクセス許可を前記文書の少なくとも一部に適用することを実行可能であるガードアプリケーションであって、前記少なくとも１つのアクセス許可が前記文書の作成者に関連付けられている、ガードアプリケーションを備えており、
前記少なくとも１つのクライアントデバイスは、前記少なくとも１つのクライアントデバイスでグラフィカルユーザインターフェース（ＧＵＩ）アプリケーションと持続的に連携して実行可能な操作プロセスであり、該操作プロセスによって、前記オブジェクトベース文書の初期表現が前記ＧＵＩアプリケーションのグラフィカルユーザインターフェース（ＧＵＩ）内で形成される、操作アプリケーションを備えており、
前記操作アプリケーションは、
検知プロセスであって、
前記ＧＵＩを介して、前記初期表現のオブジェクトと連携してユーザの動作を検知し、
前記検知されたユーザの動作に応答して、複数の予め定義されたメッセージから少なくとも１つのメッセージを選択し、
前記少なくとも１つのメッセージをメッセージコールとして、前記サーバコンピュータに伝達する、
ように構成される、検知プロセス、及び、
操作プロセスであって、
前記初期表現の前記オブジェクトのコンテンツ又はプレゼンテーションのうち少なくとも１つを操作して、対応する更新後のオブジェクトベース文書に関連付けられる更新後の表現を形成するために、前記サーバコンピュータから受信される前記少なくとも１つの実行可能な関数を実行し、
前記ユーザと前記作成者との間の前記少なくとも１つのアクセス許可によって定義されている関係に従属して、少なくとも前記ユーザによるアクセスのために、前記更新後の文書の前記オブジェクトが前記データベースに記憶されている、前記サーバコンピュータの前記データベースに、前記更新後の文書を記憶させる、
ように構成される操作プロセス、
を備える、サーバコンピュータ。
【請求項１７】
前記更新後の文書が、前記データベースに記憶され、少なくとも前記ユーザ及び前記作成者によるアクセスのために、前記更新後の文書の前記オブジェクトが、前記データベースに記憶される、請求項１５又は１６に記載の発明。
【請求項１８】
クライアントデバイスにおける、ユーザによるオブジェクトベース文書の操作のためのシステムであって、
少なくとも１つのサーバコンピュータであり、
複数の実行可能な関数、
少なくとも１つのアクセス許可を、前記文書の少なくとも一部に適用することを実行可能なガードアプリケーション、及び、
サーバアプリケーションであって、
前記複数の実行可能な関数のうち少なくとも１つの実行可能な関数を前記クライアントデバイスに伝達する、
ことを実行可能な、サーバアプリケーション、
を備える、少なくとも１つのサーバコンピュータと、
前記クライアントデバイス上で実行可能なグラフィカルユーザインターフェース（ＧＵＩ）アプリケーションと連携して実行可能な操作アプリケーションであり、該操作アプリケーションによって、前記オブジェクトベース文書の初期表現が前記ＧＵＩアプリケーションのグラフィカルユーザインターフェース内で形成され、
該操作アプリケーションは、
前記ＧＵＩを介して、前記初期表現のオブジェクトと連携して前記ユーザの動作を検知し、
検知された前記動作に基づいて、前記少なくとも１つの実行可能な関数を受信するために、前記少なくとも１つのサーバコンピュータと通信し、
前記初期表現の前記オブジェクトのプレゼンテーションを操作して、対応する更新後のオブジェクトベース文書に関連付けられる、更新後の表現を形成するために、前記少なくとも１つのサーバコンピュータから受信した前記少なくとも１つの実行可能な関数を実行し、
前記少なくとも１つのアクセス許可に従属して、少なくとも前記ユーザによるさらなるアクセスのために、更新された前記文書を、前記クライアントデバイス及び前記少なくとも１つのサーバコンピュータのうち少なくとも１つに記憶させる、
ように動作可能である、操作アプリケーションと、
を具備するシステム。
【発明の詳細な説明】
【関連出願】
【０００１】
[0001]本出願は、２０１４年１月７日に出願された、豪国仮特許出願第２０１４９０００３９号の優先権を主張するものであり、この特許出願の内容全体が、本明細書に組み込まれる。
【技術分野】
【０００２】
[0002]本発明は、一般には、電子文書及びソフトウェアオブジェクトの操作に関する。
【背景技術】
【０００３】
[0003]日々の業務や個人の作業で電子デバイス及び電子文書を使用することは、ますます普通のこととなっている。電子文書を操作するために、電子デバイスのユーザは、通常、特定の文書関連アプリケーションを電子デバイスにインストールしなければならない。さらに、ユーザは、所望の文書を操作するためにその文書関連アプリケーションを使用する特定の訓練を要するかもしれない。ユーザが、例えば、電子メールで電子文書を受信する場合、ユーザの電子デバイスには、受信した文書を正しく表示するために、受信した文書の種類と互換性があるアプリケーションをインストールしなければならない。
【０００４】
[0004]現在使用されている人気のある電子デバイスの範囲は、多様であり、拡大している。一般的な電子デバイスには、デスクトップコンピュータ、ラップトップ、ノートブック、タブレットデバイス、スマートフォンなどを含む。関連するオペレーティングシステム又はプラットフォームの数もまた、様々である。ポータブルデバイスの人気も高い。多くの職場や消費者が、１種類以上のデバイスを使用する。多くの場合、異なる種類のデバイスが、デバイス固有、又はプラットフォーム固有のバージョンの、適切な文書関連アプリケーションを必要とする。例えば、タブレットは、デスクトップコンピュータのオペレーティングシステムと互換性のあるアプリケーションのバージョンではなく、タブレットのオペレーティングシステムに固有のアプリケーションのバージョンを必要とすることがある。異なるデバイスのために異なるバージョンのアプリケーションを必要とすることは、文書を再生し又は操作したい人にとって苛立たしく及び／又は費用のかかることである可能性がある。
【０００５】
[0005]クラウドコンピューティング及び関連するオンラインアプリケーションは、いくつかの文書操作ツールを提供している。しかしながら、多くの消費者は、特に企業においては、重要文書又は機密文書を一般的なクラウドシステムに記憶させることを好まない。
【０００６】
[0006]さらに、文書の操作及び／又は再生に関係する多くのアプリケーションは、クラウドベースであろうとなかろうと、フォーマットのメニューが制約されて提供される。このようなメニューは、固定であることがあり、以て、提供される操作能力が限定され、又は必要な機能を見つける場所についてのアプリケーション固有の専門知識を必要とする。このようなことが、ユーザにとって苛立たしく、及び／又は時間がかかることである場合がよくある。さらに、正しいバージョンのアプリケーションが、適切な電子デバイスに対して使用されないと、あるデバイスと別のデバイスとの間で、文書が適切に再生しない可能性がある。定期的な更新が、様々なアプリケーションについて必要であることが多いとき、又は別のときに別のデバイスについて開発されているとき、メニューの位置が、デバイス固有のアプリケーションの間で変更される可能性がある。したがって、メニューを操縦して使用することは、より困難であり、文書の操作がユーザにとって時間がかかり苛立たしいものである可能性がある。
【０００７】
[0007]コンピュータの初心者ユーザが、彼ら自身の特定のユーザインターフェース及び動作モードをそれぞれ用いて、様々なアプリケーションに向き合っているときに、これらの問題は、悪化する。
【０００８】
[0008]これらの文書操作の問題に対処する必要がある。
【概要】
【０００９】
[0009]本開示の第１の態様によれば、クライアントデバイスにおける、ユーザによるオブジェクトベース文書の操作のためのシステムが提供される。当該システムは、予め定義された実行可能な関数のライブラリと、文書に関連付けられているオブジェクトを記憶するためのデータベースと、少なくとも１つのアクセス許可を文書の少なくとも一部に適用することを実行可能で、少なくとも１つのアクセス許可は、文書の作成者に関連付けられている、ガードアプリケーションと、クライアントデバイスからメッセージコールを受信し、メッセージコールに関連付けられているライブラリから少なくとも１つの実行可能な関数を選択し、少なくとも１つの実行可能な関数をクライアントデバイスに伝達することを実行可能なサーバアプリケーションと、を備える、少なくとも１つのサーバコンピュータと、クライアントデバイス上で実行可能なグラフィカルユーザインターフェース（ＧＵＩ）アプリケーションと持続的に連携して実行可能な操作アプリケーションと、を具備し、操作アプリケーションによって、オブジェクトベース文書の初期表現が、ＧＵＩアプリケーションのグラフィカルユーザインターフェース内で形成される。操作アプリケーションが、ＧＵＩを介して、初期表現のオブジェクトと連携してユーザの動作を検知し、検知したユーザの動作に応答して、複数の予め定義されたメッセージから少なくとも１つのメッセージを選択し、少なくとも１つのメッセージをメッセージコールとして、少なくとも１つのサーバコンピュータに伝達するように構成される、検知プロセスと、初期表現のオブジェクトのコンテンツ又はプレゼンテーションのうち少なくとも１つを操作して、対応する更新後のオブジェクトベース文書に関連付けられる更新後の表現を形成するために、少なくとも１つの実行可能な関数を実行し、ユーザによるさらなるアクセスのために、更新後の文書を少なくともクライアントデバイスに記憶させ、ユーザと作成者との間の少なくとも１つのアクセス許可によって定義される関係に従属して、作成者及びユーザのうちの少なくとも一方によるアクセスのために、文書のオブジェクトがデータベースに記憶されている、少なくとも１つのサーバコンピュータに、更新後の文書を記憶させるように構成される、操作プロセスと、を備える。
【００１０】
[0010]本開示のさらなる態様は、クライアントデバイスにおける、ユーザによるオブジェクトの操作のためのシステムを提供する。当該システムは、予め定義された実行可能な関数のライブラリと、オブジェクトを記憶するためのデータベースと、少なくとも１つのアクセス許可を少なくともオブジェクトに適用することを実行可能で、少なくとも１つのアクセス許可が、オブジェクトの作成者に関連付けられている、ガードアプリケーションと、オブジェクトに関連付けられているクライアントデバイスからメッセージコールを受信し、メッセージコールに関連付けられているライブラリから少なくとも１つの実行可能な関数を選択し、選択された少なくとも１つの実行可能な関数をクライアントデバイスに伝達することを実行可能なサーバアプリケーションと、を備える、少なくとも１つのサーバコンピュータと、クライアントデバイス上で実行可能なグラフィカルユーザインターフェース（ＧＵＩ）アプリケーションと連携して実行可能な操作アプリケーションと、を具備し、操作アプリケーションによって、少なくとも１つのオブジェクトの初期表現が、ＧＵＩアプリケーションのグラフィカルユーザインターフェース内で形成される。操作アプリケーションが、ＧＵＩを介して、初期表現のオブジェクトと連携してユーザの動作を検知し、検知したユーザの動作に応答して、複数の予め定義されたメッセージから少なくとも１つのメッセージを選択し、少なくとも１つのメッセージをメッセージコールとして、少なくとも１つのサーバコンピュータに伝達するように構成される、検知プロセスと、オブジェクトのコンテンツ又はプレゼンテーションのうち少なくとも１つを操作して、オブジェクトの更新後の表現を形成するために、少なくとも１つの実行可能な関数を実行し、ユーザと作成者との間の少なくとも１つのアクセス許可によって定義されている関係に従属して、ユーザ及び作成者のうちの少なくとも一方によるアクセスのために、少なくとも１つのサーバコンピュータに更新後のオブジェクトを記憶させ、更新後のオブジェクトが、データベースに記憶されているように構成される、操作プロセスと、を備える。
【００１１】
[0011]他の態様もまた、開示されている。
【図面の簡単な説明】
【００１２】
[0012]本発明の少なくとも１つの実施形態が、図面を参照してここで説明される。
【００１３】
【図１Ａ】[0013]図１Ａは、説明される構成が実施され得る、一般的なネットワーク型コンピュータシステムの概略的なブロック図を形成する。
【００１４】
【図１Ｂ】[0014]図１Ｂは、説明される構成が実施され得る、汎用コンピュータシステムの概略的なブロック図を形成する。
【００１５】
【図２Ａ】[0015]図２Ａは、オブジェクトの文書を操作するシステムのブロック図である。
【００１６】
【図２Ｂ】[0016]図２Ｂは、図２Ａのシステムにおける、異なるプロトコルのアプリケーションを示す。
【００１７】
【図３Ａ】[0017]図３Ａは、本開示による、文書を操作するプロセスを示す。
【図３Ｂ】[0017]図３Ｂは、本開示による、文書を操作するプロセスを示す。
【図３Ｃ】[0017]図３Ｃは、本開示による、文書を操作するプロセスを示す。
【図３Ｄ】[0017]図３Ｄは、本開示による、文書を操作するプロセスを示す。
【００１８】
【図４Ａ】[0018]図４Ａは、本開示による、ユーザが空文書を操作する間の、ＧＵＩウィンドウのシーケンスを示す。
【図４Ｂ】[0018]図４Ｂは、本開示による、ユーザが空文書を操作する間の、ＧＵＩウィンドウのシーケンスを示す。
【図４Ｃ】[0018]図４Ｃは、本開示による、ユーザが空文書を操作する間の、ＧＵＩウィンドウのシーケンスを示す。
【図４Ｄ】[0018]図４Ｄは、本開示による、ユーザが空文書を操作する間の、ＧＵＩウィンドウのシーケンスを示す。
【図４Ｅ】[0018]図４Ｅは、本開示による、ユーザが空文書を操作する間の、ＧＵＩウィンドウのシーケンスを示す。
【図４Ｆ】[0018]図４Ｆは、本開示による、ユーザが空文書を操作する間の、ＧＵＩウィンドウのシーケンスを示す。
【図４Ｇ】[0018]図４Ｇは、本開示による、ユーザが空文書を操作する間の、ＧＵＩウィンドウのシーケンスを示す。
【００１９】
【図５Ａ】[0019]図５Ａは、図４Ａ〜４Ｇの文書に関連付けられたオブジェクトの、表形式の表現を示す。
【図５Ｂ】[0019]図５Ｂは、図４Ａ〜４Ｇの文書に関連付けられたオブジェクトの、表形式の表現を示す。
【図５Ｃ−１】[0019]図５Ｃ−１は、図４Ａ〜４Ｇの文書に関連付けられたオブジェクトの、表形式の表現を示す。
【図５Ｃ−２】[0019]図５Ｃ−２は、図４Ａ〜４Ｇの文書に関連付けられたオブジェクトの、表形式の表現を示す。
【００２０】
【図６Ａ】[0020]図６Ａは、本開示による、ユーザが別のユーザによって作成されたウェブページ文書を操作する間のブラウザウィンドウのシーケンスを示す。
【図６Ｂ】[0020]図６Ｂは、本開示による、ユーザが別のユーザによって作成されたウェブページ文書を操作する間のブラウザウィンドウのシーケンスを示す。
【図６Ｃ】[0020]図６Ｃは、本開示による、ユーザが別のユーザによって作成されたウェブページ文書を操作する間のブラウザウィンドウのシーケンスを示す。
【００２１】
【図７Ａ】[0021]図７Ａは、本開示による、オブジェクトの階層構造を示す。
【図７Ｂ】[0021]図７Ｂは、本開示による、オブジェクトの階層構造を示す。
【００２２】
【図８Ａ】[0022]図８Ａは、本開示による、予め定義されたメッセージのリストを示す。
【図８Ｂ】[0022]図８Ｂは、本開示による、予め定義されたメッセージのリストを示す。
【００２３】
【図９Ａ】[0023]図９Ａは、文書又はオブジェクトの操作のためのメニュー例を示す。
【図９Ｂ】[0023]図９Ｂは、文書又はオブジェクトの操作のためのメニュー例を示す。
【図９Ｃ】[0023]図９Ｃは、文書又はオブジェクトの操作のためのメニュー例を示す。
【図９Ｄ】[0023]図９Ｄは、文書又はオブジェクトの操作のためのメニュー例を示す。
【図９Ｅ】[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]タスクが不成功に終わったことをステップ３９１０が判定する場合、ステップ３９１８で、この結果が、サーバ１７７のメモリに記憶され、ステップ３９２０で、結果が再び返される。タスクは、そのタスクが完了したか否かに従って、常に「成功」又は「失敗」のいずれかに関する結果で応答する。結果が成功である場合、応答は、情報又は要求された機能を含むこととなる。結果が失敗である場合、失敗についての理由が与えられる。
空文書の操作−文書作成
【００７５】
[0075]図４Ａは、クライアントデバイス１０１上のＧＵＩアプリケーション２１０の実行により、例えば、ディスプレイ１１４を介してレンダリングされる、ウィンドウ４００ａのビューを示す。ウィンドウ４００ａは、フレーム４０２を含み、フレーム４０２は、アプリケーションの名前４１２を含む。名前付きの文書が開かれている場合、文書名４１４が、文書名又はアドレスバー４０８内に表示される。複数の制御ボタン４０７は、ディスプレイ１１４内のウィンドウ４００ａの表現を制御するために提供される。スクロールバー４０６は、ウィンドウ４００ａ内に表現されているデータを操縦するために提供される。カーソル４１０がウィンドウ４００ａ内に表現され、ユーザは、マウスデバイス１０３を使用するなどして、カーソル４１０によってウィンドウ４００ａとのインタラクションを行うことができる。文書の表現は、フレーム４１２で囲まれた領域４０９内のウィンドウ４００ａにレンダリングされる。
【００７６】
[0076]ウィンドウ４００ａは、クライアントデバイス１０１がサーバ１７７と通信を確立すること（図３Ａのステップ３０６〜３１４）、及び、クライアントデバイス１０１上の操作アプリケーション１３３Ａのダウンロード及び／又は実行可能にすること（図３Ａのステップ３０２〜３０４）に続いて、レンダリングされる。多くの標準的な文書操作アプリケーションとは異なり、メニューバー、タブ又はオプションが、ウィンドウ４００ａ内に提供されない（いくつかのブラウザに関する「クローム（ｃｈｒｏｍｅ）」という）。
【００７７】
[0077]本明細書で提供される説明では、文書、及び文書の構成要素は、ソフトウェアオブジェクトによって表現される。図４Ａでは、文書は全く表示されていない。これは、ＧＵＩアプリケーション２１０によって表示されている空文書と考えられることができる。空の表示又は初期表示は、サーバアプリケーション１３３Ｂによって、デフォルトの文書オブジェクトに設定されてもよい。ユーザは、アクセス許可に従属して、領域４０９とのインタラクションによる文書又はオブジェクトの操作及び検知プロセス２１２の２段階動作インターフェースの実行のために基本メニューにアクセスしてもよい。いくつかの実装では、（例えば、図９Ａに示され、後で論じられる）基本メニューは、領域４０９に提示されるビュー４０１ａの空文書に関連付けられる、初期レイアウトに含まれてもよい。
【００７８】
[0078]図５Ａは、デフォルトの文書オブジェクトを表形式で表現する。後述するオブジェクトは、通常ＪＳＯＮフォーマットに符号化される。しかしながら、解釈及び比較を容易にするために、図５Ａ〜５Ｃのオブジェクトは、表形式で示される。あらゆるオブジェクトは、識別（ＩＤ）フィールドを有する。いくつかのオブジェクトは、種類、構成要素、項目、関連付け、分類、ユーザ、及び、任意選択的に、属性を含む、複数のコレクションフィールドを有してもよい。
【００７９】
[0079]種類及び属性などのコレクションフィールドは、ユーザ定義である。ユーザは、最も適切と考えられる種類、例えば、ページ又は送り状を指定する。属性は、名前／値の対であり、名前は、属性（例えば、大きさ、重さ）を説明し、値は、関連する値（例えば、１０、１００）を含む。ユーザ、ユーザグループ、及び関連するアクセス許可のコレクションも、ユーザによって定義され、オブジェクトのコレクションフィールドを使用してデータベース２０４に記憶されてもよい。いくつかの属性が、メニューの選択、例えば、オブジェクト生成、画像生成（Ｃｒｅａｔｅ  Ｏｂｊｅｃｔ  ｖ  Ｃｒｅａｔｅ  Ｉｍａｇｅ）に従って追加されてもよい。１つより多くのアクセス許可が、関連するユーザの数次第で与えられてもよい。
【００８０】
[0080]オブジェクト間の関係には、構成要素、関連付け、項目、及び分類の４つの種類がある。文書に関連付けられる２つのオブジェクト間に存在する関係は全て、これら４つの種類によってシステム２００内で表されることができる。構成要素は、他のオブジェクトを構成するオブジェクトである。項目は、オブジェクトの「コンテンツ」である。関連付けは、他のオブジェクトと緩やかな（「独立した」）繋がりを有するオブジェクトを定義する。例えば、ビューは、文書と関連付けられている。いくつかの場合には、文書は、「刊行物」と称される。分類は、オブジェクトが他のオブジェクトとして分類されることを可能にする。例えば、ページは、送り状でもあってもよい。
【００８１】
[0081]図５Ａの例では、空の表示は、ＩＤ「１２３４５６」及び種類「ページ」を有する、デフォルトの表示であることができる。（グローバル、ｒｗｘ）のユーザ属性は、グローバルユーザ、即ち、あらゆるユーザが、オブジェクト「１２３４５６」に、読み取り（ｒｅａｄ）、書き込み（ｗｒｉｔｅ）、及び実行（ｅｘｅｃｕｔｉｏｎ）アクセス権を有することを示してもよい。図５Ａのオブジェクト１２３４５６は、ウィンドウ４００ａにレンダリングされるビュー４０１ａに関連付けられている。
【００８２】
[0082]ビュー４０１ａに関連付けられるデータを、領域４０９にレンダリングするために受信すると、ＧＵＩアプリケーション２１０は、まず、ビュー又はレイアウト４０１ａに関するオブジェクトデータを受信し、続いて、ビュー内に含まれるオブジェクトデータを受信する。これは、図３Ａのステップ３０６〜３１４に対応する。典型的な文書操作アプリケーションとは異なり、ＧＵＩアプリケーション２１０は、メニューバーに、メニューの固定のセットを提示しない。むしろ、ユーザのインタラクション及び命令が、２段階動作インターフェースを介して、検知プロセス２１２によって解釈される。したがって、提示されるツールは、検知されるユーザのインタラクション及び操作プロセス２１４の動作によって実行されるメニューの機能に関連する。
【００８３】
[0083]ウィンドウ４００ａによって形成される表現のコンテンツとのユーザのインタラクションを検知すると（図３Ａのステップ３１６）、検知プロセス２１２は、必要な実行可能な関数が、ユーザデバイス１０１上で既に利用可能かをチェックする（図３Ａのステップ３１８）。例えば、検知プロセス２１２は、タスクのバッファ２１５がアプリケーション１３３Ａによって管理され、デバイス１０１の一時メモリ内に生成されているかどうかをチェックする。この例では、必要な実行可能な関数（基本メニュー）は利用できない。検知プロセス２１２は、検知された動作によって決まる、複数の予め定義されたメッセージから、少なくとも１つのメッセージを選択する。この例では、検知アプリケーション２１２が、領域４０９内で選択＋保持コマンドを検知するとき、検知アプリケーション２１２は、基本メニューのプレゼンテーションに関係する少なくとも１つのメッセージを選択する。選択された少なくとも１つのメッセージは、ステップ３２０毎に、メッセージコールとしてサーバアプリケーション１７７に伝達される。
【００８４】
[0084]サーバアプリケーション１３３Ｂは、メッセージコールを受信し、対応する実行可能な関数をライブラリ２０６から取得し、図３Ａのステップ３５０を実行する。「成功」若しくは「失敗」メッセージ又は必要な機能などの、試行された実行に関する応答が、図３Ｂの応答３２２の通り、デバイス１０１に送信される。応答３２２を受信すると、検知プロセス２１２は、検知されたインタラクションについてサーバアプリケーション１３３Ｂから受信した応答が、オブジェクトの取得若しくは保存、又はアクセス許可の適用のための機能に関係するかをチェックする（図３Ａのステップ３２４）。この例では、そのようなものは必要ない。
【００８５】
[0085]ライブラリ２０６のタスクのそれぞれは、検知プロセス２１２の予め定義されたメッセージのうち少なくとも１つ、例えば、図８Ａ及び８Ｂのメッセージと関連付けられ、メッセージコールに従って選択される。この例では、タスクは、クライアントデバイス１０１で実行される必要があり、選択されたタスクは、図３Ａのステップ３２２の通り、クライアントデバイス１０１に伝達される。タスクは、コンテンツの取得、送信、若しくは保存、又はアクセス許可の適用（ステップ３２４）よりもむしろ、メニュー機能の実行に関係するため、操作プロセス２１４は、クライアントデバイス１０１のディスプレイ上にメニュー４２０をレンダリングするための、選択された実行可能な関数を実行し、図４Ｂの操作されたプレゼンテーション４００ｂをレンダリングすることとなる。これは、図３Ａのステップ３３０に関係する。メニューは文書の一部を形成せず、むしろ、性質上一時的なものであるため、領域４０９Ｂ内にレンダリングされる文書に関連付けられているオブジェクトは、影響を受けない。一方、この時点で、ユーザがレイアウトを保存した場合、メニュー４２０は、レイアウトに含まれることとなる。サーバ１７７から応答３２２とともに受信される実行可能な機能は、ユーザデバイス１０１のローカルメモリに一時的に記憶される。機能は、操作アプリケーション１３３Ａによって管理されるバッファ２１５に記憶される。
【００８６】
[0086]図４Ｃでは、ユーザは、選択コマンド及びカーソル４１０を使用してメニュー４２０の「要素マネージャ（Ｅｌｅｍｅｎｔ  Ｍａｎａｇｅｒ）」オプションを選択した。検知プロセス２１２は、このインタラクションを検知し、必要な実行可能な関数が、クライアントデバイス１０１で利用可能かをチェックする。この例では、要素マネージャの機能は、利用できない。検知プロセス２１２は、上述したのと類似の方法で、対応するメッセージコールをサーバ１７７に伝達する。「要素マネージャ」ツールは、以前に提供されておらず、又はしたがってバッファ２１５に一時的に記憶されていないため、上述したのと類似の方法で、適切なメッセージコールが、サーバ１７７に送信される。サーバアプリケーション１３３Ｂは、それに応じてプロセス３５０を実行し、許可があれば、要求された機能が、メッセージ内においてクライアントデバイス１０１に送信される。図４Ｃに示すように、操作プロセス２１４は、ＧＵＩアプリケーション２００及びクライアントデバイス１０１の４００ｃの表現にさらなるメニュー４２４をレンダリングするための機能を実行する。ユーザは、メニュー４２４から「ページ」オプションを選択し、ウィンドウ４００ｃの表示領域４０９上をクリックする。検知プロセス２１２は、このインタラクションを検知し、必要な実行可能な機能が利用可能かをチェックし、ページを生成するための対応するメッセージを選択し、それに応じてサーバ１７７にメッセージコールを伝達する。サーバアプリケーション１３３Ｂは、ステップ３５０を実行し、適切な機能をクライアントデバイス１０１に伝達する。操作プロセス２１４は、表示領域４０９にページ４２２ｃの概要をレンダリングするために、受信した機能を実行する。
【００８７】
[0087]この段階で、ユーザが、作成したページ４２２ｃを保存する場合、（そのアクセス許可があれば）図３Ａのステップ３１８から３２８を通じて実行することとなり、図３Ｃのステップ３７０８の通り、オブジェクト４２２ｃは、サーバアプリケーション１７７のデータベース２０４において作成されることとなる。オブジェクト４２２ｃの表現は、図５Ｂでは、表形式で提供されている。さらに、インターフェースを使用して、ユーザは、「送り状」など、オブジェクトについての分類を追加してもよく、Ａ４用紙の高さなどの属性を提供してもよい。この例では、ユーザは、ユーザ１である。ユーザ１は、オブジェクト４２２ｃの作成者として、ガードアプリケーション２０２によって、オブジェクト４２２ｃに対するアクセスを与えられた唯一のユーザである。ガードアプリケーション２０２は、ユーザ１に、オブジェクト４２２ｃへのフルアクセス「ｒｗｘ」（読み取り、書き込み、実行）を与える。
【００８８】
[0088]検知プロセス２１２がメッセージコールを準備するためにその中から選択する、予め定義されたメッセージは、サーバアプリケーション１３３Ｂによって提供されるメニューを通じて、階層的にアクセスされる。メニューのプレゼンテーションは、従来の操作アプリケーションの文書の方法で、正しい機能タブ又はボタンを位置させる必要がユーザにないことを意味する。例えば、マイクロソフトワード（商標）又はグーグルドックス（商標）では、ツールバーは、固定の機能で表示される。
【００８９】
[0089]現在説明している構成では、ツールは、階層的メニュー構造を一時的に表示すること、及び選択されたオブジェクトに対して選択されたメニューオプション（すなわち、メニューオプションに続いて選択されたオブジェクト又はコンテンツ）を実行することによって提供される。したがって、ユーザは、アプリケーション２１０の正しいタブやボタンを見つける必要はない。その代わりに、ユーザは、選択したもののように、メニューを通じて単純に操縦してもよい。このように、予め定義されたグループのメッセージが、文書の操作に関する強力な機能を提供する。メニューオプションの例は、図９Ａ〜９Ｅで提供される。図９Ａのメニュー９００は、「基本メニュー」又は「マルチ機能ツール」のサンプルを示す。マルチ機能ツール９００は、サーバ１７７とのインタラクションの必要がない、いくつかの基本操作機能、及びサーバ１７７から提供される機能を必要とするツールにアクセスする手段を提供することが好ましい。
【００９０】
[0090]マルチ機能ツール９００によって示される、「Ｃｏｐｙ」、「Ｐａｓｔｅ」及び「Ｂｒｉｎｇ  ｆｏｒｗａｒｄ」などのいくつかのオプションは、従来の文書操作アプリケーションでのそのような機能に類似の方法で動作し、サーバアプリケーション１３３Ｂのプロセス３５０の実行を必要としない。マルチ機能ツール９００の他のオプションは、ユーザが、さらなるメニュー、例えば、選択後の図９Ｂのメニューを用いて提示されていることに関係する。関連する機能が、既にバッファ２１５に記憶されていない限り、そのようなメニューにアクセスするユーザのために、プロセス３５０の実行が要求されることとなる。
【００９１】
[0091]図９Ｂのメニューは、オブジェクト操作用のツールに関係する。例えば、オプション「Ｅｌｅｍｅｎｔ  Ａｌｉｇｎｅｒ」は、サーバアプリケーション１７７でプロセス３５０を実行することなく、文書の別のオブジェクトと相対的に１つのオブジェクトのプレゼンテーションを整列するために使用されてもよい。（結果として生じる文書が保存された場合、プロセス３５０が、そのプレゼンテーションを保存する必要があることになる。）図９Ｂのメニューの他のオプション、例えば、「Ｅｌｅｍｅｎｔ  Ｍａｋｅｒ」、「Ｐａｇｅ  Ｍａｎａｇｅｒ」及び「Ｅｌｅｍｅｎｔ  Ｅｒａｓｅｒ」は、さらなるメニューである、図９Ｃ、図９Ｄ及び図９Ｅそれぞれのメニューを提供する。
【００９２】
[0092]図９Ｃのメニューは、オブジェクトの生成に関連する機能を提供する。例えば、「Ｔｅｘｔ  Ｆｒａｍｅ」は、文字オブジェクトに対してフレームを生成するユーザによって使用される。図９Ｄのメニューは、ページを管理するための機能に関係し、例えば、「ｓａｖｅ」は、作成者ではない人々のためのアクセス許可を用いて、ページオブジェクトをデータベース２０４に記憶するために使用される。「Ｓａｖｅ  ａｓ  Ｍｉｎｅ」は、作成者のみに提供されるアクセス許可を用いて、ページをデータベース２０４に記憶する。図９Ｅのメニューは、オブジェクト、例えば、文字又は画像オブジェクトを、ページから除去することに関係する。
【００９３】
[0093]このように、機能の更新は、メッセージの追加、及びアプリケーション１３３Ａへの追加、並びにライブラリ２０６の対応するタスクの追加によって行われることができる。したがって、ユーザ又はクライアントデバイス１０１が、任意の更新をインストールすること、又はメニューの既知のレイアウトを変更することなく、サーバ１７７において、メニューが変更又は拡張されてもよい。
【００９４】
[0094]図４Ｃに戻って、ここでは、ユーザが、ページ４２２Ｃに画像を追加したいと考えている。ユーザは、「ｃｒｅａｔｅ  ｉｍａｇｅ」オプションを定義する図４Ａ〜４Ｃに関して説明されるのと同様の方法で、クライアントデバイス１０１によって提示されているＧＵＩ２１０内で操作し（図２Ａ）、サーバアプリケーション１３３Ｂによって提供されるメニューを通じて操縦する。これに応答して、サーバアプリケーション１３３Ｂは、図３Ｃのステップ３７０８の通り、画像オブジェクトを生成するためにプロセス３５０を実行する。プロセス３５０の実行後にクライアントデバイス１０１によって受信される応答は、操作プロセス２１４によって解釈されて、前述した方法で、図４Ｄに示される空の画像オブジェクト４２８をレンダリングする。空の画像オブジェクト４２８がレンダリングされているウィンドウ４００ｄのビューが、ビュー４０１ｄである。図５Ｃ−１及び５Ｃ−２は、ビュー４０１ｄに関連付けられるオブジェクトを表現し、ページ４２２ｄは、この段階で保存されるべきである。図５Ｃ−１のオブジェクト４２８は、種類「画像」を有し、ビュー４０１ｄに関連付けられる。さらに、ページ４２２ｄ（図５Ｃ−２）に対応するオブジェクトは、ここでは、構成要素として図５Ｃ−１のオブジェクト４２８を含む。更新後のディスプレイは、図３Ａのステップ３３２毎に、デバイス１０１の一時メモリ内のバッファ２１５に保存される。サーバアプリケーション１３３Ｂから受信した機能は、デバイス１０１の一時メモリ内のバッファ２１５に記憶される。
【００９５】
[0095]次に、ユーザは、画像オブジェクト４２８により表示するための画像を追加する。いくつかの場合には、ユーザが、メモリ１０６（図２Ａ）から必要な画像を選択できるように、画像オブジェクト４２８は、クライアントデバイス１０１のディレクトリを開くための選択ボタンを表示することとなる。この例では、ユーザは、所望の画像を得るために、メニューの表示によって、及び、図４Ａ〜４Ｃと同様の方法で、サーバアプリケーション１３３Ｂにより提供されるメニューを操縦することによって、クライアントデバイスの指示１０１を取得してもよい。
【００９６】
[0096]図４Ｅは、画像４３２が画像領域４２８に追加された、ＧＵＩアプリケーションウィンドウ４００ｅを示す。これを達成するために、サーバアプリケーション１３３Ｂは、（ｉ）データベース内の選択された画像（ｌｏｇｏ．ｊｐｅｇ）のコピーと、及び（ｉｉ）画像オブジェクト４２８に包含するためにその画像に関連付けられたオブジェクトと、を生成する。或いは、画像４３２は、図４Ｅのプレゼンテーション４００ｅに、オブジェクトとして直接追加され得る。この場合には、文書４２２ｅが保存された場合、画像についての単一のオブジェクトが、データベース２０４において生成されることとなる。
【００９７】
[0097]次いで、図４Ｆのウィンドウ４００ｆに示すように、ユーザは、文字オブジェクト４３６をページ４２２ｅに追加して、更新されたページ４２２ｆを生成することに進む。文字オブジェクトの生成及び表示に関連付けられている機能が、サーバアプリケーション１３３Ｂから（図４Ｄの画像４２８を生成するための機能の取得と同様の方法で、）取得され、図３Ａのステップ３３２の通り、バッファ２１５に保存される。ユーザが、更新後のビュー４０１ｆ（図４Ｆ）を保存する場合、種類「文字」のオブジェクト４３６が、オブジェクトデータベースにおいて生成される。次いで、対応する文字オブジェクト４３７は、ユーザのインタラクションに従って生成され、図４Ｆのオブジェクト４３６の関連物である。検知プロセス２１２（図２Ａ）が、図３Ａのステップ３１６で、図４Ｆの新たな文字オブジェクト４３７が必要であることを検知すると、バッファ２１５は、利用可能な機能についてチェックされる（図３Ａのステップ３１８）。この機能は、オブジェクト４３６（図４Ｆ）の生成からバッファ２１５に記憶されるため、図３Ａのプロセス３００は、ステップ３１８（図３Ａ）からステップ３２４（図３Ａ）に進んで、ユーザが、この点について許可を有することをチェックする。対応する文字オブジェクト４３７（図４Ｆ）が生成され、ユーザによる命令の後、オブジェクト４３６（図４Ｆ）に関連付けられる属性とともに提供される。オブジェクト４３７に記憶されるデータは、オブジェクト４３６（図４Ｆ）の文字コンテンツ、及びフォントの種類などの属性を含んでもよい。画像４３２（図４Ｅ）が図４Ｅの画像領域４２８と関係するのと同様の方法で、文字オブジェクト４３７は、図６Ｆの文字オブジェクト４３６の文字コンテンツと関係する。
【００９８】
[0098]ユーザは、同様にして、顧客の名前及び住所を示す文字オブジェクト４４０（図４Ｇ）及び課金データ４４１のための文字オブジェクト（図４Ｇ）などの、いくつかのさらなる項目を追加して、更新されたページ４２２ｇを生成することに進む。ページ４２２ｇをレンダリングしたものが、図４Ｇのウィンドウ４００ｇに示される。項目の文字コンテンツ４４０（図４Ｇ）は、上記画像オブジェクトと同様の方法で、サーバ１７７に記憶されたオブジェクトから得られてもよい。或いは、タスクは、図２Ａのデータベース２０６の他の関連するオブジェクトの適切な属性に対してユーザによって指示されると、動的に文字を入力するように定義されてもよい。
【００９９】
[0099]ユーザ１は、上述のように２段階動作インターフェースを介して、メニューを操縦することにより、ユーザ２、例えば、文書４２２ｇ（図４Ｇ）の受取人のためにアクセス許可を追加する。それに応じて、ユーザ２が、文書及び４２２ｇ（図４Ｇ）のオブジェクトコンテンツの読み出しのみができるように、ガードアプリケーション２０２は、図３Ｄのステップ３７０でのように、ユーザのインタラクションに従って、「読み取りのみ」許可「ｒ−−」を文書４２２ｇ（図４Ｇ）に適用するように、データベース動作を実行する。
以前に作成された文書の操作
【０１００】
[00100]アクセス許可によって、ユーザと作成者との間にそのような関係がもたらされる場合、ユーザが作成者であるかないかに関わらず、アプリケーション１３３Ａ及び１３３Ｂは、以前作成された文書を操作するためにも使用されることできる。
【０１０１】
[00101]図６Ａは、ＧＵＩアプリケーション２１０が、インターネットエクスプローラ（Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ）（商標）（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．）、ファイアフォックス（Ｆｉｒｅｆｏｘ）（商標）（Ｍｏｚｉｌｌａ  Ｃｏｒｐ．）、サファリ（Ｓａｆａｒｉ）（商標）（Ａｐｐｌｅ  Ｃｏｒｐ．）、オペラミニ（Ｏｐｅｒａ  Ｍｉｎｉ）（商標）（Ｏｐｅｒａ  Ｓｏｆｔｗａｒｅ  ＡＳＡ）などの、一般的なブラウザアプリケーションである例を示す。ブラウザウィンドウ６００ａ（図６Ａ）は、図２ＡのＧＵＩアプリケーション２１０、この例では、ブラウザの実行によってクライアントデバイス１０１上にレンダリングされる。図６Ａに示されるＧＵＩ２１０のウィンドウ６００ａは、ブラウザウィンドウの通常の特徴を有し、ブラウザ名６０２、ＵＲＬ６０８、制御ボタン６０６及びスクロールバー６１０を含む。ブラウザウィンドウ６００ａ（図６Ａ）は、「ファイル」、「編集」、「ビュー」、「履歴」、「ブックマーク」、「ツール」及び「ヘルプ」などの、典型的なブラウザメニューのボタン６６６を有する。図６Ａのブラウザウィンドウ６００ａは、文書に関連付けられるビュー６０１ａをレンダリングし、以下、これを「文書６０１ａ」という。文書６０１ａは、あるユーザ、ユーザ１によって作成されたもので、図６Ａに示すように、文字／ロゴオブジェクト６１２、文字オブジェクト６１４及び画像オブジェクト６１８の３つのオブジェクト項目を有する。図６Ａのボタン６６６によって提供されるようなメニュー、又はクラウドベースの文書編集アプリケーションに典型的なメニューは、この例では、文書６０１ａを操作するのに使用されない。図２Ａのブラウザ２１０は、ＧＵＩ表示領域として、及びサーバ１７７と通信する手段としてのみ、使用される。例えば、ボタン６６６の「ファイル」オプション（図６Ａ）を介してアクセスされる「印刷」コマンドは、ＧＵＩアプリケーション２１０によって解釈されるコンテンツを印刷することになるだけであるため、文書６０１ａ（図６Ａ）に関連付けられるコンテンツを印刷するためには使用されることはない。その代わりに、本開示による文書６０１ａ（図６Ａ）を印刷するために、ユーザは、サーバアプリケーション１３３Ｂから対話的に取得され、サーバアプリケーション１３３Ｂによって提供されるメニューの「印刷」オプション（例えば、図４Ｂのメニュー４２０）を使用することとなる。文書の別のページは、印刷用にページが分離されるように、サーバアプリケーション１３３ＢによってＪＳＯＮフォーマットからＡｄｏｂｅのｐｄｆフォーマットにそれぞれ変換されることとなる。メニュー項目及び機能の選択は、図１Ｂのディスプレイ１１４にレンダリングされるコンテンツとのインタラクションを介したユーザ主導である。これらは、図３Ａのステップ３１６で検知されるユーザのインタラクションに従って、サーバ１７７から提供される。
【０１０２】
[00102]この例では、図６Ａの文書６０１ａに関連付けられている文書オブジェクトは、あるユーザ、ユーザ２によってアクセスされており、ユーザ２は、作成者ユーザ１と、文書６０１ａに対してフルアクセス「ｒｗｘ」を定義する関係を有する。
【０１０３】
[00103]一方、図６Ａに戻って、ユーザ２は、文書６０１ａを変更する全ての許可を有しており、文書６０１ａを変更したいと考えている。ユーザ２は、２段階動作インターフェースを使用して、サーバアプリケーション１３３Ｂによって提供されるメニューを操縦する。ユーザは、「画像のサイズ変更」ツールを見つける。検知動作２１２（図２Ａ）は、図３Ａのステップ３１６に関して論じたのと同様の方法で、インタラクションを検知し、必要な機能が利用可能かをチェックし、利用可能でない場合、サーバ１７７にメッセージコールを送信する。サーバアプリケーション１３３Ｂは、図３Ｂのプロセス３５０を介して、メニュー及び／又は機能を提供する。ユーザ２は、図６Ｂに示すような新たなビュー６０１ｂを生成するために、カーソル（図示せず）を使用して、画像オブジェクト６１８（図６Ａ）を選択してサイズ変更する。
【０１０４】
[00104]ユーザ２は、図６Ｂのオブジェクト６１４が不必要であり、図６Ｂのビュー６０１ｂからオブジェクト６１４を削除することを決定する。図４Ｃに示すように、その結果、ビュー６０１ｃとなる。ビュー６０１ｂ（図６Ｂ）からのオブジェクト６１４（図６Ｂ）の削除は、図９Ａのマルチ機能ツール９００の構成要素の実行を介して実装され得る操作の例である。この操作は、ユーザが、ツール９００の「Ｒｅｍｏｖｅ  ｆｒｏｍ  Ｄｉｓｐｌａｙ」機能を選択し、続いて、図６Ｂのオブジェクト６１４の表現上をクリックすることにより実行される。必要な機能が既にユーザデバイス１０１上で操作プロセス２１４に利用可能であり、データベース動作は必要でないため、このような動作は、図３Ａのプロセス３５０の動作を必要としない。このような動作の他の例は、オブジェクトの移動又はコピーなどを含む。しかしながら、結果として生じる操作済みのページが保存される場合、図３Ｂのプロセス３５０を実行する必要がある。
【０１０５】
[00105]ユーザ２は、文書６０１ａ（図６Ａ）に対して、フル「ｒｗｘ」アクセス許可を有するため、ユーザ２は、以下、文書６０１ｃ（図６Ｃ）というビュー６０１ｃのコンテンツを、サーバ１７７のオブジェクトデータベース２０６（図２Ａ）に保存することができる。ユーザ２が、サーバアプリケーション１３３Ｂによってユーザデバイス１０１に提供されるメニュー上の「保存」を選択する結果、図３Ａのステップ３２６が実行されることとなる。図３Ｂのプロセス３５０はそれに応じて実行される。ユーザ２は、文書６０１ａ（図６Ａ）に対するフルアクセス許可を有するため、図３Ｃのアクセス管理プロセス３７０は、ステップ３７０４において、要求される「保存」動作が許可されると分かる。文書６０１ｃは、図３Ｃのステップ３７０８で、対応するオブジェクトが、データベース２０４（図２Ａ）において生成されることによって、保存される。文書６０１ｃが、一度データベース２０４（図２Ａ）に保存されると、ユーザ２は、ブラウザアプリケーション２１０の後のセッションで、文書６０１ｃ（図６Ｃ）を取得することができる。文書６０１ｃは、ユーザ２に関連付けられ、元来ユーザ２にアクセスされるレイアウトとは異なる、レイアウトを形成することができる。ユーザ１を含むサーバ１７７の他のユーザは、ユーザ２がそれらのユーザに適切なアクセス許可を与えない限り、文書６０１ｃにアクセスすることができない。
【０１０６】
[00106]ユーザ１と読み取りのみの関係を有する別のユーザ（例えば、一般的な公衆アクセス）、ユーザ３が、図６Ａの文書６０１ａにアクセスする場合、ユーザ３は、文書６０１ａを見るための許可を有することになる。読み取りアクセス許可を有する任意のユーザは、ＧＵＩアプリケーション２１０によって提示されるコンテンツのうちの任意のコンテンツを修正することができる。アクセス許可は、ユーザが任意のコンテンツをサーバ１７７に保存しようとするまで、チェックされない。したがって、ユーザ３は、サーバアプリケーション１３３Ｂによって提供されるメニューにアクセスすることによって、ＧＵＩアプリケーション２１０による文書６０１ａ（図６Ａ）のプレゼンテーションを操作することができる。このことは、例えば、ユーザ２により実行される変更に相当し得る。一方、ユーザ３は、文書６０１ａに関連付けられた任意のコンテンツを保存するための、又は文書６０１ａの個人レイアウトを保存するためのアクセス許可を有しない。したがって、ユーザ３が文書６０１ａ（図６Ａ）のプレゼンテーション又はコンテンツの変更を保存しようとするいかなる試みも、図３Ａのプロセス３００のステップ３２６を実行する結果となる。サーバアプリケーション１３３Ｂは、図３Ｂのプロセス３５０を実行して、文書の保存を拒否し、ＧＵＩ２１０を介してユーザ３に対して表示する、図３Ｃのステップ３７０４でのようなエラーメッセージを、サーバアプリケーション１３３Ｂがレンダリングする結果となる。
【０１０７】
[00107]アプリケーション１３３Ａ及び１３３Ｂのそれぞれによって実行されるタスクの分割は、アプリケーション１３３の様々な実装に従って変化してもよい。例えば、初期ユーザ文書の作成は、コンピュータ１０１上で操作アプリケーション１３３Ａによって実装されてもよい。アプリケーション１３３Ａ及び１３３Ｂは、いくつかの実装では、他の、別々のアプリケーションとともに使用するために、分離して提供されてもよい。図３Ａ〜３Ｄのプロセス３００、３５０、３７０及び３９０のシーケンスは、他の実装、例えば、図３Ａのステップ３１８〜３３０のシーケンスでは、変化してもよい。
オブジェクトの階層
【０１０８】
[00108]文書などのオブジェクトは、アプリケーション２１０のＤＯＭにおいて階層的に表現される。これらのオブジェクトの関係もまた、階層を提供すると考えられることができる。
【０１０９】
[00109]図７Ａは、図６Ａの文書６０１ａを含む、オブジェクト７０１ａの階層型ビュー７００を示す。一次要素７０４は、オブジェクト７０１ａに関係している。オブジェクト７０１ａは、図６Ａの文書６０１ａに対応する構成要素を有し、図７Ａの部分要素７０４ａによって示されている。他の部分要素７０６及び７０８は、７０４ａの同一の階層レベルにあってもよいが、それらについては本明細書で論じない。図７Ａの部分要素７０４ａは、図６Ａの文書６０１ａの構成要素オブジェクト６１２、６１８及び６１４にそれぞれ対応するさらなる部分要素７１２、７１８及び７１４を有する。図７Ａに示すように、オブジェクトのフィールドには、ユーザ許可が含まれる。
【０１１０】
[00110]図７Ｂは、オブジェクト構造及びレイアウトとの関連付けの全体的な例を示す。文書７５０は、ページ１、ページ２、ページ３及びページ４の４つのオブジェクトの構成要素を含む。さらなるページ７６４は、図７Ｂのページ３に関連付けられる。図７Ｂのページ７６４は、ユーザ１のみに関係する。図７Ｂのレイアウトオブジェクト７５２は、ユーザ１についてのオブジェクト７５０に関連付けられ、一方、図７Ｂのレイアウトオブジェクト７５４は、ユーザ２についてのオブジェクト７５０に関連付けられる。ユーザ１が、サーバ１７７にアクセスするとき、ユーザ１のクレデンシャルのためにレンダリングされる初期レイアウトは、ページ２、ページ４及び関連するオブジェクト７６４を含むことになる。ユーザ２が、サーバ１７７にアクセスするとき、ユーザ２のクレデンシャルのためにレンダリングされる初期レイアウトは、図７Ｂのオブジェクト、ページ３（オブジェクト７６４ではない）を含むことになる。したがって、ページは、文書又はオブジェクトと、１種類より多くの関係を有してもよい。まず、ページオブジェクトは、文書又は刊行物の構成要素であってもよい（例えば、ページ１〜ページ４は、オブジェクト７５０の構成要素である）。さらに、ページ２〜ページ４及びオブジェクト７６４は、図７Ｂのオブジェクト７５０のレイアウト７５４及び７５４とも関連付けられる。
【０１１１】
[00111]図７Ｂは、構成要素ページ１及びページ４が、それぞれ画像オブジェクト７５６及び映像オブジェクト７５８などの構成要素をも含み得ることを示す。オブジェクト７５６との関連付けは、実際の写真７６０などのオブジェクトを含んでもよい。オブジェクト７６０は、オブジェクト７６２に示すように、幅及び長さに関するものなどの属性をさらに有してもよい。
【０１１２】
[00112]このように、図２Ａのシステム２００は、標準的なコンピュータユーザが、ウェブページ、往復文書、スプレッドシートのいずれにせよ、ＧＵＩインターフェース２１０（図２Ａ）などの単一のアプリケーションを介して任意の種類の文書を作成及び／又は操作するための手段を提供する。図２Ａのシステム２００は、オブジェクト及びオブジェクトベース文書の操作のための（アプリケーション１３３Ａ、１３３Ｂ、データベース２０４及びＧＵＩアプリケーション２１０により形成される）ソフトウェアプラットフォームを効果的に提供する。ユーザは、例えば、マウスポインタを介したＧＵＩ選択で、ブラウザアプリケーションを操作するための標準的なコンピュータユーザのスキル以外のいかなる専門スキルも要しない。さらに、サーバアプリケーション１３３Ｂからデバイス１０１に提供されるメニューは、検知されたユーザの動作に関係するものであるため、ユーザは、アプリケーションの機能を見つける方法又は実装する方法についての深い知識も要しない。
【０１１３】
[00113]前述した例では、システム２００によって与えられるプラットフォームは、ブラウザアプリケーションやＧＵＩアプリケーション２１０で与えられる。ソフトウェアプラットフォームは、ブラウザに限定されず、アプリケーションなどの他の形式で与えられることができる。プラットフォームは、ブラウザ又はアプリケーション形式のいずれにせよ、単一のバージョンが、幅広い種類のデバイス及びオペレーティングシステムにわたって動作することになるという利点をもたらす。次いで、ユーザは、その時点で便利なデバイス、例えば、クライアントデバイス１０１、タブレット１７８又はスマートフォン１７９のいずれも、使用することができる。
【０１１４】
[00114]本明細書で論じられた予め定義されたメッセージ及び対応する関数は、多数のアプリケーションがそれによって構築されることができ、タスクのためのツールの実世界の提供を反映する、基本ツールキットを提供する。例えば、インタラクションは、ペンと同様の機能を定義してもよい。従来のワード処理ツールは、ペンがある方式によってページ上で使用できるようにするだけかもしれない。例えば、改行及びタブが、ページの中央に文字を配置するために必要とされるかもしれない。本明細書で説明した文書の操作のためのシステムは、そのような制限をもたらさないが、ペンと紙と同様に、ユーザの好きなどの場所でも文字を配置することができるようにする。
【０１１５】
[00115]クライアントデバイス１０１は、機能を記憶し、不必要な関数を実行する必要はない。必要な機能は、サーバ１７７に記憶され、一度必要になれば、（図３Ａのステップ３３２のように）図２Ａのバッファ２１５において、クライアントデバイス１０１に一時的に記憶するだけである。したがって、クライアントデバイス１０１は、ローカルで実行されなければならない機能だけを受信し、他の動作は全て、サーバ１７７において実行される。
【０１１６】
[00116]本明細書で使用される、文書に対するオブジェクト指向のアプローチは、関数がオブジェクトとして指定されない、従来のオブジェクト指向プログラミングとは異なり、むしろ「現実世界」のオブジェクトと同様に、オブジェクトがデータと関係する。
【０１１７】
[00117]上記は、本発明のいくつかの実施形態のみについて説明し、本発明の範囲及び精神を逸脱することなく、修正及び／又は変形がなされ得る。実施形態は、例示的なものであって限定的ではない。
【０１１８】
[00118]本明細書の文脈において、「備える（ｃｏｍｐｒｉｓｉｎｇ）」という単語は、「主に含むが、必ずしも単独ではない」又は「有する」又は「含む」を意味し、「のみからなる」を意味するものではない。「備える（ｃｏｍｐｒｉｓｅ）」及び「備える（ｃｏｍｐｒｉｓｅｓ）」などの、単語「備える」の変化形は、それに相当する変化した意味を有する。
【図１Ａ】
2017507388.tif 000003
【図１Ｂ】
2017507388.tif 000004
【図２Ａ】
2017507388.tif 000005
【図２Ｂ】
2017507388.tif 000006
【図３Ａ】
2017507388.tif 000007
【図３Ｂ】
2017507388.tif 000008
【図３Ｃ】
2017507388.tif 000009
【図３Ｄ】
2017507388.tif 000010
【図４Ａ】
2017507388.tif 000011
【図４Ｂ】
2017507388.tif 000012
【図４Ｃ】
2017507388.tif 000013
【図４Ｄ】
2017507388.tif 000014
【図４Ｅ】
2017507388.tif 000015
【図４Ｆ】
2017507388.tif 000016
【図４Ｇ】
2017507388.tif 000017
【図５Ａ】
2017507388.tif 000018
【図５Ｂ】
2017507388.tif 000019
【図５Ｃ−１】
2017507388.tif 000020
【図５Ｃ−２】
2017507388.tif 000021
【図６Ａ】
2017507388.tif 000022
【図６Ｂ】
2017507388.tif 000023
【図６Ｃ】
2017507388.tif 000024
【図７Ａ】
2017507388.tif 000025
【図７Ｂ】
2017507388.tif 000026
【図８Ａ】
2017507388.tif 000027
【図８Ｂ】
2017507388.tif 000028
【図９Ａ】
2017507388.tif 000029
【図９Ｂ】
2017507388.tif 000030
【図９Ｃ】
2017507388.tif 000031
【図９Ｄ】
2017507388.tif 000032
【図９Ｅ】
2017507388.tif 000033
【国際調査報告】
2017507388.tif 000034
2017507388.tif 000035
2017507388.tif 000036
2017507388.tif 000037
2017507388.tif 000038