毕业设计-Flex技术在Web开发中的应用与扩展

上传人:zhan****gclb 文档编号:180682496 上传时间:2023-01-07 格式:DOC 页数:67 大小:577.50KB
收藏 版权申诉 举报 下载
毕业设计-Flex技术在Web开发中的应用与扩展_第1页
第1页 / 共67页
毕业设计-Flex技术在Web开发中的应用与扩展_第2页
第2页 / 共67页
毕业设计-Flex技术在Web开发中的应用与扩展_第3页
第3页 / 共67页
资源描述:

《毕业设计-Flex技术在Web开发中的应用与扩展》由会员分享,可在线阅读,更多相关《毕业设计-Flex技术在Web开发中的应用与扩展(67页珍藏版)》请在装配图网上搜索。

1、长江大学工程技术学院毕业设计(论文)题 目 名 称Flex技术在web开发中的应用与扩展系 部信息系专 业 班 级计算机科学与技术61001班学 生 姓 名指 导 教 师/教授辅 导 教 师时 间2014年1月至2014年6月Flex技术在Web开发中的应用与扩展摘要 传统的Web应用开发是基于B/S模式的,已经不能满足用户对更高的、全方位的用户体验(音频、视频等)的要求。C/S模式的应用又不能满足现代用户在数据共享、协同操作等方面的要求。而Flex框架RIA技术同时具备B/S模式和C/S模式应用的双重优势,很好地满足了现代用户的需求。本文阐述了Flex框架结合Java技术核心知识、思想和架构

2、方法、实现原理。论文重点介绍了以BlazeDS技术实现服务器的Java远程调用和Web消息传递,使得后台的Java应用程序和运行在浏览器上的Web应用程序能够准确、可靠的相互通信。最后,对Flex框架下开发的项目进行测试。从用户体验到应用程序的内存泄露及相关性能问题展开说明和分析。关键词 Flex框架;BlazeDS技术;Web开发技术Application and Extension of Flex Technology in Web Development Abstract The development of traditional Web application is based on

3、 the B/S mode, has been unable to meet the user on the full range of higher, experience (audio, video and so on) requirements. The application of C/S model can not meet modern users sharing, collaborative operation requirements in terms of data. While the Flex framework of RIA technology also has du

4、al advantages of B/S mode and C/S mode application, very good to meet the modern needs of users.This paper describes the Flex framework with Java technology as the core of knowledge, thought and method, realize the principle of architecture. The paper introduces the BlazeDS technology to realize the

5、 Java server remote calls and Web messages, make Java applications and run background in the browser Web applications to communicate with each other is accurate, reliable.Finally, the test on the Flex framework development projects. Description and Analysis on memory leak and performance related iss

6、ues from the user experience to the application.Keywords BlazeDS technology;Flex framework;Web Technology目 录任务书开题报告指导教师审查意见评阅教师评语答辩会议记录中文摘要外文摘要1前言12选题背景1 2.1 Flex在web开发中由来1 2.2 论文实践意义2 2.3 论文主要工作内容与组织结构33 Flex在web开发中的核心技术43.1 Flex与Java数据通信43.2 Flex与网页交互153.3 Flex性能优化183.4 本章组织结构图204 Flex实践项目开发流程214.

7、1 本章组织结构图214.2 实践项目组网设计214.3 Java服务端配置214.4 服务器端实现234.5 客户端实现255 Flex在web开发结果鉴证285.1 Flex与Java数据通信结果鉴证285.2 Flex与JavaScript交互结果鉴证305.3 Flex与Jsp网页交互结果鉴证315.4 Flex垃圾回收结果鉴证326 总结32参考文献33致谢34附录36长江大学工程技术学院毕业设计(论文)任务书系 信息系 专业 计算机科学与技术 班级 计算机科学与技术61001 学生姓名 指导教师/职称 /教授 1毕业设计(论文)题目: Flex技术在web开发中的应用与扩展2毕业设

8、计(论文)起止时间: 2013年9月10日2014年6月1日3毕业设计(论文)所需资料及原始数据(指导教师选定部分)1Tariq Ahmed, Dan Orlando 著,郭俊凤 译, Flex 4实战. 清华大学出版社, 2012.2沈大伟,苗峰,杨旺功 著,Flex 4.0 RIA开发宝典. 电子工业出版社, 2011.3Jermaine G.Anerson 著, 陈武,陈俊 译, Flash+Flex+AIR移动开发入门经典. 清华大学出版社, 2012.4邱彦林 著, AIR Android 应用开发实践, 机械工业出版社, 2012.5贾庆雷,,万庆,邢超著, ArcGIS serv

