KR20140067043A - 플랫폼-인에이블형 근접 서비스 - Google Patents
플랫폼-인에이블형 근접 서비스 Download PDFInfo
- Publication number
- KR20140067043A KR20140067043A KR1020147006657A KR20147006657A KR20140067043A KR 20140067043 A KR20140067043 A KR 20140067043A KR 1020147006657 A KR1020147006657 A KR 1020147006657A KR 20147006657 A KR20147006657 A KR 20147006657A KR 20140067043 A KR20140067043 A KR 20140067043A
- Authority
- KR
- South Korea
- Prior art keywords
- proximity
- application
- service
- connection
- peer
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000009471 action Effects 0.000 claims abstract description 33
- 230000000977 initiatory effect Effects 0.000 claims abstract description 23
- 238000004891 communication Methods 0.000 claims description 140
- 230000006870 function Effects 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 35
- 230000005540 biological transmission Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 239000003999 initiator Substances 0.000 description 9
- 238000010079 rubber tapping Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B5/00—Near-field transmission systems, e.g. inductive or capacitive transmission systems
- H04B5/40—Near-field transmission systems, e.g. inductive or capacitive transmission systems characterised by components specially adapted for near-field transmission
- H04B5/48—Transceivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/53—Network services using third party service providers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Telephone Function (AREA)
- Telephonic Communication Services (AREA)
Abstract
실시예는 근접 연결이 활성화되면 근접 액션을 개시하는 프로세스, 시스템, 및 장치를 포함한다. 근접 서비스는 근접 연결이 확립되었음을 나타내는 표시를 근접 프로바이더로부터 수신하며, 그런 다음 근접 연결의 조인트 근접 컨텍스트를 결정한다. 그런 다음, 근접 서비스는 조인트 근접 컨텍스트에 의해 나타나는 근접 기능을 용이하게 하는 근접 액션을 개시한다. 조인트 근접 컨텍스트는 애플리케이션이 근접 장치와 공유될 예정인 대기된 컨텐트를 가지고 있다는 것, 애플리케이션이 네임스페이스 상에 메시지를 발행하는 것을 등록하였다는 것, 애플리케이션이 네임스페이스 상의 메시지에 대해 가입하였다는 것, 애플리케이션이 멀티-유저 협력작업을 인에이블하기 위하여 근접 장치 상에서 피어 애플리케이션을 탐색하는 것을 등록하였다는 것, 및 장치가 다른 장치와 페어링하고자 하는 것을 나타내는 표시를 포함한다.
Description
근접 기술은 서로 매우 가까이(close proximity) 배치되어 있는 장치들 사이의 통신을 가능하게 한다. 근접 기술의 일 예인 NFC(Near Field Communications)는, RFID(Radio Frequency Identification) 기술로부터 발전된 근거리 무선 기술이다. NFC는 연결을 형성하기 위하여 서로 가까이 위치하는 두 개의 루프 안테나 사이의 자기 유도를 이용한다. NFC는 최대 4 인치까지 장치들 사이의 무선 연결을 허용한다. NFC는 능동형 또는 수동형 중 어느 하나일 수 있다. 능동형 모드에서, 두 개의 장치는 독립적으로 각자 자신의 무선 장치에 전력을 공급한다. 수동형 모드에서, 한 장치는 다른 장치로부터 자신에게 필요한 전력을 얻는다. NFC 장치 구현예는 내장형 NFC 칩, NFC-인에이블형 가입자 식별 모듈(SIM, subscriber identity module) 카드, 비-휘발성 메모리 카드(예컨대, 마이크로-SD 카드), 및 수동형 NFC-인에이블형 태그 또는 스티커를 포함한다. 다른 하나의 근접 기술은 TransferJet™이다. TransferJet™은 NFC보다 더 높은 속도를 지원한다. 따라서 TransferJet™은, 고속 무선 전송과 같이, NFC와는 다른 용도 시나리오를 목적으로 한다. 또 다른 근접 기술은, 두 개의 엔드포인트가 근접한다는 것을 결정하기 위하여 두 개의 엔드포인트로부터 서버에 보고된 위치, 장치 움직임 및 시간을 이용한다.
컨텐트 공유 및 지불 시스템과 같은, 종래의 근접 기능은 애플리케이션 레벨에서 인에이블된다. 애플리케이션 개발자는 다양한 근접 기능을 인에이블하기 위하여 근접 기술을 이용하여 직접 통신하는 애플리케이션을 만들 것이 요구된다. 전형적으로 기본적인 근접 기술에 대한 개발자의 깊은 이해가 요구된다.
이 발명의 내용(summary)은, 아래의 발명을 실시하기 위한 구체적인 내용(Detailed Description)에서 더 기술되는, 플랫폼-인에이블형 근접 서비스의 단순화된 개념을 소개하기 위하여 제공된다. 이 발명의 내용은 청구된 발명 주제의 주요 특징들 또는 본질적인 특징들을 식별하는 것으로 의도되지 않으며, 또한 청구된 발명 주제의 범위를 결정하는데 사용되는 것으로도 의도되지 않는다.
플랫폼-기반 근접 서비스는 애플리케이션으로 하여금 다른 장치와 근접 연결의 확립되는 개시될 예정인 근접 기능을 예비(pre-stage)할 수 있게 한다. 플랫폼-기반 근접 서비스는 애플리케이션이 근접 기술에 대해 직접적인 상호작용을 할 필요없이 해당 애플리케이션으로 하여금 다양한 사용자 경험을 제공할 수 있게 한다. 플랫폼 기반 근접 서비스는 또한 근접 기능들을 용이하게 하기 위해, 또는 예비된 근접 기능들 사이의 잠재적인 충돌을 해소하기 위하여 다수의 근접 액션들이 개시될 수 있도록 허용한다. 사용자의 관점에서 볼 때, 플랫폼-기반 근접 서비스에 의해 인에이블된 다양한 사용자 경험들은 사용자로 하여금 어떤 기능을 예비시켰다가 이 예비된 기능이 개시되도록 하기 위하여 자신의 장치를 다른 장치에 근접시킬 수 있도록 한다. 근접을 생성하기 위한 하나의 통상적인 양태는 탭핑(tapping)이라는 물리적인 제스처를 통해서이다. 이러한 일 예에서, 사용자는 자신의 장치(예컨대, 스마트폰 또는 키보드 또는 그 이외의 장치)를 다른 근접 장치에 탭핑함으로써 두 장치 사이에 자동화된 지속적인 페어링(pairing)을 활성화시킨다. 다른 일 예에서, 사용자는 근접 장치와 공유될 컨텐트를 준비한 다음, 자신의 장치를 다른 장치와 대역외(out-of-band) 연결(예컨대, Bluetooth®)을 확립하여 준비된 컨텐트를 전송하기 위하여 탭핑한다. 또 다른 일 예에서, 사용자는 애플리케이션을 멀티-유저 모드로 설정한 다음, 자신의 장치를 다른 장치에 탭핑함으로써 애플리케이션으로 하여금 다른 장치 상에서 실행되고 있는 호환가능한 애플리케이션과 소통하기 위하여 다른 장치와의 대역외 연결을 확립한다.
실시예에 따른 플랫폼-기반 근접 서비스는 근접 이벤트 및 연결의 조인트 근접 컨텍스트를 결정하고, 조인트 근접 컨텍스트에 기초하여 다양한 근접 액션들을 개시한다. 이들 근접 액션들에는, 예비된 근접 기능들을 허용하는 선택가능 옵션을 가지는 사용자 인터페이스를 디스플레이하는 것, 대역외 연결을 네고시에이트(negociating)하고 확립하는 것, 장치들 사이에서 컨텐트가 전송되도록 하는 것, 및 그 외의 것들이 포함된다. 다른 장치와 근접 연결을 확립하면, 플랫폼-기반 근접 서비스는 또한 임의의 사용자 인터페이스 요소의 디스플레이, 오디오 사운드의 재생, 및/또는 근접 연결의 확립에 대해 및/또는 예비된 근접 기능들을 용이하게 하는 근접 액션들의 개시에 대해 사용자에게 경고하기 위한 장치 진동을 일으킬 수 있다. 플랫폼-레벨 근접 서비스를 제공하는 것은, 근접 이벤트 및 연결을 생성하기 위해 플랫폼에 의해 사용되는 하나 이상의 기초적인 근접 기술에 대해 애플리케이션 개발자들이 알아야 할 필요없이, 개발자들로 하여금 인간 상호작용을 모델링하는 사용자 경험들을 쉽게 만들어낼 수 있도록 한다.
발명을 실시하기 위한 구체적인 내용(Detailed Description)은 도면을 참조하여 제공된다. 도면들에서, 참조 번호의 가장-왼쪽의 숫자(들)는 해당 참조 번호가 첫번째로 나타나는 도면을 식별한다. 서로 다른 도면들 내의 동일한 참조 번호는 유사하거나 동일한 아이템을 나타낸다.
도 1은 애플리케이션 또는 그 외 다른 운영 시스템 요소를 위하여 근접 서비스를 통해 개시될 예정인 근접 액션을 인에이블하기 위해 이용할 수 있는 예시적인 환경의 개략도이다.
도 2는 실시예에 따라 근접 서비스를 제공하기 위해 이용할 수 있는 예시적인 장치의 블록도이다.
도 3은 근접 연결의 확립에 응답하여 애플리케이션 및 다양한 운영 시스템 요소를 위해 활성화될 예정인 예비된 근접 기능을 인에이블하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 4는 근접 연결을 사용하여 예비된 피어 연결을 개시 및 확립하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 5는 근접 장치로부터 피어 연결 초대를 수령한 때 예비된 피어 연결을 개시하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 6은 근접 연결을 통해 예비된 메시지 전송을 개시하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 7은 예비된 장치 페어링 기능을 개시하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 8은 근접 장치와 예비된 컨텐트의 공유를 인에이블하기 위해 대역외 연결을 개시하고 확립하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 9는 근접 장치로부터 컨텐트 공유 초대를 수령한 때 대역외 연결을 개시하고 확립하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 10은 애플리케이션 상태로부터 예비된 컨텍스트를 추론하기 위한 예시적인 프로세스(1000)를 보여주는 흐름도이다.
도 1은 애플리케이션 또는 그 외 다른 운영 시스템 요소를 위하여 근접 서비스를 통해 개시될 예정인 근접 액션을 인에이블하기 위해 이용할 수 있는 예시적인 환경의 개략도이다.
도 2는 실시예에 따라 근접 서비스를 제공하기 위해 이용할 수 있는 예시적인 장치의 블록도이다.
도 3은 근접 연결의 확립에 응답하여 애플리케이션 및 다양한 운영 시스템 요소를 위해 활성화될 예정인 예비된 근접 기능을 인에이블하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 4는 근접 연결을 사용하여 예비된 피어 연결을 개시 및 확립하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 5는 근접 장치로부터 피어 연결 초대를 수령한 때 예비된 피어 연결을 개시하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 6은 근접 연결을 통해 예비된 메시지 전송을 개시하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 7은 예비된 장치 페어링 기능을 개시하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 8은 근접 장치와 예비된 컨텐트의 공유를 인에이블하기 위해 대역외 연결을 개시하고 확립하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 9는 근접 장치로부터 컨텐트 공유 초대를 수령한 때 대역외 연결을 개시하고 확립하기 위한 예시적인 프로세스를 보여주는 흐름도이다.
도 10은 애플리케이션 상태로부터 예비된 컨텍스트를 추론하기 위한 예시적인 프로세스(1000)를 보여주는 흐름도이다.
개관
위에서 논의한 바와 같이, 근접 기술은 서로에 대해 가까운 근접 상태로 놓여진 장치들 사이의 통신을 인에이블한다. 종래의 근접 기능(예컨대, 금융 거래 또는 컨텐트 공유)은 애플리케이션 레벨에서 인에이블되었으므로, 애플리케이션 개발자들이 개발 중인 애플리케이션이 지원할 근접 장치의 타입을 식별할 것을 요구하며, 또한 해당 애플리케이션이 지원되는 근접 기술과 직접적으로 인터페이싱하도록 프로그래밍할 것을 요구한다. 본 개시내용의 실시예는, 애플리케이션 개발자들로 하여금 근접 기술에 대하여 직접적으로 프로그래밍할 필요없이 근접 서비스를 통해 다양한 사용자 경험을 제공할 수 있게 하는, 플랫폼-레벨 근접 서비스 및 근접 애플리케이션 프로그래밍 인터페이스(API)를 포함한다.
실시예에 따른 근접 서비스는 애플리케이션과 기초가 되는 근접 프로바이더(proximity provider) 사이의 추상화 계층(abstraction layer)을 나타낸다. 근접 프로바이더는 임의의 수의 수단을 통해 근접성을 결정할 수 있게 하는 기술이다. 예를 들어, 통상적인 하나의 근접 프로바이더는, 근접 정보의 교환을 인에이블 하기 위해 대응하는 무선 필드들이 각각의 다른 필드와 상호작용할 때 근접성을 인에이블하기 위한 무선 신호의 사용을 포함한다. 근접 프로바이더의 두번째 실시예는, 중간 유틸리티 서비스를 통해 근접성을 결정하기 위하여, 시간 및 움직임과 함께, GPS와 같은 고정밀 위치추적 서비스를 사용할 수 있다. 여기서 기술되는 근접 서비스는, 근접성을 결정하기 위한 통상적인 또는 완전히 상이한 방법들을 이용하는 하나 이상의 이러한 근접 프로바이더를 통해 근접성을 결정하기 위해, 중개자(broker)로서 이용된다.
실시예에 따른 근접 서비스는 특정 근접 기능이 요청되었음을 나타내기 위하여 애플리케이션으로부터 - 예컨대, 다양한 API의 사용을 통하여 - 등록상태(registrations)를 수신하도록 구성된다. 다른 장치와의 근접 연결을 확립하는 근접 이벤트가 발생하면, 근접 서비스는 예비된 컨텍스트 정보를 다른 장치의 근접 서비스와 교환한다. 교환은 예비된 컨텍스트 정보를 다른 장치로 전송하는 것 뿐만 아니라 예비된 컨텍스트 정보를 다른 장치로부터 수신하는 것을 포함한다. 예비된 컨텍스트 정보는 둘 각각의 장치 상에서 애플리케이션(운영 시스템 요소를 포함)에 의해 등록되어 있는 (만약 있다면) 근접 기능의 표시를 포함한다. 근접 연결 동안, 교환된 예비된 컨텍스트 정보에 기초하는 추가 계산이 장치 둘 중 하나 또는 둘 모두 상에서 근접 서비스에 의해 실시간으로 수행될 수 있다.
근접 서비스는 연결의 조인트 근접 컨텍스트를 결정한다. 조인트 근접 컨텍스트는 장치 중 하나 또는 양자 모두의 예비된 컨텍스트 정보를 포함한다. 조인트 근접 컨텍스트에 기초하여, 근접 서비스는 등록된 근접 기능을 용이하게 하는 예비된 근접 액션을 개시한다. 만약 조인트 근접 컨텍스트가 다수의 등록된 근접 기능(예컨대, 장치 둘 모두의 근접 기능)의 표시를 포함한다면, 근접 서비스는 등록된 근접 기능 일부 또는 모두를 용이하게 하는 예비된 근접 액션을 개시할 수 있다.
예비된 근접 액션은 등록된 근접 기능을 용이하게 한다. 근접 기능은 장치 페어링, 피어 애플리케이션 연결, 메시지 발행 및 가입, 및 컨텐트 공유를 포함한다.
일 예에서, 조인트 근접 컨텍스트는 장치 페어링 요청의 표시를 포함한다. 사용자 장치(예컨대, 퍼스널 컴퓨터, 랩탑, 또는 타블렛 컴퓨터) 및 페어링 장치(예컨대, 키보드, 마우스, 카메라, 또는 스마트폰) 사이의 근접 연결이 확립되면, 근접 서비스는 페어링에 대해 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 디스플레이하게 한다. 사용자가 페어링에 대하여 동의하였음을 나타내는 입력을 사용자 입력 장치로부터의 수신하면, 근접 서비스는 아웃-오브-밴트 연결 타입을 네고시에이트하고, 대역외 연결을 확립하며, 또한 대역외 연결에 관한 정보를 장치의 페어링 서비스에게 제공한다. 그런 다음 페어링 서비스는 추가적인 사용자 상호작용에 의해 또는 추가적인 사용자 상호작용 없이 장치와의 페어링을 수행한다. 그런 다음 페어링 서비스는 페어링된 장치를 사용하는데 있어 필요하거나 가치있는 소프트웨어(예컨대, 장치 드라이버 또는 애플리케이션)의 설치를 개시하거나 바인딩을 개시할 수 있다.
다른 일 예에서, 조인트 근접 컨텍스트는 근접 장치 상에서 피어 애플리케이션을 찾기 위하여 애플리케이션에 의한 등록상태의 표시를 포함한다. 이 경우에, 개시 장치(근접 연결을 확립하는 근접 이벤트 발생시)는 동시에 다수의 대역외 연결 타입들의 확립을 개시하고 또한 이들 중에서 하나를 아웃-오브-밴드 통신을 위하여 사용하도록 결정하기 위해 두 장치 모두에게 알려져 있는 알고리즘을 사용한다. 개시 장치는 애플리케이션으로 통신 소켓을 전달한다. 수신 장치의 근접 서비스는 피어링 요청과 관련된 하나 이상의 액션에 대하여 동의하기 위해 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 디스플레이하게 한다. 사용자 동의를 나타내는 사용자 입력 장치로부터의 입력을 수신하면, 근접 서비스는 제한적인 아닌 예를 들면, 개시 장치와의 대역외 연결을 확립하는 것, 피어 애플리케이션을 런칭하는 것, 피어 애플리케이션을 전경(foreground)으로 가져오는 것, 실행되고 있는 애플리케이션(예컨대, 전경 애플리케이션)에게 컨텍스트 정보를 전달하는 것, 및 장치가 피어 애플리케이션을 획득하고 설치하도록 허용하기 위해 애플리케이션 획득 서비스를 런칭하는 것과 같은, 하나 이상의 단계들을 취할 수 있다.
다른 일 예에서, 조인트 근접 컨텍스트는 애플리케이션이 하나 이상의 네임스페이스(namespace) 상에 발행될 메시지를 등록한 것 및/또는 동일하거나 상이한 네임스페이스에 가입하도록 등록한 것의 표시를 포함한다. 근접 연결이 확립되면, 근접 서비스는 발행된 메시지를 근접 연결을 통해 전송하거나 수신한다.
다른 일 예에서, 조인트 근접 컨텍스트는 공유 서비스가 큐에 대기되어 있는(queued) 컨텐트(메시지, 파일, 기타 등등)를 근접 장치와 공유될 것으로 등록한 것의 표시를 포함한다. 근접 연결을 확립하는 근접 이벤트가 발생하면, 개시 장치는 대역외 연결을 네고시에이트 및 설정하거나, 또는 대안적으로 다수의 아웃-오브-밴트 연결을 동시에 개시하고 사용을 위해 하나를 선택한다. 개시 장치는 공유된 컨텐트를 전송할 소켓을 공유 서비스로 제공한다. 수신 장치는 공유된 컨텐트의 수신에 대해 동의하는 선택가능한 옵션을 가진 사용자 인터페이스 요소를 디스플레이하게 한다. 사용자 동의를 나타내는 입력을 사용자 입력 장치로부터 수신하면, 근접 서비스는 대역외 연결의 확립을 완료하고 공유된 컨텐트를 수신하기 위한 소켓을 그것 자신의 공유 서비스에 제공한다.
다른 일 예에서, 조인트 근접 컨텍스트는 장치의 사용자 인터페이스의 전경에서 실행되는 애플리케이션의 상태로부터 추론되는 근접 기능의 표시를 포함한다. 비-제한적인 일 예에서, 사용자는 애플리케이션을 사용하여 컨텐트를 선택할 수 있다. 일단 근접 연결이 개시되면, 근접 서비스는 사용자가 근접 장치와 컨텐트를 공유하고자 원한다는 것을 컨텐트를 사용자가 선택했다는 사실로부터 추론할 수 있다. 따라서, 조인트 근접 컨텐트는 컨텐트 공유가 요청되는 것의 표시를 포함한다. 근접 서비스는 공유 서비스를 런칭함으로써 및 선택된 컨텐트를 전송할 대역외 통신 채널을 확립함으로써 공유를 용이하게 한다. 다른 비-제한적인 일 예에서, 장치는 멀티-유저 기능을 가지는 애플리케이션을 실행할 수 있고, 근접 서비스는 사용자가 애플리케이션 상에서 멀티-유저 협력작업을 가능하게 하기 위해 피어 연결을 형성하고자 원한다는 것을 추론할 수 있다. 따라서, 조인트 근접 컨텍스트는 피어 연결이 요청되는 것의 표시를 포함한다. 근접 서비스는 피어 연결을 개시하는 선택가능한 옵션을 포함하는 사용자 인터페이스 요소를 디스플레이함으로써 피어 연결 요청을 용이하게 한다.
실시예는 근접 이벤트 발생시 개시된 권한없는 액션에 대해 장치를 보호하는 특징을 포함한다. 이들 특징은, 사용자 경험을 향상시킬 뿐만 아니라, 장치의 보안 및 프라이버시 보호를 돕는다. 예를 들어, 다양한 실시예는 컨텐트 수신, 애플리케이션의 획득 또는 런칭, 멀티-유저 모드를 인에이블하는 피어 연결 생성, 또는 다른 장치와의 페어링과 같은 특정 액션에 대해 사용자가 동의할 것을 요구한다. 더 나아가, 근접 서비스는 사용자를 애플리케이션을 획득하기 위해 권한있는 온라인 또는 오프라인 애플리케이션 스토어로 향하게 할 수 있고, 이에 의해 획득되고 있는 애플리케이션이 나쁜 것이 아니라고 확신할 수 있는 대책을 사용자에게 제공할 수 있다. 또한 사용자에게는 사용자의 장치가 근접 연결을 확립했다는 것을 사용자가 알도록 하기 위한 시각적인, 촉각적인, 및/또는 청각적인 피드백이 제공된다. 그리고 실시예는 근접 프로바이더 자체, 근접 공유 기능, 근접 페어링 기능, 메시지 가입/발행 기능, 피어 연결 확립 기능, 및 기타 등등과 같은, 근접 서비스 기능 중 일부 또는 모두를 사용자가 디스에이블할 수 있게 할 수 있다.
여기서 사용되는 용어 "근접(proximity)"이란 몇가지 의미들 중 하나를 가질 수 있다. 몇몇 실시예에서, 근접이란, 장치를 이용한 제스처를 통해 결정되는 것과 같이, 두 컴퓨팅 장치의 물리적인 가까운 상태를 지칭할 수 있다. 비-제한적인 일 예에서, 임의의 장치는 그 장치의 물리적인 탭과 같은 물리적인 제스처가 수행된 때에 다른 장치와 근접 상태라고 말할 수 있다. 이러한 근접 연결은 NFC, TransferJet™, 또는 몇몇 다른 근거리 통신 기술에 의해 확립될 수 있다. 대안적인 실시예에서, 근접은 물리적인 제스처가 아닌 환경 정보에 기초하여 확립될 수 있다. 비-제한적인 일 예는 두 장치가 회의실과 같이 아주 가까운 물리적인 환경 내에 있는지 여부를 결정하기 위하여 하나의 공통 무선 액세스 포인트로부터 계산된 거리를 이용한다. 근접이란 또한, 실시예에서, 장치들의 물리적인 가까움이 아닌 다른 것을 지칭할 수 있다. 실시예에서, 첫번째 사용자를 위해 사용자 대리인으로서 이용되는 장치는, 다른 한 사용자를 위해 사용자 대리인으로서 이용되는 다른 하나의 장치와, 두 사용자 사이에 어떤 관계가 존재할 때, 근접 상태이다. 비-제한적인 일 예에서, 첫번째 사용자의 장치는 두번째 사용자의 장치와, 사용자들이 가족 관계일 때, 근접되어 있다. 이들은 단지 예시에 불과하며, 실시예는 위에 기술된 것들로 제한되지 않는다.
여기서 기술되는 프로세스, 시스템, 및 장치는 다양한 방식으로 구현될 수 있다. 예시적인 구현예들은 첨부된 도면들을 참조하여 아래에서 제공된다.
근접 서비스를 위한 예시적인 환경
도 1은 애플리케이션 또는 그 외 다른 운영 시스템 요소를 위해 근접 서비스를 통해 개시될 예정인 근접 액션을 인에이블하기 위해 사용가능한 예시적인 환경의 개략도이다. 환경(100)은 제 1 근접 장치(102) 및 제 2 근접 장치(104)를 포함할 수 있다. 제 1 근접 장치(102) 및 제 2 근접 장치(104)는 근접 서비스를 구현할 능력이 있는 다양한 적절한 컴퓨팅 장치 타입들 상에서 구현될 수 있다. 적절한 컴퓨팅 장치 또는 장치들은 하나 이상의 퍼스널 컴퓨터, 서버, 서버 팜(server farm), 데이터 센터, 특수 목적 컴퓨터, 타블렛 컴퓨터, 게임 콘솔, 스마트폰, 이들의 조합, 또는 근접 서비스의 모두 또는 일부를 저장하고 실행할 수 있는 임의의 그 외 다른 컴퓨팅 장치(들)을 포함하거나, 또는 그것들의 일부일 수 있다.
도 1의 도시된 예에서, 제 1 근접 장치(102)는 근접 서비스(106), 근접-인에이블형 애플리케이션(108), 및 공유-인에이블형 애플리케이션(110)을 포함한다. 근접-인에이블형 애플리케이션(108)은 근접 서비스(106)에 대해 다양한 근접 기능을 등록하도록 구성된다. 그러한 등록은 하나 이상의 애플리케이션 프로그래밍 인터페이스(API, application programming interface)의 사용을 통해 이루어질 수 있다. 예를 들어, 근접-인에이블형 애플리케이션(108)은, 근접-인에이블형 애플리케이션(108)이 공유된 사용자 경험을 제공하는 피어 애플리케이션을 찾고 있음을 나타내는, 피어 탐색 API(112)를 호출하도록 구성될 수 있다. 근접-인에이블형 애플리케이션(108)은 멀티-플레이어 게임이거나, 컨텐트 교환 애플리케이션이거나, 또는 몇몇 그 외 다른 협력작업을 하는 애플리케이션일 수 있다.
다른 일 예에서, 근접-인에이블형 애플리케이션(108)은 애플리케이션을 발행하는 하나 이상의 네임스페이스 및/또는 가입하는 하나 이상의 네임스페이스를 등록하기 위해 근접 메시징 API(114)를 호출하도록 구성될 수 있다. 예를 들어, 근접-인에이블형 애플리케이션(108)은 브이카드(Vcard) 네임스페이스에 가입하는, 및 또한 동일 또는 상이한 네임스페이스 상에 브이카드를 발행하는 명함 공유 애플리케이션일 수 있다.
공유-인에이블형 애플리케이션(110)과 같은, 공유-인에이블형 애플리케이션은, 공유될 컨텐트를 큐에 대기하도록 및 대기된 컨텐트를 공유하기 위하여 공유 서비스(116)를 호출하도록 구성될 수 있다. 공유 서비스(116)는 사용자가 대기된 컨텐트를 공유하기 위해 애플리케이션을 선택할 수 있게 하기 위하여 공유 사용자 인터페이스 요소(118)를 프레젠트(present)한다. 공유 사용자 인터페이스 요소(118)는 또한 다른 애플리케이션과 대기된 컨텐트를 공유하는 것에 대한 대안으로서 사용자로 하여금 근접-인에이블형 장치와 컨텐트를 공유할 수 있게 하도록 구성된다.
근접 프로바이더(120)는 소프트웨어 요소 및 근접-결정 기능성 둘 모두를 포함하는 기능적인 모듈이다. 근접 프로바이더(120)는 근접 프로바이더로서 근접 서비스(106)를 등록하는 장치 드라이버를 포함할 수 있다. 근접 프로바이더(120)는 NFC(near field communication) 프로바이더, TransferJet™ 프로바이더, 또는 그 외 다른 근접 프로바이더 타입일 수 있다. 근접 무선장치(radio)를 사용하는 실시예에서, 근접 프로바이더(120)는 근접 기저대역(124)을 통해 제 2 근접 장치(104)의 근접 프로바이더(122)와 근접 연결을 확립하도록 구성된다. 근접 연결은, 예를 들어, 근접 프로바이더(122)의 안테나가 근접 프로바이더(120)의 안테나와 가까운 근접 상태로 놓이는 때에, 확립될 수 있다. 이것은, 예를 들어, 사용자가 제 1 근접 장치(102)를 제 2 근접 장치(104) 가까이에 놓는 것, 또는 그 반대로 하는 것에 기인하여 발생할 수 있다. 장치들은 근접 안테나가 있는 곳을 보여주도록 라벨로 표시될 수 있고, 따라서 사용자는 근접 연결을 용이하게 활성화시킬 수 있다. 근접을 결정하기 위해 무선-기반 모델을 이용하지 않는 근접 프로바이더의 대안적인 실시예가 존재한다. 이러한 일 예에서, 두 장치가 서로에 대해 가까운 근접 상태라는 것을 글로벌 포지셔닝 시스템(GPS)과 함께 근접 프로바이더에 의해 결정되면, 두 장치는 서로에 대해 근접 상태일 수 있다. 다른 일 예에서, 두 장치의 사용자들이 동료, 형제자매, 친척, 또는 그 외 다른 인간 관계와 같은, 미리-확립된 관계를 가진다는 것이 근접 프로바이더에 의해 결정되면, 두 장치는 서로에 대해 근접 상태라고 생각될 수 있다.
근접 서비스(106)는 근접 연결이 제 2 근접 장치(104)와 확립되었음을 나타내는 표시를 근접 프로바이더(120)로부터 수신하도록 구성된다. 근접 서비스(106)는 근접 연결을 통해 제 2 근접 장치(104)와 예비된 컨텍스트 정보를 교환하도록 구성된다. 예비된 컨텍스트 정보의 교환은, 예비된 컨텍스트 정보(126)의 전송 뿐만 아니라, 제 2 근접 장치(104)로부터 예비된 컨텍스트 정보의 수신을 포함한다. 예비된 컨텍스트 정보(126)는 근접-인에이블형 애플리케이션(108) 및/또는 공유 서비스(116)에 의해 등록된 임의의 근접 기능을 포함할 수 있다. 예를 들어, 예비된 컨텍스트 정보(126)는 근접-인에이블형 애플리케이션(108)이 근접 피어 탐색 API(112)를 통해 피어를 탐색하도록 등록하였음을 나타내는 표시, 근접-인에이블형 애플리케이션(108)이 근접 메시징 API(114)를 통해 네임스페이스 내 메시지를 발행 및/또는 가입하도록 등록하였음을 나타내는 표시, 또는 공유 서비스(116)가 근접 장치와 공유될 예정인 대기된 컨텐트를 등록하였음을 나타내는 표시를 포함할 수 있다. 대안적으로, 예비된 컨텍스트 정보(126)는 이들 근접 기능들 중 하나보다 많은 것을 나타내거나 또는 이들 근접 기능들 중 아무것도 나타내지 않을 수 있다. 근접 서비스(106)는 예비된 컨텍스트 정보(126) 중 일부만 전송할 수 있는데, 예컨대 장치의 사용자 인터페이스의 전경에서 현재 실행되고 있는 애플리케이션에 관련된 예비된 컨텍스트 정보만을 전송할 수 있다.
근접 서비스(106)는 수신된 컨텍스트 정보를 예비된 컨텍스트 정보(126)와 결합함으로써 근접 연결의 조인트 근접 컨텍스트를 결정한다. 근접 연결의 조인트 근접 컨텍스트에 기초하여, 근접 서비스(106)는 조인트 근접 컨텍스트에 의해 지시된 근접 기능을 용이하게 하기 위하여 하나 이상의 근접 액션을 개시하도록 구성된다.
예컨대, 조인트 근접 컨텍스트가, 근접-인에이블형 애플리케이션(108)이 피어 탐색 API(112)를 통해 피어 애플리케이션을 탐색하기 위해 등록하였음을 포함하는 경우, 근접 서비스(106)는 또한 근접 연결을 통해 제 2 근접 장치(104)와 하나의 대역외 연결을 네고시에이트 하고 그런 다음 그 연결을 개시하도록 구성된다. 제 1 근접 장치(102) 및 제 2 근접 장치(104)는 근접 연결을 통해 서로에게 그들 각자의 대역외 연결 성능을 전송하도록 구성된다. 일 실시예에서, 근접 서비스(106)는 다른 장치와의 대역외 연결들을 동시에 개시하고, 성공적으로 연결된 것들 중에서 사용을 위해 하나를 선택하도록 구성된다.
일 실시예에서, 근접 서비스(106) 및 제 2 근접 장치(104) 상의 근접 서비스(미도시)는 각각의 개별 근접 장치 상에서 이용가능한 대역외 통신 타입들을 발견하도록 구성된다. 만약 네고시에이션 이전에 하나 보다 더 많은 수의 타입이 확립되면, 근접 서비스(106)는 그들 중에서 선택하도록 구성된다. 제 2 근접 장치(104) 상의 근접 서비스(미도시)는 두 장치들 상에서 선택된 대역외 통신 타입들에서 불일치가 존재하지 않도록 근접 서비스(106)과 동일한 선택 알고리즘을 실행하도록 구성된다. 비-제안적인 다른 일 실시예에서, 한 장치는 다른 장치에 연결할 수 있었고 선택을 전송할 수 있었던 것들 중에서 대역외 통신 타입을 선택한다. 실시예에서, 근접 서비스(106)는 미리-확립된 성능 목표에 기초하여 연결을 가장 빠르게 할 수 있고 가장 빠른 전송 속도에 기초하여 대역외 연결을 결정하도록 구성된다.
근접 서비스(106)는 통신 프로바이더(128)를 통해 대역외의 확립을 개시한다. 통신 프로바이더(128)는, 다양한 실시예에서, Bluetooth®, Wi-Fi®, Wi-Fi Direct™, 또는 그 외 다른 무선 프로바이더 타입일 수 있다. 대안적인 실시예들은 대역외 통신을 제공하기 위한 유선 통신 프로바이더를 이용할 수 있다. 실시예는 대역외 통신 프로바이더의 임의의 타입 또는 타입들로 제한되지 않는다. 통신 프로바이더(128)는 소프트웨어 요소 및 무선 하드웨어 둘 모두를 포함하는 기능적인 요소가다. 통신 프로바이더(128)는 통신 매체(132)를 통해 제 2 근접 장치(104)의 통신 프로바이더(130)와 대역외 연결을 확립하도록 구성된다.
일단 대역외 통신 연결이 획립되고 선택되면, 근접 서비스(106)는 근접-인에이블형 애플리케이션(108)으로 통신 매체(132)를 통해 정보의 교환을 용이하기 하기 위한 통신 정보를 전달하도록 구성된다. 일 실시예에서 통신 정보는 네트워킹 소켓-스타일 인터페이스이다. 근접-인에이블형 애플리케이션(108)은 제 2 근접 장치(104) 상의 피어 애플리케이션으로부터 통신을 위한 소켓 상에서 정보를 교환하도록 구성된다.
조인트 근접 컨텍스트가, 근접-인에이블형 애플리케이션(108)이 하나 이상의 네임스페이스 상에 발행될 예정인 메시지를 등록하였고, 및/또는 동일 또는 상이한 네임스페이스로의 가입을 등록하였음을 나타내는 표시를 포함하는 경우, 근접 서비스(106)는 근접 연결을 통해 제 2 근접 장치(104)로부터 네임스페이스 정보를 수신하고 - 한 장치 상에 발행된 메시지를 가진 네임스페이스와 다른 장시 상의 가입 네임스페이스 사이에 일치가 존재한다고 결정되면 - 근접 연결을 통해 이 일치하는 네임스페이스 상에서 메시지를 전송 및/또는 수신하도록 구성된다.
조인트 근접 컨텍스트가, 공유 서비스(116)가 근접 연결을 이용하여 공유될 예정인 대기된 컨텐트를 등록하였음을 나타내는 표시를 포함하는 경우, 근접 서비스(106)는 위에서 기술된 바와 같은 다양한 방식들 중 하나로 (예컨대 통신 프로바이더(128) 및 통신 매체(132)를 통해) 하나의 밴드외 연결을 확립, 네고시에이트, 및 선택하도록 구성된다. 근접 서비스(106)는 또한, 공유 서비스(116)가 대기된 컨텐트를 전송하도록 하기 위하여 공유 서비스(116)에 통신 매체(132)를 통한 정보의 교환을 용이하게 하는 소켓, 또는 몇몇 그 외 다른 통신 정보을 전달하도록 구성된다.
제 1 근접 장치(102)의 예비된 컨텍스트 정보(126)는 등록된 근접 기능들을 나타내는 표시를 포함할 뿐만 아니라, 제 2 근접 장치(104)로부터의 예비된 컨텍스트 정보도 역시 등록된 근접 기능들을 나타내는 표시를 포함하는 것이 가능하다. 예를 들어, 조인트 근접 컨텍스트는 제 2 근접 장치(104)의 애플리케이션이 근접-인에이블형 애플리케이션(108)로의 피어 연결을 요청하였음을 나타내는 표시를 포함할 수 있다. 이 상황에서, 근접 서비스(106)는 제 1 근접 장치(102)의 디스플레이 상에 근접 피어 사용자 인터페이스 요소(134)가 디스플레이되도록 할 수 있다. 근접 피어 사용자 인터페이스 요소(134)는 제 1 근접 장치(102)의 상태에 종속하는 다양한 액션들을 포함하여, 피어링(peering) 요청에 동의하는 선택가능한 옵션을 포함한다.
예를 들어, 근접-인에이블형 애플리케이션(108)은 근접 연결이 확립된 때 현재 실행되지 않고 있는 상태일 수 있다. 이런 경우, 근접 피어 사용자 인터페이스 요소(134)는 피어 연결을 확립하는 것에 추가하여 근접-인에이블형 애플리케이션(108)을 런칭, 실행, 또는 수행하는 것에 동의하는 선택가능한 옵션을 프레젠트하도록 구성될 수 있다. 다른 일 예에서, 근접-인에이블형 애플리케이션(108)은 현재 실행되고 있지만, 사용자 인터페이스의 전경에서 실행되는 것은 아닐 수 있다. 이 예에서, 근접 피어 사용자 인터페이스 요소(134)는 근접-인에이블형 애플리케이션(108)을 전경으로 가져오는 것에 동의하는 선택가능한 옵션을 프레젠트하도록 구성된다. 다른 일 예에서, 근접-인에이블형 애플리케이션(108)은 사용자 인터페이스의 전경에서 실행되고 있을 수 있지만, 근접 피어 탐색 API(112)를 통해 피어 애플리케이션을 탐색하도록 등록되어 있지 않을 수 있다. 이 예에서, 근접 피어 사용자 인터페이스 요소(134)는 피어링 요청에 동의하는 선택가능한 옵션을 프레젠트하도록 구성된다. 사용자 장치로부터 다양한 선택가능한 동의 옵션들 중에서 하나가 선택되었음을 나타내는 입력을 수신하면, 근접 서비스(106)는 위에서 기술된 바와 같은 것과 유사한 방식으로 하나의 대역외 연결을 네고시에이트하고 개시하며, 근접-인에이블형 애플리케이션(108)에 대해, 소켓을 전달하거나 또는 통신 매체(132)를 통해 정보의 교환을 용이하게 하는 몇몇 그 외 다른 통신 정보를 전달한다.
근접-인에이블형 애플리케이션(108)은 제 1 근접 장치(102) 상에 설치되지 않을 수 있다. 이런 경우, 근접 피어 사용자 인터페이스(134)는 근접-인에이블형 애플리케이션(108)을 획득하기 위하여 애플리케이션 획득 서비스(136)를 런칭하는 선택가능한 옵션을 프레젠트하도록 구성된다. 애플리케이션 획득 서비스(136)는 근접-인에이블형 애플리케이션(108)을 사용자로 하여금 구매하거나 또는 다른 방식으로 획득하도록 인에이블하는 온라인 또는 오프라인 애플리케이션 스토어와 상호작용하는 인터페이스를 제공할 수 있다.
조인트 근접 컨텍스트는 제 2 근접 장치(104)의 공유 서비스가 제 1 근접 장치(102)로 컨텐트를 전송할 것을 요청함을 나타내는 표시를 포함할 수 있다. 이 경우, 근접 서비스(106)는 근접 공유 사용자 인터페이스 요소(138)의 디스플레이를 하도록 구성된다. 근접 공유 사용자 인터페이스 요소(138)는 대기된 컨텐트와 관련된 정보, 및 대기된 컨텐트의 수신에 동의하는 선택가능한 옵션을 디스플레이하도록 구성된다. 대기된 컨텐트의 수신에 대한 사용자 동의를 나타내는 입력을 사용자 입력 장치로부터 수신하면, 근접 서비스(106)는 제 2 근접 장치(104)로 대역외 연결의 확립을 네고시에이트하고 개시하도록 구성된다. 근접 서비스(106)는, 대기된 컨텐트의 수신을 용이하게 하기 위하여 공유 서비스(116)로, 소켓을 전달하거나 또는 통신 매체(132)를 통한 정보의 교환을 용이하게 하는 그 외 다른 통신 정보를 전달하도록 구성된다. 근접 공유 사용자 인터페이스 요소(138)는 또한 수신된 컨텐트를 애플리케이션이 열어 볼 수 있도록 하는 선택가능한 옵션을 프레젠트하도록 구성된다.
근접 서비스(126)는 요청된 근접 기능을 추론할 수 있다. 일 예에서, 조인트 근접 컨텍스트는 예컨대 장치의 사용자 인터페이스의 전경에서 실행되는 애플리케이션으로서 결정된, 근접 포커스(proximity focus)를 가지는 것으로 나타나는 애플리케이션(또는 애플리케이션들)의 현재 상태로부터 추론된 근접 기능을 나타내는 표시를 포함할 수 있다. 비-제한적인 일 예에서, 사용자는 근접 연결의 확립 이전에 전경 애플리케이션 상에서 컨텐트를 선택한다. 그러나 전경 애플리케이션은 그 컨텐트를 근접 장치와 공유하도록 선택되지도 않고 공유 서비스를 호출하지도 않았다. 그 대신에 공유 서비스(106)는 - 근접 연결이 확립되면 - 사용자는 그 컨텐트를 근접 장치와 공유하고자 원한다는 것을 추론한다. 이런 방식으로, 근접 서비스(106)는 예비된 컨텍스트 정보(126)가 컨텐트를 공유하는 요청을 포함하고 있음을 결정한다. 그러므로 근접 서비스(106)는, 선택된 컨텐트를 근접 장치와 공유하는 선택가능한 옵션을 제공하는, 근접 공유 사용자 인터페이스 요소(138)가 디스플레이되도록 한다. 만약 사용자 동의를 나타내는 입력이 수신되면, 공유 서비스(116)가 런칭되고, 근접 서비스(106)는 이 발명을 실시하기 위한 구체적인 내용(Detailed Description)에서 기술된 바와 같은 다양한 방식들 중 하나로, 컨텐트를 전송하기 위한 대역외 통신 채널을 확립하고, 네고시에이트하고, 및 선택한다.
추론된 근접 기능 요청의 다른 일 예에서, 전경 애플리케이션은 멀티-유저 기능을 포함할 수 있지만, 이 전경 애플리케이션은 근접 장치 내에서 피어 애플리케이션을 탐색하기 위해 근접 서비스(126)에 등록하지 않았다. 그 대신에, 근접 서비스(126)는 (예컨대, 전경 애플리케이션이 멀티-유저 모드로 놓여지는 것과 같은) 애플리케이션의 상태로부터 피어 애플리케이션을 탐색하는 요청을 추론한다. 근접 서비스(126)는 제 2 근접 장치(104)와의 피어 연결의 확립에 대해 동의하는 선택가능한 옵션을 가진 근접 피어 사용자 인터페이스(134)가 디스플레이되도록 한다. 일단 동의가 얻어지면, 근접 서비스(126)는 이 발명을 실시하기 위한 구체적인 내용(Detailed Description)에서 기술된 바와 같은 피어 연결을 확립하는 액션을 취한다.
다른 일 예에서, 조인트 근접 컨텍스트는 제 2 근접 장치(104)가 제 1 근접장치(102)와 페어링하는 것을 요청함을 나타내는 표시를 포함할 수 있다. 이 경우, 제 2 근접 장치(104)는 마우스, 키보드, 비디오 프로젝터, 또는 그 외 다른 장치와 같은 수동형 근접 장치일 수 있다. 이러한 경우, 근접 프로바이더(122)는 근접 프로바이더(120)의 안테나와 가까이 배치되면 전력을 공급받는 수동형 스티커 또는 태그일 수 있다. 대안적으로, 제 2 근접 장치(104)는 카메라, 스마트폰, 또는 그 외 다른 장치와 같은 능동형 근접 장치일 수 있다. 대안적인 실시예들은 근접을 결정하고 태그 정보를 제공하는 서로 다른 방법들을 사용한다. 예컨대, 서비스는 물리적인 회의실 내에서 모든 장치들을 나타내기 위해 근접을 결정하고 근접 프로바이더 레이어에서 직접적으로 태그의 개념을 도입할 수 있다. 어느 경우이든, 근접 연결을 통해 페어링 요청을 수신하면, 근접 서비스(106)는 페어링 요청에 동의하는 선택가능한 옵션을 포함하는 근접 페어링 사용자 인터페이스 요소(140)가 디스플레이되게 하도록 구성된다. 제 2 근접 장치(104)에 의해 전송된 페어링 요청은 장치 타입, 모델 번호, 제조자 등과 같은 장치 정보를 포함할 수 있다. 따라서, 근접 페어링 사용자 인터페이스 요소(140)는 또한 페어링 요청에 대해 동의하는 선택가능한 옵션과 함께 이 정보를 디스플레이하도록 구성된다.
근접 서비스(106)는 위에서 기술된 바와 동일하거나 유사한 방식으로 제 2 근접 장치(104)와의 대역외 통신 연결의 확립을 네고시에이트하고 개시한다. 근접 서비스(106)는, 페어링되는 장치의 컨텐트 전송이나 원격 동작, 페어링하는 장치에 관련된 추가적인 소프트웨어의 설치, 및 기타 등등과 같은 페어링 액션을 인에이블할 뿐만 아니라, 페어링 동작을 완료하기 위해 페어링 서비스(142)가 제 2 근접 장치(104)와 직접 통신할 수 있도록 하기 위해 페어링 서비스(142)로 대역외 페어링 정보를 전달하도록 구성된다.
결과적으로, 근접 연결이 확립되면, 사용자 피드백 모듈(144)은, 근접 이벤트 및/또는 근접 연결의 성공적인 확립을 사용자에게 경고하기 위하여, 하나 이사의 사용자 인터페이스 요소가 디스플레이되도록, 오디오 음향이 재생되도록, 및 장치 진동이 발생하게 하도록 구성된다.
이들 예에서, 두 근접 장치들 중 하나의 사용자는 예비된 몇몇 근접 기능을 가진다(수동형 페어링 장치의 경우, 근접 액션은 수동형 페어링 장치의 제조시에 또는 근접 프로바이더(122)의 제조시에 또는 대안적으로 근접 프로바이더에 의해 결정된 몇몇 방법을 통해 예비된다). 장치들을 물리적으로 함께 놓으면 - 예컨대, 장치들을 함께 흔들거나, 탭핑하거나, 장치들을 서로 잠깐 접촉되도록 하거나, 하나의 공통적인 물리적인 공간으로 넣거나, 또는 몇몇 그 외 다른 제스처를 통하는 것에 의해서 - 또는 장치들을 인터넷 채팅방과 같은 가상 공간 안에 두면 - 근접 서비스(106)는 예비된 근접 기능을 용이하게 하기 위한 예비된 근접 액션을 개시하며, 그에 의해 장치들이 서로에 대해 가까운 근접 상태로 이동하였다는 사실로부터 사용자가 예비된 기능이 활성화되도록 의도한다는 것을 추론한다. 다양한 동의 사용자 인터페이스들 뿐만 아니라, 사용자 피드백 모듈(144)은 근접 기능을 개시하는 사용자 경험을 향상시키고 사용자를 위한 보안성 및 프라이버시 보호를 위한 추가적인 레벨을 제공한다. 플랫폼-레벨 근접 서비스(106)는 애플리케이션으로 하여금 근접 프로바이더(120)와의 직접적인 상호작용없이 이들 사용자 경험을 제공하도록 허용한다. 따라서, 애플리케이션 - 예컨대 근접-인에이블형 애플리케이션(108) 및 공유-인에이블형 애플리케이션(110) - 은 기초가 되는 근접 기술에 대해 인식불가형(agnostic)일 수 있다.
예시적인 근접 장치
도 2는 실시예에 따른 근접 서비스를 제공하기 위해 이용가능한 예시적인 장치의 블록도이다. 근접 장치(200)는 근접 서비스를 구현할 수 있는 임의의 적절한 컴퓨팅 장치에 의해 구성될 수 있다. 다양한 비-제한적인 예에 따라, 적절한 컴퓨팅 장치에는 퍼스널 컴퓨터(PC), 서버, 서버 팜, 데이터센터, 특수 목적 컴퓨터, 타블렛 컴퓨터, 게임 콘솔, 스마트폰, 이들의 조합, 또는 근접 서비스의 전부 또는 일부를 저장하고 실행할 수 있는 임의의 그 외 다른 장치(들)이 포함된다.
예시적인 일 구성에서, 근접 장치(200)는 하나 이상의 프로세서(202) 및 메모리(204)를 포함한다. 근접 장치(200)는 또한 다양한 장치와의 통신을 허용하는 통신 연결(들)(206)을 포함할 수 있다. 근접 장치(200)는 또한 프로세서(들)(202) 및 메모리(204)와 통신가능하게 연결된 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 하나 이상의 입력 장치(208) 및 디스플레이, 스피커, 프린터 등과 같은 하나 이상의 출력 장치(210)를 포함할 수 있다.
메모리(204)는 프로세서(들)(202) 상에 로딩가능하고 실행가능한 프로그램 인스트럭션, 및 이들 프로그램의 실행 중에 생성되거나 및/또는 이들 프로그램과 함께 이용가능한 데이터를 저장할 수 있다. 도시된 예에서, 메모리(204)는 운영 시스템(212)을 저장하며, 이 운영 시스템은 근접 장치(200)의 기본적인 시스템 기능성을 제공하는데, 특히 근접 장치(200)의 그 외 다른 프로그램들 및 모듈들의 동작을 위해 제공한다.
메모리(204)는 또한 근접 서비스(214)를 포함하는데, 이 근접 서비스는 도 1의 근접 서비스(106)와 동일하거나 또는 유사할 수 있다. 메모리(204)는 도 1의 근접 프로바이더(120)와 동일하거나 유사한 것일 수 있는 근접 프로바이더를, 근접 하드웨어(218)와 함께, 형성하는 근접 프로바이더 모듈(216)을 포함한다. 그 외 다른 실시예들에서, 근접 프로바이더 모듈(216)은 다른 장치와의 근접 정보를 결정하기 위해 수많은 하드웨어 컴포넌트들의 기능을 통합하는 소프트웨어를 포함한다. 그러한 실시예들에서, 근접 하드웨어(218)는 하나 이상의 글로벌 포지션 시스템 하드웨어, 오디오 센서, 비디오 카메라, 그 외 다른 센서 타입, 무선 하드웨어, 가속도계 하드웨어, 및 기타 등등을 포함할 수 있다. 또 다른 실시예들에서, 근접 프로바이더는 소프트웨어-만으로 된 근접 프로바이더일 수 있으며, 이러한 실시예들에서, 근접 프로바이더 모듈(216)은 근접 하드웨어(218)와 상호작용하지 않는다. 근접 프로바이더 모듈(216)에 의해 통합되는 하드웨어 컴포넌트에는 통신 연결(206)에 의해 대표되는 하나 이상의 네트워킹 컴포넌트들이 포함될 수 있다.
메모리(204)는 각각 도 1의 근접-인에이블형 애플리케이션(108) 및 공유-인에이블형 애플리케이션(110)과 동일하거나 유사한 근접-인에이블형 애플리케이션(들)(220) 및 공유-인에이블형 애플리케이션(들)(222)을 포함한다.
메모리(204)는 페어링 서비스(224)를 포함하는데, 이 페어링 서비스는 도 1의 페어링 서비스(142)와 동일하거나 유사할 수 있다. 메모리(204)는 또한 도 1의 공유 서비스(116)와 동일하거나 유사할 수 있는 공유 서비스(226)를 포함한다. 그리고 메모리(204)는 도 1의 애플리케이션 획득 서비스(136)와 동일하거나 유사할 수 있는 애플리케이션 획득 서비스(228)를 포함한다. 근접 장치(200)는 Bluetooth®, Wi-Fi®, Wi-Fi Direct™, 또는 그 외 다른 무선 타입과 같은 무선 장치(230)를 포함할 수 있다.
예비된
근접 액션을
인에이블하기
위한 예시적인 동작
도 3은 근접 연결의 확립에 응답하여 애플리케이션 및 다양한 운영 시스템 요소를 위해 활성화될 예정인 예비된 근접 기능을 인에이블하는 예시적인 프로세스(300)를 보여주는 흐름도이다. 블록(302)에서, 두 개의 근접 장치가 서로에 대해 가까인 배치된 것에 응답하여, 장치들 사이에 근접 연결이 확립된다. 장치들을 서로에 대해 가까이에서 흔드는 것에 의해, 장치들을 함께 탭핑하는 것에 의해, 서로에 대해 함께 접촉시켜 배치함으로써, 함께 공통 물리적인 위치에 입장함으로써, 인터넷 채팅방과 같은 공통 가상 공간에 놓여짐으로써, 또는 사용자 측면에 대한 몇몇 그 외 다른 제스처에 의하여, 서로에 대해 근접으로 배치될 수 있다.
블록(304)에서, 근접 장치의 근접 서비스는 근접 연결이 확립된 것의 표시를 근접 프로바이더로부터 수신한다. 근접 프로바이더는 연결 확립 표시를 제공하기 위하여 근접 서비스로 메시지를 전달하도록 구성될 수 있다.
블록(306)에서, 한 장치의 근접 서비스는 근접 연결을 통해 다른 장치로 예비된 근접 컨텍스트 정보를 전송한다. 예비된 근접 컨텍스트 정보는 근접 서비스에 대해 요청되었고 및/또는 등록되었던 근접 기능을 포함할 수 있다. 예비된 근접 컨텍스트의 비-제한적인 예에는, 장치의 애플리케이션이 다른 장치 상의 피어 애플리케이션을 탐색할 것을 등록하였다는 것, 장치의 애플리케이션이 페어링 관계를 생성하려는 의도로 하나 이상의 네임스페이스에 메시지를 발행하였고 및/또는 동일한 또는 상이한 네임스페이스에 가입하였다는 것, 및 장치의 공유 서비스가 근접 장치로 전송될 예정인 대기된 컨텐트를 가지고 있다는 것을 나타내는 표시들이 포함된다.
블록(308)에서 근접 서비스는 근접 연결이 확립되었음을 나타내기 위하여 사용자에게 사용자 피드백이 제공되도록 할 수 있다. 사용자 피드백은 사용자 인터페이스 디스플레이 즉 "토스트(toast)", 오디오 클립 또는 사운드의 재생, 장치 진동, 또는 몇몇 그 외 다른 사용자 피드백을 포함할 수 있다. 피드백은 사용자에게 근접 연결이 확립되었음에 대해 통지한다. 다른 피드백 메커니즘들도 실시예들의 범위로부터 벗어나지 않으면서 사용될 수 있다.
블록(310)에서, 근접 서비스는 근접 연결을 통해 다른 장치로부터 예비된 근접 컨텍스트 정보를 수신한다. 수신된 예비된 근접 컨텍스트 정보에는 다른 장치의 애플리케이션이 근접 장치 상에서 피어 애플리케이션을 탐색할 것을 등록하였다는 것, 다른 장치의 애플리케이션이 하나 이상의 네임스페이스로 메시지를 발행하였고 및/또는 동일 또는 상이한 네임스페이스에 가입하였다는 것, 다른 장치의 공유 서비스가 근접 장치로 전송될 예정인 대기된 컨텐트를 가지고 있다는 것, 및 다른 장치가 장치와 함께 페어링을 형성하도록 요청한다는 것을 나타내는 표시들이 포함될 수 있다.
블록(312)에서, 근접 연결의 조인트 근접 컨텍스트가 결정된다. 조인트 근접 컨텍스트는 전송되고 수신된 예비된 근접 컨텍스트 정보를 포함할 뿐만 아니라, 요청된 피어 애플리케이션이 장치 상에서 실행되고 있는지 여부 및/또는 설치되어 있는지 여부, 두 장치의 통신 능력, 애플리케이션이 사용자 인터페이스의 전경에서 실행되고 있는지 여부와 같은 애플리케이션 상태, 및 기타 등등과 같은 장치 상태 정보도 포함한다.
블록(314)에서, 결정된 근접 연결의 조인트 근접 컨텍스트에 기초하여, 근접 서비스는 예비된 근접 기능들을 용이하게 하는 하나 이상의 근접 액션들을 개시한다. 그러한 예비된 근접 액션에는 다른 장치와 통신 프로바이더를 통해 대역외 연결을 확립하는 것, 다양한 액션에 대해 동의하는 사용자 인터페이스가 디스플레이되도록 하는 것, 애플리케이션을 런칭하는 것, 애플리케이션을 사용자 인터페이스의 전경으로 가져오는 것, 공유를 위해 대기 중인 컨텐트를 전송하는 것, 다른 장치로부터 컨텐트를 수신하는 것, 장치의 애플리케이션과 다른 장치 상에서 실행 중인 다른 애플리케이션 사이에 피어 연결을 확립하는 것, 피어 애플리케이션을 획득하기 위한 애플리케이션 획득 서비스를 런칭하는 것 및 기타 등등이 포함될 수 있다. 이들 및 그 외 다른 예비된 근접 액션들은 이 '발명을 실시하기 위한 구체적인 내용'에서 더 상세하게 기술된다.
예비된
피어 연결을
인에이블하는
예시적인 동작
도 4는 근접 연결을 사용하여 예비된 피어 연결을 개시하고 확립하는 예시적인 프로세스(400)를 보여주는 흐름도이다. 블록(402)에서, 근접-인에이블형 애플리케이션은 근접 장치 상에서 피어 애플리케이션을 탐색하도록 등록한다. 블록(404)에서, 일단 다른 장치와의 근접 연결이 확립되면, 블록(406)에서, 근접 서비스는 다른 장치로 예비된 컨텍스트 정보를 전송한다. 예비된 컨텍스트 정보는 근접-인에이블형 애플리케이션이 피어 애플리케이션과의 피어 연결을 확립하기 위해 피어를 찾도록 등록하였다는 것을 나타내는 표시를 포함한다.
블록(408)에서 근접 연결의 조인트 근접 컨텍스트가 결정된다. 도 4에 기술된 실시예에서, 조인트 근접 컨텍스트는 근접-인에이블형 애플리케이션이 피어를 찾도록 등록하였다는 것을 나타내는 표시를 포함한다. 실시예들에서, 블록(410)에서, 근접 서비스는 대역외 통신 채널의 보안을 위해 사용가능한 근접 연결의 공유된 비밀키를, 근접 프로바이더를 통해, 교환할 것이다.
블록(412)에서, 장치의 근접 서비스는 다른 장치에 대한 하나 이상의 대역외 통신 채널들의 확립을 개시한다. 예를 들어, 다른 장치의 사용자가 피어 연결에 대한 동의를 거절한 경우 또는 다른 장치가 설치된 피어 애플리케이션을 가지지 않는 경우와 같이, 다른 장치는 대역외 통신 채널의 설정을 동의하지 않을 수 있다. 이러한 경우에, 대역외 통신 채널은 확립되지 않을 것이다.
블록(414)에서, 장치의 근접 서비스는 대역외 채널 타입을 네고시에이트한다. 블록(412)에서 하나 이상의 대역외 통신 채널이 성공적으로 설정될 수 있다. 만약 그렇다면, 피어 연결을 용이하게 하는 데 사용하기 위하여 대역외 통신 채널들 중에서 하나를 선택하기 위해 하나 이상의 장치 상에서 선택 알고리즘이 실행된다. 실시예들에서, 선택 알고리즘은 가장 빠른 속도 및 가장 신속한 연결 시간에 기초하여 하나의 대역외 연결 타입을 선택한다. 비-제한적인 일 예에서, Bluetooth®, Wi-Fi, Wi-Fi Direct는 두 장치 모두에 의해 지원된다. 개시 장치는 3개 모두를 이용하여 통신 연결의 확립을 개시한다. 일 예에서, Bluetooth®는 매우 신속하게 연결할 것이며, 또한 그것은 적합한 대역을 제공하기 때문에, 개시 장치는 그것을 선택하고 개시동작 중에 다른 연결들을 버린다.
대안적인 실시예들에서, 근접 서비스는 그것의 확립 이전에 대역외 통신 타입을 네고시에이트할 수 있다. 이러한 실시예들에서, 근접 서비스는 장치의 통신 성능에 관한 데이터를 전송하며, 근접 서비스는 다른 장치의 통신 성능에 관한 데이터를 수신한다. 근접 서비스는 일치하는 통신 성능을 검색하고, 두 장치 모두의 성능이 일치하는 통신 타입을 선택한다. 만약 하나 보다 더 많은 통신 타입이 일치한다면, 근접 서비스는 미리결정된 프로세스를 사용하여 성능들 중 하나를 선택한다. 다른 장치는 선택된 통신 타입들 사이에 불일치가 존재하지 않는다는 것을 보장하기 위하여 동일 프로세스를 사용할 수 있으며; 대안적으로, 한 장치가 통신 타입을 선택하고 다른 장치에게 어떤 통신 타입이 선택되었는지를 통지한다.
블록(416)에서, 근접 서비스는, 근접-인에이블형 애플리케이션으로, 통신 소켓, 또는 통신 인터페이스를 통한 정보의 교환을 용이하게 하는 몇몇 그 외 다른 통신 정보를 전달한다. 통신 소켓(또는 그 외 다른 통신 정보)는 근접-인에이블형 애플리케이션이 대역외 채널을 통해 피어 애플리케이션과 전송 및 수신할 수 있게 허용한다.
도 5는 근접 장치로부터 피어 연결 초대가 수신되면 예비된 피어 연결을 개시하는 예시적인 프로세스(500)를 보여주는 흐름도이다. 블록(502)에서, 한 장치의 근접 서비스는 근접 장치와의 근접 연결이 확립되는 것을 나타내는 표시를 수신한다. 이 '발명을 실시하기 위한 구체적인 내용'의 어딘가에서 기술된 바와 같이, 블록(504)에서, 예비된 컨텍스트 정보가 장치들 사이에서 교환되고, 근접 연결의 조인트 컨텍스트가 확립된다. 도 5에 도시된 실시예에서, 조인트 컨텍스트는 다른 장치의 애플리케이션이 근접 장치의 피어 애플리케이션과 피어 연결을 형성하기 위해 등록하였다는 것을 나타내는 표시를 포함한다.
블록(506)에서, 근접 서비스는 장치 상에 피어 연결과 대응하는 피어 애플리케이션이 설치되어 있는지 여부를 결정한다. 블록(508)에서, 피어 애플리케이션이 설치되어 있지 않다고 결정되면, 근접 서비스는 애플리케이션의 획득에 동의하는 선택가능한 옵션을 제공하는 애플리케이션 획득 사용자 인터페이스 요소의 디스플레이를 하도록 한다. 사용자에게 동의 옵션을 제공하는 것은 애플리케이션 획득 프로세스를 간소화(streamlining)함으로서 사용자 경험을 향상시키며 또한 사용자 장치로 권한없는 애플리케이션이 다운로드되거나 설치되는 것이 방지되도록 돕는다.
블록(510)에서, 애플리케이션을 획득하는데 대한 동의를 수신하면, 블록(512)에서, 장치는 애플리케이션 획득 서비스를 런칭한다. 애플리케이션 획득 서비스는 사용자가 피어 애플리케이션을 구매하거나 또는 다른 방식으로 획득하도록 하는 온라인 또는 오프라인 애플리케이션 스토어에 대한 인터페이스를 제공할 수 있다. 일단 피어 애플리케이션이 장치 상에 설치되면, 프로세스는 새로운 근접 연결의 확립과 함께 다시 시작될 수 있다. 대안적인 일 실시예에서, 근접 서비스는 아래에서 기술되는 바와 같이, 새로 획득된 애플리케이션과의 피어 연결을 개시하기 위한 단계들을 취한다.
블록(514)에서, 피어 애플리케이션이 설치되었다고 결정되면, 근접 서비스는 대역외 통신 채널의 보안을 위해 이용가능한 근접 연결의 공유된 비밀키를 근접 프로바이더를 통하여 교환한다.
블록(516)에서, 근접 서비스는 다른 장치와 하나 이상의 대역외 통신 채널들의 확립을 개시한다. 통신 프로바이더 - Bluetooth®, Wi-Fi®, Wi-Fi Direct™, 또는 그 외 다른 통신 프로바이더 타입 - 가 피어 연결을 위해 통신 채널을 확립하기 위하여 사용될 수 있다.
블록(518)에서, 근접 서비스는 대역외 통신 채널 타입을 네고시에이트한다. 대역외 통신 채널 타입은 Bluetooth®, Wi-Fi®, Wi-Fi Direct™, 또는 그 외 다른 통신 프로바이더 타입일 수 있다. 근접 서비스는 두 장치 모두 상에서 이용가능한 하나의 대역외 통신 채널을 선택하며, 또한 두 장치 모두 상에서 하나보다 더 많은 대역외 통신 채널 타입이 이용가능한 경우, 미리 결정된 방법에 따라 하나를 선택한다.
예를 들어, 블록(516)에서 하나보다 더 많은 대역외 통신 채널이 확립될 수 있다. 이 경우, 하나 또는 두 장치가 그들 중 하나를 사용하기 위해 선택하는 하나의 선택 알고리즘을 채용한다. 대안적인 실시예에서, 대역외 통신 채널 타입은 임의의 대역외 통신 채널의 확립 이전에 네고시에이트된다. 실시예들에서, 선택 알고리즘은 가장 빠른 속도 및 가장 신속한 연결 시간에 기초하여 대역외 연결 타입을 선택한다. Bluetooth™, Wi-Fi, Wi-Fi Direct는 두 장치 모두에 의해 지원되는 비-제한적인 일 예에서, 장치들 중 하나는 3개 모두를 이용하여 통신 연결의 확립을 개시한다. 일 예에서, Bluetooth™는 매우 신속하게 연결할 것이며, 또한 그것은 적합한 대역을 제공하기 때문에, 개시 장치는 그것을 선택하고 개시동작 중에 다른 연결들을 버린다. 그 외 다른 경우에, 몇몇 그 외 다른 연결 타입이 선택될 수 있다.
블록(520)에서, 근접 서비스는 피어 애플리케이션이 장치 상에서 실행되고 있는지 여부를 결정한다. 애플리케이션이 실행되고 있지 않다고 결정되면, 블록(522)에서, 근접 서비스는 애플리케이션의 실행 및 피어 연결의 확립에 대해 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소가 디스플레이되도록 한다.
피어 애플리케이션이 실행되고 있다고 결정되면, 블록(524)에서, 근접 서비스는 애플리케이션이 (일 예에서, 사용자 인터페이스의 전경에서 실행되고 있는 애플리케이션으로서 결정되는) 근접 포커스를 가지고 있는지 여부를 결정한다. 만약 애플리케이션이 근접 포커스를 가지고 있지 않다면, 블록(526)에서, 근접 서비스는 근접 포커스를 가진 애플리케이션의 제공 및 피어 연결에 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소가 디스플레이되도록 한다. 대안적인 실시예들은 근접 통신을 취급하기 위해 특정 애플리케이션을 주목할 필요가 있음을 사용자에게 나타내기 위해 서로 다른 양태들을 사용하도록 구성된다. 그리고 대안적인 실시예들은 어느 애플리케이션이 근접 포커스를 가지고 있는지를 결정하기 위하여 사용자 인터페이스 포커스가 아닌 다른 것을 사용할 수 있다.
피어 애플리케이션이 근접 포커스를 가지고 있다고 결정되면, 블록(528)에서, 근접 서비스는 피어 애플리케이션이 이전에 근접 장치 상에서 피어 애플리케이션을 탐색하도록 동고하였는지 여부를 결정한다. 도 5에 도시된 실시예에서, 다른 장치 상의 애플리케이션은 피어를 탐색할 것을 등록하였다. 블록(528)은 본질적으로 두 장치 모두의 피어 애플리케이션들이 근접 장치 상의 피어 애플리케이션을 탐색할 것을 등록하였는지 여부를 결정한다.
전경에서 실행되고 있는 피어 애플리케이션이 피어 애플리케이션의 탐색을 등록하지 않았다고 결정되면, 블록(530)에서, 근접 서비스는 피어 요청에 대해 동의하는 선택가능한 옵션을 사용자에게 제공하는 사용자 인터페이스 요소의 디스플레이를 하게 한다. 사용자에게 동의 옵션을 제공하는 것은 사용자가 사용자 장치에 대한 제어를 유지할 수 있게 허용하고, 이에 따라 보안성 및 사용자의 프라이버시를 향상시킨다.
블록(532)에서, 피어 연결의 형성에 대한 사용자 동의를 나타내는 입력을 사용자 입력 장치로부터 수신하면, (또는 애플리케이션이 피어를 탐색할 것을 이전에 등록한 경우), 블록(534)에서, 근접 서비스는 통신 소켓, 또는 통신 매체를 통해 정보의 교환을 용이하게 하는 몇몇 그 외 다른 통신 정보를, 피어 애플리케이션으로 하여금 다른 장치의 피어와 통신하도록 인에이블하기 위해 피어 애플리케이션으로 리턴한다.
프로세스(500)는 사용자로 하여금 자신의 장치를 다른 장치와 근접 상태로 진입시키고 근접 연결을 확립하며, 다른 장치와의 피어 연결의 형성에 대해 동의하고, 또한 다른 장치와 직접적으로 멀티-유저 협력작업에 돌입할 수 있게 한다. 플랫폼-레벨 근접 서비스는 애플리케이션으로 하여금, 근접 프로바이더에 대해 직접 프로그램할 필요없이, 그리고 근접 연결이 확립되었을 때 애플리케이션이 실행 중이어야 할 필요없이, 사용자에게 이러한 경험을 제공할 수 있게 한다.
예비된
메시지 전송을
인에이블하는
예시적인 동작
도 6은 근접 연결을 통해 예비된 메시지 전송을 개시하는 예시적인 프로세스(600)를 보여주는 흐름도이다. 블록(602)에서, 근접-인에이블형 애플리케이션은 하나 이상의 네임스페이스에 메시지를 발행할 수 있다. 네임스페이스는 표준-기반 네임스페이스일 수 있거나, 또는 네임스페이스는 소유권이 있는 및/또는 임의의 네임스페이스일 수 있다. 근접-인에이블형 애플리케이션은 근접 메시징 API를 호출함으로써 발행될 예정인 메시지를 등록할 수 있다.
블록(604)에서, 동일한 또는 상이한 근접-인에이블형 애플리케이션은 또한 하나 이상의 네임스페이스에 가입할 수 있다. 근접-인에이블형 애플리케이션은 근접-인에이블형 애플리케이션이 발행하는 네임스페이스와 동일하거나 또는 상이한 네임스페이스에 가입할 수 있다. 근접-인에이블형 애플리케이션은 근접 메시징 API를 호출함으로써 네임스페이스 가입을 등록할 수 있다.
블록(606)에서, 근접 연결이 다른 장치와 확립되었음이 결정되면, 블록(608)에서, 근접 서비스는 다른 장치와 네임스페이스 정보를 교환한다. 근접 서비스는 근접-인에이블형 애플리케이션이 가입 및/또는 발행하는 네임스페이스를 전송하고, 다른 장치가 가입 및/또는 발행하는 네임스페이스를 수신한다. 근접 서비스는 근접-인에이블형 애플리케이션이 메시지를 발행한 네임스페이스를 전송하고, 다른 장치가 발행한 네임스페이스를 수신한다.
블록(610)에서, 조인트 근접 컨텍스트는 발행할 메시지 및/또는 다른 장치로부터 수신할 메시지가 존재함을 나타내는 표시를 포함하도록 결정된다. 근접 서비스는, 예컨대, 장치에 의해 발행된 네임스페이스와 다른 장치에 의해 가입된 네임스페이스 사이에 일치가 있음을, 또는 장치에 의해 가입된 네임스페이스와 다른 장치에 의해 발행된 네임스페이스 사이에 일치가 존재함을 결정한다.
블록(612)에서, 근접 서비스는 근접 연결을 통해 일치하는 가입된 네임스페이스 상에서 메시지를 수신한다. 일단 수신하면, 블록(614)에서, 근접 서비스는 수신된 메시지를 네임스페이스에 가입을 등록하였던 근접-인에이블형 애플리케이션으로 제공한다. 근접 서비스는 근접-인에이블형 애플리케이션이 이미 실행되고 있지 않은 경우에 근접-인에이블형 애플리케이션이 런칭되도록 할 수 있다. 블록(616)에서, 근접 서비스는 근접 연결을 통해 다른 장치에게 일치하는 네임스페이스 상의 발행된 메시지를 전송한다. 대안적인 실시예에서, 메시지는 먼저 일치하는 네임스페이스를 결정하지 않고 교환된다.
비-제한적인 일 예에서, 근접-인에이블형 애플리케이션은 명함 네임스페이서에 가입하도록 구성된 명함 애플리케이션일 수 있다. 명함 애플리케이션은 또한 동일 네임스페이스 상에 Vcard를 발행하도록 구성될 수 있다. 예를 들어, 두 장치를 함께 탭핑함으로써 다른 장치와 근접 연결이 확립된 때, 다른 장치에 의해 발행된 Vcard는 명함 애플리케이션에 의해 수신되며 명함 애플리케이션에 의해 발행된 Vcard는 다른 장치로 전송된다. 따라서, 사용자들은 단지 각자의 장치를 함께 접촉시킴으로써 접촉 정보를 교환할 수 있다. 더 나아가, 플랫폼-기반 근접 서비스는 애플리케이션 개발자로 하여금 이러한 사용자 경험을 장치의 고유한 근접 기술로 직접 프로그래밍할 필요없이 제공할 수 있게 한다.
실시예들에서, 근접 서비스는 특정 네임스페이스를 위한 수신자로서 구성될 수 있다. 그러한 일 실시예에서 근접 서비스는 근접 서비스를 통해 교환된 근접 네임스페이스 메시지 내에 포함된 데이터를 지원하는 애플리케이션을 식별하기 위해 근접 서비스의 운영 환경 내의 이용가능한 다른 서비스들을 레버리징할 수 있다. 일 실시예에서, 근접 서비스는 데이터가 컴퓨터-판독가능 스토리지 매체로 저장되도록 하고 이후 사용자에게 데이털ㄹ 프레젠팅할 목적으로, 또는 몇몇 다른 목적으로, 저장된 데이터와 연관된 애플리케이션이 활성화되도록 하기 위하여 기존 플랫폼 서비스를 이용할 수 있다. 근접 서비스는 사용자가 이 애플리케이션의 활성화에 대해 동의할 수 있게 직접적으로 또는 간접적으로 사용자 인터페이스가 프레젠트되도록 할 수 있다. 이것은 전체 경험의 보안성을 유지할 수 있다. 비-제한적인 일 예에서, 근접 서비스는 Vcard 데이터를 포함하는 근접 네임스페이스를 인식하도록 구성된다. 근접 서비스는 Vcard 데이터가 컴퓨터-판독가능 매체로 저장되도록 하고 이후 저장된 Vcard 데이터를 프레젠트하거나 다른 방식으로 프로세싱하기 위해 런칭될 애플리케이션의 결정을 위해 기존 시스템 자원을 이용할 수 있다.
비-제한적인 또 다른 일 예에서, 근접-인에이블형 애플리케이션은 기초가되는 근접 기술을 알고 있으며 이 근접 기술과 직접 통신하기 위해 추상화된 API를 사용할 수 있다. 비-제한적인 일 예에서, 근접-인에이블형 애플리케이션은 NDEF(NFC Data Exchange Format) 페이로드를 구축하고 이들을 NFC 근접 프로바이더에게 직접 발행한다.
예비된
장치
페어링을
인에이블하는
예시적인 동작
도 7은 예비된 장치 페어링 기능을 개시하는 예시적인 프로세스(700)를 보여주는 흐름도이다. 블록(702)에서, 근접 서비스는 근접 연결이 다른 장치와 확립되었음을 나타내는 표시를 수신한다. 블록(704)에서, 근접 서비스는 근접 연결의 조인트 근접 컨텍스트가 다른 장치가 페어링 연결의 확립을 요청하는 것을 나타내는 표시를 포함한다고 결정한다. 다른 장치는 마우스, 키보드, 스피커, 비디오 프로젝터, 또는 그 외 다른 수동형 장치와 같은, 수동형 근접 장치일 수 있다. 대안적으로, 다른 장치는 카메라, 스마트폰, 개인용 음악 플레이어, 또는 그 외 다른 장치와 같은 능동형 근접 장치일 수 있다. 디바이스-애플리케이션 페어링을 채용하는 실시예들에서, 블록(706)에서, 근접 서비스는 페어링 장치와 통신하기 위한 하나 이상의 지속형 대역외 통신 채널들의 확립을 개시한다. Bluetooth®, Wi-Fi®, Wi-Fi Direct™, 또는 그 외 다른 통신 프로바이더 타입과 같은, 선택된 통신 프로바이더는 페어링 장치와의 연결을 확립한다.
블록(708)에서, 근접 서비스는 두 장치의 페어링을 위해 사용될 예정인 하나의 대역외 통신 채널 타입을 네고시에이트한다. 대역회 통신 채널 타입은 Bluetooth®, Wi-Fi®, Wi-Fi Direct™, 또는 그 외 다른 통신 프로바이더 타입일 수 있다. 근접 서비스는 두 장치 양자 모두 상에서 이용가능한 하나의 대역외 통신 채널 타입을 선택하며, 하나 보다 더 많은 대역외 통신 채널 타입이 두 장치 모두에서 이용가능한 경우에는, 미리 결정된 방법에 따라 하나를 선택한다.
예를 들어, 블록(706)에서 하나 보다 더 많은 대역외 통신 채널이 확립될 수 있다. 두 장치 중 하나 또는 둘 모두는 사용할 하나를 그것들로부터 선택하는 하나의 선택 알고리즘을 채용한다. 대안적인 실시예들에서, 대역외 통신 채널 타입은 임의의 대역외 통신 채널의 확립 이전에 네고시에이트된다. 실시예들에서, 선택 알고리즘은 가장 빠른 속도 및 가장 신속한 연결 시간에 기초하여 대역외 연결 타입을 선택한다. 두 장치 모두가 Bluetooth™, Wi-Fi, Wi-Fi Direct를 지원하는 비-제한적인 일 예에서, 장치들 중 하나는 3개 모두를 이용하여 통신 연결의 확립을 개시한다. 일 예에서, Bluetooth™가 매우 신속하게 연결할 수 있고 또한 그것은 적절한 대역폭을 제공하기 때문에, 개시 장치는 그것을 선택하고 다른 연결들은 개시 과정 도중에서 버린다. 다른 예에서, 몇몇 그 외 다른 연결 타입이 선택될 수 있다.
(장치-애플리케이션 페어링이 아니라) 장치-운영 시스템 페어링을 이용하는 것과 같은 대안적인 실시예에서, 블록(706 및 708)에 의해 도시된 프로세스들은 생략될 수 있다. 이런 경우에, 근접 서비스에 의해 그러한 채널이 개시되는 것이 아니라, 운영 시스템의 페어링 서비스가 나중에서 대역외 통신 채널을 개시 및/또는 네고시에이트할 수 있다. 이러한 페어링 서비스 기능은 이 '발명을 실시하기 위한 구체적인 내용'의 범위를 벗어난다.
블록(710)에서, 근접 서비스는 페어링 요청에 대해 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소가 디스플레이되도록 한다. 사용자 인터페이스 요소는 장치 타입, 제조자, 모델 번호, 및 기타 등등과 같은 다른 장치에 관한 정보를 포함할 수 있다. 이러한 정보는 근접 연결을 통해 수신된 페어링 요청 안에 포함되거나 페어링 요청과 함께 수신될 수 있다.
블록(712)에서, 페어링 요청에 대한 사용자 동의를 나타내는 입력이 사용자 입력 장치로부터 수신되면, 블록(714)에서, 근접 서비스는, 페어링 장치의 원격 제어 및 컨텐트 전송과 같은 페어링 경험을 제공하기 위해 그리고 페어링 프로세스를 완료하기 위하여, 장치의 페어링 서비스 또는 장치의 애플리케이션 중 어느 하나로 대역외 페어링 정보를 전달한다. 장치-애플리케이션 페어링을 이용하는 실시예에서, 통신 소켓, 또는 통신 매체를 통한 정보 교환을 용이하게 하는 몇몇 그 외 다른 통신 정보는 페어링 장치와 대역외 통신 연결을 확립하기 위하여 페어링 애플리케이션으로 전달된다.
실시예들은 사용자로 하여금 한 장치를 단순히 그 장치를 퍼스널 컴퓨터에 탭핑함으로써 자신의 퍼스널 컴퓨터와 페어링시킬 수 있게 한다. 예를 들어, 사용자는 마우스를 퍼스널 컴퓨터에 탭핑하여 자동으로 앞서 기술된 페어링 액션을 개시할 수 있다. 일단 마우스와의 페어링에 대해 사용자가 동의하면, 마우스와 퍼스널 컴퓨터는 퍼스널 컴퓨터의 사용자 인터페이스 내에서 마우스가 포인터를 제어하도록 허용하고 통신하기 위해, 예를 들어 Bluetooth® 연결을 이용할 수 있다.
예비된
컨텐트
공유를
인에이블하는
예시적인 동작
도 8은 근접 장치와 예비된 컨텐트의 공유를 인에이블하기 위해 대역외 연결을 개시하고 확립하는 예시적인 프로세스(800)를 보여주는 흐름도이다. 블록(802)에서, 공유-인에이블형 애플리케이션은 공유 서비스를 호출한다. 공유 서비스는 애플리케이션들이 서로 컨텐트를 공유하도록 허용하는 운영 시스템 요소이다. 공유 서비스는 사용자가 데이터를 공유할 그 외 다른 애플리케이션들을 선택할 수 있도록 하는 사용자 인터페이스 요소를 프레젠트할 수 있다. 공유 서비스는 또한 사용자에게 근접 장치와 데이터를 공유하는 옵션을 프레젠트할 수 있다. 대안적인 실시예들은 사용자에게 동의 옵션을 프레젠트하지 않을 수 있다.
블록(804)에서, 공유 서비스는 근접 장치와 컨텐트를 공유하는 요청을 수신한다. 블록(806)에서, 공유 서비스는 근접 장치로 컨텐트를 전송하는 요청을 근접 서비스에 등록한다.
블록(808)에서, 근접 서비스는 근접 연결이 확립되었음을 나타내는 표시를 근접 프로바이더로부터 수신한다. 블록(810)에서, 근접 서비스는 대기된 컨텐트가 근접 장치와 공유하도록 등록되었다는 것을 나타내는 표시를 포함하여 다른 장치와 예비된 근접 컨텍스트 정보를 교환할 것이다.
블록(812)에서, 근접 서비스는 조인트 근접 컨텍스트를 결정한다. 도 8에 도시된 실시예에서, 조인트 근접 컨텍스트는 공유 서비스가 근접 장치로 전송될 대기된 컨텐트를 가지고 있음을 나타내는 표시를 포함한다. 블록(814)에서, 근접 서비스는 대역외 통신 채널의 보안을 위해 사용될 수 있는 근접 연결의 공유된 비밀키를 근접 프로바이더를 통하여 교환한다.
블록(816)에서, 근접 서비스는 근접 장치와의 통신을 위한 대역외 통신 채널의 확립을 개시한다. Bluetooth®, Wi-Fi®, Wi-Fi Direct™, 또는 그 외 다른 통신 프로바이더 타입과 같은, 선택된 통신 프로바이더는 공유 장치와의 연결을 확립한다.
블록(818)에서, 근접 서비스는 대역외 통신 채널 타입을 네고시에이트한다. 이 '발명을 실시하기 위한 구체적인 내용'의 어딘가에서 기술된 바와 같이, 네고시에이션은 두 장치의 통신 성능에 관한 정보의 교환 및 대역외 통신 채널로 이용될 통신 타입의 선택을 포함한다. 통신 타입의 선택을 위한 프로세스는 미리 결정되며 두 장치 모두에서 동일하며, 이에 따라 두 장치 모두가 동일한 통신 타입을 선택하는 것을 보장한다. 실시예에서, 다수의 대역외 채널들이 블록(816)에서 성공적으로 확립되었을 수 있으며, 장치들 중 하나 또는 둘 모두는 그것들 중 어느 것을 사용할 것인가에 대해 선택 알고리즘을 이용하여 결정한다. 실시예에서, 선태 알고리즘은 가장 빠른 속도 및 가장 신속한 연결 시간에 기초하여 하나의 대역외 연결 타입을 선택한다. 비-제한적인 일 예에서, 두 장치 모두가 Bluetooth™, Wi-Fi, Wi-Fi Direct를 지원한다. 개시 장치는 3개 모두를 이용하여 통신 연결의 확립을 개시한다. 일 예에서, Bluetooth™가 매우 신속하게 연결할 수 있고 또한 그것은 적절한 대역폭을 제공하기 때문에, 개시 장치는 그것을 선택하고 다른 연결들은 개시 과정 도중에 버린다.
블록(820)에서, 근접 서비스는 컨텐트의 전송에 대해 동의하는 선택가능한 옵션을 가진 사용자 인터페이스 요소를 디스플레이함으로써 전송을 용이하게 할 수 이다. (블록(822)에서와 같이) 컨텐트의 공유에 대한 사용자 동의를 나타내는 데이터가 수신되면, 블록(824)에서, 근접 서비스는 대역외 통신 채널을 통해 근접 서비스로 컨텐트를 전송하는데 이용가능한 통신 소켓, 또는 통신 매체를 통한 정보 교환을 용이하게 하는 몇몇 다른 통신 정보를 공유 서비스에 제공한다. 그런 다음 블록(826)에서 공유 서비스는 대역외 통신 채널을 통해 공유된 컨텐트를 근접 장치로 전송한다.
블록(828)에서, 공유 서비스는 컨텐트 전송의 진행 상태를 나타내기 위한 사용자 인터페이스 요소가 디스플레이되도록 한다. 따라서, 근접 장치와 컨텐트를 공유하기 위해, 사용자는 선택된 컨텐트를 대기시키기 위하여 애플리케이션을 동작시키고, 사용자 인터페이스 요소를 통해 공유 서비스를 호출하며, 근접 장치로 대기된 컨텐트를 전송하는 것을 선택한다. 사용자는 두 장치를 탭핑하거나, 두 장치를 서로 흔들거나, 두 장치를 서로에 대해 접촉시켜 배치하거나, 또는 근접 연결을 개시하기 위한 몇몇 그 외 다른 제스처를 수행한다. 그런 다음, 전송이 개시되고 사용자는 진행 사용자 인터페이스를 통해 전송이 완료될 때를 알 수 있다. 근접 서비스는 공유 서비스와 함께 애플리케이션 개발자로 하여금 근접 프로바이더나 대역외 통신 프로바이더에 직접 프로그래밍하지 않고서 이들 사용자 경험을 제공할 수 있게 한다.
도 9는 근접 장치로부터 컨텐트 공유 초대를 수신하면 대역외 연결을 개시하고 확립하는 예시적인 프로세스(900)를 보여주는 흐름도이다. 블록(902)에서, 근접 서비스는 근접 연결이 확립되면 근접 프로바이더로부터 표시를 수신한다. 근접 연결은 사용자가 두 장치를 함께 탭핑함으로써, 그들을 함께 흔듬으로써, 서로에 접촉하여 배치함으로써, 하나의 공통 물리적인 또는 가상적인 위치로 진입하므로써, 또는 몇몇 그 외 다른 제스처를 수행함으로써 개시될 수 있다.
블록(904)에서, 근접 서비스는 근접 연결을 통해 다른 장치와 예비된 컨텍스트 정보를 교환한다. 도 9에 도시된 실시예에서, 근접 서비스가 실행되고 있는 장치는 전송할 예비된 컨텍스트 정보를 가지지 않는다.
블록(906)에서, 근접 서비스는 다른 장치가 장치와 공유될 예정인 대기된 컨텐트를 가지고 있음을 나타나는 표시를 근접 연결의 조인트 근접 컨텍스트가 포함한다고 결정한다. 다른 장치는 도 8을 참조하여 위에서 기술된 바와 동일하거나 유사한 방식으로 이 공유를 위한 컨텐트를 선택했을 수 있다.
블록(908)에서, 근접 서비스는 대역외 통신 채널의 보안을 위해 이용가능한 근접 연결의 공유된 비밀키를 근접 프로바이더를 통해 교환한다.
블록(910)에서, 근접 서비스는 근접 장치와의 통신을 위하여 하나 이상의 대역외 통신 채널의 확립을 개시한다. Bluetooth®, Wi-Fi®, Wi-Fi Direct™, 또는 그 외 다른 통신 프로바이더 타입과 같은, 선택된 통신 프로바이더는 페어링 장치와의 연결을 확립한다.
블록(912)에서, 근접 서비스는 대역외 통신 채널 타입을 네고시에이트한다. 대역외 통신 채널 타입은 Bluetooth®, Wi-Fi®, Wi-Fi Direct™, 또는 그 외 다른 통신 프로바이더 타입일 수 있다. 근접 서비스는 두 장치 모두에서 이용가능한 하나의 대역외 통신 채널 타입을 선택하며, 하나 보다 더 많은 대역외 통신 채널 타입이 두 장치 모두에서 이용가능한 경우, 미리 결정된 방법에 따라 하나를 선택한다. 예를 들어, 블록(910)에서 하나 보다 더 많은 대역외 통신 채널이 확립될 수 있다. 이런 경우, 장치들 중 하나 또는 둘 모두는 그것들 중에서 사용할 하나를 선택하기 위해 하나의 선택 알고리즘을 채용한다.
실시예에서, 선태 알고리즘은 가장 빠른 속도 및 가장 신속한 연결 시간에 기초하여 하나의 대역외 연결 타입을 선택한다. 비-제한적인 일 예에서, 두 장치 모두가 Bluetooth™, Wi-Fi, Wi-Fi Direct를 지원한다. 개시 장치는 3개 모두를 이용하여 통신 연결의 확립을 개시한다. 일 예에서, Bluetooth™가 매우 신속하게 연결할 수 있고 또한 그것은 적절한 대역폭을 제공하기 때문에, 개시 장치는 그것을 선택하고 다른 연결들은 개시 과정 도중에 버린다. 대안적인 실시예에서, 대역외 통신 채널 타입은 임의의 대역외 통신 채널의 확립 이전에 네고시에이트된다.
블록(914)에서, 근접 서비스는 다른 장치로부터 공유된 컨텐트의 수신에 대해 동의하는 선택가능한 옵션을 가진 사용자 인터페이스 요소의 디스플레이를 함으로써 공유를 용이하게 한다. 공유된 컨텐트의 수신에 동의하는 선택가능한 옵션을 사용자에게 제공하는 것은 장치 프라이버시 및 보안 뿐만 아니라 사용자 경험을 향상시킨다. 사용자 인터페이스는 또한 파일명, 파일 타입, 파일 크기, 및 기타 등등과 같이, 공유된 컨텐트에 관한 정보를 포함할 수 있다.
블록(916)에서, 사용자 동의를 나타내는 사용자 입력을 수신하면, 블록(918)에서 근접 서비스는 장치의 공유 서비스가 런칭되도록 한다. 공유 서비스는 공유된 컨텐트의 수신을 취급한다.
블록(920)에서, 근접 서비스는, 대역외 통신 채널을 통해 근접 장치로 컨텐트를 전송하는데 이용가능한 통신 소켓, 또는 통신 매체를 통한 정보 교환을 용이하게 하는 몇몇 그 외 다른 통신 정보를 공유 서비스에게 제공한다. 블록(922)에서, 공유 서비스는 대역외 통신 채널을 통해 근접 장치로부터 공유된 컨텐트를 수신한다.
블록(924)에서, 공유 서비스는 컨텐트 전송의 진행을 나타내는 사용자 인터페이스 요소가 디스플레이되도록 한다. 이것은 컨텐트가 전송되고 있다는 것을 사용자가 볼 수 있게 하고 또한 컨텐트 전송이 완료된 때를 사용자에게 경고할 수 있게 한다.
블록(926)에서, 공유 서비스는 수신된 컨텐트를 보는(view) 애플리케이션을 런칭하는 선택가능한 옵션을 가진 사용자 인터페이스 요소의 디스플레이를 한다. 비-제한적인 일 실시예에서, 만약 수신된 컨텐트가 비디오 파일이라면, 사용자 인터페이스 요소는 비디오 파일을 보는 미디어 플레이어 애플리케이션을 런칭하는 선택가능한 옵션을 프레젠트할 수 있다. 블록(928)에서, 애플리케이션을 런칭하는 것에 대한 사용자 동의를 나타내는 입력을 사용자 장치로부터 수신하면, 블록(930)에서, 공유 서비스는 애플리케이션이 런칭되도록 한다.
따라서, 근접 장치로부터 공유된 컨텐트를 수신하기 위하여, 사용자는 장치들을 탭핑하거나, 장치들을 함께 흔들거나, 장치들을 접촉시켜 놓거나, 장치들을 인터넷 채팅방과 같은 가상 공간으로 진입시키거나, 또는 근접 연결을 개시하는 몇몇 그 외 다른 제스처를 수행한다. 사용자는 컨텐트의 수신에 대해 동의하고, 또한 사용자는 전송이 완료된 때를 진행 사용자 인터페이스로부터 알 수 있다. 그런 다음 사용자에게 컨텐트를 보는 애플리케이션을 런칭하는 프롬프트가 제공된다. 근접 서비스는 공유 서비스와 함께 애플리케이션 개발자로 하여금 근접 무선장치 또는 대역외 통신 무선장치에 직접 프로그래밍하지 않고도 이러한 사용자 경험을 제공할 수 있게 한다.
애플리케이션 상태로부터
예비된
컨텍스트를
추론
도 10은 애플리케이션 상태로부터 예비된 컨텍스트를 추론하는 예시적인 프로세스(1000)를 보여주는 흐름도이다. 블록(1002)에서, 근접 서비스는 근접 연결이 확립되었음을 나타내는 표시를 근접 프로바이더로부터 수신한다.
블록(1004)에서, 근접 서비스는 애플리케이션 상태로부터 예비된 근접 기능을 추론한다. 도 10에서 도시된 실시예에서, 애플리케이션은 임의의 근접 기능을 수행하는 것으로 등록되지 않는다. 그 대신에, 애플리케이션은 단순히 특정 상태를 확립하고, 근접 서비스는 그 상태로부터 원하는 근접 기능을 추론한다. 비-제한적인 일 예에서, 컨텐트는 근접 연결이 확립된 때에 애플리케이션 내에서 선택된다. 근접 서비스는, 애플리케이션 상태로부터, 그 원하는 근접 기능이 공유 서비스를 통해 컨텐트를 전송하는 것임을 추론한다.
비-제한적인 다른 일 예에서, 전경 애플리케이션은 근접 연결이 확립된 때에 인에이블되는 (컴퓨터 게임 내의 멀티플레이어 특징과 같은) 멀티-유저 협력작업 특징을 가지는 애플리케이션일 수 있다. 근접 서비스는 원하는 근접 기능이 사용자가 멀티-유저 협력작업 특징을 이용하기 위해 근접 연결을 통해 장치 상에서 피어 애플리케이션을 가진 피어 연결의 런칭을 원한다는 것임을 추론할 수 있다. 블록(1006)에서, 근접 서비스는 조인트 근접 컨텍스트가 추론된 예비된 기능을 포함한다고 결정한다.
블록(1008)에서, 근접 서비스는 추론된 근접 기능을 나타내는 예비된 컨텍스트 정보를 다른 장치와 교환하고, 이에 의해 다른 장치는 조인트 근접 컨텍스트를 결정할 수 있고 또한 그것 자체의 목적을 위해 예비된 기능을 용이하게 하기 위한 단계들을 취할 수 있다. 블록(1010)에서, 근접 서비스는 추론된 예비된 기능을 용이하게 하는 근접 액션에 대해 동의하는 선택가능한 옵션을 포함하는 사용자 인터페이스 요소의 디스플레이를 한다.
블록(1012)에서, 사용자 동의를 나타내는 입력을 수신하면, 블록(1014)에서, 근접 서비스는 추론된 근접 기능을 용이하게 하는 근접 액션을 개시한다. 예를 들어, 추론된 예비된 기능이 선택된 컨텐트의 공유인 경우, 근접 서비스는 공유 서비스를 런칭하고 이 '발명을 실시하기 위한 구체적인 내용' 중 어딘가에서 기술된 바와 같이 컨텐트를 공유하기 위해 대역외 연결을 네고시에이트하고 확립할 수 있다.추정된 기능이 다른 장치와 피어 연결을 확립하는 것인 경우, 근접 서비스는 다른 장치와의 대역외 연결을 네고시에이트하고 확립할 수 있으며, 이 '발명을 실시하기 위한 구체적인 내용' 중 어딘가에서 기술된 바와 같이 다른 장치 상의 피어 애플리케이션과 통신하는데 사용할 수 있는, 소켓 또는 통신 매체를 통한 정보 교환을 용이하게 하는 몇몇 그 외 다른 통신 정보를 전경 애플리케이션에 제공할 수 있다.
도 3 내지 도 10은 다양한 실시예에 따른 예시적인 프로세스들을 보여주는 흐름도들을 도시한다. 이들 프로세스의 동작은 개별적인 블록들로 도시되며 이들 블록들을 참조하여 요약된다. 프로세스들은 논리적인 흐름도로서 도시되고, 이들의 각각의 동작은 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있는 동작들의 세트를 나타낼 수 있다. 소프트웨어의 컨텍스트에서, 동작들은 하나 이상의 프로세서에 의해 실행되면 하나 이상의 프로세서가 인용된 동작들을 수행하도록 하는 하나 이상의 컴퓨터 스토리지 매체 상에 저장된 컴퓨터-실행가능 인스트럭션을 나타낸다. 일반적으로, 컴퓨터-실행가능 인스트럭션은 특정 기능을 수행하거나 특정한 추상적인 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 모듈, 컴포넌트, 데이터 구조, 및 기타 등등을 포함한다. 동작들이 기술된 순서는 제한으로서 간주될 것으로 의도되지 않으며, 기술된 동작들 중 임의의 수는 임의의 순서로 결합될 수 있고, 서브-동작들로 분리될 수 있으며, 및/또는 프로세스를 구현하도록 동시에 수행될 수 있다. 본 개시 내용의 다양한 실시예들에 따른 프로세스들은 논리적인 흐름도에서 도시된 동작들 모두를 포함할 수도 있고 일부만을 포함할 수도 있다.
컴퓨터-판독가능 매체
사용된 컴퓨팅 장치의 구성 및 타입에 종속하여, 도 2의 근접 디바이스(200)의 메모리(204)는 휘발성 메모리(랜덤 액세스 메모리(RAM)과 같은) 및/또는 비-휘발성 메모리(판독-전용 메모리(ROM), 플래시 메모리, 등과 같은)를 포함할 수 있다. 메모리(204)는 근접 장치(200)를 위한 컴퓨터-판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 및 그 외 다른 데이터의 의 비-휘발성 스토리지를 제공할 수 있는 플래시 메모리, 자기 스토리지, 광 스토리지, 및/또는 테이프 스토리지를 포함하지만, 이것들로 제한되는 것이 아니며, 또한 추가적인 탈거가능 스토리지 및/또는 비-탈거가능 스토리지를 포함한다.
메모리(204)는 컴퓨터-판독가능 매체의 예이다. 컴퓨터-판독가능 매체는 적어도 두 타입의 컴퓨터-판독가능 매체, 즉 컴퓨터 스토리지 매체 및 통신 매체를 포함한다.
컴퓨터 스토리지 매체는 컴퓨터-판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 그 외 다른 데이터와 같은 정보의 스토리를 위한 임의의 프로세스나 기술로 구현되는 휘발성 및 비-휘발성, 탈거가능 및 비-탈거가능 매체를 포함한다. 컴퓨터 스토리지 매체는 위상 변화 메모리(PRAM), SRAM(static RAM), DRAM(dynamic RAM), RAM의 그 외 다른 타입, 판독-전용 메모리(ROM), 전기적 소거가능 프로그래머블 판독전용 메모리(EEPROM), 플래시 메모리 또는 그 외 다른 메모리 기술, 컴팩 디스크 판독-전용 메모리(CD-ROM), 디지털 다기능 디스크(DVD) 또는 그 외 다른 광 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 그 외 다른 자기 스토리지 장치, 또는 컴퓨터 장치에 의한 액세스를 위해 정보를 저장하기 위해 사용될 수 있는 임의의 그 외 다른 비-전송 매체를 포함하지만, 이에만 제한되지 않는다.
대조적으로, 통신 매체는 반송파와 같은 변조된 데이터 신호, 또는 그 외 다른 전송 메커니즘으로 컴퓨터-판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 그 외 다른 데이터를 구현할 수 있다. 여기서 정의되는 바와 같이, 컴퓨터 스토리지 매체는 통신 매체를 포함하지 않는다.
결론
비록 개시내용이 구조적 특징 및/또는 방법적 행위에 특정된 언어를 사용하지만, 본 발명은 기술된 특정한 특징이나 행위로 제한되지 않는다. 오히려, 특정한 특징이나 행위는 본 발명을 구현하는 예시적인 형태로서 개시된다.
Claims (10)
- 방법으로서,
근접 프로바이더로부터 다른 장치와 근접 연결이 확립된 것을 나타내는 표시를, 장치의 근접 서비스에 의해, 수신하는 단계,
상기 표시에 응답하여, 상기 근접 연결의 조인트 근접 컨텍스트를 결정하기 위해 예비된 컨텍스트 정보를 상기 근접 연결을 통해 상기 다른 장치의 다른 하나의 근접 서비스와 교환하는 단계 - 상기 예비된 컨텍스트 정보는 상기 장치의 애플리케이션에 의한 상기 근접 서비스에 대해 또는 상기 다른 장치의 다른 하나의 애플리케이션에 의한 상기 다른 근접 서비스에 대해 등록된 근접 기능의 표시를 포함함 - ,
상기 근접 연결의 상기 조인트 근접 컨텍스트에 기초하여, 상기 근접 기능을 용이하게 하는 예비된 근접 액션을 개시하는 단계
를 포함하는 방법.
- 제 1 항에 있어서,
근접 장치 상에서 피어 애플리케이션을 탐색하는 등록을 상기 장치의 상기 애플리케이션으로부터 수신하는 단계를 더 포함하며,
상기 예비된 근접 액션은, 상기 근접 서비스에 의해, 상기 피어 애플리케이션과 피어 연결을 확립하기 위하여 상기 애플리케이션 및 상기 다른 장치 사이의 대역외 연결을 확립하는 것을 포함하는,
방법.
- 제 1 항에 있어서,
상기 조인트 근접 컨텍스트는 상기 다른 장치의 상기 애플리케이션이 근접 장치 상에서 피어 애플리케이션을 탐색하도록 등록하였음을 나타내는 표시를 포함하며,
상기 예비된 근접 액션은, 상기 근접 서비스에 의해, 상기 피어 애플리케이션 런칭 및 상기 다른 장치와의 피어 연결의 확립에 대해 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 프레젠팅하는 것을 포함하는,
방법.
- 제 1 항에 있어서,
상기 장치의 공유 서비스로부터 상기 공유 서비스가 근접 장치와 공유를 위해 상기 애플리케이션에 의해 대기된 컨텐트를 가지는 등록을 상기 장치의 상기 공유 서비스로부터 수신하는 단계를 더 포함하며,
상기 조인트 근접 컨텍스트는 상기 등록의 표시를 포함하며,
상기 예비된 근접 액션은 상기 공유 서비스 및 상기 다른 장치 사이의 대역외 연결을, 상기 근접 서비스에 의해, 확립하는 것을 포함하는,
방법.
- 제 1 항에 있어서,
상기 조인트 근접 컨텍스트는 상기 다른 장치의 공유 서비스가 상기 다른 애플리케이션으로부터 근접 장치로 전송할 대기된 컨텐트를 가진다는 것을 나타내는 표시를 포함하며,
상기 예비된 근접 액션은 상기 대기된 컨텐트의 수신에 대해 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 프레젠팅하는 것을 포함하는
방법.
- 제 1 항에 있어서,
상기 애플리케이션의 상태로부터 근접 기능을 추론하는 단계를 더 포함하고,
상기 조인트 근접 컨텍스트는 상기 추론된 근접 기능의 표시를 포함하는
방법.
- 컴퓨팅 시스템으로서,
근접 프로바이더,
무선 통신 무선장치,
하나 이상의 프로세서들,
상기 하나 이상의 프로세서들에 의해 실행가능하고 상기 근접 프로바이더를 통해 근접 연결들을 확립하도록 구성되는 근접 프로바이더 모듈, 및
상기 하나 이상의 프로세서에 의해 실행가능한 근접 서비스 모듈을 포함하고,
상기 근접 서비스 모듈은,
상기 근접 프로바이더 모듈로부터 근접 장치와 근접 연결이 확립된 것을 나타내는 표시를 수신하고,
상기 근접 연결이 확립되면 상기 근접 장치의 다른 하나의 근접 서비스와 근접 정보를 교환 - 상기 근접 정보는 상기 근접 서비스 또는 상기 다른 근접 서비스에 대한 등록을 통해 상기 컴퓨팅 시스템의 애플리케이션으로부터 또는 상기 근접 장치의 다른 하나의 애플리케이션으로부터 유래하는 요청된 근접 기능들을 포함함 - 하고,
상기 근접 연결의 조인트 근접 컨텍스트가 피어 애플리케이션들 사이에 피어 연결을 확립하는 요청을 나타낸다고 결정하면, 상기 피어 연결을 인에이블하는 상기 무선 통신 무선장치를 통해 상기 애플리케이션 및 상기 다른 애플리케이션 사이에 통신을 확립하도록 구성되는
컴퓨팅 시스템.
- 제 7 항에 있어서,
상기 근접 서비스는
상기 애플리케이션이 상기 컴퓨팅 시스템의 사용자 인터페이스의 전경에서 실행되고 있지 않다고 결정되면, 상기 전경으로 상기 애플리케이션을 가져오는 것에 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 디스플레이하도록 더 구성되는
컴퓨팅 시스템.
- 제 7 항에 있어서,
상기 근접 서비스는
상기 애플리케이션이 상기 컴퓨팅 시스템 상에서 실행되고 있지 않다고 결정되면, 상기 애플리케이션의 실행에 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 디스플레이하도록 더 구성되는
컴퓨팅 시스템.
- 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행될 경우, 상기 컴퓨팅 장치가 방법을 수행하도록 하는, 복수의 프로그래밍 인스트럭션을 포함하는 컴퓨터-판독가능 스토리지 매체로서,
상기 방법은,
연결 장치로부터 근접 서비스에 의해, 상기 컴퓨팅 장치의 근접 프로바이더를 통한 상기 컴퓨팅 장치 및 상기 연결 장치 사이의 근접 연결의 확립에 응답하여, 상기 컴퓨팅 장치와 페어링 연결을 확립하는 인바운드 요청을 수신하는 단계,
상기 근접 서비스에 의해 사용자 인터페이스 요소가 디스플레이되도록 하는 단계 - 상기 사용자 인터페이스 요소는 상기 페어링 연결에 대해 동의하는 선택가능한 옵션을 포함함 - , 및
상기 페어링 연결에 대한 동의를 나타내는 입력이 수신되면, 상기 근접 프로바이더와는 상이한 상기 장치의 통신 프로바이더를 통해 상기 컴퓨팅 장치의 페어링 서비스 및 상기 다른 장치 사이의 연결을 개시하는 단계
를 포함하는, 컴퓨터-판독가능 스토리지 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/230,640 | 2011-09-12 | ||
US13/230,640 US9800688B2 (en) | 2011-09-12 | 2011-09-12 | Platform-enabled proximity service |
PCT/US2011/055741 WO2013039528A1 (en) | 2011-09-12 | 2011-10-11 | Platform-enabled proximity service |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140067043A true KR20140067043A (ko) | 2014-06-03 |
KR101951504B1 KR101951504B1 (ko) | 2019-02-22 |
Family
ID=47697784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147006657A KR101951504B1 (ko) | 2011-09-12 | 2011-10-11 | 플랫폼-인에이블형 근접 서비스 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9800688B2 (ko) |
EP (1) | EP2756387B1 (ko) |
JP (2) | JP2014532208A (ko) |
KR (1) | KR101951504B1 (ko) |
CN (2) | CN102938939B (ko) |
WO (1) | WO2013039528A1 (ko) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103621121A (zh) * | 2011-05-09 | 2014-03-05 | 坎巴瑞股份有限公司 | 一种网络连接设备之间建立通信的系统和方法 |
US9118686B2 (en) | 2011-09-06 | 2015-08-25 | Microsoft Technology Licensing, Llc | Per process networking capabilities |
US8990561B2 (en) | 2011-09-09 | 2015-03-24 | Microsoft Technology Licensing, Llc | Pervasive package identifiers |
US9773102B2 (en) * | 2011-09-09 | 2017-09-26 | Microsoft Technology Licensing, Llc | Selective file access for applications |
US9800688B2 (en) | 2011-09-12 | 2017-10-24 | Microsoft Technology Licensing, Llc | Platform-enabled proximity service |
US11089134B1 (en) | 2011-12-19 | 2021-08-10 | Majen Tech, LLC | System, method, and computer program product for coordination among multiple devices |
US8886782B2 (en) * | 2012-05-03 | 2014-11-11 | Nokia Corporation | Method and apparatus for binding devices into one or more groups |
US10057400B1 (en) | 2012-11-02 | 2018-08-21 | Majen Tech, LLC | Lock screen interface for a mobile device apparatus |
US10033773B2 (en) * | 2012-12-10 | 2018-07-24 | Samsung Electronics Co., Ltd. | Application execution method and apparatus |
US10356204B2 (en) | 2012-12-13 | 2019-07-16 | Microsoft Technology Licensing, Llc | Application based hardware identifiers |
US11431834B1 (en) | 2013-01-10 | 2022-08-30 | Majen Tech, LLC | Screen interface for a mobile device apparatus |
WO2014179942A1 (en) * | 2013-05-08 | 2014-11-13 | Nokia Corporation | Method and apparatus for determining collaboration role |
US9858247B2 (en) | 2013-05-20 | 2018-01-02 | Microsoft Technology Licensing, Llc | Runtime resolution of content references |
EP2865206B1 (en) | 2013-05-23 | 2017-12-20 | Nokia Technologies OY | Method and apparatus for apparatus coupling |
US10120541B2 (en) | 2013-06-09 | 2018-11-06 | Apple Inc. | Device, method, and graphical user interface for sharing content from a respective application |
WO2014200730A1 (en) * | 2013-06-09 | 2014-12-18 | Apple Inc. | Device, method, and graphical user interface for sharing content from a respective application |
JP6838789B2 (ja) * | 2013-06-28 | 2021-03-03 | 日本電気株式会社 | Ue及びその通信方法 |
US9716991B2 (en) * | 2013-09-09 | 2017-07-25 | Samsung Electronics Co., Ltd. | Computing system with detection mechanism and method of operation thereof |
US9838536B2 (en) | 2013-09-30 | 2017-12-05 | Elwha, Llc | Mobile device sharing facilitation methods and systems |
US9805208B2 (en) | 2013-09-30 | 2017-10-31 | Elwha Llc | Mobile device sharing facilitation methods and systems with recipient-dependent inclusion of a data selection |
US9826439B2 (en) | 2013-09-30 | 2017-11-21 | Elwha Llc | Mobile device sharing facilitation methods and systems operable in network equipment |
US9813891B2 (en) | 2013-09-30 | 2017-11-07 | Elwha Llc | Mobile device sharing facilitation methods and systems featuring a subset-specific source identification |
US9774728B2 (en) | 2013-09-30 | 2017-09-26 | Elwha Llc | Mobile device sharing facilitation methods and systems in a context of plural communication records |
US9740875B2 (en) | 2013-09-30 | 2017-08-22 | Elwha Llc | Mobile device sharing facilitation methods and systems featuring exclusive data presentation |
US11694256B1 (en) | 2013-10-10 | 2023-07-04 | Wells Fargo Bank, N.A. | Mobile enabled activation of a bank account |
CN105765552B (zh) * | 2013-10-14 | 2020-01-21 | 诺基亚技术有限公司 | 用于基于情境关系来标识媒体文件的方法和装置 |
KR102094216B1 (ko) * | 2013-11-04 | 2020-03-27 | 삼성전자 주식회사 | 이동 통신 시스템 환경에서 프락시미티 기반 서비스 단말 간 발견 및 통신을 지원하기 위한 보안 방안 및 시스템 |
CN104618891B (zh) * | 2013-11-04 | 2018-10-19 | 华为终端(东莞)有限公司 | 一种通信方法、终端及核心网实体 |
US20160278069A1 (en) * | 2013-11-29 | 2016-09-22 | Samsung Electronics Co., Ltd | Method and apparatus for application recognition qos-differentiated device-to-device communication in wireless communication system |
KR102100159B1 (ko) | 2014-01-13 | 2020-04-13 | 삼성전자 주식회사 | 이동 통신 시스템에서 서비스 발견 및 그룹 통신을 위한 보안 지원 방법 및 시스템 |
US9882996B2 (en) * | 2014-01-23 | 2018-01-30 | Google Llc | Determining data associated with proximate computing devices |
US9483997B2 (en) | 2014-03-10 | 2016-11-01 | Sony Corporation | Proximity detection of candidate companion display device in same room as primary display using infrared signaling |
US9696414B2 (en) | 2014-05-15 | 2017-07-04 | Sony Corporation | Proximity detection of candidate companion display device in same room as primary display using sonic signaling |
US9742853B2 (en) | 2014-05-19 | 2017-08-22 | The Michael Harrison Tretter Auerbach Trust | Dynamic computer systems and uses thereof |
US10070291B2 (en) | 2014-05-19 | 2018-09-04 | Sony Corporation | Proximity detection of candidate companion display device in same room as primary display using low energy bluetooth |
US10666735B2 (en) | 2014-05-19 | 2020-05-26 | Auerbach Michael Harrison Tretter | Dynamic computer systems and uses thereof |
US10305748B2 (en) | 2014-05-19 | 2019-05-28 | The Michael Harrison Tretter Auerbach Trust | Dynamic computer systems and uses thereof |
KR102208433B1 (ko) * | 2014-08-21 | 2021-01-27 | 삼성전자주식회사 | 적어도 하나 이상의 통신 방식을 선택하기 위한 방법 및 장치 |
JP6433265B2 (ja) * | 2014-11-27 | 2018-12-05 | キヤノン株式会社 | 情報処理装置、電子機器およびそれらの制御方法、プログラム並びに記憶媒体 |
JP6533085B2 (ja) | 2015-03-31 | 2019-06-19 | Line株式会社 | 端末、情報処理方法、及びプログラム |
US10437576B2 (en) * | 2015-06-30 | 2019-10-08 | Verizon Patent And Licensing Inc. | Automatic application download and launch during presentation of content |
US9888340B2 (en) * | 2015-10-10 | 2018-02-06 | International Business Machines Corporation | Non-intrusive proximity based advertising and message delivery |
CN105392109B (zh) * | 2015-10-20 | 2020-03-03 | 北京小鸟听听科技有限公司 | 一种无线连接方法和装置 |
US11740782B2 (en) * | 2016-01-06 | 2023-08-29 | Disruptive Technologies Research As | Out-of-band commissioning of a wireless device through proximity input |
US10529015B1 (en) | 2016-04-01 | 2020-01-07 | Wells Fargo Bank, N.A. | Systems and methods for onboarding customers through a short-range communication channel |
CN106303931A (zh) * | 2016-09-26 | 2017-01-04 | 深圳市金立通信设备有限公司 | 一种基于nfc的数据传输方法及终端 |
US11310294B2 (en) | 2016-10-31 | 2022-04-19 | Microsoft Technology Licensing, Llc | Companion devices for real-time collaboration in communication sessions |
US11019162B2 (en) * | 2016-11-16 | 2021-05-25 | Dell Products L.P. | System and method for provisioning a user interface for sharing |
JP6639430B2 (ja) * | 2017-01-31 | 2020-02-05 | キヤノン株式会社 | 情報処理装置、制御方法およびプログラム |
US10820167B2 (en) * | 2017-04-27 | 2020-10-27 | Facebook, Inc. | Systems and methods for automated content sharing with a peer |
US11082512B2 (en) | 2017-08-15 | 2021-08-03 | Microsoft Technology Licensing, Llc | Routing and filtering event notifications |
US10623471B2 (en) | 2017-11-08 | 2020-04-14 | International Business Machines Corporation | Data sharing among processing systems in a collaboration group |
WO2019155258A1 (en) * | 2018-02-09 | 2019-08-15 | Leung Ka Wai Wayne | Battery-less active and passive hybrid device for secure wireless payment and method thereof |
CN110463056B (zh) * | 2018-02-09 | 2021-12-28 | 梁嘉威 | 用于安全无线支付的无电池式有源和无源混合器件及其方法 |
EP3804365A4 (en) | 2018-06-01 | 2022-03-02 | Capital One Services, LLC | BEACON-TRIGGERED ACTIVATION OF A NEAR FIELD COMMUNICATION APPLICATION |
US11546391B2 (en) | 2019-11-01 | 2023-01-03 | Microsoft Technology Licensing, Llc | Teleconferencing interfaces and controls for paired user computing devices |
US11304246B2 (en) | 2019-11-01 | 2022-04-12 | Microsoft Technology Licensing, Llc | Proximity-based pairing and operation of user-specific companion devices |
US11256392B2 (en) * | 2019-11-01 | 2022-02-22 | Microsoft Technology Licensing, Llc | Unified interfaces for paired user computing devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090170431A1 (en) * | 2007-12-31 | 2009-07-02 | Trevor Pering | Device, system, and method of establishing multiple wireless connections |
US20100081375A1 (en) * | 2008-09-30 | 2010-04-01 | Apple Inc. | System and method for simplified control of electronic devices |
JP2011002962A (ja) * | 2009-06-17 | 2011-01-06 | Canon Inc | 通信装置及びその制御方法、プログラム |
US20110070837A1 (en) * | 2009-09-24 | 2011-03-24 | Research In Motion Limited | Communications device using electromagnet and activated communications circuit |
Family Cites Families (198)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956715A (en) | 1994-12-13 | 1999-09-21 | Microsoft Corporation | Method and system for controlling user access to a resource in a networked computing environment |
AU1690597A (en) | 1996-01-11 | 1997-08-01 | Mitre Corporation, The | System for controlling access and distribution of digital property |
US5721824A (en) | 1996-04-19 | 1998-02-24 | Sun Microsystems, Inc. | Multiple-package installation with package dependencies |
US6151643A (en) | 1996-06-07 | 2000-11-21 | Networks Associates, Inc. | Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer |
US6052120A (en) | 1996-10-01 | 2000-04-18 | Diamond Multimedia Systems, Inc. | Method of operating a portable interactive graphics display tablet and communications systems |
US6367012B1 (en) | 1996-12-06 | 2002-04-02 | Microsoft Corporation | Embedding certifications in executable files for network transmission |
EP0862124A3 (en) | 1997-02-28 | 2003-03-26 | Fujitsu Limited | File access system for efficiently accessing a file having encrypted data within a storage device |
US5974549A (en) | 1997-03-27 | 1999-10-26 | Soliton Ltd. | Security monitor |
US6117187A (en) | 1997-09-30 | 2000-09-12 | Hewlett-Packard Company | Automatic generation of a software installation package |
US6173316B1 (en) | 1998-04-08 | 2001-01-09 | Geoworks Corporation | Wireless communication device with markup language based man-machine interface |
US6101607A (en) | 1998-04-24 | 2000-08-08 | International Business Machines Corporation | Limit access to program function |
US6279111B1 (en) | 1998-06-12 | 2001-08-21 | Microsoft Corporation | Security model using restricted tokens |
US6505300B2 (en) | 1998-06-12 | 2003-01-07 | Microsoft Corporation | Method and system for secure running of untrusted content |
US6381742B2 (en) | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
US6697569B1 (en) | 1998-09-11 | 2004-02-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Automated conversion of a visual presentation into digital data format |
US6412070B1 (en) | 1998-09-21 | 2002-06-25 | Microsoft Corporation | Extensible security system and method for controlling access to objects in a computing environment |
US6366617B1 (en) | 1998-10-09 | 2002-04-02 | Matsushita Electric Industrial Co., Ltd. | Programmable filter for removing selected user data from an MPEG-2 bit stream |
US6522694B1 (en) | 1998-10-09 | 2003-02-18 | Matsushita Electric Industrial Co., Ltd. | Programmable filter for removing stuffing bits from an MPEG-2 bit-stream |
AUPP752398A0 (en) | 1998-12-04 | 1999-01-07 | Collins, Lyal Sidney | Secure multi-point data transfer system |
US6694434B1 (en) | 1998-12-23 | 2004-02-17 | Entrust Technologies Limited | Method and apparatus for controlling program execution and program distribution |
US6286104B1 (en) | 1999-08-04 | 2001-09-04 | Oracle Corporation | Authentication and authorization in a multi-tier relational database management system |
US7151832B1 (en) | 1999-11-18 | 2006-12-19 | International Business Machines Corporation | Dynamic encryption and decryption of a stream of data |
US7398532B1 (en) | 2000-03-02 | 2008-07-08 | Hewlett-Packard Development Company, L.P. | System and method for establishing a secure execution environment for a software process |
US6725452B1 (en) | 2000-06-01 | 2004-04-20 | Aduoa, Inc. | Method for resolving dependency conflicts among multiple operative entities within a computing environment |
US7213266B1 (en) | 2000-06-09 | 2007-05-01 | Intertrust Technologies Corp. | Systems and methods for managing and protecting electronic content and applications |
WO2001099387A2 (en) | 2000-06-20 | 2001-12-27 | Clark James R | Multi-session secured digital transmission process |
US7669238B2 (en) | 2000-06-21 | 2010-02-23 | Microsoft Corporation | Evidence-based application security |
AU2001280490A1 (en) | 2000-07-10 | 2002-01-21 | Critical Devices, Inc. | Method and system for software inventory management using a global central repository |
US20030084134A1 (en) | 2000-09-01 | 2003-05-01 | Pace Charles P. | System and method for bridging assets to network nodes on multi-tiered networks |
JP3776705B2 (ja) | 2000-09-28 | 2006-05-17 | 株式会社東芝 | 通信システム、移動端末装置、ゲートウェイ装置及び通信制御方法 |
US6604209B1 (en) | 2000-09-29 | 2003-08-05 | Sun Microsystems, Inc. | Distributed component testing in an enterprise computer system |
JP2003044297A (ja) | 2000-11-20 | 2003-02-14 | Humming Heads Inc | コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム |
US20020071565A1 (en) | 2000-12-11 | 2002-06-13 | Kurn David Michael | Software process pre-authorization scheme for applications on a computer system |
US20030037237A1 (en) | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
US6748380B2 (en) | 2001-05-14 | 2004-06-08 | International Business Machines Corporation | Method, system, and program product for permission to access software |
JP2003015993A (ja) | 2001-06-28 | 2003-01-17 | Sony Corp | 情報処理装置および情報処理方法、記録媒体、並びにプログラム |
US7069330B1 (en) | 2001-07-05 | 2006-06-27 | Mcafee, Inc. | Control of interaction between client computer applications and network resources |
US6917951B2 (en) | 2001-07-26 | 2005-07-12 | Microsoft Corporation | System and method for replicating data in resource sets |
AU2003252901A1 (en) | 2002-04-18 | 2003-12-11 | Walker Digital, Llc | Method and Apparatus for Authenticating Data Relating to Usage of a Gaming Device |
US7401235B2 (en) | 2002-05-10 | 2008-07-15 | Microsoft Corporation | Persistent authorization context based on external authentication |
US20150135206A1 (en) | 2002-05-10 | 2015-05-14 | Convergent Media Solutions Llc | Method and apparatus for browsing using alternative linkbases |
US7987491B2 (en) | 2002-05-10 | 2011-07-26 | Richard Reisman | Method and apparatus for browsing using alternative linkbases |
US20150135214A1 (en) | 2002-05-10 | 2015-05-14 | Convergent Media Solutions Llc | Method and apparatus for browsing using alternative linkbases |
GB0212314D0 (en) | 2002-05-28 | 2002-07-10 | Symbian Ltd | Secure mobile wireless device |
US6865659B2 (en) | 2002-06-07 | 2005-03-08 | Sun Microsystems, Inc. | Using short references to access program elements in a large address space |
US7542988B1 (en) | 2006-01-03 | 2009-06-02 | Symantec Corporation | File type associative application layered system |
US7152243B2 (en) | 2002-06-27 | 2006-12-19 | Microsoft Corporation | Providing a secure hardware identifier (HWID) for use in connection with digital rights management (DRM) system |
US7401352B2 (en) | 2002-08-30 | 2008-07-15 | International Business Machines Corporation | Secure system and method for enforcement of privacy policy and protection of confidentiality |
US7512810B1 (en) | 2002-09-11 | 2009-03-31 | Guardian Data Storage Llc | Method and system for protecting encrypted files transmitted over a network |
JP4400059B2 (ja) | 2002-10-17 | 2010-01-20 | 株式会社日立製作所 | ポリシー設定支援ツール |
EP1420323A1 (en) | 2002-11-18 | 2004-05-19 | Koninklijke KPN N.V. | Method and system for distribution of software components |
US7337442B2 (en) | 2002-12-03 | 2008-02-26 | Microsoft Corporation | Methods and systems for cooperative scheduling of hardware resource elements |
US20040199787A1 (en) | 2003-04-02 | 2004-10-07 | Sun Microsystems, Inc., A Delaware Corporation | Card device resource access control |
US7478094B2 (en) | 2003-06-11 | 2009-01-13 | International Business Machines Corporation | High run-time performance method for setting ACL rule for content management security |
US7882251B2 (en) | 2003-08-13 | 2011-02-01 | Microsoft Corporation | Routing hints |
US7814551B2 (en) | 2003-09-09 | 2010-10-12 | Microsoft Corporation | System and method for manifest generation |
US7392383B2 (en) | 2003-09-25 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for providing process-based access controls on computer resources |
US20050091535A1 (en) | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Application identity for software products |
US20050091658A1 (en) | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Operating system resource protection |
US8590032B2 (en) | 2003-12-10 | 2013-11-19 | Aventail Llc | Rule-based routing to resources through a network |
US7568195B2 (en) | 2003-12-16 | 2009-07-28 | Microsoft Corporation | Determining a maximal set of dependent software updates valid for installation |
US7480655B2 (en) | 2004-01-09 | 2009-01-20 | Webroor Software, Inc. | System and method for protecting files on a computer from access by unauthorized applications |
US7698393B2 (en) | 2004-03-23 | 2010-04-13 | Microsoft Corporation | Method and system for shadowing information between computing devices |
US20050246762A1 (en) | 2004-04-29 | 2005-11-03 | International Business Machines Corporation | Changing access permission based on usage of a computer resource |
EP1596538A1 (en) * | 2004-05-10 | 2005-11-16 | Sony Ericsson Mobile Communications AB | Method and device for bluetooth pairing |
US20050256859A1 (en) | 2004-05-13 | 2005-11-17 | Internation Business Machines Corporation | System, application and method of providing application programs continued access to frozen file systems |
US7650627B1 (en) | 2004-05-28 | 2010-01-19 | Sap Ag | Abstract configuration files for efficient implementation of security services |
US7540013B2 (en) | 2004-06-07 | 2009-05-26 | Check Point Software Technologies, Inc. | System and methodology for protecting new computers by applying a preconfigured security update policy |
US7509497B2 (en) | 2004-06-23 | 2009-03-24 | Microsoft Corporation | System and method for providing security to an application |
US7818456B2 (en) | 2004-06-24 | 2010-10-19 | International Business Machines Corporation | Method and system for processing a file attached to an electronic document |
JP4682139B2 (ja) | 2004-06-30 | 2011-05-11 | パナソニック株式会社 | プログラム実行機器およびそのプログラム実行方法 |
US7703090B2 (en) | 2004-08-31 | 2010-04-20 | Microsoft Corporation | Patch un-installation |
US7676835B2 (en) | 2004-08-31 | 2010-03-09 | International Business Machines Corporation | System and method for regulating access to objects in a content repository |
EP1635508A1 (en) * | 2004-09-08 | 2006-03-15 | Koninklijke Philips Electronics N.V. | Secure pairing for wireless communications devices |
US8499337B1 (en) | 2004-10-06 | 2013-07-30 | Mcafee, Inc. | Systems and methods for delegation and notification of administration of internet access |
US7516477B2 (en) | 2004-10-21 | 2009-04-07 | Microsoft Corporation | Method and system for ensuring that computer programs are trustworthy |
US9274830B2 (en) | 2004-11-18 | 2016-03-01 | Aol Inc. | Service clean-up |
US7774753B1 (en) | 2004-11-18 | 2010-08-10 | Adobe Systems Incorporated | System and method for communicating data among two or more programs |
US7475396B2 (en) | 2004-12-03 | 2009-01-06 | International Business Machines Corporation | Method and apparatus for defining, building and deploying pluggable and independently configurable install components |
CN100490387C (zh) | 2004-12-28 | 2009-05-20 | 北京邮电大学 | 用于应用服务器的基于令牌的细粒度访问控制系统及方法 |
US7472377B2 (en) | 2005-01-18 | 2008-12-30 | International Business Machines Corporation | Systems and methods for determining software package identity during a system build |
US7802294B2 (en) | 2005-01-28 | 2010-09-21 | Microsoft Corporation | Controlling computer applications' access to data |
US7650501B1 (en) | 2005-02-15 | 2010-01-19 | Sun Microsystems, Inc. | System and methods for construction, fusion, prosecution, and maintenance of minimized operating environments |
US20060193467A1 (en) | 2005-02-16 | 2006-08-31 | Joseph Levin | Access control in a computer system |
US7693050B2 (en) | 2005-04-14 | 2010-04-06 | Microsoft Corporation | Stateless, affinity-preserving load balancing |
WO2007006120A1 (en) | 2005-04-18 | 2007-01-18 | Research In Motion Limited | Method and system for executing a container-managed application on a processing device |
US7707620B2 (en) | 2005-05-06 | 2010-04-27 | Cisco Technology, Inc. | Method to control and secure setuid/gid executables and processes |
US20060259980A1 (en) | 2005-05-16 | 2006-11-16 | Microsoft Corporation | Method and system for limiting rights of services |
US7716734B2 (en) | 2005-05-19 | 2010-05-11 | Microsoft Corporation | Systems and methods for pattern matching on principal names to control access to computing resources |
US20070005734A1 (en) | 2005-06-30 | 2007-01-04 | Microsoft Corporation | Generically extensible client application |
US7580933B2 (en) | 2005-07-28 | 2009-08-25 | Microsoft Corporation | Resource handling for taking permissions |
US8073442B2 (en) | 2005-10-05 | 2011-12-06 | Microsoft Corporation | Binding a device to a provider |
US20070083620A1 (en) | 2005-10-07 | 2007-04-12 | Pedersen Bradley J | Methods for selecting between a predetermined number of execution methods for an application program |
CN1959631B (zh) | 2005-11-04 | 2016-09-21 | 上海启明软件股份有限公司 | 一种基于itron的应用软件自主装配系统及方法 |
US20100153671A1 (en) | 2005-12-01 | 2010-06-17 | Drive Sentry Inc. | System and method to secure a computer system by selective control of write access to a data storage medium |
US7664924B2 (en) | 2005-12-01 | 2010-02-16 | Drive Sentry, Inc. | System and method to secure a computer system by selective control of write access to a data storage medium |
US7779265B2 (en) | 2005-12-13 | 2010-08-17 | Microsoft Corporation | Access control list inheritance thru object(s) |
AU2006201479B2 (en) | 2005-12-14 | 2006-07-06 | Epip Pty Ltd | Improved delivery of electronic documents into a postal network using 'ignore page' |
WO2007120360A2 (en) | 2005-12-29 | 2007-10-25 | Blue Jungle | Information management system |
US8621549B2 (en) | 2005-12-29 | 2013-12-31 | Nextlabs, Inc. | Enforcing control policies in an information management system |
US8209747B2 (en) | 2006-01-03 | 2012-06-26 | Cisco Technology, Inc. | Methods and systems for correlating rules with corresponding event log entries |
US20070192500A1 (en) | 2006-02-16 | 2007-08-16 | Infoexpress, Inc. | Network access control including dynamic policy enforcement point |
US20070208857A1 (en) | 2006-02-21 | 2007-09-06 | Netiq Corporation | System, method, and computer-readable medium for granting time-based permissions |
WO2007097439A1 (ja) | 2006-02-21 | 2007-08-30 | Nec Corporation | プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム |
EP1833222A1 (en) | 2006-03-10 | 2007-09-12 | Abb Research Ltd. | Access control protocol for embedded devices |
US20070240194A1 (en) | 2006-03-28 | 2007-10-11 | Hargrave Bentley J | Scoped permissions for software application deployment |
US20070234412A1 (en) | 2006-03-29 | 2007-10-04 | Smith Ned M | Using a proxy for endpoint access control |
US8001528B2 (en) | 2006-03-30 | 2011-08-16 | Microsoft Corporation | Organization of application state and configuration settings |
US9489109B2 (en) * | 2006-03-30 | 2016-11-08 | Sony Ericsson Mobile Communication Ab | Data communication in an electronic device |
US7870387B1 (en) | 2006-04-07 | 2011-01-11 | Mcafee, Inc. | Program-based authorization |
AU2006222686B8 (en) | 2006-09-26 | 2006-11-30 | Epip Pty Ltd | Matching physical media to electronically submitted documents |
US8166472B2 (en) | 2006-10-12 | 2012-04-24 | Apple Inc. | Installation utility system and method |
US20080120707A1 (en) | 2006-11-22 | 2008-05-22 | Alexander Ramia | Systems and methods for authenticating a device by a centralized data server |
US7934087B2 (en) | 2006-11-29 | 2011-04-26 | Novell, Inc. | Techniques for secure event recording and processing |
US7925875B2 (en) | 2006-12-31 | 2011-04-12 | Sandisk Corporation | Systems and methods for identifying and booting a computer architecture |
CN100483352C (zh) | 2007-02-13 | 2009-04-29 | 华为技术有限公司 | Idl调用装置及调用方法 |
US20080201705A1 (en) | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
US20080220878A1 (en) | 2007-02-23 | 2008-09-11 | Oliver Michaelis | Method and Apparatus to Create or Join Gaming Sessions Based on Proximity |
CN101616719A (zh) | 2007-02-23 | 2009-12-30 | 高通股份有限公司 | 用以基于接近度创建或加入游戏会话的方法和设备 |
US7797743B2 (en) | 2007-02-26 | 2010-09-14 | Microsoft Corporation | File conversion in restricted process |
US8472874B2 (en) * | 2007-03-14 | 2013-06-25 | Apple Inc. | Method and system for pairing of wireless devices using physical presence |
US20080244723A1 (en) | 2007-03-27 | 2008-10-02 | Microsoft Corporation | Firewall Restriction Using Manifest |
US8239954B2 (en) | 2007-05-07 | 2012-08-07 | Microsoft Corporation | Access control based on program properties |
CN101131725A (zh) | 2007-05-16 | 2008-02-27 | 何鸿君 | 一种文件访问控制方法 |
CN102006334B (zh) | 2007-06-11 | 2013-01-02 | 华为技术有限公司 | 安装软件组件的方法、系统及装置 |
US8185889B2 (en) | 2007-06-19 | 2012-05-22 | Red Hat, Inc. | Methods and systems for porting software packages from one format to another |
US8893203B2 (en) | 2007-08-17 | 2014-11-18 | Phoenix Myrrh Technology Pty Ltd. | Method and system for content delivery |
US8191012B2 (en) | 2007-08-30 | 2012-05-29 | Daylife, Inc. | Method and system for creating theme, topic, and story-based cover pages |
US8924731B2 (en) | 2007-09-11 | 2014-12-30 | Lg Electronics Inc. | Secure signing method, secure authentication method and IPTV system |
GB2455059A (en) | 2007-10-09 | 2009-06-03 | Symbian Software Ltd | Transmitting device pairing information over multiple available out of band channels/interfaces |
US8978028B2 (en) | 2007-10-10 | 2015-03-10 | Microsoft Technology Licensing, Llc | Transactional multi-package installation |
US8356335B2 (en) | 2007-10-30 | 2013-01-15 | Apple Inc. | Techniques for authentication via network connections |
KR101474561B1 (ko) | 2007-11-27 | 2014-12-19 | 삼성전자주식회사 | 이동통신 단말기에서의 어플리케이션 실행방법 및 장치 |
US9262594B2 (en) | 2008-01-18 | 2016-02-16 | Microsoft Technology Licensing, Llc | Tamper evidence per device protected identity |
US20090193507A1 (en) | 2008-01-28 | 2009-07-30 | Wael Ibrahim | Authentication messaging service |
EP2086206A1 (en) | 2008-01-31 | 2009-08-05 | Alcatel Lucent | System for operating a peer-to-peer network taking into account access network subscriber information |
KR20100114066A (ko) | 2008-01-31 | 2010-10-22 | 인터내셔널 비지네스 머신즈 코포레이션 | 암호화된 파일 엑세스를 위한 방법 및 시스템 |
JP4613969B2 (ja) | 2008-03-03 | 2011-01-19 | ソニー株式会社 | 通信装置、及び通信方法 |
EP2107458A1 (en) | 2008-03-31 | 2009-10-07 | Jatho Investments | Modelling software appliance |
US7930760B2 (en) | 2008-04-01 | 2011-04-19 | Microsoft Corporation | Centralized enforcement of name-based computer system security rules |
US20090319673A1 (en) | 2008-04-24 | 2009-12-24 | International Business Machines Corporation | Automated Wireless Device Pairing |
US8090852B2 (en) | 2008-06-04 | 2012-01-03 | Sophos Plc | Managing use of proxies to access restricted network locations |
US8458363B2 (en) | 2008-06-08 | 2013-06-04 | Apple Inc. | System and method for simplified data transfer |
US8407693B2 (en) | 2008-06-09 | 2013-03-26 | International Business Machines Corporation | Managing package dependencies |
US20090327900A1 (en) | 2008-06-26 | 2009-12-31 | Microsoft Corporation | Indicating resources to which there are access rights |
US8397290B2 (en) | 2008-06-27 | 2013-03-12 | Microsoft Corporation | Granting least privilege access for computing processes |
CN101640581B (zh) * | 2008-07-31 | 2012-11-21 | 鸿富锦精密工业(深圳)有限公司 | 无线装置及其配对方法及解除配对方法 |
US8204969B2 (en) | 2008-08-05 | 2012-06-19 | Canon Kabushiki Kaisha | Method for retrieving updates via the internet |
US20100058320A1 (en) | 2008-09-04 | 2010-03-04 | Microsoft Corporation | Managing Distributed System Software On A Gaming System |
KR100997802B1 (ko) | 2008-10-20 | 2010-12-01 | 한국전자통신연구원 | 정보 단말기의 보안 관리 장치 및 방법 |
US9043919B2 (en) | 2008-10-21 | 2015-05-26 | Lookout, Inc. | Crawling multiple markets and correlating |
US8146134B2 (en) | 2008-10-28 | 2012-03-27 | Yahoo! Inc. | Scalable firewall policy management platform |
US20100174599A1 (en) | 2009-01-05 | 2010-07-08 | Apple Inc. | System and method for providing content associated with a product or service |
US9288210B2 (en) | 2009-01-26 | 2016-03-15 | Microsoft Technology Licensing, Llc | Revocable object access |
JP4803263B2 (ja) | 2009-01-28 | 2011-10-26 | ブラザー工業株式会社 | ソフトウェアのインストール方法及びプログラム及び情報処理装置 |
US8752153B2 (en) | 2009-02-05 | 2014-06-10 | Wwpass Corporation | Accessing data based on authenticated user, provider and system |
US8242892B2 (en) | 2009-02-12 | 2012-08-14 | International Business Machines Corporation | System, method and program product for communicating a privacy policy associated with a radio frequency identification tag and associated object |
US8131214B2 (en) | 2009-03-02 | 2012-03-06 | Motorola Mobility, Inc. | Method for selecting content for transfer or synchronization between devices |
US8375377B2 (en) | 2009-03-06 | 2013-02-12 | International Business Machines Corporation | Controlling java virtual machine component behavior on a per-classloader basis |
US8468608B1 (en) | 2009-03-30 | 2013-06-18 | Symantec Corporation | Enforcing digital rights management in a heterogeneous environment |
US20100278345A1 (en) | 2009-05-04 | 2010-11-04 | Thomas Matthieu Alsina | Method and apparatus for proximity based pairing of mobile devices |
US20100287513A1 (en) | 2009-05-05 | 2010-11-11 | Microsoft Corporation | Multi-device gesture interactivity |
KR101590188B1 (ko) | 2009-05-08 | 2016-01-29 | 삼성전자주식회사 | 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법 |
US9270683B2 (en) | 2009-05-15 | 2016-02-23 | Amazon Technologies, Inc. | Storage device authentication |
GB0909373D0 (en) | 2009-05-30 | 2009-07-15 | Park Signalling Ltd | Apparatus and method for implementing safe visual information provision |
US8826269B2 (en) | 2009-06-15 | 2014-09-02 | Microsoft Corporation | Annotating virtual application processes |
US20110066851A1 (en) | 2009-09-14 | 2011-03-17 | International Business Machines Corporation | Secure Route Discovery Node and Policing Mechanism |
US20110070827A1 (en) | 2009-09-24 | 2011-03-24 | Research In Motion Limited | Communications device and method for initiating communications at a communications device |
US8645936B2 (en) | 2009-09-30 | 2014-02-04 | Zynga Inc. | Apparatuses, methods and systems for an a API call abstractor |
US20110098030A1 (en) | 2009-10-27 | 2011-04-28 | Nokia Corporation | Method and apparatus for activating services |
US8838644B2 (en) | 2009-11-25 | 2014-09-16 | International Business Machines Corporation | Extensible access control list framework |
CN102129364B (zh) | 2010-01-14 | 2013-09-25 | 中国电信股份有限公司 | 应用程序中嵌入微件工具栏的方法和快速访问微件的方法 |
US8502836B2 (en) | 2010-02-26 | 2013-08-06 | Research In Motion Limited | Unified visual presenter |
US8745239B2 (en) | 2010-04-07 | 2014-06-03 | Limelight Networks, Inc. | Edge-based resource spin-up for cloud computing |
US9218359B2 (en) | 2010-07-02 | 2015-12-22 | Code Systems Corporation | Method and system for profiling virtual application resource utilization patterns by executing virtualized application |
US8713365B2 (en) | 2011-01-28 | 2014-04-29 | Microsoft Corporation | Re-establishing push notification channels via user identifiers |
US20120194534A1 (en) | 2011-02-02 | 2012-08-02 | Alcatel-Lucent Usa Inc. | System and Method for Managing Cache Storage in Adaptive Video Streaming System |
WO2012112833A2 (en) | 2011-02-17 | 2012-08-23 | Taasera, Inc. | System and method for application attestation |
US20120297288A1 (en) | 2011-05-16 | 2012-11-22 | Edward Mansouri | Method and System for Enhancing Web Content |
US8315620B1 (en) | 2011-05-27 | 2012-11-20 | The Nielsen Company (Us), Llc | Methods and apparatus to associate a mobile device with a panelist profile |
US9319406B2 (en) | 2011-07-12 | 2016-04-19 | Apple Inc. | System and method for linking pre-installed software to a user account on an online store |
US8973158B2 (en) | 2011-07-20 | 2015-03-03 | Microsoft Technology Licensing Llc | Trust level activation |
JP5701715B2 (ja) | 2011-08-12 | 2015-04-15 | 株式会社東芝 | エネルギー管理装置、電力管理システムおよびプログラム |
US20130054734A1 (en) | 2011-08-23 | 2013-02-28 | Microsoft Corporation | Migration of cloud applications between a local computing device and cloud |
US8649768B1 (en) | 2011-08-24 | 2014-02-11 | Cellco Partnership | Method of device authentication and application registration in a push communication framework |
US20130061316A1 (en) | 2011-09-06 | 2013-03-07 | Microsoft Corporation | Capability Access Management for Processes |
US9118686B2 (en) | 2011-09-06 | 2015-08-25 | Microsoft Technology Licensing, Llc | Per process networking capabilities |
US9081954B2 (en) | 2011-09-07 | 2015-07-14 | Intel Corporation | Verifying firmware integrity of a device |
US9773102B2 (en) | 2011-09-09 | 2017-09-26 | Microsoft Technology Licensing, Llc | Selective file access for applications |
US20130067459A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Order-Independent Deployment Collections with Dependency Package Identifiers |
US8990561B2 (en) | 2011-09-09 | 2015-03-24 | Microsoft Technology Licensing, Llc | Pervasive package identifiers |
US9800688B2 (en) | 2011-09-12 | 2017-10-24 | Microsoft Technology Licensing, Llc | Platform-enabled proximity service |
US8838982B2 (en) | 2011-09-21 | 2014-09-16 | Visa International Service Association | Systems and methods to secure user identification |
US8554179B2 (en) | 2011-09-23 | 2013-10-08 | Blackberry Limited | Managing mobile device applications |
US8554175B2 (en) | 2011-09-23 | 2013-10-08 | Blackberry Limited | Managing mobile device applications on a mobile device |
US9152784B2 (en) | 2012-04-18 | 2015-10-06 | Mcafee, Inc. | Detection and prevention of installation of malicious mobile applications |
US10356204B2 (en) | 2012-12-13 | 2019-07-16 | Microsoft Technology Licensing, Llc | Application based hardware identifiers |
US9858247B2 (en) | 2013-05-20 | 2018-01-02 | Microsoft Technology Licensing, Llc | Runtime resolution of content references |
-
2011
- 2011-09-12 US US13/230,640 patent/US9800688B2/en active Active
- 2011-10-11 WO PCT/US2011/055741 patent/WO2013039528A1/en active Application Filing
- 2011-10-11 KR KR1020147006657A patent/KR101951504B1/ko active IP Right Grant
- 2011-10-11 EP EP11872418.6A patent/EP2756387B1/en active Active
- 2011-10-11 JP JP2014529686A patent/JP2014532208A/ja active Pending
-
2012
- 2012-09-12 CN CN201210335798.6A patent/CN102938939B/zh active Active
- 2012-09-12 CN CN201710075868.1A patent/CN106850811A/zh active Pending
-
2016
- 2016-08-17 JP JP2016160091A patent/JP2017033571A/ja active Pending
-
2017
- 2017-10-20 US US15/788,993 patent/US10469622B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090170431A1 (en) * | 2007-12-31 | 2009-07-02 | Trevor Pering | Device, system, and method of establishing multiple wireless connections |
US20100081375A1 (en) * | 2008-09-30 | 2010-04-01 | Apple Inc. | System and method for simplified control of electronic devices |
JP2011002962A (ja) * | 2009-06-17 | 2011-01-06 | Canon Inc | 通信装置及びその制御方法、プログラム |
US20110070837A1 (en) * | 2009-09-24 | 2011-03-24 | Research In Motion Limited | Communications device using electromagnet and activated communications circuit |
Also Published As
Publication number | Publication date |
---|---|
US10469622B2 (en) | 2019-11-05 |
EP2756387A4 (en) | 2015-05-27 |
CN102938939A (zh) | 2013-02-20 |
CN106850811A (zh) | 2017-06-13 |
US20130065526A1 (en) | 2013-03-14 |
WO2013039528A1 (en) | 2013-03-21 |
US20180063287A1 (en) | 2018-03-01 |
KR101951504B1 (ko) | 2019-02-22 |
CN102938939B (zh) | 2017-04-12 |
US9800688B2 (en) | 2017-10-24 |
JP2014532208A (ja) | 2014-12-04 |
EP2756387A1 (en) | 2014-07-23 |
JP2017033571A (ja) | 2017-02-09 |
EP2756387B1 (en) | 2021-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101951504B1 (ko) | 플랫폼-인에이블형 근접 서비스 | |
US10069899B2 (en) | System and method of secure file sharing using P2P | |
US10193970B2 (en) | Wireless synchronization of media content and subscription content | |
EP2817940B1 (en) | Information sharing using token received via near proximity communication | |
JP6379104B2 (ja) | 近距離通信(nfc)リンクを介した、2人のモバイル・デバイス・ユーザに共通する情報の共有 | |
EP3453195B1 (en) | Controlling service discovery and activation among peers | |
US8998076B2 (en) | Establishing connections among electronic devices | |
US20120322368A1 (en) | Simple peer-to-peer network formation | |
KR20140096981A (ko) | 앱을 다운로드하는 방법 및 앱을 실행시키는 방법 | |
TW201136372A (en) | Apparatus and method for establishing and utilizing backup communication channels | |
WO2011109824A1 (en) | System and method for two way communication and controlling content on a display screen | |
WO2017097128A1 (zh) | 设备间任务接管的方法及装置 | |
Dodson et al. | Micro-interactions with nfc-enabled mobile phones | |
US20240045639A1 (en) | Distributed cross-device collaboration method, electronic device, and communication system | |
US9330053B1 (en) | True push architecture for internet protocol notification | |
TW201442767A (zh) | 媒體平台間的普通性伴隨訊息 | |
CN108270867B (zh) | 游戏中虚拟资源的共享方法、存储介质 | |
EP3748492A1 (en) | Downloading and launching an app on a second device from a first device | |
CN116134858A (zh) | 用于配对搭配用户的安全协议 | |
Andersen et al. | Experimenting with instant services using NFC technology | |
KR101760770B1 (ko) | 네트워크 디바이스 간 정보 공유 방법 | |
Arunachalam et al. | INTER-APPLICATION COMMUNICATION: APrototype IMPLEMENTATION | |
TW201828083A (zh) | 設備間任務接管的方法及裝置 | |
Tang et al. | Networking, Bluetooth, and Social | |
JP2014209341A (ja) | アンサンブルコンピューティング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |