IP Library Granted Patent US 12,200,081
Granted Patent B2
US 12,200,081 · App. 17/975,481 · Granted Jan 14, 2025

Support for multi-type users in a single-type computing system

Inventors: Vincent Seguin (San Diego, CA); Patrick Casey (San Diego, CA); David Schumann (San Diego, CA); Szu-hsuan Lee (San Diego, CA)
Assignee: ServiceNow, Inc.
H04L67/561G06F21/6218H04L67/306H04L67/564G06F2221/2113G06F2221/2141
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,200,081
App. No.
17/975,481
Granted
Jan 14, 2025
Kind
B2
Abstract

Persistent storage contains a parent table and one or more child tables, the parent table containing: a class field specifying types, and one or more filter fields. One or more processors may: receive a first request to read first information of a first type for a first entity; determine that, in a first entry of the parent table for the first entity, the first type is specified in the class field; obtain the first information from a child table associated with the first type; receive a second request to read second information of a second type for a second entity; determine that, in a second entry of the parent table for the second entity, the second type is indicated as present by a filter field that is associated with the second type; and obtain the second information from a set of additional fields in the second entry.

Claims (58)

1. A method comprising:

receiving, by a server device, from a software application, a request to read type-specific information of a particular type for an entity;

determining, by the server device, that, in an entry for the entity in a parent database table of a database, the particular type is not specified in a class field and that the particular type is indicated as present by a type-specific filter field that is associated with the particular type;

in response to determining that the particular type is indicated as present, obtaining, by the server device, the type-specific information from a set of additional fields in the entry, wherein the set of additional fields is associated with the type-specific filter field; and

providing, by the server device, to the software application, the type-specific information in response to the request.

2. The method of claim 1 , further comprising:

receiving a second request to read second type-specific information of a second particular type for a second entity;

determining that, in an second entry for the second entity in the parent database table, the second particular type is specified in the class field of the second entry;

in response to determining that the second particular type is specified in the class field, obtaining the second type-specific information from a child database table of one or more child database tables of the parent database table, wherein the child database table is associated with the second particular type; and

providing the second type-specific information in response to the second request.

3. The method of claim 2 , wherein the entity is a first user and the second entity is a second user, and wherein the type-specific information and the second type-specific information each relate to one or more of logging on to a system, permissions to access specific units of data in memory, or presentation of material on a graphical user interface.

4. The method of claim 2 , wherein obtaining the second type-specific information comprises reading, from fields of a further entry for the second entity in the child database table, the second type-specific information.

5. The method of claim 4 , wherein the second entity is associated with a unique identifier, wherein the second entry in the parent database table contains the unique identifier, wherein the further entry in the child database table contains the unique identifier, and wherein reading the second type-specific information comprises:

searching entries of the child database table for the unique identifier; and

locating the unique identifier in the entry in the child database table.

6. The method of claim 2 , further comprising:

receiving a further request to write further type-specific information of the second particular type for the second entity;

determining that, in the second entry in the parent database table, the second particular type is specified in the class field; and

writing, to the child database table, the further type-specific information.

7. The method of claim 1 , further comprising:

receiving a further request to write further type-specific information of the particular type for the entity;

determining that, in the entry in the parent database table, the particular type is indicated as present by the type-specific filter field that is associated with the particular type; and

writing, to the parent database table, the further type-specific information.

8. A method comprising:

receiving, by a server device, from a software application, a request to write type-specific information of a particular type for an entity;

determining, by the server device, that, in an entry for the entity in a parent database table of a database, the particular type is not specified in a class field and that the particular type is indicated as present by a type-specific filter field that is associated with the particular type; and

in response to determining that the particular type is indicated as present, writing, by the server device, the type-specific information to a set of additional fields in the entry of the parent database table, wherein the set of additional fields is associated with the type-specific filter field.

9. The method of claim 8 , further comprising:

receiving a second request to write second type-specific information of a second particular type for a second entity;

determining that, in a second entry for the second entity in the parent database table, the second particular type is specified in the class field of the second entry; and

in response to determining that the second particular type is specified in the class field, writing to a child database table of one or more child database tables of the parent database table the second type-specific information, wherein the child database table is associated with the second particular type.

10. The method of claim 8 , further comprising:

searching the parent database table for the entity; and

determining that the entry is associated with the entity.

11. The method of claim 9 , wherein writing the second type-specific information comprises writing, to fields of a further entry for the entity in the child database table, the second type-specific information.