9、er开发指南基于Flex和.NET, 科学出版社, 2012.6杨占坡,杨铭,翁颖著, Flex 3 RIA 开发详解与精深实践企业级Web应用于AIR桌面应用, 清华大学出版社, 2013.7郑千忠等 著, Flex 4.0 网络大讲堂, 清华大学出版社, 2013.8Michael Labriola,Jeff Tapper,Matthew Boles 著, Flex4 权威指南, 人民邮电出版社, 2011.9聂晓霞著, Flex从入门到精通, 清华大学出版社, 2008.10(美)柯尔, (美)罗宾逊著, 陆军,王俊华译, 学习Flex 4(中文版), 东南大学出版社, 2012. 11

10、张亚飞著, 至理精通Flex网络开发技术, 电子工业出版社, 2009. 12兰天,曲鹏东,孙高飞,姜建卫著, Flex企业应用开发实践, 机械工业出版社, 2010. 13 Joey Lott,DarronSchall,Keith, Peters 著, ActionScript 3.0 Cookbook, Adobe Dev Library, 2012.14王黎著, Flex+JSP Web应用开发实战详解, 清华大学出版社, 2010.15Tariq Ahmed著, Flex4实战, 清华大学出版社, 2012.16Roger Braunstein,Mims H. Wright,Joshu

11、a J. Noble著, ActionScript 3.0宝典, 人民邮电出版社, 2008.17孙晗波著, Adobe Flex 3程序设计指南, 电子工业出版社, 2009.18董龙飞,肖娜著, Adobe Flex大师之路, 电子工业出版社, 2009.4毕业设计(论文)应完成的主要任务(1)掌握flex技术的基本特点,能够完成事例代码,撰写开题报告。(2)概要设计,完成后台数据库与前端JSP、flex(含ajax技术)的数据通信功能(3)详细设计阶段,独立编写业务逻辑代码,实现系统的具体功能(4)搭建测试环境,设计测试用例,分析数据结果(5)完成系统设计,撰写毕业设计论文5任务书下达日

12、期 2013年10月18日 指导教师(签字) 长江大学工程技术学院毕业设计(论文)开题报告题 目 名 称flex技术在web开发中的应用与扩展系 部信息系专 业 班 级计算机科学与技术61001班学 生 姓 名指 导 教 师/教授辅 导 教 师开题报告时间2013 年11月 25 日II前言flex技术在web开发中的应用与扩展学 生:王 翔,信息系指导教师:,信息系 题目来源 结合生产实践 研究(设计)目的和意义我国是一个疆域辽阔的农业大国,农田滴灌每年都需要耗费大量的人力物力来实施,因此对农田滴灌技术进行有效实施和监控是一项非常重要的工作。为了提高我国农田滴灌工作自动化程度,推进农田滴灌信

13、息化进程,建立基于Flex技术的农田滴灌综合管理系统势在必行。过去,随着网络技术的发展,基于JAVA的Android程序开发成为开发的主要方式,这些开发方式基于JAVA之上,由于JAVA本身跨平台能力差、代码编写效率不高、交互能力弱等缺点,使项目在开发过程中具有可移植性差、使用效率不高及维护困难等问题,限制了项目的进一步发展。RIA“富客户端”技术是近年来新兴起的网络技术,具有Android平台与IOS平台可同时运行的优点;REST架构风格是全新的针对网络应用的开发风格,是当今世界一个成功的互联网超媒体分布式系统架构;而Flex技术又是当前最流行的RIA技术之一。针对开发、应用中存在的问题,基

14、于RIA/Flex技术和REST风格架构的开发方式成为发展的新趋势。 本文从农田滴灌工作的业务需求出发,以新疆建设兵团数据库为支撑,采用Adobe公司的Flash Builder 4.7为开发平台,使用Flex作为移动客户端的实现技术,结合FlexView框架,以移动客户端作为实现方法,开发了基于RIA/Flex架构的移动客户端系统智慧农业滴灌管理系统。系统具有农场大棚信息获取、信息传输、信息处理、信息发布及泵房管理、水阀自动开关、智能轮灌决策等功能,实现了农田滴灌业务的信息资源化、传输网络化、决策科学化、指挥快速化、调度实时化,提高了农田滴灌工作效率、管理水平和科学决策能力。 实际应用结果表

15、明,本系统不仅可以满足离线数据处理、远程数据高效处理、自适应复杂网络环境、不同平台间相互协作等技术需求,且具有访问范围广、平台独立、开发效率高、系统成本低、更新简单等优点,并融合了桌面应用程序的丰富性和控制性,使得传统手机应用程序和RIA模式的各自优点很好的结合起来,减少了系统和用户的操作响应时间。本文的研究为今后RIA技术在农田滴灌管理系统中的应用做了积极探索,具有一定的参考和示范作用。三、 阅读的主要参考文献1Tariq Ahmed, Dan Orlando 著,郭俊凤 译, 2012. Flex 4实战. 清华大学出版社, 5672沈大伟 苗峰 杨旺功 著,2011.Flex 4.0 R

