IP Library Granted Patent US 9,229,702
Granted Patent B1
US 9,229,702 · App. 14/012,978 · Granted Jan 5, 2016

Systems and methods for application plugin deployment for websites

Inventors: Yuri Kapulkin (San Francisco, CA); Douglas Schroeder (Pittsburg, CA); Chhama Jain (Emeryvile, CA); Venkatesh Subramanian (Dublin, CA); Jeffrey Yeldezian (Oakland, CA)
Assignee: Lithium Technologies, Inc.
G06F8/65G06F8/70G06F8/61G06F9/44536
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,229,702
App. No.
14/012,978
Granted
Jan 5, 2016
Kind
B1
Abstract

The method manages customization upgrades to a production website while keeping it accessible. The website currently utilizes a first version of a software plugin. A user requests copying a second version of the plugin from another website to production, which is then authorized. Copying the plugin makes both versions simultaneously operational for distinct groups of users. Users request a webpage that utilizes the plugin, and receive the webpage customized by the first or second version of the plugin depending on whether they are preview-mode users. A request to designate the second version of the plugin as the live version is submitted, and authorization to implement the request is received. After designating the second version of the plugin as the live version, all subsequent requests for the webpage result in receiving the webpage customized by the second version of the plugin regardless of whether the users are designated as preview-mode users.

Claims (69)

1. A method of managing customization upgrades to a production website, performed by one or more servers, each having one or more processors and memory, the method comprising:

receiving a request from a first user to copy a second version of a software plugin from a staging website to a production website, wherein the production website currently utilizes a first version of the software plugin, and the software plugin is used to customize a webpage at the production site;

receiving authorization from a second user to implement the first user's request, and subsequently copying the second version of the software plugin to the production website without overwriting the first version of the software plugin, thereby making both the first and second versions of the software plugin simultaneously current versions of the software plugin for the production website, providing a first requester of the webpage with a second webpage version customized by the second version of the software plugin when the first requester is designated as a preview mode user and providing the first requester with a first webpage version customized by the first version of the software plugin when the first requester is not designated as a preview mode user;

receiving a request to designate the second version of the software plugin as a live version, and receiving authorization to implement the designation;

in accordance with the designation request, designating the second version of the software plugin as the live version; and

receiving a subsequent request for the webpage from a second requester, and providing the webpage customized by the second version of the software plugin to the second requester regardless of whether the second requester is designated as a preview mode user.

2. The method of claim 1 , further comprising:

receiving a request to rollback the second version of the software plugin;

in accordance with the rollback request, designating the first version of the software plugin as the live version; and

receiving a subsequent request for the webpage from a third requester, and providing the webpage customized by the first version of the software plugin to the third requester regardless of whether the third requester is designated as a preview mode user.

3. The method of claim 1 , further comprising prior to designating the second version of the software plugin as the live version:

receiving input from the first requester to change the first requester's designation as a preview mode user, and updating a user preference of the first requester accordingly;

receiving a subsequent request for the webpage from the first requester; and

in response to the subsequent request from the first requester for the webpage:

providing the first requester with the webpage customized by the second version of the software plugin when the updated user preference of the first requester designates the first requester as a preview mode user; and

providing the first requester with the webpage customized by the first version of the software plugin when the updated user preference of the first requester does not designate the first requester as a preview mode user.

4. The method of claim 1 , wherein the software plugin comprises a plurality of distinct components.

5. The method of claim 1 , wherein the first user and the second user are distinct.

6. The method of claim 1 , wherein each respective user of the website has a corresponding respective set of user preferences, and designation as a preview mode user is one of the user preferences that is modifiable by each respective user.

7. The method of claim 1 , wherein copying the second version of the software plugin to the production website comprises:

copying the second version of the software plugin from the staging website to an intermediate website in accordance with first level authorization;

providing access to the webpage customized by the second version of the software plugin for users of the intermediate website; and

copying the second version of the software plugin from the intermediate website to the production website in accordance with second level authorization distinct from the first level authorization.

8. The method of claim 1 , wherein the staging website and the production website both access software plugins from a single plugin repository, and wherein copying the second version of the software plugin to the production website comprises updating a plugin status table to specify that the second version of the software plugin is in a preview mode at the production website.

9. A computer server system providing access to a production website, comprising:

one or more processors;

memory; and

one or more programs stored in the memory, the one or more programs including instructions for:

receiving a request from a first user to copy a second version of a software plugin from a staging website to the production website, wherein the production website currently utilizes a first version of the software plugin, and the software plugin is used to customize a webpage at the production site;

receiving authorization from a second user to implement the first user's request, and subsequently copying the second version of the software plugin to the production website without overwriting the first version of the software plugin, thereby making both the first and second versions of the software plugin simultaneously current versions of the software plugin for the production website, providing a requester of the webpage with a second webpage version customized by the second version of the software plugin when the requester is designated as a preview mode user and providing the requester with a first webpage version customized by the first version of the software plugin when the requester is not designated as a preview mode user;

receiving a request to designate the second version of the software plugin as a live version, and receiving authorization to implement the designation;

in accordance with the designation request, designating the second version of the software plugin as the live version; and

receiving a subsequent request for the webpage from a second requester, and providing the webpage customized by the second version of the software plugin to the second requester regardless of whether the second requester is designated as a preview mode user.

10. The computer server system of claim 9 , wherein the one or more programs further include instructions for:

receiving a request to rollback the second version of the software plugin;

in accordance with the rollback request, designating the first version of the software plugin as the live version; and

receiving a subsequent request for the webpage from a third requester, and providing the webpage customized by the first version of the software plugin to the third requester regardless of whether the third requester is designated as a preview mode user.

