JP2017162506A - 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス - Google Patents

対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス Download PDF

Info

Publication number
JP2017162506A
JP2017162506A JP2017101744A JP2017101744A JP2017162506A JP 2017162506 A JP2017162506 A JP 2017162506A JP 2017101744 A JP2017101744 A JP 2017101744A JP 2017101744 A JP2017101744 A JP 2017101744A JP 2017162506 A JP2017162506 A JP 2017162506A
Authority
JP
Japan
Prior art keywords
application data
application
data
server
instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017101744A
Other languages
English (en)
Other versions
JP6298197B2 (ja
Inventor
ティー. リーマン,グレッグ
T Lehman Gregg
ティー. リーマン,グレッグ
デ,ヴァイシャリ
De Vaishali
エイチ. ロドリゲス,ラウル
H Rodriguez Raul
エイチ. ロドリゲス,ラウル
ボイコ,アレックス
Boyko Alex
フィルパス,グレグ
Filpus Greg
リュー,ジアハ
Jiahe Jack Liu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of JP2017162506A publication Critical patent/JP2017162506A/ja
Application granted granted Critical
Publication of JP6298197B2 publication Critical patent/JP6298197B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】クラウドストレージのようなリモートに配置された第1のサーバに格納されたアプリケーションのプライマリデータに対して、第1のサーバでは格納がサポートされない補足データをユーザが作成し、修正又は追加することを可能にする。【解決手段】第2のストレージサービスプロバイダ(例えば企業のイントラネット)にある第2のサーバに補足データ(例えば編集、追加等)を格納する。同じユーザによって異なるコンピューティングデバイス上で実行されるアプリケーションの異なるインスタンスは、第1のストレージサービスプロバイダからプライマリデータを取得し、第2のストレージサービスプロバイダから補足データを取得することができる。【選択図】図1

Description

本発明は、対応するプライマリ・アプリケーションデータから導出される識別子に基づいて、補足データにアクセスすることに関する。
コンピュータ及びネットワーク技術の分野において、「クラウド」及び「クラウドコンピューティング」という用語は、しばしば、多くの異なるタイプのコンピュータリソース間における接続性をサポートするコンピュータ、ルータ、サーバ等の根底にあるネットワークインフラストラクチャの抽象概念である、インターネットのような特定のネットワーク技術の象徴として使用される。
いわゆる「クラウドコンピューティング」は、仮想的でサービス指向のアーキテクチャの自発的で実用的なコンピューティングの広範な採択の自然な進化である。ある場合において、クラウドコンピューティングは、特定のアプリケーション機能においてエキスパートであるべきこと又は特定のアプリケーション機能を制御すべきことから、ユーザを抽出する。そのような特徴はクラウド内のサービスによって管理され、クラウドのストレージは多くの場合、クラウドストレージサービスプロバイダとして知られる第三者エンティティによって提供される。したがって、クラウドコンピューティングは、(クラウドストレージサービスプロバイダとは別個のエンティティである)会社のようなエンティティ内のユーザに対して、新たなインフラストラクチャを投資し、新たな人材をトレーニングし、新たなソフトウェアを認可する等を必要とせずに、コンピューティングシステムの容量を増加させる又はコンピューティングシステムに容量を追加する方法を提供することができる。従来のクラウドコンピューティング技術は、ユーザがクラウドに接続するのにどのデバイスを使用するかに関わらず、ユーザに、リモートのドキュメント管理及びストレージ、電子メール及び連絡先の管理等のような例示的なサービスを提供する。この手法では、ユーザは、自身のオフィスにあるデスクトップコンピュータのような、コンピューティングデバイスにおいてクラウド内のドキュメントにアクセスし、その後、家にあるコンピュータのような別のコンピューティングデバイスから同じドキュメントにアクセスすることができる。クラウドストレージにアクセスするアプリケーションは、標準的な広く公開されたアプリケーションプログラミングインタフェース(API)のセットを使用して、このようなことを行い、クラウドストレージデータフォーマットを予め設定する。
クラウドは、したがって、有益なサービスを個々のユーザに提供するのを助けるため、ユーザによって操作される個々のデバイスは、クラウドによって提供されるサービスに大いに、又は完全に依拠することがある。これは、単一のコンピュータデバイスのような限られた場所にアプリケーションに関連するデータを記憶しなければならないという問題を伴わずに、複数の異なるコンピュータの全てにおいてコンピュータアプリケーションのインスタンスを実行する能力を提供する。
クラウドコンピューティングのような、異なるコンピューティングデバイス上におけるソフトウェアアプリケーションの異なるインスタンスの実行を可能にする従来の技術の使用は、幾つかの不備を生じる可能性がある。例えば第三者のクラウドストレージサービスは、固有のAPIを使用する固有のデータフォーマットの固有のデータ(例えば所与の予め定められたレコードフォーマット又はXMLのようなデータフォーマットの連絡先データ)のクラウドストレージを提供する。複数の第三者ソフトウェア会社がそれぞれ、この固有のデータフォーマットでクラウドに格納されたデータにアクセスするソフトウェアプログラム(例えば連絡先管理ソフトウェア)を開発し、販売することがある。そのようなソフトウェアのあるベンダが、ユーザが補足データをその連絡先情報に追加できるようにするソフトウェアの新しい又は更新されたバージョンを作成することを望む可能性がある。例としてソフトウェアの新しいバージョンは、ユーザが、人々の連絡先情報を好ましい又はお気に入りとして識別できるようにする可能性がある。このような場合において、クラウドストレージの所定の連絡先レコード又はデータフォーマットが、補足データの追加を可能にするのに適用可能でないために、クラウドストレージサービスプロバイダは、この補足データの格納をサポートしない可能性がある。これは、連絡先データを全て管理する異なるソフトウェアプログラムの多くのベンダが、同じクラウドストレージサービスを使用する可能性があるので、連絡先データフォーマットが特定のベンダからの新たなデータストレージ要件に迅速に適合しないという事例であり得る。この問題が従来の状況において起こるとき、ソフトウェアの新たなバージョンは、補足データをローカルストレージデバイス(例えばソフトウェアの新たなバージョンのインスタンスが現在動作しており、インストールされているユーザのデスクトップコンピュータのディスクシステム)に格納しなければならない。この従来のアプローチによる1つの問題は、ユーザが別のコンピューティングデバイス上で同じソフトウェア(例えばユーザのモバイルデバイス上で実行中のソフトウェアの別のインスタンス)を実行する場合、他のコンピュータシステム上で作成された補足データが、モバイルデバイス上の同じユーザのソフトウェアの同じバージョンに利用可能にならない、ということである。これは、クラウドストレージが補足データのストレージをサポートせず、またモバイルデバイスは、その補足データを作成するのにユーザが使用した他のコンピューティングデバイスのローカルディスクにアクセスする方法がないためである。
本明細書で開示される実施形態は概して、上記で検討した従来の技術の欠点を克服する。本明細書の実施形態は、補足(supplemental)データ(例えばクラウドストレージのような第三者ストレージプロバイタによって格納されるプライマリデータに対する修正又は追加に関連付けられるデータ)を、ユーザによって操作される複数のデバイスによってアクセス可能な第2のリモート位置(例えばクラウドとは別に、又はクラウドストレージに加えて)格納する1つ又は複数の方法を含む。検討したように、補足データが、複数のデバイスの各々に対して利用可能であるので、異なるコンピューティングデバイスにおいて所与のソフトウェアアプリケーションを使用するユーザは、これらの異なるデバイスのいずれかにおいてアプリケーションのインスタンスを実行することができ、本明細書で開示される技術及び機構により、ソフトウェアのこれらの別個のインスタンスに、クラウドによって格納されるデータに加え、第2のストレージ位置(例えば複数のユーザコンピューティングデバイスに対してアクセス可能であって、補足データの格納をサポートする、第2のクラウドストレージエリア又は企業のサーバ)に格納される補足データを提供することが可能になる。
一例において、ユーザは、ネットワーク内の第1のコンピューティングデバイス上でアプリケーションの第1のインスタンスを実行する。第1のインスタンスは、ユーザが個々の人々の連絡先データを管理できるようにする、連絡先管理ソフトウェアプログラムであると想定する。アプリケーションの第1のインスタンスにより、ユーザはプライマリ・アプリケーションデータを第1のサーバから取得する。このプライマリ・アプリケーションデータは、例えば所与のクラウドストレージベンダによって操作される(第1のサーバによって格納される)クラウドストレージに必要な、予め定義された又は固定のデータフォーマットで格納されたデータであり得る。アプリケーションの第1のインスタンスの使用の間に、ユーザは、第1のインスタンスを操作して、プライマリ・アプリケーションデータに関連付ける補足アプリケーションデータを生成することができる。例えばユーザは、プライマリ・アプリケーションデータ内において、お気に入りの連絡先を識別することが可能になる連絡先管理ソフトウェアの新たなバージョンを購入することがある。プライマリ・アプリケーションデータを所与のデータフォーマットで格納する第1のサーバ又は第1のサービスプロバイダ(例えばクラウドストレージベンダによって操作されるクラウドコンピューティング環境)は、クラウドストレージデータのフォーマットが補足データの格納に対応していないために、補足アプリケーションデータの格納をサポートすることができない可能性がある。この問題を克服するために、アプリケーションの第1のインスタンスは、(例えばユーザから)補足アプリケーションデータを受信し、この補足アプリケーションデータをプライマリ・アプリケーションデータに関連付ける。例えば一実施形態に置いて、補足アプリケーションデータをプライマリ・アプリケーションデータに関連付けるために、アプリケーションの第1のインスタンスは、一意の識別子(例えばハッシュ値)をプライマリ・アプリケーションデータの少なくとも一部に基づいて計算する。特定の実施形態において、一意の識別子の値を生成することは、ハッシュ関数をプライマリ・アプリケーションデータの少なくとも一部に適用して一意の識別子の値を生成することを含むことができる。他の例では、一意の識別子内に、アプリケーションの第1のインスタンスを操作しているユーザに関連付けられるユーザ識別情報のハッシュを含める。アプリケーションの他のインスタンスは、一意の識別子の値、並びに補足アプリケーションデータを、補足アプリケーションデータの後の取得のために第2のサーバに転送する。第2のサーバは、例えばクラウドストレージとは異なるが、(連絡先管理ソフトウェアプログラムの独立のインスタンスをそれぞれ実行する)ユーザの様々なコンピューティングデバイスからアクセス可能な企業のイントラネットにおけるストレージを提供するサーバとすることができる。第2のサーバは、一意の識別子により、ユーザのデバイス上のアプリケーションの1つ又は複数の他のインスタンスのいずれかによる補足アプリケーションデータの後の取得を可能にし、したがって、クラウドストレージ(すなわち第1のサーバ)が補足データの格納をサポートしていないとしても、各デバイスにおけるユーザエクスペリエンスが、補足データに対するアクセスを含むことが可能になる。
例示的な実施形態の更なる詳細は、以下で、図面並びに詳細な説明及び特許請求の範囲を参照しながら提供される。例示的な実施形態の予備的な議論は、いかなる実施形態を指定するものではなく、及び/又は本開示又は特許請求に係る発明の新規な態様を付加的に指定するものではない。代わりに、この簡単な説明は単に、一般的な実施形態及び従来の技術に対する新規性の対応するポイントを提示するものである。本発明の更なる詳細及び/又は可能な観点(置換)、及び新規性の更なるポイントについて、読み手を、以下で更に検討されるような、以下の「発明を実施するための形態」というセクション、及び本開示の対応する図面に向ける。異なる実施形態に関連する追加の詳細を提供することに加えて、以下の「発明を実施するための形態」は、諸実施形態の更なる要約を含む。したがって、この簡単な説明は、本発明の範囲及び/又は添付の特許請求の範囲を限定するものではない。
本発明の上述及び他の目的、特徴及び利点は、添付の図面において説明されるような以下の本明細書における好ましい形態のより具体的な説明から明らかになるであろう。図面においては、同様の参照番号が、異なる図における同じ部分を指す。図面は必ずしも、実施形態、原理、概念等を示すものを強調してスケーリングされていはいない。
本明細書における実施形態に従って、アプリケーションの第1のインスタンスが、第2のサーバにおいて補足アプリケーションデータを生成及び後続の格納を開始するネットワーク環境を示す例示的な図である。 本明細書における実施形態に従って、アプリケーションの第1のインスタンスが、第2のサーバにおける補足アプリケーションデータに対する後続のインデックス化のために一意の識別子の値を生成するネットワーク環境を示す例示的な図である。 本明細書における実施形態に従って、アプリケーションの第2のインスタンスが、第2のサーバからの記憶済みアプリケーションデータの取得を開始するネットワーク環境を示す例示的な図である。 本明細書における実施形態に従って、アプリケーションの第2のインスタンスが、一意の識別子の値を使用して第2のサーバからの記憶済みアプリケーションデータの取得を開始するネットワーク環境を示す例示的な図である。 本明細書における実施形態に従って、プライマリ・アプリケーションデータと補足アプリケーションデータとをマッピングする一意の識別子の値の使用を示す例示的な図である。 本明細書における実施形態に従って、グラフィカルユーザインタフェースに情報を表示するアプリケーションインスタンスによるプライマリ・アプリケーションデータと補足アプリケーションデータとの使用を示す例示的な図である。 本明細書における実施形態に従って、アプリケーションのインスタンスを実装する例示的なコンピュータアーキテクチャを示す例示的な図である。 本明細書における実施形態に従って、対応する補足アプリケーションデータの後の取得のために一意の識別子の値を生成する例示的な方法を示すフローチャートである。 本明細書における実施形態に従って、対応する補足アプリケーションデータの後の取得のために、取得されたプライマリ・アプリケーションデータに基づく一意の識別子の値の生成を示す例示的な図である。
本明細書で開示される例示的な実施形態は、異なるコンピューティングデバイス上であるソフトウェアアプリケーションの複数のインスタンス(例えばラップトップコンピュータ、デスクトップコンピュータ及びモバイルデバイス上で同じプログラム)を使用するユーザが、これらのアプリケーションインスタンスによって作成された全てのデータに対するアクセスを有することができるようにする機構を提供する。このシステムは、アプリケーションによって作成され、格納されたデータ(すなわちプライマリデータ)の一部が、例えば制限された又は所定のデータフォーマットを有する第三者ベンダによって操作され得るクラウドストレージに格納される状況に対応する。アプリケーションにより、ユーザが補足データを作成することができる場合(例えばアプリケーションの新たなバージョンが、データフォーマットの制限があるクラウドストレージでは格納することができない補足的なユーザデータのストレージを必要とする向上したユーザ機能のために提供される可能性がある)、本明細書で開示される機構は、そのようなアプリケーションが、この補足データを第2のストレージサービスプロバイダによって提供される第2のストレージ(例えばユーザのコンピューティングデバイスがアクセスを有する企業のイントラネットによって操作される非クラウドのストレージ)に格納する。
一実施形態によると、アプリケーションのプライマリデータを、クラウドコンピューティング環境内でリモートに配置される第1のストレージサービスプロバイダで格納することができる。本明細書で使用されるとき、プライマリデータという用語は、アプリケーションが、例えばクラウドサーバであり得る第1のサーバ上の第1のサービスプロバイダ内に格納することができるデータを含む。アプリケーションのユーザは、プライマリデータを、第1のストレージサービスプロバイダによってサポートされない方法で修正したいことがある。そのような修正、追加又は同様のものを、本明細書では、第1のストレージサービスプロバイダによって操作される第1のサーバ内に格納することができない(すなわち、例えばクラウドストレージが、そのデータフォーマット又はレコードフォーマットの補足データを提供していないために、クラウド内に格納することができない)補足データと称する。言い換えると、第1のストレージサービスプロバイダは、ユーザがプライマリデータに対して行いたいと思う変更及び/又は追加(補足データ)であって、ユーザのコンピューティングデバイスの全てにおいてアクセス可能であることが望まれる変更及び/又は追加(補足データ)の格納をサポートしないことがある。従来の解決策は、補足データをユーザのデバイスにローカルに格納することである。しかしながら、このような従来の解決策では、ユーザは、この補足データに対するアクセスを有していても、アプリケーションを複数のデバイス上で使用することができないであろう(又はそのように使用することはユーザにとって困難であろう)。これは、ユーザがあるデバイスから別のデバイスに移り、全てのデバイスにおいて全てのデータ、変更及び追加が利用可能であることを期待するときに問題となる。
全てのデータに対するアクセスを有しているが、単一のコンピューティングデバイスのみでしかアプリケーションを実行することができない、という制限からユーザを解放するために、本明細書における構成は、修正データ(例えばプライマリ・アプリケーションデータに関連付けられる編集又は追加のような補足アプリケーションデータ)を、ネットワーク接続上の第2のストレージサービスプロバイダに格納する機構及び技術を提供する。本明細書で開示されるシステムを使用して、異なるコンピュータデバイス上で実行するアプリケーションの異なるインスタンスは、プライマリデータを第1のストレージサービスプロバイダから(例えば第三者ベンダによって操作されるクラウドから)取得するとともに、補足アプリケーションデータを第2のストレージサービスプロバイダ(例えばソフトウェアのユーザの雇用者によって操作される企業のイントラネットサーバ)から取得することができる。したがって、各ユーザは、アプリケーションのインスタンスを単一のマシン上でのみ実行することに制限されず、複数のユーザコンピューティングデバイスにおいてプライマリデータと補足データの双方に対するアクセスを得ることができる。
図1は、本明細書の実施形態に従って、アプリケーションの第1のインスタンスが第2のサーバにおいて補足アプリケーションデータを生成して格納するネットワーク環境を示す例示的な図である。
この例において、ネットワーク環境100は、複数のストレージサービスプロバイダ120(例えばストレージサービスプロバイダ120−1、ストレージサービスプロバイダ120−2等)及びネットワーク190を含む。ストレージサービスプロバイダ120−1は、サーバ110−1と、データを格納するそれぞれのリポジトリ180−1とを含む。ストレージサービスプロバイダ120−1は、この例において、所与のクラウドサービスプロバイダによって操作されるクラウドストレージサービスとすることができる。ストレージサービスプロバイダ120−2は、サーバ110−2と、データを格納するそれぞれのリポジトリ180−2とを含む。ストレージサービスプロバイダ120−2は、この例において企業のイントラネットとすることができる。ストレージサービスプロバイダ120は、同じエンティティ、企業又は組織であっても異なるエンティティ、企業又は組織であってもよいことが理解されよう。
ネットワーク190は、インターネット、携帯電話ネットワーク等のようなリソースを含むことができ、同じユーザ又は異なるユーザによって操作され得る1つ又は複数のコンピュータデバイス115を更に含むことができる。
コンピュータデバイス115はそれぞれ、1又は複数のユーザのために、アプリケーション140のインスタンスを実行することができる。この例において、コンピュータデバイス115−1はアプリケーションインスタンス140−1を実行し、コンピュータデバイス115−2はアプリケーションインスタンス140−2を実行する。更なる実施形態によると、同じコンピュータデバイスを使用して異なるアプリケーションインスタンス140を実行することができる。アプリケーションインスタンス140−1及び140−2を、同時にも異なる時にも実行することができる。この例において、ストレージサービスプロバイダ120−1は、インターネットのような公衆ネットワークを介してアクセス可能な、第三者クラウドストレージサービス(第1のストレージサービスプロバイダ)によって操作されるクラウドストレージシステムとすることができる。これに対して、ストレージサービスプロバイダ120−2はこの例において、アプリケーションインスタンス140の許可されたユーザからのみアクセス可能な企業のイントラネット内で利用可能なストレージとすることができる。アプリケーションインスタンス140−1及び140−2のユーザは、第2のサーバ110−2を操作し、及び/又は第2のサーバ110−2へのアクセスを制御する、会社(例えば第2のストレージサービスプロバイダ120−2)の従業員とすることができる。
概して、添付の図面及び本明細書の説明において検討されるように、実行中にアプリケーションインスタンス140−1は、クライアントデバイス上で動作し、サーバ110−1と通信して、プライマリ・アプリケーションデータ(プライマリデータとも称する)のストレージをリポジトリ180−1(例えば固有の所定のデータフォーマットを必要とするか、固有の所定のデータフォーマットによって制限され得るクラウド内のデータのストレージ)内に生成して開始する。また、この例では、コンピュータデバイス115−1のユーザが、補足データ250−1(補足アプリケーションデータとも称する)を生成すると想定する。補足データ250−1は、ユーザがアプリケーション140のインスタンスを操作することから生成され得る。補足データ250−1の例には、ユーザがユーザの連絡先リストの所与の連絡先についてのお気に入りの指示を提供することが含まれる。この例は限定を意味するものではない。補足データ250−1は、アプリケーション140(インスタンス140−1又は140−2のいずれか)によって作成される任意のデータであり、このデータを、第1のストレージサービスプロバイダ120−1によって操作される第1のサーバ110−1により、プライマリ・アプリケーションデータ210−1と一緒に格納することはできない。補足データ250−1をプライマリデータ210−1とともに格納することができない多くの理由が存在し得る。例えばデータフォーマット、レコードフォーマット、プロトコル、データタイプ、サイズ、セキュリティ要件又は補足アプリケーションデータ250−1の他の態様若しくは特性が技術的にサポートされないか、互換性がなく、又はストレージサーバプロバイダ120−1による格納が許可されないという、1つ又複数の状況が含まれる。
例として、ストレージサービスプロバイダ120−1は、補足データ250−1のような特定のタイプのデータをリポジトリ180−1内に格納しないように構成され得る。これは、プライマリデータ210−1を格納するのに必要なデータ又はレコードフォーマットが、補足データを含むようにクラウドストレージにおいて(すなわち、第1のストレージサービスプロバイダ120−1によって格納されるデータによって)拡張可能ではないためである。多くのエンティティが、第1のストレージサービスプロバイダによって提供されるクラウドストレージを使用してデータを格納する異なるソフトウェアアプリケーションを有しており、クラウドストレージデータフォーマットが頻繁に更新されない場合に、この状況が存在し得る。対照的に、アプリケーション140のソフトウェアベンダは、ユーザが、アプリケーションの以前のバージョン又はリリースでは提示されなかった付加的な情報を追加すること(例えば所与の連絡先をお気に入りの連絡先として識別すること)を可能にするアプリケーションの新たなバージョンをリリースすることがある。この例において、この新たなお気に入りの連絡先情報は、第1のストレージサービスプロバイダ120−1によって格納がサポートされない補足データ250−1である。本明細書で説明されるようなサーバ110−2との通信を介して、アプリケーションインスタンス140−1は、リポジトリ180−2内への補足データの格納を開始する。
したがって、アプリケーションデータの一部を、ネットワーク環境100内の複数の異なる位置に格納することができる。例えばアプリケーションデータの第1の部分をリポジトリ180−1に格納し、アプリケーションデータの第2の部分をリポジトリ180−2に格納すること等ができる。本明細書で開示されるシステムは、異なるデバイス115上で動作するアプリケーション140の複数のインスタンスが、利用可能な補足アプリケーションデータが存在する(すなわち、第2の位置120−2、180−2に格納されている)という状況を識別できるようにし、アプリケーションのプライマリストレージサービスプロバイダ120−1(例えばクラウドストレージ環境)に関連付けられたデータフォーマット、プロトコル、ストレージ機構に対する修正を必要とせずに、この補足データへのアクセス(読み取り、書き込み、更新)を可能にする。システムは、例えばソフトウェアアプリケーション140が最初に、データ(プライマリデータと呼ばれる)をクラウドストレージに格納するように動作可能な所定のデータフォーマットへのアクセスを可能にする第1のバージョンでリリースされるときに生じる問題を克服する。アプリケーション140は次いで、新たなリリースにおいて、ユーザが、補足データ250−1と呼ばれる追加のデータを作成、格納及び/又は更新するのを可能にするように修正され得る。クラウドストレージは、データタイプ、ストレージフォーマット等の修正を許可しない第三者ストレージサービスによって提供される可能性がある。具体的な例として、第1のストレージサービスプロバイダ120−1は、この補足データ250−1の格納をサポートするようクラウドストレージデータフォーマットを更新しない可能性がある。本明細書で開示されるシステムは、第2のサーバ110−2を使用してこの補足データ250−1を格納することにより、補足データ250−1の格納及び補足データ250−1へのアクセスを可能にする。このようにして、システムは、アプリケーション140が修正されるが、依然としてプライマリ・アプリケーションデータの格納にクラウドストレージ(例えば120−1)を使用し、一方、第2のストレージサービスプロバイダ、すなわち補足ストレージサービスプロバイダ120−2が追加の補足データ250−1を格納できるようにする。システムは更に、所与のユーザが異なるコンピュータシステム(例えばラップトップ、デスクトップ及びモバイルデバイス)で操作することができるアプリケーション140の異なるインスタンスが、プライマリ・アプリケーションデータと補足アプリケーションデータの双方の存在を全て識別できるようにし、そのユーザが、これらの2つのデータのセットにアクセスすることを可能にする。
図2は、本明細書で説明される実施形態に従って、アプリケーションの第1のインスタンスが補足アプリケーションデータにインデックス付けをするための一意の識別子の値を生成するネットワーク環境を示す例示的な図である。
例えばユーザは、図示されるようにアプリケーションインスタンス140−1を第1のコンピュータデバイス115−1上で実行する。アプリケーションインスタンス140−1により、ユーザは、ストレージサービスプロバイダ120−1のサーバ110−1との通信を介してプライマリ・アプリケーションデータ210−1を取得する。ユーザは入力をアプリケーションインスタンス140−1に提供して、プライマリ・アプリケーションデータ210−1を、グラフィカルユーザインタフェースに情報を表示する等の任意の適切な目的に使用する。
プライマリ・アプリケーションデータ210−1が、まだリポジトリ180−1に格納されていない場合、ユーザは入力をアプリケーションインスタンス140−1に提供して、プライマリ・アプリケーションデータを作成し、リポジトリ180−1に格納することができることに留意されたい。
この例において、アプリケーションインスタンス140−1の使用中に、ユーザは、リポジトリ180−1に格納されるプライマリ・アプリケーションデータ210−1について補足アプリケーションデータ250−1を生成する。補足アプリケーションデータ250−1は、プライマリ・アプリケーションデータ210−1に対する強調、修正、編集、追加の情報等を示すことができる。したがって、補足アプリケーションデータ250−1を、何らかの方法でプライマリ・アプリケーションデータ210−1に関連付けることができる。非限定的な例として、本明細書において後述されるように、プライマリ・アプリケーションデータ210は、ユーザがネットワーク環境内で1又は複数の他の人と通信できるようにする連絡先情報とすることができる。
説明されるように、この例において、プライマリ・アプリケーションデータ210−1を格納するストレージサービスプロバイダ120−1とサーバ110−1は、ユーザによって生成される補足アプリケーションデータ250−1の格納をサポートすることができないことを想定している。本明細書の実施形態によると、アプリケーションインスタンス140−1は、コンピュータデバイス115−1のユーザから入力されたアプリケーションデータ250−1を受信する。本明細書で説明されるように、コンピュータデバイス115−1で実行されているアプリケーション140は、補足アプリケーションデータ250−1をプライマリ・アプリケーションデータ210−1に関連付ける。例えば一実施形態において、補足アプリケーションデータ250−1をプライマリ・アプリケーションデータ210−1に関連付けるために、アプリケーションインスタンス140−1は処理関数225を使用して、例えばプライマリ・アプリケーションデータ210−1の少なくとも一部に基づいて一意の識別子の値を計算する。特定の実施形態において、処理関数225は、アプリケーションの第1のインスタンスを操作しているユーザのユーザ識別情報と組み合わせて、ハッシュ関数をプライマリ・アプリケーションデータ210−1の少なくとも一部に適用することによって、一意の識別子の値230−1を生成する。これは、補足アプリケーションデータについて一意の識別子の値を生成し、別のデバイス上のアプリケーションの第2のインスタンスのユーザによる補足アプリケーションデータへのアクセスを可能にする。この手法において、ユーザが異なるデバイスにおいて同じソフトウェアを操作しているとき、補足アプリケーションデータは各インスタンスに対して利用可能となる。
アプリケーションインスタンス140−1は、一意の識別子の値230−1をサーバ110−2に転送する。アプリケーションインスタンス140−1は、リポジトリ180−2への格納のために、補足アプリケーションデータ250−1も第2のストレージサービスプロバイダ120−2に転送する。一意の識別子230−1及び補足アプリケーションデータ250−1は、別個に又は単一のレコードで一緒に第2のストレージサービスプロバイダに送信されてよい。一実施形態において、ストレージサービスプロバイダ120−2は、UIV230−1のエントリと補足アプリケーションデータ250−1へのポインタとをマップ260に含めることによって、一意の識別子の値(UIV:unique identifier value)230−1を補足アプリケーションデータ250−1に関連付ける。
一実施形態において、マップ260内のUIV230−1は、補足アプリケーションデータ250−1へのインデックスとして機能する。例えば検討されるように、アプリケーションインスタンス140−1は、ストレージサービスプロバイダ120−1が補足アプリケーションデータ250−1を格納するのに使用可能でないか、補足アプリケーションデータ250−1を格納するように構成されないため、ストレージサービスプロバイダ120−2のリポジトリ180−2内への補足アプリケーションデータ250−1の格納を開始する。
上記で検討したように、アプリケーションインスタンス140−1はまた、ストレージサービスプロバイダ120−2に、一意の識別子の値230−1が補足アプリケーションデータ250−1に対応することを通知する。したがって、一実施形態において、アプリケーションインスタンス140−1は、UIV230をマップ260内のインデックスエントリとして効果的に生成する。例えばマップ260内のエントリは、UIV230−1を、リポジトリ180−2内に格納された補足アプリケーションデータ250−1へのポインタに関連付ける。
ストレージサービスプロバイダ120−2のサーバ110−2は、ネットワーク環境100において動作するアプリケーション140の1つ又は複数の他のインスタンスのいずれかによる、補足アプリケーションデータ250−1の後の取得を可能にする。一般に、及び以下でより詳細に説明されるように、これは、実行時に、アプリケーション140の任意のインスタンスを有し、プライマリ・アプリケーションデータ210−1の取得されたセットについてUIVの値を計算し、次いでこのUIVの値を補足アプリケーションデータサーバ110−2に伝送することによって行われる。サーバ110−2は、UIVを使用してマップ160を確認し、いずれかの補足アプリケーションデータ250−1が存在するかどうかを判断することができる。
所与のユーザは、第1の時点においてアプリケーションインスタンス140−1を実行することがある。この所与のユーザが、後でアプリケーションインスタンス140−2を実行することがある。ストレージサービスプロバイダ120へのアクセスを介して、この所与のユーザは(例えば補足アプリケーションデータにより)変更をストレージサービスプロバイダ120−2に保存し、これらの変更を後で、同じ又は異なるコンピュータデバイス上で実行されるアプリケーション140のインスタンスを使用して取得することができる。
図3は、UIV230を使用する本明細書の実施形態に従って、アプリケーションの第2のインスタンスを操作するユーザが、第2のサーバから、格納された補足アプリケーションデータの取得を開始するネットワーク環境を示す例示的な図である。
示されているように、アプリケーションインスタンス140−2は、ストレージサービスプロバイダ120−1と通信して、リポジトリ180−1に格納されたプライマリデータを取得する。アプリケーションインスタンス140−2は、UIV130を生成し、UIV130をストレージサービスプロバイダ120−2に通信して、補足データをリポジトリ180−2から取得する。言及したように、及び以下で更に検討したように、補足アプリケーションデータを格納し、UIVを使用してストレージサービスプロバイダ120−2から取得する能力により、1又は複数のユーザは、データを失うことなく、またデータをコンピュータデバイスにローカルに格納する必要なく、アプリケーション140のインスタンスをネットワーク環境100内の任意の位置のコンピュータデバイスから実行することが可能になる。
図4は、本明細書の実施形態に従って、アプリケーションの第2のインスタンスが一意の識別子の値を使用して、第2のサーバから、格納された補足アプリケーションデータの取得を開始するネットワーク環境を示す例示的な図である。
この例では、ネットワーク環境100内のユーザが、(図1の)115のようなそれぞれのコンピュータデバイス上でアプリケーションインスタンス140−2の実行を開始すると想定する。
アプリケーションインスタンス140−2は、ユーザによる閲覧のためにグラフィカルユーザインタフェースを表示する。グラフィカルユーザインタフェースに対する入力により、ユーザは、リポジトリ180−1及びリポジトリ180−2のいずれか又は双方に格納されることになった、アプリケーション140に関連付けられた(プライマリ又は補足のいずれか)データを閲覧することを要求することができる。
この例では、アプリケーションインスタンス140−2のユーザが、グラフィカルユーザインタフェースを操作して、少なくともリポジトリ180−1からのプライマリ・アプリケーションデータ210−1の取得を求める情報を表示することを想定する。入力に応答して、アプリケーションインスタンス140−2は、プライマリ・アプリケーションデータ210−1をストレージサービスプロバイダ120−1から取得する。以下で検討されるように、アプリケーションインスタンス140−2のグラフィカルユーザインタフェースは、ユーザによって、アプリケーションインスタンス140−2に補足アプリケーションデータ250−1を取得するように求める手法で操作される可能性がある(例えばユーザはお気に入りの連絡先を見るように要求する)。
この例において、ストレージサービスプロバイダ120−1のサーバ110−1は、補足アプリケーションデータ250−1をリポジトリ180−1に格納することができないことを思い出されたい(例えば補足データ250−1はクラウドストレージシステムに格納可能ではない)。非限定的な例として、補足アプリケーションデータ250−1は、グラフィカルユーザインタフェース上にデータを表示するときに、適用すべき特別な特徴を指示すことがあり、プロバイダ120−1によって提供されるクラウドストレージシステムのデータ、レコードフォーマット、プロトコル又は他の動作が、この補足データ250−1の格納をサポートしない。
一実施形態において、アプリケーションインスタンス140−2は、サーバ110−2に対して、修正、すなわち補足アプリケーションデータが、ストレージサービスプロバイダ120−2からの取得に利用可能であるかどうかを確認するクエリを実行する。以下で説明されるように、このことは、プライマリデータ210−1に対するUIV130を計算し、このUIV値を第2の(補足)ストレージサービスプロバイダ120−2に送信することによって行われる。プライマリ・アプリケーションデータ210−1に利用可能な補足アプリケーションデータが存在する場合、アプリケーションインスタンスは、ストレージサービスプロバイダ120−2からそのようなデータの取得を開始する。
補足アプリケーションデータ250−1を取得するため、プライマリ・アプリケーションデータ210−1のコピーの取得に続いて、アプリケーションインスタンス140−2は、一意の識別子の値(アプリケーションインスタンス140−1によって以前に生成されたのと同じUIV)を、サーバ110−1から取得されるプライマリ・アプリケーションデータ210−1の処理(すなわち取得)に少なくとも部分的に基づいて生成する。例えば一実施形態において、アプリケーションインスタンス140−2は、ハッシュ関数のような処理関数225をプライマリ・アプリケーションデータ210−1の少なくとも一部に適用して、一意の識別子の値230−1を生成する。ハッシュ関数は、プライマリ・アプリケーションデータ210−1のある部分又は複数の異なる部分又は全てをハッシュして、UIV130−1を得ることを含むことができる。ユーザの識別情報をこのハッシュに含めることができ、そのユーザのために、そのアプリケーションについて(すなわち、そのバージョンの)補足アプリケーションデータ250の特定の適切なセットを関連付けるのに使用することができるUIV230−1を生成することができる。
一実施形態において、処理関数225は、補足アプリケーションデータを最初に生成したときに、第1のアプリケーションインスタンス140−1によって一意の識別子の値230−1を生成するのに使用された処理関数と同じ処理関数である。
この例において、アプリケーションインスタンス140−1がプライマリ・アプリケーションデータ210−1をリポジトリ180−1に格納してから、プライマリ・アプリケーションデータ210−1は変化していないと想定すると、アプリケーションインスタンス140−2の処理関数225は、ストレージサービスプロバイダ120−2内で補足アプリケーションデータ250−1の格納を開始したときにアプリケーションインスタンス140が生成したものと同じインデックス値を生成する。
例えばアプリケーションインスタンス140−2は、プライマリ・アプリケーションデータ210−1に基づいて一意の識別子の値230−1を生成する。この例において、アプリケーションインスタンス140−2によって生成される一意の識別子の値230−1は、アプリケーションインスタンス140−1によって生成される一意の識別子の値230−1と同じである。というのも、アプリケーション140の両インスタンスは、同じ処理関数を同じプライマリ・アプリケーションデータ210−1に適用するからである。
アプリケーションインスタンス140−2は、ここで生成された一意の識別子の値230−1を、補足アプリケーションデータを識別してストレージサービスプロバイダ120−2から取得するためのインデックスとして使用する。例えばアプリケーションインスタンス140−2は、生成された一意の識別子の値230−1をサーバ110−2に転送することによって、補足アプリケーションデータ250−1の取得を開始する。サーバ110−2は、一意の識別子の値230−1を、補足アプリケーションデータ250−1が格納されているリポジトリ180−2内の位置にマップする。
サーバ110−2は、補足アプリケーションデータ250−1をリポジトリから取得して、アプリケーションインスタンス140−2に転送する。アプリケーションインスタンス140−2は、したがって補足アプリケーションデータ250−1をサーバ110−2から受信する。
一実施形態において、アプリケーションインスタンス140−2は、取得したプライマリ・アプリケーションデータ210−1を用いてプライマリ設定情報を識別する。アプリケーションインスタンス140−2は、取得した補足アプリケーションデータ250−1を使用して、プライマリ・アプリケーションデータ210−1によって指定されるようなプライマリ設定に対する修正を識別する。
この手法では、実行される同じアプリケーションの複数の異なるアプリケーションインスタンスはそれぞれ、クラウド内の1つ又は複数の異なる位置に格納されたアプリケーションデータにアクセスすることができる。これにより、アプリケーションの利用を潜在的に制限することとなる、アプリケーションデータを単一のコンピューティングデバイスへのローカルに格納する必要性がなくなる。
説明されるように、プライマリ・アプリケーションデータ210−1及び対応する補足アプリケーションデータ250−1は、アドレス帳アプリケーションで使用される連絡先情報とすることができる。そのような実施形態において、ユーザが、ネットワーク環境100内に配置されたストレージサービスプロバイダ120−1にアプリケーションデータを書き戻すことができないアクション、コマンド等を開始するとき、アプリケーションインスタンス140−1は、一意の識別子の値230−1(例えばインデックス値、ハッシュに基づく鍵等)をプライマリ・アプリケーションデータ210−1のプロパティ(例えば特定の連絡先情報)に基づいて作成する。アプリケーションインスタンス140−1は、一意の識別子の値230−1を鍵又はインデックス値として使用して、鍵によって識別される追加の連絡先情報のみを格納する。例えば一実施形態において、クライアントすなわちアプリケーションインスタンス140−1はその後、一意の識別子の値230−1をストレージサービスプロバイダ120−2に送信する。サーバ110−2は、一意の識別子の値(例えば鍵、インデックス値、ハッシュ値等)を格納し、補足アプリケーションデータ250−1を(本明細書で開示される機構を介して)アドレス帳及びそれぞれのアプリケーションデータへのアクセスを有する任意のクライアント(例えばネットワーク環境100内のアプリケーションインスタンス140)に提供できるようにする。
一実施形態において、アプリケーションインスタンス140−2が同期を試みるとき、アプリケーションインスタンス140−2は、ストレージサービスプロバイダ120−1に格納され、ストレージサービスプロバイダ120−1から取得されるプライマリ・アプリケーションデータによって指定されるように、連絡先の各々に対して一意の識別子の値を生成する。アプリケーションインスタンス140−2は一意の識別子の値をサーバ110−2に転送し、補足データが、それぞれの各連絡先に利用可能かどうかを確認する。補足データが利用可能である場合、サーバ120−2は、適切なアプリケーションデータをアプリケーションインスタンス140−2に転送する。アドレス帳の連絡先ごとに、プライマリ・アプリケーションデータ及び補足アプリケーションデータを取得することにより、アプリケーションインスタンス140−2を正確に同期させることができる。
ある場合において、リポジトリ180−1内に格納されたプライマリデータの所与のセットについて、いずれの補足アプリケーションデータも存在しない可能性がある。そのような状況では、アプリケーションインスタンス140−2は、ストレージサービスプロバイダ120−1から取得されたプライマリ・アプリケーションデータのみを使用して、対応する情報の表示をグラフィカルユーザインタフェース内で開始する。
図5は、本明細書における実施形態に従って、プライマリ・アプリケーションデータを補足アプリケーションデータとマップするための一意の識別子の値の使用を示す例示的な図である。
上記で検討したように、それぞれのアプリケーション140のユーザは、ストレージサービスプロバイダ120−1のリポジトリ180−1への複数のセットのプライマリ・アプリケーションデータ210(例えばプライマリ・アプリケーションデータ210−1、プライマリ・アプリケーションデータ210−2、プライマリ・アプリケーションデータ210−3等)の格納を開始する。説明されるように、非限定的な例として、プライマリ・アプリケーションデータは連絡先情報である。
上記で検討したように、それぞれのユーザは、補足アプリケーションデータの生成を通じてプライマリ・アプリケーションデータを修正することができる。この例において、ユーザは補足アプリケーションデータ250−1を生成する。
上記で検討したような手法では、それぞれのアプリケーションインスタンス140−1が、一意の識別子の値230−1を生成し、ストレージサービスプロバイダ120−2において補足アプリケーションデータ250−1及び一意の識別子の値230−1の格納を開始する。
この例において更に示されているように、ユーザは、プライマリ・アプリケーションデータ210−3に関連付けられる補足アプリケーションデータ250−3を生成する。それぞれのアプリケーションインスタンス140−1は、一意の識別子の値230−3を生成し、一意の識別子の値250−3及び対応する補足アプリケーションデータ250−3のストレージサービスプロバイダ120−2への格納を開始する。
説明されるように、マップ260は、一意の識別子と、それぞれのプライマリ・アプリケーションデータに対して生成された補足データとの間の関連付けを格納する。
一実施形態において、ストレージサービスプロバイダ120−2は、複数の異なるユーザの各々に対して、補足データを格納することができる。そのような状況では、マップは、識別子の値をユーザ毎にグループ化するように構成されることが可能である。例えば補足アプリケーションデータを取得するよう要求しているアプリケーションインスタンスは、補足アプリケーションデータの利用可能性について確認するときに、ユーザ識別子をサーバ110−2に提供することもできる。
ユーザの識別子を介して、ストレージサービスプロバイダ120−2は、補足アプリケーションデータがユーザのためにストレージサービスプロバイダ120−2内に格納されているかどうかを識別するために、(マップ260内の全ての一意の識別子の値を確認するのではなく)マップ260において一意の識別子の値の対応するグループを識別して確認する。
図6は、本明細書における実施形態に従って、アプリケーションインスタンスによるプライマリ・アプリケーションデータ及び補足アプリケーションデータの使用を示す例示的な図である。
この例では、それぞれのユーザによってアプリケーションインスタンス140−1を介して生成されたプライマリ・アプリケーションデータが、アドレス帳内のエントリの連絡先情報に対応すると想定する。例えばプライマリ・アプリケーションデータ210−1が、Joseph Smithなどの第1の連絡先に関連付けられる情報(例えば名前、電子メール情報、電話情報等)を含み、プライマリ・アプリケーションデータ210−2が、John Doeなどの第2の連絡先に関連付けられる情報を含み、プライマリ・アプリケーションデータ210−3が、David Johnsonなどの第3の連絡先に関連付けられる情報を含むと想定する。
上記で検討したように、プライマリ・アプリケーションデータ210を、ユーザによって又は何らかの他のリソースによって作成することができる。
ストレージサービスプロバイダ120−1は、それぞれの連絡先に関連付けられた名前、電子メール情報、電話番号等のような特定の情報を格納することができる。なお、この例では、アプリケーション140が、グラフィカルユーザインタフェースで表示されるときに、連絡先情報内のお気に入りを示すようにテキストを太字にすることや、連絡先の近くに表示するために付加的なテキストを追加することなどの機能性をサポートすると想定する。
上記のように、ストレージサービスプロバイダ120−1がそのような情報の格納をサポートしないことには、いくつかの理由がある。説明されるように、アプリケーションインスタンスは、そのような状況において補足アプリケーションデータ250の作成を開始するように構成される可能性がある。例えばアプリケーションインスタンス140−1は、Joseph Smithをお気に入りとしてハイライトする選択を指示する補足アプリケーションデータ250−1を生成し、アプリケーションインスタンス140−1は、エントリであるDavid Johnsonについて表示すべき追加の情報(例えば会社やタイトル情報)を指示する補足アプリケーションデータ250−1を生成する。アプリケーションインスタンス140−1が開発者(例えばソフトウェアエンジニア)によって書かれる(例えばコード化される)とき、開発者は、本明細書で開示される機構を使用して、プライマリデータ210としてプライマリストレージサービスプロバイダ120−1内に格納することができない任意のデータについて、補足アプリケーションデータ250を補足ストレージサービスプロバイダ120−2内に格納することができる。アプリケーションプログラミングインタフェース(API)を、プライマリ・アプリケーションデータの取得、UIVの作成、UIVの通信及び補足ストレージサービスプロバイダ120−2による補足アプリケーションデータの格納と取得のような、本明細書で開示される一般的機能のために提供することができる。
上記で検討した手法において、アプリケーションインスタンス140−1は、補足アプリケーションデータ及び対応する一意の識別子の値のストレージサービスプロバイダ120−2への格納を開始する。
異なるユーザが同じく、アプリケーションインスタンス140−2の実行を開始して、ネットワーク環境100内で連絡先情報を見るとき、アプリケーションインスタンス140−2はプライマリ・アプリケーションデータの取得を開始する。プライマリ・アプリケーションデータの全て又は選択された部分に対する処理関数225の適用により、アプリケーションインスタンス140−2は、一意の識別子の値の生成及びそれぞれの補足アプリケーションデータの取得を開始する。この例において、アプリケーションインスタンスは、補足アプリケーションデータ250−1、補足アプリケーションデータ250−3等の取得を開始し、補足アプリケーションデータによって指定される設定を、最終的に連絡先マネージャグラフィカルユーザインタフェース630内のアドレス帳に表示される連絡先情報へと適用する。
一実施形態において、アプリケーションインスタンス140−2は、アドレス帳に表示されるプライマリ・アプリケーションデータの情報に対する更なる修正を開始することができる。そのような例において、所与のインスタンス140が、ストレージサービスプロバイダ120−1によって格納されるプライマリ・アプリケーションデータのセットに対する変更を開始する場合、その所与のインスタンスは、プライマリ・アプリケーションデータのセットに対する変更に基づいて新たな一意の識別子の値を生成し、更新された一意の識別子の値を、マップ260内への格納のためにサーバ110−2に転送する。この手法では、UIVは常に、最新のプライマリ・アプリケーションデータのセットを有する「現在のもの(current)」である。ユーザがまた、対応する補足アプリケーションデータも修正する場合、アプリケーションインスタンスは、更新された補足アプリケーションデータも、格納及び後の取得のためにストレージサービスプロバイダ120−2に転送する。したがって、プライマリ・アプリケーションデータが変更されて、補足アプリケーションデータに対する任意の変更も、後の取得のために(ストレージサービスプロバイダ120−2によって)キャプチャ及び格納されるとしても、更新された一意の識別子の値により、別のアプリケーションインスタンスは依然として補足アプリケーションデータを取得することができる。
図7は、本明細書における実施形態に従って、アプリケーションインスタンス140に関連付けられる機能を実行するためのコンピュータシステムの例示的なブロック図である。
コンピュータシステム700は、サーバやクライアント等として動作する、パーソナルコンピュータ、ワークステーション、ポータブルコンピューティングデバイス、コンソール、ネットワーク端末、処理デバイス、ネットワークデバイス等のような1つ又は複数のコンピュータ化されたデバイスを含むことができる。
以下の議論は、本明細書における実施形態に従って、アプリケーションインスタンス140に関連付けられる機能をどのように実行するかを示す基本的な実施形態を提供することに留意されたい。しかしながら、本明細書で説明される動作を実行するための実際の構成は、それぞれのアプリケーションに応じて異なる可能性があることに留意すべきである。また、サーバ110−1、110−2等をそれぞれ、コンピュータ読取可能記憶媒体、並びに本明細書で検討される機能を実行するそれぞれの1つ又は複数のプロセッサデバイスなどと同様のリソースで構成することができることにも留意されたい。
図示されるように、本例のコンピュータシステム700は、デジタル情報を格納して取得することができる非一時的なタイプのコンピュータ読取可能記憶媒体のような、コンピュータ読取可能記憶媒体312を結合する相互接続311を含む。コンピュータシステム700は更に、プロセッサデバイス313、入出力(I/O)インタフェース314及び通信インタフェース317を含む。
I/Oインタフェース314は、リポジトリ780のような入出力デバイス、及び存在する場合にはディスプレイデバイス730、周辺デバイス316(例えばキーボード、コンピュータマウス等)等のような他のデバイスとの接続性を提供する。
コンピュータ読取可能記憶媒体312は、メモリ、光ストレージ、ハードドライブ、フロッピー(登録商標)ディスク等のような任意の適切なデバイスとすることができる。一実施形態において、コンピュータ読取可能記憶媒体312は、命令及び/又はデータを記憶するように構成される記憶媒体(すなわちハードウェア記憶媒体)である。
通信インタフェース317は、コンピュータシステム700及びプロセッサデバイス313がネットワーク190を介して通信し、他のコンピュータやサーバ等のような複数の異なるリモートリソースのいずれかから情報を取得し、及び/又はその複数の異なるリモートリソースのいずれかに情報を転送できるようにする。説明されるように、I/Oインタフェース317は、プロセッサデバイス313がそれぞれの情報をリポジトリ780から取得できるようにする。
示されるように、コンピュータ読取可能記憶媒体312は、プロセッサデバイス313によって実行されるアプリケーションインスタンス140(例えばソフトウェア、ファームウェア等)を用いて符号化され得る。
一実施形態の動作の間において、プロセッサデバイス313は、コンピュータ読取可能記憶媒体312上に格納されたアプリケーション140−Xの命令を起動、実行、解釈又は他の形で行うために、相互接続311の使用を介してコンピュータ読取可能記憶媒体312にアクセスする。
アプリケーション140−Xの実行は、プロセッサデバイス313内のプロセス141のような処理機能を生成する。言い換えると、プロセッサデバイス313に関連付けられたアプリケーション140−Xは、コンピュータシステム700内のプロセッサデバイス313内で、又はプロセッサデバイス313上において、実行しているアプリケーション140のインスタンスを表す。
当業者には、コンピュータシステム700が、アプリケーション140を実行するのにハードウェアリソースの割り当て及び使用を制御するオペレーティングシステムのような、他のプロセス及び/又はソフトウェア及びハードウェアコンポーネントを含む可能性があることが理解されよう。
異なる実施形態によると、コンピュータシステム700は、様々なタイプのデバイスのいずれかとすることができることに留意されたい。そのような様々なタイプのデバイスには、これらに限定されないが、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ、ノートブック、ネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、アプリケーションサーバ、ストレージデバイス、カメラ、カムコーダ、セットトップボックス、モバイルデバイス、ビデオゲームコンソール、ハンドヘルドビデオゲームデバイスのような家庭用電化製品、スイッチ、モデム、ルータのような周辺デバイス又は一般的な任意のタイプのコンピューティング若しくは電子デバイスが含まれる。
アプリケーションインスタンス140によってサポートされる機能性を、次に図8及び図9のフローチャートにより検討する。図1乃至図7について上記検討した概念に関して一部重複する部分があり得ることに留意されたい。また、以下のフローチャートにおけるステップは、必ずしも示される順番で実行される必要はない。すなわち、ステップを任意の適切な順番で実行することができる。
図8は、本明細書における実施形態に従って、プライマリ・アプリケーションデータを処理する方法を示すフローチャート800である。
ステップ810において、アプリケーションインスタンス140−1はプライマリ・アプリケーションデータ210−1を取得する。プライマリ・アプリケーションデータ210−1を、サーバ110−1から取得することができ、又はユーザによって生成することもできる。
ステップ820おいて、アプリケーションインスタンス140−1は、プライマリ・アプリケーションデータ210−1に関連付けられる補足アプリケーションデータを受信する。
ステップ830において、アプリケーションインスタンス140−1は、一意の識別子の値230−1を、プライマリ・アプリケーションデータ210−1に少なくとも部分的に基づいて計算する。
ステップ840において、アプリケーションインスタンス140−1は、ハッシュ関数のような処理関数をプライマリ・アプリケーションデータ210−1の少なくとも一部(例えば電子メールアドレス、電話番号等)に適用して、補足アプリケーションデータ250−1と関連付けるための一意の識別子の値230−1を生成する。
ステップ850において、アプリケーションインスタンス140−1は、一意の識別子の値230−1をサーバ110−2に転送し、サーバ110−2は、アプリケーションインスタンス140−2による補足アプリケーションデータ250−1の後続の取得を可能にする。
ステップ860において、アプリケーションインスタンス140−1は、サーバ120−2内への補足アプリケーションデータ250−1の格納を開始する。
ステップ870において、サーバ110−2は、一意の識別子の値230−1をリポジトリ180−2内に格納された補足アプリケーションデータ250−1に関連付ける、マップ260内へのインデックスエントリの格納を開始する。
図9は、本明細書における実施形態に従って、アプリケーションデータを処理する方法を示すフローチャート900である。
ステップ910において、アプリケーションインスタンス140−2は、プライマリ・アプリケーションデータ210−1をサーバ110−1から取得する。
ステップ920において、アプリケーションインスタンス140−2は、一意の識別子の値230−1を、サーバ110−1から取得されたプライマリ・アプリケーションデータ210−1に少なくとも部分的に基づいて生成する。
サブステップ930において、アプリケーションインスタンス140−2は、ハッシュ又は他の適切な関数を、プライマリ・アプリケーションデータ210−1の少なくとも一部に適用し、一意の識別子の値230−1を生成する。
ステップ940において、アプリケーションインスタンス140−2は、(アプリケーションインスタンス140−2によって生成されるような)一意の識別子の値230−1をインデックスとして利用して、ストレージサービスプロバイダ120−2内に格納された補足アプリケーションデータ250−1を識別する。
サブステップ950において、アプリケーションインスタンス140−2は、一意の識別子の値230−1をサーバ110−2に転送する。第2のサーバ110−2は、アプリケーションインスタンス140−2によって生成されるような一意の識別子の値230−1を、補足アプリケーションデータ250−1にマップする。
ステップ960において、アプリケーションインスタンス140−2は、サーバ110−2からの補足アプリケーションデータ250−1の取得を開始する。
サブステップ965において、アプリケーションインスタンス140−2は、補足アプリケーションデータ250−1をサーバ110−2から受信する。
ステップ970において、アプリケーションインスタンス140−2は、取得したプライマリ・アプリケーションデータ140−2を利用して、アプリケーションインスタンスに関連付けられたプライマリ設定を識別する。
ステップ980において、アプリケーションインスタンス140−2は、補足アプリケーションデータ250−1を利用して、プライマリ・アプリケーションデータ210−1によって指定される、プライマリ設定に対する修正を識別する。
本明細書で開示される技術を使用して、1つ又は複数の異なる位置において格納される補足アプリケーションデータにアクセスすることによって、コンピュータシステムの利用を制限する可能性がある補足データをローカルに格納する必要性なく、アプリケーションのカスタマイズを可能にしつつも、実行されている同じアプリケーションの複数の異なるインスタンスの各々は、クラウドコンピューティング環境によって提供されるデータサービスにアクセスすることができる。この手法では、クラウドコンピューティング環境が追加の特徴をサポートしないことがあるとしても、本明細書で開示されるシステムを用いるアプリケーションは、追加のサービスを、ユーザ及びそのユーザによって使用される他のデバイス上で利用可能な(補足データの格納及びアクセスを要求する)他のサービスに対して提供することができる。
補足アプリケーションデータを取得するために一意の識別子の値を生成するのにアプリケーションの異なるインスタンスによって使用される同じ処理関数は、アプリケーションのユーザに対して一意のものとすることができる。したがって、(あり得る複数のアプリケーションのなかの)ユーザのあるアプリケーションのみが、補足アプリケーションデータを取得するのに適切な鍵又はインデックス値を生成することができることになる。したがって、本明細書における実施形態は、従来の技術を超えるセキュリティレベルを提供する。
説明されるように、例示的な実施形態において、プライマリ・アプリケーションデータ及び補足アプリケーションデータは、アドレス帳で使用される連絡先情報に関する可能性がある。そのような実施形態では、第1のアプリケーションインスタンスにおいて、ユーザがアプリケーションを操作して、ネットワーク内に配置された第1のストレージサービスプロバイダに書き戻すことができないデータを作成又は修正するとき、アプリケーション140は、一意の識別子の値(例えばインデックス値、ハッシュベースの鍵等)を、プライマリ・アプリケーションデータ(例えば特定の連絡先情報)のプロパティに基づいて作成し、この鍵を使用して、該鍵によってのみ識別される追加の連絡先情報を格納する。アプリケーションは、次いでこの一意の識別子の値を第2のストレージサービスプロバイダに送信する。第2のストレージサービスプロバイダは、一意の識別子の値を格納し、補足アプリケーションデータを、ユーザによって操作されるこのアプリケーションの任意の他のインスタンスと同期できるようにする。
アプリケーションの第2のインスタンスが同期を試みるとき、アプリケーションの第2のインスタンスは、連絡先のそれぞれに対してハッシュ値を生成する。アプリケーションの第2のインスタンスは、ハッシュ値(すなわち一意の識別子の値)を補足サーバに転送して、それぞれの連絡先について補足データが利用可能かどうかを確認する。補足データが利用可能である場合、補足サーバは、データをアプリケーションの第2のインスタンスに転送する。第1のストレージサービスからのプライマリ・アプリケーションデータの取得し、及び第2のストレージサービスプロバイダからの各連絡先の補足アプリケーションデータの取得を介して、アプリケーションの第2のインスタンスを正確に同期させることができる。
アプリケーションにおける使用に適した本明細書の技術は、ソフトウェアの複数のインスタンスを、ネットワークに接続された複数の別個に配置されたデバイス上で実行することができる。しかしながら、本明細書における実施形態は、そのようなアプリケーションにおける使用に限定されず、本明細書で検討される技術は他のアプリケーションにも同様に適切であることを理解すべきである。
本明細書における実施形態は、本明細書に開示される方法の動作のいずれか又は全てを実行及び/又はサポートする1つ又は複数のコンピュータ化されたデバイス、ワークステーション、ハンドヘルド又はラップトップコンピュータ等の構成を含むことができる。言い換えると、1つ又は複数のコンピュータ化されたデバイス又はプロセッサを、本明細書で説明されるように動作して本発明の異なる実施形態を実行するようにプログラム及び/又は構成することができる。
本明細書における更に他の実施形態は、上記で要約され、下記で詳細に開示されるステップ及び動作を実行するソフトウェアプログラムを含む。1つのそのような実施形態は、後の実行のためにソフトウェア命令が符号化されるコンピュータ読取可能記憶媒体(すなわち任意のタイプのハードウェア記憶媒体)を含むコンピュータプログラム製品を備える。命令及び/又はプログラムは、プロセッサを有するコンピュータ化されたデバイスで実行されると、プロセッサに、本明細書で開示される動作を実行させる。そのような構成は典型的に、光媒体(例えばCD−ROM)、フロッピーディスク、ハードディスク、メモリスティック等の非一時的なコンピュータ読取可能記憶媒体上、あるいは1つ又は複数のROM、RAM、PROM等内のファームウェア又はマイクロコードのような他の媒体上に構成又は符号化されるソフトウェア、コード、命令及び/又は他のデータ(すなわちデータ構造)として、あるいは特定用途向け集積回路(ASIC)として提供される。ソフトウェア又はファームウェア又は他のそのような構成を、コンピュータ化されたデバイスにインストールして、該コンピュータ化されたデバイスに本明細書で説明される技術を実行させることができる。
本開示の他の実施形態は、上記で要約され、下記で詳細に開示される方法の実施形態のステップ又は動作のいずれかを実行するソフトウェアプログラム及び/又はそれぞれのハードウェアを含む。ステップの順序は明確さのために付けられているものである。これらのステップを任意の適切な順序で実行することができる。
本明細書で検討されるようにシステム、方法、装置、コンピュータ読取可能記憶媒体上の命令等は、厳格に、ソフトウェアプログラムとして、ソフトウェアとハードウェアのハイブリッドとして、プロセッサ内、オペレーティングシステム内又はソフトウェアアプリケーション内のようなハードウェア単独として具現化され得る。本発明の例示的な実施形態は、米国ワシントン州レッドモンドにあるマイクロソフト社によい製造されるような製品及び/又はソフトウェアアプリケーションで実装されてもよい。
さらに、本明細書における異なる特徴、技術、構成等のそれぞれが、本開示の異なる箇所において検討されていることがあるが、これらの概念をそれぞれ相互に独立に実行してもよく、あるいは適切な場合にはこれらの概念を相互に組み合わせて使用することができる。したがって、本明細書で説明される1つ又は複数の本発明を、多くの異なる方法で具現化して見ることができる。
本明細書で記載される説明に基づいて、特許請求に係る主題の完全な理解を提供するために多くの具体的な説明が記載されている。しかしながら、当業者には特許請求に係る主題はこれらの具体的な詳細なしに実施されてもよいことが理解されよう。他の例では、当業者に公知であろう方法、装置、システム等は、特許請求に係る主題を曖昧にしないように詳細には説明されていない。詳細な説明の一部は、コンピュータメモリのようなコンピューティングシステムメモリ内に格納されるデータビット又はバイナリデジタル信号上での動作のアルゴリズム又は記号的表現に関して提示されている。これらのアルゴリズムの説明又は表現は、データ処理の分野の当業者により、その作業の内容を他の当業者に伝えるのに使用される技術の例である。本明細書で説明されるような、及び一般的なアルゴリズムは、動作の自己矛盾のないシーケンスであるか、所望の結果を得る同様の処理であると考えられる。このコンテキストでは、動作及び処理は物理的な量の物理的な操作を伴う。必ずではないが、典型的に、そのような量は、格納、伝送、結合、比較、あるいは処理回路及び/又はソフトウェアを介して他の形で操作されることが可能な電子的又は磁気信号の形をとることがある。主に共通の使用の理由から、そのような信号をビット、データ、値、要素、信号、文字、用語、数、数字等と称することが便利であることが知られている。これら及び同様の用語は、適切な物理的な量と関連付けられるべきものであり、単に便利なラベルであることを理解されたい。他に特段の指定がない限り、以下の議論から明らかであるように、「処理する」、「計算する」、「算出する」、「決定する」等のような用語を使用する本明細書の議論は、メモリ、レジスタ又は他の情報記憶デバイス内の物理的な電子量又は磁気量として表されるデータを操作又は変形する、コンピュータ又は類似の電子的なコンピューティングデバイス、伝送デバイス又はコンピューティングプラットフォームのディスプレイデバイスのような、コンピューティングプラットフォームのアクション又はプロセスを指すことが認識されよう。
本発明は、好ましい実施形態を参照して具体的に示され、説明されてきたが、当業者には、添付の特許請求の範囲によって定義される本発明の精神及び範囲を逸脱することなく、形式及び詳細について様々な変更をなすことが可能であることが認識されよう。そのような変形は、本出願の範囲によって網羅されるように意図される。このように、本出願に係る実施形態の上記説明は、限定的であるように意図されていない。むしろ、本発明に対する任意の限定は、特許請求の範囲において提示される。


Claims (20)

  1. アプリケーションの第1のインスタンスにおいて、
    第1のサーバからプライマリ・アプリケーションデータを取得するステップと、
    前記プライマリ・アプリケーションデータに関連付けられるべき補足アプリケーションデータを受信するステップと、
    前記プライマリ・アプリケーションデータに少なくとも部分的に基づいて第1の一意の識別子の値を計算するステップと、
    前記第1の一意の識別子の値を第2のサーバに転送するステップであって、前記第2のサーバは、前記第1の一意の識別子の値を使用して前記アプリケーションの第2のインスタンスによる前記補足アプリケーションデータの後の取得を可能にする、ステップと
    を含む、方法。
  2. 前記アプリケーションの前記第2のインスタンスにおいて、
    前記第1のサーバから前記プライマリ・アプリケーションデータを取得するステップと、
    前記プライマリ・アプリケーションデータに少なくとも部分的に基づいて第2の一意の識別子の値を計算するステップと、
    前記第2のインスタンスによって生成された前記第2の一意の識別子の値をインデックスとして使用して、前記補足アプリケーションデータを識別し、前記第2のサーバから前記補足アプリケーションデータを取得するステップと
    を更に含む、請求項1に記載の方法。
  3. 前記第2のインスタンスによって生成された前記第2の一意の識別子の値を使用することは、

    前記アプリケーションの前記第2のインスタンスによって生成された前記第2の一意の識別子の値を前記第2のサーバに転送するステップであって、前記第2のサーバは、前記第2の一意の識別子の値を前記第1の一意の識別子の値と比較することによって、前記第2の一意の識別子の値を前記補足アプリケーションデータにマップする、ステップと、
    前記第2のサーバから前記補足アプリケーションデータを受信するステップと
    を含む、請求項2に記載の方法。
  4. 第1のストレージサービスプロバイダによって前記第1のサーバを動作させるステップと、
    前記第2のサーバを第2のストレージサービスプロバイダとして動作させるステップと、
    を更に備え、
    前記第2のストレージサービスプロバイダは、前記第1のストレージサービスプロバイダとは異なるエンティティであり、前記補足アプリケーションデータは、プライマリ・アプリケーションデータとして前記第1のサーバ内に格納することができないデータである、
    請求項3に記載の方法。
  5. 前記アプリケーションの前記第2のインスタンスにより、
    前記取得したプライマリ・アプリケーションデータを利用して、前記アプリケーションによって使用されるプライマリ設定を識別するステップと、
    前記補足アプリケーションデータを利用して、前記プライマリ設定に対する修正を識別するステップであって、前記修正は、前記プライマリ・アプリケーションデータとともに前記第1のサーバ内に格納することができないデータである、ステップと
    を更に含む、請求項2に記載の方法。
  6. 前記アプリケーションの前記第1のインスタンスにより、
    前記補足アプリケーションデータを前記第2のサーバに格納するステップと、
    前記第1の一意の識別子の値を前記第2のサーバ内に格納された前記補足アプリケーションデータに関連付けるインデックスエントリを生成するステップと、
    前記補足アプリケーションデータを前記第2のサーバから取得するために、前記インデックスエントリを格納するステップと
    を更に含む、請求項1に記載の方法。
  7. 前記アプリケーションの第2のインスタンスにより、
    前記第1の一意の識別子の値をインデックスとして使用して前記補足アプリケーションデータを識別するステップと、
    前記補足アプリケーションデータを前記第2のサーバから受信するステップと
    を更に含む、請求項1に記載の方法。
  8. 前記プライマリ・アプリケーションデータに少なくとも部分的に基づいて前記第1の一意の識別子の値を計算するステップは、

    ハッシュ関数を、前記プライマリ・アプリケーションデータの少なくとも一部と前記アプリケーションの第1のインスタンスを操作しているユーザのユーザ識別情報とに適用して、前記補足アプリケーションデータに関連付けるための前記第1の一意の識別子の値を生成して、前記アプリケーションの第2のインスタンスのユーザによる前記補足アプリケーションデータへのアクセスを可能にするステップを含み、
    前記プライマリ・アプリケーションデータは少なくとも部分的に、前記アプリケーションの前記第1のインスタンスによって使用されるべき設定情報を指定し、
    前記第1の一意の識別子の値によってインデックス付けされる前記補足アプリケーションデータは、前記プライマリ・アプリケーションデータに対する修正を指定する、請求項1に記載の方法。
  9. 前記アプリケーションの第2のインスタンスにより、
    前記第1のサーバから前記プライマリ・アプリケーションデータを取得するステップと、
    前記プライマリ・アプリケーションデータを修正するステップと、
    前記修正されたプライマリ・アプリケーションデータを前記第1のサーバに格納するステップと、
    前記修正されたプライマリ・アプリケーションデータに基づいて第2の一意の識別子の値を計算するステップと、

    前記修正されたプライマリ・アプリケーションデータに対する前記第2の一意の識別子の値を前記第2のサーバに転送するステップであって、前記第2の一意の識別子は、前記アプリケーションの後続のインスタンスが、前記アプリケーションの該後続のインスタンスのユーザについて前記プライマリ・アプリケーションデータに関連付けられた補足アプリケーションデータを識別することを可能にする、ステップと
    を更に含む、請求項1に記載の方法。
  10. 前記アプリケーションの前記第1のインスタンスは、ユーザにより、ネットワーク環境内の第1の位置で第1のコンピュータにおいて実行され、
    前記アプリケーションの前記第2のインスタンス及び前記後続のインスタンスは、前記ユーザにより、前記ネットワーク環境内の第2の位置で少なくとも1つの第2のコンピュータにおいて実行される、
    請求項9に記載の方法。
  11. コンピュータシステムであって、
    少なくとも1つのプロセッサデバイスと;
    前記少なくとも1つのプロセッサデバイスによって実行されるアプリケーションに関連付けられる命令を記憶する少なくとも1つのストレージリソースと;
    前記少なくとも1つのプロセッサデバイスと前記少なくとも1つのストレージリソースを結合する少なくとも1つの相互接続と;
    を備え、前記少なくとも1つの相互接続は、当該コンピュータシステムが前記アプリケーションの第1のインスタンスを実行して、
    第1のサーバからプライマリ・アプリケーションデータを取得するステップと、
    前記プライマリ・アプリケーションデータに少なくとも部分的に基づいて一意の識別子の値を計算するステップと、
    前記第1のインスタンスによって生成される前記一意の識別子の値をインデックスとして使用して、第2のサーバによって格納される補足アプリケーションデータを識別するステップと、
    前記第2のサーバから前記識別された補足アプリケーションデータを取得するステップと
    を含む動作を実行することを可能にする、コンピュータシステム。
  12. 前記第1のインスタンスによって生成された前記一意の識別子の値を使用することは、
    前記アプリケーションの前記第1のインスタンスによって生成された前記一意の識別子の値を前記第2のサーバに転送することを備え、前記第2のサーバは、前記一意の識別子の値を前記補足アプリケーションデータにマップする、
    請求項11に記載のコンピュータシステム。
  13. 前記補足アプリケーションデータは、プライマリ・アプリケーションデータとして前記第1のサーバ内に格納することができないデータである、
    請求項12に記載のコンピュータシステム。
  14. 前記アプリケーションの第2のインスタンスを含み、前記アプリケーションの第2のインスタンスは、前記一意の識別子の値をインデックスとして使用して前記補足アプリケーションデータを識別するステップの前に、
    前記第1のサーバからプライマリ・アプリケーションデータを取得するステップと、
    前記プライマリ・アプリケーションデータに関連付けられるべき補足アプリケーションデータを受信するステップと、
    前記プライマリ・アプリケーションデータに少なくとも部分的に基づいて前記一意の識別子の値を計算するステップと、
    前記一意の識別子の値を前記第2のサーバに転送するステップと、
    を実行する、請求項11に記載のコンピュータシステム。
  15. 前記アプリケーションの第2のインスタンスを含み、前記アプリケーションの第2のインスタンスは、
    前記取得したプライマリ・アプリケーションデータを利用して、前記アプリケーションによって使用されるプライマリ設定を識別する動作と、
    前記補足アプリケーションデータを利用して、前記プライマリ設定に対する修正を識別する動作と、
    をサポートする、請求項11に記載のコンピュータシステム。
  16. 前記一意の識別子の値を計算するステップは、
    前記プライマリ・アプリケーションデータの少なくとも一部にハッシュ関数を適用して、前記一意の識別子の値を生成することを含む、
    請求項11に記載のコンピュータシステム。
  17. 前記プライマリ・アプリケーションデータは、少なくとも部分的に、前記アプリケーションの前記第1のインスタンスによって使用されるべき設定情報を指定し、
    前記一意の識別子の値によってインデックス付けされる前記補足アプリケーションは、前記プライマリ・アプリケーションデータに対する修正を指定する、
    請求項16に記載のコンピュータシステム。
  18. 前記第1のサーバは第1のストレージサービスプロバイダによって動作され、
    前記第2のサーバは第2のストレージサービスプロバイダによって動作され、
    前記第2のストレージサービスプロバイダは、前記第1のストレージサービスプロバイダとは異なるエンティティである、
    請求項17に記載のコンピュータシステム。
  19. 処理デバイスによって実行されると、該処理デバイスに、
    実行されるアプリケーションの第1のインスタンスにより、
    第1のサーバからプライマリ・アプリケーションデータを取得するステップと、
    前記プライマリ・アプリケーションデータに関連付けられるべき補足アプリケーションデータを受信するステップであって、該補足アプリケーションデータは、前記第1のサーバによって格納することができないデータである、ステップと、
    前記プライマリ・アプリケーションデータに少なくとも部分的に基づいて一意の識別子の値を計算するステップと、
    前記一意の識別子の値を第2のサーバに転送するステップであって、前記第2のサーバは、前記アプリケーションの第2のインスタンスによる前記補足アプリケーションデータの後の取得を可能にする、ステップと、
    を含む動作を実行させる、コンピュータプログラム。
  20. 前記処理デバイスによって実行されると、該処理デバイスに、
    前記補足アプリケーションデータを前記第2のサーバに格納するステップと、
    前記一意の識別子の値を前記第2のサーバ内に格納された前記補足アプリケーションデータに関連付けるインデックスエントリを生成するステップと、
    前記補足アプリケーションデータを前記第2のサーバから取得するために、前記インデックスエントリを格納するステップと
    を更に実行させる、請求項19に記載のコンピュータプログラム。

JP2017101744A 2011-12-09 2017-05-23 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス Active JP6298197B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/315,304 US9396277B2 (en) 2011-12-09 2011-12-09 Access to supplemental data based on identifier derived from corresponding primary application data
US13/315,304 2011-12-09

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014545945A Division JP6150816B2 (ja) 2011-12-09 2012-11-29 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス

Publications (2)

Publication Number Publication Date
JP2017162506A true JP2017162506A (ja) 2017-09-14
JP6298197B2 JP6298197B2 (ja) 2018-03-20

Family

ID=48573056

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014545945A Active JP6150816B2 (ja) 2011-12-09 2012-11-29 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス
JP2017101744A Active JP6298197B2 (ja) 2011-12-09 2017-05-23 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014545945A Active JP6150816B2 (ja) 2011-12-09 2012-11-29 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス

Country Status (6)

Country Link
US (2) US9396277B2 (ja)
EP (1) EP2788886B1 (ja)
JP (2) JP6150816B2 (ja)
KR (1) KR102032583B1 (ja)
CN (1) CN104011698B (ja)
WO (1) WO2013085779A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229771B2 (en) * 2012-03-08 2016-01-05 Microsoft Technology Licensing, Llc Cloud bursting and management of cloud-bursted applications
US9317709B2 (en) 2012-06-26 2016-04-19 Google Inc. System and method for detecting and integrating with native applications enabled for web-based storage
US9444896B2 (en) 2012-12-05 2016-09-13 Microsoft Technology Licensing, Llc Application migration between clouds
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
US20150127770A1 (en) * 2013-11-06 2015-05-07 Pax8, Inc. Distributed Cloud Disk Service Provisioning and Management
EP3158713B1 (en) * 2014-06-19 2021-05-26 InterDigital CE Patent Holdings Cloud service supplementing embedded natural language processing engine
US11381476B2 (en) 2018-12-11 2022-07-05 Sap Se Standardized format for containerized applications
US11212366B2 (en) * 2018-12-11 2021-12-28 Sap Se Kubernetes as a distributed operating system for multitenancy/multiuser
CN110189171B (zh) * 2019-05-27 2021-08-06 北京金山安全软件有限公司 特征数据的生成方法、装置及设备
US20210092199A1 (en) * 2019-09-24 2021-03-25 International Business Machines Corporation Cachability of single page applications

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020123334A1 (en) * 2000-05-09 2002-09-05 Dana Borger Systems, methods and computer program products for dynamically inserting content into web documents for display by client devices
JP2006065629A (ja) * 2004-08-27 2006-03-09 Hitachi Ltd データ処理システム及び方法
US20070300143A1 (en) * 2006-06-12 2007-12-27 David Michael Vanderport Electronic documentation
WO2008010473A1 (fr) * 2006-07-19 2008-01-24 Panasonic Corporation Système de gestion de fichiers distribués
JP2009116414A (ja) * 2007-11-01 2009-05-28 Hitachi Ltd 情報処理システム及びデータ管理方法
US20090144811A1 (en) * 2007-11-30 2009-06-04 Hitachi, Ltd. Content delivery system
JP2010287036A (ja) * 2009-06-11 2010-12-24 Nippon Hoso Kyokai <Nhk> ストレージサーバー装置及びコンピュータプログラム
JP2011513863A (ja) * 2008-03-04 2011-04-28 アップル インコーポレイテッド 同期サーバープロセス
JP2011186616A (ja) * 2010-03-05 2011-09-22 Nec Corp 分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラム

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651108B2 (en) * 1995-08-14 2003-11-18 Next Software, Inc. Method and apparatus for generating object-oriented world wide web pages
US6799298B2 (en) * 1998-03-11 2004-09-28 Overture Services, Inc. Technique for locating an item of interest within a stored representation of data
US6173287B1 (en) * 1998-03-11 2001-01-09 Digital Equipment Corporation Technique for ranking multimedia annotations of interest
AU2001243513A1 (en) * 2000-03-07 2001-09-17 Broadcom Corporation An interactive system for and method of automating the generation of legal documents
US7007068B2 (en) 2000-06-27 2006-02-28 Peoplestreet Systems and methods for managing contact information
US7080076B1 (en) * 2000-11-28 2006-07-18 Attenex Corporation System and method for efficiently drafting a legal document using an authenticated clause table
US20030104470A1 (en) * 2001-08-14 2003-06-05 Third Wave Technologies, Inc. Electronic medical record, library of electronic medical records having polymorphism data, and computer systems and methods for use thereof
US6988124B2 (en) 2001-06-06 2006-01-17 Microsoft Corporation Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20040012618A1 (en) * 2002-07-18 2004-01-22 Finney Randolph L. Legal document generating system
US6671698B2 (en) * 2002-03-20 2003-12-30 Deere & Company Method and system for automated tracing of an agricultural product
US6952697B1 (en) * 2002-06-21 2005-10-04 Trust Licensing, Llc Media validation system
US20040001099A1 (en) * 2002-06-27 2004-01-01 Microsoft Corporation Method and system for associating actions with semantic labels in electronic documents
US7337115B2 (en) * 2002-07-03 2008-02-26 Verizon Corporate Services Group Inc. Systems and methods for providing acoustic classification
EP2131296A1 (en) * 2003-11-14 2009-12-09 Research in Motion Limited System and method of retrieving and presenting partial (skipped) document content
US7707039B2 (en) * 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US7526768B2 (en) 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
WO2005081802A2 (en) 2004-02-24 2005-09-09 Caretouch Communications, Inc. Intelligent message delivery system
US7506006B2 (en) 2004-09-03 2009-03-17 Microsoft Corporation Synchronization for smart clients
US7916649B2 (en) * 2004-09-30 2011-03-29 Alcatel-Lucent Usa Inc. Apparatus and method for monitoring and analysis of communication over a wireless network
JP4377790B2 (ja) * 2004-09-30 2009-12-02 株式会社日立製作所 リモートコピーシステムおよびリモートコピー方法
US7316347B2 (en) * 2005-01-07 2008-01-08 Ctb Mcgraw-Hill Linking articles to content via RFID
US7317907B2 (en) 2005-01-31 2008-01-08 Research In Motion Limited Synchronizing server and device data using device data schema
US9286388B2 (en) * 2005-08-04 2016-03-15 Time Warner Cable Enterprises Llc Method and apparatus for context-specific content delivery
US8024290B2 (en) 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US7606810B1 (en) * 2006-04-27 2009-10-20 Colin Jeavons Editorial related advertising content delivery system
US7734065B2 (en) * 2006-07-06 2010-06-08 Abbyy Software Ltd. Method of text information recognition from a graphical file with use of dictionaries and other supplementary data
US20080040768A1 (en) * 2006-08-14 2008-02-14 Alcatel Approach for associating advertising supplemental information with video programming
US7685177B1 (en) 2006-10-03 2010-03-23 Emc Corporation Detecting and managing orphan files between primary and secondary data stores
US8185826B2 (en) * 2006-11-30 2012-05-22 Microsoft Corporation Rendering document views with supplemental information content
US7818396B2 (en) * 2007-06-21 2010-10-19 Microsoft Corporation Aggregating and searching profile data from multiple services
US8775647B2 (en) * 2007-12-10 2014-07-08 Deluxe Media Inc. Method and system for use in coordinating multimedia devices
US20090300169A1 (en) 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity
US8219524B2 (en) 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US8209437B2 (en) 2008-09-25 2012-06-26 Rockliffe Systems, Inc. Personal information management data synchronization
US8266243B1 (en) * 2010-03-30 2012-09-11 Amazon Technologies, Inc. Feedback mechanisms providing contextual information
US9185116B2 (en) * 2010-11-10 2015-11-10 Sony Corporation Methods and systems for use in providing access through a secondary device to services intended for a primary device
CN102801766B (zh) 2011-11-18 2015-01-07 北京安天电子设备有限公司 一种云服务器负载均衡及数据冗余备份的方法及系统
US8291041B1 (en) * 2012-05-31 2012-10-16 Google Inc. Systems and methods for disseminating content to remote devices
US8909736B1 (en) * 2012-07-12 2014-12-09 Juniper Networks, Inc. Content delivery network referral

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020123334A1 (en) * 2000-05-09 2002-09-05 Dana Borger Systems, methods and computer program products for dynamically inserting content into web documents for display by client devices
JP2006065629A (ja) * 2004-08-27 2006-03-09 Hitachi Ltd データ処理システム及び方法
US20070300143A1 (en) * 2006-06-12 2007-12-27 David Michael Vanderport Electronic documentation
WO2008010473A1 (fr) * 2006-07-19 2008-01-24 Panasonic Corporation Système de gestion de fichiers distribués
JP2009116414A (ja) * 2007-11-01 2009-05-28 Hitachi Ltd 情報処理システム及びデータ管理方法
US20090144811A1 (en) * 2007-11-30 2009-06-04 Hitachi, Ltd. Content delivery system
JP2011513863A (ja) * 2008-03-04 2011-04-28 アップル インコーポレイテッド 同期サーバープロセス
JP2010287036A (ja) * 2009-06-11 2010-12-24 Nippon Hoso Kyokai <Nhk> ストレージサーバー装置及びコンピュータプログラム
JP2011186616A (ja) * 2010-03-05 2011-09-22 Nec Corp 分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラム

Also Published As

Publication number Publication date
CN104011698A (zh) 2014-08-27
JP6298197B2 (ja) 2018-03-20
JP2015501050A (ja) 2015-01-08
KR102032583B1 (ko) 2019-11-08
US20130151657A1 (en) 2013-06-13
EP2788886A4 (en) 2016-01-20
CN104011698B (zh) 2016-11-16
KR20140099892A (ko) 2014-08-13
JP6150816B2 (ja) 2017-06-21
EP2788886B1 (en) 2018-10-03
EP2788886A1 (en) 2014-10-15
WO2013085779A1 (en) 2013-06-13
US9396277B2 (en) 2016-07-19
US20160316002A1 (en) 2016-10-27

Similar Documents

Publication Publication Date Title
JP6298197B2 (ja) 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス
US20230131748A1 (en) Systems and methods for establishing and maintaining virtual computing clouds
US10268835B2 (en) Hosted application gateway architecture with multi-level security policy and rule promulgations
US9680964B2 (en) Programming model for installing and distributing occasionally connected applications
US9807135B1 (en) Methods and computing systems for sharing cloud files using a social network
US20180349329A1 (en) Support for non-native file types in web application environment
US8639661B2 (en) Supporting media content revert functionality across multiple devices
JP2019012529A (ja) ドキュメント管理及びコラボレーション・システム
US20150195338A1 (en) File fetch from a remote client device
US10824756B2 (en) Hosted application gateway architecture with multi-level security policy and rule promulgations
US8868677B2 (en) Automated data migration across a plurality of devices
US11882154B2 (en) Template representation of security resources
US11841842B2 (en) Method and system for using external content type object types
JP2016066307A (ja) データベースへのアクセスを制御する装置及び方法
CN117278323B (zh) 第三方信息的获取方法、电子设备及可读存储介质
US10306467B2 (en) Shared state among multiple devices
WO2021099919A2 (en) Systems, methods and computer program products for application environment synchronization between remote devices and on-premise devices
CN114564401A (zh) 远程控制方法和计算装置
CN114564403A (zh) 信息展示方法和计算设备
JP2012137871A (ja) 情報処理装置、情報処理方法、情報処理システム、コンピュータプログラム、記録媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180222

R150 Certificate of patent or registration of utility model

Ref document number: 6298197

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250