16、IA开发宝典. 电子工业出版社, 4753Jermaine G.Anerson 著, 陈武 陈俊 译, 2012. Flash+Flex+AIR移动开发入门经典. 清华大学出版社, 3464邱彦林 著, 2012. AIR Android 应用开发实践, 机械工业出版社, 3475贾庆雷, 万庆, 邢超著, 2012. ArcGIS server开发指南基于Flex和.NET, 科学出版社, 2416杨占坡, 杨铭, 翁颖著, 2013. Flex 3 RIA 开发详解与精深实践企业级Web应用于AIR桌面应用, 清华大学出版社, 4217郑千忠等 著, 2013. Flex 4.0 网络大讲

17、堂, 清华大学出版社, 5108Michael Labriola,Jeff Tapper,Matthew Boles 著, 2011. Flex4 权威指南, 人民邮电出版社, 3519聂晓霞著, 2008. Flex从入门到精通, 清华大学出版社, 51310(美)柯尔, (美)罗宾逊著, 陆军,王俊华译, 2012. 学习Flex 4(中文版), 东南大学出版社, 44011张亚飞著, 2009. 至理精通Flex网络开发技术, 电子工业出版社, 77012兰天,曲鹏东,孙高飞,姜建卫著, 2010. Flex企业应用开发实践, 机械工业出版社, 32113 Joey Lott,Darro

18、n Schall,Keith Peters 著, 2012. ActionScript 3.0 Cookbook, Adobe Dev Library, 58814王黎著, 2010. Flex+JSP Web应用开发实战详解, 清华大学出版社, 35015Tariq Ahmed著, 2012. Flex4实战, 清华大学出版社, 58516Roger Braunstein,Mims H. Wright,Joshua J. Noble著, 2008.ActionScript 3.0宝典, 人民邮电出版社, 43817孙晗波著, 2009. Adobe Flex 3程序设计指南,电子工业出版社,

19、 43618董龙飞 ,肖娜著, 2009. Adobe Flex大师之路,电子工业出版社, 558四、 国内外现状和发展趋势Flex一直是开发RIA程序的先进解决方案 也适合需要多媒体,具有丰富表现力和吸引力的用户体验的网页应用。我们已看到大量实例:程序配置,电子商务网站,游戏,电子学习体验,银行服务,业务监控,照片编辑,音频/视频,辅助工具,业务运作支撑系统,全部使用Flex构建。Adobe坚信,Flex已是最棒的开发复杂、可靠企业应用的技术:业务监控、业务运作支撑系统、实时交易程序、和台式机替代品的程序,已经是领先的医疗保健,金融服务,电信公司的标准技术。Adobe将继续大量投资Flex,

20、为企业开发更强大的功能,确保企业用能够提供更棒的表现力,更强大的程序。在以下即将发布的新功能中,你会看到我们承诺的改进:完善Spark组件,对残疾人的支持,集成的构建系统、性能分析工具和集成的新一代编译器,使得Flex仍将是构建企业程序的一哥。Adobe将继续专注于Flash运行时的性能、本地扩展、新组件、可扩展的皮肤,支持更多平台,改进开发流程。下一个主要版本中,Adobe预计将支持在一些特定情况下,开发全面的本地程序。随着移动市场的增长,市场需要开发工具能够只开发一次,就可运行在多种不同硬件规格的不同平台上。Adobe面临这样一个巨大的机遇,Adobe希望把Flex技术介绍给很多新的开发人

21、员,同时将支持现有的Flex开发人员将其程序移植到移动设备。五、 主要研究(设计)内容、关键问题及解决思路5.1 主要研究(设计)内容(1)掌握flex技术的基本特点,能够完成实例代码,撰写开题报告。(2)概要设计,完成后台数据库与前端JSP、flex(含ajax技术)的数据通信功能(3)详细设计阶段,独立编写业务逻辑代码,实现系统的具体功能(4)搭建测试环境,设计测试用例,使用测试jmeter工具完成测试,分析数据结果(5)完成系统设计,撰写毕业设计论文5.2 关键问题(1)使用BlazeDS实现实时通信应用,数据管理服务和消息服务。(2)使用FABridge,实现Ajax和flex技术结合

22、起来,使用Ajax作为数据源提供给flex。5.3 解决思路(1)使用BlazeDS开源框架,通过组件与所有的HTTP程序交互,实现数据的交互;对从数据库取得的数据进行处理,转换成flex能直接接受的数据类型如:数组行、xml型,Object型。(2)数据管理先定义一个DataService组件指向目标服务,调用DataService组件的fill()方法请求数据并填充一个数据模块,最后将一个UI组件绑定到数据模块。(3)FABridge是由一个ActionScript库和一个JavaScript库构成的。即”FABridge.As”文件和” FABridge.js”文件。通过定义两个不同的客

