




已阅读5页,还剩66页未读, 继续免费阅读
(计算机软件与理论专业论文)自动化电子布线系统.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文摘要 摘要 随着信息社会的发展,综合布线的地位变得越来越重要。几乎所有的商务大 厦、办公大楼、园区建筑的信息化都需要依赖于综合布线的实现。综合布线的规 模随着大楼及楼群规模的增加而增加,其具有的连线信息非常庞大,迫切需要一 种自动化的辅助设计及管理工具来减少复杂性。 最初的布线管理工具往往采用w o r d 、e x c e l 等自动化办公软件实现,不利于 查找及进行关联修改。随后出现了基于v i s i o 、a u t o c a d 等软件开发的布线管理 工具,这类工具实现了简单的图形化管理界面,但容易受到宿主软件平台本身的 限制,只能提供有限的功能。最近出现了基于c s 架构的布线管理工具,提供了 较完整的布线管理功能,同时也提供了图形化的界面。但大多数软件缺少设计功 能,信息的生成及输入不够智能化,并且c s 架构的软件需要客户端的安装。 本文提出了一种全新的基于b s 架构,结合f l e x 技术实现的图形化电子布线 设计及管理系统,提供了智能化的批量生成及添加功能。系统整体框架依据n e t 平台的分层设计模式,同时参考n e t2 0 中的缓存失效模式,在业务逻辑层实现 基础信息的缓存。 在表现层设计中引入a j a x 及f l e x 技术。a j a x 技术充分发挥了浏览器的异步 通讯及部分刷新功能,使w e b 应用程序的交互性、易用性及响应速度得到了极大 的提高。f l e x 中的矢量几何图形绘制功能为综合布线中图形化显示部分的实现提 供了良好的支持。本文采用数据驱动的形式动态生成图形,采用面向对象的方法 设计综合布线相关的图形化元素,使所有图形元素都具有可操作性:同时也使程 序架构更为清晰,更具有扩展性。 在客户端与服务器端的交互中采用了w e b s e r v i c e 技术,n e t 平台、a s e n e t a j a x 及f l e x 都为w e b s e r v i e e 提供了良好的支持。f l e x 采用事件监听机制实现 w e b s e r v i c e 方法调用,其存在的缺点是不能同步返回信息,即当有两个f l e x 方法 同时调用一个w e b s e r v i e e 方法时不能辨别各自的返回目的地。本文采用一种基于 队列的w e b s e r v i c e 串行化调用技术较好的解决了这个缺陷。 本文所设计的电子布线系统大大减少了设计及管理过程的工作量及复杂性, 各项功能在实际的应用都发挥了应有的作用,达到了预期的目的。 关键词综合布线,w e b s e r v i c e ,a j a x ,f l e x ,分层架构,表现层,矢量图 浙江大学硕士学位论文 录 图目 a b s t r a c t a st h ed e v e l o p m e n to fi n f o r m a t i o ns o c i e t y , a l lb u s i n e s sb u i l d i n g s ,c a m p u s ,o f f i c e s y s t e m sn e e dc a b l i n gs y s t e m s i n c et h ei n t r i n s i cc o m p l i c a t i o no fg e n e t i cc a b l i n g s y s t e m ,am o r ee f f i c i e n ts o f t w a r es y s t e mi sh i g h l ye x p e c t e dt oa i dd e s i g n i n ga n d m a n a g i n gg e n e r i c c a b l i n gs y s t e m t i l i si sa l s ot h ea i mo f t h i sa r t i c l e o u ra u t o m a t i cc a b l i n gs y s t e ms o f t w a r ew a si m p l e m e n t e db a s e do n n e t f r a m e w o r k n e t s y s t e mp r o v i d e s w e l l d e s i g n e de n t e r p r i s e a r c h i t e c t u r e a l t h o u g h 脚2 0d e v e l o p e dan e wm e t h o dt om a i n t a i nt h ed a t a b a s ec a c h e i ti so n l y a p p l i c a b l ef o rs q ls e r v e r o u rc a b l i n gs y s t e ms o f t w a r ei n t r o d u c e sa n o t h e rc a c h e m e t h o di nt h eb u s i n e s sl a y e r p a r to f t h ep r e s e n t a t i o nl a y e rw a si m p l e m e n t e db y 心k 又t e c h n o l o g y 心k x i st h e a g g r e g a t i o n o f4o t h e rt e c h n o l o g i e sw h i c ha r ex m l h t t p a s y n c h r o n o u s c o m m u n i c a t i o no b j e c lj a v a s c r i p t x m la n dd o m o u r c a b l i n gs y s t e ms o f t w a r eu s e s a s e n e ta j a xt ob u i l ds o m ew e bp a g e s ,w h i c he n a b l e su s e ri n t e r f a c em o r e r e s p o n s i b l ea n du s a b l e i no r d e rt ob u i l dg r a p h i cp r e s e n t a t i o np a g e s w eu s ef l e xt e c h n o l o g yt od r a w c a b l i n gs y s t e m sb a s ev i s u a le l e m e n t ss u c ha ss o c k e t s ,w i r e s ,d e v i c e s c o n s i d e r i n gt h e c o m p l e x i t yo ft h ed r a w i n g ,w ed i v i d ew h o l eg r a p hi n t og r a p h i cl a y e r s ,e v e r yl a y e ri s o n l yr e s p o n s i b l et os o m es p e c i f i ct y p eo f v i s u a le l e m e n t ss u c ha ss o c k e t s ,d e v i c e s a n d e v e r yt y p eo f v i s u a le l e m e n t si sd e s i g n e do b j e c to r i e n t e ds ow ec a nm a k es e l e c t ,d e l e t e , d y n a m i ca d do p e r a t i o n s t h ec o m m u n i c a t i o nb e t w e e nc l i e n ts i d ea n ds e r v e rs i d ei sb a s e do nw e b s e r v i c e w 曲s e r v i c ei sw i d e l yu s e db e c a u s eo fi t si n d e p e n d e n to fo p e r a t i n gs y s t e ma n d p r o g r a m m i n gl a n g u a g e n e ts y s t e m a s e n e ta j a xa n df l e xa l lp r o v i d ew e l l s u p p o r t i n gt ow e b s e r v i c e b u tt h e r ee x i s t sl i m i t a t i o ni nf l e x sw e b s e r v i c es u p p o r t i n g w h e nt w oo rm o r em e s s a g e sa r er e t u r n e db yt h es a m ew e b s e r v i c em e t h o da taf e d p e r i o d ,t h er e t u r n e dm e s s a g e sc a n td i s t i n g u i s ht h e i rd e s t i n a t i o n w ed e v e l o p e daq u e u e b a s e dm e t h o dt os e r i a l i z ea l lc a l l e ro ft h es a m ew e b s e r v i c em e t h o d t l l i sm e t h o d a s s u r e dt h en e x tc a l lt ow e b s e r v i c em e t h o di sm a d eo n l ya f t e rt h ep r e v i o u sc a l li s f i n i s h e d o u rc a b l i n gs y s t e ms o f t w a r eg r e a t l yi m p r o v e st h ed e s i g no rm a n a g e m e n tp r o c e s s , a n da c c o m p l i s h e dt h ep u r p o s e k e y w o r d sc a b l i n gs y s t e m ,a j a x ,f l e x ,d e s i g np a t t e r n , p r e s e n t a t i o nl a y e r 浙江大学硕士学位论文 图目录 图目录 图2 1p e t s h o p 中的数据层设计6 图2 - 2p e t s h o p 中的业务逻辑层设计7 图2 - 4 电子布线软件架构模块图8 图3 1a d o n e t 解决方案组件1 4 图3 2 基础信息强类型数据集1 6 图3 3 部分布线信息强类型数据集1 7 图4 1典型逻辑业务层u m l 类图一2 0 图4 2 插座信息的批量生成2 2 图4 3 查找所有邻接孩子节点流程图2 3 图5 1 a s p n e ta j a x 架构2 8 图5 2 布线信息查询流程图3 0 图5 3 查询结果显示界面3 0 图5 - 4 插座批量添加流程图3 2 图5 5 水平连接批量添加流程图3 3 图6 1f l e x 图形化表示层模块架构3 5 图6 2 总体布线示意图3 9 图6 3 总体布线示意图的分层实现4 0 图6 4 总体布线示意图实现流程4 l 图6 - 5 总体布线示意图服务器端数据结构类图4 2 图6 6 总体布线示意图客户端数据结构类图4 3 图6 7 总体布线示意图f l e x 连线类u m l 图4 4 图6 - 8 判断鼠标是否选中连线流程图4 5 图6 - 9 设备排序算法流程图4 6 图6 1 0 设备排序前后跳线对比4 7 图6 1 1图层实现u m l 类图4 8 图6 1 2 跳线添加流程图4 9 图6 1 3 插座连接线路示意图5 0 图6 - 1 4 从连接树结构获取设备及端口信息5 l 图6 1 5 客户端画出插座连接线路图流程5 2 图7 1 服务器端异步通讯层5 3 图7 2 客户端异步通讯层5 4 图7 3w e b s e r v i c 2 工作原理5 7 图7 _ 4f l e x 实现w 如s e r v i c e 串行化调用5 9 图8 1 插座平面分布图6 3 图8 2 插座信息查询显示6 3 图8 3 整体界面图6 4 i v 浙江大学硕士学位论文 表目录 表目录 表3 1 基础信息数据库1 2 表3 2 布线信息数据库1 3 表3 3 用户信息数据库1 3 表5 1 用户控件与自定义控件的比较2 6 表6 1 矢量化图形技术比较3 7 v 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1 课题背景 人类社会已开始进入信息社会,以i n t e r n e t 骨干网连接在一起数目众多的 基础网络,成为信息交流的节点,这些信息节点可以是一座智能大厦,也可以是 智能建筑群,如商务型大厦,办公用大楼,交通运输设施,卫生医疗设施,园区 建筑。不管是大厦的网络还是园区网络,都离不开信息传输的通道,离不开综合 布线系统【l j 。 综合布线系统经过多年的发展已日益成熟,传输介质的性能不断提升,布线 规模也越来越庞大,但布线系统的管理却常被忽略。综合布线的灵活性使得用户 可以在系统维护中任意增减或者跳接,改变网络连接,而布线系统是影响网络故 障的重要原因,但大部分的网络故障是由于跳线的不明确,导致整个网络的不可 靠或瘫痪,在规模庞大的布线系统中更是如此。 如今网络用户变化很快,所以根据用户的不同需求能进行随时的改变和调 整,这对管理人员的要求会很严格。管理人员要清楚地知道工作区的信息点与配 线架端口之间的对应关系,并能及时的跳接。如果网管人员还是借助传统的竣工 图纸和不断进行人工修改的图纸来维护布线结构的更新,就困难的多了。 布线管理软件【2 j 的应用,改变了手工布线管理的方式,协助网管人员更好, 更快捷的了解布线系统的结构,以及查询信息点的位置和对应连接关系。布线管 理软件实际上是一种关系数据库软件,它把综合布线系统中的连接关系、产品属 性、信息点的位置、都存放在数据库中,并用图形的方式显示出来,使网管人员 通过对数据库的操作就能详细了解布线系统的结构,各信息点及端口的属性,不 用再去翻阅以前的图纸资料,就能轻松改变跳线的连接,而不必担心拔错了跳线。 网管人员通过对数据库软件操作,实现数据录入、网络更改、系统查询等功能, 使用户随时拥有更新的电子数据文档。 布线系统是一个无源的系统,网管人员对该系统的管理主要是对物理属性的 管理,即信息点所在的位置、连接到管理间配线架上的端口号、此线缆通道的性 能报告、连接的交换机、集线器的端口号等。过去,网管人员自己编写文档、表 格和对应表来显示这些属性。但布线管理软件的作用要远远超过用“w o r d ”或 “e x c e l ”等办公自动化软件所编写的表格和对应表来表示综合布线的对应关系 的作用。因为布线管理软件数据库里的每一个信息点的属性和连接关系都是相关 浙江大学硕士学位论文 第1 章绪论 联的,修改一条记录中信息点的属性,那就对综合布线管理中的所有报表都有效, 不必像“w o r d ”或 e x c e l ”等对每一个报表都要修改,这样容易漏改,并且布线 管理软件能用图形来显示属性,这是表格做不到的。 布线管理软件也能在综合布线的过程中发挥它的作用。在综合布线工程开始 时,当信息点数量基本确定后,就可以建立信息点的基本数据库,对于工程中的 信息点的修改就显得相当方便了。 布线管理软件把网管人员的交接工作也变得很简单。人员变更时,只要提交 一个数据库文件即可,新接收的人员就很快地了解并接管综合布线系统,而不是 提交一堆改动过的图纸和表格。这充分体现了布线管理软件较手工管理的优越 性。 总之,布线管理软件是现有综合布线系统管理的更新和补充,可以缩短查找 布线链路的时间,提高综合布线系统管理得效率,降低用户维护成本。 目前已有多家公司开发了布线系统的管理软件并投入实际应用,如北京华宇 智联科技有限公司开发的c v m s 2 0 0 6 ,龙源欣盛开发的c a m s ,这些布线管理软 件的应用大大改善了布线管理的复杂性。但这些软件都还不是很成熟,没有充分 发挥电子布线软件的作用,如基于c s 架构需要客户端额外安装软件,给客户的 使用带来了不便;或者缺少图形化的管理界面,使用户得不到直观的信息;另外 缺少信息的批量输入功能使海量布线信息的录入需要花费大量时间。 为克服现有布线软件的缺陷,并使布线软件除了提供管理功能外,还能提供 设计功能,设计一个全新的布线系统软件是必要的。 1 2 综合布线设计简介 1 2 1 综合布线概念 综合布线系统是一套用于建筑物内或建筑群之间为计算机、通信设施与监控 系统预先设置的信息传输通道。它将语音、数据、图像等设备彼此相连,同时能 使上述设备与外部通信数据网络相连接【1 ,3 1 。 综合布线系统是为适应综合业务数字网( i s d n ) 的需求而发展起来的一种特 别设计的布线方式,它为智能大厦和智能建筑群中的信息设施提供了多厂家产品 兼容,模块化扩展、更新与系统灵活重组的可能性。既为用户创造了现代信息系 统环境,强化了控制与管理,又为用户节约了费用,保护了投资。综合布线系统 已成为现代化建筑的重要组成部分。 综合布线系统应用高品质的标准材料,以非屏蔽双绞线和光纤作为传输介 2 浙江大学硕士学位论文 第1 章绪论 质,采用组合压接方式,统一进行规划设计,组成一套完整而开放的布线系统。 该系统将语音、数据、图像信号的布线与建筑物安全报警、监控管理信号的布线 综合在一个标准的布线系统内。在墙壁上或地面上设置有标准插座,这些插座通 过各种适配器与计算机、通信设备以及楼宇自动化设备相连接。综合布线的硬件 包括传输介质( 非屏蔽双绞线、大对数电缆和光缆等) 、配线架、标准信息插座、 适配器、光电转换设备、系统保护设备等。 1 2 2 综合布线设计规范 目前,结构化布线设计一般采用国际标准的结构化布线系统,将语音、数据 的配线统一在一套布线系统中。系统设计一般按六个子系统进行设计【3 ,4 】: 1 工作区子系统:由终端设备连接的信息插座组成。 2 水平配线子系统:各楼层弱电井兼作楼层设备间,由设备间至工作区信息 插座采用6 类4 对8 芯u t p 双绞线。 3 垂直干线子系统:传输数据的垂直干线采用6 芯多模光纤,并采用6 类4 对8 芯u t p 双绞线作为备份;传输语音的垂直干线采用5 类非屏蔽大对数铜缆。 垂直干线沿弱电竖井桥架敷设。 4 设备间子系统:各楼层弱电间作设备间,设置接入网络交换机、配线架等 连接设备。 5 管理予系统:计算机中心机房及电话总机房,是整个大楼的网络和电话交 接中心。 6 建筑群子系统:将建筑物中的线缆延伸到建筑物群的另一些建筑物中的通 信设备和网络设备上。 这样设计思路简洁,施工简单,具有很高的可扩展性及灵活性,充分适应通 讯和计算机网络的发展,为今后办公自动化打下坚实的线路基础。 1 3 本文研究内容 采用b s 架构的软件由于其方便性得到了广泛的应用,基于浏览器的 r i a ( r i c hi n t e m e t a p p l i c a t i o n ) i l t 技术极大增强了b s 架构软件的交互性及易用性, 从而克服了c s 架构不易部署的缺点,又保留了c s 架构交互方便的优点。 本文主要研究结合f l e x 、a s p n e t 、w e b s e r v i e e 等技术在b s 架构上实现电 子布线系统软件,主要内容包括: 综合布线结构及原理 浙江大学硕士学位论文第1 章绪论 n e t 企业应用架构的设计模式 f l e x 图形元素的面向对象设计 w e b s e r v i c e 通讯及其安全调用1 8 ,1 9 ,2 0 】 a j a x 技术在a s e n e t 中的应用1 2 1 , 蠲 综合布线数据库及数据结构的优化设计 数据驱动的动态图形生成模式 图形元素的对象化设计模式 综合布线信息搜索及查询功能 信息的自动批量生成及批量添加 矢量化图形缩放技术 错误控制及反馈提示机制 1 4 本章小结 本章先介绍了设计电子布线软件的必要性。随着综合布线的广泛应用,对设 计一个良好的布线系统软件变得越来越迫切,而现有的布线管理软件未能提供完 备的功能,因此本文提出了新的布线系统软件设计及实现方法。 随后简单介绍了软件采用的架构及技术。基于b s 架构的设计方便了部 署;n e t 企业架构为开发提供了良好的设计模型;f l e x 及w e b s e r v i c 它技术的应 用使浏览器能展现更丰富的图形化界面及自定义的几何图形。 4 浙江大学硕士学位论文第5 章整体设计框架 第2 章整体设计框架 2 1 分层设计的架构原理及其特点 在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微 软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层、 表示层。 数据访问层:有时候也称为持久层,其功能主要是负责数据库的访问。简单 的说法就是实现对数据表的s e l e c t ,i n s e r t ,u p d a t e ,d e l e t e 的操作。如果要加入 o r m 的元素,那么就会包括对象和数据表之间的m a p p i n g ,以及对象实体的持久 化。 业务逻辑层:是整个系统的核心,它与这个系统的业务( 领域) 有关,如果涉 及到数据库的访问,则调用数据访问层。 表示层:是系统的u i 部分,负责使用者与整个系统的交互。表示层中的逻 辑代码,仅与界面元素有关。 分层式结构的优势:开发人员可以只关注整个结构中的其中某一层;降低层 与层之间的依赖使层的替代更为容易;有利于标准化及各层逻辑的复用。概括来 说,分层式设计可以达到如下目的:分散关注、松散耦合、逻辑复用、标准定义。 一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层 次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。例如 u 1 人员只需考虑用户界面的体验与操作,领域的设计人员可以只关注业务逻辑的 设计,而数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任 务得到了确认,开发进度就可以迅速的提高。 松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都 紧紧纠缠在一起,彼此问相互依赖,谁都是不可替换的。一旦发生改变,则牵一 发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可以良好地保 证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接 口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。 进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化 基础上,这个系统才是可扩展的,可替换的。层与层之间的通信也必然保证了接 口的标准化。 分层式结构也不可避免具有一些缺陷: 浙江大学硕士学位论文第5 章整体设计框架 降低了系统的性能。如果不采用分层式结构,很多业务可以直接造访数据库, 以此获取相应的数据,如今却必须通过中问层来完成。 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示 层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务 逻辑层和数据访问层中都增加相应的代码。 2 2 微软p e t s h o p 项目中的设计模式 n e tp e ts h o p 是微软提供的一个在线的电子宠物商店小型项目,最初的项目 是作为与j a v a 框架的p e ts t o r e 作为对比而设计的,现在已作为构建企业应用 的样本程序,对n e t 的企业应用程序有极大的参考价值。 在p e t s h o p 数据访问层( d a l ) 中,采用d a li n t e r f a c e 抽象出数据访问逻辑, 并以d a lf a c t o r y 工厂模式创建数据访问层对象。对于d a li n t e r f a c e 而言,分别 有支持m s s q l 的s q ls e r v e rd a l 和支持o r a c l e 的o r a c l ed a l 具体实现。m o d e l 模块包含对应数据库表的实体对象,m o d e l 中的类只包含数据属性,不包括数据 操作行为。其详细的模块结构如图2 1 所示: l d a l f a c t o r yr 一 l l 创建数据库的工厂 1 j 数据访问层接口气口 1 0 札l卜蚓8 1 数据访问层使用的数据对象 sqlsewernl i实现zda。接口访问snserver数据库 l 。 o r c a l e d a l 氐 i 实现i d a l 接口访f a 0 r c a l e 数据库 图2 - i p e t s h o p 中的数据层设计 如图所示,在数据访问层中完全采用了“面向接口编程”思想。抽象出来的 i d a l 模块脱离了与具体数据库的依赖,从而使得整个数据访问层利于数据库迁 移。d a l f a c t o r y 模块专门管理d a l 对象的创建,便于业务逻辑层访问。 6 浙江大学硕士学位论文第5 章整体设计框架 s q l s e r v e r d a l 和o r a c l e d a l 模块均实现i d a l 模块的接口,其中包含的逻辑就 是对数据库的s e l e c t ,i n s e r t ,u p d a t e 和d e l e t e 操作。因为数据库类型的不同,对 数据库的操作也有所不同,因此代码也会有所区别。此外,抽象出来的i d a l 模 块,除了解除了向下的依赖之外,同样也弱化了对于其上业务逻辑层的依赖关系。 业务逻辑层( b l l ) 是业务逻辑层的核心模块,它包含了整个系统的核心业 务。在业务逻辑层中,不能直接访问数据库,而必须通过数据访问层。业务逻辑 层结构如图2 2 所示: ji ! 一。 鼬-宙自 图2 - 2p e t s h o p 中的业务逻辑层设计 如图所示逻辑层b l l 对数据访问层的调用,是通过接口模块i d a l 来完成的, 与具体的数据访问逻辑无关,即层与层之间的关系是松散耦合的。如果此时需要 修改数据访问层的具体实现,只要不涉及到i d a l 的接口定义,业务逻辑层就不 会受到任何影响。 在n e t2 0 中引入了s y s t e m t r a n s a c t i o n s 事务控件命名空间,它是一种处理 分布式事务的新方式。p e = t s h o p 用订单的异步插入演示了分布式事务处理。为封 装同步插入和异步插入,使两者的插入订单接口对于调用者具有一致性,p e t s h o p 4 0 中设计了i b l l s t r a t e g y 模块。虽然i b l l s t r a t e g y 模块中只有简单的 i o r d e r s t a t e g y ,但同时也给出了一个范例和信息,那就是在业务逻辑的处理中, 如果存在业务操作的多样化,或者是今后可能的变化,均应利用抽象的原理。或 者使用接口,或者使用抽象类,从而脱离对具体业务的依赖。 p e ts h o p 包含基于表的缓存依赖项实现。当数据库检查到变更时,s q lc a c h e 浙江大学硕士学位论文第5 章整体设计框架 d e p e n d e n c y 即能根据设定的表依赖关系使相关的数据表缓存失效。开发人员可以 通过扩展c a c h e d e p e n d e n c y 类来实现自己的缓存失效机制。 每张表根据需要及其对其他表的依赖关系实现一个对应的缓存依赖关系类。 当数据库发生更改时,先获取相应的缓存依赖关系,并根据此依赖关系使相应的 缓存失效。 缓存失效可以使显示的内容与p e ts h o p 数据库中的数据保持一致,但是仍 能实现中间层对象缓存的优势,从而降低中间层上的运行时处理要求,以及减少 数据库调用。这样可以提高应用程序的可伸缩性( 它可以处理更多并发用户) , 同时还可降低数据库负载。 2 3 综合布线系统软件框架模块 本文所研究的电子布线系统软件设计参考微软n e tp e t s h o p4 0 的架构【5 】,采 用基于b s 的三层结构【6 ,7 ,8 一,分别为数据层、逻辑层、界面层,主要采用n e t 技术实现。数据库采用a c c e s s 管理,数据层采用a d o n e t 及强类型d a t a s e t s 技术,逻辑层用c # t l o l 实现业务逻辑的封装,表现层由a s p n e t f ,1 2 1 及f l e x 1 3 1 实 现,客户端与服务器端应用a j a x 1 4 ,1 5 1 及w e b s e r v i c e 1 6 1 进行交互。架构模块如图 1 - 1 所示。 图2 - 3 电子布线软件架构模块图 8 浙江大学硕士学位论文 第5 章整体设计框架 数据库设计可以分为三部分:基础信息数据库、布线管理数据库、用户管理 数据库。数据库在通过数据访问层、业务逻辑层之后以a s p x 页面、f l e x 图形 界面形式与用户交互。a s p x 页面通过c o d e b e h i n d 方式传送数据;f l e x 和a j a x 页面通过w e b s e r v i c e 与服务器端通讯。m o d e l 为数据库表对应的数据抽象,每一 张数据库表的一行记录对应一个m o d e l 对象。 由于综合布线系统软件规模较小,只有少数开发人员参与,因此并没有引入 p e t s h o p 项目中的接口设计模式,即综合布线软件项目的层与层之问的关系是向 下依赖的。虽然没有达到完全的松耦合目的,但是加快了项目的开发速度。由于 本项目采用的是a c c e s s 数据库,因此并不能使用n e t2 0 中自带的 c a e h e d e p e n d e n c y 模块,而是在业务逻辑层添加了自定义实现的基础信息数据缓 存。基础信息在整个项目中被使用的次数是最多的,在其他表中作为外键关联的 关系也最多,其本身的数据量很少,因此为其实现数据缓存有极大的意义,并且 实现简单,大大提高了系统的效率。 2 4 本章小结 本章首先讨论了分层设计的框架模式,分层设计提供了分散实现、松散耦合、 逻辑复用的优点,使应用程序的可维护性及可扩展性得到了充分的提高。然后介 绍了n e tp e t s h o p 的模块式分层设计思想,p e t s h o p 设计模式为企业应用提供了 一个很好的参考实现。 在参考p e t s h o p 设计模式的基础上,本文提出了电子布线系统软件的整体设 计框架。按照三层设计框架,底层为数据访问层,中间为业务逻辑层,最上面是 表现层。在业务逻辑层中实现基础信息的缓存,大大提高了访问效率。表现层采 用a s p n e t 、a j a x 及f l e x 技术实现,并采用c o d e b e h i n d 及w e b s e r v i c e 与逻辑 层通讯。 框架中的m o d e l 模块把数据库表行变为对象,使面向数据库表的设计转换为 面向对象的设计,方便了程序的开发,同时通过串行化m o d e l 对象使数据对象在 w e b s e w i c e 中的传递更为方便。 9 浙江大学硕士学位论文 第6 章数据库及数据访问层设计 第3 章数据库及数据访问层设计 3 1 数据库设计 3 1 1 数据库软件选取 综合布线往往在一幢或几幢大楼实施,需要的插座在几千到几万之间,每个 插座对应3 条到5 条的表格信息,整个数据容量不超过1 0 0 m ;并且很少有改动 的信息,对性能及并发性要求不高。 a c c e s s 是微软推出的桌面型数据库,具有操作灵活、转移方便、运行环境简 单的优点,加上微软自家的a d o n e t 支持使其能满足大多数小型数据库的要求。 虽然a c c e s s 对存储容量大的数据库性能及并发性支持较差,但已经能很好的满足 综合布线数据库的要求。 综上所述,电子布线系统软件采用a c c e s s 作为底层数据库软件,并且分层的 设计也容易在以后把数据转移到其他数据库软件上。 3 1 - 2 数据库主键选取策略 表的记录必须有唯一区分的字段,每张表均需指定一个主键,所谓主键就是 能够唯一标识表中某一行的属性或属性组,一张表只能有一个主键,但可以有多 个候选键。主键主要用于其他表的外键关联,构成参照完整性;标识某一行记录, 确保执行数据更新、删除的时候不会出现错误。 在本系统软件中遵循选取或创建无意义字段作为主键的原则,以方便对所有 有意义字段的更改。因为有意义的主键容易被更改,会导致外键关联的表更改困 难,容易出错。如布线数据库中有插座类型表和插座表存在外键关联关系。插座 类型表具有名称字段t y p e n a m e ,可以作为类型表的主键,但类型名称t y p e n a m e 可以并且容易被用户更改,一旦更改,为保证数据完整性就必须对插座表中的每 条记录中的t y p e n a m e 都进行关联更改,代价十分巨大。如果选择无意义字段作 为主键则更改类型名称时无需更改插座表中的关联记录。因此选取在业务逻辑上 无意义的字段作为主键是必要和有效的。 数据库主键选取主要有自动增长型、最大值手动加一型及g u i d 型。 自动增长型是新建一个i d 字段,自动增长,非常方便也满足主键的原则, 优点是:数据库自动编号,速度快,而且是增量增长,数字型主键占用空问小, 1 0 浙江大学硕士学位论文第6 章数据库及数据访问层设计 易排序,在程序中传递也方便;不用担心主键重复问题。其实缺点也就是来自其 优点,就是因为自动增长,在手动插入指定i d 的记录时会显得麻烦,尤其是当 系统与其他系统集成时,需要数据导入时,很难保证原系统的i d 不发生主键冲 突。 最大值手动加一型解决了自动编号存在问题,同样是数字型的,只是把自动 增长去掉了,采用在i n s e r t 时,读取m a x 值后加一,这种方法可以避免自动编号 的问题,但也存在一个效率问题,如果记录非常大的话,那么m a x 0 也会影响效 率;更严重的是并发性问题,如果同时有两人读到相同的m a x 后,加一后插入的 i d 值会重复。 g u i d 型主键也由数据库自动生成,并且是全局唯一的,解决了自动增长型 主键在数据表导入合并时存在的问题。缺点是g u i d 值较长,在数据库较大时比 自动增长型更占空间;不容易记忆和输入;而且这个值是随机、无顺序的。 鉴于以上分析,由于布线数据库很少进行移植和合并及自动增长型主键的优 点,创建一个无意义且自动增长的i d 字段作为数据库表的主键。 3 1 3 数据并发访问控制 由于采用b s 架构,多个客户端的浏览器可以同时对服务器端数据库进行更 新删除操作,因此程序必须考虑并发性访问问题。一种经常采用的方法是最后输 入的数据有效性最高,即进行数据更新时不检查原先的数据是否已被更改过,覆 盖所有原先的数据。由于这种方法不能确定当前要更改的数据是否已经被另外的 人或程序更改过,因此在多人共享管理的情况下并不适用。 当前采用并发访问管理的方法是采用数据锁。数据锁【2 9 】分两种:悲观锁 ( p e s s i m i s t i cl o c k i n g ) 和乐观锁( o p t i m i s t i cl o c k i n g ) 。 悲观锁:在读取数据用于修改时,在读取时即对数据进行加锁,所有其他用 户都不能对加锁的行进行修改。悲观锁常用于数据竞争激烈,并且锁定时间花费 较少的情况。悲观锁需要在数据库中实现。由于锁定后其他用户不能访问,因此 较少用于交互较多的情况。 乐观锁:在读取数据时并不对数据进行加锁,同时其他用户可以自由访问此 数据。当有用户想要更新此数据时,必须检查此数据被读入后是否已被更改,如 果已被修改,则在更改时生成错误并阻止更改。乐观锁适用于数据竞争较少的情 况,或者是只读次数较多的情况。由于乐观锁减少了所需锁的数量,因此也减轻 了数据库的负担,提高了数据库的性能。 浙江大学硕士学位论文第6 章数据库及数据访问层设计 乐观锁的实现方法如下。 ( 1 ) 采用分布式时间戳。给数据库的每张表添加一个时间戳标记或版本标记, 每次读取数据时同时读取此标记,当需要更新数据时,把读取的标记于数据库表 行对应的标记进行比较,如果相同则允许更新,不同则阻止。允许更新时同时更 新数据库和内存中的时间戳标记或版本标记。 ( 2 ) 采用集中式时间戳。与分布式时间戳分散保存标记的方法不同,集中式 时间戳方法把所有时间戳标记或版本标记保存在一张表中。当更新数据时就检查 并更新对应的标记。 ( 3 ) 保存一份读取时的数据拷贝。即在读取数据时把它复制到一个特点的地 方,当更新时就把数据库中的数据和复制的数据进行比较,如果相同则允许更新, 否则阻止更新。 3 1 4 数据结构及数据库实现 数据库实现分三部分:基础信息数据、布线信息数据、用户信息数据。 基础信息包括布线大楼信息、插座类型信息、连线类型信息、设备类型信息、 配线间信息、插座类型连线类型对应关系、设备类型连线类型对应关系、交换机 上行端口信息。基础信息表格字段见表6 1 所示: 表3 - 1 基础信息数据库 表格字段 大楼信息 i d 、名称、简称,地上层数、地下层数 插座类型i d 、名称、简称、图标路径、备注 连线类型i d ,名称、简称,子连线数、备注 设备类型i d ,名称、简称、端口数、图像信息、是否网络设备 端口名称 i d 、设备类型i d 、端口名称 配线间 i d 、名称、类型,所在大楼、楼层、房间 插座连线i d 、插座类型i d 、连线类型i d 设备连线i d 、设备类型i d 、连线类型i d 上行端口i d 、设备类型i d 、端口名称 布线信息为系统的主体部分,和基础信息变更比较少不同,作为主要部分的 布线信息经常会被更改,因此把不常更改部分如类型信息、大楼信息等分离是十 1 2 浙江大学硕士学位论文第6 章数据库及数据访问层设计 分必要和有效的。 布线信息包括插座信息、水平线信息、主干线信息、机柜信息、设备信息、 插座到设备连接信息、设备到设备连接信息。具体数据表字段见下表所示: 表3 - 2 布线信息数据库 表格字段 插座信息 i d 、名称、插座类型l d 、大楼i d 、楼层、房间、所属用户、电话i p 设备信息l d 、名称、设备类型i d 、机柜i d 、备注 水平线信息i d 、标记、连线类型i d 、大楼i d 、楼层、配线间l d 、长度、备注 主干线信息l d 、标记、连线类型i d 、起始配线问i d 、终止配线问i d 、长度、备注 插座到设备连接 i d ,插座i d 、设备l d 、端口、水平线l d ,子线标记 设备到设备连接 i d 、起始设备i d 、起始端口、终止设备i d 、终止端口、主干线i d 、子 线标记、是否跳线 机柜信息i d 、名称、配线间i d 、备注 用户相关信息包括用户信息、用户权限信息、i p 信息、报修信息、维修信息。 具体表格字段见下表所示: 表3 - 3 用户信息数据库 表格 字段 用户信息 i d 、姓名、性别、地址、出生年月、部门、联系电话、备注 权限信息i d 、账户名称、权限类别、备注 i p 信息i d 、用户名、i p ,m a c 地址、d n s 、网关、地址 报修信息i d 、故障地点、故障内容、报修日期,预约日期、报修人、联系电话、 是否已维修、备注 维修信息i d 、报修i d 、维修内容、维修日期、维修者、费用、备注 浙江大学硕士学位论文 第6 章数据库及数据访问层设计 3 2 数据访问层实现 3 2 1 与数据库连接 a d o n e t 3 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 装修工程协议书(30篇)
- 保本型理财合同样本
- 2025健身加盟合同书模板
- 二零二五版学生入学协议书
- 二零二五版全新高管的劳动合同
- 二零二五股东出资协议范例
- 浅析我国电子合同的法律问题
- 二零二五版摄影师聘用合同
- 二手房交易中介担保书二零二五年
- 互联网改造合同标准文本
- 采用TBM机掘进煤矿斜井的施工
- 幼儿英语活动指导++课件
- 区慢性病综合防控示范区绩效考核评操作表
- 【课件】时代与变革-为人生而艺术 课件高中美术人美版(2019)美术鉴赏
- 建设工程施工合同(示范文本)GF-2020-0201模板
- 全国油料高产创建测产验收办法
- 牛顿拉夫逊迭代法极坐标潮流计算C语言程序
- 食品接触材料控制程序
- 人教版高一数学必修一全套教案
- ups并机工作原理及扩容方案
- 北师大版七年级下册实验通知单
评论
0/150
提交评论