IP Library Granted Patent US 12,271,739
Granted Patent B2
US 12,271,739 · App. 18/222,257 · Granted Apr 8, 2025

Application and related object schematic viewer for software application change tracking and management

Inventors: Jacob Burman (San Diego, CA); Michel Abou Samah (San Diego, CA); Kylin Follenweider (San Diego, CA); Sharon Elizabeth Carmichael Ehlert (San Diego, CA)
Assignee: ServiceNow, Inc.
G06F9/44505G06F8/34G06F8/77
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,271,739
App. No.
18/222,257
Granted
Apr 8, 2025
Kind
B2
Abstract

A system could include persistent storage containing application components. A plurality of software applications could be installed on the system. The software applications could be respectively associated context records that include references to application components that provide some behavior or data for the software applications. The system could also include processors configured to perform operations. The operations could include receiving a request to generate a topology map for a software application and identifying, based on a context record for the software application, a subset of application components that provide some behavior or data for the software application. The operations could further include determining relationship types between pairs of application components and generating a topology map for the software application. The subset of application components may be represented as nodes in the topology map, and edges between the nodes may be defined from relationship types between corresponding pairs of application components.

Claims (44)

1. A method comprising:

identifying a plurality of application components that relate to a software application, wherein the software application is available on a managed network;

determining, at a computational instance implemented remotely from the managed network, relationship types between application components from the plurality of application components, wherein a first application component of the plurality of application components is stored as a source code file;

locating, by the computational instance, statements within the source code file relating to a second application component of the plurality of application components;

identifying, by the computational instance, a relationship type between the first application component and the second application component based on the statements within the source code file;

generating, by the computational instance, an application topology map, in which the application components are represented as nodes, and in which edges between the nodes are defined based on the relationship types between corresponding pairs of the application components; and

providing, by the computational instance, a representation of the application topology map for display at the managed network.

2. The method of claim 1 , wherein identifying the plurality of application components that relate to the software application is based on an application context record containing metadata relating to the software application.

3. The method of claim 1 , wherein determining the relationship types between the application components comprises determining the relationship types between pairs of the application components.

4. The method of claim 1 , wherein identifying the plurality of application components that relate to the software application occurs in response to receiving a request to generate the application topology map.

5. The method of claim 1 , wherein the application components have associated application component types, and wherein generating the application topology map includes representing nodes for application components with unique icons per component type.

6. The method of claim 1 , wherein generating the application topology map includes representing edges with unique colors or unique line types per relationship type.

7. The method of claim 1 , wherein determining the relationship types between the application components comprises:

determining that a pair of application components from the application components is stored in a pair of database tables; and

identifying a relationship type between the pair of application components based on a schema associated with the pair of database tables.

8. The method of claim 1 , wherein a specification related to the software application contains references to at least some of the application components in the application components, and wherein generating the application topology map involves omitting, from the application topology map, the application components referenced in the specification.

9. The method of claim 1 , wherein at least one of the application components are pre-defined.

10. The method of claim 1 , wherein the software application is associated with references to one or more of the application components, wherein the references comprise pathnames to locations of the application components.

11. The method of claim 1 , wherein reception of the application topology map by a client device causes the client device to display the application topology map on a graphical user interface.

12. The method of claim 1 , wherein the application components include one or more of user interface widgets, database tables, or user authentication services.

13. A non-transitory computer-readable medium, having stored thereon program instructions that, upon execution by one or more processors disposed within a computing system, cause the computing system to perform operations comprising:

identifying a plurality of application components that relate to a software application, wherein the software application is available on a managed network;

determining, at a computational instance implemented remotely from the managed network, relationship types between application components from the plurality of application components, wherein a first application component of the plurality of application components is stored as a source code file;

locating, by the computational instance, statements within the source code file relating to a second application component of the plurality of application components;

identifying, by the computational instance, a relationship type between the first application component and the second application component based on the statements within the source code file;

generating, by the computational instance, an application topology map, in which the application components are represented as nodes, and in which edges between the nodes are defined based on the relationship types between corresponding pairs of the application components; and

providing, by the computational instance a representation of the application topology map for display at the managed network.

14. The non-transitory computer-readable medium of claim 13 , wherein determining the relationship types between the application components comprises determining the relationship types between pairs of the application components.

15. The non-transitory computer-readable medium of claim 13 , wherein identifying the plurality of application components that relate to the software application occurs in response to receiving a request to generate the application topology map.

