KR20200120763A - 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 - Google Patents
컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 Download PDFInfo
- Publication number
- KR20200120763A KR20200120763A KR1020207029344A KR20207029344A KR20200120763A KR 20200120763 A KR20200120763 A KR 20200120763A KR 1020207029344 A KR1020207029344 A KR 1020207029344A KR 20207029344 A KR20207029344 A KR 20207029344A KR 20200120763 A KR20200120763 A KR 20200120763A
- Authority
- KR
- South Korea
- Prior art keywords
- peripheral
- computing device
- related data
- service
- computing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Abstract
주변장치 디바이스에 연결하기 위해 사용되는 데이터인 주변장치 디바이스에 대한 디바이스 연관 데이터가, 서비스 상의 유저 계정과 연관되는 복수의 컴퓨팅 디바이스에 걸쳐 유지되고 동기화된다. 새로운 주변장치 디바이스가 컴퓨팅 디바이스와 연관되면, 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터가 컴퓨팅 디바이스에 추가된다. 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터는 서비스로 또한 전송되는데, 서비스는 디바이스 연관성을, 유저가 그의 또는 그녀의 계정을 로그인하게 되는 다른 컴퓨팅 디바이스로 제공하고, 이들 다른 컴퓨팅 디바이스는 결국에는 그들 자신을 주변장치 디바이스와 자동적으로 연관시킨다. 하나의 컴퓨팅 디바이스 상에서 주변장치 디바이스를 어떻게 사용하는 것을 유저가 소망하는지를 설명하는 디바이스 사용 데이터뿐만 아니라, 하나의 컴퓨팅 디바이스 상에서의 상기 디바이스 연관 데이터에 대한 변경도 복수의 컴퓨팅 디바이스에 걸쳐 마찬가지로 동기화될 수 있다.
Description
배경
컴퓨팅 기술이 진보함에 따라, 사람들이 이용가능한 그리고 하루 중 사람들이 사용하는 상이한 컴퓨팅 디바이스의 수가 증가하고 있다. 이들 디바이스를 사용할 때, 사람들은 종종 동일한 주변장치 디바이스(peripheral device), 예컨대 프린터, 스캐너, 헤드셋 등에 액세스하기를 바란다. 복수의 컴퓨팅 디바이스를 이용하여 동일한 주변장치 디바이스를 사용할 수 있게 되는 것은, 유저가 상이한 컴퓨팅 디바이스 상에서 그들이 익숙한 주변장치 디바이스를 사용할 수 있기 때문에, 유저에게는 유익하다. 그러나, 복수의 상이한 컴퓨팅 디바이스 상에서 동일한 주변장치 디바이스를 사용하는 것의 문제가 없는 것은 아니다. 하나의 이러한 문제점은, 이러한 주변장치 디바이스가 복수의 상이한 컴퓨팅 디바이스 각각 상에서 유저에 의해 설치되는 것을 필요로 하고, 이것은 시간 소비적인 프로세스이며 열악한 유저 경험으로 이어진다.
이 개요는 하기 상세한 설명에서 더 설명되는 개념의 선택을 간소화된 형태로 소개하기 위해 제공된다. 이 개요는 청구된 주제의 주요 특징이나 또는 본질적인 특징을 식별하도록 의도된 것이 아니며, 청구된 주제의 범위를 제한하는 데 사용되도록 의도된 것도 아니다.
하나 이상의 양태에 따르면, 주변장치 디바이스에 대한 디바이스 연관 데이터(device association data)는 주변장치 디바이스에 연결하는 법을 설명한다. 유저 계정과 연관되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터가 수신된다. 하나 이상의 주변장치 디바이스 중 어떤 것이 컴퓨팅 디바이스와 자동적으로 연관될 수 있는지에 관한 결정이 이루어지고, 하나 이상의 주변장치 디바이스 중 컴퓨팅 디바이스와 자동적으로 연관될 수 있는 것은 컴퓨팅 디바이스와 자동적으로 연관된다.
유사한 피쳐를 참조하기 위해 도면 전체에 걸쳐 동일한 도면 번호가 사용된다.
도 1은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 시스템을 예시한다.
도 2는, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 컴퓨팅 디바이스를 예시하는 블록도이다.
도 3은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 4는 하나 이상의 실시형태에 따른, 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 5는, 하나 이상의 실시형태에 따른, 본원에서 논의되는 기술을 구현하기 위한 예시적인 모델을 예시하는 블록도이다.
도 6은 본원에서 설명되는 다양한 기술을 구현할 수도 있는 하나 이상의 시스템 및/또는 디바이스를 묘사하는 예시적인 컴퓨팅 디바이스를 포함하는 예시적인 시스템을 예시한다.
도 1은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 시스템을 예시한다.
도 2는, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 컴퓨팅 디바이스를 예시하는 블록도이다.
도 3은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 4는 하나 이상의 실시형태에 따른, 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 5는, 하나 이상의 실시형태에 따른, 본원에서 논의되는 기술을 구현하기 위한 예시적인 모델을 예시하는 블록도이다.
도 6은 본원에서 설명되는 다양한 기술을 구현할 수도 있는 하나 이상의 시스템 및/또는 디바이스를 묘사하는 예시적인 컴퓨팅 디바이스를 포함하는 예시적인 시스템을 예시한다.
컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하는 것이 본원에서 논의된다. 하나 이상의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 로컬 또는 원격 서비스의 유저 계정과 연관되는 복수의 상이한 컴퓨팅 디바이스 사이에서 유지되고 동기화된다. 주변장치 디바이스에 대한 디바이스 연관 데이터는 주변장치 디바이스에 연결하기 위해 사용되는 데이터, 예컨대 주변장치 디바이스의 네트워크 어드레스, 주변장치 디바이스와 통신하기 위해 사용되는 보안 정보 등이다. 디바이스 연관 데이터는, 유저가 그의 또는 그녀의 유저 계정에 액세스하게 되는 컴퓨팅 디바이스에 의해서뿐만 아니라 그의 또는 그녀의 유저 계정과 연관되는 서비스에 의해 유지된다.
새로운 주변장치 디바이스가 컴퓨팅 디바이스 상에 설치되거나 또는 다르게는 컴퓨팅 디바이스와 연관되면, 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터는 컴퓨팅 디바이스에 추가될 뿐만 아니라 서비스에도 추가된다. 유저가 컴퓨팅 디바이스로부터 그의 또는 그녀의 유저 계정에 로그인하면, 컴퓨팅 디바이스에 아직 저장되어 있지 않은 주변장치 디바이스에 대한 디바이스 연관 데이터는 서비스로부터 컴퓨팅 디바이스로 복사되고, 이들 주변장치 디바이스 중 컴퓨팅 디바이스 상에 자동적으로 설치될 수 있는 또는 다르게는 컴퓨팅 디바이스와 연관될 수 있는 주변장치 디바이스는 컴퓨팅 디바이스 상에 자동적으로 설치되거나 또는 다르게는 컴퓨팅 디바이스와 자동적으로 연관된다. 따라서, 주변장치 디바이스에 대한 디바이스 연관 데이터가 컴퓨팅 디바이스 또는 서비스에 추가되면, 디바이스 연관 데이터는, 유저가 그의 또는 그녀의 계정에 로그인하게 되는 다른 컴퓨팅 디바이스와 동기화되는데, 디바이스 연관 데이터는 이들 다른 컴퓨팅 디바이스로 복사되고 주변장치 디바이스는 이러한 다른 컴퓨팅 디바이스 상에 자동적으로 설치되거나 또는 이러한 다른 컴퓨팅 디바이스와 자동적으로 연관된다.
도 1은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 시스템(100)을 예시한다. 시스템(100)은 서비스(106)와 통신할 수 있는 컴퓨팅 디바이스(102) 및 복수의(n) 컴퓨팅 디바이스(104(1), 104(1), … 104(n))를 포함한다. 컴퓨팅 디바이스(102, 104)는, 인터넷, 근거리 통신망(local area network; LAN), 전화망, 인트라넷, 다른 공개 및/또는 독점적(proprietary) 네트워크, 이들의 조합 등을 포함하는 여러 상이한 네트워크 중 임의의 것을 통해 서비스(106)와 통신할 수 있다. 컴퓨팅 디바이스(102, 104)는 추가적으로 또는 대안적으로 네트워크 이외의 통신 채널, 예컨대 다양한 유선 및/또는 무선 연결 중 임의의 것을 통해 서비스(106)와 통신할 수 있다. 시스템(100)은, 서비스(106)와 통신하는 동일한 또는 상이한 타입의 임의의 수의 컴퓨팅 디바이스를 포함할 수 있다는 것을 유의해야 한다.
각각의 컴퓨팅 디바이스(102, 104)는 여러 상이한 타입의 디바이스일 수 있고, 컴퓨팅 디바이스(102 및 104)는 동일한 또는 상이한 타입의 디바이스일 수 있다. 예를 들면, 각각의 컴퓨팅 디바이스(102, 104)는 데스크탑 컴퓨터, 서버 컴퓨터, 랩탑 또는 넷북 컴퓨터, 태블릿 또는 노트패드 컴퓨터, 이동국(mobile station), 엔터테인먼트 어플라이언스(entertainment appliance), 디스플레이 디바이스에 통신적으로 커플링되는 셋탑 박스, 텔레비전 또는 다른 디스플레이 디바이스, 셀룰러 또는 다른 무선 전화, 게임 콘솔, 자동차 컴퓨터, 웨어러블(wearable) 컴퓨터 등일 수 있다. 각각의 컴퓨팅 디바이스(102, 104)는 상당한 메모리 및 프로세스 리소스를 갖는 풀 리소스 디바이스(full resource device)(예를 들면, 퍼스널 컴퓨터, 게임 콘솔)로부터 제한된 메모리 및/또는 프로세싱 리소스를 갖는 낮은 리소스 디바이스(예를 들면, 전통적인 셋탑 박스, 핸드헬드 게임 콘솔)까지의 범위에 이를 수도 있다.
컴퓨팅 디바이스(102 및 104)의 논의와 유사하게, 서비스(106)는, 상당한 메모리 및 프로세스 리소스를 갖는 풀 리소스 디바이스로부터 제한된 메모리 및/또는 프로세싱 리소스를 갖는 낮은 리소스 디바이스까지의 범위에 이르는 여러 상이한 타입의 디바이스 중 하나 이상을 사용하여 구현될 수 있다. 서비스(106)는 컴퓨팅 디바이스(102, 104)로부터 원격(예를 들면, 인터넷을 통해 액세스됨)이거나 또는 컴퓨팅 디바이스(102, 104)에 로컬(예를 들면, LAN을 통해 액세스됨)일 수도 있다. 따라서, 서비스(106)는 컴퓨팅 디바이스(102, 104)에 로컬한(예를 들면, 구내의(on premise), 예컨대 동일한 빌딩 또는 사무실 내의) 하나 이상의 디바이스에 의해 호스팅되거나, 또는 컴퓨팅 디바이스(102, 104)로부터 원격의(예를 들면, 구내 외부의(off premise), 예컨대 다른 빌딩, 도시, 또는 국가의) 하나 이상의 디바이스에 의해 호스팅될 수 있다.
컴퓨팅 디바이스(102)의 유저는 서비스(106)와 연관되는 유저 계정을 갖는다. 유저는 컴퓨팅 디바이스(102)로부터 여러 상이한 방식 중 임의의 방식으로, 예컨대 유저명 및 패스워드, 디지털 인증 등을 통해, 그의 또는 그녀의 계정에 로그인할 수 있다. 그의 또는 그녀의 계정에 로그인되어 있는 동안, 컴퓨팅 디바이스(102)는 디바이스 연관 데이터를, 하기에 더 상세히 논의되는 바와 같이, 서비스(106)와 동기화한다.
컴퓨팅 디바이스(102)의 유저는 하나 이상의 주변장치 디바이스(108)에 연결될 수 있는데, 컴퓨팅 디바이스(102)를 하나 이상의 주변장치 디바이스(108)와 연관시키는 것으로 또한 칭해진다. 컴퓨팅 디바이스(102)를 주변장치 디바이스(108)와 연관시키는 것은, 주변장치 디바이스(108)를 컴퓨팅 디바이스(102) 상에 설치하는 것을 포함할 수 있다. 주변장치 디바이스를 설치하는 것은, 컴퓨팅 디바이스(102)와 주변장치 디바이스(108) 사이의 통신 연결(예를 들면, 주변장치 디바이스(108)의 컴퓨팅 디바이스(102)와의 페어링)을 확립하기 위해, 리소스(예를 들면, 드라이버)를 설치하는 것 및 컴퓨팅 디바이스(102) 및/또는 주변장치 디바이스(108)에 대한 적절한 특성을 설정하는 것을 포함한다. 따라서, 주변장치 디바이스를 설치하는 것은, 주변장치 디바이스(108)를 컴퓨팅 디바이스(102)에 의한 사용에 이용가능하게 만드는 것을 포함한다.
컴퓨팅 디바이스(102)를 주변장치 디바이스(108)와 연관시키는 것은 또한, 주변장치 디바이스(108)에 어떻게 액세스하는지(예를 들면, 컴퓨팅 디바이스(102)와 주변장치 디바이스(108) 사이에 어떻게 통신 연결을 확립하는지), 주변장치 디바이스가 어떤 디바이스 기능을 갖는지, 디바이스 기능을 어떻게 사용하는지 또는 디바이스 기능에 어떻게 액세스하는지, 이들의 조합 등을 나타내는 정보를 컴퓨팅 디바이스(102)에 추가하는 것을 포함할 수 있다. 따라서, 컴퓨팅 디바이스(102)를 주변장치 디바이스(108)와 연관시키는 것은, 컴퓨팅 디바이스(102) 상에 주변장치 디바이스(108)를 설치하지 않고도, 주변장치 디바이스(108)를 컴퓨팅 디바이스(102)에 의한 사용에 이용가능하게 만드는 것을 포함한다.
주변장치 디바이스(108)는, 컴퓨팅 디바이스에 의해 제공되지 않는 기능성의 제공, 컴퓨팅 디바이스에 의해 제공되는 기능성의 향상, 컴퓨팅 디바이스에 의해 제공되는 기능성의 대체 등을 하는, 컴퓨팅 디바이스에 연결될 수 있는 디바이스를 가리킨다. 예를 들면, 주변장치 디바이스는 출력 디바이스(예를 들면, 프린터, 스피커 등), 입력 디바이스(예를 들면, 스캐너, 마이크, 키보드 등), 데이터 스토리지 디바이스, 다른 컴퓨팅 디바이스(예를 들면, 스마트폰, 프린터 서버 등) 등 일 수 있다. 주변장치 디바이스는 (예를 들면, 유선 또는 무선 연결을 통해 컴퓨팅 디바이스와 통신하는) 로컬 디바이스, 또는 (예를 들면, 네트워크를 통해 컴퓨팅 디바이스와 통신하는) 원격 디바이스일 수 있다. 주변장치 디바이스는 또한, 다른 컴퓨팅 디바이스, 예컨대 스마트폰일 수 있다.
하나 이상의 실시형태에서, 주변장치 디바이스는 컴퓨팅 디바이스(102, 104)와는 별개의 하우징에서 구현되는 디바이스이다. 주변장치 디바이스는 컴퓨팅 디바이스(102, 104)와는 물리적으로 별개이며 컴퓨팅 디바이스(102, 104) 외부에 있지만, 여전히 컴퓨팅 디바이스(102, 104)와 통신할 수 있고 옵션적으로(optionally) 컴퓨팅 디바이스(102, 104)에 물리적으로 연결될 수 있다. 주변장치 디바이스는 하드웨어 디바이스이고, 소프트웨어 및/또는 펌웨어를 포함할 수 있다. 예를 들면, 주변장치 디바이스(예를 들면, 공유 프린터)는, 프린터 서버(소프트웨어로 구현됨) 및 물리적 프린터 둘 다를 포함하는 논리적 유닛일 수 있다.
디바이스 연관 데이터는 컴퓨팅 디바이스를 주변장치 디바이스와 연관시키는 프로세스의 일부로서 사용될 수 있는 다양한 데이터이다. 따라서, 디바이스 연관 데이터는 주변장치 디바이스에 대응하는 것으로 또한 칭해진다. 주변장치 디바이스에 대한 디바이스 연관 데이터는 주변장치 디바이스에 연결하기 위해 사용되는 데이터, 예컨대 네트워크 또는 미디어 액세스 제어(media access control; MAC) 어드레스, 프린터 서버 상의 공유된 프린터에 대한 네트워크 어드레스, 인증서 또는 개인 식별 번호(personal identification number; PIN)와 같은 보안 또는 인증 데이터 등이다. 디바이스 연관 데이터는 또한, 주변장치 디바이스 및/또는 디바이스 연관 데이터에 관한 추가 데이터, 예컨대 주변장치 디바이스의 이름 또는 식별자, 주변장치 디바이스의 타입, 주변장치 디바이스와 연관되는 드라이버의 식별자, 주변장치 디바이스가 컴퓨팅 디바이스(102) 상에 이미 설치되어 있는지의 여부 등을 포함할 수도 있다. 따라서, 주변장치 디바이스에 대한 디바이스 연관 데이터는 주변장치 디바이스에 연결하는 법을 설명한다. 디바이스 연관 데이터는, 주변장치 디바이스를 재설치하지 않고도 컴퓨팅 디바이스(102)가 주변장치 디바이스에 (예를 들면, 전력 차단되어 재기동된 이후) 후속하여 액세스할 수 있도록, 컴퓨팅 디바이스(102)에 유지된다.
주변장치 디바이스는 또한, 유저가 주변장치 디바이스를 어떻게 사용하는 것을 소망하는지 또는 선호하는지를 설명하는 연관 디바이스 사용 데이터(유저 선호도 데이터로 또한 칭해짐)를 구비할 수도 있다. 주변장치 디바이스에 대한 디바이스 사용 데이터는, 예를 들면, 유저가 선호하는 주변장치 디바이스에 대한 특정한 설정 또는 값(예를 들면, 스피커에 대한 특정 볼륨 레벨, 프린터에 대한 특정 프린트 설정(예를 들면, 듀플렉스 모드, 잉크 또는 토너를 절약하기 위한 이코노미 모드 등), 스캐너에 대한 특정 스캐너 해상도 등)을 명시할 수 있다. 디바이스 사용 데이터는 디바이스 연관 데이터의 일부로서 포함되며 따라서 하기에 더 상세히 논의되는 바와 같이 디바이스 연관 데이터의 일부로서 동기화될 수 있다. 대안적으로, 디바이스 사용 데이터는 디바이스 연관 데이터와는 별개일 수 있지만, 디바이스 연관 데이터와 유사하게(및 옵션적으로 디바이스 연관 데이터와 함께) 동기화될 수 있다.
디바이스 사용 데이터는, 자동적으로 설치되는 것, 수동으로 설치되는 것, 또는 설치 없이 컴퓨팅 디바이스에 연결되는 것으로 인해 컴퓨팅 디바이스와 연관되는 주변장치 디바이스에 대해 동기화될 수 있다. 따라서, 주변장치 디바이스가 컴퓨팅 디바이스와 새로 연관되면, 다른 컴퓨팅 디바이스로부터의 디바이스 사용 데이터가 컴퓨팅 디바이스 상에서 수신되어 사용될 수 있고, 유저는 주변장치 디바이스에 대한 그의 또는 그녀의 소망된 설정이 컴퓨팅 디바이스에 자동적으로 설정되게 한다. 마찬가지로, 컴퓨팅 디바이스 상에서 이루어지는 디바이스 사용 데이터에 대한 변경은, 디바이스 연관 데이터와 유사하게, 다른 컴퓨팅 디바이스와 동기화된다.
주변장치 디바이스(108)는, 서비스(106)와 무관하게(예를 들면, 서비스(106)로부터 디바이스 연관 데이터를 획득하지 않고), 예컨대 주변장치 디바이스(108)를 컴퓨팅 디바이스(102) 상에 수동으로 설치하는 것에 의해, 컴퓨팅 디바이스(102)와 수동으로 연관될 수 있다. 주변장치 디바이스(108)를 컴퓨팅 디바이스와 수동으로 연관시키기 위해, 주변장치 디바이스는, 디렉토리 서비스, 네트워크를 통한 멀티캐스트 발견, 범용 플러그 앤 플레이(Universal Plug and Play; UPnP) 네트워킹 프로토콜, 주변장치 디바이스에 대한 로컬 커플링(예를 들면, 범용 직렬 버스(Universal Serial Bus; USB) 또는 무선 USB 프로토콜), 웹 서비스 온 디바이스(web services on devices), 다른 공개 및/또는 독점적 프로토콜 등과 같은 다양한 메커니즘 중 임의의 것을 사용하여 발견되거나 식별된다. 디바이스 연관 데이터는, 주변장치 디바이스를 발견하거나 식별하기 위해 사용되는 서비스로부터 디바이스 연관 데이터를 획득하는 것, 주변장치 디바이스 자체로부터 디바이스 연관 데이터를 획득하는 것 등과 같이, 주변장치 디바이스를 발견하거나 식별하기 위해 사용되는 메커니즘에 기초하여 다양한 방식으로 획득될 수 있다.
그의 또는 그녀의 계정에 로그인되어 있는 동안, 컴퓨팅 디바이스(102)는 디바이스 연관 데이터를 서비스(106)와 동기화한다. 디바이스 연관 데이터를 동기화하는 컴퓨팅 디바이스(102)는, 컴퓨팅 디바이스(102)가 서비스(106)로부터 디바이스 연관 데이터를 획득하는 것, 및 디바이스 연관 데이터를 컴퓨팅 디바이스(102)로부터 서비스(106)로 제공하는 것을 가리킨다. 서비스(106)는 데이터 동기화 모듈(112) 및 디바이스 연관 데이터 저장소(114)를 포함할 수 있다. 데이터 동기화 모듈(112)은 컴퓨팅 디바이스(102, 104)와의 디바이스 연관 데이터의 동기화를 관리하여, 수신된 디바이스 연관 데이터를 디바이스 연관 데이터 저장소(114)에 저장한다. 따라서, 서비스(106)의 디바이스 연관 데이터 저장소(114)는, 주변장치 디바이스(108)가 컴퓨팅 디바이스(102, 104)의 다양한 것들과 연관되는 것의 결과로서 서비스(106)에 제공되며 컴퓨팅 디바이스(102, 104)에 걸쳐 동기화되는 디바이스 연관 데이터를 포함한다.
대안적으로, 서비스(106)는 디바이스 연관 데이터 저장소(114)를 단순히 포함할 수도 있고, 컴퓨팅 디바이스(102, 104)는, 동기화 모듈(112)을 사용하지 않고도, 하기에서 더 상세히 논의되는 바와 같이, 디바이스 연관 데이터 저장소(114)로부터 데이터를 취출하고 디바이스 연관 데이터에 대한 임의의 변경을 결정할 수 있다. 서비스(106)는 푸시 모델(예를 들면, 이 경우 서비스(106)는 데이터를 서비스(106)로부터 하나 이상의 컴퓨팅 디바이스(102)로 제공함) 및/또는 풀 모델(pull model)(예를 들면, 이 경우, 컴퓨팅 디바이스(102)는 서비스(106)에게 데이터를 요청하거나 서비스(106)로부터 데이터를 취출하기 위해 서비스(106)를 폴링하거나(poll) 또는 다르게는 서비스(106)에 액세스함)을 지원할 수 있다.
유저가 컴퓨팅 디바이스(102 또는 104)로부터 그의 또는 그녀의 계정에 로그인되면, 컴퓨팅 디바이스 상의 새롭게 연관된 주변장치 디바이스(108)에 대한 디바이스 연관 데이터는 서비스(106)로 전달되고 디바이스 연관 데이터 저장소(114)에 저장된다. 마찬가지로, 연관해제된(de-associated)(예를 들면, 삭제되거나 언인스톨된) 주변장치 디바이스(108)의 표시가 서비스(106)에 전달될 수 있고 표시된 디바이스 연관 데이터가 디바이스 연관 데이터 저장소(114)로부터 삭제될 수 있다. 주변장치 디바이스(108)를 연관해제하는 것은, 디바이스를 언인스톨하는 것(예를 들면, 삭제하거나 또는 다르게는 드라이버 또는 다른 리소스를 제거하는 것, 컴퓨팅 디바이스(102) 및/또는 주변장치 디바이스(108)에 대한 특성을 소거하거나 리셋하는 것 등), 또는 다르게는 주변장치 디바이스(108)와 통신하기 위해 컴퓨팅 디바이스(102)에 사용되는 값을 소거하거나 리셋하는 것을 가리킨다. 하나 이상의 실시형태에서, 상이한 데이터를 가질 수도 있는 컴퓨팅 디바이스 사이의 충돌을 관리하기 위해, 각각의 컴퓨팅 디바이스(102, 104) 및 서비스(106)는, 충돌을 해결하고 어떤 데이터가 사용될 데이터인지를(예를 들면, 데이터가 최종 수정되었던 때에 대한 가장 최근의 타임스탬프를) 결정하기 위해, (컴퓨팅 디바이스 또는 서비스의 견지에 의해 또는 컴퓨팅 디바이스 또는 서비스의 견지로부터) 데이터가 최종 수정되었던 때의 타임스탬프(예를 들면, 날짜 및/또는 시간)를 유지한다.
하나의 컴퓨팅 디바이스(102, 104)로부터 수신되는 디바이스 연관 데이터는 디바이스 연관 데이터 저장소(114)에 저장되고 다른 컴퓨팅 디바이스(102, 104)로 제공된다. 데이터는 상이한 시간에 및/또는 상이한 이벤트에 응답하여, 예컨대 유저가 컴퓨팅 다른 디바이스(102, 104)로부터 그의 또는 그녀의 유저 계정에 규칙적인 또는 불규칙적인 간격으로 로그인할 때, 다른 컴퓨팅 디바이스(102, 104)에 제공되거나 또는 다른 방식으로 다른 컴퓨팅 디바이스(102, 104)에 의해 획득될 수 있다(예를 들면, 서비스(106)에 의해 다른 컴퓨팅 디바이스(102, 104)로 푸시되고, 다른 컴퓨팅 디바이스(102, 104)에 의해 취출되는 등).
따라서, 새로운 주변장치 디바이스(108)가 컴퓨팅 디바이스(102)와 연관되면, 새로운 주변장치 디바이스(108)에 대한 디바이스 연관 데이터는 서비스(106)에 전달되고 디바이스 연관 데이터 저장소(114)에 저장된다. 유저가 컴퓨팅 디바이스(104)로부터 후속하여 그의 또는 그녀의 계정에 로그인하면, 새로운 주변장치 디바이스(108)에 대한 디바이스 연관 데이터는 서비스(106)로부터 컴퓨팅 디바이스(104)로 전달되고, 새로운 주변장치 디바이스(108)는 컴퓨팅 디바이스(104)와 자동적으로 연관된다(점선의 연결(120)에 의해 예시됨). 새로운 주변장치 디바이스가 컴퓨팅 디바이스(104)와 자동적으로 연관될 수 있으면 새로운 주변장치 디바이스는 컴퓨팅 디바이스(104)와 자동적으로 연관된다는 것을 유의해야 한다. 새로운 주변장치 디바이스가 컴퓨팅 디바이스(104)와 자동적으로 연관될 수 없는 상황이 발생할 수 있고, 그 경우, 주변장치 디바이스는 하기에서 더 상세히 논의되는 바와 같이 컴퓨팅 디바이스(104)와 자동적으로 연관되지 않는다. 마찬가지로, 추가적인 주변장치 디바이스가 컴퓨팅 디바이스(104)와 연관되어야 하면, 그 추가적인 주변장치 디바이스에 대한 디바이스 연관 데이터는 컴퓨팅 디바이스(102)에 제공되고 추가적인 주변장치 디바이스는 컴퓨팅 디바이스(102)와 자동적으로 연관된다(추가적인 주변장치 디바이스가 컴퓨팅 디바이스(102)와 자동적으로 연관될 수 있다는 것을 가정함).
도 2는, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화를 구현하는 예시적인 컴퓨팅 디바이스(200)를 예시하는 블록도이다. 컴퓨팅 디바이스(200)는, 예를 들면, 도 1의 컴퓨팅 디바이스(102 또는 104)일 수 있다. 컴퓨팅 디바이스(200)는 유저 입력 모듈(202), 출력 모듈(204), 통신 모듈(206), 디바이스 연관 데이터 동기화 모듈(208), 및 디바이스 연관 데이터 저장소(210)를 포함한다.
유저 입력 모듈(202)은 컴퓨팅 디바이스(200)의 유저로부터 유저 입력을 수신한다. 유저 입력은 여러 상이한 방식으로, 예컨대 디바이스(200)의 키패드 또는 키보드의 하나 이상의 키를 누르는 것에 의해, 디바이스(200)의 컨트롤러(예를 들면, 원격 제어 디바이스, 마우스, 트랙패드 등)의 하나 이상의 키를 누르는 것에 의해, 디바이스(200)의 터치패드 또는 터치스크린의 특정 부분을 누르는 것에 의해, 디바이스(200)의 터치패드 또는 터치스크린 상에서 특정 제스쳐를 행하는 것에 의해, 및/또는 디바이스(200)의 컨트롤러(예를 들면, 원격 제어 디바이스, 마우스, 트랙 패드 등)에 대해 특정 제스쳐를 행하는 것에 의해, 제공될 수 있다. 유저 입력은 디바이스(200)로의 다른 물리적 피드백 입력, 예컨대 디바이스(200)의 임의의 부분을 탭하는 것(tapping), 디바이스(200)의 모션 검출 또는 다른 컴포넌트에 의해 인식될 수 있는 액션(예컨대 디바이스(200)를 흔드는 것, 디바이스(200)를 회전시키는 것, 디바이스(200)를 휘게 하거나 굽히는 것 등) 등을 통해 또한 제공될 수 있다. 유저 입력은 마이크에 대한 보이스 또는 다른 가청의 입력을 통해, 이미지 캡쳐 디바이스에 의해 관측되는 손 또는 다른 신체 부위의 모션을 통해, 등과 같이 다른 방식으로 또한 제공될 수 있다.
출력 모듈(204)은 디스플레이, 재생, 및/또는 다른 표현을 위한 컨텐츠를 생성하고, 관리하고, 및/또는 출력한다. 이 컨텐츠는 출력 모듈(204)에 의해 생성되거나 또는 컴퓨팅 디바이스(200)의 다른 모듈로부터 획득될 수 있다. 이 컨텐츠는, 예를 들면, 유저 인터페이스(user interface; UI)의 디스플레이 또는 재생 부분, 입력에 대한 프롬프트 등일 수 있다. 컨텐츠는 컴퓨팅 디바이스(200)의 컴포넌트(예를 들면, 스피커, 상호작용식 디스플레이 디바이스 등)에 의해 디스플레이되거나 또는 다르게는 재생될 수 있다. 대안적으로, 출력 모듈(204)은, 컴퓨팅 디바이스(200)와는 별개인 다른 디바이스 또는 컴포넌트(예를 들면, 스피커, 디스플레이 디바이스 등)로 출력되는 하나 이상의 신호를 생성할 수 있다.
통신 모듈(206)은 도 1의 서비스(106)와 같은 서비스뿐만 아니라, 도 1의 주변장치 디바이스(108)와 같은 주변장치 디바이스와의 통신을 관리한다. 통신의 관리는 컴퓨팅 디바이스(200)의 다른 모듈로부터 획득된 데이터를 목표 디바이스로 전송하는 것, 및 다른 디바이스로부터 수신된 데이터를 컴퓨팅 디바이스(200)의 적절한 모듈로 제공하는 것을 가리킨다.
디바이스 연관 데이터 저장소(210)는 컴퓨팅 디바이스(200)와 수동으로 연관되는 디바이스에 대한 디바이스 연관 데이터뿐만 아니라 서비스(106)로부터 수신되는 디바이스에 대한 디바이스 연관 데이터의 사본을 유지한다. 서비스(106)로부터 수신되는 디바이스에 대한 디바이스 연관 데이터는 컴퓨팅 디바이스(200)와 자동적으로 연관될 수 있거나, 또는 대안적으로, 하기에서 더 상세히 논의되는 바와 같이, 컴퓨팅 디바이스(200)와 연관되지 않고도 디바이스 연관 데이터 저장소(210)에 수신되어 유지될 수 있다.
디바이스 연관 데이터 동기화 모듈(208)은 서비스(106)로의 디바이스 연관 데이터의 전송을 관리한다. 유저가 서비스(106) 상의 그의 또는 그녀의 계정에 로그인되어 있는 동안 새로운 주변장치 디바이스가 컴퓨팅 디바이스(200)와 수동으로 연관되면, 그 주변장치 디바이스에 대한 디바이스 연관 데이터는 디바이스 연관 데이터 저장소(210)에 유지되고 디바이스 연관 데이터 동기화 모듈(208)은 디바이스 연관 데이터의 사본을 서비스(106)에 전송한다. 유저가 서비스(106) 상의 그의 또는 그녀의 계정에 로그인되어 있지 않는 동안 새로운 주변장치 디바이스가 컴퓨팅 디바이스(200)와 수동으로 연관되면, 디바이스 연관 데이터 동기화 모듈(208)은, 유저가 컴퓨팅 디바이스(200)로부터 그의 또는 그녀의 계정에 후속하여 로그인할 때, 그 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터의 사본을 서비스(106)에 전송할 수 있다. 대안적으로, 유저가 서비스(106) 상의 그의 또는 그녀의 계정에 로그인되어 있지 않는 동안 새로운 디바이스가 컴퓨팅 디바이스(200)와 수동으로 연관되면, 디바이스 연관 데이터 동기화 모듈(208)은 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터의 사본을 서비스(106)로 전송하지 않을 수도 있다.
디바이스 연관 데이터 동기화 모듈(208)은 서비스(106)로부터 디바이스 연관 데이터의 수신을 또한 관리한다. 유저가 컴퓨팅 디바이스(200)로부터 서비스(106) 상의 그의 또는 그녀의 계정에 로그인하면, 서비스(106)는, 서비스(106)가 사본을 가지지만 컴퓨팅 디바이스(200)가 사본을 가지지 않는 임의의 새로운 주변장치 디바이스에 대한(예를 들면, 다른 컴퓨팅 디바이스와 수동으로 연관되었던 주변장치 디바이스에 대한) 디바이스 연관 데이터의 사본을 전송한다. 서비스(106)는 또한, 서비스(106)로부터 수신되는 디바이스 연관 데이터에 관한 다른 정보, 예컨대 타임스탬프 정보, 유저 정보 등의 사본을 전송할 수 있다. 디바이스 연관 데이터 동기화 모듈(208)은 서비스(106)로부터 수신되는 디바이스 연관 데이터의 사본을 디바이스 연관 데이터 저장소(210)에 유지한다. 디바이스 연관 데이터 동기화 모듈(208)은 또한, 충돌을 해결하고 다른 기능을 수행하기 위해, 서비스(106)로부터 수신되는 디바이스 연관 데이터에 관한 정보, 예컨대 타임스탬프 정보, 유저 정보 등을 유지한다. 디바이스 연관 데이터 동기화 모듈(208)은 또한, 주변장치 디바이스가 하기에 더 상세히 논의되는 바와 같이 컴퓨팅 디바이스(200)와 자동적으로 연관될 수 있다고 가정하여, 컴퓨팅 디바이스(200)를 그 디바이스 연관 데이터에 대응하는 주변장치 디바이스와 자동적으로 연관시킨다.
마찬가지로, 디바이스 연관 데이터에 대한 다른 변경은, 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터의 전송과 유사하게, 서비스(106)로 전송되고/되거나 서비스(106)로부터 수신될 수 있다. 예를 들면, 주변장치 디바이스에 대한 디바이스 연관 데이터가 변경되면(예를 들면, 프린트 서버명 변경, 보안 또는 인증 데이터 변경, 등), 변경의 표시가 서비스(106)로 전송될 수 있고, 유저가 다른 컴퓨팅 디바이스로부터 로그인하면 서비스(106)는 이들 다른 컴퓨팅 디바이스로 그 표시를 전송한다. 따라서, 디바이스 연관 데이터에서의 변경은 이들 다른 컴퓨팅 디바이스에 자동적으로 동기화된다. 다른 예로서, 주변장치 디바이스가 하나의 컴퓨팅 디바이스 상에서 삭제되면(예를 들면, 언인스톨되거나 연관해제되면), 삭제의 표시는 서비스(106)로 전송될 수 있고, 유저가 다른 컴퓨팅 디바이스로부터 그의 또는 그녀의 계정에 로그인하면 서비스(106)는 이들 다른 컴퓨팅 디바이스로 그 표시를 전송한다. 따라서, 주변장치 디바이스는 이들 다른 컴퓨팅 디바이스로부터 자동적으로 연관해제된다(예를 들면, 언인스톨된다). 대안적으로, 삭제된 주변장치 디바이스의 표시가 서비스(106)로 전송되지 않을 수도 있고, 대신 유저는 그 또는 그녀가 소망하는 컴퓨팅 디바이스 상에서 주변장치 디바이스를 수동으로 연관해제한다. 주변장치 디바이스가 컴퓨팅 디바이스로부터 연결해제되는 경우에도, 대응하는 디바이스 연관 데이터는 컴퓨팅 디바이스 상에 유지될 수 있다는(또는 대안적으로 삭제될 수 있다는) 것을 유의해야 한다.
어떤 디바이스 연관 데이터 변경(예를 들면, 새로운 디바이스 연관 데이터, 삭제 또는 다른 변경의 표시)이 이루어졌는지, 및 따라서 어떤 디바이스 연관 데이터 변경이 다른 컴퓨팅 디바이스에 동기화될 필요가 있는지의 결정은 다양한 방식으로 수행될 수 있다. 서비스(106) 및/또는 다른 컴퓨팅 디바이스(200)는 결정을 수행하는 것에 의존될 수 있다. 예를 들면, 컴퓨팅 디바이스(200)는 어떤 디바이스 연관 데이터 변경이 이루어졌는지를 결정하고, 이루어진 디바이스 연관 데이터 변경의 표시를 전송할 수 있다. 다른 예로서, 컴퓨팅 디바이스(200)는 디바이스 연관 데이터 저장소(210)의 실질적으로 모든 디바이스 연관 데이터의 레코드(예를 들면, 컴퓨팅 디바이스(200)에 대한 현재의 디바이스 연관 데이터의 스냅샷)를 서비스(106)로 전송할 수 있고, 서비스(106)는 어떤 디바이스 연관 데이터 변경이 이루어졌는지를 결정하기 위해 실질적으로 모든 디바이스 연관 데이터의 레코드를, 서비스(106)에 의해 연관되어 유지되는 디바이스 연관 데이터의 레코드에 비교할 수 있다.
또 다른 예로서, 컴퓨팅 디바이스(200)는 디바이스 연관 데이터 저장소(210)의 실질적으로 모든 디바이스 연관 데이터의 레코드(예를 들면, 컴퓨팅 디바이스(200)에 대한 현재의 디바이스 연관 데이터의 스냅샷)를 서비스(106)에 전송할 수 있고, 서비스(106)는 이 레코드의 사본을 유지할 수 있다. 그 다음, 레코드는 유저가 다른 컴퓨팅 디바이스로부터 그의 또는 그녀의 계정에 로그인할 때 서비스(106)에 의해 이들 다른 컴퓨팅 디바이스로 전송될 수 있고, 이들 다른 컴퓨팅 디바이스는, 어떤 디바이스 연관 데이터 변경이 이루어졌는지를 결정하기 위해, 실질적으로 모든 디바이스 연관 데이터를 디바이스 연관 데이터의 그들의 레코드에 비교할 수 있다. 레코드는 대안적으로, 다른 시간에 또는 다른 이벤트, 예컨대 서비스(106)가 레코드를 규칙적인 또는 불규칙적인 간격으로 다른 컴퓨팅 디바이스로 푸시하는 것, 다른 컴퓨팅 디바이스가 규칙적인 또는 불규칙적인 간격으로 레코드를 요청하는 것(예를 들면, 서비스(106)를 폴링하는 것) 등에 응답하여, 서비스(106)에 의해 다른 컴퓨팅 디바이스로 전송될 수 있다.
도 3은, 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하기 위한 예시적인 프로세스(300)를 예시하는 플로우차트이다. 프로세스(300)는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(300)는 세 개의 칼럼으로 예시된다: 좌측 칼럼에 예시되는 프로세스(300)의 동작(act)은 하나의 컴퓨팅 디바이스(예를 들면, 도 1의 컴퓨팅 디바이스(102 또는 104), 또는 도 2의 컴퓨팅 디바이스(200))에 의해 수행되고, 우측 칼럼에 예시되는 프로세스(300)의 동작은 다른 컴퓨팅 디바이스(예를 들면, 도 1의 컴퓨팅 디바이스(102 또는 104), 또는 도 2의 컴퓨팅 디바이스(200))에 의해 수행되고, 중간 칼럼에 예시되는 프로세스(300)의 동작은 서비스(예를 들면, 도 1의 서비스(106))에 의해 수행된다. 프로세스(300)는 동작의 세트로서 도시되며 다양한 동작의 작동을 수행하기 위해 도시된 순서에 제한되지 않는다. 프로세스(300)는 컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하기 위한 예시적인 프로세스이며; 컴퓨팅 디바이스 사이에서 디바이스 연관 데이터를 동기화하는 추가적인 논의는 상이한 도면을 참조로 본원에 포함된다.
프로세스(300)에서, 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경이 서비스로 전송되는데(동작 302), 서비스는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 수신하고(동작 304) 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경의 사본을 유지한다(동작 306). 서비스는 유저 계정과 연관되는 디바이스 연관 데이터의 사본을 유지하는데, 그 유저 계정은 디바이스 연관 데이터가 동작 302에서 서비스로 전송될 때 유저가 로그인되는 유저 계정이다. 디바이스 연관 데이터 변경에 대해, 서비스는 이전의 디바이스 연관 데이터를 새롭게 수신된 디바이스 연관 데이터로 변경할 수 있다(디바이스 연관 데이터가 변경됨).
디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경은 서비스에 의해 컴퓨팅 디바이스로 전송된다(동작 308). 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경은, 동작 302에서 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 전송한 컴퓨팅 디바이스와는 상이한 컴퓨팅 디바이스로 전송되고 그 상이한 컴퓨팅 디바이스에 의해 수신될 수 있다(동작 310). 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경은, 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경에 대한 컴퓨팅 디바이스로부터의 요청에 응답하여 동작 308에서 전송될 수 있거나, 대안적으로 서비스는, 서비스에 의해 수신되고 있는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경에 대한 임의의 요청과 무관하게, 동작 308에서 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 컴퓨팅 디바이스로 푸시하거나 또는 다르게는 제공할 수도 있다. 컴퓨팅 디바이스는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경의 사본을 유지한다(동작 312). 컴퓨팅 디바이스는 또한, 컴퓨팅 디바이스와 자동적으로 연관될 수 있는, 디바이스 연관 데이터에 의해 식별되는 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키고/시키거나 디바이스 연관 데이터 변경에 따라 디바이스 연관 데이터를 업데이트한다(동작 314).
추가적으로 또는 대안적으로, 이전에 동작 302에서 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 전송한 것과 동일한 컴퓨팅 디바이스에 의해, 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 수신하기 위한 요청이 서비스로 전송될 수 있다(동작 316). 동작 316에서 전송되는 요청에 응답하여, 서비스는 유저 계정과 연관되는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 컴퓨팅 디바이스로 전송한다(동작 308). 컴퓨팅 디바이스는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 수신하고(동작 318), 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경의 사본을 유지한다(동작 320). 컴퓨팅 디바이스는 또한, 컴퓨팅 디바이스와 자동적으로 연관될 수 있는, 디바이스 연관 데이터에 의해 식별되는 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키고/시키거나 디바이스 연관 데이터 변경에 따라 디바이스 연관 데이터를 업데이트한다(동작 322). 대안적으로, 동작 316에서 요청이 전송되는 대신, 서비스는, 서비스에 의해 수신되고 있는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경에 대한 임의의 요청에 무관하게, 동작 318에서, 유저 계정과 연관되는 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경을 컴퓨팅 디바이스에 푸시하거나 또는 다르게는 제공할 수도 있다.
따라서, 디바이스 연관 데이터 및/또는 디바이스 연관 데이터 변경은 다른 컴퓨팅 디바이스에 동기화될 수 있고, 주변장치 디바이스는 이들 다른 컴퓨팅 디바이스에 자동적으로 연관될 수 있다. 추가적으로 또는 대안적으로, 디바이스 연관 데이터는 서비스로부터 디바이스 연관 데이터를 서비스로 전송했던 컴퓨팅 디바이스로 리턴될 수 있다. 따라서, 컴퓨팅 디바이스는 자신의 디바이스 연관 데이터 정보를 서비스에 백업하고, 후속하여 디바이스 연관 데이터를 수신하고, (예를 들면, 컴퓨팅 디바이스가 새로운 하드드라이브를 가지게 되는 경우, 오퍼레이팅 시스템이 컴퓨팅 디바이스 상에 재설치되고 있는 경우, 등의 경우에) 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 재연관시킬 수 있다.
디바이스 연관 데이터는 서비스 상의 유저 계정과 연관된다는 것, 및 디바이스 연관 데이터의 전송 및 수신은 유저가 그의 또는 그녀의 유저 계정에 로그인되어 있는 동안 수행된다는 것을 유의해야 한다. 따라서, 프로세스(300)에서 상이한 컴퓨팅 디바이스에 대한 전송 및 수신은 상이한 시간에 수행될 수 있다. 예를 들면, 디바이스 연관 데이터는 유저가 하나의 컴퓨팅 디바이스로부터 그의 또는 그녀의 계정에 로그인되면 동작 302에서 서비스로 전송되고, 그 다음 유저가 다른 컴퓨팅 디바이스로부터 그의 또는 그녀의 유저 계정으로 나중에 로그인되면, 후속하여 동작 308에서 서비스로부터 그 다른 컴퓨팅 디바이스로 전송될 수 있다. 상이한 컴퓨팅 디바이스로부터 동시적 프로세스(300)가 수행될 수 있다는 것을 유의해야 한다. 예를 들면, 하나의 컴퓨팅 디바이스는 디바이스 연관 데이터를 서비스에 전송하고 있을 수도 있고 동시에 다른 컴퓨팅 디바이스는 서비스로부터 디바이스 연관 데이터를 수신할 수도 있는 경우, 하나의 컴퓨팅 디바이스가 디바이스 연관 데이터를 서비스에 전송할 수도 있고 동시에 다른 컴퓨팅 디바이스가 디바이스 연관 데이터를 서비스에 전송할 수도 있는 경우, 등의 경우가 있을 수도 있다.
예시적인 프로세스(300)에서, 디바이스 연관 데이터는 컴퓨팅 디바이스로부터 서비스에 의해 수신되고 있는 것으로 도시된다. 대안적으로, 디바이스 연관 데이터는 다른 소스로부터 수신될 수 있다. 예를 들면, 하나 이상의 실시형태에서, 주변장치 디바이스는 그 자체가 주변장치 디바이스에 대한 디바이스 연관 데이터를 서비스에 제공할 수 있다. 예를 들면, 주변장치 디바이스는 자기 자신의 디바이스 연관 데이터를 서비스로 전송할 수 있는 스마트폰일 수도 있다. 따라서, 주변장치 디바이스는, 유저가 그의 또는 그녀의 계정에 로그인하게 되는 컴퓨팅 디바이스에 디바이스 연관 데이터를 동기화하는 서비스로 자신의 디바이스 연관 데이터를 제공할 수 있고, 주변장치 디바이스는 유저가 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시키지 않아도 이들 컴퓨팅 디바이스와 자동적으로 연관된다. 마찬가지로, 주변장치 디바이스(예컨대 스마트폰 주변장치 디바이스)는 또한, 특정 유저가 주변장치 디바이스를 어떻게 사용하기를 소망하는지 또는 선호하는지에 관한 유저 선호도 데이터를 포함할 수도 있는 디바이스 연관 데이터를 서비스로부터 수신할 수도 있고, 주변장치 디바이스는 (예를 들면, 유저 선호도 데이터에 따라 적절한 구성 값 또는 다른 디바이스 설정을 설정하는 것에 의해) 그 선호도 데이터를 사용할 수 있다.
도 4는 하나 이상의 실시형태에 따른, 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키기 위한 예시적인 프로세스(400)를 예시하는 플로우차트이다. 프로세스(400)는 컴퓨팅 디바이스, 예컨대 도 1의 컴퓨팅 디바이스(102 또는 104), 또는 도 2의 컴퓨팅 디바이스(200)에 의해 수행되고, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(400)는 동작의 세트로서 도시되며 다양한 동작의 작동을 수행하기 위해 도시된 순서에 제한되지 않는다. 프로세스(400)는 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키기 위한 예시적인 프로세스이며; 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키는 추가적인 논의는 다른 도면을 참조로 본원에 포함된다.
프로세스(400)에서, 유저 계정은 프로세스(400)를 구현하는 컴퓨팅 디바이스로부터 로그인된다(동작 402). 유저 계정과 연관되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터가 수신된다(동작 404). 수신되는 디바이스 연관 데이터는, 수신되는 디바이스 연관 데이터, 다른 컴퓨팅 디바이스에 의해 설치되는 새로운 주변장치 디바이스에 대한 디바이스 연관 데이터 등과 같은 상이한 형태를 취할 수 있다. 디바이스 연관 데이터는, 유저 계정이 로그온된 직후, 유저 계정이 로그온되고 약간의 시간 이후(예를 들면, 시간의 임계량이 경과한 이후, 서비스로부터 다른 데이터 또는 더 높은 우선순위 데이터의 임계량이 수신된 이후 등), 다른 이벤트(예를 들면, 서비스에 저장되는 디바이스 연관 데이터에 대한 변경)에 기초하여, 등과 같이 상이한 시간에 수신될 수 있다.
수신된 디바이스 연관 데이터의 사본은 컴퓨팅 디바이스 상에서 유지된다(동작 406). 추가적으로, 수신된 디바이스 연관 데이터에 대응하는 하나 이상의 주변장치 디바이스 중, 컴퓨팅 디바이스와 아직 연관되어 있지는 않지만 컴퓨팅 디바이스와 연관될 수 있는 것이 어느 것인지가 결정된다(동작 408). 컴퓨팅 디바이스와 연관될 수 있지만 현재 컴퓨팅 디바이스와 연관되어 있지 않는 것으로 동작 408에서 결정되는 하나 이상의 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관된다(동작 410). 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키는 것에 의해, 유저가 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시킬 필요는 없지만(예를 들면, 주변장치 디바이스를 수동으로 설치할 필요는 없지만), 주변장치 디바이스는, 마치 그들이 컴퓨팅 디바이스와 수동으로 연관된 것처럼(예를 들면, 컴퓨팅 디바이스 상에 수동으로 설치된 것처럼) 컴퓨팅 디바이스에 의해 후속하여 액세스될 수 있다.
어떤 주변장치 디바이스가 컴퓨팅 디바이스와 미리 연관되는지의 결정은 여러 상이한 방식으로, 예컨대 디바이스 연관 데이터에 포함되는 주변장치 디바이스의 식별자를 컴퓨팅 디바이스와 미리 연관되는 주변장치 디바이스의 식별자와 비교하는 것, 서버로부터 수신되는 모든 디바이스 연관 데이터가 컴퓨팅 디바이스와 아직 연관되지 않은 주변장치 디바이스에 대한 것이라고(따라서 수신된 디바이스 연관 데이터에 대응하는 주변장치 디바이스 중 어느 것도 컴퓨팅 디바이스와 아직 연관되지 않는다고) 가정하는 것, 등에 의해 결정될 수 있다.
어떤 주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관될 수 있는지의 결정도 또한 상이한 방식으로 결정될 수 있다. 하나 이상의 실시형태에서, 컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위해 다양한 규칙(또는 다른 기준)이 적용된다. 이러한 규칙은, 컴퓨팅 디바이스가 서비스로부터 수신하는 디바이스 연관 데이터의 일부로서 저장되는 다양한 위치에, 예컨대 컴퓨팅 디바이스 상에 상주할 수 있다. 따라서, 주변장치 디바이스는, 주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관되지 않아야 한다는 것을 하나 이상의 규칙이 나타내지 않는 한, 디바이스와 자동적으로 연관될 수 있다.
주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관되지 않는 경우, 주변장치 디바이스에 대한 디바이스 연관 데이터는, 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시킬 때, 주변장치 디바이스의 발견 및/또는 주변장치 디바이스의 연관을 용이하게 하기 위해 여전히 사용될 수 있다는 것을 유의해야 한다. 예를 들면, 디바이스 연관 데이터에서 지속되는 보안 코드 또는 다른 정보를 주변장치 디바이스가 구비할 수도 있고, 유저는 그 또는 그녀가 주변장치 디바이스를 수동으로 설치하는 것에 의해 주변장치 디바이스를 연결하기를 선택하는 경우 그 정보를 입력하거나 또는 다르게는 제공할 필요가 없다. 다른 예로서, 주변장치 디바이스가 존재하지만 컴퓨팅 디바이스와 연관되지 않고 있다는 것을 나타내기 위해, 주변장치 디바이스의 존재는 주변장치 디바이스 선택 또는 다른 구성 스크린 상에서, 예컨대 상이한 형태로(예를 들면, 상이한 칼라로, 음영처리되어 또는 더 밝게) 디스플레이될 수도 있다.
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 주변장치 디바이스 드라이버 이용가능성 규칙(peripheral device driver availability rule)을 포함할 수 있다. 주변장치 디바이스 드라이버는, 주변장치 디바이스와 통신하기 위해 컴퓨팅 디바이스에 의해 사용되는 소프트웨어(및/또는 펌웨어) 및 데이터를 가리킨다. 하나 이상의 실시형태에서, 주변장치 디바이스에 대응하는 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스는 주변장치 디바이스를 설치할 수 없을 수도 있거나, 또는 그 주변장치 디바이스에 대한 드라이버를 설치할 수 없을 수도 있다. 이러한 실시형태에서, 주변장치 디바이스는 컴퓨팅 디바이스와 연관될 수 없다는 결정이 이루어진다.
추가적으로, 몇몇 주변장치 디바이스 드라이버는, 네트워크를 통해, 자기 또는 광학 디스크로부터, 플래시 드라이브 또는 다른 솔리드 스테이트 드라이브로부터, 컴퓨팅 디바이스 자체 상의 다른 위치로부터, 등과 같이 소스(예를 들면, 다른 디바이스 또는 서비스)로부터 다운로드된다. 이들 주변장치 디바이스 드라이버는 검증된 것으로 디지털적으로 서명될 수도 있거나, 검증된 소스로부터 획득될 수도 있거나, 또는 다르게 검증가능할 수도 있다. 하나 이상의 실시형태에서, 주변장치 디바이스 드라이버가 검증되지 않으면(예를 들면, 컴퓨팅 디바이스에 의해 신뢰되는 기관에 의해 디지털적으로 서명되지 않는 경우, 검증된 소스로부터 유래하지 않는 경우, 등), 주변장치 디바이스 드라이버는 컴퓨팅 디바이스 상에 설치될 수 없다는 것이 결정된다. 그러나, 유저는, 옵션적으로, 획득된 주변장치 디바이스 드라이버를 사용하여 주변장치 디바이스의 설치를 인가하도록 촉구될(prompted) 수 있다. 주변장치 디바이스의 설치를 인가하기 위해, "예" 또는 "설치" 옵션의 선택과 같은 다양한 유저 입력이 수신될 수 있다. 주변장치 디바이스의 설치가 인가된 것을 유저 입력이 나타내면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관되는 것처럼 컴퓨팅 디바이스와 연관된다(유저는 그 또는 그녀가 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시키는 것처럼 주변장치 디바이스를 컴퓨팅 디바이스와 연관시키기 위해 추가적인 액션을 취할 필요가 없다).
추가적으로, 몇몇 주변장치 디바이스 드라이버는, 버전 번호에 의해 식별될 수도 있는 상이한 모델(예를 들면, 드라이버에 의해 사용되는 포맷 또는 프로토콜)을 사용하여 설계된다. 주변장치 디바이스는 이들 모델 중 상이한 모델을 사용하는 드라이버를 구비할 수도 있다. 하나 이상의 실시형태에서, 주변장치 디바이스 드라이버가 특정 모델이 아닌 경우, 적어도 드라이버 모델의 특정 버전이 아닌 경우, 등의 경우에, 주변장치 디바이스 드라이버는 컴퓨팅 디바이스 상에 설치될 수 없다는 결정이 이루어진다. 그러나, 유저는 옵션적으로, 획득된 드라이버가 특정 모델, 적어도 드라이버 모델의 특정 버전, 등이 아님에도 불구하고, 획득된 주변장치 디바이스 드라이버를 사용하여 주변장치 디바이스의 설치를 인가하도록 촉구될 수 있다. 주변장치 디바이스의 설치를 인가하기 위해, "예" 또는 "설치" 옵션의 선택과 같은 다양한 유저 입력이 수신될 수 있다. 주변장치 디바이스의 설치가 인가된 것을 유저 입력이 나타내면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관되는 것처럼 컴퓨팅 디바이스와 연관된다(유저는 그 또는 그녀가 주변장치 디바이스를 컴퓨팅 디바이스와 수동으로 연관시키는 것처럼 주변장치 디바이스를 컴퓨팅 디바이스와 연관시키기 위해 추가적인 액션을 취할 필요가 없다).
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 명시된 디바이스 규칙(specified device rule)을 포함할 수 있다. 몇몇 주변장치 디바이스는 개개의 컴퓨팅 디바이스에 특정한 방식으로 컴퓨팅 디바이스와 연관될 수 있고, 디바이스 연관 데이터는 그 특정 방식을 포함한다. 예를 들면, 주변장치 디바이스(예를 들면, 블루투스 디바이스)는 컴퓨팅 디바이스 상에 설치되며, 주변장치 디바이스가 설치되는 컴퓨팅 디바이스의 MAC 어드레스를 포함하는 디바이스 연관 데이터를 구비할 수도 있다. 하나 이상의 실시형태에서, 디바이스 연관 데이터가 특정 컴퓨팅 디바이스를 명시하는 데이터를 포함하는지의 여부에 관한 검사가 이루어진다. 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스가 디바이스 연관 데이터에 의해 명시되는 컴퓨팅 디바이스이면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관될 수 있다. 그러나, 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스가 디바이스 연관 데이터에 의해 명시되는 컴퓨팅 디바이스가 아니면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관될 수 없다. 따라서, 이러한 주변장치 디바이스는 디바이스 연관 데이터가 최초 전송되었던 (예를 들면, 디바이스 연관 데이터를 백업하는) 컴퓨팅 디바이스와 자동적으로 재연관될 수 있을 것이지만, 다른 컴퓨팅 디바이스와는 자동적으로 연관될 수 없다.
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 도메인 또는 네트워크 규칙을 포함할 수 있다. 상이한 주변장치 디바이스는, 특정 컴퓨팅 디바이스(예를 들면, 네트워크에 액세스할 수 있는 컴퓨팅 디바이스, 동일한 도메인의 일부인 컴퓨팅 디바이스 등)에만 액세스할 수 있는 특정 네트워크 또는 도메인 상에 위치될 수 있다. 하나 이상의 실시형태에서, 주변장치 디바이스가, 디바이스 연관 데이터를 수신한 컴퓨팅 디바이스가 현재 액세스할 수 없는 도메인의 일부이거나 또는 네트워크 상에 위치되어 있다는 것을 디바이스 연관 데이터가 나타내는지의 여부에 관해 검사가 이루어진다. 주변장치 디바이스가, 컴퓨팅 디바이스가 현재 액세스할 수 없는 도메인의 일부이거나 또는 네트워크 상에 위치되어 있는지의 여부는 다양한 방식으로, 예컨대 (디바이스 연관 데이터에서 식별되는 바와 같은) 주변장치 디바이스가 위치되어 있는 도메인 또는 네트워크를, 컴퓨팅 디바이스가 현재 위치되어 있는 레코드(예를 들면, 컴퓨팅 디바이스의 오퍼레이팅 시스템에 의해 유지됨)에 비교하여 이들이 동일한지를 비교하는 것, 주변장치 디바이스에 대한 액세스를 시도하여 시도가 성공하는지의 여부를 검사하는 것, 등에 의해 결정될 수 있다. 주변장치 디바이스가, 컴퓨팅 디바이스가 현재 액세스할 수 없는 도메인의 일부이거나 네트워크 상에 위치되면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어진다.
주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어지더라도, 이 결정은, 주변장치 디바이스가 현재 액세스할 수 없는 것에 기인하여 이루어진다. 따라서, 주변장치 디바이스는 컴퓨팅 디바이스와 연관될 수 있지만 컴퓨팅 디바이스와 자동적으로 연관될 수는 없는 것으로 칭해질 수 있다. 주변장치 디바이스가 위치되는 도메인 또는 네트워크에 컴퓨팅 디바이스가 후속하여 액세스할 수도 있고 따라서 컴퓨팅 디바이스와 연관될 것이라는 것을 컴퓨팅 디바이스에게 나타내기 위해, 주변장치 디바이스 또는 디바이스 연관 데이터는 마킹되거나 또는 레코드가 이러한 주변장치 디바이스 또는 디바이스 연관 데이터로 만들어진다. 예를 들면, 프로세스(400)가 수행될 때, 주변장치 디바이스는 유저가 집에서 실행하고 있는 랩탑 컴퓨터일 수도 있고 따라서 그의 또는 그녀의 직장 도메인 또는 네트워크에 액세스할 수 없지만, 나중에 직장으로 가져가서 주변장치 디바이스가 위치되어 있는 도메인 또는 네트워크에 참여할 수도 있다. 이러한 상황에서, 주변장치 디바이스는 나중의 시간에(예를 들면, 유저가 그의 또는 그녀의 디바이스를 직장에 가져가서, 주변장치 디바이스가 위치되어 있는 도메인 또는 네트워크에 컴퓨팅 디바이스가 참여한 것을 검출하면) 그 디바이스와 자동적으로 연관될 수도 있거나, 또는 나중의 시간에 유저는 주변장치 디바이스를 컴퓨팅 디바이스와 자동적으로 연관시키는 능력을 재검사하는 것이 소망되는지의 여부를 나타내도록 촉구될 수도 있다. 도 2의 디바이스 연관 데이터 동기화 모듈(208)은 규칙적인 또는 불규칙적인 간격으로, 또는 특정 이벤트(예컨대 컴퓨팅 디바이스가 특정 도메인에 참여하는 것)에 응답하여, 주변장치 디바이스가, 컴퓨팅 디바이스가 현재 액세스할 수 있는 도메인의 일부인지 또는 네트워크 상에 위치되는지의 여부를 검사할 수도 있다.
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 연관 이유 규칙(association reason rule)을 포함할 수 있다. 몇몇 상황에서, 주변장치 디바이스는 특정 이유, 예컨대 관리자 액션 또는 그룹 정책 설정으로 인해 컴퓨팅 디바이스와 연관될 수 있다. 하나 이상의 실시형태에서, 관리자로부터의 커맨드에 응답하여 또는 그룹 정책 설정으로 인해 주변장치 디바이스가 컴퓨팅 디바이스와 연관되면, 그 커맨드 때문에 주변장치 디바이스가 컴퓨팅 디바이스와 연관된 것에 대응하여 디바이스 연관 데이터에 레코드가 만들어진다. 관리자로부터의 이러한 커맨드 때문에 또는 그룹 정책 설정으로 인해 주변장치 디바이스가 컴퓨팅 디바이스와 연관된 것을 디바이스 연관 데이터가 나타내는지의 여부에 관한 검사가 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스에 의해 이루어진다. 관리자로부터의 이러한 커맨드 때문에 또는 그룹 정책 설정으로 인해 주변장치 디바이스가 컴퓨팅 디바이스와 연관되면, 주변장치 디바이스가 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어진다.
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변장치 디바이스를 식별하기 위한 규칙은 인증 규칙(authentication rule)을 포함할 수 있다. 몇몇 상황에서, 소정의 인증 정보, PIN 등은 디바이스 연관 데이터에 포함되지 않는다. 대신, 유저 입력이, 이러한 디바이스 연관 데이터에 대응하는 주변장치 디바이스가 연관되고 있는 각각의 컴퓨팅 디바이스에서 수신된다. 하나 이상의 실시형태에서, 주변장치 디바이스를 연관시키기 위해 사용되는 소정의 데이터(예컨대 크리덴셜(크리덴셜), PIN 등)가 대응하는 디바이스 연관 데이터에서 누락되어 있는지의 여부에 관한 검사가 디바이스 연관 데이터를 수신하는 컴퓨팅 디바이스에 의해 이루어진다. 주변장치 디바이스를 컴퓨팅 디바이스와 연관시키기 위해 사용되는 소정의 데이터가 대응하는 디바이스 연관 데이터에 포함되지 않으면, 주변장치 디바이스는 컴퓨팅 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어진다.
그러나, 유저는 옵션적으로, 디바이스 연관 데이터에서 누락되어 있는 소정의 데이터를 제공하도록 촉구될 수 있다. 키보드 상에서 PIN 또는 인증 코드를 입력하는 것, 유저와 연관되는 디지털 인증서를 제공하는 것 등과 같이 소정의 데이터를 제공하기 위해, 다양한 유저 입력이 수신될 수 있다. 유저 입력이 누락 데이터를 제공하는 것에 응답하여, 주변장치 디바이스는 마치 컴퓨팅 디바이스와 자동적으로 연관되는 것처럼 컴퓨팅 디바이스와 연관된다(유저는 그 또는 그녀가 주변장치 디바이스를 수동으로 설치하는 것처럼 주변장치 디바이스를 컴퓨팅 디바이스와 연관시키기 위해 추가적인 액션을 취할 필요가 없다).
컴퓨팅 디바이스와 자동적으로 연관될 수 없는 주변 디바이스를 식별하기 위한 규칙의 논의에서, 유저에게 입력(예를 들면, 드라이버를 설치하기 위한 인증, PIN, 또는 크리덴셜 등)을 촉구하는 것이 언급되었다. 이 촉구는, 주변장치 디바이스 관리 또는 구성 스크린 상에서의 주변장치 디바이스의 유저 선택에 응답하여, 주변장치 디바이스가 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어질 때, 등과 같이 상이한 시간들에 수행될 수 있다.
추가적으로, 주변장치 디바이스가 컴퓨팅 디바이스와 자동적으로 연관되지 않으면, 주변장치 디바이스가 컴퓨팅 디바이스와 왜 연관되지 않았는지에 관한 피드백(예를 들면, 주변장치 디바이스 드라이버가 컴퓨팅 디바이스에 설치될 수 없음, 컴퓨팅 디바이스가 적절한 MAC 어드레스를 가지지 않음, 등)을 유저에게 제공하기 위한 표시가 디스플레이되거나 또는 다르게는 제시될 수 있다는 것을 유의해야 한다. 이 촉구는 주변장치 디바이스 관리 또는 구성 스크린 상에서의 주변장치 디바이스의 유저 선택에 응답하여, 주변장치 디바이스가 디바이스와 자동적으로 연관될 수 없다는 결정이 이루어지는 시간에, 등과 같이 상이한 시간들에 수행될 수 있다.
프로세스(400)의 예시된 예에서, 디바이스 연관 데이터에 대응하는 주변장치 디바이스가 동작 410에서 컴퓨팅 디바이스와 자동적으로 연관되는지에 무관하게, 수신된 디바이스 연관 데이터의 사본은 컴퓨팅 디바이스 상에 유지된다는 것을 또한 유의해야 한다. 대안적으로, 주변장치 디바이스에 대응하는 디바이스 연관 데이터의 사본은, 디바이스 연관 데이터에 대응하는 주변장치 디바이스가 컴퓨팅 디바이스와 연관되는 것, 디바이스 연관 데이터가 컴퓨팅 디바이스와 연관될 수 있지만 컴퓨팅 디바이스와 자동적으로 연관될 수 없는 것으로 마킹되는 것, 등과 같은 소정의 상황 하에서 컴퓨팅 디바이스 상에서만 유지될 수도 있다.
도 5는, 하나 이상의 실시형태에 따른, 본원에서 논의되는 기술을 구현하기 위한 예시적인 모델(500)을 예시하는 블록도이다. 모델(500)은, 예를 들면, 도 2의 디바이스 연관 데이터 동기화 모듈(208)을 구현하기 위해 사용될 수 있다. 모델(500)은 제너릭 동기화 프레임 워크(generic synchronization framework; 502), 디바이스 동기화 핸들러(504), 디바이스 연관 프레임워크(508), 및 디바이스 연관 데이터 저장소(510)를 포함한다.
디바이스 연관 프레임워크(508)는 특정 주변장치 디바이스 프로토콜(예를 들면, 프린터, 블루투스 디바이스, 웹 서비스 공급자 등)에 대한 디바이스 연관 데이터를 관리하는데, 디바이스 연관 데이터는 디바이스 연관 데이터 저장소(510)(이것은 도 2의 디바이스 연관 데이터 저장소(210)일 수 있다)에 유지된다. 디바이스 연관 프레임워크(508)는, 디바이스 연관 프레임워크(508)가 디바이스 동기화 핸들러(504)로부터 디바이스 연관 데이터를 수신하는 것을 허용하는 인터페이스인 임포트 방법(import method)(512), 및 디바이스 연관 프레임워크(508)가 디바이스 연관 데이터를 디바이스 동기화 핸들러(504)로 전송하는 것을 허용하는 인터페이스인 엑스포트 방법(export method)(514)을 제공한다. 디바이스 연관 프레임워크(508)는 상이한 주변장치 디바이스 프로토콜에 대한 디바이스 연관 데이터를 관리하기 위한 하나 이상의 모듈을 포함할 수 있다.
하나 이상의 실시형태에서, 서비스(106)를 유저 계정에 대한 디바이스 연관 데이터의 세트로 채우기 위해, 제너릭 동기화 프레임 워크(502)는 디바이스 동기화 핸들러(504)를 호출하여 동기화할 데이터를 열거할 것을 핸들러(504)에게 요청한다. 동기화 핸들러(504)는 디바이스 연관 프레임워크(508)를 호출하여, 프레임워크(508)가 가지고 있는 디바이스 연관 데이터의 집합(collection)을 프레임워크(508)가 엑스포트해야 한다고 요청한다. 디바이스 연관 프레임워크(508)는 자신의 디바이스 연관 데이터를 획득하기 위해 디바이스 연관 데이터 저장소(510)로부터 판독하고, 판독된 디바이스 연관 데이터를 다시 디바이스 동기화 핸들러(504)로 제공한다. 디바이스 동기화 핸들러(504)는 수신된 디바이스 연관 데이터를 동기화된 데이터의 컨테이너 안에 배치하고 그 컨테이너를 제너릭 동기화 프레임 워크(502)로 리턴한다. 제너릭 동기화 프레임 워크(502)는 동기화된 데이터의 집합을 서비스(106)로 제공한다.
하나 이상의 실시형태에서, 컴퓨팅 디바이스 상의 디바이스 연관 데이터에 대해 이루어진 변경을 서비스(106)로 제공하기 위해, 디바이스 동기화 핸들러(504)는 디바이스 연관 데이터 저장소(510)에 대해 변경 이벤트를 직접적으로 등록한다. 대안적으로, 디바이스 동기화 핸들러(504)는 변경 수신을 다른 방식으로, 예컨대 디바이스 연관 프레임워크(508)에 의해 노출되는 애플리케이션 프로그래밍 인터페이스(application programming interface; API) 방법을 호출하는 것에 의해 나타낼 수 있다. 데이터 저장소(510)에서의 변경에 응답하여, 디바이스 동기화 핸들러(504)는 통지를 받고, 디바이스 동기화 핸들러(504)는 디바이스 연관 프레임워크(508)로부터 디바이스 연관 데이터의 현재의 세트를 열거한다. 이 열거는 디바이스 동기화 핸들러(504)가, 기저의 데이터 저장소(510)의 상세를 이해할 필요 없이, 데이터 저장소(510)에서 무엇이 변경되었는지에 관한 상세를 획득하는 것을 허용한다. 디바이스 연관 프레임워크(508)는 자신의 디바이스 연관 데이터를 획득하기 위해 디바이스 연관 데이터 저장소(510)로부터 판독하고 자신의 디바이스 연관 데이터를 (예를 들면, 디바이스 연관 데이터 오브젝트로서) 디바이스 동기화 핸들러(504)에 제공하는데, 디바이스 동기화 핸들러(504)는 자신이 수신하는 디바이스 연관 데이터를 포함하는 동기화된 설정의 컨테이너를 생성하고 그 컨테이너를 제너릭 동기화 프레임 워크(502)로 전달한다. 제너릭 동기화 프레임 워크(502)는 동기화된 데이터의 집합을 서비스(106)로 제공한다.
하나 이상의 실시형태에서, 서비스(106)로부터 수신되는 디바이스 연관 데이터에 대해 이루어지는 변경을 기록하기 위해, 서비스(106)는 디바이스 연관 데이터에 대한 변경에 관해 제너릭 동기화 프레임 워크(502)에게 통지하고 실질적으로 모든 동기화된 설정의 새로운 집합을 제너릭 동기화 프레임 워크(502)로 제공한다. 제너릭 동기화 프레임 워크(502)는 이 집합을 파싱하고 그 다음 디바이스 동기화 핸들러(504)를 호출하여 서비스(106)로부터 수신했던 디바이스 연관 데이터를 핸들링한다. 디바이스 동기화 핸들러(504)는, 현재의 로컬 디바이스 연관 데이터와 서비스(106)로부터 수신되었던 디바이스 연관 데이터 사이의 차이를 디바이스 동기화 핸들러(504)가 결정할 수 있도록, 디바이스 연관 데이터의 기존의 세트를 열거한다. 디바이스 동기화 핸들러(504)는, 현재의 로컬한 디바이스 연관 데이터와 서비스(106)로부터 수신되었던 디바이스 연관 데이터 사이의 차이를 갖는 디바이스 연관 프레임워크(508)를 호출한다. 디바이스 연관 프레임워크(508)는 디바이스 연관 데이터 저장소(510)로부터 대응하는 디바이스 연관 데이터를 취출한다. 데이터 저장소(510)로부터 취출되는 디바이스 연관성의 세트는 디바이스 동기화 핸들러(504)까지 다시 전달된다. 디바이스 동기화 핸들러(504)는, 변경된 데이터의 세트가 디바이스 동기화 핸들러(504)가 관리하는 디바이스 연관 데이터의 세트에 영향을 끼치면; 다시 말하면, 디바이스 연관 데이터가 동일하게 유지되지만 다른 동기화된 데이터가 변경되면, 디바이스 동기화 핸들러(504)가 관리하는 로컬 상태에 대해 어떠한 변경도 없다는 것을 결정한다. 주변장치 디바이스가 추가되면, 디바이스 동기화 핸들러(504)는 디바이스 연관 데이터를 추가하기 위해 임포트 커맨드를 갖는 디바이스 연관 프레임워크(508)를 호출하고, 디바이스 연관 프레임워크(508)는 디바이스 연관 데이터를 데이터 저장소(510)에 추가한다. 주변장치 디바이스가 제거되면, 디바이스 동기화 핸들러(504)는 연관해제 또는 제거 커맨드를 갖는 디바이스 연관 프레임워크(508)를 호출하고 디바이스 연관 프레임워크(508)는 디바이스 연관 데이터를 데이터 저장소(510)로부터 제거한다. 디바이스 연관 데이터가 디바이스 연관 데이터 저장소(510)에 저장되거나 디바이스 연관 데이터 저장소(510)로부터 제거되는 것의 결과로서, 컴퓨팅 디바이스는 주변장치 디바이스와 연관되거나 또는 연관해제된다.
본원에서 논의되는 기술은 다양한 사용 시나리오를 제공한다. 예를 들면, 유저는 그 또는 그녀가 그의 또는 그녀의 컴퓨팅 디바이스 중 하나 상에서 사용하기를 원하는 주변장치 디바이스를 설치하고, 이들 주변장치 디바이스가 그의 또는 그녀의 다른 컴퓨팅 디바이스 상에 자동적으로 설치되게 할 수 있다. 다른 예로서, 유저는 새로운 스마트폰을 구매하여 스마트폰이 자신의 디바이스 연관 데이터를 서비스로 전달하게 할 수 있다. 그러면, 그의 또는 그녀의 새로운 스마트폰은, 유저가 그의 또는 그녀의 컴퓨팅 디바이스 중 임의 것의 상에 스마트폰을 수동으로 설치할 필요 없이, 그의 또는 그녀의 컴퓨팅 디바이스 상에 자동적으로 설치된다.
본원에서 논의되는 기술에 대한 다양한 다른 수정예가 만들어질 수 있다. 하나 이상의 실시형태에서, 컴퓨팅 디바이스 상에 설치되는 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기에서 논의된 바와 같이, 유저가 그의 또는 그녀의 계정을 로그인하게 되는 다양한 다른 컴퓨팅 디바이스에 자동적으로 동기화된다. 대안적으로, 유저는, 그 또는 그녀가 특정 주변장치 디바이스가 그의 또는 그녀의 다른 컴퓨팅 디바이스에 동기화되게 하기를 원하는지 (예를 들면, 설치 프로세스의 일부로서) 상기될 수 있고, 특정 주변장치 디바이스에 대한 디바이스 연관 데이터는 특정 주변장치 디바이스가 동기화되어야 한다는 것을 나타내는 유저 입력에만 응답하여 서비스 및 다른 컴퓨팅 디바이스에 전송된다.
특정 기능성이 특정 모듈을 참조로 본원에서 논의되지만, 본원에서 논의되는 개개의 모듈의 기능성은 복수의 모듈로 분리될 수 있고/있거나, 복수의 모듈의 적어도 몇몇 기능성은 단일의 모듈로 결합될 수 있다는 것을 유의해야 한다. 다양한 모듈에 의해 수행되는 다양한 액션이 본원에서 논의된다. 액션을 수행하는 것으로 본원에서 논의되는 특정 모듈은, 그 액션을 수행하는 그 특정 모듈 자체를 포함하거나, 또는 대안적으로 그 액션을 수행하는(또는 그 특정 모듈과 연계하여 그 액션을 수행하는) 다른 컴포넌트 또는 모듈을 호출하는 또는 다르게는 그 다른 컴포넌트 또는 모듈에 액세스하는 그 특정 모듈을 포함한다. 따라서, 액션을 포함하는 특정 모듈은 그 액션을 수행하는 그 특정 모듈 자체 및/또는 그 액션을 수행하는 그 특정 모듈에 의해 호출되는 또는 다르게는 액세스되는 다른 모듈을 포함한다.
도 6은 본원에서 설명되는 다양한 기술을 구현할 수도 있는 하나 이상의 시스템 및/또는 디바이스를 묘사하는 예시적인 컴퓨팅 디바이스(602)를 포함하는 예시적인 시스템을 600에서 일반적으로 예시한다. 컴퓨팅 디바이스(602)는, 예를 들면, 서비스 공급자의 서버, 클라이언트와 연관되는 디바이스(예를 들면, 클라이언트 디바이스), 온칩(on-chip) 시스템, 및/또는 임의의 다른 적절한 컴퓨팅 디바이스 또는 컴퓨팅 시스템일 수도 있다.
예시된 바와 같은 예시적인 컴퓨팅 디바이스(602)는, 서로 통신적으로 커플링되는 프로세싱 시스템(604), 하나 이상의 컴퓨터 판독가능 매체(606), 및 하나 이상의 I/O 인터페이스(608)를 포함한다. 도시되지는 않았지만, 컴퓨팅 디바이스(602)는, 다양한 컴포넌트를 서로 커플링하는 시스템 버스 또는 다른 데이터 및 커맨드 전송 시스템을 더 포함할 수도 있다. 시스템 버스는, 메모리 버스 또는 메모리 컨트롤러, 주변장치 버스, 범용 직렬 버스, 및/또는 다양한 버스 아키텍쳐 중 임의의 것을 활용하는 프로세서 또는 로컬 버스와 같은 상이한 버스 구조 중 임의의 하나 또는 조합을 포함할 수 있다. 제어 및 데이터 라인과 같은 다양한 다른 예도 또한 기대된다.
프로세싱 시스템(604)은 하드웨어를 사용하여 하나 이상의 작동을 수행하는 기능성을 대표한다. 따라서, 프로세싱 시스템(604)은, 프로세서, 기능적 블록 등으로서 구성될 수도 있는 하드웨어 엘리먼트(610)를 포함하는 것으로 예시된다. 이것은 하드웨어의 구현예를, 주문형 반도체 또는 하나 이상의 반도체를 사용하여 형성되는 다른 로직 디바이스로서, 포함할 수도 있다. 하드웨어 엘리먼트(610)는, 하드웨어 엘리먼트(610)를 형성하는 재료 또는 내부에서 활용되는 프로세싱 메커니즘에 의해 제한되지 않는다. 예를 들면, 프로세서는 반도체(들) 및/또는 트랜지스터(예를 들면, 전자 집적 회로(integrated circuit; IC))로 구성될 수도 있다. 이러한 맥락에서, 프로세서 실행가능 명령은 전자적으로 실행가능한 명령일 수도 있다.
컴퓨터 판독가능 매체(606)는 메모리/스토리지(612)를 포함하는 것으로 예시된다. 메모리/스토리지(612)는 하나 이상의 컴퓨터 판독가능 매체와 연관되는 메모리/스토리지 용량을 나타낸다. 메모리/스토리지(612)는 휘발성 매체(예컨대 랜덤 액세스 메모리(random access memory; RAM)) 및/또는 불휘발성 매체(예컨대 리드 온리 메모리(read only memory; ROM), 플래시 메모리, 광학 디스크, 자기 디스크 등)를 포함할 수도 있다. 메모리/스토리지(612)는 고정식 매체(예를 들면, RAM, ROM, 고정식 하드 드라이브 등)뿐만 아니라 착탈식(removable) 매체(예를 들면, 플래시 메모리, 착탈식 하드 드라이브, 광학 디스크 등)를 포함할 수도 있다. 컴퓨터 판독가능 매체(606)는 하기에서 더 설명되는 바와 같이 다양한 다른 방식으로 구성될 수도 있다.
입/출력 인터페이스(들)(608)는, 유저가 커맨드 및 정보를 컴퓨팅 디바이스(602)에 입력하는 것을 허용하는, 그리고 정보가 다양한 입/출력 디바이스를 사용하여 유저 및/또는 다른 컴포넌트 또는 디바이스로 제공되는 것을 또한 허용하는 기능성을 나타낸다. 입력 디바이스의 예는 키보드, 커서 제어 디바이스(예를 들면, 마우스), 마이크(예를 들면, 보이스 입력용), 스캐너, 터치 기능성(예를 들면, 물리적 접촉을 검출하도록 구성되는 용량성 또는 다른 센서), 카메라(예를 들면, 카메라는 제스쳐처럼 터치를 수반하지 않는 움직임을 검출하기 위해, 가시 또는 불가시 파장 예컨대 적외선 주파수를 활용할 수도 있다) 등을 포함한다. 출력 디바이스의 예는 디스플레이 디바이스(예를 들면, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각 반응 디바이스 등을 포함한다. 따라서, 컴퓨팅 디바이스(602)는 유저 상호작용을 지원하기 위해 하기에서 더 설명되는 바와 같이 다양한 방식으로 구성될 수도 있다.
컴퓨팅 디바이스(602)는 데이터 동기화 시스템(614)을 또한 포함한다. 데이터 동기화 시스템(614)은 위에서 설명된 바와 같이 디바이스 연관 데이터를 동기화하기 위한 다양한 기능성을 제공한다. 데이터 동기화 시스템(614)은, 예를 들면, 도 1의 데이터 동기화 모듈(112), 또는 도 2의 디바이스 연관 데이터 동기화 모듈(208)을 구현할 수 있다.
소프트웨어, 하드웨어 엘리먼트, 또는 프로그램 모듈의 일반적인 맥락에서, 다양한 기술이 본원에서 설명될 수도 있다. 일반적으로, 이러한 모듈은, 특정 태스크를 수행하는 또는 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 엘리먼트, 컴포넌트, 데이터 구조, 등을 포함한다. 본원에서 사용되는 바와 같은 용어 "모듈", "기능성", 및 "컴포넌트"는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 일반적으로 나타낸다. 본원에서 설명되는 기술의 특징은 플랫폼 독립적인데, 그 기술이 다양한 프로세서를 구비하는 다양한 컴퓨팅 플랫폼 상에서 구현될 수도 있다는 것을 의미한다.
설명된 모듈 및 기술의 구현예는 몇몇 형태의 컴퓨터 판독가능 매체 상에 저장되거나 또는 몇몇 형태의 컴퓨터 판독가능 매체를 통해 전송될 수도 있다. 컴퓨터 판독가능 매체는, 컴퓨팅 디바이스(602)에 의해 액세스될 수도 있는 다양한 매체를 포함할 수도 있다. 비제한적인 예로서, 컴퓨터 판독가능 매체는 "컴퓨터 판독가능 저장 매체" 및 "컴퓨터 판독가능 신호 매체"를 포함할 수도 있다.
"컴퓨터 판독가능 저장 매체"는, 신호 전송, 반송파, 또는 신호 그 자체와는 대조적으로, 정보의 영구적인 저장 및/또는 유형의(tangible) 저장을 가능하게 하는 매체 및/또는 디바이스를 가리킨다. 따라서, 컴퓨터 판독가능 저장 매체는 비 신호 베어링 매체(non-signal bearing media)를 가리킨다. 컴퓨터 판독가능 저장 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 로직 엘리먼트/회로, 또는 다른 데이터와 같은 정보의 저장에 적합한 방법 또는 기술로 구현되는 휘발성 및 불휘발성의 착탈식 및 비착탈식 매체 및/또는 스토리지 디바이스와 같은 하드웨어를 포함한다. 컴퓨터 판독가능 저장 매체의 예는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(digital versatile disks; DVD) 또는 다른 광학 스토리지, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스, 또는 다른 스토리지 디바이스, 유형의 매체, 또는 소망의 정보를 저장하기에 적합하며 컴퓨터에 액세스될 수도 있는 제조 물품을 포함할 수도 있지만, 이들에 제한되는 것은 아니다.
"컴퓨터 판독가능 신호 매체"는, 예컨대 네트워크를 통해 명령을 컴퓨팅 디바이스(602)의 하드웨어로 송신하도록 구성되는 신호 베어링 매체를 가리킨다. 신호 매체는 통상적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 변조된 데이터 신호, 예컨대 반송파, 데이터 신호, 또는 다른 전송 메커니즘에서의 다른 데이터를 구체화할 수도 있다. 신호 매체는 임의의 정보 전달 매체를 또한 포함한다. 용어 "변조된 데이터 신호"는, 자신의 특성 세트 중 하나 이상을 구비하는 또는 신호에서 정보를 인코딩하는 것과 같은 방식으로 변경된 신호를 의미한다. 비제한적인 예로서, 통신 매체는 유선 네트워크 또는 직결 접속과 같은 유선 매체, 및 무선 매체 예컨대 음향, RF, 적외선 및 다른 무선 매체를 포함한다.
앞서 설명된 바와 같이, 하드웨어 엘리먼트(610) 및 컴퓨터 판독가능 매체(606)는, 본원에서 설명되는 기술의 적어도 몇몇 양태를 구현하기 위해 몇몇 실시형태에서 활용될 수도 있는 하드웨어 형태로 구현되는 명령, 모듈, 프로그래밍가능 디바이스 로직 및/또는 고정식 디바이스 로직을 나타낸다. 하드웨어 엘리먼트는 집적 회로 또는 온칩 시스템, 주문형 반도체(application-specific integrated circuit; ASIC), 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA), 복합 프로그래머블 로직 디바이스(complex programmable logic device; CPLD), 및 실리콘 또는 다른 하드웨어 디바이스에서의 다른 구현예의 컴포넌트를 포함할 수도 있다. 이 맥락에서, 하드웨어 엘리먼트는, 하드웨어 엘리먼트뿐만 아니라 실행을 위한 명령을 저장하기 위해 활용되는 하드웨어 디바이스, 예를 들면, 앞서 설명된 컴퓨터 판독가능 저장 매체에 의해 구체화되는 명령, 모듈, 및/또는 로직에 의해 정의되는 프로그램 태스크를 수행하는 프로세싱 디바이스로서 작동할 수도 있다.
본원에서 설명되는 다양한 기술 및 모듈을 구현하기 위해, 상기의 조합이 또한 활용될 수도 있다. 따라서, 소프트웨어, 하드웨어, 또는 프로그램 모듈 및 다른 프로그램 모듈은, 몇몇 형태의 컴퓨터 판독가능 저장 매체 상에서 및/또는 하나 이상의 하드웨어 엘리먼트(610)에 의해 구체화되는 하나 이상의 명령 및/또는 로직으로서 구현될 수도 있다. 컴퓨팅 디바이스(602)는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정 명령 및/또는 기능을 구현하도록 구성될 수도 있다. 따라서, 소프트웨어와 같이 컴퓨팅 디바이스(602)에 의해 실행가능한 모듈로서의 모듈의 구현예는, 예를 들면, 프로세싱 시스템의 하드웨어 엘리먼트(610) 및/또는 컴퓨터 판독가능 저장 매체의 사용을 통해, 적어도 부분적으로 하드웨어로 달성될 수도 있다. 명령 및/또는 기능은 본원에서 설명되는 기술, 모듈, 및 예를 구현하도록 하나 이상의 제조 물품(예를 들면, 하나 이상의 컴퓨팅 디바이스(602) 및/또는 프로세싱 시스템(604))에 의해 실행가능/작동가능할 수도 있다.
도 6에서 또한 예시되는 바와 같이, 예시적인 시스템(600)은, 퍼스널 컴퓨터(personal computer; PC), 텔레비전 및/또는 셋탑 박스 디바이스, 및/또는 모바일 디바이스 상에서 애플리케이션을 실행하고 있을 때 원활한 유저 경험(a seamless user experience)을 위한 유비쿼터스 환경(ubiquitous environment)을 가능하게 한다. 서비스 및 애플리케이션은, 애플리케이션을 활용하는 동안, 비디오 게임을 플레이하는 동안, 비디오를 시청하는 동안 등의 시간 동안, 한 디바이스에서 다음의 것으로 전이할 때 공통의 유저 경험에 대해 모든 세 개의 환경에서 실질적으로 유사하게 된다.
예시적인 시스템(600)에서, 복수의 디바이스는 중앙 컴퓨팅 디바이스를 통해 상호접속된다. 중앙 컴퓨팅 디바이스는 복수의 디바이스에 로컬할 수도 있거나 또는 복수의 디바이스로부터 원격에 위치될 수도 있다. 하나 이상의 실시형태에서, 중앙 컴퓨팅 디바이스는, 네트워크, 인터넷, 또는 다른 데이터 통신 링크를 통해 복수의 디바이스에 연결되는 하나 이상의 서버 컴퓨터의 클라우드일 수도 있다.
하나 이상의 실시형태에서, 이 상호접속 아키텍쳐(interconnection architecture)는, 복수의 디바이스의 유저에게 공통의 그리고 원활한 경험을 제공하도록, 기능성이 복수의 디바이스 전체에 전달되는 것을 가능하게 한다. 복수의 디바이스의 각각은 상이한 물리적 요건 및 성능을 구비할 수도 있으며, 중앙 컴퓨팅 디바이스는, 디바이스에 맞춤되면서도(tailored) 여전히 모든 디바이스에 대해 공통인 경험의 디바이스로의 전달을 가능하게 하기 위한 플랫폼을 사용한다. 하나 이상의 실시형태에서, 목표 디바이스의 클래스가 생성되고 경험이 디바이스의 제너릭 클래스(generic class)에 맞춤된다. 디바이스의 클래스는 디바이스의 물리적 피쳐, 사용의 타입, 또는 다른 공통의 특성에 의해 정의될 수도 있다.
다양한 구현예에서, 컴퓨팅 디바이스(602)는, 예컨대 컴퓨터(616), 모바일(618), 및 텔레비전(620) 용도에 대해, 여러 상이한 구성을 취할 수도 있다. 이들 구성의 각각은, 일반적으로 상이한 구조 및 성능을 가질 수도 있는 디바이스를 포함하며, 따라서 컴퓨팅 디바이스(602)는 상이한 디바이스 클래스 중 하나 이상에 따라 구성될 수도 있다. 예를 들면, 컴퓨팅 디바이스(602)는, 퍼스널 컴퓨터, 데스크탑 컴퓨터, 멀티스크린 컴퓨터, 랩탑 컴퓨터, 넷북 등을 포함하는 디바이스의 컴퓨터(616) 클래스로서 구현될 수도 있다.
컴퓨팅 디바이스(602)는, 모바일 디바이스, 예컨대 모바일 폰, 휴대형 음악 플레이어, 휴대형 게임용 디바이스, 태블릿 컴퓨터, 멀티스크린 컴퓨터 등을 포함하는 디바이스의 모바일(618) 클래스로서 또한 구현될 수도 있다. 컴퓨팅 디바이스(602)는, 일상적인(casual) 시청 환경에서 일반적으로 더 큰 스크린을 갖는 또는 더 큰 스크린에 연결되는 디바이스를 포함하는 디바이스의 텔레비전(620) 클래스로서 또한 구현될 수도 있다. 이들 디바이스는 텔레비전, 셋탑 박스, 게임용 콘솔 등을 포함한다.
본원에서 설명되는 기술은 컴퓨팅 디바이스(602)의 이들 다양한 구성에 의해 지원될 수도 있으며 본원에서 설명되는 기술의 특정 예에 제한되지 않는다. 이 기능성은, 모두 또는 부분적으로 분산형 시스템의 사용을 통해, 예컨대 하기에서 설명되는 바와 같이 플랫폼(624)을 통한 "클라우드"(622)를 통해 구현될 수도 있다.
클라우드(622)는 리소스(626)에 대한 플랫폼(624)을 포함하고/하거나 플랫폼(624)을 나타낸다. 플랫폼(624)은 클라우드(622)의 하드웨어(예를 들면, 서버) 및 소프트웨어 리소스의 기저의 기능성을 추상화한다. 리소스(626)는, 컴퓨팅 디바이스(602)로부터 원격인 서버 상에서 컴퓨터 프로세싱이 실행되고 있는 동안 활용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수도 있다. 리소스(626)는 인터넷을 통해 및/또는 가입자 네트워크, 예컨대 셀룰러 또는 와이파이 네트워크를 통해 제공되는 서비스를 또한 포함할 수 있다.
플랫폼(624)은 컴퓨팅 디바이스(602)를 다른 컴퓨팅 디바이스와 연결하는 리소스 및 기능을 추상화할 수도 있다. 플랫폼(624)은, 플랫폼(624)을 통해 구현되는 리소스(626)에 대한 조우되는 요구에 대해 대응하는 레벨의 스케일을 제공하기 위해, 리소스의 스케일링을 추상화하도록 또한 기능할 수도 있다. 따라서, 상호접속된 디바이스 실시형태에서, 본원에서 설명되는 기능성의 구현예는 시스템(600) 전체에 걸쳐 분산될 수도 있다. 예를 들면, 기능성은 컴퓨팅 디바이스(602) 상에서뿐만 아니라 클라우드(622)의 기능성을 추상화하는 플랫폼(624)을 통해서도 부분적으로 구현될 수도 있다.
비록 본 주제가 구조적 특징 및/또는 방법론적 동작들에 고유한 언어로 설명되었지만, 첨부의 특허청구범위에서 정의되는 주제가 상기에서 설명되는 특정 특징 또는 동작으로 반드시 제한되는 것은 아니다는 것이 이해되어야 한다. 오히려, 위에서 설명되는 특정 특징 및 동작은 특허청구범위를 구현하는 예시적인 형태로서 개시된다.
Claims (19)
- 방법에 있어서,
서비스로부터, 유저가 상기 서비스의 유저 계정에 로그인하는 것에 응답하여, 상기 유저 계정으로 유지되고 상기 유저 계정과 동기화되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터 - 주변장치 디바이스에 대한 상기 디바이스 연관 데이터는 상기 주변장치 디바이스를 컴퓨팅 디바이스에 연결하는 방법을 기술(describe)함 - 를 수신하는 단계;
제1 세트의 주변장치 디바이스가 자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해질 수 있는지를 결정하는 단계;
자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해지지 않는 제2 세트의 주변장치 디바이스 중 적어도 하나에 대해, 추가적인 크리덴셜을 획득하는 단계; 및
상기 제1 세트의 주변장치 디바이스를, 그리고 상기 획득된 추가적인 크리덴셜을 사용하여 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나를 상기 컴퓨팅 디바이스와 함께 사용가능하게 하는 단계
를 포함하는, 방법. - 제1항에 있어서,
상기 획득하는 단계는, 상기 컴퓨팅 디바이스에서의 유저 입력으로서 상기 추가적인 크리덴셜을 수신하는 단계를 포함하는 것인, 방법. - 제1항에 있어서,
상기 컴퓨팅 디바이스 상에서, 상기 제1 세트의 주변장치 디바이스의 각각에 대한 디바이스 연관 데이터의 사본뿐만 아니라, 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터의 사본을 유지하는 단계를 더 포함하는 것인, 방법. - 제1항에 있어서,
상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 추가적인 컴퓨팅 디바이스에서 상기 추가적인 컴퓨팅 디바이스가 상기 적어도 하나의 주변장치 디바이스에 연결된 결과, 상기 추가적인 컴퓨팅 디바이스에 의해 상기 서비스에 제공된 것인, 방법. - 제1항에 있어서,
상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기 컴퓨팅 디바이스가 상기 적어도 하나의 주변장치 디바이스에 이전에 연결된 결과, 상기 컴퓨팅 디바이스에 의해 상기 서비스에 제공된 것인, 방법. - 제1항에 있어서,
상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기 적어도 하나의 주변장치 디바이스에 의해 상기 서비스에 제공된 것인, 방법. - 제1항에 있어서,
상기 서비스로부터, 상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 사용 데이터 - 주변장치 디바이스에 대한 상기 디바이스 사용 데이터는 상기 주변장치 디바이스에 대한 특정 설정을 식별함 - 를 수신하는 단계; 및
상기 컴퓨팅 디바이스 상에 설치되는 상기 적어도 하나의 주변장치 디바이스에 상기 특정 설정을 적용하는 단계
를 더 포함하는 것인, 방법. - 제1항에 있어서,
상기 서비스로부터, 상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터에 대한 변경을 수신하는 단계; 및
상기 변경에 기초하여, 상기 적어도 하나의 주변장치 디바이스에 대한 상기 컴퓨팅 디바이스 상에 유지되는 상기 디바이스 연관 데이터를 업데이트하는 단계
를 더 포함하는 것인, 방법. - 제1항에 있어서,
상기 서비스로부터, 상기 제1 세트의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스 또는 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나가 삭제되었다는 표시를 수신하는 단계; 및
상기 적어도 하나의 주변장치 디바이스를 더이상 상기 컴퓨팅 디바이스와 함께 사용가능하지 않게 하는 단계
를 더 포함하는 것인, 방법. - 컴퓨팅 디바이스에 있어서,
주변장치 디바이스에 대한 디바이스 연관 데이터 - 주변장치 디바이스에 대한 상기 디바이스 연관 데이터는 상기 컴퓨팅 디바이스가 상기 주변장치 디바이스에 연결되는 방법을 기술함 - 를 저장하기 위한 데이터 저장소; 및
디바이스 연관 데이터 동기화 모듈
을 포함하고, 상기 디바이스 연관 데이터 동기화 모듈은,
서비스로부터, 유저가 상기 서비스의 유저 계정에 로그인하는 것에 응답하여, 상기 유저 계정으로 유지되고 상기 유저 계정과 동기화되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터를 수신하고;
제1 세트의 주변장치 디바이스가 자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해질 수 있는지를 결정하고;
자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해지지 않는 제2 세트의 주변장치 디바이스 중 적어도 하나에 대해, 추가적인 크리덴셜을 획득하고;
상기 제1 세트의 주변장치 디바이스를, 그리고 상기 획득된 추가적인 크리덴셜을 사용하여 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나를 상기 컴퓨팅 디바이스와 함께 사용가능하게 하도록
구성되는 것인, 컴퓨팅 디바이스. - 제10항에 있어서,
상기 디바이스 연관 데이터 동기화 모듈은, 상기 컴퓨팅 디바이스에서 유저 입력으로서 상기 추가적인 크리덴셜을 수신하는 것에 의해 상기 추가적인 크리덴셜을 획득하도록 구성되는 것인, 컴퓨팅 디바이스. - 제10항에 있어서,
상기 데이터 저장소는 또한, 상기 제1 세트의 주변장치 디바이스의 각각에 대한 디바이스 연관 데이터의 사본뿐만 아니라, 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터의 사본을 저장하기 위한 것인, 컴퓨팅 디바이스. - 제10항에 있어서,
상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 추가적인 컴퓨팅 디바이스에서 상기 추가적인 컴퓨팅 디바이스가 상기 적어도 하나의 주변장치 디바이스에 연결된 결과, 상기 추가적인 컴퓨팅 디바이스에 의해 상기 서비스에 제공된 것인, 컴퓨팅 디바이스. - 제10항에 있어서,
상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기 컴퓨팅 디바이스가 상기 적어도 하나의 주변장치 디바이스에 이전에 연결된 결과, 상기 컴퓨팅 디바이스에 의해 상기 서비스에 제공된 것인, 컴퓨팅 디바이스. - 제10항에 있어서,
상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터는, 상기 적어도 하나의 주변장치 디바이스에 의해 상기 서비스에 제공된 것인, 컴퓨팅 디바이스. - 제10항에 있어서,
상기 디바이스 연관 데이터 동기화 모듈은 또한,
상기 서비스로부터, 상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 사용 데이터 - 주변장치 디바이스에 대한 상기 디바이스 사용 데이터는 상기 주변장치 디바이스에 대한 특정 설정을 식별함 - 를 수신하고;
상기 컴퓨팅 디바이스 상에 설치되는 상기 적어도 하나의 주변장치 디바이스에 상기 특정 설정을 적용하도록
구성되는 것인, 컴퓨팅 디바이스. - 제10항에 있어서,
상기 디바이스 연관 데이터 동기화 모듈은 또한,
상기 서비스로부터, 상기 하나 이상의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스에 대한 디바이스 연관 데이터에 대한 변경을 수신하고;
상기 변경에 기초하여, 상기 적어도 하나의 주변장치 디바이스에 대한 상기 데이터 저장소에 저장되는 상기 디바이스 연관 데이터를 업데이트하도록
구성되는 것인, 컴퓨팅 디바이스. - 제10항에 있어서,
상기 디바이스 연관 데이터 동기화 모듈은 또한,
상기 서비스로부터, 상기 제1 세트의 주변장치 디바이스 중 적어도 하나의 주변장치 디바이스 또는 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나가 삭제되었다는 표시를 수신하고;
상기 적어도 하나의 주변장치 디바이스를 더이상 상기 컴퓨팅 디바이스와 함께 사용가능하지 않게 하도록
구성되는 것인, 컴퓨팅 디바이스. - 컴퓨팅 디바이스에 있어서,
하나 이상의 프로세서; 및
상기 하나 이상의 프로세서에 의해 실행가능한 다수의 명령어가 저장되어 있는 하나 이상의 컴퓨터 판독가능한 저장 매체를 포함하고,
상기 다수의 명령어는, 상기 하나 이상의 프로세서로 하여금,
서비스로부터, 유저가 상기 서비스의 유저 계정에 로그인하는 것에 응답하여, 상기 유저 계정으로 유지되고 상기 유저 계정과 동기화되는 하나 이상의 주변장치 디바이스 각각에 대한 디바이스 연관 데이터 - 주변장치 디바이스에 대한 상기 디바이스 연관 데이터는 상기 주변장치 디바이스를 상기 컴퓨팅 디바이스에 연결하는 방법을 기술함 - 를 수신하는 것;
자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능해지지 않는 제2 세트의 주변장치 디바이스 중 적어도 하나에 대해, 추가적인 크리덴셜을 획득하는 것; 및
자동적으로 상기 컴퓨팅 디바이스와 함께 사용가능한 제1 세트의 주변장치 디바이스를, 그리고 상기 획득된 추가적인 크리덴셜을 사용하여 상기 제2 세트의 주변장치 디바이스 중 상기 적어도 하나를 상기 컴퓨팅 디바이스와 함께 사용가능하게 하는 것
을 포함하는 동작(act)을 수행하게 하는 것인, 컴퓨팅 디바이스.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361828671P | 2013-05-29 | 2013-05-29 | |
US61/828,671 | 2013-05-29 | ||
US13/931,690 US9032106B2 (en) | 2013-05-29 | 2013-06-28 | Synchronizing device association data among computing devices |
US13/931,690 | 2013-06-28 | ||
PCT/US2013/060489 WO2014193434A1 (en) | 2013-05-29 | 2013-09-19 | Synchronizing device association data among computing devices |
KR1020157036897A KR102168572B1 (ko) | 2013-05-29 | 2013-09-19 | 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157036897A Division KR102168572B1 (ko) | 2013-05-29 | 2013-09-19 | 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200120763A true KR20200120763A (ko) | 2020-10-21 |
KR102303681B1 KR102303681B1 (ko) | 2021-09-16 |
Family
ID=51986475
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157036897A KR102168572B1 (ko) | 2013-05-29 | 2013-09-19 | 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 |
KR1020207029344A KR102303681B1 (ko) | 2013-05-29 | 2013-09-19 | 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157036897A KR102168572B1 (ko) | 2013-05-29 | 2013-09-19 | 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 |
Country Status (11)
Country | Link |
---|---|
US (2) | US9032106B2 (ko) |
EP (1) | EP3005080B1 (ko) |
JP (1) | JP6305524B2 (ko) |
KR (2) | KR102168572B1 (ko) |
CN (1) | CN105431816B (ko) |
AU (1) | AU2013390850B2 (ko) |
BR (1) | BR112015029277B1 (ko) |
CA (1) | CA2910249C (ko) |
MX (1) | MX353076B (ko) |
RU (1) | RU2648971C2 (ko) |
WO (1) | WO2014193434A1 (ko) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8943551B2 (en) | 2008-08-14 | 2015-01-27 | Microsoft Corporation | Cloud-based device information storage |
US9032106B2 (en) | 2013-05-29 | 2015-05-12 | Microsoft Technology Licensing, Llc | Synchronizing device association data among computing devices |
US20150220308A1 (en) * | 2014-01-31 | 2015-08-06 | Dell Products L.P. | Model-based development |
EP3139803B1 (en) * | 2014-05-09 | 2018-03-07 | VacuVita Holding B.V. | Container for delaying spoilage of a consumable product and methods for using the container |
US10506068B2 (en) * | 2015-04-06 | 2019-12-10 | Microsoft Technology Licensing, Llc | Cloud-based cross-device digital pen pairing |
US10404532B2 (en) | 2015-04-10 | 2019-09-03 | Comcast Cable Commnications, LLC | Virtual gateway control and management |
CN108351792A (zh) * | 2016-01-15 | 2018-07-31 | 谷歌有限责任公司 | 使用应用容器管理代码和依赖性数据的传递 |
US9817648B2 (en) | 2016-01-15 | 2017-11-14 | Google Inc. | Application containers with dynamic sub-package loading |
KR101850203B1 (ko) * | 2016-04-11 | 2018-04-18 | 라인 가부시키가이샤 | 기기간 어플리케이션 연동 방법 및 시스템 |
CN106713435A (zh) * | 2016-12-14 | 2017-05-24 | 北京小米移动软件有限公司 | 信息处理方法、装置及终端设备 |
US10606820B2 (en) * | 2017-05-12 | 2020-03-31 | International Business Machines Corporation | Synchronizing data values by requesting updates |
US10614054B2 (en) * | 2017-05-12 | 2020-04-07 | International Business Machines Corporation | Synchronizing data values by sending updates |
CN109413215A (zh) * | 2018-12-24 | 2019-03-01 | 苏州思必驰信息科技有限公司 | 用于录音设备和用户终端的数据同步方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001282729A (ja) * | 2000-03-30 | 2001-10-12 | Casio Comput Co Ltd | ユーザ環境設定システム、その方法及び記録媒体 |
US20030115256A1 (en) * | 1999-12-09 | 2003-06-19 | Brockway Tad Dennis | Client side caching of printer configuration |
US20050257226A1 (en) * | 2004-05-14 | 2005-11-17 | Microsoft Corporation | PnP functionality for unsupported devices |
JP2008146398A (ja) * | 2006-12-11 | 2008-06-26 | Hitachi Ltd | 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置 |
Family Cites Families (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE501943C2 (sv) | 1993-11-24 | 1995-06-26 | Telia Ab | Förfarande och arrangemang för semipermanent lagring av tjänsteprofil i personkommunikationssystem |
NZ279622A (en) | 1994-01-13 | 1998-04-27 | Certco Llc | Encrypted secure and verifiable communication: cryptographic keys escrowed |
GB9709135D0 (en) | 1997-05-02 | 1997-06-25 | Certicom Corp | Two way authentication protocol |
US6016476A (en) | 1997-08-11 | 2000-01-18 | International Business Machines Corporation | Portable information and transaction processing system and method utilizing biometric authorization and digital certificate security |
US6016746A (en) | 1997-08-19 | 2000-01-25 | Micron Communications, Inc. | Flip chip screen printing method |
JP3922482B2 (ja) | 1997-10-14 | 2007-05-30 | ソニー株式会社 | 情報処理装置および方法 |
US6122639A (en) | 1997-12-23 | 2000-09-19 | Cisco Technology, Inc. | Network device information collection and change detection |
JP2000003336A (ja) | 1998-06-16 | 2000-01-07 | Nec Corp | 携帯型データ通信端末装置におけるユーザ認証方法及びユーザ認証システム |
JP2000181687A (ja) * | 1998-12-18 | 2000-06-30 | Fujitsu Ltd | 制御装置,電子機器,環境設定方法およびプログラムを格納したコンピュータ読取可能な記録媒体 |
US6438600B1 (en) | 1999-01-29 | 2002-08-20 | International Business Machines Corporation | Securely sharing log-in credentials among trusted browser-based applications |
US7704147B2 (en) * | 1999-10-06 | 2010-04-27 | Igt | Download procedures for peripheral devices |
US7934251B2 (en) | 1999-12-02 | 2011-04-26 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US6577726B1 (en) | 2000-03-31 | 2003-06-10 | Siebel Systems, Inc. | Computer telephony integration hotelling method and system |
US7725525B2 (en) | 2000-05-09 | 2010-05-25 | James Duncan Work | Method and apparatus for internet-based human network brokering |
US7266595B1 (en) | 2000-05-20 | 2007-09-04 | Ciena Corporation | Accessing network device data through user profiles |
US6941148B2 (en) | 2000-06-03 | 2005-09-06 | International Business Machines Corporation | Device registry for automatic connection and data exchange between pervasive devices and backend systems |
AU2002258358A1 (en) | 2000-10-27 | 2002-09-04 | Softconnex Technologies | Automatic embedded host configuration system and method |
US20020194596A1 (en) * | 2001-06-18 | 2002-12-19 | Srivastava Gopal K. | Control of multiple AV-devices by a single master controller using infrared transmitted commands and bus transmitted commands |
US20030097503A1 (en) * | 2001-11-19 | 2003-05-22 | Huckins Jeffrey L. | PCI compatible bus model for non-PCI compatible bus architectures |
US20030100307A1 (en) | 2001-11-27 | 2003-05-29 | Intel Corporation | Automatic service handoff method and apparatus |
KR100439187B1 (ko) | 2001-12-24 | 2004-07-05 | 한국전자통신연구원 | 모바일 사용자의 맞춤형 원스톱 정보 서비스 장치 및 방법 |
JP2003199168A (ja) | 2001-12-28 | 2003-07-11 | Nec Corp | 外部機器からの発信可能な電話装置 |
US7810091B2 (en) | 2002-04-04 | 2010-10-05 | Mcafee, Inc. | Mechanism to check the malicious alteration of malware scanner |
US7013149B2 (en) | 2002-04-11 | 2006-03-14 | Mitsubishi Electric Research Laboratories, Inc. | Environment aware services for mobile devices |
US20040128345A1 (en) | 2002-12-27 | 2004-07-01 | Robinson Scott H. | Dynamic service registry |
GB2398134A (en) | 2003-01-27 | 2004-08-11 | Hewlett Packard Co | Applying a data handing policy to predetermined system calls |
US7072807B2 (en) | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
GB2400196A (en) | 2003-04-02 | 2004-10-06 | Nec Technologies | Restricting access to a mobile phone, laptop etc. using an authorization procedure involving a separate transceiver |
US7434166B2 (en) | 2003-06-03 | 2008-10-07 | Harman International Industries Incorporated | Wireless presentation system |
KR100734790B1 (ko) | 2003-07-09 | 2007-07-03 | 닛본 덴끼 가부시끼가이샤 | 동화상 부호화 방법, 동화상 복호 방법, 동화상 부호화 장치, 동화상 복호 장치, 및 프로그램을 수록한 컴퓨터 판독가능 기록매체 |
US6976253B1 (en) | 2003-07-30 | 2005-12-13 | Microsoft Corporation | Method and apparatus for configuring a mobile device |
GB2404536B (en) | 2003-07-31 | 2007-02-28 | Hewlett Packard Development Co | Protection of data |
US8949311B2 (en) | 2003-08-29 | 2015-02-03 | International Business Machines Corporation | Dynamic, non-intrusive personalization of web services |
US8151280B2 (en) * | 2003-10-27 | 2012-04-03 | Microsoft Corporation | Simple and dynamic configuration of network devices |
US7620667B2 (en) | 2003-11-17 | 2009-11-17 | Microsoft Corporation | Transfer of user profiles using portable storage devices |
WO2005064430A1 (en) | 2003-12-30 | 2005-07-14 | Telecom Italia S.P.A. | Method and system for the cipher key controlled exploitation of data resources, related network and computer program products |
US20090174525A1 (en) | 2004-03-02 | 2009-07-09 | Shinnichiro Yamauchi | Communication system and communication method |
US20050208803A1 (en) | 2004-03-19 | 2005-09-22 | Ceelox, Inc. | Method for real time synchronization of a computing device user-definable profile to an external storage device |
US20050218739A1 (en) * | 2004-04-01 | 2005-10-06 | Microsoft Corporation | System and method for sharing objects between computers over a network |
US20050220080A1 (en) | 2004-04-01 | 2005-10-06 | Nokia Corporation | System, method, computer program product, and business method for device group management using virtual device domain |
US20060253894A1 (en) | 2004-04-30 | 2006-11-09 | Peter Bookman | Mobility device platform |
JP2008503011A (ja) | 2004-06-08 | 2008-01-31 | ダートデバイセズ コーポレーション | ユニバーサルデバイスインタオペラビリティプラットフォームのためのデバイスチームリクルートメントおよびコンテンツレンディションのアーキテクチャ装置および方法 |
US7971245B2 (en) | 2004-06-21 | 2011-06-28 | Ebay Inc. | Method and system to detect externally-referenced malicious data for access and/or publication via a computer system |
US7469291B2 (en) | 2004-09-22 | 2008-12-23 | Research In Motion Limited | Apparatus and method for integrating authentication protocols in the establishment of connections between computing devices |
US8037527B2 (en) | 2004-11-08 | 2011-10-11 | Bt Web Solutions, Llc | Method and apparatus for look-ahead security scanning |
US20060075494A1 (en) | 2004-10-01 | 2006-04-06 | Bertman Justin R | Method and system for analyzing data for potential malware |
US7493487B2 (en) | 2004-10-15 | 2009-02-17 | Microsoft Corporation | Portable computing environment |
US8843995B2 (en) | 2004-11-02 | 2014-09-23 | Blackberry Limited | Generic access network (GAN) controller selection in PLMN environment |
JP2006146704A (ja) | 2004-11-22 | 2006-06-08 | Canon Inc | 情報管理装置、プログラム検索方法、及びプログラム |
US8478849B2 (en) | 2004-12-07 | 2013-07-02 | Pure Networks LLC. | Network administration tool |
US8024488B2 (en) | 2005-03-02 | 2011-09-20 | Cisco Technology, Inc. | Methods and apparatus to validate configuration of computerized devices |
CN1648863A (zh) | 2005-03-07 | 2005-08-03 | 优网通国际资讯股份有限公司 | 可携式软件应用的方法 |
US8032562B2 (en) | 2005-03-29 | 2011-10-04 | Microsoft Corporation | Identity management user experience |
US7509116B2 (en) | 2005-03-30 | 2009-03-24 | Genx Mobile Incorporated | Selective data exchange with a remotely configurable mobile unit |
WO2007052285A2 (en) | 2005-07-22 | 2007-05-10 | Yogesh Chunilal Rathod | Universal knowledge management and desktop search system |
JP2007034826A (ja) * | 2005-07-28 | 2007-02-08 | Matsushita Electric Ind Co Ltd | 機能アップデート方法および携帯通信端末 |
US8171531B2 (en) | 2005-11-16 | 2012-05-01 | Broadcom Corporation | Universal authentication token |
JP4865805B2 (ja) | 2005-12-01 | 2012-02-01 | クゥアルコム・インコーポレイテッド | 異なる認証証明書をサポートするための方法および機器 |
US20070136746A1 (en) | 2005-12-08 | 2007-06-14 | Electronics And Telecommunications Research Institute | User context based dynamic service combination system and method |
US8543637B2 (en) | 2006-01-18 | 2013-09-24 | At&T Intellectual Property I, L.P. | Distributed web publishing |
JP4685923B2 (ja) * | 2006-02-15 | 2011-05-18 | 富士通株式会社 | 通信装置、無線通信装置および制御方法 |
US8341238B2 (en) | 2006-03-03 | 2012-12-25 | Sharp Laboratories Of America, Inc. | Methods and systems for multiple-device session synchronization |
EP1832998A1 (en) | 2006-03-07 | 2007-09-12 | Hitachi, Ltd. | Method of interfacing between electronic devices, method of operating a portable storage device, electronic device and electronic system |
US8676973B2 (en) | 2006-03-07 | 2014-03-18 | Novell Intellectual Property Holdings, Inc. | Light-weight multi-user browser |
US20070233647A1 (en) | 2006-03-30 | 2007-10-04 | Microsoft Corporation | Sharing Items In An Operating System |
US7647041B2 (en) | 2006-03-30 | 2010-01-12 | Sbc Knowledge Ventures, L.P. | Systems, methods, and apparatus to enable backup wireless devices |
JP5052809B2 (ja) | 2006-03-31 | 2012-10-17 | 株式会社エヌ・ティ・ティ・データ | 認証システム、認証サーバおよびプログラム |
US20070261114A1 (en) | 2006-05-01 | 2007-11-08 | Michael Pomerantsev | Method and system for secure sharing of personal information |
KR100710271B1 (ko) * | 2006-05-10 | 2007-04-20 | 엘지전자 주식회사 | 외부기기와 티브이의 데이터 재생 방법 및 장치 |
KR100772875B1 (ko) | 2006-05-22 | 2007-11-02 | 삼성전자주식회사 | 사용자 선호도에 따른 사용자 인터페이스를 설정하는 장치및 그 방법 |
US8296413B2 (en) | 2006-05-31 | 2012-10-23 | Sap Ag | Device registration in a hierarchical monitor service |
US7912916B2 (en) | 2006-06-02 | 2011-03-22 | Google Inc. | Resolving conflicts while synchronizing configuration information among multiple clients |
US8086698B2 (en) | 2006-06-02 | 2011-12-27 | Google Inc. | Synchronizing configuration information among multiple clients |
US7945563B2 (en) | 2006-06-16 | 2011-05-17 | Yahoo! Inc. | Search early warning |
EP1873668A1 (en) | 2006-06-28 | 2008-01-02 | Nokia Siemens Networks Gmbh & Co. Kg | Integration of device integrity attestation into user authentication |
KR101307456B1 (ko) | 2006-09-22 | 2013-09-11 | 삼성전자주식회사 | 휴대단말기에서 블루투스 자동등록을 제공하는 방법 및 장치 |
RU61491U1 (ru) | 2006-09-26 | 2007-02-27 | ООСТЕРУМ Джозеф ВАН | Универсальное устройство сопряжения портативной звуковоспроизводящей системы с автомобильным радиоприемником |
US8161069B1 (en) | 2007-02-01 | 2012-04-17 | Eighty-Three Degrees, Inc. | Content sharing using metadata |
US8347354B2 (en) | 2007-03-16 | 2013-01-01 | Research In Motion Limited | Restricting access to hardware for which a driver is installed on a computer |
WO2008148191A2 (en) | 2007-06-06 | 2008-12-11 | Boldstreet Inc. | Remote service access system and method |
US8954871B2 (en) | 2007-07-18 | 2015-02-10 | Apple Inc. | User-centric widgets and dashboards |
JP4739295B2 (ja) | 2007-08-27 | 2011-08-03 | 日本電信電話株式会社 | 映像信号生成装置、映像信号生成方法、映像信号生成プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US8126439B1 (en) | 2007-10-30 | 2012-02-28 | Sprint Communications Company L.P. | Persona management for mobile enabling services |
US8219670B2 (en) | 2007-11-08 | 2012-07-10 | University Of Maryland | System and method for adaptive context aware interaction of user with entity of interest |
US8965787B2 (en) | 2007-12-17 | 2015-02-24 | Smooth Productions Inc. | Communications system and method for serving electronic content |
US7971049B2 (en) | 2008-03-31 | 2011-06-28 | Symantec Corporation | Systems and methods for managing user configuration settings |
US20090313363A1 (en) | 2008-06-17 | 2009-12-17 | The Go Daddy Group, Inc. | Hosting a remote computer in a hosting data center |
US8943551B2 (en) | 2008-08-14 | 2015-01-27 | Microsoft Corporation | Cloud-based device information storage |
US8099761B2 (en) | 2008-08-14 | 2012-01-17 | Microsoft Corporation | Protocol for device to station association |
US8769612B2 (en) | 2008-08-14 | 2014-07-01 | Microsoft Corporation | Portable device association |
US20100082652A1 (en) | 2008-09-29 | 2010-04-01 | Chacha Search, Inc. | Method and system for managing user interaction |
EP2180412A1 (en) | 2008-10-22 | 2010-04-28 | Research in Motion Limited | Method and apparatus for managing synchronization configuration files |
US8467305B2 (en) | 2008-11-04 | 2013-06-18 | Broadcom Corporation | Multiservice communication device with dedicated environmental monitoring |
JP2010128554A (ja) | 2008-11-25 | 2010-06-10 | Nec Corp | アカウント発行システム、割当装置、登録装置、アカウント発行方法およびプログラム |
JP5293284B2 (ja) | 2009-03-09 | 2013-09-18 | 沖電気工業株式会社 | 通信方法、メッシュ型ネットワークシステム及び通信端末 |
IT1396340B1 (it) | 2009-10-20 | 2012-11-16 | Tiziano Tresanti | Sistema e metodo per la gestione e la condivisione all'interno di una rete informatica di informazioni e contatti relativi ad utenti |
US8677508B2 (en) | 2010-01-13 | 2014-03-18 | Nec Corporation | Confidential information leakage prevention system, confidential information leakage prevention method and confidential information leakage prevention program |
CN102082903A (zh) * | 2010-12-21 | 2011-06-01 | 张有成 | 具有认证功能的摄像装置及认证方法 |
CN102111272B (zh) * | 2010-12-24 | 2014-04-09 | 武汉天喻信息产业股份有限公司 | 移动终端对外部设备进行认证的方法 |
WO2012109580A2 (en) | 2011-02-11 | 2012-08-16 | Ricci Christopher Paul | Method and system for interacting and servicing users by orientation |
US8879748B2 (en) * | 2011-03-15 | 2014-11-04 | Microsoft Corporation | Multi-protocol wireless audio client device |
US20130282605A1 (en) | 2011-08-12 | 2013-10-24 | Philippe Noelting | System and Method for User Profile Creation and Access Control |
US9087363B2 (en) | 2011-08-30 | 2015-07-21 | Genband Us Llc | Methods, systems, and computer readable media for managing multiple personas within end user applications |
US20130085861A1 (en) | 2011-09-30 | 2013-04-04 | Scott Dunlap | Persistent location tracking on mobile devices and location profiling |
US9405932B2 (en) | 2013-05-24 | 2016-08-02 | Microsoft Technology Licensing, Llc | User centric data maintenance |
US9032106B2 (en) | 2013-05-29 | 2015-05-12 | Microsoft Technology Licensing, Llc | Synchronizing device association data among computing devices |
-
2013
- 2013-06-28 US US13/931,690 patent/US9032106B2/en active Active
- 2013-09-19 CN CN201380076969.0A patent/CN105431816B/zh active Active
- 2013-09-19 KR KR1020157036897A patent/KR102168572B1/ko active IP Right Grant
- 2013-09-19 AU AU2013390850A patent/AU2013390850B2/en active Active
- 2013-09-19 KR KR1020207029344A patent/KR102303681B1/ko active IP Right Grant
- 2013-09-19 EP EP13771290.7A patent/EP3005080B1/en active Active
- 2013-09-19 BR BR112015029277-1A patent/BR112015029277B1/pt active IP Right Grant
- 2013-09-19 JP JP2016516499A patent/JP6305524B2/ja active Active
- 2013-09-19 RU RU2015150953A patent/RU2648971C2/ru active
- 2013-09-19 MX MX2015016355A patent/MX353076B/es active IP Right Grant
- 2013-09-19 CA CA2910249A patent/CA2910249C/en active Active
- 2013-09-19 WO PCT/US2013/060489 patent/WO2014193434A1/en active Application Filing
-
2015
- 2015-03-23 US US14/665,891 patent/US9311109B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115256A1 (en) * | 1999-12-09 | 2003-06-19 | Brockway Tad Dennis | Client side caching of printer configuration |
JP2001282729A (ja) * | 2000-03-30 | 2001-10-12 | Casio Comput Co Ltd | ユーザ環境設定システム、その方法及び記録媒体 |
US20050257226A1 (en) * | 2004-05-14 | 2005-11-17 | Microsoft Corporation | PnP functionality for unsupported devices |
JP2008146398A (ja) * | 2006-12-11 | 2008-06-26 | Hitachi Ltd | 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置 |
Also Published As
Publication number | Publication date |
---|---|
US20140359170A1 (en) | 2014-12-04 |
CN105431816A (zh) | 2016-03-23 |
RU2015150953A (ru) | 2017-06-01 |
KR102168572B1 (ko) | 2020-10-21 |
US9311109B2 (en) | 2016-04-12 |
EP3005080A1 (en) | 2016-04-13 |
BR112015029277B1 (pt) | 2022-02-15 |
CN105431816B (zh) | 2019-06-04 |
BR112015029277A2 (pt) | 2017-07-25 |
JP6305524B2 (ja) | 2018-04-04 |
JP2016527595A (ja) | 2016-09-08 |
BR112015029277A8 (pt) | 2020-03-17 |
AU2013390850A1 (en) | 2015-11-12 |
KR102303681B1 (ko) | 2021-09-16 |
US20150254081A1 (en) | 2015-09-10 |
EP3005080B1 (en) | 2021-02-17 |
MX353076B (es) | 2017-12-19 |
KR20160014038A (ko) | 2016-02-05 |
RU2648971C2 (ru) | 2018-03-28 |
AU2013390850B2 (en) | 2019-04-18 |
CA2910249A1 (en) | 2014-12-04 |
WO2014193434A1 (en) | 2014-12-04 |
CA2910249C (en) | 2021-01-12 |
MX2015016355A (es) | 2016-03-01 |
US9032106B2 (en) | 2015-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102168572B1 (ko) | 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화 | |
US11050683B2 (en) | System for providing dialog content | |
US10484347B2 (en) | Method and apparatus for supporting secure chat | |
KR102124510B1 (ko) | 앱을 다운로드하는 방법 및 앱을 실행시키는 방법 | |
US10462008B2 (en) | Cart mode provisioning of shared computing devices | |
KR20170049513A (ko) | 공유 세션 기법 | |
US9858153B2 (en) | Service-based backup data restoring to devices | |
US9294460B1 (en) | Service credential distribution | |
US11298613B2 (en) | Information processing device, data acquisition method, and program | |
US20170104807A1 (en) | Systems and methods for remote control of computers | |
US11489929B2 (en) | System and method for determining client program based on login method | |
WO2018022387A1 (en) | Bulk joining of computing devices to an identity service | |
US20130318584A1 (en) | Learning information on usage by a user, of one or more device(s), for cumulative inference of user's situation | |
US20230011478A1 (en) | Communication system, communication apparatus, communication method, and non-transitory computer-readable storage medium with executable communication program stored thereon | |
TW201426333A (zh) | 網路資料儲存系統、裝置及其方法 | |
JP2019023838A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US20130266928A1 (en) | Bandwidth-aware obtaining of demonstration experience content | |
KR102262565B1 (ko) | 통신단말기, 리소스 관리모듈 및 그 리소스 관리방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |