【VB开源代码栏目提醒】:网学会员VB开源代码为您提供面向RIA的MVC架构设计与实现 - 硕士论文参考,解决您在面向RIA的MVC架构设计与实现 - 硕士论文学习中工作中的难题,参考学习。
华中科技大学 硕士学位
论文面向RIA的MVC架构设计与实现 级别:硕士 专业:计算机应用技术 指导教师:甘早斌 20060428 华 中 科 技 大 学 硕 士 学 位 论 文 摘 要 RIA(Rich Internet Application,富因特网应用)是集桌面应用程序的最佳用户界面功能与 Web 应用程序的普遍采用和快速、低成本布署以及互动多媒体通信的实时快捷于一体的新一代网络应用程序。
基于软件架构的复用技术和软件架构的一般设计方法,针对 RIA 应用进行领域需求分析,并结合面向服务思想建立了 RIA 应用的分布式模型 RIADFRich InternetApplication Distribution Framework。
RIADF 定义了 RIA 应用的基本设计目标和客户端/服务器基本功能模块,确定了模型基于实例和基于服务的混合交互模式,并在此基础上定义了三种基本服务类型:应用程序定义请求服务、业务逻辑请求服务以及 WEB 数据服务。
RIADF 对面向 RIA 的应用开发有一定的理论指导意义。
利用 MVC 的 Web 服务器端软件框架能够有效的提高 Web 应用程序的可复用性 基于 RIADF 模型,经过对现有的服务器端 MVC 架构的分析对比,并结合 WebService、设计模式、组件协作等技术,建立了一个易复用、可进化的面向 RIA 的 MVC架构 RIADF/MVC,以简化面向 RIA 应用的开发。
RIADF/MVC 架构的重要特点是以客户端视图为中心,采用 XMLRPC 协议作为客户端与服务器端的互操作协议,实现对视图的细粒度级别控制。
在这个架构之下,具体了基于 ASP.NET的原型系统,给出了架构各主要组成部分的技术要点和实现细节。
项目应用实例给出了基于 RIADF/MVC 架构的一般开发过程,验证了 RIADF/MVC 的可用性和对软件复用的初步支持。
关键词:富因特网应用,模型-视图-控制器,架构 I 华 中 科 技 大 学 硕 士 学 位 论 文 Abstract RIARich Internet Application is a new generation of web applications whichintegrates best UI functions of desktop applications and the popularity and fast、low costof deployment of web applications and the interactivity of real-time multimedia. Based on reuse technology and design methods of software frameworks and service-oriented idea the RIA domain requirement is analyzed and RIADF Rich InternetApplication Distribution Framework is put forward. RIADF defines the basic designgoals and basic functions modules of client/server in RIA as well as a combined model ofinstance-based and service-based interactions between clients and servers. RIADF alsodefines three types of services: application definition request service businesss logicrequest service and web data service. RIADF gives out basic theory guidelines for RIAdevelopment. Web frameworks based on MVC design model have great reusability. Based onRIADF a new framework RIADF/MVC is put forward to ease RIA developmentcombined with web service design patterns component interaction technologies. Thegreatest feature of this framework is that it focuses on the client-side view and usesXMLRPC protocol as basic interaction protocol and the framework has implementedfine-grained manipulating of client view components. A prototype system of RIADF/MVChas been designed based on ASP.NET and the details of design and implementation of theframework including some important components have also been outlined. A real projectdemonstrates the basic development diagram based on this framework and it also verfiesthe reusability of the framework and basic support of software resue.Key words:Rich Internet Application Model-View-Controller Framework II 独创性声明 本人声明所呈交的学位
论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除文中已经标明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到,本声明的法律结果由本人承担。
学位
论文作者签名: 日期: 年 月 日 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,即:学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权华中科技大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位
论文。
保密□ ,在_____年解密后适用本授权书。
本
论文属于 不保密□。
(请在以上方框内打“√”)学位
论文作者签名: 指导教师签名:日期: 年 月 日 日期: 年 月 日 华 中 科 技 大 学 硕 士 学 位 论 文 1 绪 论1.1 研究背景、目的及意义1.1.1 研究课题来源 本课题研究内容是:面向 RIA 的 MVC 架构设计与复用研究。
本课题来源于华中师范大学 e-learning 项目――教育资源管理系统 ERMS,该项目的主要应用目标之一是为在线教育提供丰富的教学交互能力。
为了能够为应用提供富体验的用户界面UI、减轻开发难度,以及为后续研发提供基础构件,项目组基于 ASP.Net 平台设计并实现了面向 RIA 的 MVC 架构 RIADF/MVC,实践证明该架构提高了项目的开发效率,有很高的复用价值。
1.1.2 研究背景、目的及意义 随着计算机技术的进步和 Internet 网络的普及,通过 Web 向客户提供服务成为现代软件发展的一种趋势,传统的商务活动也在向 Web 转化。
在可以预见的将来,这种基于 Web 的服务一定会在相当程度上取代传统应用而在人们的生活中占据主导地位。
传统的 Web 应用程序是基于 HTML 页面和服务器端数据传递的模式。
HTML是适合于文本的,随着 Web 应用程序复杂性越来越高,传统的 Web 应用程序已渐渐不能满足 Web 浏览者更高的、全方位的体验要求了,这也就是被 Macromedia 公司所称之为的“体验问题” 。
(Experience Matters) 此时一种被称为 RIA1Rich InternetApplication,富因特网应用)的具高度互动性和丰富用户体验的网络应用程序出现了。
Macromedia 公司也借此机会开发了相关的技术和开发工具,促进 RIA 的开发和普及。
RIA 是集桌面应用程序的最佳用户界面功能与 Web 应用程序的普遍采用和快速、低成本布署以及互动多媒体通信的实时快捷于一体的新一代网络应用程序。
RIA中的客户端浏览器提供可承载已编译客户端应用程序(文件形式,基于 HTTP 传递)的运行环境,客户端应用程序使用异步客户/服务器架构连接到现有的后端应用 1 华 中 科 技 大 学 硕 士 学 位 论 文服务器,这是一种安全、可升级、具有良好适应性的新的应用模型,这种模型结合了声音、视频和实时对话的综合通信技术使得 RIA 具有前所未有的网上用户体验。
在教育领域,基于体验的研究与应用一直是 e-learning2-3关注的重点,而基于WEB 的富体验设计也一直是应用开发效率低下的重要原因,实际应用市场上存在着企业级的需求与传统的企业级应用开发平台的体验缺乏之间的矛盾。
如何充分利用企业级开发平台的优势,引入富体验到架构设计中,是 e-learning 应用研究的一个主流方向。
MVC4 Model-View-Controller,即模型-视图-控制器设计模式以及基于 MVC的架构或 MVC 架构的应用已相当成熟,如 Microsoft 公司的产品 MFC5 MicrosoftFoundation Class中的 Document-View 结构就是一个典型的 MVC 架构,这是 MVC设计模式在桌面系统中的一个典型应用。
在 WEB 架构领域,如 ASP.NET6、Struts7等企业级开发平台或架构也都是基于 MVC 设计模式的,这些架构在业界已经取得相当成功的应用和普及。
传统的基于 MVC 模式的架构不再适用于面向 RIA 的应用模式,如何对现有架构进行改进以支持 RIA 的应用需求是本课题的研究目的之一,本文将在分析 RIA应用需求后建立 RIA 的应用模型,基于 RIA 应用模型和 MVC 架构模式,设计面向RIA 应用的 MVC 架构,并给出基于 Asp.Net ,最后对该架构的可复用性进行讨论。
1.2 国内外概况与关键技术1.2.1 RIA 1. RIA 概要 企业级应用程序经历了几次系统架构方面的重要转变,在此过程中,客户端的表现能力有起有落。
RIA 大致经历了这样一个发展过程: 1 基于主机的应用程序:应用程序提供基于文本的非图形化用户界面,只有内部人员才能进行访问。
2 客户机/服务器(Client/Server,简称 C/S)应用程序:二十世纪九十年代随 2 华 中 科 技 大 学 硕 士 学 位 论 文着 Windows 的出现和客户端处理能力的增强,出现了客户机/服务器应用程序,它们采用图形用户界面,客户端的数据处理能力比较强。
但由于客户端应用程序需要进行不断的更新,因此部署成本比较高,只能为少数人所使用。
3 浏览器/服务器(Browser/Server,简称 B/S)应用程序:九十年代中期,互联网飞速发展,出现了浏览器/服务器应用程序,Web 的广泛使用解决了 C/S 应用程序部署、和更新的困难。
但由于采用了 HTML 页面形式的用户界面,客户端的数据处理能力较 C/S 应用程序有所回落。
RIA 对用户体验提出更多要求,如丰富的用户界面组件,在无刷新页面之下提供快捷的界面响应时间,提供通用的用户界面特性如拖放式(drag and drop)以及在线和离线操作能力。
RIA 具有的 Web 应用程序的特点包括如:立即布署、跨平台、采用逐步下载来检索内容和数据以及可以充分利用被广泛采纳的互联网标准。
RIA 具有通信的特点则包括实时互动的声音和图像。
客户机在 RIA 中的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算、传送和检索数据、显示集成的用户界面和综合使用声音和图像,这一切都可以在不依靠客户机连接的服务器或后端的情况下进行。
对于企业来说,部署 RIA 的好处在于: 1 RIA 可以继续使用现有的应用程序模型(包括 J2EE 和.NET),因而无需大规模替换现有的 Web 应用程序,便可以轻松构建更为直观、易于使用、反应更迅速并且可以脱机使用的应用程序; 2 RIA 可以帮助企业提供多元化的重要业务效益,包括产提高销量、提高品牌忠诚度、延长网站逗留时间、较频繁的重复访问、减少带宽成本、减少支持求助以及增强客户关系等。
2. RIA 目前的发展态势 在过去的两到三年中,Web 开发人员一直是想构建一种比传统 HTML 更丰富的客户端:一个用户接口,它比用 HTML 能实现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性。
RIA 的出现目标之一是允许我们在因特网上以一种 3 华 中 科 技 大 学 硕 士 学 位 论 文像使用 Web 一样简单的方式来部署富客户端程序。
无论将来 RIA 是否能够如人们所猜测的那样完全代替 HTML 应用系统,对于那些采用 C/S 架构的胖客户端技术运行复杂应用系统的机构和采用基于 B/S 架构的瘦客户端技术部署 Web 应用系统地机构来说,RIA 确实提供了一种廉价的选择。
目前出现的几种比较有实力或者有特点的 RIA 客户端开发技术: 1 Macromedia Flash/Flex Flash 从 6.0 开始 Flash 就逐步具备建立窗体风格的应用程序的功能。
据Macromedia 称已经有 98以上的桌面系统的浏览器都安装了 Macromedia FlashPlayer。
这使得以 Macromedia Flash Player 为客户端的 RIA 可以支持种类广泛的平台和设备。
Flex 是为满足希望开发 RIA 的企业级程序员的需求而推出的表示服务器和应用程序框架,它可以运行于 J2EE 和.NET 平台。
Flex 表示服务器提供基于标准的、声明性的编程方法和流程,并提供运行时服务,用于开发和部署丰富客户端应用程序的表示层。
Flex 开发者使用直观的基于 XML 的 MXML 来定义丰富的用户界面。
该语言由 Flex 服务器翻译成 SWF 格式的客户端应用程序,在 Flash Player 中运行。
2 Laszlo Laszlo 是一个
开源的 RIA 开发环境。
使用 Laszlo 平台时,开发者只需编写名为LZX 的描述语言(其中整合了 XML 和 Javascript),运行在 J2EE 应用服务器上的Laszlo 平台会将其编译成 SWF 格式的文件并传输给客户端展示。
从这点上来说,Laszlo 的本质和 Flex 是一样的。
Flash 是任何浏览器都支持的展示形式,从而一举解决了浏览器之间的移植问题。
而且,在未来的计划中,Laszlo 还可以将 LZX 编译成 Java 或.NET 本地
代码,从而大大提高运行效率。
3 Java SWT Java 已经出现几年了,并且完全支持创建基于窗体的用户界面。
除了 Java 基础类(JFC/Swing)中的用户界面组件之外,开发人员还可以使用来自于 Eclipse Project的 SWT 工具箱和许多第三方工具箱进行开发。
对于图形来说,可以采用 Java 2DAPI:一个非常完整且非常复杂的图形 API。
你可以通过一个 Web 浏览器使用 Java 4 华 中 科 技 大 学 硕 士 学 位 论 文插件软件,或使用 Java 运行时环境中较新的 Java Web Start 技术来部署应用程序。
使用 Java 建立 Rich Client 的主要缺陷是它的复杂性(即使对简单的窗体和图形也要求编写非常烦琐的
代码)和 Java 浏览器插件的低市场占有率。
4 XUL XUL(念作quotzoolquot)是一种基于 XML 的用户界面语言,它来自于 Mozilla 的开放源码项目。
它可用于建立窗体应用程序,这些应用程序不但可以在 Mozilla 浏览器上运行,而且也可以运行在其他描述引擎上,如 Zulu(一个 Flash MX 组件)和Thinleys(一个 Java 实现)。
XUL 描述引擎都非常小(100K 以下),它可以使用 XML数据也可以生成 XML 数据。
XUL 的一个主要缺点在于它目前还没有获得一个主要商业实体的支持。
XUL 最大的优点在于它与 Gecko 引擎的集成(打开了通向大量Web 标准的大门),以及与大多数其它 XML 用户界面描述语言相比它是一种非常具有表达力和简洁的语言。
5 Bindows Bindow 是用 Javascript 和 DHTML 开发的 Web 窗体框架。
Javascript 用于客户端界面的显示和处理,XMLHTTP 用于客户端与服务器的信息传输。
Javascript 在客户端的表现力不容置疑,利用 Javascript 几乎可以实现 Windows 应用程序所能干的大部分事情,XMLHTTP 一直以来常被用于实现quot无刷新quot的 Web 页面,它和JavaScript 配合,可以完成数据从服务器和客户端的传输。
Bindows 的一个主要的缺点是它采用一次全部载入的方式来实现脚本库,在窗口的加载期,需要一个漫长的等待过程,甚至浏览器的进程会产生无响应的情况。
这点 Bindows 根本没有遵循quot用多少去多少quot的准则。
另外,Bindows 采用自已的界面语言,开发人员的学习较长。
近几年的 RIA 研究集中客户端相关技术上,如界面元数据8、客户端界面组件、界面特效等,就 RIA 本身来说,发展还很不成熟,在学术界对 RIA 的分布式应用模型和面向 RIA 的架构研究还比较少,特别是基于现有架构的改进研究比较少,这正是本文提出面向 RIA 的 MVC 架构的切入点。
1.2.2 基于 MVC 模式的架构 对于 MVC 模式的应用研究,不管在桌面应用领域还是在 WEB 应用领域,已经 5 华 中 科 技 大 学 硕 士 学 位 论 文有非常多的成功案例,如微软的 MFC 中 Document-View 结构是一种典型的基于 MVC模式的架构。
在 WEB 应用领域历史来看,经历了经典 MVC Model0、MVC Model1 及 MVCModel2 过程,微软的 ASP 和基于 JAVA 的 JSP 是基于 Model1 的,后来出现的 ASP.NET以及 Struts 等基于 Model2,Model2 是对 Model1 结构的一大改进,本质上来说它们都实现了 MVC 模式,所以主流的基于 WEB 的应用开发架构在核心上都基于 MVC模式。
可以看出,Model2 的三个部分 Model、View、Controller 都在存在于服务器端,并且类似于桌面应用开发,这种模型是基于事件驱动(Event-Driven)9的,客户端事件的解释放在服务器端来进行,事件由控制器来进行捕获并过滤,然后转给相应的事件处理逻辑来完成视图和模型的控制,在服务器端这一过程将伴随着视图的重构和操作控制以及客户端 HTML 映射生成过程,按 RIA 概念,这一过程是同 RIA相悖的,首先视图应当存在于客户端,其次事件的捕获也应当在客户端,再次每一个视图组件应当作为独立实体运行并能与服务器端进行交互。
虽然基于 MVC 模式的变体10或改进研究11-13很多,但从运行时的角度看,它的一大特点是模型、视图和控制器都存在于服务器,客户端浏览器只作为界面视图映射的显示部件,这种模型虽然在运行时和设计时有一致性,易于开发人员理解等优点,但基于这种模型的应用不能满足 RIA 快速开发要求,在客户端/服务器互操作性、服务器执行效率、用户体验(如无页面刷新和界面定制)特性以及分布式计算资源利用上也都存在一定缺陷。
所以如何改进 MVC 模式适应 RIA 有比较可行的应用价值。
1.2.3 软件复用技术 本文关注软件复用技术14,不仅仅是因为我们设计的 WEB 架构本质上是一个架构复用问题,在设计上,还存在基于设计模式、基于控件等级别的复用机制。
软件复用作为软件工程中一个很有活力的领域15,已成为研究和开发的主流方向,在实际应用中,从零开发的软件只占极少数,大多数都可以重用已有的软件。
软件重用是从已有的资源中寻求建造新工程的过程。
6 华 中 科 技 大 学 硕 士 学 位 论 文 软件复用概念的第一次引入是在 1968 年 NATO 软件工程会议上。
近十几年来,面向对象技术的出现并逐渐成为主流技术,为软件复用提供了基本的技术支持。
软件复用的研究也成为热点,被视为是解决软件危机,提高软件生产率和质量的现实可行的途径。
软件复用的对象包括软件开发过程中所使用和产生的各种资源16-18,包括源
代码、各种文档、测试数据、设计方法、体系结构等等,总称为可复用资产。
软件复用就其复用的级别而言,最低层的复用是
代码复用,然后依次为软件库复用,构件复用,架构复用,设计模式19的复用。
各种类型的复用为软件的复用提供不同层次的支持。
面向领域的应用架构的复用是软件复用技术发展的必然结果,现在,这种基于架构的复用已经成为软件生产中最有效的复用方式之一20-22它首先可以被看成是成熟的软件结构的复用,从软件构件技术讲,也可以看成是基于构件的软件的骨架和容器。
设计模式(Design Pattern)描述了软件开发过程中出现的具体问题及相应的经验式解决方案23-25,设计模式提供了精练子系统、部件和它们之间关系的模板,解决了特定背景下一般的设计问题。
一个设计模式描述了一组合作的对象和类,模式的一个重要特点是允许一组合作的对象和类之间具有特定方面的可变性。
设计模式可分为构造型模式、结构型模式和行为型模式26。
本文所提出的 RIADF 模型是对 RIA 应用模式进行建模,实现面向 RIA 的 MVC架构 RIADF/MVC 架构即是结合模式和架构技术的复用的具体应用,事实上,在本架构中还融入了其它的一些设计模式,如在视图协调器中存在着事件监听模式,协调器本身是一个 Mediator 模式,服务中介是一个 Broker 模式等等。
1.2.4 关键技术 1. ASP.NET 微软的 ASP.NET 对 Active Server PageASP进行了很大的改变,不仅使开发者更易于创建动态 Web 内容,还使他们更易于创建复杂而可靠的 Web 应用程序,例如 Web Service。
ASP.NET 是微软的.NET 开发平台的非常关键的组成部分。
ASP.NET 7 华 中 科 技 大 学 硕 士 学 位 论 文的主要目标是降低 Web 应用程度开发的门槛,它采用与降低使用 Visual BasicVB进行 Windows 编程难度大致相同的方.