KR101624519B1 - 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법 - Google Patents

문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법 Download PDF

Info

Publication number
KR101624519B1
KR101624519B1 KR1020147026053A KR20147026053A KR101624519B1 KR 101624519 B1 KR101624519 B1 KR 101624519B1 KR 1020147026053 A KR1020147026053 A KR 1020147026053A KR 20147026053 A KR20147026053 A KR 20147026053A KR 101624519 B1 KR101624519 B1 KR 101624519B1
Authority
KR
South Korea
Prior art keywords
query
node
user
social graph
service
Prior art date
Application number
KR1020147026053A
Other languages
English (en)
Other versions
KR20140136947A (ko
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 KR20140136947A publication Critical patent/KR20140136947A/ko
Application granted granted Critical
Publication of KR101624519B1 publication Critical patent/KR101624519B1/ko

Links

Images

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

Abstract

청구된 요지의 실시예들은 소셜 그래프에서 자원들에 대한 액세스를 제어하는 방법을 제공한다. 방법의 일 실시예는 작동된 서비스에 응답하여 문의를 구성하기 위한 정보를 수신하는 단계를 포함한다. 서비스는 제 1 사용자와 연관된 소셜 그래프의 일 부분에서 노드와 연관된 자원들에 대한 액세스를 요청하기 위해 문의를 사용하도록 구성된다. 방법은 또한 문의를 노드와 연관시키는 단계를 포함한다. 문의는 노드와 연관된 자원들상에 작동하고 자원들에 액세스하기 위한 요청이 소셜 그래프의 현재 상태에 의존하여 승인되는지 또는 거부되는지를 나타내는 정보를 리턴한다.

Description

문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법{METHOD OF MODIFYING ACCESS CONTROL FOR WEB SERVICES USING QUERY LANGUAGES}
본 출원은 발명의 명칭이 "문의 언어들을 사용하여 웹 서비스 애플리케이션 프로그래밍 인터페이스들을 확장하는 방법"인 로렌스 이. 멘텐(Lawrence E. Menten)에 의해 2012년 3월 19일에 출원된, 미국 특허 출원 13/423,697의 부분계속출원이다.
본 출원은 일반적으로 프로세서-기반 시스템들에 관한 것이고, 특히 프로세서-기반 시스템들에 대한 액세스 제어에 관한 것이다.
본 섹션은 청구된 요지의 더 양호한 이해를 용이하게 하는 것에 도움이 될 수 있는 양태들을 도입한다. 따라서, 이러한 섹션의 진술들은 이러한 견지에서 판독될 것이고 종래의 것 또는 종래의 것이 아닌 것에 관한 승인된 사실들로서 이해되지 않는 것이다.
몇몇 알려진 통신 방식들에서, 사용자들은 소셜 네트워크들을 사용하여 서로 통신한다. 소셜 네트워킹 서비스들은 공통 배경, 관심사, 또는 활동을 공유할 수 있는 사람들간의 사회적 관계들의 표현에 기초하여 가입자들에게 서비스들을 제공하는 온라인 서비스, 플랫폼, 또는 사이트로서 정의될 수 있다. 소셜 네트워크는 일반적으로 각각의 사용자(종종 프로파일)의 표현, 사용자의 사회적 연결들, 및 사진들, 상태 보고들, 웹 링크들, 등과 같은 다양한 추가적인 요소들로 구성된다. 대부분의 소셜 네트워크 서비스들은 웹 기반이고 이메일 및 인스턴트 메시징과 같은 인터넷을 통해 사용자들이 상호 작용하도록 허용하는 툴들/서비스들을 제공한다. 소셜 네트워킹 사이트들은 사용자들이 그들의 개인적인 네트워크들 내에서 아이디어들, 활동들, 이벤트들, 및 관심사들을 공유하는 것을 허용한다. 예시적인 소셜 네트워크들은 페이스북, 구글+, 트위터, 링크드인, 브콘탁테, 오르컷, 및 렌렌을 포함한다.
소셜 네트워크들은 소셜 그래프를 사용하여 개인들 및 그들의 관계들을 나타낸다. 일반적으로, 소셜 그래프는 가입자의 온라인 인물(사용자의 아바타라고도 불릴 수 있음)와 다른 가입자들의 온라인 인물 사이의 관계들을 기술한다. 그러므로, 소셜 그래프는, 일반적으로 소셜 네트워크라고 불리는 가입자들 사이의 실세계 관계들을 반영한다. 예를 들면, 소셜 네트워크의 소셜 그래프는 노드들 사이의 관계들로 규정된 에지들(링크들 또는 접속들이라고도 불릴 수 있음)을 사용하여 서로 연관되는 일련의 노드들(예를 들면, "가입자", "친구 리스트들", "가까운 친구들" 등)로서 구성될 수 있다. 리프 노드들은 부모 노드와 연관되지만, 그들은 차일드 노드들을 갖지 않는다. 예를 들면, "가까운 친구들" 노드와 연관된 리프 노드들은 가입자의 친구들 중 하나에 대한 정보를 포함하는 데이터 구조를 각각 포함할 수 있다. 소셜 그래프는 특별한 관심사와 연관된 그룹들과 같은 상이한 형태들의 관계들에 대한 노드들, 또한 사진들, 음악, 및 웹 링크들과 같은 상이한 형태들의 정보에 대한 노드들을 또한 포함할 수 있다. 소셜 그래프를 구성하는 노드들, 에지들, 정보, 및 관계들은 소셜 그래프의 자원들이라고 불릴 수 있다.
소셜 그래프의 자원들은 관계를 나타내는 에지에 의해 소셜 그래프에서 명확하게 접속되지 않는 사용자들 또는 가입자들과 연관될 수 있다. 예를 들면, 가입자는 친목 소풍에서 모든 졸업생들의 그룹 사진을 게시할 수 있다. 그룹 사진은 가입자의 친구 리스트들 또는 가까운 친구들 그룹들에 리스트되는 사람들 및 소셜 그래프에서 가입자에 대해 링크되지 않는 다른 사람들의 이미지들을 포함할 수 있다. 가입자 또는 가입자의 친구들은 그룹 사진에서 가입자에 링크되지 않은 사람들을 식별하거나 "태그"할 수 있다. 다른 예에 대하여, 가입자는 "사업_점심_그룹"과 같은 그룹들을 규정할 수 있고, 이러한 그룹은 그룹을 규정하지만 소셜 그래프에서 서로 링크되지 않은 가입자에 모두 링크되는 다른 가입자들을 포함한다. 함께 링크되는 가입자들은 사업 점심을 스케줄링하기 위한 계획 메시지들과 같은 소셜 네트워크를 통한 정보를 교환할 수 없다.
소셜 네트워크들의 제공자들은 서비스들 또는 애플리케이션들(앱들)을 실행하기 위해 그들의 소셜 그래프의 정보를 사용한다. 개발자들은 소셜 네트워크 제공자에 의해 개발되고 지원된 애플리케이션 프로그래밍 인터페이스(API)를 사용하여 서비스들 또는 앱들을 생성할 수 있다. 소셜 네트워크를 위한 API는 일반적으로 클라이언트들 및 서버들로 구성되는 표현 상태 전송(REST) 아키텍처를 실행한다. 클라이언트들은 서버들에 대한 요청들을 개시하고, 서버들은 요청들을 처리하고 적절한 응답들을 클라이언트들에 리턴한다. 요청들 및 응답들은 자원들의 표현들의 전송을 중심으로 구축된다. 자원은 처리될 수 있는 가상적으로 임의의 일관성 있고 의미 있는 개념일 수 있다. 자원의 표현은 일반적으로 자원의 현재 또는 의도된 상태를 캡처하는 문서이다. 일반적으로, REST-ful 아키텍처는 클라이언트-서버 기반, 무상태, 캐시가능하여야 하고, 층상이어야 하며 균일한 인터페이스를 사용해야 하고, 요구시 코드를 제공할 수 있다. 예를 들면, 페이스북과 같은 소셜 네트워크에 대한 API는, 예를 들면, 확장성 생성 언어(XML) 또는 자바스크립트 객체 개념(JSON) 포맷에서, 응답 메시지들의 구조의 정의에 따라 하이퍼텍스트 전송 프로토콜(HTTP) 요청 메지시들의 규정된 세트를 포함한다.
본 발명의 목적은 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법 및 장치를 제공하는 것이다.
다음은 개시된 요지의 몇몇 양태들의 기본 이해를 제공하기 위해 개시된 요지의 간략화된 요약을 나타낸다. 이러한 요약은 개시된 요지의 철저한 개요는 아니다. 개시된 요지의 핵심 또는 중요한 요소들을 식별하거나 또는 개시된 요지의 범위를 서술하도록 의도되지 않는다. 그의 유일한 목적은 이후 논의되는 더 상세한 설명에 대한 서문으로서 몇몇 개념들을 간략화된 형태로 나타내는 것이다.
일 실시예에서, 방법은 소셜 그래프에서 자원들에 대한 액세스를 제어하기 위해 제공된다. 방법의 일 실시예는 호출되고 있는 서비스에 응답하여 문의를 구성하기 위해 정보를 수신하는 단계를 포함한다. 서비스는 제 1 사용자와 연관된 소셜 그래프의 일 부분에서 노드와 연관된 자원들에 대한 액세스를 요청하기 위한 문의를 사용하도록 구성된다. 방법은 또한 문의를 노드와 연관시키는 단계를 포함한다. 문의는 노드와 연관된 자원들을 운용하고 자원들을 액세스하기 위한 요청이 소셜 그래프의 현재 상태에 따라 승인되거나 거부되는 것을 나타내는 정보를 리턴한다.
다른 실시예에서, 방법은 소셜 그래프에서 자원들에 대한 액세스를 제어하기 위해 제공된다. 방법의 일 실시예는 제 1 사용자에 의해 소유된 소셜 그래프의 일 부분에서 노드와 연관된 자원들에 대해 문의들을 수행하도록 구성된 서비스를 호출하는 단계를 포함한다. 방법의 이러한 실시예는 또한 서비스를 호출하는 것에 응답하여 문의를 노드와 연관시키는 단계를 포함한다. 문의는 소셜 그래프의 현재 상태에 따라 노드와 연관된 자원들에 액세스하기 위한 요청들을 승인할지 또는 거부할지를 결정한다.
본 발명은 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법 및 장치를 제공한다.
도 1은 통신 시스템의 일 예시적인 실시예를 개념적으로 도시하는 도면.
도 2는 소셜 그래프의 일 부분의 제 1 예시적인 실시예를 개념적으로 도시하는 도면.
도 3은 소셜 그래프에 대한 액세스 제어를 변경하기 위한 방법의 제 1 예시적인 실시예를 개념적으로 도시하는 도면.
도 4는 소셜 그래프에 대한 변경된 애플리케이션 프로그래밍 인터페이스를 문의하는 방법의 일 예시적인 실시예를 개념적으로 도시하는 도면.
도 5는 소셜 그래프에 대한 애플리케이션 프로그래밍 인터페이스에 대한 변경을 제거하거나 반전시키는 방법의 일 예시적인 실시예를 개념적으로 도시하는 도면.
도 6은 소셜 그래프의 일 부분의 제 2 예시적인 실시예를 개념적으로 도시하는 도면.
도 7은 소셜 그래프에 대한 액세스 제어를 변경하기 위한 방법의 제 2 예시적인 실시예를 개념적으로 도시하는 도면.
도 8은 소셜 그래프의 부분들을 저장하거나, 소셜 그래프에 대한 애플리케이션 프로그래밍 인터페이스들을 실행하거나, 또는 소셜 네트워크 서비스들을 실행하기 위해 사용될 수 있는 서버의 일 예시적인 실시예를 개념적으로 도시하는 도면.
개시된 요지는 첨부하는 도면들에 관하여 취해진 다음의 설명을 참조함으로써 이해될 수 있고, 유사한 참조 번호들은 유사한 요소들을 식별한다.
예시적인 실시예들이 이하에 기술된다. 명확성을 위하여, 실제 구현의 모든 특징들이 본 명세서에 기술되지는 않는다. 임의의 이러한 실제 실시예의 전개에서, 다수의 구현-특정 결정들이 실행마다 서로 상이할 수 있는 시스템 관련 및 사업 관련 제한들의 준수와 같은 개발자들의 특정 목표들을 달성하기 위해 행해질 수 있다는 것이 물론 이해될 것이다. 더욱이, 이러한 개발 노력은 복잡하고 시간 소비적이지만, 그럼에도 불구하고 이러한 개시의 이점을 갖는 본 기술의 통상의 숙련자들에 대해 착수하는 일상의 과정이라는 것이 이해될 것이다. 상세한 설명 및 도면들은 청구된 요지의 원리들을 단순히 예시한다. 따라서, 본 기술의 숙련자들이 여기에 명시적으로 기술되거나 도시되지 않았지만, 여기에 기술된 원리들을 구현하고 청구된 요지의 범위 내에 포함될 수 있는 다수의 장치들을 안출할 수 있을 것이라는 것이 이해될 것이다. 또한, 여기에 인용된 모든 예들은 독자가 청구된 요지의 원리들 및 본 기술을 진보시키기 위해 발명자(들)에 의해 기여된 개념들을 이해하는 것을 돕기 위한 교육학적인 목적들을 위해 주로 의도될 것이고, 이러한 특별히 인용된 예들 및 상태들에 대한 제한이 없는 것으로 해석될 것이다.
개시된 요지는 여기에 첨부된 도면을 참조하여 기술될 것이다. 다수의 구조들, 시스템들, 및 디바이스들은 단지 설명의 목적들을 위해 및 본 기술의 숙련자들에게 잘 알려진 상세들로 설명을 불분명하게 하지 않도록 도면들에 개략적으로 도시된다. 그럼에도 불구하고, 첨부된 도면들은 개시된 요지의 예시적인 예들을 기술하고 설명하도록 포함된다. 여기에 사용된 단어들 및 어구들은 관련 기술의 숙련된 자들에 의한 이들 단어들 및 어구들의 이해와 일치하는 의미를 갖는 것으로 이해되고 해석되어야 한다. 용어 또는 어구의 특별한 정의, 즉, 본 기술의 숙련자들에 의해 이해되는 통상의 및 관례적인 의미와 상이한 정의가 없는 것은 여기서 용어 또는 어구의 일관된 사용에 의해 암시되는 것으로 의도된다. 용어 또는 어구가 특별한 의미, 즉, 숙련자들에 의해 이해되는 것과 다른 의미를 갖는 것으로 의도되는 경우, 이러한 특별한 정의는 용어 또는 어구에 대한 특별한 정의를 직접적으로 및 명백히 제공하는 명확한 방식으로 본 명세서에 명시적으로 설명될 것이다. 추가적으로, 여기에 사용되는 용어 "또는"은 달리 지시되지 않으면 배타적이지 않은 "또는"을 말한다(예를 들면, "또는 그밖에" 또는 "또는 대안적으로"). 또한, 몇몇 실시예들은 새로운 실시예를 형성하기 위해 하나 이상의 다른 실시예들과 조합될 수 있기 때문에 여기에 기술된 다수의 실시예들은 반드시 상호 배타적이지 않다.
소셜 네트워크 서비스들에 대한 가입자들(또는 그의 다른 사용자들)은 가입자의 개인 정보를 안전하고 사적으로 유지하기 위해 소셜 네트워크 서비스 제공자에게 의존한다. 그러나, 가입자들은 또한 소셜 네트워크 서비스를 사용하여 선택된 가입자들, 예를 들면, "친구리스트들"에 나타낸 가입자들에게 개인 정보를 방송, 송신, 또는 디스플레이한다. 소셜 네트워크 서비스 제공자는 사용자들이 소셜 그래프의 특정 부분들과 연관된 자원들에 액세스할 수 있는지를 결정하는 액세스 제어 정책들을 규정함으로써 정보를 공개로 하는 것 및 이를 사적으로 유지하는 것에 대한 경쟁 욕구들의 균형을 유지하기를 시도한다. 예를 들면, 조(Joe) 가입자의 "친구들 리스트들"에 명시되었던 사용자들은 일반적으로 조 가입자에 의해 게시된 상태 갱신들, 사진들, 또는 임의의 다른 정보를 볼 수 있다. 네트워크에서 조의 친구들은 또한, 예를 들면, 그의 "월"상에 기입하거나 또는 그가 게시한 정보에 대해 코멘트함으로써, 조 가입자에게 정보를 전송하거나 게시할 수 있을 것이다. 다른 사용자들은 일반적으로 조 가입자에 의해 게시된 정보를 보거나 또는 그가 게시한 정보에 대해 코멘트할 수 없다. 가입자들은, 정보의 몇몇 카테고리들을 공개로 만들거나 또는 다른 정보 카테고리들에 대한 액세스를 친구들 또는 친구들의 친구로 제한함으로써, 그들의 정보에 대한 액세스를 제어하기 위한 제한된 능력을 갖는다.
소셜 그래프의 정보에 액세스할 수 있는 사람을 결정하는 액세스 제어 정책들은 일반적으로 고정적이다. 예를 들면, 현재 RESTful 웹 서비스(APIs)는 소셜 그래프의 자원들 및 이들 자원들에 대한 액세스를 제어하는 액세스 제어 방식 모두를 고정적으로 규정한다. 액세스 제어 방식은 최종 사용자/가입자에 의해 또는 애플리케이션 개발자 또는 다른 제 3 자에 의해 확장가능하지 않다. 따라서, 가입자가 미리 규정된 보안 설정들을 사용하여 그들의 개인 정보에 대한 액세스를 제한할 수 있더라도, 가입자 및 제 3 자 모두는 미리 규정된 보안 설정들을 변경할 수 없다. 결과적으로, 많은 잠재적으로 값비싼 애플리케이션들은 애플리케이션의 동작을 위해 요구된 액세스를 승인하는 것이 최종 사용자보다 자원들에 대한 더 넓은 액세스를 승인하는 것을 요구하거나 또는 서비스 제공자가, 예를 들면, 모든 시간에 모든 사용자들에 대해 전체적으로 기꺼이 허용하기 때문에 생성될 수 없다.
본 출원에 설명된 기술들의 실시예들은 개발자들 또는 제 3 자들이 소셜 그래프의 현재 상태에 기초하여 연관된 자원에 대한 액세스를 승인하는 문의들을 자원들(기존 또는 새로운)에 접속하는 것을 허용할 수 있다. 예를 들면, 문의는 요청하는 사용자와 자원을 소유하는 사용자의 관계, 요청하는 사용자와 자원의 관계, 또는 둘의 기준들의 조합에 기초하여 자원에 대한 액세스를 승인할 수 있다. 자원들에 대한 액세스는 또한 자원 소유자와 자원 요청자 사이의 과거 상호 작용들에 기초하여 승인되거나 또는 거부될 수 있고, 예를 들면, 액세스는 사진들에 종종 나타나거나 자원 소유자에 의해 소유된 자원들에 대해 종종 코멘트한 요청자들에게 승인될 수 있다. 액세스 승인 문의들은 자원들에 대해 액세스가 승인될지 아닐지의 여부를 나타내는 불린값(Boolean value)을 리턴한다. 액세스 제어 문의가 소셜 그래프에 추가될 수 있기 전에, 사용자들 또는 소셜 네트워크 서비스 제공자는 문의를 자원들에 접속하는 것을 허가할 수 있다. 개발자들 또는 다른 제 3 자들은 사용자의 자원들에 대한 조건부의 액세스를 제공할 수 있는 문의들을 생성할 수 있고 그 후 이들 문의들을 이용하여 사용자의 자원들의 확장된 접속가능성을 이용하는 애플리케이션들 또는 서비스들을 생성할 수 있다. 예를 들면, 개발자는 사진에 태그되는 사용자들 또는 가입자들이, 그들이 제 1 사용자에 의해 소유된 자원들에 대해 판독하거나 기입하도록 통상 허가되지 않는 경우일지라도, 사진에 대해 코멘트할 수 있도록 제 1 사용자에 의해 게시된 사진과 같은 자원에 액세스를 승인하는 애플리케이션을 생성할 수 있다. 액세스 제어 문의들은 동적이거나 임시적일 수 있다. 예를 들면, 허가된 액세스 제어 문의는 사용자가 액세스 제어 문의를 사용하는 서비스를 개시하는 것에 응답하여 사용자의 자원에 접속될 수 있고, 이후 액세스 제어 문의는 서비스가 종료될 때 제거될 수 있다.
도 1은 통신 시스템(100)의 일 예시적인 실시예를 개략적으로 도시한다. 예시적인 실시예에서, 통신 시스템(100)은 복수의 가입자들 또는 사용자들(105)을 포함한다. 여기에 사용된 바와 같이, 용어 "가입자"는 소셜 그래프를 지원하는 소셜 네트워크 서비스에 가입된 사용자들을 말하는 것으로 이해될 것이다. 용어 "사용자"는 소셜 그래프에 참조되거나 소셜 그래프와 연관될 수 있지만, 반드시 소셜 네트워크 서비스에 대한 가입자들은 아닌 사람들 또는 엔티티들을 말할 것이다. 따라서, 가입자는 소셜 네트워크 서비스와 연관된 사용자들의 서브세트일 수 있다. 예를 들면, 가입자는 소셜 네트워크 서비스의 등록된 사용자라고 할 수 있다. 사용자들(105)은 스마트 폰들과 같은 이동 통신 디바이스들로서 도시된다. 그러나, 본 명세서의 이점을 갖는 본 기술의 통상의 숙련자들은 용어 "사용자"가 통신 시스템(100)에 액세스하기 위해 사용된 전자 장치 또는 디바이스를 소유하거나 동작시키는 사람을 말할 수 있다는 것이 이해될 것이다. 또한, 본 기술의 통상의 숙련자들은 전자 장치들이 이동 통신 디바이스들에 대해 한정되지 않는다는 것을 이해할 것이고, 몇몇 실시예들에서, 태블릿 컴퓨터들, 랩탑 컴퓨터들, 데스크탑 컴퓨터들 등과 같은 디바이스들이 또한 통신 시스템(100)에 액세스하기 위해 사용될 수 있다는 것이 이해될 것이다. 다수의 실시예들에서, 사용자들(105)은 유선 접속들, 무선 접속들, 또는 그의 임의의 조합을 사용하여 통신 시스템(100)에 액세스할 수 있다.
사용자들(105)은 하나 이상의 소셜 네트워크 서비스들(110, 115)에 가입할 수 있다. 예시적인 소셜 네트워크 서비스들은 페이스북에 의해 제공된 소셜 네트워크 서비스(110) 및 구글+에 의해 제공된 소셜 네트워크 서비스(115)를 포함한다. 그러나, 본 명세서의 이점을 갖는 본 기술의 통상의 숙련자들은 통신 시스템(100)의 대안적인 실시예들이 트위터, 링크드인, 브콘탁테, 오르컷, 렌렌, 등과 같은 다른 소셜 네트워크 서비스들을 포함할 수 있다는 것을 이해할 것이다. 예시적인 실시예에서, 사용자들(105(1-4))은 소셜 네트워크 서비스(110)에 가입되었고 사용자들(105(4-5))은 소셜 네트워크 서비스(115)에 가입되었다. 그러므로, 사용자(105)는 소셜 네트워크 서비스들(110, 115)의 소셜 그래프들에서 다른 가입자들에 대하여 생성된 프로파일들 및 확립된 관계들을 가질 수 있다. 사용자들(105), 사용자들(105)에 관련된 정보, 및 사용자들(105) 사이의 관계들은 소셜 그래프의 구조로 표현될 수 있다. 예를 들면, 소셜 네트워크(110)의 소셜 그래프는 노드들 사이의 관계들로 규정된 에지들을 사용하여 서로 연관되는 노드들(예를 들면, "가입자", "친구들 리스트들", "가까운 친구들" 등)을 포함할 수 있다.
애플리케이션 개발자들(120)은 유용한 정보를 생성하여 사용자들(105) 또는 사용자들(105)로 타겟된 광고들을 제공하도록 시도하는 광고업자들과 같은 다른 제 3 자들에게 제공하기 위해 소셜 네트워크들(110, 115)의 소셜 그래프들의 정보를 사용하는 애플리케이션들(앱들) 또는 서비스들을 개발할 수 있다. 애플리케이션 개발자들(120)은 소셜 네트워크 서비스들(110, 115) 각각에 대한 애플리케이션 프로그래밍 인터페이스들(APIs; 125, 130)을 사용하는 애플리케이션들 또는 서비스들을 생성하거나 규정한다. APIs(125, 130)은 처음에 소셜 네트워크 서비스들(110, 115)의 소유자들 또는 제공자들에 의해 규정되고, 동일한 APIs(125, 130)은 모든 사용자들(105)에 대해 지원된다. 일 실시예에서, APIs(125, 130)은 표현적인 상태 전송(REST) 아키텍처들에 의해 부과된 제한들을 따른다. 소셜 네트워킹 사이트들(110, 115)에 대한 REST-ful 웹 서비스 APIs(125, 130)은 자원 계층(서비스 API로 규정됨)을 제공하고 각각의 사용자(105)와 연관된 소셜 네트워크 정보의 다수의 요소들에 대한 판독 또는 기입 액세스를 지원한다. 예를 들면, 자원 계층은 정보의 서브세트들 또는 카테고리들을 규정하는 비-리프(non-leaf) 노드들을 포함하는 트리를 규정할 수 있다. 트리는 웹 서비스 APIs(125, 130)를 통해 판독되거나 기입될 수 있는 데이터의 예들을 나타내는 노드들 또는 리프들을 또한 규정할 수 있다. 이러한 배열은 전형적으로 많은 웹 서비스들로 이루어진다. 종래의 웹 서비스들에서, 자원 명명 방식은 서비스 제공자에 의해 규정되고 확장가능하지 않다.
여기에 논의된 바와 같이, 소셜 네트워킹 사이트들(110, 115)에 대한 REST-ful 웹 서비스 APIs(125, 130)는 자원들에 대한 액세스를 제어하거나 게이트로 제어하는 자원들 및 액세스 제어 방식을 고정적으로 규정한다. 여기에 기술된 기술들의 실시예들은, 예를 들면, 사용자마다 또는 서비스마다, 또는 애플리케이션마다 액세스 제어 권한들을 확장함으로써, 더 융통성 있는 액세스 제어를 지원하기 위한 APIs(125, 130)의 확대 또는 확장을 허용한다. 확장된 액세스 제어 권한들은 소셜 그래프의 현재 상태에 의존하여 액세스를 승인하기 위해 사용될 수 있다. 예를 들면, 선택된 자원들에 대한 액세스는 선택된 자원에 대한 그들의 관계 또는 자원의 소유자에 대한 그들의 관계에 의존하여 사용자들 또는 가입자들에 대해 조건부로 승인될 수 있다. 일 실시예에서, 새로운 서비스들 또는 애플리케이션들에 의해 요청될 수 있는 RESTful 웹 서비스에 대해 액세스 제어의 입도를 예측하기를 시도하는 대신, 애플리케이션 개발자들은 적절하게 규정된 문의 표현들을 사용하여 액세스 제어를 맞춤화할 수 있을 수 있다.
액세스 제어 문의들의 다수의 실시예들은 로직 표현들을 사용하여 규정될 수 있고 상이한 값들을 리턴할 수 있다. 일 실시예에서, 개발자들은 사용자가 웹 서비스 자원들에 액세스할 수 있는지의 여부를 결정하기 위해 웹 서비스 자원들에 대해 적용될 수 있는 불린 값(참/거짓) 문의 표현을 선택하거나 지정할 수 있다. 개발자들은 사용자의 액세스 제어 상태를 나타내기 위해 사용될 수 있는 다른 파라미터들을 리턴하는 문의 표현들을 대안적으로 선택하거나 지정할 수 있다. 예를 들면, 사용자가 웹 서비스 자원에 대한 액세스를 제공받았는지의 여부를 결정하기 위해 사용자가 관련 자원들에 이미 액세스된 횟수를 나타내는 카운터 값을 리턴하는 문의 표현이 사용된다. 더 복잡한 문의들이 또한 규정될 수 있다. 예를 들면, 문의 표현 승인 액세스 제어는 불린(참 또는 거짓) 결과를 제공하기 위해 문의의 결과들을 논리 연산자(예를 들면, "AND", "OR" 또는 "NOT") 또는 수학적 비교 연산자들(<, <=, >, >+, ==, !=)과 조합하는 논리적 표현을 리턴하는 문의일 수 있다. 다른 예에 대하여, 동적 언어의 함수가 제공될 수 있고, 예를 들면, 자바 스크립트로 표현될 수 있고, 이는 참/거짓 결과를 제공하기 위해 하나 이상의 문의 "결과 세트들"의 행들 및 열들에 동작한다. 그래서, 예를 들면, 두 개의 문의들을 포함하는 액세스 제어 문의 표현은 다음 형태일 수 있다:
"(0 < (...친구_테이블로부터 선택 카운트)) 및 (6 < (... 사진_테이블로부터 선택 카운트))
대안적으로, 자바스크립트 함수에 의해, 문의 표현은 다음의 형태일 수 있다:
"function hasRequestedAccess (Request URI) {
var rs = db.execute('...의 friends_table로부터 친구를 선택');
while (rs.isValidRow ( ) ) {
...
}
return isAccessGranted;
}"
본 명세서의 이익을 갖는 본 기술의 숙련자들은 전술된 예시적인 문의들이 예시적인 것으로 의도된다는 것을 인식할 것이다. 액세스 제어 문의들의 대안적인 실시예들은 이들 포맷들, 다른 문의 포맷들, 또는 그의 조합들을 사용할 수 있다.
문의 표현은 RESTful 동작(입수, 넣기/게시, 삭제)과 연관될 수 있고 웹 서비스 요청에 대해 액세스가 승인될지 안될지의 여부를 결정할 수 있다. 문의 표현은 SQL, SPARQL, 또는 XPath를 포함하는 임의의 문의 언어로 구현될 수 있다. 문의 표현은 타겟 자원들과 직접 연관될 수 있거나, 다수의 자원들에 대해 적용될 수 있고, 단일 동작에서 그들의 일부 또는 모두에 대해 취소되거나 변경될 수 있는 추가적인 자원으로서 웹 서비스에 대해 대안적으로 추가될 수 있다. 문의 표현에 의해 승인된 허용의 특성을 제시하거나 기술하는 명칭 또는 기술은 문의 표현과 연관될 수 있다. 문의 표현이 웹 서비스에 대한 확장으로서 추가되는 경우, 명칭은 RESTful 넣기/게시, 입수, 및 삭제 동작을 통해 문의 표현을 확립하고, 판독하고, 삭제하기 위해 사용된 URI에서 자원 명칭의 요소로서 사용될 수 있다.
예시적인 실시예에서, 사용자들(105)은 하나 이상의 소셜 네트워크 서비스들(110, 115)에 대한 자원들을 게시할 수 있고 게시된 자원들에 대한 조건부 액세스를 제공할 수 있는 서비스들을 실행할 수 있다. 예를 들면, 사용자(105(4))는 페이스북에 그룹 사진을 게시할 수 있고, 이후 사용자들이 사진상의 사용자(105(4))에 대해 가질 수 있는 임의의 다른 관계에 관계없이, 사진에 태그되는 사용자들에 대한 액세스를 조건부로 승인하기 위해 그룹 사진과 연관된 노드에 문의를 접속하는 서비스를 호출할 수 있다. 사용자(105(1))가 사용자(105(4))의 페이스북 친구인 경우, 사용자(105(1))는 사진상에 코멘트할 수 있다. 사용자(105(2))가 사진에 태그되는 경우, 사용자(105(2))가 사진에 대해 코멘트할 수 있도록, 사용자(105(2))가 사용자(105(4))의 페이스북 친구가 아닐 수 있지만, 서비스는 문의를 사용하여 사용자(105(2))에 대한 조건부 액세스를 승인할 수 있다. 사용자(105(3))는 사용자(105(4))의 페이스북 친구가 아닐 수 있고 사진에서 태그되지 않을 수 있다. 따라서, 문의는 사용자(105(3))에 대한 액세스를 승인하지 않는다.
통신 시스템(100)의 실시예들은 새로운 리프 노드가 접속되는 노드로 표현되는 데이터의 새로운 "뷰들"을 나타내는 리프 노드들을 추가함으로써 적절한 허용들을 갖는 개발자들(120)이 자원 트리를 확장하는 것을 허용할 수 있다. 이들 노드들은 개발자들(120)로 명명될 수 있고 새로운 리프 노드가 삽입되는 트리의 가지로 식별된 데이터 서브세트(또는 서브-트리)상에 동작하는 하나 이상의 액세스 제어 문의들과 연관될 수 있다. 노드들 또는 문의들은 오프-라인 웹 인터페이스를 통해 추가되거나 HTTP 게시 요청을 통해 삽입될 수 있다. 문의들/뷰들은 개발자(120)에 의해 명명되거나 규정될 수 있거나 또는 문의들/뷰들은 소셜 네트워크 서비스들(110, 115)의 제공자로부터 이용가능한 미리 규정된 "문의들/뷰들"의 메뉴로부터 선택될 수 있다. 다수의 대안적인 실시예들에서, 문의 파라미터들은 개발자에 의해 규정되거나, 환경/노드에 의해 결정되거나, 또는 서비스 또는 애플리케이션에 의해 동적으로 결정될 수 있다.
도 2는 소셜 그래프(200)의 일 부분의 제 1 예시적인 실시예를 개념적으로 도시한다. 도시된 실시예에서, 부분(200)은 전체 소셜 그래프의 서브-트리이고 서브-트리(200)는 특정 가입자 "조 가입자"와 연관된 노드들을 포함한다. 부분(200)은 엔트리 노드 또는 부모 노드(205)를 통해 액세스될 수 있다. 부분(200)은 하나 이상의 서버들에 저장될 수 있고 클라이언트들은 적절한 통합 자원 식별자(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와 같은 대응하는 어드레스들을 사용하여 액세스될 수 있다.
예시적인 실시예에서, 개발자들 또는 다른 제 3 자들은 가입자에 대응하는 소셜 그래프의 부분(200)의 노드들(210)에 하나 이상의 액세스 제어 문의들(215)을 접속할 수 있다. 액세스 제어 문의들(215)은 사진들 또는 다른 자원들과 같은 노드(210(1))와 연관된 자원들(220)상에 동작할 수 있다. 일 실시예에서, 개발자는 문의(215)를 규정하기 위해 메시지 또는 명령을 사용할 수 있고 소셜 그룹(200)에 대한 애플리케이션 프로그래밍 인터페이스(API)를 변경하기 위해 하나 이상의 노드들에 문의(215)를 접속할 수 있다. 예를 들면, 노드(210(1))와 연관된 자원들(220)에 대한 액세스 제어를 변경하기 위해 문의(215)를 이용하는 서비스를 호출하는 조 가입자에 응답하여 노드(210(1))(예를 들면, 사진 노드)에 문의(215)가 접속될 수 있다. 문의를 호출하는 어드레스의 일 예는 사진 노드(210(1))에 접속된 문의(215)를 호출하는 http://www.fakesocialnetwork.com/Joe.Subscriber/Photogra phs/Photo1/Tagged_User이다. 문의(215)에 표시된 사용자가 Photo1에 태그되는 경우, 문의(215)는 불린 참을 리턴하고, 그에 의해 예를 들면, 사진상에 코멘트하기 위해, 자원에 대한 사용자 액세스를 승인한다. 그렇지 않은 경우, 문의(215)는 액세스에 대한 요청이 거부된 것을 나타내기 위해 불린 거짓을 리턴한다. 예를 들면, 사진(Photo1)은 친한 프랭크 및 밥 아무개씨에 대한 태그들을 포함할 수 있다. 태그들은 태그 리스트(225)에 또는 임의의 다른 표시자를 사용하여 표시될 수 있다. 친한 프랭크는 태그 리스트(225)에서 "Y"로 표시되는 조 가입자의 친구이고, 밥 아무개씨는 태그 리스트(225)에서 "N"으로 표시되는 조 가입자의 친구가 아니다. 그러나, 밥 아무개씨는 사진(Photo1)에 태그되기 때문에, 문의(215)는 밥 아무개씨는 사진(Photo1)에 대한 조건부 액세스 권한들을 승인할 수 있다.
종래의 문의 언어들의 실시예들은 일반적으로 소셜 그래프(200)내 상이한 위치들 또는 노드들에 적용될 수 있는 단일의 문의가 설계되는 것을 허용하기에 충분한 융통성이 있을 수 있다. 노드들은 개발자에 의해 각각의 문의(215)에 대해 선택될 수 있거나, 노드들은 자동화된 절차 또는 알고리즘을 사용하여 선택될 수 있다. 예를 들면, 소셜 네트워킹 사이트는 문의(215)를 검사하고, 문의(215)를 적용하기에 적절한 노드들을 선택하고, 문의(215)를 트리에서 선택된 노드들에 대해 반복적으로(또는 동시에) 적용하고, 결과들을 조합할 수 있다. 몇몇 실시예들에서, 개발자 또는 제 3 자는 문의(215)를 소셜 그래프(200)에 접속하기 위한 허용 또는 허가를 획득할 필요가 있을 수 있다. 예를 들면, 개발자 또는 제 3 자는 조 가입자 또는 서비스 제공자 또는 소셜 그래프의 소유자로부터 허용 또는 허가를 획득할 필요가 있을 수 있다. 허가는 단지 제한된 시간량 동안, 예를 들면, 가입자가 문의(215)를 이용하는 애플리케이션 또는 서비스를 호출하거나 개시한 후 및 가입자가 애플리케이션 또는 서비스를 종료할 때까지 유효할 수 있다. 그러므로, 문의(215)는 임시적이거나 동적인 문의일 수 있다.
도 3은 소셜 그래프에 대한 액세스 제어를 변경하는 방법(300)의 제 1 예시적인 실시예를 개념적으로 도시한다. 예시적인 실시예에서, 액세스 제어 문의는 개발자 또는 제 3 자에 의해 생성된다(305에서). 액세스 제어 문의는 개발자 또는 제 3 자에 의해 생성된 서비스 또는 애플리케이션의 일부로서 사용될 수 있다. 액세스 제어 문의는 개발자 또는 제 3 자로 규정되는 한 명 이상의 사용자들, 예를 들면, 문의를 이용하는 서비스를 호출한 가입자들과 연관된 소셜 그래프의 일 부분으로 삽입되도록 의도되는 노드의 서브-트리를 동작시킬 수 있다. 개발자 또는 제 3 자는 이후 문의를 하나 이상의 지정된 노드들로 접속하기 위한 요청을 송신할 수 있다(310에서). 예를 들면, 문의 표현은 소셜 그래프의 자원들에 대한 액세스 제어의 변경을 요청하는 REST-ful 게시 요청으로서 기입될 수 있다.
종래의 액세스 제어 방식에서, REST-ful 서비스의 사용자는 서비스에 대한 액세스 토큰을 나타내고(또는 애플리케이션은 최종 사용자를 대신하여 액세스 토큰을 나타낸다), 액세스 토큰은 사용자/애플리케이션에 대해 승인된 액세스를 식별한다. 서비스의 미리 결정된 자원들은 어떤 액세스 특권이 특정 사용자에게 승인되었는지를 지정할 수 있다. 예를 들면, 구글 캘린더에서, 사용자에게 상기 사용자에 대한 액세스 권한들을 결정하는 역할이 할당될 수 있다. 주어진 자원에 대하여(예를 들면, 구글:"/calendar/v3/calendars/KidEvents"), 역할은 사용자가 자원에 액세스했는지의 여부를 결정하거나(HTTP 입수 요청을 통해), 캘린더를 갱신할 수 있거나(HTTP 넣기 요청을 통해), 또는 캘린더를 삭제할 수 있다(HTTP 삭제 요청을 통해). 역할들은 역할에 대해 미리 규정되는 액세스 권한들의 모음을 승인한다. 미리 결정된 역할들은 서비스 제공자에 의해 고정되고 사용자, 개발자들, 또는 제 3자들에 의해 확장가능하지 않다.
대안적인 실시예에서, 요청된(305에서) 액세스 제어 문의는 자원에 대한 개별적인 액세스 권한들을 승인하기 위해 사용될 수 있고, 역할 기반 액세스 제어를 바이패스한다. 대안적으로, 사용자는 액세스 토큰을 통해 사용자에게 승인된 액세스를 중단시킬 수 있는(또는 확대할 수 있는) 요청된(305에서) 액세스 제어 문의의 결과에 기초하여 특별한 역할과 연관될 수 있다. 액세스 제어 문의는 자원 트리에서 노드에 접속될 것이고, 호출 노드의 배치는 역할의 범위를 결정할 수 있다. 예를 들면, 문의 범위는 문의가 접속되는 서브 트리의 자원들로 한정될 수 있다. 문의 노드에는 의미 있는 명칭이 주어진다. 예를 들면, 어린이의 이벤트들을 열거한 가입자의 캘린더에 대한 액세스를 돌보는 사람들에게 제공할지 아닐지를 결정하는 문의에 대한 문의 노드는 "GrantCaregiversAccess"로 명명될 수 있고 연관된 URI
http://www.fakesocialnetwork.com/Joe.Subscriber/Calendar/Calendars
KidEvents/GrantCaregiversAccess
를 사용하여 교체되거나 삭제될 수 있다. 적절한 허가에 의해, 구글 캘린더형 서비스에 대한 문의를 생성하기 위해 사용된 게시 요청은 포맷(JSON)을 사용한다:
POST /calendar/calendars HTTP/1.1
Content-Type: application/json
Content-length : 200
...
{
"kind" : "calendar#calendarAccessControlQuery",
"id" : "GrantCaregiversAccess",
"accessRole: "reader".
"query": "SELECT ..."
}
대안적으로, 게시 요청은 입수 명령을 통해 특정 권한들을 승인하기 위해 다음의 포맷을 사용할 수 있다:
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
다수의 대안적인 실시예들에서, 실제로 사용자가 상기 사용자에 대해 높은 값 중 몇 개를 채용하도록 선택할 수 있을지라도, 하나 이상의 액세스 제어 문의들이 주어진 노드에 접속될 수 있다. 몇몇 실시예들에서, 섀도우 노드들 또는 패턴 매칭은 문의를 만든 사용자의 제어하에 있지 않은 노드에 문의를 연관시키기 위해 사용될 수 있다.
다른 예에 대하여, 페이스북형 서비스의 환경에서, 문의는 문의의 설계에 기초하여 사진 앨범 또는 그 앨범에서 개별적인 사진들에 대한 액세스를 승인하거나 거부하도록 사용될 수 있다. 서비스는 문의가 그것이 접속된 앨범 또는 앨범들의 리스트에 대한 액세스를, 또는 그것이 문의에 대한 파라미터들에 기초하여 접속되는 앨범들의 리스트 또는 앨범내 개별 사진들에 대한 액세스를 승인하는지의 여부를 결정할 수 있다:
POST /Joe.Subscriber/ElizabethHighSchoolGraduation/photos HTTP/1.1
Content-Type: application/json
Content-Length: 203
...
{
"kind": "AccessControlQuery",
"id" : "GrantElizabethFriendsAccess",
"accessRights" : "GET".
"query": "SELECT ..."
}
페이스북의 포토들은 각각 다수의 "속성"들을 가질 수 있고, 이들은 다른 제한적인 액세스에 대한 문의에 나타날 수 있다. 예를 들면, "태그들" 속성은 사진에 나타난 개인들을 열거하고 특정한 사용자가 나타난 사진들로만 액세스를 제한하도록 사용될 수 있다.
도시된 실시예에서, 액세스 제어 문의에 접속하기 위한 요청은 사용자/가입자로부터 허가를 요청할 수 있다. 사용자 허가 프로세스는 사용자가 사용자의 소셜 그래프에서 하나 이상의 노드들로 액세스 제어 문의를 접속하도록 허가한 것을 검증하기 위해 수행될 수 있다(315에서). 사용자 허가는 여러 기술들을 사용하여 수행될 수 있다. 예를 들면, 문의를 삽입하기 위한 요청은 사용자가 그들이 새로운 문의의 실행을 승낙하거나 허용하는지를 나타내는(315에서) 것을 허용하는 인증/허가 프로세스를 개시하기 위한 요청을 포함할 수 있다. 사용자가 확정 또는 인증을 제공하지 않는 경우, 요청은 거부된다(320에서). 가입자가 요청을 확정 또는 인증하는 경우, 요청은 진행할 수 있다.
예시적인 실시예에서, 요청은 또한 소셜 네트워크(SN) 서비스의 소유자 또는 제공자로부터 허가를 필요로 할 수 있다. 제공자 허가 프로세스는 제공자/소유자가 새로운 문의를 사용자의 소셜 그래프로 삽입하는 것을 허가했는지를 검증하기 위해 수행될 수 있다(325에서). 제공자 허가는 여러 기술들을 사용하여 수행될 수 있다. 예를 들면, 액세스 제어 문의를 접속하기 위한 요청은 제공자가 그들이 새로운 문의의 실행을 승낙하거나 허용했는지의 여부를 나타내도록(315에서) 허용하는 인증/허가 프로세스를 개시하기 위한 요청을 포함할 수 있다. 일 실시예에서, 제공자는 요청을 리뷰하고 요청이 제공자에 의해 확립된 보안, 프라이버시, 또는 다른 정책들을 따르는지의 여부를 결정하는 자동화된 시스템을 사용하여 인증/허가 프로세스를 수행할 수 있다. 웹 서비스로의 설치 전에, 문의는 웹 서비스의 보안/ 사용 정책을 따르는 것을 확인하기 위해 기계적으로 승인될 수 있다. 예를 들면, 웹 서비스는 액세스 제어 문의가 연관될 수 있는 노드 형태들로 제한할 수 있는(예를 들면, "사진들" 노드만) 불린 결과들을 리턴하는 문의들만을 허용할 수 있다. 제공자가 확정 또는 인증을 제공하지 않는 경우, 요청은 거부된다(320에서). 제공자가 요청을 확정하거나 인증하는 경우, 요청은 진행할 수 있다. 본 명세서의 이점을 갖는 본 기술의 통상의 숙련자들은 도 3에 도시된 특별한 인증 시퀀스가 예시적인 것으로 의도되는 것을 이해할 것이다. 대안적인 실시예들은 사용자 및 제공자 인증 프로세스들을 도 3에 도시된 것과 일치하여 또는 다른 순서로 수행할 수 있다. 더욱이, 다른 대안적인 실시예들은 단지 사용자 인증 또는 제공자 인증을 수행할 수 있지만, 둘 모두를 수행할 수는 없고, 또는 어떤 인증도 전혀 수행하지 않을 수 있다.
일단 요청이 허가되면, 요청된 문의는 소셜 그래프내 선택된 위치에 접속될 수 있다(330에서). 개발자, 제 3 자, 또는 다른 엔티티들은 이후 새로운 문의를 이용하는 애플리케이션들 또는 서비스들을 가능하게 하는 변경된 인터페이스를 사용할 수 있을 것이다. 예를 들면, 상기에 기술된 게시 요청은 URI, http://www.fakesocialnetwork.com/Joe.Subscriber/Photographs/Photo1에 대한 입수 요청을 행하는 것이 이제 가능하도록 가입자(조 가입자)에 대한 API를 확장하는 것을 초래할 수 있다. 요청된 자원(즉, 사진(Photo1))에 대한 액세스 제어가 http://www.fakesocialnetwork.com/Joe.Subscriber/Photographs/AllowAccessforTaggedUser와 같은 문의를 사용하여 결정될 수 있다. 액세스 제어 문의는 밥 아무개씨가 사진(Photo1)에 대한 태그 리스트에 있는지의 여부에 의존하여 불린 값을 리턴한다. 일 실시예에서, 액세스 제어 문의는 개발자들에게 가시적이고 액세스 제어 문의를 사용하는 애플리케이션에 대해 이용 가능하지만, 액세스 제어 문의는 자원들에 대한 액세스를 얻기를 시도하는 사용자들이 임의의 액세스 제어가 수행되고 있다는 것을 알지 못할 수 있도록 사용자에게 가시적이지 않을 수 있다.
방법(300)의 실시예들은 따라서 더 넓고 더 다양한 액세스 제어 권한들의 세트를 제공하면서 동시에 소셜 그래프를 나타내는 근원적인 데이터베이스에 대한 과도한 또는 완전한 액세스를 제공하는 위험을 줄이는 변경된 인터페이스들을 지원할 수 있다. 게시 요청에 의해 행해진 변경은 단지 요청을 허가한 사용자(조 가입자)에게만 작용할 수 있고 대응하는 HTTP 삭제 요청 또는 다른 동작에 의해 반전될 수 있다. 일 실시예에서, 문의를 삽입하기 위한 메커니즘은 최종 사용자와 연관되는 기록을 생성하는 것일 수 있다. 삽입된 기록은 입수 요청에 사용될 문의 및 연관된 경로를 포함할 수 있다. 다수의 실시예들에서, 웹 서비스는 하나 이상의 문의 언어들을 지원하고 문의 언어들을 첨가하기 위한 스키마를 공개한다.
도 4는 소셜 그래프에 대한 변경된 애플리케이션 프로그래밍 인터페이스를 문의하는 방법(400)의 일 예시적인 실시예를 개념적으로 도시한다. 도시된 실시예에서, 방법(400)은 인터페이스에 의해 사용된 액세스 제어 권한들이 모든 시간 동안 전체적으로 변경되지 않지만, 특정한 사용자들이 변경된 인터페이스를 사용하는 서비스를 호출할 때에만 변경되고, 몇몇 실시예들에서는, 소셜 그래프의 관련 부분에 대해 인터페이스의 관련 서비스 및 허가된 변경을 호출한 사용자들에 대해서만 단지 변경되도록 사용자마다 및 애플리케이션마다에 기초하여 애플리케이션 프로그래밍 인터페이스를 변경한다. 하나 이상의 사용자들은 서비스 또는 애플리케이션을 개시할 수 있다(405에서). 개시된 애플리케이션은 제공자가 규정한 API에 의해 지원되지 않는 액세스 제어 문의를 이용할 수 있다. 하나 이상의 새로운 액세스 제어 문의가 이후 생성될 수 있고, 액세스 제어 문의(또는 문의들)는 관련 노드에 접속될 수 있다(410에서). 문의들을 접속하는 기술들의 실시예들이 도 3에 도시된다.
서비스 제공자(예를 들면, 서비스 제공자에 의해 소유되거나 동작된 하나 이상의 서버들상에 실행된 소프트웨어, 펌웨어, 또는 하드웨어를 사용하여)는 이후 서비스와 연관된 문의들을 모니터링할 수 있다(410에서). 모니터링은 서비스 제공자가 임의의 문의들을 검출하지 않는(410에서) 한 계속할 수 있다. 서비스 제공자가 액세스 제어 문의, 예를 들면, 가입자에 의해 요청되거나 호출된 서비스의 부분으로서 소셜 그래프에 대한 액세스를 요청하기 위해 수행된 문의를 검출할 때(415에서), 문의는 문의와 연관된 노드의 서브 트리에 포함된 정보에 대해 수행될 수 있다(420에서). 예를 들면, 문의는 액세스 요청이 노드의 서브-트리에 포함된 정보에 적어도 부분적으로 기초하여 승인되었거나 거부되었는지를 나타내는 불린 값을 리턴할 수 있다(420에서).
도 5는 소셜 그래프에 대한 애플리케이션 프로그래밍 인터페이스에 대한 변경을 제거하거나 반전시키는 방법(500)의 일 예시적인 실시예를 개념적으로 도시한다. 도시된 실시예에서, 애플리케이션 프로그래밍 인터페이스는 변경된 인터페이스를 사용하는 서비스를 호출하는 하나 이상의 사용자들에 응답하여, 사용자마다 또는 애플리케이션마다에 기초하여, 및 몇몇 실시예들에서는, 소셜 그래프의 관련 부분에 대한 인터페이스의 관련 서비스 및 허가된 변경을 호출하는 사용자들에 대해서만 이전에 변경되었다(예를 들면, 도 3 및 도 4에 관하여 여기에 기술된 바와 같이). 그들의 소셜 그래프에 대한 인터페이스의 변경을 초래하는 서비스를 이전에 개시한 한 명 이상의 사용자들은 애플리케이션을 종료하도록 결정할 수 있다. 따라서, 서비스 제공자는 애플리케이션을 종료하기 위한 요청을 수신할 수 있다(505에서). 서비스 제공자는 변경된 인터페이스를 지원하기 위해 소셜 그래프에 접속되는 임시적인 액세스 제어 문의들을 식별할 수 있다(510에서). 임시적인 문의들의 식별(510에서)은 서비스 제공자에 의해 저장된 정보 또는 사용자에 의해 제공된 정보를 사용하여 수행될 수 있다. 임시적인 문의들은 이후 삭제되고(515에서) 애플리케이션은 종료될 수 있다(520에서). 일 실시예에서, 임시적인 문의들의 삭제(515에서)는 노드들, 리프 노드들, 서브-트리들, 또는 임시적인 문의들과 연관된 다른 정보의 제거를 포함할 수 있다.
도 6은 소셜 그래프(600)의 일 부분의 제 2 예시적인 실시예를 개념적으로 도시한다. 도 2에 도시된 제 1 실시예에서와 같이, 부분(600)은 특정한 가입자, "조 가입자"와 연관된 노드들을 포함하는 완전한 소셜 그래프의 서브-트리이다. 부분(600)은 엔트리 노드 또는 부모 노드(605)를 통해 액세스될 수 있다. 부분(600)은 하나 이상의 서버들에 저장될 수 있고 클라이언트들은 적절한 통합 자원 식별자(URI) 또는 다른 어드레스를 사용하여 엔트리 노드(605)를 액세스할 수 있다. 부분(600)은 또한 부분(600) 내 엔트리 노드(605) 또는 다른 노드들로 연결되는 자식 노드들(610)을 포함한다. 자식 노드들(610)은 여기에 논의되는, 정보, 카테고리들, 다른 가입자들 등과 연관될 수 있다. 노드들(610)은 http://www.fakesocialnetwor k.com/Joe.Subscriber/Calendar와 같은 대응하는 어드레스들을 사용하여 액세스될 수 있다.
도시된 실시예에서, 개발자들 또는 다른 제 3 자들은 가입자에 대응하는 소셜 그래프의 부분(600)에 하나 이상의 노드들(615)을 추가할 수 있다. 예를 들면, 개발자는 서브-트리(600)의 노드(610(4))에 연관되거나 접속되는 노드(615)를 삽입하기 위해 HTTP 게시 명령을 사용할 수 있다. 노드(615)는 이후 적절한 URI 또는 다른 어드레스를 사용하여 액세스될 수 있다. 예를 들면, 노드(610(3))는 조 가입자의 "캘린더"와 연관될 수 있고, 노드(610(4))는 조 가입자의 "캘린더들"과 연관될 수 있고, 노드(615)는 조의 아이들이 예컨대 "어린이 이벤트들"에 참여하는 이벤트들을 포함하는 카테고리와 연관될 수 있다. 노드(615)는 또한 발레 레슨들, 축구 연습, 피아노 연주회, 등과 같은 복수의 리프 노드들(625)을 포함하는 다른 서브-트리(620)와 연관되거나 연결될 수 있다. 그러나, 본 명세서의 이점을 갖는 본 기술의 통상의 숙련자들은 서브-트리(620)가 노드들 또는 리프 노드들의 상이한 조합들을 포함할 수 있다는 것이 이해될 것이다. 서브-트리(620) 또는 리프 노드들(625)은 개발자, 제 3 자, 가입자에 의해, 또는 서비스 제공자에 의해 자동으로 점유될 수 있다. 노드(615)는 http://www.fakesocialnetwork.com/Joe.Subscriber/Calendar/Calendars/KidEvents와 같은 어드레스를 사용하여 액세스될 수 있다. 몇몇 실시예들에서, 개발자 또는 제 3 자는 소셜 그래프에 노드들(615)을 추가하기 위해 허용 또는 허가를 획득할 필요가 있을 수 있다. 예를 들면, 개발자 또는 제 3 자는 조 가입자 또는 서비스 제공자 또는 소셜 그래프의 소유자로부터 허용 또는 허가를 획득할 필요가 있다. 허가는 단지 제한된 양의 시간 동안만, 예를 들면, 가입자가 노드(615)를 이용하는 애플리케이션 또는 서비스를 호출하거나 개시한 후 및 가입자가 애플리케이션 또는 서비스를 종료할 때까지 유효할 수 있다. 노드(615)는 따라서 임시적이거나 동적인 노드일 수 있다.
소셜 그래프(600)에 대한 인터페이스는 소셜 그래프(600)에 추가되는 노드(615)상에 작동하는 액세스 제어 문의들(630)을 지원하기 위해 변경될 수 있다. 일 실시예에서, 개발자는 액세스 제어 문의(630)를 규정하기 위한 메시지 또는 명령을 사용하고 소셜 그래프(200)에 대한 애플리케이션 프로그래밍 인터페이스(API)를 변경하기 위해 문의(630)를 하나 이상의 노드들에 접속할 수 있다. 예를 들면, 아이들의 이벤트들("KidsEvents")에 대한 노드(615)가 생성되어 돌보는 사람들에게 "GrantCaregiversAccess"로 명명된 아이들의 이벤트들을 열거하는 가입자의 캘린더에 대한 액세스를 제공하는지의 여부를 결정하는 문의에 대해 생성되고 접속될 수 있고, 적절한 URI, http://www.fakesocialnetwork.com/Joe.Subscriber/Calendar/Calendars
KidsEvents/GrantCaregiversAccess
를 사용하여 대체되거나 삭제될 수 있다.
적절한 허가에 의해, 구글 캘린더형 서비스에 대한 문의를 생성하기 위해 사용된 송부 요청은 포맷(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 예시적인 실시예를 개념적으로 도시한다. 예시적인 실시예에서, 액세스 제어 문의는 여기에 논의된 바와 같이 개발자 또는 제 3 자에 의해 생성될 수 있다(705에서). 액세스 제어 문의는 개발자 또는 제 3 자에 의해 생성된 서비스 또는 애플리케이션의 일 부분으로서 사용될 수 있다. 액세스 제어 문의는 개발자 또는 제 3 자에 의해 규정되고 하나 이상의 사용자들, 예를 들면, 문의를 이용하는 서비스를 실행한 가입자들과 연관된 소셜 그래프의 일 부분으로 삽입되도록 의도되는 노드의 서브-트리상에 작동할 수 있다. 개발자 또는 제 3 자는 이후 노드를 생성하고 액세스 제어 문의를 새롭게 생성된 노드로 접속하기 위한 요청을 송신(710에서)할 수 있다. 예를 들면, 문의 표현은 소셜 그래프에 대해 API의 프로그래머의 뷰의 변경을 요청하는 REST-ful 게시 요청으로서 기입될 수 있다. 적절한 허가에 의해, API를 확장하기 위해 URI, http://www.fakesocialnetwork.com/Joe.Subscriber/Calendar/C alendars/에 대한 송부 요청은 다음과 같이 기입될 수 있다:
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에서) 변경될 수 있다. 개발자 또는 제 3 자 또는 다른 엔티티들은 이후 새로운 액세스 제어 문의를 이용하는 애플리케이션들 또는 서비스들을 개발할 수 있을 것이다. 예를 들면, 캘린더 KidEvents와 연관된 액세스 제어 문의는 URI, http:/www.fakesocialnetwork. com/Joe.Subscriber/Caledar/Clendars/KidEvents/GrantCaregiversAccess를 사용하여 호출될 수 있다. 예시된 실시예에서, 허가된 돌보는 사람으로부터 요청이 오는 경우, 요청은 불린 참을 리턴하고, 요청이 허가된 돌보는 사람으로부터 오지 않는 경우, 요청은 불린 거짓을 리턴한다. 따라서, 방법(700)의 실시예들은 더 넓고 더 다양한 액세스 제어 권한들의 세트를 제공하고 동시에 소셜 그래프를 나타내는 기본적인 데이터베이스에 대한 과도한 또는 완전한 액세스를 제공하는 위험을 감소시킨다. 게시 요청에 의해 행해진 변경은 단지 사용자의 자원들, 또는 요청을 허가한 사용자(조 가입자)에 액세스 가능한 자원들에 대한 액세스에만 영향을 끼칠 수 있고 대응하는 HTTP DELETE 요청 또는 다른 동작에 의해 반전될 수 있다. 일 실시예에서, 문의를 삽입하기 위한 메커니즘은 최종 사용자와 연관되는 기록을 생성하기 위한 것일 수 있다. 삽입된 기록은 입수 요청에 사용될 문의 및 연관된 경로를 포함할 수 있다. 다수의 실시예들에서, 웹 서비스는 하나의 문의 언어 또는 문의 언어들을 지원하고 문의 언어들을 첨가하기 위한 스키마를 공개한다. 일 실시예에서, 새로운 노드 또는 접속된 문의는 임시적일 수 있다. 예를 들면, 노드 또는 문의는 노드 또는 문의를 이용하는 서비스를 호출하는 사용자에 응답하여 추가될 수 있다. 노드 또는 문의는 또한, 예를 들면, 노드 또는 문의를 사용하는 서비스의 종료에 응답하여, 제거되거나 삭제될 수 있다.
도 8은 소셜 그래프의 부분들을 저장하거나, 소셜 그래프에 대한 애플리케이션 프로그래밍 인터페이스들을 실행하거나, 또는 소셜 네트워크 서비스들을 실행하기 위해 사용될 수 있는 서버(800)의 일 예시적인 실시예를 개념적으로 도시한다. 예시적인 실시예에서, 서버(800)는 프로세서(805), 데이터 저장 장치(810), 및 입력/출력(I/O) 인터페이스(815)를 포함한다. 프로세서(805)는, 예를 들면, 데이터 저장 장치(810)에 또는 다른 위치들에 저장된 데이터 또는 명령들을 사용하여, 서버(800)의 동작을 제어하도록 구성된다. 서버(800)에 의해 수행될 수 있는 동작들의 실시예들은 도 1 내지 도 7과 관련하여 여기에 기술된다. 일 실시예에서, 데이터 저장 장치(810)는 소셜 그래프에 대한 하나 이상의 애플리케이션 프로그래밍 인터페이스들을 나타내는 정보(820), 소셜 그래프의 부분들을 나타내는 정보(825), 또는 소셜 그래프에 저장된 정보를 사용할 수 있는 소셜 네트워크 서비스들을 나타내는 정보(830)를 저장한다.
도 8이 단일 서버(800)를 도시하지만, 본 명세서의 이점을 갖는 본 기술의 통상의 숙련자들은 대안적인 실시예들이 다수의 서버들을 사용할 수 있고 다수의 서버들을 통해 도 8에 도시된 기능의 부분들을 분배할 수 있다는 것을 이해할 것이다. 몇몇 실시예들에서, 서버(800)는 가상 머신일 수 있다. 이들 실시예들의 일부에서, 가상 머신은 상이한 머신들로부터의 구성 요소들을 포함하거나 지리적으로 분산될 수 있다. 예를 들면, 데이터 저장 장치(810) 및 프로세서(805)는 두 개의 상이한 물리적 머신들내에 있을 수 있다. 소셜 네트워크 서비스들(830)과 같은 프로세서-실행가능한 프로그램들이 프로세서(805)상에 실행될 때, 프로그램 코드 세그먼트들은 특정한 논리 회로들과 유사하게 작동하는 특정한 디바이스를 제공하기 위해 프로세서(805)와 조합한다.
개시된 요지의 부분들 및 대응하는 상세한 설명은 소프트웨어, 또는 컴퓨터 메모리내 데이트 비트들상의 동작들의 알고리즘 및 기호적인 표현들에 의해 표현된다. 이들 설명들 및 표현들은 본 기술의 통상의 숙련자들이 본 기술의 통상의 다른 숙련자들에게 그들의 작업의 실체를 효과적으로 전달하게 한다. 본 명세서에서 사용되고, 일반적으로 사용되는, 용어 알고리즘은 바람직한 결과를 초래하는 일관성 있는 일련의 단계들로 이해된다. 단계들은 물리적 양들의 물리적 조작들을 요구하는 것들이다. 일반적으로, 반드시는 아니지만, 이들 양들은 저장되고, 전달되고, 조합되고, 비교되고, 그 외에 조작될 수 있는 광학적, 전기적, 또는 자기적 신호들의 형태를 취한다. 이들 신호들을 비트들, 값들, 요소들, 심볼들, 문자들, 용어들, 숫자들 등이라고 불리는 주로 공통 사용의 이유들 때문에 때때로 편리한 것이 증명되었다.
그러나, 이들 모두 및 유사한 용어들이 적절한 물리적 양들과 연관되는 것이고 단순히 이들 양들에 적용된 편리한 라벨들인 것이 주의되어야 한다. 특별히 다르게 인용되지 않거나, 또는 논의로부터 분명한 바와 같이, "처리" 또는 "컴퓨팅" 또는 "계산" 또는 "결정" 또는 "디스플레이" 등과 같은 용어들은 컴퓨터 시스템, 또는 컴퓨터 시스템의 레지스터들 및 메모리들내 물리적, 전자적 양들로서 표현된 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들내 물리적 양들로서 유사하게 나타낸 다른 데이터로 조작하고 변환하는 유사한 전자 컴퓨팅 장치, 또는 다른 이러한 정보 저장 장치, 송신 및 디스플레이 장치들의 동작 및 프로세스들을 말한다.
또한, 개시된 요지의 소프트웨어 실행된 양태들은 일반적으로 몇몇 형태의 프로그램 저장 매체상에 인코딩되거나 몇몇 형태의 송신 매체를 통해 실행될 수 있다는 것을 주의하라. 프로그램 저장 매체는 자기적(예를 들면, 플로피 디스크 또는 하드 드라이브) 또는 광학적(예를 들면, 콤팩트 디스크 판독 전용 메모리, 즉, "CD ROM")일 수 있고, 판독 전용 또는 랜덤 액세스일 수 있다. 유사하게는, 송신 매체는 연선 쌍들, 동축 케이블, 광섬유, 또는 본 기술에 알려진 몇몇 다른 적절한 송신 매체일 수 있다. 개시된 요지는 임의의 제공된 실행의 이들 양태들로 제한되지 않는다.
상기 개시된 특정 실시예들은, 개시된 요지가 상이하게 변경되고 실시될 수 있지만 동등한 방식들이 여기서 교시들의 이점을 갖는 본 기술의 숙련자들에게 명백하기 때문에 단지 예시적이다. 또한, 이하 청구항들에 기술된 것과 다르게 여기에 도시된 구성 또는 설계의 상세들에 대해 제한들의 의도되지 않는다. 따라서, 상기 개시된 특정한 실시예들이 변형되거나 변경될 수 있고 모든 이러한 변동들은 개시된 요지의 범위내에 고려되는 것이 명백하다. 따라서, 여기서 추구하는 보호는 이하의 청구항들에 제시된 것이다.
800 : 서버 805 : 프로세서
810 : 데이터 저장 장치 815 : I/O 인터페이스
820 : 애플리케이션 프로그래밍 인터페이스(들)
825 : 소셜 그래프 830 : 소셜 네트워크 서비스(들)

Claims (10)

  1. 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법에 있어서,
    호출되고 있는 서비스에 응답하여 문의를 구성하기 위한 정보를 수신하는 단계로서, 상기 서비스는 상기 문의를 사용하여 제 1 사용자(105)와 연관된 소셜 그래프의 자원들에 대한 액세스를 요청하도록 구성되고, 상기 자원들의 서브세트가 상기 소셜 그래프의 일 부분(200)에서 노드와 연관되는, 상기 호출되고 있는 서비스에 응답하여 문의를 구성하기 위한 정보를 수신하는 단계; 및
    상기 문의(215)를 상기 노드(205, 210, 220)에 접속하는 단계로서, 상기 문의는 상기 노드와 연관된 상기 소셜 그래프의 상기 자원들의 상기 서브세트에 작동하고, 상기 문의는 상기 자원들의 상기 서브세트에 액세스하기 위한 요청이 상기 소셜 그래프의 현재 상태에 의존하여 승인될지 또는 거부될지를 나타내는 정보를 리턴하는, 상기 문의(215)를 상기 노드(205, 210, 220)에 접속하는 단계를 포함하는, 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법.
  2. 제 1 항에 있어서,
    상기 노드와 연관된 상기 자원들의 상기 서브세트에 액세스하기 위한 요청을 제 2 사용자로부터 수신하는 단계 및 상기 요청을 수신하는 것에 응답하여 상기 문의를 호출하는 단계를 포함하고,
    상기 문의를 호출하는 단계는 상기 제 1 사용자에 대한 상기 제 2 사용자의 관계 또는 상기 자원들의 상기 서브세트에 대한 상기 제 2 사용자의 관계 중 적어도 하나에 기초하여 상기 요청을 승인할지 또는 거부할지의 여부를 결정하는 단계를 포함하고, 상기 관계들은 상기 소셜 그래프의 에지들에 의해 나타내어지는, 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법.
  3. 제 1 항에 있어서,
    상기 문의를 상기 노드에 접속하는 단계는 상기 노드와 연관된 상기 자원들의 서브세트에 대한 액세스를 요청하는 상기 서비스를 호출하는 상기 제 1 사용자에 응답하여 상기 문의를 상기 노드에 접속하는 단계를 포함하고, 상기 서비스를 호출하는 상기 제 1 사용자에 응답하여 상기 노드를 상기 제 1 사용자와 연관된 상기 소셜 그래프의 상기 부분에 추가하는 단계, 및 이후 상기 문의를 상기 새롭게 추가된 노드로 접속하거나 또는 상기 서비스를 종료하는 상기 제 1 사용자에 응답하여 상기 문의를 삭제하는 단계를 추가로 포함하는, 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법.
  4. 제 1 항에 있어서,
    상기 문의를 상기 노드에 접속하는 단계는 상기 제 1 사용자가 상기 문의를 상기 제 1 사용자에 의해 소유된 상기 노드에 접속하는 것을 허가했는지 또는 상기 소셜 그래프를 소유하는 서비스 제공자가 상기 문의를 상기 제 1 사용자에 의해 소유된 상기 노드에 접속하는 것을 허가했는지를 결정하는 것에 응답하여 상기 문의를 상기 노드에 접속하는 단계를 포함하는, 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법.
  5. 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법에 있어서,
    제 1 사용자에 의해 소유된 소셜 그래프의 자원들에 대한 문의를 수행하도록 구성되는 서비스를 호출하는 단계로서, 상기 자원들의 서브세트는 상기 소셜 그래프의 일 부분(200)에서 노드(205, 210, 220)와 연관되는, 상기 서비스를 호출하는 단계; 및
    상기 서비스를 호출하는 것에 응답하여 문의(215)를 상기 노드(205, 210, 220)에 접속하는 단계로서, 상기 문의는 상기 소셜 그래프의 현재 상태에 의존하여 상기 노드와 연관된 상기 자원들의 상기 서브세트에 액세스하기 위한 요청들을 승인할지 거부할지의 여부를 결정하는, 상기 접속하는 단계를 포함하는, 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법.
  6. 제 5 항에 있어서,
    상기 문의를 상기 노드에 접속하는 단계는, 상기 노드와 연관된 상기 자원들의 상기 서브세트에 대한 액세스를 요청하는 상기 서비스를 호출하는 상기 제 1 사용자에 응답하여 상기 문의를 상기 노드에 접속하는 단계를 포함하고; 상기 서비스를 호출하는 상기 제 1 사용자에 응답하여 상기 제 1 사용자와 연관된 상기 소셜 그래프의 상기 부분에 상기 노드를 추가하는 단계, 및 이후 상기 문의를 상기 새롭게 추가된 노드에 접속하거나 또는 상기 서비스를 종료하는 상기 제 1 사용자에 응답하여 상기 문의를 삭제하는 단계 중 적어도 하나를 추가로 포함하는 단계를 포함하는, 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법.
  7. 제 5 항에 있어서,
    상기 문의를 상기 노드에 접속하는 단계는 상기 제 1 사용자가 상기 문의를 상기 제 1 사용자에 의해 소유된 상기 노드로 접속하는 것을 허가하였거나 또는 상기 소셜 그래프를 소유하는 서비스 제공자가 상기 문의를 상기 제 1 사용자에 의해 소유된 상기 노드에 접속하는 것을 허가한 것을 결정하는 것에 응답하여 상기 문의를 상기 노드에 접속하는 단계를 포함하는, 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법.
  8. 제 5 항에 있어서,
    상기 노드와 연관된 상기 자원들의 상기 서브세트에 액세스하기 위해 상기 서비스를 사용하기 위한 요청을 제 2 사용자로부터 수신하는 단계 및 상기 요청을 수신하는 것에 응답하여 상기 문의를 호출하는 단계를 포함하고, 상기 문의를 호출하는 단계는 상기 제 1 사용자에 대한 상기 제 2 사용자의 관계 또는 상기 자원의 서브세트에 대한 상기 제 2 사용자의 관계 중 적어도 하나에 기초하여 상기 요청을 승인할지 또는 거부할지를 결정하는 단계를 포함하고, 상기 관계들은 상기 소셜 그래프의 에지들에 의해 표현되는, 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법.
  9. 소셜 그래프의 부분들에 대한 액세스 제어를 제공하기 위한 장치에 있어서,
    데이터 저장 장치 및 상기 데이터 저장 장치에 통신가능하게 연결된 프로세서를 포함하고,
    상기 프로세서는 제 1 항 내지 제 4 항 중 어느 한 항에 설명된 방법을 수행하도록 구성되는, 소셜 그래프의 부분들에 대한 액세스 제어를 제공하기 위한 장치.
  10. 소셜 그래프의 부분들에 대한 액세스 제어를 제공하기 위한 장치에 있어서,
    데이터 저장 장치 및 상기 데이터 저장 장치에 통신가능하게 연결된 프로세서를 포함하고,
    상기 프로세서는 제 5 항 내지 제 8 항 중 어느 한 항에 설명된 방법을 수행하도록 구성되는, 소셜 그래프의 부분들에 대한 액세스 제어를 제공하기 위한 장치.
KR1020147026053A 2012-03-19 2013-03-18 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법 KR101624519B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/423,795 2012-03-19
US13/423,697 2012-03-19
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 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

Publications (2)

Publication Number Publication Date
KR20140136947A KR20140136947A (ko) 2014-12-01
KR101624519B1 true KR101624519B1 (ko) 2016-05-26

Family

ID=48045111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147026053A KR101624519B1 (ko) 2012-03-19 2013-03-18 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법

Country Status (7)

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

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
US10467229B2 (en) 2016-09-30 2019-11-05 Microsoft Technology Licensing, Llc. Query-time analytics on graph queries spanning subgraphs
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
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
JP6805765B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
JP7100422B2 (ja) 2016-10-21 2022-07-13 富士通株式会社 データプロパティ認識のための装置、プログラム、及び方法
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
US10402403B2 (en) 2016-12-15 2019-09-03 Microsoft Technology Licensing, Llc Utilization of probabilistic characteristics for reduction of graph database traversals
US10445361B2 (en) 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
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
CN112262381B (zh) 2018-08-07 2024-04-09 谷歌有限责任公司 汇编和评估对隐私问题的自动助理响应
CN110968744B (zh) * 2018-09-30 2023-09-05 中国移动通信有限公司研究院 一种资源查询方法及装置、设备、存储介质
CN110008346B (zh) * 2019-01-24 2024-05-03 平安科技(深圳)有限公司 黑名单传导图谱构建方法、装置、计算机设备和存储介质
CN112784132A (zh) * 2019-11-11 2021-05-11 腾讯科技(深圳)有限公司 一种数据获取方法、装置以及计算机存储介质
CN110955903B (zh) * 2019-11-22 2021-03-30 支付宝(杭州)信息技术有限公司 基于智能图计算的隐私资源权限控制方法、装置及设备
US12010390B2 (en) 2020-10-30 2024-06-11 Commentsold, Llc Live streaming product creation and order compilation
US20230418821A1 (en) * 2022-06-22 2023-12-28 Microsoft Technology Licensing, Llc Computing resource conservation with balanced traversals and precomputations for connected data sets

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Family Cites Families (20)

* 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
US20070214264A1 (en) * 2006-03-09 2007-09-13 Jari Koister Device social-control system
US8224862B2 (en) 2007-01-12 2012-07-17 Geni, Inc. 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
US9177168B2 (en) 2012-03-19 2015-11-03 Alcatel Lucent Method of modifying access control for web services using query languages

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101624519B1 (ko) 문의 언어들을 사용하여 웹 서비스들에 대한 액세스 제어를 변경하는 방법
US9047643B2 (en) Method of extending web service application programming interfaces using query languages
US11601398B2 (en) Multiplexed data exchange portal interface in scalable data networks
JP6840295B1 (ja) グループベース通信システムにおけるグループベースオブジェクトに選択的に許可を付与する方法、装置、及びコンピュータプログラム製品
Sambra et al. Solid: a platform for decentralized social applications based on linked data
US9009810B2 (en) Method and apparatus for providing reactive authorization
JP2015518201A5 (ko)
US20160065541A1 (en) Anonymous single sign-on to third-party systems
CN104255007A (zh) Oauth框架
US20110088091A1 (en) Methods and apparatus to maintain validity of shared information
US20150067055A1 (en) Method and system of an anonymous online social network
US20210281661A1 (en) Systems and methods for prefetching content
CN110622184A (zh) 合规性文档的创建、修改和供应
US20150341781A1 (en) Method and system for managing contact information in a universal plug and play home network environment
US20160359826A1 (en) Methods and Systems for Linking Untrusted Applications to Server Systems
EP3547645B1 (en) System, method and computer-readable storage medium for prefetching content
EP3026617A1 (en) Method and apparatus for controlling access to user profiles
US20210258276A1 (en) Systems and methods for digital communications routing and management
Elgazzar et al. Personal mobile services
EP3026618A1 (en) Method and apparatus for controlling access to user profiles
Gorges et al. A configurable, heterogeneous device cloud for web applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 4