23、户端(flex客户端和JavaScript客户端)的对应属性和方法,实现不同客户端的相互调用。六、 完成毕业设计(论文)所必须具备的工作条件有一台能连接互联网的计算机设备和一台基于Android或IOS平台的移动终端设备,并且需要若干个ZigBee硬件终端模块做支撑好进行程序的调试工作。由于数据库不在本地所以还需要连接远程数据库来进行数据的增删查改。(1) 预期成果(达到目标)在Flex中可以针对每个页面建立一些MXML Component文件,再将若干MXML Component文件组织成一个MXML Module文件,最后若干MXML Module文件可以包含在作为主界面的Applicat

24、ion应用中。使用Flex+JavaWeb达到部署简单,安全性高,扩展灵活,交互丰富等。对数据也能实现异步刷新。八、 工作的主要阶段、进度与时间安排2013-09-102013-10-10Jsp+Ajax实现网页的异步刷新2013-10-112013-11-10Flex+Jsp通信数据传递2013-11-112013-12-10Flex+jsp+Ajax数据异步刷新2013-12-112014-01-20Flex项目与Javaweb项目分离2014-02-152014-03-31Flex大型数据维护2014-04-012014-05-15整合项目,代码完善九、 指导教师审查意见Flex技术在W

25、eb开发中的应用与扩展1前言Flex 是Adobe公司支持RIA(Rich Internet Applications)开发和部署的平台,它是一系列发展中的技术和产品线的概括词,试图通过提供一个程序员们已经熟知的工作流和编程模型,让程序员比从前更快、更简单地开发动画及RIA应用。在多层式开发模型中,Flex应用属于表现层。Flex的语言和文件结构可以把应用程序的逻辑从设计中分离出来。传统Web应用的开发是基于B/S模式的,Web应用的表示层建立于HTML页面之上,而HTML只适合于文本,B/S模式的应用已经不能满足用户对更高的、全方位的用户体验(音频、视频等)的要求。C/S模式的应用又不能满足

26、现代用户在数据共享、协同操作等方面的要求。在如今这个以用户为中心的时代,用户体验越来越重要用户不仅要求应用要像C/S模式的应用那样具有良好的交互性,而且要求应用要像B/S模式的应用那样具有部署灵活和跨平台的优势。RIA技术便是在这种需求下应运而生的它同时具备B/S模式和C/S模式应用的双重优势,很好地满足了现代用户的需求。2选题背景2.1 Flex在web开发中由来B/S架构已凭借其易于部署、维护和可扩展性强等特性成为企业应用的主流架构模式。在B/S企业应用开发平台中,JavaEE以其开放的标准、跨平台的优势赢得了广大企业应用开发者的青睐,经过多年的发展已相当成熟和稳定,并拥有非常丰富的开源框

27、架,是目前企业应用(尤其是大规模企业应用)的首选开发平台。但是,几乎所有B/S企业应用开发者都意识到了这个问题:“JavaEE中的展现层(人机交互界面)技术不太理想,不论是早期的JSP还是近年来推出的JSF,都难以满足企业应用中复杂的人机交互界面开发的需求。”企业应用中,除了存在复杂的业务逻辑之外,也存在一些复杂的“界面逻辑”,也就是控制人机交互的逻辑。比如以下需求:以表格形式大批量输入数据时,用户期望回车之后就能够自动将输入焦点跳转到同一行的下一格中;当在最后一格按下回车后,能够将输入焦点跳转到下一行的第一格中。当数据表格因数据列太多而无法全部显示时,用户期望能够锁定左侧几列,当拖动水平滚动

28、条时,被锁定的几列不动,其他列滚动,这样更方便用户查看数据。用户期望在当前窗口中弹出一个“模态”窗口以输入一些数据,在用户没有关闭弹出窗口时,不能操作父窗口。从一个列表中选择几行数据,然后通过鼠标“拖动”到另外一个列表中。以上几个特点都是企业应用中常见且典型的人机界面交互场景,它们在传统的C/S企业应用中广泛存在,已被广大用户所习惯和接受。然而,在基于HTML的人机界面交互技术中,它们都要使用JavaScript来完成,其难度较大,有时还受限于浏览器的种类和版本,并且由于缺乏有效的跟踪调试工具,程序调试起来非常困难。一旦用户对界面不满意,修改工作几乎会让人疯狂。利用JSF进行过这样的人机界面开

29、发,非常沮丧,受了很大的挫折,开发复杂的人机界面已经成了开发者挥之不去的“噩梦”。广大用户和开发者们迫切要求改进人机交互界面质量和开发效率的呼声是推动技术发展的巨大动力。2002年3月,RIA(RichInternetApplication,富因特网应用)这一概念在ColdFusion(被Macromedia公司收购)创始人提交给Macromedia公司(被Adobe公司收购)的白皮书中诞生了。2004年,Adobe推出了其RIA开发平台Flex1,随后在2006年又推出了Flex2。Flex2具有里程碑意义,是RIA领域的一个标志性产品。使用Flex2开发的应用以其华丽、轻巧、灵动的用户体验