16. The non-transitory computer-readable medium of claim 13 , wherein the application components have associated application component types, and wherein generating the application topology map includes representing nodes for application components with unique icons per component type.

17. The non-transitory computer-readable medium of claim 13 , wherein generating the application topology map includes representing edges with unique colors or unique line types per relationship type.

18. The non-transitory computer-readable medium of claim 13 , wherein determining the relationship types between the application components comprises:

determining that a pair of application components from the application components is stored in a pair of database tables; and

identifying a relationship type between the pair of application components based on a schema associated with the pair of database tables.

19. The non-transitory computer-readable medium of claim 13 , wherein the software application is associated with references to one or more of the application components, wherein the references comprise pathnames to locations of the application components.

20. A computing system comprising:

one or more processors; and

memory, storing program instructions that, when executed by the one or more processors, cause the computing system to perform operations including:

identifying, by a computational instance implemented by the one or more processors remotely from a managed network, a plurality of application components that relate to a software application, wherein the software application is available on the managed network;

determining, by the computational instance, relationship types between application components from the plurality of application components, wherein a first application component of the plurality of application components is stored as a source code file;

locating, by the computational instance, statements within the source code file relating to a second application component of the plurality of application components;

identifying, by the computational instance, a relationship type between the first application component and the second application component based on the statements within the source code file;

generating, by the computational instance, an application topology map, in which the application components are represented as nodes, and in which edges between the nodes are defined based on the relationship types between corresponding pairs of the application components; and

