IP Library › Granted Patent US 12,346,670
Granted Patent B2
US 12,346,670 · App. 17/944,906 · Granted Jul 1, 2025

Systems and methods for generation of a tenant-specific service for a software-as-a-service platform

Inventors: Andrew James Lawson McVeigh (Malibu, CA); Adrian Vasile (Denver, CO); Rahul Mishra (Devon, PA); George Lucian Pancescu (Brasov, RO)
Assignee: Suvoda LLC
G06F8/311G06F8/71G06F8/61G06F8/65G06F9/45533G06F16/24573G06F16/9038H04L63/1433
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,346,670
App. No.
17/944,906
Granted
Jul 1, 2025
Kind
B2
Abstract

Technologies are provided for generation of an executable package that provides a tenant-specific service. Generation of the executable package can be based on customization assets and a core codebase. The core codebase can define core modules that provide a core service that is common across tenants. Each core module includes one or multiple extension points. The customizations can be defined within one or multiple virtual partitions, where a virtual partition includes a filesystem or another type of non-transitory storage structure. The VP can include multiple customization resources and customization components. The customizations can permit building extension modules that can be mapped onto respective extension points of core module(s) in order to customize the common core service and yield the tenant-specific service. The core codebase can be built to generate built core modules. The executable package can be formed by combining built extension modules and built core modules.

Claims (90)

1. A computer-implemented method comprising:

identifying a group of one or more references to respective first virtual partitions, the group of one or more references defining a graph representative of a logical organization of the respective first virtual partitions, wherein the graph comprises a first node representing a first one of the respective first virtual partitions and a second node representing a second one of the respective first virtual partitions;

determining, by a parse component, based on a parse of the one or more references, that the group of one or more references satisfies a consistency criterion;

generating, by a merge component, a second virtual partition by flattening the graph, the second virtual partition containing one or more computer-readable components present in the respective first virtual partitions, wherein the flattening comprises applying, in graph order, one or more primitive code segments present in at least one of the respective first virtual partitions;

generating, by a build subsystem, based on the one or more computer-readable components, one or more computer-executable components; and

executing the one or more computer-executable components.

2. The computer-implemented method of claim 1 , further comprising generating an executable package component by combining the one or more computer-readable components with second computer-executable components corresponding to a group of core modules.

3. The computer-implemented method of claim 1 , further comprising retaining the one or more computer-executable components within a data repository, wherein the one or more computer-executable components comprise at least one tenant-specific extension module.

4. The computer-implemented method of claim 1 , wherein the one or more computer-readable components comprise abstraction data defining human-readable content defining a manner of extending a tenant-specific service, wherein the human-readable content is devoid of program code or the human-readable content comprises a snippet of program code.

5. The computer-implemented method of claim 4 , wherein the generating, based on the one or more computer-readable components, the one or more computer-executable components comprises:

transforming the human-readable content into at least one program code artifact; and

building, using the at least one program code artifact, at least one particular computer-executable component of the one or more computer-executable components.

6. The computer-implemented method of claim 4 , wherein the generating, based on the one or more computer-readable components, the one or more computer-executable components comprises:

accessing, from the second virtual partition, the abstraction data;

accessing a code template; and

generating, based on the abstraction data and the code template, a first computer-executable component of the one or more computer-executable components.

7. The computer-implemented method of claim 3 , wherein the second virtual partition forms a part of the data repository, and wherein the respective first virtual partitions form part of a second data repository.

8. The computer-implemented method of claim 1 , wherein a reference of the group of one or more references comprises a unique location identifier indicative of a location, within a computer network, of a particular virtual partition of the respective first virtual partitions and further comprises a datum identifying a version of the particular virtual partition.

9. The computer-implemented method of claim 8 , wherein the unique location identifier comprises a uniform resource locator (URL), and wherein the version corresponds to a perennial unique identifier indicative of immutable content that forms the particular virtual partition at a defined time.

