CN113196231A - 用于解耦对基础设施模型的访问的技术 - Google Patents
用于解耦对基础设施模型的访问的技术 Download PDFInfo
- Publication number
- CN113196231A CN113196231A CN201980067119.1A CN201980067119A CN113196231A CN 113196231 A CN113196231 A CN 113196231A CN 201980067119 A CN201980067119 A CN 201980067119A CN 113196231 A CN113196231 A CN 113196231A
- Authority
- CN
- China
- Prior art keywords
- infrastructure
- module
- modeling
- model
- infrastructure modeling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Evolutionary Computation (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Structural Engineering (AREA)
- Architecture (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Civil Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在示例实施例中,提供了用于将对基础设施模型的用户访问与维护和更新基础设施模型的专有软件解耦的技术。后端应用可以包括基础设施建模后端模块以及基础设施建模本机模块,所述基础设施建模后端模块除了其他功能之外尤其处理与提供对基础设施模型的用户访问的前端应用的基础设施建模前端模块、维护基础设施模型的储存库的基础设施建模中枢服务的通信,所述基础设施建模本机模块在存储基础设施模型的数据库的本地实例上创建、执行操作并且更新所述本地实例。虽然基础设施建模后端模块可以将从基础设施建模前端模块和基础设施建模中枢服务获得的信息传递给基础设施建模本机模块,但是它可以在功能上与理解如何维护和更新基础设施模型(包括与数据库的本地实例交互)的基础设施建模本机模块的软件分离。
Description
背景技术
技术领域
本公开一般涉及基础设施建模,并且更具体地涉及用于准许对基础设施模型的分布式用户访问的软件架构。
背景信息
贯穿基础设施(例如,建筑物、工厂、道路、铁路、桥、电力和通信网络等)的设计、构造和运营,通常合期望的是使用基础设施建模应用来对基础设施建模。基础设施建模应用传统上使用多种不同的技术和数据格式来维护项目不同阶段的基础设施描述。在过去,根据这样的格式维护的基础设施信息是不连贯的,并且包括大量的数据冗余、不一致和其他低效率的源。模型可能已经针对特定的用例进行了优化和适配,通常不考虑基础设施项目的其他阶段,从而导致有区别的产品/规定/阶段数据简仓(silo)和断开的工作流。
最近,已经开发了系统,所述系统可以打破这样的现有的产品/规定/阶段数据简仓,并使能生成现实世界基础设施的真正“数字双胞胎”,其以更统一的方式描述基础设施的各方面。这类“数字双胞胎”的生成解决了传统基础设施建模技术的许多局限性。然而,这也导致了新的技术挑战。这些挑战包括如下问题:如何使能从多个不同源对基础设施模型的分布式用户访问,同时提供高性能(例如,就网络带宽、处理负载等而言)和确保安全性。因此,需要改进的技术来准许对基础设施模型的分布式用户访问同时解决这些问题。
发明内容
在示例实施例中,提供了用于将对基础设施模型的用户访问与维护和更新基础设施模型的专有软件解耦的技术。后端应用可以包括基础设施建模后端模块以及基础设施建模本机模块,所述基础设施建模后端模块除了其他功能之外尤其处理与提供对基础设施模型的用户访问的前端应用的基础设施建模前端模块、维护基础设施模型的储存库的基础设施建模中枢服务的通信,所述基础设施建模本机模块在存储基础设施模型的数据库的本地实例上创建、执行操作(例如,插入、删除和查询模型、元素、属性等)并且更新(例如,将变更集应用于)所述本地实例。虽然基础设施建模后端模块可以将从基础设施建模前端模块和基础设施建模中枢服务获得的信息传递给基础设施建模本机模块,但是它可以在功能上与理解如何维护和更新基础设施模型(包括与数据库的本地实例交互)的基础设施建模本机模块的软件分离。这样的布置可以允许开发多种定制的后端应用,其部署可以减少网络带宽消耗,提供负载(例如,处理负载)平衡和其他益处,同时通过将维护和更新基础设施模型的软件与后端应用的软件的其余部分在功能上分离来增加安全性。
应当理解,除了本发明内容中讨论的那些之外,可以实现多种附加特征和替代实施例。本发明内容旨在简单地作为对读者的简要介绍,并且不指示或暗示本文提及的示例涵盖本公开的所有方面,或者是本公开的必需或必要方面。
附图说明
以下描述参考了示例实施例的附图,其中:
图1是示例基础设施建模软件架构的高级框图,该示例基础设施建模软件架构将对基础设施模型的用户访问与维护和更新基础设施模型的专有软件解耦;
图2是用于打开基础设施模型的示例步骤序列的流程图;
图3是用于关闭基础设施模型的示例步骤序列的流程图;
图4是用于将元素插入基础设施模型的示例步骤序列的流程图;
图5是用于从基础设施模型检索元素属性的示例步骤序列的流程图;和
图6是用于查询基础设施模型的示例步骤序列的流程图。
具体实施方式
定义
如本文所使用的,术语“基础设施”是指在现实世界中已经构建或计划构建的物理结构或对象。基础设施的示例包括建筑物、工厂、道路、铁路、桥、电力和通信网络等。
如本文所使用的,术语“构建的基础设施模式(schema)”或“BIS”是指一种类型的概念模式(即,概念数据模型),其描述了表示基础设施的数据的语义。
如本文所使用的,术语“基础设施模型”是指基础设施的数字表示。基础设施模型可以根据构建的基础设施模式来组织。一种特定类型的基础设施模型可以是iModel®基础设施模型。
如本文所使用的,术语“基础设施建模储存库”,或简称为“储存库”,是指存储一个或多个基础设施模型的分布式数据库。这样的分布式数据库的每个物化视图可以被称为“公文包(briefcase)”,如下面讨论的。
如本文所使用的,术语“变更集”是指捕获将数据库的特定实例从一个版本变换到新版本所需的变更的持久电子记录。如下面解释的,在示例实现中,有序系列的变更集可以表示时间线。时间线的变更集可以捕获将数据库实例从一个版本(版本M)移动到另一个版本(版本Q)所需的变更。变更集可以按顺序的次序被应用,以便将版本M移动到版本Q。变更集也可以按相反顺序的次序被应用,以便将版本Q移动回到版本M。
如本文所使用的,术语“公文包”是指数据库的特定实例。在示例实现中,公文包可以表示存储库的特定版本的信息的物化视图。公文包的一个版本(版本M)可以被认为是将所有变更集(直到并且包括变更集M)顺序应用到“基线”公文包(例如,空的“基线”公文包)所产生的信息。通过向它应用从N到Q(包括N和Q)的变更集的集合,版本M的公文包可以被移动到另一个版本(版本Q)。
如本文所使用的,术语“元素”是指维持在公文包中的记录。一个元素表示(即,“模型”,在该术语的口语意义上)现实世界中的实体。在示例实现中,现实世界中的实体可以是基础设施的单个单元。
如本文所使用的,术语“模型”是指一组元素的容器,其中该组元素共同表示(即,“模型”,在该术语的口语意义上)现实世界中的实体。在示例实现中,现实世界中的实体可以是基础设施的单个单元。在一些情况下,模型可以嵌套。也就是说,模型被称为将特定元素“分解”成更细化粒度的描述(即,描述现实世界中相同实体但在细化粒度下的描述)。
如本文所使用的,术语“关系”是指涉及两个或更多个元素或模型的连接。关系的示例包括可能暗示所有权的父子关系和可能定义组的对等关系。
示例实施例
图1是将对基础设施模型(例如,iModel®基础设施模型)的用户访问与维护和更新基础设施模型的专有软件140解耦的示例基础设施建模软件架构100的高级框图。该架构可以划分为在终端用户本地提供的一个或多个计算设备(统称为“客户端设备”)上执行的客户端侧软件110和在与终端用户远程提供的一个或多个计算设备(统称为“云计算设备”)上执行的基于云的软件112,该基于云的软件112经由网络(例如,因特网)可访问。客户端侧软件110可以包括在由网络浏览器124(例如,Chrome® 网络浏览器)提供的虚拟环境(例如,“浏览器沙箱”)内操作的网络前端应用120和直接在操作系统下操作的桌面前端应用122以及与之交互的后端应用132。基于云的软件112可以包括基础设施建模中枢服务(例如,iModelHub™服务)142和与网络前端应用120交互的后端应用130。至少操作用于维护和更新基础设施模型的基础设施建模中枢服务142以及后端应用132的部分可以被认为是专有软件140。
基于云的软件112的核心可以是基础设施建模中枢服务142,其管理包括存储基础设施模型的公文包的储存库144-146。储存库144-146中的公文包152可以作为空的“基线”公文包开始,该空的“基线”公文包由基础设施建模中枢服务142以编程方式生成并持续存在。储存库144-146可以通过接受新的变更集到接受的变更集147的集合中来被修改。随着接受的变更集147的集合中的变更集数量增长,对取得空的“基线”公文包并应用将其变换成在特定版本(例如,“最近版本”)下的公文包所需要的所有变更集所要求的时间可能增长变大。出于该理由,基础设施建模中枢服务142可以创建在不同版本下的附加的“快照”公文包152。当需要公文包的特定版本(例如,“最近版本”)时,访问最接近这样的版本的公文包152(其可以是“快照”公文包),并应用来自集合147的变更集(或反向变更集),直到获得所需版本的公文包为止。
可以利用概念模式(例如,BIS)来定义并且使用底层数据库模式(例如,SQlite模式)来存储储存库144-146的公文包152中维护的基础设施模型。概念模式可以使用包括元素、模型和关系的数字对象来描述基础设施,所述数字对象用作基础设施模型的构建块。元素表示(即,“模型”,在该术语的口语意义上)现实世界中的实体。基于被建模实体的性质,一个元素可以是“领导”元素。其他元素通常与领导元素反向相关。模型充当元素集合的容器,其中该元素集合共同表示(即,“模型”,在该术语的口语意义上)现实世界中的实体。在一些情况下,模型可以嵌套。也就是说,模型被称为将特定元素“分解”成更细化粒度的描述。模型可以根据模型层次结构进行布置,以支持从多个角度进行建模。单个存储库模型可以用作模型层次结构的根。关系涉及两个或更多个元素或模型。关系的示例包括可以暗示所有权的父子关系和可以定义组的对等关系。
底层数据库模式可以描述对象如何被存储到底层数据库的表的各个行中。可以使用存储对象属性的多个不同表的多个行来维护所述对象。例如,元素的属性可以跨多个表的多个行之上散布。为了创建、移除或修改对象,在适当的表的适当行上执行原始的数据库操作,诸如插入、删除或更新。
基础设施建模中枢服务142可以被云中执行信息管理和其他功能的多个其他服务调用。例如,信息管理服务152可以管理资产数据、项目数据、现实数据、物联网(IoT)数据、代码和其他特征。此外,桥服务154使用知道如何读取和解释传统格式的源数据的源格式特定桥156来准许与传统数据源(未示出)互操作,递增地对齐数据。还可以提供多种多样的附加服务(未示出),并调用基础设施建模中枢服务142或以其他方式与之交互。
为了准许对存储库144-146的公文包152和变更集147中维护的基础设施模型的访问,可以提供后端应用130、132。如以上提及的,一些后端应用130可以作为基于云的软件112的一部分位于云中,而其他后端应用可以作为客户端侧软件110的一部分位于客户端设备上。后端应用130、132可以维护本地公文包138和将它们变换成所期望版本所需的变更集。每个后端应用130、132可以包括用于如下各项的功能:与前端应用120、122交互并服务来自前端应用120、122的请求、调用基础设施建模中枢服务142以及在本地公文包138上创建和执行操作(例如,插入、删除和查询本地公文包138的模型、元素和属性,将变更集应用于本地公文包138等)。这样的功能可以由基础设施建模后端模块(例如,iModel.js后端模块)134(例如,用JavaScript或另一种语言编写)和基础设施建模本机模块(例如,iModel.js本机模块)136(例如,用C++或另一种语言编写)来实现。基础设施建模后端模块134可以处理与如下各项相关的功能:与前端应用120、122的交互和服务来自前端应用120、122的请求以及调用基础设施建模中枢服务142,但是不理解如何在存储基础设施模型的本地公文包138上创建和执行操作(例如,插入、删除和查询本地公文包138的模型、元素和属性,将变更集应用于本地公文包138等)。可以依赖基础设施建模本机模块来处理该功能。
前端应用120、122可以主要关注提供用户界面和使能与基础设施模型的用户交互。如以上提及的,一些前端应用可以是在由客户端设备上的网络浏览器(例如,Chrome®网络浏览器)124提供的虚拟环境(例如,“浏览器沙箱”)内操作的网络前端应用120,而其他前端应用可以是直接与客户端设备的操作系统交互的作为独立应用执行的桌面前端应用122。桌面前端应用122可以包括嵌入式网络浏览器代码(例如,Chromium® 嵌入式网络浏览器代码)126,以准许它们以与网络前端应用120类似的方式与后端应用132交互。前端应用120、122可以利用基础设施建模前端模块(例如,iModel.js前端模块)128(例如,用JavaScript或另一种语言编写)向基础设施建模后端模块(例如,iModel.js后端模块)134发送请求并处理来自其的响应。取决于前端应用120、122是网络前端应用120还是桌面前端应用122,请求和响应可以不同地发送。在网络前端应用120的情况下,通信可以经由网络协议(例如,超文本传输协议(HTTP))到后端应用130的基础设施建模后端模块(例如,iModel.js后端模块)134,所述后端应用130作为基于云的软件112的一部分位于云中。在桌面前端应用122的情况下,通信可以经由进程间通信(IPC)到后端应用132的基础设施建模后端模块(例如iModel.js后端模块)134,所述后端应用132作为客户端侧软件110的一部分位于客户端设备上。
在操作中,基础设施建模软件架构100起作用以将对基础设施模型的用户访问与维护和更新基础设施模型的专有软件140结构解耦。特别地,虽然基础设施建模后端模块(例如,iModel.js后端模块)134可以将从基础设施建模前端模块(例如,iModel.js前端模块)128和基础设施建模中枢服务142获得的信息传递给基础设施建模本机模块,其用于在公文包上创建和执行原始操作(例如,插入、删除和查询公文包的模型、元素和属性,将变更集应用于公文包等)中,但是基础设施建模后端模块本身可能不理解如何维护公文包以及如何与公文包交互,其在功能上与公文包隔离。这样的布置可以允许开发多种定制的后端应用130、132,其部署可以减少网络带宽消耗、提供负载平衡和其他益处,同时通过将理解如何与公文包交互的软件与后端应用的其余部分在功能上分离来增加安全性。
图2是用于打开基础设施模型的示例步骤序列200的流程图。这样的操作可以用于从储存库144-146获得基础设施模型的物化视图,以存储在公文包138中。在步骤205,后端应用130、132的基础设施建模后端模块(例如,iModel.js后端模块)134经由前端应用120、122的基础设施建模前端模块(例如,iModel.js前端模块)128接收对于打开基础设施模型的请求。作为响应,在步骤210,基础设施建模后端模块134从基础设施建模中枢服务142下拉任何相关变更集147,并将它们提供给基础设施建模本机模块136。在步骤215,基础设施建模本机模块136将变更集应用于基线公文包(例如,空公文包或快照公文包)数据库,以产生本地公文包138。在步骤220,它向基础设施建模后端模块134返回状态。在步骤225,基础设施建模后端模块134可以在错误状态下中止,或者在成功状态下继续。在步骤230,基础设施建模后端模块134调用基础设施建模本机模块136来打开本地公文包138。在步骤235,基础设施建模本机模块136打开本地公文包138,并且在步骤240,向基础设施建模后端模块134返回状态。在步骤245,基础设施建模后端模块134可以在错误状态下中止,或者在成功状态下继续。在步骤250,基础设施建模后端模块134调用基础设施建模本机模块136来获得属性。在步骤255,基础设施建模本机模块136对本地公文包138执行查询以利用专有值填充对象(例如,JavaScript对象标记法(JSON)对象或另一种类型的对象),并且在步骤260,将该对象返回给基础设施建模后端模块134。此后,在步骤265,基础设施建模后端模块134将来自对象的信息返回给前端应用120、122。
图3是用于关闭基础设施模型的示例步骤序列300的流程图。这样的操作可以用于关闭本地公文包138。在步骤305,后端应用130、132的基础设施建模后端模块(例如,iModel.js后端模块)134经由前端应用120、122的基础设施建模前端模块(例如,iModel.js前端模块)128接收用于关闭基础设施模型的请求。作为响应,在步骤310,基础设施建模后端模块134调用基础设施建模本机模块(例如,iModel.js本机模块)136来关闭本地公文包138。在步骤315,基础设施建模本机模块136关闭本地公文包138,在步骤320,向基础设施建模后端模块134返回确认。在步骤325,基础设施建模后端模块134可选地从其本地存储装置清除公文包的任何相关信息。此后,在步骤330,基础设施建模后端模块134经由基础设施建模前端模块128向前端应用120、122返回确认响应。
图4是用于将元素插入基础设施模型中的示例步骤序列400的流程图。在步骤405,后端应用130、132的基础设施建模后端模块(例如,iModel.js后端模块)134经由前端应用120、122的基础设施建模前端模块(例如,iModel.js前端模块)128接收用于插入具有一个或多个属性的新元素的请求。在步骤410,基础设施建模后端模块134将属性串行化为属性字符串(例如,JSON字符串)。作为响应,在步骤415,基础设施建模后端模块134调用基础设施建模本机模块(例如,iModel.js本机模块)136来插入元素,从而提供属性字符串。响应于该调用,在步骤420,基础设施建模本机模块136从属性字符串解析属性值,并且在步骤425,从属性值初始化元素结构。在步骤430,基础设施建模本机模块136将来自元素结构的值绑定到数据库语句(例如,SQL INSERT语句),并且在步骤435,对本地公文包138执行数据库语句。该语句可以在数据库中为插入的元素创建新行,并且这样的新行可以存储在变更集中。在步骤440,基础设施建模本机模块136检索新插入行的标识符(例如,ElementId(元素Id)),并且在步骤445,使标识符字符串中的标识符(例如,JSON字符串)串行化。在步骤450,它将标识符字符串返回给基础设施建模后端模块134。在步骤455,基础设施建模后端模块134使标识符字符串解串行化,并且在步骤460,经由基础设施建模前端模块128将对象(例如,JavaScript对象或另一种类型的对象)返回给前端应用120、122。
图5是用于从基础设施模型检索元素属性的示例步骤序列500的流程图。在步骤505,后端应用130、132的基础设施建模后端模块(例如,iModel.js后端模块)134经由前端应用120、122的基础设施建模前端模块(例如,iModel.js前端模块)128接收用于取得基础设施模型元素的元素属性的请求。该请求包括元素的标识符。作为响应,在步骤510,基础设施建模后端模块134将标识符串行化为标识符字符串(例如,JSON字符串),并且在步骤515,调用基础设施建模本机模块(例如,iModel.js本机模块)136,从而提供标识符字符串。响应于该调用,在步骤520,基础设施建模本机模块136从标识符字符串解析标识符(例如,ElementId(元素Id)),并且在步骤525,在公文包138上执行对包括该标识符(例如,ElementId(元素Id))的元素的查询。在步骤530,它从查询结果加载元素结构,并且在步骤535,在结果字符串(例如,JSON字符串)中串行化其至少一部分。在步骤540,基础设施建模本机模块136将结果字符串返回给基础设施建模后端模块134。在步骤545,基础设施建模后端模块134将结果字符串解串行化为对象(例如,及时定义的JavaScript类或其他类型的类)。在步骤550,基础设施建模后端模块134经由基础设施建模前端模块128将对象返回给前端应用120、122。
图6是用于查询基础设施模型的示例步骤序列600的流程图。在步骤605,后端应用130、132的基础设施建模后端模块(例如,iModel.js后端模块)134经由前端应用120、122的基础设施建模前端模块(例如,iModel.js前端模块)128接收用于查询基础设施模型的请求。该请求包括查询语句和绑定。作为响应,在步骤610,基础设施建模后端模块134调用基础设施建模本机模块(例如,iModel.js本机模块)136,提供查询语句。响应于该调用,在步骤615,基础设施建模本机模块136准备针对本地公文包138的数据库语句(例如,SQLSELECT语句),并且在步骤620,向基础设施建模后端模块134返回状态。在步骤625,基础设施建模后端模块134可以在错误状态下中止,或者在成功状态下继续。在步骤630,基础设施建模后端模块134调用提供绑定的基础设施建模本机模块136。在步骤635,基础设施建模本机模块136将来自绑定的值绑定到数据库语句(例如,SQL SELECT语句)中,并且在步骤640,向基础设施建模后端模块134返回状态。在步骤645,基础设施建模后端模块134可以在错误状态下中止,或者在成功状态下继续。在步骤650,基础设施建模后端模块134调用基础设施建模本机模块136以得到查询的结果。在步骤655,基础设施建模本机模块136在本地公文包138上执行数据库语句,并且在步骤660,从该结果构造对象(例如,JSON对象),所述结果在步骤665被返回到基础设施建模后端模块134。在步骤670,基础设施建模后端模块134经由基础设施建模前端模块128将对象返回给前端应用120、122。
总之,将对基础设施模型的用户访问与维护和更新基础设施模型的专有软件解耦。应当理解,可以对技术进行多种多样的适配和修改。此外,一般来说,功能可以用软件、硬件或其各种组合来实现。软件实现可以包括存储在非暂时性电子设备可读介质(例如,非暂时性计算机可读介质)中的电子设备可执行指令(例如,计算机可执行指令),所述非暂时性电子设备可读介质(例如,非暂时性计算机可读介质)诸如是易失性存储器、持久存储设备或其他有形介质。硬件实现可以包括逻辑电路、专用集成电路和/或其他类型的硬件组件。此外,组合的软件/硬件实现可以包括存储在非暂时性电子设备可读介质中的电子设备可执行指令,以及一个或多个硬件组件二者。最重要的是,应当理解,以上描述意味着仅作为示例来考虑。
Claims (20)
1.一种将对基础设施模型的用户访问与维护和更新基础设施模型的软件解耦的方法,包括:
由在客户端设备或者一个或多个云计算设备上执行的后端应用的基础设施建模后端模块确定在基础设施模型上执行操作的需要;
调用描述所述操作的后端应用的基础设施建模本机模块;和
由基础设施建模本机模块在存储基础设施模型的数据库的本地实例上执行所述操作,所述操作包括以下各项中的至少一个:向所述数据库的本地实例中插入、从所述数据库的本地实例删除、或对所述数据库的本地实例查询其模型、元素或属性、或者向所述数据库的本地实例应用一个或多个变更集。
2.根据权利要求1所述的方法,进一步包括:
基于执行的操作,从基础设施建模本机模块向基础设施建模后端模块返回响应,所述响应可用于更新基础设施模型的显示。
3.根据权利要求1所述的方法,进一步包括:
由基础设施建模后端模块调用在一个或多个云计算设备上执行的基础设施建模中枢服务,以从适用于数据库的本地实例的储存库获得一个或多个变更集;
由基础设施建模后端模块向基础设施建模本机模块提供所述一个或多个变更集;和
由基础设施建模本机模块将所述一个或多个变更集应用于数据库的本地实例,以更新本地实例。
4.根据权利要求1所述的方法,其中,执行所述操作的需要基于从在客户端设备上执行的基础设施建模前端应用的请求的接收,所述客户端设备提供用户界面以用于与基础设施模型的用户交互。
5.根据权利要求4所述的方法,其中,所述基础设施建模前端模块是在所述客户端设备上的网络浏览器内执行的网络前端应用的一部分,并且所述基础设施建模后端模块是所述一个或多个云计算设备上的后端应用的一部分。
6.根据权利要求4所述的方法,其中,所述基础设施建模前端模块是包括嵌入式网络浏览器的客户端设备上的桌面前端应用的一部分,并且所述基础设施建模后端模块是客户端设备上的后端应用的一部分。
7.根据权利要求1所述的方法,其中,所述操作是打开基础设施模型。
8.根据权利要求1所述的方法,其中,所述操作是将元素插入到基础设施模型中。
9.根据权利要求1所述的方法,其中,所述操作是检索基础设施模型的元素的属性。
10.根据权利要求1所述的方法,其中,所述操作是针对存储基础设施模型的数据库实例生成数据库查询。
11.一种其上存储有指令的非暂时性电子设备可读介质,所述指令在由客户端设备或一个或多个云计算设备的一个或多个处理器执行时被配置为:
由基础设施建模后端模块确定对基础设施模型执行操作的需要;
调用描述操作的基础设施建模本机模块;和
由基础设施建模本机模块在存储基础设施模型的数据库的本地实例上执行操作,所述操作包括以下各项中的至少一个:向所述数据库的本地实例中插入、从所述数据库的本地实例删除、或对所述数据库的本地实例查询其模型、元素或属性、或者向所述数据库的本地实例应用一个或多个变更集。
12.根据权利要求11所述的非暂时性电子设备可读介质,进一步包括指令,所述指令在被执行时被配置为:
基于执行的操作,从基础设施建模本机模块向基础设施建模后端模块返回响应,所述响应可用于更新基础设施模型的显示。
13.根据权利要求11所述的非暂时性电子设备可读介质,进一步包括指令,所述指令在被执行时被配置为:
由基础设施建模后端模块调用在一个或多个云计算设备上执行的基础设施建模中枢服务,以从可应用于数据库的本地实例的储存库获得一个或多个变更集;
由基础设施建模后端模块向基础设施建模本机模块提供所述一个或多个变更集;和
由基础设施建模本机模块将所述一个或多个变更集应用于数据库的本地实例,以更新本地实例。
14.根据权利要求11所述的非暂时性电子设备可读介质,其中,执行所述操作的需要基于从客户端设备上的基础设施建模前端应用的请求的接收,所述客户端设备提供用户界面以用于与基础设施模型的用户交互。
15.根据权利要求13所述的非暂时性电子设备可读介质,其中,所述基础设施建模前端模块是在所述客户端设备上的网络浏览器内执行的网络前端应用的一部分,并且所述基础设施建模后端模块是所述一个或多个云计算设备上的后端应用的一部分。
16.根据权利要求13所述的非暂时性电子设备可读介质,其中,所述基础设施建模前端模块是所述客户端设备上包括嵌入式网络浏览器的桌面前端应用的一部分,并且所述基础设施建模后端模块是在所述客户端设备上执行的后端应用的一部分。
17.根据权利要求11所述的非暂时性电子设备可读介质,其中,所述操作是打开所述基础设施模型。
18.根据权利要求11所述的非暂时性电子设备可读介质,其中,所述操作是将元素插入到基础设施模型中。
19.根据权利要求11所述的非暂时性电子设备可读介质,其中,所述操作是检索基础设施模型的元素的属性。
20.根据权利要求11所述的非暂时性电子设备可读介质,其中,所述操作是针对存储所述基础设施模型的所述数据库的实例生成数据库查询。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862745104P | 2018-10-12 | 2018-10-12 | |
US62/745104 | 2018-10-12 | ||
PCT/US2019/054017 WO2020076554A1 (en) | 2018-10-12 | 2019-10-01 | Techniques for decoupling access to infrastructure models |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113196231A true CN113196231A (zh) | 2021-07-30 |
Family
ID=68345014
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980082365.4A Pending CN113366431A (zh) | 2018-10-12 | 2019-10-01 | 变更集冲突变基 |
CN201980067119.1A Pending CN113196231A (zh) | 2018-10-12 | 2019-10-01 | 用于解耦对基础设施模型的访问的技术 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980082365.4A Pending CN113366431A (zh) | 2018-10-12 | 2019-10-01 | 变更集冲突变基 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11144309B2 (zh) |
EP (2) | EP3864503A1 (zh) |
CN (2) | CN113366431A (zh) |
WO (2) | WO2020076554A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11093525B2 (en) | 2018-09-27 | 2021-08-17 | Sap Se | Transaction merging for offline applications |
US11226953B2 (en) | 2018-10-10 | 2022-01-18 | Bentley Systems, Incorporated | Technique for generating a change cache database utilized to inspect changes made to a repository |
US11175905B2 (en) * | 2019-09-27 | 2021-11-16 | Sap Se | Optimizing uploads for an offline scenario by merging modification operations |
US11455437B1 (en) | 2019-10-15 | 2022-09-27 | Bentley Systems, Incorporated | Techniques for generating and retrieving change summary data and aggregated model version data for an infrastructure model |
US11782685B2 (en) * | 2020-06-17 | 2023-10-10 | Bank Of America Corporation | Software code vectorization converter |
US11573775B2 (en) * | 2020-06-17 | 2023-02-07 | Bank Of America Corporation | Software code converter for resolving redundancy during code development |
US11593247B2 (en) * | 2021-06-03 | 2023-02-28 | Red Hat, Inc. | System performance evaluation and enhancement in a software-defined system |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341291B1 (en) | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
CA2397762A1 (en) | 2000-01-25 | 2001-08-02 | Autodesk, Inc. | Method and apparatus for providing access to and working with architectural drawings on the internet |
US7676552B2 (en) * | 2004-02-11 | 2010-03-09 | International Business Machines Corporation | Automatic provisioning of services based on a high level description and an infrastructure description |
WO2006135756A1 (en) * | 2005-06-09 | 2006-12-21 | Intepoint, Llc | Multi-infrastructure modeling system |
US7783724B2 (en) * | 2006-06-23 | 2010-08-24 | International Business Machines Corporation | System and method for delivering business intelligence data in a client/server architecture |
US20080140732A1 (en) | 2006-12-11 | 2008-06-12 | Bentley System, Inc. | Method and system for sharing file based data |
US8601440B2 (en) * | 2009-11-10 | 2013-12-03 | Microsoft Corporation | Using web model feeds to version models which are defined in modeling languages |
US20110126197A1 (en) * | 2009-11-25 | 2011-05-26 | Novell, Inc. | System and method for controlling cloud and virtualized data centers in an intelligent workload management system |
US8706692B1 (en) * | 2010-02-12 | 2014-04-22 | Citibank, N.A. | Corporate infrastructure management system |
US20110264678A1 (en) * | 2010-04-26 | 2011-10-27 | Microsoft Corporation | User modification of a model applied to search results |
US20120096070A1 (en) * | 2010-10-15 | 2012-04-19 | Shane Bryzak | Web application framework remoting model api |
EP2474928A1 (en) | 2010-12-30 | 2012-07-11 | Dassault Systèmes | Merging of modeled objects |
JP5716822B2 (ja) * | 2011-03-11 | 2015-05-13 | 富士通株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
US9128805B2 (en) * | 2011-05-04 | 2015-09-08 | Microsoft Technology Licensing, Llc | Automated modification integration and conflict resolution for software development |
US8826222B2 (en) * | 2011-08-02 | 2014-09-02 | International Business Machines Corporation | Pre-merge conflict avoidance |
US8719229B1 (en) | 2012-10-12 | 2014-05-06 | Autodesk, Inc. | Cloud platform for managing design data |
US9575764B1 (en) | 2013-03-15 | 2017-02-21 | Atlassian Pty Ltd | Synchronizing branches of computer program source code |
US10061688B2 (en) * | 2013-05-14 | 2018-08-28 | Noblis, Inc. | Method and system to automatically enforce a hybrid branching strategy |
US9189533B2 (en) * | 2013-05-29 | 2015-11-17 | Microsoft Technology Licensing, Llc | Sync framework extensibility |
WO2015051833A1 (en) | 2013-10-09 | 2015-04-16 | Siemens Aktiengesellschaft | A system for providing infrastructure impacts on an urban area |
US9158658B2 (en) * | 2013-10-15 | 2015-10-13 | International Business Machines Corporation | Detecting merge conflicts and compilation errors in a collaborative integrated development environment |
US9231946B2 (en) * | 2014-02-07 | 2016-01-05 | Oracle International Corporation | Mobile cloud service architecture |
EP4057156A1 (en) * | 2014-06-24 | 2022-09-14 | Google LLC | Processing mutations for a remote database |
US9830227B2 (en) * | 2014-12-05 | 2017-11-28 | International Business Machines Corporation | Performing a closure merge operation |
US20160246837A1 (en) * | 2015-02-25 | 2016-08-25 | Nokia Technologies Oy | Methods, apparatuses and computer program products for enabling intelligent merging of modified data |
US10061787B2 (en) * | 2016-01-29 | 2018-08-28 | Ca, Inc. | Unified data model for integration between relational and non-relational databases |
US10353916B2 (en) * | 2016-03-25 | 2019-07-16 | Bentley Systems, Incorporated | Techniques for conversion of CAD descriptions |
US10606706B2 (en) | 2016-11-18 | 2020-03-31 | Sap Se | Graphical user interface with consistent redundant models |
US10402311B2 (en) * | 2017-06-29 | 2019-09-03 | Microsoft Technology Licensing, Llc | Code review rebase diffing |
US11971865B2 (en) | 2017-09-11 | 2024-04-30 | Bentley Systems, Incorporated | Intelligent model hierarchy for infrastructure modeling |
US11138529B2 (en) | 2017-09-11 | 2021-10-05 | Bentley Systems, Incorporated | Techniques for coordinating codes for infrastructure modeling |
WO2019075087A1 (en) | 2017-10-10 | 2019-04-18 | Bentley Systems, Incorporated | SOURCE INFRASTRUCTURE DATA ALIGNMENT WITH A BIS CONCEPTUAL SCHEME |
US11294935B2 (en) * | 2018-05-15 | 2022-04-05 | Mongodb, Inc. | Conflict resolution in distributed computing |
-
2019
- 2019-07-19 US US16/516,431 patent/US11144309B2/en active Active
- 2019-09-03 US US16/559,057 patent/US11645296B1/en active Active
- 2019-10-01 EP EP19794771.6A patent/EP3864503A1/en active Pending
- 2019-10-01 CN CN201980082365.4A patent/CN113366431A/zh active Pending
- 2019-10-01 EP EP19790370.1A patent/EP3864504B1/en active Active
- 2019-10-01 WO PCT/US2019/054017 patent/WO2020076554A1/en unknown
- 2019-10-01 CN CN201980067119.1A patent/CN113196231A/zh active Pending
- 2019-10-01 WO PCT/US2019/054051 patent/WO2020076559A1/en unknown
-
2023
- 2023-04-06 US US18/131,587 patent/US20230244684A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113366431A (zh) | 2021-09-07 |
EP3864503A1 (en) | 2021-08-18 |
EP3864504B1 (en) | 2023-12-27 |
WO2020076559A1 (en) | 2020-04-16 |
US20200117445A1 (en) | 2020-04-16 |
US11144309B2 (en) | 2021-10-12 |
US20230244684A1 (en) | 2023-08-03 |
EP3864504A1 (en) | 2021-08-18 |
WO2020076554A1 (en) | 2020-04-16 |
US11645296B1 (en) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113196231A (zh) | 用于解耦对基础设施模型的访问的技术 | |
EP3695290B1 (en) | Alignment of source infrastructure data with a bis conceptual schema | |
US9800675B2 (en) | Methods for dynamically generating an application interface for a modeled entity and devices thereof | |
US9128996B2 (en) | Uniform data model and API for representation and processing of semantic data | |
US9146955B2 (en) | In-memory, columnar database multidimensional analytical view integration | |
US8751437B2 (en) | Single persistence implementation of business objects | |
CN110134705A (zh) | 一种数据查询方法、缓存服务器及终端 | |
US8838627B2 (en) | Systems and methods for providing template based output management | |
US11941068B2 (en) | Case leaf nodes pointing to business objects or document types | |
Martí et al. | Dataclay: A distributed data store for effective inter-player data sharing | |
US20170011128A1 (en) | Dynamic domain query and query translation | |
US20150081744A1 (en) | Metadata model repository | |
Parmar et al. | MongoDB as an efficient graph database: An application of document oriented NOSQL database | |
EP2343658A1 (en) | Federation as a process | |
US20110289041A1 (en) | Systems and methods for managing assignment templates | |
US9483476B2 (en) | System decommissioning through reverse archiving of data | |
CN111783141A (zh) | 基于区块链的数据存储方法、装置、设备及存储介质 | |
US10255564B2 (en) | Context specific resource editors | |
US20240193170A1 (en) | Unified data access and querying | |
CN111373365A (zh) | 模式语法 | |
AKERMI et al. | Data Virtualization Enabling Distributed Data Architectures: Data Fabric and Data Mesh | |
Anca Vasiliev et al. | Data Federation for a Project Management Solution through a GraphQL Middleware | |
How et al. | The Integration Engine | |
Podaralla et al. | Cloud based development for medical pharmacy and DCA application | |
CN118043800A (zh) | 用于提供跨微服务查询优化的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |