一种基站数据平台的架构设计

2014-03-26 08:52陈大业
电信工程技术与标准化 2014年5期
关键词:数据库系统字段客户端

陈大业

(中国移动通信集团设计院有限公司河北分公司,石家庄 050021)

1 方案背景

目前的基站数据包含地理信息、设备信息、机房铁塔信息、主材工日信息、天馈参数信息、工程进度信息等,内容多样。基站方案变更频繁,数据更新量巨大,数据多次重复整理,汇总时限紧张、容易出错都是常见问题。基站数据平台的架构设计关系到数据更新和共享的准确性和效率,良好的架构设计可以有效解决各种常见问题。

现在通用技术手段可以分为3种。

第一种基于文件共享系统,以拷贝、邮件、ftp等传送数据文件,汇总以手动汇总为主。不足之处在于数据冗余度大,数据不一致性明显,数据独立性差。

第二种是两层Client/Server体系结构,代表性的应用是设置公用的服务器,局域网内各客户端安装应用系统。缺点是客户端的软件需要频繁的安装,系统可扩展性和可重用性差。

第三种属于三层Client/Server体系结构,典型应用由Browser客户端、Web应用服务器、数据库服务器3层组成。这种服务器在企业中应用最为广泛,它可以充分保证数据的安全性,实现了系统的无缝升级,对客户端要求较低。但是这种解决方案主要针对流程处理和数据发布,如果用作数据共享平台,那么数据的上传会成为一个瓶颈。

本文提出以关系数据库系统和表格处理软件嵌入式开发技术为基础的基站数据平台架构,这种架构沿用了第二种体系结构,但是客户端做了一些改进,它不再需要安装数据库软件,而是采用表格软件直接操作。

关系数据库系统和表格处理软件嵌入式开发相结合,具备以下技术优势。

(1)数据客户端应用系统与表格处理软件相结合,使客户端数据的上传下载都不再需要数据格式的转换或者数据抄写。操作简便,准确性更有保证。

(2)服务器采用关系型数据库,大数据的插入、更新、统计、查询等功能更加完善和高效。具有更好的数据一致性和安全性。

(3)数据客户端应用系统不需安装,具有更好的可扩展性和重用性。

2 技术手段

数据平台首先是基于数据库技术的。数据库是数据管理的高级阶段,它依照某种数据模型进行组织、描述和存储,数据库中的数据是为众多用户所共享其信息而建立的,数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。作为现代数据库产品的主流,关系型数据库系统以关系代数为坚实的理论基础,经过几十年的发展和实际应用,技术越来越成熟和完善。其代表产品有Oracle、DB2、微软公司的MS SQL Server等。

嵌入式开发采用的ADO(ActiveX Data Objects),又称为OLE自动化接口技术,是一个用于存取数据源的COM组件,它提供了编程语言和统一数据访问方式OLE DB的一个中间层,通过ADO可以访问多种类型的数据库数据。ADO被微软定位为一个能够访问不同数据库的统一接口,可以无缝衔接SQL Server、DB2、Access、 Oracle等各种常见数据库,它通过一组固定的对象和方法来实现对不同数据库的访问。ADO的远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。

数据库访问技术层出不穷,常见的基于Windows平台的编程接口有DAO、RDO、ADO几种。DAO (Data Access Object)数据访问对象出现较早,是第一个面向对象的接口,只适用于单系统应用程序或本地分布系统使用。RDO (Remote Data Objects)接口提供了用来访问存储过程和复杂结果集的对象、属性以及方法,它是ODBC驱动程序的接口,与ODBC一起工作访问关系数据库,但不能访问如ISAM和VSAM的非关系数据库。ADO是当前对数据库进行操作的比较简单有效的方法。ADO对象是OLE DB的接口,从原来的Microsoft数据接口远程数据对象(RDO)而来。ADO针对客户/服务器以及Web应用程序作了优化,包括事件处理、记录集的延续、分层目录结构指针和数据成形、分布式事务处理、多维数据、远程数据服务(RDS)以及对编程语言的支持。DAO和RDO的对象模型是层次型的。但ADO却不同,它定义了一组平面型顶级对象,对象操作更加独立和灵活。ADO将会逐步取代DAO和RDO技术。

关系数据库系统和表格处理软件嵌入式开发相结合,两方面相辅相成。

(1)在多人协同方面,关系型数据库不但擅长存储和处理大数据,而且支持分布式的操作,有强大的并行处理能力。这样的特点使它更适合协同操作。

(2)在数据计算、统计分析以及图表可视化方面,以Excel为代表的表格处理软件在数据计算、统计分析以及图表可视化方面能力都很强,在基站数据采集和处理中得到广泛应用。

(3)在操作大数据方面,数据库系统在存储和处理上更胜一筹。

3 整体架构部署

在实际的部署中我们采用SQL Server结合Excel的方式,它们都属于微软的产品,有较好的协同性。采用其它常见的数据库系统,同样可以为ADO接口提供良好的支持。

数据平台由关系数据库、数据库管理系统、应用开发工具、应用系统、数据库管理员、应用程序员和终端用户组成。数据平台架构如图1所示。

服务器可以安装在独立的计算机上,也可以选用性能较好的办公计算机。采用独立服务器的方式,运行性能和安全性有更好的保障;选用性能较好的便携式计算机,甚至可以在异地临时组网协同完成快速报表。

快速组网的方法是用临时的有线或者无线路由器连接成局域网,调整服务器对应IP设置,然后改变客户端的服务器设置,操作并不复杂。

客户端部分只有电子表格,不需要安装客户端软件。表内嵌入了数据库操作的应用系统,可以实现和服务器通信的全部功能。应用系统基于VB语言,可以很方便的操作ADO接口进行开发。

图1 数据平台架构图

数据平台管理员和用户主要包括进行数据存储、维护、查询和应用开发的各类人员。数据库管理员负责全面管理和控制SQL Server数据库系统。应用程序员负责SQL Server数据库结构设计,SQL Server和Excel应用程序开发、修改和维护。普通用户负责通过应用系统读写数据库。普通用户负责具体数据的插入、更新和删除。

数据平台的两个架构重点,一个是数据库管理系统,一个是应用开发部分,下面分别进行说明。

4 服务器设计

数据库管理系统架构主要涉及数据库、Schema、表和用户、角色、权限的设计。我们以一个简化的模型(图2)为例,对数据库管理系统部分的架构进行说明。

首先说明数据库系统中的角色和权限设计。Db_ddladmin角色具备数据库的数据定义权限,可以执行DDL语句Create、Drop和Alter,它的作用范围在所定义的独立数据库。Readwriter角色具备Schema的数据操作权限,可以执行DML语句Delete、Insert、Update和Select。Readwriter角色的权限范围定义在Basestation这个Schema的范围内,不具备操作其它Schema的权限,这样保护了其它Schema数据的独立性和安全性。

在定位用户角色时,普通用户只赋予Readwriter角色,只能对Basestation这个Schema的数据执行DML操作;数据库的管理员赋予Db_ddladmin角色,可以对多个Schema执行DDL的操作。虽然他们都可以通过终端应用操作数据库,但是权限和操作是不同的。

为了进行容错设计,所有的登录名都对应了一个自己的数据库用户名,这样的设计可以利用数据库的并发处理能力,保证数据的一致性。

登录名只赋予了Public角色权限,不具备数据库系统的管理、授权和操作的权限,只是在数据库用户层面进行了角色设定和授权。这样的设计保证每个用户有权操作相关表格,也限制了用户对不相关表格的操作权限,最大限度保障了数据的安全性。

5 客户端设计

应用开发部分主要集中在Excel的嵌入式开发部分,嵌入式开发采用VBA,通过ADO技术访问数据库。典型的连接代码示例为:

ADO方法通过Connection对象建立与数据源的连接,Connection对象的常用属性和方法有ConnectionString属性、Open和Close方法等。

Recordset对象是特定的SQL查询结果的一个记录集。在建立了和数据库的连接后,就可以声明和初始化一个Recordset对象,然后就可以使用Recordset对象查询、浏览、编辑和删除数据表上面的数据。下面是一个Recordset示例:

图2 数据库管理系统架构图

具体的操作中,采用ADO方法建立连接,然后用Execute方法执行对数据库的SQL操作指令,用Recordset获取操作的返回记录集。返回的记录集可以很方便的用Copy From Recordset方法粘贴在电子表格中。

不同的电子表格中嵌入了不同的应用,拥有独立的结构,归属不同的角色,表格的权限归属、功能和结构的关系如图3所示。

不同的权限属于不同的角色。数据的插入、更新、删除和查询等操作由终端用户完成。创建表和创建用户的功能模块可以完成表和用户的批量创建,需要用数据库管理员的身份登录。

图3 数据应用开发架构图

根据应用所具备的功能不同,设计了不同的表单结构。比如用户终端的操作表有3个页面。参数页填写用户名、密码和准备操作的表名称等信息,并且具备修改密码的功能。下载页可以获取表结构和全部数据。上传页可以更新本区域的数据记录。

6 不同应用的架构设计

6.1 汇总表架构

基站方面的汇总表常见的有某基站信息表、某方案详表等。这类表的特点是表格结构较为固定,经常需要插入、更新、删除记录。

在汇总表的架构设计上,采用了增加隐式字段的方法。客户端可见的是汇总表的完整字段结构,数据库的表格增加了两个隐式的字段User_Name和Data_Sequence。通过增加这两个字段,实现了表内的权限划分和序列恢复的功能。

首先是实现了表内权限划分的功能,客户端用户通过登录名插入汇总表内的数据记录时,应用设计在User_Name字段增加和登录名一致的数据;在更新或者删除记录时,应用设计只允许用户修改在User_Name字段和登录名一致的数据。这样,用户只能维护自己的数据而不会修改其它用户的数据,大家既可以看到完整的报表,又不会引起误操作。

其次是隐式字段Data_Sequence的使用。由于频繁的操作,数据记录的次序可能会改变,为了还原电子表格中记录的顺序,引入了Data_Sequence字段。插入记录时,Data_Sequence字段根据上传页记录的顺序标记序号;查询记录时,在查询语句中增加排序指令,首先按照User_Name字段排序,其次按照Data_Sequence字段排序。这样,就不会因为多用户操作或者单个多次的更新而改变顺序。

