(控制理论与控制工程专业论文)车辆监控系统中web子系统的研究.pdf_第1页
(控制理论与控制工程专业论文)车辆监控系统中web子系统的研究.pdf_第2页
(控制理论与控制工程专业论文)车辆监控系统中web子系统的研究.pdf_第3页
(控制理论与控制工程专业论文)车辆监控系统中web子系统的研究.pdf_第4页
(控制理论与控制工程专业论文)车辆监控系统中web子系统的研究.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(控制理论与控制工程专业论文)车辆监控系统中web子系统的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京理工大学硕士学位论文 车辆监控系统中w e b 子系统的研究 摘要 随着社会的发展和技术的进步,许多领域对移动目标进行实时监控的需求不断增 多,特别是对车辆监控的需求更加迫切。本文所研究的车辆监控系统集全球定位系统 ( g p s ) 、地理信息系统( g 王s ) 、通用无线分组业务( g p r s ) 以及i n t e m e t 技术为一 体,对车辆进行远程监控。 车辆监控系统由多个子系统组成,本文的研究重点是其中的w e b 子系统。首先 对车辆监控系统的整体结构进行了分析,指了以前网站系统中存在的不足。随后就 以这些不足为出发点,对系统的诸多方面提出具体的改进方案,并利用a s p n e t 2 0 平台提供的相关技术解决了这些问题。根据问题的解决将文章的主要内容分为四个部 分。第一部分,是网站的体系结构的设计,通过对两层结构和三层结构的比较,选择 了三层结构作为网站的体系结构,并对三层结构的建立进行了具体的设计。第二部分 是网站的详细设计,包括了系统的总体结构设计、系统数据库的设计,并对界面表达 的几个方面进行了改进。第三部分是系统的安全性设计,结合s 验证和a s p n e t 验证,实现功能更加全面的安全性管理,提出并解决了多层角色管理的问题。最后一 部分,主要对报警信息的实时显示进行了设计,并提出了两种解决问题的方案,最终 利用a j a x 技术实现了信息的实时显示。 关键词:车辆监控系统,a s p n e t2 0 ,三层结构,安全性,a j a x 南京理工大学硬士学位论文 车辆监控系统中w e b 子系统的研究 a b s t r a c t w i t ht h ed e v e l o p m e n to ft h es o c i e t ya n dt h ep r o g r e s so ft e c h n o l o g y , i nm a n yf i e l d s , t h ed e m a n d so fr e a l - t i m em o n i t o ro fm o v e dt a r g e t sc o n t i n u o u s l yi n c r e a s e e s p e c i a l l yt h e d e m a n d so fv e h i c l em o n i t o rb e c o m em o r eu r g e n t 1 1 l ev e h i c l em o n i t o r i n gs y s t e mo ft h i s t h e s i ss t u d y , c o n t a i n sg l o b a lp o s i t i o n i n gs y s t e m ( g p s ) ,g e o g r a p h i ci n f o r m a t i o ns y s t e m ( g i s ) ,g e n e r a lp a c k e tr a d i os e r v i c e ( g p r s ) a n di n t e m e tt e c h n i q u e , c o m b i n ew i t ht h e s e t 0r e m o t em o n i t o rt h ev e h i c l e s v e h i c l em o n i t o r i n gs y s t e mc o n t a i n sm a n ys u b s y s t e m s ,o n eo ft h e mi sw e b + s u b s y s t e m , w h i c hi st h ee m p h a s i so ft h et h e s i s a tf i r s t , a n a l y z et h ew h o l es t r u c t u r eo f t h ev e h i c l e m o n i t o r i n gs y s t e m , a n dt h e nb r i n gf o r w a r ds o m em e wi d e a sa b o u tt h e s h o r t a g eo ft h ef o r m e rw e b s i t cs y s t e m l a t e r , b a s e do nt h e s es h o r t a g e s 。g i v es o m e i m p r o v e di d e a so fs e v e r a la s p e c t si nt h es y s t e m , a n dm a k eu s eo ft h er e l a t e dt e c h n i q u e w h i c ha s e n e t2 0p l a t f o r mp r o v i d e st os o l v et h eq u e s t i o n s a c c o r d i n gt 0t h es o l u t i o n s t ot h ep r o b l e m , t h ec o n t e n ti sc o m p r i s e do ff o u rc o m p o n e n t s i nt h ef i r s tp a r t , d e s i g nt h e w e b s i t e sa r c h i t e c t u r e ;c h o o s et h e3 - t i e ra r c h i t e c t u r ea sw e b s i t e sa r c h i t e c t u r eb y c o m p a r i n g2 - t i e ra r c h i t e c t u r ew i t h3 - t i e ra r c h i t e c t u r e ;t h e n ,p u tf o r w a r das o l u t i o n t o f o u n d3 - t i e ra r c h i t e c t u r ec o n c r e t e l y t h es e c o n dp a r ti st h ed e t a i l e dd e s i g no fw e b s i t e , i n c l u d i n gt h ed e s i g no fw h o l es t r u c t t n ea n ds y s t e md a t a b a s e ,a n dc o n t a i n i n gs e v e r a lp a r t s o fi n t e r f a c e si m p r o v e m e n t i nt h el a t e rp a r t , d e s i g ns e c u r i t yo ft h ew e b s i t e , t h es e c u r i t y c o m b i n e si n t e r n e ti n f o r m a t i o ns e r v i c e ( s ) v a l i d a t i o na n da s p :n e tv a l i d a t i e n ,t oc a r r y o u tb e t t e rs e c u r i t ym a n a g e m e n t a n dt h e nb r i n gf o r w a r dt h eq u e s t i o no fm u l t i - t i e rr o l e s m a n a g e m e n t , f u r t h 锄o r e ,s o l v et h eq u e s t i o n i nt h e l a s tp a r t , d e s i g nt h a th o wt od i s p l a y t h er e a l t i m ea l a r mi n f o r m a t i o n ,a n dp u tf o r w a r dt w ok i n d so fp r o b l e m - s o l v i n gp r o j e c t s f i n a l l y , m a k eu o f a j a xt e c h n i q u et oc a r r yo u tt h ea l a r mi n f o r m a t i o n r e a l - t i m ed i s p l a y k e y w o r d s :v e h i c l em o n i t o r i n gs y s t e m , a s e n e t2 0 ,3 - d e ra r c h i t e c t u r e , s e c u r i t y , a j a x m 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本 学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发表或 公布过的研究成果,也不包含我为获得任何教育机构的学位或学历而使 用过的材料。与我一同工作的同事对本学位论文做出的贡献均- 已在论文 中作了明确的说明。 研究生签名: 沙净7 胪日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或 上网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并 授权其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密 论文,按保密的有关规定和程序处理。 研究生签名: 僻朋,护日 南京理工大学硕士学位论文 车辆监控系统中w e b 子系统的研究 1 绪论 1 1 工程背景 随着社会的发展和技术的进步,许多领域对移动目标进行实时监控的需求不断增 多,特别是对车辆监控的需求更加追切。在此情况之下,车辆监控系统应需而生。车 辆监控系统是融g p s ( g l o b a lp o s i t i o n i n gs y s t e m ,全球定位系统) 、g i s ( g e o g r a p h i c i n f o r m a t i o ns y s t e m ,地理信息系统) 、g p r s ( g e n e r a lp a c k e tr a d i os e r v i c e ,通用无线 分组服务) 和i n t e m e t 技术为一体的移动车辆综合服务系统c 2 5 - 2 7 。利用g p s 定位技术 实现了车辆的实时跟踪定位;利用g i s 电子地图,为车辆监控系统的车辆位置信息和 车辆管理监控信息提供了一个可视化载体;g p r s 则是g p s 和g i s 之间的数据通信 纽带,使得对车辆远程监控成为可能。将这些技术结合在一起,能够更加方便地对车 辆进行实时定位跟踪,为监控人员提供形象直观的辅助决策信息 2 7 - 2 9 。 本课题所研究的车辆监控系统监控的对象主要是工程车辆,包括挖掘机、推土机、 吊车等价格昂贵的工程车辆。用户如果想使用这些车辆,需要向车辆的拥有者租用。 在车辆使用的过程中,使用者对车辆的一些操作可能会使车辆产生故障。车主希望在 车辆工作的过程中,能够对车辆进行实时监控,及时地了解车辆的工作状态,并且在 车辆遇到意外情况发出报警时,能够快速做出反应,对车辆进行控制,以减少因为车 辆故障而带来的损失。另外,车主还希望当车辆工作一段时间后,对车辆的各方面的 状态信息进行分析,以确定车辆在哪一方面需要维护。因此,根据用户的不同需求设 计出一套功能完善、实时性好的车辆监控系统有着重要的意义。 1 2 目的和意义 本课题所研究的车辆监控系统是基于b s ( b r o w s e r s e r v e r ,浏览器,服务器) 模 式的,它是随着i n t e m e t 技术的兴起,对c s ( c l i e n t s e r v e r 客户端服务器) 结构的 一种变化或者改进的结构。在这种结构下,用户界面是通过浏览器来实现的,极少部 分事务逻辑在浏览器端实现,主要的事务逻辑在服务器端实现。这样就简化了客户端 电脑的负荷,减轻了系统维护与升级的成本和工作量。并且,在b s 模式下进行维护 比较简便,能实现不同的人员,在不同的地点,以不同的介入方式访问和操作共同的 数据 3 2 - 3 6 l 。这给车辆监控带来了很大方便。 在b s 模式下,用户通过浏览器对车辆进行监控。通过浏览器,用户可以了解车 辆的定位信息、状态信息、地图信息、历史信息等,并且可以通过浏览器对车辆发出 1 硕士论文 控制命令,另外,用户还可以享有其他的些服务,比如配置车载终端参数等。提供 这些服务的页面都由服务器端的w e b 网站提供,网站提供了用户进行监控的最终界 面,因此,网站在整个系统中起着不可或缺的作用。 南京理工大学自动化学院于2 0 0 5 年开发出了“车辆远程监控系统v 1 0 ”。这个 系统中的w e b 网站子系统建立在a s p n e t1 1 平台上。随着被监控车辆数量的不断 增加、用户对系统功能的需求的提升以及网络服务的不断扩展,1 0 版网站已难以满 足这些需要,亟需改进。1 o 版系统的不足主要包括以下几个方面: 1 ) 网页与数据库紧密耦合,造成了当用户的需求变化时,很难进行改进; 2 ) 车辆状态信息的处理严重依赖数据库操作,造成数据库负载压力过大; 3 ) 页面信息的分类不合理,使得页面的加载速度较慢; 4 ) 车辆故障、报警信息等异步报警信息无法及时显示; 5 ) 由于a s e n e t1 1 平台本身的缺陷,导致1 :0 版监控系统性能缺陷。 本论文的工作是结合南京理工大学自动化学院目前正在重新设计的全新的“车辆 远程监控系统v 2 0 ”,重新设计2 o 版系统中的w e b 网站子系统。利用a s p n e t 2 0 平台以及随之带来的各种技术克服上述1 o 版系统的不足。 1 3 车辆监控系统分析 基于b s 模式的车辆监控系统主要由以下四个部分组成:车载终端、监控中心、 用来完成监控中心与车载终端之间通信的通信网络和客户端w e b 浏览器。 其总体结构如图1 3 1 所示: 2 图1 3 1g p s 车辆监控系统的总体结构示意图 车载终端主要完成接收被监控车辆的定位信息、状态信息、报警信息等,也可以 南京理工大学硕士学位论文 车辆监控系统中w e b 子系统的研究 根据需要对车辆进行控制。通信网络完成监控中心和车载终端之间的数据传输。系统 授权的网络用户可以通过i n t e m e t i n t r a n e t 访问监控中心的数据库系统,对车载的地理 信息和状态信息进行查询,从而对车载用户的决策给予有效的帮助,同时可以通过网 络系统对车辆进行实时控制。 1 3 1 系统内的数据漉向 在车辆监控系统中,根据信息流向的不同,将信息分为两类:上行信息和下行信 息。上文所提到的从车载终端传向监控中心的定位信息、状态信息等都为上行信息, 而从监控中心发出的控制命令则属于下行信息。下面就对信息流动的这两种情况分别 进行说明。 ,图1 3 1 1 上行数据信息流向图。 图1 3 1 1 是上行数据信息流向图,这类信息由车载模块定时主动上传,途经 g p r s 网络和i n t e m e t ,再由监控中心的转发中心进行处理后,存入数据库。当客户端 通过浏览器请求查看信息时,网站服务器根据请求的内容从数据库中读取数据,经过 一系列的处理,将信息以网页的形式传回客户端。 图1 3 1 2 下行数据信息流向图 图1 3 1 2 是下行数据的信息流向图,与上行数据的流向相反,下行数据由用户 在客户端通过网页提交给网站服务器,网站服务器将接收到的请求按一定的格式存入 数据库,转发中心定对扫描数据库中的信息,一旦发现有新的信息,将信息从数据库 硕士论文 中取出,并根据信息的要求将命令发送到特定的车载模块上。 1 3 2 系统的主要组成部分 车载终墙 车载终端主要由g p s 接收模块、f o 输入输出模块、a d 转换输入模块、中心控 制模块、存储模块、g p r s 通信模块组成。 如图1 3 2 1 所示: 图1 3 2 1g p s 车载终端结构图 各部分的主要作用如下:* 1 g p s 模块由g p s 天线接收卫星信息,当接收到4 颗或4 颗以上的卫星发出的 信号时,就能计算出自身的经度、纬度、速度等信息0 0 。然后,该模块通过串口将计 算出的g p s 信息传送到中心控制模块。 2 f o 输入输出模块可以获取车辆开关量,也能对车辆进行控制。该模块定时扫 描继电器的开关状态,并将状态信息传入中心控制模块。当中心控制模块发出控制命 令时,由该模块控制继电器的开关来实现对车辆的控制,如锁、解锁点火装置等。 3 a d 转换模块用于获取车辆的模拟量信息,将其转换为数字量,传送给中心控 制模块。 4 中心控制模块协调控制其他模块,对收集到的信息进行分析整理,按一定的格 式通过g p r s 模块发送出去,并做适当的备份。 5 存储模块有三个方面的作用: ( 1 ) 存储车载终端系统的程序; ( 2 ) 备份前一段时间内的数据; ( 3 ) 当g p r s 模块上传数据失败时,存储模块将缓存上传失败的数据,等g p r s 网络畅通后,中心控制模块就可以将存储模块中的缓存数据重新上传。 6 g p r s 通信模块用来发送采集到的数据和接收发送到车载终端的控制命令和配 置信息。 4 南京理工大学硕士学位论文 车辆监控系统中w e b 子系统的研究 通信网络 通信部分,主要包括g p r s 网络和i n t e m e t 。g p r s 网络是通过在现有的g s m 网 络中增加了s g s n ( s e r v i n gg p r ss u p p o r tn o d e ,服务g p r s 支持节点) 和g g s n ( g a t e w a yg p r ss u p p o r tn o d e ,网关g p r s 支持节点) 来实现的,使得用户能够在 端到端分组方式下发送和接收数据。其中,s g s n 的主要作用是建立车载终端到g g s n 的传输通道,接收从b s s ( b a s es t a t i o ns y s t e m ,基站系统) 传来的车载终端分组数 据,通过g p r s 骨干网传送给g g s n ,g g s n 负责将分组数据转发至i n t c r a e t 或其他 g p r s 的网络 2 9 1 3 1 1 。最终,分组数据通过h t e m e t 传到监控中心。监控中心收到上传 的信息数据之后,根据车载终端的m 地址和端口号下发确认信息给车载终端,同样, 也可以将控制信息以及配置信息下发到车载终端。 监控中心 监控中心主要由三个部分组成:转发中心、数据库、w e b 网站。 转发中心是整个系统运作的核心,它将系统率的各个部分联系在一起。一方面, 转发中心从h t e m e t 上接收由车载终端发送来的各种信息,根据事先约定的传输协议 的格式,将不同类别的信息从接收的信息中解析出来,写入数据库不同的数据表中; 另一方面,转发中心定时检查数据库中是否有新的控制命令或配置命令,如果有,转 发中心就会根据数据库中提供的信息,构造出相应的命令帧,发送到对应的车载终端 上。 数据库是整个系统的数据中心。一方面,数据库存放由转发中心解析出来的数据, 同时数据库要响应w e b 网站的数据请求,将所需数据传送给它用于数据展示;另一 方面,数据库接收w e b 网站上传的控信4 或配置请求,存储在相应的表中,供转发中 心读取。 w e b 网站从数据库中读取必要信息,生成动态网页,用户可以通过浏览器查询车 辆定位、状态等实时信息,也可以查询车辆在指定的一段时间内的历史信息以及运行 轨迹。用户还可以通过网页提交控制命令,转发中心发现有新的控制命令后,通过 g p r s 网络商相应的车载模块发送控制命令。另外。部分用户可以通过网页对车辆的 信息进行管理。 1 , 4 个人工作 针对1 0 版网站存在的诸多不足,借助于a s e n e t2 0 平台提供的新技术、新功 能,对系统网站进行了重新设计。 具体体现在以下几个方面: 1 ) 系统体系结构的设计方面,采用1 3 s 模式下的三层结构在三层结构中,把 5 硕士论文 对数据库的访问逻辑放在页面之外中间层中,这样做使网站的维护变得方便、页面结 构更加清晰,而且可以在中间层中处理从数据库中取出的数据,减轻数据库的负担。 ,。2 ) 系统的具体设计和界面表达上的改进。在界面表达方面,利用a s e n e t2 o 的新特点,实现了页面的布局、导航树的生成、数据显示等方面改进。 3 ) 利用a s p n e t2 0 提供的成员资格管理和角色管理,结合s ,实现了功能 比较全面的安全管理,提出并解决了基于多层角色的安全管理。 4 ) 利用a j a x 技术解决了报警信息的实时展现问题,并且就r s s 技术提出了另 一种解决问题的方案。 在解决问题的过程中主要采用的工具有: 1 ) 开发平台采用v i s u a ls t u d i o2 0 0 5 集成开发环境中的a s p n e t2 o ; 2 ) w e b 程序的设计采用 编程语言; 3 ) 数据库采用s q l s e r v e r 2 0 0 5 ; 4 ) 服务器操作系统采用w i n d o w ss e r v e r2 0 0 3 ; 5 ) w 曲服务器选用s6 0 。 1 5 小结 本章首先分析车辆监控系统的工程背景,阐述了研究该课题的目的和意义,其次 分析了车辆监控系统的结构,最后说明了本人在该课题中所做的主要工作。 6 南京理工大学硕士学位论文 车辆监控系统中w e b 子系统的研究 2 车辆监控系统w e b 网站的体系结构设计 2 11 0 版罔站系统在体系结构方面存在的问题 在进行网站设计之前有必要对网站的体系结构有所了解,1 0 版网站系统是建立 在a s e n e t1 ,1 上的。由于平台本身存在的些不足,导致了系统的设计出现了一些 缺陷。1 0 版网站系统的体系结构主要是两层结构,即表示层直接连接到数据层。两 层结构带来了一定的好处,比如:可以在表示层直接访问数据层,不需要通过中间层 或者更多的层来实现对数据的操纵,减少了许多中间步骤,提高了数据访问的效率。 但是这也带来了一些问题,在两层结构中,访问数据库的代码是散落在各个页面中的, 如果数据库服务器改变或者升级,就需要在有数据访问的网页中,对之进行逐个的修 改;如果系统的数据访问出现问题,错误的查找也会带来很大的麻烦;此外,网站系 统本身的升级、维护工作也会因此变得繁琐。 要解决这些问题,可以采用一种方法,那就是将访闯数据库的逻辑放在一个特定 的文件中,一旦数据库服务器改变或者用户需求改变,集中修改这样的文件就可以了, 并且采用这种方法会使页面结构变得更加清晰、简洁,具有这种文件的体系结构就是 所谓的三层结构。 2 0 版网站系统选用a s e n e t2 0 作为网站开发的平台,虽然在a s e n e t1 1 下 也可以用三层结构对系统进行构架,但是由于技术的不成熟而导致三层结构没有能够 很好的发挥作用,a s p ! n i 玎2 0 作了许多的改进,能够较为方便地实现网站的三层结 构。 2 2 三层体系结构 2 2 1w e b 服务器体系结构概述 a s e n e t 系统的逻辑结构可以是两层结构也可以是三层结构。两层结构中把对 数据库的操作代码放在了表示层的页面代码中;三层结构中,把对数据库的访问逻辑 全部放在了页面之外的文件中,相当于在表示层和数据层之问增加一个中间层【匀。 a s p n e t 的结构如图2 2 1 i 所示: 7 车辆监控系统w e b 阿站的体系结构设计 硕士论文 图2 2 1 ,1a s p n e t 的逻辑结构 如上图所示,右上边的数据连接表示两层结构时的连接,中间部分的连接代表三 层结构时的连接。在a s e n e t 的三层结构中,对于三层的划分有两种定义,一种说 法是将表示层j 业务逻辑层和数据访问层作为三层【5 】,另一种说法是把业务逻辑层和 数据访问层归为中间层,数据库称为数据层 3 7 1 。这两种说法实质上是一样的,就是把 对数据层的操作逻辑独立出来。在本文中使用第二种说法。 2 2 2 两层结构和三层结构的分析 在两层结构模式下,客户向服务器发出请求,服务器处理这些请求,处理完成后 再返回客户端。此时显示逻辑和处理代码都集中于前台的网页之中。这种结构的优点 是具有很强的实时数据操纵和事务处理能力、执行效率高,如果系统的功能比较简单 时,两层结构是个合适的选择 s 1 两层结构的示意如图2 2 2 1 所示: 8 图2 2 2 1 两层结构示意 但是,两层结构也有其不可避免的缺陷,主要有以下三点: 南京理工大学硕士学位论文 车辆监控系统中w e b 子系统的研究 1 系统不易维护。在两层结构系统中,对数据库的操作代码是混在网页代码中的, 一旦对数据的操作逻辑发生改变,就需要对散落在页面代码一一进行修改,工作量很 大: 2 代码重用率低。如果不同的网页具有相同的业务处理逻辑,在两层结构中要分 别编写相同的数据操作代码,大大增加了工作量。j - 3 页面对数据库依赖性强。在对数据操作要求较高的情况下,会造成数据库负载 压力变大。 。 所以,在系统的功能比较复杂时,或者对网站有些特殊要求时,三层结构是一个 好的选择。三层结构的示意如图2 2 2 2 所示: 图2 2 2 2 三层结构示惹, 1 0 版w e b 网站的结构主要是两层结构,随着业务的扩展和系统功能的不断提升, 网站的结构变得越来越复杂,两层结构已经很难适应系统的要求,而三层结构带来的 优越性在一定程度上缓解了系统的压力,在这种情况下,选择三层结构作为2 0 版两 站的体系结构。根据系统层次的划分,对各个层的功能进行了分析。 表示层 在表示层将各种页面信息进行分类,并根据分好类的信息合理布局,最终展现给 用户。该层中主要完成两个任务:一是从业务逻辑层获取数据显示给用户;= 是实现 与用户的交互,将有关数据交给业务逻辑层处理。数据的传递通过数据控件提供的接 口实现。 业务逻辑层 i业务逻辑层连接着表示层和数据访问层,与表示层和数据访问层有着不同意义的 交互。对于表示层,一方面要根据用户的请求,。处理从数据访问层中取出的数据,将 处理好的信息展现给用户;另一方面,要处理用户提交的信息,并将处理好的信息传 送给数据访问层。 对于从数据访问层中取出的数据,业务逻辑层要根据用户对信息的要求进行处 理,包括对无效信息的过滤、对信息的转换运算和对信息的组合。对于从数据访闻层 9 车辆监控系统w e b 网站的体系结构设计 硕士论文 中取出的数据,由于信息较多,对用户有实际意义韵只是其中的一部分,其他的信息 可以通过业务逻辑过滤掉。对于信息的转换运算,有两种情况,一是存放在数据库中 的数据格式与展现在表现层中的数据格式存在差异,比如时间的展现;二是有些信息 需要经过运算或转换才对用户有意义,比如数据表中的数字信息有时需要以中文形式 输出。信息的组合处理,主要是为了将一组有联系的信息一起展现,而这些信息可能 是一个数据表的不同数据段,也可能是不同数据表中的字段,比如车辆监控系统中定 位信息,数字信息取自定位信息表,而定位名称和单位取自定位信息定义表。 , 对于用户提交的信息,包括对无效信息的过滤和对信息的转换运算,这跟从数据 层中取出的数据处理方式相似。 数据访问层 数据访问层与业务逻辑层和数据层有着密切的联系,主要负责管理与数据层的连 接。对于业务逻辑层,有两方面的工作,包括向业务逻辑层提供数据和接受经过业务 逻辑层处理的信息。数据访问层根据业务逻辑层的要求,建立与数据层的连接,对数 据进行操作,具体的过程是由s q l 语句实现,包括s e l e c t 、u p d a t e 、i n s e r t 、d e l e t e 操作。 在数据访问层中,将从数据层中取出的数据存放在数据集中,数据集在内存中为 应用程序提供了数据的缓存,实现了断开式数据访问,即断开与数据层的连接也能访 问这些数据。在车辆监控系统网站中可以对经常使用的数据进行缓存,比如数据的 定义信息等,这样就减轻了数据库的负担。+ 在车辆监控系统中,不同的用户可能会执行相同的数据访闯,这些访问将打开不 同的数据连接,会增加服务器的负担。使用a d o n e t2 0 提供的连接池方法可以减 少新连接需要打开的次数。当用户在连接上调用o p e n 时,池进程就会检查池中是否 有可用的连接,如果某个池连接可用,会将该连接返回调用者,而不需要打开新韵连 接,大大节省了系统开销,提高了网站系统的运行效率。 数据层 数据层就是实际意义上的数据库( d a t a b a s e ) ,用于存储对用户有意义的数据。 综上所述,数据访问层从数据库中获得原始的数据,业务逻辑层把数据转换成符 合业务规则的有意义的信息,表示层把信息转换成对于用户有意义的内容。表示层、 业务逻辑层、数据访问层都可以独立地进行修改,而各自的修改不会对其他层造成很 大的影响。另外,三层结构的应用提高了应用程序内聚程度、降低耦合,使得应用程 序易于扩展、维护和重用。 1 0 南京理工大学硕士学位论文车辆监控系统中w e b 子系统的研究 2 3 解决问题的方法分析 2 3 1 数据访问技术 三层结构的建立需要借助于数据访问技术才能实现,而数据访问技术是依赖于数 据绑定的。在a s e n e t1 1 中允许将基于x m l 的d a t a s e t ( 数据集) 绑定到d a t a g r i d 控件上,减少了生成表格所必需的代码。这样的技术与之前的数据访问技术相比有了 很大的改进。然而,也存在着不足,主要有以下两个方面:一是必须编写大量的重复 性代码;二是实现功能方面较弱,难以实现数据的分页、排序、编辑和选择等。这些 问题导致的直接后果就是工作效率和性能的下降。 为了解决上以上问题,a s e n e t 2 0 进行了大量的改进,其中最引人注目的是增 加了多种新的数据访问控件。根据控件所实现的功能,数据访问控件主要分为两大类: 数据源控件和数据绑定控件。数据源控件封装所有获取和处理数据的功能,主要包括 连接数据源、使用s e l e c t 、u p d a t e 、d e l e t e 和i n s e r t 等s q l 语句获得和管理数据等。 数据绑定控件主要用于以多种方式显示数据。通常情况下,可以将数据源控件和数据 绑定控件结合起来,数据源控件负责获取和处理数据,数据绑定控件负责将数据显示 在页面上。 , 根据处理的数据源类型,数据源控件分为s q l d a t a s o u r c e 、a c c e s s d a t a s o u r c e 、 x m l d a t a s o u r c e 、o b j e c t d a t a s o u r c e 、s i t e m a p d a t a s o u r c e 。数据绑定控件包括以多种方 式显示数据的控件,比如l i s t b o x 、d r o p d o w n l i s t 等以列表形式显示数据,g r i d v i e w 、 d e t a i l s v i e w 等主要以表格形式显示数据信息。这些控件具有丰富的功能,开发人员 只需要简单地配置一些属性,就可以在几乎不用编写代码的情况下,快速正确地完成 任务。 使用数据源控件有很多优点:一是可以得到完全声明性的数据绑定类型。新模型 减少了以内联方式插入到a s p x 页面中或者分散在代码隐藏类中的松散代码。新的数 据绑定结构强制开发人员遵守严格的规则。二是数据源控件从本质上改变了代码的质 量。附加到事件的较长代码块通常会消失,被插入到现有框架中的控件所取代。这些 数据源控件派生自抽象类,实现了已知的接1 2 1 ,并且可以实现更高级别的可重用【3 】。 在两层结构中用& l l d a t a s o u r c e 等控件,能够很容易实现从数据源获取数据显示 在w e b 页面上。然而在三层乃至多层应用程序中就不是那么有效了。为了便于构建 三层应用程序,选用了o b j e c t d a t a s o u r c e 控件,该控件能够在表示层与数据访问层、 表示层与业务逻辑层之间构建一座便捷的桥梁,将来自数据访问层或者业务逻辑层的 数据对象与表示层中的数据绑定控件绑定,实现数据的显示、编辑、分页、排序等功 能。 1 1 车辆监控系统w e b 网站的体系结构设计硕士论文 2 3 2 系统的中问层所采用的方式 a s e n e t2 0 中对象数据源控件( o b j e c t d a t a s o t t r c e ) 、数据集( d a t a s e t ) 和数据 表适配器( t a b l e a d a p t e r ) 为通过中间层访问数据库提供了强有力的支持。将这些控 件放在中间层,供各个网页调用,这将提高代码的重用度并保证了网页中数据的一致 性。 这几个控件之间的关系如图2 3 2 1 所示; 图2 3 2 1 连接数据库的中间层 上图中包括5 个组成部分:数据集、数据表适配器、自定义类、o b j e a d a t a s o u r c e 控件、数据绑定控件。 数据集包含数据表( d a t a t a b l e ) 对象,可以在这些数据表中临时存储数据以便在 应用程序中使用。如果应用程序要求使用数据,则可以将该数据加载到数据集中,数 据集在本地内存中为应用程序提供了待用数据的缓存,即使应用程序断开与数据源的 连接,也可以使用数据集中的数据。数据集还能维护有关数据的更改信息,当数据更 新时,能在应用程序重新连接时将更新数据发送回数据库。 数据表适配器是数据集与数据源的接口,用来连接数据库,执行查询数据表并向 数据集填充数据、取出数据和更新数据等操作。数据表适配器的f i l l ( ) 方法用来向 数据集填充数据。一个数据表适配器可以执行多条查询语句,这些查询语句是对同一 南京理工大学硕士学位论文车辆监控系统中拈b 子系统的研究 个数据表进行的查询,根据查询条件的不同,所获得的数据也将不同。适配器采用 f i l l ( ) 、f f l l b y ( ) 等不同的方法名来区分不同的查询结果。与此相对应,取出数据 时调用的方法也分别采用g e t d a t a ( ) 、g e t d a t a b y ( ) 以及自定义的名字。当数据表 适配器更新数据时调用u p d a t e ( ) 方法,删除数据时调用d e l e t e ( ) 方法,插入数 据时调用i n s e r t ( ) 方法等, 自定义类是将各个数据集、数据集中的数据表、数据表适配器以及数据表适配器 中所定义的数据操纵方法封装在一起,以便于调用。 o b j e c t d a t a s o u r c e 控件的一端连接着自定义类,另一端与数据绑定控件进行数据 绑定。此外,o b j e c t d a t a s o u r e e 控件还可以在给数据分页和排序、数据缓存、防止数 据访问中的冲突等几个方面发挥作用。 这种数据访问技术为三层结构的实现提供了有力的保证。在车辆监控系统中中间 层所采用的主要就是这种方法。 2 4 系统结构的详细设计 在系统结构的设计中,创建中间层主要分为两个步骤:一是创建数据访问层 ( d a l ) ,二是创建业务逻辑层( b l l ) 。把跟中间层相关的文件放在a s p :n l 玎网站 中共享代码文件夹a p p _ c o d e 中。 在a p p _ c o d e 文件夹中可以存储源代码,在运行时将会自动对这些代码进行编译, w e b 应用程序中的其他任何代码都可以访问产生的程序集a p pc o d e 文件夹可以包 含以传统类文件( 带有v b 、c s 等扩展名的文件) 的形式编写的源代码文件。它也可 以包含并非明确显示出来的由某特定编程语言编写的文件,如旺架构( 】【s d ) 文件1 8 】【删。 为了便于管理,在a p p _ c o d e 文件夹建立两个文件夹,一个用来存放数据访问层 的相关文件,为之命名d a l ;另一个用来存放业务逻辑层的相关文件,命名为b l l 。 2 4 1 数据访问层的建立 数据访问层中包含着访问底层数据源数据的方法,这些方法都以文件的形式放在 d a l 文件夹中。这些文件中具有跟底层数据源相关的所有编码,譬如建立到数据库 的连接,发出s e i 正c t ,矾s e r t ,u 1 ) d a 旺 和d e l e t e 命令等的编码。表示层不包 含这些数据访问编码,使用时只需调用d a l 中的编码来完成数据访问请求。 创建数据访问层的主要工作是创建数据集和数据表适配器。a s p n e t 为程序设 计提供了数据集文件,即后缀名为x s d 的文件。它是代表数据表的强类型模式,在这 个文件中会启动t a b l e a d a p t e r 配置向导,允许给强类型d a t a s e t 添加t a b l e a d a p t e r 。 1 3 车辆监控系统w e b 网站的体系结构设计 硕士论文 强类型d a t a s e t 起了强类型对象的集合的作用,它由强类型d a t a t a b l e 实例组成,每 个强类型d a t a t a b l e 又是由强类型的d a t a r o w 实例组成。强类型的d a t a t a b l e 不包含 如何访问对应底层的数据表的任何信息。要想获取用来填充d a t a t a b l e 的数据,需要 使用t a b l e a d a p t e r 类,它提供了访问数据层的功能,t a b l e a d a p w r 类包含所定义的数 据访问的方法【4 9 】。具体方法的定义,用s q l 来实现,有几个选择,可以直接用s q l 语言,也可以建立一个新的存储过程,或者使用现存的存储过程。 下面就以车辆监控系统中的对v e h i c l e i n f o 数据表的操作为例。v e h i c l e l n f o 数据 表包含了车辆的一些主要信息,如m o b i l e s i m ( 手机号或者g p s 设备号) 、v e h i c l e t y p e ( 车辆类型) 、v e h i d e n a m e ( 车辆编号) 、t u r b o n o ( 发动机号) 等。在d a l 文件夹 中为其创建一个强类型的d a t a s e t 文件,为之取名v e h i c m n f o x s d ,在此文件中,利 用系统所提供的t a b l e a d a p t e r 配置向导,按照提示的步骤向下进行,最终选择使用 s q l 语言作为t a b l e a d a p t e r 访问数据库的方法,并根据需要填入相关的数据查询逻 辑。 这些工作做完之后,还要给t a b l e a d a p t e r 添加方法。t a b l e a d a p t e r 方法的作用是 在应用程序和数据库之间加载和保存数据。有三种方法可供选择:填充d a t a t a b l e 、 返回d a t a t a b l e 、创建方法以将更新直接发送到数据库。 填充d a t a t a b l e 是创建n b l e a d a p t e r 用于填充数据表的默认方法。让其使用 d a t a t a b l e 的名称作为参数,并执行所输入的s q l 语句,将查询的结果填充这个 d a t a t a b l e 。另外,还可以更改默认名称。这称为f a l l 方法。 返回d a t a t a b l e 是创建一个方法,让其返回一个新的d a t a t a b l e 并用前面输入的 s q l 语句的执行结果进行填充。这就是g e t 方法。 创建方法以将更新直接发送到数据库,就是创建可进行调用的更改单行数据并直 接发送到数据库的i n s e r t 、u p d a t e 和d e l e t e 方法。但是当原始s q l 语句未提供足够 的信息或者d a t a t a b l e 中的数据来自于不同的数据表时,这个方法不能用。在实际设 计的过程中,没有选择这种方法,所采取的手段是在业务逻辑层中创建相应的方法实 现i n s e r t u p d a t e 和d e l e t e 功能。 至此一个数据访问逻辑就己完成,当然还可以在同一个数据表中添加多个方法。 刚才建立的方法是不含参数的,根据页面所要展示数据的需要,可以创建带有参数的 方法,并可添加更新( u p d d a t e ) 、插入( i n s e r t ) 、删除( d e l e t e ) 逻辑。最后完成的 数据查询的表现形式如图2 4 1 1 所示: 1 4 南京理工大学硕士学位论文 车辆监控系统中k b 子系统的研究 圈2 4 1 1 数据集与数据集适配器 图中,表名即为d a t a t a b l e 的名称,可以自己定义,而表的字段可以来自于同一 个数据表,也可以是来自不同的数据表,要根据不同的需要来进行设置,这会在以后 的章节中给予说明。 数据表适配器中包含着要使用的各种方法。主f i l l 查询,用于定义t a b l e a d a p t e r 的数据表的结构,其他的对于该表的查询都将基于该结构,它们需要返回符合该结构 的数据。此外,根据主f d l 查询的结构,t a b l e a d a p t e r 可以包含i n s e r t 、u p d a t e 和d e l e t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论