30、在Web开发领域获得了巨大成功。从此RIA成为近年来炙手可热的技术。RIA技术的诞生主要为了解决当前Web应用中人机界面单调、交互性弱、开发效率低下、用户体验差等一系列问题,旨在开发出在浏览器下能够运行同C/S应用一样甚至远超C/S应用交互能力的Web应用。2.2论文实践意义充分展现了Flex在Java web混合开发中的优势:可操作性方面:Flex富客户端的界面和操作性将能够和传统的C/S相媲美,提供更丰富、更友善、易用性更强的界面给用户,同时互动性更好,而开发效率却大为提高。架构方面:用XML来描述GUI的外观,GUI和逻辑相分离,真正意义上的MVC,第 69 页 (共 67 页)选题背景

31、使得应用开发的结构更为清晰。前端界面使用XML来描述,界面的控制由ActionScript来负责,后端的应用逻辑则封装在后端中间件中,与Flex前端界面相分离。可拓展性方面:Flex做为前端的客户组件,非常容易与各类后端技术相结合,例如AMF、PHP、Java、.Net、ColdFusion等,这样后端应用服务可以规划为类似的“中间件”组件,将业务逻辑封装其中,中间应用服务组件的选择预留给用户极大的选择空间,方便而灵活。在性能方面:传统的B/S有各种方式来提高应用服务器的效率,但Flex框架的解决方案与此不同,能够在性能方面有更大的提升。众所周知,传统Web应用客户端每次刷新页面都会对服务器产

32、生请求,服务器要将新的HTML和HTML中包含的图片传递给Client,当请求数量较大时,动态生成HTML及下载图片的过程都会严重地消耗着服务器的资源(CPU、IO、Memory、Network)。而新一代富客户应用是通过第一次运行时将应用一次性下载到本地,所有的GUI都在本地运行,运行过程中只产生少量的数据更新请求,而不需要服务器端实时地产生刷新的页面,也就不存在服务器对HTML等内容的动态构造,这样后端服务器将完全专注于数据逻辑的处理,这样充分利用客户端本地机器的CPU,并最大限度的减少网络带宽。2.3论文主要工作内容与组织结构(一) 论文主要工作内容Flex技术在web开发中的应用与扩展

33、,核心技术内容包括: 研究熟悉BlazeDS框架 分析BlazeDS体系,理解它的内部机制 Flex通过BlazeDS与Java数据通信 Flex与Js、JSP、Ajax之间的交互(二) 论文组织结构第一章:阐述论文工作背景与研究意义,并进行相关文献综述。最后给出了论文的主要工作内容以及论文的章节安排。第二章:深入分析研究了相关的关键技术,是整个论文的技术支撑。第三章:提出论文的总体设计方案。第四章:提出论文中涉及的核心技术。第五章:展示论文在实践中的结果图片并分析。最后,对论文工作进行了全面总结与展望。第一章前言第二章选题背景第三章文中涉及的核心技术第四章实践项目开发流程第五章论文在实践中的

34、结果图片并分析第六章对论文工作进行了全面总结与展望图1 论文结构图3 Flex在web开发中的核心技术3.1 Flex与Java数据通信3.1.1 BlazeDS框架简介BlazeDS是Adobe公司服务器端远程访问和消息服务技术的开源版本。BlazeDS的远程访问技术使用响应模型,使Flex或Adobe Flash应用访问服务器端Java对象如同访问本地对象一样。它可以整合存在于服务器的Java安全策略,并且提供在 ActionScript和Java数据类型之间透明的数据转换与传输服务。BlazeDS的消息服务支持建立在HTTP协议之上的消息发布(publish)及订阅(Subscribe)

35、。Adobe Flex 或Ajax客户端通过订阅一个或多个主题(Topic)以接受服务器推送来的数据。使用此服务,开发者能够创建实时协作或数据推送应用程序。BlazeDS是开源的,提供数据访问的中间层技术,是Adobe LiveCycle Date Services的一个子集。完整的BlazeDS应用一般包含前端Flex应用层和后端服务器应用,而BlazeDS则是连接这两者的纽带。Flex应用程序可以通过BlazeDS获取服务器数据,后端服务器应用也可以借助BlazeDS提供的功能,主动向前端Flex应用推Flex在web开发中的核心技术送数据。Web ServerFlex应用程序业务逻辑或服

36、务BlazeDsAIR应用程序Web 应用程序图2 BlazeDS服务流程BlazeDS功能和优势:更加容易连接Flex 或Adobe AIR应用程序和后端的Java 逻辑;为快速响应的应用程序提供高性能的数据传输;基于HTTP协议的实时数据推送;通过扩展现有消息服务结构,支持发布/订阅模式的消息服务;免费且开源;BlazeDS良好的稳定性和可扩展性使得我们能够重用现有的Java服务器端业务逻辑。BlazeDS功能特色:Blaze DS的核心功能包括远程过程调用服务和消息服务。围绕这两个功能,Blaze DS还提供配置服务、安全服务接口和日志服务等增强功能。(1)远程过程调用服务远程过程调用(

37、Remote Procedure Call, RPC)服务通过调用返回的形式访问外部数据。Flex应用程序使用RPC组件访问BlazeDS提供的RPC服务。Flex包含三种类型的 RPC组件:HTTPService、WebService和RemoteObject。 HTTPService组件以标准的HTTP请求(GET、POST)访问位于服务器的URL,调用结果一object、array、e4x、flashvars、text等格式返回。HTTPService组件虽然可以不通过BlazeDS而直接访问位于服务器端的URL,但是这样就无法获取BlazeDS提供的跨域访问、集中式的安全控制和日志等服

