(通信与信息系统专业论文)ip视频监控系统中业务运营支撑系统的设计与实现.pdf_第1页
(通信与信息系统专业论文)ip视频监控系统中业务运营支撑系统的设计与实现.pdf_第2页
(通信与信息系统专业论文)ip视频监控系统中业务运营支撑系统的设计与实现.pdf_第3页
(通信与信息系统专业论文)ip视频监控系统中业务运营支撑系统的设计与实现.pdf_第4页
(通信与信息系统专业论文)ip视频监控系统中业务运营支撑系统的设计与实现.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(通信与信息系统专业论文)ip视频监控系统中业务运营支撑系统的设计与实现.pdf.pdf 免费下载

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

文档简介

武汉邮电科学研究院硕士论文 摘要 l r il lr l l ll ll ll f l l l fl l li 嘲 y 19 9 6 8 3 5 宽带网是承载多种业务的网络平台,基于m 的视频监控系统可满足用户的多种需 求,是宽带网可视通信业务的重要组成部分。i p 视频监控业务是一种基于宽带网络为 用户提供图像和各种报警信号远程采集、传输、储存、处理的一种全新电信业务。由 于市场潜力巨大,目前国内各大运营商已经开始建设i p 视频监控平台。d 视频监控 业务运营支撑系统( 简称b o s s ) 是视频监控业务的管理平台,对整个业务流程进行 控制管理。业务运营支撑系统提供客户最直接的交互界面,设计得是否友好和易操作 性对于视频监控业务的推广显得尤为重要。 论文首先介绍了b o s s 系统具体实现所用到的相关技术,如s p r i n g 框架、e j b 3 0 框架和v e l o c i t y 技术等。接着介绍了如何运用这些技术来搭建和实现整个工程。最后 根据p 视频监控的业务特点划分功能模块,并对系统的设计流程进行了分析介绍,流 程的设计也是整个系统实现的重点和难点。 论文的主要创新点:其它的管理系统一般都是单独采用s p r i n g 或e j b 3 0 实现, s p r i n g + h i b e r n a t e 是用的比较多的模式。本系统采用了s 皿n gm v c 模型,综合t s p r i n g 和e j b 3 0 各自的优点,用s p r i n 9 2 0 实现了视图层和控制层,用e j b 3 0 实现模型层完成 持久化操作,这样减小了系统的耦合性,简化了开发的流程,使开发者能够花更多精 力在业务流程的设计上。事实上采用这种模式加快了开发进度,以后扩充功能也更加 方便。 关键词:m 视频监控;业务运营支撑系统;框架;业务流程 武汉邮电科学研究院硕士论文 a b s t r a c t b r o a d b a n dn e t w o r ki san e t w o r kp l a t f o r mw h i c hc a r d e sk i n d so fb u s i n e s s t h ev i d e o s u r v e i l l a n c es y s t e mb a s e do ni pn e t w o r kc a l lm e e tv a r i o u sr e q u i r e m e n t sf o rc u s t o m e r s ,a n d i ti sa ni m p o r t a n tp a r to fv i s u a lc o m m u n i c a t i o nb u s i n e s so fb r o a d b a n dn e t w o r k i pv i d e o s u r v e i l l a n c ei san e wb r o a d b a n d - b a s e dt e l e c o m m u n i c a t i o nb u s i n e s s ,w h i c hc a i lp r o v i d e c u s t o m e r sc r e d i b l ei n f o r m a t i o ns e r v i c e so fr e m o t ec o l l e c t i o n , t r a n s m i s s i o n , s t o r a g ea n d p r o c e s s i n gf o rv a r i o u sp i c t u r e sa n da l a r ms i g n a l s d u et ot h et r e m e n d o u sm a r k e tp o t e n t i a l , n o wn e t w o r ko p e r a t o r sh a v eb e g u nt ob u i l di pv i d e os u r v e i l l a n c ep l a t f o r m t h eb u s i n e s s o p e r a t i o na n ds u p p o r ts y s t e m ( b o s s ) i st h em a n a g e m e n tp l a t f o r mo fi p v i d e os u r v e i l l a n c e s y s t e m ,w h i c hm a n a g e st h ee n t i r eb u s i n e s sf l o w s b o s sp r o v i d e st h ec u s t o m e r sw i t ht h e d i r e c ti n t e r a c t i v ei n t e r f a c e ,a n dar e a s o n a b l ed e s i g no fb o s sp l a y sa ni m p o r t a n tr o l ei n p o p u l a r i z i n gv i d e os u r v e i l l a n c es y s t e m 一 t h ed i s s e r t a t i o nf i r s tp r e s e n t st h et e c h n o l o g i e sw h i c ha r ei m p l e m e n t e dt or e a l i z e b o s s ,s u c ha st h ef r a m e w o r ko fs p r i n ga n de j b 3 0a sw e l la st h et e c h n o l o g yo fv e l o c i t y t h e nt h et h e s i si n t r o d u c e sh o wt ob u i l da n dr e a l i z et h ep r o j e c tw i n lt h et e c h n o l o g i e s f i n a l l yt h ed e s i g nf l o wo fb o s s i sp r e s e n t e di nd e t a i l t h em a i ni n n o v a t i o no ft h et h e s i si n c l u d e :s o m em a n a g e m e n ts y s t e m sc h o o s es p r i n g o re j b 3 0s e p a r a t e l y ,a n dt h ep a t t e mo fs p r i r 培+ h i b e m a t ei su s e dm o s tc o m m o n l y t h i s s y s t e ma d o p t st h em o d e lo fs p r i n gm v cc o m b i n i n gw i t ht h ea d v a n t a g e so fs p r i n ga n d e j b 3 0 s p r i n 9 2 0i sc h o s e nt or e a l i z et h ev i e wl a y e ra n dc o n t r o l l e rl a y e ra n de j b 3 0i s c h o s e nt or e a l i z et h em o d e ll a y e r i nt h i sw a y ,e a r lw er e d u c et h ec o u p l i n go ft h es y s t e m a n ds i m p l i f yt h ed e v e l o p m e n tp r o c e s s ,s od e v e l o p e r sc a ns p e n dm o r ee n e r g yi nt h ed e s i g n o fb u s i n e s sf l o w i nf a c t ,b yu s i n gt h ep a t t e mi tc a nm a k et h ed e v e l o p i n gp r o c e s sq u i c k l y , o t h e r w i s ei t sm o r ec o n v e n i e n tt oa p p e n df u n c t i o n si nf u t u r e k e yw o r d s :i pv i d e os u r v e i l l a n c e = b o s s ( b u s i n e s so p e r a t i o na n ds u p p o r ts y s t e m ) = 武汉邮电科学研究院硕士论文 1 1 引言 第1 章绪论 随着技术的不断发展,基于宽带技术的网络图像应用在网络视频监控中逐步得到 推广使用,使得电子监控已不仅仅局限于安全防范,而是已成为一种对各行各业都较 为行之有效的监督手段和管理资源,其应用领域和应用的灵活性也已经远远超出传统 的安防监控所定义的范畴。互联网应用的蓬勃兴起,图像压缩编码与流媒体技术的 逐步演进,系统处理能力的大幅度提升,都使得数字信息技术作为一项领先的技术手 段,在促进网络图像应用,降低产品成本,提高灵活性、可扩充性等方面提供了强大 的技术驱动力。受益于这些技术突破,网络图像业务的应用面得以大大扩展,正逐渐 进入许多对网络图像业务有着极大需求的新兴行业市场。如国内多个省市已经琶现的 高考电子考场、医疗监护、寄宿制学校、连锁百货等【l 】。 i p 视频监控是一种基于宽带网络为用户提供图像和各种报警信号远程采集、传 输、储存、处理的一种全新电信业务。这是一个由前端、中间端、后端三部分组成的 网络视频监控系统。前端由镜头、摄像机、云台、报警开关、视频编解码设备、主机 控制设备和监控软件组成;中间端即是电信公司提供的中心服务平台,中心服务平台 具有业务平台的管理功能,并对传送过来的图像进行转发、分发或存储,对报警进行 联动处理;在后端用户可在网络的任何一个接入点,无论是监控现场、监控中心或者 是远端,只要通过i e 浏览器或客户端软件,在通过用户认证后可任意观看视频,可 控制摄像机的角度、拉近拉远镜头、控制远端设备,并可接收报警信息。通过这一业 务,用户只需轻点鼠标,通过宽带网络,可以从显示器中看到的不仅是清晰、逼真、 实时监控图像,更像是一个由网络视频监控系统勾画出的、蕴含着巨大商机与经济效 益的信息化蓝图。 i p 视频监控业务有数字化、网络化、智能化等诸多优点【2 1 。根据权威专家和客户 分析,目前国内运营级网络视频监控系统的市场规模已超过2 0 亿元人民币,并且呈 逐年上升趋势,预计2 0 1 1 年国内市场规模将达到1 0 0 亿元人民币。 包括中国电信、中国网通在内的全球固定网络运营商正在努力摆脱固定语音业务 武汉邮电科学研究院硕士论文 下降所带来的业务收入下滑,纷纷提出转型的目标和策略,都将视频监控作为重要的 业务开展。由于市场潜力巨大,目前国内各大运营商已经开始建设网络视频监控平台, 如电信的全球眼项目,网通的宽视界项目等。另外,公安、交通、煤矿、银行等行业 用户对于网络视频监控一直有较大的需求。 网络运营商要想更好的推广口视频监控业务必须要有相应的业务运营支撑系统 ( b u s i n e s so p e r a t i 0 1 1a n ds u p p o r ts y s t e m ,简称b o s s ) 支持。i p 视频监控运营支撑系 统的开发可以为运营商指定灵活多变的资费,打造富有竞争力的产品,为客户提供全 面周到的服务。为方便起见,以后论文中用b o s s 系统表示p 视频监控运营支撑系 统。 1 2i p 视频监控平台介绍 龋嘛 人澎毒 i _ 一史曾照子鱼: ii 图1 1i p 视频监控平台结构图 视频监控系统的单域总体框架如图1 1 所示,主要包括前端单元( p u ) 、客户端单 2 武汉邮电科学研究院硕士论文 元( c u ) 以及中心服务平台,中心服务平台包括中心管理服务器( c m s ) 、视频转分 发单元( v t d u ) 、网络录像单元( n r u ) 和a a a 服务器。各部分均接入i p 承载网实 现通信【3 j 。 p u 是系统的信息采集端,实现视频信息、音频信息、数据信息及告警信息的采 集功能,具有语音信息和数据信息的双向传送功能。部分p u 可实现音视频录像的存 储功能。p u 系统常包括如下设备:前端设备( 视频服务器或d v r 等) 、摄像机、云台 设备、报警输入输出设备等。 c u 是系统的客户应用端,实现视频信息、音频信息、数据信息及告警信息对用 户的呈现。根据客户端类型的不同,部分c u 还具备对系统的设备管理、用户管理等 功能。 中心服务平台由c m s 、v t d u 、n r u 、n r m 、a a a 几部分组成,整合各种视频 监控所需能力,实现对用户的网络视频监控提供服务。c m s 是系统的中心管理服务 器,实现作为应用服务器提供全球眼视频监控业务;作为管理中心提供客户用户管 理、前端平台设备管理和虚拟域管理;作为存储中心存储用户数据和业务参数配置 数据;作为p o r t a l 提供内容发布等功能。 v t d u 是系统的媒体转发分发单元,实现对音频视频接收、转发、分发及计费 数据采集等功能,并可选择实现组播功能。可多级级联、分布式部署。v t d u 仅接受 本域c m s 的管辖。 n r u 是系统中的网络录像存储单元,实现对音频视频的接收存储、录像存储管 理、存储介质管理及录像回放服务等功能。n r u 必须可连接s a n 、n a s 、d a s 等各 类物理存储设备。n r u 可实现分布式部署。n r u 接受本域c m s 中n r m 模块的管 理。n r m 是网络录像管理单元,是从n r u 分离出来的专门用于管理录像的单元。 a a a 服务器为用户认证授权记费服务器。 如图1 2 所示为口视频监控功能结构图。除了上面介绍的各个模块,这里多了 个管理平台,它由b o s s 系统和网管系统组成,通过与平台的c m s 交互完成对整 个平台系统业务的控制和管理。 3 武汉邮电科学研究院硕士论文 管 理 b o s s 平 系统 台 f 亚驴 叫据库 、毛旧一 厂1 磊丽历泵; 医 图1 2i p 视频监控功能结构图 1 3 课题研究的目的和意义 根据新形势下各行业的新需求,作者所在的烽火网络公司推出t s m a r t e y ei p 网络 视频解决方案,方案全面实现i p 化,并具有强大的电信级管理平台、多种软件版本的 人性化设计以及灵活的存储策略,用户只需要利用现有的i p 网络即可将监控点接入到 平台,实现系统简单、快速的部署。用户通过轻点鼠标实现在任何时间、任何地点对 任何监控点的管理和控制。 s m a r t e y ei p 视频监控由前端( p u ) ,分发服务器( v t d u ) ,中心服务器( c m s ) , 中心存储服务器( n 】w ) ,播放客户端( c u ) ,w e b 运营支撑系统以及网管系统组成。 该系统可实现实时监控,监控录像存储,监控智能告警等功能。当需要浏览某路监控 视频时,客户端可以向c m s 发起呼叫,c m s 经过v t d u 和前端p u ,而后建立客户端与p u 的视频连接。最后,视频流到达客户端,经解码播放出画面。当需要浏览回放监控视 频录像时,客户端输入某个监控点要播放的时间段或者播放录像文件,回放服务器查 4 武汉邮电科学研究院硕士论文 找到该文件并把录像视频流发送到客户端,经客户端解码播出。该系统已顺利通过中 国电信全球眼v 2 0 和v 2 5 产品测试,目前已运用于全国多个领域,包括公安、油田、 教育等,市场前景广阔。 伊繇统臼一统 a 7 7 i 芋i v t d u 咚幺、 a 一1 苫j j 蝌 图1 3i p 视频监控系统分层图 如图1 3 所示, s m a r t e y ei p 视频监控系统平台按照业务功能划分为四层:接入 层、媒体传输层、业务控制层和业务运营层。 接入层包括前端媒体流的采集、压缩、上传;报警的采集与输出,以及客户端媒 体流的接收、解码、显示;支持多种客户接入方式。将各种p u 及c u 终端设备通过 宽带接入网络接入到系统平台。设备需要根据用户的需求支持多种网络接入方式,包 5 业务控制层一 撇 一 坌 吣 一 9 一 武汉邮电科学研究院硕士论文 括i p 专线接入( i po v e rs d h 、i po v e ra t m f r ) 、p 拨号接入( x d s l ) 及l a n 接入。 媒体传输层由v t d u 、n r u 以及其他相关的配套设备组成,在业务控制层的控 制和管理下完成媒体流的传送和存储。主要包括:向接入层的p u 请求媒体流,接受 客户c u 的媒体流传输请求,并与接入层协同建立传输通道;存储媒体流录像数据, 供客户查询、点播、下载;在线播放录像,并进行快进、快退、暂停等播放控制;实 时中转、分发前端的媒体流,节省前端接入带宽,提升系统的并发能力;支持分布式 部署,降低中心存储和分发的带宽和空间压力。 业务控制层同时与用户接入层及媒体传输层设备交互,完成业务调度、系统级联 等功能。主要包括:客户端、前端的接入控制,根据用户鉴权的结果限制用户的操作 权限;统一调度客户端的操作请求和前端的告警联动事件,是所有业务流程的控制中 心;隔离客户对前端的直接控制,转发客户的前端操作命令,调度告警事件,查找录 像;维护实时浏览的会话路由,控制会话链路的建立。 业务运营层完成对视频监控系统的统一控制、资源统一调度和管理。即完成设备 的入网、配置和管理,并进行前端的接入认证、调度和管理;完成客户接入认证、计 费、鉴权,以及营业、帐务、客户服务等运营支撑功能。 从整个系统的分层结构图看出,b o s s 系统属于系统的最上层,即业务运营层。 除一些设备信息由网管系统管理外,其它业务操作都由b o s s 系统管理。面对系统的 复杂多样性和不断扩充的业务需求,为了确保并逐步提升服务的质量,迫切要求建立 一个稳定、安全和可靠的业务运营支撑系统。 p 视频监控作为运营商的一种增值业务,其运营支撑系统设计得是否友好和易 操作性对其业务的推广就显得尤为重要,操作员和客户都希望在尽短的时间内顺利的 完成业务的办理。本系统经过长时间的精心设计,力争做到操作简捷、流程清晰。借 助b o s s 系统,可以定制灵活多变的资费,打造富有竞争力的产品,为客户提供全面 周到的服务。 1 4 论文的工作和内容安排 本文研究的内容主要有以下几个方面,第一是运营支撑系统具体实现的框架设 6 武汉邮电科学研究院硕士论文 计,包括框架的选择和设计模式;第二是业务流程的设计及具体实现。 本文各章的内容安排如下: 第一章介绍了视频监控系统概况和结构以及其运营支撑系统在整个系统中的作 用。 第二章介绍了b o s s 系统的设计模式,重点介绍了s p r i n g 框架和e j b 3 模型。 第三章介绍了如何运用框架搭建工程。 第四章本章讲述了整个系统的设计流程,重点介绍了和开通业务相关模块的设 计流程和工作。 第五章总结了本文所作的工作和研究成果,以及对系统工作进行展望。 7 武汉邮电科学研究院硕士论文 第2 章系统相关技术介绍 本系统基于b s ( b r o w s e r s e r v e r ) 模式采用j 2 e e 架构实现,j 2 e e 架构凭借其分 布性、可移植性、可伸缩性和可扩展性,已经成为面向企业级应用开发的主流框架【4 1 。 本系统采用s p r i n gm v c 设计模式,视图层和控制层采用s p r i n 9 2 0 架构,模型层采用 e j b 3 0 架构,其中视图层通过配置让v e l o c i t y 代替传统的j s p 页面。下面将对采用的 框架和相关技术进行简要介绍。 2 1s p r i n g 框架概述 s p r i n g 是一个2 0 0 3 年2 月才出现的开源框架,该框架起源自r o dj o h n s o n 在2 0 0 2 年末出版的( ( e x p e r to n e o n - o n e :j 2 e ed e s i g na n dd e v e l o p m e n t ) ) 【5 】一书的基础性代码。 s p r i n g 是为简化企业级应用开发而诞生的,它使用简单的j a v a b e a n 来实现以前 那些只有e j b 才能实现的功能,它是一个从实际项目开发经验中抽取的、可高度重 用的应用框架。 简单地说,s p r i n g 是一个轻量级的i o c ( 控制反转) 和a o p ( 面向方面编程) 容 器框架【6 】【7 1 。这句话概括了s p r i n g 的重要特点,说明如下: 1 轻量级 。 从大小和系统开销上说s p r i n g 都算是轻量级的。完整的框架可以在一个大小只 有1 m b 多的j a r 文件里发布。并且s p r i n g 所需的处理开销也是微不足道的。s p r i n g 的设计哲学是提供一种无侵入式的高度可扩展框架,基于s p r i n g 开发的系统中的对 象一般不依赖于s p r i n g 类,即无需代码中涉及s p r i n g 专有类,就可将其纳入s p r i n g 容器进行管理。 2 1 0 c ( i n v e r s i o no fc o n t r 0 1 ) i o c 即反转控制【8 】,又称依赖注入,是面向对象领域新兴的编程思想,也是s p r i n g 的精髓所在。s p r i n g 提倡使用i o c 来实现松耦合,由容器控制对象之间的依赖关系, 这样就减轻了组件之间的依赖关系,提高了组件的可移植性。i o c 是s p r i n g 框架的基 础和精髓,是指由容器来控制程序之间的关系,而非传统实现中由程序代码直接操控。 在面向对象设计过程中经常涉及到一个对象引用另一个对象,如图2 1 所示,对 8 武汉邮电科学研究院硕士论文 象a 直接引用对象b ,这样就导致了对象a 依赖于对象b ,而且随着开发的不断深 入和需求的变化,这种依赖迁移的时间和次数不可预知,如果系统中存在多处这样的 依赖关系,那么系统的演化和维护将会变得异常困难。 旺 巷 杰 u i o 瀑架 图2 1i o c 原理图 :;- i i o c 被用来改变这种不利的局面,它把对象a 对对象b 的依赖反转过来:让a 和b 各自独立的变化,仅仅当a 在需要调用b 的时候通过l o c 容器将依赖关系主动 注入到a 中,完成依赖的传递,使得b 对a 可用,这样当对象b 改变时a 可以保持 不变,这种对依赖的控制由直接主动变为间接被动的过程大大增加了系统的灵活性、 上= 扩展性和可维护性。对于框架而言,i o c 实现使用容器来控制程序之间的关系,而不 是由程序代码直接操控,即控制权由应用代码转移到了外部容器,由外部容器来管理 组件之间的依赖关系。 反转控制模式根据其实现方法是否具有侵入性,可以分为两种:依赖查找和依赖 注入。依赖查找是侵入性的,对象中方法的实现与具体的容器或框架相关,它们通过 容器的a p i 来查找相关的资源,一般由接口注) k ( i n t e f f a e ei n j e c t i o n ) 实现。依赖注入 是非侵入性的,它最根本的原则就是应用对象不需要负责查找它们依赖的资源或协作 对象,取而代之的是容器管理对象之间的依赖关系。这样保证了对象中方法的实现与 特定的容器或框架无关。 、 s p r i n g 是一种非侵入性的框架,因此反转控制模式采用的是依赖注入。一般由设 值注, k ( s e t t e ri n j e c t i o n ) 或构造方法注a ( c o n s t r u c t o rt n j e c t i o n ) 实现。设值注入模式在实 际开发中应用的最为广泛,它利用属性注入( s e t t e r 方法) 的方法完成依赖注入,显 9 武汉邮电科学研究院硕士论文 得更为直观,更为自然。构造方法注入即通过构造函数完成依赖关系的设定,依赖关 系通过类构造函数建立,容器通过调用类的构造方法,将其所需的依赖关系注入其中。 s p r i n g 从核心而言,是一个i o c 容器,其设计哲学是提供一种非侵入性的高扩展 性框架【9 】【10 1 。即无需代码中涉及s p r i n g 专有类,即可将其纳入容器进行管理。s p r i n g 提供了两种不同的l o c 容器:b e a n f a c t o r y 和a p p l i c a t i o n c o n t e x t 1 1 1 。 b e a r t f a c t o r y 是最简单的容器,提供了基础的依赖注入支持,它由 o r g s p r i n g f r a m e w o r k b e a n s f a c t o r y b e a n f a c t o r y 接口定义,采用工厂模式来实现i o c 。 不同于其它工厂模式的实现,b e a n f a c t o r y 是一个通用的工厂,可以创建和分发各种 类型的b e a n 。b e a n f a c t o r y 负责配置和管理应用中的j a v a b e a n ,包括j a v a b e a n 的属性 值和依赖关系、创建模式、初始化和销毁方法、依赖关系等。b e a n f a c t o r y 主要用于 开发j a v a 应用,尤其是在物理资源受限的场合,如a p p l e t 应用。一般情况下,只有 在资源很少的情况下,才会考虑使用b e a n f a c t o r y ,如应用于移动设备上。开发j 2 e e 应用则主要使用第二种容器a p p l i c a t i o n c o n t e x t ,这种容器也是s p r i n g 推荐使用 的。 a p p l i c a t i o n c o n t e x t 构建在b e a n f a c t o r y 基础之上,覆盖了b e a n f a c t o r y 的全部功 能,并提供了系统架构服务。相比b e a n f a c t o r y ,a p p l i c a t i o n c o n t e x t 添加了其它大量 功能,包括对国际化的支持、资源访问、事件传播、多实例加载等【1 3 j 。此外, a p p l i c a t i o n c o n t e x t 为与现有应用框架相整合,提供了更为开放式的实现。 a p p l i c a t i o n c o n t e x t 接口有三种主要的实现: ( 1 ) c l a s s p a t h x m l a p p l i c a t i o n c o n t e x t :从类路径中的x m l 文件加载上下文定义 信息,即从w e b i n f c l a s s e s 或w e b - i n f l i b 中装载s p r i n g 配置文件,这在单元测试 中经常用到。 ( 2 ) f i l e s y s t e m x m l a p p l i c a t i o n c o n t e x t 从文件系统中的x m l 文件加载上下文 定义信息,但是它只能在指定的文件路径中寻找x m l 文件,相比于通过类路径查找 欠缺了灵活性。 ( 3 ) x m l w e b a p p l i c a t i o n c o n t e x t :从w e b 应用系统的x m l 文件加载上下文定义 信息。 3 a o p ( a s p e c t - o r i e n t e dp r o g r a m m i n g ) 1 0 武汉邮电科学研究院硕士论文 a o p ( a s p e c t - o r i e n t e dp r o g r a m m i n g ) 即面向方面编程,s p r i n g 对面向方面编程提 供了强大支持,通过将业务逻辑从系统服务( 如监控和事物管理) 中分离出来,实现 了内聚开发1 4 j 。 传统的面向对象编程方法很好地解决了软件系统中角色划分的问题。借助于面向 对象的分析、设计和实现技术,开发者可以将问题领域的“名词 转换成软件系统中 的对象,从而很自然地完成从问题到软件的转换【1 ”。但是在具体的应用过程中常常会 出现这种情况,一个需求会贯穿很多角色。例如在一个系统中常常存在着这样一些公 共的需求:日志、安全性、事务管理、异常捕捉等,这些功能贯穿整个系统的多个模 块,这种行为通常被称为“横切关注点 。因为这些横切关注点跨越了编程模型中的 典型职责权限,如果使用传统的技术开发,那么这些横切关注点的实现将分布在各个 模块中,造成了代码分散和代码混乱的问题,使得整个系统难以设计、理解、实现和 维护。 瓢 面向方面编程可以很好的解决上述问题。a o p 是在o o p 的基础上进行改进而来 的一种创新的软件开发方法,它们虽然在字面上十分相似,但却是面向不同领域的两 种设计思想。o o p 的核心概念是纵向结构的,其目的是获得更加清晰高效的逻辑单 元划分;而a o p 则是针对业务处理过程中的切面进行提取。例如,某一个操作在各 个模块中都有涉及,这个操作就可以看成“横切”存在于系统当中。在大多数情貌下, 这些操作都是与业务逻辑相关性不强或者不属于业务逻辑操作的必需部分,而面向对 象的方法很难对这种情况做出处理。a o p 则可以将这些操作与业务逻辑相分离,使 得开发者在编写程序时可以专注于业务逻辑的处理。a o p 所面对的是处理过程中的 某个步骤或阶段,对不同的阶段领域加以隔离,以获得逻辑过程中各部分之间低耦合 性的隔离效果。a o p 的核心思想就是将应用程序中的业务逻辑处理部分同对其提供 支持的通用服务,即所谓的“横切关注点”进行分离,这些“横切关注点贯穿了程 序中的多个纵向模块的需求【l6 】,如图2 2 所示: 武汉邮电科学研究院硕士论文 业务流程一业务流程二业务流程三 图2 2 交叉业务 图2 2 描述了一个典型的分成多个模块的应用系统。每个模块的主要业务是为它 的特殊领域提供服务。然而,每个模块也需要一些相似的辅助功能,如安全、事务管 理以及日志管理等。使用o o p 处理这些通用模块的常用方式是使用继承和委托模式。 但由于基础类在系统中到处使用,使用继承会引起脆弱的继承关系:而委托模式比较 笨拙,依然需要重复调用委托对象。 t 在这种情况下,a o p 是一种更加简洁的替代方法。使用a o p ,开发者同样是在 一个地方定义通用功能,但是开发者可以声明式定义在何时何地应用这些功能,而不 用在需要新功能的地方修改代码,如此一来,交叉业务可以被模块化到特定对象切面 中。这样做有两个好处。第一,每个业务逻辑放在一个地方,而不是分散到系统的各 个角落。第二,服务模块更加清晰,因为它们只包含自己的核心功能,辅助功能则被 转移到切面中。 4 容器 s p r i n g 是一个容器,它包含并且管理系统对象的生命周期和配置。s p r i n g 容器使 用i o c 管理所有组成应用系统的组件,这使得它有别于传统的重量级e j b 容器。 5 框架 s p r i n g 实现了使用简单的组件配置组合成一个复杂的系统,在s p r i n g 框架中,系 1 2 武汉邮电科学研究院硕士论文 统中的对象是通过x m l 文件配置组合起来的【1 7 1 。并且s p r i n g 提供了很多基础功能 ( 如:事物管理、持久层集成等) ,这使得开发人员能够专注于开发应用逻辑 1 8 】。 s p r i n g 的所有这些特性使应用系统的开发更为简单,代码更为清晰,更易于管理, 更易于测试。 2 2s p r i n gm v c 介绍 2 2 1m 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 是x e r o xp a r c 在2 0 世纪8 0 年代为编程语言s m a u t a l k 8 0 发明的一种软件设计模式,至今己被广泛 使用,被推荐为s u n 公司j 2 e e 平台的世纪模式,受到越来越多的w e b 开发者的欢迎 【1 9 】 0 m v c 是一种设计模式,它强制性地把应用程序的输入、处理和输出分开。m v c 把应用程序分成三个核心模块:模型、视图和控制器,它们分别担负不同的任务。图 2 3 显示了这几个模块各自的功能以及它们的相互关系。 方法调用 一一一一一一一一一一呻事件 图2 3m v c 设计模式 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户 1 3 武汉邮电科学研究院硕士论文 的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态, 但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步 更新。 。 模型是应用程序的主体部分,表示业务数据和业务逻辑,一个模型能为多个视图 提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。 控制器接受用户的输入并调用模型和视图去完成用户的需求。当w e b 用户单击 w e b 页面中的提交按钮来发送h t m l 表单时,控制器接收请求并调用相应的模型组 件去处理请求,然后调用相应的视图来显示模型返回的数据。 现在我们来总结m v c 处理过程。首先控制器接收用户的请求,并决定应该调用 哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据; 最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。 尽管构造m v c 应用程序需要一些额外的工作,但是它带来的好处是毋庸置疑的。 首先,多个视图能共享一个模型,大大提高了代码的可重用性。其次,模型是自含的, 以控制器和视图保持相对独立,可以方便地改变应用程序的数据层和业务规则。如果 把数据库从m y s q l 移植到o r a c l e ,只需改变模型即可。由于m v c 的三个模块相互 独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合 的构件。此外,控制器提高了应用程序的灵活性和可配置性。 2 2 2s p r i n gm v c s p r i n gm v c 实现遵循m v c 架构,清晰的划分了w 曲应用中涉及到的各项内容, 即将各部分划分为m o d e bv i e w ,c o n t r o l l e r ,分别对应于业务逻辑,用户视图,流程 控制。 图2 4 显示了s p r i n gm v c 对请求的处理过程【5 1 。 1 4 武汉邮电科学研究院硕士论文 图2 4s p r i n gm v c 的处理过程 由2 4 图可知,s p r i n gm v c 的处理过程大致如下: 7 蘩 ( 1 ) 客户发出请求,s p r i n gm v c 通过前端s e r v l e t 控制器( d i s p a t c h e r s e r v l e t ) 统一分发客户请求。 晦 、 ( 2 ) d i s p a t c h e r s e r v l e t 借助于s p r i n g 提供的h a n d l e r m a p p i n g 定位到具体的 c o n t r o l l e r ,h a n d l e r m a p p i n g 的工作主要是将客户请求映射到一个控制器对象。 ( 3 ) d i s p a t c h e r s e r v l e t 将客户请求分配派给找到的具体的控制器,由控制器根据 自身设计的业务逻辑来处理客户请求。 ( 4 ) 控制器完成业务逻辑的处理后返回一个m o d e l a n d v i e w 给d i s p a t c h e r s e r v l e t 。 m o d e l a n d v i e w 是一个对象,它可能是视图对象( v i e w ) ,或者是视图对象的逻辑名。 ( 5 ) 如果m o d e l a n d v i e w 对象返回的是视图的逻辑名,则d i s p a t c h e r s e r v l e t 将其 转向s p r i n g 提供的视图解析器( v i e w r e s o l v e r ) 来查找相应的视图对象。 ( 6 ) d i s p a t c h e r s e r v l e t 将请求分派给m o d e l a n d v i e w 对象指定的视图对象,由视 图对象负责将结果返回给客户。 这样,s p r i n gm v c 就完成了对请求的处理。同时,s p n n g 通过使用 s i m p l e m a p p i n g e x c e p t i o n r e s o l v e r 处理m v c 控制器中抛出的任何异常,使得对未知异 常的处理变得简单,异常的处理只需通过在配置文件中对其e x c e p t i o n m a p p i n g s 属性 进行设置即可【2 0 】。 1 5 武汉邮电科学研究院硕士论文 从上面的s p r i n gm v c 的处理过程可知,请求到控制器的映射方式和 m o d e l a n d v i e w 对象到视图的映射方式选择关系整个m v c 系统的整体设计和功能的 实现及扩充,也为s p r i n gm v c 提供了较别的m v c 框架更多的实用性和灵活性,下 面将对这两种映射方式进行说明。 1 h a n d l e r m a p p i n g h a n d l e r m a p p i n g 接口位于o r g s p r i n g f r a m e w o r k w e b s e r v l e t 包中,它能够完成客户 请求到控制器对象之间的映射【羽,s p r i n gm v c 中的所有处理器都实现了该接1 2 1 。 s p r i n g 带有三种有用的h a n d l e r m a p p i n g 实现: ( 1 ) b e a n n a m e u r l h a n d l e r m a p p i n g 直接借助于s p r i n g 配置文件中控制器的名 字来将控制器映射到u r l 。d i s p a t c h e r s e r v l e t 缺省使用该实现,这种方法虽然非常 简单,但是它却将表现层u r l 和控制器名字绑定起来,这使得控制器的名字显得很 奇怪。所以,这种方法不被推荐,除非是非常简单的应用系统,只有很少的几个控制 器,大部分情况建议使用其他映射方式。 ( 2 ) s i m p l e u d h a n d l e r m a p p i n g :使用上下文配置文件中定义的属性集合将控制 器映射到u r l 。这是s p r i n g 的控制器映射中最简单的一种,它直接将u r l 映射到控 制器,不需要用特殊的方式命名b e a n 。它通过控制器映射中的m a p p i n g s 属性来装配 、 、 等集合类型。集合类型中的属性k e y 指定u r l 模式,它的 值就是处理该u r l 的控制器b e a n 的名字。 o ( 3 ) c o m m o n s p a t h m a p h a n d l e r m a p p i n g 通过控制器代码中的元数据将控制器映 射到u r l ,这个元数据特定是一个o r g s p r i n g f r a m e w o r k w e b s e r v l e t h a n d l e r c o m m o n s a t t r i b u t e s p a t h m a p 属性,使用j a k a r t ac o m m o n sa t t r i b u t e s 编译器编译到控制 器中。通过控制器源代码注释标签中的p a t h m a p 属性声明这个控制处理的u r l 样式, 最后编译的时候通过编译器将标签编译到应用代码中。 同时,由于所有的处理器映射都实现了s p r i n g 的o r d e r e d 接口,就可以在应用系 统中声明多个处理器映射,并且设置其优先级。优先级的设置通过处理器映射b e a n 的o r d e r 属性来设定,其值越小,优先级越高。多处理器映射情况下d i s p a t c h e r s e r v l e t 的处理方式是先咨询优先级高的映射器,当无法返回结果时才咨询优先级次之的,依 次类推。 1 6 武汉邮电科学研究院硕七论文 2 v i e w r e s o l v e r s p r i n gm v c 的大多数控制器都会从主执行方法中返回一个m o d e l a n d v i e w 对象, v i e w r e s o l v e r 就用来将m o d e l a n d v i e w 对象对应的逻辑视图名解析成能够渲染服务器 响应结果的视图对象。v i e w r e s o l v e r 接口位于o r g s p r i n g f r a m e w o r k w e b s e r v l e t 包内, s p d n g 提供了四种v i e w r e s o l v e 的实现: ( 1 ) b e a n n a m e v i e w r e s o l v e r :将逻

温馨提示

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

评论

0/150

提交评论