Systems and methods for generation of a tenant-specific service for a software-as-a-service platform
Inventors
McVeigh, Andrew James Lawson • Vasile, Adrian • Mishra, Rahul • Pancescu, George Lucian
Assignees
Interested in licensing this patent?
MTEC can help explore whether this patent might be available for licensing for your application.
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.
Core Innovation
The invention describes an extensible software-as-a-service multitenant platform in which a shared core codebase with core modules is extended for each tenant using tenant extension modules. Tenant extension modules are defined via virtual partitions and their associated extension points, where the extension is mapped to extension points exposed by the core modules to modify a tenant’s core API and/or core data model. The platform supports defining virtual partition references that include compatibility and versioning using perennial unique identifiers and unique location identifiers.
A build subsystem parses virtual partition references into a logical organization represented as a graph with nodes representing respective virtual partitions. The build subsystem determines that the group of one or more references satisfies a consistency criterion, then merges by flattening the graph in graph order by applying primitive code segments present in at least one of the virtual partitions. Flattening generates a second virtual partition that contains computer-readable components present in the respective first virtual partitions.
The platform further generates one or more computer-executable components based on the computer-readable components and executes the generated executable components. Flattening can include copying customization assets to preserve graph-order behavior, detecting and reporting conflicts among copies, and resolving conflicts using policies and/or received resolution data. The system also transforms tenant extension abstraction data, including human-readable content optionally having program code snippets, using code templates into executable program artifacts.
Claims Coverage
The partial claims include three independent claims. Across the independent claims, the inventive coverage centers on parsing references to virtual partitions into a graph, verifying a consistency criterion, flattening or merging in graph order by applying primitive code segments to produce a second virtual partition with computer-readable components, generating computer-executable components, and executing them.
Graph-representative virtual partitions referenced group with consistency criterion
Identify a group of one or more references to respective first virtual partitions, wherein the group defines a graph representative of a logical organization of the respective first virtual partitions, and determine by a parse component that the group satisfies a consistency criterion.
Graph-order flattening by applying primitive code segments into second virtual partition
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.
Build of computer-executable components from computer-readable components and executing
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.
Code-template-based generation of executable components from abstraction data
Access abstraction data from a second virtual partition and access a code template, and generate a first computer-executable component based on the abstraction data and the code template.
Tenant extension abstraction as human-readable content for extending a tenant-specific service
Use computer-readable components that include abstraction data defining human-readable content for extending a tenant-specific service, wherein the human-readable content includes no program code or includes a snippet of program code.
Copy-based flattening of configuration assets with graph-order retention
Flatten by generating copies of configuration assets in the respective first virtual partitions and retaining those copies in graph order within the second virtual partition.
Policy-based conflict detection and resolution among copies during flattening
Detect a conflict between copies during flattening and resolve the conflict by applying a defined process using one or more policies.
Conflict reporting with resolution data defining a conflict solution during flattening
Determine the presence of a conflict among copies during flattening, report the conflict by sending a report indicative of the conflict, receive resolution data defining a solution to the conflict, and resolve the conflict by applying the solution.
Virtual partition reference unique location identifier with version datum
Specify references including a unique location identifier for a virtual partition within a computer network and a datum identifying a version of that virtual partition.
Across the independent claims, the core inventive approach is to represent virtual partition references as a graph, validate the references using a consistency criterion, flatten or merge the graph in graph order by applying primitive code segments to create a second virtual partition with computer-readable components, then build and execute computer-executable components. Dependent claim features further cover code-template-based executable generation from tenant extension abstraction data, graph-order retention via copies of configuration assets, and conflict detection and resolution using policies and/or received resolution data, with references optionally including unique location identifiers and version information.
Stated Advantages
Documented Applications
No documented applications found
Interested in licensing this patent?