IP Library Granted Patent US 12,229,550
Granted Patent B2
US 12,229,550 · App. 18/131,587 · Granted Feb 18, 2025

Techniques for decoupling access to infrastructure models

Inventors: Keith A. Bentley (Elverson, PA); Samuel W. Wilson (Downingtown, PA); Shaun C. Sewall (Glenmoore, PA)
Assignee: Bentley Systems, Incorporated
G06F8/71G06F16/211G06F16/212G06F16/2428G06F16/252G06F16/284H04L67/02
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,229,550
App. No.
18/131,587
Granted
Feb 18, 2025
Kind
B2
Abstract

In example embodiments, techniques are provided for decoupling user access to infrastructure models from proprietary software that maintains and updates the infrastructure models. A backend application may include an infrastructure modeling backend module that, among other functions, handles communication with an infrastructure modeling frontend module of a frontend application that provides user access to the infrastructure model, infrastructure modeling hub services that maintain repositories for the infrastructure model, and an infrastructure modeling native module that creates, performs operations upon, and updates local instances of a database that stores the infrastructure model. While the infrastructure modeling backend module may pass information obtained from the infrastructure modeling frontend module and infrastructure modeling hub services to the infrastructure modeling native module, it may be functionally separated from the software of the infrastructure modeling native module that understands how to maintain and update infrastructure models, including interacting with local instances of the database.

Claims (39)

1. A method of decoupling user access to an infrastructure model from software that maintains and updates the infrastructure model, comprising:

functionally separating software of an infrastructure modeling backend module, executing on a client device or one or more cloud computing devices, that lacks an ability to interact with a local instance of a database that stores the infrastructure model from software of an infrastructure modeling native module that has the ability to interact with the local instance of the database that stores the infrastructure model;

calling, by the software of the infrastructure modeling backend module, services executing on the one or more cloud computing devices to request the services to obtain one or more changesets from a repository applicable to the infrastructure model stored in the local instance of the database, wherein each changeset is a set of database statements that update the infrastructure model stored in a particular instance of the database from one version to a new version; and

providing, by the software of the infrastructure modeling backend module to the infrastructure modeling native module, the one or more changesets to cause the software of the infrastructure modeling native module to apply the one or more changesets to the infrastructure model stored in the local instance of the database to update the local instance of the database;

obtaining, by the software of the infrastructure modeling backend module, information related to the infrastructure model;

determining, by the software of the infrastructure modeling backend module, a need to perform an operation upon the infrastructure model; and

calling, by the software of the infrastructure modeling backend module, the infrastructure modeling native module to request the software of the infrastructure modeling native module to perform the operation on the infrastructure model stored in the local instance of the database, the operation to include at least one of inserting into, deleting from, or querying about models, elements, or properties of the infrastructure model stored in the local instance of the database.

2. The method of claim 1 , further comprising:

receiving, by the software of the infrastructure modeling backend module from the software of the infrastructure modeling native module, a response based on the performed operation, the response usable to update a display of the infrastructure model.

3. The method of claim 1 , wherein the obtaining is from software of an infrastructure modeling frontend module that is part of an infrastructure modeling frontend application executing on the client device, and the need to perform the operation is based on receipt of a request from the software of the infrastructure modeling frontend module resulting from user interaction with the infrastructure model.

4. The method of claim 1 , wherein 1 the obtaining information related to the infrastructure model is from software of an infrastructure modeling frontend module that is part of a web frontend application executing within a web browser on the client device, and the software of the infrastructure modeling backend module is part of a backend application executing on the one or more cloud computing devices.

5. The method of claim 1 , wherein the obtaining information related to the infrastructure model is from software of an infrastructure modeling frontend module that is a part of a desktop frontend application executing on the client device that includes an embedded web browser, and the software of the infrastructure modeling backend module is a part of a backend application executing on the client device.

6. The method of claim 1 , wherein the operation is to insert an element into the infrastructure model stored in the local instance of the database.

7. The method of claim 1 , wherein the operation is to retrieve properties of an element of the infrastructure model stored in the local instance of the database.

8. The method of claim 1 , wherein the operation is to generate a database query against the local instance of the database.

9. A method of decoupling user access to an infrastructure model from software that maintains and updates the infrastructure model, comprising:

