IP Library Granted Patent US 10,514,962
Granted Patent B2
US 10,514,962 · App. 14/929,980 · Granted Dec 24, 2019

Web comm channel system and method

Inventors: Ryan Matthew Knotts (San Jose, CA); Jeremy Spiegel (San Francisco, CA); Christopher Vasselli (Brattleboro, VT)
Assignee: Box, Inc.
G06F9/54H04L67/02H04L67/146H04L69/28H04L63/0823
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 10,514,962
App. No.
14/929,980
Granted
Dec 24, 2019
Kind
B2
Abstract

Disclosed is a method and mechanism to implement a communication channel between a web application and a locally running application on a computing system. A local communications server is employed to pass messages between the web application and a local application using a local comm server. The local comm server communicates with the local application over a named pipe that is dedicated to a specific web session and/or application.

Claims (47)

1. A method comprising:

identifying a computing device comprising a web application session, a local communications server, and a local application; and

communicating between the web application session and the local application via the local communications server, wherein communications between the web application session and the local application via the local communications server is implemented by:

generating an identifier for the web application session, the web application session corresponding to a web application executed with a web browser,

communicating a request between the web application session and the local communications server, and

opening an IPC (inter-process communications) channel between the local communications server and the local application using at least the identifier, wherein communicating between the local communications server and the local application is performed over the IPC channel.

2. The method of claim 1 , wherein a second IPC channel is used to communicate between the local communications server and a second local application.

3. The method of claim 2 , wherein the second local application is on a different desktop from the local application.

4. The method of claim 1 , wherein the identifier is stored in at least one of a cookie or a local storage medium.

5. The method of claim 1 , wherein the local application comprises an edit application, and the edit application calls a document editor application to open a locally stored copy of a file from a remote cloud server.

6. The method of claim 1 , wherein the IPC channel comprises a named pipe.

7. The method of claim 1 , wherein the local application comprises a posture check application that performs a posture check of a local system.

8. The method of claim 7 , wherein the request comprises a document having a set of criteria to be evaluated for the posture check, including at least one of the following: (a) whether a correct type of encryption is implemented; (b) whether a calling system is managed and/or owned by a designated entity; (c) whether an anti-virus program installed; (d) whether a firewall is installed; or (e) whether a minimal OS version is installed.

9. The method of claim 1 , wherein the identifier corresponds to an expiration period.

10. The method of claim 1 , wherein the request comprises a Cross Origin Resource Sharing (CORS) request.

11. A computer program product, embodied in a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a process, the process comprising:

identifying a computing device comprising a web application session, a local communications server, and a local application; and

communicating between the web application session and the local application via the local communication server, wherein a communication channel is configured between the web application session and the local application by:

generating an identifier for the web application session, the web application session corresponding to a web application executed with a web browser,

communicating a request between the web application session and the local communications server, and

opening an IPC (inter-process communications) channel between the local communications server and the local application using at least the identifier, wherein communicating between the local communications server and the local application is performed over the IPC channel.

12. The computer program product of claim 11 , wherein a second IPC channel is used to communicate between the local communications server and a second local application.

13. The computer program product of claim 11 , wherein a second local application is on a different desktop from the local application.

14. The computer program product of claim 13 , wherein the identifier is stored in at least one of a cookie or a local storage medium.

15. The computer program product of claim 11 , wherein the local application comprises an edit application, and the edit application calls a document editor application to open a locally stored copy of a file from a remote cloud server.

16. The computer program product of claim 11 , wherein the local application comprises a posture check application that performs a posture check of a local system.

17. The computer program product of claim 16 , wherein the request comprises a document having a set of criteria to be evaluated for the posture check, including at least one of the following: (a) whether a correct type of encryption is implemented; (b) whether a calling system is managed and/or owned by a designated entity; (c) whether an anti-virus program installed; (d) whether a firewall is installed; or (e) whether a minimal OS version is installed.

18. The computer program product of claim 11 , wherein the IPC channel comprises a named pipe.

19. The computer program product of claim 11 , wherein the request comprises a Cross Origin Resource Sharing (CORS) request.

20. The computer program product of claim 11 , wherein the identifier corresponds to an expiration period.

21. A system comprising:

a processor; and

a memory comprising a computer program product, embodied in a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by the processor causes the processor to execute a process, the process comprising:

identifying a computing device comprising a web application session, a local communications server, and a local application; and

communicating between the web application session and the local application via the local communication server, wherein a communication channel is configured between the web application session and the local application by:

generating an identifier for the web application session, the web application session corresponding to a web application executed with a web browser,

communicating a request between the web application session and the local communications server, and

opening an IPC (inter-process communications) channel between the local communications server and the local application using at least the identifier, wherein communicating between the local communications server and the local application is performed over the IPC channel.

22. The system of claim 21 , wherein a second IPC channel is used to communicate between the local communications server and a second local application.

23. The system of claim 22 , wherein the second local application is on a different desktop from the local application.

24. The system of claim 21 , wherein the identifier is stored in at least one of a cookie or a local storage medium.

25. The system of claim 21 , wherein the local application comprises an edit application, and the edit application calls a document editor application to open a locally stored copy of a file from a remote cloud server.

26. The system of claim 21 , wherein the local application comprises a posture check application that performs a posture check of a local system.

27. The system of claim 26 , wherein the request comprises a document having a set of criteria to be evaluated for the posture check, including at least one of the following: (a) whether a correct type of encryption is implemented; (b) whether a calling system is managed and/or owned by a designated entity; (c) whether an anti-virus program installed; (d) whether a firewall is installed; or (e) whether a minimal OS version is installed.

28. The system of claim 21 , wherein the IPC channel comprises a named pipe.

29. The system of claim 21 , wherein the request comprises a Cross Origin Resource Sharing (CORS) request.

30. The system of claim 21 , wherein the identifier corresponds to an expiration period.

Assignments (2)
SECURITY INTEREST Recorded Jul 26, 2023
From: BOX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 064389/0686 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2017
From: KNOTTS, RYAN MATTHEW; SPIEGEL, JEREMY; VASSELLI, CHRISTOPHER
To: BOX, INC.
Reel/Frame 043037/0212 →
Continuity (1)
Related Publication 20170123864A1 · May 4, 2017