KR102291201B1 - 모바일 장치 리소스에 접근하는 권한을 관리하기 위한 방법 및 시스템 - Google Patents

모바일 장치 리소스에 접근하는 권한을 관리하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR102291201B1
KR102291201B1 KR1020177021154A KR20177021154A KR102291201B1 KR 102291201 B1 KR102291201 B1 KR 102291201B1 KR 1020177021154 A KR1020177021154 A KR 1020177021154A KR 20177021154 A KR20177021154 A KR 20177021154A KR 102291201 B1 KR102291201 B1 KR 102291201B1
Authority
KR
South Korea
Prior art keywords
application
access
resource
user input
user
Prior art date
Application number
KR1020177021154A
Other languages
English (en)
Other versions
KR20170104145A (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
Application filed by 페이스북, 인크. filed Critical 페이스북, 인크.
Publication of KR20170104145A publication Critical patent/KR20170104145A/ko
Application granted granted Critical
Publication of KR102291201B1 publication Critical patent/KR102291201B1/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
    • 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
    • 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/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • User Interface Of Digital Computer (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

전자 장치에서, 제1 애플리케이션은 제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위해 제2 애플리케이션으로 요청을 전송하고, 제1 및 제2 애플리케이션은 전자 장치의 운영체제 상에서 실행된다. 제1 요청에 응답하여, 제2 애플리케이션이 전자 장치의 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하는데 사용된다. 제1 사용자 입력이 수신되는데, 제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공한다. 제1 사용자 입력에 응답하여, 제2 애플리케이션이 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는데 사용된다.

Description

모바일 장치 리소스에 접근하는 권한을 관리하기 위한 방법 및 시스템
본 발명은 일반적으로 모바일 장치 리소스에 접근 권한 관리를 포함하나 이에 제한되지 않는, 모바일 장치에서 애플리케이션의 권한을 관리하는 것에 관한 것이다.
모바일 장치 애플리케이션의 풍부함과 모바일 장치에 의해 제공되는 리소스 및 성능의 범위는 성장을 계속하고 있다. 모바일 장치 애플리케이션에 의해 사용되는 장치 리소스로의 보안 접근을 제공하는 것은 점점 소비자의 관심사가 되어왔다. 소비자는 만약 소비자 사생활을 존중하는 적절한 방식으로 애플리케이션이 장치 리소스에 접근할 것으로 신뢰하지 못한다면 애플리케이션을 사용하기 원하지 않을 수 있다. 애플리케이션에 의한 신뢰받는 접근 문제는 세분화된 권한 관리기능의 부족 및 관찰되는 리소스 접근 동작을 모니터링하고 조치를 취하는 문제로 더 복잡하다.
따라서, 모바일 장치 리소스에 접근하는 권한 관리를 위한 방법, 시스템 및 인터페이스의 필요가 있다. 요청 애플리케이션으로부터 접근 요청을 수신하기 위해, 사용자에게 허가를 요청하기 위해 및 사용자에 의해 제공된 허가에 따라 요청 애플리케이션에 권한을 부여 또는 거부하기 위해 운영체제와 별개의 애플리케이션을 사용함으로써 장치 리소스로의 접근이 더 안전하게 관리되고 모니터링된다. 이러한 방법, 시스템 및 인터페이스는 모바일 장치 리소스 접근 권한 관리를 위한 종래의 방법을 선택적으로 보완 또는 대체할 수 있다.
일부 실시예에 따르면, 방법은 하나 이상의 프로세서 및 하나 이상의 프로세서에 의한 실행을 위한 명령어를 저장하는 메모리를 가지는 전자 장치(예컨대, 모바일 장치)에서 수행된다. 방법은 제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 제1 요청을 전송하는 단계를 포함하고, 제1 및 제2 애플리케이션은 전자 장치의 운영체제 상에서 실행된다. 제1 요청에 응답하여, 제2 애플리케이션이 전자 장치의 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하는데 사용된다. 제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공하는 제1 사용자 입력이 수신된다. 제1 사용자 입력에 응답하여, 제2 애플리케이션이 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는데 사용된다.
일부 실시예에 따라, 장치(예컨대, 모바일 장치와 같은 클라이언트 장치)는 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하고, 하나 이상의 프로그램은 메모리에 저장되고 하나 이상의 프로세서에 의해 실행되도록 구성된다. 하나 이상의 프로그램은 위에서 기술된 방법의 동작을 수행하기 위한 명령어를 포함한다. 일부 실시예에 따르면, 비일시적 컴퓨터 판독가능한 저장 매체는, 전자 장치에 의해 실행될 때, 전자 장치로 하여금 상술한 방법의 동작을 수행하도록 야기하는 명령어를 저장한다. 일부 실시예에 따르면, 전자 장치는 상술한 방법의 동작을 수행하기 위한 수단을 포함한다.
따라서, 운영체제와 별개이며 권한 설정을 관리 및 모니터링하는 프록시로서 행동하는 애플리케이션을 사용함으로써, 애플리케이션은 운영체제의 새로운 릴리스 및 업데이트와 분리되고, 이로써 운영체제 자체에 의해 구현된다면 다르게 실현 가능할 수 있는 것보다 더 넓은 범위의 장치와의 호환성을 가능하게 한다. 나아가, 별개의 프록시 애플리케이션이 운영체제 개발자가 권한 사용에 관하여 제공하지 못할 수 있는 투명성/책임성을 가능하게 하는 API의 개발 및 준수를 가능하게 한다. 그러므로 전자 장치도 보다 효율적이고 신뢰할 수 있는 모바일 장치 리소스에 접근하는 권한 관리 방법이 제공되고, 이로써 이러한 장치의 효과, 효율성 및 사용자 만족을 높인다.
실시예들이 저장 매체, 시스템 및 컴퓨터 프로그램 제품에 대한 첨부된 청구항에 특히 개시되는데, 한 청구항 카테고리, 예컨대 방법에 언급된 임의의 특징은 다른 청구항 카테고리, 예컨대 시스템에도 청구될 수 있다. 첨부된 청구항의 인용 또는 참조는 형식상의 이유를 위해 선택되었을 뿐이다. 하지만 임의의 선행 청구항으로의 의도적인 참조(특히 다중 인용)에서 야기되는 임의의 주제 또한 청구될 수 있어, 청구항 및 그 특징의 임의의 조합이 첨부된 청구항에서 선택된 인용에 관계 없이 개시되고 청구될 수 있다. 청구될 수 있는 주제는 첨부된 청구항에 나타난 바와 같은 특징의 조합뿐만 아니라 청구항의 특징의 다른 임의의 조합을 포함하는데, 청구항에 언급된 각 특징은 청구항의 임의의 다른 특징 또는 다른 특징의 조합과 조합될 수 있다. 나아가, 임의의 실시예와 본 명세서에 서술되거나 도시된 특징은 별개의 청구항 및/또는 임의의 실시예나 본 명세서에 서술되거나 도시된 특징과의 또는 첨부된 청구항의 임의의 특징과의 조합에 청구될 수 있다.
일부 실시예로, 방법은:
하나 이상의 프로세서 및 하나 이상의 프로세서에 의한 실행을 위한 명령어를 저장하는 메모리를 가지는 전자 장치에서:
제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 제1 요청을 전송하는 단계;
제1 요청에 응답하여, 제2 애플리케이션을 사용하여 전자 장치의 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하는 단계;
제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공하는 제1 사용자 입력을 수신하는 단계; 및
제1 사용자 입력에 응답하여, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 포함하고,
제1 및 제2 애플리케이션은 전자 장치의 운영체제 상에서 실행된다.
리소스는:
전자 장치의 마이크로폰;
전자 장치의 메시징 애플리케이션;
전자 장치의 위치 추적 장치; 및
전자 장치의 카메라로 이루어진 그룹에서 선택될 수 있다.
제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계는:
제2 애플리케이션을 사용하여 리소스로부터 데이터를 검색하는 단계; 및
제2 애플리케이션으로부터 제1 애플리케이션으로 데이터를 제공하는 단계를 포함할 수 있다.
제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하기 위한 1회성 권한을 명시할 수 있고, 방법은 제1 사용자 입력을 수신하고 제1 사용자 입력에 응답하여 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가한 뒤:
제1 애플리케이션에 의한 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 제2 요청을 전송하는 단계;
제2 요청에 응답하여, 제2 애플리케이션을 사용하여 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하는 단계;
제1 애플리케이션이 리소스에 접근하는 권한을 허가할지 여부를 표시하는 제2 사용자 입력을 수신하는 단계; 및
제2 애플리케이션을 사용하여 제2 사용자 입력에 따라 제1 애플리케이션이 리소스에 접근하는 권한을 허가 또는 거부하는 단계를 더 포함할 수 있다.
일부 실시예에서, 방법은 제1 요청에 응답하여, 제2 애플리케이션이 제1 애플리케이션의 리소스 접근을 허용하도록 현재 인가되어 있지 않다고 결정하는 단계를 더 포함할 수 있고,
결정에 응답하여, 사용자는 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청 받는다.
제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하도록 허가하는 기간을 명시할 수 있고, 방법은:
기간 동안, 제1 사용자 입력에 따라 반복적으로 제2 애플리케이션을 사용하여 자동으로 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 더 포함할 수 있다.
제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하도록 허가되는 허가 위치를 명시할 수 있고, 방법은:
전자 장치의 감지된 위치가 허가 위치에 대응하는 동안, 제1 사용자 입력에 따라 반복적으로 제2 애플리케이션을 사용하여 자동으로 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 더 포함할 수 있다.
제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하도록 인가되는 허가 사용자를 명시할 수 있고, 방법은:
전자 장치의 사용자가 허가 사용자로 결정될 때, 제1 사용자 입력에 따라 반복적으로 제2 애플리케이션을 사용하여 자동으로 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 더 포함할 수 있다.
제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 조건을 명시할 수 있고, 방법은:
제2 애플리케이션에 할당된 메모리에 조건을 저장하는 단계; 및
제1 애플리케이션으로부터의 후속 요청에 응답하여, 제2 애플리케이션에서, 조건을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가할지 여부를 결정하는 단계를 더 포함할 수 있다.
조건은 제1 애플리케이션에 대응하는 포어그라운드 프로세스에 의한 리소스 접근을 허용하지만 제1 애플리케이션에 대응하는 백그라운드 프로세스에는 그러하지 아니할 수 있다.
조건은 제1 애플리케이션에 대응하는 백그라운드 프로세스에 의한 리소스 접근을 허용하지만 제1 애플리케이션에 대응하는 포어그라운드 프로세스에는 그러하지 아니할 수 있다.
리소스는 전자 장치의 위치 추적 장치를 포함할 수 있고; 및
제1 사용자 입력은 위치 추적 장치 접근과 관련하여 제1 애플리케이션에 대해 허용되는 해상도 정도를 명시할 수 있다.
제1 사용자 입력은 위치 추적을 위한 거친 또는 미세한 해상도 간에서 선택할 수 있다.
일부 실시예에서, 방법은 기간에 걸쳐 제1 애플리케이션에 의해 전송된 리소스에 접근하는 요청의 수를 결정하는 단계; 및
임계치를 만족하는 요청의 수에 따라, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 거부하는 단계를 더 포함할 수 있다.
일부 실시예에서, 방법은 임계치를 만족하는 요청의 수에 따라, 전자 장치의 사용자에게 경고를 제공하는 단계를 더 포함할 수 있다.
일부 실시예에서, 방법은 제1 애플리케이션에 의한 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 복수의 요청을 전송하는 단계;
복수의 요청의 기록을 저장하는 단계; 및
기록에 기반하여, 복수의 요청에 관한 하나 이상의 통계를 사용자에게 표시하는 단계를 더 포함할 수 있고, 복수의 요청은 제1 요청을 포함한다.
일부 실시예에서, 방법은 제1 애플리케이션에 의한 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 복수의 요청을 전송하는 단계;
복수의 요청 중 각 요청에 응답하여, 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하고 제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 각 사용자 입력을 수신하는 단계;
각 요청, 각 사용자 입력 및 전자 장치에 대한 각 컨텍스트 정보의 기록을 저장하는 단계; 및
기록에 기반하여, 제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 조건의 추천을 사용자에게 표시하는 단계를 더 포함할 수 있고,
복수의 요청은 제1 요청을 포함한다.
컨텍스트 정보는 각 사용자 입력이 수신될 때의 전자 장치의 위치 및 각 사용자 입력이 수신된 시간 중 적어도 하나를 포함할 수 있다.
또한 청구될 수 있는 일부 실시예에서, 전자 장치는 하나 이상의 프로세서; 및
하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하기 위한 메모리를 포함하고, 하나 이상의 프로그램은:
제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 제1 요청을 전송하고;
제1 요청에 응답하여, 제2 애플리케이션을 사용하여 전자 장치의 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하고;
제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공하는 제1 사용자 입력에 응답하여, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가하기 위한 명령어를 포함하고,
제1 및 제2 애플리케이션은 전자 장치의 운영체제 상에서 실행된다.
또한 청구될 수 있는 일부 실시예에서, 전자 장치의 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 비일시적 컴퓨터 판독가능한 저장 매체로서, 하나 이상의 프로그램은 제1 애플리케이션 및, 제1 및 제2 애플리케이션이 실행되도록 구성된 전자 장치의 운영체제와는 구분되는 제2 애플리케이션에 대응되고, 하나 이상의 프로그램은:
제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위한 요청을 수신하고,
제1 요청에 응답하여, 전자 장치의 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하고,
제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공하는 제1 사용자 입력에 응답하여, 제1 애플리케이션이 리소스에 접근하는 권한을 허가하기 위한 명령어를 포함한다.
일부 실시예에서, 하나 이상의 컴퓨터 판독가능한 비일시적 저장 매체는 실행될 때 상술한 실시예 또는 임의의 다른 개시된 실시예에 따른 방법을 수행하도록 동작 가능한 소프트웨어를 포함한다.
일부 실시예에서, 시스템은 하나 이상의 프로세서; 및 프로세서에 연결되고 프로세서에 의해 실행가능한 명령어를 포함하는 적어도 하나의 메모리를 포함하고, 프로세서는 명령어를 실행할 때 상술한 실시예 또는 임의의 다른 개신된 실시예에 따른 방법을 수행하도록 동작가능하다.
일부 실시예에서, 컴퓨터 프로그램 제품은, 바람직하게는 컴퓨터 판독가능한 비일시적 저장 매체를 포함하고, 데이터 프로세싱 시스템 상에서 실행될 때 상술한 실시예 또는 임의의 다른 개시된 실시예에 따른 방법을 수행하도록 동작가능하다.
본 발명의 내용 중에 포함되어 있다.
서술된 다양한 실시예의 보다 나은 이해를 위하여, 이하의 도면과 관련하여 아래의 실시예의 설명이 참조되어야 한다. 유사한 참조번호는 도면 및 설명에 걸쳐서 대응되는 부분을 참조한다.
도 1은 일부 실시예에 따른 소셜 네트워크의 네트워크 아키텍처의 예시를 도시하는 블록도이다.
도 2는 일부 실시예에 따른 소셜 네트워크 시스템의 예시를 도시하는 블록도이다.
도 3은 일부 실시예에 따른 클라이언트 장치의 예시를 도시하는 블록도이다.
도 4a-4b는 일부 실시예에 따른 장치 리소스의 접근 권한을 관리하고 접근 요청 통계를 표시하는 GUI(graphical user interfaces)의 예시를 도시한다.
도 5a-5b는 일부 실시예에 따른 권한 및 접근 요청 기록을 저장하는 데이터 구조의 예시를 도시한다.
도 6은 일부 실시예에 따른 장치 리소스 접근 권한을 관리하는 방법을 도시하는 흐름도이다.
이제 첨부 도면들에 그 예가 도시되는 실시예들을 참조한다. 이하의 설명에서, 다수의 구체적인 세부사항은 다양하게 기술된 실시예의 이해를 제공하기 위해 기재된다. 하지만, 다양한 기술된 실시예가 이러한 구체적인 세부사항 없이 실시될 수 있음은 당업자에게 자명할 것이다. 다른 예에서, 잘 알려진 방법, 절차, 컴포넌트, 회로 및 네트워크는 불필요하게 실시예의 양태를 불분명하게 만들지 않기 위해 구체적으로 기술되지는 않았다.
제1의, 제2의 등의 용어는, 일부 예에서 다양한 요소를 본 명세서에서 기술하는데 사용되지만, 이러한 요소들이 이러한 용어에 의해 제한되는 것이 아님이 또한, 이해될 것이다. 이러한 용어들은 오로지 하나의 요소를 다른 요소로부터 구별하는데 사용된다. 예를 들어, 제1 그룹이 제2 그룹으로 지칭될 수 있고, 유사하게 서술된 다양한 실시예의 범위에서 벗어남 없이 제2 그룹이 제1 그룹으로 지칭될 수 있다. 제1 그룹과 제2 그룹 모두 그룹이나, 동일한 그룹은 아니다.
본 명세서에 서술되는 다양한 실시예의 설명에서 사용되는 용어는 특정한 실시예를 설명하기 위한 것일 뿐 제한의 의도는 아니다. 다양한 기술된 실시예 및 첨부되는 청구범위에서의 설명에서 사용되는 것처럼 단수형 "a", "an" 및 "the"는 문맥이 명확하게 달리 나타내지 않는다면 복수형을 또한 포함하는 것으로 의도된다. 본 명세서에서 사용되는 용어 "및/또는"은 하나 이상의 연관되는 리스팅된 아이템의 임의의 그리고 모든 가능한 조합을 지칭하는 것임이 또한, 이해될 것이다. 용어들 "포함한다(includes)", "포함하는(including)", "포함한다(comprises)" 및/또는 "포함하는(comprising)"은, 본 명세서에서 사용되는 경우 명시된 특징, 정수, 단계, 동작, 요소 및/또는 컴포넌트의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트 및/또는 이들의 그룹의 존재나 추가를 배제하지 않는다는 것이 또한, 이해될 것이다.
본 명세서에서 사용되는 것처럼, 용어 "if"는 선택적으로 문맥에 따라 "when" 또는 "upon" 또는 "결정에 응답하여" 또는 "감지에 응답하여" 또는 "결정에 따라"를 의미하는 것으로 해석된다. 유사하게, 구절 "if it is determined" 또는 "if [a stated condition or event] is detected"는 문맥에 따라 선택적으로 "결정하면" 또는 "결정에 응답하여" 또는 "[the stated condition or event]를 감지하면" 또는 "[the stated condition or event]의 감지에 응답하여" 또는 "[a stated condition or event]가 감지된다는 결정에 따라"를 의미하는 것으로 해석된다.
본 명세서에 사용되는 바와 같이, 용어 “예시적인”은 예시, 사례 또는 설명으로서의 역할을 하는”의 의미이며, “그 종류의 최선을 대표하는”의 의미가 아니다.
도 1은 일부 실시예에 따른 소셜 네트워크의 네트워크 아키텍처(100)의 예시를 도시하는 블록도이다. 네트워크 아키텍처(100)는 하나 이상의 네트워크(106)(예컨대, 인터넷, 셀룰러 전화 네트워크, 모바일 데이터 네트워크, 다른 광역 네트워크, 근거리 네트워크, 대도시 네트워크 등)로 전자적 소셜 네트워크 시스템(108)에 통신가능하게 연결된 다수의 클라이언트 장치(“클라이언트 시스템”, “클라이언트 컴퓨터” 또는 “클라이언트”로도 불림)(104-1, 104-2, ..., 104-n)를 포함한다. 일부 실시예에서, 하나 이상의 네트워크(106)는 공공 통신 네트워크(예컨대, 인터넷 및/또는 셀룰러 데이터 네트워크), 사설 통신 네트워크(예컨대, 사설 LAN 또는 임대 회선) 또는 이러한 통신 네트워크의 조합을 포함한다.
일부 실시예에서, 클라이언트 장치(104-1, 104-2, ..., 104-n)는 스마트 워치, 개인용 디지털 정보 단말기, 휴대용 미디어 플레이어, 스마트폰, 태블릿 컴퓨터, 2D 게임 장치, 3D(예컨대, 가상 현실) 게임 장치, 랩탑 컴퓨터, 데스크탑 컴퓨터, 하나 이상의 프로세서가 내장됐거나 연결된 텔레비전, 차량 내 정보 시스템(예컨대, 내비게이션, 오락 및/또는 다른 정보를 제공하는 차량 내 컴퓨터 시스템) 및/또는 소셜 네트워크 시스템(108)과 통신하는데 사용될 수 있는 다른 적절한 컴퓨팅 장치와 같은 컴퓨팅 장치이다. 따라서, 클라이언트 장치(104-1, 104-2, ..., 104-n)의 일부 또는 전부는 모바일 장치일 수 있다. 일부 실시예에서, 소셜 네트워크 시스템(108)은 컴퓨터 서버와 같은 단일 컴퓨팅 장치일 수 있는 반면, 다른 실시예에서는 소셜 네트워크 시스템(108)은 함께 작업하여 서버 시스템의 동작을 수행하는 복수의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅)로 구현된다.
사용자(102-1, 102-2, ..., 102-n)는 클라이언트 장치(104-1, 104-2, ..., 104-n)를 사용하여 소셜 네트워크 시스템(108)에 접속하고 소셜 네트워크 시스템(108)에 의해 제공되는 대응하는 소셜 네트워킹 서비스에 참여한다. 예를 들어, 하나 이상의 클라이언트 장치(104-1, 104-2, ..., 104-n)는 소셜 네트워킹 서비스에 접속하는데 사용될 수 있는 웹 브라우저 애플리케이션을 실행한다. 다른 예시로, 하나 이상의 클라이언트 장치(104-1, 104-2, ..., 104-n)는 소셜 네트워킹 서비스 전용의 소프트웨어 애플리케이션(예컨대, iPhone, Android 또는 Windows 스마트폰이나 태블릿에서 실행되는 Facebook 소셜 네트워킹 애플리케이션과 같은 스마트폰이나 태블릿에서 실행되는 소셜 네트워킹 “앱”)을 실행한다.
클라이언트 장치(104-1, 104-2, ..., 104-n)와 상호작용하는 사용자는 텍스트 코멘트(예컨대, 상태, 업데이트, 발표, 답글, 위치 “체크인”, 개인적/그룹 메시지), 사진, 비디오, 오디오 파일, 링크, 문서 및/또는 다른 전자 컨텐츠를 제공 및/또는 소비(예컨대, 게시, 쓰기, 열람, 발행, 방송, 홍보, 추천, 공유)함으로써 소셜 네트워크 시스템(108)에 의해 제공되는 소셜 네트워킹 서비스에 참여할 수 있다. 일부 실시예에서, 사용자는 소셜 네트워크 시스템(108)에 의해 제공되는 소셜 네트워킹 서비스의 페이지, 그룹, 이벤트, 메시지 게시판, 피드, 애플리케이션 및/또는 사용자 프로필과 상호작용할 수 있다. 소셜 네트워킹 서비스의 사용자는 소셜 네트워킹 서비스의 다른 사용자에 의해 게시된 정보에 주석을 달 수 있다(예컨대, 다른 사용자의 게시물을 추천 또는 “좋아요”하거나 다른 사용자에 의한 게시물에 코멘트). 일부 실시예에서, 정보는 소셜 네트워크 시스템(108) 외부의 시스템 및/또는 서비스에 의해 사용자를 대신하여 게시될 수 있다. 예를 들어, 사용자는 영화 리뷰 웹사이트에 영화의 리뷰를 게시할 수 있고, 적절한 권한으로 웹사이트가 사용자를 대신하여 소셜 네트워크 시스템(108)에 리뷰를 크로스-게시할 수 있다. 다른 실시예에서, 모바일 클라이언트 장치 상에서 실행되는 소프트웨어 애플리케이션은 적절한 권한으로 GPS(global positioning system) 또는 다른 지리적 위치 기능(예컨대, Wi-Fi 또는 하이브리드 위치 시스템)을 사용하여 사용자의 위치를 결정하고 소셜 네트워크 시스템(108)에 사용자의 위치(예컨대, “집에서”, “직장에서” 또는 “San Francisco, CA에서”)를 업데이트하고 및/또는 사용자의 위치로부터 도출되거나 사용자의 위치에 기반한 정보로 소셜 네트워크 시스템(108)을 업데이트할 수 있다. 클라이언트 장치(104-1, 104-2, ..., 104-n)와 상호작용하는 사용자는 또한 소셜 네트워크 시스템(108)에 의해 제공되는 소셜 네트워킹 서비스를 사용하여 사용자의 그룹을 정의할 수 있다. 클라이언트 장치(104-1, 104-2, ..., 104-n)와 상호작용하는 사용자는 또한 소셜 네트워크 시스템(108)에 의해 제공되는 소셜 네트워킹 서비스를 사용하여 서로 통신 및 협력할 수 있다.
일부 실시예에서, 네트워크 아키텍처(100)는 제3자 서버(110-1, 110-2, ..., 110-m)도 포함한다. 일부 실시예에서, 주어진 제3자 서버(110)는 직접 또는 소셜 네트워크 시스템(108)과 함께 웹 페이지를 클라이언트 장치(104)에 제공하는 제3자 웹사이트를 호스팅하는데 사용된다. 일부 실시예에서, 소셜 네트워크 시스템(108)은 인라인 프레임(“아이프레임”)을 사용하여 사용자의 소셜 네트워크 세션 내에서 독립적인 웹사이트를 네스팅한다. 일부 실시예에서, 주어진 제3자 서버는 직접 또는 소셜 네트워크 시스템(108)과 함께 클라이언트 장치(104)에 의해 사용되는 제3자 애플리케이션을 호스팅하는데 사용된다. 일부 실시예에서, 소셜 네트워크 시스템(108)은 아이프레임을 사용하여 제3자 개발자가 제3자 서버(110)에 의해 개별적으로 호스팅되지만 사용자(102)의 소셜 네트워킹 세션 내에서 동작하고 소셜 네트워크 시스템(108)의 사용자의 프로필을 통해 접속하는 애플리케이션을 생성할 수 있게 한다. 예시적인 제3자 애플리케이션은 책, 비즈니스, 통신, 콘테스트, 교육, 오락, 패션, 금융, 음식과 음료, 게임, 건강과 운동, 라이프스타일, 지역 정보, 영화, 텔레비전, 음악과 오디오, 뉴스, 사진, 비디오, 생산성, 참조 자료, 보안, 쇼핑, 스포츠, 여행, 유틸리티 등을 위한 애플리케이션을 포함한다. 일부 실시예에서, 주어진 제3자 서버(110)는 직접 또는 소셜 네트워크 시스템(108)과 함께 클라이언트 장치(104)에 의해 사용되는 기업 시스템을 호스팅하는데 사용된다. 일부 실시예에서, 주어진 제3자 서버(110)는 제3자 컨텐츠(예컨대, 뉴스 기사, 리뷰, 메시지 피드 등)을 제공하는데 사용된다.
일부 실시예에서, 주어진 제3자 서버(110)는 단일 컴퓨팅 장치인 반면, 다른 실시예에서, 주어진 제3자 서버(110)는 함께 작업하여 서버 시스템의 동작을 수행하는 복수의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅)로 구현된다.
도 2는 일부 실시예에 따른 소셜 네트워크 시스템(108)의 예시를 도시하는 블록도이다. 소셜 네트워크 시스템(108)은 일반적으로 하나 이상의 프로세싱 유닛(프로세서 또는 코어)(202), 하나 이상의 네트워크 또는 다른 통신 인터페이스(204), 메모리(206) 및 이들 컴포넌트를 상호연결하는 하나 이상의 통신 버스(208)를 포함하는 서버 시스템이다. 통신 버스(208)는 선택적으로 시스템 컴포넌트간 상호연결하고 통신을 제어하는 회로(때때로 칩셋으로 부른다)를 포함한다. 소셜 네트워크 시스템(108)은 선택적으로 사용자 인터페이스(도시되지 않음)를 포함한다. 사용자 인터페이스는 만약 제공되는 경우, 디스플레이 장치를 포함할 수 있고 선택적으로 키보드, 마우스, 트랙패드 및/또는 입력 버튼과 같은 입력을 포함한다. 대안적으로 또는 추가로, 디스플레이 장치는 디스플레이가 터치-감응 디스플레이인 경우 터치 감응 표면을 포함한다.
메모리(206)는 DRAM, SRAM, DDR RAM이나 다른 랜덤 액세스 솔리드 스테이트 메모리 장치와 같은 고속 랜덤 액세스 메모리를 포함하고; 하나 이상의 자기 디스크 저장 장치, 광학 디스크 저장 장치, 플래시 메모리 장치 및/또는 다른 비휘발성 솔리드 스테이트 저장 장치와 같은 비휘발성 메모리를 포함할 수 있다. 메모리(206)는 선택적으로 프로세서(들)(202)로부터 원격으로 위치한 하나 이상의 저장 장치를 포함할 수 있다. 메모리(206), 또는 대안적으로 메모리(206) 내의 비휘발성 메모리 장치(들)는 비일시적 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 실시예에서, 메모리(206) 또는 메모리(206)의 컴퓨터 판독가능한 저장 매체는 다음 프로그램, 모듈 및 데이터 구조, 또는 그 서브셋 또는 슈퍼셋을 저장한다.
● 다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 작업을 수행하기 위한 프로시저를 포함하는 운영체제(210);
● 하나 이상의 통신 네트워크 인터페이스(204)(유선 또는 무선) 및 하나 이상의 통신 네트워크(예컨대, 하나 이상의 네트워크(106))을 통해 소셜 네트워크 시스템(108)을 다른 컴퓨터로 연결하기 위해 사용되는 네트워크 통신 모듈(212);
● 소셜 네트워크와 연관된 데이터를 저장하기 위한 소셜 네트워크 데이터베이스(214)로서, 예컨대:
○ 사용자 정보(218)와 같은 엔티티 정보(216);
○ 연결 정보(220); 및
○ 다음을 포함하는 컨텐츠(222):
■ 텍스트 코멘트(예컨대, 게시물, 상태, 업데이트, 발표, 답글, 위치 “체크인”, 개인적/그룹 메시지), 사진, 비디오, 오디오 파일, 링크, 문서 및/또는 다른 디지털 전자 컨텐츠와 같은 사용자 컨텐츠(224); 및/또는
■ 뉴스 기사(226)
● 다음을 포함하는 소셜 네트워킹 서비스, 소셜 미디어 애플리케이션 및 관련 특징을 제공하기 위한 소셜 네트워크 서버 모듈(228)(예컨대, 클라이언트 장치(104) 상의 브라우저 모듈(338) 또는 소셜 네트워크 클라이언트 모듈(340)(도 3)과 함께):
○ 클라이언트 장치(104)의 사용자(102)를 소셜 네트워크 시스템(108)에 로그인시키기 위한 로그인 모듈(230); 및
○ 다음을 포함하는 디스플레이하기 위해 클라이언트 장치(104)로 전송될 컨텐츠를 제공하기 위한 컨텐츠 피드 관리자(232):
■ 이미지, 비디오, 오디오 파일, 코멘트, 상태 메시지, 링크, 애플리케이션 및/또는 다른 엔티티 정보(216), 연결 정보(220) 또는 컨텐츠(222)와 같은 소셜 네트워크 데이터베이스(214) 내의 객체를 설명하기 위한 컨텐츠 생성자 모듈(234); 및
■ 디스플레이하기 위하여 클라이언트 장치(104)로 전송될 정보/컨텐츠를 선택하기 위한 컨텐츠 선택자 모듈(236); 및
● 소셜 네트워크 시스템의 사용자가 소셜 네트워크의 컨텐츠 및 다른 사용자를 검색할 수 있게 하기 위한 검색 모듈(238).
소셜 네트워크 데이터베이스(214)는 그래프, 차원형, 플랫, 계층형, 네트워크, 객체 지향, 관계형 및/또는 XML 데이터베이스와 같은 하나 이상의 타입의 데이터베이스에 소셜 네트워크와 연관된 데이터를 저장한다.
일부 실시예에서, 소셜 네트워크 데이터베이스(214)는 그래프 데이터베이스에서 에지로 표현되는 엔티티 정보(216) 및 그래프 데이터베이스에서 노드로 표현되는 연결 정보(220)를 가지는 그래프 데이터베이스를 포함한다. 그래프 데이터베이스는 복수의 노드뿐만 아니라 대응하는 노드 간의 연결을 정의하는 복수의 에지를 포함한다. 일부 실시예에서, 노드 및/또는 에지 자체가 대응하는 엔티티에 대한 식별자, 속성 및 정보를 포함하는 데이터 객체이고, 일부는 클라이언트 장치(104)에서 대응하는 프로필 페이지나 소셜 네트워킹 서비스의 다른 페이지 상에 렌더링된다. 일부 실시예에서, 노드도 클라이언트 장치(104)에서 각 노드에 대응하는 페이지의 렌더링과 관련하여 컨텐츠를 렌더링하기 위하여 다른 객체, 데이터 구조 또는 리소스로의 포인터나 참조를 포함한다.
엔티티 정보(216)는 사용자 프로필, 로그인 정보, 사생활 및 다른 설정, 전기적(biographical) 데이터 등과 같은 사용자 정보(218)를 포함한다. 일부 실시예에서, 주어진 사용자에 대하여, 사용자 정보(218)는 사용자의 이름, 프로필 사진, 연락처 정보, 생일, 성별, 혼인 상태, 가족 상태, 직장, 학력, 기호, 관심사 및/또는 다른 인구통계적 정보를 포함한다.
일부 실시예에서, 엔티티 정보(216)는 물리적 위치(예컨대, 레스토랑, 극장, 랜드마크, 도시, 주 또는 나라), 실제 또는 기적 재산(예컨대, 조각, 그림, 영화, 게임, 노래, 아이디어/컨셉, 사진 또는 서면 작업), 비즈니스, 사람들의 그룹 및/또는 비즈니스의 그룹에 대한 정보를 포함한다. 일부 실시예에서, 엔티티 정보(216)는 오디오 파일, 비디오 파일, 디지털 사진, 텍스트 파일, 구조화된 문서(예컨대, 웹 페이지) 또는 애플리케이션과 같은 리소스에 대한 정보를 포함한다. 일부 실시예에서, 리소스는 소셜 네트워크 시스템(108)(예컨대, 컨텐츠(222))에 또는 제3자 서버(110)와 같은 외부 서버 상에 존재한다.
일부 실시예에서, 연결 정보(220)는 소셜 네트워크 데이터베이스(214) 내의 엔티티 간의 관계에 대한 정보를 포함한다. 일부 실시예에서, 연결 정보(220)는 그래프 데이터베이스의 노드 쌍을 연결하는 에지에 관한 정보를 포함한다. 일부 실시예에서, 노드 쌍을 연결하는 에지는 노드 쌍 간의 관계를 나타낸다.
일부 실시예에서, 에지는 노드 쌍 간의 관계에 대응하는 하나 이상의 데이터 객체 또는 속성을 포함하거나 나타낸다. 예를 들어, 제2 사용자가 제1 사용자의 “친구”임을 제1 사용자가 표시할 때, 소셜 네트워크 시스템(108)은 제2 사용자에게 “친구 요청”을 전송한다. 만약 제2 사용자가 “친구 요청”을 확인하면, 소셜 네트워크 시스템(108)은 그래프 데이터베이스의제1 사용자의 노드와 제2 사용자의 노드를 연결하는 에지를 제1 사용자와 제2 사용자가 친구임을 표시하는 연결 정보(220)로서 생성하고 저장한다. 일부 실시예에서, 연결 정보(220)는 친구관계, 가족관계, 비즈니스나 직장 관계, 팬 관계, 팔로워 관계, 방문자 관계, 구독자 관계, 상위/하위 관계, 호혜 관계, 비-상호 관계, 다른 적절한 타입의 관계 또는 둘 이상의 이러한 관계를 나타낸다.
일부 실시예에서, 사용자 노드와 다른 엔티티 노드 간의 에지는 사용자 노드의 사용자에 의해 다른 엔티티 노드에 대해 수행된 특정 행위 또는 활동에 대한 연결 정보를 나타낸다. 예를 들어, 사용자는 다른 노드의 엔티티를 “좋아요”하거나 “참석”, “재생”, “청취”, “요리”, “근무” 또는 “시청”할 수 있다. 다른 노드의 엔티티에 대응하는 소셜 네트워킹 페이지의 페이지는 예컨대 선택가능한 “좋아요”, “체크인” 또는 “즐겨찾기에 추가” 아이콘을 포함할 수 있다. 사용자가 이들 아이콘 중 하나를 클릭한 후, 소셜 네트워크 시스템(108)은 대응하는 사용자 행위에 응답하여 “좋아요” 에지, “체크인” 에지 또는 “즐겨찾기” 에지를 생성할 수 있다. 다른 예로, 사용자는 특정한 애플리케이션(예컨대, 온라인 음악 애플리케이션)을 사용하여 특정 곡을 들을 수 있다. 이 경우, 소셜 네트워크 시스템(108)은 사용자에 대응하는 사용자 노드와 곡 및 애플리케이션에 대응하는 엔티티 노드 사이에 “청취했음” 에지 및 “사용했음” 에지를 각각 생성하여 사용자가 곡을 청취했고 애플리케이션을 사용했음을 표시할 수 있다. 나아가, 소셜 네트워크 시스템(108)은 곡 및 애플리케이션에 대응하는 엔티티 노드 간에 “재생했음” 에지를 생성하여 특정 곡이 특정 애플리케이션에 의해 재생됐음을 표시할 수 있다.
일부 실시예에서, 컨텐츠(222)는 텍스트(예컨대, ASCII, SGML, HTML), 이미지(예컨대, jpeg, tif 및 gif), 그래픽(예컨대, 벡터 기반 또는 비트맵), 오디오, 비디오(예컨대, mpeg), 다른 멀티미디어 및/또는 그 조합을 포함한다. 일부 실시예에서, 컨텐츠(222)는 실행가능한 코드(예컨대, 브라우저 윈도우 또는 프레임 내에서 실행가능한 게임), 포드캐스트, 링크 등을 포함한다.
일부 실시예에서, 소셜 네트워크 서버 모듈(228)은 웹이나 HTTP(hypertext Transfer Protocol) 서버, FTP(File Transfer Protocol) 서버뿐만 아니라 CGI(Common Gateway Interface) 스크립트, PHP(PHP Hyper-text Preprocessor), ASP(Active Server Pages), HTML(Hyper Text Markup Language), XML(Extensible Markup Language), Java, JavaScript, AJAX(Asynchronous JavaScript and XML), XHP, Javelin, WURFL(Wireless Universal Resource File) 등을 이용해 구현되는 웹 페이지와 애플리케이션을 포함한다.
도 3은 일부 실시예에 따른 클라이언트 장치(104)(예컨대, 모바일 장치)의 예시를 도시하는 블록도이다. 클라이언트 장치(104)는 일반적으로 하나 이상의 프로세싱 유닛(프로세서 또는 코어)(302), 하나 이상의 네트워크나 다른 통신 인터페이스(304), 메모리(306) 및 이들 컴포넌트를 상호연결하기 위한 하나 이상의 통신 버스(308)를 포함한다. 통신 버스(308)는 선택적으로 시스템 컴포넌트간 상호연결하고 통신을 제어하는 회로(때때로 칩셋으로 부른다)를 포함한다. 클라이언트 장치(104)는 사용자 인터페이스(310)를 포함한다. 사용자 인터페이스(310)는 일반적으로 디스플레이 장치(312)를 포함한다. 일부 실시예에서, 클라이언트 장치(104)는 키보드, 마우스 및/또는 다른 입력 버튼(316)과 같은 입력을 포함한다. 대안으로 또는 추가로, 일부 실시예에서 디스플레이 장치(312)는 터치-감응형 표면(314)을 포함하고, 이 경우 디스플레이 장치(312)는 터치-감응형 디스플레이이다. 터치-감응형 디스플레이(312)를 갖는 전자 장치에서, 물리적인 키보드는 선택적이다(예컨대, 소프트 키보드는 키보드 엔트리가 필요할 때 디스플레이될 수 있다). 사용자 인터페이스(310)는 또한, 오디오 출력 장치(318), 가령 스피커, 이어폰 또는 헤드폰에 연결된 오디오 출력 연결이나 스피커를 포함한다. 추가로, 일부 클라이언트 장치(104)는 키보드를 보충 또는 대체하기 위해 마이크로폰 및 음성 인식을 사용한다. 선택적으로, 클라이언트 장치(104)는 오디오(예컨대, 사용자로부터의 음성)을 캡처하기 위한 오디오 입력 장치(320)(예컨대, 마이크로폰)를 포함한다. 선택적으로, 클라이언트 장치(104)는 클라이언트 장치(104)의 위치를 결정하기 위한 위치 검출 장치(322), 예컨대 GPS(global positioning satellite)나 다른 지리적 위치 수신기를 포함한다. 클라이언트 장치(104)는 또한 선택적으로 카메라나 웹캠과 같은 이미지/비디오 캡처 장치(324)를 포함한다.
메모리(306)는 고속 랜덤 액세스 메모리, 가령 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 장치를 포함하며; 비-휘발성 메모리, 가령 하나 이상의 자기 디스크 저장 장치, 광 디스크 저장 장치, 플래시 메모리 장치, 또는 다른 비-휘발성 솔리드 스테이트 저장 장치를 포함할 수 있다. 메모리(306)는 선택적으로 프로세서(들)(302)로부터 원격으로 위치한 하나 이상의 저장 장치를 포함할 수 있다. 메모리(306) 또는 대안으로 메모리(306) 내의 비-휘발성 메모리 장치(들)는 비-일시적 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 실시예로, 메모리(306) 또는 메모리(306)의 컴퓨터 판독가능한 저장 매체는 이하의 프로그램, 모듈 및 데이터 구조, 또는 이들의 서브세트나 슈퍼세트를 저장한다:
● 다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 작업을 수행하기 위한 프로시저를 포함하는 운영체제(326);
● 하나 이상의 통신 네트워크 인터페이스(304)(유선 또는 무선) 및 인터넷, 셀룰러 전화 네트워크, 모바일 데이터 네트워크, 다른 광역 네트워크, 근거리 네트워크, 대도시 네트워크 등과 같은 하나 이상의 통신 네트워크를 통해 클라이언트 장치(104)를 다른 컴퓨터로 연결하기 위해 사용되는 네트워크 통신 모듈(328);
● 이미지/비디오 캡처 장치(324)에 의해 캡처된 각 이미지나 비디오를 처리하기 위한 이미지/비디오 캡처 모듈(330)(예컨대, 카메라 모듈)로서, 각 이미지나 비디오는 소셜 네트워크 시스템(108)으로 송신 또는 스트리밍될 수 있음(예컨대, 클라이언트 애플리케이션 모듈(336)에 의해);
● 오디오 입력 장치(320)에 의해 캡처된 오디오를 처리하기 위한 오디오 입력 모듈(332)(예컨대, 마이크로폰 모듈)로서, 각 오디오는 소셜 네트워크 시스템(108)으로 송신 또는 스트리밍될 수 있음(클라이언트 애플리케이션 모듈(336)에 의해);
● 클라이언트 장치(104)의 위치를 결정하고(예컨대, 위치 검출 장치(322)를 이용하여) 이 위치 정보를 다양한 애플리케이션(예컨대, 소셜 네트워크 클라이언트 모듈(340))에서 사용하기 위해 제공하기 위한 위치 검출 모듈(334)(예컨대, GPS, Wi-Fi 또는 하이브리드 위치 모듈); 및
● 다음 모듈(또는 명령어의 세트), 또는 그 서브셋이나 슈퍼셋을 포함하는 하나 이상의 클라이언트 애플리케이션 모듈(336):
○ 웹 사이트(예컨대, 소셜 네트워크 시스템(108)에 의해 제공되는 소셜 네트워킹 웹 사이트)에 접속하고, 열람하고, 상호작용하기 위한 웹 브라우저 모듈(338)(예컨대, Microsoft의 Internet Explorer, Mozilla의 Firefox, Apple의 Safari 또는 Google의 Chrome),
○ 소셜 네트워크(예컨대, 소셜 네트워크 시스템(108)에 의해 제공되는 소셜 네트워크), 소셜 미디어 애플리케이션 및 관련 특징에 인터페이스를 제공하기 위한 소셜 네트워크 클라이언트 모듈(340);
○ 다음을 포함하는, 클라이언트 장치(104)의 리소스(예컨대, 오디오 입력 장치(320), 위치 검출 장치(322), 이미지/비디오 캡처 장치(324) 및/또는 메모리(306)의 각 모듈)에 접근하도록 애플리케이션의 권한을 관리하는 권한 모듈(342):
■ 애플리케이션이 리소스에 접근하는 권한 및 조건을 저장하는 권한 표(344); 및
■ 애플리케이션에 의해 송신된 접근 요청 기록(346), 접근 요청에 응답하여 수신된 사용자 입력 및 접근 요청이 이뤄진 및/또는 사용자 입력이 수신된 때의 클라이언트 장치(104)에 대한 컨텍스트 정보; 및/또는
○ 다른 선택적 클라이언트 애플리케이션 모듈(348), 가령 워드 프로세싱, 캘린더작업, 맵핑, 날씨, 증권, 시간 관리, 가상 디지털 비서, 프레젠테이션, 숫자 입력(스프레드시트), 그림, 인스턴트 메시징, 이메일, 전화, 비디오 회의, 사진 관리, 비디오 관리, 디지털 음악 플레이어, 디지털 비디오 플레이어, 2D 게임, 3D(예컨대, 가상 현실) 게임, 전자책 리더, 및/또는 워크아웃 지원을 위한 애플리케이션.
일부 실시예에서, 권한 모듈(342)은 클라이언트 장치(104)의 사용자에게 애플리케이션(예컨대, 클라이언트 애플리케이션 모듈(336))이 클라이언트 장치(104)의 리소스에 접근하기 위한 권한을 요청하도록(예컨대, GUI(400)(도 4a)를 디스플레이함으로써) 구성된다. 권한 모듈(342)은 또한 애플리케이션이 리소스에 접근하는 권한을 허가/거부하는 사용자 입력을 수신하고, 수신된 사용자 입력에 응답하여 애플리케이션에게 권한을 허가/거부한다. 일부 실시예에서, 권한 모듈(342)은 리소스로부터 데이터를 검색하고 검색된 데이터를 요청 애플리케이션에 제공한다. 나아가, 일부 실시예에서, 권한 모듈(342)은 권한을 허가 또는 거부하는 사용자 지정 조건(예컨대, 허가된 위치, 허가된 사용자, 한번만 허가, 위치 해상도 등)을 관리하고, 이에 따라 조건을 사용하여 권한을 허가 또는 거부한다. 일부 구현에서, 권한 모듈(342)은 애플리케이션에 의해 전송된 접근 요청 횟수가 임계치를 만족하는지를 결정하고, 이에 따라 애플리케이션에 권한을 거부하고 및/또는 사용자에게 경고를 제공한다. 일부 실시예에서, 저장된 기록(예컨대, 기록 표(346)의)에 기반하여 권한 모듈(342)은 복수의 접근 요청에 관한 통계를 표시하고 및/또는 애플리케이션이 장치 리소스에 접근하는 권한을 허가 또는 거부하는 사용자 조건의 추천을 표시한다.
상기 식별된 모듈 및 애플리케이션 각각은 상술한 및/또는 이 애플리케이션에 서술된 방법(예컨대, 본 명세서에 서술된 컴퓨터 구현된 방법 및 다른 정보 처리 방법)의 하나 이상의 기능을 수행하기 위한 실행가능한 명령어의 세트에 대응한다. 이들 모듈(즉, 명령어들의 세트)은 분리된 소프트웨어 프로그램, 절차 또는 모듈로 구현될 필요는 없고, 따라서 이러한 모듈의 다양한 서브세트는 다양한 실시예에서 선택적으로 또는 조합되거나 아니면 재배치된다. 일부 실시예에서, 메모리(206 및/또는 306)은 상기 식별된 모듈 및 데이터 구조의 서브셋을 저장한다. 나아가, 메모리(206 및/또는 306)는 선택적으로 상술되지 않은 추가 모듈 및 데이터 구조를 저장한다.
이제 클라이언트 장치(예컨대, 도 3의 클라이언트 장치(104))에서 구현될 수 있는 GUI(graphical user interface)의 실시예 및 연관된 프로세스의 실시예에 주목한다.
도 4a-4b는 일부 실시예에 따른 장치 리소스의 접근 권한을 관리하고 요청 통계를 표시하기 위한 클라이언트 장치(104)의 디스플레이 상에 보여지는 GUI(400 및 410)의 예시를 도시한다. GUI(400 및 410)는 방법(600)(도 6)을 포함하여 후술되는 프로세스를 도시한다. 도 4a-4b가 GUI의 예시를 도시하지만, 다른 실시예에서 GUI는 도 4a-4b의 실시예와는 다른 배열로 사용자 인터페이스 요소를 디스플레이한다.
도 4a는 다른 애플리케이션이 클라이언트 장치(104-1)의 리소스에 접근하는 권한을 관리하기 위한 애플리케이션(예컨대, 권한 모듈(342)(도 3))의 GUI(400)의 예시를 도시한다. GUI(400)는 사용자가 클라이언트 장치(104-1)의 리소스에 접근하기 위한 권한을 명시하는 사용자 입력(예컨대, 사용자 인터페이스 요소(404)의 선택)을 제공할 수 있게 한다. GUI(400)는 권한 요청 프롬프트(402) 및 권한 및 장치 리소스 접근 권한을 허가 또는 거부하는 조건을 명시하기 위한 사용자 인터페이스 요소(404)를 포함한다.
일부 실시예에서, GUI(400)는 사용자가 특정 애플리케이션 특징을 이용하려고 시도하는데(예컨대, 지도 애플리케이션을 사용하여 현재 위치에서 목적지로의 방향 검색, 클라이언트 장치(104)의 현재 위치를 결정하기 위하여 클라이언트 장치(104)의 위치 검출 장치(322)(도 3)의 사용 요청) 응답하여 디스플레이된다. 일부 실시예에서, GUI(400)는 장치 리소스에 접근을 요청하는 백그라운드 프로세스를 실행하는 애플리케이션(권한 관리를 위한 애플리케이션과는 별개)에 응답하여 디스플레이된다.
일부 실시예에서, 권한 요청 프롬프트(402)는 사용자에게 애플리케이션이 장치 리소스에 접근할 권한을 제공하도록 요청하는 텍스트를 포함한다. 예를 들어, 권한 요청 프롬프트(402)는 클라이언트 장치(104-1)의 사용자에게 사용자가 “Application 01”에게 클라이언트 장치(104-1)의 현재 위치를 결정하기 위하여 위치 검출 장치(322) 및/또는 권한 표(344)에 접근할 권한을 허가할 것인지 여부를 묻는다. 접근 권한을 허가 또는 거부하는 다양한 장치 리소스가 도 6과 관련하여 훨씬 자세히 설명된다.
권한을 명시하도록 요청받는데 응답하여 사용자는 디스플레이된 사용자 인터페이스 요소(404) 중 임의의 것을 선택하여 권한을 명시할 수 있다. 각 사용자 인터페이스 요소(404)는 요청 애플리케이션(예컨대, “Application 01”)이 장치 리소스에 접근할 권한의 허가 또는 거부에 대응한다. 상이한 사용자 인터페이스 요소(404)가 리소스 접근 권한을 허가 또는 거부하는 상이한 조건에 대응하는데, 조건은 권한을 허가 또는 거부하는 세분화된 설정(예컨대, 권한이 허가 또는 거부되는 특정 횟수, 기간, 사용자, 위치, 위치 해상도 등)을 표현한다. 도 4a의 예시를 참조하면, 사용자 인터페이스 요소(404)의 선택은 사용자가 언제나 애플리케이션01의 리소스 접근을 허가하거나(예컨대, 404-1), 한번만 접근을 허가하거나(예컨대, 404-2), 언제나 접근을 거부하거나(예컨대, 404-3), 특정 기간 동안 접근을 허가하거나(예컨대, 404-4), 다른 선택적 권한 조건을 명시하도록(예컨대, 404-5) 할 수 있다. 사용자 인터페이스 요소(404-5)의 선택은 사용자가 명시할 수 있는 추가적 권한 조건(예컨대, 위치가 결정될 수 있는 특정 해상도, 지정된 사용자, 지정된 위치 등)의 디스플레이를 트리거링한다. 사용자는 단일 조건 또는 복수 조건을 명시할 수 있다. 권한을 허가 또는 거부하기 위한 다양한 권한 및 조건이 도 5a-5b 및 6과 관련하여 자세히 설명된다.
도 4b는 권한을 관리하기 위한 애플리케이션(예컨대, 권한 모듈(342))의 GUI(410)의 다른 예시를 도시한다. GUI(410)는 전자 장치 상의 애플리케이션(예컨대, 권한 모듈(342)(도 3) 이외의 다른 클라이언트 애플리케이션 모듈(336))에서 수신된 접근 요청에 대한 통계를 디스플레이한다. 도시된 바와 같이, GUI(410)는 애플리케이션에 대한 접근 요청 통계(예컨대, Application 01에 대한 섹션(412-1), 애플리케이션 02를 위한 섹션(412-2) 등) 및 각 애플리케이션에 대한 자세한 접근 요청 내역을 보기 위한 사용자 인터페이스 요소(414)를 디스플레이하기 위한 섹션(412)을 포함한다.
섹션(412)은 통계가 디스플레이되는 권한에 관한 세부사항(예컨대, 권한 표(344)(도 3 및 5a)에서 검색된)을 디스플레이한다. 이 예시에서, 섹션(412-1)은 권한이 생성된 날짜와 시간(“Permission Created On”), 접근이 허가됐는지 여부(“Access Grated”), 접근이 허가된 리소스(“Resource”), 접근이 허가된 기간(“Permitted Duration”), 접근이 허가된 위치(“Permission Location”), 허가된 사용자(“Permitted User”) 및 접근이 포어그라운드 또는 백그라운드 프로세스에서 허가됐는지 여부(“Foreground/Background”)를 포함한다. GUI(410)에 도시되지 않았더라도, 섹션(412)은 적용 가능하거나 사용자에 의해 명시된 다른 추가적인 파라미터나 조건을 디스플레이하도록 구성될 수 있다.
나아가, 섹션(412)은 애플리케이션(예컨대, 클라이언트 애플리케이션 모듈(336))에 의해 송신된 접근 요청의 다양한 통계를 디스플레이한다. 이 예시에서, 통계는 Application 01에 의해 클라이언트 장치(104-1)의 위치 검출 장치(322)(도 3)에 대한 접근 요청에 대해 도시된다. 통계는 Application 01에 의해 송신된 마지막 접근 요청 시간(“Time of Last Request”), 마지막 접근 요청이 송신된 위치(“Location of Last Request”), 마지막 접근 요청이 송신됐을 때 Application 01의 사용자(예컨대, 로그인한 사용자)(“Requesting User of Last Request”), 통계를 열람하는 날짜에 수신된 접근 요청의 수(“Number of Access Requests Today”) 및 권한이 생성됐을 때부터 수신된 접근 요청의 총 수(“Total Number of Access Requests”)를 포함한다. GUI(410)에 도시되지 않았더라도, 섹션(412)은 접근 요청의 다른 통계를 디스플레이하도록 구성될 수 있다.
애플리케이션에 대응하는 접근 요청 통계와 함께, 사용자에 의해 명시된 권한을 디스플레이함으로써, 사용자는 허가되고 정의된 접근 범위 밖에서 동작하는 잠재적으로 악의적인 애플리케이션을 식별할 수 있다. 사용자는 또한 어떤 애플리케이션이 장치 리소스에 접근하는데 있어 가장 리소스 집중적인지, 그리고 어떤 장치 리소스가 애플리케이션에 의해 가장 접근되는지 식별할 수 있다. 나아가, 접근 요청 통계에 기반하여, 권한을 관리하기 위한 애플리케이션(예컨대, 권한 모듈(342)(도 3))도 리소스에 접근하는 의심스러운 애플리케이션을 거부하고, 의심스러운 활동이 감지될 때 사용자에게 경고를 제공하고 및/또는 사용자에게 권한 추천을 표시할 수 있다.
섹션(412-1)은 또한 각 애플리케이션에 대한 자세한 접근 요청 내역을 열람하기 위한 선택적인 사용자 인터페이스 요소(414)를 포함한다. 예를 들어, 사용자 인터페이스 요소(414)를 선택하는 것은 Application 01에 의해 송신된 각 접근 요청의 자세한 목록을 포함하는 GUI(도시되지 않음)를 디스플레이하는데, 각 접근 요청은 저장된 기록(예컨대, 요청 시간, 요청 사용자, 요청 위치 등을 포함하는, 도 3 및 5b의 기록 표(346))에서 검색된 데이터와 함께 디스플레이된다.
도 5a-5b는 일부 실시예에 따른 권한 및 접근 요청 기록을 저장하는 데이터 구조의 예시를 도시한다. 일부 실시예에서, 권한 표(344)(도 5a)와 기록 표(346)(도 5b)는 클라이언트 장치의 하나 이상의 모듈 또는 서브 모듈(예컨대, 클라이언트 장치(104)의 메모리(306) 및/또는 권한 모듈(342)(도 3)의 서브 모듈)에 저장된다. 대안적으로, 일부 구현에서, 권한 표(344)와 기록 표(346)는 서버 시스템(예컨대, 소셜 네트워크 시스템(108)(도 3))의 모듈에 저장되어, 권한이 단일 사용자와 연관된 복수의 클라이언튼 장치에 의해 관리, 공유 및/또는 검색될 수 있다. 나아가, 일부 구현에서, 권한 표(344) 및 기록 표(346)는 추가 파라미터, 조건, 통계 및/또는 사용자가 명시한 권한이나 접근 요청에 대한 데이터와 같은 도 5a-5b에 도시되지 않은 추가 필드를 포함하고 저장하도록 구성된다.
도 5a는 권한 표(344)(예컨대, 클라이언트 장치(104)의 메모리(306)(도 3)에 저장된)를 도시하는데, 애플리케이션이 리소스에 접근하기 위한 권한을 저장한다. 도시된 바와 같이, 권한 표(344)의 엔트리는 각 애플리케이션이 장치 리소스에 접근하기 위한 권한에 대응한다.
권한은 애플리케이션(예컨대, 클라이언트 장치(104)의 클라이언트 애플리케이션 모듈(336)(도 3))이 그가 저장된 전자 장치의 리소스에 접근하기 위한 인가 또는 인가의 부재를 정의한다. 권한 표(344)의 각 엔트리는 각 권한이 정의된 애플리케이션(“Application ID”), 접근이 허가되거나 거부된 리소스(“Resource”), 리소스에 대한 접근이 허가 또는 거부됐는지 여부(“Permission”) 및 권한이 정의된 날짜와 시간(“Date/Time of Permission”)을 식별한다. 선택적으로, 권한 표(344)는 권한이 허가 또는 거부되는 조건을 명시할 수 있다. 예를 들어, 접근은 명시된 기간(“Duration”), 명시된 위치(“Location”) 및/또는 명시된 사용자(“User”)에 대해서만 허가될 수 있다. 나아가, 권한은 특정 해상도(위치 추적 리소스에 대하여 “Location Resolution”) 및/또는 포어그라운드 또는 백그라운드 프로세스(“Foreground/Background”)에 대하여 제한될 수 있다.
예시로서, “애플리케이션 01”이 클라이언트 장치(104)(예컨대, 위치 검출 장치(322)(도 3))의 GPS 장치(또는 다른 위성 항법 시스템 장치)에 접근하기 위한 권한은 “User_01”에 대해 무기한으로(“Always”) 허가된다. 권한은 클라이언트 장치(104)의 위치에서 반경 2000ft의 해상도로 제한되고, GPS 장치는 애플리케이션이 백그라운드 프로세스로서가 아닌 포어그라운드 프로세스(예컨대, 클라이언트 장치(104)의 현재 위치를 디스플레이하는 상호작용적 지도 애플리케이션)로 실행 중일 때만 접근될 수 있다. 나아가, 권한이 2014년 11월 25일 오전 2시 5분에 제공되었다(예컨대, 수신된 사용자 입력에 의하여).
도 5b는 기록 표(346)(예컨대, 클라이언트 장치(104)의 메모리(306)(도 3)에 저장된)를 도시하는데, 애플리케이션에 의해 전송된 접근 요청 기록을 저장한다. 이들 기록은 접근 요청 통계(예컨대, GUI(410)(도 4b)에 도시된 바와 같은)를 생성하는데 사용될 수 있다. 도시된 바와 같이, 기록 표(346)의 엔트리는 특정 접근 요청에 대응하는 식별 인덱스 번호(“Request Index #”), 장치 리소스에 접근을 요청하는 애플리케이션(“Application ID”), 접근이 요청된 리소스(“Resource”), 요청이 전송된 날짜와 시간(또는 대안적으로, 권한이 허가/거부된 때)(“Date/Time of Request”), 접근 요청이 송신된 때 요청 애플리케이션의 사용자(예컨대, 로그인한 사용자)(“Requesting User”), 접근 요청이 송신된 위치(“Location of Request”) 및 요청이 허가 또는 거부됐는지 여부(“Result of Request”)를 포함한다. 도시되지 않았더라도, 접근 요청의 결과에 관한 추가적인 세부사항이 기록 표(346)에 포함될 수 있다(예컨대, 허가된 기간, 허가된 위치 등).
예시로서, 접근 요청 “001”은 클라이언트 장치(104)의 GPS 장치(예컨대, 위치 검출 장치(322)(도 3))에 접근하기 위해 “Application 01”에 의해 송신된 요청에 대응한다. 상기 권한 표(344)의 예시를 계속하면, 요청에 응답하여, “Application 01”이 GPS 장치에 접근하기 위한 권한이 허가된다(예컨대, “Application 01”은 GPS 장치로의 접근이 무기한으로(“Always”) 허가된다). 권한은 접근 요청 “001”에 응답하여 2014년 11월 25일 오전 2시 5분에 (37.420591, -122.141330)의 GPS 좌표에 대응하는 위치에서 허가되었고, “User_01”이 “Application 01”을 사용 중이었다(또는 클라이언트 장치(104)를 사용 중이었다).
도 6은 일부 실시예에 따른 장치 리소스 접근 권한을 관리하는 방법(600)을 도시하는 흐름도이다. 방법(600)은 전자 장치(예컨대, 클라이언트 장치(104)가 단독 장치로서 동작하는 경우 클라이언트 장치(104)(도 1 및 3)) 상에서 수행된다. 도 6은 컴퓨터 메모리(예컨대, 클라이언트 장치(104)의 메모리(306)(도 3)) 또는 다른 컴퓨터 판독가능한 저장 매체에 저장된 명령어에 대응한다.
제1 애플리케이션(602-1)(예컨대, 클라이언트 애플리케이션 모듈(336)(도 3)과 같은 클라이언트 장치(104)의 모듈에 대응)은 제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위해 제1 요청을 제2 애플리케이션(602-2)(예컨대, 권한 모듈(342)에 대응)으로 전송한다(606). 제1 및 제2 애플리케이션(602-1 및 602-2)은 전자 장치의 운영체제 상에서 실행된다.
전자 장치의 리소스는 서브 장치, 컴포넌트, 특징, 애플리케이션 및/또는 장치에 의해 제공되는 다른 기능을 포함한다. 예시는 마이크로폰(예컨대, 오디오를 캡처하기 위한 오디오 입력 장치(320)(도 3)), 전자 장치의 메시징 애플리케이션(예컨대, SMS 텍스트 메시지를 송수신하기 위한 클라이언트 애플리케이션 모듈(348)), 전자 장치의 위치 추적 장치(예컨대, 클라이언트 장치(104)의 위치를 결정하기 위한 위치 검출 장치(322)) 및 전자 장치의 카메라(예컨대, 이미지나 비디오를 캡처하기 위한 이미지/비디오 캡처 장치(324))를 포함한다. 다른 예시는 각 서브 장치나 컴포넌트과 연관된 모듈(예컨대, 이미지/비디오 캡처 모듈(322), 오디오 입력 모듈(332) 및 위치 검출 모듈(334)(도 3))을 포함한다.
제1 요청에 응답하여, 제2 애플리케이션(602-2)는 전자 장치의 사용자(604)(예컨대, 클라이언트 장치(104-1)의 사용자(102-1)(도 1))에게 제1 애플리케이션(602-1)이 리소스에 접근하기 위한 권한을 요청한다(608). 예를 들어, GUI(400)(도 4a)가 권한 요청 프롬프트(402)와 함께 디스플레이되어, 사용자(604)가“Application 01”에 대한 권한을 명시하도록 요청한다.
일부 실시예에서, 제2 애플리케이션(602-2)은 제1 요청에 응답하여, 제1 애플리케이션(602-1)이 리소스에 접근을 허용하도록 현재 인가되어 있지 않다고 결정한다. 이 결정에 응답하여, 사용자(604)는 제1 애플리케이션(602-1)이 리소스에 접근하기 위한 권한을 요청받는다(608). 예를 들어, 제1 애플리케이션(602-1)(예컨대 “Application 01”, 클라이언트 애플리케이션 모듈(336)(도 3)에 대응)이 제2 애플리케이션(602-2)(예컨대, 권한 모듈(342))으로 클라이언트 장치(104)의 마이크로폰(예컨대, 오디오 입력 장치(320) 및/또는 대응하는 오디오 입력 모듈(332))에 접근하는 요청을 송신한다. 그 후 애플리케이션(602-2)은 권한 표(344)에서 마이크로폰에 접근하기 위한 애플리케이션(602-1)(“Application 01”)에 대응하는 임의의 권한을 검색한다. 만약 권한이 존재하지 않는다면, 제2 애플리케이션(602-2)은 사용자(604)에게 제1 애플리케이션(602-1)이 마이크로폰에 접근하기 위한 권한을 명시하도록 요청한다.
제2 애플리케이션(602-2)이 사용자에게 제1 애플리케이션(602-1)이 리소스에 접근하기 위한 권한을 요청한 후(608), 제1 애플리케이션(602-1)이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 제1 사용자 입력이 수신된다(610)(예컨대, 제2 애플리케이션(602-2)에 의해). 제1 사용자 입력에 응답하여, 장치는 제2 애플리케이션(602-2)을 사용하여 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가 또는 거부한다(614).
일부 실시예에서, 제2 애플리케이션(602-2)을 사용하여 제1 애플리케이션(602-1)이 리소스에 접근하도록 권한을 허가하는 것은 제2 애플리케이션(602-2)을 사용하여 리소스로부터 데이터를 검색하는 것을 포함한다. 그 후 제2 애플리케이션(602-2)는 데이터를 제1 애플리케이션(602-1)에 제공한다. 따라서, 제2 애플리케이션(602-2)은 제1 애플리케이션(602-1)이 리소스에 접근하는 프록시로서 동작한다(예컨대, 제2 애플리케이션(602-2)이 위치 검출 장치(322)로부터 GPS 좌표를 검색하고 GPS 좌표를 제1 애플리케이션(602-1)에 제공한다). 다른 구현에서, 제1 애플리케이션(602-1)가 인가 받은 후, 제1 애플리케이션(602-1)이 리소스에 직접, 제2 애플리케이션(602-2)과 독립적으로 접근한다.
조건은 리소스로의 접근에 부과된 제한 및/또는 접근이 허가되기 위해 만족되어야 할 요구 사항이다. 일부 실시예에서, 제1 사용자 입력이 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가 또는 거부하는 하나 이상의 조건을 명시한다(610). 조건은 제2 애플리케이션(602-2)에 할당된 메모리에(예컨대, 권한 모듈(342)의 권한 표(344)(도 3)에) 저장된다(612). 제2 애플리케이션(602-2)은 제1 애플리케이션(602-1)로부터의 후속 요청에 응답하여 조건을 사용하여 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가할지 여부를 결정한다(614).
예를 들어, 제1 사용자 입력이 제1 애플리케이션(602-1)이 리소스에 접근하는 1회성 허가를 명시한다. 제1 사용자 입력에 응답하여 제2 애플리케이션(602-2)이 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가한 후, 제2 요청이 제1 애플리케이션(602-1)으로부터 제2 애플리케이션(602-2)으로 제1 애플리케이션(602-1)의 리소스 접근을 위해 전송된다. 제1 사용자 입력은 1회성 접근만을 인가하였기 때문에 제2 애플리케이션(602-2)은 이 접근 제공에 인가되지 않는다. 따라서, 제2 요청에 응답하여, 제2 애플리케이션(602-2)은 사용자에게 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 다시 요청한다. 제2 사용자 입력이 수신되어, 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가할지 여부를 표시한다. 제2 사용자 입력에 따라 제2 애플리케이션(602-2)은 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가 또는 거부한다. 일부 구현에서, 1회성 권한은 제1 애플리케이션(602-1)이 오직 단일 접근 요청에 대해 리소스에 접근하여 데이터를 검색하는 권한을 허가한다(예컨대, 이미지/비디오 캡처 장치(324)(도 3)으로 캡처된 단일 사진). 다른 구현에서, 1회성 권한은 제1 애플리케이션(602-1)이 요청 애플리케이션의 시작/실행의 단일 세션 또는 인스턴스에 대해 리소스에 접근하는 권한을 허가한다(예컨대, 지도 애플리케이션은 사용자가 지도 애플리케이션을 종료 및/또는 재시작할 때까지 클라이언트 장치(104)의 GPS 좌표에 접근할 수 있다).
일부 실시예에서, 제1 사용자 입력은 제1 애플리케이션(602-1)이 리소스에 접근이 허가되는 기간을 명시한다. 기간 동안, 제2 애플리케이션(602-2)은 제1 사용자 입력에 따라 반복적으로 자동으로 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가하는데 사용된다(즉, 추가적인 사용자 입력 요청 없이). 명시된 기간은 접근이 허가되는 날짜의 범위(예컨대, 2014년 11월 1일부터 2014년 12월 1일 사이에 접근이 허가됨), 시간의 범위(예컨대, 오후 1시부터 오후 5시 사이에 접근이 허가됨), 지정된 기한(예컨대, 한 시간 등) 또는 상술한 것들의 임의의 조합(예컨대, 지정된 날짜 범위에 대해 지정된 시간들 사이에 접근이 허가됨)일 수 있다. 대안적으로, 제1 사용자 입력은 제1 애플리케이션(602-1)이 리소스 접근이 거부되고, 기간 밖에서 접근이 인가되는 기간을 명시한다.
일부 실시예에서, 제1 사용자 입력은 제1 애플리케이션(602-1)의 리소스 접근이 허가되는 횟수를 명시한다. 횟수가 초과되지 않는 동안, 제2 애플리케이션(602-2)은 제1 사용자 입력에 따라 반복적으로 자동으로 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가하는데 사용된다. 예를 들어, 제1 사용자 입력은 제1 애플리케이션(602-1)로부터의 허가되는 접근 요청의 횟수를 명시한다.
일부 실시예에서, 제1 사용자 입력은 제1 애플리케이션(602-1)의 리소스 접근이 허가되는 허가 위치를 명시한다. 전자 장치의 감지된 위치가 허가 위치에 대응되는 동안, 제2 애플리케이션(602-2)이 제1 사용자 입력에 따라 반복적으로 자동으로 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가하는데 사용된다. 명시된 허가 위치는 좌표의 세트(예컨대, GPS 좌표), 감지된 위치와 연관된 장소, 단체 또는 엔티티(예컨대, 레스토랑, 사용자의 집, 사용자의 직장 등) 또는 요청이 허가되는 기정의된(예컨대, 지오펜스) 영역(예컨대, 사용자의 집에서 허가된 반경 0. 5마일)일 수 있다. 예로서, 제1 사용자 입력은 제1 애플리케이션(602-1)이 사용자의 집과 연관된 위치의 지정된 반경 밖에서 클라이언트 장치(104)의 카메라(예컨대, 이미지/비디오 캡처 장치(324)(도 3))에 접근하도록 허가된다고 명시한다. 그러므로, 만약 감지된 클라이언트 장치(104)의 위치가 사용자의 집의 지정된 반경 내의 GPS 좌표에 대응한다면, 제1 애플리케이션(602-1)은 클라이언트 장치(104)의 카메라의 접근이 거부될 것이다.
일부 실시예에서, 제1 사용자 입력은 제1 애플리케이션(602-1)이 리소스에 접근하도록 인가 받는 허가 사용자를 명시한다. 전자 장치의 사용자(604)가 허가 사용자로 결정될 때 또는 그 동안, 제2 애플리케이션(602-2)은 제1 사용자 입력에 따라 반복적으로 자동으로 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 허가한다. 전자 장치의 사용자는, 예컨대 제1 접근 요청시 제1 애플리케이션(602-1), 제2 애플리케이션(602-2) 또는 전자 장치의 운영체제에 로그인한 사용자이다. 일부 구현에서, 전자 장치의 사용자(604)가 허가 사용자인지 여부를 결정하는 것은 사용자 크리덴셜을 요청 및 검증하는 것(예컨대, 사용자에게 사용자 이름 및 암호, 생체 입력 또는 임의의 다른 식별 정보를 제공하도록 유도하는 것)을 포함한다.
일부 실시예에서, 조건(동작(610)에서 제1 사용자 입력에 의해 명시된)은 제1 애플리케이션(602-1)에 대응하는 포어그라운드 및/또는 백그라운드 프로세스에 의한(예컨대, 백그라운드 프로세스가 아닌 포어그라운드 프로세스에 의한, 또는 그 반대) 접근 요청을 허용한다. 포어그라운드 프로세스는 동작이 사용자(604)에게 관찰 가능한 애플리케이션 프로세스를 포함한다. 일부 구현에서, 포어그라운드 프로세스는 애플리케이션 자체가 시작/실행되고 현재 실행 중일 때만 실행되는 애플리케이션 프로세스이다. 예로서, 지도 애플리케이션의 포어그라운드 프로세스는 클라이언트 장치(104)의 현재 GPS 좌표를 검색하는 것 및 클라이언트 장치(104)의 사용자에게 지도 상의 대응되는 위치를 디스플레이하는 것을 포함한다. 반면, 백그라운드 프로세스는 동작(예컨대, 요청된 리소스의 접근을 포함)이 클라이언트 장치의 사용자에게 관찰 가능하지 않은 애플리케이션 프로세스를 포함한다. 일부 구현에서, 백그라운드 프로세스는 다른 포어그라운드/백그라운드 프로세스와 동시에 실행되고 및/또는 애플리케이션 자체가 시작/실행되지 않고 현재 실행 중이지 않은 애플리케이션 프로세스이다. 예를 들어, 애플리케이션의 백그라운드 프로세스는 사용자가 마이크로폰에 접근하는 애플리케이션을 사용하고 있지 않을 때도 계속하여 클라이언트 장치(104)의 마이크로폰(예컨대, 오디오 입력 장치(320)(도 3))을 사용하여 사용자의 음성을 캡처한다. 백그라운드 프로세스가 마이크로폰에 접근하는 것을 거부하는 것은 사용자 사생활의 잠재적인 침해를 방지한다.
일부 실시예에서, 리소스는 전자 장치의 위치 추적 장치(예컨대, 위치 검출 장치(322)(도 3))을 포함하고, 제1 사용자 입력은 위치 추적 장치 접근과 관련하여 제1 애플리케이션(602-1)에게 허용되는 해상도의 정도를 명시한다. 위치 추적 장치 접근과 관련된 해상도의 정도는, 예컨대 클라이언트 장치(104)의 위치가 결정될 수 있는 정확도(거리로)를 명시한다(예컨대, 클라이언트 장치(104)의 감지된 현재 위치는 클라이언트 장치(104)가 위치한, 지정된 반경을 가지는 영역을 기술한다). 일부 구현에서, 제1 사용자 입력은 거칠거나 미세한 위치 추적 해상도 사이에서(예컨대, 거칠고 미세한 해상도는 위치 추적의 기정의된 정확도에 대응하는데, 미세한 해상도는 거친 정확도보다 높은 정확도를 가진다), 또는 위치 추적을 위한 셋 이상의 사용가능한 해상도 사이에서 선택한다.
일부 구현에서, 제1 사용자 입력은 제1 애플리케이션(602-1)에 권한을 허가하는 조건의 조합을 명시한다. 예를 들어, 권한은 사용자(102-1)에 대하여만(허가 사용자 조건), 및 지정된 시간들 사이의 지정된 날짜에만(예컨대, 주중 하나 이상의 지정된 요일) 제1 애플리케이션(602-1)이 리소스에 접근하도록 허가된다. 애플리케이션에 권한을 허가 또는 거부하는 조건은 도 5a-5b에 도시되고 본 명세서에 서술된 것으로 제한되지 않고, 다른 제한, 요구 사항, 파라미터, 리소스 고유 제한 및/또는 리소스 접근에 있어 세부 수준을 포함할 수 있다.
일부 실시예에서, 전자 장치는 제1 애플리케이션(602-1)이 리소스에 접근하기 위해 제1 애플리케이션(602-1)에 의해 제2 애플리케이션(602-2)에 전송된 복수의 접근 요청의 기록을 저장한다(612)(예컨대, 기록 표(346)(도 3 및 5b)에).
일부 구현에서, 제2 애플리케이션(602-2)은 기간에 걸쳐 리소스에 접근하기 위해 제1 애플리케이션(602-1)에 의해 전송된 요청의 수를 결정한다(616)(예컨대, 기록 표(346)(도 3 및 5b)에 저장된 기록에 기반하여). 만약 요청의 횟수가 임계치를 만족하면(예컨대, 초과 또는 이상), 제2 애플리케이션(602-2)이 제1 애플리케이션(602-1)이 리소스에 접근하는 권한을 거부하는데 사용된다(618)(예컨대, 자동으로, 추가적인 사용자 입력 요청 없이). 임계치는 사용자 입력에 의해 명시될 수 있거나 제2 애플리케이션(602-2)에 코딩될 수 있다. 선택적으로, 임계치를 만족하는 요청의 횟수에 따라, 경고가 전자 장치의 사용자에게 제공된다(620)(예컨대, 경고가 클라이언트 장치(104)의 디스플레이에 표시되어 사용자에게 의심스러운 애플리케이션을 통지). 그러므로 임계치가 악의적인 애플리케이션(예컨대, 멀웨어)을 식별 및/또는 포함하는데 사용될 수 있다.
일부 구현에서, 저장된 기록에 기반하여, 하나 이상의 통계가 복수의 요청에 관한 사용자에게 표시된다(622). 예를 들어, 도 4b의 GUI(510)는 클라이언트 장치(104)의 디스플레이에 표시되는데, 저장된 기록에 기반한 접근 요청 통계를 포함한다.
일부 구현에서, 제1 애플리케이션(602-1)에 의해 전송된 복수의 접근 요청에 응답하여, 장치는 각 접근 요청에 대하여, 제1 애플리케이션에게 리소스 접근 권한을 허가 또는 거부하는 수신된 각 사용자 입력의 기록(사용자에게 권한을 요청한 후 사용자 입력이 수신된 경우) 및/또는 전자 장치에 대한 각 컨텍스트 정보의 기록을 저장한다(612)(예컨대, 기록 표(346)에). 컨텍스트 정보는 접근 요청이 전송되고 및/또는 접근 요청에 대한 권한이 허가 또는 거부되는 환경을 기술한다. 일부 실시예에서, 컨텍스트 정보는 각 사용자 입력을 수신할 때 전자 장치의 위치(예컨대, 사용자가 그 집에 있는 동안으로 권한이 명시됨) 및/또는 각 사용자 입력이 수신될 때의 날짜/시간(예컨대, 2014년 11월 25일 오후 2시 5분으로 권한이 명시됨)를 포함한다. 접근 요청, 제공된 권한 및 컨텍스트 정보의 기록의 예시는 도 5b의 기록 표(346)에 도시된다.
일부 실시예에서, 저장된 기록에 기반하여, 제1 애플리케이션(602-1)에 대해 리소스 접근 권한이 허가 또는 거부되는 조건의 추천이 사용자에게 표시된다(624). 전자 장치는 기록 표(346)에 저장된 기록에 기반하여 사용자에게 제공된 권한의 패턴을 식별하고, 권한이 허가 또는 거부되는 조건의 추천을 지능적으로 표시한다. 예를 들어, 권한 모듈(342)은 추천을 개발하는 기계 학습 알고리즘을 포함할 수 있다. 일례로, 기록 표(346)(도 3 및 5b)의 기록은 사용자가 언제나 제1 애플리케이션(602-1)이 클라이언트 장치(104)의 특정 리소스(예컨대, 오디오를 캡처하기 위한 오디오 입력 장치(320)(도 3))에 접근하는 권한(예컨대, 1회성 권한)을 허가함을 표시한다. 따라서, 제1 애플리케이션(602-1)으로부터 특정 리소스에 접근하는 후속 요청을 수신하는데 응답하여, 제2 애플리케이션(602-2)은 사용자에게 제1 애플리케이션(602-1)이 언제나 특정 리소스에 접근할 수 있도록 권한을 허가하는 것을 추천한다(예컨대, GUI 프롬프트를 디스플레이함으로써). 다른 예시에서, 제2 애플리케이션(602-2)은 사용자가 제1 애플리케이션(602-1)이 하나 이상의 조건 하에서 특정 리소스에 접근하는 권한을 항상 허가 또는 거부한다고 식별하고, 사용자가 하나 이상의 조건 하에서 제1 애플리케이션이 특정 리소스에 항상 접근할 수 있거나 절대 접근할 수 없도록 권한을 부여할 것을 추천한다. 또 다른 예시에서, 제2 애플리케이션(602-2)은 사용자가 복수의 애플리케이션이 특정 리소스에 접근하는 권한을 항상 허가 또는 거부하는 것을 식별하고(예컨대, 하나 이상의 조건 하에서 또는 조건과 관계 없이), 사용자가 모든 애플리케이션이 특정 리소스에 항상 접근할 수 있거나 절대 접근할 수 없도록 허용할 것을 추천한다(예컨대, 하나 이상의 조건 하에서 또는 조건과 관계 없이).
그러므로, 클라이언트의 운영체제와는 별개의 신뢰되는 허가 애플리케이션(예컨대, 권한 모듈(342)(도 3))을 사용함으로써, 사용자는 세분화된 수준에서 이러한 권한을 관리하며 어떤 애플리케이션이 장치 리소스에 접근하는 권한을 요청하는지 신뢰성 있게 식별할 수 있다. 그 결과, 사용자는 그 장치 상의 애플리케이션을 사용하는데 있어 더 높은 신뢰와 보안을 제공 받는다. 나아가, 운영체제와 별개의 독립적으로 신뢰받는 애플리케이션을 사용하는 것은 더 넓은 범위의 장치와의 높은 호환성을 가능하게 하는데, 신뢰받는 권한 애플리케이션은 권한 특징의 유연성과 투명성에 다르게 영향을 줄 수 있는 운영체제에 대한 시스템 차원의 업데이트와 분리될 것이기 때문이다.
상술한 시스템이 사용자에 대한 정보를 수집하는 상황에서, 사용자는 개인 정보(예컨대, 사용자의 선호에 대한 정보나 사용자의 소셜 컨텐츠 제공자에 대한 기여)를 수집할 수 있는 프로그램 또는 특징에 참여하거나 하지 않을 기회가 제공될 수 있다. 나아가, 일부 실시예에서, 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 익명화될 수 있어, 개인적으로 식별 가능한 정보는 제거된다. 예를 들어, 사용자의 신원은 익명화되어 개인적으로 식별 가능한 정보는 사용자에 대해 결정되거나 사용자와 연관될 수 없고, 따라서 사용자 선호나 사용자 상호작용은 특정 사용자와 연관되지 않고 일반화된다(예를 들어, 사용자 인구통계에 기반하여 일반화).
다양한 도면 중 일부는 특정 순서로 다수의 논리 단계를 도시하지만, 순서에 의존하지 않는 단계들이 다시 순서화될 수 있고, 다른 단계들이 조합될 수 있거나 세분화될 수 있다. 일부 재순서화 또는 다른 그룹화가 구체적으로 언급될 수 있는 한편, 다른 것들이 당업자에게 자명해질 수 있고, 따라서 본 명세서에 제시된 순서화 및 그룹화는 대안들의 완전한 목록이 아니다. 또한, 단계들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있음이 인식되어야 한다.
설명의 목적으로, 전술된 설명은 구체적인 실시예를 참조하여 기술되었다. 하지만, 위의 예시적인 논의는 개시된 정확한 형태로 본 청구범위의 범위를 제한하거나 완전한 것으로 의도된 것이 아니다. 전술한 교시내용에 비추어 다수의 수정 및 변형이 가능하다. 실시예들은 청구범위의 기초가 되는 원리 및 그들의 실제 응용을 가장 최선으로 설명하기 위해 선택되었고, 따라서 당업자가 고려되는 특정 사용에 적절하게 다양한 수정사항으로 실시예를 최선으로 사용하게 할 수 있다.

Claims (33)

  1. 하나 이상의 프로세서 및 하나 이상의 프로세서에 의한 실행을 위한 명령어를 저장하는 메모리를 가지는 전자 장치에서 실행되는 방법에 있어서:
    제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 제1 요청을 포함하는 복수의 요청을 전송하는 단계로서, 제1 및 제2 애플리케이션은 전자 장치의 운영체제 상에서 실행되는, 제1 요청을 포함하는 복수의 요청을 전송하는 단계;
    제1 요청을 포함하는 복수의 요청 중 각 요청에 응답하여, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하기 위한 권한을 전자 장치의 사용자에게 요청하는 단계;
    제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 각 사용자 입력을 수신하는 단계로서, 각 사용자 입력의 수신은 제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공하는 제1 사용자 입력을 수신하는 것을 포함하는, 각 사용자 입력을 수신하는 단계;
    각 요청, 각 사용자 입력 및 전자 장치에 대한 각 컨텍스트 정보의 기록을 저장하는 단계;
    제1 사용자 입력에 응답하여, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계; 및
    기록에 기반하여, 제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 조건의 추천을 사용자에게 제시하는 단계를 포함하고,
    조건은 리소스로의 접근에 부과된 제한 및/또는 접근이 허가되기 위해 만족되어야 할 요구 사항인, 방법.
  2. 청구항 1에 있어서,
    리소스는:
    전자 장치의 마이크로폰;
    전자 장치의 메시징 애플리케이션;
    전자 장치의 위치 추적 장치; 및
    전자 장치의 카메라로 이루어진 그룹에서 선택되는 방법.
  3. 청구항 1에 있어서,
    제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계는:
    제2 애플리케이션을 사용하여 리소스로부터 데이터를 검색하는 단계; 및
    제2 애플리케이션으로부터 제1 애플리케이션으로 데이터를 제공하는 단계를 포함하는 방법.
  4. 청구항 1에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하기 위한 1회성 권한을 명시하고, 방법은 제1 사용자 입력을 수신하고 제1 사용자 입력에 응답하여 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가한 뒤:
    제1 애플리케이션에 의한 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 제2 요청을 전송하는 단계;
    제2 요청에 응답하여, 제2 애플리케이션을 사용하여 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하는 단계;
    제1 애플리케이션이 리소스에 접근하는 권한을 허가할지 여부를 표시하는 제2 사용자 입력을 수신하는 단계; 및
    제2 애플리케이션을 사용하여 제2 사용자 입력에 따라 제1 애플리케이션이 리소스에 접근하는 권한을 허가 또는 거부하는 단계를 더 포함하는 방법.
  5. 청구항 1에 있어서,
    제1 요청에 응답하여, 제2 애플리케이션이 제1 애플리케이션의 리소스 접근을 허용하도록 현재 인가되어 있지 않다고 결정하는 단계를 더 포함하고,
    결정에 응답하여, 사용자는 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청 받는 방법.
  6. 청구항 1에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하도록 허가하는 기간을 명시하고, 방법은:
    기간 동안, 제1 사용자 입력에 따라 반복적으로 제2 애플리케이션을 사용하여 자동으로 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 더 포함하는 방법.
  7. 청구항 1에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하도록 허가되는 허가 위치를 명시하고, 방법은:
    전자 장치의 감지된 위치가 허가 위치에 대응하는 동안, 제1 사용자 입력에 따라 반복적으로 제2 애플리케이션을 사용하여 자동으로 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 더 포함하는 방법.
  8. 청구항 1에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하도록 인가되는 허가 사용자를 명시하고, 방법은:
    전자 장치의 사용자가 허가 사용자로 결정될 때, 제1 사용자 입력에 따라 반복적으로 제2 애플리케이션을 사용하여 자동으로 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 더 포함하는 방법.
  9. 청구항 1에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 조건을 명시하고,
    방법은:
    제2 애플리케이션에 할당된 메모리에 조건을 저장하는 단계; 및
    제1 애플리케이션으로부터의 후속 요청에 응답하여, 제2 애플리케이션에서, 조건을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가할지 여부를 결정하는 단계를 더 포함하는 방법.
  10. 청구항 9에 있어서,
    조건은 제1 애플리케이션에 대응하는 포어그라운드 프로세스에 의한 리소스 접근을 허용하지만 제1 애플리케이션에 대응하는 백그라운드 프로세스에는 그러하지 아니한 방법.
  11. 청구항 9에 있어서,
    조건은 제1 애플리케이션에 대응하는 백그라운드 프로세스에 의한 리소스 접근을 허용하지만 제1 애플리케이션에 대응하는 포어그라운드 프로세스에는 그러하지 아니한 방법.
  12. 청구항 1에 있어서,
    리소스는 전자 장치의 위치 추적 장치를 포함하고; 및
    제1 사용자 입력은 위치 추적 장치 접근과 관련하여 제1 애플리케이션에 대해 허용되는 해상도 정도를 명시하는 방법.
  13. 청구항 12에 있어서,
    제1 사용자 입력은 위치 추적을 위한 거친 또는 미세한 해상도 간에서 선택하는 방법.
  14. 청구항 1에 있어서,
    기간에 걸쳐 제1 애플리케이션에 의해 전송된 리소스에 접근하는 요청의 수를 결정하는 단계; 및
    임계치를 만족하는 요청의 수에 따라, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 거부하는 단계를 더 포함하는 방법.
  15. 청구항 14에 있어서,
    임계치를 만족하는 요청의 수에 따라, 전자 장치의 사용자에게 경고를 제공하는 단계를 더 포함하는 방법.
  16. 청구항 1에 있어서,
    제1 애플리케이션에 의한 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 복수의 요청을 전송하는 단계;
    복수의 요청의 기록을 저장하는 단계; 및
    기록에 기반하여, 복수의 요청에 관한 하나 이상의 통계를 사용자에게 표시하는 단계를 더 포함하고,
    복수의 요청은 제1 요청을 포함하는 방법.
  17. 삭제
  18. 청구항 1에 있어서,
    컨텍스트 정보는 각 사용자 입력이 수신될 때의 전자 장치의 위치 및 각 사용자 입력이 수신된 시간 중 적어도 하나를 포함하는 방법.
  19. 전자 장치에 있어서,
    하나 이상의 프로세서; 및
    하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하기 위한 메모리를 포함하고, 하나 이상의 프로그램은:
    제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 제1 요청을 포함하는 복수의 요청을 전송하는 것으로서, 제1 및 제2 애플리케이션은 전자 장치의 운영체제 상에서 실행되고;
    제1 요청을 포함하는 복수의 요청 중 각 요청에 응답하여, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하기 위한 권한을 전자 장치의 사용자에게 요청하고;
    제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 각 사용자 입력을 수신하는 것으로서, 각 사용자 입력의 수신은 제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공하는 제1 사용자 입력을 수신하는 것을 포함하고,
    각 요청, 각 사용자 입력 및 전자 장치에 대한 각 컨텍스트 정보의 기록을 저장하고,
    제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공하는 제1 사용자 입력에 응답하여, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가하고,
    기록에 기반하여, 제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 조건의 추천을 사용자에게 제시하기 위한 명령어를 포함하고,
    조건은 리소스로의 접근에 부과된 제한 및/또는 접근이 허가되기 위해 만족되어야 할 요구 사항인, 전자 장치.
  20. 전자 장치의 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 비일시적 컴퓨터 판독가능한 저장 매체로서, 하나 이상의 프로그램은 제1 애플리케이션과 구분되고, 제1 및 제2 애플리케이션이 실행되도록 구성된 전자 장치의 운영체제와는 구분되는 제2 애플리케이션에 대응되고, 하나 이상의 프로그램은:
    제1 애플리케이션으로부터 제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위한 제1 요청을 포함하는 복수의 요청을 수신하고,
    제1 요청에 응답하여, 전자 장치의 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하고,
    제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공하는 제1 사용자 입력에 응답하여, 제1 애플리케이션이 리소스에 접근하는 권한을 허가하기 위한 명령어를 포함하고,
    하나 이상의 프로그램은:
    제1 애플리케이션에 의한 전자 장치의 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 제1 요청을 포함하는 복수의 요청을 전송하는 것으로서, 제1 및 제2 애플리케이션은 전자 장치의 운영체제 상에서 실행되고;
    제1 요청을 포함하는 복수의 요청 중 각 요청에 응답하여, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하기 위한 권한을 전자 장치의 사용자에게 요청하고;
    제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 각 사용자 입력을 수신하는 것으로서, 각 사용자 입력의 수신은 제1 애플리케이션이 리소스에 접근하기 위한 권한을 제공하는 제1 사용자 입력을 수신하고;
    각 요청, 각 사용자 입력 및 전자 장치에 대한 각 컨텍스트 정보의 기록을 저장하고;
    제1 사용자 입력에 응답하여, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가하고;
    기록에 기반하여, 제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 조건의 추천을 사용자에게 제시하기 위한 명령어를 더 포함하고,
    조건은 리소스로의 접근에 부과된 제한 및/또는 접근이 허가되기 위해 만족되어야 할 요구 사항인, 비일시적 컴퓨터 판독가능한 저장 매체.
  21. 청구항 1 또는 청구항 2에 있어서,
    제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계는:
    제2 애플리케이션을 사용하여 리소스로부터 데이터를 검색하는 단계; 및
    제2 애플리케이션으로부터 제1 애플리케이션으로 데이터를 제공하는 단계를 포함하는 방법.
  22. 청구항 1 또는 청구항 2에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하기 위한 1회성 권한을 명시하고, 방법은 제1 사용자 입력을 수신하고 제1 사용자 입력에 응답하여 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가한 뒤:
    제1 애플리케이션에 의한 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 제2 요청을 전송하는 단계;
    제2 요청에 응답하여, 제2 애플리케이션을 사용하여 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하는 단계;
    제1 애플리케이션이 리소스에 접근하는 권한을 허가할지 여부를 표시하는 제2 사용자 입력을 수신하는 단계; 및
    제2 애플리케이션을 사용하여 제2 사용자 입력에 따라 제1 애플리케이션이 리소스에 접근하는 권한을 허가 또는 거부하는 단계를 더 포함하는 방법.
  23. 청구항 1 또는 청구항 2에 있어서,
    제1 요청에 응답하여, 제2 애플리케이션이 제1 애플리케이션의 리소스 접근을 허용하도록 현재 인가되어 있지 않다고 결정하는 단계를 더 포함하고,
    결정에 응답하여, 사용자는 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청 받는 방법.
  24. 청구항 1 또는 청구항 2에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하도록 허가하는 기간을 명시하고, 방법은:
    기간 동안, 제1 사용자 입력에 따라 반복적으로 제2 애플리케이션을 사용하여 자동으로 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 더 포함하는 방법.
  25. 청구항 1 또는 청구항 2에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하도록 허가되는 허가 위치를 명시하고, 방법은:
    전자 장치의 감지된 위치가 허가 위치에 대응하는 동안, 제1 사용자 입력에 따라 반복적으로 제2 애플리케이션을 사용하여 자동으로 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 더 포함하는 방법.
  26. 청구항 1 또는 청구항 2에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하도록 인가되는 허가 사용자를 명시하고, 방법은:
    전자 장치의 사용자가 허가 사용자로 결정될 때, 제1 사용자 입력에 따라 반복적으로 제2 애플리케이션을 사용하여 자동으로 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 단계를 더 포함하는 방법.
  27. 청구항 1 또는 청구항 2에 있어서,
    제1 사용자 입력은 제1 애플리케이션이 리소스에 접근하는 권한을 허가하는 조건을 명시하고,
    방법은:
    제2 애플리케이션에 할당된 메모리에 조건을 저장하는 단계; 및
    제1 애플리케이션으로부터의 후속 요청에 응답하여, 제2 애플리케이션에서, 조건을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 허가할지 여부를 결정하는 단계를 더 포함하고,
    바람직하게는 조건은 제1 애플리케이션에 대응하는 포어그라운드 프로세스에 의한 리소스 접근을 허용하지만 제1 애플리케이션에 대응하는 백그라운드 프로세스에는 그러하지 아니하고; 및/또는
    조건은 제1 애플리케이션에 대응하는 백그라운드 프로세스에 의한 리소스 접근을 허용하지만 제1 애플리케이션에 대응하는 포어그라운드 프로세스에는 그러하지 아니한 방법.
  28. 청구항 1 또는 청구항 2에 있어서,
    리소스는 전자 장치의 위치 추적 장치를 포함하고; 및
    제1 사용자 입력은 위치 추적 장치 접근과 관련하여 제1 애플리케이션에 대해 허용되는 해상도 정도를 명시하고,
    바람직하게는 제1 사용자 입력은 위치 추적을 위한 거친 또는 미세한 해상도 간에서 선택하는 방법.
  29. 청구항 1 또는 청구항 2에 있어서,
    기간에 걸쳐 제1 애플리케이션에 의해 전송된 리소스에 접근하는 요청의 수를 결정하는 단계; 및
    임계치를 만족하는 요청의 수에 따라, 제2 애플리케이션을 사용하여 제1 애플리케이션이 리소스에 접근하는 권한을 거부하는 단계를 더 포함하고,
    바람직하게는 임계치를 만족하는 요청의 수에 따라, 전자 장치의 사용자에게 경고를 제공하는 단계를 더 포함하는 방법.
  30. 청구항 1 또는 청구항 2에 있어서,
    제1 애플리케이션에 의한 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 복수의 요청을 전송하는 단계;
    복수의 요청의 기록을 저장하는 단계; 및
    기록에 기반하여, 복수의 요청에 관한 하나 이상의 통계를 사용자에게 표시하는 단계를 더 포함하고,
    복수의 요청은 제1 요청을 포함하는 방법.
  31. 청구항 1 또는 청구항 2에 있어서,
    제1 애플리케이션에 의한 리소스로의 접근을 위해 제1 애플리케이션으로부터 제2 애플리케이션으로 복수의 요청을 전송하는 단계;
    복수의 요청 중 각 요청에 응답하여, 사용자에게 제1 애플리케이션이 리소스에 접근하기 위한 권한을 요청하고 제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 각 사용자 입력을 수신하는 단계;
    각 요청, 각 사용자 입력 및 전자 장치에 대한 각 컨텍스트 정보의 기록을 저장하는 단계; 및
    기록에 기반하여, 제1 애플리케이션이 리소스에 접근하기 위한 권한을 허가 또는 거부하는 조건의 추천을 사용자에게 표시하는 단계를 더 포함하고,
    복수의 요청은 제1 요청을 포함하고,
    바람직하게는 컨텍스트 정보는 각 사용자 입력이 수신될 때의 전자 장치의 위치 및 각 사용자 입력이 수신된 시간 중 적어도 하나를 포함하는 방법.
  32. 하나 이상의 컴퓨터 판독가능한 비일시적 저장 매체로서, 실행될 때 청구항 1 또는 청구항 2에 따른 방법을 수행하도록 동작 가능한 소프트웨어를 포함하는 컴퓨터 판독가능한 비일시적 저장 매체.
  33. 하나 이상의 프로세서; 및 프로세서에 연결되고 프로세서에 의해 실행가능한 명령어를 포함하는 적어도 하나의 메모리를 포함하고, 프로세서는 명령어를 실행할 때 청구항 1 또는 청구항 2에 따른 방법을 수행하도록 동작가능한 시스템.
KR1020177021154A 2014-12-30 2014-12-31 모바일 장치 리소스에 접근하는 권한을 관리하기 위한 방법 및 시스템 KR102291201B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/586,072 US9977911B2 (en) 2014-12-30 2014-12-30 Methods and systems for managing permissions to access mobile device resources
US14/586,072 2014-12-30
PCT/US2014/073059 WO2016108911A1 (en) 2014-12-30 2014-12-31 Methods and systems for managing permissions to access mobile device resources

Publications (2)

Publication Number Publication Date
KR20170104145A KR20170104145A (ko) 2017-09-14
KR102291201B1 true KR102291201B1 (ko) 2021-08-20

Family

ID=56165707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177021154A KR102291201B1 (ko) 2014-12-30 2014-12-31 모바일 장치 리소스에 접근하는 권한을 관리하기 위한 방법 및 시스템

Country Status (10)

Country Link
US (1) US9977911B2 (ko)
JP (1) JP6727211B2 (ko)
KR (1) KR102291201B1 (ko)
CN (1) CN107430531B (ko)
AU (1) AU2014415583A1 (ko)
BR (1) BR112017014135A2 (ko)
CA (1) CA2972646A1 (ko)
IL (1) IL253215A0 (ko)
MX (1) MX369302B (ko)
WO (1) WO2016108911A1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886160B2 (en) * 2013-03-15 2018-02-06 Google Llc Managing audio at the tab level for user notification and control
US9473883B2 (en) 2014-05-31 2016-10-18 Apple Inc. Location service authorization and indication
US9591443B2 (en) * 2015-06-01 2017-03-07 Apple Inc. Location service management
US9836596B2 (en) * 2015-07-08 2017-12-05 Google Inc. Methods and systems for controlling permission requests for applications on a computing device
US9917841B1 (en) * 2015-07-30 2018-03-13 Sprint Communications Company L.P. Branding and improper operation detection on a user equipment
US9973502B2 (en) * 2015-09-18 2018-05-15 Rovi Guides, Inc. Methods and systems for automatically adjusting parental controls
US10127398B2 (en) * 2015-09-18 2018-11-13 Rovi Guides, Inc. Methods and systems for implementing parental controls
EP3369192B1 (en) * 2015-10-27 2021-05-19 BlackBerry Limited Monitoring resource access
US20170195250A1 (en) * 2016-01-06 2017-07-06 Google Inc. Automatic data restrictions based on signals
WO2017131617A1 (en) * 2016-01-25 2017-08-03 Entit Software Llc Confirmation message determinations
US11743203B2 (en) * 2016-02-17 2023-08-29 Blackberry Limited Managing resource access
US10489278B2 (en) * 2016-05-16 2019-11-26 Jpmorgan Chase Bank, N.A. Method and system for implementing an automation software testing and packaging framework with entitlements
US10838846B1 (en) 2016-05-16 2020-11-17 Jpmorgan Chase Bank, N.A. Method and system for implementing an automation software testing and packaging framework
US10956586B2 (en) * 2016-07-22 2021-03-23 Carnegie Mellon University Personalized privacy assistant
US10262157B2 (en) * 2016-09-28 2019-04-16 International Business Machines Corporation Application recommendation based on permissions
CN109690544B (zh) * 2016-10-14 2020-12-15 华为技术有限公司 用于跟踪跨多个执行环境的访问许可的装置和方法
US20180336467A1 (en) * 2017-07-31 2018-11-22 Seematics Systems Ltd System and method for enriching datasets while learning
US11403540B2 (en) * 2017-08-11 2022-08-02 Google Llc On-device machine learning platform
KR102405752B1 (ko) * 2017-08-23 2022-06-08 삼성전자주식회사 어플리케이션 프로그램의 권한을 제어하는 방법 및 전자 장치
US10853490B2 (en) * 2017-10-26 2020-12-01 Futurewei Technologies, Inc. Method and apparatus for managing hardware resource access in an electronic device
KR102477043B1 (ko) * 2017-11-08 2022-12-14 삼성전자주식회사 전자 장치 및 그의 제어 방법
US11989774B1 (en) 2017-11-20 2024-05-21 Wells Fargo Bank, N.A. Systems and methods for providing digital trusted data
WO2019195205A1 (en) * 2018-04-02 2019-10-10 Jpmorgan Chase Bank, N.A. Method and system for implementing an automation software testing and packaging framework with entitlements
US10831904B2 (en) * 2018-04-09 2020-11-10 International Business Machines Corporation Automatically discovering attribute permissions
CN108985088A (zh) * 2018-07-25 2018-12-11 江阴嘉恒软件技术有限公司 一种控制计算机数据访问的方法
JP7348289B2 (ja) * 2019-01-23 2023-09-20 華為技術有限公司 アプリケーション許可を管理する方法及び電子デバイス
US20200285761A1 (en) * 2019-03-07 2020-09-10 Lookout, Inc. Security policy manager to configure permissions on computing devices
US11301569B2 (en) 2019-03-07 2022-04-12 Lookout, Inc. Quarantine of software based on analysis of updated device data
JP7285185B2 (ja) * 2019-09-26 2023-06-01 株式会社ジェーシービー プログラム、情報処理装置、及び情報処理方法
US20210150052A1 (en) * 2019-11-18 2021-05-20 Salesforce.Com, Inc. Collecting, displaying, and/or storing information pertaining to consent
US11954186B2 (en) 2019-12-20 2024-04-09 Cambrian Designs, Inc. System and method for effectuating data countermeasures
CN114730447A (zh) * 2020-02-10 2022-07-08 松下知识产权经营株式会社 信息提供方法
US20210344664A1 (en) * 2020-04-29 2021-11-04 Motorola Mobility Llc Methods, Systems, and Electronic Devices for Selective Locational Preclusion of Access to Content
US11562052B2 (en) 2020-08-31 2023-01-24 Procore Technologies, Inc. Computing system and method for verification of access permissions
KR20220051981A (ko) * 2020-10-20 2022-04-27 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20220069715A (ko) * 2020-11-20 2022-05-27 삼성전자주식회사 전자 장치 및 접근 이벤트 시청각화 방법
US20220207636A1 (en) * 2020-12-24 2022-06-30 Mcafee, Llc Methods and apparatus for managing and online transactions involving personal data
KR102541033B1 (ko) * 2022-11-28 2023-06-13 프로티앤에스(주) 사용자 직책 및 업무 기반 pc 권한 제어 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006216061A (ja) * 2005-02-04 2006-08-17 Soc Francaise Du Radiotelephone 携帯電話におけるアプリケーション実行用のセキュリティ保護された管理方法
US20100242097A1 (en) * 2009-03-20 2010-09-23 Wavemarket, Inc. System and method for managing application program access to a protected resource residing on a mobile device
JP2012190394A (ja) * 2011-03-14 2012-10-04 Canon Inc 情報処理装置、情報処理方法及びプログラム
US8656465B1 (en) 2011-05-09 2014-02-18 Google Inc. Userspace permissions service

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678824B1 (en) * 1999-11-02 2004-01-13 Agere Systems Inc. Application usage time limiter
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
US7313822B2 (en) 2001-03-16 2007-12-25 Protegrity Corporation Application-layer security method and system
US7865884B1 (en) * 2005-06-03 2011-01-04 Apple Inc. Typed-data translation for platform independence
US9177124B2 (en) * 2006-03-01 2015-11-03 Oracle International Corporation Flexible authentication framework
US7676811B2 (en) * 2006-03-23 2010-03-09 Microsoft Corporation Ensuring thread affinity for interprocess communication in a managed code environment
US8141140B2 (en) * 2008-05-23 2012-03-20 Hsbc Technologies Inc. Methods and systems for single sign on with dynamic authentication levels
US8683554B2 (en) * 2009-03-27 2014-03-25 Wavemarket, Inc. System and method for managing third party application program access to user information via a native application program interface (API)
US8255991B1 (en) * 2009-08-17 2012-08-28 Google Inc. Computer application pre-permissioning
US8689277B2 (en) * 2010-01-13 2014-04-01 Andrew Llc Method and system for providing location of target device using stateless user information
WO2012048087A2 (en) 2010-10-06 2012-04-12 Citrix Systems, Inc. Mediating resource access based on a physical location of a mobile device
US20120222083A1 (en) * 2011-02-28 2012-08-30 Nokia Corporation Method and apparatus for enforcing data privacy
US9440144B2 (en) 2011-04-21 2016-09-13 Sony Interactive Entertainment Inc. User identified to a controller
US9053337B2 (en) * 2011-06-07 2015-06-09 Blackberry Limited Methods and devices for controlling access to a computing resource by applications executable on a computing device
US9317834B2 (en) * 2011-06-30 2016-04-19 Microsoft Technology Licensing, Llc User computing device with personal agent program for recommending meeting a friend at a service location based on current location, travel direction, and calendar activity
KR101295709B1 (ko) * 2011-08-24 2013-09-16 주식회사 팬택 백그라운드 프로세스에 대한 보안 정보 제공 장치 및 방법
US20130097203A1 (en) * 2011-10-12 2013-04-18 Mcafee, Inc. System and method for providing threshold levels on privileged resource usage in a mobile network environment
JP2013182500A (ja) * 2012-03-02 2013-09-12 Kddi Corp Api実行制御装置およびプログラム
US9411967B2 (en) 2012-08-24 2016-08-09 Environmental Systems Research Institute (ESRI) Systems and methods for managing location data and providing a privacy framework
US9424409B2 (en) * 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
ES2626552T3 (es) * 2013-08-23 2017-07-25 Huawei Device Co., Ltd. Método y aparato de gestión de permisos y terminal
US9230134B1 (en) * 2014-01-17 2016-01-05 Google Inc. Privacy setting metadata for application developers
US9489524B2 (en) * 2014-05-23 2016-11-08 Blackberry Limited Intra-application permissions on an electronic device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006216061A (ja) * 2005-02-04 2006-08-17 Soc Francaise Du Radiotelephone 携帯電話におけるアプリケーション実行用のセキュリティ保護された管理方法
US20100242097A1 (en) * 2009-03-20 2010-09-23 Wavemarket, Inc. System and method for managing application program access to a protected resource residing on a mobile device
JP2012190394A (ja) * 2011-03-14 2012-10-04 Canon Inc 情報処理装置、情報処理方法及びプログラム
US8656465B1 (en) 2011-05-09 2014-02-18 Google Inc. Userspace permissions service

Also Published As

Publication number Publication date
CN107430531B (zh) 2020-06-16
WO2016108911A1 (en) 2016-07-07
US20160191534A1 (en) 2016-06-30
CA2972646A1 (en) 2016-07-07
BR112017014135A2 (pt) 2018-01-02
MX369302B (es) 2019-11-04
MX2017008742A (es) 2017-10-19
IL253215A0 (en) 2017-08-31
JP6727211B2 (ja) 2020-07-22
CN107430531A (zh) 2017-12-01
US9977911B2 (en) 2018-05-22
JP2018508857A (ja) 2018-03-29
AU2014415583A1 (en) 2017-07-20
KR20170104145A (ko) 2017-09-14

Similar Documents

Publication Publication Date Title
KR102291201B1 (ko) 모바일 장치 리소스에 접근하는 권한을 관리하기 위한 방법 및 시스템
US10802686B2 (en) Methods and systems for providing user feedback
US9769122B2 (en) Anonymous single sign-on to third-party systems
US9760723B2 (en) Techniques for in-app user data authorization
US10798139B2 (en) Methods and systems for accessing relevant content
US20170195338A1 (en) Browser with integrated privacy controls and dashboard for social network data
CA2796944C (en) Personalizing a web page outside of a social networking system with content from the social networking system
US9189819B2 (en) Personalizing an application with content from a social networking system
US20160188671A1 (en) Methods and Systems for Recommending Applications
US9947031B2 (en) Content access management in a social networking system for locally stored content
US10972528B2 (en) Methods and systems for accessing third-party services within applications
US10701021B2 (en) Communication platform for minors
US10887422B2 (en) Selectively enabling users to access media effects associated with events
JP6942196B2 (ja) ソーシャルネットワーキングデータに基づくオーディオ効果
KR20180022867A (ko) 근거리 통신을 통한 애플리케이션 버전 설치 방법 및 시스템
US10003590B2 (en) Methods and systems for linking untrusted applications to server systems
EP3040899B1 (en) Methods and systems for managing permissions to access mobile device resources
US10715477B2 (en) Communication platform for minors
US10225355B2 (en) Methods and systems for abuse detection of zero-rated data
EP3460741A1 (en) Communication platform for minors
EP3026618A1 (en) Method and apparatus for controlling access to user profiles

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right