US 12,393,571 B2
Multidimensional multitenant system
Jonathan C. Shultis, Mountain View, CA (US); and Mark J. Willard, Rancho Santa Fe, CA (US)
Assigned to Humana Inc., Louisville, KY (US)
Filed by Humana Inc., Louisville, KY (US)
Filed on Dec. 5, 2018, as Appl. No. 16/211,166.
Prior Publication US 2020/0183916 A1, Jun. 11, 2020
Int. Cl. G06F 16/23 (2019.01); G06F 21/62 (2013.01); G16H 10/60 (2018.01)
CPC G06F 16/2379 (2019.01) [G06F 21/62 (2013.01); G16H 10/60 (2018.01); G06F 21/6245 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A method comprising:
storing in a first table, by a multidimensional multitenant system, metadata describing tenants, wherein said metadata associates each tenant with a set of users, and each tenant with one of a plurality of tenant types;
storing in a second table, by the multidimensional multitenant system, a plurality of objects for each tenant, each object having a plurality of elements comprising a plurality of subsets of elements, wherein each subset of elements is contributed to only by a tenant of a distinct tenant type, and wherein the plurality of objects are each contributed to by tenants of at least two distinct tenant types;
receiving, from a first user associated with a first tenant of a first tenant type, a first request to create an object;
creating the object in the second table according to the first request, the object comprising a plurality of elements;
updating, in the first table, metadata describing, a plurality of tenants that contribute to elements of the object, the plurality of tenants comprising the first tenant of the first tenant type and a second tenant of a second tenant type, wherein the updated metadata describes that the first tenant has a specified access to a first element of the object and is an only tenant of the first tenant type allowed the specified access to the first element, and the second tenant is an only tenant of the second tenant type allowed specified access to a second element;
based, at least in part, on a determination of a requesting user's tenant type from retrieved metadata describing the requesting user:
preventing users of remaining tenants of the first tenant type from accessing the first element; and
preventing users of remaining tenants of the second tenant type from accessing the second element;
receiving a second request to update the second element of the object in the second table from a second user of the second tenant of the second tenant type;
responsive to receiving the second request, accessing the first table to retrieve metadata describing the second tenant;
determining whether the second tenant is allowed to update the second element of the object based on the retrieved metadata describing the second tenant, which includes an indication of the second tenant's tenant type;
responsive to determining that the second tenant is allowed to update the second element of the object, retrieving a presaved ratification status value associated with update from each tenant of the plurality of tenants contributing to the object from the second table;
responsive to retrieving the presaved ratification status value indicating a ratified status, performing an update to the object according to the second request;
receiving a third request to access the object from a user associated with the first tenant;
responsive to receiving the third request, accessing the first table to retrieve metadata describing the first tenant;
determining whether the first tenant is allowed to access elements of the object based on the retrieved metadata describing the first tenant, which includes an indication of the first tenant's tenant type; and
responsive to determining that the first tenant is allowed to access elements of the object, sending elements of the object including the first element and the second element to the user associated with the first tenant, the elements comprising the object updated responsive to the second request from the second user of the second tenant.