IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特表2024-536193異なるアプリケーション間にわたる共同データの共有インスタンスの埋め込み
<>
  • 特表-異なるアプリケーション間にわたる共同データの共有インスタンスの埋め込み 図1
  • 特表-異なるアプリケーション間にわたる共同データの共有インスタンスの埋め込み 図2
  • 特表-異なるアプリケーション間にわたる共同データの共有インスタンスの埋め込み 図3
  • 特表-異なるアプリケーション間にわたる共同データの共有インスタンスの埋め込み 図4
  • 特表-異なるアプリケーション間にわたる共同データの共有インスタンスの埋め込み 図5
  • 特表-異なるアプリケーション間にわたる共同データの共有インスタンスの埋め込み 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】異なるアプリケーション間にわたる共同データの共有インスタンスの埋め込み
(51)【国際特許分類】
   G06F 16/27 20190101AFI20240927BHJP
   G06F 16/25 20190101ALI20240927BHJP
   G06F 16/215 20190101ALI20240927BHJP
   G06F 21/60 20130101ALI20240927BHJP
【FI】
G06F16/27
G06F16/25
G06F16/215
G06F21/60
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024519439
(86)(22)【出願日】2022-09-28
(85)【翻訳文提出日】2024-05-27
(86)【国際出願番号】 US2022045107
(87)【国際公開番号】W WO2023055848
(87)【国際公開日】2023-04-06
(31)【優先権主張番号】17/489,294
(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)【発明者】
【氏名】ヤコブレフ、コンスタンティン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA01
5B175CA09
(57)【要約】
ある実施態様では、方法は、ソースアプリケーションデータオブジェクトをホストアプリケーションファイルに埋め込させることと、ソースアプリケーションデータオブジェクトに関連付けられた情報を共通データストアに記録することと、を含む。本方法は、さらに、埋め込みソースアプリケーションデータオブジェクトに加えられた修正を識別し、通知をソースアプリケーションに送信して、埋め込みソースアプリケーションデータオブジェクトに加えられた修正に基づいて、ソースアプリケーションデータオブジェクトの対応するソースコピーを更新し、共通データストアに修正を記録することを含む。本方法は、また、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更を識別することと、ホストアプリケーションファイルのアクセス許可に従って、ホストアプリケーションに、ホストアプリケーションデータストア内で埋め込みソースアプリケーションデータオブジェクトを更新させることと、共通データストアの変更を記録することと、を含む。
【選択図】図2
【特許請求の範囲】
【請求項1】
処理デバイスによって、ソースアプリケーションデータオブジェクトをホストアプリケーションファイルに埋め込むことと、
前記ソースアプリケーションデータオブジェクトに関連付けられた情報を共通データストアに記録することであって、前記ソースアプリケーションデータオブジェクトに関連付けられた前記情報は、また、ホストアプリケーションデータストア及びソースアプリケーションデータストアにも記録される、前記記録することと、
ホストアプリケーションユーザーインターフェースを介して埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた修正を識別することと、
通知を前記ソースアプリケーションに送信して、埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた前記修正に基づいて、前記ソースアプリケーションデータストア内の前記ソースアプリケーションデータオブジェクトの対応するソースコピーを更新し、埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた前記修正を前記共通データストアに記録することと、
ソースアプリケーションユーザーインターフェースを介して、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた変更を識別することと、
前記ホストアプリケーションに、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更に基づいて、かつ前記ホストアプリケーションファイルのアクセス許可に従って、埋め込まれた前記ソースアプリケーションデータオブジェクトを前記ホストアプリケーションデータストアで更新させ、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更を前記共通データストアに記録することと、
を含む、方法。
【請求項2】
前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更を識別することは、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更に関して、前記ソースアプリケーションによって開始された通知を受信することを含み、
前記ホストアプリケーションに埋め込まれた前記ソースアプリケーションデータオブジェクトを前記ホストアプリケーションデータストアで更新させることは、
前記アクセス許可により、ユーザーが前記ホストアプリケーションファイルに変更を加えることが可能であるかどうかを決定することと、
前記アクセス許可により前記ユーザーが前記ホストアプリケーションファイルに変更を加えることが可能になるとの決定に応答して、埋め込まれた前記ソースアプリケーションデータオブジェクトを、前記ユーザーによって加えられた前記変更について前記ホストアプリケーションデータストアで更新させることと、
を含む、請求項1に記載の方法。
【請求項3】
第2のユーザーによって前記アプリケーションデータオブジェクトの前記ソースコピーに加えられた第2の変更を識別することと、
前記アクセス許可により、前記第2のユーザーが前記ホストアプリケーションファイルを編集することが可能であるかどうかを決定することと、
前記アクセス許可により前記第2のユーザーが前記ホストアプリケーションファイルを編集することを禁止しているとの決定に応答して、前記ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対して前記ソースアプリケーションデータオブジェクトに関する通知を生成することであって、前記通知は前記第2のユーザーによって加えられた変更を示す、前記生成することと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記ホストアプリケーションユーザーインターフェースを介して埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた前記修正を識別すると、更新成功の確認が生成されるまで、前記ソースアプリケーションに前記通知を定期的に再送信して、前記ソースアプリケーションデータストア内の前記ソースアプリケーションデータオブジェクトの前記対応するソースコピーを更新することをさらに含む、請求項1に記載の方法。
【請求項5】
前記ホストアプリケーションデータストアと前記共通データストアとの間で、前記ソースアプリケーションデータオブジェクトに関連付けられた前記情報のデータ不整合チェックを定期的に行うことをさらに含む、請求項1に記載の方法。
【請求項6】
データ不整合を検出したことに応答して、前記共通データストアに記録された対応するデータに基づいて、前記ホストアプリケーションデータストアに記録されたデータを更新することをさらに含む、請求項5に記載の方法。
【請求項7】
データ不整合を検出したことに応答して、前記ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対して、前記ソースアプリケーションデータオブジェクトに関連付けられた前記データ不整合に関する通知を生成することをさらに含む、請求項5に記載の方法。
【請求項8】
メモリデバイスと、
前記メモリデバイスに結合された処理デバイスと、を備え、前記処理デバイスは、
ソースアプリケーションデータオブジェクトをホストアプリケーションファイルに埋め込むことと、
前記ソースアプリケーションデータオブジェクトに関連付けられた情報を共通データストアに記録することであって、前記ソースアプリケーションデータオブジェクトに関連付けられた前記情報は、また、ホストアプリケーションデータストア及びソースアプリケーションデータストアにも記録される、前記記録することと、
ホストアプリケーションユーザーインターフェースを介して埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた修正を識別することと、
通知を前記ソースアプリケーションに送信して、埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた前記修正に基づいて、前記ソースアプリケーションデータストア内の前記ソースアプリケーションデータオブジェクトの対応するソースコピーを更新し、埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた前記修正を前記共通データストアに記録することと、
ソースアプリケーションユーザーインターフェースを介して、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた変更を識別することと、
前記ホストアプリケーションに、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更に基づいて、かつ前記ホストアプリケーションファイルのアクセス許可に従って、埋め込まれた前記ソースアプリケーションデータオブジェクトを前記ホストアプリケーションデータストアで更新させ、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更を前記共通データストアに記録することと、
を行うように構成される、システム。
【請求項9】
前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更を識別することは、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更に関して、前記ソースアプリケーションによって開始された通知を受信することを含み、
前記ホストアプリケーションに埋め込まれた前記ソースアプリケーションデータオブジェクトを前記ホストアプリケーションデータストアで更新させることは、
前記アクセス許可により、ユーザーが前記ホストアプリケーションファイルに変更を加えることが可能であるかどうかを決定することと、
前記アクセス許可により前記ユーザーが前記ホストアプリケーションファイルに変更を加えることが可能になるとの決定に応答して、埋め込まれた前記ソースアプリケーションデータオブジェクトを、前記ユーザーによって加えられた前記変更について前記ホストアプリケーションデータストアで更新させることと、
を含む、請求項8に記載のシステム。
【請求項10】
前記処理デバイスは、さらに、
第2のユーザーによって前記アプリケーションデータオブジェクトの前記ソースコピーに加えられた第2の変更を識別することと、
前記アクセス許可により、前記第2のユーザーが前記ホストアプリケーションファイルを編集することが可能であるかどうかを決定することと、
前記アクセス許可により前記第2のユーザーが前記ホストアプリケーションファイルを編集することを禁止しているとの決定に応答して、前記ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対して前記ソースアプリケーションデータオブジェクトに関する通知を生成することであって、前記通知は前記第2のユーザーによって加えられた変更を示す、前記生成することと、
を行うように構成される、請求項8に記載のシステム。
【請求項11】
前記処理デバイスは、さらに、前記ホストアプリケーションユーザーインターフェースを介して埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた前記修正を識別すると、更新成功の確認が生成されるまで、前記ソースアプリケーションに前記通知を定期的に再送信して、前記ソースアプリケーションデータストア内の前記ソースアプリケーションデータオブジェクトの前記対応するソースコピーを更新するように構成される、請求項8に記載のシステム。
【請求項12】
前記処理デバイスは、さらに、前記ホストアプリケーションデータストアと前記共通データストアとの間で、前記ソースアプリケーションデータオブジェクトに関連付けられた前記情報のデータ不整合チェックを定期的に行うように構成される、請求項8に記載のシステム。
【請求項13】
前記処理デバイスは、さらに、データ不整合を検出したことに応答して、前記共通データストアに記録された対応するデータに基づいて、前記ホストアプリケーションデータストアに記録されたデータを更新するように構成される、請求項12に記載のシステム。
【請求項14】
前記処理デバイスは、さらに、データ不整合を検出したことに応答して、前記ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対して、前記ソースアプリケーションデータオブジェクトに関連付けられた前記データ不整合に関する通知を生成するように構成される、請求項12に記載のシステム。
【請求項15】
命令を含む非一時的コンピュータ読取可能ストレージ媒体であって、前記命令は、処理デバイスによって実行されるとき、前記処理デバイスに、
ソースアプリケーションデータオブジェクトをホストアプリケーションファイルに埋め込むことと、
前記ソースアプリケーションデータオブジェクトに関連付けられた情報を共通データストアに記録することであって、前記ソースアプリケーションデータオブジェクトに関連付けられた前記情報は、また、ホストアプリケーションデータストア及びソースアプリケーションデータストアにも記録される、前記記録することと、
ホストアプリケーションユーザーインターフェースを介して埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた修正を識別することと、
通知を前記ソースアプリケーションに送信して、埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた前記修正に基づいて、前記ソースアプリケーションデータストア内の前記ソースアプリケーションデータオブジェクトの対応するソースコピーを更新し、埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた前記修正を前記共通データストアに記録することと、
ソースアプリケーションユーザーインターフェースを介して、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた変更を識別することと、
前記ホストアプリケーションに、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更に基づいて、かつ前記ホストアプリケーションファイルのアクセス許可に従って、埋め込まれた前記ソースアプリケーションデータオブジェクトを前記ホストアプリケーションデータストアで更新させ、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更を前記共通データストアに記録することと、
を行わせる、前記非一時的コンピュータ読取可能ストレージ媒体。
【請求項16】
前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更を識別することは、前記ソースアプリケーションデータオブジェクトの前記ソースコピーに加えられた前記変更に関して、前記ソースアプリケーションによって開始された通知を受信することを含み、
前記ホストアプリケーションに埋め込まれた前記ソースアプリケーションデータオブジェクトを前記ホストアプリケーションデータストアで更新させることは、
前記アクセス許可により、ユーザーが前記ホストアプリケーションファイルに変更を加えることが可能であるかどうかを決定することと、
前記アクセス許可により前記ユーザーが前記ホストアプリケーションファイルに変更を加えることが可能になるとの決定に応答して、埋め込まれた前記ソースアプリケーションデータオブジェクトを、前記ユーザーによって加えられた前記変更について前記ホストアプリケーションデータストアで更新させることと、
を含む、請求項15に記載の非一時的コンピュータ読取可能ストレージ媒体。
【請求項17】
前記命令は、処理デバイスによって実行されるとき、さらに、前記処理デバイスに、
第2のユーザーによって前記アプリケーションデータオブジェクトの前記ソースコピーに加えられた第2の変更を識別することと、
前記アクセス許可により、前記第2のユーザーが前記ホストアプリケーションファイルを編集することが可能であるかどうかを決定することと、
前記アクセス許可により前記第2のユーザーが前記ホストアプリケーションファイルを編集することを禁止しているとの決定に応答して、前記ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対して前記ソースアプリケーションデータオブジェクトに関する通知を生成することであって、前記通知は前記第2のユーザーによって加えられた変更を示す、前記生成することと、
を行わせる、請求項15に記載の非一時的コンピュータ読取可能ストレージ媒体。
【請求項18】
前記命令は、処理デバイスによって実行されるとき、さらに、前記処理デバイスに、
前記ホストアプリケーションユーザーインターフェースを介して埋め込まれた前記ソースアプリケーションデータオブジェクトに加えられた前記修正を識別すると、更新成功の確認が生成されるまで、前記ソースアプリケーションに前記通知を定期的に再送信して、前記ソースアプリケーションデータストア内の前記ソースアプリケーションデータオブジェクトの前記対応するソースコピーを更新することを行わせる、請求項15に記載の非一時的コンピュータ読取可能ストレージ媒体。
【請求項19】
前記命令は、処理デバイスによって実行されるとき、さらに、前記処理デバイスに、
前記ホストアプリケーションデータストアと前記共通データストアとの間で、前記ソースアプリケーションデータオブジェクトに関連付けられた前記情報のデータ不整合チェックを定期的に行わせる、請求項15に記載の非一時的コンピュータ読取可能ストレージ媒体。
【請求項20】
前記命令は、処理デバイスによって実行されるとき、さらに、前記処理デバイスに、
データ不整合を検出したことに応答して、前記ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対して、前記ソースアプリケーションデータオブジェクトに関連付けられた前記データ不整合に関する通知を生成させる、請求項15に記載の非一時的コンピュータ読取可能ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の態様及び実施態様は、概して、共同アプリケーション間でデータを共有することに関し、より具体的には、異なるアプリケーションにわたって共同データの共有インスタンスを埋め込むことに関する。
【背景技術】
【0002】
生産性アプリケーションは、多くの場合、ドキュメント、プレゼンテーション、ワークシート、データベース、チャート、グラフ、及び他の資料を作成するために使用されるもの等のインタラクティブなアプリケーションのスイートにグループ化されており、そして広く普及した作業環境になっている。状況によっては、共同作業を容易にし、作業成果物の完成を早めるために、アプリケーションによって、1人以上のユーザーがファイルにアクセスする、またはファイルを修正することが可能になる。特にWebアプリケーション及びクラウドベースアプリケーションでは、アプリケーションのインスタンス間のデータ及び異なるユーザー間で共有されたファイルに対するアクセス及びそれらのデータ及びファイルの共有のフレキシビリティを提供することがますます重要になっている。アプリケーションプラットフォームの分散性及び協力者間の地理的距離により、データが異なる場所から記憶またはアクセスされ、州の境界を越えて伝送できる。これにより、適用可能な規則に準拠するために、異なる管轄区域の規則の対象となり得る様々なデータの記憶、アクセス、保持、及び修正に関するポリシーの履行をもたらす。
【発明の概要】
【0003】
下記の概要は、本開示のいくつかの態様の基本的な理解を提供するために、本開示の簡略化された概要である。この概要は開示内容の包括的な概要ではない。これは、本開示の主要な要素もしくは重要な要素を特定すること、または本開示の特定の実施態様の任意の範囲もしくは特許請求の範囲の任意の範囲を明確化することを意図するものではない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして、本開示のいくつかの概念を簡略化した形式で提示することである。
【0004】
いくつかの実施態様では、システム及び方法が開示されている。ある実施態様では、方法は、処理デバイスによって、ソースアプリケーションデータオブジェクトをホストアプリケーションファイルに埋め込むことと、ソースアプリケーションデータオブジェクトに関連付けられた情報を共通データストアに記録することと、を含み、ソースアプリケーションデータオブジェクトに関連付けられた情報は、また、ホストアプリケーションデータストア及びソースアプリケーションデータストアにも記録される。さらに、本方法は、ホストアプリケーションユーザーインターフェースを介して埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正を識別することと、通知をソースアプリケーションに送信して、埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正に基づいて、ソースアプリケーションデータストア内のソースアプリケーションデータオブジェクトの対応するソースコピーを更新し、埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正を共通データストアに記録することと、ソースアプリケーションユーザーインターフェースを介してソースアプリケーションデータオブジェクトのソースコピーに加えられた変更を識別することと、を含む。本方法は、ホストアプリケーションに、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更に基づいて、かつホストアプリケーションファイルのアクセス許可に従って、ホストアプリケーションデータストア内で埋め込まれたソースアプリケーションデータオブジェクトを更新させ、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更を共通データストアに記録することと、を含む。
【0005】
いくつかの実施態様では、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更を識別することは、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更に関して、ソースアプリケーションによって開始された通知を受信することを含む。さらに、ホストアプリケーションに埋め込まれたソースアプリケーションデータオブジェクトをホストアプリケーションデータストアで更新させることは、アクセス許可により、ユーザーがホストアプリケーションファイルに変更を加えることが可能であるかどうかを決定することと、アクセス許可によりユーザーがホストアプリケーションファイルに変更を加えることが可能になるとの決定に応答して、埋め込まれたソースアプリケーションデータオブジェクトを、ユーザーによって加えられた変更についてホストアプリケーションデータストアで更新させることと、を含む。いくつかの実施態様では、本方法は、さらに、第2のユーザーによってアプリケーションデータオブジェクトのソースコピーに加えられた第2の変更を識別することと、アクセス許可により、第2のユーザーがホストアプリケーションファイルを編集することが可能であるかどうかを決定することと、アクセス許可により第2のユーザーがホストアプリケーションファイルを編集することを禁止しているとの決定に応答して、ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対してソースアプリケーションデータオブジェクトに関する通知を生成することと、を含み、通知は第2のユーザーによって加えられた変更を示す。
【0006】
他の実施態様では、本方法は、ホストアプリケーションユーザーインターフェースを介して埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正を識別すると、更新成功の確認が生成されるまで、ソースアプリケーションに通知を定期的に再送信して、ソースアプリケーションデータストア内のソースアプリケーションデータオブジェクトの対応するソースコピーを更新することと、ホストアプリケーションデータストアと共通データストア間でソースアプリケーションデータオブジェクトに関連付けられた情報のデータ不整合チェックを定期的に行うことと、を含み得る。本方法は、さらに、データ不整合を検出したことに応答して、共通データストアに記録された対応するデータに基づいて、ホストアプリケーションデータストアに記録されたデータを更新することと、データ不整合を検出したことに応答して、ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対して、ソースアプリケーションデータオブジェクトに関連付けられたデータ不整合に関する通知を生成することと、を含み得る。
【0007】
いくつかの実施態様では、システムは、メモリデバイスと、メモリデバイスに結合された処理デバイスと、を含み、処理デバイスは、ソースアプリケーションデータオブジェクトをホストアプリケーションファイルに埋め込むように構成される。処理デバイスは、さらに、ソースアプリケーションデータオブジェクトに関連付けられた情報を共通データストアに記録することであって、ソースアプリケーションデータオブジェクトに関連付けられた情報は、また、ホストアプリケーションデータストア及びソースアプリケーションデータストアにも記録される、記録することと、ホストアプリケーションユーザーインターフェースを介して、埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正を識別することと、を行うように構成できる。処理デバイスは、また、通知をソースアプリケーションに送信して、埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正に基づいて、ソースアプリケーションデータストア内のソースアプリケーションデータオブジェクトの対応するソースコピーを更新し、埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正を共通データストアに記録するように構成できる。処理デバイスは、さらに、ソースアプリケーションユーザーインターフェースを介して、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更を識別することと、ホストアプリケーションに、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更に基づいて、かつホストアプリケーションファイルのアクセス許可に従って、ホストアプリケーションデータストア内で埋め込まれたソースアプリケーションデータオブジェクトを更新させ、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更を共通データストアに記録することと、を行わせるように構成できる。
【0008】
いくつかの実施態様では、非一時的コンピュータ読取可能ストレージ媒体は命令を含み、命令は、処理デバイスによって実行されるとき、処理デバイスに、ソースアプリケーションデータオブジェクトをホストアプリケーションファイルに埋め込むことと、ソースアプリケーションデータオブジェクトに関連付けられた情報を共通データストアに記録させることと、を行わせ、ソースアプリケーションデータオブジェクトに関連付けられた情報は、また、ホストアプリケーションデータストア及びソースアプリケーションデータストアにも記録される。それらの命令は、また、処理デバイスに、ホストアプリケーションユーザーインターフェースを介して埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正を識別することと、通知をソースアプリケーションに送信して、埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正に基づいて、ソースアプリケーションデータストア内のソースアプリケーションデータオブジェクトの対応するソースコピーを更新し、埋め込まれたソースアプリケーションデータオブジェクトに加えられた修正を共通データストアに記録することと、を行わせる。命令は、さらに、処理デバイスに、ソースアプリケーションユーザーインターフェースを介して、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更を識別することと、ホストアプリケーションに、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更に基づいて、かつホストアプリケーションファイルのアクセス許可に従って、ホストアプリケーションデータストア内で埋め込まれたソースアプリケーションデータオブジェクトを更新させ、ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更を共通データストアに記録することと、を行わせることができる。
【0009】
好ましい実施形態を用いた本発明の前述の概要は、本発明の範囲を限定するものと解釈するべきではない。このように説明した本発明の実施形態は、本発明の主旨及び範囲から逸脱することなく、さらに修正され得ることは、当業者に理解され、明らかであるはずである。
【0010】
本開示の態様及び実施態様は、以下の詳細な説明、ならびに本開示の様々な態様及び実施態様の付随の図面からより完全に理解されるであろうが、これらの図面は、本開示を特定の態様または実施態様に限定するものと解釈するべきではなく、説明及び理解のみを目的としている。
【図面の簡単な説明】
【0011】
図1】本開示の実施態様による、システムアーキテクチャの例を示す。
図2】本開示の実施態様による、異なるアプリケーションのインスタンス間でデータを共有することを示す図である。
図3】本開示の実施態様による、異なるアプリケーションのインスタンス間のデータの同期及び記憶を示すブロック図である。
図4】本開示の実施態様による、異なるアプリケーションにわたって共同データの共有インスタンスを埋め込み、維持するための方法のフロー図を示す。
図5】A及びBは、本開示の実施態様による、異なるアプリケーション間で共有されたデータのインスタンスを編集及び更新するための方法のフロー図を示す。
図6】本開示の実施態様による、例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0012】
本開示の態様は、異なるアプリケーション間での共同データの埋め込みインスタンスを共有することに関する。生産性、コンテンツ作成、及び一般的な仕事関連のアクティビティを支援するために、様々なアプリケーションプラットフォームがユーザーに利用可能になってきている。したがって、ドキュメント、プレゼンテーション、ワークシート、データベース、チャート等を作成及び編集するためのアプリケーションを含む様々な生産性スイートが、広く普及した作業環境になっている。さらに、そのようなアプリケーションは、Webベースでユーザーチーム間のコラボレーションを可能にする分散型クラウドベースプラットフォームで実装できる。
【0013】
これらの可能性を考慮して、多くの場合、生産性スイートの一部を形成する多数のWebアプリケーション(例えば、電子メールアプリケーション、ドキュメント処理アプリケーション、カレンダーアプリケーション、スプレッドシートアプリケーション、プロジェクト管理アプリケーション等)によって提供された機能を利用するユーザーの数が増え続ける傾向が生じ、コラボレーションは、様々なアプリケーションにわたって継続的なアクティビティの進歩に関わることが増え始めている。
【0014】
ユーザーのアクティビティが異種のアプリケーションで利用可能な情報の使用にまで及ぶと、関連情報にアクセスするために、ユーザーは、多くの場合、アプリケーション、コンテキスト、ウィンドウ、またはインターフェースを切り替える必要がある。アプリケーション、インターフェース等のそのような切り替えはユーザーに不便であり、かなりの時間及びコンピューティングリソースを消費する可能性がある。本明細書に開示される実施態様は、ユーザーが別のアプリケーションのインターフェースで1つのアプリケーションのデータにアクセスする、またはそのデータを修正することを可能にするようにするメカニズムを提供することによって前述の問題に対処し、それによって、ユーザーがアプリケーションまたはインターフェースを切り替える必要になり得る回数が減る。シナリオの一例では、ユーザーがワード処理アプリケーションを用いてドキュメントで作業中であり得、ドキュメントのコンテキスト(例えば、インターフェース)を離れずに別のユーザーにタスクを割り当てることを望み得る。本明細書に開示されたメカニズムにより、ユーザーは、タスク管理アプリケーションの「タスク」に関連付けられるドキュメントに「タスク」を埋め込むことが可能になり、それによって、ユーザーがタスク管理アプリケーションに切り替えて、別のユーザーにタスクを割り当てる必要がなくなる。いくつかの実施態様では、「タスク」を埋め込むことは、ワード処理アプリケーションのグラフィカルユーザーインターフェース(GUI)のタスクを表すデータオブジェクトを作成することと、ワード処理アプリケーションのGUIのタスクの視覚的表現にタスクデータを関連付ける、またはアンカリングすることと、を含む。次に、この埋め込みタスクは、同様に、タスク管理アプリケーションのGUIを経由してアクセスして更新もできる。同様の機能は、一方のアプリケーションから別のアプリケーション(例えば、スプレッドシートアプリケーションと、タスクをワークシートのセルまたは行に埋め込むことができるタスク管理アプリケーション)に情報を埋め込むことによってデータにわたって共同所有権を維持する必要がある様々な他のアプリケーションタイプにも実装できる。
【0015】
2つのアプリケーションのそれぞれによって共有及び記憶されたデータは、異なるデータポリシー(例えば、データの場所、共有、保持等)の対象となり得る。例えば、タスクがドキュメントに埋め込まれている場合、ドキュメントに適用可能であるデータポリシーは、ドキュメントデータを欧州連合(EU)に記憶することが必要になり得る一方、タスクに適用可能なデータポリシーはタスクデータを米国(US)に記憶することが必要になり得る。いくつかの実施態様では、異なるデータポリシーへの準拠を確実にするために、一方のアプリケーション(例えば、ソースアプリケーション)からのデータが別のアプリケーション(例えば、ホストアプリケーション)に埋め込まれる、または生成されるとき、各アプリケーションは、データの個別のコピーを個別の各々の場所に保持し、これにより、各コピーは各々のアプリケーションまたは場所のコンプライアンスのニーズ及び要件に準拠できるようになる。この別々のデータ所有権アプローチにより、アプリケーション間のデータ所有権の明確な区別を作成し、ポリシー間の競合を回避するデータ所有権モデルを作成できる。
【0016】
埋め込みデータは、ホストアプリケーション(データが埋め込まれているアプリケーション)と、ソースアプリケーション(データタイプの元となる親アプリケーション)との両方から修正できる。本開示の態様は、データが関連付けられるアプリケーション間のデータ整合性を維持するデータ変更を処理するためのメカニズムを提供することによって、アプリケーションの相互運用を容易にし、ユーザーエクスペリエンスが向上する。例えば、ホストアプリケーションに埋め込まれるデータがソースアプリケーションから削除される場合、このデータはまた通知キューシステムを介してホストアプリケーションから削除される。逆に、ホストアプリケーションに埋め込まれるソースアプリケーションデータがホストアプリケーションから削除される場合、通知キューシステムを介してソースアプリケーションからも削除される。いくつかの実施態様は、異なるシステム(例えば、アプリケーション)間で信頼できる通知の配信を可能にするデータベース機能を使用できる。例えば、タスク管理アプリケーションでタスクデータオブジェクトが削除される場合、通知キューシステムを使用して、対応するタスクデータオブジェクトが埋め込まれているワード処理アプリケーションに削除を確実に通知することができる。一実施態様では、タスクに関連付けられたデータは、両方のアプリケーションからアクセス可能なインデックステーブルから削除でき、その後、最終的に、対応するタスクデータオブジェクトが埋め込まれているワード処理アプリケーションのドキュメントから削除される。別の例示的な実施態様では、タスク管理アプリケーションでタスクが削除されるとき、削除の通知を伴うキューメッセージがトランザクション的にスケジュールされ、その後、データベースシステムによって非同期的に(例えば、後で)呼び出され、通知の伝送/受信の成功が確認されるまで再試行される。
【0017】
いくつかの実施態様では、特定のソースアプリケーションデータオブジェクトが埋め込まれている各アプリケーションに、ソースアプリケーションインターフェースで発生するソースアプリケーションデータオブジェクトの変更(例えば、更新、削除、修正)を通知することを確実にするために、各ソースアプリケーションデータオブジェクトは、それが埋め込まれている各アプリケーションのレコードに関連付けられたデータを有し得る。本明細書でデータオブジェクトに関して使用される「修正」及び「変更」というそれぞれの用語は、「削除」を含むものとする。したがって、データオブジェクトが各々のソースアプリケーションで編集または更新される場合、通知がホストアプリケーションに送信され、埋め込みコピー(例えば、ホストアプリケーションファイルに埋め込まれたソースアプリケーションデータオブジェクト)が更新できる。その埋め込みコピーは、本明細書では、対応する「埋め込みデータオブジェクト」とも呼ばれる。逆に、埋め込みソースアプリケーションデータオブジェクト(埋め込みデータオブジェクト)がホストアプリケーション内から(例えば、ホストアプリケーションインターフェースを経由して)編集または更新される場合、ソースアプリケーションに通知を送信して、データオブジェクト(ソースアプリケーションデータオブジェクト)のソースコピーを更新できる。そのソースコピーは、本明細書では、対応する「ソースデータオブジェクト」とも呼ばれる。いくつかの実施態様では、通知の信頼できる配信を確実にするために、通知の受信の確認または確認応答が他のアプリケーション(すなわち、更新通知が送信されるアプリケーション)から受信されるまで、変更が発生したアプリケーションによって通知を再送信できる。
【0018】
状況によっては、異なるアクセスルール(例えば、データの視認または編集の許可)は、ホストアプリケーションファイル及び埋め込みデータに関連し得る。本開示の態様は、許可間の競合に対処できるメカニズムを提供して、ホストアプリケーションファイルまたは埋め込みデータに適用可能なアクセスルールに違反することなく、データの更新を行うことができるのを確実にすることができる。例えば、ホストアプリケーションでの埋め込みデータオブジェクトへの修正は、ホストアプリケーションのアクセスルールに従うことができる。これは、ホストアプリケーションのアクセス許可に従ってホストアプリケーションを編集または修正する許可を有するユーザーだけが、埋め込みデータを編集または修正できることを意味する。したがって、ソースアプリケーションは、ホストアプリケーションで対応する埋め込みデータオブジェクトを変更するアクセス許可を有する任意のユーザーに、ソースアプリケーション内のデータオブジェクト(ソースアプリケーションデータオブジェクト)を変更するためのアクセスを付与できる。
【0019】
逆に、ソースアプリケーションのデータオブジェクト(ソースアプリケーションデータオブジェクト)に加えられた変更または更新は、データオブジェクトが埋め込まれているホストアプリケーションファイルに変更を加えるためのアクセス許可を有するユーザーに代わって更新が発行される(変更がユーザーによって行われる)ときだけ、ホストアプリケーションで埋め込みデータオブジェクトを更新できる。ソースアプリケーションのデータオブジェクトに変更を加えるユーザーが、データオブジェクトが埋め込まれているホストアプリケーションファイルに変更を加えるためのアクセス許可がない場合、その変更は保留状態のままになり、ホストアプリケーションファイルに変更を加えるためのアクセス許可を有する別のユーザーが変更を承認して、ホストアプリケーションファイルを更新できるようになる。例えば、ソースアプリケーションで行われたデータオブジェクトに対する変更は、ソースアプリケーション及びホストアプリケーションの両方からアクセス可能である場所に記録できるが、アクセス許可がないため、データが埋め込まれているホストアプリケーションファイルにコミットされない。この場合、保留中の変更に関してホストアプリケーションファイルに変更を加えることをユーザーが可能にするアクセス許可を有するホストアプリケーションのユーザーに通知を提示して、変更の承認または拒否のどちらかを尋ねるプロンプトをユーザーに提供できる。
【0020】
いくつかの実施形態では、アクセスチェック(例えば、ユーザーが特定のデータオブジェクトに変更を加えるために必要なアクセス許可を有しているかどうかの決定)は、ソースアプリケーション及びホストアプリケーションの両方で起こる可能性がある。一例では、変更が加えられたデータオブジェクトが埋め込まれているホストアプリケーションファイルに変更をコミットできるかどうかに関係なく、ソースアプリケーションが常に変更に関する通知をホストアプリケーションに送信するため、ホストアプリケーションは常にアクセスチェックを行うことができる。この場合、下記でより詳細に説明されるように、ホストアプリケーションは、ソースアプリケーションまたはホストアプリケーションのどちらかからデータオブジェクトに加えられた変更を取得して、別の場所(例えば、ホストアプリケーションデータが記録される場所と、ソースアプリケーションデータが記録される場所とは別の第3の場所)にその変更を記録できる。別の例では、タスク管理アプリケーションは、特定のデータオブジェクトに変更を加えようとしているユーザーが、データオブジェクトが埋め込まれているホストアプリケーションファイルを編集するためのアクセス許可を有しているかどうかをチェックし、アクセス許可を有している場合、ソースアプリでデータを編集して、変更をホストアプリケーションに伝搬するための許可をユーザーに付与できる。
【0021】
各々のホスト及びソースアプリケーション内の対応するデータオブジェクトへの変更から生じる競合を最小限に抑え、ホストアプリケーション及びソースアプリケーションの両方が最新のデータオブジェクトを有することを確実にするために、いくつかの実施態様では、ホストアプリケーションファイルに埋め込まれているソースアプリケーションデータオブジェクトに関連付けられたデータを記録するための個別のストレージ領域(例えば、データストア)が維持される。前述のように、ソースアプリケーション及びホストアプリケーションのアクセスルールが異なる場合(例えば、異なるユーザーごとに異なるアクセス許可のセット)、変更を加えたユーザーがホストアプリケーションファイルに変更を加えるためのアクセス許可がない場合、ソースアプリケーションのデータオブジェクトに加えられた変更は、ホストアプリケーションに同期されない場合がある(例えば、対応する埋め込みデータオブジェクトでは変更が更新されない場合がある)。そのような変更が失われないことを確実にするために、データオブジェクトに関する究極の「真実のソース」として機能できる個別のストレージに記録できる。いくつかの実施態様では、アプリケーションのペアのそれぞれは、各々のデータストアにデータを記録できる。この第3の場所は、データオブジェクト(すなわち、ソースアプリケーションデータオブジェクト、及び対応する埋め込みデータオブジェクトを含む)に関連する全ての変更及びその履歴が、ホストアプリケーション及びソースアプリケーションの両方から記録される第3のデータストアであり得る。一実施態様では、この第3のストレージ場所は、ホストアプリケーションによって排他的に管理できる(例えば、データの変更のレコードは、変更がソースアプリケーションまたはホストアプリケーションで行われたかどうかに関係なく、ホストアプリケーションによって作成されたものである)。第3の記憶場所は、ホストアプリケーションファイルにこれまでに埋め込まれた全てのソースアプリケーションデータオブジェクトと、それらのデータオブジェクトにこれまでに加えられた全ての変更とを含み得る。例えば、ワード処理アプリケーションは、タスク管理アプリケーションからドキュメントにこれまでに埋め込まれたタスクデータオブジェクトの全てを、それらのデータオブジェクトに対して以前に加えられた全ての変更と一緒に、個別のデータストアに記録できる。ホストアプリケーション及びソースアプリケーションのそれぞれの各々のデータの記憶場所とは別の第3の記憶場所を設けると、第3の場所がホストアプリケーションによって完全に管理される場合、計算コストが削減され、データ転送の負荷が軽減される。これは、そのような配置により、アプリケーションとそれらの各々のデータストアとの間のクエリ及びデータ転送の回数を減らすことができるだけでなく、それと一緒に、もし特にそれらが地理的に離れた場所にあるとき、関連する計算コストとネットワーク帯域幅も削減できるためである。
【0022】
この第3のストレージ領域は、ホストアプリケーションファイル(本明細書では、「埋め込みデータコンテナ」とも呼ばれる)が変更されて埋め込みデータが古くなる可能性があるため、真実のソース(例えば、データオブジェクトに関する信頼できる情報源)として機能できる。例えば、完了としてマークされた埋め込みタスクデータオブジェクトを有するワード処理アプリケーションファイルのシナリオでは、埋め込みタスクデータオブジェクトが完了としてマークされていなかった以前のバージョンにワード処理アプリケーションファイルを戻すことができ、結果的に、古い(例えば、古い、不正確な)埋め込みタスクデータオブジェクトが生成される。別の例では、ホストアプリケーションで発生する埋め込みデータオブジェクトの変更から生じる更新通知が(例えば、アカウントが無効になっているため)ソースアプリケーションに永続的に配信できなく、データオブジェクトのソースコピーと埋め込みデータオブジェクトとの間に望ましくない不一致が生じる可能性がある。埋め込みデータオブジェクトのレコードを含む第3の場所を設けると、埋め込みデータオブジェクトの最新表現を維持したい場合、埋め込みデータオブジェクトを伴うホストアプリケーションファイルのユーザーがホストアプリケーションファイルを以前のバージョンに戻すことを防止する必要がなくなる可能性がある。
【0023】
いくつかの実施態様では、第3の記憶場所は、アプリケーションのペアのそれぞれに関連付けられたデータオブジェクトのレコードを伴うデータストア内のインデックステーブルであり得る。いくつかの実施態様では、ホストアプリケーションは、ソースアプリケーションと正常に同期された全ての埋め込みデータに対して個別の記憶場所を維持し、アクセス許可の制限により変更をホストアプリケーションの埋め込みデータコンテナ(対応する埋め込みデータオブジェクトを伴うホストアプリケーションファイル)にコミットできない場合でも、ソースアプリケーションから受信したデータ変更の通知に従って記憶場所を更新できる。いくつかの実施態様では、この記憶場所は埋め込みデータインデックステーブルとして実現され得、ソースアプリケーションまたはホストアプリケーションのどちらかでデータオブジェクトに修正を加える許可を有する任意のユーザーに、このテーブルへのアクセス(例えば、修正する許可)を付与できる。ソースアプリケーションと第3の記憶場所(例えば、埋め込みデータインデックステーブル)との間のデータの整合性を確実にするために、ソースアプリケーションデータの記憶場所と第3の記憶場所との間で、定期的な整合性チェック検証を行うことができる。同様に、ホストアプリケーションデータの記憶場所と第3の記憶場所との間で、定期的な整合性チェック検証を行うことができる。2つの場所間でデータの不整合が識別される場合、アラートまたは通知を発行または生成できる。第3の記憶場所と、各々のホストまたはソースアプリケーションデータの記憶場所との間の不整合に関する通知は、各々のアプリケーションのユーザーに提示できる。例えば、ホストアプリケーションは、埋め込みインデックステーブルを、全ての埋め込みデータの真実のソースとして使用して、ホストアプリケーションの埋め込みデータコンテナ内の埋め込みデータがインデックステーブルと同期していないときにユーザーに警告を示すことができる。本明細書に説明されるシステム及び方法の要素の構造、及びその要素によって行われた動作に関する詳細は、図1図6を参照して下記に説明される。
【0024】
したがって、本開示の態様は、例えば、一方のアプリケーションから別のアプリケーションにデータを便利に埋め込むことができるメカニズムを含む多くの技術的利点をもたらし、それによって、アプリケーション間のより深い統合が生じ、ユーザーによって行われたコンテキストの切り替え(例えば、アプリケーションまたはインターフェースの切り替え)の繰り返しによって、別の方法で費されるであろう時間及びコンピューティングリソースを削減する。他の技術的な利点として、限定ではないが、アプリケーションによって共有及び記憶されたデータに関して潜在的に競合するポリシーへの準拠を確実にする自動化ソリューションの提供、アプリケーション間のデータ整合性の実施、アプリケーションにわたるデータアクセス許可間の競合への対処等が含まれる。それによって、アプリケーションの相互運用がさらに容易になり、ユーザーエクスペリエンスがさらに向上し、競合するデータポリシーへの手動での対処、データ整合性の手動による保証、またはアプリケーションにわたるデータアクセス許可間の競合への手動による対処に別の方法で費されるであろう時間及びコンピューティングリソースがさらに削減される。
【0025】
本明細書に説明される例及び実施態様は、ドキュメント/ワード処理アプリケーション及びタスク管理アプリケーション等の特定のタイプのアプリケーションに焦点を当て得るが、本明細書で開示されるシステム及び方法は、様々なアプリケーション及び動作環境で同様に実施できることを理解されたい。
【0026】
図1は、本開示の実施態様による、システムアーキテクチャ100の例を示す。システムアーキテクチャ100(本明細書では、「システム」とも呼ばれる)は、ネットワーク130を介してデータ管理プラットフォーム120(例えば、サーバ(複数可))等のサーバに接続できる少なくとも1つのクライアントデバイス110を含む。簡潔にするために、1つのクライアントデバイス110及び1つのデータ管理プラットフォーム120は、ネットワーク130に接続されるように示される。実際には、クライアント及び/またはサーバはより多く存在し得る。また、場合によっては、クライアントがサーバの1つ以上の機能を行い得、サーバはクライアントの1つ以上の機能を行い得る。クライアントデバイス110は、データ管理プラットフォーム120から情報にアクセスし得る、またはその情報を受信し得る。システムアーキテクチャ100はクラウドベース環境を表し得、これにより、ネットワーク130を通じて、ドキュメントプラットフォーム120をホストするサーバ(複数可)と、クライアントデバイス110との間の通信を可能にし、電子ドキュメントを記憶及び共有できる。代替として、システムアーキテクチャ100は、ローカルに相互接続されるシステムに適用できる。さらに、本開示のいくつかの態様は、スプレッドシートと、スプレッドシートを管理するドキュメントアプリケーションとを参照して説明されるが、当業者は、本開示のシステム、方法、機能、及び実施形態は、任意のタイプの電子ドキュメントと、任意のタイプのホストアプリケーションによって提供された任意のタイプのプログラムまたはサービスとに適用できることを理解するはずである。
【0027】
複数の実施態様では、ネットワーク130は、パブリックネットワーク(例えば、インターネット)、プライベートネットワーク(例えば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN))、有線ネットワーク(例えば、イーサネットネットワーク)、無線ネットワーク(例えば、802.11ネットワークまたはWi-Fiネットワーク)、セルラーネットワーク(例えば、ロングタームエボリューション(LTE)ネットワーク)、ルーター、ハブ、スイッチ、サーバーコンピュータ、及び/またはそれらの組み合わせを含み得る。クライアントデバイス110は、パーソナルコンピュータ(PC)、ラップトップ、携帯電話、スマートフォン、タブレットコンピュータ、ネットブックコンピュータ、ネットワーク接続テレビ等のコンピューティングデバイスを含み得る。クライアントデバイス110は、1人以上のユーザーに関連付けすることができ、また、クライアントデバイス110は「ユーザーデバイス」とも呼ぶことができる。
【0028】
示される実施態様では、データ管理プラットフォーム120がクライアントデバイス110とインタラクトすることにより、クライアントデバイス110はデータ管理プラットフォーム120と連携して1つ以上のデータ管理アプリケーションを実行して、様々なドキュメントを管理する。例えば、データ管理アプリケーションは、オンラインデータ管理アプリケーション、Webアプリケーション、クラウドベースアプリケーション、クライアントベースデータ管理アプリケーション等であり得る。いくつかの実施態様では、データ管理アプリケーションは、(指定されたドキュメントアプリケーションではなく)Webブラウザ115とインタラクトして、例えば、ドキュメントを提示し、例えば、ドキュメントに関連するユーザー入力等を受信できるクラウドベースまたはWebベースの生産性スイートアプリケーションであり得る。代替として、データ管理アプリケーションは、ドキュメントプラットフォーム120の使用の有無にかかわらず、本明細書に説明される機能を提供するクライアントベースアプリケーション(クライアントデバイス110によってホストされたもの)であり得る。データ管理アプリケーションは、例えば、電子メールアプリケーション、ドキュメント処理アプリケーション、カレンダーアプリケーション、スプレッドシートアプリケーション、プロジェクト管理アプリケーション、オンラインワード処理アプリケーション、オンラインタスク管理アプリケーション等を含み得、ホストアプリケーション150aまたはソースアプリケーション150bとして機能できる。ホストアプリケーション150aは、ソースアプリケーション150bからの埋め込みデータオブジェクトを含み得ることを理解されたい。
【0029】
クライアントデバイス110によって作成されたデータ管理構造は、例えば、データストア140、ホストアプリケーションデータストア142、及びソースアプリケーションデータストア143に記憶され得、そして、アプリケーションデータオブジェクト、埋め込みデータコンテナ、及び1つ以上のホストアプリケーション150aまたはソースアプリケーション150bのアプリケーショングラフィカルユーザーインターフェースに関連付けられたデータを含み得る。場合によっては、ホストアプリケーション150aはホストアプリケーションデータストア142に排他的にアクセスでき、ソースアプリケーション150bはソースアプリケーションデータストア143に排他的にアクセスでき、両方のアプリケーションは共通データストアとして機能できるデータストア140にアクセスできる。図1では単一のデバイスとして示されるが、データ管理プラットフォーム120は、例えば、単一のコンピューティングデバイスとして、または複数の分散型コンピューティングデバイスとして実装され得る。デバイスがサーバとして機能するか、またはクライアントデバイスとして機能するかどうかについて、実装されている特定のアプリケーションによって依存する可能性があることを理解及び認識されたい。つまり、コンピューティングデバイスがクライアントとして動作しているか、またはサーバとして動作しているかについて、アプリケーション内でのコンピューティングデバイスの役割のコンテキストに依存し得る。クライアント及びサーバの関係は、各々のデバイスで実行されるプログラムにより生じる可能性があり、互いに対してクライアントとサーバとの関係を有することになる。
【0030】
上記に説明したように、クライアントデバイス110とデータ管理プラットフォーム120とのインタラクションは、クライアントデバイス110で実行されるWebブラウザ115を経由して実施され得る。例えば、ホストアプリケーション150aまたはソースアプリケーション150bの1つ等のデータ管理アプリケーションは、Webブラウザ115内で実行されるWebアプリケーションであり得る。ブラウザプログラムという用語は、ブラウザプログラムがスタンドアロンプログラムであるか、またはオペレーティングシステムの一部として含まれるブラウザプログラム等の組み込みプログラムであるかに関係なく、ユーザーがマークアップドキュメント(例えば、Webドキュメント)をブラウズすることを可能にする任意のプログラムを指すことが意図される。いくつかの実施態様では、本明細書に説明されるデータ管理アプリケーションは、分散型Webアプリケーションとして実装され、データ管理アプリケーションのそれぞれの部分が1つ以上のクライアントデバイス110及びデータ管理プラットフォーム120で実行される。より具体的には、クライアントデバイス110は、データ管理プラットフォーム120からデータ管理アプリケーションを要求し得る。それに応答して、データ管理プラットフォーム120は、クライアント110でのローカル実行用に、データ管理アプリケーションの一部を伝送し得る。したがって、データ管理アプリケーションは、データ管理プラットフォーム120及び1つ以上のクライアントデバイス110にわたって、各々の分散型アプリケーションとして実行され得る。このように、クライアントデバイス110は、データ管理プラットフォーム120によってホストされたデータ管理アプリケーションを使用するために、任意のデータ管理アプリケーションをローカルにインストールする必要がない場合がある。
【0031】
一般に、データ管理プラットフォーム120によって、ホストアプリケーション150aまたはソースアプリケーション150bによって行われていると複数の実施態様で説明される機能は、適切な場合、他の実施態様においてクライアントデバイス110でも行うことができる。さらに、異なるコンポーネントまたは複数のコンポーネントが一緒に動作することによって、特定のコンポーネントに帰属する機能を行うことができる。データ管理プラットフォーム120は、また、適切なアプリケーションプログラミングインターフェースを経由して他のシステムまたはデバイスに提供されたサービスとしてアクセスもできる。
【0032】
いくつかの実施態様では、データ管理プラットフォーム120は、通信を管理し、ホストアプリケーション150aとソースアプリケーション150bとの間の仲介役として機能する統合アプリケーションマネージャー160を含み得る。他の実施形態では、統合アプリケーションマネージャー160は、クライアントデバイス110上に部分的または全体的に常駐できる。さらに他のいくつかの実施態様では、ホストアプリケーション150a及びソースアプリケーション150bは、クライアントデバイス110によってホストされ、統合アプリケーションマネージャー160を使用しないで、(例えば、プロセス間通信を介して、共有データストアを使用して等)互いに通信できる。
【0033】
本開示の実施態様では、「ユーザー」は単一の個人として表すことができる。しかしながら、本開示の他の実施態様では、「ユーザー」は、一連のユーザー及び/または自動化されたソースによって制御されたエンティティである。例えば、ソーシャルネットワークのコミュニティとして統合された個々のユーザーのセットは、「ユーザー」と見なすことができる。別の例では、自動化されたコンシューマは、コンテンツ共有プラットフォーム120のトピックチャネル等の自動化された取り込みパイプラインであり得る。
【0034】
本明細書に説明されるように、ドキュメントは、分散型Webアプリケーションとして実装され得、そのアプリケーションの一部は複数のクライアントデバイス110及びドキュメントプラットフォーム120で実行され、単一のドキュメントで作業する複数のユーザー間のコラボレーションを提供する。例えば、複数のユーザーが同時にまたは並行してそのような共同ドキュメントを編集し、ユーザーのそれぞれの編集をリアルタイムまたは、ほぼリアルタイム(例えば、数ミリ秒または数秒以内)で視認し得る。あるユーザーがドキュメントを編集するとき、その編集はドキュメントプラットフォーム120に伝送され、その後、スプレッドシートの編集または視認している他の共同作業を行うユーザーに転送され得る。この目的のために、ドキュメントプラットフォーム120は、2人のユーザーが同時にドキュメントの一部を編集しようとしたとき等、共同作業を行うユーザー間の競合に対処し得る。例えば、ドキュメントプラットフォーム120は、受信した最初の編集を承認し得る、または何らかの方法で、共同作業を行うユーザーの優先順位を付け得ることにより、優先度の高いユーザーの編集が優先度の低いユーザーの編集よりも優先されることになる。ユーザーの編集がドキュメントプラットフォーム120によって拒否される場合、ドキュメントプラットフォーム120は、編集が拒否されたことをそのユーザーに知らせるメッセージをユーザーに返信し得る。このように、複数のユーザーが単一のドキュメントに対して、場合によってはリアルタイム(または、ほぼリアルタイム)で共同作業を行い得る。いくつかの実施態様では、特定のドキュメントを視認して共同作業を行う関係者は、ドキュメントの最初の作成者によって指定され得る。例えば、ドキュメントの最初の作成者に「アドミニストレーター」権限が与えられ得ると、その権限により、作成者は他の可能性がある共同作業者のそれぞれに対して権限を指定することが可能になる。最初の作成者は、他の共同作業者に、以下のこと、つまり、ドキュメントの編集、ドキュメントの視認のみ、ドキュメントの指定部分の編集、可能性がある共同作業者のリストへの追加ユーザーの追加等のうちの1つ以上を行う権限を有することを指定し得る。例えば、特定のユーザーはドキュメントの特定の部分を編集することが可能であり得る一方、ドキュメントの他の指定部分はそれらのユーザーに対して「ロック」できることにより、ユーザーはロック部分を視認できるが、編集できなくなる。いくつかの実施態様では、ドキュメントは誰でも視認及び/または編集できる「パブリック」ドキュメントとして指定され得る。
【0035】
データ管理プラットフォーム200の異なるアプリケーションのインスタンス間のデータの共有を示す図2を参照してさらに説明されるように、本開示の実施態様によれば、説明される機能及び動作は、上記に説明したシステム100で行うことができる。データ管理プラットフォーム200は、ホストアプリケーション150a及びソースアプリケーション150b等の1つ以上のアプリケーションを含み得る。
【0036】
いくつかの実施態様では、ホストアプリケーション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)の各データオブジェクトは、他のペアのオブジェクトに加えられた変更に基づいて更新できる。
【0037】
図示の実施態様では、ソースアプリケーションデータオブジェクト210b~214bは、各々のソースアプリケーショングラフィカルユーザーインターフェース203a~203cによって表示、アクセス、及び修正でき、ユーザーが、例えばソースアプリケーション150bとインタラクトすることを可能にする。例えば、ソースアプリケーショングラフィカルユーザーインターフェース203bは、各オブジェクトに関連付けられた各々のデータ及び情報と一緒に、ソースアプリケーションデータオブジェクト211b及びソースアプリケーションデータオブジェクト213bの視覚的表現を含み得る。
【0038】
いくつかの実施態様では、データアクセスポリシーまたはアクセス許可により、各々のユーザーインターフェースを介して、アプリケーションに含まれるデータを視認すること、または変更を加えることを、どのユーザーに許可するのかを制御できる。例えば、一方向矢印で表されるように、ユーザー220aは、ホストアプリケーションインターフェース201aを経由してホストアプリケーションファイル202aを視認する許可を有し得るが、ホストアプリケーションのファイルに含まれるデータの編集許可(すなわち、任意の変更を加える許可)を有することはできない。他方では、ユーザー220bは、双方向矢印で示されるように、ホストアプリケーションファイル202a及びホストアプリケーションファイル202bに関して、視認許可及び編集許可の両方を有し得る。同様に、ユーザー220cは、ホストアプリケーションファイル202aの視認許可と、ホストアプリケーションファイル202bの視認許可及び編集許可の両方と、を有する。いくつかの実施態様では、ユーザーがホストアプリケーションファイルのデータを編集するために必要な許可を有する場合、ユーザーは、それによって、そのファイルに埋め込まれたデータオブジェクト(例えば、埋め込みソースアプリケーションデータオブジェクト210a~214a)も編集できる。
【0039】
ソースアプリケーショングラフィカルユーザーインターフェース203a~203cは、特定のユーザーだけが排他的にアクセス可能であり得る。例えば、図示の実施態様では、ソースアプリケーショングラフィカルユーザーインターフェース203aは、それに含まれるソースアプリケーションデータオブジェクト210b及び212bと一緒に、ユーザー220dだけが排他的にアクセス可能であり得る。同様に、ソースアプリケーショングラフィカルユーザーインターフェース203bと、それと一緒に含まれるソースアプリケーションデータオブジェクト211b及び213bとについて、ユーザー220eだけが排他的にアクセス可能であり得、そして、ソースアプリケーショングラフィカルユーザーインターフェース203cと、それと一緒に含まれるソースアプリケーションデータオブジェクト214bとについて、ユーザー220fだけが排他的にアクセス可能であり得る。データオブジェクトのインスタンスまたは各々のコピーは、ホストアプリケーションまたはソースアプリケーションのどちらかのグラフィカルユーザーインターフェース(GUI)のどちらか一方を介して加えられた変更によって更新できる。下記に説明される図3を参照するとより詳細に理解できるように、データオブジェクトのデータに対する更新及び変更の通知によって、各々のアプリケーションごとにデータオブジェクトの最新のコピーを維持する。
【0040】
上記の説明に加えて、本明細書に説明されるシステム、プログラム、または機能がユーザー情報(例えば、ユーザーのソーシャルネットワーク、ソーシャルアクション、もしくはアクティビティ、職業、ユーザーの好み、またはユーザーの現在地に関する情報)の収集を可能にし得るかどうか及びその収集をいつ行うかと、サーバからユーザーにコンテンツまたは通信を送信するかどうかと、の両方について、ユーザーが選択することを可能にする制御が、ユーザーに提供され得る。さらに、特定のデータは、記憶または使用される前に1つ以上の方法で処理され得、これにより、個人を識別できる情報が除去される。例えば、ユーザーの識別情報は、ユーザーに関して、個人を識別できる情報を決定できないように処理され得る、または、位置情報が取得される場所でユーザーの地理的位置が一般化され得る(市、郵便番号、または州レベル等)。これにより、ユーザーの特定の位置を決定できなくなる。したがって、ユーザーは、ユーザーに関して収集する情報、その情報を使用する方法、及びユーザーに提供される情報を制御し得る。
【0041】
図3は、いくつかの実施形態による、ホストアプリケーション302及びソースアプリケーション304等の異なるアプリケーションのインスタンス間でのシステム300におけるデータの同期及び記憶を示すブロック図である。データオブジェクトは、ホストアプリケーションGUI310を介してホストアプリケーション302で、またはソースアプリケーションGUI311を介してソースアプリケーション304で、のどちらかで生成できるが、ソースアプリケーションGUI311とは異なり、ホストアプリケーションGUI310は、埋め込みデータオブジェクト320a、320bを含み得る。埋め込みデータオブジェクトは、対応するソースアプリケーションデータオブジェクトに関連付けできる。本明細書では、「埋め込みデータオブジェクト」及び「埋め込みソースアプリケーションデータオブジェクト」という用語は互換的に使用できることを理解されたい。さらに、本明細書では、「ソースデータオブジェクト」、「ソースアプリケーションデータオブジェクト」、及び「データオブジェクトのソースコピー」は互換的に使用できることを理解されたい。例えば、埋め込みソースアプリケーションデータオブジェクト320aは、データオブジェクト321aの対応するソースコピーに関連付けできる一方、埋め込みデータオブジェクト320bは、ソースデータオブジェクト321bに関連付けできる。対応するデータオブジェクトのそれぞれ1つは、同じ概念要素(例えば、タスク)を表し得るが、そのデータオブジェクトが含まれるアプリケーションに応じて、データまたはメタデータに関連付けられ得る。
【0042】
いくつかの実施態様では、各アプリケーションは、各々のアプリケーションのデータを記録するための独自の排他的データストアを有し得る。例えば、ホストアプリケーション302は、ホストアプリケーションデータストア342にアクセスして、そこでは、その動作に必要なデータを記録できる。例えば、ホストアプリケーション302は、ホストアプリケーション310のファイルと、その内部に含まれる埋め込みデータオブジェクト320a及び320bとを表すデータを、各々、レコード350a及び350bとして、ホストアプリケーションデータストア342に記録できる。同様に、ソースアプリケーション304は、ソースアプリケーションデータストア343にアクセスして、そこでは、その動作に必要なデータを記録できる。例えば、ソースアプリケーション304は、ソースアプリケーションGUI311と、その内部に含まれるソースデータオブジェクト321a及び321bとを表すデータを、各々、レコード351a及び351bとしてソースアプリケーションデータストア343に記録できる。データストアに含まれるレコードは、データオブジェクトと、それに加えられた変更履歴とを含み得る。例えば、レコード350bは、埋め込みデータオブジェクト320bに関連するデータと、それに対してこれまでに加えられた全ての変更とを含み得る。いくつかの実施態様では、ホストアプリケーションデータストア342はホストアプリケーション302によって排他的にアクセス可能であり得る一方、ソースアプリケーションデータストア343はソースアプリケーション303によって排他的にアクセス可能であり得る。アプリケーションごとに個別のデータストアを有することで、各アプリケーションはそのデータに関して各々のコンプライアンスポリシーに従って動作することが可能になり得る。さらに、アプリケーションのペア間で対応するデータオブジェクトの最新情報の共通ソースを維持するために、アプリケーションの両方が共有または共通のデータストレージ場所にアクセスできるようになる。
【0043】
したがって、いくつかの実施態様では、ホストアプリケーション302及びソースアプリケーション304の両方は、共通データストア340にアクセスできる。各アプリケーションは、共通データストア340に直接、または他のアプリケーションを経由してアクセスできる。共通データストア340は、ホストアプリケーション302及びソースアプリケーション304のデータオブジェクトに対応するレコード322a、322bを記憶できる。例えば、ソースアプリケーションデータオブジェクト321に関連付けられるホストアプリケーション302からの埋め込みデータオブジェクト320aは、共通データストア340にセーブされた対応するレコード322aを有し得る。レコード322aは、対応するデータオブジェクトの最新バージョンのデータと、それに対してこれまでに加えられた全ての変更のレコードとを含み得る。いくつかの実施態様では、データオブジェクトがホストアプリケーションファイルまたはGUI310で生成されるときにいつでも、または埋め込まれるときにいつでも、対応するレコードは共通データストアに作成できる。その後、ホストアプリケーション302の埋め込みデータオブジェクトに変更が加えられることによって、またはソースアプリケーション304のソースデータオブジェクトに変更が加えられることによって、のどちらかで、データオブジェクトに変更が加えられるときにいつでも、その変更を共通データストアに記録できる。したがって、前述のように、ホストアプリケーション302及びソースアプリケーション304は、異なるユーザーに対して異なるアクセス許可及びルールを有し得るが、変更がどのアプリケーションから発生し得るかに関係なく、どちらかのアプリケーションでデータオブジェクトに変更が加えられた場合、その変更は共通データストア340の対応するレコードに伝搬できる。
【0044】
いくつかの実施態様では、共通データストアは、ホストアプリケーション302によって管理できる埋め込みデータインデックステーブルを含み得る。例えば、ソースデータオブジェクト321bが生成され、埋め込みソースアプリケーションデータオブジェクト320bとしてホストアプリケーション302に埋め込まれた後、ソースデータオブジェクト321bがソースアプリケーションGUI311によって修正された場合、ソースアプリケーションからホストアプリケーション302に通知が送信され、加えられた変更に応じて、対応する埋め込みデータオブジェクト320bを更新できる。アクセス許可により更新が可能になる場合、ホストアプリケーション302で更新を行うことができる、または、アクセス許可により、ソースデータオブジェクトに変更を加えたユーザーがホストアプリケーション302で変更を加えることを可能にしない場合、更新に関する通知を生成できる。しかしながら、ソースアプリケーションデータオブジェクトに変更を加えたユーザーが必要な許可を有してたかどうかに関係なく、ホストアプリケーションによって(または、代わりに、ソースアプリケーションによって)、共通データストア340の埋め込みデータインデックステーブルに変更が記録され、データオブジェクトに加えられる変更が失われないようにすることを確実することができる。
【0045】
この共通データストア340、またはいくつかの実施態様ではその中に含まれる埋め込みデータインデックステーブルを使用して、定期的なデータ不整合チェックを行うことができる。例えば、定期的な時間間隔で、データオブジェクトに関連するデータを、ホストアプリケーションデータストア342と共通データストア340とで比較できる。同様に、定期的な時間間隔で、データオブジェクトに関連するデータは、ソースアプリケーションデータストア343と共通データストア340とで比較できる。一方のデータストアに含まれるデータオブジェクトに関連するデータが、他のデータストアに含まれるデータオブジェクトに関連するデータと整合しない場合、その不整合の通知が生成され、複数のアプリケーションのうちの1つのユーザーに提示できる。代替として、不整合が検出される場合、共通データストア340内のデータオブジェクトに関連するデータを使用して、他のデータストア内のデータオブジェクトに関連するデータを置き換え、それに応じて各々のアプリケーションGUIデータオブジェクトを更新できる。データオブジェクトの更新バージョンを生成、修正、及び維持する方法の実施形態は、図4及び図5のA~Bを参照して下記でより詳細に説明される。対応する方法400、500a、及び500bは、ハードウェア(回路、専用ロジック等)、ソフトウェア(例えば、処理デバイス上で実行される命令)、またはそれらの組み合わせを含み得る処理ロジックによって行われ得る。いくつかの実施態様では、方法400、500a、及び500bの一部または全ての動作は、図1のホストアプリケーション150a、ソースアプリケーション150b、または統合アプリケーションマネージャー160によって行われ得る。
【0046】
図4は、いくつかの実施態様による、異なるアプリケーションにわたって共同データの共有インスタンスを埋め込み、維持するための方法400を示す。本方法は、データオブジェクトに変更が加えられる場所に応じて、ソースアプリケーションとホストアプリケーションとの間でデータオブジェクトがどのように維持及び更新されるかを説明する。
【0047】
いくつかの実施態様では、ブロック410において、ソースアプリケーションデータオブジェクトが生成されたとき、またはホストアプリケーションファイルに埋め込まれているとき(例えば、ソースアプリケーション150bもしくは統合アプリケーションマネージャー160から受信した要求に応答して、またはホストアプリケーションユーザーインターフェースを介して受信したユーザー入力に応答して)、本方法が始まり得る。ブロック420において、処理ロジックは、ソースアプリケーションデータオブジェクトに関連付けられた情報を共通データストアに記録できる。ソースアプリケーションデータオブジェクトに関連付けられた情報は、また、ホストアプリケーションデータストア及びソースアプリケーションデータストアにも記録できる。一実施態様では、データオブジェクトが作成され、共通データストアに記録されると、対応する埋め込みデータオブジェクト及びソースデータオブジェクトは、各々、ホストアプリケーション及びソースアプリケーションに存在する。したがって、埋め込みデータオブジェクトは、ホストアプリケーションのデータに変更を加える許可を有する1人以上のユーザーによって編集できる一方、対応するソースデータオブジェクトは、ソースアプリケーションのデータに変更を加える許可を有するユーザーによって編集できる。
【0048】
ブロック430において、埋め込みソースアプリケーションデータオブジェクトに加えられた修正が識別される。いくつかの実施態様では、ユーザーがホストアプリケーションユーザーインターフェースを介して修正を入力するとき、ホストアプリケーションによって修正が識別される。代替として、ホストアプリケーションから通知を受信するとき、統合アプリケーションマネージャーによって修正が識別される。ブロック440において、(例えば、ホストアプリケーションまたは統合アプリケーションマネージャーによって)ソースアプリケーションに通知が送信され、ソースアプリケーションデータストア内のソースアプリケーションデータオブジェクトの対応するソースコピーを更新する。次に、ブロック450において、埋め込みソースアプリケーションデータオブジェクトに加えられた修正は共通データストアに記録できる。
【0049】
ブロック460において、(例えば、ソースアプリケーションから変更に関する通知を受信するときにホストアプリケーションによって、またはソースアプリケーションから通知を受信するときに統合アプリケーションマネージャーによって)ソースアプリケーションデータオブジェクトのソースコピーに加えられた変更が識別される。ブロック470において、ホストアプリケーションは、ブロック460で識別された変更に基づいて、かつホストアプリケーションファイルのアクセス許可に従って、埋め込みソースアプリケーションデータオブジェクトをホストアプリケーションデータストアで更新させる。その後、処理ロジックは、ブロック450において、共通データストアの変更を記録し、アプリケーションデータオブジェクトのソースコピーに加えられた最新の変更を反映できる。いくつかの実施態様では、ホストアプリケーションまたはソースアプリケーションのどちらかによって開始された通知は、通知の伝送の成功の確認または確認応答(例えば、受信の成功)が受信側アプリケーションから送信側アプリケーションに返信されるまで、送信側アプリケーションから受信側アプリケーションに繰り返し再送信され得る。
【0050】
前述のように、一方のアプリケーションから別のアプリケーションに送信された通知は、場合によっては、受信側アプリケーションによって受信されない場合があるため、処理ロジックは、ブロック480において、データ不整合チェックを定期的に行って、対応するデータオブジェクトのレコードを比較できる。例えば、所定の頻度で、または事前設定された期間の満了時に、ブロック480において、ホストアプリケーションデータストアと共通データストアとの間で、ソースアプリケーションデータオブジェクトに関連付けられた情報のデータ不整合チェックを行うことができる。これは、共通データストア内のデータオブジェクトに関連付けられたレコードをチェックし、例えば、そのレコードを、ホストアプリケーションデータストア内の対応するデータオブジェクトのレコードと比較することを含む。2つのデータストア間でデータの不整合が検出される場合、共通データストアに記録された対応するデータ(例えば、対応するデータオブジェクトに関連する情報)に基づいて、ホストアプリケーションに記録されたデータを更新できる。代替として、いくつかの実施態様では、2つのデータストア間のデータの不整合が検出される場合、ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対して、対応するソースアプリケーションデータオブジェクトに関連付けられたデータ不整合に関する通知を生成できる。データオブジェクトへの変更の正確な記録が異なるアプリケーション間で同期されることを確実にする例示的な方法のより詳細な説明は、図5のA及びBを参照して下記に提供される。
【0051】
図5のA及びBは、本開示の実施態様による、各々、異なるアプリケーション間で共有されたデータのインスタンスを編集及び更新するための方法500a及び方法500bのフロー図を示す。方法500aは、ソースアプリケーションを経由してデータオブジェクトに加えられる編集に関する一方、方法500bは、いくつかの実施態様による、ホストアプリケーションを経由してデータオブジェクトに加えられる編集に関する。
【0052】
いくつかの実施態様では、処理ロジックは、ブロック510aにおいて、アプリケーションデータオブジェクトのソースコピーを修正できる。これは、ソースアプリケーションへのアクセス許可を有するユーザーがソースデータオブジェクトに対する変更を要求したときに発生する可能性がある。ブロック520aにおいて、処理ロジックは、ソースデータオブジェクトに変更を加えたユーザーが、ホストアプリケーションで編集を行うために必要なアクセス許可を有しているかどうかを決定できる。したがって、変更を加えるユーザーが、アクセス許可に従って、ホストアプリケーションファイル(例えば、対応するデータオブジェクトが埋め込まれているホストアプリケーションファイル)に変更を加える許可を有しているかどうかに応じて、処理ロジックはブロック530aまたは530bのどちらかに進むことができる。
【0053】
アプリケーションデータオブジェクトのソースコピーに変更を加えたユーザーが、ブロック520aにおいて、ホストアプリケーションファイルに変更を加える許可を有していると決定された場合、ブロック530aにおいて、処理ロジックは、それに応答して、埋め込みソースアプリケーションデータオブジェクトを、ユーザーによって加えられた変更について、ホストアプリケーションデータストアで更新できる。いくつかの実施態様では、これにより、同様に、ホストアプリケーションユーザーインターフェースを介して対応するデータオブジェクトを更新することが必要になる可能性がある。代替として、ブロック520aにおいて、アプリケーションデータオブジェクトのソースコピーに変更を加えたユーザーがホストアプリケーションファイルに変更を加える許可がない(例えば、そのような変更を加えることが禁止されている)と決定される場合、ブロック540aにおいて、処理ロジックは、それに応答して、ホストアプリケーションファイルの編集を可能にするアクセス許可を有するユーザーに対して、ソースアプリケーションデータオブジェクトに関する通知を生成でき、その通知は、ユーザーによって加えられた変更を示す。通知は、ユーザーによって加えられた変更を示し、ホストアプリケーションファイルに変更を加える許可を有する他のユーザーに、変更の承認または拒否のどちらかを促すことができる。
【0054】
いくつかの実施態様では、処理ロジックは、ブロック510bにおいて、ホストアプリケーションユーザーインターフェースを介して埋め込みソースアプリケーションデータオブジェクトに修正を加えることができる。これは、ユーザーがホストアプリケーションを使用して、埋め込みデータオブジェクトを編集するときに発生する可能性がある。次に、ブロック520bにおいて、修正に応答して、処理ロジックはソースアプリケーションに通知を送信し、ソースアプリケーションデータストア内のソースアプリケーションデータオブジェクトの対応するソースコピーを更新する。場合によっては、通知がすぐに配信されない場合があるため、処理ロジックは、ブロック530bにおいて、通知が受信され、対応する更新がソースアプリケーションで完了したかどうかを決定できる。ホストアプリケーションがソースアプリケーションから通知の受信及び更新の完了成功の確認応答を受信しない場合、処理ロジックは、更新成功の確認が生成されるまで、ソースアプリケーションに通知を定期的に再送信して、ソースアプリケーションデータストア内のソースアプリケーションデータオブジェクトの対応するソースコピーを更新できる。このように、本方法によって、変更がデータオブジェクトのソースアプリケーションコピーに反映されることと、データオブジェクトの対応するバージョンが2つのアプリケーション間で同期されることと、が確実になる。
【0055】
図6は、本開示の実施態様による、例示的なコンピュータシステムを示すブロック図である。コンピュータシステム600は、図1のサーバマシン130またはクライアントデバイス110であり得る。マシンは、エンドポイントサーバネットワーク環境におけるサーバもしくはエンドポイントマシンのキャパシティで動作できる、またはピアツーピア(または分散型)ネットワーク環境におけるピアマシンとして動作できる。マシンは、テレビ、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブアプライアンス、サーバ、ネットワークルーター、スイッチもしくはブリッジ、またはそのマシンが取るアクションを指定する命令のセットを(連続してまたは別の方法で)実行することが可能である任意のマシンであり得る。さらに、単一のマシンだけが示されるが、「マシン」という用語は、また、本明細書に説明される方法論の任意の1つ以上の方法論を行うために1セット(または複数のセット)の命令を個々にまたは共同で行うマシンの任意の集合体を含むと解釈するものとする。
【0056】
例示のコンピュータシステム600は、処理デバイス(プロセッサ)602、メインメモリ(メモリデバイス)604(例えば、読み取り専用メモリ(ROM)、フラッシュメモリ、あるいは同期DRAM(SDRAM)、ダブルデータレート(DDR SDRAM)、またはDRAM(RDRAM)等のダイナミックランダムアクセスメモリ(DRAM))、スタティックメモリ606(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)等)、及びデータストレージデバイス618を含み、これらは、バス640を介して互いに通信する。
【0057】
プロセッサ(処理デバイス)602は、マイクロプロセッサ、中央処理装置等の1つ以上の汎用処理デバイスを表す。より具体的には、プロセッサ602は、複数命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、もしくは他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサであり得る。プロセッサ602は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ等の1つ以上の専用処理デバイスであり得る。プロセッサ602は、本明細書に説明される動作を行うための命令605(例えば、チャンネルラインナップの視聴者数を予測するための命令)を実行するように構成される。
【0058】
コンピュータシステム600は、さらに、ネットワークインターフェースデバイス608を含み得る。コンピュータシステム600は、また、ビデオディスプレイユニット610(例えば、液晶ディスプレイ(LCD)またはブラウン管(CRT))、入力デバイス612(例えば、キーボード、英数字キーボード、動作検知入力デバイス、タッチスクリーン)、カーソル制御デバイス614(例えば、マウス)、及び信号生成デバイス620(例えば、スピーカー)も含み得る。
【0059】
データストレージデバイス618は、本明細書に説明される方法論または機能の任意の1つ以上を具体化する1セット以上の命令605(例えば、異なるアプリケーションでデータオブジェクトを生成、埋め込み、更新するためのもの)が記憶される非一時的機械可読ストレージ媒体624(コンピュータ可読ストレージ媒体でもある)を含み得る。命令は、また、コンピュータシステム600によって実行される間、メインメモリ604内及び/またはプロセッサ602内に、完全にまたは少なくとも部分的に常駐もでき、メインメモリ604及びプロセッサ602も機械可読ストレージ媒体を構成する。命令は、さらに、ネットワークインターフェースデバイス608を介して、ネットワーク630を通じて伝送または受信できる。
【0060】
一実施態様では、命令605は、異なるアプリケーションにわたってデータオブジェクトを生成、埋め込み、維持、及び更新するための命令を含む。コンピュータ可読ストレージ媒体624(機械可読ストレージ媒体)は単一の媒体であるように例示的な実施態様に示されるが、「コンピュータ可読媒体」または「機械可読媒体」という用語は、1セット以上の命令を記憶する単一の媒体または複数の媒体(例えば、集中型データベースもしくは分散型データベース、及び/または関連付けられたキャッシュ及びサーバ)を含むと解釈するべきである。「コンピュータ可読ストレージ媒体」及び「機械可読ストレージ媒体」という用語は、マシンによって実行される命令のセットを記憶、エンコード、または搬送することが可能であり、マシンに、本開示の方法論の任意の1つ以上を行わせる任意の媒体も含むと解釈するものとする。したがって、「コンピュータ可読ストレージ媒体」及び「機械可読ストレージ媒体」という用語は、限定ではないが、ソリッドステートメモリ、光学媒体、及び磁気媒体を含むと解釈するものとする。
【0061】
本明細書全体を通して「一実施態様」または「ある実施態様」という言及は、実施態様に関連して説明される特定の機能、構造、または特性が少なくとも一実施態様に含まれていることを意味する。したがって、本明細書の全体を通して様々な箇所で「一実施態様では」または「ある実施態様では」という語句が登場するが、必ずではないが、状況によっては、同じ実施態様を指す可能性がある。さらに、特定の特徴、構造、または特性は、1つ以上の実施態様において任意の好適な方法で組み合わされ得る。
【0062】
「含む(includes)」、「含む(including)」、「有する」、「含有する」という用語、それらの変形、及び他の同様の用語が発明を説明するための実施形態または特許請求の範囲のどちらか一方で使用される限りにおいて、これらの用語は、任意の追加要素または他の要素を除外することなく、開放移行語として「備える」という用語と同様の方式で包括的であることを意図している。
【0063】
本願で使用される場合、「コンポーネント」、「モジュール」、「システム」等の用語は、概して、コンピュータ関連のエンティティ、ハードウェア(例えば、回路)またはソフトウェアのどちらか、ハードウェア及びソフトウェアの組み合わせ、または1つ以上の具体的な機能性を伴う動作可能なマシンに関連するエンティティを指すことが意図される。例えば、コンポーネントは、限定ではないが、プロセッサ(例えば、デジタル信号プロセッサ)上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、及び/またはコンピュータであり得る。実例として、コントローラ上で実行されるアプリケーション、及びコントローラの両方は、コンポーネントであり得る。1つ以上のコンポーネントが実行のプロセス及び/またはスレッド内に常駐し得、コンポーネントは1つのコンピュータ上にローカライズされ得る及び/または2つ以上のコンピュータ間に分散され得る。さらに、「デバイス」は、特別に設計されたハードウェア、ハードウェアが特定の機能(例えば、関心点及び/または記述子の生成)を行うことが可能になるソフトウェアの実行によって特化された汎用ハードウェア、コンピュータ可読媒体上のソフトウェア、またはそれらの組み合わせの形態で提供できる。
【0064】
前述のシステム、回路、モジュール等は、複数のコンポーネント及び/またはブロック間のインタラクトに関して説明されている。そのようなシステム、回路、コンポーネント、ブロック等は、それらのコンポーネントもしくは指定されたサブコンポーネント、指定されたコンポーネントもしくはサブコンポーネントの一部、及び/または追加のコンポーネントを含み得、前述の様々な順列及び組み合わせに従っていることが認識できる。また、サブコンポーネントは、親コンポーネント(階層的ななもの)の中に含まれるのではなく、他のコンポーネントと通信可能に結合されたコンポーネントとして実装することもできる。さらに、1つ以上のコンポーネントは、集約的な機能を提供する単一コンポーネントに組み合わされ得、いくつかの個別のサブコンポーネントに分割され得、そして、管理層等の任意の1つ以上の中間層を提供して、統合された機能を提供するために、そのようなサブコンポーネントと通信可能に結合し得ることに留意されたい。また、本明細書に説明される任意のコンポーネントは、本明細書に具体的に説明されていないが、当業者には既知の1つ以上の他のコンポーネントともインタラクトし得る。
【0065】
さらに、「例」または「例示的な」という語は、本明細書では、例、事例、または実例として役立つ意味で使用される。「例示的な」として本明細書に説明されるいずれかの態様または設計も、必ずしも、他の態様または設計よりも好ましい、または有利であると解釈されるわけではない。むしろ、「例」または「例示的な」という語の使用は、概念を具体的に提示することを意図している。本願で使用されるように、「または」という用語は、排他的な「または」ではなく、包含的な「または」を意味することが意図される。つまり、特に指定のない限り、または文脈から明らかでない限り、「XはAまたはBを採用する」とは、自然な包括的置換のいずれかを意味することが意図される。つまり、XがAを採用する場合、XがBを採用する場合、またはXがA及びBの両方を採用する場合、「XはAまたはBを採用する」は、前述の事例のいずれかの条件でも満たされる。さらに、本願で使用される「a」及び「an」という冠詞は、概して、特に指定のない限り、または文脈から単数形を指すことが明らかでない限り、「1つ以上」を意味すると解釈されたい。
【0066】
最後に、本明細書に説明される実施態様は、ユーザー及び/またはユーザーのアクティビティを記述するデータの収集を含む。一実施態様では、そのようなデータは、ユーザーがこのデータの収集に同意する場合だけ収集される。いくつかの実施態様では、ユーザーは、データ収集が可能になることが明示的に促される。さらに、ユーザーはそのようなデータ収集アクティビティへの参加をオプトインまたはオプトアウトし得る。一実施態様では、収集データは、任意の統計パターンを取得するための任意の分析を行う前に匿名化されるため、収集データからユーザーの識別情報を決定できない。
図1
図2
図3
図4
図5
図6
【国際調査報告】