10. The computer-implemented method of claim 1 , wherein the flattening further comprises:

generating respective copies of configuration assets within the respective first virtual partitions; and

retaining, in the graph order, the respective copies within the second virtual partition.

11. The computer-implemented method of claim 10 , wherein the flattening further comprises:

determining that a conflict is present among a first copy of the respective copies and a second copy of the respective copies; and

determining a solution to the conflict by applying a defined process based on one or more policies.

12. The computer-implemented method of claim 10 , wherein the flattening further comprises:

determining that a conflict is present among a first copy of the respective copies and a second copy of the respective copies;

sending a report indicative of the conflict;

receiving resolution data defining a solution to the conflict; and

resolving the conflict by applying the solution.

13. A computing system comprising:

one or more processors; and

one or more memory devices storing computer-executable instructions that, in response to execution by the one or more processors, cause the computing system to:

identify a group of one or more references to respective first virtual partitions, the group of one or more references defining a graph representative of a logical organization of the respective first virtual partitions, wherein the graph comprises a first node representing a first one of the respective first virtual partitions and a second node representing a second one of the respective first virtual partitions;

determine, by a parse component, based on a parse of the one or more references, that the group of one or more references satisfies a consistency criterion;

generate, by a merge component, a second virtual partition by flattening the graph, the second virtual partition containing one or more computer-readable components present in the respective first virtual partitions, wherein the flattening comprises applying, in graph order, one or more primitive code segments present in at least one of the respective first virtual partitions;

generate, based on the one or more computer-readable components, one or more computer-executable components; and

execute the one or more computer-executable components.

14. The computing system of claim 13 , the one or more memory devices storing further computer-executable instructions that, in response to further execution by the one or more processors, further cause the computing system to generate an executable package component by combining the one or more computer-readable components with second computer-executable components corresponding to a group of core modules.

15. The computing system of claim 13 , the one or more memory devices storing further computer-executable instructions that, in response to further execution by the one or more processors, further cause the computing system to retain the one or more computer-executable components within a data repository, wherein the one or more computer-executable components comprise at least one tenant-specific extension module.

16. The computing system of claim 13 , wherein the one or more computer-readable components comprise abstraction data defining human-readable content defining a manner of extending a tenant-specific service, wherein the human-readable content is devoid of program code or the human-readable content comprises a snippet of program code.

17. The computing system of claim 16 , wherein generating, based on the one or more computer-readable components, the one or more computer-executable components comprises:

transforming the human-readable content into at least one program code artifact; and

building, using the at least one program code artifact, at least one particular computer-executable component of the one or more computer-executable components.

18. The computing system of claim 16 , wherein generating, based on the one or more computer-readable components, the one or more computer-executable components comprises:

accessing, from the second virtual partition, the abstraction data;

accessing a code template; and

generating, based on the abstraction data and the code template, a first computer-executable component of the one or more computer-executable components.

19. The computing system of claim 15 , wherein the second virtual partition forms a part of the data repository, and wherein the respective first virtual partitions form part of a second data repository.

20. The computing system of claim 13 , wherein the flattening comprises:

generating respective copies of configuration assets within the respective first virtual partitions; and

retaining, in the graph order, the respective copies within the second virtual partition.

21. The computing system of claim 20 , wherein the flattening further comprises:

determining that a conflict is present among a first copy of the respective copies and a second copy of the respective copies; and

determining a solution to the conflict by applying a defined process based on one or more policies.

22. The computing system of claim 20 , wherein the flattening further comprises:

determining that a conflict is present among a first copy of the respective copies and a second copy of the respective copies;

sending a report indicative of the conflict;

receiving resolution data defining a solution to the conflict; and

resolving the conflict by applying the solution.

23. At least one non-transitory computer-readable storage medium having processor-executable instructions encoded thereon that, in response to execution, cause a computing system to:

