JP6444855B2 - クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法 - Google Patents

クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法 Download PDF

Info

Publication number
JP6444855B2
JP6444855B2 JP2015501830A JP2015501830A JP6444855B2 JP 6444855 B2 JP6444855 B2 JP 6444855B2 JP 2015501830 A JP2015501830 A JP 2015501830A JP 2015501830 A JP2015501830 A JP 2015501830A JP 6444855 B2 JP6444855 B2 JP 6444855B2
Authority
JP
Japan
Prior art keywords
access control
user
node
query
control query
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.)
Active
Application number
JP2015501830A
Other languages
English (en)
Other versions
JP2015518201A5 (ja
JP2015518201A (ja
Inventor
メンテン,ローレンス,イー.
Original Assignee
アルカテル−ルーセント
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
Priority claimed from US13/423,697 external-priority patent/US9047643B2/en
Application filed by アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2015518201A publication Critical patent/JP2015518201A/ja
Publication of JP2015518201A5 publication Critical patent/JP2015518201A5/ja
Application granted granted Critical
Publication of JP6444855B2 publication Critical patent/JP6444855B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Tourism & Hospitality (AREA)
  • Bioethics (AREA)
  • Finance (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Primary Health Care (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

関連出願の相互参照
本出願は、2012年3月19日に出願した、Lawrence E.Mentenによる米国特許出願第13/423,697号「Method of Extending Web Service Application Programming Interfaces using Query Languages」の一部継続出願である。
本出願は、一般的に、プロセッサベースのシステムに関し、より具体的には、プロセッサベースのシステムのためのアクセス制御に関する。
本項では、請求される主題についてより深い理解を容易にするのに役に立つ可能性がある態様を紹介する。したがって、本項の記述は、この観点から読むべきであり、何が従来技術であるか、または何が従来技術でないかについて自ら認めるものと理解するべきではない。
一部の知られている通信方式では、ユーザは、ソーシャル・ネットワークを使用して、互いに通信する。ソーシャル・ネットワーキング・サービスは、共通の背景、関心事、または活動を共有できる人々の間の社会的関係の表現に基づいて加入者にサービスを提供するオンライン・サービス、プラットフォーム、またはサイトとして規定することができる。ソーシャル・ネットワークは、典型的には、各ユーザの表現(多くの場合プロフィール)、彼/彼女のソーシャル・リンク、および写真、状況報告、ウェブ・リンクなど様々な追加的な要素から構成される。ほとんどのソーシャル・ネットワーク・サービスはウェブベースであり、電子メールおよびインスタント・メッセージングなど、インターネットを通じてユーザが対話することを可能にするツール/サービスを提供する。ソーシャル・ネットワーキング・サイトは、ユーザが個々のネットワーク内で考え、活動、イベント、および関心事を共有することを可能にする。代表的なソーシャル・ネットワークには、Facebook、Google+、Twitter、LinkedIn、VKonkatke、Orkut、およびRenRenが含まれる。
ソーシャル・ネットワークは、ソーシャル・グラフを使用して、個人および彼らの関係を表す。一般的に、ソーシャル・グラフは、(ユーザのアバタとも呼ぶことができる)加入者のオンライン・ペルソナ(persona)と、他の加入者のオンライン・ペルソナとの関係を記述するものである。したがって、ソーシャル・グラフは、一般的にはソーシャル・ネットワークと呼ばれる、加入者間の現実世界の関係を反映している。たとえば、ソーシャル・ネットワークのソーシャル・グラフは、ノード間の関係によって規定された(リンクまたは接続とも呼ぶことができる)エッジを使用して互いに関連する一連のノード(たとえば、「Subscriber(加入者)」、「FriendsLists(友達リスト)」、「CloseFriends(親しい友達)」など)として構造化することができる。葉ノードは、親ノードに関連しているが、それらは子ノードを持たない。たとえば、「CloseFriends」ノードに関連する葉ノードはそれぞれ、加入者の友達の1人に対する情報を含むデータ構造を含むことができる。ソーシャル・グラフは、また、特定の関心事に関連するグループなど異なるタイプの関係のためのノードだけでなく、写真、音楽、およびウェブ・リンクなど異なるタイプの情報のためのノードも含むことができる。ソーシャル・グラフを構築するノード、エッジ、情報、および関係は、ソーシャル・グラフのリソースと呼ぶことができる。
ソーシャル・グラフのリソースは、関係を表すエッジによってソーシャル・グラフで明示的に接続されていないユーザまたは加入者に関連する場合がある。たとえば、加入者は、親睦会のピクニックですべての卒業生のグループ写真を投稿することができる。グループ写真は、加入者のFriendsListsまたはCloseFriendsのグループに記載されている人々およびソーシャル・グラフの加入者にリンクされていない他の人々の画像を含むことができる。加入者または加入者の友達は、加入者にリンクされていないグループ写真の人々を識別または「タグ付け」することができる。他の例では、加入者は、グループを規定したが、ソーシャル・グラフで互いにリンクされていない可能性がある加入者にすべてリンクされている他の加入者を含む、「Business_Lunch_Group」などのグループを規定することができる。ともにリンクされている加入者は、ビジネス・ランチをスケジューリングするための計画メッセージなど、ソーシャル・ネットワークを通じて情報を交換することができない場合がある。
ソーシャル・ネットワークのプロバイダは、サービスまたはアプリケーション(アプリ)を実装するためにソーシャル・グラフの情報を使用する。開発者は、ソーシャル・ネットワーク・プロバイダによって開発およびサポートされるアプリケーション・プログラミング・インターフェース(API)を使用して、サービスまたはアプリケーションを作成することができる。ソーシャル・ネットワークのためのAPIは通常、クライアントおよびサーバから構成されるRepresentational State Transfer(REST)構造を実装する。クライアントは、サーバへの要求を開始し、サーバは要求を処理し、適切な応答をクライアントに返す。要求および応答は、リソースの表現の転送について構築される。リソースは、実質的に、アドレス指定することができる任意の一貫性および意味のある概念でもよい。リソースの表現は、典型的には、リソースの現在の、または意図する状態を収めるドキュメントである。一般的に、REST−ful構造は、クライアントサーバ・ベース、ステートレス、キャッシュ可能、レイヤ構造であり、一様なインターフェースを使用する必要があり、要求に応じてコードを提供することができる。たとえば、Facebookなどソーシャル・ネットワークのためのAPIは、ハイパーテキスト転送プロトコル(HTTP)要求メッセージの規定された組とともに、たとえば、拡張マークアップ言語(XML)またはJavaScript Object Notation(JSON)形式の応答メッセージの構造の定義を含む。
以下は、開示された内容の一部の態様について基本的な理解を得るために、開示された内容を単純化して概要を示すものである。この概要は、開示された内容の完全な概要ではない。これは、開示された内容の重要または不可欠な要素を特定することも、開示された内容の範囲を示すことも意図するものではない。その唯一の目的は、後で記述するより詳細な記述の準備として、単純化した形で一部の概念を示すことである。
一実施形態では、ソーシャル・グラフのリソースへのアクセスを制御するための方法が提供される。方法の一実施形態は、サービスが呼び出されることに応答してクエリを構成するための情報を受信するステップを含む。サービスは、第1のユーザに関連するソーシャル・グラフの一部分内のノードに関連するリソースへのアクセスを要求ためにクエリを使用するように構成される。方法は、また、ノードにクエリを関連させるステップを含む。クエリは、ノードに関連するリソースに対して動作し、ソーシャル・グラフの現在の状態に応じて、リソースにアクセスするための要求が許可されるか、それとも拒否されるかを示す情報を返す。
他の実施形態では、ソーシャル・グラフのリソースへのアクセスを制御するための方法が提供される。方法の一実施形態は、第1のユーザによって所有されるソーシャル・グラフの一部分内のノードに関連するリソースに対してクエリを実行するように構成されたサービスを呼び出すステップを含む。方法のこの実施形態は、また、サービスを呼び出すことに応答してノードにクエリを関連させるステップを含む。クエリは、ソーシャル・グラフの現在の状態に応じて、ノードに関連するリソースにアクセスするための要求を許可するか、それとも拒否するかを決定する。
開示された内容は、同じ参照番号は同じ要素を示している添付の図面とともに以下の記述を参照することによって理解されるだろう。
通信システムの代表的な一実施形態を概念的に示す図である。 ソーシャル・グラフの一部分の第1の代表的な実施形態を概念的に示す図である。 ソーシャル・グラフに対するアクセス制御を修正するための方法の第1の代表的な実施形態を概念的に示す図である。 ソーシャル・グラフへの修正されたアプリケーション・プログラミング・インターフェースにクエリする方法の代表的な一実施形態を概念的に示す図である。 ソーシャル・グラフへのアプリケーション・プログラミング・インターフェースへの修正を取り除くまたは逆転させる方法の代表的な一実施形態を概念的に示す図である。 ソーシャル・グラフの一部分の第2の代表的な実施形態を概念的に示す図である。 ソーシャル・グラフに対するアクセス制御を修正するための方法の第2の代表的な実施形態を概念的に示す図である。
例示的実施形態について以下に記述する。分かりやすくするために、実際の実装のすべての機能が本明細書に記述されているとは限らない。もちろん、そのような実際の実施形態を開発する際に、実装によって異なる、システム関連およびビジネス関連の制約への遵守など、開発者の特定の目標を達成するために多数の実装特有の決定が下されるべきであることを理解されたい。さらに、そのような開発努力は、複雑かつ時間がかかる可能性があるが、本開示の利益を受ける当業者にとっては日常的な仕事であろうことを理解されたい。記述および図は、単に特許請求される主題の原理を示すものである。したがって、本明細書に明示的に記述または図示していないが、本明細書に記述した原理を具体化し、特許請求された主題の範囲内に含まれ得る様々な構成を当業者であれば考案できることを理解されたい。さらに、本明細書に詳述したすべての例は、原則として、読者が特許請求された主題の原則およびその技術を推進する発明者(ら)によって提供された概念を理解するのを支援するために、教育のみを目的とすることを明確に意図するものであり、そのような具体的に詳述された例および条件に限定しないものとして解釈するべきである。
ここで、開示された内容について、添付の図面に関して記述する。様々な構造、システム、およびデバイスは、説明のみを目的として、かつ当業者に周知の詳細によって記述を不明瞭にしないように、図面に概略的に示している。しかし、添付の図は、開示された内容の実例となる例を記述し説明するために含まれている。本明細書に使用される単語および句は、当業者によるそれらの単語および句の理解に一致する意味を持つものと理解および解釈するべきである。本明細書において用語または句を一貫して使用することによって、用語または句の特別な定義、つまり、当業者によって理解されている通常および慣習的な意味とは異なる定義を意味することを意図するものではない。用語または句が特別な意味、つまり当業者によって理解されるものと異なる意味を持つことを意図する場合は、そのような特別な定義は、用語または句の特別な定義を直接的かつ明白に提供する定義方法で明細書に特に記述することになる。さらに、本明細書に使用する「または(or)」という用語は、そうでないことが明記されていない限り(たとえば、「さもなければ(or else)」または「別の方法では(in the alternative)」など)、非排他的な「または(or)」を示している。また、本明細書に記述した様々な実施形態は、必ずしも相互排他的ではなく、一部の実施形態は、新しい実施形態を形成するために、1つまたは複数の他の実施形態と組み合わせることができる。
ソーシャル・ネットワーク・サービスの加入者(またはその他のユーザ)は、加入者の個人情報の安全および秘密を維持するために、ソーシャル・ネットワーク・サービスのプロバイダに応じている。しかし、加入者は、また、たとえば「FriendsLists」に示される加入者など、選択された加入者に個人情報をブロードキャスト、送信、または表示するためにソーシャル・ネットワーク・サービスを使用する。ソーシャル・ネットワーク・サービスのプロバイダは、ソーシャル・グラフの特定部分に関連するリソースにユーザがアクセスできるかどうかを決定するアクセス制御ポリシーを規定することによって、情報を公開し、かつそれを秘密に維持するという競合する要望のバランスをとることを試みる。たとえば、Joe Subscriberの「FriendsLists」で指定されたユーザは、典型的には、Joe Subscriberによって投稿された状態の更新、写真、または他の情報を見ることができる。ネットワークにおけるJoeの友達は、また、たとえば、彼の「ウォール」に書き込むか、または彼が投稿した情報に関してコメントすることによって、Joe Subscriberに情報を送信または投稿できる場合がある。他のユーザは、典型的には、Joe Subscriberによって投稿された情報を見ることができないか、または彼が投稿した情報に関してコメントすることができない。加入者は、たとえば、一部のカテゴリの情報を公開する、または他の情報カテゴリへのアクセスを友達または友達の友達に制限することによって、情報へのアクセスを制御する能力が制限されている。
ソーシャル・グラフの情報に誰がアクセスできるかを決定するアクセス制御ポリシーは、一般的に静的である。たとえば、現在のRESTfulウェブ・サービスAPIは、ソーシャル・グラフのリソースおよびそれらのリソースへのアクセスをゲート制御するアクセス制御方式の両方を静的に規定する。アクセス制御方式は、エンド・ユーザ/加入者によって、またはアプリケーション開発者もしくは他のサード・パーティによって拡張可能ではない。したがって、加入者は、事前規定されたセキュリティ設定を使用して、個人情報へのアクセスを制限することができるが、加入者もサード・パーティも、事前規定されたセキュリティ設定を変更することはできない。結果として、アプリケーションの操作に必要なアクセスを許可するには、エンド・ユーザより広範なリソースへのアクセスを許可することを必要とするか、またはサービス・プロバイダは、たとえば、いつでもすべてのユーザに対してグローバルに許可する意思があるため、潜在的に価値のある多数のアプリケーションを作成することができない。
本出願に記述した技術の実施形態は、開発者またはサード・パーティが、ソーシャル・グラフの現在の状態に基づいて、関連するリソースへのアクセスを許可する、(既存または新しい)リソースにクエリをアタッチすることを可能にすることができる。たとえば、クエリは、リソースを所有するユーザとの要求元ユーザの関係、リソースとの要求元ユーザの関係、または両方の基準の組み合わせに基づいて、リソースへのアクセスを許可することができる。リソースへのアクセスは、また、リソース所有者とリソース要求元との間の過去の対話に基づいて、許可することも、または拒否することもできる。たとえば、写真に頻繁に現れた、またはリソース所有者によって所有されるリソースに頻繁にコメントした要求元にアクセスを許可することができる。アクセスを許可するクエリは、リソースへのアクセスが許可されたかどうかを示すブール値を返す。ユーザまたはソーシャル・ネットワーク・サービスのプロバイダは、アクセス制御クエリをソーシャル・グラフに追加することができる前に、リソースにクエリをアタッチすることを承認することができる。開発者または他のサード・パーティは、ユーザのリソースに条件付きアクセスを提供できるクエリを作成し、次にユーザのリソースの拡大されたアクセス可能性を利用するアプリケーションまたはサービスを作成するためにこれらのクエリを使用することができる。たとえば、開発者は、第1のユーザによって投稿された写真などのリソースへのアクセスを許可するアプリケーションを作成できるため、第1のユーザによって所有されるリソースの読み込みまたは書き込みが通常は承認されていなくても、写真でタグを付けられたユーザまたは加入者は、写真に関してコメントすることができる。アクセス制御クエリは、動的または一時的な場合がある。たとえば、承認されたアクセス制御クエリは、ユーザが、アクセス制御クエリを使用するサービスを開始することに応答して、ユーザのリソースにアタッチすることができ、次に、サービスが終了するときに、アクセス制御クエリを除去することができる。
図1は、通信システム100の代表的な一実施形態を概念的に示す図である。図示する実施形態では、通信システム100は、複数の加入者またはユーザ105を含む。本明細書で使用する場合、「加入者」という用語は、ソーシャル・グラフをサポートするソーシャル・ネットワーク・サービスに申し込んだユーザを表すものと理解される。「ユーザ」という用語は、ソーシャル・グラフで参照できるか、またはソーシャル・グラフに関連している可能性があるが、必ずしもソーシャル・ネットワーク・サービスの加入者ではない人々またはエンティティを表している。したがって、加入者は、ソーシャル・ネットワーク・サービスに関連するユーザのサブセットの場合がある。たとえば、加入者は、ソーシャル・ネットワーク・サービスの登録されたユーザと呼ぶことができる。ユーザ105は、スマート・フォンなどの移動通信装置として示されている。しかし、本開示の恩恵を受ける当業者は、「ユーザ」という用語は、通信システム100にアクセスするために使用される電子デバイス、またはデバイスを所有または運用する人を表すことができることを理解されたい。さらに、当業者は、電子デバイスは移動通信装置に限定されず、一部の実施形態では、タブレット型コンピュータ、ラップトップ型コンピュータ、デスクトップ型コンピュータなどのデバイスも、通信システム100にアクセスするために使用することができることを理解されたい。様々な実施形態において、ユーザ105は、有線接続、無線接続、またはそれらの任意の組み合わせを使用して、通信システム100にアクセスすることができる。
ユーザ105は、1つまたは複数のソーシャル・ネットワーク・サービス110、115に加入することができる。代表的なソーシャル・ネットワーク・サービスには、Facebookによって提供されるソーシャル・ネットワーク・サービス110、およびGoogle+によって提供されるソーシャル・ネットワーク・サービス115が含まれる。しかし、本開示の恩恵を受ける当業者は、通信システム100の代替実施形態は、Twitter、LinkedIn、VKonkatke、Orkut、RenRenなど、他のソーシャル・ネットワーク・サービスを含むことができることを理解されたい。図示する実施形態では、ユーザ105(1〜4)は、ソーシャル・ネットワーク・サービス110に加入しており、ユーザ105(4〜5)は、ソーシャル・ネットワーク・サービス115に加入している。したがって、ユーザ105はプロフィールを作成し、ソーシャル・ネットワーク・サービス110、115のソーシャル・グラフの他の加入者との関係を築いておくことができる。ユーザ105、ユーザ105に関係する情報、およびユーザ105間の関係は、ソーシャル・グラフの構造によって表すことができる。たとえば、ソーシャル・ネットワーク110のソーシャル・グラフは、ノード間の関係によって規定されたエッジを使用して互いに関連されたノード(たとえば、「Subscriber」、「FriendsLists」、「CloseFriends」など)を含むことができる。
アプリケーション開発者120は、ユーザ105、またはユーザ105に狙いを定めた広告を提供することを試みる広告主など他のサード・パーティのために有益な情報を生成および提供するために、ソーシャル・ネットワーク110、115のソーシャル・グラフの情報を使用するアプリケーション(アプリ)またはサービスを開発することができる。アプリケーション開発者120は、ソーシャル・ネットワーク・サービス110、115に対してアプリケーション・プログラミング・インターフェース(API)125、130を使用するアプリケーションまたはサービスをそれぞれ作成または規定する。API125、130は、ソーシャル・ネットワーク・サービス110、115のプロバイダまたは所有者によって最初に規定され、同じAPI125、130は、ユーザ105のすべてに対してサポートされる。一実施形態では、API125、130は、Representational State Transfer(REST)構造によって課された制約に準拠する。ソーシャル・ネットワーキング・サイト110、115へのREST−fulウェブ・サービスAPI125、130は、(サービスAPIによって規定された)リソース階層を提供し、各ユーザ105に関連するソーシャル・ネットワーク情報の様々な要素への読み込みまたは書き込みアクセスをサポートすることができる。たとえば、リソース階層は、情報のカテゴリまたはサブセットを規定する非葉ノードを含むツリーを規定することができる。ツリーは、また、ウェブ・サービスAPI125、130を通じて読み込みまたは書き込みできるデータのインスタンスを表すノードまたは葉を規定することができる。この構成は、多くのウェブ・サービスにおいて一般的である。従来のウェブ・サービスで、リソース指定方式は、サービス・プロバイダによって規定されており拡張可能ではない。
本明細書に記述したように、ソーシャル・ネットワーキング・サイト110、115へのREST−fulウェブ・サービスAPI125、130は、リソース、およびリソースへのアクセスを制御またはゲート制御するアクセス制御方式を静的に規定する。本明細書に記述した技術の実施形態は、たとえば、ユーザごとまたはサービスごとまたはアプリケーションごとにアクセス制御権を拡大することによって、より柔軟なアクセス制御をサポートするために、API125、130の拡大または拡張を可能にする。拡大されたアクセス制御権は、ソーシャル・グラフの現在の状態に応じてアクセスを許可するために使用することができる。たとえば、選択されたリソースへのアクセスは、選択されたリソースとの関係またはリソースの所有者との関係に応じて、ユーザまたは加入者に条件付きで許可することができる。一実施形態では、新しいサービスまたはアプリケーションによって必要な可能性があるRESTfulウェブ・サービスに対するアクセス制御の粒度を予想する試みの代わりに、アプリケーション開発者は、適切に規定されたクエリ表現を使用して、アクセス制御をカスタマイズすることができる場合がある。
アクセス制御クエリの様々な実施形態は、論理式を使用して規定することができ、異なる値を返すことができる。一実施形態では、開発者は、ユーザがウェブ・サービス・リソースにアクセスできるかどうかを決定するために、ウェブ・サービス・リソースに対して適用できるブール値(真/偽)のクエリ表現を選択または指定することができる。開発者は、ユーザのアクセス制御状態を示すために使用できる他のパラメータを返すクエリ表現を代わりに選択または指定することができる。たとえば、関係するリソースにユーザが以前にアクセスした回数を示すカウンタ値を返すクエリ表現が、ウェブ・サービス・リソースへのアクセスがユーザに与えられるかどうかを決定するために使用される。より複雑なクエリを規定することもできる。たとえば、アクセス制御を許可するクエリ表現は、ブール(真または偽)結果を提供するために、論理演算子(たとえば「AND」、「OR」、または「NOT」)または数学的な比較演算子(<、<=、>+、==、!=)を用いてクエリの結果を組み合わせる論理式を返すクエリの場合がある。他の例では、真/偽結果を提供するために、1つまたは複数のクエリの「結果の組」の行および列で動作する、たとえばJavaScriptで表現された、動的な言語の機能を提供することができる。したがって、たとえば、2つのクエリを含むアクセス制御クエリ表現は、以下の形式の場合がある。
”(0<(SELECT count from friends_table where...))AND(6<
(SELECT count from photos_table where...))”
あるいは、JavaScript機能を用いて、クエリ表現は、以下の形式の場合がある。
”function hasRequestedAccess(Request_URI){
var rs=db.execute(’select friend from friends_table where...’);
while(rs.isValidRow()){
...

return isAccessGranted;
}”
本開示の恩恵を受ける当業者は、前述の代表的なクエリは、説明を意図していることを理解されたい。アクセス制御クエリの代替実施形態は、これらの形式、他のクエリ形式、またはその組み合わせを使用することができる。
クエリ表現は、RESTful動作(GET、PUT/POST、DELETE)に関連する場合があり、ウェブ・サービス要求に対するアクセスが許可されるかどうかを決定することができる。クエリ表現は、SQL、SPARQL、またはXPathを含む任意のクエリ言語で実装することができる。クエリ表現は、ターゲット・リソースに直接的に関連している場合があり、または多数のリソースに対して適用し、単一の操作でその一部またはすべてを無効化または修正できる追加のリソースとして、ウェブ・サービスに代わりに追加することができる。クエリ表現によって許可された権限の性質を提案または記述する名前または記述は、クエリ表現に関連する場合がある。クエリ表現がウェブ・サービスに拡張として追加される場合、RESTful PUT/POST、GET、およびDELETE操作を通じてクエリ表現を確立、読み込み、削除するために使用されるURIでリソース名の要素として名前を使用することができる。
図示する実施形態では、ユーザ105は、ソーシャル・ネットワーク・サービス110、115の1つまたは複数にリソースを投稿することができ、投稿されたリソースに条件付きアクセスを提供することができるサービスを呼び出すことができる。たとえば、ユーザ105(4)は、Facebookにグループ写真を投稿し、次に写真に載っているユーザ105(4)に対してユーザが持つことができる他の関係に関係なく、写真でタグが付けられたユーザへのアクセスを条件付きで許可するためにグループ写真に関連するノードにクエリをアタッチするサービスを呼び出す。ユーザ105(1)がユーザ105(4)のFacebook友達の場合、ユーザ105(1)は、写真に関してコメントすることができる。ユーザ105(2)は、ユーザ105(4)のFacebook友達ではないかもしれないが、サービスは、ユーザ105(2)への条件付きアクセスを許可するためにクエリを使用できるため、ユーザ105(2)が写真でタグを付けられていれば、ユーザ105(2)は写真に関してコメントすることができる。ユーザ105(3)は、ユーザ105(4)のFacebook友達でない場合があり、写真でタグを付けられていない場合がある。したがって、クエリは、ユーザ105(3)へのアクセスを許可しない。
通信システム100の実施形態は、新しい葉ノードがアタッチされたノードによって表されるデータの新しい「ビュー」を表す葉ノードを追加することによって、適切な権限を持つ開発者120がリソース・ツリーを拡張することを可能にすることができる。これらのノードは、開発者120によって指定し、新しい葉ノードが挿入されるツリーの枝によって識別されるデータ・サブセット(またはサブツリー)で動作する1つまたは複数のアクセス制御クエリに関連する場合がある。ノードまたはクエリは、オフラインのウェブ・インターフェースを通じて追加するか、またはHTTP POST要求を通じて挿入することができる。クエリ/ビューは、開発者120によって指定または規定することも、またはクエリ/ビューは、ソーシャル・ネットワーク・サービス110、115のプロバイダから利用可能な事前規定された「クエリ/ビュー」のメニューから選択することもできる。様々な代替的実施形態において、クエリ・パラメータは開発者によって規定する、コンテキスト/ノードによって決定する、またはサービスもしくはアプリケーションによって動的に決定することができる。
network.com/Joe.Subscriber/Photographs
図2は、ソーシャル・グラフ200の一部分の第1の代表的な実施形態を概念的に示す図である。図示する実施形態では、部分200は、完全なソーシャル・グラフのサブツリーであり、サブツリー200は、特定の加入者「Joe Subscriber(加入者ジョー)」に関連するノードを含む。部分200は、入り口ノードまたは親ノードの205を介してアクセスすることができる。部分200は、1つまたは複数のサーバに格納することができ、クライアントは適切なユニフォーム・リソース・インジケータ(URI)または他のアドレスをサーバに送信することによって、入り口ノード205にアクセスすることができる。たとえば、入り口ノード205は、URIアドレスhttp://www.fakesocialnetwork.com/Joe.Subscriberを送信することによってアクセスすることができる。部分200は、また、入り口ノード205または部分200内の他のノードに接続された子ノード210を含む。子ノード210は、情報、カテゴリ、他の加入者などに関連する場合がある。たとえば、子ノード210は、「友達」「写真」、「プロフィール」、「音楽」などに関連する場合がある。ノード200は、また、家族、親しい友達、知人、職業上の連絡先などユーザ/加入者の間の関係の性質を示す関心事またはグループを共有する加入者またはユーザのグループと関連する場合がある。ノード210は、以下のような対応するアドレスを使用してアクセスすることができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/FriendsLists/CloseFriends、およびhttp://www.fakesocialnetwork.com/Joe.Subscriber/Photographs
図示する実施形態では、開発者または他のサード・パーティは、加入者に対応するソーシャル・グラフの部分200のノード210に1つまたは複数のアクセス制御クエリ215をアタッチすることができる。アクセス制御クエリ215は、写真または他のリソースなど、ノード210(1)に関連するリソース220に対して動作することができる。一実施形態では、開発者は、クエリ215を規定するためにメッセージまたはコマンドを使用し、ソーシャル・グラフ200へのアプリケーション・プログラミング・インターフェース(API)を修正するために1つまたは複数のノードにクエリ215をアタッチすることができる。たとえば、クエリ215は、ノード210(1)に関連するリソース220に対するアクセス制御を修正するために、Joe Subscriberがクエリ215を利用するサービスを呼び出すことに応答して、ノード210(1)(たとえばPhotographsノード)にアタッチすることができる。クエリを呼び出すアドレスの一例は以下のとおりである。
http://www.fakesocialnetwork.com/Joe.Subscriber/Photographs/Photo1/Tagged_User
これにより、Photographsノード210(1)にアタッチされたクエリ215を呼び出す。クエリ215に示されたユーザがPhoto1でタグを付けられている場合、クエリ215はブール値真を返すことができるため、それによって、たとえば、写真に関してコメントするためにリソースへのアクセスをユーザに許可する。そうでない場合、クエリ215は、アクセスに対する要求が拒否されたことを示すためにブール値偽を返すことができる。たとえば、写真Photo1は、Frank FriendlyおよびBob Whatsisnameに対するタグを含むことができる。タグは、タグ・リスト225に、または他の指標を使用して示すことができる。タグ・リスト225の「Y」によって示すように、Frank FriendlyはJoe Subscriberの友達であり、タグ・リスト225の「N」によって示すように、Bob WhatsisnameはJoe Subscriberの友達ではない。しかし、Bob Whatsisnameは写真Photo1でタグを付けられているため、クエリ215は、写真Photo1への条件付きアクセス権をBob Whatsisnameに許可することができる。
従来のクエリ言語の実施形態は、典型的には、ソーシャル・グラフ200内の異なる位置またはノードで適用できる単一のクエリを設計できるように十分に柔軟な場合がある。ノードは、開発者によって各クエリ215に対して選択することができるか、またはノードは、自動化された手順またはアルゴリズムを使用して選択することができる。たとえば、ソーシャル・ネットワーキング・サイトは、クエリ215を検査し、クエリ215を適用するべき適切なノードを選択し、ツリーにおいて選択されたノードにクエリ215を反復的に(または同時に)適用し、結果を組み合わせることができる。一部の実施形態では、開発者またはサード・パーティは、ソーシャル・グラフ200にクエリ215をアタッチする権限または承認を取得する必要がある場合がある。たとえば、開発者またはサード・パーティは、Joe Subscriberまたはソーシャル・グラフのサービス・プロバイダもしくは所有者から権限または承認を取得する必要がある場合がある。承認は、たとえば、加入者がクエリ215を利用するアプリケーションまたはサービスを呼び出したか、または開始した後、加入者がアプリケーションまたはサービスを終了するまでなど、制限された時間のみ有効な場合がある。したがって、クエリ215は、一時的または動的なクエリの場合がある。
図3は、ソーシャル・グラフに対するアクセス制御を修正するための方法300の第1の代表的な実施形態を概念的に示している。図示する実施形態では、アクセス制御クエリは、開発者またはサード・パーティによって生成される(305)。アクセス制御クエリは、開発者またはサード・パーティによって作成されたサービスまたはアプリケーションの一部として使用することができる。アクセス制御クエリは、開発者またはサード・パーティによって規定されたノードのサブツリーで動作することができ、たとえば、クエリを利用するサービスを呼び出した加入者など、1人または複数のユーザに関連するソーシャル・グラフの一部分に挿入されることが意図される。次に、開発者またはサード・パーティは、1つまたは複数の指定されたノードにクエリをアタッチするために、要求を送信することができる(310)。たとえば、クエリ表現は、ソーシャル・グラフのリソースに対するアクセス制御の修正を要求するREST−ful POST要求として書き込むことができる。
従来のアクセス制御方式では、REST−fulサービスのユーザは、サービスにアクセス・トークンを提示し(または、アプリケーションがエンド・ユーザに代わってアクセス・トークンを提示する)、アクセス・トークンは、ユーザ/アプリケーションに許可されたアクセスを識別する。サービスの事前に定められたリソースは、どのアクセス権が特定のユーザに許可されるかを指定することができる。たとえば、Googleカレンダーでは、ユーザは、そのユーザに対するアクセス権を決定する役割を割り当てることができる。所与のリソースについて(たとえば、Google:”/calendar/v3/calendars/KidsEvents”)、役割は、(HTTP GET要求を通じて)ユーザがリソースへのアクセス権を持っているかどうか、(HTTP PUT要求を通じて)カレンダーを更新することができるかどうか、または(HTTP DELETE要求を通じて)カレンダーを削除することができるかどうかを決定する。役割は、役割に対して事前規定されたアクセス権の集合を許可する。事前に定めた役割は、サービス・プロバイダによって固定され、ユーザ、開発者、またはサード・パーティによって拡張することはできない。
図示する実施形態では、要求された(305)アクセス制御クエリは、リソースへの個々のアクセス権を許可するために使用することができるため、それによって役割ベースのアクセス制御を回避することができる。あるいは、ユーザは、アクセス・トークンを通じてユーザに許可されたアクセスを無効(または強化)できる、要求された(305)アクセス制御クエリの結果に基づいて、特定の役割に関連する場合がある。アクセス制御クエリは、リソース・ツリーのノードにアタッチされ、クエリ・ノードの配置により、役割の範囲を決定することができる。たとえば、クエリ範囲は、クエリがアタッチされているサブツリーのリソースに制限することができる。クエリ・ノードには、意味のある名前を付けることができる。たとえば、子どものイベントを記載する加入者のカレンダーに養護者(caregiver)アクセス権を与えるべきかどうかを決定するクエリのためのクエリ・ノードは、「GrantCaregiversAccess」という名前を付けることができ、関連するURIを使用して交換または削除することができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/Calendar/Calendars KidsEvents/GrantCaregiversAccess
適切な承認を用いて、Googleのカレンダーのようなサービスに対するクエリを作成するために使用されるPOST要求は、(JSON)形式を使用することができる。
POST/calendar/calendars HTTP/1.1
Content−Type:application/json
Content−length:200
...

”kind”:”calendar#calendarAccessControlQuery”,
”id”:”GrantCaregiversAccess”,
”accessRole:”reader”.
”query”:”SELECT...

あるいは、POST要求は、GETコマンドを介して特定の権利を許可するために以下の形式を使用することができる。
POST/calendar/calendars/HTTP/1.1
Content−Type:application/json
Content−Length:203
...

”kind”:”calendar#calendarAccessControlQuery”,
”id”:”GrantCaregiversAccess”,
”accessRights”:”GET”.
”query”:”SELECT...”

アクセス制御クエリを削除するために、アプリケーションまたはエンド・ユーザは、以下のようなHTTP要求を発行することができる。
DELETE/calendar/calendars/GrantCaregiversAccess HTTP/1.1
様々な代替的実施形態において、1つまたは複数のアクセス制御クエリは、所与のノードにアタッチすることができるが、実際には、ユーザは、そのユーザに対して少数の高い値(high value)を用いることを選択することができる。一部の実施形態では、シャドー・ノードまたはパターン一致は、クエリを作ったユーザに制御されないノードにクエリを関連させるために使用することができる。
他の例では、Facebookのようなサービスのコンテキストでは、クエリは、アルバム、またはクエリの設計に基づいてアルバムの個々の写真へのアクセスを許可または拒否するために使用することができる。サービスは、クエリへのパラメータに基づいて、アルバムもしくはそれがアタッチされているアルバムのリスト、またはアルバム内の個々の写真またはそれがアタッチされているアルバムのリストへのクエリがアクセスを許可するかどうかを決定することができる。
POST/Joe.Subscriber/ElizabethHighSchoolGraduation/photos HTTP/1.1
Content−Type:application/json
Content−Length:203
...

”kind”:”AccessControlQuery”,
”id”:”GrantElizabethFriendsAccess”,
”accessRights”:”GET”.
”query”:”SELECT...”

Facebookの写真はそれぞれ多数の「プロパティ」を持つことができ、これらはアクセスをさらに制限するためにクエリに現れる場合がある。たとえば、「タグ」プロパティは、写真に描写された個人を記載し、特定のユーザが描写されているこれらの写真のみへのアクセスを制限するために使用することができる。
図示する実施形態では、アクセス制御クエリをアタッチする要求は、ユーザ/加入者から承認を必要とする場合がある。ユーザ承認プロセスは、ユーザのソーシャル・グラフの1つまたは複数のノードにアクセス制御クエリをアタッチすることをユーザが承認したことを検証するために実行することができる(315)。ユーザ承認は、様々な技術を使用して実行することができる。たとえば、クエリを挿入する要求は、新しいクエリの実装を承認または許可するかをユーザが示すことを許可(315)する認証/承認プロセスを開始する要求を含むことができる。ユーザが確認または認証を提供しなければ、要求は拒否される(320)。加入者が要求を確認または認証すれば、要求を続行することができる。
図示する実施形態では、要求は、また、ソーシャル・ネットワーク(SN)サービスのプロバイダまたは所有者から承認を必要とする場合がある。プロバイダ承認プロセスは、ユーザのソーシャル・グラフに新しいクエリを挿入することをプロバイダ/所有者が承認したことを検証するために実行することができる(325)。プロバイダ承認は、様々な技術を使用して実行することができる。たとえば、アクセス制御クエリをアタッチする要求は、新しいクエリの実装を承認または許可するかをプロバイダが示すことを許可(315)する認証/承認プロセスを開始する要求を含むことができる。一実施形態では、プロバイダは、要求を調査し、プロバイダによって確立されたセキュリティ、プライバシー、または他のポリシーに要求が準拠しているかどうかを決定する自動化されたシステムを使用して、認証/承認プロセスを実行することができる。ウェブ・サービスに設置する前に、クエリは、ウェブ・サービスのセキュリティ/使用法のポリシーにそれが準拠していることを保証するために機械的に検証することができる。たとえば、ウェブ・サービスは、ブール結果を返すクエリのみを許可することができ、アクセス制御クエリが関連付けられ得るノードのタイプを限定することができる(たとえば「Photographs」ノードのみ)。プロバイダが確認または認証を提供しなければ、要求は拒否される(320)。プロバイダが要求を確認または認証すれば、要求を続行することができる。本開示の恩恵を受ける当業者は、図3に示した特定の認証シーケンスは、説明を意図したものであることを理解されたい。代替実施形態は、同時または図3に示したものとは異なる順序で、ユーザおよびプロバイダの認証プロセスを実行することができる。さらに、他の代替実施形態は、両方ではなく、ユーザ認証またはプロバイダ認証のみを実行することができるか、または認証をまったく実行しない場合がある。
要求が承認されたら、要求されたクエリは、ソーシャル・グラフ内の選択された位置にアタッチすることができる(330)。次に、開発者もしくはサード・パーティ、または他のエンティティは、新しいクエリを利用するアプリケーションまたはサービスを可能にするために、修正されたインターフェースを使用することができる場合がある。たとえば、上に記述したPOST要求の結果として、加入者(Joe Subscriber)に対するAPIを拡張することになる場合があるため、ここで、URIに対してGET要求を行うことができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/Photographs/Photo1
要求されたリソース(つまり写真Photo1)へのアクセス制御は、以下のようなクエリを使用して決定することができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/Photographs/AllowAccessforTaggedUser
アクセス制御クエリは、Bob Whatsisnameが写真Photo1に対するタグ・リストにあるかどうかに応じてブール値を返す。一実施形態では、アクセス制御クエリを開発者は見ることができ、アクセス制御クエリを使用するアプリケーションに利用可能であるが、アクセス制御クエリはユーザには見えない場合があるため、リソースへのアクセスを得ることを試みるユーザは、アクセス制御が実行されていることに気づかない場合がある。
したがって、方法300の実施形態は、ソーシャル・グラフを表す基礎をなすデータベースへの過度または完全なアクセスを提供するリスクを減らしながら、より広くより様々な組のアクセス制御権を提供する、修正されたインターフェースをサポートすることができる。POST要求によって行われた修正は、要求を承認したユーザのみに影響することができ(Joe Subscriber)、対応するHTTP DELETE要求または他の操作によって逆転することができる。一実施形態では、クエリを挿入するためのメカニズムは、エンド・ユーザに関連するレコードを作成することの場合がある。挿入されたレコードは、GET要求で使用されるクエリおよび関連する経路を含むことができる。様々な実施形態において、ウェブ・サービスは、1つまたは複数のクエリ言語をサポートし、クエリ言語に伴うスキーマを公開する。
図4は、ソーシャル・グラフへの修正されたアプリケーション・プログラミング・インターフェースにクエリする方法400の代表的な一実施形態を概念的に示している。図示する実施形態では、方法400は、ユーザごとおよびアプリケーションごとにアプリケーション・プログラミング・インターフェースを修正するため、インターフェースによって使用されるアクセス制御権は、いつでも全体的に変更されるのではなく、修正されたインターフェースを使用するサービスを特定のユーザが呼び出した場合のみ変更され、一部の実施形態では、関係するサービスを呼び出し、ソーシャル・グラフの関連する部分へのインターフェースの修正を承認したユーザに対してのみである。1人または複数のユーザは、サービスまたはアプリケーションを開始することができる(405)。開始されたアプリケーションは、プロバイダによって規定されたAPIによってサポートされないアクセス制御クエリを利用することができる。次に、1つまたは複数の新しいアクセス制御クエリを作成することができ、また、アクセス制御クエリを関連するノードにアタッチすることができる(410)。クエリをアタッチするための技術の実施形態については図3に示している。
次に、(たとえば、サービス・プロバイダによって所有または運用される1つまたは複数のサーバで実装されたソフトウェア、ファームウェア、またはハードウェアを使用する)サービス・プロバイダは、サービスに関連するクエリを監視することができる(410)。サービス・プロバイダがクエリを検出しない限り、監視を継続することができる(410)。サービス・プロバイダが、アクセス制御クエリ、たとえば、加入者によって要求または呼び出されたサービスの一部としてソーシャル・グラフへのアクセスを要求するために実行されるクエリを検出すると(415)、クエリに関連するノードのサブツリーに含まれる情報に対してクエリを実行することができる(420)。たとえば、クエリは、ノードのサブツリーに含まれる情報に少なくとも部分的に基づいて、アクセス要求が許可されたか拒否されたかを示すブール値を返すことができる(420)。
図5は、ソーシャル・グラフへのアプリケーション・プログラミング・インターフェースへの修正を取り除くか、または逆転する方法500の代表的な一実施形態を概念的に示している。図示する実施形態では、アプリケーション・プログラミング・インターフェースは、1人または複数のユーザが、修正されたインターフェースを使用するサービスを呼び出すことに応答して、ユーザごとまたはアプリケーションごとに(たとえば図3〜図4に関して本明細書に記述したように)以前に修正されており、一部の実施形態では、関係するサービスを呼び出し、ソーシャル・グラフの関連する部分へのインターフェースの修正を承認したユーザに対してのみである。ソーシャル・グラフへのインターフェースを修正する結果となった、サービスを以前に開始した1人または複数のユーザは、アプリケーションを終了すると決定することができる。したがって、サービス・プロバイダは、アプリケーションを終了する要求を受信することができる(505)。サービス・プロバイダは、修正されたインターフェースをサポートするために、ソーシャル・グラフにアタッチされた一時的アクセス制御クエリを識別することができる(510)。一時的クエリの識別(510)は、サービス・プロバイダによって格納された情報またはユーザによって提供された情報を使用して実行することができる。次に、一時的クエリは削除することができ(515)、アプリケーションを終了することができる(520)。一実施形態では、一時的クエリの削除(515)は、ノード、葉ノード、サブツリー、または一時的クエリに関連する他の情報を取り除くことを含むことができる。
図6は、ソーシャル・グラフ600の一部分の第2の代表的な実施形態を概念的に示している。図2に示す第1の実施形態と同様に、部分600は、特定の加入者「Joe Subscriber」に関連するノードを含む完全なソーシャル・グラフのサブツリーである。部分600は、入り口ノードまたは親ノード605を介してアクセスすることができる。部分600は、1つまたは複数のサーバに格納することができ、クライアントは、適切なユニフォーム・リソース・インジケータ(URI)または他のアドレスを使用して、入り口ノード605にアクセスすることができる。部分600は、また、入り口ノード605または部分600内の他のノードに接続されている子ノード610を含む。本明細書に記述したように、子ノード610は、情報、カテゴリ、他の加入者などに関連する場合がある。ノード610は、以下のような対応するアドレスを使用してアクセスすることができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/Calendar
図示する実施形態では、開発者または他のサード・パーティは、加入者に対応するソーシャル・グラフの部分600に1つまたは複数のノード615を追加することができる。たとえば、開発者は、サブツリー600のノード610(4)に関連する、またはアタッチされたノード615を挿入するためにHTTP POSTコマンドを使用することができる。次に、ノード615は、適切なURIまたは他のアドレスを使用してアクセスすることができる。たとえば、ノード610(3)は、Joe Subscriberの「Calendar(カレンダー)」に関連する場合があり、ノード610(4)は、Joe Subscriberの「Calendars(カレンダー)」に関連する場合があり、ノード615は、「KidEvents(子どものイベント)」などJoeの子どもが参加するイベントを含むカテゴリに関連する場合がある。ノード615は、また、バレエ・レッスン、サッカーの練習、ピアノ・リサイタルなど、複数の葉ノード625を含む、他のサブツリー620に関連付ける、または接続することができる。しかし、本開示の恩恵を受ける当業者は、サブツリー620は、ノードまたは葉ノードの異なる組み合わせを含むことができることを理解されたい。サブツリー620または葉ノード625は、開発者、サード・パーティ、加入者、またはサービス・プロバイダによって自動的にポピュレートすることができる。ノード615は、以下のようなアドレスを使用してアクセスすることができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/Calendar/Calendars/KidEvents
一部の実施形態では、開発者またはサード・パーティは、ソーシャル・グラフにノード615を追加する権限または承認を取得する必要がある場合がある。たとえば、開発者またはサード・パーティは、Joe Subscriberまたはソーシャル・グラフのサービス・プロバイダもしくは所有者から権限または承認を取得する必要がある場合がある。承認は、たとえば、加入者がノード615を利用するアプリケーションまたはサービスを呼び出したか、または開始した後、加入者がアプリケーションまたはサービスを終了するまでなど、制限された時間のみ有効な場合がある。したがって、ノード615は、一時的または動的なノードの場合がある。
ソーシャル・グラフ600へのインターフェースは、ソーシャル・グラフ600に追加されたノード615で動作するアクセス制御クエリ630をサポートするように修正することができる。一実施形態では、開発者は、アクセス制御クエリ630を規定するためにメッセージまたはコマンドを使用し、ソーシャル・グラフ200へのアプリケーション・プログラミング・インターフェース(API)を修正するために1つまたは複数のノードにクエリ630をアタッチすることができる。たとえば、子どものイベント「KidEvents」のためのノード615を作成し、子どものイベントを記載する加入者のカレンダーへのアクセス権を養護者に与えるべきかどうかを決定するクエリにアタッチすることができ、これは「GrantCaregiversAccess」という名前を付けることができ、関連するURIを使用して交換または削除することができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/Calendar/Calendars KidsEvents/GrantCaregiversAccess
適切な承認を用いて、Googleのカレンダーのようなサービスに対するクエリを作成するために使用されるPOST要求は、(JSON)形式を使用することができる。
POST/calendar/calendars HTTP/1.1
Content−Type:application/json
Content−length:200
...

”kind”:”calendar#calendarAccessControlQuery”,
”id”:”GrantCaregiversAccess”,
”accessRole:”reader”.
”query”:”SELECT...”

しかし、代替実施形態では、他の形式の他のアドレスまたは要求メッセージは、ノード615またはアクセス制御クエリ630を作成するために使用することができる。
図7は、ソーシャル・グラフに対するアクセス制御を修正するための方法700の第2の代表的な実施形態を概念的に示している。図示する実施形態では、本明細書に記述するように、アクセス制御クエリは、開発者またはサード・パーティによって生成される(705)。アクセス制御クエリは、開発者またはサード・パーティによって作成されたサービスまたはアプリケーションの一部として使用することができる。アクセス制御クエリは、開発者またはサード・パーティによって規定されたノードのサブツリーで動作することができ、たとえば、クエリを利用するサービスを呼び出した加入者など、1人または複数のユーザに関連するソーシャル・グラフの一部分に挿入されることが意図される。次に、開発者またはサード・パーティは、ノードを作成し、新しく作成されたノードにアクセス制御クエリをアタッチするために、要求を送信することができる(710)。たとえば、クエリ表現は、ソーシャル・グラフへのAPIのプログラマのビューの修正を要求するREST−ful POST要求として書き込むことができる。適切な承認を用いて、APIを拡張するためのURI
http://www.fakesocialnetwark.com/Joe.Subscriber/Calendar/Calendars/
へのPOST要求は、以下のように書くことができる。
POST/Joe.Subscriber/Calendar/Calendars/HTTP/1.0
Content−Type:text/xml
<extend>
<node>KidEvents</node>
<query>SELECT...</query>
</extend>
しかし、本開示の恩恵を受ける当業者は、他のクエリ表現または形式を要求に使用することができることを理解されたい。
図示する実施形態では、要求は、ユーザ/加入者からの承認を必要とする場合がある。ユーザ承認プロセスは、ユーザのソーシャル・グラフに新しいノードを挿入することをユーザが承認したことを検証するために実行することができる(715)。ユーザ承認は、様々な技術を使用して実行することができる。たとえば、ノードを作成し、クエリをアタッチする要求は、新しいノードの作成および新しいクエリの実装を承認または許可するかをユーザが示すことを許可(715)する認証/承認プロセスを開始する要求を含むことができる。ユーザが確認または認証を提供しなければ、要求は拒否される(720)。加入者が要求を確認または認証すれば、要求を続行することができる。
図示する実施形態では、要求は、また、ソーシャル・ネットワーク(SN)サービスのプロバイダまたは所有者から承認を必要とする場合がある。プロバイダ承認プロセスは、ユーザのソーシャル・グラフに新しいノードを挿入することをプロバイダ/所有者が承認したことを検証するために実行することができる(725)。プロバイダ承認は、様々な技術を使用して実行することができる。たとえば、ノードを作成し、クエリをアタッチする要求は、新しいノードの作成または新しいアクセス制御クエリの実装を承認または許可するかをプロバイダが示すことを許可(715)する認証/承認プロセスを開始する要求を含むことができる。一実施形態では、プロバイダは、要求を調査する自動化されたシステムを使用して、認証/承認プロセスを実行することができ、プロバイダによって確立されたセキュリティ、プライバシー、または他のポリシーに要求が準拠しているかどうかを決定する。ウェブ・サービスにインストールする前に、アクセス制御クエリは、ウェブ・サービスのセキュリティ/使用法のポリシーにそれが準拠していることを保証するために機械的に検証することができる。プロバイダが確認または認証を提供しなければ、要求は拒否される(720)。プロバイダが要求を確認または認証すれば、要求を続行することができる。本開示の恩恵を受ける当業者は、図7に示した特定の認証シーケンスは、説明を意図したものであることを理解されたい。代替実施形態は、同時または図7に示したものとは異なる順序で、ユーザおよびプロバイダの認証プロセスを実行することができる。さらに、他の代替実施形態は、両方ではなく、ユーザ認証またはプロバイダ認証のみを実行することができるか、または認証をまったく実行しない場合がある。
要求が承認されたら、要求されたノードは、ソーシャル・グラフ内の選択された位置に挿入することができる(730)。次に、ソーシャル・グラフへのインターフェースは、新しいノードまたはツリー内のより低いノードにアクセス制御クエリをアタッチする(735)ことによって修正することができる。開発者もしくはサード・パーティ、または他のエンティティは、次に、新しいアクセス制御クエリを利用するアプリケーションまたはサービスを開発できる場合がある。たとえば、カレンダーKidEventsに関連するアクセス制御クエリは、以下のURIを使用して呼び出すことができる。
http://www.fakesocialnetwork.com/Joe.Subscriber/Calendar/Calendars/KidEvents/GrantCaregiversAccess
図示する実施形態では、承認された養護者から要求が来る場合、要求はブール値真を返し、承認された養護者から要求が来ない場合、ブール値偽を返す。したがって、方法700の実施形態は、ソーシャル・グラフを表す基礎をなすデータベースへの過度または完全なアクセスを提供するリスクを減らしながら、より広くより様々な組のアクセス制御権を提供することができる。POST要求によって行われた修正は、ユーザのリソース、または要求を承認したユーザ(Joe Subscriber)にアクセス可能なそれらのリソースへのアクセスのみに影響する場合があり、対応するHTTP DELETE要求または他の操作によって逆転することができる。一実施形態では、クエリを挿入するためのメカニズムは、エンド・ユーザに関連するレコードを作成することの場合がある。挿入されたレコードは、GET要求で使用されるクエリおよび関連する経路を含むことができる。様々な実施形態において、ウェブ・サービスは、1つまたはクエリ言語をサポートし、クエリ言語に伴うスキーマを公開する。一実施形態では、新しいノードまたはアタッチされるクエリは、一時的な場合がある。たとえば、ノードまたはクエリは、ユーザが、ノードまたはクエリを利用するサービスを呼び出すことに応答して追加することができる。ノードまたはクエリは、たとえば、ノードまたはクエリを使用するサービスの終了に応答して、除去または削除することができる。
図8は、ソーシャル・グラフの部分を格納する、ソーシャル・グラフへのアプリケーション・プログラミング・インターフェースを実装する、またはソーシャル・ネットワーク・サービスを実装するために使用できる、サーバ800の代表的な一実施形態を概念的に示している。図示する実施形態では、サーバ800は、プロセッサ805、データ記憶装置810、および入力/出力(I/O)インターフェース815を含む。プロセッサ805は、たとえば、データ記憶装置810または他の場所に格納されたデータまたは命令を使用するなど、サーバ800の動作を制御するように構成される。サーバ800によって実行できる動作の実施形態は、図1〜図7に関連して本明細書に記述している。一実施形態では、データ記憶装置810は、ソーシャル・グラフへの1つまたは複数のアプリケーション・プログラミング・インターフェースを表す情報820、ソーシャル・グラフの部分を表す情報825、またはソーシャル・グラフに格納された情報を使用できるソーシャル・ネットワーク・サービスを表す情報830を格納する。
図8は単一のサーバ800を示しているが、本開示の恩恵を受ける当業者は、代替実施形態は、複数のサーバを使用し、複数のサーバの全体にわたり図8に示した機能の部分を分散することができることを理解されたい。一部の実施形態では、サーバ800はバーチャル・マシンの場合がある。これらの実施形態の一部では、バーチャル・マシンは、異なるマシンからのコンポーネントを含む場合も、または地理的に分散している場合もある。たとえば、データ記憶装置810およびプロセッサ805は、2台の異なる物理的なマシンにある場合がある。ソーシャル・ネットワーク・サービス830など、プロセッサで実行可能なプログラムがプロセッサ805で実装される場合、特定の論理回路と同様に動作する一意のデバイスを提供するために、プログラム・コード・セグメントはプロセッサ805と組み合わせられる。
開示した内容および対応する詳細な記述の部分は、ソフトウェア、またはアルゴリズムおよびコンピュータ・メモリ内のデータ・ビットの動作を記号で表現したものに関して示したものである。これらの記述および表現は、当業者が他の当業者に仕事の本質を効果的に伝達するものである。本明細書で使用し、一般的に使用されるアルゴリズムという用語は、望ましい結果につながる首尾一貫した連続したステップであると考えられる。ステップは、物理量の物理的な操作を必要とするものである。通常、必須ではないが、これらの量は、格納、転送、組み合わせ、比較、または操作可能な光学的、電気的、または磁気的な信号の形をとる。これらの信号は、主に一般的に使用する理由から、ビット、値、要素、記号、文字、用語、数値などと呼ぶことが便利であると分かっている。
しかし、これらおよび同様の用語はすべて、適切な物理量に関連しており、これらの量に適用される便利なラベルにすぎないことを覚えておくべきである。特に別記しない限り、または記述から明白でない限り、「処理」または「コンピューティング」または「計算」または「決定」または「表示」などの用語は、コンピュータ・システムのレジスタおよびメモリ内の物理的な電子量として表されたデータを操作し、コンピュータ・システムのメモリもしくはレジスタ、または他のそのような情報記憶装置、伝送デバイスもしくは表示デバイス内の物理量として同様に表される他のデータへと変形するコンピュータ・システム、または同様の電子計算デバイスの動作およびプロセスを指すものである。
また、開示された内容のソフトウェアに実装された態様は、典型的に、プログラム記憶媒体の一形式で符号化されるか、または何らかの伝送媒体を通じて実装されることに注意すること。プログラム記憶媒体は、磁気的(たとえば、フロッピー・ディスクまたはハードドライブ)、または光学的(たとえば、コンパクト・ディスクを使った読み出し専用メモリ、または「CD ROM」)でもよく、読み出し専用またはランダム・アクセスでもよい。同様に、伝送媒体は、ツイストペア線、同軸ケーブル、光ファイバ、または当技術分野で知られている他の何らかの適切な伝送媒体でもよい。開示された内容は、特定の実装のこれらの態様によって限定されるものではない。
上に開示した特定の実施形態は例を示しているにすぎず、開示した内容は、本明細書の教示の利益を受ける当業者に明白な、異なるが同等の方法で修正および実施することができる。さらに、以下の特許請求の範囲に記述した以外、本明細書に示した構造または設計の詳細に限定することを意図するものではない。したがって、上に開示した特定の実施形態は変更または修正することができ、そのような変形形態はすべて、開示された内容の範囲内にあると考えられることは明白である。したがって、本明細書に求められる保護は、以下の特許請求の範囲に記述するとおりである。

Claims (31)

  1. サービスが呼び出されることに応答して1つまたは複数のノードにアクセス制御クエリを構成するための情報を受信するステップであって、前記サービスは、第1のユーザに関連するソーシャル・グラフのリソースへのアクセスを要求するためにアクセス制御クエリを使用するように構成され、前記リソースのサブセットは前記ソーシャル・グラフの一部分内のノードに関連する、ステップと、
    前記アクセス制御クエリが前記ノードに関連する前記ソーシャル・グラフの前記リソースの前記サブセットで動作するように前記ノードに前記アクセス制御クエリをアタッチするステップであって、前記アクセス制御クエリは、第2のユーザと前記リソースとの関係を表す履歴情報、および、前記第2のユーザと前記リソースの所有者である前記第1のユーザとの関係を表す履歴情報の少なくとも1つに応じて、前記リソースの前記サブセットにアクセスするための要求が許可されるか、それとも拒否されるかを示す情報を返す、ステップと
    を含む、プロセッサによって実行される方法。
  2. 第2のユーザから、前記ノードに関連する前記リソースの前記サブセットにアクセスするための要求を受信し、前記要求を受信することに応答して前記アクセス制御クエリを呼び出すステップを含む請求項1に記載の方法。
  3. 前記アクセス制御クエリを呼び出すステップは、前記第1のユーザとの前記第2のユーザの関係を表す履歴情報または前記リソースの前記サブセットとの前記第2のユーザの関係を表す履歴情報の少なくとも1つに基づいて、要求を許可するか、それとも拒否するかを決定するステップを含み、前記関係は、前記ソーシャル・グラフのエッジによって表される請求項2に記載の方法。
  4. 前記アクセス制御クエリを呼び出すステップは、前記リソースの前記サブセットにアクセスするための要求が許可されるか、それとも拒否されるかを示すブール値を返すステップを含む請求項3に記載の方法。
  5. 前記ノードに前記アクセス制御クエリをアタッチするステップは、前記第1のユーザが、前記ノードに関連する前記リソースの前記サブセットへのアクセスを要求するサービスを呼び出すことに応答して、前記ノードに前記アクセス制御クエリをアタッチするステップを含む請求項1に記載の方法。
  6. 前記第1のユーザが前記サービスを呼び出すことに応答して、前記第1のユーザに関連する前記ソーシャル・グラフの前記一部分に前記ノードを追加し、次に前記新しく追加されたノードに前記アクセス制御クエリをアタッチするステップをさらに含む請求項5に記載の方法。
  7. 前記第1のユーザが前記サービスを終了することに応答して前記アクセス制御クエリを削除するステップをさらに含む請求項5に記載の方法。
  8. 前記ノードに前記アクセス制御クエリをアタッチするステップは、前記第1のユーザが、前記第1のユーザによって所有される前記ノードに前記アクセス制御クエリをアタッチすることを承認したと決定したことに応答して前記ノードに前記アクセス制御クエリをアタッチするステップを含む請求項1に記載の方法。
  9. 前記ノードに前記アクセス制御クエリをアタッチするステップは、前記ソーシャル・グラフを所有するサービス・プロバイダが、前記第1のユーザによって所有される前記ノードに前記アクセス制御クエリをアタッチすることを承認したと決定したことに応答して前記ノードに前記アクセス制御クエリをアタッチするステップを含む請求項1に記載の方法。
  10. 第1のユーザによって所有されるソーシャル・グラフのリソースに対してアクセス制御クエリを実行するように構成されたサービスを呼び出すステップであって、前記リソースのサブセットは前記ソーシャル・グラフの一部分内のノードに関連する、ステップと、
    前記アクセス制御クエリが、第2のユーザと前記リソースとの関係を表す履歴情報、および、前記第2のユーザと前記リソースの所有者である前記第1のユーザとの関係を表す履歴情報の少なくとも1つに応じて、前記ノードと関連する前記リソースの前記サブセットにアクセスするための要求が許可されるか、それとも拒否されるかを決定するように、サービスを呼び出すことに応答して前記ノードに前記アクセス制御クエリをアタッチするステップと
    を含む、プロセッサによって実行される方法。
  11. 前記ノードに前記アクセス制御クエリをアタッチするステップは、前記第1のユーザが、前記ノードに関連する前記リソースの前記サブセットへのアクセスを要求するサービスを呼び出すことに応答して、前記ノードに前記アクセス制御クエリをアタッチするステップを含む請求項10に記載の方法。
  12. 前記第1のユーザが前記サービスを呼び出すことに応答して、前記第1のユーザに関連する前記ソーシャル・グラフの前記一部分に前記ノードを追加し、次に前記新しく追加されたノードに前記アクセス制御クエリをアタッチするステップをさらに含む請求項11に記載の方法。
  13. 前記第1のユーザが前記サービスを終了することに応答して前記アクセス制御クエリを削除するステップをさらに含む請求項11に記載の方法。
  14. 前記ノードに前記アクセス制御クエリをアタッチするステップは、前記第1のユーザが、前記第1のユーザによって所有される前記ノードに前記アクセス制御クエリをアタッチすることを承認したと決定したことに応答して前記ノードに前記アクセス制御クエリをアタッチするステップを含む請求項10に記載の方法。
  15. 前記ノードに前記アクセス制御クエリをアタッチするステップは、前記ソーシャル・グラフを所有するサービス・プロバイダが、前記第1のユーザによって所有される前記ノードに前記アクセス制御クエリをアタッチすることを承認したと決定したことに応答して前記ノードに前記アクセス制御クエリをアタッチするステップを含む請求項10に記載の方法。
  16. 第2のユーザから、前記ノードに関連する前記リソースの前記サブセットにアクセスするための前記サービスを使用する要求を受信し、前記要求を受信することに応答して前記アクセス制御クエリを呼び出すステップを含む請求項10に記載の方法。
  17. 前記アクセス制御クエリを呼び出すステップは、前記第1のユーザとの前記第2のユーザの関係を表す履歴情報または前記リソースの前記サブセットとの前記第2のユーザの関係を表す履歴情報の少なくとも1つに基づいて、要求を許可するか、それとも拒否するかを決定するステップを含み、前記関係は、前記ソーシャル・グラフのエッジによって表される請求項16に記載の方法。
  18. 前記アクセス制御クエリを呼び出すステップは、前記リソースの前記サブセットにアクセスするための要求が許可されるか、それとも拒否されるかを示すブール値を返すステップを含む請求項16に記載の方法。
  19. 前記要求が許可されることを示す前記ブール値を返す前記アクセス制御クエリに応答して前記リソースへのアクセスを有する前記サービスを提供するステップをさらに含む請求項18に記載の方法。
  20. ソーシャル・グラフの一部分へのアクセス制御を提供する装置であって、
    データ記憶装置と、
    前記データ記憶装置と通信可能に結合されるプロセッサと
    を含み、前記プロセッサは、
    サービスが呼び出されることに応答して1つまたは複数のノードにアクセス制御クエリを構成するための情報を受信するステップであって、前記サービスは、第1のユーザに関連するソーシャル・グラフのリソースへのアクセスを要求するためにアクセス制御クエリを使用するように構成され、前記リソースのサブセットは前記ソーシャル・グラフの前記一部分内のノードに関連する、ステップと、
    前記アクセス制御クエリが前記ノードに関連する前記ソーシャル・グラフの前記リソースの前記サブセットで動作するように前記ノードに前記アクセス制御クエリをアタッチするステップであって、前記アクセス制御クエリは、第2のユーザと前記リソースとの関係を表す履歴情報、および、前記第2のユーザと前記リソースの所有者である前記第1のユーザとの関係を表す履歴情報の少なくとも1つに応じて、前記リソースの前記サブセットにアクセスするための要求が許可されるか、それとも拒否されるかを示す情報を返す、ステップとを含むプログラムを実行するように構成された装置。
  21. 前記プロセッサが実行する前記プログラムは、第2のユーザから、前記ノードに関連する前記リソースの前記サブセットにアクセスするための要求を受信し、前記要求を受信することに応答して前記アクセス制御クエリを呼び出すステップをさらに含む請求項20に記載の装置。
  22. 前記プロセッサが実行する前記プログラムは、前記第1のユーザが前記ノードに関連する前記リソースの前記サブセットへのアクセスを要求するサービスを呼び出すことに応答して、前記ノードに前記アクセス制御クエリをアタッチすることにより、前記ノードに前記アクセス制御クエリをアタッチするステップをさらに含む請求項20に記載の装置。
  23. 前記プロセッサが実行する前記プログラムは、前記第1のユーザが前記サービスを呼び出すことに応答して、前記第1のユーザに関連するソーシャル・グラフの前記一部分に前記ノードを追加し、次に前記新しく追加されたノードに前記アクセス制御クエリをアタッチするステップをさらに含む請求項22に記載の装置。
  24. 前記プロセッサが実行する前記プログラムは、前記第1のユーザが前記サービスを終了することに応答して前記アクセス制御クエリを削除するステップをさらに含む請求項22に記載の装置。
  25. 前記プロセッサが実行する前記プログラムは、前記第1のユーザが、前記第1のユーザによって所有される前記ノードに前記アクセス制御クエリをアタッチすることを承認したと決定したことに応答して前記ノードに前記アクセス制御クエリをアタッチすることにより前記ノードに前記アクセス制御クエリをアタッチするステップをさらに含む請求項20に記載の装置。
  26. 前記プロセッサが実行する前記プログラムは、前記ソーシャル・グラフを所有するサービス・プロバイダが、前記第1のユーザによって所有される前記ノードに前記アクセス制御クエリをアタッチすることを承認したと決定したことに応答して前記ノードに前記アクセス制御クエリをアタッチすることにより、前記ノードに前記アクセス制御クエリをアタッチするステップをさらに含む請求項20に記載の装置。
  27. ソーシャル・グラフの一部分へのアクセス制御提供する装置であって、
    データ記憶装置と、
    前記データ記憶装置と通信可能に結合されるプロセッサと
    を含み、前記プロセッサは、
    第1のユーザによって所有されるソーシャル・グラフのリソースに対してアクセス制御クエリを実行するように構成されたサービスを呼び出すステップであって、前記リソースのサブセットは前記ソーシャル・グラフの前記一部分内のノードに関連するステップと、
    前記アクセス制御クエリが、第2のユーザと前記リソースとの関係を表す履歴情報、および、前記第2のユーザと前記リソースの所有者である第1のユーザとの関係を表す履歴情報の少なくとも1つに応じて、前記ノードと関連する前記リソースの前記サブセットにアクセスするための要求が許可されるか、それとも拒否されるかを決定するように、サービスを呼び出すことに応答して前記ノードに前記アクセス制御クエリをアタッチする、ステップとを含むプログラムを実行するように構成された装置。
  28. 前記プロセッサが実行する前記プログラムは、前記第1のユーザが前記サービスを呼び出すことに応答して、前記第1のユーザに関連する前記ソーシャル・グラフの前記一部分に前記ノードを追加し、次に前記新しく追加されたノードに前記アクセス制御クエリをアタッチするステップをさらに含む請求項27に記載の装置。
  29. 前記プロセッサが実行する前記プログラムは、前記第1のユーザが前記サービスを終了することに応答して前記アクセス制御クエリを削除するステップをさらに含む請求項27に記載の装置。
  30. 前記プロセッサが実行する前記プログラムは、前記第1のユーザが、前記第1のユーザによって所有される前記ノードに前記アクセス制御クエリをアタッチすることを承認したと決定したことに応答して前記ノードに前記アクセス制御クエリをアタッチすることにより前記ノードに前記アクセス制御クエリをアタッチするステップをさらに含む請求項27に記載の装置。
  31. 前記プロセッサが実行する前記プログラムは、前記ソーシャル・グラフを所有するサービス・プロバイダが、前記第1のユーザによって所有される前記ノードに前記アクセス制御クエリをアタッチすることを承認したと決定したことに応答して前記ノードに前記アクセス制御クエリをアタッチすることにより、前記ノードに前記アクセス制御クエリをアタッチするステップをさらに含む請求項27に記載の装置。
JP2015501830A 2012-03-19 2013-03-18 クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法 Active JP6444855B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/423,795 US9177168B2 (en) 2012-03-19 2012-03-19 Method of modifying access control for web services using query languages
US13/423,697 2012-03-19
US13/423,795 2012-03-19
US13/423,697 US9047643B2 (en) 2012-03-19 2012-03-19 Method of extending web service application programming interfaces using query languages
PCT/US2013/032751 WO2013142399A1 (en) 2012-03-19 2013-03-18 Method of modifying access control for web services using query languages

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2016098805A Division JP2016170804A (ja) 2012-03-19 2016-05-17 クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法
JP2017034573A Division JP2017123186A (ja) 2012-03-19 2017-02-27 クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法

Publications (3)

Publication Number Publication Date
JP2015518201A JP2015518201A (ja) 2015-06-25
JP2015518201A5 JP2015518201A5 (ja) 2018-07-19
JP6444855B2 true JP6444855B2 (ja) 2018-12-26

Family

ID=48045111

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2015501830A Active JP6444855B2 (ja) 2012-03-19 2013-03-18 クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法
JP2016098805A Pending JP2016170804A (ja) 2012-03-19 2016-05-17 クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法
JP2017034573A Pending JP2017123186A (ja) 2012-03-19 2017-02-27 クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2016098805A Pending JP2016170804A (ja) 2012-03-19 2016-05-17 クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法
JP2017034573A Pending JP2017123186A (ja) 2012-03-19 2017-02-27 クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法

Country Status (7)

Country Link
US (1) US9177168B2 (ja)
EP (1) EP2828763B1 (ja)
JP (3) JP6444855B2 (ja)
KR (1) KR101624519B1 (ja)
CN (1) CN104205086B (ja)
IN (1) IN2014DN07309A (ja)
WO (1) WO2013142399A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130037609A1 (en) * 2011-08-13 2013-02-14 Carolann Merritt-Munson Method, apparatus and system of unique, coded, visual identifiers that provide a point of contact between people for communication and exchange of information bridging non-virtual and virtual environments
US9177168B2 (en) 2012-03-19 2015-11-03 Alcatel Lucent Method of modifying access control for web services using query languages
US9665393B1 (en) 2012-04-17 2017-05-30 Facebook, Inc. Storage and privacy service
US9411671B1 (en) * 2012-04-17 2016-08-09 Facebook, Inc. Storage and privacy service
WO2014000827A1 (en) * 2012-06-29 2014-01-03 Hewlett-Packard Development Company L.P. Content display
US8875253B2 (en) * 2012-07-03 2014-10-28 Facebook, Inc. Trust metrics on shared computers
US9646028B2 (en) * 2012-08-31 2017-05-09 Facebook, Inc. Graph query logic
US9098686B2 (en) * 2012-11-30 2015-08-04 Facebook, Inc. Social authentication
US10261997B2 (en) * 2013-03-13 2019-04-16 Avaya Inc. Method, apparatus, and system for providing and using subscriptions and filtering based on tree structures
GB2519966A (en) 2013-11-01 2015-05-13 Ibm Anonymously sharing resources based on social network user data
US9436427B2 (en) * 2014-07-14 2016-09-06 National Taiwan University Augmented reality system and method for on-site construction process
GB2530499A (en) 2014-09-23 2016-03-30 Ibm Rest resource collection management
US10326768B2 (en) 2015-05-28 2019-06-18 Google Llc Access control for enterprise knowledge
CN106685893B (zh) * 2015-11-06 2019-11-12 中国科学院沈阳计算技术研究所有限公司 一种基于社交网络群的权限控制方法
US9888007B2 (en) 2016-05-13 2018-02-06 Idm Global, Inc. Systems and methods to authenticate users and/or control access made by users on a computer network using identity services
US10187369B2 (en) 2016-09-30 2019-01-22 Idm Global, Inc. Systems and methods to authenticate users and/or control access made by users on a computer network based on scanning elements for inspection according to changes made in a relation graph
US10467229B2 (en) 2016-09-30 2019-11-05 Microsoft Technology Licensing, Llc. Query-time analytics on graph queries spanning subgraphs
US10250583B2 (en) 2016-10-17 2019-04-02 Idm Global, Inc. Systems and methods to authenticate users and/or control access made by users on a computer network using a graph score
JP7100422B2 (ja) 2016-10-21 2022-07-13 富士通株式会社 データプロパティ認識のための装置、プログラム、及び方法
JP6805765B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
US10545945B2 (en) * 2016-10-28 2020-01-28 Microsoft Technology Licensing, Llc Change monitoring spanning graph queries
US10514854B2 (en) 2016-11-04 2019-12-24 Microsoft Technology Licensing, Llc Conditional authorization for isolated collections
US10924467B2 (en) * 2016-11-04 2021-02-16 Microsoft Technology Licensing, Llc Delegated authorization for isolated collections
US11188551B2 (en) * 2016-11-04 2021-11-30 Microsoft Technology Licensing, Llc Multi-level data pagination
US10445361B2 (en) 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
US10402403B2 (en) 2016-12-15 2019-09-03 Microsoft Technology Licensing, Llc Utilization of probabilistic characteristics for reduction of graph database traversals
US10242223B2 (en) * 2017-02-27 2019-03-26 Microsoft Technology Licensing, Llc Access controlled graph query spanning
US10965668B2 (en) 2017-04-27 2021-03-30 Acuant, Inc. Systems and methods to authenticate users and/or control access made by users based on enhanced digital identity verification
US11436417B2 (en) 2017-05-15 2022-09-06 Google Llc Providing access to user-controlled resources by automated assistants
US10127227B1 (en) 2017-05-15 2018-11-13 Google Llc Providing access to user-controlled resources by automated assistants
US11153172B2 (en) * 2018-04-30 2021-10-19 Oracle International Corporation Network of nodes with delta processing
EP3682345B1 (en) 2018-08-07 2021-11-24 Google LLC Assembling and evaluating automated assistant responses for privacy concerns
CN110968744B (zh) * 2018-09-30 2023-09-05 中国移动通信有限公司研究院 一种资源查询方法及装置、设备、存储介质
CN110008346B (zh) * 2019-01-24 2024-05-03 平安科技(深圳)有限公司 黑名单传导图谱构建方法、装置、计算机设备和存储介质
CN112784132B (zh) * 2019-11-11 2024-09-24 腾讯科技(深圳)有限公司 一种数据获取方法、装置以及计算机存储介质
CN110955903B (zh) * 2019-11-22 2021-03-30 支付宝(杭州)信息技术有限公司 基于智能图计算的隐私资源权限控制方法、装置及设备
WO2022094160A1 (en) * 2020-10-30 2022-05-05 Popshop Technologies, Inc. Live streaming product creation and order compilation
US12105711B2 (en) * 2022-06-22 2024-10-01 Microsoft Technology Licensing, Llc. Computing resource conservation with balanced traversals and precomputations for connected data sets

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2534360B2 (ja) 1988-09-26 1996-09-11 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 接続方法、ノ―ド接続方法、デ―タ処理方法、及び木内にノ―ドを挿入する方法
US5892513A (en) 1996-06-07 1999-04-06 Xerox Corporation Intermediate nodes for connecting versioned subtrees in a document management system
US7467212B2 (en) 2000-12-28 2008-12-16 Intel Corporation Control of access control lists based on social networks
US20020131431A1 (en) 2001-03-14 2002-09-19 Wank Richard B. Method and apparatus for a network element to support a communication link in a communication network
US7069308B2 (en) 2003-06-16 2006-06-27 Friendster, Inc. System, method and apparatus for connecting users in an online computer system based on their relationships within social networks
US8302164B2 (en) * 2004-07-22 2012-10-30 Facebook, Inc. Authorization and authentication based on an individual's social network
JP4135950B2 (ja) * 2005-06-09 2008-08-20 インターナショナル・ビジネス・マシーンズ・コーポレーション アクセス管理装置、アクセス管理方法、およびプログラム
US7853661B2 (en) 2006-01-03 2010-12-14 Microsoft Corporation Remote access and social networking using presence-based applications
WO2007136446A2 (en) * 2006-03-09 2007-11-29 68Technologies Pte Device social-control system
WO2008089154A2 (en) 2007-01-12 2008-07-24 Geni, Inc. A system and method for providing a networked viral family tree
WO2008112293A1 (en) 2007-03-13 2008-09-18 Facebook, Inc. Systems and methods for network authentication
US8214883B2 (en) * 2007-10-22 2012-07-03 Microsoft Corporation Using social networks while respecting access control lists
US8024317B2 (en) 2008-11-18 2011-09-20 Yahoo! Inc. System and method for deriving income from URL based context queries
US8799315B2 (en) 2009-01-30 2014-08-05 International Business Machines Corporation Selective construction of data search result per search request specifying path information
US20100299717A1 (en) * 2009-05-22 2010-11-25 National University Of Ireland, Galway System for Annotation-Based Access Control
US20100318571A1 (en) * 2009-06-16 2010-12-16 Leah Pearlman Selective Content Accessibility in a Social Network
CN102823190B (zh) * 2010-03-26 2016-08-10 诺基亚技术有限公司 用于提供访问资源的信任等级的方法和装置
US20110247007A1 (en) * 2010-04-01 2011-10-06 International Business Machines Corporation Operators with request-response interfaces for data stream processing applications
US8180804B1 (en) 2010-04-19 2012-05-15 Facebook, Inc. Dynamically generating recommendations based on social graph information
US20120066118A1 (en) 2010-09-13 2012-03-15 Dantas Kelly C F Interface Integration Application Connection between Websites and Social Network in Addition with the Social Network Tree Chart System
US9177168B2 (en) 2012-03-19 2015-11-03 Alcatel Lucent Method of modifying access control for web services using query languages

Also Published As

Publication number Publication date
EP2828763A4 (en) 2015-11-25
JP2015518201A (ja) 2015-06-25
CN104205086B (zh) 2017-03-01
JP2017123186A (ja) 2017-07-13
CN104205086A (zh) 2014-12-10
EP2828763B1 (en) 2022-04-20
US9177168B2 (en) 2015-11-03
JP2016170804A (ja) 2016-09-23
US20130246454A1 (en) 2013-09-19
WO2013142399A1 (en) 2013-09-26
KR101624519B1 (ko) 2016-05-26
KR20140136947A (ko) 2014-12-01
EP2828763A1 (en) 2015-01-28
IN2014DN07309A (ja) 2015-04-24

Similar Documents

Publication Publication Date Title
JP6444855B2 (ja) クエリ言語を使用してウェブ・サービスに対するアクセス制御を修正する方法
JP6840295B1 (ja) グループベース通信システムにおけるグループベースオブジェクトに選択的に許可を付与する方法、装置、及びコンピュータプログラム製品
JP6181740B2 (ja) クエリ言語を使用してウェブ・サービスのアプリケーション・プログラミング・インターフェースを拡張する方法
US9769122B2 (en) Anonymous single sign-on to third-party systems
TWI406137B (zh) 社交互動之方法及裝置
JP2015518201A5 (ja)
US20130014284A1 (en) Leveraging A Social Graph From A Social Network For Social Context In Other Systems
US20090030985A1 (en) Family-based online social networking
CN104255007A (zh) Oauth框架
JP2008146246A (ja) Snsサーバ、sns制御プログラム
US10021139B2 (en) Method, system and computer program product for enforcing access controls to features and subfeatures on uncontrolled web application
KR101783339B1 (ko) 사용자 프로필을 확립할 수 없는 소셜 네트워킹 시스템 사용자를 위한 제한 사용자 프로필 유지
JP5865402B2 (ja) Snsサーバ、sns制御プログラム
EP3026617A1 (en) Method and apparatus for controlling access to user profiles
JP4893694B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20210258276A1 (en) Systems and methods for digital communications routing and management
AU2011243009B2 (en) Personalizing a web page outside of a social networking system with content from the social networking system
JP2012164326A (ja) Snsサーバ、sns制御プログラム
EP3026618A1 (en) Method and apparatus for controlling access to user profiles

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161027

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180307

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20180607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181128

R150 Certificate of patent or registration of utility model

Ref document number: 6444855

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