12. The method of claim 11 , wherein the second entity is associated with a unique identifier, wherein the second entry contains the unique identifier, wherein the further entry contains the unique identifier, and wherein writing the second type-specific information comprises:

searching entries of the child database table for the unique identifier; and

locating the unique identifier in the entry.

13. A non-transitory computer-readable storage medium containing instructions that, when executed by one or more processors, cause one or more computing devices to perform operations comprising:

receiving, from a software application, a request to read type-specific information of a particular type for an entity;

determining that, in an entry for the entity in a parent database table of a database, the particular type is not specified in a class field and that the particular type is indicated as present by a type-specific filter field that is associated with the particular type;

in response to determining that the particular type is indicated as present, obtaining the type-specific information from a set of additional fields in the entry, wherein the set of additional fields is associated with the type-specific filter field; and

providing, to the software application, the type-specific information in response to the request.

14. The non-transitory computer-readable storage medium of claim 13 , the operations further comprising:

receiving a second request to read second type-specific information of a second particular type for a second entity;

determining that, in an second entry for the second entity in the parent database table, the second particular type is specified in the class field of the second entry;

in response to determining that the second particular type is specified in the class field, obtaining the second type-specific information from a child database table of one or more child database tables of the parent database table, wherein the child database table is associated with the second particular type; and

providing the second type-specific information in response to the second request.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the entity is a first user and the second entity is a second user, and wherein the type-specific information and the second type-specific information each relate to one or more of logging on to a system, permissions to access specific units of data in memory, or presentation of material on a graphical user interface.

16. The non-transitory computer-readable storage medium of claim 14 , wherein obtaining the second type-specific information comprises reading, from fields of a further entry for the second entity in the child database table, the second type-specific information.

17. The non-transitory computer-readable storage medium of claim 14 , the operations further comprising:

receiving a further request to write further type-specific information of the second particular type for the second entity;

determining that, in the second entry in the parent database table, the second particular type is specified in the class field; and

writing, to the child database table, the further type-specific information.

18. The non-transitory computer-readable storage medium of claim 13 :

receiving a further request to write further type-specific information of the particular type for the entity;

determining that, in the entry in the parent database table, the particular type is indicated as present by the type-specific filter field that is associated with the particular type; and

