IP Library Granted Patent US 12,730,631
Granted Patent B2
US 12,730,631 · App. 18/495,059 · Granted Sep 8, 2026

Selective deployment of software based on versioning schema

Inventors: Mark Edward Eastman (Holly Springs, NC); Donald Mark Allen (Colorado Springs, CO); Jeffrey C. Clark (Cary, NC); Terence James Boldt (Oakville, CA); John William Hayduk (Chapel Hill, NC); Mark William Emeis (Monument, CO)
Assignee: CISCO TECHNOLOGY, INC.
G06F8/71G06F8/61
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 12,730,631
App. No.
18/495,059
Granted
Sep 8, 2026
Kind
B2
Abstract

A method, computer system, and computer program product are provided for deploying software using a versioning schema. An n-dimensional string is obtained that describes a version of a component, wherein a value for each dimension describes a particular feature of the component. The n-dimensional string is analyzed using a template to determine each feature of the component. It is determined whether to deploy the version of the component based on the analyzing and based on criteria related to one or more features of the component.

Claims (41)

1 . A computer-implemented method comprising:

obtaining an n-dimensional string that describes a version of a component, wherein a value for each dimension describes a particular feature of the component, and wherein the n-dimensional string indicates one or more differences between the version of the component and another version of the component;

analyzing the n-dimensional string using a template to determine each feature of the component;

determining whether to deploy the version of the component based on the analyzing and based on criteria related to one or more features of the component; and

automatically instantiating, based on the determining, a deployment module that deploys the version of the component to one or more computing devices or one or more networking devices or skips a deployment of the version of the component.

2 . The computer-implemented method of claim 1 , wherein determining whether to deploy the version of the component comprises:

receiving criteria related to the one or more features from a plurality of entities; and

identifying one or more entities having criteria that are satisfied by determined features of the component.

3 . The computer-implemented method of claim 1 , wherein the template indicates one or more of: a presence of each feature, an absence of each feature, a type of each feature, and a change for each feature.

4 . The computer-implemented method of claim 1 , wherein the component comprises a software module.

5 . The computer-implemented method of claim 1 , wherein the component comprises a package of issue identification and remediation modules.

6 . The computer-implemented method of claim 1 , wherein the one or more computing devices or the one or more networking devices are located in a networking or computing environment.

7 . The computer-implemented method of claim 1 , wherein the n-dimensional string includes a template identifier that identifies the template for determining each feature of the component.

8 . The computer-implemented method of claim 1 , wherein the n-dimensional string includes a nested n-dimensional string including a nested template that is used to determine features corresponding to a nested set of values.

9 . The computer-implemented method of claim 1 , wherein the n-dimensional string includes a product name or a category descriptor.

10 . A system comprising:

one or more computer processors;

one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising instructions to operations including:

obtain an n-dimensional string that describes a version of a component, wherein a value for each dimension describes a particular feature of the component, and wherein the n-dimensional string indicates one or more differences between the version of the component and another version of the component;

analyze the n-dimensional string using a template to determine each feature of the component;

determine whether to deploy the version of the component based on the analyze operation and based on criteria related to one or more features of the component; and

automatically instantiate, based on the determine operation, a deployment module that deploys the version of the component to one or more computing devices or one or more networking devices or skips a deployment of the version of the component.

11 . The system of claim 10 , wherein the instructions to determine whether to deploy the version of the component comprise instructions to:

receive criteria related to the one or more features from a plurality of entities; and

identify one or more entities having criteria that are satisfied by determined features of the component.

12 . The system of claim 10 , wherein the template indicates one or more of: a presence of each feature, an absence of each feature, a type of each feature, and a change for each feature.

13 . The system of claim 10 , wherein the component comprises a software module.

14 . The system of claim 10 , wherein the component comprises a package of issue identification and remediation modules.

15 . The system of claim 10 , wherein the one or more computing devices or the one or more networking devices are located in a networking or computing environment.

16 . The system of claim 10 , wherein the n-dimensional string includes a template identifier that identifies the template for determining each feature of the component.

17 . The system of claim 10 , wherein the n-dimensional string includes a nested n-dimensional string including a nested template that is used to determine features corresponding to a nested set of values.

