IP Library Granted Patent US 10,353,992
Granted Patent B2
US 10,353,992 · App. 14/938,773 · Granted Jul 16, 2019

Adaptive determination of dynamically-composited web page elements in a web application

Inventors: Matt Basta (Mountain View, CA); Matt Willer (Redwood City, CA)
Assignee: Box, Inc.
G06F17/2247G06F16/958G06F17/212
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,353,992
App. No.
14/938,773
Granted
Jul 16, 2019
Kind
B2
Abstract

Systems for user interface composition in a collaboration environment. A method commences upon identifying a server in a cloud-based environment, wherein the server is interfaced with one or more storage devices that store one or more objects accessible by two or more users. Upon receiving a request to access an object that is stored in the cloud-based environment, the method processes the request to determine if the object has two or more rendering options such as a popup rendering option or a modal rendering option. If so, the method selects one of the rendering options and collects further information such a user profile information and/or a collaboration rulebase, which further information is used to drive composition of formatted object. The adaptively-formatted object is transferred over the network to satisfy the request.

Claims (52)

1. A method comprising:

receiving a first request to access a web page;

delivering the web page to a browser, wherein the web page comprises a markup language reference to an object accessible by two or more users that can be invoked from the web page;

receiving, from the browser, a second request to invoke the object;

processing the second request to determine if the object has two or more rendering options;

determining, in response to the second request, a selected one of the two or more rendering options, wherein the selected one of the two or more rendering options is based at least in part on applying a set of one or more rules, the set of one or more rules comprising:

a first rule that renders the object in a first rendering option of the two or more rendering options, wherein the first rule does not pertain to collaboration-oriented rules, and

a second rule that renders the object in a second rendering option of the two or more rendering options for the two or more users based at least in part on applying a collaboration rendering preference for the object, the collaboration rendering preference being established by a collaborator or administrator for the object for collaboration between the two or more users, the first rendering option and the second rendering option being different rendering options, wherein the second rule is a collaboration-oriented rule;

composing an adaptively-formatted object in response to the selected one of the rendering options, the selected one of the rendering options corresponding to the second rule that overrides the first rule; and

initiating a network transfer of the adaptively-formatted object.

2. The method of claim 1 , wherein determining the two or more rendering options uses a prioritization rule.

3. The method of claim 1 , wherein the two or more rendering options comprise at least two of, a web page option, or a popup option, or a modal option.

4. The method of claim 1 , wherein the rules to apply comprise at least one of, a server-side rule, or a requesting device rule, or a network characteristic rule, or an IO volume rule, or a user preference rule, or a conflict resolution rule, or any combination thereof.

5. The method of claim 1 , wherein the rules to apply comprise at least one of, a client-side rule, or a configurable test rule, or a state loss rule, or a developer annotation rule, or any combination thereof.

6. The method of claim 1 , wherein the adaptively-formatted object uses an AJAX object formatter.

7. The method of claim 1 , wherein the network transfer of the adaptively-formatted object include at least one of, a JSON-formatted content, or HTML content, or any combination thereof.

8. The method of claim 1 , wherein the adaptively-formatted object invokes a video renderer.

9. The method of claim 1 , wherein the adaptively-formatted object is composited based at least in part on a role of user.

10. The method of claim 1 , wherein the adaptively-formatted object is composited based at least in part on one or more developer annotations.

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 stored in memory and executed by a processor causes the processor to perform a set of acts, the acts comprising:

receiving a first request to access a web page;

delivering the web page to a browser, wherein the web page comprises a markup language reference to an object accessible by two or more users that can be invoked from the web page;

receiving, from the browser, a second request to invoke the object;

processing the second request to determine if the object has two or more rendering options;

determining, in response to the second request, a selected one of the two or more rendering options, wherein the selected one of the two or more rendering options is based at least in part on a set of one or more rules, the set of one or more rules comprising:

a first rule that renders the object in a first rendering option of the two or more rendering options, wherein the first rule does not pertain to collaboration-oriented rules, and

