KR20140067043A - 플랫폼-인에이블형 근접 서비스 - Google Patents

플랫폼-인에이블형 근접 서비스 Download PDF

Info

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
Application number
KR1020147006657A
Other languages
English (en)
Other versions
KR101951504B1 (ko
Inventor
마크 크리스토퍼 포티어
맥스 글렌 모리스
트래비스 제이 마틴
마이클 엔 로홀트
대런 알 데이비스
프리야 부샨 댄다와트
켄튼 에이 쉬플리
쿠람 엠 지아
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20140067043A publication Critical patent/KR20140067043A/ko
Application granted granted Critical
Publication of KR101951504B1 publication Critical patent/KR101951504B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive or capacitive transmission systems
    • H04B5/40Near-field transmission systems, e.g. inductive or capacitive transmission systems characterised by components specially adapted for near-field transmission
    • H04B5/48Transceivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network 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

플랫폼-인에이블형 근접 서비스{PLATFORM-ENABLED PROXIMITY SERVICE}
근접 기술은 서로 매우 가까이(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)를 보여주는 흐름도이다.
개관
위에서 논의한 바와 같이, 근접 기술은 서로에 대해 가까운 근접 상태로 놓여진 장치들 사이의 통신을 인에이블한다. 종래의 근접 기능(예컨대, 금융 거래 또는 컨텐트 공유)은 애플리케이션 레벨에서 인에이블되었으므로, 애플리케이션 개발자들이 개발 중인 애플리케이션이 지원할 근접 장치의 타입을 식별할 것을 요구하며, 또한 해당 애플리케이션이 지원되는 근접 기술과 직접적으로 인터페이싱하도록 프로그래밍할 것을 요구한다. 본 개시내용의 실시예는, 애플리케이션 개발자들로 하여금 근접 기술에 대하여 직접적으로 프로그래밍할 필요없이 근접 서비스를 통해 다양한 사용자 경험을 제공할 수 있게 하는, 플랫폼-레벨 근접 서비스 및 근접 애플리케이션 프로그래밍 인터페이스(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. 방법으로서,
    근접 프로바이더로부터 다른 장치와 근접 연결이 확립된 것을 나타내는 표시를, 장치의 근접 서비스에 의해, 수신하는 단계,
    상기 표시에 응답하여, 상기 근접 연결의 조인트 근접 컨텍스트를 결정하기 위해 예비된 컨텍스트 정보를 상기 근접 연결을 통해 상기 다른 장치의 다른 하나의 근접 서비스와 교환하는 단계 - 상기 예비된 컨텍스트 정보는 상기 장치의 애플리케이션에 의한 상기 근접 서비스에 대해 또는 상기 다른 장치의 다른 하나의 애플리케이션에 의한 상기 다른 근접 서비스에 대해 등록된 근접 기능의 표시를 포함함 - ,
    상기 근접 연결의 상기 조인트 근접 컨텍스트에 기초하여, 상기 근접 기능을 용이하게 하는 예비된 근접 액션을 개시하는 단계
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    근접 장치 상에서 피어 애플리케이션을 탐색하는 등록을 상기 장치의 상기 애플리케이션으로부터 수신하는 단계를 더 포함하며,
    상기 예비된 근접 액션은, 상기 근접 서비스에 의해, 상기 피어 애플리케이션과 피어 연결을 확립하기 위하여 상기 애플리케이션 및 상기 다른 장치 사이의 대역외 연결을 확립하는 것을 포함하는,
    방법.
  3. 제 1 항에 있어서,
    상기 조인트 근접 컨텍스트는 상기 다른 장치의 상기 애플리케이션이 근접 장치 상에서 피어 애플리케이션을 탐색하도록 등록하였음을 나타내는 표시를 포함하며,
    상기 예비된 근접 액션은, 상기 근접 서비스에 의해, 상기 피어 애플리케이션 런칭 및 상기 다른 장치와의 피어 연결의 확립에 대해 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 프레젠팅하는 것을 포함하는,
    방법.
  4. 제 1 항에 있어서,
    상기 장치의 공유 서비스로부터 상기 공유 서비스가 근접 장치와 공유를 위해 상기 애플리케이션에 의해 대기된 컨텐트를 가지는 등록을 상기 장치의 상기 공유 서비스로부터 수신하는 단계를 더 포함하며,
    상기 조인트 근접 컨텍스트는 상기 등록의 표시를 포함하며,
    상기 예비된 근접 액션은 상기 공유 서비스 및 상기 다른 장치 사이의 대역외 연결을, 상기 근접 서비스에 의해, 확립하는 것을 포함하는,
    방법.
  5. 제 1 항에 있어서,
    상기 조인트 근접 컨텍스트는 상기 다른 장치의 공유 서비스가 상기 다른 애플리케이션으로부터 근접 장치로 전송할 대기된 컨텐트를 가진다는 것을 나타내는 표시를 포함하며,
    상기 예비된 근접 액션은 상기 대기된 컨텐트의 수신에 대해 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 프레젠팅하는 것을 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 애플리케이션의 상태로부터 근접 기능을 추론하는 단계를 더 포함하고,
    상기 조인트 근접 컨텍스트는 상기 추론된 근접 기능의 표시를 포함하는
    방법.
  7. 컴퓨팅 시스템으로서,
    근접 프로바이더,
    무선 통신 무선장치,
    하나 이상의 프로세서들,
    상기 하나 이상의 프로세서들에 의해 실행가능하고 상기 근접 프로바이더를 통해 근접 연결들을 확립하도록 구성되는 근접 프로바이더 모듈, 및
    상기 하나 이상의 프로세서에 의해 실행가능한 근접 서비스 모듈을 포함하고,
    상기 근접 서비스 모듈은,
    상기 근접 프로바이더 모듈로부터 근접 장치와 근접 연결이 확립된 것을 나타내는 표시를 수신하고,
    상기 근접 연결이 확립되면 상기 근접 장치의 다른 하나의 근접 서비스와 근접 정보를 교환 - 상기 근접 정보는 상기 근접 서비스 또는 상기 다른 근접 서비스에 대한 등록을 통해 상기 컴퓨팅 시스템의 애플리케이션으로부터 또는 상기 근접 장치의 다른 하나의 애플리케이션으로부터 유래하는 요청된 근접 기능들을 포함함 - 하고,
    상기 근접 연결의 조인트 근접 컨텍스트가 피어 애플리케이션들 사이에 피어 연결을 확립하는 요청을 나타낸다고 결정하면, 상기 피어 연결을 인에이블하는 상기 무선 통신 무선장치를 통해 상기 애플리케이션 및 상기 다른 애플리케이션 사이에 통신을 확립하도록 구성되는
    컴퓨팅 시스템.
  8. 제 7 항에 있어서,
    상기 근접 서비스는
    상기 애플리케이션이 상기 컴퓨팅 시스템의 사용자 인터페이스의 전경에서 실행되고 있지 않다고 결정되면, 상기 전경으로 상기 애플리케이션을 가져오는 것에 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 디스플레이하도록 더 구성되는
    컴퓨팅 시스템.
  9. 제 7 항에 있어서,
    상기 근접 서비스는
    상기 애플리케이션이 상기 컴퓨팅 시스템 상에서 실행되고 있지 않다고 결정되면, 상기 애플리케이션의 실행에 동의하는 선택가능한 옵션을 제공하는 사용자 인터페이스 요소를 디스플레이하도록 더 구성되는
    컴퓨팅 시스템.
  10. 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행될 경우, 상기 컴퓨팅 장치가 방법을 수행하도록 하는, 복수의 프로그래밍 인스트럭션을 포함하는 컴퓨터-판독가능 스토리지 매체로서,
    상기 방법은,
    연결 장치로부터 근접 서비스에 의해, 상기 컴퓨팅 장치의 근접 프로바이더를 통한 상기 컴퓨팅 장치 및 상기 연결 장치 사이의 근접 연결의 확립에 응답하여, 상기 컴퓨팅 장치와 페어링 연결을 확립하는 인바운드 요청을 수신하는 단계,
    상기 근접 서비스에 의해 사용자 인터페이스 요소가 디스플레이되도록 하는 단계 - 상기 사용자 인터페이스 요소는 상기 페어링 연결에 대해 동의하는 선택가능한 옵션을 포함함 - , 및
    상기 페어링 연결에 대한 동의를 나타내는 입력이 수신되면, 상기 근접 프로바이더와는 상이한 상기 장치의 통신 프로바이더를 통해 상기 컴퓨팅 장치의 페어링 서비스 및 상기 다른 장치 사이의 연결을 개시하는 단계
    를 포함하는, 컴퓨터-판독가능 스토리지 매체.
KR1020147006657A 2011-09-12 2011-10-11 플랫폼-인에이블형 근접 서비스 KR101951504B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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