硕士论文-基于AJA_的轻量级Web客户端开发平台研究与实现.pdf_第1页
硕士论文-基于AJA_的轻量级Web客户端开发平台研究与实现.pdf_第2页
硕士论文-基于AJA_的轻量级Web客户端开发平台研究与实现.pdf_第3页
硕士论文-基于AJA_的轻量级Web客户端开发平台研究与实现.pdf_第4页
硕士论文-基于AJA_的轻量级Web客户端开发平台研究与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

硕士论文-基于AJA_的轻量级Web客户端开发平台研究与实现.pdf.pdf 免费下载

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

文档简介

分类号 T P 3 1 1 密级 单位代码 1 0 4 2 7 学号 2 0 0 4 0 6 0 7 2 潦教 手 遥 硕士学位论文 基于A J A X 的轻量级W e b 客户端开发平台研究与实现 研究生姓名至鏖垫导师姓名扬迭 学科 专业盐篡垫座旦垫盔 申请学位级别亟 答辩时间 Q 2 学位授予单位盗壶盘鲎 学位授予单位代码 10 4 27 2 0 0 7 年5 月8 日 摘要 随着网络的普及和W e b 技术的不断创新 管理信息系统 M I S 的体系架构发 生了重大的变化 从两层的C S 架构发展到三层的C S S 或B S S 架构 由于C S S 本身的局限性 B S I S 架构的系统得到广泛的应用 因此基于W e b 的M I S 系统 W e b M I S 得以迅速普及 现有的W e b M I S 功能界面越来越复杂 其页面元素包 含了多样化的控件和复杂的数据窗口 W e b M I S 软件开发过程中暴露的问题核心是 需要将数据展现与数据内容分离 传统W e b 技术同步交互的特点决定了无法解决这 个问题 最近出现的W e b 技术解决方案A J A X 使W e b M I S 中数据展现和数据分离成为 可能 可以将传统服务器端的一部分工作转嫁到客户端来完成 使服务器仅作为数 据的产生者 从而催生轻量级的W e b M l S A J A X 采用了异步交互过程 在用户与 服务器之问引入中间媒介进行请求代理 从而消除了传统W e b 交互过程中的处理一 等待一处理一等待缺点 本文首先基于A J A X 提出一种支持复杂人机交互界面的 性能优良的 轻量级 W e b 客户端应用开发模型 该模型主要由W e b 处理引擎和业务请求分发引擎组成 其中W e b 处理引擎包括W e b 请求处理和W e b 显示加载两个模块 通过这两个模块 的相互协作实现数据展现和数掘内容的分离 业务请求分发引擎使用A J A X 的异步 传输过程确保对于数据处理的异步性 降低页面显示逻辑和服务器数据的耦合度 提高人机交互效果 其次 在上述W e b 应用开发模型的基础上 搭建了一个轻量级的W e b 客户端开发 平台 为现有W e b M I S 的开发提供了更加丰富实用的功能 基于该平台的W e b M I S 实 现了富客户端和轻量级的特点 这样W e b g l S 可以有效地利用客户端的闲置资源 均衡 客户端和服务器端的负荷 从而提高响应效率 很好地改善用户体验 该平台还使 W e b M I S 的独立性得到提高 整个w e b M I s 即独立于具体的服务器 也独立于客户端 操作平台 做到了数据展现和数据内容的分离 极大地提高了平台无关性 再次 该客户端开发平台采用的是平台核心加插件的系统开发框架 这使平台具 有很大的灵活性和可扩展性 平台插件使用与操作平台无关的J a v a S c r i p f i 吾言编写 可使平台独立于任何操作系统使用 此外 平台采用M V C 模式进行设计丌发 便于 平台丌发和维护 I I W e b 客户端开发平台已经在 劳动力市场管理信息系统 项目中得到成功应用 应用实践表明 该系统响应效率有了很大提高 用户体验也得到极大改善 该客户 端开发平台对现阶段W e b M I S 开发以及同类W e b M I S 升级改造都具有很大的实用价 值和借鉴意义 关键词 A J A x W e b M I S 轻量级 W e b 客户端开发平台 I I I A b s t r a c t A sn e t w o r ki sw i d e l yu s e da n di n n o v a t i o no fW e bt e c h n o l o g i e se m e r g e sc o n s t a n t l y m a j o rc h a n g e sh a v et a k e np l a c ei nt h ea r c h i t e c t u r eo fM a n a g e m e n tI n f o r m a t i o nS y s t e m M I S f r o mt w o t i e rC St ot h r e e t i e rC S So rB S S B e c a u s eo ft h el i m i t a t i o n so fC S S i t s e l f t h eM I Sb a s e do nW e b W e b M I S w h i c hu s e dB S Sa r c h i t e c t u r e i ss p r e a d i n g q u i c k l y T h ef u n c t i o ni n t e r f a c eo fc u r r e n tW e b M I S i sb e c o m i n gm o r ea n dm o r ec o m p l e x T h ee l e m e n t so fap a g ec o n t a i nm a n yc o m p l e xd a t a w i n d o w sa n dd i v e r s ec o n t r o l s T h e c o r eo ft h e s ei s s u e sw e r ee x p o s e di ns o f t w a r ed e v e l o p m e n tp r o c e s so fW e b M I Sw a s n e e d t os e p a r a t ed a t ad i s p l a ya n dd a t ac o n t e n t T h ec l a s s i cw e bt e c h n o l o g y w h i c ht h ep r o c e s s o fi n t e r a c t i o nw i t hW e bs e r v e rw a ss i m u l t a n e o u s l y c o u l dn o ts o l v et h ec o r ei s s u e s a b O V e m e n t i o n e d A J A Xa san e wW e bt e c h n o l o g ys o l u t i o n sa p p e a r e dr e c e n t l y i tm a d et h es e p a r a t i o n o fd a t ad i s p l a ya n dd a t ac o n t e n ti nW e b M I Sb ep o s s i b l e A n du s i n gA J A Xa l s oc a n r e d u c es e l N e rl o a db ys h i n i n gp a r to ft h eu n r e l a t e dw o r kt ot h ec l i e n tb r o w s e ra n dm a k e t h ew o r ko ns e r v e r sb em o r ec l e a r l y t h i sm a d eW e b M l Sb em o r el i g h t w e i g h t A J A X u s i n gt h ea s y n c h r o n o u si n t e r a c t i v ep r o c e s si n t r o d u c e di n t e r m e d i a r yf o ra g e n t so fr e q u e s t s b e t w e e nt h eu s e ra n dt h eS e l W e r t h i se l i m i n a t e ds h o r t c o m i n g se x i s t i n gi nt r a d i t i o n a l n e t w o r ki n t e r a c t i v ep r o c e s s T h ep a p e rf i r s t l yp u tf o r w a r daW e ba p p l i c a t i o nm o d e lb a s e do n A J A X w h i c hc o u l d s u p p o r tc o m p l e xm a n m a c h i n ei n t e r f a c e h a de x c e l l e n tp e r f o r m a n c e a n dw a s l i g h t w e i g h t T h em o s tc o m p o n e n t so ft h ef n o d e lw e r eW e bp r o c e s s i n ge n g i n ea n dd i s t r i b u t i o n6 f b u s i n e s sr e q u e s t se n g i n e W e bp r o c e s s i n ge n g i n e si n c l u d e dp r o c e s s i n gW e br e q u e s ta n d l o a d i n gW e bs h o wt w om o d u l e s T h i sm u t u a lc o o p e r a t i o nb e t w e e nt h et w om o d u l e s c o u l da c h i e v es e p a r a t i o no fd a t ad i s p l a ya n dd a t ac o n t e n t D i s t r i b u t i o no fb u s i n e s s r e q u e s t se n g i n e u s ea s y n c h r o n o u si n t e r a c t i v ep r o c e s so fA J A Xt op r o c e s sd a t a a s y n c h r o n o u s l y t ol o w e rt h ec o u p l i n gd e g r e eb e t w e e np a g es h o wl o g i ca n dd a t ai ns e r v e r a n dt oe n h a n c et h ei n t e r a c t i v ee f f e C t S S e c o n d l y b a s i n go nt h eW e ba p p l i c a t i o nm o d e la b o v e m e n t i o n e d al i g h t w e i g h t W e bc l i e n t d e v e l o p i n gp l a t f o r mw o u l db ed e s i g n e d t op r o v i d em o r er i c hp r a c t i c a l f u n c t i o n sf o rd e v e l o p m e n to fW e b M I Sc l i e n t T h eW e b M I Su s i n gt h i sp l a t f o r mh a d T V r i c h c l i e n ta n dl i g h t w e i g h tc h a r a c t e r i s t i c s I tc o u l du s ei d l er e s o u r c e so nt h ec l i e n t e f f e c t i v e l y a n dm a k et h el o a do nc l i e n ta n ds e r v e rb eb a l a n c e S Ot h a tt h er e s p o n s e e f f i c i e n c ya n du s e re x p e r i e n c ew e r ei m p r o v e dl a r g e l y T h i sp l a t f o r ma l s oi m p r o v e dt h e i n d e p e n d e n c eo fW e b M I S w h i c hm a d eW e b M I Sb ei n d e p e n d e n to fs p e c i f i cs e r v e r sa n d c l i e n tO Sp l a t f o r m T h i sc o u l dm a k et h es e p a r a t i o nb e t w e e nd a t ad i s p l a ya n dd a t ac o n t e n t p o s s i b l e a n dt h ei n d e p e n d e n c eo fp l a t f o r mw a se n h a n c e dl a r g e l y T h i r d l y t h ed e v e l o p m e n tf r a m e w o r ku s e di nt h i sc l i e n td e v e l o p i n gp l a t f o r mw a st h e C O r eo fp l a t f o r ma n dp l u g i n s w h i c hm a d et h ep l a t f o r mm o r ef l e x i b i l i t ya n ds c a l a b i l i t y T h ep l u g i n so fp l a t f o r mW a sp r o g r a m m e db yJ a v a S c r i p tl a n g u a g e w h i c hc o u l dr u nO l l a n yO Sp l a t f o r m I na d d i t i o n t h ep l a t f o r mu s e dM V Cm o d e lt od e s i g na n dd e v e l o p w h i c hf a c i l i t a t e dd e v e l o p m e n ta n dm a i n t e n a n c eo ft h ep l a t f o r m T h eW e bc l i e n td e v e l o p i n gp l a t f o r mh a db e e nu s e di n L a b o rM a r k e tM a n a g e m e n t I n f o r m a t i o nS y s t e m s u c c e s s f u l l y T h ea p p l i c a t i o ns h o w e dt h a tt h er e s p o n s ee f f i c i e n c y a n du s e r e x p e r i e n c eo f t h i s s y s t e mw e r ei m p r o v e dl a r g e l y T h i s c l i e n t d e v e l o p i n g p l a t f o r mh a dg r e a tp r a c t i c a lv a l u ea n dc o u l db el e a r n e df o rd e v e l o p i n ge x i s t i n gW e b M I S a n du p g r a d i n gs i m i l a rW e b M I S K e y A J A X W e b M I S L i g h t w e i g h t W e bc l i e n td e v e l o p i n gp l a t f o r m 原创性声明 本人郑重声明 所呈交的学位论文 是本人在导师的指导下 独 立进行研究所取得的成果 除文中已经注明引用的内容外 本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果 对本文的研 究作出重要贡献的个人和集体 均已在文中以明确方式标明 本人完 全意识到本声明的法律责任由本人承担 论文作者签名 粗日期 碑 兰 关于学位论文使用授权的声明 本人完全了解济南大学有关保留 使用学位论文的规定 同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版 允许论 文被查阅和借鉴 本人授权济南大学可以将学位论文的全部或部分内 容编入有关数据库进行检索 可以采用影印 缩印或其他复制手段保 存沦文和汇编本学位论文 保密论文在解密后应遵守此规定 论文作者签名 刁粗导师签名论文作者签名 潭比 导师签名日期 捆 堕邀 夸 济南大学硕士学位论文 1 1 课题背景 第一章绪论 近年来信息管理系统已经成为各个行业领域信息化建设的重要组成内容 而信息 管理系统的成败关键在于充分的软件需求调研和成功的技术架构 技术架构是一个软 件系统的根基 不仅决定了软件产品的硬件投资额度和使用者的应用范围 还关系到 软件生存期中的维护成本和升级可能性 随着网络应用的普及和技术的不断创新 管理信息系统 M I S 的技术架构发生 了重大的变化 传统的M I S 多为基于W i n d o w s 体系开发的C l i e n t S e r v e r 版的软件 应用范围多集中在局域网范围内 由于应用范围的扩展 要求M I s 必须适用于更复 杂的网络环境和更庞大的用户群 M I S 技术体系架构逐渐转变为多层体系结构 N t i e r 的C S S 和B S S 技术架构 埘 c 幅 s 类型的系统需要安装客户端 不便于系统的升级维护和扩展 而基于W e b 技术的M I s 以下称w 曲M l s 由于不用安装客户端 与用户平台无关 易于实现 交互式应用 能对信息进行快速高效的处理和发布 近几年来得到了迅速发展 同时 相关支持W e b M I S 系统开发的各类W e b 开发平台的研究和应用也成为当今的重要课 题 1 2 现状 1 2 1W e b M I S 的现状 与C S S 结构的M I S 相比 W e b M I S 具有安装简单 使用方便 易于维护等特点 因此得到越来越广泛的应用 但是受传统W e b 技术的限制 W e b M I S 有一定的局限 性 下面分别从用户使用 技术实现 系统维护三个角度分别进行说明 首先 从用户使用角度来看 1 操作界面功能元素简单 使用不方便 2 每一次交互都要刷新整个页面 等待结果的时间长 3 数据安全性差 容易泄露私人信息 其次 从技术实现角度来看 1 程序开发量大 代码管理复杂 l 摹于A J A X 的轻量级W e b 客户端开发平台研究与实现 2 交互过程对业务逻辑的调用是与平台相关的 受限于网站服务器的类型 3 程序测试复杂 最后 从维护的角度来看 1 由于程序开发量大 测试复杂 给程序的维护带来了一定的困难 2 由于各系统基于不同的平台技术开发 不利于跨平台移植 系统移植比较困 难 同时 随着W e b M l S 的使用范围扩大 用户对W e b M I S 的要求越来越高 主要 表现在对界面设计和业务处理两个方面的要求 首先 用户对界面设计上的要求主要包括以下三个方面的内容 1 界面元素足够丰富 处理的信息量大 2 单个处理页面元素多样化 有复杂的数据窗口和多样化的控件功能 3 更好的人机交互性能 其次 用户对业务处理上的要求主要包括下面三方面的内容 1 业务处理操作能尽快满足需求的变化 2 业务处理速度高 减少用户等待时间 提高工作效率 3 业务逻辑能够运行在多种平台 1 2 2 开发平台的现状 W e b M I S 流行的各类开发技术平台中 最著名的是S u n 公司开发的J 2 E E 平台1 3 1 4 1 和M i c r o s o f t 公司的 n e t 平台 这些平台的特点是应用范围广 配置灵活 能够适应 各类应用的开发要求 缺点是过于庞大 开发人员在整个过程中需要定义的项目太多 不仅对开发过程管理 升级和维护带来了困难 而且针对M I s 特点的软件开发需要 大量准备工作 由于用户需求的变化 软件开发商经常需要开发同一功能 不同技术 结构的W e b M I S 系统 例如产品同时在J 2 E E 平台和 n e t 平台进行开发 不论哪种类 型的技术平台 都是提供动态的脚本生成页面标记语言 H T M L 从而一定程度上 将业务逻辑和技术平台进行了捆绑 增加了跨平台移植的复杂度 1 2 3 新的w 曲技术解决方案的出现 随着W e b M t S 使用范围的扩大 上述的局限性越来越突出 而用户对W e b M I S 的要求越来越高 这在一定程度上限制了W e b M l S 的发展 必须出现新的W e b 技术 2 济南丈学硕士学位论文 解决方案 来适应w 曲M I s 的发展 更好地满足用户需求 A J A X 应运而生 A J A X 异步J a v a S c r i p t 和X M L 是最近兴起的w e b 技术解决方案l 卦 是 J a v a S c r i p t X H T M L 和D O M X M L 和X S T L X M L I t l W P R e q u e s t 等多种技术的综合 A J A X 技术采用异步交互过程消除了网络交互过程中的 处理一 等待一 处理一 等待 的缺点 因而成为目前W e b 应用开发采用的重要技术 目前在W e b M I S 中引 入A J A X 技术后 能够较好地改善用户体验 但是多基于某个具体应用的开发 整体 的系统开发维护代价还是比较大 1 3 课题目标 现有的W e b M I S 功能界面越来越复杂 其页面元素包含了多样化的控件和复杂的 数据窗口 这种情况下软件开发商需要开发复杂的支撑平台服务于各类W e b M I S 项 目 而当系统的业务需求发生变化时 不同业务需求的特点会频繁导致这些开发支撑 平台的重构 增加了软件开发工作量 W e b M I S 软件开发过程中暴露的问题核心是需要将数据展现与数据内容分离 做 到在每个元素的显示过程中 加载的是符合格式的数据而不是完整的H T M L 页面 这就需要使用相关的W e b 技术从完整的H T M L 页面中提取有用的数据 做到在界面 加载与请求提交过程中 降低界面显示逻辑与后台数据的耦合度 从而最终做到数据 展现与数据内容相分离 传统W e b M l S 通常采用的是与服务器同步交互过程的W e b 技术 这决定了B S S 体系结构本身具有单向性的特点 在每个页面加载过程中 客户端只能从服务器重新 接收界面所需的全部H T M L 不能动态更新局部显示数据 从而无法解决数据展现与 数据完整分离的核心问题 A J A X 作为最近兴起的W e b 技术解决方案 对现有W e b M I S 开发过程中的许多关 键问题提供了很有意义的解决方案 主要表现在以下三个方面 1 能够实现W e b M I S 中数据显示与数据内容分离的设计 2 使W e b M I S 具有轻量级的特点 在W e b M I S 的开发中引入A J A X 可以将与业务逻辑无关的大量操作从服务 器端转嫁给客户端 减轻服务器端的负载 从而使W e b M I S 具有轻量级的特点 3 引入A J A X 极大地改善了w 毫b M I S 的用户体验 虽然A J A X 的引入解决了传统W e b M I S 丌发中的一些问题 但是简单地在 基于A J A X 的轻量级W e b 客户端开发平竹研究0 实现 W e b M I S 中应用A J A X 还不能减少业务逻辑跨平台移植的复杂度 并且由于W e b M I S 具有界面的复杂程度高 和应用服务器交互频繁 请求所需业务数据量大 业务信息 种类多 页面跳转控制逻辑复杂等特点 要想实现业务逻辑的平台无关性 还需要一 个统一的独立于W e b M I S 的W e b 客户端平台 来提供独立的数据显示特性 使得具 体W e b M I S 可以调用在任何平台上所开发的业务逻辑q s p a s p p h l 等 而并不局 限于某个具体的开发平台 这样W e b M I S 就具备了良好的可扩展性和适应性 能够在 改善用户体验的基础上 减少系统开发和维护的代价 综上所述 构建一个轻量级独立的W e b 客户端开发平台 支持多种技术平台下开 发的W e b M I S 对全面提高W e b M I S 的开发效率 增加可维护性以及改善用户体验等 都具有相当现实的意义 这也是本课题所要达到的目标 1 4 论文特色与创新 本文提出了一个基于A J A X 的轻量级W e b 应用模型 并在此应用模型的基础上对 轻量级的W e b 客户端开发平台进行了深入的研究和简单的实现 1 4 1 基于A J A X 的轻量级W e b 应用模型研究 传统的W e b 服务器在处理业务时 往往从客户端获得大量的页面信息 这些信息 中有很大一部分是与页面呈现有关而与业务无关 但是服务器在处理完业务后还要组 装页面呈现和业务数据 然后再将这些信息传回客户端 这无疑增加了服务器的负担 延长了系统响应时间 为了减轻服务器的负担 把传统W e b 服务器所处理的有关页面 呈现的部分工作转嫁到客户端 以充分利用客户端闲嚣的处理能力 提高应用的响应 速度 本文提出了一个轻量级的W e b 应用模型 该模型充分利用异步交互的A J A X 技 术来实现轻量级的W e b 应用开发 模型主要由W e b 处理引擎和业务请求分发引擎组成 其中W e b 处理引擎包括W e b 请求处理和W e b 显示加载两个模块 通过这两个模块的相互协作实现数据展现和数据 内容的分离 业务请求分发引擎使用A J A X 的异步传输过程 确保对于数据处理的异 步性 降低页面显示逻辑和服务器数据的耦合度 提高人机交互效果 1 4 2 基于A J A X 的轻量级g e b 客户端开发平台的研究和实现 在基于上述轻量级W e b 应用模型的基础上 本文还搭建了一个轻量级的W e b 客户端 开发平台 详细研究了开发平台的框架结构 并对平台进行了简单的实现 4 济南大学硕L 学位论文 W e b 客户端开发平台的搭建为现有髓b M I S 的开发提供了更加丰富实用的功能 基 于该平台的W e b M I S 出现了富客户端和轻量级的特点 这样W e b M I S 可以有效地利用客户 端的闲置资源 均衡客户端和服务器端的负荷 从而提高响应效率 很好地改善用户 体验 该平台还使W e b M I S 的独立性得到提高 整个W e b M I S R P 独立于具体的服务器 也 独立于客户端操作平台 做到了数据展现和数据内容的分离 极大地提高了平台无关 性 该客户端开发平台采用的是平台核心加插件的系统开发框架 这使平台具有很大 的灵活性和可扩展性 平台插件使用与操作平台无关的J a v a S c r i p t 语言编写 可使 平台独立于任何操作系统使用 此外 平台采用M V C 模式进行设计开发 便于平台开 发和维护 该客户端开发平台已经在 劳动力市场管理信息系统 中得到成功应用 基于该平 台 本文还提出了对现有W e b M I S 的升级改造方案 这对现有W e b M I S 的开发和升级改 造都有很现实的借鉴意义 5 摹于A J A X 的轻量级W e b 客户端开发 平台研究与实现 l i em 第二章W e b 平台开发支撑技术简介 本文所研究的轻量级W e b 平台 是基于A J A X 技术 遵循M V C 模式进行研究开 发的 下面将从传统的W e b 技术 M V C 模式 A J A X 技术三方面来简单介绍W e b 平 台开发所使用的支撑技术 2 1 传统的W e b 技术 B S 请求响应机制是W e b 系统使用的服务方式 也是如今最为流行的体系结构模 式 在这种结构下 用户工作界面通过W e b 浏览器来实现 很少一部分的事务逻辑 在前端实现 主要的事务逻辑在服务器端实现 形成所谓的三层结构 6 l 相应地 W e b 系统的工作机制如下 客户端使用浏览器与服务器建立连接 用户 在客户机上所发出的请求通过浏览器分析后 将被发送到服务器端 当服务器收到用 户的请求之后 响应客户端的请求 回送应答的数据 把存放在服务器上的消息传回 给用户 然后再由浏览器显示在屏幕上 当客户端发出断开连接的请求后 服务器关 闭连接 本次会话结束 而部署在服务器上的W e b 系统 其主要职责是根据服务器转发的客户端发送的请 求信息 判断用户的请求行为 调用 综合 编译来自各种数据源的数据信息 加入 到服务器要返回给客户端的信息内容中并设置返回信息的相关属性值 服务器最终再 将这些响应信息发送给客户端 完成整个响应过程 这个过程如图2 I 所示 回困回 发送连接请求 二 一 连接建立成功 卜 发送请求信息 卜 叫 转发客户端的请求 调用 综合 编译 r 返耐响应结果 乙 发送响应信息p 扣卜 r 客户端解析旺示 图2 1W e b 系统响麻过程 6 济南犬学硕十学位论文 从早期的C G I 到A S P P H P 再到现在的J 2 E E 和 N E T W e b 开发技术在不断发 展 同时 开发模式也在不断发展 从早期的单层模式 H 聊L 静态页面 到二层模 式 再到现在广泛流行的三层模式和多层模式 而且随着需求的增加和变更频繁 W c b 系统也越来越复杂 2 2M V C 模式 2 2 1W e b 应用开发模式的演变 文献1 6 1 7 1 1 8 1 介绍了M V C 在W e b 应用开发中的演变过程 M V C 最初是在 S m a l l T a l k 8 0 中被用来构建用户界面的 M 代表模型M o d e l V 代表视图V i e w C 代表控制器C o n t r o l l e r M V C 的目的是增加代码的重用率 减少数据表达 数据描述 和应用操作的藕合度 同时也使得软件可维护性 可修复性 可扩展性 灵活性以及 封装性大大提高 W e b 应用程序的体系结构始终伴随着其运行环境和开发技术的发展而发展 早期 的开发人员使用一种较为直接的方法来开发B S 结构的W e b 应用程序 这种方法明 显地带有C I S 程序开发的特点 他们不仅在视图中实现软件界面逻辑 还在其中实 现很多应用逻辑 以J S P 程序开发为例 程序员不仅使用J S P 页面进行数据显示和 响应用户操作 还在其中处理诸如数据库连接 数据操作 权限控制 程序流转等应 用逻辑 这种开发方式虽然较为直观 但是不同类型的代码混杂在一个页面中显得零 乱而不易维护 这种W e b 应用程序开发方法没有形成明显的开发框架 常被称为 M o d e l l 方法 也被戏称为 万能J S P 方法乙 软件开发人员在借鉴了M V C 模式后 W e b 应用程序得到了很大的发展 M V C 模 式增加了程序代码的可维护性 也使程序的扩展性得到改善 这种开发模式至今仍是 W e b 应用程序的主流方式 以此模式为基础出现了很多各具特色的开发框架 其中 代表性的有W A F S t r u t s W c b W o r k 2 等 这种基于M V C 模式的W e b 应用程序开 发方法被统称为M o d e l 2 方法1 6 7 1 2 2 2M V C 模式简介 文献1 9 1 0 l 1 1 1 中分别描述了M V C 模式在W e b 应用系统中的实现 文献1 1 2 J 1 1 3 1 也介绍了 M V C 模式在J 2 E E 下的成功案例一S t r u t s 的使用 这些研究都奠定了M V C 模式在现代 W e b 应用丌发中的重要地位 三层W e b 开发模式将W e b 系统分为三层 客户显示层 业务逻辑层和数据层 在该模式下 各层逻辑清楚 各司其职 数据层负责数据访问 7 基于A J A X 的轻量级W e b 客户端开发平台研究与实现 业务逻辑层专注子业务逻辑的处理 客户显示层则负责用户界面的设计与呈现 三层 模式具有良好的灵活性 安全性和可扩展性 具有比较高的稳定性以及执行效率 容 错能力和负载均衡能力 M V C 模式 将客户显示层和业务逻辑层继续划分为M V C 模型 视图 控制器 三个层次 把一个应用的输入 处理 输出进行合理的分离 下面分别描述这三个层 次的功能 1 模型 模型继承原来业务逻辑层的功能 包含了应用程序的核心 它封装了 应用程序的数据结构和事务逻辑 集中体现了应用程序的状态 2 视图 视图继承原来客户显示层的功能 实现模块的外观 是应用程序的外 在表现 J S P 页面适合完成这个功能 因为它只包含很少的非H T M L 代码 3 控制器 控制器控制整个框架中各个组件的协调工作 对用户的输入做出反 应 并且将模型和视图联系在一起 创建并设置模块 模型 视图 控制器三个层次的功能和关系如图2 2 所示 方法调用 事件 图2 2M V C 组件类型的关系和功能 三层模式下的W e b 系统开发 视图通常是由美工 H T M L J S P 设计人员或者系 统管理员来负责管理的 控制器由应用开发人员开发实施 业务逻辑则由开发人员 领域专家和数据库管理员共同完成的 下面以早期的J 2 E E 技术平台歼发过程为例简要描述其M V C 的工作方式I 显示逻辑在W e b 层或客户端控制 可以是S e r v l e t 或J S P 动态地生成H T M L J S P 可以完成所有S e r v l e t 完成的功能 与控制有关的对象可能存在于系统的每一个层 次 没有明显控制器角色 业务逻辑存在于E J B 层 以E J B 为中心的模式 或W e b 层 以W e b 为中心的模式 R 济南大学硕士学位论文 在这种工作方式下 M V C 的层次定义不够清晰 导致整个系统没有明显的层次 感 影响了系统的可维护性 这种情况不仅在J 2 E E 平台中存在 而且同时代的a s p p h p 等开发环境中也存在同样的问题 2 2 3M V C 模式的发展 最初M v C 模式的提出是为了实现一个数据模型的多视图同步问题 它最先在 S m a l l T a l k 语言中实现 在W e b 应用中由于H T r P 协议的限制 不能实现控制器将状 态的变化通知给注册的视图 或不能将模型状态的变化通知给注册的视图 因此就 不能实现原先的设想 多视图情况下的视图与模型的同步 至于M V C 模型最初并不适合W e b 应用 根源在于协议的不同及在W e b 下有两 个视图 客户端视图及服务器端视图 原来在S m a l l T a l k 中在一起的东西现在分成两 步走了 为了适应W e b 应用 后来出现了M V C 模式的改良版 M o d e l 2 模型 M o d e l 2 模型是符合M V C 对系统分层的思想的 例如 在J 2 E E 平台下用J S P 技术实现视图 的功能 用S e r v l e t 技术实现控制器的功能 用J a v a B e a n E J B 技术实现模型的功能 M o d e l 2 模型如图2 3 所示 A p p f i c a t i o n S e r v e r i E n t e r p r i s eS e t w e r s D a t aS o u r c e s 图2 3M V C 到M o d e l 2 的演化 M o d e l 2 模型改变了W e b 应用的运行顺序 使应用由边做事边显示转变到先做事 再显示 同时 M o d e l 2 解决了W e b 应用中显示逻辑与业务逻辑的分离 在随后的发展过程中 基于B S 结构的W e b 应用程序的大量使用 使丌发人员 不得不舍弃了基于连接的稳定可靠的客户端 服务器通讯方式 代之以基于非连接的 H r r P 通讯协议 在这种应用环境中 V i e w 和M o d c l 通常采用不同的语言进行开发 9 圈 曰 摹于A J A X 的轻量级W e b 客户端开发 F 台研究与实现 它们之间的数据交互变得比较不容易实现和控制 在为了适应这种结构开发而出现的 应用程序开发框架中 C o n t r o l l e r 除了实现传统的功能外 还越来越多地被作为V i e w 和M o d e l 之间进行交互的数据通道 V i e w 和M o d e l 之间的直接交互被慢慢地断开 M V C 逐渐形成了适应W e b 应用程序开发的双键形态 如图2 4 所示 图2 4W e b 应用中的N I V C 关系图 6 1 在目前流行的W e b 应用程序开发中 视图和模型不直接交互 它们始终通过控制 器来进行 控制器可看作是一个薄的边界层 允许模型和视图通过它来通信 它使得 在代码库中实现清晰的职责分离 提高了代码的灵活性和可维护性 2 2 4M V C 中的设计模式 一个以M V C 为架构的系统包含了很多的设计模式 但是与M V C 最为密切相关 的是下面三种模式 O b S e r v e r C o m p o s i t e 和S t r a t e g y i l o 1 5 1 们 2 2 4 1O b s e r v e r 模式 M V C 通过使用定购 通知的方式分离了M o d e l 和V i e w V i e w 要保证自己显示能 正确地反映出M o d e l 的内容和状态 一旦M o d e l 的内容发生变化 必须有一个机制 来使得M o d e l 能够通知相关的V i e w 使得相关的V i e w 可以在适当的时机刷新数据 这个设计还可以解决更一般的问题 将对象分离 使得一个对象的改变能够影响到另 一些对象 而这个对象并不知道那些被影响的对象的细节 这就是被描述为O b s e T v e r 的设计模式 下面从模式类型 模式目 的 模式结构以及效果四方面来说明O b s e r v e r 设计模式 1 模式类型 O b s e r v e r 模式是对象型模式 同时它也是行为型模式 2 模式目的 定义对象间的一对多的依赖关系 当一个对象的值或状态发生改变时 所有与它有依赖关系的对象都得到通知并自动更新 某一数据可能有多种显示方 式 并且可能同时以不同的方式显示 如图2 5 当通过某一种方式改变了数 据 那么其他的显示都应该能立即知道数据的改变和做相应的调整 3 模式结构 济南大学硕士学位论文 4 效果 1 抽象耦合 目标对象只知道它有一些观察者 每个观察者都符合抽象的O b s e r v e r 类的简单接口 并不知道它们具体属于哪个类 这样使得目标和观察者之间的耦合最 小且抽象 2 支持广播通信 目标发送通知不用指定观察者 如何处理通知由观察者决定 3 可能的意外更新 要处理好更新逻辑 避免错误更新 2 2 4 2C o m p o s i t e 模式 M V C 的一个重要特征就是V i e w 可以嵌套 嵌套的组合视图可用于任何视图可 用的地方 而且可以管理嵌套视图 这种思想反映出将组合的视图与其组件平等对待 的设计 这种设计思想在面向对象领域内被描述成为C o m p o s i t e 的设计模式 下面也 从模式类型 模式目的 模式结构以及效果四方面来说明C o m p o s i t e 设计模式 1 模式类型 C o m p o s i t e 模式是对象型模式 同时它也是结构型模式 2 模式目的 将对象组合成树形结构以表示 部分一整体 层次结构 C o m p o s i t e 使组 合对象的使用和单个对象的使用具有一致性 3 模式结构 基于A J A X 的轻量级W e b 客户端开发平台研究与实现 图2 6C o r a p o s i t e 模式的结构图 4 效果 1 定义了包含简单对象和组合对象的类层次结构 简单对象可以被组合到复杂对 象中 而组合的对象可以再被组合 这样客户端代码中用到简单对象的地方都可以使 用组合对象 2 简化客户端代码 客户端不用知道某对象是简单对象还是组合对象 可以以一 致的方式使用这些对象 3 更容易增加新类型的组件 新的组件可以方便地加入已有组合对象中不用改变 客户端代码 2 2 4 3S t r a t e g y 模式 M V C 的另一重要特征是可以在不改变V i e w 的情况下改变V i e w 对用户输入的响 应方式 这对一个经常需要变更响应逻辑的系统来说是非常重要的 M V C 把响应逻 辑封装在C o n t r o l l e r 中 有一个C o n t r o l l e r 的类层次结构 可以方便地对原有C o n t r o l l e r 做适当改变 创建新的C o n t r o l l e r V i e w 使用C o n t r o l l e r 子类的实例来实现一个特定 的响应策略 要实现不同的响应策略 只要用不同种类的C o n t r o l l e r 实例替换即可 还可以在运行时刻通过改变V i e w 的C o n t r o l l e r 来改变V i e w 对用户输入的响应策略 这种V i e w C o n t r o l l e r 的关系是被描述为S t r a t e g y 的设计模式的一个例子 下面也从模 式类型 模式目的 模式结构以及效果四方面来说明S t r a t e g y 设计模式 1 模式类型 S t r a t e g y 模式是对象型模式 同时它也是行为型模式 1 2 济南大学硕士学位论文 U I 喜 蔓 2 模式目的 定义一系列的算法 并且把它们封装起来 使它们可以互相替换 使 得算法可以独立于使用它的客户端而变化 a 模式结构 图2 7S t r a t e g y 模式的结构图 4 效果 1 S t r a t e g y 类层次为C o n T e x t 定义了可重用的相关算法或行为 2 替代继承的方法 如果直接继承C o n T e x t 给以不同的行为 会将行为加到 C o n T e

温馨提示

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

评论

0/150

提交评论