18 . One or more non-transitory computer readable storage media having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform operations including:

obtaining an n-dimensional string that describes a version of a component, wherein a value for each dimension describes a particular feature of the component, and wherein the n-dimensional string indicates one or more differences between the version of the component and another version of the component;

analyzing the n-dimensional string using a template to determine each feature of the component;

determining whether to deploy the version of the component based on the analyzing and based on criteria related to one or more features of the component; and

automatically instantiating, based on the determining, a deployment module that deploys the version of the component to one or more computing devices or one or more networking devices or skips a deployment of the version of the component.

19 . The one or more non-transitory computer readable storage media of claim 18 , wherein the program instructions for determining whether to deploy the version of the component cause the computer to:

receive criteria related to the one or more features from a plurality of entities; and

identify one or more entities having criteria that are satisfied by determined features of the component.

20 . The one or more non-transitory computer readable storage media of claim 18 , wherein the template indicates one or more of: a presence of each feature, an absence of each feature, a type of each feature, and a change for each feature.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2023
From: EASTMAN, MARK EDWARD; ALLEN, DONALD MARK; CLARK, JEFFREY C.; BOLDT, TERENCE JAMES; HAYDUK, JOHN WILLIAM; EMEIS, MARK WILLIAM
To: CISCO TECHNOLOGY, INC.
Reel/Frame 065356/0866 →
Continuity (1)
Related Publication 20250138814A1 · May 1, 2025
References Cited (25)
US 7389341B2 · Cornelius · 2008 [cited by examiner]
US 7506336B1 · Ninan · 2009 [cited by examiner]
US 8739150B2 · Gass · 2014 [cited by examiner]
US 9075695B2 · Pei · 2015 [cited by examiner]
US 9535685B1 · Wang · 2017 [cited by examiner]
US 11586436B1 · Jennings · 2023 [cited by applicant]
US 11675579B2 · Gupta · 2023 [cited by examiner]
US 20040093593A1 · Jhanwar · 2004 [cited by examiner]
US 20050210466A1 · Carter · 2005 [cited by examiner]
US 20100185595A1 · Gopalakrishnan · 2010 [cited by examiner]
US 20100228750A1 · Solin · 2010 [cited by examiner]
US 20110265073A1 · Vidal · 2011 [cited by examiner]
US 20130047139A1 · Bolton et al. · 2013 [cited by applicant]
US 20150339278A1 · Bao et al. · 2015 [cited by applicant]
US 20170212921A1 · Wu · 2017 [cited by examiner]
US 20180157486A1 · Bezzi · 2018 [cited by examiner]
US 20200351383A1 · Jayaraman · 2020 [cited by examiner]
US 20250298597A1 · Alluboyina · 2025 [cited by examiner]
Calver, “Calendar Versioning,” Timely Project Versioning, https://calver.org/, Jul. 1, 2019, 8 pages. [cited by applicant]
Cisco, “CX Cloud Release Notes May 2023,” https://www.cisco.com/c/en/us/support/docs/cx/cx-cloud/cx220472-cx-cloud-release-notes-may-2023.html, May 23, 2023, 3 pages. [cited by applicant]
GS1 US, “UPC, Barcodes & Prefixes,” The Global Language of Business, retrieved from https://www.gs1us.org/upcs-barcodes-prefixes, Oct. 12, 2023, 3 pages. [cited by applicant]
Bariatric Advantage, “Multivitamins Comparison,” Nutritional Products, retrieved from https://www.bariatricadvantage.com/multivitamins-comparison, Oct. 12, 2023, 1 page. [cited by applicant]
Preston-Werner, T., “Semantic Versioning 2.0.0,” retrieved from https://semver.org/, Oct. 12, 2023, 7 pages. [cited by applicant]
Wikipedia, “QR Code,” https://en.wikipedia.org/wiki/QR_code, Oct. 25, 2023, 30 pages. [cited by applicant]
Wikipedia, “Release Notes,” https://en.wikipedia.org/wiki/Release_notes, Sep. 26, 2023, 5 pages. [cited by applicant]