IP Library Granted Patent US 12664034
Granted Patent B2
US 12664034 · App. 18/194,192 · Granted Jun 23, 2026

Upgrade-safe extensible software-as-a-service platform

Inventor: Florian Wiesner (Munich, DE)
Assignee: Oracle International Corporation
G06F9/547G06F8/65
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 12664034
App. No.
18/194,192
Granted
Jun 23, 2026
Kind
B2
Abstract

Techniques for operating an upgrade-safe, extensible software-as-a-service (SaaS) platform are disclosed, including: receiving, by the SaaS platform, an application programming interface (API) request associated with a tenant of the SaaS platform; determining, by the SaaS platform, that the API request includes a tenant-specific type that extends a built-in type of the SaaS platform; responsive to determining that the API request includes the tenant-specific type: executing, by the SaaS platform, a mapper stack including at least (a) a first type-mapper associated with the built-in type of the SaaS platform and (b) a second type-mapper associated with the tenant-specific type; transmitting, by the SaaS platform, output of the mapper stack in response to the API request.

Claims (75)

1 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more hardware processors, cause performance of operations comprising:

receiving, by a software-as-a-service (SaaS) platform, an application programming interface (API) request associated with a tenant of the SaaS platform;

determining, by the SaaS platform, that the API request comprises a first object type, wherein the first object type is a tenant-specific type that extends a built-in type of the SaaS platform;

responsive to determining that the API request comprises the first object type: executing, by the SaaS platform, a first mapper stack comprising at least (a) a first type-mapper associated with the built-in type of the SaaS platform and (b) a second type-mapper associated with the tenant-specific type that extends the built-in type;

controlling, by the SaaS platform, execution of the first mapper stack using a plurality of signals emitted respectively by each mapper in the first mapper stack;

determining, by the SaaS platform, that a signal in the plurality of signals is transitively reachable;

responsive to determining that the signal is transitively reachable: refraining, by the SaaS platform, from waking a process that is waiting for completion of the signal;

transmitting, by the SaaS platform, output of the first mapper stack in response to the API request.

2 . The one or more non-transitory computer-readable media of claim 1 , wherein the first mapper stack further comprises an augmentation type-mapper comprising one or more tenant-specific augmentations of the first type-mapper.

3 . The one or more non-transitory computer-readable media of claim 1 , wherein executing the first mapper stack comprises:

executing a first operation of the first type-mapper;

transferring control to the second type-mapper;

after transferring control to the second type-mapper: executing a second operation of the second type-mapper;

returning control to the first type-mapper;

after returning control to the first type-mapper: executing a third operation of the first type-mapper.

4 . The one or more non-transitory computer-readable media of claim 1 , the operations further comprising:

decomposing, by the SaaS platform, a payload associated with the API request to determine that the payload comprises a plurality of object types, wherein the first object type is one of the plurality of object types;

determining, by the SaaS platform, that the API request comprises a second object type in the plurality of object types;

responsive to determining that the API request comprises the second object type: executing, by the SaaS platform, a second mapper stack;

transmitting, by the SaaS platform, output of the second mapper stack in response to the API request.

5 . The one or more non-transitory computer-readable media of claim 1 , wherein determining that the signal is transitively reachable comprises:

generating, by the SaaS platform, a matrix that indicates which signals are reachable for each task in a plurality of potential tasks;

determining, based at least on the matrix, that the signal is reachable for an active task.

6 . The one or more non-transitory computer-readable media of claim 1 , wherein determining that the signal is transitively reachable is performed relative to a task scope that is a subset of a root task scope managed by the SaaS platform.

7 . A system comprising:

one or more hardware processors;

one or more non-transitory computer-readable media; and

program instructions stored on the one or more non-transitory computer-readable media which, when executed by the one or more hardware processors, cause the system to perform operations comprising:

receiving, by a software-as-a-service (SaaS) platform, an application programming interface (API) request associated with a tenant of the SaaS platform;

determining, by the SaaS platform, that the API request comprises a first object type, wherein the first object type is a tenant-specific type that extends a built-in type of the SaaS platform;