6.2 定期报表架构

基站方面的定期报表常见的有某进度周报、某进展月报等。这类报表的特点是需要保留历史记录,以方便动态比较、动态分析。

在定期报表的架构设计上,要在汇总表的基础上在增加一个隐式字段,即时间戳字段Time_Stamp。用户进行插入操作时,需要从数据库系统获取系统时间,填写Time_Stamp字段。如果需要更新,就要把最新的系统时间和Time_Stamp字段时间进行比对,如果更新时间在周报的同一周、月报的同一月,就进行更新操作;如果最新的系统时间和Time_Stamp字段时间不在一个时间段,就进行插入操作。

这样,客户端用户只能修改本地市本时间段内的记录,旧的记录被保留下来,新的记录被不断插入,定期报表的功能就实现了。

6.3 快速报表架构

基站方面的快速报表常见的有某投资汇总表、某专项统计表等。这类报表的特点是需要快速建立表格结构,而且表格结构多变。

时间特别紧张的,可以采用全字符串设计。这样的设计只需要保留更多的字段长度,不需要考虑准确的字段类型、数值精度等问题,很快就可以建立起来。

字符串类型的字段比数字类型的字段要占用更多的磁盘空间,但是快速报表常常行数较少,即使采用全字符串的设计,整体来看也不会造成磁盘空间的大量占用。

7 数据安全相关

基站数据平台并没有公共地址供互联网访问,不提供任何公众服务,数据受到外部入侵的机会非常小。而且数据平台在企业网内部应用,安全性受到企业网络防火墙和路由器入侵检测系统的保护。防火墙隔离了外部网络的非法访问,防止内部网络的数据外泄。入侵检测系统监视网络数据,防止非法入侵的发生。服务器安装了杀毒软件并经常更新病毒库,防止了病毒带来的威胁。服务器及时更新数据库补丁,修补攻击漏洞,关闭了不必要的服务,防范DoS攻击、SQL注入攻击等常见类型的攻击。

数据库系统是数据平台的主体,它本身对数据的保护做了很多的设计。首先是身份认证,必须输入正确的Login和Password才能进入数据库系统。然后是Schema,它就像数据仓库中的一个个房间,它的访问权限只授予特定的角色和用户。而一个Schema中存储的内容,都具有相同的角色和权限设置,它拒绝非法用户的访问。角色分配和权限的授予是一个有效的工具,每个登录名分配了不同的权限。

进入平台后,按照项目设置权限,不同项目间权限隔离,项目连接字段只通知项目组人员。不同用户组的权限设置属于不同的Schema,每个Schema只允许相同项目组人员进行操作,用户不会误操作无关的表数据。在同一个项目中,参与者并非对所有该项目的数据对象都有完全的访问权限,只能按照本身角色进行权限内的数据操作。在一个表当中,不同地市的数据通过User_Name和Data_Sequence字段进行区分,不会引起不同地市间的误操作。

数据平台的安全性,还通过以下几个方面来保证。一个是客户端的安全性,客户端只分发给项目相关人员,无关人员得不到项目相关信息。客户端可以设置登录名和密码,无关人员即使得到客户端也无法登陆和操作。进入客户端以后,还要输入正确的Login和Password才能进入数据库系统。多重的身份认证保证了系统的数据安全。用户密码都要求设置成强密码并强制密码过期,防止被轻易破解。服务器的地址和端口保密,访问地址集成在开发模块当中。

硬件上,我们通过选用较好性能的服务器,服务器要安装在一个受保护的环境。系统的容灾备份是一项经常性的工作,通过冗余备份可以更好的保证数据在物理上的安全性。

8 数据平台实施效果

数据平台依托关系数据库技术,融合了电子表格的嵌入式开发,采用了ADO的透明化数据访问技术,为团队化的数据协同更新、分布式共享查询提供了整体的解决方案。

在平台建设方面,服务器既可以因陋就简,也可以协同备份;客户端不需要安装客户端软件,更不必频繁升级,免除了系统更新维护带来的维护工作。

在用户操作上,平台客户端和电子表格融为一体,不需要格式转换或者数据的拷贝。不论上传、下载还是更新,在客户端接触到的都是电子表格化的数据,和日常数据采集、整理工作所用数据没有差别。

通过不断完善,数据平台会在数据共享、数据安全、数据独立方面发挥更多作用。

[1]Patrick O’Neil.Database: Principles,Programming,and Performance[M].北京:高等教育出版社,2001.

[2]Ramez.Elmasri,Navathe,S.B.数据库系统基础:高级篇(第5版)[M].邵佩英,徐俊刚,王文杰等,译.北京:人民邮电出版社,2008.

猜你喜欢
数据库系统字段客户端
图书馆中文图书编目外包数据质量控制分析
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
微细铣削工艺数据库系统设计与开发
江苏省ETC数据库系统改造升级方案探讨
实时数据库系统数据安全采集方案
核反应堆材料数据库系统及其应用
CNMARC304字段和314字段责任附注方式解析