a second rule that renders the object in a second rendering option of the two or more rendering options for the two or more users based at least in part on applying a collaboration rendering preference for the object, the collaboration rendering preference being established by a collaborator or administrator for the object for collaboration between the two or more users, the first rendering option and the second rendering option being different rendering options, wherein the second rule is a collaboration-oriented rule;

composing an adaptively-formatted object in response to the selected one of the rendering options, the selected one of the rendering options corresponding to the second rule that overrides the first rule; and

initiating a network transfer of the adaptively-formatted object.

12. The computer program product of claim 11 , wherein determining the two or more rendering options uses a prioritization rule.

13. The computer program product of claim 11 , wherein the two or more rendering options comprise at least two of, a web page option, or a popup option, or a modal option.

14. The computer program product of claim 11 , wherein the rules to apply comprise at least one of, a server-side rule, or a requesting device rule, or a network characteristic rule, or an IO volume rule, or a user preference rule, or a conflict resolution rule, or any combination thereof.

15. The computer program product of claim 11 , wherein the rules to apply comprise at least one of, a client-side rule, or a configurable test rule, or a state loss rule, or a developer annotation rule, or any combination thereof.

16. The computer program product of claim 11 , wherein the adaptively-formatted object uses an AJAX object formatter.

17. The computer program product of claim 11 , wherein the network transfer of the adaptively-formatted object include at least one of, a JSON-formatted content, or HTML content, or any combination thereof.

18. The computer program product of claim 11 , wherein the adaptively-formatted object is composited based at least in part on one or more developer annotations.

19. A system comprising:

a server in a cloud-based environment, wherein the server is interfaced with one or more storage devices; and

one or more servers that perform steps of:

receiving a first request to access a web page;

delivering the web page to a browser, wherein the web page comprises a markup language reference to an object accessible by two or more users that can be invoked from the web page;

receiving, from the browser, a second request to invoke the object;

processing the second request to determine if the object has two or more rendering options;

determining, in response to the second request, a selected one of the two or more rendering options, wherein the selected one of the two or more rendering options is based at least in part on a set of one or more rules, the set of one or more rules comprising:

a first rule that renders the object in a first rendering option of the two or more rendering options, wherein the first rule does not pertain to collaboration-oriented rules, and

a second rule that renders the object in a second rendering option of the two or more rendering options for the two or more users based at least in part on applying a collaboration rendering preference for the object, the collaboration rendering preference being established by a collaborator or administrator for the object for collaboration between the two or more users, the first rendering option and the second rendering option being different rendering options, wherein the second rule is a collaboration-oriented rule;

composing an adaptively-formatted object in response to the selected one of the rendering options, the selected one of the rendering options corresponding to the second rule that overrides the first rule; and

initiating a network transfer of the adaptively-formatted object.

20. The system of claim 19 , wherein the one or more rules comprise at least one of, a server-side rule, or a requesting device rule, or a network characteristic rule, or an IO volume rule, or a user preference rule, or a conflict resolution rule, or any combination thereof.

21. The method of claim 1 , wherein the first rule comprises at least one of a server-side rule, or a requesting device rule, or a network characteristic rule, or an IO volume rule, or a client-side rule, or a configurable test rule, or a state loss rule, or a developer annotation rule, or any combination thereof.

22. The computer program product of claim 11 , wherein the first rule comprises at least one of a server-side rule, or a requesting device rule, or a network characteristic rule, or an TO volume rule, or a client-side rule, or a configurable test rule, or a state loss rule, or a developer annotation rule, or any combination thereof.

23. The system of claim 19 , wherein the first rule comprises at least one of a server-side rule, or a requesting device rule, or a network characteristic rule, or an IO volume rule, or a client-side rule, or a configurable test rule, or a state loss rule, or a developer annotation rule, or any combination thereof.

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 Nov 11, 2015
From: BASTA, MATT; WILLER, MATT
To: BOX, INC.
Reel/Frame 037017/0833 →
Continuity (1)
Related Publication 20170132185A1 · May 11, 2017