38、务。在服务器端BlazeDS使用HTTPProxyService、HTTPProxyDestination和HTTPProxyAdapter协助完成前端HTTPService组件的RPC请求。WebService组件支持访问发布的SOAP兼容的WebService,请求参数和返回结果都以SOAP格式封装。在服务器端BlazeDS使用HTTPProxyService、HTTPProxyDestination和SOAPAdapter协助完成前端WebService组件的RPC请求。 Remote Object组件允许Flex应用程序访问服务器端的Java对象,请求参数和返回结果都会被Blaze D

39、S透明地转化成Java对象和ActionScript对象,它是企业应用中效率最高、最常用的RPC组件。在服务器端BlazeDS使用RemotingService、Remoting Destination和Java Adapter协助完成RemoteObject组件的RPC请求。(2)消息服务 Flex应用程序使用客户端消息API发送消息到定义在BlazeDS服务器中的destination,并从它接受消息。消息在Channel中传输,在Endpoint中处理。Blaze DS亦可以将消息推送到连接至它的客户端,此时BlazeDS使用destination广播消息,所有订阅的Flex应用程序都可

40、以收到消息。 Blaze DS的消息服务器还可以借助一个JMSAdapter支持嵌入或外部的JMS服务,使用JMS服务的主题(topic)和列队(queue)。(3)配置服务 在我们的系统中,对于第三方组件或框架的调整,一般可以通过两种方式进行,一种方式是改写组件及行为,另一种方式是修改受组件支持的参数,从而改变组件的默认行为。 后一种方式需要组件或其容器本身支持参数化。由于不需要修改源代码,而且只能在组件允许范围内进行修改,它应用简便相对安全,因此现代的大多数组件都内置了外部化的参数配置服务,通用的或应用范围广的自己和框架更是如此。 作为Java与Flex通信的中间层服务,BlazeDS支持

41、通过XML文件配置调整其内部组件的行为,也支持通过XML文件配置插入兼容的自定义组件。配置文件在BlazeDS启动时被加载,并被应用到相应的组件上,BlazeDS还允许在运行时进行配置。(4)安全服务接口 BlazeDS本身不提供安全服务,但是可以使用其提供的安全服务接口集成自定义或标准JavaEE应用服务器的验证与授权服务。 BlazeDS的安全服务接口可以验证Flex应用的用户合法性,并且只允许合法用户执行BlazeDS公布的经过授权的操作。 BlazeDS还提供了基于HTTPS的安全加密通信机制,保证Flex应用在服务器的通信过程中的敏感信息不易被窃听。(5)日志服务 在应用开发过程中,

42、一个功能强大的支持调试的IDE可以大大提高开发效率。但是有时候我们需要在不中断程序运行的情况下进行调试,日志为我们提供了很好的解决方案。提供记录得到的详细的运行信息,不但可以用于调试,甚至在系统上线后也能帮助我们迅速发现问题。 BlazeDS的日志服务可以记录BlazeDS在运行过程中进行的活动或遇到的问题。为了不分散关注点,不影响运行效率,还允许对日志的级别、目标、类别进行配置。3.1.2 BlazeDS体系结构一个BlazeDS应用通常包括客户端Flex应用程序和服务器端Java EE应用。在客户端,由Flex RPC或Message组件发起会话请求,由Channel将参数或命令使用指定的

43、网络协议(HTTP或HTTPS)与服务器端进行会话;在服务器端,由一个Servlet统一接收所有Channel的请求,然后根据Channel请求的URL将请求分发给相应的Endpoint,最终将请求转换成适配器(Adapter)的源客户组件能识别的命令,这些客户组件可能是Java Object、Web页面、Web Service或JMS组件等。通过自定义Adapter,可以支持更多的客户组件。 如果我们将客户端和服务器端连接起来,我们就会发现将整个BlazeDS应用的架构呈哑铃形。哑铃的一端是Flex组件,另一端是各种Adapter及其连接的后端组件而中间的Channel和Endpoint则构

44、成了BlazeDS的核心。这种结构使Blaze DS在保证核心稳定收敛的情况下灵活发散,具有很强的适应性。BlazeDS把任务划分至合适的粒度,并将这些任务分配给若干组件,通过组件间的相互配合和精密协作,共同完成客户端与服务端的通信任务。(2) Operation和AsyncRequestOperation代表了远程服务中的单个方法,RemoteObject委托mx.remoting.Opration,而WebService则使用mx.rpc.Operation都是从mx.rpc.AbstaactInvoker继承而来的。AbstaactInvoker是所有远程过程调用的抽象基类。由于HTTP