identify a group of one or more references to respective first virtual partitions, the group of one or more references defining a graph representative of a logical organization of the respective first virtual partitions, wherein the graph comprises a first node representing a first one of the respective first virtual partitions and a second node representing a second one of the respective first virtual partitions;

determine, by a parse component, based on a parse of the one or more references, that the group of one or more references satisfies a consistency criterion;

generate, by a merge component, a second virtual partition by flattening the graph, the second virtual partition containing one or more computer-readable components present in the respective first virtual partitions, wherein the flattening comprises applying, in graph order, one or more primitive code segments present in at least one of the respective first virtual partitions;

generate, by a build subsystem, based on the one or more computer-readable components, one or more computer-executable components; and

execute the one or more computer-executable components.

24. The at least one computer-readable non-transitory storage medium of claim 23 , wherein the processor-executable instructions, in response to further execution, further cause the computing system to generate an executable package component by combining the one or more computer-readable components with second computer-executable components corresponding to a group of core modules.

25. The at least one computer-readable non-transitory storage medium of claim 23 , wherein the processor-executable instructions, in response to further execution, further cause the computing system to retain the one or more computer-executable components within a data repository, wherein the one or more computer-executable components comprise at least one tenant-specific extension module.

26. The at least one computer-readable non-transitory storage medium of claim 23 , wherein the one or more computer-readable components comprise abstraction data defining human-readable content defining a manner of extending a tenant-specific service, wherein the human-readable content is devoid of program code or the human-readable content comprises a snippet of program code.

27. The at least one computer-readable non-transitory storage medium of claim 26 , wherein generating, based on the one or more computer-readable components, the one or more computer-executable components comprises:

transforming the human-readable content into at least one program code artifact; and

building, using the at least one program code artifact, at least one particular computer-executable component of the one or more computer-executable components.

28. The at least one computer-readable non-transitory storage medium of claim 26 , wherein generating, based on the one or more computer-readable components, the one or more computer-executable components comprises:

accessing, from the second virtual partition, the abstraction data;

accessing a code template; and

generating, based on the abstraction data and the code template, a first computer-executable component of the one or more computer-executable components.

29. The at least one computer-readable non-transitory storage medium of claim 25 , wherein the second virtual partition forms a part of the data repository, and wherein the respective first virtual partitions form part of a second data repository.

30. The at least one computer-readable non-transitory storage medium of claim 23 , wherein a reference of the group of one or more references comprises a unique location identifier indicative of a location, within a computer network, of a particular virtual partition of the respective first virtual partitions and further comprises a datum identifying a version of the particular virtual partition.

31. The at least one computer-readable non-transitory storage medium of claim 30 , wherein the unique location identifier comprises a uniform resource locator (URL), and wherein the version corresponds to a perennial unique identifier indicative of immutable content that forms the particular virtual partition at a defined time.

32. The at least one computer-readable non-transitory storage medium of claim 23 , wherein the flattening comprises:

generating respective copies of configuration assets within the respective first virtual partitions; and

retaining, in the graph order, the respective copies within the second virtual partition.

33. The at least one computer-readable non-transitory storage medium of claim 32 , wherein the flattening further comprises:

determining that a conflict is present among a first copy of the respective copies and a second copy of the respective copies; and

determining a solution to the conflict by applying a defined process based on one or more policies.

34. The at least one computer-readable non-transitory storage medium of claim 32 , wherein the flattening further comprises:

determining that a conflict is present among a first copy of the respective copies and a second copy of the respective copies;

sending a report indicative of the conflict;

receiving resolution data defining a solution to the conflict; and

resolving the conflict by applying the solution.

