IP Library Granted Patent US 7,213,228
Granted Patent B2
US 7,213,228 · App. 10/391,116 · Granted May 1, 2007

Methods and apparatus for implementing a remote application over a network

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 7,213,228
App. No.
10/391,116
Granted
May 1, 2007
Kind
B2
Abstract

A user interface, operating on a display client, for an application program, operating on a remote computer, is implemented such that the division of functionality between the application program and the user interface does not require the application program to possess information regarding the display capabilities of the display client. The remote computer transfers, to the display computer, an identification of a scene for a user interface of the application program. The scene defines an abstract layout for a screen display of the user interface. The user interface receives input from a user (e.g., the user selects a menu item from the user interface). The input event is interpreted, and data is generated based on the interpretation of the input event. The display client interprets the scene, and the data, based on the display capabilities of the display client. Based on this interpretation, the display client generates a display scene and display data for the scene. The display data is rendered on an output device of the display client.

Claims (53)

1. A method for implementing, on first and second display clients, a user interface of an application program operating on a remote computer, said method comprising the steps of:

operating application logic for said application program on said remote computer;

transferring, from said remote computer to said first and second display clients, a scene descriptor identifying an abstract scene for at least one screen display of said user interface, wherein said first and second display clients have one or more different display characteristics comprising screen resolution, supported color palettes, or ability to produce graphics or textual display;

interpreting a first input event received through said user interface at first display client to generate first input event data and a second input event received through said user interface at second display client to generate second input event data;

interpreting said scene descriptor and said first input event data at said first display client based on one or more display characteristics of said first display client to generate first display data;

interpreting said scene descriptor and said second input event data at said second display client based on one or more display characteristics of said second display client to generate second display data; and

displaying said first display data at said first display client and said second display data at said second display client to display the at least one screen display of said user interface at said first and second display clients.

2. The method as set forth in claim 1 , wherein:

transferring a scene descriptor identifying a scene further comprises the step of assigning a plurality of slots to said scene;

generating said first display data comprises iterating through said slots of said scene to generate said first display data; and

generating said second display data comprises iterating through said slots of said scene to generate said second display data.

3. The method as set forth in claim 1 , further comprising implementing at least one widget comprising a controller for interpreting an input event, a model for generating input event data and a view for generating display data.

4. The method as set forth in claim 3 , wherein implementing at least one widget comprises implementing a controller that is remote from or local to said first and second display clients.

5. The method as set forth in claim 3 , wherein implementing at least one widget comprises implementing a model that is remote from or local to said first and second display clients.

6. The method as set forth in claim 3 , wherein implementing at least one widget comprises implementing a view that is remote from or local to said first and second display clients.

7. The method as set forth in claim 1 , wherein said user interface is implemented on said first and second display clients without said application program having information regarding display characteristics of the first and second display clients.

8. A system comprising:

network;

remote computer, coupled to said network, configured for operating application logic for an application program, for implementing, on first and second display clients, a user interface of said application program, and for transferring to said first and second display clients, a scene descriptor identifying an abstract scene for at least one screen display of said user interface, wherein said first and second display clients have one or more different display characteristics comprising screen resolution, supported color palettes, or ability to produce graphics or textual display;

software configured for interpreting a first input event to generate first input event data and a second input event to generate second input event data;

first display client, coupled to said network, configured for implementing a said user interface for receiving said first input event through said user interface, for interpreting said scene descriptor and said first input event data based on one or more display characteristics of said first display client to generate a first display data, and for displaying said first display data to display the at least one screen display of said user interface; and

second display client, coupled to said network, configured for implementing said user interface, for receiving said second input event through said user interface, for interpreting said scene descriptor and said second input event data based on one or more display characteristics of said second display client to generate second display data, and for displaying said second display data to display the at least one screen display of said user interface.

9. The system as set forth in claim 8 , wherein said first and second display clients are further configured for:

storing a plurality of pre-defined scenes; and

instantiating said scene based on a pre-defined scene and said scene descriptor.

10. The system as set forth in claim 8 , wherein:

transferring a scene descriptor identifying a scene comprises assigning a plurality of slots to said scene;

generating said first display data comprises iterating through said slots of said scene to generate said first display data; and