functionally separating software of an infrastructure modeling backend module, executing on a client device or one or more cloud computing devices, that lacks an ability to interact with a local instance of a database that stores the infrastructure model from software of an infrastructure modeling native module that has the ability to interact with the local instance of the database that stores the infrastructure model, wherein the infrastructure model is a digital representation of a building, factory, road, railway, or bridge that has been built, or is planned to be built, in the real-world;

obtaining, by the software of the infrastructure modeling backend module, a request to open the infrastructure model;

calling, by the software of the infrastructure modeling backend module, services executing on the one or more cloud computing devices to obtain one or more changesets from a repository applicable to the infrastructure model stored in the local instance of the database, wherein each changeset is a set of database statements that update the infrastructure model stored in a particular instance of the database from one version to a new version;

providing, by the software of the infrastructure modeling backend module, the one or more changesets to the software of the infrastructure modeling native module to request the software of the infrastructure modeling native module to apply the one or more changesets to update the infrastructure model stored in the local instance of the database to update the local instance of the database;

determining, by the software of the infrastructure modeling backend module, a need to perform an operation upon the infrastructure model; and

calling, by the software of the infrastructure modeling backend module, the infrastructure modeling native module to request the infrastructure modeling native module to perform the operation on the local instance of a database, 29 the operation to include at least one of inserting into, deleting from, or querying about models, elements, or properties of the infrastructure model stored in the local instance of the database.

10. The method of claim 9 , further comprising:

receiving, by the software of the infrastructure modeling backend module from the software of the infrastructure modeling native module, a response based on the performed operation, the response usable to update a display of the infrastructure model.

11. The method of claim 9 , wherein the obtaining the request is from software of an infrastructure modeling frontend module that is part of an infrastructure modeling frontend application executing on the client device, and the need to perform the operation is based on receipt of a request from the software of the infrastructure modeling frontend module resulting from user interaction with the infrastructure model.

12. The method of claim 9 , wherein the obtaining the request is from software of an infrastructure modeling frontend module that is part of a web frontend application executing within a web browser on the client device, and the software of the infrastructure modeling backend module is part of a backend application executing on the one or more cloud computing devices.

13. The method of claim 9 , wherein the obtaining the request is from software of an infrastructure modeling frontend module that is a part of a desktop frontend application executing on the client device that includes an embedded web browser, and the software of the infrastructure modeling backend module is a part of a backend application executing on the client device.

14. The method of claim 9 , wherein the operation is to 1 insert an element into the infrastructure model stored in the local instance of the database.

15. A non-transitory electronic device readable medium having software stored thereon, the software when executed by one or more processors of a client device or of one or more cloud computing devices configured to:

obtain a request to open an infrastructure model at software that lacks an ability to interact with the local instance of a database that stores the infrastructure model, wherein the infrastructure model is a digital representation of a building, factory, road, railway, or bridge that has been built, or is planned to be built, in the real-world;

call services executing on the one or more cloud computing devices to obtain one or more changesets from a repository applicable to a local instance of a database that stores the infrastructure model, wherein each changeset is a set of database statements that update the infrastructure model stored in a particular instance of the database from one version to a new version;

provide the one or more changesets from the software that lacks the ability to interact with a local instance of a database to functionally separate software that has the ability to interact with the local instance of the database to request the functionally separate software to apply the one or more changesets to the local instance of the database to update the infrastructure model stored in the local instance of the database;

determine a need to perform an operation upon the infrastructure model; and

call the functionally separate software that has the ability to interact with the local instance of the database to request the functionally separate software to perform the operation on the infrastructure model stored in the local instance of the database, the operation to include at least one of inserting into, deleting from, or querying about models, elements, or properties of the infrastructure model stored in the local instance of the database.

16. The non-transitory electronic device readable medium of claim 15 , further comprising software that when executed is configured to:

receive from the functionally separate software that has the ability to interact with the local instance of the database a response based on the performed operation, the response usable to update a display of the infrastructure model.

17. The non-transitory electronic device readable medium of claim 15 , further comprising software that when executed is configured to:

determine the need to perform the operation based on receipt of a request resulting from user interaction with the infrastructure model.

