KR20160130226A - 외부 소스들을 사용하는 사용자 설정 관리 - Google Patents

외부 소스들을 사용하는 사용자 설정 관리 Download PDF

Info

Publication number
KR20160130226A
KR20160130226A KR1020167023200A KR20167023200A KR20160130226A KR 20160130226 A KR20160130226 A KR 20160130226A KR 1020167023200 A KR1020167023200 A KR 1020167023200A KR 20167023200 A KR20167023200 A KR 20167023200A KR 20160130226 A KR20160130226 A KR 20160130226A
Authority
KR
South Korea
Prior art keywords
settings
configuration data
user
entity
application
Prior art date
Application number
KR1020167023200A
Other languages
English (en)
Other versions
KR102089265B1 (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 KR20160130226A publication Critical patent/KR20160130226A/ko
Application granted granted Critical
Publication of KR102089265B1 publication Critical patent/KR102089265B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Abstract

외부 소스들을 사용하는 사용자 설정 관리가 설명되며, 이 사용자 설정 관리는, 사용자가, 애플리케이션의 기능들에 영향을 끼치는 하나 또는 그 초과의 설정들을 구성하도록 하는 사용자 인터페이스를 제공하는 것 ―사용자 인터페이스는 하나 또는 그 초과의 설정들이 사용자에 의해 조작되도록 허용하고, 하나 또는 그 초과의 설정들이 제3자 엔티티로부터의 설정 데이터에 기초하여 구성되도록 허용함―; 엔티티로부터의 설정 데이터에 기초하여 하나 또는 그 초과의 설정들의 적어도 부분을 구성하기 위한 입력을 사용자로부터 수신하는 것; 엔티티로부터의 설정 데이터가 하나 또는 그 초과의 설정들의 적어도 부분을 포함함을 식별하는 것; 그리고 엔티티로부터의 설정 데이터에 기초하여, 하나 또는 그 초과의 설정들의 적어도 부분을 구성하는 것을 포함한다.

Description

외부 소스들을 사용하는 사용자 설정 관리{USER SETTINGS MANAGEMENT USING EXTERNAL SOURCES}
[01] 분야
[02] 본원에 논의되는 발명의 요지는 일반적으로 소프트웨어 애플리케이션들에 관한 것이고, 더욱 구체적으로는, 외부 소스들을 사용하는 사용자 설정 관리에 관한 것이다.
[03] 관련된 배경기술
[04] 전부는 아니지만 대부분의 웹-기반 애플리케이션들 및 디바이스-기반 애플리케이션들(예컨대, 모바일 디바이스들 및 넌(non)-모바일 디바이스들, 예컨대, 컴퓨터들, 머신들 등에서 실행되는 애플리케이션들)은, 사용자들이 파라미터들 또는 설정들을 사용하여 애플리케이션들을 구성하는 것을 허용하도록 설계된다. 예컨대, 사용자인 앨리스가, Wi-Fi 네트워크가 이용가능한 경우 애플리케이션이 Wi-Fi 네트워크에 자동으로 연결되는 것을 선호하는지(예컨대, 박스에 체크하거나 또는 "예"를 입력함으로써)를 사용자인 앨리스가 애플리케이션을 구성하거나 또는 이 애플리케이션에게 "말하도록" 허용하기 위해, 애플리케이션은 설정(예컨대, "Wi-Fi 네트워크 자동 연결")을 사용할 수 있거나, 또는 앨리스가 연결을 수동으로 개시하게 둔다(예컨대, 박스를 체크되지 않은 채로 두거나 또는 "아니오"를 입력함으로써). 애플리케이션 또는 다른 애플리케이션은, 앨리스가 그녀의 프라이버시 선호, 예컨대, 코멘트들을 온라인 플랫폼에 "앨리스"로서 제공할지 또는 "익명"으로서 제공할지를 표시하도록 허용하기 위해, 설정(예컨대, "익명 코멘테이터")을 사용할 수 있다.
[05] 사용자는 통상적으로 하나보다 많은 디바이스 상에서 많은 애플리케이션들 또는 제품들을 사용하고, 애플리케이션들 중 많은 애플리케이션들이 인터넷에 연결된다. 많은 사용자들은, 그들이 애플리케이션의 설정들을 의미 있게 구성하도록 허용하는 수준으로, 애플리케이션 및 그것의 기능들을 인식하지 못할 수 있다. 그런데도, 사용자들은 다수의 도메인들에 걸쳐 이어지는 많은 애플리케이션들의 설정들을 구성하기 위한 결정들을 해야 한다. 이들 결정들은 단기 및 장기 충격들 둘 다를 가질 수 있다.
[06] 종종, 애플리케이션 또는 제품에는 사용자 설정들에 대한 수십 개의 상이한 옵션들이 있다. 이들 설정들 각각은, 제품이 고유 방식으로 동작하는 방식을 변경한다. 일부 사용자들, 특히, 소프트웨어 프로그래밍의 경험이 없는 사용자들은, 설정들이 그들의 원하는 경험을 갖도록 하기 위하여, 하나 또는 그 초과의 정해진 설정들에 대해 어느 옵션들을 선택할지를 아는데 매우 어려운 시간을 가질 수 있다. 부가적으로, 이들 설정 옵션들 중 많은 설정 옵션들이 (예컨대, 애플리케이션 업데이트들에 의해) 애드-혹(ad-hoc)에 부가 및 제거된다. 그 결과, 사용자들은, 그들의 원하는 설정들이 효과가 있게 유지됨을 보장하기 위해, 그들의 설정들을 계속해서 "지켜봐야" 한다.
[07] 발명의 요지는, 외부 소스들을 사용하는 사용자 설정 관리를 위한 방법들을 포함하고, 이 방법들은, 사용자가, 애플리케이션의 기능들에 영향을 끼치는 하나 또는 그 초과의 설정들을 구성하도록 하는 사용자 인터페이스를 제공하는 단계 ―사용자 인터페이스는 하나 또는 그 초과의 설정들이 사용자에 의해 조작되도록 허용하고, 하나 또는 그 초과의 설정들이 제3자 엔티티로부터의 설정 데이터에 기초하여 구성되도록 허용함―; 엔티티로부터의 설정 데이터에 기초하여 하나 또는 그 초과의 설정들의 적어도 부분을 구성하기 위한 입력을 사용자로부터 수신하는 단계; 엔티티로부터의 설정 데이터가 하나 또는 그 초과의 설정들의 적어도 부분을 포함함을 식별하는 단계; 및 엔티티로부터의 설정 데이터에 기초하여, 하나 또는 그 초과의 설정들의 적어도 부분을 구성하는 단계를 포함한다.
[08] 방법들은 하나 또는 그 초과의 컴퓨팅 디바이스들 및/또는 시스템들을 사용하여 구현된다. 방법들은 컴퓨터-판독가능 미디어에 저장될 수 있다.
[09] 도 1은 일부 예시적 구현들에 따른 예시적 애플리케이션 환경을 도시한다.
[10] 도 2a는 예시적 설정 사용 애플리케이션(SUA:setting using application)을 도시한다.
[11] 도 2b는 예시적 설정 제공자를 도시한다.
[12] 도 3은 일부 예시적 구현들에 따른 다른 예시적 애플리케이션 환경을 도시한다.
[13] 도 4a는 다른 예시적 설정 사용 애플리케이션(SUA)을 도시한다.
[14] 도 4b는 도 4a의 SUA의 예시적 변형을 도시한다.
[15] 도 5a는 소스들로의 애플리케이션 설정들의 예시적 맵핑을 도시한다.
[16] 도 5b는 예시적 설정 데이터를 도시한다.
[17] 도 5c는 다른 예시적 설정 데이터를 도시한다.
[18] 도 6은 프로세스 구현의 예를 도시한다.
[19] 도 7은 일부 구현들에 적절한 예시적 환경을 도시한다.
[20] 도 8은 일부 구현들에서 사용하기에 적절한 예시적 컴퓨팅 디바이스를 갖는 예시적 컴퓨팅 환경을 도시한다.
[21] 본원에 설명되는 발명의 요지는 예시적 구현들을 통해 교시된다. 명확성을 위해 그리고 발명의 요지를 모호하게 하는 것을 회피하기 위해, 다양한 상세들은 생략되었다. 하기에 나타난 예들은, 외부 소스들을 사용하는 사용자 설정 관리를 구현하기 위한 구조들 및 기능들에 관한 것이다.
[22] 도 1은 일부 예시적 구현들에 따른 예시적 애플리케이션 환경을 도시한다. 환경(100)은, 파라미터들, 설정들, 스위치들, 또는 다른 선호 표시자들(집합적으로, 설정들로 지칭됨)을 사용하여 구성가능한 또는 맞춤가능한 임의의 수의 애플리케이션들을 포함할 수 있다. 이들 애플리케이션들은 설정-사용 애플리케이션들(110)(또는 SUA들(110))로 지칭될 수 있다.
[23] "애플리케이션" 또는 "앱"은 디바이스 상에서 컴퓨터 판독가능 명령들을 실행하는 임의의 소프트웨어(디바이스-기반 애플리케이션)이거나, 또는 시스템 또는 서버(예컨대, 앱 서버 또는 웹 서버)로부터 제공되고 디바이스를 사용하여 액세스되는 온라인 제품 또는 서비스일 수 있다. 애플리케이션 또는 앱은 또한 "제품" 또는 "서비스"로 지칭될 수 있다. 애플리케이션에 대한 근원적인 지원은 하드웨어이고, 이 하드웨어는 임의의 종류의 적어도 하나의 프로세서, 메모리, 및/또는 스토리지, 예컨대, 비-일시적 컴퓨터-판독가능 매체를 포함한다.
[24] 설정-사용 애플리케이션(110)은 사용자들에 의해 수동으로 구성될 수 있다. 수동 구성 이외에 그리고/또는 수동 구성 대신에, SUA(110)는, 제3자 서비스 및/또는 데이터를 사용하여 구성될 수 있다. 환경(100)은, 설정 서비스들 및/또는 데이터를 제공하는 임의의 수의 제3자 엔티티들(예컨대, 설정 제공자들(120))을 포함할 수 있다.
[25] 본원에 사용된 바와 같이, "제3자" 또는 "제3자 엔티티"는, SUA의 사용자가 아니고 SUA의 제공자가 아닌 개인, 조직, 회사(집합적으로, 엔티티로 지칭됨)를 지칭한다. 예컨대, 설정 제공자 A(120)가 또한 SUA A(110)를 제공하지만, SUA B(110)를 제공하지 않는다면, 설정 제공자 A(120)는 SUA B(110)에 대하여 제3자로 간주된다. 설정 제공자 A(120)는 SUA A(110)에 대하여 제3자가 아니라 제2자로 간주된다.
[26] 환경(100)에서, SUA B(110)의 사용자(제1자)는, 설정 제공자(120)(제3자 또는 제3자 엔티티)에 의해 제공되는 서비스 및/또는 데이터를 사용하여, SUA B(110)의 일부 또는 모든 설정들을 구성할 수 있다(SUA B(110)의 제공자가 제2자임).
[27] 도 2a는 예시적 설정 사용 애플리케이션(SUA)을 도시한다. 예컨대, SUA(200)는 골프(예컨대, "Golf2X")를 치는 것에 관련된 애플리케이션일 수 있다. 프로파일 및 프라이버시를 관리하기 위한 예시적 사용자 인터페이스를 통해 보이는 SUA(200)는, 웹-기반 애플리케이션(예컨대, 웹 브라우저를 사용하여 액세스되는 제품, 서비스, 또는 애플리케이션) 또는 디바이스-기반 애플리케이션(예컨대, 컴퓨팅 디바이스, 예컨대, 모바일 디바이스 상에서 실행되는 애플리케이션)일 수 있다. SUA(200) 또는 Golf2X는, 한 명의 사용자 또는 둘 또는 그 초과의 사용자들을 허용하는 애플리케이션일 수 있다.
[28] 각각의 사용자는, 사용자에 대해 애플리케이션을 구성하거나 또는 맞춤화하기 위해, 하나 또는 그 초과의 설정들을 사용할 수 있다. 예컨대, 사용자들인 앨리스 및 밥은 동일한 디바이스 또는 웹사이트 상의 SUA(200)의 사용자들일 수 있다. 앨리스는, SUA(200)의 기능들 및/또는 동작들을 구성하기 위해, 예컨대, SUA(200)의 외양(예컨대, 애플리케이션의 "스킨"), SUA(200)가 이벤트 또는 조건의 발생을 앨리스에게 어떻게 통지할지(예컨대, 사운드를 내거나 또는 메시지를 팝업시킴으로써), 사용량 데이터 및/또는 이력을 얼마나 오랫동안 저장할지 등을 구성하기 위해, 설정들을 사용할 수 있다. 앨리스는 또한, 그녀의 프라이버시 선호들의 파라미터들을 설정하기 위해, 설정들을 사용할 수 있다. 이들 설정들은 프라이버시 설정들로 지칭될 수 있다.
[29] 프라이버시 설정은, 앨리스에 관련되어 있거나 또는 사용자로서의 앨리스에게 영향을 끼치고 있는 임의의 설정이다. 프라이버시 설정들의 일부 예들(이 프라이버시 설정들은 본원에 논의되는 예들로 제한되지 않음)은, 사용자들이, 그들을 다른 사용자들로부터 격리시키고; 온라인 커뮤니티들 또는 환경들에 대한 그들의 노출을 제어하고; 그들에 관한 그들의 정보를 제어하고; 그들이 어떤 정보를 수신하기를 원하는지 그리고/또는 그들이 어떤 정보를 공유하거나 또는 전송하기를 원하는지를 제어하고; 누가 그들에게 접촉할 수 있는지, 그들의 존재를 알 수 있는지, 그들에게 정보를 전송할 수 있는지 그리고/또는 그들과 정보를 공유할 수 있는지를 제어하도록 허용하는 설정들을 포함한다.
[30] 예시적 구현에 따라, 밥은, 밥의 선호들에 따라 애플리케이션을 맞춤화하기 위해서 SUA(200)를 구성하기 위해, 설정들을 사용할 수 있다. 사용자(예컨대, 앨리스 또는 밥)는 "계정"을 가질 수 있고, 이 계정이 사용자를 식별한다. 어느 사용자가 애플리케이션을 사용하고 있는지를 SUA(200)가 검출하거나 또는 식별할 때, 사용자의 선호들에 따라 애플리케이션을 "맞춤화"하기 위해, 해당 사용자의 설정들이 사용된다.
[31] 설정들 중 일부 또는 전부가, 외부 소스, 예컨대, 제3자 엔티티일 수 있는 설정 제공자를 사용하여 구성될 수 있다. 예컨대, 도 2a에 도시된 바와 같이, 앨리스에게는, 외부 소스를 식별하고 외부 소스에 의해 제공되는 설정들을 업로딩하기 위한 "설정 업로드(Upload Settings)" 옵션(210)을 갖는 사용자 인터페이스가 제공될 수 있다. 설정 업로드(210)는 외부 소스들(미도시)의 목록을 제공할 수 있거나, 또는 앨리스가 외부 소스(예컨대, 외부 소스의 URL(Universal Resource Locator))를 입력하도록 하는 입력 박스를 제공할 수 있다. 외부 소스는, 설정 데이터에 기초하여 SUA(200)의 설정들을 자동으로 구성하기 위해 SUA(200)에 의해 사용되는 설정 데이터 또는 정보를 제공할 수 있다. 예컨대, 외부 소스로부터의 설정 데이터(예컨대, XML(Extensible Markup Language) 포맷으로 있음)는, 어느 설정이 어느 값, 파라미터, 또는 옵션으로 설정되는지를 식별할 수 있다. 하기에서 더욱 상세히 논의되는 도 5b 및 도 5c는 설정 데이터의 예들을 도시한다.
[32] 계속해서 도 2a를 참조하면, 외부 소스를 식별하거나 또는 외부 소스로부터의 설정 데이터를 업로딩한 이후에, 외부 소스, 예컨대, 외부 소스들(220 및 225)은 이력으로서 또는 미래의 참조를 위해 유지될 수 있다. 외부 소스가 언제 마지막으로 업로딩되었는지, 업데이팅되었는지, 또는 사용되었는지를 나타내기 위해, 날짜의 타임스탬프가 프리젠팅될 수 있다. SUA(200)는, 앨리스가 SUA(200)의 디폴트 설정들을 사용하도록 하는 옵션(230)을 포함할 수 있다. 앨리스는 예컨대, 외부 소스(220)(예컨대, 설정 제공자 EFG로부터의 프라이버시 설정 데이터의 버전 2.0)에 의해 제공되는 설정 데이터를 사용하여 그녀의 프라이버시 설정들을 구성하도록 선택할 수 있다. 앨리스의 선택은, 예컨대, 선택된 소스 근처에 체크마크를 나타냄으로써 표시될 수 있다. 앨리스의 프라이버시 설정들은, 예컨대, 외부 소스(200)로부터의 설정 데이터를 SUA(200)의 프라이버시 설정들로 복사하여 SUA(200)에 의해 구성될 수 있다.
[33] 도 2b는 예시적 설정 제공자를 도시한다. 설정 제공자(250)는, 제공자에 의해 제공되는 설정들에 액세스, 예컨대, 이 설정들을 다운로딩하는데 사용되는 사용자 인터페이스를 통해 디스플레이된다. 설정 제공자(250)는 SUA(예컨대, SUA(200))에 대한 외부 소스이다. 설정 제공자(250)는 SUA(200)에 대하여 제3자 엔티티일 수 있다(즉, 설정 제공자(250)를 소유하고 그리고/또는 제어하는 비즈니스 엔티티는 SUA(200)를 제공하지 않는다). 도 2a에서, 설정 데이터는 SUA(200)로부터 직접적으로 리트리빙될 수 있다. 도 2b는, 예컨대, 설정 데이터를 애플리케이션(예컨대, SUA(200))으로 다운로딩하기 위해 외부 소스를 방문함으로써, 외부 소스로부터 설정 데이터를 리트리빙하기 위한 다른 예시적 방법을 도시한다. 설정 데이터는, 임의의 방법을 사용하여 리트리빙될 수 있다. 다른 이러한 예시적 구현은 도 3에 도시되고, 하기에서 더욱 상세히 논의된다.
[34] 도 3은 일부 예시적 구현들에 따른 다른 예시적 애플리케이션 환경을 도시한다. 환경(300)에서, SUA들(110)은, 하나 또는 그 초과의 설정 제공자들(120)에 의해 하나 또는 그 초과의 중개자들, 예컨대, 하나 또는 그 초과의 시장들(330)을 통해 제공되는 설정 데이터를 사용하여 구성될 수 있다.
[35] 시장(330)은, 사용자들 및 조직들이 그들의 설정들을 (예컨대, 설정 데이터로서) 가져오고 그리고 보내도록 허용한다. 예컨대, 시장(330)은, 개인들의 다양한 그룹들에 의해 신뢰받는 조직들 또는 사용자들이 그들의 제안되는 설정 데이터를 (예컨대, 설정 파일들 또는 구성 파일들로서) 업로딩하는 것을 가능하게 한다. 이들 신뢰받는 조직들 또는 사용자들은, 설정 제공자들(120)로서, 설정 데이터를 하나 또는 그 초과의 시장들(330)에 제공하거나 또는 업로딩할 수 있다. 시장은, 사용자들이, 그들의 애플리케이션 설정들, 예컨대, 프라이버시 설정들의 구성을 위해 그들이 신뢰하는 조직들 및/또는 사용자의 전문지식에 의존하는 것을 돕는다.
[36] 일부 예시적 구현들에서, 시장은, 사용자들이 설정 코멘테이터들(340)로서 시장에서의 설정들 또는 구성들을 리뷰하고 그러한 설정들 또는 구성들에 대한 코멘트들 및/또는 등급들을 제공하도록 허용한다. 설정 코멘테이터들(340)은 시장을 통해 제공되는 설정 구성들 또는 데이터에 대한 코멘트들 및/또는 임의의 피드백을 제공할 수 있다. 일부 구현들에서, 코멘테이터들(340)은 설정 데이터에 순위를 매기거나 또는 등급을 나눌 수 있다. 코멘테이터(340)는 임의의 사용자 또는 조직일 수 있다.
[37] 일부 예시적 구현들에서, 코멘테이터는 그의 또는 그녀의 아이덴티티를 감추기로 선택할 수 있다. 다른 구현들에서, 코멘테이터는 코멘트, 피드백, 순위 등이 투명함을 보장하기 위해 그의 또는 그녀의 아이덴티티를 감출 수 없다.
[38] SUA들(110)의 사용자들은, 코멘테이터들(340)에 의해 제공되는 코멘트들 및 순위를 고려하여 하나 또는 그 초과의 설정 제공자들(120)로부터의 설정 데이터를 선택하기 위해, 하나 또는 그 초과의 시장들(330)에 연결될 수 있다. 예컨대, 앨리스는, 사용자 프라이버시를 보호하기 위해 알려진 조직에 의해 제공되고 그리고/또는 코멘테이터들(340)로부터 우수한 순위 및 코멘트들을 받은 프라이버시 설정 데이터를 선택할 수 있다. 하기에 설명되는 바와 같이, 설정 데이터가 SUA(110)에 다운로딩될 수 있거나, 또는 SUA(110)가 설정 데이터를 구독할 수 있다.
[39] 도 4a는 다른 예시적 설정 사용 애플리케이션(SUA)을 도시한다. SUA(400)는 SUA(200)(도 2)와 동일하거나 또는 상이한 SUA일 수 있다. SUA(400)는, 사용자들이 하나보다 많은 방식으로 설정들을 관리하도록 허용하는 예시적 구현을 예시한다. 예컨대, "설정 관리"(420) 하에서, 사용자에게는 "설정 본인 관리(Manage Settings Myself)"(422) 및 "설정 구독(Subscribe to Settings)"(424)의 선택권들이 제공된다. 사용자가 "설정 본인 관리"(422) 옵션을 선택하면, 사용자는 SUA(400)의 임의의 설정을 수동으로 구성하거나 또는 설정하거나, 또는 설정을 손대지 않은 채로 둘 수 있다(예컨대, 애플리케이션의 디폴트 옵션으로 설정되거나, 또는 사용자에 의해 앞서 설정됨).
[40] 사용자가 "설정 구독"(424) 옵션을 선택하면, 사용자는, SUA(400)의 설정들 중 일부 또는 전부를 구성하는데 사용하기 위해 SUA(400)에서 이용가능한 외부 소스들(250 및 410-418) 중 하나를 선택할 수 있다. 외부 소스들(250 및 410-418)은 SUA(400)의 사용자(예컨대, 앨리스) 또는 다른 사용자(예컨대, 밥)에 의해 앞서 식별되었거나, 선택되었거나, 구독되었거나, 또는 다운로딩되었을 수 있다.
[41] 사용자가 설정 제공자를 구독할 때, 사용자는 설정 제공자에 의해 제공되는 설정 데이터 전부를 구독하거나, 또는 설정 제공자에 의해 제공되는 설정 데이터의 하나 또는 그 초과의 부분들을 구독할 수 있다. 설정 제공자는 설정 데이터의 상이한 버전들 또는 "플레이버들", 예컨대, "안전 브라우징" 버전, "고성능" 버전, "높은 프라이버시 보호" 버전, "공공 라이브러리" 버전 등을 제공할 수 있다. 버전들 또는 플레이버들은 임의의 방식으로, 예컨대, 숫자들(예컨대, v1.2, v2.0, v5.5, 300 등)을 사용하여 표시될 수 있다. 사용자는 하나 또는 그 초과의 버전들(예컨대, 애플리케이션 설정들의 상이한 섹션들 또는 그룹들에 대한 상이한 버전들)을 구독할 수 있다.
[42] 사용자가 설정 제공자를 구독할 때, 사용자는 애플리케이션의 설정들 중 일부 또는 전부에 대해 설정 데이터 또는 설정 데이터의 하나 또는 그 초과의 버전들을 구독한다. 효과에 있어서, 사용자는, 구독되는 설정 데이터를 사용하여 연관된 설정들을 설정하기 위해, 애플리케이션에 말하거나 또는 이 애플리케이션을 구성하고 있다. 예컨대, 앨리스는, 애플리케이션(400)의 프라이버시 설정들을 구성하기 위해, 설정 제공자(250)의 설정 데이터를 구독한다. 구독 이후에, 애플리케이션(400)은, 애플리케이션(400)의 프라이버시 설정들을 구성(예컨대, 설정 데이터의 부분의 설정 옵션들을 애플리케이션(400)의 프라이버시 설정들로 복사)하기 위해, 프라이버시 설정들에 대한 것인, 설정 제공자(250)의 설정 데이터의 부분(예컨대, 이 부분은 어떤 방식으로, 예컨대, 설정 식별자들을 사용하여 식별가능함)을 자동으로 사용할 것이다.
[43] 일부 예시적 구현들에서, 애플리케이션(400)은, 구독되는 설정 데이터가 변경되었거나 또는 업데이팅되었는지의 여부를 결정하기 위해, 설정 제공자를 주기적으로 또는 요구시(예컨대, 사용자에 의해 트리거링됨) 체크할 수 있다. 변경되었거나 또는 업데이팅되었다면, 애플리케이션(400)은, 위에서 설명된 바와 같이, 사용자에 의해 선택된 구성에 기초하여, 그것의 연관된 설정들을 이에 따라 자동으로 업데이팅할 수 있다. 설정 제공자 또는 시장은 또한, 업데이팅된 설정 데이터가 이용가능할 때 그것의 설정 데이터를 구독자들에게 통지하도록 구현될 수 있다(예컨대, 제공자 또는 시장은 구독자들의 레코드를 유지할 수 있다).
[44] 사용자는 SUA(400)에서 이용가능한 외부 소스들(250 및 410-418)을 사용하는 것으로 제한되지 않는다. 사용자는 예컨대, 그것의 설정 데이터를 다운로딩하기 위해 다른 설정 제공자를 방문하거나, 또는 그것의 최신의 또는 업데이팅된 설정 데이터를 다운로딩하기 위해 이용가능한 설정 제공자들(예컨대, 설정 제공자(250)) 중 하나를 방문할 수 있다. 사용자는, 다른 설정 제공자를 식별하고 그리고/또는 시장(예컨대, 시장(330), 도 3)으로부터 그것의 설정 데이터를 리트리빙할 수 있다.
[45] 도 4b는 도 4a의 SUA의 예시적 변형을 도시한다. 여기에 도시된 예시적 구현에서, SUA(400)는 "래리(Larry)가 업데이팅할 때, 나의 설정 자동 업데이팅"(426)을 포함한다. 옵션(426)에서의 "래리"는, 블랙 박스로 도시된 바와 같이, 현재 선택된 외부 소스(410)를 지칭한다.
[46] 도시 및 설명된 바와 같이, 많은 구현들이 가능하다. 예시적 구현들은 하기와 같다: (1) 사용자가 애플리케이션의 일부 또는 모든 설정들(설정들의 임의의 부분)을 수동으로 설정하거나 또는 업데이팅하도록 허용한다; (2) 사용자가, 하나 또는 그 초과의 설정 제공자들로부터의 설정 데이터를 사용할 때, 애플리케이션의 설정들의 임의의 부분을 구성하도록 허용하고, 그리고 사용자는 임의의 설정 제공자들에 대해 이 프로세스를 임의의 횟수로 반복할 수 있다; (3) 사용자가, 하나 또는 그 초과의 설정 제공자들의 설정 데이터를 구독함으로써, 애플리케이션의 설정들의 임의의 부분을 구성하도록 허용하고; 사용자에게는, 업데이팅된 설정 데이터가 이용가능할 때를 사용자가 통지받기를 원함을 표시하는 옵션(예컨대, 사용자 인터페이스 위젯의 형태로 있음), 및/또는 사용자가 업데이트를 확인하거나 또는 이 업데이트에 동의함(그 이후에, 애플리케이션(400)은 업데이팅된 설정 데이터를 사용하여 연관된 설정들을 업데이팅함)을 표시하는 옵션(예컨대, 사용자 인터페이스 위젯의 형태로 있음)이 제공될 수 있다; 그리고 (4) 사용자가, 하나 또는 그 초과의 설정 제공자들의 설정 데이터를 구독함으로써, 애플리케이션의 설정들의 임의의 부분을 구성하도록 허용하는 점에서 예(3)와 동일하지만; 옵션(예컨대, 사용자 인터페이스 위젯의 형태로 있음)은, 사용자가, 업데이팅된 설정 데이터가 이용가능하고 검출될 때마다, 사용자에게 통지하지 않고 그리고 사용자로부터의 확인 또는 동의를 촉진하지 않고, 애플리케이션(400)에서 연관된 설정을 자동으로 업데이팅함을 표시하도록 허용한다. 예(4)의 다른 변형은, 사용자로부터의 확인 또는 동의를 촉진하는 것이 아니라, 단지 사용자에게 통지하는 것이다. 구현들은 도시 및 설명된 예들로 제한되지 않으며, 당업자는 다른 가능한 구현들을 인식할 것이다. 예시적 구현들은 심지어, 설정들(예컨대, 애플리케이션(400)의 사용자 또는 관리인에 의해 수동으로만 설정될 수 있는 설정들)을 사용함으로써, 구성가능하거나 또는 선택가능할 수 있다.
[47] 도 5a는 설정 소스들로의 애플리케이션 설정들의 예시적 맵핑을 도시한다. 사용자 인터페이스(UI)(500)는 애플리케이션(예컨대, SUA(400), 도 4a 또는 4b)의 설정들을 소스들에 맵핑시키기 위한 예시적 UI이다. 예컨대, 앨리스는, 애플리케이션의 설정들이 어떻게 구성되는지(예컨대, 그녀에 의해, 그리고/또는 하나 또는 그 초과의 설정 제공자 소스들에 의해 제공되는 설정 데이터를 사용하여 설정됨)를 표시하기 위해, 애플리케이션의 UI(500)를 사용할 수 있다. 애플리케이션(예컨대, SUA(400))의 설정들은 개념적으로, 섹션들, 예컨대, 도시된 바와 같이, 섹션들(510, 520, 530, 및 540)로 분류 또는 그룹핑될 수 있다. 애플리케이션은, 상이하거나, 더 많은 수의, 또는 더 적은 수의 섹션들로 프리젠팅될 수 있거나, 또는 어떠한 섹션도 프리젠팅되지 않을 수 있는 상이하거나, 더 적은 수의, 또는 더 많은 수의 설정들을 가질 수 있다.
[48] 애플리케이션의 설정들은 0개, 1개, 또는 그 초과의 소스들에 맵핑될 수 있다. 설정들의 상이한 섹션들, 또는 일 섹션에서의 상이한 설정들이 상이한 소스들에 맵핑될 수 있다. 하나 또는 그 초과의 설정들(맵핑되는 설정들)을 소스(맵핑되는 소스)에 맵핑시키는 것은, 맵핑되는 설정들을 구성하기 위해 맵핑되는 소스를 사용하는 것을 의미한다. UI(500)의 예에서, 설정들의 각각의 섹션이 소스에 맵핑될 수 있다. 예컨대, 섹션(510)은 사용자에 의해 선택가능한 소스(515)에 맵핑될 수 있다. 섹션들(520, 530, 및 540)에서의 설정들은 소스들(525, 535, 및 545)에 각각 맵핑될 수 있고; 각각은 사용자에 의해 선택가능하다.
[49] 사용자가 예컨대 소스(515)에 대해 "본인 관리(Manage Myself)" 옵션을 선택하면, 사용자가 소스이다(즉, 사용자는, 이 경우, 선택되는 설정들에 대한 체크박스들을 배치함으로써, 섹션(510)에서의 설정들을 수동으로 설정한다). 섹션(520)에서의 설정들의 경우, 사용자는 "복사하기(Copy from)" 옵션을 선택할 수 있고, 설정 제공자 "5.ABC"를 소스로서 식별할 수 있으며, 이 소스로부터, 설정 데이터가 섹션에서의 설정들로 복사된다. 설정 데이터의 예는 도 5b에 도시된다. 예시를 위해, 섹션들(530 및 540)은, 사용자가 구독에 의해(예컨대, 위에서 설명된 두 개의 구독 모델들을 사용함으로써) 이들 섹션들에서의 설정들을 구성하려고 택할 수 있음을 나타낸다. 사용자는 구독하기 위해 동일한 설정 제공자 또는 상이한 설정 제공자들을 선택할 수 있다(예컨대, 섹션들(530 및 540)에 대해 각각 "래리" 및 "EFG"). 설정 제공자 "래리"로부터의 설정 데이터의 예는 도 5c에 도시된다.
[50] 도 5b는 예시적 설정 데이터를 도시한다. 설정 데이터(550)는, 예컨대, 섹션(520)(도 5a)에서의 설정들을 구성하기 위해 사용된다. 예컨대, 섹션(520)에서의 설정들(521-523)은 각각 고유 식별자들 "xyz345690", "xyz345695", "xyz345700"에 의해 식별될 수 있다. 애플리케이션(400)이 설정들(521-523)을 구성할 때, 애플리케이션(400)은 설정들(521-523)을 구성하기 위해 설정 데이터(550)에서 설정 정의(552, 554, 또는 556)를 식별 및 사용할 수 있다. 설정 정의는, 설정의 고유 식별자에 기초하여, 식별되거나 또는 설정에 매칭된다. 예컨대, 이 예에서의 설정 정의는 한 쌍의 "<설정>" 태그와 "</설정>" 태그 사이의 데이터이다. 설정 정의(552)는, 설정(521)과 동일한 고유 식별자 "xyz345690"를 갖는 라디오 버튼 타입의 설정을 정의한다. 설정 정의(552)는, 이 설정이 "온(on)"으로 설정됨을 표시한다. 매칭되는 식별자 "xyz345690"에 기초하여, 애플리케이션(400)은 설정(521)을 설정 정의(552)에서 정의된 "온(ON)"(즉, 설정(521)의 라디오 버튼을 마킹했음)으로 설정한다. 동일한 방식으로, 애플리케이션(400)은, 설정 정의들(554 및 556)에 따라 설정들(522 및 523)을 설정하거나 또는 구성하기 위해, 설정(522 및 523)의 식별자들에 매칭되는 식별자들을 갖는 설정 정의들(554 및 556)을 식별한다.
[51] 도 5c는 다른 예시적 설정 데이터를 도시한다. 설정 데이터는 임의의 포맷들(예컨대, 텍스트, 바이너리, 인간 판독가능 포맷, 인간 판독가능하지 않은 포맷 등)로 인코딩될 수 있다. 포맷들은 설정 데이터(500)(도 5b) 및 설정 데이터(550)(도 5c)의 예들로 제한되지 않는다. 섹션(530)에서의 설정들(531-533)은, 임의의 타입의 식별자들, 예컨대, 네임들, 라벨들, 넘버들, 심볼들, 또는 이들의 임의의 결합을 사용하여 식별될 수 있다. 예시를 위해, 설정(531-533)의 고유 식별자들은 각각 "21255503", "21255505", 및 "21255508"이다. 이들 식별자들은 설정 데이터(560)의 설정 정의들(562-566)의 식별자들에 매칭된다. 설정 정의는, 설정 데이터(560)에 대해 예시된 바와 같이, 설정 데이터 파일의 어디에서든 발견될 수 있다. 위에서 설명된 바와 같이, 식별자들에 기초하여, 설정 정의들(562-566)은 설정들(531-533)을 구성하기 위해 사용된다. 예컨대, 설정(532)의 체크박스는, "거짓(FALSE)"의 값을 갖는 매칭되는 설정 정의(564)에 기초하여, 체크되지 않는다. 설정(533)의 체크박스는, "참(TRUE)"의 값을 갖는 매칭되는 설정 정의(566)에 기초하여 체크된다.
[52] 도 6은 프로세스 구현의 예를 도시한다. 프로세스(600)는, 동작들, 예컨대, 블록(605)에서, 사용자가, 애플리케이션의 기능들에 영향을 끼치는 하나 또는 그 초과의 설정들을 구성하도록 하는 사용자 인터페이스를 제공하는 동작을 포함할 수 있다. 사용자 인터페이스는, 설정들이 사용자에 의해 조작되도록, 그리고/또는 하나 또는 그 초과의 제3자 엔티티들(예컨대, 외부 소스들)로부터의 설정 데이터에 기초하여 구성되도록 허용한다. 블록(610)에서, 적어도 하나의 제3자 엔티티로부터의 설정 데이터에 기초하여 하나 또는 그 초과의 설정들을 구성하기 위한 입력이 사용자로부터 사용자 인터페이스를 통해 수신된다. 블록(615)에서, 애플리케이션은, 엔티티로부터의 설정 데이터가 예컨대 설정들 중 적어도 일부에 대한 설정 정의들을 포함함을 식별한다. 예컨대, 위에서 설명된 바와 같이, 설정 정의들은 고유 식별자들에 기초하여 식별된다. 블록(620)에서, 애플리케이션은 엔티티로부터의 설정 데이터에 기초하여(예컨대, 식별된 설정 정의들에 기초하여) 설정들 중 적어도 일부를 구성한다.
[53] 일부 구현들에서, 프로세스(600)는 상이하거나, 더 적은 수의, 또는 더 많은 수의 블록들로 구현될 수 있다. 프로세스(600)는 컴퓨터 실행가능 명령들로서 구현될 수 있고, 이 컴퓨터 실행가능 명령들은 매체 상에 저장되고, 하나 또는 그 초과의 컴퓨팅 디바이스들의 하나 또는 그 초과의 프로세서들 상에 로딩되고, 그리고 컴퓨터-구현 방법으로서 실행될 수 있다.
[54] 도 7은 일부 구현들에 적절한 예시적 환경을 도시한다. 환경(700)은 디바이스들(705-745)을 포함하고, 각각은 예컨대 네트워크(760)를 통해 (예컨대, 유선 및/또는 무선 연결들에 의해) 적어도 하나의 다른 디바이스에 통신가능하게 연결된다. 일부 디바이스들은 하나 또는 그 초과의 스토리지 디바이스들(730 및 745)에 통신가능하게 연결될 수 있다.
[55] 하나 또는 그 초과의 디바이스들(705-745)의 예는 하기에서 도 8에 설명되는 컴퓨팅 디바이스(805)일 수 있다. 디바이스들(705-745)은 컴퓨터(705)(예컨대, 랩톱 컴퓨팅 디바이스), 모바일 디바이스(710)(예컨대, 스마트폰 또는 태블릿), 텔레비전(715), 차량과 연관된 디바이스(720), 서버 컴퓨터(725), 컴퓨팅 디바이스들(735-740), 스토리지 디바이스들(730 및 745)을 포함할 수 있지만, 이에 제한되지 않는다.
[56] 일부 구현들에서, 디바이스들(705-720)은 사용자 디바이스들(예컨대, 애플리케이션들 또는 SUA들을 실행하기 위해 사용자들에 의해 사용되는 디바이스들)로 간주될 수 있다. 디바이스들(725-745)은 서비스 제공자들과 연관된 디바이스들(예컨대, 서비스들 및/또는 데이터, 예컨대, 설정 데이터를 제공하기 위해 서비스 제공자들에 의해 사용됨)일 수 있다.
[57] 예컨대, 사용자(예컨대, 앨리스)는, 사용자 디바이스(705 또는 710)를 사용하여 콘텐츠 또는 웹페이지에 액세스하고, 보고, 그리고/또는 공유하기 위해 SUA를 사용할 수 있다. 앨리스는, 디바이스들(725-745)에 의해 지원되는 시장 제공자 및/또는 설정 제공자들에 의해 제공되는 설정 데이터를 사용하여, SUA의 설정들을 구성할 수 있다.
[58] 도 8은 일부 구현들에서 사용하기에 적절한 예시적 컴퓨팅 디바이스를 갖는 예시적 컴퓨팅 환경을 도시한다. 컴퓨팅 환경(800)의 컴퓨팅 디바이스(805)는 하나 또는 그 초과의 프로세싱 유닛들, 코어들, 또는 프로세서들(810), 메모리(815)(예컨대, RAM, ROM 등), 내부 스토리지(820)(예컨대, 자기, 광학, 고체 상태 스토리지, 및/또는 유기), 및/또는 I/O 인터페이스(825)를 포함할 수 있고, 이들 중 임의의 것은 정보를 통신시키기 위한 통신 메커니즘 또는 버스(830)에 커플링되거나 또는 컴퓨팅 디바이스(805)에 임베딩될 수 있다.
[59] 컴퓨팅 디바이스(805)는 입력/사용자 인터페이스(835) 및 출력 디바이스/인터페이스(840)에 통신가능하게 커플링될 수 있다. 입력/사용자 인터페이스(835) 및 출력 디바이스/인터페이스(840) 중 어느 하나 또는 둘 다는 유선 또는 무선 인터페이스일 수 있고, 분리될 수 있다. 입력/사용자 인터페이스(835)는 입력(예컨대, 버튼들, 터치-스크린 인터페이스, 키보드, 포인팅/커서 제어, 마이크로폰, 카메라, 점자, 모션 센서, 광학 판독기 등)을 제공하기 위해 사용될 수 있는, 물리적이거나 또는 가상적인 임의의 디바이스, 컴포넌트, 센서, 또는 인터페이스를 포함할 수 있다. 출력 디바이스/인터페이스(840)는 디스플레이, 텔레비전, 모니터, 프린터, 스피커, 점자 등을 포함할 수 있다. 일부 구현들에서, 입력/사용자 인터페이스(835) 및 출력 디바이스/인터페이스(840)는 컴퓨팅 디바이스(805)에 대해 임베딩되거나 또는 이 컴퓨팅 디바이스(805)와 물리적으로 커플링될 수 있다. 다른 예시적 구현들에서, 다른 컴퓨팅 디바이스들은 컴퓨팅 디바이스(805)에 대한 입력/사용자 인터페이스(835) 및 출력 디바이스/인터페이스(840)로서 기능하거나 또는 이들의 기능들을 제공할 수 있다.
[60] 컴퓨팅 디바이스(805)의 예들은 상당히 이동적인 디바이스들(예컨대, 스마트폰들, 차량들 및 다른 머신들의 디바이스들, 인간들 및 동물들에 의해 휴대되는 디바이스들 등), 모바일 디바이스들(예컨대, 태블릿들, 노트북들, 랩톱들, 개인 컴퓨터들, 휴대용 텔레비전들, 라디오들 등), 및 이동성을 위해 설계되지 않은 디바이스들(예컨대, 데스크톱 컴퓨터들, 다른 컴퓨터들, 정보 키오스크들, 하나 또는 그 초과의 프로세서들이 임베딩되어 있고 및/또는 커플링되어 있는 텔레비전들, 라디오들 등)을 포함할 수 있지만, 이에 제한되지 않는다.
[61] 컴퓨팅 디바이스(805)는, 동일한 또는 상이한 구성의 하나 또는 그 초과의 컴퓨팅 디바이스들을 비롯해 임의의 수의 네트워킹된 컴포넌트들, 디바이스들, 및 시스템들과 통신하기 위해 외부 스토리지(845) 및 네트워크(850)에 (예컨대, I/O 인터페이스(825)를 통해) 통신가능하게 커플링될 수 있다. 컴퓨팅 디바이스(805) 또는 임의의 연결된 컴퓨팅 디바이스는 서버, 클라이언트, 신(thin) 서버, 일반 머신, 특수-목적 머신, 또는 다른 라벨로서 기능하거나, 이의 서비스들을 제공하거나, 또는 이로 지칭될 수 있다.
[62] I/O 인터페이스(825)는, 적어도, 컴퓨팅 환경(800)의 연결된 컴포넌트들, 디바이스들, 및 네트워크 전부에 정보를 통신시키고 그리고/또는 이들로부터의 정보를 통신시키기 위해 임의의 통신 또는 I/O 프로토콜들 또는 표준들(예컨대, 이더넷, 802.11x, 유니버설 시스템 버스, WiMax, 모뎀, 셀룰러 네트워크 프로토콜 등)을 사용하는 유선 및/또는 무선 인터페이스들을 포함할 수 있지만, 이에 제한되지 않는다. 네트워크(850)는 임의의 네트워크 또는 네트워크들의 결합(예컨대, 인터넷, 로컬 영역 네트워크, 광역 네트워크, 전화 네트워크, 셀룰러 네트워크, 위성 네트워크 등)일 수 있다.
[63] 컴퓨팅 디바이스(805)는, 일시적 미디어 및 비-일시적 미디어를 비롯한 컴퓨터-사용가능 또는 컴퓨터-판독가능 미디어를 사용하고 그리고/또는 이를 사용하여 통신할 수 있다. 일시적 미디어는 송신 미디어(예컨대, 금속 케이블들, 광섬유들(fiber optics)), 신호들, 반송파들 등을 포함한다. 비-일시적 미디어는 자기 미디어(예컨대, 디스크들 및 테이프들), 광학 미디어(예컨대, CD ROM, 디지털 비디오 디스크들, 블루-레이 디스크들), 고체 상태 미디어(예컨대, RAM, ROM, 플래시 메모리, 고체-상태 스토리지), 및 다른 비-휘발성 스토리지 또는 메모리를 포함한다.
[64] 컴퓨팅 디바이스(805)는, 일부 컴퓨팅 환경들에서, 기술들, 방법들, 애플리케이션들, 프로세스들, 또는 컴퓨터-실행가능 명령들을 구현하기 위해 사용될 수 있다. 컴퓨터-실행가능 명령들은 일시적 미디어로부터 리트리빙될 수 있고, 그리고 비-일시적 미디어 상에 저장되고 이 비-일시적 미디어로부터 리트리빙될 수 있다. 실행가능 명령들은 임의의 프로그래밍, 스크립팅, 및 기계어들(예컨대, C, C++, C#, 자바, 비주얼 베이직, 파이선, 펄, 자바스크립트, 및 다른 것들) 중 하나 또는 그 초과로부터 비롯할 수 있다.
[65] 프로세서(들)(810)는 네이티브 또는 가상 환경에서 임의의 운영체제(OS:operating system)(미도시) 하에서 실행될 수 있다. 논리 유닛(860), 애플리케이션 프로그래밍 인터페이스(API) 유닛(865), 입력 유닛(870), 출력 유닛(875), 설정 관리자(880), 소스 관리자(885), 설정 UI(890), 및 상이한 유닛들이 서로, OS와, 그리고 다른 애플리케이션들(미도시)과 통신하도록 하기 위한 유닛 간 통신 메커니즘(895)을 포함하는 하나 또는 그 초과의 애플리케이션들이 배치될 수 있다. 예컨대, 설정 관리자(880), 소스 관리자(885), 및 설정 UI(890)는, 다른 유닛들(860-875)과 함께, 도 1-도 7에 도시된 하나 또는 그 초과의 프로세스들 및/또는 특징들을 구현할 수 있다. 설명된 유닛들 및 엘리먼트들은 설계, 기능, 구성, 또는 구현이 변화될 수 있고, 그리고 제공되는 설명들로 제한되지 않는다.
[66] 일부 구현들에서, 정보 또는 실행 명령이 API 유닛(865)에 의해 수신될 때, 이 정보 또는 실행 명령은 하나 또는 그 초과의 다른 유닛들(예컨대, 논리 유닛(860), 입력 유닛(870), 출력 유닛(875), 설정 관리자(880), 소스 관리자(885), 및 설정 UI(890))에 통신될 수 있다. 예컨대, 애플리케이션의 사용자(예컨대, 앨리스)가 애플리케이션의 일부 설정들(예컨대, 프라이버시 설정들)을 구성하기를 원할 때, 설정 UI(890)는 사용자를 돕기 위해 UI(예컨대, 도 2, 도 4a, 도 4b, 도 5a, 또는 상이한 도면에 도시된 UI)를 프리젠팅할 수 있다. 입력 유닛(870)이 앨리스의 입력을 검출한 이후에, 입력 유닛(870)은 사용자 입력을 설정 관리자(880)에 통신시키기 위해 API 유닛(865)을 사용할 수 있다. 설정 관리자(880)는, API 유닛(865)을 통해, 소스 관리자(885)와 상호작용하고, 설정 제공자를 식별하며, 그리고/또는 앨리스의 입력에 기초하여 설정 제공자로부터 설정 데이터를 리트리빙할 수 있다. 이후, 설정 관리자(880)는, 하나 또는 그 초과의 소스들로부터의 설정 데이터에 기초하여 설정들을 구성하도록 호출될 수 있다. 구성은 설정 UI(890)에 의해 앨리스에게 반영되거나 또는 프리젠팅된다.
[67] 일부 사례들에서, 논리 유닛(860)은, 유닛들 사이의 정보 흐름을 제어하고 위에서 설명된 일부 구현들에서 API 유닛(865), 입력 유닛(870), 출력 유닛(875), 설정 관리자(880), 소스 관리자(885), 및 설정 UI(890)에 의해 제공되는 서비스들을 지향시키도록 구성될 수 있다. 예컨대, 하나 또는 그 초과의 프로세스들 또는 구현들의 흐름은 논리 유닛(860)에 의해 단독으로 또는 API 유닛(865)과 함께 제어될 수 있다.
[68] 여기서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 또는 개인 정보를 사용할 수 있는 상황들에서, 사용자들에게는, 프로그램들 또는 특징들이 사용자 정보(예컨대, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호들, 또는 사용자의 현재 위치에 관한 정보)를 수집할지의 여부를 제어하기 위한, 또는 사용자에 더욱 관련될 수 있는 콘텐츠 서버로부터 콘텐츠를 수신할지의 여부 및/또는 어떻게 수신할지를 제어하기 위한 기회가 제공될 수 있다. 부가하여, 일정 데이터는, 그것이 저장되거나 또는 사용되기 이전에 하나 또는 그 초과의 방식들로 처리될 수 있고, 따라서 개인적으로 식별가능한 정보는 제거된다. 예컨대, 사용자의 아이덴티티는, 어떠한 개인적으로 식별가능한 정보도 사용자에 대해 결정될 수 없도록, 또는 위치 정보(예컨대, 도시, ZIP 코드, 또는 국가 레벨에 대한 위치 정보)가 획득되는 경우, 사용자의 지리적 위치가 일반화될 수 있도록 처리될 수 있고, 따라서 사용자의 특정 위치는 결정될 수 없다. 따라서, 사용자는 사용자에 관한 정보가 어떻게 수집되고 콘텐츠 서버에 의해 사용되는지에 대한 제어를 가질 수 있다.
[69] 몇몇 예시적 구현들이 도시 및 설명되었지만, 이들 예시적 구현들은, 본원에 설명된 발명의 요지를 당업자들에게 전달하기 위해 제공된다. 설명된 예시적 구현들로 제한되지 않고, 본원에 설명된 발명의 요지가 다양한 형태들로 구현될 수 있음이 이해되어야 한다. 본원에 설명된 발명의 요지는, 그러한 특정하게 정의되거나 또는 설명된 사안들 없이, 또는 다른 또는 상이한 엘리먼트들 또는 설명되지 않은 사안들과 함께 실시될 수 있다. 첨부된 청구항들 및 그들의 등가물들에서 정의되는 본원에 설명된 발명의 요지로부터 벗어나지 않고, 이들 예시적 구현들에서 변경들이 이루어질 수 있음이 당업자들에 의해 인식될 것이다.

Claims (20)

  1. 애플리케이션을 구성하기 위한 컴퓨터-구현 방법으로서,
    사용자가, 애플리케이션의 기능들에 영향을 끼치는 하나 또는 그 초과의 설정들을 구성하도록 하는 사용자 인터페이스를 제공하는 단계 ―상기 사용자 인터페이스는 상기 하나 또는 그 초과의 설정들이 상기 사용자에 의해 조작되도록 허용하고, 상기 하나 또는 그 초과의 설정들이 제3자 엔티티로부터의 설정 데이터에 기초하여 구성되도록 허용함―;
    상기 엔티티로부터의 상기 설정 데이터에 기초하여 상기 하나 또는 그 초과의 설정들의 적어도 부분을 구성하기 위한 입력을 상기 사용자로부터 수신하는 단계;
    상기 엔티티로부터의 상기 설정 데이터가 상기 하나 또는 그 초과의 설정들의 적어도 부분을 포함함을 식별하는 단계; 및
    상기 엔티티로부터의 상기 설정 데이터에 기초하여, 상기 하나 또는 그 초과의 설정들의 적어도 부분을 구성하는 단계
    를 포함하는,
    애플리케이션을 구성하기 위한 컴퓨터-구현 방법.
  2. 제 1 항에 있어서,
    상기 하나 또는 그 초과의 설정들의 적어도 부분은 하나 또는 그 초과의 프라이버시 설정들을 포함하는,
    애플리케이션을 구성하기 위한 컴퓨터-구현 방법.
  3. 제 1 항에 있어서,
    상기 엔티티로부터의 상기 설정 데이터를 사용하여 상기 하나 또는 그 초과의 설정들의 적어도 부분을 구성하는 단계는, 상기 설정 데이터를 상기 하나 또는 그 초과의 설정들의 적어도 부분으로 복사하는 단계를 포함하는,
    애플리케이션을 구성하기 위한 컴퓨터-구현 방법.
  4. 제 1 항에 있어서,
    상기 엔티티의 상기 설정 데이터가 변경되었을 때, 상기 하나 또는 그 초과의 설정들의 적어도 부분을 자동으로 업데이팅하는 단계
    를 더 포함하는,
    애플리케이션을 구성하기 위한 컴퓨터-구현 방법.
  5. 제 4 항에 있어서,
    상기 하나 또는 그 초과의 설정들의 적어도 부분을 자동으로 업데이팅하는 단계는, 상기 사용자로부터 상기 업데이팅과 연관된 확인을 수신한 이후에 수행되는,
    애플리케이션을 구성하기 위한 컴퓨터-구현 방법.
  6. 제 1 항에 있어서,
    상기 사용자가 아닌 다른 엔티티로부터의 설정 데이터를 사용하여 상기 하나 또는 그 초과의 설정들의 다른 부분을 구성하는 것을 표시하는 다른 입력을 상기 사용자로부터 수신하는 단계;
    상기 다른 엔티티로부터의 상기 설정 데이터가 상기 하나 또는 그 초과의 설정들의 다른 부분을 포함함을 식별하는 단계; 및
    상기 다른 엔티티로부터의 상기 설정 데이터를 사용하여, 상기 하나 또는 그 초과의 설정들의 다른 부분을 구성하는 단계
    를 더 포함하는,
    애플리케이션을 구성하기 위한 컴퓨터-구현 방법.
  7. 제 1 항에 있어서,
    상기 엔티티로부터의 상기 설정 데이터는 온라인 시장으로부터 수신되고, 상기 엔티티 이외의 다른 엔티티들로부터의 설정 데이터가 상기 온라인 시장으로부터 수신될 수 있으며, 상기 다른 엔티티들은 상기 사용자가 아닌,
    애플리케이션을 구성하기 위한 컴퓨터-구현 방법.
  8. 제 1 항에 있어서,
    상기 엔티티로부터의 상기 설정 데이터는 상기 사용자에 의해 신뢰받는 엔티티에 의해 디지털 서명되는,
    애플리케이션을 구성하기 위한 컴퓨터-구현 방법.
  9. 비-일시적 컴퓨터 판독가능 매체로서,
    사용자가, 애플리케이션의 기능들에 영향을 끼치는 하나 또는 그 초과의 설정들을 구성하도록 하는 사용자 인터페이스를 제공하고 ―상기 사용자 인터페이스는 상기 하나 또는 그 초과의 설정들이 상기 사용자에 의해 조작되도록 허용하고, 상기 하나 또는 그 초과의 설정들이 제3자 엔티티로부터의 설정 데이터에 기초하여 구성되도록 허용함―;
    상기 엔티티로부터의 상기 설정 데이터에 기초하여 상기 하나 또는 그 초과의 설정들의 적어도 부분을 구성하기 위한 입력을 상기 사용자로부터 수신하고;
    상기 엔티티로부터의 상기 설정 데이터가 상기 하나 또는 그 초과의 설정들의 적어도 부분을 포함함을 식별하고; 그리고
    상기 엔티티로부터의 상기 설정 데이터에 기초하여, 상기 하나 또는 그 초과의 설정들의 적어도 부분을 구성하기 위한
    컴퓨터 실행가능 명령들
    을 저장하고 있는,
    비-일시적 컴퓨터 판독가능 매체.
  10. 제 9 항에 있어서,
    상기 하나 또는 그 초과의 설정들의 적어도 부분은 하나 또는 그 초과의 프라이버시 설정들을 포함하는,
    비-일시적 컴퓨터 판독가능 매체.
  11. 제 9 항에 있어서,
    상기 엔티티의 상기 설정 데이터가 변경되었을 때, 상기 하나 또는 그 초과의 설정들의 적어도 부분을 자동으로 업데이팅하기 위한
    컴퓨터 실행가능 명령들
    을 더 포함하는,
    비-일시적 컴퓨터 판독가능 매체.
  12. 제 11 항에 있어서,
    상기 하나 또는 그 초과의 설정들의 적어도 부분을 자동으로 업데이팅하는 것은, 상기 사용자로부터 상기 업데이팅과 연관된 확인을 수신한 이후에 수행되는,
    비-일시적 컴퓨터 판독가능 매체.
  13. 제 9 항에 있어서,
    상기 사용자가 아닌 다른 엔티티로부터의 설정 데이터를 사용하여 상기 하나 또는 그 초과의 설정들의 다른 부분을 구성하는 것을 표시하는 다른 입력을 상기 사용자로부터 수신하고;
    상기 다른 엔티티로부터의 상기 설정 데이터가 상기 하나 또는 그 초과의 설정들의 다른 부분을 포함함을 식별하고; 그리고
    상기 다른 엔티티로부터의 상기 설정 데이터를 사용하여, 상기 하나 또는 그 초과의 설정들의 다른 부분을 구성하기 위한
    컴퓨터 실행가능 명령들
    을 더 포함하는,
    비-일시적 컴퓨터 판독가능 매체.
  14. 적어도 하나의 컴퓨팅 디바이스로서,
    스토리지; 및
    프로세서
    를 포함하고,
    상기 프로세서는,
    사용자가, 애플리케이션의 기능들에 영향을 끼치는 하나 또는 그 초과의 설정들을 구성하도록 하는 사용자 인터페이스를 제공하는 것 ―상기 사용자 인터페이스는 상기 하나 또는 그 초과의 설정들이 상기 사용자에 의해 조작되도록 허용하고, 상기 하나 또는 그 초과의 설정들이 제3자 엔티티로부터의 설정 데이터에 기초하여 구성되도록 허용함―;
    상기 엔티티로부터의 상기 설정 데이터에 기초하여 상기 하나 또는 그 초과의 설정들의 적어도 부분을 구성하기 위한 입력을 상기 사용자로부터 수신하는 것;
    상기 엔티티로부터의 상기 설정 데이터가 상기 하나 또는 그 초과의 설정들의 적어도 부분을 포함함을 식별하는 것; 및
    상기 엔티티로부터의 상기 설정 데이터에 기초하여, 상기 하나 또는 그 초과의 설정들의 적어도 부분을 구성하는 것
    을 수행하도록 구성되는,
    적어도 하나의 컴퓨팅 디바이스.
  15. 제 14 항에 있어서,
    상기 하나 또는 그 초과의 설정들의 적어도 부분은 하나 또는 그 초과의 프라이버시 설정들을 포함하는,
    적어도 하나의 컴퓨팅 디바이스.
  16. 제 14 항에 있어서,
    상기 엔티티로부터의 상기 설정 데이터를 사용하여 상기 하나 또는 그 초과의 설정들의 적어도 부분을 구성하는 것은, 상기 설정 데이터를 상기 하나 또는 그 초과의 설정들의 적어도 부분으로 복사하는 것을 포함하는,
    적어도 하나의 컴퓨팅 디바이스.
  17. 제 14 항에 있어서,
    상기 프로세서는 추가로,
    상기 엔티티의 상기 설정 데이터가 변경되었을 때, 상기 하나 또는 그 초과의 설정들의 적어도 부분을 자동으로 업데이팅하도록 구성되는,
    적어도 하나의 컴퓨팅 디바이스.
  18. 제 17 항에 있어서,
    상기 하나 또는 그 초과의 설정들의 적어도 부분을 자동으로 업데이팅하는 것은, 상기 사용자로부터 상기 업데이팅과 연관된 확인을 수신한 이후에 수행되는,
    적어도 하나의 컴퓨팅 디바이스.
  19. 제 14 항에 있어서,
    상기 프로세서는 추가로,
    상기 사용자가 아닌 다른 엔티티로부터의 설정 데이터를 사용하여 상기 하나 또는 그 초과의 설정들의 다른 부분을 구성하는 것을 표시하는 다른 입력을 상기 사용자로부터 수신하는 것;
    상기 다른 엔티티로부터의 상기 설정 데이터가 상기 하나 또는 그 초과의 설정들의 다른 부분을 포함함을 식별하는 것; 및
    상기 다른 엔티티로부터의 상기 설정 데이터를 사용하여, 상기 하나 또는 그 초과의 설정들의 다른 부분을 구성하는 것
    을 수행하도록 구성되는,
    적어도 하나의 컴퓨팅 디바이스.
  20. 제 14 항에 있어서,
    상기 엔티티로부터의 상기 설정 데이터는 온라인 시장으로부터 수신되고, 상기 엔티티 이외의 다른 엔티티들로부터의 설정 데이터가 상기 온라인 시장으로부터 수신될 수 있으며, 상기 다른 엔티티들은 상기 사용자가 아닌,
    적어도 하나의 컴퓨팅 디바이스.
KR1020167023200A 2014-03-10 2015-03-09 외부 소스들을 사용하는 사용자 설정 관리 KR102089265B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/203,154 US9122557B1 (en) 2014-03-10 2014-03-10 User settings management using external sources
US14/203,154 2014-03-10
PCT/US2015/019470 WO2015138330A1 (en) 2014-03-10 2015-03-09 User settings management using external sources

Publications (2)

Publication Number Publication Date
KR20160130226A true KR20160130226A (ko) 2016-11-10
KR102089265B1 KR102089265B1 (ko) 2020-03-16

Family

ID=52727428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167023200A KR102089265B1 (ko) 2014-03-10 2015-03-09 외부 소스들을 사용하는 사용자 설정 관리

Country Status (8)

Country Link
US (1) US9122557B1 (ko)
EP (1) EP3117306A1 (ko)
JP (1) JP6368378B2 (ko)
KR (1) KR102089265B1 (ko)
CN (1) CN106104475B (ko)
AU (1) AU2015229732B2 (ko)
BR (1) BR112016018480B1 (ko)
WO (1) WO2015138330A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885756B (zh) * 2012-12-20 2017-10-31 腾讯科技(深圳)有限公司 智能终端的基础应用功能配置方法、实现方法和装置
US10241776B2 (en) 2016-04-08 2019-03-26 Microsoft Technology Licensing, Llc User settings across programs
JP6946929B2 (ja) * 2017-10-25 2021-10-13 株式会社リコー レコメンドシステム、装置、方法、及びプログラム
US20210133282A1 (en) * 2019-11-06 2021-05-06 PredictSpring, Inc. Methods and apparatus for generating a platform-agnostic mobile application configuration data structure with a dynamic quiz
US11775647B2 (en) * 2020-06-25 2023-10-03 Microsoft Technology Licensing, Llc Secure user assigned device from manufacturer

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004120277A (ja) * 2002-09-26 2004-04-15 Fuji Photo Film Co Ltd 電子カメラ
US20070167182A1 (en) * 2005-12-02 2007-07-19 Tenhunen Jouko U System, apparatus, and method for dynamically configuring application access point settings
US20090216864A1 (en) * 2008-02-27 2009-08-27 Nokia Corporation Methods, apparatuses, and computer program products, for automatically finding configuration settings for services
US20100153468A1 (en) * 2008-12-17 2010-06-17 Sap Ag Configuration change without disruption of incomplete processes
US20130166899A1 (en) * 2011-12-23 2013-06-27 Research In Motion Limited Method and system for controlling system settings of a computing device
US20140047414A1 (en) * 2012-08-09 2014-02-13 International Business Machines Corporation Importing Profiles for Configuring Specific System Components Into a Configuration Profile for the System

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085098A (en) 1997-10-22 2000-07-04 Ericsson Inc. Apparatus and method for automatically configuring settings of a software application in a portable intelligent communications device
WO2002019096A2 (en) 2000-08-31 2002-03-07 Docubase Reconfiguration and preservation of setup data
US8166406B1 (en) * 2001-12-04 2012-04-24 Microsoft Corporation Internet privacy user interface
US8083585B2 (en) 2002-09-10 2011-12-27 Igt Apparatus and method for copying gaming machine configuration settings
US7908589B2 (en) * 2006-08-29 2011-03-15 Sap Ag Deployment
JP5264906B2 (ja) 2007-08-08 2013-08-14 サムスン エレクトロニクス カンパニー リミテッド ネットワークでユーザ選好度プロファイルを管理するための方法及びシステム
US9614685B2 (en) * 2009-03-09 2017-04-04 Nokia Technologies Oy Methods, apparatuses, and computer program products for facilitating synchronization of setting configurations
US8464242B2 (en) 2009-07-08 2013-06-11 Tranxition Corporation Virtualization of configuration settings
US20120222083A1 (en) * 2011-02-28 2012-08-30 Nokia Corporation Method and apparatus for enforcing data privacy
US20130013476A1 (en) * 2011-07-06 2013-01-10 Bank Of America Corporation Moving a financial account from one enterprise to another
WO2013116816A1 (en) 2012-02-03 2013-08-08 Augme Technologies, Inc. System and method of inferring user preferences

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004120277A (ja) * 2002-09-26 2004-04-15 Fuji Photo Film Co Ltd 電子カメラ
US20070167182A1 (en) * 2005-12-02 2007-07-19 Tenhunen Jouko U System, apparatus, and method for dynamically configuring application access point settings
US20090216864A1 (en) * 2008-02-27 2009-08-27 Nokia Corporation Methods, apparatuses, and computer program products, for automatically finding configuration settings for services
US20100153468A1 (en) * 2008-12-17 2010-06-17 Sap Ag Configuration change without disruption of incomplete processes
US20130166899A1 (en) * 2011-12-23 2013-06-27 Research In Motion Limited Method and system for controlling system settings of a computing device
US20140047414A1 (en) * 2012-08-09 2014-02-13 International Business Machines Corporation Importing Profiles for Configuring Specific System Components Into a Configuration Profile for the System

Also Published As

Publication number Publication date
BR112016018480B1 (pt) 2022-11-29
KR102089265B1 (ko) 2020-03-16
BR112016018480A2 (pt) 2017-09-26
AU2015229732B2 (en) 2019-08-15
AU2015229732A1 (en) 2016-06-30
US9122557B1 (en) 2015-09-01
WO2015138330A1 (en) 2015-09-17
CN106104475A (zh) 2016-11-09
JP2017509989A (ja) 2017-04-06
CN106104475B (zh) 2020-02-14
EP3117306A1 (en) 2017-01-18
JP6368378B2 (ja) 2018-08-01
US20150254070A1 (en) 2015-09-10

Similar Documents

Publication Publication Date Title
KR101805657B1 (ko) 오프라인 콘텐츠 공유
US9747646B2 (en) Social data inputs
US20130159892A1 (en) Non-technical creation of mobile web applications
US20150134808A1 (en) Systems and methods for monitoring and applying statistical data related to shareable links associated with content items stored in an online content management service
KR102089265B1 (ko) 외부 소스들을 사용하는 사용자 설정 관리
US11256774B2 (en) Systems and methods for content presentation
US10783181B1 (en) Systems and methods for digital content provision
US20210019106A1 (en) Desktop Sharing Method and Mobile Terminal
US20180081500A1 (en) Systems and methods for content engagement
US11023611B2 (en) Systems and methods for trigger-based modification of privacy settings associated with posts
US11704008B2 (en) Systems and methods for augmenting content
US10218769B2 (en) Monitoring digital images on mobile devices
US9460300B1 (en) Utilizing multiple access control objects to manage access control
US11361021B2 (en) Systems and methods for music related interactions and interfaces
US10521732B2 (en) Systems and methods for content presentation
US20170142210A1 (en) Systems and methods for sharing information
US10680992B2 (en) Systems and methods to manage communications regarding a post in a social network
EP3142063A1 (en) Systems and methods for trigger-based modification of privacy settings associated with posts
KR20140095374A (ko) 모바일 기기에서의 매쉬업 웹앱 및 위젯 배포 방법
JP2014232448A (ja) 情報処理装置及びプログラム

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