generating said second display data comprises iterating through said slots of said scene to generate said second display data.

11. The system as set forth in claim 8 , wherein said software comprises at least one widget comprising a controller configured for interpreting an input event, a model configured for generating input event data, and a view configured for generating display data.

12. The system as set forth in claim 11 , wherein said controller of said widget is implemented remote from said first and second display clients or at said first and second display clients.

13. The system as set forth in claim 11 , wherein said model of said widget is implemented remote from said first and second display clients or at said first and second display clients.

14. The system as set forth in claim 11 , wherein said view of said widget is implemented remote from said first and second display clients or at said first and second display clients.

15. The system as set forth in claim 8 , wherein said user interface is implemented on said first and second display clients without said application program having information regarding display characteristics of the first and second display clients.

16. A computer readable storage medium comprising a plurality of instructions stored thereon, which when executed, implement, on first and second display clients, a user interface of an application program operating on a remote computer, the computer readable medium comprising sets of instructions for:

operating application logic for an application program on a remote computer;

transferring, from said remote computer to said first and second display clients, a scene descriptor identifying an abstract scene for at least one screen display of said user interface, wherein said first and second display clients have one or more different display characteristics comprising screen resolution, supported color palettes, or ability to produce graphics or textual display;

interpreting a first input event received through said user interface at first display client to generate first input event data and a second input event received through said user interface at second display client to generate second input event data;

interpreting said scene descriptor and said first input event data at said first display client based on one or more display characteristics of said first display client to generate first display data;

interpreting said scene descriptor and said second input event data at said second display client based on one or more display characteristics of said second display client to generate second display data; and

displaying said first display data at said first display client and said second display data at said second display client to display the at least one screen display of said user interface at said first and second display clients.

17. The computer readable storage medium as set forth in claim 16 , wherein transferring a scene descriptor identifying a scene comprises:

storing a plurality of pre-defined scenes at said first and second display clients; and

instantiating, at said first and second display clients, said scene based on a pre-defined scene and said scene descriptor.

18. The computer readable storage medium as set forth in claim 16 , wherein:

transferring a scene descriptor identifying a scene further comprises the step of assigning a plurality of slots to said scene;

generating said first display data comprises iterating through said slots of said scene to generate said first display data; and

generating said second display data comprises iterating through said slots of said scene to generate said second display data.

19. The computer readable storage medium as set forth in claim 16 , further comprising a set of instructions for implementing at least one widget comprising a controller for interpreting an input event, a model for generating input event data, and a view for generating display data.

20. The computer readable storage medium as set forth in claim 19 , wherein implementing at least one widget comprises implementing a controller that is remote from or local to said first and second display clients.

21. The computer readable storage medium as set forth in claim 19 , wherein implementing at least one widget comprises implementing a model that is remote from or local to said first and second display clients.

22. The computer readable storage medium as set forth in claim 19 , wherein implementing at least one widget comprises implementing a view that is remote from or local to said first and second display clients.

23. The computer readable storage medium as set forth in claim 16 , wherein said user interface is implemented on said first and second display clients without said application program having information regarding display characteristics of the first and second display clients.