Assignments (4)
PATENT SECURITY AGREEMENT Recorded Mar 31, 2025
From: SUVODA LLC
To: ANTARES CAPITAL LP, AS COLLATERAL AGENT
Reel/Frame 070682/0896 →
RELEASE OF SECURITY INTEREST Recorded Mar 31, 2025
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: SUVODA LLC
Reel/Frame 070688/0313 →
SECURITY INTEREST Recorded Jun 6, 2024
From: SUVODA LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 067639/0382 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2023
From: MCVEIGH, ANDREW JAMES LAWSON; VASILE, ADRIAN; MISHRA, RAHUL; PANCESCU, GEORGE LUCIAN
To: SUVODA LLC
Reel/Frame 062923/0043 →
Continuity (2)
Provisional Application 63347422 · May 31, 2022
Related Publication 20230385030A1 · Nov 30, 2023
References Cited (54)
US 8650534B2 · Kopp et al. · 2014 [cited by applicant]
US 9509571B1 · Liu · 2016 [cited by applicant]
US 10824648B2 · Srivastava · 2020 [cited by applicant]
US 11061548B1 · Catakli et al. · 2021 [cited by applicant]
US 20130297544A1 · Allgaier · 2013 [cited by applicant]
US 20160246592A1 · Jamjoom et al. · 2016 [cited by applicant]
US 20160321288A1 · Malhotra · 2016 [cited by examiner]
US 20180218295A1 · Hasija et al. · 2018 [cited by applicant]
US 20180324204A1 · McClory · 2018 [cited by examiner]
US 20180375788A1 · Ionita et al. · 2018 [cited by applicant]
US 20190253457A1 · Koul · 2019 [cited by examiner]
US 20190265971A1 · Behzadi et al. · 2019 [cited by applicant]
US 20200137097A1 · Zimmermann et al. · 2020 [cited by applicant]
US 20200356635A1 · Szturo et al. · 2020 [cited by applicant]
US 20210250424A1 · Cameron et al. · 2021 [cited by applicant]
US 20220129798A1 · Chintalapati et al. · 2022 [cited by applicant]
US 20220138207A1 · Yelheri · 2022 [cited by examiner]
US 20220382522A1 · Heynemann Nascentes da Silva et al. · 2022 [cited by applicant]
US 20230315418A1 · Bokhan-Dilawari · 2023 [cited by examiner]
US 20230315789A1 · Werner · 2023 [cited by examiner]
US 20230319054A1 · Hendrey · 2023 [cited by examiner]
EP 4033425A1 · 2022 [cited by applicant]
Carlo Curino et al., Schism: a Workload-Driven Approach to Database Replication and Partitioning, 2010, [Retrieved on Feb. 10, 2025]. Retrieved from the internet: <URL: https://dspace.mit.edu/bitstream/handle/1721.1/733… [cited by examiner]
API Managment Platform & API Gateway_Tyk; http://tyk.oi/, dated Dec. 14, 2022; 6 pages. [cited by applicant]
Piral—The Ultimate Micro Frontends Framemwork; https:///www.piral.io/, dated Dec. 14, 2022, 11 pgs. [cited by applicant]
McVeigh, “A Rigorous, Architectural Approach to Extensivle Applications”, Imperial College London, Department of Computing, dated 2009, 298 pages. [cited by applicant]
SaaS Knockoffs, “Often Disguised as Wolves in SaaS Clothing”, SaaS knockoffs fail to live up to expectations, 7 pages. [cited by applicant]
Vault Query Language, Introduction to Vault Queries, https://developer.veevavault.com/vql/#introduction-to-vault-queries, dated Dec. 14, 2022, 114 pages. [cited by applicant]
API Managment Platform & API Gateway_Tyk; http://tyk.io/, dated Dec. 14, 2022; 16 pages. [cited by applicant]
Micro Frontends, https://microfrontends.com, dated Dec. 14, 2002, 4 pages. [cited by applicant]
Piral—The Ultimate Micro Frontends Framemwork; https:///www.piral.io/, dated Dec. 14, 2022, 4 pgs. [cited by applicant]
Webpack, Bundle your assets, https://webjack.js.org/, dated Dec. 14, 2002, 6 pgs. [cited by applicant]
Discover Data Warehouse & Business Intelligence Architecture, https://www.datapine.com/blog/date-warehousing-ans-business-intellig . . . ; dated Dec. 14, 2022, 22 pages. [cited by applicant]
Data Warehousing—Schemas; https://www.tutorialspoint.com/dwh/dwh_schemas.htm, dated Dec. 14, 2022; 5 pages. [cited by applicant]
Heap, “8 Common API Gateway Request Transformation Policies”, Jul. 27, 2021, API Gateway Request TransformationPolicies Guide, https://konghq.com/clog/api-gateway-request-transformation, 18 pages. [cited by applicant]
Vault Query Language, Introduction to Vault Queries, https://developer.veevavault.com/vql/#introduction-to-vault-queries, dated Dec. 14, 2022, 112 pages. [cited by applicant]
Vault Developer Portal, API + DOCS, https://developer.veevavault.com, 2022, dated Dec. 14, 2022, 2 pages. [cited by applicant]
MDL, https://developer.veevavault.com/mdl/#component-support-matrix, dated Dec. 14, 2022, 6 pages. [cited by applicant]
Documentation, REST API, https://developer.veevavault.com/docs/#rest-api, dated Deceber 14, 2022, 36 pages. [cited by applicant]
Vault Java SDK Documention, https://developer.veevavault.com/sdk/#vault-java-sdk-overview, dated Dec. 14, 2022, 87 pages. [cited by applicant]
Veeva, “Veeva Annouces New Application to Speed Validation Execution” Sep. 15, 2021, https://veeva.com/eu, 2 pages. [cited by applicant]
Unified Paperless Validation Solution for Life Sciences | Veeva, Faster Validation at Low Cost, https://www.veeva.com/products/vault-validation-management, dated Dec. 14, 2022, 5 pages. [cited by applicant]
Components—Saleforce Lightning Component Library, https://developer.salesforce.com/docs/component-library/overview/co . . . ,dated Dec. 14, 2022, 50 pages. [cited by applicant]
GraphQL Admin API reference, https://shopify.dev/api/admin-graphql, dated Dec. 14, 2022, 4 pages. [cited by applicant]
Edwards, “GraphQL in eCommerce”, https://developers.bloomreach.com/blog/2021/graphql-in-commerce.html, dated December Feb. 11, 2021, 11 pages. [cited by applicant]
E-commerce Al-Saleor Commerce, https://saleor.io/api, dated Dec. 14, 2022, 2 pages. [cited by applicant]
Super fast GraphQL API for eCommerce / Crystallize, Super fast GraphQL API for e Commerce, https://crystallize.com/graphql-api, dated Dec. 14, 2022, 15 pages. [cited by applicant]
Configuring and Extending Application, Oracle Fusion Cloud Applications, https://docs.oracle.com/en/cloud/assa/applications-common/22d/oaext/i . . . , dated Dec. 14, 2022, 1 page. [cited by applicant]
Fivetran / Automated, reliable, and secure data pipelines, “Optimize your data movement”, https://www.fivetran.com/, dated Dec. 14, 2022, 6 pages. [cited by applicant]
Cloud Data Fusion | Google Cloud, Cloud Data Fusion, https://cloud.google.com/data-fusion, dated Dec. 14, 2022, 13 pages. [cited by applicant]
Enterprise API Gateway Management | Kong Inc., “Take control of your APIs across any environment”, https://konghq.com/products/api-gateway-platform, dated Dec. 14, 2022, 11 pages. [cited by applicant]
Apigee API Mangement | Google Cloud,“Apigee API Managment”, https://cloud.google.com/apigee/, dated Dec. 14, 2022, 21 pages. [cited by applicant]
Veeva Vault Platform | Veeva, “Bringing Content and Data Together”, https://www.veeva.com/products/vult-platform/, dated Dec. 14, 2022, 7 pages. [cited by applicant]
U.S. Appl. No. 17/944,907, filed Sep. 14, 2022, Suvoda LLC. [cited by applicant]