Extensible software-as-a-service computing 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 an extensible software-as-a-service (SaaS) computing platform. In some embodiments, a computing system includes computer-executable components comprising multiple core modules that provide a defined service. The multiple core modules include at least one extension point corresponding to a first core module of the multiple core modules, where a first extension point of the at least one extension point has a tenant-specific extension module mapped thereto that customizes the defined service. The computer-executable components also can include an application programming interface (API) corresponding to a defined tenant. The computing system also includes a data model corresponding to the defined tenant. Tenant-specific extension modules mapped to the at least one extension point can customize the API and/or the data model.
Core Innovation
A computing system uses multiple core modules configured to provide a defined service, where the multiple core modules comprise at least one extension point corresponding to a first core module. A first extension point is mapped to a tenant-specific extension module that customizes the defined service to a defined tenant. The customized defined service is associated with an API corresponding to the defined tenant and a data model corresponding to the defined tenant.
An API router component receives a message invoking a function call to the customized defined service and including an attribute identifying the defined tenant. The API router redirects the function call to the customized defined service based on the tenant-identifying attribute, and exposes the API. This enables tenant-specific customization of the defined service through tenant-specific extension modules mapped to extension points in the core modules.
A method generates a copy of source program code corresponding to multiple core modules providing a defined service, where the multiple core modules comprise at least one first extension point corresponding to a first core module. At least one second extension point is added to the at least one first extension point in the copy of the source program code, with the second extension point being specific to a defined tenant. A next version of the multiple core modules is generated based on a current version of the multiple core modules and the copy having the added tenant-specific second extension point, and second program code is built resulting in an executable package component that comprises the multiple core modules including the added tenant-specific extension point.
In an integrity validation workflow, automated tests are applied to probe the integrity of the copy of the source program code and to determine whether adding the second extension point changes control flow. In addition, automated testing can probe the integrity of an executable package component. The described approach can include generating and building a next version of the core modules for tenant-specific extensibility, with a defined service that can include a clinical trial service.
Claims Coverage
The independent claims cover two inventive feature sets: tenant-customized defined service with tenant-mapped extension points and tenant-attribute-based API routing, and a code-generation workflow that adds tenant-specific extension points, generates a next version, and builds executable package component code. The claims also include integrity testing and a clinical trial service context.
Tenant-mapped extension points customize a defined service per tenant
Multiple core modules provide a defined service and comprise at least one extension point corresponding to a first core module, wherein a first extension point is mapped to a tenant-specific extension module that customizes the defined service to a defined tenant.
Tenant-specific API and data model exposed for the customized defined service
The system provides an API corresponding to the defined tenant and a data model corresponding to the defined tenant for the customized defined service.
Tenant-attribute API routing of function calls to customized defined service
An API router component receives a message invoking a function call to the customized defined service including an attribute identifying the defined tenant, redirects the function call to the customized defined service based on the attribute, and exposes the API.
Code-copy generation with added tenant-specific second extension points
Generating a copy of source program code corresponding to multiple core modules that provide a defined service, the multiple core modules comprising at least one first extension point corresponding to a first core module, and adding at least one second extension point to the at least one first extension point in the copy of the source program code, wherein the at least one second extension point is specific to a defined tenant.
Next-version generation and build of executable package component including added extension points
Generating a next version of the multiple core modules based on a current version of the multiple core modules and the copy of the source program code having the added at least one second extension point, and building second program code corresponding to at least the next version of the multiple core modules having the added at least one second extension point, resulting in an executable package component comprising the multiple core modules including the added at least one second extension point.
The claims collectively define tenant-specific extensibility through mapped extension points in core modules, tenant-specific API and data model exposure with API routing by tenant attribute, and generation and build of a next version including added tenant-specific extension points.
Stated Advantages
Documented Applications
No documented applications found
Interested in licensing this patent?