45、Service访问的是远程URL,并不涉及远程方法调用,因此被设计成直接从AbstaactInvoker继承。 AsyncRequest则提供这样一种机制:它允许对远程Destination进行多个请求,并在服务器处理完请求后回调请求者、我们知道,Flex的远程调用都是异步的,不能保证请求与响应以同一顺序完成。设想A和B依次发出同一Destination的远程调用请求,如果B请求的响应先于A返回,那么AsyncRequest亦可以保证对B请求的响应回调B,而对A请求的响应回调A。AbstaactInvoker借助AsyncRequest进行远程调用,因此也就获得了AsyncRequest的这一

46、能力。AsyncRequest是一个Producer,也就是说,它是一个消息的生产者,即可以通过Channel讲消息传输到服务器端。(2)Message 消息,特指以Blaze DS能是别的格式封装的数据,包括消息头和消息体。消息头一般用于储存消息的处理指令,消息体包含传输的业务数据。Flex应用和BlazeDS之间通过消息通信。消息的定义同时以Actionscript代码和Java代码的形式存在,并在两种代码形式之间透明地序列化和反序列化。所以,熟悉Flex的读者可以浏览Flex ASDoc中的mx.messageing.message包,熟悉Java的读者可以阅读BlazeDS的JavaD

47、oc中的flex.messageing.message包来查看消息的定义。 Message接口定义了消息的基本数据结构,最重要的属性就是destination和body,前者表示消息的目的地,后者表示消息的内容;另一个重要的属性messageId则唯一标识了一条消息。AbstractMessage抽象类实现了对这个数据结构的通用操作,从它开始出现了分支。其中的RPCMessage是远程访问客户端发出的消息的基类。它的三个子类分别对应了Flex中的三个远程访问组件:Remote Object、HTTPSercive和WebSercive。AsyncMessage则用于消息服务。同时也是服务器端返

48、回消息AcknowledgeMessage的基类。在调用失败时,BlazeDS使用EroorMessage封装错误信息。CommandMessage较少使用,主要用来传输内部命令,比如连接和断开、登录和注销以及订阅和取消等动作。(3)Produce和Consumer Produce和Consumer用于消息服务,前者是消息的生产者,用来发布消息,后者是消息的消费者,用来订阅消息。两者都有属性destination和subtopic。Destination指定了消息的远程目的地,subtopic则限定了消息的类别。 如果使用JMSAdapter连接JMS服务,subtopic将不可用,但是可以通

49、过附加消息头,同时设置Consumer的selectoer来过滤消息。要发布消息,需要创建一个mx.messageing.AsycMessage的消息实例,然后调用Producer.send方法。在此之前,必须指定Producer的destination。 使用Consumer.subscribe来订阅消息,一旦订阅,就可以接收Producer发布的消息。接收消息有两种方法:主动接收和被动通知,如果使用实时或轮询Channel,那么一旦有消息,Consumer.unsubscribe取消对消息的订阅。(4)Channel和ChannelSet 与Message不同的是,Channel的定义只存

50、在前端,即在Excel应用中。Channel的作用是帮助我们传输消息。如果我们把消息看做日常生活中的自来水,那么Channel就是家中的自来水管,消息的传输就是水在水管中的流动。Channel使用标准的URL与Endption通信。不借助Channel,我们自己也可以编写大量代码来将消息传输到后端。(5)MessageBrokerSevelet MessageBrokerSevelet以sevelet的形式注册到JavaEEWeb服务器中,它统一接收前端Channel发送的HTTP请求,然后根据请求的URL将消息反而分发给对应的Endption,在Endption对消息处理完毕后将结果写入HT

51、TP响应流。 MessageBrokerSevelet启动时需要载入BlazeDS的配置文件并验证器正确性,只有配置正确才能正常启动。在接收到HTTP请求后,MessageBrokerSevelet的service方法负责处理,并将HttpServeletRequest、HttpServeletResponse等对象保存到flex.messageing.FlexContext的线程对象中,然后验证客户端的身份(若果需要的话),调用Endption处理请求,最后清除FlexContext中当前线程保存的环境信息。FlexContext是一个线程安全的容器,在BlazeDS的整个处理过程都可以通过

52、它获得线程相关的对象,如HttpServeletRequest、HttpServeletResponse、FlexClient、FlexSession对象等。(6)Endption Endption就是消息传输的接收器。继续上面的比喻,Endption可以看做管道的出水口,它是水在管道中流动的最后一站。就像沿着水管能找到水口一样,通过Channel必然能够找到它的Endption。 BlazeDS为前端Flex中定义的每种Channel都定义了相应的Endption。(7)Service Endption并不真正处理消息,它将处理过程委托给service。前面说过,Channel和Endpti