providing, by the computational instance a representation of the application topology map for display at the managed network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2023
From: SAMAH, MICHEL ABOU; FOLLENWEIDER, KYLIN; CARMICHAEL EHLERT, SHARON ELIZABETH; BURMAN, JACOB
To: SERVICENOW, INC.
Reel/Frame 064264/0817 →
Continuity (2)
Continuation 16934356 · Jul 21, 2020
Related Publication 20230359469A1 · Nov 9, 2023
References Cited (163)
US 4941084A · Terada · 1990 [cited by applicant]
US 5185860A · Wu · 1993 [cited by applicant]
US 5237518A · Sztipanovits · 1993 [cited by applicant]
US 5261097A · Saxon · 1993 [cited by applicant]
US 5265252A · Rawson, III · 1993 [cited by applicant]
US 5367685A · Gosling · 1994 [cited by applicant]
US 5390297A · Barber · 1995 [cited by applicant]
US 5442791A · Wrabetz · 1995 [cited by applicant]
US 5452415A · Hotka · 1995 [cited by applicant]
US 5522042A · Fee · 1996 [cited by applicant]
US 5533116A · Vesterinen · 1996 [cited by applicant]
US 5655081A · Bonnell · 1997 [cited by applicant]
US 5659736A · Hasegawa · 1997 [cited by applicant]
US 5671412A · Christiano · 1997 [cited by applicant]
US 5696701A · Burgess · 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 · 1998 [cited by applicant]
US 5887139A · Madison, Jr. · 1999 [cited by applicant]
US 5909217A · Bereiter · 1999 [cited by applicant]
US 5937165A · Schwaller · 1999 [cited by applicant]
US 5949976A · Chappelle · 1999 [cited by applicant]
US 5978594A · Bonnell · 1999 [cited by applicant]
US 6021437A · Chen · 2000 [cited by applicant]
US 6041347A · Harsham · 2000 [cited by applicant]
US 6088717A · Reed · 2000 [cited by applicant]
US 6101500A · Lau · 2000 [cited by applicant]
US 6128016A · Coelho · 2000 [cited by applicant]
US 6131118A · Stupek, Jr. · 2000 [cited by applicant]
US 6134581A · Ismael · 2000 [cited by applicant]
US 6138122A · Smith · 2000 [cited by applicant]
US 6148335A · Haggard · 2000 [cited by applicant]
US 6166732A · Mitchell · 2000 [cited by applicant]
US 6167448A · Hemphill · 2000 [cited by applicant]
US 6175866B1 · Holloway et al. · 2001 [cited by applicant]
US 6175878B1 · Seaman · 2001 [cited by applicant]
US 6260050B1 · Yost · 2001 [cited by applicant]
US 6263457B1 · Anderson · 2001 [cited by applicant]
US 6272150B1 · Hrastar · 2001 [cited by applicant]
US 6336138B1 · Caswell · 2002 [cited by applicant]
US 6363421B2 · Barker · 2002 [cited by applicant]
US 6393386B1 · Zager · 2002 [cited by applicant]
US 6397245B1 · Johnson, II et al. · 2002 [cited by applicant]
US 6434626B1 · Prakash · 2002 [cited by applicant]
US 6438592B1 · Killian · 2002 [cited by applicant]
US 6456306B1 · Chin · 2002 [cited by applicant]
US 6466932B1 · Dennis · 2002 [cited by applicant]
US 6487590B1 · Foley · 2002 [cited by applicant]
US 6505248B1 · Casper · 2003 [cited by applicant]
US 6526442B1 · Stupek, Jr. · 2003 [cited by applicant]
US 6621823B1 · Mellquist · 2003 [cited by applicant]
US 6707795B1 · Noorhosseini · 2004 [cited by applicant]
US 6742015B1 · Bowman-Amuah · 2004 [cited by applicant]
US 6763380B1 · Mayton · 2004 [cited by applicant]
US 6816898B1 · Scarpelli · 2004 [cited by applicant]
US 6895586B1 · Brasher · 2005 [cited by applicant]
US 6948175B1 · Fong · 2005 [cited by applicant]
US 6985901B1 · Sachse · 2006 [cited by applicant]
US 7003564B2 · Greuel · 2006 [cited by applicant]
US 7028228B1 · Lovy · 2006 [cited by applicant]
US 7043537B1 · Pratt · 2006 [cited by applicant]
US 7043661B2 · Valadarsky · 2006 [cited by applicant]
US 7062683B2 · Warpenburg · 2006 [cited by applicant]
US 7096459B2 · Keller · 2006 [cited by applicant]
US 7146574B2 · Goldthwaite · 2006 [cited by applicant]
US 7197466B1 · Peterson · 2007 [cited by applicant]
US 7215360B2 · Gupta · 2007 [cited by applicant]
US 7216304B1 · Gourdol · 2007 [cited by applicant]
US 7222147B1 · Black · 2007 [cited by applicant]
US 7281170B2 · Taylor · 2007 [cited by applicant]
US 7412502B2 · Fearn · 2008 [cited by applicant]
US 7505872B2 · Keller · 2009 [cited by applicant]
US 7593013B2 · Agutter · 2009 [cited by applicant]
US 7596716B2 · Frost · 2009 [cited by applicant]
US 7617073B2 · Trinon · 2009 [cited by applicant]
US 7660731B2 · Chaddha · 2010 [cited by applicant]
US 7676294B2 · Baier · 2010 [cited by applicant]
US 7676437B2 · Satkunanathan · 2010 [cited by applicant]
US 7742940B1 · Shan · 2010 [cited by applicant]
US 7840490B1 · Sellers · 2010 [cited by applicant]
US 7877783B1 · Cline · 2011 [cited by applicant]
US 7890869B1 · Mayer · 2011 [cited by applicant]
US 7966398B2 · Wiles, Jr. · 2011 [cited by applicant]
US 8060396B1 · Bessler · 2011 [cited by applicant]
US 8196210B2 · Sterin · 2012 [cited by applicant]
US 8321948B2 · Robinson · 2012 [cited by applicant]
US 8407669B2 · Yee · 2013 [cited by applicant]
US 8554750B2 · Rangarajan · 2013 [cited by applicant]
US 8595647B2 · Sabin · 2013 [cited by applicant]
US 8620818B2 · Hughes · 2013 [cited by applicant]
US 8646093B2 · Myers · 2014 [cited by applicant]
US 8674992B2 · Poston · 2014 [cited by applicant]
US 8725647B2 · Disciascio · 2014 [cited by applicant]
US 9053460B2 · Gilbert · 2015 [cited by applicant]
US 10606583B2 · Benedetti · 2020 [cited by applicant]
US 10673963B1 · Feiguine · 2020 [cited by applicant]
US 10749943B1 · Feiguine · 2020 [cited by applicant]
US 10771344B2 · Bitterfeld · 2020 [cited by applicant]
US 10824650B2 · Bar Oz · 2020 [cited by applicant]
US 10944654B2 · Rimar · 2021 [cited by applicant]
US 10999152B1 · Bar Oz · 2021 [cited by applicant]
US 11025481B1 · Louca · 2021 [cited by applicant]
US 11089115B2 · Garty · 2021 [cited by applicant]
US 11095506B1 · Erblat · 2021 [cited by applicant]
US 11275580B2 · Tamir · 2022 [cited by applicant]
US 11277475B1 · Tal · 2022 [cited by applicant]
US 11281442B1 · Tal · 2022 [cited by applicant]
US 11296922B2 · Leibkowiz · 2022 [cited by applicant]
US 11301503B2 · Burli · 2022 [cited by applicant]
US 11379089B2 · Goswami · 2022 [cited by applicant]
US 11451573B2 · Waplington · 2022 [cited by applicant]
US 11470107B2 · Waplington · 2022 [cited by applicant]
US 11632303B2 · Bitterfeld · 2023 [cited by applicant]
US 11640369B2 · Bhogle · 2023 [cited by applicant]
US 11868593B2 · Bradley · 2024 [cited by examiner]
US 20020116340A1 · Hellberg · 2002 [cited by applicant]
US 20020133584A1 · Greuel · 2002 [cited by applicant]
US 20020158969A1 · Gupta · 2002 [cited by applicant]
US 20030118087A1 · Goldthwaite · 2003 [cited by applicant]
US 20030200293A1 · Fearn · 2003 [cited by applicant]
US 20050015217A1 · Weidl · 2005 [cited by applicant]
US 20050091356A1 · Izzo · 2005 [cited by applicant]
US 20060026453A1 · Frost · 2006 [cited by applicant]
US 20060095461A1 · Raymond · 2006 [cited by applicant]
US 20060179058A1 · Bram · 2006 [cited by applicant]
US 20060293942A1 · Chaddha · 2006 [cited by applicant]
US 20070033279A1 · Battat · 2007 [cited by applicant]
US 20070050273A1 · Burke, Jr. · 2007 [cited by applicant]
US 20070188494A1 · Agutter · 2007 [cited by applicant]
US 20070288389A1 · Vaughan · 2007 [cited by applicant]
US 20080133289A1 · Armour · 2008 [cited by applicant]
US 20080148253A1 · Badwe · 2008 [cited by applicant]
US 20080300963A1 · Seetharaman · 2008 [cited by applicant]
US 20080319779A1 · Hughes · 2008 [cited by applicant]
US 20090088875A1 · Baier · 2009 [cited by applicant]
US 20090228984A1 · Sterin · 2009 [cited by applicant]
US 20100110932A1 · Doran · 2010 [cited by applicant]
US 20100299433A1 · De Boer · 2010 [cited by applicant]
US 20130246106A1 · Kroetsch · 2013 [cited by applicant]
US 20140222511A1 · Broady · 2014 [cited by applicant]
US 20170032400A1 · Gilmore · 2017 [cited by applicant]
US 20180123940A1 · Rimar · 2018 [cited by applicant]
US 20180158079A1 · Chu · 2018 [cited by applicant]
US 20190073257A1 · Dasgupta · 2019 [cited by applicant]
US 20190104398A1 · Owen · 2019 [cited by applicant]
US 20200050689A1 · Tal · 2020 [cited by applicant]
US 20200204443A1 · Bar Oz · 2020 [cited by applicant]
US 20200279198A1 · Turner · 2020 [cited by applicant]
US 20200301678A1 · Burman · 2020 [cited by applicant]
US 20210194764A1 · Badyan · 2021 [cited by applicant]
US 20220029886A1 · Hameiri · 2022 [cited by applicant]
EP 0433979A2 · 1991 [cited by applicant]
EP 1607824A2 · 2005 [cited by applicant]
WO 9934285W · 1999 [cited by applicant]
WO 0052559W · 2000 [cited by applicant]
WO 0179970W · 2001 [cited by applicant]
“Orlando IT Operations Management”, ServiceNow Docs, Jun. 18, 2020, 573 pages. [cited by applicant]
Hyndman, R.J., & Athanasopoulos, G. (2018) Forecasting: principles and practice, 2nd edition, OTexts: Melbourne, Australia. OTexts.com/fpp2, chapter 3.1. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 16/934,356, mailed Jun. 14, 2023. [cited by applicant]
Office Action, U.S. Appl. No. 16/934,356, mailed Nov. 25, 2022. [cited by applicant]
Office Action, U.S. Appl. No. 17/211,539, mailed Jan. 11, 2013. [cited by applicant]
Office Action, U.S. Appl. No. 17/211,539, mailed Apr. 14, 2023. [cited by applicant]