杨宗翰 吴 巍 杨 昱
中国核工业第五建设有限公司 上海 314300
随着智慧工地智能设备的不断增加和应用范围的扩充,针对数据的存储和使用,以及智慧工地平台的性能提升、功能优化,集中式数据库系统表现出一定的不足。例如,数据按实际需要已在网络上分布存储,再采用集中式处理,势必造成通信开销大的问题;应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高;集中式处理使系统的规模和配置都不够灵活,系统的可扩充性差。在这种形势下,集中式数据库的“集中计算”概念开始向“分布计算”概念发展。
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS 的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库。位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
伴随着现代网络科技的发展和建筑企业对项目管理要求的提升,碎片化的应用和孤立的数据已经不能满足建筑企业对项目的综合管理和目标监控,越来越多的智能设备和应用系统被广泛应用于施工现场。“智慧工地平台”以物联网端设备数据采集为基础,将施工现场大量零碎离散的应用和硬件设备进行集成,形成数据汇集,产生数据中心。
随着施工现场对于智能设备需求的增加,以及应用范围的扩大,智慧工地数据库系统要面对以下挑战:数据采集存储需适应各种恶劣的网络环境;具有较强的可扩展性;快速更新迭代使用等。以分布式为主要特征的数据库可较好地解决以上问题。
分布式数据库为了保证数据的高可靠性,往往采用备份的策略实现容错。所以,在读取数据的时候,客户端可以从多个备份服务器同时读取,从而提高了数据的访问速度。
分布式数据库可以通过增添存储节点来实现存储容量的线性扩展。由于采用多台主机组成存储集群,所以相对于集中式数据库,它可以提供更高的用户并发访问量。
分布式数据库系统的结构更适合具有地理分布特性的组织或机构使用,允许分布在不同区域、不同级别的各个部门对其自身的数据实行局部控制。例如,可实现全局数据在本地录入、查询、维护,由于计算机资源靠近用户,可以降低通信代价,提高响应速度;而涉及其他场地数据库中的数据只是少量的,从而可以大大减少网络上的信息传输量。同时,局部数据的安全性也得到提高。
集中式数据库系统强调的是集中式控制,物理数据库是存放在一个场地上,由一个DBMS 集中管理。多个用户只可以通过近程或远程终端在多用户操作系统支持下运行该DBMS,来共享集中式数据库中的数据。而分布式数据库系统的场地局部DBMS 的自治性,使得大部分局部事务管理和控制都能就地解决,只有在涉及其他场地的数据时才需要通过网络作为全局事务来管理。分布式DBMS 可以设计成不同程度的自治性,从具有充分的场地自治到几乎是完全集中式的控制。
与一个大型计算机支持一个大型的集中式数据库再加一些近程和远程终端相比,由超级微型计算机或超级小型计算机支持的分布式数据库系统往往具有更高的性价比和实施灵活性。分布式系统比集中式系统具有更高的可靠性和更好的可用性。如由于数据分布在多个场地并有许多复制数据,在个别场地或个别通信链路发生故障时,不会导致整个系统的崩溃,而且系统的局部故障不会引起全局失控。而且在一定条件下响应速度加快,如果存取的数据在本地数据库中,那么就可以由用户所在的计算机来执行,速度更快。
例如,在网络通信传输速度不高时,系统的响应速度慢,同时系统本身的复杂性也容易导致较高的故障率。当故障发生后,系统恢复也比较复杂,可靠性有待提高。
一般来说,在分布式数据库中存取数据,比在集中式数据库中存取数据更复杂,开销更大。
在具有高度场地自治的分布式数据库中,不同场地的局部数据库管理员可以采用不同的安全措施,但是无法保证全局数据都是安全的。安全性问题是分布式系统固有的问题。因为分布式系统是通过通信网络来实现分布控制的,而通信网络本身在保护数据的安全性和保密性方面存在弱点,数据很容易被窃取。
(1)同构同质型DDB:各个场地都采用同一类型的数据模型(譬如都是关系型),并且是同一型号的DBMS。
(2)同构异质型DDBS:各个场地采用同一类型的数据模型,但是DBMS 的型号不同,譬如DB2、ORACLE、SYBASE 和SQL Server 等。
(3)异构型DDBS:各个场地的数据模型的型号不同,甚至类型也不同。随着计算机网络技术的发展,异种机联网问题已经得到较好的解决,此时依靠异构型DDBS 就能存取全网中各种异构局部库中的数据。
智慧工地总体结构分为现场控制单元(Site Unit)和企业管理中心(Enterprise Centre)两个部分。企业管理中心部署在公司机房,现场控制单元部署在每个项目部,并通过VPN 或接入现场控制单元。
智慧工地平台数据库部署以公司部署现场控制单元、现场部署现场控制单元两类为主。
在智慧工地的分布式数据库系统中,存在着很多个服务器。“智慧工地”的稳定性要求在任何时刻系统中某一个服务器的失效不影响系统的运行,即在某一服务器失效时,系统中所有的客户机自动连接到另外一台服务器继续工作。
为达到系统稳定性的要求,采用了备份服务器的方法,整个分布式系统中采用“域”模式,实行统一管理。在系统运行的任意时刻,整个系统中都存在一台唯一的主服务器。同时,系统中还存在多台备份服务器,在主服务器出现故障时,任一备份服务器都有可能被提升为主服务器。因此,系统中处于正常工作状态的任何备份服务器必须随时与主服务器保持一致,而且主服务器中的系统数据字典、用户配置,以及安全规则的任何修改,必须同时反映到各备份服务器。
为保障智慧工地中数据的安全,在系统发生局部故障时仍能保持对发生故障部分的数据的正常访问。系统在其他结点保留该部分数据的副本,因而也就带来数据的一致性问题。用户对若干数据副本中的修改要能够同时反映到所有的副本中去,否则数据的不一致将会带来系统的混乱。对于系统中存在的同一个库、表或视图的多个副本,系统数据字典中将保持一个表。该表记录所有的副本位置、状态,以及是否与最近的副本传输的数据一致。
基于智慧工地的分布式数据库的设计、场地划分及数据在不同场地的分配比较复杂,数据的划分及分配对系统的性能、响应速度及可用性等具有极大的影响。与局部数据库系统的存取部件的存取速度相比,不同现场环境的通信速度非常慢。因通信系统有较高的延迟,在CPU 上处理通讯信息的代价很高。因此,应用分布式数据库的智慧工地平台中要注意解决分布式数据库的设计、查询处理和优化、事务管理,以及并发控制和目录管理等问题。