responsive to determining that the API request comprises the first object type: executing, by the SaaS platform, a first mapper stack comprising at least (a) a first type-mapper associated with the built-in type of the SaaS platform and (b) a second type-mapper associated with the tenant-specific type that extends the built-in type;

controlling, by the SaaS platform, execution of the first mapper stack using a plurality of signals emitted respectively by each mapper in the first mapper stack;

determining, by the SaaS platform, that a signal in the plurality of signals is transitively reachable;

responsive to determining that the signal is transitively reachable: refraining, by the SaaS platform, from waking a process that is waiting for completion of the signal;

transmitting, by the SaaS platform, output of the first mapper stack in response to the API request.

8 . The system of claim 7 , wherein the first mapper stack further comprises an augmentation type-mapper comprising one or more tenant-specific augmentations of the first type-mapper.

9 . The system of claim 7 , wherein executing the first mapper stack comprises:

executing a first operation of the first type-mapper;

transferring control to the second type-mapper;

after transferring control to the second type-mapper: executing a second operation of the second type-mapper;

returning control to the first type-mapper;

after returning control to the first type-mapper: executing a third operation of the first type-mapper.

10 . The system of claim 7 , the operations further comprising:

decomposing, by the SaaS platform, a payload associated with the API request to determine that the payload comprises a plurality of object types, wherein the first object type is one of the plurality of object types;

determining, by the SaaS platform, that the API request comprises a second object type in the plurality of object types;

responsive to determining that the API request comprises the second object type: executing, by the SaaS platform, a second mapper stack;

transmitting, by the SaaS platform, output of the second mapper stack in response to the API request.

11 . The system of claim 7 , wherein determining that the signal is transitively reachable comprises:

generating, by the SaaS platform, a matrix that indicates which signals are reachable for each task in a plurality of potential tasks;

determining, based at least on the matrix, that the signal is reachable for an active task.

12 . The system of claim 7 , wherein determining that the signal is transitively reachable is performed relative to a task scope that is a subset of a root task scope managed by the SaaS platform.

13 . A method comprising:

receiving, by a software-as-a-service (SaaS) platform, an application programming interface (API) request associated with a tenant of the SaaS platform;

determining, by the SaaS platform, that the API request comprises a first object type, wherein the first object type is a tenant-specific type that extends a built-in type of the SaaS platform;

responsive to determining that the API request comprises the first object type: executing, by the SaaS platform, a first mapper stack comprising at least (a) a first type-mapper associated with the built-in type of the SaaS platform and (b) a second type-mapper associated with the tenant-specific type that extends the built-in type;

controlling, by the SaaS platform, execution of the first mapper stack using a plurality of signals emitted respectively by each mapper in the first mapper stack;

determining, by the SaaS platform, that a signal in the plurality of signals is transitively reachable;

responsive to determining that the signal is transitively reachable: refraining, by the SaaS platform, from waking a process that is waiting for completion of the signal;

transmitting, by the SaaS platform, output of the first mapper stack in response to the API request;

wherein the method is performed by at least one device including a hardware processor.

14 . The method of claim 13 , wherein executing the first mapper stack comprises:

executing a first operation of the first type-mapper;

transferring control to the second type-mapper;

after transferring control to the second type-mapper: executing a second operation of the second type-mapper;

returning control to the first type-mapper;

after returning control to the first type-mapper: executing a third operation of the first type-mapper.

15 . The method of claim 13 , further comprising:

decomposing, by the SaaS platform, a payload associated with the API request to determine that the payload comprises a plurality of object types, wherein the first object type is one of the plurality of object types;

determining, by the SaaS platform, that the API request comprises a second object type in the plurality of object types;

responsive to determining that the API request comprises the second object type: executing, by the SaaS platform, a second mapper stack;

transmitting, by the SaaS platform, output of the second mapper stack in response to the API request.

16 . The method of claim 13 , wherein determining that the signal is transitively reachable comprises:

generating, by the SaaS platform, a matrix that indicates which signals are reachable for each task in a plurality of potential tasks;

determining, based at least on the matrix, that the signal is reachable for an active task.

17 . The method of claim 13 , wherein determining that the signal is transitively reachable is performed relative to a task scope that is a subset of a root task scope managed by the SaaS platform.