18. The non-transitory electronic device readable medium of claim 15 , wherein the operation is to insert an element into the infrastructure model stored in the local instance of the database.

Assignments (2)
SECURITY INTEREST Recorded Oct 25, 2024
From: BENTLEY SYSTEMS, INCORPORATED
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 069268/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2023
From: BENTLEY, KEITH A.; WILSON, SAMUEL W.; SEWALL, SHAUN C.
To: BENTLEY SYSTEMS, INCORPORATED
Reel/Frame 063245/0911 →
Continuity (3)
Continuation 16559057 · Sep 3, 2019
Provisional Application 62745104 · Oct 12, 2018
Related Publication 20230244684A1 · Aug 3, 2023
References Cited (39)
US 6341291B1 · Bentley et al. · 2002 [cited by applicant]
US 8706692B1 · Luthra · 2014 [cited by examiner]
US 8719229B1 · Awe et al. · 2014 [cited by applicant]
US 9053080B2 · Look et al. · 2015 [cited by applicant]
US 10311170B2 · Heidinger et al. · 2019 [cited by applicant]
US 20050198244A1 · Eilam · 2005 [cited by examiner]
US 20070021955A1 · Tolone · 2007 [cited by examiner]
US 20070299937A1 · Winter et al. · 2007 [cited by applicant]
US 20080140732A1 · Wilson et al. · 2008 [cited by applicant]
US 20110113359A1 · Massey et al. · 2011 [cited by applicant]
US 20110126275A1 · Anderson · 2011 [cited by examiner]
US 20110264678A1 · Mital et al. · 2011 [cited by applicant]
US 20120096070A1 · Bryzak · 2012 [cited by applicant]
US 20120284684A1 · Michaely et al. · 2012 [cited by applicant]
US 20140013099A1 · Sekiguchi et al. · 2014 [cited by applicant]
US 20140358860A1 · Wautier · 2014 [cited by examiner]
US 20150229638A1 · Loo · 2015 [cited by examiner]
US 20150286558A1 · Bartlow et al. · 2015 [cited by applicant]
US 20160162363A1 · Letkeman · 2016 [cited by applicant]
US 20170123934A1 · Bentley · 2017 [cited by applicant]
US 20170220606A1 · Wang et al. · 2017 [cited by applicant]
US 20170277761A1 · Bentley et al. · 2017 [cited by applicant]
US 20180144016A1 · Bestfleisch et al. · 2018 [cited by applicant]
US 20190004925A1 · Buckingham et al. · 2019 [cited by applicant]
US 20190079958A1 · Bentley et al. · 2019 [cited by applicant]
US 20190081847A1 · Bentley et al. · 2019 [cited by applicant]
US 20190108245A1 · Bentley et al. · 2019 [cited by applicant]
US 20190354540A1 · Stigsen · 2019 [cited by applicant]
CN 1825306A · 2006 [cited by applicant]
CN 105912411A · 2016 [cited by applicant]
CN 106462639A · 2017 [cited by applicant]
WO WO2014193458A1 · 2014 [cited by applicant]
“Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” International Filing Date: Oct. 1, 2019, International Application N… [cited by applicant]
Scott, Tamara, “How to Use an API: Just the Basics,” Retrieved from the Internet: <https://technologyadvice.com/blog/information-technology/how-to-use-an-api/>, Dec. 19, 2016, pp. 1-11. [cited by applicant]
U.S. Appl. No. 16/156,824, Filed: Oct. 10, 2018 by Ramanujam Raman et al. for Technique for Generating a Change Cache Database Utilized To Inspect Changes Made To a Repository, pp. 1-35. [cited by applicant]
U.S. Appl. No. 16/559,057, Filed: Sep. 3, 2019 by Keith A. Bentley et al. for Techniques for Decoupling Access To Infrastructure Models, pp. 1-26. [cited by applicant]
Chinese Search Report for Chinese Application No. 201980082365.4 dated Jun. 12, 2023, pp. 1-2. [cited by applicant]
Chinese Office Action for Chinese Application No. 201980067119.1 dated Jul. 30, 2024, pp. 1-24. [cited by applicant]
Chinese Search Report for Chinese Application No. 201980067119.1 dated Jul. 29, 2024, pp. 1-5. [cited by applicant]
Cited By (1)
US 12,511,813