IP Library Granted Patent US 11,758,016
Granted Patent B2
US 11,758,016 · App. 15/875,161 · Granted Sep 12, 2023

Hosted application as web widget toolkit

Inventors: Shengbo Teng (Beijing, CN); Sam Zhao (Beijing, CN); Wen Wang (Beijing, CN); Nan Wang (Beijing, CN); Jingtao Zhang (Beijing, CN)
Assignee: VMWARE, INC.
H04L67/60G06F9/00G06F16/00H04L63/08H04L65/00H04L65/61H04L67/02H04L67/04H04L67/08H04N21/00H04L67/01
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 11,758,016
App. No.
15/875,161
Granted
Sep 12, 2023
Kind
B2
Abstract

Embodiments of the present disclosure relate to techniques for providing a remoted application to a client device over a network. Certain embodiments involve receiving, by a web server and from the client device, a request for the remoted application. The request may comprise a tag which identifies one or more attributes of the remoted application. Embodiments further involve launching, by the web server and based on the tag, the remoted application. Embodiments further involve providing, by the web server and to the client device, a video stream of the remoted application. The video stream of the remoted application may comprise one or more images rendered based on raw data of the remoted application. Embodiments further involve receiving, by the web server and from the client device, user input and providing, by the web server and based on the user input, application input to the remoted application.

Claims (49)

1. A computer-implemented method for providing a remoted application to a client device over a network, comprising:

receiving, by at least one computing device and from the client device, a request for the remoted application, wherein the request comprises a tag which identifies a plurality of attributes of the remoted application, the plurality of attributes comprising an identifier for the remoted application, a source for the remoted application, and at least one control associated with the remoted application, the at least one control comprising a wrapper around at least one method of the remoted application;

launching, by the at least one computing device and based on the plurality of attributes identified in the tag, the remoted application;

rendering, by the at least one computing device, a video stream of the remoted application using raw data representing at least real-time visual output of the remoted application;

providing, by the at least one computing device and to the client device, the video stream of the remoted application;

receiving, by the at least one computing device and from the client device, user input provided with respect to the video stream via the at least one control to allow input to be provided to the remoted application;

translating, by the at least one computing device, the user input into application input based at least in part on invoking the at least one method of the remoted application according to at least one parameter of the user input; and

providing, by the at least one computing device, the application input to the remoted application.

2. The method of claim 1 , wherein the remoted application comprises three-dimensional graphics.

3. The method of claim 1 , wherein the remoted application is executed using processing and storage resources of the at least one computing device which is remote from the client device.

4. The method of claim 3 , wherein the at least one computing device communicates with an application server securely by either:

communicating with the application server through a trusted connection server; or

establishing an authenticated session with the application server using credentials associated with a user of the client device.

5. The method of claim 3 , wherein the remoted application is executed using processing and storage resources of an application server hosted within the at least one computing device.

6. The method of claim 1 , wherein the plurality of attributes further comprise a type that defines a platform on which the remoted application is based.

7. The method of claim 1 , wherein the at least one control defined in the tag allow the user input to be received by the at least one computing device while the video stream of the remoted application is provided to the client device.

8. A non-transitory computer-readable medium comprising instructions which, when executed by one or more processors, cause the one or more processors to perform a method for providing a remoted application to a client device over a network, comprising:

receiving, by at least one computing device and from the client device, a request for the remoted application, wherein the request comprises a tag which identifies a plurality of attributes of the remoted application, the plurality of attributes comprising an identifier for the remoted application, a source for the remoted application, and at least one control associated with the remoted application, the at least one control comprising a wrapper around at least one method of the remoted application;

launching, by the at least one computing device and based on the plurality of attributes identified in the tag, the remoted application;

rendering, by the at least one computing device, a video stream of the remoted application using raw data representing at least real-time visual output of the remoted application;

providing, by the at least one computing device and to the client device, the video stream of the remoted application;

receiving, by the at least one computing device and from the client device, user input provided with respect to the video stream via the at least one control to allow input to be provided to the remoted application;

translating, by the at least one computing device, the user input into application input based at least in part on invoking the at least one method of the remoted application according to at least one parameter of the user input; and

providing, by the at least one computing device and based on the user input, the application input to the remoted application.

9. The non-transitory computer-readable medium of claim 8 , wherein the remoted application comprises three-dimensional graphics.

10. The non-transitory computer-readable medium of claim 8 , wherein the remoted application is executed using processing and storage resources of the at least one computing device which is remote from the client device.

11. The non-transitory computer-readable medium of claim 10 , wherein the at least one computing device communicates with an application server securely by either:

communicating with the application server through a trusted connection server; or

establishing an authenticated session with the application server using credentials associated with a user of the client device.

12. The non-transitory computer-readable medium of claim 10 , wherein the remoted application is executed using processing and storage resources of an application server hosted within the at least one computing device.

13. The non-transitory computer-readable medium of claim 8 , wherein the plurality of attributes further comprise a type that defines a platform on which the remoted application is based.

14. A computer system, comprising:

at least one computing device comprising one or more processors;

a non-transitory computer-readable medium comprising instructions which, when executed by the one or more processors, cause the one or more processors to perform a method for providing a remoted application to a client device over a network, the method comprising:

receiving, by the at least one computing device and from the client device, a request for the remoted application, wherein the request comprises a tag which identifies a plurality of attributes of the remoted application, the plurality of attributes comprising an identifier for the remoted application, a source for the remoted application, and at least one control associated with the remoted application, the at least one control comprising a wrapper around at least one method of the remoted application;

launching, by the at least one computing device and based on the plurality of attributes identified in the tag, the remoted application;

rendering, by the at least one computing device, a video stream of the remoted application using raw data representing at least real-time visual output of the remoted application;

providing, by the at least one computing device and to the client device, the video stream of the remoted application;

receiving, by the at least one computing device and from the client device, user input provided with respect to the video stream via the at least one control to allow input to be provided to the remoted application;

translating, by the at least one computing device, the user input into application input based at least in part on invoking the at least one method of the remoted application according to at least one parameter of the user input; and

providing, by the at least one computing device and based on the user input, the application input to the remoted application.

15. The computer system of claim 14 , wherein the remoted application comprises three-dimensional graphics.

16. The computer system of claim 14 , wherein the remoted application is executed using processing and storage resources of the at least one computing device which is remote from the client device.

17. The computer system of claim 16 , wherein the at least one computing device communicates with an application server securely by either:

communicating with the application server through a trusted connection server; or

establishing an authenticated session with the application server using credentials associated with a user of the client device.

18. The computer system of claim 16 , wherein the remoted application is executed using processing and storage resources of an application server hosted within the at least one computing device.

19. The computer system of claim 16 , wherein the at least one method comprises a JavaScript control.

20. The computer system of claim 14 , wherein the one or more plurality of attributes further comprise a type that defines a platform on which the remoted application is based.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2018
From: TENG, SHENGBO; ZHAO, SAM; WANG, WEN; WANG, NAN; ZHANG, JINGTAO
To: VMWARE, INC.
Reel/Frame 044665/0554 →