53、on是协议相关的消息通道,如果Endption直接处理消息,那么会使协议和消息类型耦合。BlazeDS将消息交给service处理的好处就在于分离了协议和消息类这两个正交的关注点。 Endption在接收到消息时会根据消息的destination获得适合的service,然后调用service。serviceMessage方法处理消息。 BlazeDS定义了RemotingService、HTTPProxy、Message Service三类service,分别处理前端RemoteObject、HTTPService和WebService、Producer等组件发起的请求。(8)Destina

54、tion和Adapter Destination和Adapter都是service的子组件,destination表示消息的目的地,是客户组件(JavaObject、WebService或JMS等)在BlazeDS中的抽象,Adapter用于适配service和客户组件。因此,依据destination使用的Adapter的不同,它能够代表的客户组件也不同。 Service是为了分离协议和消息类型两个关注点而引入的,Adapter则是为了解耦消息类型和消息的处理方式。对于一种类型的消息可以有不同的处理方式,典型的就是ActionScriptAdapter和JMSAdapterMessage都处

55、理AsyncMessage,但是JMSAdapter可以连接JMS服务以提供更加健壮、稳定的消息服务。同样,对于处理RemotingMessage的JavaAdapter,,如果有更高效的匹配对象的规则,我们也可以将其替换成自定义的Adapter。 Service通过消息的destination找到设定的Adapter,并且调用adapter.invoke方法来激活destination代表客户组件。3.1.3 Flex+Java架构表1 应用主要分层应用主要分层应用层次职责简介展现层主要负责信息展示和人机交互的相关逻辑领域层主要完成应用业务逻辑、是系统的核心部分数据源层负责数据的提取和持久化

56、展现层主要负责信息展示以及用户与软件之间的交互逻辑,“展现层”接受用户输人并将用户的意图转换为对“领域层”或“数据源层”逻辑的调用。领域层也被称为“业务逻辑层”,主要解决应用所针对业务领域的问题。该层负责校验来自“展现层”的输入数据,根据“展现层”用户指令进行业务逻辑处理,调用“数据源层”的逻辑实现数据的访问和持久化。数据源层主要负责数据访问和持久化,数据可能来自于数据库或者消息系统。对千绝大多数企业应用来说,数据源层主要负责同数据库系统的交互。Flex框架与Java应用中,“展现层”逻辑完全运行在客户端的Flash虚拟机中,而“领域层”和“数据源层”逻辑则运行在服务器端的Java虚拟机中。F

57、lex+Java客户端系统与服务端系统完全用不同的语言实现(图3),因此系统是异构的。同时,客户端代码运行在客户端的ActianScript虚拟机中,而服务器端代码则运行在服务器上的Java虚拟机中,因此系统又是分布式的。这与我们开发传统Web (JSP/Servlet)应用(图4)完全不同,传统Web (JSP/Servlet)应用中所有Java代码,包括业务逻辑代码和生成人机界面的代码都在服务器Java虚拟机中执行。客户端Flash虚拟机 服务器端Java虚拟机展现层服务器端Java虚拟机展现层领域层领域层数据源层数据源层图3 Flex+java架构图4 传统web架构基一传统Web (J

58、SP/Servlet)技术进行开发,很多开发者已经习惯了“接受客户端的请求,然后执行业务逻辑,最后输出人机界面”这种工作模式。基于JSP技术的MVC框架,比如Struts ,JSP等,都是基于这种工作模式开发的。因此,Flex+Java所开发的B/S应用与传统Web (JSP/Servlet)所开发的B/S系统最大的区就是:使用Flex+Java开发的B/S应用系统中,B系统(客户端系统)和S系统(服务器端系统)完全分离,各自独立地运行在不同的CPU和虚拟机中。B系统主要负责“展现层”逻辑,而S系统主要负责“领域层”和“数据源层”逻辑。如何进行通信和传递数据是我们比较关注的问题。使用Flex+

59、Java开发基于B/S结构企业应用,客户端和服务器端的通信协议是我们所熟知的HTTP协议在Flex中,基于HTTP协议访问服务器的通信组件有三个:HttpService,WebService,RemoteObject。HttpService 组件可以调用很多不同技术的服务端页面,比如JSP, ASP, PHP, Java Servlet,ColdFusion Page等。在大多数情况下,使用HttpService 访问服务器端页面来完成Flex客户端与服务器端的数据交互,服务器端返回的结果一般都是XML格式的数据。同HttpService类似,Flex应用可以调用URL所表示WSDL 1.1服务,返回SOAP 1.1格式的调用结果。SOAP也是基于XML格式规范,因此。使用HttpService和WebService组件同服务器之间的交互都是通过XML进行的。使用HttpService和WebService无需第三方框架,在服务器端直接编写相应的服务即可,所以比较容易理解和使用。但是,无论使用HttpService还是WebService访问服务器,Flex客户端和服务器之间传递的都是XM

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!