11. The computer server system of claim 9 , wherein the one or more programs further include instructions that execute prior to designating the second version of the software plugin as the live version, for:

receiving input to change whether the first requester is designated as a preview-mode user;

receiving a subsequent request for the webpage from the first requester; and

responding to the subsequent request from a first requester for the webpage by:

providing the first requester with the webpage customized by the second version of the software plugin when the first requester is designated as a preview mode user; and

providing the first requester with the webpage customized by the first version of the software plugin when the first requester is not designated as a preview mode user.

12. The computer server system of claim 9 , wherein the instructions for copying the second version of the software plugin to the production website comprise instructions for:

copying the second version of the software plugin from the staging website to an intermediate website in accordance with first level authorization;

providing access to the webpage customized by the second version of the software plugin for users of the intermediate website; and

copying the second version of the software plugin from the intermediate website to the production website in accordance with second level authorization distinct from the first level authorization.

13. The computer server system of claim 9 , wherein the staging website and the production website both access software plugins from a single plugin repository, and wherein the instructions for copying the second version of the software plugin to the production website include instructions for updating a plugin status table to specify that the second version of the software plugin is in a preview mode at the production website.

14. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer server system, the one or more programs comprising instructions for:

receiving a request from a first user to copy a second version of a software plugin from a staging website to the production website, wherein the production website currently utilizes a first version of the software plugin, and the software plugin is used to customize a webpage at the production site;

receiving authorization from a second user to implement the first user's request, and subsequently copying the second version of the software plugin to the production website without overwriting the first version of the software plugin, thereby making both the first and second versions of the software plugin simultaneously current versions of the software plugin for the production website, providing a requester of the webpage with a second webpage version customized by the second version of the software plugin when the requester is designated as a preview mode user and providing the requester with a first webpage version customized by the first version of the software plugin when the requester is not designated as a preview mode user;

receiving a request to designate the second version of the software plugin as a live version, and receiving authorization to implement the designation;

in accordance with the designation request, designating the second version of the software plugin as the live version; and

receiving a subsequent request for the webpage from a second requester, and providing the webpage customized by the second version of the software plugin to the second requester regardless of whether the second requester is designated as a preview mode user.

15. The non-transitory computer readable storage medium of claim 14 , wherein the one or more programs further comprise instructions for:

receiving a request to rollback the second version of the software plugin;

in accordance with the rollback request, designating the first version of the software plugin as the live version; and

receiving a subsequent request for the webpage from a third requester, and providing the webpage customized by the first version of the software plugin to the third requester regardless of whether the first requester is designated as a preview mode user.

16. The non-transitory computer readable storage medium of claim 14 , wherein the one or more programs further comprise instructions that execute prior to designating the second version of the software plugin as the live version, for:

receiving input to change whether the first requester is designated as a preview-mode user;

receiving a subsequent request for the webpage from the first requester; and

responding to the subsequent request from a first requester for the webpage by:

providing the first requester with the webpage customized by the second version of the software plugin when the first requester is designated as a preview mode user; and

providing the first requester with the webpage customized by the first version of the software plugin when the first requester is not designated as a preview mode user.

17. The non-transitory computer readable storage medium of claim 14 , wherein the instructions for copying the second version of the software plugin to the production website comprise instructions for:

copying the second version of the software plugin from the staging website to an intermediate website in accordance with first level authorization;

providing access to the webpage customized by the second version of the software plugin for users of the intermediate website; and

copying the second version of the software plugin from the intermediate website to the production website in accordance with second level authorization distinct from the first level authorization.

18. The non-transitory computer readable storage medium of claim 14 , wherein the staging website and the production website both access software plugins from a single plugin repository, and wherein the instructions for copying the second version of the software plugin to the production website comprise instructions for updating a plugin status table to specify that the second version of the software plugin is in a preview mode at the production website.

Assignments (8)
CHANGE OF NAME Recorded Apr 11, 2019
From: LITHIUM TECHNOLOGIES, LLC
To: KHOROS, LLC
Reel/Frame 048876/0672 →
PATENT SECURITY AGREEMENT Recorded Oct 4, 2017
From: LITHIUM TECHNOLOGIES, LLC
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 044117/0161 →
ENTITY CONVERSION Recorded Sep 12, 2017
From: LITHIUM TECHNOLOGIES, INC.
To: LITHIUM TECHNOLOGIES, LLC
Reel/Frame 043829/0780 →
RELEASE OF SECURITY INTEREST Recorded Jul 28, 2017
From: SILICON VALLEY BANK
To: LITHIUM TECHNOLOGIES, INC.
Reel/Frame 043135/0667 →
RELEASE OF SECURITY INTEREST Recorded Jul 28, 2017
From: HERCULES CAPITAL, INC., AS AGENT
To: LITHIUM TECHNOLOGIES, INC.; LITHIUM INTERNATIONAL, INC.
Reel/Frame 043135/0464 →
SECURITY INTEREST Recorded Nov 17, 2016
From: LITHIUM TECHNOLOGIES, INC.
To: SILICON VALLEY BANK
Reel/Frame 040362/0169 →
SECURITY INTEREST Recorded Nov 16, 2016
From: LITHIUM TECHNOLOGIES, INC.; LITHIUM INTERNATIONAL, INC.
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 040348/0871 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2013
From: KAPULKIN, YURI; SCHROEDER, DOUGLAS; JAIN, CHHAMA; SUBRAMANIAN, VENKATESH; YELDEZIAN, JEFFREY
To: LITHIUM TECHNOLOGIES, INC.
Reel/Frame 031202/0083 →