writing, to the parent database table, the further type-specific information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2022
From: SEGUIN, VINCENT; CASEY, PATRICK; SCHUMANN, DAVID; LEE, SZU-HSUAN
To: SERVICENOW, INC.
Reel/Frame 061576/0442 →
Continuity (2)
Continuation 17397480 · Aug 9, 2021
Related Publication 20230050683A1 · Feb 16, 2023
References Cited (149)
US 4941084A · Terada et al. · 1990 [cited by applicant]
US 5185860A · Wu · 1993 [cited by applicant]
US 5237518A · Sztipanovits et al. · 1993 [cited by applicant]
US 5261097A · Saxon · 1993 [cited by applicant]
US 5265252A · Rawson, III et al. · 1993 [cited by applicant]
US 5367685A · Gosling · 1994 [cited by applicant]
US 5390297A · Barber et al. · 1995 [cited by applicant]
US 5442791A · Wrabetz et al. · 1995 [cited by applicant]
US 5452415A · Hotka · 1995 [cited by applicant]
US 5522042A · Fee et al. · 1996 [cited by applicant]
US 5533116A · Vesterinen · 1996 [cited by applicant]
US 5655081A · Bonnell et al. · 1997 [cited by applicant]
US 5659736A · Hasegawa et al. · 1997 [cited by applicant]
US 5671412A · Christiano · 1997 [cited by applicant]
US 5696701A · Burgess et al. · 1997 [cited by applicant]
US 5715463A · Merkin · 1998 [cited by applicant]
US 5745879A · Wyman · 1998 [cited by applicant]
US 5761502A · Jacobs · 1998 [cited by applicant]
US 5764913A · Jancke et al. · 1998 [cited by applicant]
US 5778370A · Emerson · 1998 [cited by applicant]
US 5887139A · Madison, Jr. et al. · 1999 [cited by applicant]
US 5909217A · Bereiter · 1999 [cited by applicant]
US 5937165A · Schwaller et al. · 1999 [cited by applicant]
US 5949976A · Chappelle · 1999 [cited by applicant]
US 5978594A · Bonnell et al. · 1999 [cited by applicant]
US 6021437A · Chen et al. · 2000 [cited by applicant]
US 6041347A · Harsham et al. · 2000 [cited by applicant]
US 6088717A · Reed et al. · 2000 [cited by applicant]
US 6101500A · Lau · 2000 [cited by applicant]
US 6128016A · Coelho et al. · 2000 [cited by applicant]
US 6131118A · Stupek, Jr. et al. · 2000 [cited by applicant]
US 6134581A · Ismael et al. · 2000 [cited by applicant]
US 6138122A · Smith et al. · 2000 [cited by applicant]
US 6148335A · Haggard et al. · 2000 [cited by applicant]
US 6166732A · Mitchell et al. · 2000 [cited by applicant]
US 6167448A · Hemphill et al. · 2000 [cited by applicant]
US 6175866B1 · Holloway et al. · 2001 [cited by applicant]
US 6175878B1 · Seaman et al. · 2001 [cited by applicant]
US 6260050B1 · Yost et al. · 2001 [cited by applicant]
US 6263457B1 · Anderson et al. · 2001 [cited by applicant]
US 6272150B1 · Hrastar et al. · 2001 [cited by applicant]
US 6336138B1 · Caswell et al. · 2002 [cited by applicant]
US 6363421B2 · Barker et al. · 2002 [cited by applicant]
US 6393386B1 · Zager et al. · 2002 [cited by applicant]
US 6397245B1 · Johnson, II et al. · 2002 [cited by applicant]
US 6434626B1 · Prakash et al. · 2002 [cited by applicant]
US 6438592B1 · Killian · 2002 [cited by applicant]
US 6456306B1 · Chin et al. · 2002 [cited by applicant]
US 6466932B1 · Dennis et al. · 2002 [cited by applicant]
US 6487590B1 · Foley et al. · 2002 [cited by applicant]
US 6505248B1 · Casper et al. · 2003 [cited by applicant]
US 6526442B1 · Stupek, Jr. et al. · 2003 [cited by applicant]
US 6621823B1 · Mellquist et al. · 2003 [cited by applicant]
US 6707795B1 · Noorhosseini et al. · 2004 [cited by applicant]
US 6742015B1 · Bowman-Amuah · 2004 [cited by applicant]
US 6763380B1 · Mayton et al. · 2004 [cited by applicant]
US 6816898B1 · Scarpelli et al. · 2004 [cited by applicant]
US 6895586B1 · Brasher et al. · 2005 [cited by applicant]
US 6948175B1 · Fong et al. · 2005 [cited by applicant]
US 6985901B1 · Sachse et al. · 2006 [cited by applicant]
US 7003564B2 · Greuel et al. · 2006 [cited by applicant]
US 7028228B1 · Lovy et al. · 2006 [cited by applicant]
US 7043537B1 · Pratt · 2006 [cited by applicant]
US 7043661B2 · Valadarsky et al. · 2006 [cited by applicant]
US 7062683B2 · Warpenburg et al. · 2006 [cited by applicant]
US 7096459B2 · Keller et al. · 2006 [cited by applicant]
US 7146574B2 · Goldthwaite et al. · 2006 [cited by applicant]
US 7197466B1 · Peterson et al. · 2007 [cited by applicant]
US 7215360B2 · Gupta · 2007 [cited by applicant]
US 7216304B1 · Gourdol et al. · 2007 [cited by applicant]
US 7222147B1 · Black et al. · 2007 [cited by applicant]
US 7281170B2 · Taylor et al. · 2007 [cited by applicant]
US 7412502B2 · Fearn et al. · 2008 [cited by applicant]
US 7505872B2 · Keller et al. · 2009 [cited by applicant]
US 7593013B2 · Agutter et al. · 2009 [cited by applicant]
US 7596716B2 · Frost et al. · 2009 [cited by applicant]
US 7617073B2 · Trinon et al. · 2009 [cited by applicant]
US 7660731B2 · Chaddha et al. · 2010 [cited by applicant]
US 7676294B2 · Baier et al. · 2010 [cited by applicant]
US 7676437B2 · Satkunanathan et al. · 2010 [cited by applicant]
US 7840490B1 · Sellers et al. · 2010 [cited by applicant]
US 7877783B1 · Cline et al. · 2011 [cited by applicant]
US 7890869B1 · Mayer et al. · 2011 [cited by applicant]
US 7966398B2 · Wiles, Jr. · 2011 [cited by applicant]
US 8060396B1 · Bessler et al. · 2011 [cited by applicant]
US 8196210B2 · Sterin · 2012 [cited by applicant]
US 8321948B2 · Robinson et al. · 2012 [cited by applicant]
US 8407669B2 · Yee et al. · 2013 [cited by applicant]
US 8554750B2 · Rangarajan et al. · 2013 [cited by applicant]
US 8595647B2 · Sabin et al. · 2013 [cited by applicant]
US 8620818B2 · Hughes et al. · 2013 [cited by applicant]
US 8646093B2 · Myers et al. · 2014 [cited by applicant]
US 8674992B2 · Poston et al. · 2014 [cited by applicant]
US 8725647B2 · Disciascio et al. · 2014 [cited by applicant]
US 8825678B2 · Potapov et al. · 2014 [cited by applicant]
US 9053460B2 · Gilbert et al. · 2015 [cited by applicant]
US 10673963B1 · Feiguine et al. · 2020 [cited by applicant]
US 10749943B1 · Feiguine et al. · 2020 [cited by applicant]
US 10771344B2 · Bitterfeld et al. · 2020 [cited by applicant]
US 10824650B2 · Bar Oz et al. · 2020 [cited by applicant]
US 10944654B2 · Rimar et al. · 2021 [cited by applicant]
US 11089115B2 · Garty et al. · 2021 [cited by applicant]
US 11095506B1 · Erblat et al. · 2021 [cited by applicant]
US 11516307B1 · Seguin · 2022 [cited by examiner]
US 20020116340A1 · Hellberg et al. · 2002 [cited by applicant]
US 20020133584A1 · Greuel et al. · 2002 [cited by applicant]
US 20020158969A1 · Gupta · 2002 [cited by applicant]
US 20030118087A1 · Goldthwaite et al. · 2003 [cited by applicant]
US 20030200293A1 · Fearn et al. · 2003 [cited by applicant]
US 20050015217A1 · Weidl et al. · 2005 [cited by applicant]
US 20050091356A1 · Izzo · 2005 [cited by applicant]
US 20060026453A1 · Frost et al. · 2006 [cited by applicant]
US 20060095461A1 · Raymond · 2006 [cited by applicant]
US 20060179058A1 · Bram et al. · 2006 [cited by applicant]
US 20060293942A1 · Chaddha et al. · 2006 [cited by applicant]
US 20070033279A1 · Battat et al. · 2007 [cited by applicant]
US 20070188494A1 · Agutter et al. · 2007 [cited by applicant]
US 20070288389A1 · Vaughan et al. · 2007 [cited by applicant]
US 20080052291A1 · Bender · 2008 [cited by applicant]
US 20080133289A1 · Armour et al. · 2008 [cited by applicant]
US 20080148253A1 · Badwe et al. · 2008 [cited by applicant]
US 20080319779A1 · Hughes et al. · 2008 [cited by applicant]
US 20090088875A1 · Baier et al. · 2009 [cited by applicant]
US 20090097062A1 · Hayashi · 2009 [cited by examiner]
US 20090228984A1 · Sterin · 2009 [cited by applicant]
US 20100110932A1 · Doran et al. · 2010 [cited by applicant]
US 20120323937A1 · Modi et al. · 2012 [cited by applicant]
US 20150098471A1 · Stokking · 2015 [cited by examiner]
US 20150142733A1 · Shadmon · 2015 [cited by applicant]
US 20150373149A1 · Lyons · 2015 [cited by examiner]
US 20160371002A1 · Bahali · 2016 [cited by examiner]
US 20180123940A1 · Rimar et al. · 2018 [cited by applicant]
US 20180314639A1 · Wilde et al. · 2018 [cited by applicant]
US 20190104398A1 · Owen et al. · 2019 [cited by applicant]
US 20190121817A1 · Davidson · 2019 [cited by applicant]
US 20200050689A1 · Tal et al. · 2020 [cited by applicant]
US 20200204443A1 · Bar Oz et al. · 2020 [cited by applicant]
US 20200394164A1 · Apte et al. · 2020 [cited by applicant]
US 20210182271A1 · Pula · 2021 [cited by applicant]
US 20210194764A1 · Badyan et al. · 2021 [cited by applicant]
US 20210209305A1 · Machado · 2021 [cited by applicant]
US 20220029886A1 · Hameiri et al. · 2022 [cited by applicant]
CN 112395370B · 2024 [cited by applicant]
EP 0433979 · 1991 [cited by applicant]
EP 1607824 · 2005 [cited by applicant]
WO WO9934285 · 1999 [cited by applicant]
WO WO0052559 · 2000 [cited by applicant]
WO WO0179970 · 2001 [cited by applicant]
International Search Report and Written Opinion, PCT Application PCT/US2022/030508, mailed Sep. 8, 2022. [cited by applicant]