(通信与信息系统专业论文)基于django+web框架的车载管理系统的设计与应用.pdf_第1页
(通信与信息系统专业论文)基于django+web框架的车载管理系统的设计与应用.pdf_第2页
(通信与信息系统专业论文)基于django+web框架的车载管理系统的设计与应用.pdf_第3页
(通信与信息系统专业论文)基于django+web框架的车载管理系统的设计与应用.pdf_第4页
(通信与信息系统专业论文)基于django+web框架的车载管理系统的设计与应用.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(通信与信息系统专业论文)基于django+web框架的车载管理系统的设计与应用.pdf.pdf 免费下载

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

文档简介

浙江工业大学硕士学位论文 基于d j a n g ow e b 框架的车载管理系统的设计与应用 摘要 当今世界科学技术日新月异,人们的生活质量迅速提升。无数高速公路及高架桥的出 现为人们的交通带来了极大的方便,随之而来的是成千上万机动车的出现。机动车在加速 人类生活节奏的同时也产生了很多棘手的问题,交通事故、车辆盗窃等问题层出不穷。在 这种背景下,车辆管理系统的研究渐渐演变成当下的一个热门话题。车辆管理系统能够对 车辆进行有效地管理并迅速处理和预防诸多问题。随着i n t e m e t 的普及和g p s 技术的成熟, 对于车辆的管理方式趋于网络化。通过w e b 应用结合w e b g i s 、g p s 等技术来管理车辆已 经成为一种潮流。 本论文利用d j a n g ow r e b 框架开发w e b 应用,结合m a p b a ra p i 提供的w e b g i s 技术和 u i 库e x t j s 做了如下几方面工作: ( 1 ) 系统需求分析。根据实际需求,探索系统所需要实现的功能和效果,包括g p s 监 控、视频监控、录像计划以及区域规则设置等,并分析实现设计目标所需要的相关技术。 ( 2 ) 系统框架设计。根据程序员的编程能力,选择适合的开发框架,这里选择了d j a n g o w e b 框架,在此框架基础上根据需要分析确定系统的整体架构。 ( 3 ) 核心功能的设计和实现。本论文主要实现了录像计划功能和车辆历史轨迹回放功 能,包括页面风格和组件的设计、数据流的处理以及功能的核心算法。 通过以上工作设计实现了一个车载设备管理系统,用户可以通过该管理系统进行车辆 g p s 监控、视频监控、录像计划指定、报表查询、用户注册、设备注册和权限更改等操作。 关键词:w e b 应用,d j a n g o ,m a p b a r ,e x t j s ,车载管理系统,框架设计 d e s i g na n da p p l i c a t i o no fv e h i c l e m a n a g e m e n ts y s t e mb a s e do nt h e d j a n g o w e bf r a m e w o r k a b s t r a c t s c i e n c ea n dt e c h n o l o g ya r ed e v e l o p i n gr a p i d l yi nt h ew o r l dt o d a y ,p e o p l e sq u a l i t yo fl i f e a r e i n c r e a s i n gr a p i d l y t h ee m e r g e n c eo ft h en u m e r o u sh i g h w a ya n dv i a d u c tb r o u g h tg r e a t c o n v e n i e n c ef o rp e o p l e st r a f f i c ,a n df o l l o w e di ti st h ee m e r g e n c eo ft e n so ft h o u s a n d so fm o t o r v e h i c l e s m o t o rv e h i c l e sc r e a t e dm a n yt o u g hp r o b l e m sw h i l ea c c e l e r a t i n gi nt h er h y t h mo f h u m a nl i f e ,t h et r a f f i ca c c i d e n t s ,t h ev e h i c l et h e f tp r o b l e m sa n do t h e ri s s u e sa r ee m e r g i n gi n e n d l e s s l y ,e r e u n d e rs u c hab a c k g r o u n d ,t h ev e h i c l em a n a g e m e n ts y s t e mg r a d u a l l ye v o l v e di n t o ah o tt o p i co ft h em o m e n t t h ev e h i c l em a n a g e m e n ts y s t e mo fv e h i c l ec a ne f f e c t i v e l ya n d q u i c k l yt r e a t m e n ta n dp r e v e n t i o nm a n a g e m e n tp r o b l e m s w i t ht h ep o p u l a r i z a t i o no fi n t e m e ta n d t h em a t u r i t yo fg p st e c h n o l o g i e s ,t h ev e h i c l em a n a g e m e n ti sa l s om o r ea n dm o r en e t w o r k e d t h r o u g ht h ew e ba p p l i c a t i o nw i t hw e b g i s ,g p sa n do t h e rt e c h n i q u e st om a n a g et h ev e h i c l eh a s b e c o m eat r e n d t h i sp a p e ru s e dt h ed j a n g ow e bf r a m e w o r kt od e v e l o pt h ew e b a p p l i c a t i o n , c o m b i n i n g m a p b a ra p lw i t hw e b g i st e c h n o l o g ya n du id a t a b a s ee x t j st oc o m p l e t es e v e r a lj o b sa l sf o l l o w : ( 1 ) s y s t e mr e q u i r e m e n t sa n a l y s i s a c c o r d i n gt ot h ea c t u a ld e m a n d s ,e x p l o r es y s t e mn e e d s t or e a l i z et h ef u n c t i o na n de f f e c t ,i n c l u d i n gt h eg p sm o n i t o r i n g ,v i d e os u r v e i l l a n c e ,v i d e o p r o g r a ma n dr e g i o n a lr u l e ss e t a n a l y s i st h e r e l a t e dt e c h n o l o g i e sr e q u i r e dt od e s i g na n d r e a l i z a t i o ng o a l ( 2 ) t h ed e s i g no fs y s t e mf r a m e a c c o r d i n gt ot h ep r o g r a m m e rp r o g r a m m i n ga b i l i t y ,c h o o s e t h es u i t a b l ed e v e l o p m e n tf r a m e w o r k ,t h i sp a p e rc h o s ed j a n g ow e b f r a m e w o r k ,a n a l y s i s e da n d i d e n t i f i e ds y s t e ma r c h i t e c t u r eo nt h ef o u n d a t i o no f t h ef i a m ea c c o r d i n gt on e e d s ( 3 ) d e s i g na n di m p l e m e n tt h ec o r ef u n c t i o n s t h i sp a p e rm a i n l yi m p l e m e n t e dt h ev i d e o p r o g r a mf u n c t i o na n dv e h i c l eh i s t o r i c a lt r a c kp l a y b a c kf u n c t i o n , i n c l u d i n gt h ed e s i g n i n go fp a g e s t y l ea n dc o m p o n e n t ,d a t ap r o c e s s i n ga n dt h ec o r ea l g o r i t h m a c c o r d i n gt o t h e s ej o b s ,t h i s p a p e rd e s i g n e d a n d i m p l e m e n t e d am o b i l e - d e v i c e s m a n a g e m e n ts y s t e m u s e r sc a na d o p tt h em a n a g e m e n ts y s t e mf o rt h ev e h i c l eg p sm o n i t o r i n g , 浙江工业大学硕士学位论文 v i d e os u r v e i l l a n c e ,v i d e op r o g r a md e s i g n a t i o n , r e p o r tq u e r y ,u s e rr e g i s t r a t i o n , d e v i c er e g i s t r a t i o n a n da c c e s st oc h a n g et h eo p e r a t i o no f e q u i p m e n t t h em a i nw o r ka n dr e s u l t sa r ea sf o l l o w s : k e yw o r d s :w e ba p p l i c a t i o n , d j a n g o ,m a p b a r , e x t j s ,v e h i c l em a n a g e m e n ts y s t e m , 浙江工业大学硕士学位论文 一一_ 第1 章绪论 1 1 课题研究的背景 近年来,随着科技的日益先进,互联网的普及以及与计算机相关技术的蓬勃发展。汽 车,网络和地图,这些在正常情况下都是相对独立的个体正随着时间的迁移而融合在了一 起。 汽车是当今社会不可或缺的交通工具,比如出租车、公共汽车,是大多城市居民上班 时选择的交通工具。据统计,一线城市包括北京、上海、深圳都配置了2 0 0 0 辆左右的公 交车。出租车更是随处可见,北京有近6 5 0 0 0 辆出租车,杭州也有1 0 0 0 0 辆以上的出租车。 再加上其他非公益性车辆,包括私家车,物流车辆等,我国汽车总量在2 0 1 0 年已经达到 了1 9 5 亿辆。机动车的出现给人类社会的进步发展添加了一股强大的动力,然而,随着机 动车的普及,相关的棘手问题也开始出现,比如车辆的失窃,迷路等问题,如何能够科学、 有效、安全地管理机动车辆,成为了亟需解决的一个重大课题。 g p s ( g l o b a lp o s i t i o n i n gs y s t e m ,全球定位系统) 是2 0 世纪7 0 年代由美国陆海空三 军联合研制的新一代空间卫星导航定位系统。其主要目的是为军队在陆、海、空三大领域 提供实时而全方位的导航服务,主要用于军事目的行动比如检测核爆行为,经过2 0 余年 的实验研究,耗费资金达3 0 0 亿美元,到1 9 9 4 年3 月,g p s 卫星系统已基本布置完成, 其覆盖率可高达9 8 。一台g p s 接收机只要能接收到三颗或者三颗以上的g p s 卫星,就 能准确的定位出该g p s 接收机载体的经纬度,方向等信息【l 】。 g i 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 ) ,经过了4 0 年的成长,如今已 经成为一项成熟且热门的技术。特别是在最近这些年,由于g i s 卓越的地理信息空间分析 能力,其在路径优化和g p s 中发挥着越来越重要的作用。g i s 地理信息系统是以地理空间 数据库为基础,在日益强大的计算机软件和硬件支持下,运用信息科学和系统工程领域的 相关理论,科学管理和系统分析具有空间意义的地理数据,用来提供决策、管理所需信息 的技术体系。简而言之,g i s 就是综合处理和分析地理空间数据的- - i - j 技术系统【2 】。 随着i n t e m e t 的迅速普及,一种g i s 和w e b 相结合的技术即w e b g i s ,迅速发展起来 并被大范围应用1 1 。w e b g i s 给更多用户提供了使用g i s 的机会【3 1 。现在流行的w e b g i s 平 台有a r c i m s 、m a p g i si m s 、s u p e rm a pi s 、t o p m a pw o r l d 和m a p x t r e m e 等国内外的成熟 1 浙江工业大学硕士学位论文 产品。w e b g i s 可以使用通用浏览器进行浏览、查询,也可通过浏览器上的插件( p l u g i n ) 、 a c t i v e x 控件和j a v aa p p l e t 来进行w e b g i s 功能的访问,浏览器和这些插件都是免费且易 获取的,很大程度上扩大了g i s 的潜在用户范围。而以往的g i s 由于成本高和技术难度大, 往往成为少数专家拥有的专业工具,很难推广【4 】【5 】o g p s 车载管理系统正是基于以上技术的迅速发展而出现的,它的出现将使车辆管理更 加科学化、有序化、安全化。 1 2 课题的研究意义 随着网络技术和i n t e m e t 技术的迅速发展,互联网已经日益成为应用程序开发的主流 平台1 6 j 。基于b s 架构的w e b 应用,因其具有易用性、通用性和良好的可扩展性等优点而 迅速发展,逐渐成为各类应用信息系统市场的主流。 传统的w e b 开发要求开发者万事从零开始,包括分析系统的整个w e b 应用的功能模 块,考虑每个模块的构建细节,一步步开始编写功能代码等,其工作量非常巨大且枯燥繁 琐,而聪明的开发员则开始考虑每一个w e b 应用的共性,将这些共性事先组合起来,并编 写好代码。当程序员需要开发一个w e b 应用时只需要加入其w e b 应用特有的功能代码即 可完成开发任务。这些事先写好的共性代码就是w e b 框架,有了w e b 框架,程序员不需 要重新搭建系统架构,只需按照功能要求往框架里填东西就行了,避免了重复造轮子。 自从基于m v c ( m o d e l - v i e w - c o n t r o l l e r ) 分层结构的w e b 设计理念普及以来,选择适 合的开发框架无疑成了项目成功与否的关键性因素。无论是s t r u t s 、s p r i n g 或是其他w e b 框架的出现,目的都是帮助开发者把所有的编码工作打理地井井有条、赏心悦目。在动态 语言领域,p y t h o n 、r u b y 、g r o o v y 等语言在w 曲开发中也逐渐发展壮大,掀起一浪接一 浪的开发热潮。面对r u b yo nr a i l s 渐渐深入人心的宣传攻势和火热势头,更为成熟且不乏 优秀程序员的p y t h o n 社区也纷纷推出欲与之抗衡的w r e b 开发框架。 d j a n g o 是应用于w r e b 开发的高级动态语言框架,最初起源于美国芝加哥的p y t h o n 用 户组,具有新闻从业背景的a d r i a nh o l o v a t y 是d j a n g o 框架的主要开发者。在a d r i a n 的带 领下,d j a n g o 小组致力于为w r e b 开发者贡献一款高效完美的p y t h o n 开发框架,并且在b s d 开放源代码协议许可下授权给开发者自由使用。 对p y t h o n 旗下的开发框架经过一番优劣比较分析之后,本设计选择了d j a n g o 作为w r e b 开发框架的研究对象,究其缘由,就是看中了p y t h o n 新颖简明的开发模式和巨大的上升潜 力【l 】o 浙江工业大学硕士学位论文 1 3 d j a n g ow 曲框架的研究现状 d j a n g o 是在真实应用中成长起来的,它由堪萨斯( k a n s a s ) 州l a w r e n c e 城中的一个 网络开发小组编写。d j a n g o 诞生于2 1 世纪初,那个时候l a w r e n c ej o u r n a l w o r l d 报纸的程 序员a d r i a nh o l o v a t y 和s i m o nw i l l i s o n 开始用p y t h o n 来编写程序,当时他们都是w r o r l d o n l i n e 小组的成员,而这个小组的工作是负责当地的几个新闻网站的制作和维护。他们就 在新闻界这样一个快节奏的环境中成长着。当时的一些本地站点( 比如l j w o r l d c o m 、 l a w r e n c e c o m 和k u s p o r t s t o m 等) 的记者( 或管理层) 要求他们的需求如增加某些站点的 特征或者修改整个站点,都按照计划时间有效地完成,这些计划时间往往只有几天甚至几 个小时。在这种情况下,a d r i a n 和s i m o n 开始探索并开发出一种省时高效的网络程序开发 框架,这是在计划时间内前完成任务的唯一途径。2 0 0 5 年的夏季,当这个框架开发完成时, 它已经被用来完成了很多个网站站点。当时w r o r l do n l i n e 小组中的j a c o bk a p l a n - m o s s 决 定把这个框架发布为一个开源软件。他们在2 0 0 5 年7 月发布,并以著名的爵士乐吉他演 奏家d j a n g or e i n h a r d t 的名字作为来源,将其命名为d j a n g o 。虽然d j a n g o 已经是一个开源 项目,全世界的开发者都在参与其开发,但w o r l do n l i n e 小组仍然提供主要的指导来促进 这个框架的成长。 d j a n g o 的成长背景造就了其性能的优越性。首先,因为d j a n g o 是在上述这么一个特 殊的环境中诞生,其开发极具应用针对性,具备了很多功能,特别适合于内容发布型网站, 例如e b a y ,c r a i g s l i s t o r g 和w a s h i n g t o n p o s t t o m 这些基于数据库的动态网站。其次,d j a n g o 的起源决定了其最后的开源性,与通常情况不同的是,其代码是在真实环境中积累起来的, 而不是来自于一个科研项目或者简单的商业产品。d j a n g o 说解决的问题往往具有共性,是 很多程序员都会遇到的问题。因此,d j a n g o 每天都在原有基础上更上一层楼。框架的开发 者一直致力于为开发人员节省开发时间,设计出更加简单且容易维护的程序,同时又能保 证程序运行的效率。 正因为d j a n g o 框架的基础语言p y t h o n 的盛行以及其自身易学、开源等优势,d j a n g o 框架被更多的程序员所亲赖,成为w e b 开发的前锋。 1 4 论文的组织和安排 本论文要求完成基于d j a n g ow e b 框架的数据库与网页数据交互的研究及在g p s 车载 设备管理系统中的应用。完成的主要工作包括:相关技术的学习、客户端的搭建、客户端 相关功能的设计实现、数据库的搭建;实现了录像计划、密码修改、车辆历史轨迹回放、 浙江工业大学硕士学位论文 规则管理等功能。 本论文的主要内容包括: 第一章:绪论。介绍了g p s 车载设备管理系统相关关键技术的发展背景,分析了基于 w e b 框架进行开发的巨大意义以及d j a n g o 的优越性及其发展前景。 第二章:g p s 车载管理系统的设计与相关技术介绍。分析系统需求并确定设计方案和 相关技术,对相关技术进行介绍或者研究。 第三章:录像计划功能的设计和实现。首先将简单介绍系统的搭建,然后在管理系统 已经搭建完成的前提下,详细介绍录像计划功能,包括组建设计和数据流设计。 第四章:车辆历史轨迹回放功能的设计和实现。首先介绍轨迹参数输入组件的设计和 实现,再介绍w r e b g i s 的实现,包括地图的显示和常用类介绍,最后将介绍历史轨迹实现 的方法,包括明文经纬度转译成加密经纬度的方法和地图上画折线的方法。 第五章:测试。本章主要对系统的网页效果以及相关功能性能进行测试。 第六章:总结本论文的主要成果以及不足,最后将进行展望工作,包括后续工作需要 改进或添加的地方。 浙江工业大学硕士学位论文 第2 章g p s 车载管理系统方案与相关技术介绍 本章论文将分析系统的设计要求,研究g p s 车载管理系统的设计方案以及介绍实现方 案所需的各种相关技术,为系统的实际开发获得更多理论方面的支持。 2 1 系统的设计要求 g p s 车载设备管理系统是i n t e r n e t 、g p s 全球定位系统和g i s 相结合的产物,用户只 需通过已注册的用户名登录系统即可对其权限范围内的车辆进行监控和管理。这些用户可 能包括电脑水平不是很高的工地工作者,所以要求本管理系统操作方便、浅显易懂。具体 要求如下: 1 网络化 用户在任何一个有网络的地方就能用任何一台电脑通过网页浏览器登录本管理系统 获取目标车辆的g i s 信息,无需在电脑上安装任何软件。随着互联网的普及,切实做到随 地可用。 2 实用化 本管理系统针对的用户大多不是电脑相关专业的,这就要求本管理系统在人机交互上 做得更加简易实用,比如去掉花哨的特效,运用更多的操作提示等,一个不懂电脑的用户 只要在网页上用鼠标点击几下便能获取目标车辆的信息。本系统的所有操作都可由鼠标完 成,无需通过键盘输入指令代码。 3 经济化 为尽量做n 4 , 投入大输出,本系统在软硬件配置选择时需尽可能的按照经济性原则。 4 安全化 每一个与网络有关的产品都有被攻击的潜在危险,所以用户密码等信息都需加密后传 输。另外,一个单位的几个用户可能共用一个账号,如果允许同一个账号多处同时登录, 而各个用户对同一车辆设备的操作可能不一致,容易造成操作失败。所以为了保证安全以 及操作单一性,一个账号只能同一时间在一个地方登录,当有第二个用户使用此账号登录 时即把前面的用户挤下线。 5 效率化 浙江工业大学硕士学位论文 随着时间发展,本管理系统势必会有更多的用户,为了确保在高负荷情况下系统还能 得到良好的用户体验,这就要求本操作系统在处理业务时具有很高的效率,使软硬件资源 充分得到合理利用,减少传输的冗余,避免资源的浪费。 2 2 系统设计方案 2 2 1 c s 模式和b s 模式比较 1 c s 模式 c s 模式,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以 充分利用两端硬件环境的优势,将任务合理分配到c l i e n t 端和s e r v e r 端来实现,降低了系 统的通讯开销。目前大多数应用软件系统都是c l i e n t s e r v e r 形式的两层结构【7 1 。 2 b s 模式 b s 模式,即浏览器和服务器结构,是w e b 流行后出现的一种网络结构模式,客户端 最主要的应用软件便是w e b 浏览器。这种模式的最大特点就是它统一了客户端,而将系 统最核心的业务逻辑功能都交由服务器来承担,这种模式大大降低了系统开发难度,也更 加容易维护和使用。客户端只需要一个浏览器( b r o w s e r ) ,如n e t s c a p en a v i g a t o r 或i n t e m e t e x p l o r e r ,服务器则只需安装o r a c l e 、s y b a s e 、i n f o r m i x 或s q ls e r v e r 等数据库,浏览器通 过w e bs e r v e r 同数据库进行数据交互。 系统开发中c s 模式中c l i e n t 往往可以由b s 模式的b r o w s e r 及其载体承担,c s 模 式的w e b 应用与b s 结构具有紧密联系。大系统和复杂系统中,c s 模式和b s 模式的嵌 套也很普遍。当然两者有着相当大的区别,包括:硬件环境不同、安全需求不同、用户接 口不同和信息流不同等。两者各有优缺,具体如表2 1 所示【8 】: 表2 1c s 结构和b s 结构的优缺点比较 比较项目 c s 模式b s 模式 客户端资源利用率较高较低 网络带宽的占用率较低较高 系统运行速度较快较慢 信息传输速度较快较慢 学习系统的难度较大较小 发布信息的影响面较小较大 用户界面交互能力较强较弱 浙江工业大学硕士学位论文 b s 模式可以理解成是一种特殊的c s 模式,它是c s 模式的扩展形式,是对c s 模 式的一种变化或者改进9 1 。虽然从表2 1 中显示c s 结构似乎更具优点,但考虑到本项目 主要涉及的信息发布因素及经济角度因素,本论文选择了b s 模式作为本管理系统的开发 方式。 2 2 2w r e b 应用框架分析 软件开发框架的研究和选择一直是开发者着重考虑的因素1 0 】,这里介绍几个主流的框 架平台。 1 n e t 平台 m i c r o s o f t 在2 0 0 0 年6 月推出n e t 平台时提出了术语一“w e b 服务”。在那个时期, m i c r o s o f t 几乎垄断w e b 服务市场,甚至有人估计m i c r o s o f t 公司在w e b 服务技术发展方面 与其他公司相比领先了有一年之多1 1 】。 n e t 平台是一组软件组件,能够用来开发w i n d o w s 桌面应用程序和w e b 服务应用程 序。它提供了一个框架类库f c l ( f r a m e w o r kc l a s sl i b r a r y ) ,实现了安全机制,同时还为 程序员提供了各种编程功能。f c l 包含了一些可重用的软件组件,程序员可以将它们加入 到自己的应用程序中去,这样就不需要完全从头创建一个新的软件【1 2 】。 2 j 2 e e 平台 j 2 e e 是一个采用j a v a2 平台来使企业解决方案等问题简单化的体系结构1 3 】。典型的 商业化j 2 e e 系统平台包括一个或者多个容器【1 4 】。容器是一个标准化的环境,用以在一些 组件提供服务时运行使用,j a v a 虚拟机就是一个典型的例子。组件是一个可以调配的程 序单元,它以一定的方式运行在容器中,容器封装了j 2 e e 底层的a p i ,为组件提供各种各 样的业务逻辑功能和相关服务【1 6 】。在j 2 e e 中,组件之间是不能直接访问的,若需要相互 调用则必须使用容器已经封装好的协议和方法。容器和组件之间的关系是由“协议”来定 义的17 1 。j 2 e e 服务器作为容器的底层,为容器提供其中已经封装定义的各种a p i 和服务【1 l 】。 3 r u b yo n r a i l s 平台 通过r a i l s ,可以使m v c 模式中的三个层次无需进行技术上的分类整合便可使它们进 行无缝协同运转。r u b yo nr a i l s 拥有很多隐式的功能,它们能在m v c 模式中将敏捷的开 发实现融入w e b 开发中,使程序员在不知不觉中依赖上r a i l s 并遵守了它的这些约定。r a i l s 应用程序的项目结构都非常清晰,一目了然,如:a p p m o d e l s ,a p p v i e w s 和a p p c o n t r o l l e r s , 让程序员无需自己编写配置文件便可实现m v c 结构。当然为了能在应对复杂问题时体现 其灵活性,也支持某些扩展形式,同时r u b yo nr a i l s 提倡的d d d ( d o m a i nd r i v e n 7 浙江工业大学硕士学位论文 d e v e l o p m e n t ) 域驱动开发方式是一种最新的0 0 ( o b j e c to r i e n t e d ,面向对象) 设计概念【1 8 】, 深受业界的关注。 4 d j a n g o 平台 d j a n g o 拥有完善的模板机制、对象关系映射机制以及用于动态创建后台管理界面的功 能,利用d j a n g o 可以进行快速设计和开发具有m v c 层次的w e b 应用。为了打消开发者 选用d j a n g o 框架时的疑虑,首先分析一下d j a n g o 引人注目的特性。在实体映射方面,d j a n g o 的对象相关映射机制帮助开发者在p y t h o n 类中灵活定义数据模型,并且d j a n g o 具有功能 丰富的动态数据库访问a p i ,可以大幅度简化书写s q l 语句的繁杂工作【”】。同时d j a n g o 支持包括p o s t g r e s q l ,m y s q l ,s q l i t e ,o r a c l e 在内的多种后台数据库。d j a n g o 的u r l 分发 设计得十分简洁美观,不会在链接中产生一大串杂乱且难以理解的字符。使用d j a n g o 可扩 展的内置模板,可以将模型层、控制层与页面模板完全独立开来进行编码。d j a n g o 还具有 自己的c a c h e 系统,如果需要,也可以根据开发者的要求嵌套其他的c a c h e 框架。 相较于n e t ,j 2 e e 因为其在跨平台性、开放性上的表现更佳而占据了w e b 应用开发 的主流地位,很多程序开发人员也都会选择该平台作为开发框架,然而基于j 2 e e 的开发 框架也存在着诸多问题,比如开发难度大、结构冗余度高等,这些问题会严重影响程序员 的开发效率,开发人员往往难以轻松上手或者应付应用中的大量配置文件【1 8 】。在这种背景 情况下,m v c 模式的r u b yo nr a i l s 和d j a n g o 因其快捷简单清晰的特点而迅速成为w e b 应用开发中的焦点。 综上所述,采用m v c 模式的d j a n g o 和r u d yo nr a i l s 因其结构清晰更适合初级程序员 迅速投入实际开发应用,又因d j a n g o 已经在实际应用中初具市场规模,更容易得到技术支 持,所以本文选择了d j a n g o 作为本研究的系统框架。 2 2 3 管理系统框架设计和层次分析 本系统采用b s 典型的三层结构,表现层( p r e s e n t a t i o n ) 、业务逻辑层( b u s i n e s sl o g i c ) 、 数据层( d a t a ) 被分割成三个相对独立的单元,如图2 1 所示【l 】。 表现层:这一层是用户与本系统交互的窗口层,所有的业务逻辑请求都由用户通过这 一层传送给业务逻辑层,请求的反馈结果也均有业务逻辑层通过表现层显示给用户。这一 层主要运用j a v a s c r i p t 处理请求和简单的人机交互,利用u i 库e ) 【t j s 使页面变得美观, 提高用户体验度,利用a j a x 技术处理表现层与业务逻辑层的数据以及命令传输。 业务逻辑层:这一层包括了w e b 服务器和应用服务器【l 】。w e b 服务器负责接收来自表 现层的请求并进行处理,处理结果返回至表现层。应用服务器主要完成两个任务,一个任 r 浙江工业大学硕士学位论文 务是接收来自g p s 移动终端返回的g p s 信息并解析后保存至数据库,另一个任务是负责 g i s 查询和分析。 数据层:这一层负责所有数据逻辑的处理,主要位于数据库服务器,主要任务是接收 来自业务逻辑层的数据业务请求,完成对数据库的查询、修改和添加等功能,最后把处理 结果返回至业务逻辑层。 压磊磊鹬箧蒸i 塾倭灞蕊霉蝥 广西西吾恧爵菥菊j 正趸 功蛐g o 框架 垫里堡叁 至茎至鋈鋈i ! ! ! ! 至罗i 鋈薹薹;至! 茎! 銎鋈鋈蚕穸熏茎| | 鋈i i ! 鲨:_ ! 三7 图2 1系统总体设计框架【1 1 数 据 层 2 3 系统设计相关技术介绍 2 3 1 p y t h o n 语言特性分析 p y t h o n 是一种面向对象、直译式计算机程序设计语言,由g u i d ov a nr o s s u m 于1 9 8 9 年底发明,第一个公开发行版本发行于1 9 9 1 年口0 1 。p y t h o n 语法简捷而清晰,具有丰富和 强大的类库。p y t h o n 常被昵称为胶水语言,原因就在于它能够把用其他语言制作的各种模 块( 比如c c + + ) 轻松地联结在一起【2 1 1 。经常出现这样的情况:程序的原型用p y t h o n 快速 生成,而其中某些部分可能因为特殊需求更适合用其他的语言来写,比如3 d 游戏中的图 形渲染模块,因为其速度要求非常高,用c + + 写更适合,此时便可在p y t h o n 中加入c + + 模块口2 1 。 p y t h o n 是一种解释性语言【2 ”。计算机需要将高级语言翻译成机器语言才能执行程序。 翻译有两种方式,一种是编译,另外一种是解释阱1 。两种方式的区别在于翻译执行的时间 不一样。用编译型语言写的程序在执行之前必须有一个编译过程将程序编译成机器语言的 文件,比如e x e 文件,只需编译一次,可多次执行,以后如果要运行此程序的话只需要运 行该e x e 文件就可以了,不再需要编译过程。可见,编译型语言的程序具有相当高的执行 效率。和编译不同,解释性语言的程序在运行前不需要事先编译,而是在程序运行的时候 9 浙江工业大学硕士学位论文 才翻译,以解释性b a s i c 语言为例,翻译过程融入在每个语句的执行过程中【2 5 1 。这种边执 行边翻译的形式,显然效率比较低。虽然解释性语言效率相对较低,但是随着分布式概念 的提出,计算机的应用越来越趋向于多平台适用性甚至是跨平台化。而随着w e b 应用的普 及,解释性语言得到空前发展,因为解释性语言拥有自己的解释器,所以这种语言对于平 台的依赖性降低到最低程度,p y t h o n 就是在这种背景下发展起来的。 p y t h o n 具有伪代码本质,因其语法朴实易懂,一个不懂程序编辑的人也能看懂p y t h o n , 非常适合新手入门。其具体特点如下: ( 1 ) 简单、易学 p y t h o n 是一种代表简单主义思想的语言【2 6 1 。阅读一个良好的p y t h o n 程序就感觉像是 在读英语一样【2 7 1 。这使你将更多的注意力集中在了待解决的问题上而不是去理解程序语言 本身所在表达的语义。p y t h o n 的语法非常简单,所以很容易上手。 ( 2 ) 免费、开源 p y t h o n 是f l o s s ( 自由开放源码软件) 之一【2 8 1 。使用者可以在论坛上随意拷贝和修 改甚至扩展源代码,真正体现开放共享的概念,一种语言只有集众人之所长,不断扩展, 才能更具有生命力。 ( 3 ) 可移植性 由于p y t h o n 的开源特性,使其具有良好的可移植性,只需稍作改动便可工作在各种平 台上【2 9 1 。这些平台包括l i n u x 、w i n d o w s 、f r e e b s d 、m a c i n t o s h 、s o l a r i s 、o s 2 、a m i g a 、 a r o s ,a s 4 0 0 ,b e o s ,o s 3 9 0 ,z o s 、p a l mo s ,q n x ,v m s 、p s i o n ,a c o mr i s co s 、 v x w o r k s 、p l a y r s t a t i o n 、s h a r pz a u r u s 、w i n d o w sc e 、p o c k e t p c 、s y m b i a n 以及g o o g l e 基于 l i n u x 开发的a n d r o i d 平台。 ( 4 ) 高层语言 用p y t h o n 语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存之类的底 层细节1 2 1 1 。 ( 5 ) 面向对象 p y t h o n 可以面向对象编程( o p p ) ,o p p 的主要目标是在代码和现实问题之间提供一个 合乎逻辑的映射关系,并且鼓励代码的重用和共享。 ( 6 ) 丰富的库 p y t h o n 标准库非常庞大。它可以帮助处理各种工作,包括正则表达式、数据库、线程 等各种与系统有关的操作。除了标准库以外,还有许多其他高质量的库,如w x p y t h o n 、 t w i s t e d 和p y t h o n 图像库等等。 浙江工业大学硕士学位论文 ( 7 ) 可扩展性 如果需要一段关键代码运行得更快或者希望某些算法不公开,可以将部分程序用c 或 c + + 编写,然后在p y t h o n 程序中使用它们。 ( 8 ) 可嵌入性 可以把p y t h o n 嵌入c c + + 程序,从而向程序用户提供脚本功能。 ( 9 ) 规范的代码 p y t h o n 要求采用强制缩进使得代码格局工整,具有较好可读性。 p y t h o n 语言以其优越性而受到各个领域的青睐,包括数据库、w e b 开发、图形图像、 数学计算等。 2 3 2m v c 开发模式 m v c 模式是”m o d e l - v i e w - c o n t r o l l e r ”的缩写,中文的意思为“模型视图控制器”。m v c 应用程序由三个部分组成,具体如图2 2 所示。e v e n t ( 事件) 触发控制器去改变模型或视 图,或者同时改变两者。只要控制器改变了模型的数据或者属性,所有依赖的视图都会自 动更新,同样的,如果控制器改变了视图,视图也会利用模型来刷新自己【3 1 1 。 状态查询 i 通知改变 v 视图 解释模型 模型更新请求 发送用户输入给控制器 允许控制器选择视图 蒸态p 封装应用程序状态 状忑改焚 响应状态查询r 一_ _ 一 应用程序功能 通知视图改变j 视图选择 用户请求 图2 - 2m v c 模式 控制器 定义应用程序行为 用户动作成模型更新 选择响应的视图 一卜 事件 ( 1 ) 视图层 视图层代表与用户交互的界面,对于w e b 应用来说,可以理解为h t m l 界面,或者 是x h t m l 、x m l 和a p p l e t 形式的界面。随着具体应用的规模性和复杂性,对于界面的 l l 浙江工业大学硕士学位论文 处理要求程序员投入更大的精力。一个应用包含了很多不同的视图,在m v c 设计模式中, 对于视图的处理只包含了视图上数据的获取和解析处理,以及来自用户的请求,而不包括 在视图上的业务流程的处理【3 0 1 。业务流程的处理交予模型( m o d e l ) 处理。比如一个订单 的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控 制和模型。 ( 2 ) 模型层 模型层是业务流程状态的处理以及业务规则的制定。业务流程的处理过程是一个黑箱 操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是m v c 最主要的核心。目前流行的e j b 模型就是一个典型的应用例子,它从应用技术实现的角度 对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。 它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一 个开发者来说,就可以专注于业务模型的设计。m v c 设计模式告诉我们,把应用的模型 按一定的规则抽取出来,层次的划分很重要,这也是判断开发人员是否优秀的设计依据。 抽象与具体不能隔得太远,当然也不能太近。m v c 并没有提供模型的设计方法,而只告 诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做 比喻,m v c 定义了一个顶级类,告诉它的子类你只能做这些,但没限制你如何做到这些。 这对开发人员来说非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保 存( 持续化) 。l t - , 女n 将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型 单独列出,所有有关数据库的操作只限制在该模型中。 一 ( 3 ) 控制层 控制层可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请 求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模 型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例 如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传 递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应 多个视图,一个视图可能对应多个模型。 模型、视图与控制器的

温馨提示

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

评论

0/150

提交评论