Assignments (18)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Oct 27, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ROVI PRODUCT CORPORATION (AS SUCCESSOR-IN-INTEREST TO ROVI SOLUTIONS CORPORATION)
Reel/Frame 061786/0823 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2022
From: ADEIA SOLUTIONS LLC
To: ROVI PRODUCT CORPORATION
Reel/Frame 061503/0323 →
CHANGE OF NAME Recorded Oct 21, 2022
From: ROVI SOLUTIONS CORPORATION
To: ROVI SOLUTIONS LLC
Reel/Frame 061744/0928 →
CHANGE OF NAME Recorded Oct 21, 2022
From: ROVI SOLUTIONS LLC
To: ADEIA SOLUTIONS LLC
Reel/Frame 061744/0936 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053481/0790 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: HPS INVESTMENT PARTNERS, LLC
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053458/0749 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 25, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: APTIV DIGITAL INC.; GEMSTAR DEVELOPMENT CORPORATION; INDEX SYSTEMS INC.; ROVI GUIDES, INC.; ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; SONIC SOLUTIONS LLC; STARSIGHT TELECAST, INC.; UNITED VIDEO PROPERTIES, INC.; VEVEO, INC.
Reel/Frame 051145/0090 →
PATENT SECURITY AGREEMENT Recorded Nov 25, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 051110/0006 →
SECURITY INTEREST Recorded Nov 22, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 051143/0468 →
PATENT SECURITY AGREEMENT Recorded Jul 24, 2014
From: APTIV DIGITAL, INC.; GEMSTAR DEVELOPMENT CORPORATION; INDEX SYSTEMS INC.; ROVI GUIDES, INC.; ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; SONIC SOLUTIONS LLC; STARSIGHT TELECAST, INC.; UNITED VIDEO PROPERTIES, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 033407/0035 →
PATENT RELEASE Recorded Jul 24, 2014
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ALL MEDIA GUIDE, LLC; APTIV DIGITAL, INC.; GEMSTAR DEVELOPMENT CORPORATION; INDEX SYSTEMS INC.; ROVI CORPORATION; ROVI GUIDES, INC.; ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; STARSIGHT TELECAST, INC.; TV GUIDE INTERNATIONAL, INC.; UNITED VIDEO PROPERTIES, INC.
Reel/Frame 033396/0001 →
SECURITY INTEREST Recorded Sep 13, 2011
From: APTIV DIGITAL, INC., A DELAWARE CORPORATION; GEMSTAR DEVELOPMENT CORPORATION, A CALIFORNIA CORPORATION; INDEX SYSTEMS INC, A BRITISH VIRGIN ISLANDS COMPANY; ROVI CORPORATION, A DELAWARE CORPORATION; ROVI GUIDES, INC., A DELAWARE CORPORATION; ROVI SOLUTIONS CORPORATION, A DELAWARE CORPORATION; ROVI TECHNOLOGIES CORPORATION, A DELAWARE CORPORATION; STARSIGHT TELECAST, INC., A CALIFORNIA CORPORATION; UNITED VIDEO PROPERTIES, INC., A DELAWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027039/0168 →
RELEASE OF SECURITY INTEREST Recorded Oct 29, 2010
From: JPMORGAN CHASE BANK, N.A. (A NATIONAL ASSOCIATION)
To: ALL MEDIA GUIDE, LLC; APTIV DIGITAL, INC.; GEMSTAR DEVELOPMENT CORPORATION; INDEX SYSTEMS INC.; ODS PROPERTIES, INC.; ROVI DATA SOLUTIONS, INC. (FORMERLY KNOWN AS TV GUIDE DATA SOLUTIONS, INC.); ROVI GUIDES, INC. (FORMERLY KNOWN AS GEMSTAR-TV GUIDE INTERNATIONAL, INC.); ROVI SOLUTIONS CORPORATION (FORMERLY KNOWN AS MACROVISION CORPORATION); ROVI SOLUTIONS LIMITED (FORMERLY KNOWN AS MACROVISION EUROPE LIMITED); ROVI TECHNOLOGIES CORPORATION; STARSIGHT TELECAST, INC.; TV GUIDE, INC.; TV GUIDE ONLINE, LLC; UNITED VIDEO PROPERTIES, INC.
Reel/Frame 025222/0731 →
CHANGE OF NAME Recorded Jun 15, 2010
From: MACROVISION CORPORATION
To: ROVI SOLUTIONS CORPORATION
Reel/Frame 024539/0284 →
SECURITY AGREEMENT Recorded May 15, 2008
From: APTIV DIGITAL, INC.; GEMSTAR DEVELOPMENT CORPORATION; GEMSTAR-TV GUIDE INTERNATIONAL, INC.; INDEX SYSTEMS INC; MACROVISION CORPORATION; ODS PROPERTIES, INC.; STARSIGHT TELECAST, INC.; TV GUIDE ONLINE, LLC; UNITED VIDEO PROPERTIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 020986/0074 →
MERGER Recorded Apr 23, 2007
From: MEDIABOLIC, INC
To: MACROVISION CORPORATION
Reel/Frame 019466/0865 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2003
From: PUTTERMAN, DANIEL; DIETRICH, BRAD; DOORNBOS, JOHN; FREITAS, PEDRO
To: MEDIABOLIC, INC.
Reel/Frame 014638/0134 →