(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】共同生産性スイートにおける組み込みタスク
(51)【国際特許分類】
G06Q 10/0631 20230101AFI20240927BHJP
【FI】
G06Q10/0631
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024519441
(86)(22)【出願日】2022-09-29
(85)【翻訳文提出日】2024-05-27
(86)【国際出願番号】 US2022045263
(87)【国際公開番号】W WO2023055957
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ファールニ、トーマス
(72)【発明者】
【氏名】オグンドクン、レミ ウェズリー
(72)【発明者】
【氏名】ケーザー、ミヒャエル
(72)【発明者】
【氏名】クリューガー、ラース
(72)【発明者】
【氏名】アブデルハディ、アリ
(72)【発明者】
【氏名】シャイデッガー、ラーラ
(72)【発明者】
【氏名】ヤコブレフ、コンスタンティン
(72)【発明者】
【氏名】ハリリ、ベフヌーシュ
(72)【発明者】
【氏名】リー、ベイシー
(72)【発明者】
【氏名】チェン、ティモシー
(72)【発明者】
【氏名】ヌーン、バラク ベン
(72)【発明者】
【氏名】ビリンガム、ウィリアム ジョシュア
(72)【発明者】
【氏名】ブルクハルト、シュテフェン
【テーマコード(参考)】
5L010
【Fターム(参考)】
5L010AA06
(57)【要約】
いくつかの実施態様では、方法は、タスクを作成する要求を示すユーザ入力を受信すること、及びタスクの視覚的表現を提示することを含む。方法はまた、アサイニーへのタスクの割り当てを示すユーザ入力を受信し、タスク及びアサイニーへのタスクの割り当てを示す第1の通知を、第2のアプリケーションに送信することも含み得る。方法はさらに、第2のアプリケーションから、タスクのステータスの変更を示す第2の通知を受信すること、及びタスクの視覚的表現を修正して、第1のアプリケーションのユーザインターフェースでタスクのステータスの変更をグラフィカルに示すことを含み得る。
【選択図】
図2
【特許請求の範囲】
【請求項1】
メモリデバイスと、
前記メモリデバイスに結合され、
第1のアプリケーションのユーザインターフェースを介して、タスクを作成するための要求を示すユーザ入力を受信し、
第1のアプリケーションのユーザインターフェースに前記タスクの視覚的表現を提示し、
アサイナーユーザに代わって、アサイニーへの前記タスクの割り当てを示すユーザ入力を受信し、
前記タスク及び前記アサイニーユーザへの前記タスクの前記割り当てを示す第1の通知を、第2のアプリケーションに送信し、
前記第2のアプリケーションから、前記タスクのステータスの変更を示す第2の通知を受信し、
前記タスクの前記視覚的表現を修正して、前記第1のアプリケーションの前記ユーザインターフェースに前記タスクの前記ステータスの前記変更をグラフィカルに示す処理デバイスとを備える、システム。
【請求項2】
前記処理デバイスはさらに、割り当てられた前記タスクを前記アサイニーに通知する電子メールを前記アサイニーに送信する、請求項1に記載のシステム。
【請求項3】
前記第1のアプリケーションの前記ユーザインターフェースに前記タスクの前記視覚的表現を提示するために、前記処理デバイスはさらに、
前記タスクを作成する前記要求を示す前記ユーザ入力に基づいて、前記タスクの複数のプロパティを定義するデータオブジェクトを生成し、
前記データオブジェクトで定義された前記複数のプロパティに基づいて、前記タスクの前記視覚的表現を生成する、請求項1に記載のシステム。
【請求項4】
前記処理デバイスは、前記ユーザ入力によって示された前記アサイニーを前記データオブジェクトにさらに追加する、請求項3に記載のシステム。
【請求項5】
前記処理デバイスはさらに、
前記タスクの第2のアサイニーを示すユーザを受信し、
前記タスクの前記データオブジェクトに前記第2のアサイニーを追加する、請求項3に記載のシステム。
【請求項6】
前記第1のアプリケーションは、生産性スイートアプリケーションである、請求項1に記載のシステム。
【請求項7】
前記第2のアプリケーションは、タスク管理アプリケーションである、請求項1に記載のシステム。
【請求項8】
第1のアプリケーションのユーザインターフェースを介して、タスクを作成するための要求を示すユーザ入力を受信することと、
前記第1のアプリケーションの前記ユーザインターフェースに前記タスクの視覚的表現を提示することと、
アサイニーへの前記タスクの割り当てを示すユーザ入力を受信することと、
前記タスク及び前記アサイニーへの前記タスクの前記割り当てを示す第1の通知を、第2のアプリケーションに送信することと、
前記第2のアプリケーションから、前記タスクのステータスの変更を示す第2の通知を受信することと、
前記タスクの前記視覚的表現を修正して、前記第1のアプリケーションの前記ユーザインターフェースで前記タスクの前記ステータスの前記変更をグラフィカルに示すこととを備える、方法。
【請求項9】
前記第1のアプリケーションの前記ユーザインターフェースで、前記タスクの前記視覚的表現を提示することは、
前記タスクを作成する前記要求を示す前記ユーザ入力に基づいて、前記タスクの複数のプロパティを定義するデータオブジェクトを生成することと、
前記データオブジェクトをデータストアに記憶することと、
前記データオブジェクトで定義された前記複数のプロパティに基づいて、前記タスクの前記視覚的表現を生成することとを備える、請求項8に記載の方法。
【請求項10】
前記ユーザ入力によって示された前記アサイニーを前記データオブジェクトに追加することをさらに備える、請求項9に記載の方法。
【請求項11】
前記タスクの第2のアサイニーを示すユーザ入力を受信することと、
前記タスクの前記データオブジェクトに前記第2のアサイニーを追加することとをさらに備える、請求項10に記載の方法。
【請求項12】
前記第1のアプリケーションは、生産性スイートアプリケーションである、請求項8に記載の方法。
【請求項13】
前記第2のアプリケーションは、タスク管理アプリケーションである、請求項8に記載の方法。
【請求項14】
割り当てられた前記タスクを前記アサイニーに通知する電子メールを前記アサイニーに送信することをさらに備える、請求項8に記載の方法。
【請求項15】
第1のアプリケーションによって、第2のアプリケーションから、アサイニーへのタスクの割り当てを示す通知を受信することと、
前記第1のアプリケーションのグラフィカルユーザインターフェース(GUI)に、前記タスクの視覚的表現を提示することであって、前記視覚的表現は、1つまたは複数のインタラクティブなグラフィカル要素を含み、1つまたは複数のインタラクティブなグラフィカル要素の1つは、前記タスクの完了ステータスに対応する、前記提示することと、
前記1つまたは複数のインタラクティブなグラフィカル要素の前記1つに関連するユーザ入力に基づいて、前記タスクの前記完了ステータスを修正することと、
前記タスクの修正された前記完了ステータスを示す通知を前記第2のアプリケーションに送信することとを備える、方法。
【請求項16】
前記タスクのプロパティの変更を示す第2のユーザ入力を受信することと、
前記第2のユーザ入力に基づいて前記プロパティに対応するインタラクティブなグラフィカル要素を修正することと、
前記タスクの前記プロパティの前記変更について前記第2のアプリケーションに通知しないようにすることとをさらに備える、請求項15に記載の方法。
【請求項17】
前記プロパティに対応する前記インタラクティブなグラフィカル要素は、前記プロパティの変更が前記第2のアプリケーションに伝達されないようにする設定を備える、請求項16に記載の方法。
【請求項18】
前記第1のアプリケーションは、タスク管理アプリケーションである、請求項15に記載の方法。
【請求項19】
前記第2のアプリケーションは、生産性スイートアプリケーションである、請求項15に記載の方法。
【請求項20】
前記タスクの前記修正された完了ステータスを示す電子メールを前記タスクのアサイナーに送信することをさらに備える、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の側面及び実施態様は、一般的には、共同アプリケーション間でデータを共有することに関し、より詳細には、異なるアプリケーション間でタスク関連データの共有インスタンスを埋め込むことに関する。
【背景技術】
【0002】
生産性アプリケーションは、多くの場合、文書、プレゼンテーション、ワークシート、データベース、チャート、グラフ、その他の資料の作成に使用されるインタラクティブなアプリケーションのスイートにグループ化されており、広く普及した作業環境になっている。状況によっては、共同作業を容易にし、作業成果物の完成を早めるために、アプリケーションによって複数のユーザがファイルにアクセスしたり、ファイルを修正したりすることが可能になる。特にWebアプリケーション及びクラウドベースのアプリケーションでは、アプリケーションのインスタンス間及び異なるユーザ間で共有されるファイル間でのデータのアクセス及び共有の柔軟性を提供することがますます重要になっている。アプリケーションプラットフォームの分散性により、地理的に互いに離れた場所にいる共同作業者が、以前は互いに近くにいる必要があった様々なタスク及びプロジェクトで共同作業ができるようになった。これにより、様々な保存、アクセス、保持、変更ポリシ及び進捗管理機能が実装されるようになった。
【発明の概要】
【0003】
以下の概要は、開示のいくつかの態様についての基本的な理解を提供するために、開示の簡略化された概要である。この概要は開示内容の包括的な概要ではない。これは、開示の主要または重要な要素を特定すること、または開示の特定の実施態様の範囲または任意の特許請求の範囲を定義することを意図するものではない。その唯一の目的は、後ほど提示されるより詳細な説明の前置きとして、開示のいくつかの概念を簡略化した形で提示することである。
【0004】
いくつかの実施態様では、システム及び方法が開示される。いくつかの実施態様では、システムは、メモリデバイス、及びメモリデバイスに結合された処理デバイスを含む。処理デバイスは、第1のアプリケーションのユーザインターフェースを介して、タスクを作成する要求を示すユーザ入力を受信し、第1のアプリケーションのユーザインターフェースにタスクの視覚的表現を提示するように構成することができる。これには、タスクを作成する要求を示すユーザ入力に基づいて、タスクの複数のプロパティを定義するデータオブジェクトを生成すること、及びデータオブジェクトで定義された複数のプロパティに基づいてタスクの視覚的表現を生成することが含まれ得る。処理デバイスは、アサイナーユーザに代わって、タスクをアサイニーに割り当てることを示すユーザ入力を受信し、タスク及びアサイニーユーザへのタスクの割り当てを示す第1の通知を、第2のアプリケーションに送信するように構成することもできる。処理デバイスはさらに、第2のアプリケーションから、タスクのステータスの変更を示す第2の通知を受信し、タスクの視覚的表現を修正して、第1のアプリケーションのユーザインターフェースにタスクのステータスの変更をグラフィカルに示すように構成することができる。処理デバイスは、ユーザ入力によって示されたアサイニーをデータオブジェクトに追加するように構成することもできる。さらに、処理デバイスは、タスクの第2のアサイニーを示すユーザ入力を受信し、その第2のアサイニーをタスクのデータオブジェクトに送信するように構成することができる。
【0005】
いくつかの実施態様では、方法は、第1のアプリケーションのユーザインターフェースを介して、タスクを作成する要求を示すユーザ入力を受信すること、及び第1のアプリケーションのユーザインターフェースにタスクの視覚的表現を提示することを含む。視覚的表現を提示することは、タスクを作成する要求を示すユーザ入力に基づいて、タスクの複数のプロパティを定義するデータオブジェクトを生成すること、及びデータオブジェクトをデータストアに記憶し、データオブジェクトで定義された複数のプロパティに基づいてタスクの視覚的表現を生成することを含み得る。方法はまた、タスクをアサイニーに割り当てたことを示すユーザ入力を受信すること、ならびにタスク及びアサイニーにタスクを割り当てたことを示す第1の通知を第2のアプリケーションに送信することを含み得る。方法はさらに、第2のアプリケーションから、タスクのステータスの変更を示す第2の通知を受信すること、及びタスクの視覚的表現を修正して、第1のアプリケーションのユーザインターフェースにタスクのステータスの変更をグラフィカルに示すことを含み得る。いくつかの実施態様では、方法は、ユーザ入力によって示されたアサイニーをデータオブジェクトに追加すること、タスクの第2のアサイニーを示すユーザ入力を受信すること、及び第2のアサイニーをタスクのデータオブジェクトに追加すること、及び割り当てられたタスクをアサイニーに通知する電子メールをアサイニーに送信することを含み得る。
【0006】
他の実施態様では、方法は、第1のアプリケーションによって、第2のアプリケーションから、タスクのアサイニーへの割り当てを示す通知を受信すること、第1のアプリケーションのグラフィカルユーザインターフェース(GUI)に、タスクの視覚的表現を提示することを含み、視覚的表現は、1つまたは複数のインタラクティブなグラフィカル要素を含み、1つまたは複数のインタラクティブなグラフィカル要素の1つは、タスクの完了ステータスに対応する。方法には、1つまたは複数のインタラクティブなグラフィカル要素の1つに関連するユーザ入力に基づいて、タスクの完了ステータスを修正すること、及び修正されたタスクの完了ステータスを示す通知を第2のアプリケーションに送信することも含まれる。方法には、タスクのプロパティの変更を示す第2のユーザ入力を受信すること、第2のユーザ入力に基づいてプロパティに対応するインタラクティブなグラフィカル要素を修正すること、及びタスクのプロパティの変更について第2のアプリケーションに通知しないようにすることも含まれ得る。プロパティに対応するインタラクティブなグラフィカル要素の1つには、プロパティの変更が第2のアプリケーションに伝達されないようにする設定を含み得る。方法には、タスクの修正された完了ステータスを示す電子メールをタスクのアサイナーに送信することも含まれ得る。
【0007】
好ましい実施形態による本発明の前述の概要は、本発明の範囲を制限するものと解釈されるべきではない。このように説明した本発明の実施形態は、本発明の趣旨及び範囲から逸脱することなくさらに修正し得ることは、当業者には理解され、明らかであるはずである。
【0008】
本開示の態様及び実施態様は、以下に示す詳細な説明、ならびに本開示の様々な態様及び実施態様の添付図面からより完全に理解されるであろうが、これらの図面は、本開示を特定の態様または実施態様に限定するものではなく、説明及び理解のみを目的としている。
【図面の簡単な説明】
【0009】
【
図1】本開示の実施態様による、システムアーキテクチャの一例を示す。
【
図2】本開示の実施態様による、異なるアプリケーションのインスタンス間でデータを共有することを示す図である。
【
図3】本開示の実施態様による、異なるアプリケーションのインスタンス間でのデータの同期及び保存を示すブロック図である。
【
図4】本開示の実施態様による、相互接続されたアプリケーションのブロック図を示す。
【
図5A】本開示の実施態様による、異なるアプリケーション間でタスクを割り当て、編集する方法のフロー図を示す。
【
図5B】本開示の実施態様による、異なるアプリケーション間でタスクを割り当て、編集する方法のフロー図を示す。
【
図6】本開示の実施態様による、例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0010】
本開示の態様は、異なるアプリケーション間でタスク関連データの組み込みインスタンスを共有することに関する。生産性、コンテンツ作成、スケジュール作成、プロジェクト管理、その他の一般的な仕事関連の活動を支援するために、様々なアプリケーションプラットフォームがユーザに利用可能になった。したがって、文書、プレゼンテーション、ワークシート、データベース、グラフなどを作成及び編集するためのアプリケーションを含む様々な生産性スイートが、広く普及した作業環境になっている。さらに、そのようなアプリケーションは、Webベースでユーザチーム間の共同作業を可能にする分散クラウドベースプラットフォームに実装できる。
【0011】
こうした可能性を考慮すると、多くの場合、クラウドベースの生産性スイートの一部を形成する多くのWebアプリケーション(例えば、電子メールアプリケーション、文書処理アプリケーション、カレンダーアプリケーション、スプレッドシートアプリケーション、プロジェクト管理アプリケーションなど)が提供する機能を利用するユーザ数が増え続ける傾向にあり、共同作業には、そのような様々なアプリケーションにわたる継続的な活動の進行、及びより多くの人の間の共同の相互作用が、ますます含まれるようになってきている。
【0012】
ユーザの活動が様々なアプリケーションで利用可能な情報の使用にまで及ぶと、関連する情報にアクセスし、その情報に関連するアクションを計画するために、ユーザはアプリケーション、コンテキスト、ウィンドウ、またはインターフェースを切り替える必要がしばしば生じる。例えば、ユーザは、タスク管理アプリケーションで定義されたタスクに関連付けられた情報を含む電子文書で作業するために、ワードプロセッシングアプリケーションを使用し得、そのタスクを別のユーザに割り当てたい場合がある。現在、ユーザはタスク管理アプリケーションに切り替えてタスクを別のユーザに割り当て、次いで、ワードプロセッシングアプリケーションに戻って電子文書での作業を続行する必要がある。別の例として、共同作業者のチームがプロジェクトに関連するタスクを割り当て、割り当てられたタスクが完了したかどうかを追跡する必要があり得る。さらに、タスクが割り当てられた個人は、自分にとって意味のある詳細を追加できる、自分に特別に割り当てられたタスクのトラッカを有する必要があり得る。
【0013】
しかし、従来のチームタスクリスト及び個人のタスクトラッカは、互いに統合または相互接続されていない、独立した構造である。この統合の欠如は生産性を妨げ、様々なアプリケーション、インターフェースなどを頻繁に切り替えることにつながる。そのような切り替えはユーザにとって不便であり、かなりの時間及びコンピューティングリソースが必要な可能性がある。さらに、ユーザが様々なタスクの割り当て及び実行を追跡及び調整できるようにするために、追加の時間及びコンピューティングリソースが消費される。異なるアプリケーションに同じタスク関連情報の別々のインスタンスがあることにより、情報のすべてのインスタンスを同期して、最新の状態に保つことが難しくなる。さらに、同期されていない異なるアプリケーションに同じタスクを表す情報があることにより、チームメンバが一貫性のないタスク関連情報に依存することになり、ワークフローが不連続になり、進捗が滞ることにつながり得る。一方、場合によっては、タスクに関連するすべての情報を同期して更新することにより、タスクを実行している個人の生産性を望ましくないほど妨げる、または他のチームメンバに不要な情報が提供される可能性もある。例えば、タスクのアサイニーは、他のタスクも実行する必要があるため、アサイニーに割り当てられたタスクを完了する必要がある期限を変更したい場合がある。この情報を、チーム及びタスクのアサイナーがアクセスできるタスク関連情報と同期すると、アサイナーが使用するアプリケーションとアサイニーが使用するアプリケーションとの間でタスク関連情報の不一致が発生する可能性がある。
【0014】
本明細書に開示される実施態様は、ユーザが別のアプリケーションのインターフェースでタスク管理アプリケーションからタスク関連データにアクセスまたは修正することを可能にする機構を提供することによって、前述の問題及びその他の問題に対処し、それによって、ユーザがアプリケーションまたはインターフェースを切り替える必要がある回数を減らす。具体的には、あるアプリケーション(例えば、タスク管理アプリケーション)に由来する、またはあるアプリケーションによって定義されたデータオブジェクトによって表される個々のタスクを、計画文書内などの別のアプリケーション(例えば、ワードプロセッシングアプリケーション)のデータコンテナまたはファイル内に埋め込むことができるフレームワークが提供される。これは、タスクを表すデータオブジェクトがソースアプリケーション(例えば、タスク管理アプリケーション)、及びそれが埋め込まれているホストアプリケーション(例えば、ワードプロセッシングアプリケーション)の両方に関連付けられているため、タスクの個別のリストを保持するという問題に対処する。さらに、ユーザは、タスク管理アプリケーションのグラフィカルユーザインターフェースを通じて、個人のタスクリストで自分に割り当てられたすべてのタスクを表示し、個人的なメモ、説明、期限及びその他のコンテキスト情報で注釈を付けることができる。ユーザはタスクを修正して、タスクが完了したかどうかを示すこともできる。タスクの完了状態のこの表示は、タスクのアサイニーバージョン(例えば、タスク管理ソースアプリケーションのタスクを表すデータオブジェクト)とタスクのチーム/アサイナーバージョン(例えば、タスクを表すワードプロセッサホストアプリケーションの埋め込みデータオブジェクト)の間で同期できる。このように、アサイナー及びアサイニーの両方にとって重要かつ関連性のあるタスク関連情報が同期され、最新の状態に保たれる一方で、個人的なメモ及び他の個人的なタスク関連情報は、アサイナーに負担をかけることなく、アサイニーが自由に作成及び変更できる。
【0015】
アプリケーションに埋め込みデータを有することの利点を示す1つのシナリオ例として、ユーザがワードプロセッシングアプリケーションを使用して文書で作業をする場合があり、文書のコンテキスト(例えば、インターフェース)を離れずに別のユーザにタスクを割り当てたい場合がある。本明細書に開示される開示の態様により、ユーザは、タスク管理アプリケーション内の「タスク」に関連付けられた文書に「タスク」を埋め込むことができ、それによって、ユーザがタスク管理アプリケーションに切り替えて別のユーザにタスクを割り当てる必要がなくなる。いくつかの実施態様では、「タスク」を埋め込むには、ワードプロセッシングアプリケーションのグラフィカルユーザインターフェース(GUI)にタスクを表すデータオブジェクトを作成すること、及びワードプロセッシングアプリケーションのGUI内のタスクの視覚的表現にタスクデータを関連付けること、またはタスクデータをタスクの視覚的表現に固定することが含まれる。次いで、この埋め込みタスクは、タスク管理アプリケーションのGUIからもアクセスして更新できる。同様の機能は、あるアプリケーションから別のアプリケーション(例えば、スプレッドシートアプリケーション、及びタスクをワークシートのセルまたは行に埋め込むことができるタスク管理アプリケーション)に情報を埋め込むことによってデータの共有権を維持する必要がある様々な他のアプリケーションタイプにも実装できる。
【0016】
2つのアプリケーションのそれぞれによって共有及び記憶されるデータは、異なるデータポリシ(例えば、データの場所、共有、保持など)の対象となり得る。例えば、タスクが文書に埋め込まれている場合、文書に適用されるデータポリシでは文書データを欧州連合(EU)に保存することが必要になる場合があるが、タスクに適用されるデータポリシではタスクデータを米国(US)に保存することが必要になる場合がある。いくつかの実施態様では、異なるデータポリシへの準拠を保証するために、あるアプリケーション(例えば、ソースアプリケーション)のデータが別のアプリケーション(例えば、ホストアプリケーション)に埋め込まれるか、または生成される場合、各アプリケーションは、データの個別のコピーをそれぞれの個別の場所に保持して、各コピーがそれぞれのアプリケーションまたは場所のコンプライアンスのニーズ及び要件に準拠できるようにする。この分離されたデータ所有権手法により、アプリケーション間のデータ所有権を明確に区別し、ポリシ間の競合を回避するデータ所有権モデルを作成できる。
【0017】
埋め込みデータは、ホストアプリケーション(データが埋め込まれているアプリケーション)及びソースアプリケーション(データタイプの元となる親アプリケーション)の両方から修正できる。本開示の態様は、データが関連付けられているアプリケーション間のデータの整合性を維持し、それによって、アプリケーションの共同利用性を容易にし、ユーザエクスペリエンスを向上させるデータ変更を処理するための機構を提供する。例えば、ホストアプリケーションに埋め込まれたデータがソースアプリケーションから削除されると、そのデータは通知キューシステムを介してホストアプリケーションからも削除される。逆に、ホストアプリケーションに埋め込まれたソースアプリケーションデータがホストアプリケーションから削除されると、そのデータは通知キューシステムを介してソースアプリケーションからも削除される。いくつかの実施態様では、異なるシステム(例えば、アプリケーション)間で信頼性の高い通知を配信できるデータベース機能を使用できる。例えば、タスク管理アプリケーションでタスクデータオブジェクトが削除された場合、通知キューシステムを使用して、対応するタスクデータオブジェクトが埋め込まれているワードプロセッシングアプリケーションに削除が通知されるようにすることができる。一実施態様では、タスクに関連付けられたデータは、両方のアプリケーションからアクセス可能なインデックステーブルから削除され、最終的には、対応するタスクデータオブジェクトが埋め込まれているワードプロセッシングアプリケーションの文書から削除される。別の実施態様の例では、タスク管理アプリケーションでタスクが削除されると、削除の通知を含むキューメッセージがトランザクション的にスケジュールされ、次いで、データベースシステムによって非同期的に呼び出され(例えば、後で)、通知の正常な送信/受信が確認されるまで再試行される。
【0018】
いくつかの実施態様では、特定のソースアプリケーションデータオブジェクトが埋め込まれている各アプリケーションに、ソースアプリケーションインターフェースで発生したソースアプリケーションデータオブジェクトの変更(例えば、更新、削除、変更)が通知されるようにするために、各ソースアプリケーションデータオブジェクトは、自身が埋め込まれている各アプリケーションのレコードに関連付けられたデータを有し得る。データオブジェクトに関して本明細書で使用される「修正」及び「変更」という用語には、「削除」も含まれるものとする。したがって、データオブジェクトがそれぞれのソースアプリケーションで編集または更新された場合、対応する「埋め込みデータオブジェクト」とも本明細書で呼ばれる、埋め込みコピー(例えば、ホストアプリケーションファイルに埋め込まれたソースアプリケーションデータオブジェクト)を更新するために、通知がホストアプリケーションに送信され得る。逆に、埋め込みソースアプリケーションデータオブジェクト(例えば、埋め込みデータオブジェクト)がホストアプリケーション内から(例えば、ホストアプリケーションインターフェースを通じて)編集または更新される場合、対応する「ソースデータオブジェクト」とも本明細書で呼ばれる、データオブジェクト(例えば、ソースアプリケーションデータオブジェクト)のソースコピーを更新するために、通知がソースアプリケーションに送信され得る。いくつかの実施態様では、通知の確実な配信を保証するために、通知の受信の確認または承認が他のアプリケーション(例えば、更新通知が送信されるアプリケーション)から受信されるまで、変更が発生したアプリケーションによって通知が再送信され得る。これらの通知により、共同作業者のチームはプロジェクトに関連するタスクを割り当て、割り当てられたタスクが完了したかどうかを追跡できる。データオブジェクトをホストアプリケーションに埋め込むことで、タスク及びタスクが割り当てられている個人、及びタスクの完了ステータスを確認できる単一の場所が提供され、その情報を取得するために他の場所を探す必要がなくなる。
【0019】
状況によっては、ホストアプリケーションファイル及び埋め込みデータに対して、異なるアクセスルール(例えば、データの表示または編集の許可)が適用され得る。本開示の態様は、ホストアプリケーションファイルまたは埋め込みデータに適用されるアクセスルールに違反することなくデータの更新が行われるように、権限間の競合に対処できる機構を提供する。例えば、ホストアプリケーション内の埋め込みデータオブジェクトへの修正は、ホストアプリケーションのアクセスルールに従い得る。これは、ホストアプリケーションのアクセス権限に従って、ホストアプリケーションを編集または変更する権限を有するユーザだけが、埋め込みデータを編集または変更できることを意味する。したがって、ソースアプリケーションは、ホストアプリケーションの対応する埋め込みデータオブジェクトを変更するアクセス権限を有する任意のユーザに対して、ソースアプリケーションのデータオブジェクト(例えば、ソースアプリケーションデータオブジェクト)を変更するためのアクセスを許可できる。
【0020】
逆に、ソースアプリケーションのデータオブジェクト(例えば、ソースアプリケーションデータオブジェクト)に加えられた変更または更新は、データオブジェクトが埋め込まれているホストアプリケーションファイルに変更を加えるためのアクセス権限を有するユーザに代わって更新が発行された場合(例えば、変更がユーザによって行われた場合)にのみ、ホストアプリケーションの埋め込まれたデータオブジェクトに反映できる。ソースアプリケーションのデータオブジェクトに変更を加えるユーザが、データオブジェクトが埋め込まれているホストアプリケーションファイルに変更を加えるためのアクセス権限を有していない場合、ホストアプリケーションファイルに変更を加えるためのアクセス権限を有する別のユーザが変更を受け入れてホストアプリケーションファイルを更新するまで、変更は保留状態のままにすることができる。例えば、ソースアプリケーションで行われたデータオブジェクトの変更は、ソースアプリケーション及びホストアプリケーションの両方からアクセスできる場所に記録されるが、アクセス権限の欠如により、データが埋め込まれているホストアプリケーションファイルにはコミットされない可能性がある。この場合、保留中の変更に関してホストアプリケーションファイルに変更を加えるためのアクセス権限を有するホストアプリケーションのユーザに通知を提示し、変更を受け入れるか拒否するかのプロンプトを表示することができる。
【0021】
いくつかの実施形態では、アクセスチェック(例えば、ユーザが特定のデータオブジェクトに変更を加えるために必要なアクセス権限を有しているかどうかの判定)は、ソースアプリケーション及びホストアプリケーションの両方で発生し得る。一例では、変更が行われたデータオブジェクトが埋め込まれているホストアプリケーションファイルに変更をコミットできるかどうかに関係なく、ソースアプリケーションが常に変更に関する通知をホストアプリケーションに送信するため、ホストアプリケーションは常にアクセスチェックを実行できる。この場合、以下でより詳細に説明するように、ホストアプリケーションは、ソースアプリケーションまたはホストアプリケーションのいずれかからデータオブジェクトに加えられた変更を取得し、別の場所(例えば、ホストアプリケーションデータが記録される場所及びソースアプリケーションデータが記録される場所とは別の第3の場所)に記録できる。別の例では、タスク管理アプリケーションは、特定のデータオブジェクトに変更を加えようとしているユーザが、そのデータオブジェクトが埋め込まれているホストアプリケーションファイルを編集するためのアクセス権限を有しているかどうかを確認でき、有している場合は、ソースアプリでデータを編集して変更をホストアプリケーションに伝播するための権限をユーザに付与する。
【0022】
それぞれのホスト及びソースアプリケーション内の対応するデータオブジェクトへの変更によって生じる競合を最小限に抑え、ホストアプリケーションとソースアプリケーションの両方に最新のデータオブジェクトが存在することを保証するために、いくつかの実施態様では、ホストアプリケーションファイルに埋め込まれているソースアプリケーションデータオブジェクトに関連付けられたデータを記録するための別のストレージ領域(例えば、データストア)が維持される。前述のように、ソースアプリケーション及びホストアプリケーションのアクセスルールが異なる場合(例えば、ユーザごとに異なるアクセス権限のセット)、変更を行ったユーザがホストアプリケーションファイルに変更を加えるためのアクセス権限を有していない場合、ソースアプリケーションのデータオブジェクトに加えられた変更がホストアプリケーションに同期されない可能性がある(例えば、対応する埋め込みデータオブジェクトが変更で更新されない可能性がある)。そのような変更が失われないようにするために、データオブジェクトに関する究極の「信頼できる情報源」として機能し得る別のストレージに記録することができる。いくつかの実施態様では、アプリケーションの対のそれぞれが、それぞれのデータストアに記録されたデータを有し得る。この第3の場所は、データオブジェクト(例えば、ソースアプリケーションデータオブジェクト及び対応する埋め込みデータオブジェクトを含む)に関連するすべての変更及びその履歴が、ホストアプリケーション及びソースアプリケーションの両方から記録される第3のデータストアになり得る。一実施態様では、この第3のストレージ場所は、ホストアプリケーションによって排他的に管理できる(例えば、データに対する変更の記録は、変更がソースアプリケーションで行われたかホストアプリケーションで行われたかに関係なく、ホストアプリケーションによって作成される)。第3のストレージ場所は、ホストアプリケーションファイルに埋め込まれたすべてのソースアプリケーションデータオブジェクト、及びそれらのデータオブジェクトに加えられたすべての変更を含み得る。例えば、ワードプロセッシングアプリケーションは、タスク管理アプリケーションから文書に埋め込まれたすべてのタスクデータオブジェクトを、それらのデータオブジェクトに対して以前に行われたすべての変更とともに別のデータストアに記録できる。ホストアプリケーション及びソースアプリケーションのそれぞれのデータのストレージ場所とは別の第3のストレージ場所を有することで、その第3の場所がホストアプリケーションによって完全に管理される場合、計算コストを削減し、データ転送の負荷を軽減できる。これは、そのような配置により、アプリケーションとそれぞれのデータストアとの間のクエリ及びデータ転送の数を、特にそれらが地理的に離れた場所にある場合に、関連する計算コスト及びネットワーク帯域幅とともに削減できるためである。
【0023】
この第3のストレージ領域は、ホストアプリケーションファイル(本明細書では、「埋め込みデータコンテナ」とも呼ばれる)が、埋め込みデータが古くなるように変更される可能性があるため、信頼できる情報源(例えば、データオブジェクトに関する信頼できる情報源)として機能する。例えば、完了としてマークされた埋め込みタスクデータオブジェクトを有するワードプロセッシングアプリケーションファイルのシナリオでは、埋め込みタスクデータオブジェクトが完了としてマークされていなかった以前のバージョンにワードプロセッシングアプリケーションファイルを戻すことができ、その結果、古い(例えば、旧式の、不正確な)埋め込みタスクデータオブジェクトが生成される。別の例では、ホストアプリケーションで発生した埋め込みデータオブジェクトの変更に起因する更新通知が、ソースアプリケーションに永続的に配信されず(例えば、アカウントが無効になっているために)、データオブジェクトのソースコピーと埋め込みデータオブジェクトとの間に望ましくない不一致が生じる可能性がある。埋め込みデータオブジェクトの記録を含む第3の場所を有することで、埋め込みデータオブジェクトの最新表現を維持したい場合に、埋め込みデータオブジェクトを有するホストアプリケーションファイルのユーザが、ホストアプリケーションファイルを以前のバージョンに戻すことを防ぐ必要がなくなり得る。
【0024】
いくつかの実施態様では、第3のストレージ場所は、アプリケーションの対のそれぞれに関連付けられたデータオブジェクトの記録を有するデータストア内のインデックステーブルであり得る。いくつかの実施態様では、ホストアプリケーションは、ソースアプリケーションと正常に同期されたすべての埋め込みデータに対して個別のストレージ場所を維持し、アクセス権限の制限により変更がホストアプリケーションの埋め込みデータコンテナ(例えば、対応する埋め込みデータオブジェクトを有するホストアプリケーションファイル)にコミットできない場合でも、ソースアプリケーションから受信したデータ変更の通知に従ってストレージ場所を更新できる。いくつかの実施態様では、このストレージ場所は埋め込みデータインデックステーブルとして実現され得、ソースアプリケーションまたはホストアプリケーションのいずれかでデータオブジェクトを変更する権限を有するすべてのユーザにこのテーブルへのアクセス(例えば、変更権限)を付与できる。ソースアプリケーションと第3のストレージ場所(例えば、埋め込みデータインデックステーブル)との間のデータの一貫性を保証するために、ソースアプリケーションデータのストレージ場所と第3のストレージ場所との間で定期的な一貫性チェック検証を実行できる。同様に、ホストアプリケーションデータのストレージ場所と第3のストレージ場所との間で定期的な整合性チェック検証を実行できる。2つの場所の間でデータの不一致が特定された場合、警告または通知が発行または生成される。第3のストレージ場所とそれぞれのホストまたはソースアプリケーションデータのストレージ場所との間の不一致に関する通知は、それぞれのアプリケーションのユーザに提示することができる。例えば、ホストアプリケーションは、埋め込みインデックステーブルをすべての埋め込みデータの信頼できる情報源として使用し、ホストアプリケーションの埋め込みデータコンテナ内の埋め込みデータがインデックステーブルと同期していない場合にユーザに警告を表示できる。
【0025】
前述のように、いくつかの実施態様では、タスク管理アプリケーションがソースアプリケーションとして機能し、ワードプロセッシングアプリケーションがホストアプリケーションとして機能し得る。したがって、タスクを表すデータオブジェクトは、タスク管理アプリケーションに関連付けられるか得るか、またはタスク管理アプリケーションから生成され、ワードプロセッシングアプリケーションに埋め込まれ得る。いくつかの実施態様では、チェックリストなどの項目のリストは、ワードプロセッシングファイル(例えば、共有クラウドベースの計画文書)のファイル内に作成することができ、チェックリストの項目はタスクになり得る。チェックリスト項目を構成するテキスト要素及び視覚要素は、タスクに関連付けられたデータオブジェクトの視覚的表現になり得る。いくつかの実施態様では、これらのデータオブジェクトは、タスク管理アプリケーション内の対応するデータオブジェクトに関連付けられた埋め込みデータオブジェクトであると理解できる。本明細書では、タスクに関連し、ホストアプリケーションデータコンテナ(例えば、ファイル)に埋め込まれたデータオブジェクトを「埋め込みタスクデータオブジェクト」または「アサイナータスクオブジェクト」と呼び、ソースアプリケーション(例えば、タスク管理アプリケーション)にある同じ(例えば、対応する)タスクに関連するデータオブジェクトを「ソースタスクデータオブジェクト」または「アサイニータスクオブジェクト」と呼び得る。タスク及びその関連情報は、ホストアプリケーションのデータコンテナの他のデータ及び視覚要素に関連付けられ、アンカーされ得ること、及びチェックリスト内の項目は説明の便宜上、例として使用されていることを理解されたい。その他のデータ及び視覚要素は、他のホストアプリケーションのタスク関連データオブジェクトに関連付けるのに適している場合がある。例えば、他の実施態様では、タスク及びその関連情報(ソースタスクデータオブジェクトへの関連付けとともに)を、スプレッドシートのチェックボックス、行またはセル、箇条書き、単語、及びテキストまたは記号の範囲に関連付け、アンカーされ得る。
【0026】
いくつかの実施態様では、アサイナーユーザ(「アサイナー」)は、ワードプロセッシングアプリケーション(例えば、ホストアプリケーション)のインターフェースを介してリストの作成を要求し、要求されたリストを作成でき、リストの要素は、タスクに関連付けられたデータオブジェクトであり得る。アサイナーユーザは、ワードプロセッシングアプリケーション(例えば、ホストアプリケーション)のインターフェースを介して、別のユーザ(「アサイニー」)にタスクを要求し、割り当てることもできる。アサイナーは、タスクを割り当てるユーザを選択または指定することによってタスクの割り当てを要求し、タスクを完了する期限を指定できる。いくつかの実施態様では、アサイナーは、アサイニーのユーザ名またはアドレスをテキスト入力フィールドに入力するか、ユーザのリストからアサイニーユーザを選択して、アサイニーにタスクを割り当てることができる。他の実施態様では、アサイナーは、アサイニーユーザの視覚的表現(例えば、アサイニーユーザの画像、アイコン、アバター)をクリックするか、一連の他のインタラクティブなグラフィカル要素(例えば、ボタン)をクリックすることによって、ユーザを選択できる。アサイニーユーザは、タスク管理アプリケーション(例えば、ソースアプリケーション)で、割り当てられたタスク及びそのタスクに関連する情報を表示できる。タスクに関連する情報は、タスク名、説明、期日、及びタスクが関連する、またはタスクが埋め込まれているプロジェクトまたはファイルを含むタスクのプロパティを定義するデータオブジェクトに含まれ得る。いくつかの実施態様では、アサイナーは、ホストアプリケーションのグラフィカルユーザインターフェースで、タスクをどのユーザに割り当てるべきかの指示を変更することにより、タスクを別のアサイニーユーザに再割り当てできる。これは、タスクを最初のアサイニーに割り当てる方法と同様の方法で実行できる。タスクの再割り当てにより、最初のアサイニーの個人タスクリスト(例えば、タスク管理アプリケーションのユーザインターフェース内のタスクリスト)からタスクが削除され、新しいアサイニーの個人タスクリストにタスクがその関連情報とともに追加され得る。
【0027】
タスク管理アプリケーションのグラフィカルユーザインターフェースでは、アサイニーは、データオブジェクトによって定義されたタスクのプロパティに対して、完了ステータス、タスク名、期日、タスクに関連するメモ及びコメントの変更など、様々な変更を加えることができる。いくつかの実施形態では、これらの変更の一部は、別のアプリケーションの関連データオブジェクトに加えられた変更に基づいて、あるアプリケーションのデータオブジェクトを更新することに関する本明細書に記載の方法に従って、ワードプロセッシングアプリケーションの埋め込みタスクデータオブジェクトを更新するために使用され得る。例えば、タスク管理アプリケーションでアサイニーがタスクの完了ステータスに加えた変更は、ワードプロセッシングアプリケーションでタスクのタスク完了ステータス(例えば、完了/未完了)を更新するために使用され得る。アサイニータスクオブジェクトのタスク完了状態の表示が修正されると、その修正が伝播され得、更新されたタスク完了状態を反映したホストアプリケーションのアサイナータスクオブジェクトに対応する変更が行われる。対照的に、いくつかの実施態様では、アサイニーがタスク名、期日、メモ、またはその他の関連情報に変更を加えた場合、それらの変更は(例えば、タスク管理アプリケーションのグラフィカルユーザインターフェースを介して)ソースアプリケーションのアサイニーにのみ表示及びアクセス可能なままであり得、(例えば、ワードプロセッシングアプリケーションでアサイナータスクオブジェクトに対応する更新を行うことによって)ホストアプリケーションとは同期され得ない。したがって、アサイニーがソースアプリケーションでタスクを変更したとしても、アサイニーがタスクの完了ステータスを変更しない限り、アサイナータスクオブジェクトは影響を受けず、修正もされない場合がある。
【0028】
他の実施態様では、タスクがアサイニーユーザに割り当てられると、割り当てられたタスクについてアサイニーに通知する電子メールがアサイニーに送信される。電子メールには、アサイニーに割り当てられた1つまたは複数のタスクが含まれ得る。アサイニーは、電子メールアプリケーションのグラフィカルユーザインターフェースを通じて、タスク(複数可)の完了ステータスを示したり変更したりできる。電子メールで行われたタスク完了ステータスの変更は、ホストアプリケーションの対応する埋め込みタスクデータオブジェクト及びソースアプリケーションのソースデータオブジェクトに伝播され得る。したがって、一実施態様では、ユーザが電子メールでタスクが完了したことを示すと、完了ステータスの変更を使用して、ワードプロセッシングアプリケーションのアサイナータスクオブジェクト及びタスク管理アプリケーションのアサイニータスクオブジェクトを更新できる。
【0029】
アサイニーに割り当てられたタスクに関連付けられたデータオブジェクトが埋め込まれているホストアプリケーションデータコンテナ(例えば、ファイル)を変更または修正する権限をアサイニーが有していない場合、ソースアプリケーションのグラフィカルユーザインターフェースを介してタスクの完了ステータスが変更されると、ホストアプリケーションの他のユーザに通知が生成され得る。通知または警告は、ホストアプリケーションのアクセス許可に従ってホストアプリケーションファイルに変更を加えることが許可されているホストアプリケーションの1人または複数のユーザに提示され、アサイナータスクオブジェクトに関連付けられたタスクの完了ステータスに加えられた変更をユーザに受け入れるように促し得る。本明細書で説明するシステム及び方法の要素の構造及び要素によって実行される動作に関する詳細は、
図1~
図6を参照して以下で説明する。
【0030】
したがって、本開示の態様は、例えば、あるアプリケーションから別のアプリケーションにデータを簡単に埋め込むことができる機構を含む複数の技術的利点を提供し、それによって、アプリケーション間のより進んだ統合を作成し、ユーザによって行われるコンテキストの切り替え(例えば、アプリケーションまたはインターフェース間の切り替え)の繰り返しによって通常では消費される時間及びコンピューティングリソースを削減する。その他の技術的な利点としては、限定されないが、アプリケーションによって共有及び記憶されるデータに関して潜在的に競合するポリシへの準拠を保証する自動化ソリューションの提供、アプリケーション間のデータ整合性の実装、及びアプリケーション間のデータアクセス許可間の競合への対処が含まれ、それによって、アプリケーションの相互運用性がさらに促進され、ユーザエクスペリエンスがさらに向上し、通常なら、競合するデータポリシへの手動による対処、データ整合性の手動による確保またはアプリケーション間のデータアクセス許可間の競合への手動による対処に費やされる時間及びコンピューティングリソースがさらに削減される。
【0031】
さらに、ホストアプリケーションとソースアプリケーションとの間の選択的な更新を通じて、本開示の態様は、ホストアプリケーションに表示される内容に影響を与えることなく、生産性を向上させるために意味のある詳細を追加できる、ユーザに特に割り当てられたタスクのトラッカを提供する。したがって、本明細書に開示された機構により、他の共同作業者に表示される同じタスクに関連付けられたタスク関連データに干渉しない個人的な修正をタスク関連データに追加することが可能になり、それによって、通常なら、ユーザがそのような個人的な修正を別の場所に記憶できるようにするために、及びこの別の場所と上記のアプリケーションを切り替えるために費やす時間及びコンピューティングリソースの量を削減できる。
【0032】
本明細書に記載の例及び実施態様は、文書/ワードプロセッシングアプリケーション及びタスク管理アプリケーションなどの特定の種類のアプリケーションに焦点を当て得るが、本明細書で開示されるシステム及び方法は、様々なアプリケーション及びオペレーティング環境で同様に実装できることを理解されたい。
【0033】
図1は、本開示の実施態様による、システムアーキテクチャ100の一例を示す。システムアーキテクチャ100(本明細書では「システム」とも呼ばれる)には、ネットワーク130を介してデータ管理プラットフォーム120(例えば、サーバ(複数可))などのサーバに接続できる、少なくとも1つのクライアントデバイス110が含まれる。簡潔にするために、1つのクライアントデバイス110及び1つのデータ管理プラットフォーム120がネットワーク130に接続されているように示されている。実際には、クライアント及び/またはサーバがさらに存在し得る。また、場合によっては、クライアントがサーバの1つまたは複数の機能を実行し、サーバがクライアントの1つまたは複数の機能を実行し得る。クライアントデバイス110は、データ管理プラットフォーム120から情報にアクセスし得るか、または情報を受信し得る。システムアーキテクチャ100は、クラウドベースの環境を表すことができ、これにより、文書プラットフォーム120をホストするサーバ(複数可)とクライアントデバイス110との間の通信をネットワーク130を介して可能にし、電子文書を保存及び共有できる。あるいは、システムアーキテクチャ100は、ローカルに相互接続されたシステムに適用することもできる。さらに、本開示のいくつかの態様は、スプレッドシート及びスプレッドシートを管理する文書アプリケーションを参照して説明されているが、本開示のシステム、方法、機能、及び実施形態は、任意のタイプの電子文書、及び任意のタイプのホストアプリケーションによって提供される任意のタイプのプログラムまたはサービスに適用できることは、当業者ならば理解するであろう。
【0034】
実施態様では、ネットワーク130には、パブリックネットワーク(例えば、インターネット)、プライベートネットワーク(例えば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN))、有線ネットワーク(例えば、イーサネットネットワーク)、無線ネットワーク(例えば、802.11ネットワークまたはWi-Fiネットワーク)、セルラネットワーク(例えば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、及び/またはそれらの組み合わせが含まれ得る。クライアントデバイス110には、パーソナルコンピュータ(PC)、ラップトップ、携帯電話、スマートフォン、タブレットコンピュータ、ネットブックコンピュータ、ネットワーク接続テレビなどのコンピューティングデバイスが含まれ得る。クライアントデバイス110は、1人または複数のユーザに関連付けられ得、クライアントデバイス110は「ユーザデバイス」とも呼ばれ得る。
【0035】
示されている実施態様では、データ管理プラットフォーム120は、クライアントデバイス110がデータ管理プラットフォーム120と連携して、1つまたは複数のデータ管理アプリケーションを実行し様々な文書を管理するように、クライアントデバイス110と対話できる。例えば、データ管理アプリケーションは、オンラインデータ管理アプリケーション、Webアプリケーション、クラウドベースのアプリケーション、クライアントベースのデータ管理アプリケーションなどであり得る。いくつかの実施態様では、データ管理アプリケーションは、(指定された文書アプリケーションではなく)Webブラウザ115と対話して、例えば、文書を提示する、文書に関連するユーザ入力を受信する、などができるクラウドベースまたはWebベースの生産性スイートアプリケーションである。あるいは、データ管理アプリケーションは、文書プラットフォーム120の使用の有無にかかわらず、本明細書に記載の機能を提供する(クライアントデバイス110によってホストされる)クライアントベースのアプリケーションであり得る。データ管理アプリケーションには、例えば、電子メールアプリケーション、文書処理アプリケーション、カレンダーアプリケーション、スプレッドシートアプリケーション、プロジェクト管理アプリケーション、オンラインワードプロセッシングアプリケーション、オンラインタスク管理アプリケーションが含まれ得、データ管理アプリケーションは、ホストアプリケーション150aまたはソースアプリケーション150bとして機能することができる。ホストアプリケーション150aには、ソースアプリケーション150bからの埋め込みデータオブジェクトを含め得ることを理解されたい。あるいは、データ管理アプリケーションをクライアントデバイス110上でローカルに実行することもできる。
【0036】
クライアントデバイス110によって作成されたデータ管理構造は、データ管理プラットフォーム120によって、例えば、データストア140、ホストアプリケーションデータストア142、及びソースアプリケーションデータストア143に記憶され得、1つまたは複数のホストアプリケーション150aまたはソースアプリケーション150bに関連付けられたアプリケーションデータオブジェクト、埋め込みデータコンテナ、及びアプリケーショングラフィカルユーザインターフェースを含み得る。場合によっては、ホストアプリケーション150aはホストアプリケーションデータストア142に排他的にアクセスでき、ソースアプリケーション150bはソースアプリケーションデータストア143に排他的にアクセスでき、両方のアプリケーションが共通データストアとして機能し得るデータストア140にアクセスできる。
図1では単一のデバイスとして示されているが、データ管理プラットフォーム120は、例えば、単一のコンピューティングデバイスとして、または複数の分散コンピューティングデバイスとして実装され得る。デバイスがサーバとして機能するか、クライアントデバイスとして機能するかは、実装されている特定のアプリケーションに依存し得ることが理解及び認識されるべきである。すなわち、コンピューティングデバイスがクライアントとして動作しているか、サーバとして動作しているかは、アプリケーション内でのコンピューティングデバイスの役割のコンテキストに依存し得る。クライアントとサーバの関係は、それぞれのデバイス上で実行され、相互にクライアント-サーバの関係を有するプログラムによって生じる。
【0037】
上記で論じたように、クライアントデバイス110とデータ管理プラットフォーム120との対話は、クライアントデバイス110で実行されるWebブラウザ115を通じて実装され得る。例えば、ホストアプリケーション150aまたはソースアプリケーション150bの1つなどのデータ管理アプリケーションは、ブラウザプログラム115内で実行されるWebアプリケーションであり得る。ブラウザプログラムという用語は、ブラウザプログラムがスタンドアロンプログラムであるか、オペレーティングシステムの一部として含まれるブラウザプログラムなどの組み込みプログラムであるかに関係なく、ユーザがマークアップ文書(例えば、Web文書)を閲覧することを可能にする任意のプログラムを指すことを意図する。いくつかの実施態様では、本明細書に記載のデータ管理アプリケーションは、分散型Webアプリケーションとして実装され、各データ管理アプリケーションの一部が1つまたは複数のクライアントデバイス110及びデータ管理プラットフォーム120で実行される。より具体的には、クライアントデバイス110は、データ管理プラットフォーム120からデータ管理アプリケーションを要求し得る。これに応答して、データ管理プラットフォーム120は、データ管理アプリケーションの一部をクライアント110でのローカル実行用に送信し得る。したがって、データ管理アプリケーションは、データ管理プラットフォーム120及び1つまたは複数のクライアントデバイス110にわたって、それぞれの分散アプリケーションとして実行し得る。このように、クライアントデバイス110は、データ管理プラットフォーム120によってホストされるデータ管理プラットフォームを使用するために、ローカルに任意のデータ管理アプリケーションをインストールする必要がない場合がある。
【0038】
一般に、データ管理プラットフォーム120によって、ホストアプリケーション150a、またはソースアプリケーション150bによって実行されるものとして実施態様で説明されている機能は、適切な場合、他の実施態様ではクライアントデバイス110でも実行できる。さらに、特定のコンポーネントに割り当てられた機能は、異なるコンポーネントまたは複数のコンポーネントが連携して動作することで実行できる。データ管理プラットフォーム120には、適切なアプリケーションプログラミングインターフェースを通じて他のシステムまたはデバイスに提供されるサービスとしてアクセスすることもできる。
【0039】
いくつかの実施態様では、データ管理プラットフォーム120には、通信を管理し、ホストアプリケーション150aとソースアプリケーション150bとの間の仲介役として機能する統合アプリケーションマネージャ160が含まれ得る。他の実施形態では、統合アプリケーションマネージャ160は、クライアントデバイス110上に部分的または完全に常駐することができる。さらに他のいくつかの実施態様では、ホストアプリケーション150a及びソースアプリケーション150bはクライアントデバイス110上に常駐し、統合アプリケーションマネージャ160を使用せずに(例えば、プロセス間通信を介して、共有データストアを使用して、など)相互に通信できる。
【0040】
本開示の実施態様では、「ユーザ」は単一の個人として表され得る。ただし、本開示の他の実施態様では、「ユーザ」は、ユーザのセット及び/または自動化されたソースによって制御されるエンティティである。例えば、ソーシャルネットワーク内のコミュニティとして統合された個々のユーザのセットは、「ユーザ」と見なすことができる。別の例では、自動化されたコンシューマは、コンテンツ共有プラットフォーム120のトピックチャネルなどの自動化された取り込みパイプラインであり得る。
【0041】
本明細書で説明するように、文書は、アプリケーションの一部が複数のクライアントデバイス110及び文書プラットフォーム120で実行され、単一の文書で作業する複数のユーザ間の共同作業を提供する分散型Webアプリケーションとして実装され得る。例えば、複数のユーザが同時にまたは並行してそのような共同文書を編集し、各ユーザの編集内容をリアルタイムまたはほぼリアルタイム(例えば、数ミリ秒または数秒以内)で表示し得る。あるユーザが文書を編集すると、その編集内容は文書プラットフォーム120に送信され、次いで、スプレッドシートを編集または表示している他の共同作業ユーザに転送され得る。この目的のために、文書プラットフォーム120は、2人のユーザが同時に文書の一部を編集しようとした場合など、共同作業を行うユーザ間の競合を処理し得る。例えば、文書プラットフォーム120は、受信した最初の編集を受け入れるか、または何らかの方法で、優先順位の高いユーザの編集が優先順位の低いユーザの編集よりも優先されるように、共同作業ユーザに優先順位を付け得る。ユーザの編集が文書プラットフォーム120によって拒否された場合、文書プラットフォーム120は、編集が拒否されたことをユーザに通知するメッセージをユーザに返信し得る。このように、複数のユーザが1つの文書上で、リアルタイム(またはほぼリアルタイム)で共同作業を行う可能性があり得る。いくつかの実施態様では、特定の文書を表示及び共同作業する当事者は、文書の最初の作成者によって指定され得る。例えば、文書の最初の作成者には、その作成者が他の共同作業者候補の各人に対して権限を指定できるようになる「管理者」権限が与えられ得る。最初の作成者は、他の共同作業者が、文書の編集、文書の表示のみ、文書の指定された部分の編集、共同作業者候補のリストへの追加ユーザの追加のうちの1つまたは複数を行う権限を有するように指定し得る。例えば、特定のユーザは文書の特定の部分を編集でき得るが、文書の他の指定された部分は、そのユーザに対して「ロック」され得、その結果、そのユーザはロックされた部分を表示することはできるが編集することはできない。いくつかの実施態様では、文書は誰でも表示及び/または編集できる「パブリック」文書として指定され得る。
【0042】
データ管理プラットフォーム200における異なるアプリケーションのインスタンス間でのデータの共有を示す、
図2を参照してさらに説明すると、本開示の実施態様によれば、説明されている機能及び動作は、上記で説明したシステム100を使用して実行できる。データ管理プラットフォーム200には、ホストアプリケーション150a(例えば、ワードプロセッシングアプリケーション)及びソースアプリケーション150b(例えば、タスク管理アプリケーション)などの1つまたは複数のアプリケーションが含まれ得る。
【0043】
いくつかの実施態様では、ホストアプリケーション150aは、1つまたは複数のホストアプリケーショングラフィカルユーザインターフェース201a及び201bを提供でき、ユーザはこれらを介して、それぞれ1つまたは複数のホストアプリケーションファイル202a及び202bにアクセスできる。ホストアプリケーションファイル202a及び202bは、様々なデータタイプ及び形式を含み得、埋め込みデータオブジェクトを含み得るため、データコンテナであると理解できる。例えば、
図2に示すように、ホストアプリケーションファイル202aは、ソースアプリケーションに関連付けられ、ホストアプリケーションのグラフィカルユーザインターフェース201aの視覚要素とのアンカリングまたは論理的な関連付けによって埋め込まれ、埋め込みソースアプリケーションデータオブジェクト210a及び211aとして機能するデータオブジェクトを有し得る。同様に、ホストアプリケーションファイル202bは、埋め込みソースアプリケーションデータオブジェクト212a、213a、及び214aなどの3つの埋め込みデータオブジェクトを有し得る。埋め込みデータオブジェクト210a~214a(本明細書では「埋め込みデータオブジェクト」とも呼ばれる)のそれぞれは、ソースアプリケーションデータオブジェクト210b~214b(本明細書では「データオブジェクトのソースコピー」とも呼ばれる)に対応し得る。対応するデータオブジェクトの対(例えば、212a及び212b)の各データオブジェクトは、対内の他のオブジェクトに加えられた変更に基づいて更新できる。
【0044】
図示の実施態様では、ソースアプリケーションデータオブジェクト210b~214bは、ユーザが、例えば、ソースアプリケーション150bと対話することができるように、それぞれのソースアプリケーショングラフィカルユーザインターフェース203a~203cを通じて視覚的に表示、アクセス、及び変更することができる。例えば、ソースアプリケーショングラフィカルユーザインターフェース203bは、ソースアプリケーションデータオブジェクト211b及びソースアプリケーションデータオブジェクト213bの視覚的表現を、各オブジェクトに関連付けられたそれぞれのデータ及び情報とともに含み得る。
【0045】
いくつかの実施態様では、データアクセスポリシまたはアクセス許可によって、それぞれのユーザインターフェースを介してアプリケーションに含まれるデータの表示または変更を許可されたユーザを制御できる。例えば、一方向矢印で表されているように、ユーザ220aは、ホストアプリケーションインターフェース201aを介してホストアプリケーションファイル202aを表示する許可を有し得るが、ホストアプリケーションのファイルに含まれるデータの編集許可(例えば、任意の変更を加える許可)は有し得ない。一方、ユーザ220bは、双方向矢印で示されているように、ホストアプリケーションファイル202a及びホストアプリケーションファイル202bに関して、表示許可及び編集許可の両方を有し得る。同様に、ユーザ220cは、ホストアプリケーションファイル202aの表示許可、及びホストアプリケーションファイル202bの表示許可及び編集許可の両方を有する。いくつかの実施態様では、ユーザがホストアプリケーションファイルのデータを編集するために必要な許可を有している場合、それによって、ユーザは、例えば、埋め込みソースアプリケーションデータオブジェクト210a~214aを含む、そのファイルに埋め込まれたデータオブジェクトを編集することもできる。
【0046】
ソースアプリケーションのグラフィカルユーザインターフェース203a~203cは、特定のユーザに排他的にアクセス可能であり得る。例えば、図示の実施態様では、ソースアプリケーションのグラフィカルユーザインターフェース203aは、それに含まれるソースアプリケーションデータオブジェクト210b及び212bとともに、ユーザ220dに排他的にアクセス可能であり得る。同様に、ソースアプリケーションのグラフィカルユーザインターフェース203bは、提示されたソースアプリケーションデータオブジェクト211b及び213bとともに、ユーザ220eに排他的にアクセス可能であり得、ソースアプリケーションのグラフィカルユーザインターフェース203cは、提示されたソースアプリケーションデータオブジェクト214bとともに、ユーザ220fに排他的にアクセス可能であり得る。データオブジェクトのインスタンスまたはそれぞれのコピーは、ホストアプリケーションまたはソースアプリケーションのいずれかのグラフィカルユーザインターフェース(GUI)を介して加えられた変更によって更新できる。以下で説明する
図3を参照してより詳細に理解できるように、データオブジェクトのデータに対する更新及び変更の通知を通じて、各アプリケーションのデータオブジェクトの最新のコピーが維持される。
【0047】
上記の説明に加えて、本明細書に記載のシステム、プログラム、または機能が、ユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクション、またはアクティビティ、職業、ユーザの好み、またはユーザの現在地に関する情報)の収集を可能にするかどうか、及びいつ可能にするか、ならびに、サーバからユーザにコンテンツまたは通信が送信されるかどうかについて、ユーザが選択を行うことを可能にする制御がユーザに提供され得る。さらに、特定のデータは、保存または使用される前に、個人を特定できる情報が削除されるように、1つまたは複数の方法で処理される場合がある。例えば、ユーザのアイデンティティは、ユーザ個人を特定できる情報を特定できないように処理され得るか、または、位置情報が取得される(市、郵便番号、または州レベルなど)場合、ユーザの特定の場所を特定することができないように、ユーザの地理的位置が一般化され得る。したがって、ユーザは、ユーザについてどのような情報が収集されるか、その情報がどのように使用されるか、及びユーザにどのような情報が提供されるかを制御し得る。
【0048】
図3は、いくつかの実施形態による、ホストアプリケーション302及びソースアプリケーション304などの異なるアプリケーションのインスタンス間でのシステム300におけるデータの同期及び保存を示すブロック図である。データオブジェクトは、ホストアプリケーションGUI310を介してホストアプリケーション302で生成することも、ソースアプリケーションGUI311を介してソースアプリケーション304で生成することもできるが、ソースアプリケーションGUI311とは異なり、ホストアプリケーションGUI310は埋め込みデータオブジェクト320a、320bを含み得る。埋め込みデータオブジェクトは、対応するソースアプリケーションデータオブジェクトに関連付けることができる。本明細書では、「埋め込みデータオブジェクト」及び「埋め込みソースアプリケーションデータオブジェクト」という用語は互換的に使用できることを理解されたい。さらに、本明細書では、「ソースデータオブジェクト」、「ソースアプリケーションデータオブジェクト」、及び「データオブジェクトのソースコピー」は互換的に使用できることを理解されたい。例えば、埋め込みソースアプリケーションデータオブジェクト320aは、データオブジェクト321aの対応するソースコピーに関連付けることができ、埋め込みデータオブジェクト320bは、ソースデータオブジェクト321bに関連付けることができる。対応するデータオブジェクトのそれぞれは、同じ概念要素(例えば、タスク)を表すことができるが、それが含まれるアプリケーションに応じて、関連付けられたデータまたはメタデータを有し得る。
【0049】
いくつかの実施態様では、各アプリケーションは、それぞれのアプリケーションのデータを記録するための独自の排他的データストアを有し得る。例えば、ホストアプリケーション302は、ホストアプリケーションデータストア342にアクセスして、その動作に必要なデータを記録できる。例えば、ホストアプリケーション302は、ホストアプリケーション310のファイル、及びそのファイルに含まれる埋め込みデータオブジェクト320a及び320bを表すデータを、それぞれ記録350a及び350bとしてホストアプリケーションデータストア342に記録できる。同様に、ソースアプリケーション304は、ソースアプリケーションデータストア343にアクセスして、その動作に必要なデータを記録できる。例えば、ソースアプリケーション304は、ソースアプリケーションGUI311、及びソースアプリケーションGUI311に含まれるソースデータオブジェクト321a及び321bを表すデータを、それぞれレコード351a及び351bとしてソースアプリケーションデータストア343に記録できる。データストアに含まれるレコードは、データオブジェクトを定義するデータ、及びデータオブジェクトに加えられた変更の履歴を含み得る。例えば、レコード350bは、埋め込みデータオブジェクト320bに関連するデータ、及びそのデータに対してこれまでに加えられたすべての変更を含み得る。いくつかの実施態様では、ホストアプリケーションデータストア342はホストアプリケーション302によって排他的にアクセス可能であり、ソースアプリケーションデータストア343はソースアプリケーション303によって排他的にアクセス可能である。アプリケーションごとに個別のデータストアを有することで、各アプリケーションはデータに関してそれぞれのコンプライアンスポリシに従って動作することが可能になり得る。さらに、一対のアプリケーション間で対応するデータオブジェクトの最新情報の共通ソースを維持するために、両方のアプリケーションが共有または共通のデータストレージ場所にアクセスできる。
【0050】
したがって、いくつかの実施態様では、ホストアプリケーション302及びソースアプリケーション304の両方が共通のデータストア340にアクセスできる。各アプリケーションは、共通データストア340に直接アクセスすることも、他のアプリケーションを介してアクセスすることもできる。共通データストア340には、ホストアプリケーション302及びソースアプリケーション304のデータオブジェクトに対応するレコード322a、322bを記憶できる。例えば、ソースアプリケーションデータオブジェクト321に関連付けられたホストアプリケーション302からの埋め込みデータオブジェクト320aは、共通データストア340に保存された対応するレコード322aを有し得る。レコード322aは、対応するデータオブジェクトの最新バージョンのデータ、及びそのデータに対してこれまでに加えられたすべての変更のレコードを含み得る。いくつかの実施態様では、データオブジェクトが(例えば、GUI310を介して)ホストアプリケーションファイルに生成されるか埋め込まれるたびに、対応するレコードが共通データストアに作成される。その後、ホストアプリケーション302の埋め込みデータオブジェクトに変更が加えられることによって、またはソースアプリケーション304のソースデータオブジェクトに変更が加えられることによってのいずれかで、データオブジェクトに変更が加えられるたびに、その変更を共通データストアに記録できる。したがって、前述のように、ホストアプリケーション302及びソースアプリケーション304は、異なるユーザに対して異なるアクセス許可及びルールを有し得るが、変更がどのアプリケーションから発生し得たかに関係なく、いずれかのアプリケーションでデータオブジェクトに変更が加えられた場合、その変更は共通データストア340の対応するレコードに伝播され得る。
【0051】
いくつかの実施態様では、共通データストアは、ホストアプリケーション302によって管理できる埋め込みデータインデックステーブルを含み得る。例えば、ソースデータオブジェクト321bが生成され、埋め込みソースアプリケーションデータオブジェクト320bとしてホストアプリケーション302に埋め込まれた後、ソースデータオブジェクト321bがソースアプリケーションGUI311を通じて修正された場合、ソースアプリケーションからホストアプリケーション302に通知が送信され、加えられた変更に従って対応する埋め込みデータオブジェクト320bが更新される。次いで、アクセス許可により更新が許可されている場合は、ホストアプリケーション302で更新が実行され得るか、または、アクセス許可により、ソースデータオブジェクトに変更を加えたユーザにホストアプリケーション302で変更を加えることが許可されていない場合は、更新に関する通知が生成され得る。ただし、ソースアプリケーションデータオブジェクトに変更を加えたユーザが必要な許可を有していたかどうかに関係なく、ホストアプリケーション(または、その代わりにソースアプリケーション)によって、共通データストア340の埋め込みデータインデックステーブルに変更が記録され、データオブジェクトに加えられた変更が失われないようにすることができる。
【0052】
この共通データストア340、または、いくつかの実施態様では、共通データストア340内に含まれる埋め込みデータインデックステーブルを使用して、定期的なデータ不一致チェックを実行できる。例えば、定期的な時間間隔で、データオブジェクトに関連するデータを、ホストアプリケーションデータストア342と共通データストア340の間で比較できる。同様に、定期的な時間間隔で、データオブジェクトに関連するデータを、ソースアプリケーションデータストア343と共通データストア340の間で比較できる。一方のデータストアに含まれるデータオブジェクトに関連するデータが、他方のデータストアに含まれるデータオブジェクトに関連するデータと一致しない場合、その不一致の通知が生成され、いずれかのアプリケーションのユーザに提示される。あるいは、不一致が検出された場合は、データオブジェクト共通データストア340に関連するデータを使用して、他のデータストア内のデータオブジェクトに関連するデータを置き換え、それに応じてそれぞれのアプリケーションGUIデータオブジェクトを更新することができる。タスク及びそれに関連するデータオブジェクトを作成して割り当てる方法の実施態様については、
図5A~
図5Bを参照して以下でより詳細に説明する。
【0053】
図4A及び
図4Bは、いくつかの実施態様により、生産性アプリケーション及びタスク管理アプリケーションによってそれぞれ提供されるグラフィカルユーザインターフェース(GUI)の例を示す。いくつかの実施態様では、生産性アプリケーションGUI402は、タスク管理アプリケーションから埋め込みデータオブジェクトで構成されたクラウドベースまたはクライアントベースのワードプロセッシングアプリケーションによって提供されるGUIであり得る。
【0054】
生産性アプリケーションは、ホストアプリケーション150aとして機能し、ユーザが生産性アプリケーションのファイル(例えば、ホストアプリケーションデータコンテナ)と対話し、作業することを可能にする、関連するグラフィカルユーザインターフェース(GUI)402を有し得る。生産性アプリケーションGUI402は、1つまたは複数のタスク412a、412bに関連付けられた埋め込みデータオブジェクト416として定義できる項目のチェックリストなどのリストを提示するように構成できる。図示の例では、「Todo」リストには2つのタスク、つまり、「研究計画の終了」というタスク412bが含まれており、各タスクは、以下でより詳しく説明するソースタスクデータオブジェクト(例えば、アサイニータスクオブジェクト)422に関連付けられた埋め込みタスクデータオブジェクト(例えば、アサイナータスクオブジェクト)416として定義できる。
【0055】
いくつかの実施態様では、埋め込みタスクデータオブジェクト416の視覚的表現は、生産性アプリケーションGUI402のユーザに表示される、それぞれの関連付けられたタスクに関連する情報を有し得る。例えば、タスク412の名前またはタイトルは、「研究計画の終了」というタイトルが完了したことを示す完了ステータスインジケータ418とともに表示され得る。ユーザは、インターフェース410を通じて別のユーザにタスクを割り当てることができる。例えば、図示の実施態様では、アサイナーユーザは、埋め込みタスクデータオブジェクトを修正し、フィールド414でアサイニーユーザの電子メールを指定するか、アサイニーユーザのアバター419を選択することによって、アサイニーユーザを選択することにより、タスク412aを割り当てることができる。いくつかの実施態様では、タスクをユーザに割り当てることは、タスクまたは埋め込みタスクオブジェクト416の横に配置されたアバターのようなアサイニーユーザのグラフィカル表現(「グラフィカルアサイニーユーザ表現」)を生成して、タスクがアサイニーユーザに割り当てられたことを示すことを含み得る。図示の実施態様では、生産性アプリケーション402は、「今後の研究のための募集」と題するタスク412aがアサイナーユーザによってアサイニーユーザに割り当てられたことを示す通知をタスク管理アプリケーション404に送信する。
【0056】
タスク管理アプリケーションは、タスクに関連付けられた情報を含む1つまたは複数のインタラクティブなグラフィカル要素424a~424dを有する、タスクに関連付けられたデータコンテナのグラフィカル表現420を含むGUI404を提示できる。グラフィカル表現420は、それぞれのタスクに関連付けられた1つまたは複数のデータオブジェクトに基づき得る。例えば、グラフィカル要素424a~424dは、埋め込みタスクデータオブジェクト416に関連付けられたタスクプロパティ422に基づいており、タスクに関連する情報414を含み得る。いくつかの実施態様では、グラフィカル要素424aは完了インジケータを表し得、タスクの完了ステータスに関する情報を含み得、タスクが完了したかどうかを示すために切り替え得る。グラフィカル要素424bはテキストフィールドであり得、タスクのタイトルに関する情報414を含み得、タスク管理アプリケーションGUI404でタスクの名前を変更するために、アサイニーユーザによって修正され得る。グラフィカル要素424cはタスクに関連するメモやコメントを含む情報414を表すことができ、アサイニーユーザによって修正され、アサイニーユーザにのみ表示されるタスクに関連するテキストコンテンツを追加または削除することができる。グラフィカル要素424dは日付フィールドを表し得、タスクの期限に関する情報414を含め得、アサイナーユーザによって割り当てられた期限と同期されない可能性がある個人の期限を変更するために、アサイニーユーザによって修正され得る。
【0057】
いくつかの実施態様では、アサイニーがタスクの完了ステータスの変更を示すために、(例えば、完了インジケータ424aを切り替えることによって)タスクに関連する情報に修正を加えると、タスク管理アプリケーションは、対応する更新を行うために生産性アプリケーションに通知を送信できる。生産性アプリケーションは、アサイニーユーザがタスク管理アプリケーションGUI404で行った修正に対応する修正により、埋め込みタスクデータオブジェクトを更新できる。生産性アプリケーションGUI402は、対応する埋め込みタスクデータオブジェクトの変更された(例えば、完了した)完了ステータスのインジケータ418として機能するチェックボックスのチェックまたはタスクタイトルの取り消し線を有し得、データオブジェクトが埋め込まれている生産性アプリケーションのファイルのユーザであるアサイナーに表示され得る。特に、タスクの完了ステータスに関連しない情報に対してタスク管理アプリケーションで加えられた変更は、生産性アプリケーションと同期されない。異なるアプリケーションのユーザ間でタスクを割り当てる及び変更する方法のより詳細な説明は、
図5A及び
図5Bを参照して以下に提供する。対応する方法500a及び500bは、ハードウェア(回路、専用ロジックなど)、ソフトウェア(例えば、処理デバイス上で実行される命令)、またはそれらの組み合わせを含み得る処理ロジックによって実行され得る。いくつかの実施態様では、方法500a及び500bの一部またはすべての動作は、
図1のホストアプリケーション150a、ソースアプリケーション150b、または統合アプリケーションマネージャ160によって実行され得る。
【0058】
図5A及び
図5Bは、ホストアプリケーション及びソースアプリケーションのユーザの観点から、異なるアプリケーション間でタスクを割り当て及び編集するための方法500a及び500bのフロー図をそれぞれ示している。方法500aは、ソースアプリケーション(例えば、生産性アプリケーション402)の観点からタスクが割り当てられ、追跡されることに関連し、方法500bは、ソースアプリケーション(例えば、タスク管理アプリケーション404)の観点からタスクが割り当てられ、修正されることに関連する。
【0059】
ブロック502aにおいて、処理ロジックは、生産性アプリケーションのユーザインターフェースに表示されるタスクに関連付けられたデータオブジェクトを生成できる。いくつかの実施態様では、データオブジェクトはホストアプリケーションの埋め込みタスクデータオブジェクトであり得る。ブロック502において、タスクを作成し、タスクのデータオブジェクトを生成するために、処理ロジックは、タスクを作成する要求を示すアサイナーユーザからのユーザ入力を(例えば、生産性アプリケーション402のインターフェースを介して)受信し、アサイナーユーザにタスクの視覚的表現を(例えば、生産性アプリケーション402のインターフェースを介して)提示できる。処理ロジックは、ブロック504aにおいて、タスクをアサイニーに割り当てることを示すユーザ入力を受信し、それに応じてタスクをアサイニーに割り当てることができる。タスクをアサイニーに割り当てることは、ブロック505aにおいて、アサイナーユーザの入力に基づいて、ユーザリストからアサイニーユーザを選択すること、または、上記の
図4を参照して説明した方法に従ってアサイニーユーザを識別することを含み得る。場合によっては、処理ロジックは、タスクが最初に割り当てられた方法と同様の方法で、ブロック506aにおいてタスクを別のアサイニーユーザに再割り当てすることができる。例えば、ブロック506aにおいて、処理ロジックは、アサイナーユーザによって入力された、タスクの別のアサイニーユーザを示す入力を受信し、タスクが以前に割り当てられたアサイニーユーザの代わりに、またはそのアサイニーユーザに加えて、別のアサイニーユーザを追加することができる。
【0060】
処理ロジックは、ブロック508aにおいて、タスク及びそのアサイニーへの割り当てを示す通知をソースアプリケーションに送信し、アサイニーが確認できるようにタスクの視覚的表現を(例えば、ソースアプリケーションのユーザインターフェースを介して)提示することができる。タスクの視覚的表現は、例えば、ソースアプリケーションのインターフェースにおいて、1つまたは複数のインタラクティブなグラフィカル要素424a~424dを有し得る。処理ロジックはまた、ブロック510aにおいて、割り当てられたタスクをアサイニーに通知する電子メールをアサイニーに送信することができる。この時点で、アサイニーはソースアプリケーション内で割り当てられたタスクを表示できる。例えば、タスクが生産性アプリケーションでアサイナーによって割り当てられると、アサイニーはタスク管理アプリケーションのGUIでタスクのプロパティを表示及び編集できる。ブロック512aにおいて、処理ロジックは、タスクの完了ステータスの変更を示す更新を有する通知をソースアプリケーションから受信できる。例えば、ブロック512aにおいて、処理ロジックは、タスクの完了ステータスの変更を示すタスクの完了ステータスに関連するインタラクティブなグラフィカル要素の1つに関するユーザ入力をアサイナーユーザから受信できる。このように、生産性アプリケーションは、タスクが完了したことを示す更新をタスク管理アプリケーションから受信できる。その結果、処理ロジックは、ブロック514aにおいて、タスクの修正された完了ステータスを示す通知をホストアプリケーションに送信できる。このように、ホストアプリケーションは、ホストアプリケーションのユーザインターフェース内のタスクに関連付けられたデータオブジェクトを修正し、タスクのステータスの変更を視覚的に表示(例えば、視覚表現の外観に加えられた変更)することで、タスクの視覚表現を更新できる。例えば、ホスト生産性アプリケーションの埋め込みデータオブジェクトでチェックボックスをオンにし得るか、またはタスクのタイトルに取り消し線を付け得る。ソースアプリケーション側で実行されるミラーリングされた方法500bは、上記で説明した方法500aの要素と連動して動作すると理解できる。
【0061】
いくつかの実施態様では、処理ロジックは、ブロック508bでタスクがアサイニーに割り当てられたことを示す通知を受信できる。この通知は、ブロック508aでホストアプリケーションからソースアプリケーションに送信された通知に対応する。他の実施態様では、処理ロジックは、ブロック510bで割り当てられたタスクの通知を含む電子メールを受信できる。この電子メールは、ブロック510aで送信された電子メールに対応し得る。
【0062】
ブロック509bでは、処理ロジックは、タスクに関連付けられたデータコンテナのグラフィカル表現420、及びタスクの視覚的表現422をソースアプリケーションのグラフィカルユーザインターフェース(GUI)に提示できる。グラフィカル表現は、タスクに関連付けられた情報を含む1つまたは複数のインタラクティブなグラフィカル要素424a~424d(例えば、テキストフィールドまたは完了ステータスインジケータ)を含み得る。インタラクティブなグラフィカル要素の1つは、ユーザからの入力に基づいてタスクの完了ステータスに対応し、その変更を示すことができる。いくつかの実施態様では、インタラクティブなグラフィカル要素は、タスクの完了ステータス、タスクのタイトル、期限、及びタスクに関連するメモ及びコメントの表示を含み得る。インタラクティブなグラフィカル要素の情報は、ブロック513において変更できる。処理ロジックは、ブロック511において、タスクステータスの表示に関連するグラフィカル要素に関するユーザ入力に基づいて、タスクの完了ステータスを修正できる。アサイニーユーザは、例えば、完了ステータスインジケータ424aなどのグラフィカル要素の1つの情報を修正することによって、その入力を提供できる。ブロック512において、処理ロジックは、タスクの修正された完了ステータスを示す通知をソースアプリケーションからホストアプリケーションに送信できる。この完了ステータスの変更の指示は、ブロック512で受信されたタスクステータスの更新に対応できる。特に、ブロック513で加えられた変更のいくつかは、ソースアプリケーションのユーザインターフェース内に排他的に含まれ得るため、タスクのアサイナーには表示されず、アクセスもできない。処理ロジックは、タスクのプロパティ(例えば、タスクのタイトル、タスクの期限、タスクのコメント/メモなど)の変更を示すユーザ入力を受信し、ユーザ入力に基づいてプロパティに対応するインタラクティブなグラフィカル要素を修正できる。いくつかの実施態様では、処理ロジックは、プロパティに対応するインタラクティブなグラフィカル要素の設定に基づいて、ソースアプリケーションを介して発生するタスクのプロパティの変更についてホストアプリケーションに通知しないようにすることができる。したがって、アクセス許可ルールにより、ソースアプリケーションはホストアプリケーションのアサイナーユーザにアクセスできないため、いくつかの実施態様では、アサイニーによるソースアプリケーション内のタスク(例えば、アサイニータスクオブジェクト)に関連する変更は、その変更がタスクの完了ステータスに関係しない限り、アサイナーユーザからは見えなくすることができる。
【0063】
図6は、本開示の実施態様による、例示的なコンピュータシステムを示すブロック図である。コンピュータシステム600は、
図1のサーバマシン130またはクライアントデバイス110であり得る。マシンは、エンドポイントサーバネットワーク環境ではサーバまたはエンドポイントマシンとして動作し得るか、またはピアツーピア(または分散)ネットワーク環境ではピアマシンとして動作し得る。マシンには、テレビ、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、Webアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、または任意のマシンであって、そのマシンによって実行される動作を指定する1組の命令を(順次的に、またはそれ以外の方法で)実行できる任意のマシンであり得る。さらに、単一のマシンのみが例示されるが、用語「マシン」には、本明細書で論じる方法論のうちの任意の1つまたは複数を実行するために、1組(または複数の組)の命令を個々でまたは共同して実行するマシンの任意の集合も含まれるものとする。
【0064】
例示のコンピュータシステム600には、処理デバイス(プロセッサ)602、メインメモリ(メモリデバイス)604(例えば、読み取り専用メモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)、ダブルデータレート(DDR SDRAM)、またはDRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ606(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、及びデータストレージデバイス618が含まれており、これらはバス640を介して相互に通信する。
【0065】
プロセッサ(処理デバイス)602は、マイクロプロセッサ、中央処理装置などのような1つまたは複数の汎用処理デバイスを表す。より具体的には、プロセッサ602は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、あるいは命令セットの組み合わせを実装するプロセッサであり得る。プロセッサ602はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどの1つまたは複数の専用処理装置であり得る。プロセッサ602は、本明細書で論じる動作を実行するための(例えば、データオブジェクトを生成、埋め込み、更新するための、及び様々なアプリケーションでタスクを割り当て、修正するための)命令605を実行するように構成されている。
【0066】
コンピュータシステム600には、ネットワークインターフェースデバイス608がさらに含まれ得る。コンピュータシステム600にはまた、ビデオ表示ユニット610(例えば、液晶ディスプレイ(LCD)またはブラウン管(CRT))、入力デバイス612(例えば、キーボード、及び英数字キーボード、モーションセンサ入力デバイス、タッチスクリーン)、カーソル制御デバイス614(例えば、マウス)、及び信号生成デバイス620(例えば、スピーカ)が含まれ得る。
【0067】
データ記憶デバイス618には、本明細書で説明した方法論または機能の1つまたは複数を具体化する命令605(例えば、データオブジェクトの生成、埋め込み、更新、及び様々なアプリケーションでのタスクの割り当て及び変更)の1つまたは複数のセットが記憶された非一時的な機械可読記憶媒体624(コンピュータ可読記憶媒体でもある)を含み得る。命令は、コンピュータシステム600によって実行中、完全にまたは少なくとも部分的にメインメモリ604内及び/またはプロセッサ602内に存在し得、メインメモリ604及びプロセッサ602はまた、機械可読記憶媒体を構成する。命令は、ネットワークインターフェースデバイス608を介してネットワーク630を経由してさらに送信または受信され得る。
【0068】
一実施態様では、命令605には、異なるアプリケーション間でデータオブジェクトを生成、埋め込み、保持、及び更新するための命令が含まれる。コンピュータ可読記憶媒体624(機械可読記憶媒体)は、例示的な実施態様では単一の媒体として示されているが、用語「コンピュータ可読記憶媒体」及び「機械可読記憶媒体」には、1つまたは複数の命令セットを記憶する単一の媒体または複数の媒体(例えば、集中型または分散型のデータベース、及び/または関連するキャッシュ及びサーバ)が含まれるものと解釈されるべきである。用語「コンピュータ可読記憶媒体」及び「機械可読記憶媒体」には、マシンによって実行される命令のセットを記憶、符号化、または搬送することができ、マシンに本開示の方法論の1つまたは複数を実行させる任意の媒体も含まれるものと解釈される。したがって、用語「コンピュータ可読記憶媒体」及び「機械可読記憶媒体」には、限定されないが、ソリッドステートメモリ、光学媒体、磁気媒体が含まれるものとする。
【0069】
本明細書全体を通して「1つの実施態様(one implementation)」または「一実施態様(an implementation)」への言及は、実施態様に関連して説明されている特定の特徴、構造、または特性が少なくとも1つの実施態様に含まれていることを意味する。したがって、本明細書の様々な箇所で「1つの実施態様では(in one implementation)」または「一実施態様では(in an implementation)」という語句が現れるが、状況に応じて、同じ実施態様を指す場合もあるが、必ずしもそうではない。さらに、特定の特徴、構造、または特性は、1つまたは複数の実施態様において任意の適切な方法で組み合わせ得る。
【0070】
用語「含む(includes)」、「含んでいる(including)」、「有する(has)」、「含む(contains)」、それらの変形、及びその他の類似の単語が詳細な説明または特許請求の範囲のいずれかで使用される限りにおいて、これらの用語は、追加の要素またはその他の要素を排除することなく、オープントランジションワードとしての「含む(comprising)」という用語と同様に包括的であることが意図されている。
【0071】
本出願で使用される用語「構成要素」、「モジュール」、「システム」などは、一般に、コンピュータ関連のエンティティ、ハードウェア(例えば、回路)、ソフトウェア、ハードウェアとソフトウェアの組み合わせ、または1つまたは複数の特定の機能を備えた動作マシンに関連するエンティティを指すことを意図している。例えば、構成要素は、限定されないが、プロセッサ(例えば、デジタル信号プロセッサ)上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、及び/またはコンピュータであり得る。例示として、コントローラ上で実行されるアプリケーション及びコントローラの両方が構成要素になり得る。1つまたは複数の構成要素は、プロセス及び/または実行スレッド内に存在し得、構成要素は、1つのコンピュータ上にローカライズされ得るか、及び/または2つ以上のコンピュータ間に分散され得る。さらに、「デバイス」は、特別に設計されたハードウェア、ハードウェアが特定の機能(例えば、関心点及び/または記述子の生成)を実行できるようにするソフトウェアの実行によって特化された汎用ハードウェア、コンピュータ可読媒体上のソフトウェア、またはそれらの組み合わせの形態で提供され得る。
【0072】
前述のシステム、回路、モジュールなどは、複数の構成要素及び/またはブロック間の相互作用に関して説明されている。そのようなシステム、回路、構成要素、ブロックなどには、それらの構成要素または指定されたサブ構成要素、指定された構成要素またはサブ構成要素の一部、及び/または追加の構成要素が含まれ得、前述の様々な順列及び組み合わせに従うことが理解されよう。サブ構成要素は、親構成要素(階層型)に含まれるのではなく、他の構成要素と通信可能に結合された構成要素として実装することもできる。さらに、1つまたは複数の構成要素は、統合機能を提供する単一の構成要素に組み合わされ得るか、またはいくつかの別個のサブ構成要素に分割され得ること、及び管理層などの任意の1つまたは複数の中間層が、統合機能を提供するために、そのようなサブ構成要素と通信可能に結合するために提供され得ることに留意されたい。本明細書に記載の任意の構成要素はまた、本明細書に具体的に記載されていないが、当業者には既知の1つまたは複数の他の構成要素と相互作用し得る。
【0073】
さらに、「例」または「例示的」という単語は、例、実例、または例示として機能することを意味するために本明細書で使用される。本明細書で「例示的」として記載された任意の態様または設計は、必ずしも他の態様または設計よりも好ましい、または有利であると解釈されるべきではない。むしろ、「例」または「例示的」という単語の使用は、概念を具象的な態様で提示することを意図したものである。本出願で使用されるように、用語「または」は、排他的な「または」ではなく包含的な「または」を意味することが意図される。つまり、別様に指定されない限り、または文脈から明らかでない限り、「XはAまたはBを使用する」とは、自然な包括的置換を意味することが意図される。すなわち、XがAを使用する場合、XがBを使用する場合、または、XがA及びBの両方を使用する場合、前述のいずれの場合でも、「XはAまたはBを使用する」が満たされる。さらに、本出願及び添付の請求項で使用される冠詞「a」及び「an」は、特に指定がない限り、または文脈から単数形を指すことが明らかでない限り、一般に「1つまたは複数」を意味すると解釈されるべきである。
【0074】
最後に、本明細書に記載の実施態様には、ユーザ及び/またはユーザの活動を記述するデータの収集が含まれる。一実施態様では、そのようなデータは、ユーザがこのデータの収集に同意した場合にのみ収集される。いくつかの実施態様では、ユーザはデータ収集を明示的に許可するように求められる。さらに、ユーザはそのようなデータ収集活動への参加をオプトインまたはオプトアウトし得る。一実施態様では、収集されたデータは、収集されたデータからユーザの身元を特定することができないように、任意の統計パターンを取得するための任意の分析を実行する前に匿名化される。
【国際調査報告】