IP Library › Granted Patent US 9,888,070
Granted Patent B2
US 9,888,070 · App. 14/754,533 · Granted Feb 6, 2018

Brokered advanced pairing

Inventors: Benjamin Scott McGregor (Redmond, WA); Niket Ashok Sanghvi (Seattle, WA); Samuel David Adams (Bellevue, WA); Nabil Fates (Montreal, CA)
Assignee: Microsoft Technology Licensing, LLC
H04L67/1068G06F21/445G06F21/53H04L63/10H04L67/125H04L69/18
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,888,070
App. No.
14/754,533
Granted
Feb 6, 2018
Kind
B2
Abstract

Examples described herein provide advanced pairing between an application and a selected device within an application-driven user experience. An application is enabled to pair devices within the application context and customize the user experience without relying on an experience or user interface provided by an operating system. This application-driven pairing is abstracted from protocols, allowing the application to provide custom pairing user experiences for any protocol.

Claims (63)

1. A system for brokered device pairing, the system comprising:

at least one processor; and

a memory comprising computer program code and communicatively coupled to the at least one processor, the computer program code comprising;

an untrusted application executable by the at least one processor; and

a broker component executable by the at least one processor and configured to:

receive a pairing request from the untrusted application to pair with a selected device other than the system; and

manage device pairing operations between the untrusted application executing at the system and the selected device via an application-driven user interface, including providing device protocol information to the untrusted application and receiving device pairing instructions from the untrusted application.

2. The system of claim 1 , further comprising:

a device association framework, including a plurality of protocol providers having a plurality of protocol-specific parameters corresponding to pairing protocols, the broker component facilitating the device pairing for the application via the device association framework.

3. The system of claim 1 , further comprising:

an advanced pairing object instantiated by the untrusted application; and

an advanced pairing application programming interface configured to:

receive a pairing operation call from the untrusted application, including the advanced pairing object instantiated by the untrusted application;

generate the pairing request on behalf of the untrusted application; and

transmit the pairing request to the broker component.

4. The system of claim 3 , wherein the advanced pairing application programming interface is further configured to:

return the advanced pairing object to the untrusted application in response to the broker component grating the pairing request.

5. The system of claim 1 , further comprising:

a set of pairing ceremonies corresponding to the selected device associated with the pairing request, the untrusted application selecting a pairing ceremony from the set of pairing ceremonies for the device pairing.

6. The system of claim 5 , wherein the set of pairing ceremonies include at least

one of a push-button ceremony, a personal identification number entry ceremony, a personal identification number display ceremony, a personal identification number compare ceremony, a just works ceremony, or a custom ceremony.

7. The system of claim 1 , further comprising:

a consent component invoked by the broker component and configured to:

generate a user consent request associated with the pairing request;

determine whether user input received in response to the user consent request indicates the device pairing operations are allowed; and

in response to determining that the device pairing operations are allowed, allow the broker component to continue the device pairing operations.

8. The system of claim 7 , further comprising:

in response to determining that the device pairing operations are not allowed, provide an error message to the broker component, the broker component returning the error message to the untrusted application.

9. A method for brokered advanced pairing, the method comprising:

receiving, by a broker component at a computing device, a pairing request from an untrusted application at the computing device via an advanced pairing application programming interface to pair with a selected device;

determining whether the untrusted application at the computing device is able to pair with the selected device; and

in response to determining that the untrusted application is able to pair with the selected device, initiating device pairing operations with the selected device on behalf of the untrusted application at the computing device.

10. The method of claim 9 , further comprising:

in response to determining that the untrusted application is not able to pair with the selected device, returning an error message to the untrusted application via the advanced pairing application programming interface.

11. The method of claim 9 , wherein determining whether the application is able to pair with the selected device further comprises:

identifying one or more policies corresponding to device pairing; and

accessing capability declarations for at least one of the untrusted application or the selected device.

12. The method of claim 11 , wherein at least one of the one or more policies corresponding to the device pairing include a user confirmation command, further comprising:

invoking, by the broker component, a user consent component configured to generate a user consent request and receive user input in response to the user consent request;

in response to receiving an allowed pairing message from the user consent component, continuing the device pairing operations; and

in response to receiving a denied pairing message from the user consent component, returning a user denied error message to the untrusted application via the advanced pairing application programming interface.

13. The method of claim 9 , further comprising:

interrogating the selected device for pairing ceremonies via a device association framework;

receiving a set of pairing ceremonies from the selected device;

receiving, from the untrusted application, a selected pairing ceremony from the set of pairing ceremonies and pairing data;

communicating the selected pairing ceremony and the pairing data to the selected device; and

determining whether device pairing is successful.

14. The method of claim 13 , further comprising:

in response to determining that the device pairing is successful, return a success message to the untrusted application; and

in response to determining that the device pairing is not successful, return a device pairing error message to the untrusted application.

15. One or more computer storage media having computer-executable instructions, which on execution by a computer cause the computer to perform operations comprising:

instantiating, by an untrusted application at a computing device, an advanced pairing object having a selected device to pair; and

sending a request to a broker component at the computing device to initiate advanced pairing operations between the untrusted application at the computing device and the selected device via an advanced pairing application programming interface using the advanced pairing object.

16. The one or more computer storage media of claim 15 , having further computer-executable instructions comprising:

receiving a set of pairing ceremonies associated with the selected device;

selecting a pairing ceremony from the set of pairing ceremonies; and

providing the selected pairing ceremony and pairing data to the advanced pairing application programming interface for communication to the selected device via a device association framework.

17. The one or more computer storage media of claim 16 having further computer-executable instructions comprising:

generating an application-rendered pairing interface for user selection of the selected pairing ceremony; and

receiving the user selection of the selected pairing ceremony from the set of pairing ceremonies.

18. The one or more computer storage media of claim 16 , wherein the advanced pairing application programming interface receives permission from the broker component to call the device association framework to interrogate the selected device for pairing ceremonies, receives the set of pairing ceremonies from the selected device, and provides the set of pairing ceremonies to the application.

19. The one or more computer storage media of claim 15 , wherein the broker component receives the request to initiate the advanced pairing operations and determines whether the application is able to access the selected device based on at least one of one or more policies or capability declarations.

20. The one or more computer storage media of claim 15 , wherein the broker component receives the request to initiate the advanced pairing operations and determines whether to invoke a user consent component.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2015
From: MCGREGOR, BENJAMIN SCOTT; SANGHVI, NIKET ASHOK; ADAMS, SAMUEL DAVID; FATES, NABIL
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 036003/0178 →
Continuity (1)
Related Publication 20160381135A1 · Dec 29, 2016