基于Flex的服务分流框架的研究与应用
2012-11-15黄培泉林坤林
黄培泉 林坤林
1.广东青年干部学院计算机工程系,广东省 广州市 510545
2.辽宁工程技术大学创新实践学院,辽宁省 阜新市123000
基于Flex的服务分流框架的研究与应用
黄培泉1.2林坤林1
1.广东青年干部学院计算机工程系,广东省 广州市 510545
2.辽宁工程技术大学创新实践学院,辽宁省 阜新市123000
基于Flex RIA技术的应用系统,随着在线用户增多,系统将变得越来越慢,甚至出现系统崩溃的现象。为解决该问题而提出一种服务分流框架,将用户的服务进行分类,然后根据不同的服务请求进行业务分流,达到优化系统的目的,使系统更快地响应用户的请求。服务分流框架已经应用于企业开发中,实验表明效果显著。
RIA;Flex;框架;服务分流;富客户端;
RIA; flex;framework; service stream; rich client
引言
RIA(Rich Internet Applications)富互联网应用程序,具有高度互动性、丰富用户体验以及功能强大的客户端。而Flex则是RIA技术的佼佼者。Flex是一个基于组件的开发框架,可以生成一个由Flash Player运行的富互联网应用程序。Flex将基于标准的语言和各种可扩展用户界面及数据访问组件结合起来,使得开发人员能够构建具有丰富数据演示、强大客户端逻辑和集成多媒体的应用程序。[1]
虽然Flex拥有诸多优点,由于其代码最终被编译成SWF文件,用户通过浏览器下载SWF文件,再通过Flash播放器(Flash Player)进行播放,对服务器和客户端的硬件设备都有一定要求,同时不擅长处理复杂的业务流程,主要还是适合展现。
针对上面的问题,为提高客户端及服务端的性能,将用户按服务类型进行分类,达到服务分流的目的。
1 技术背景
Flex 是一个高效、免费的开源框架,可用于构建具有表现力的Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AIR, 运行时跨浏览器、桌面和操作系统实现一致的部署。其起因是为解决传统程序员在开发动画应用方面所面临的困难。[2]
Flex 采用GUI界面开发,使用基于XML的MXML语言。Flex具有多种组件,可实现Web Services,远程对象,列排序,图表等功能;FLEX内建动画效果和其它简单互动界面等。相对于基于HTML的应用(如PHP、ASP、JSP、ColdFusion及CFMX等)在每个请求时都需要执行服务器端的模板,由于客户端只需要载入一次,Flex应用程序的工作流被大大改善。Flex的语言和文件结构也试图把应用程序的逻辑从设计中分离出来。[3]
2 常见的Flex系统框架
Flex主要用于前端用户交互的解决方案框架,当复杂业务逻辑的信息系统进行开发时,往往会将系统分成三个部分,分别是客户端、服务器端和数据存储端。客户端负责页面表现,即向用户展现各种数据,包括文本、表格数据、图形图像等;服务器端负责与客户端通信,可采用分层设计模式;数据库存储端主要负责数据的存储工作。其基本工作流如图1所示。
图1 Flex 系统框架
目前,大部分Flex系统都采用上述的系统框架,同时前端可以结合一些其他优秀的框架,比如Cairngorm 框架、Mate 框架、PureMVC框架、Swiz框架等;服务器端可采用分层设计模式,分为控制层、业务层、数据层和数据实体层等。这里可以采用Spring和Hibernate结合的方法来进行开发。
但当前这种系统框架的主要工作模式是固定不变的,对于处理大量用户的需求,系统负担太重,性能降低,经研究,系统性能随着用户的增多而下降,如果超过1000名用户以上,其性能下降尤为明显,如图2所示。
其原因与Flex内部处理机制有关,因为Flex不同于传统的HTML页面,其下载与业务处理是不分开的,那么对于突发用户剧增情况无能为力,同时也不具备灵活性,不能动态增加服务等。
图2 用户-系统响应时间
3 服务分流框架设计
为了提高系统性能,在服务器端对用户的请求进行分类,下载服务与业务处理服务分开,将请求发往不同的服务器。如果有突发大量用户情况那么将根据实际情况决定是否动态添加服务器。提高系统的灵活性和可伸缩性,进而提高系统的性能。
基于以上的分析,提出一种新型的服务分流框架,如图3所示。
图3 服务分流框架
4 服务分流框架实现过程
使用Flex开发基于B/S结构企业应用,客户端和服务器端的通信协议是我们所熟知的HTTP协议。在Flex中,基于HTTP协议访问服务器的通信组件有三个: HttpService、WebService和RemoteObject。本文采用RemoteObject,数据通信协议采用AMF,数据服务则使用免费的BlazedS。
RemoteObject组件在“第三方软件”的配合下,能够调用后台服务器对象上的方法,比如Java对象或者.net对象上的方法,从而实现客户端与服务器端的通信。在客户端应用 RemoteObject可以直接将ActionScript对象序列化为AMF数据格式作为调用的参数和返回成果。[4]
配置flex客服端与服务器端java通信通道,打开remoting-config.xml配置如下:
判断该用户的请求,如果是业务处理则使用remoteObjectID.java方法(..);实现方法的调用,执行业务处理操作。
5 结语
本文提出服务分流框架解决Flex在企业应用中存在的不足,该框架具有高度灵活性和伸缩性,对提高系统的性能起到了一定的作用,同时不会影响到Flex与其它框架的结合。此框架已经应用于阜新市国土资源局土地储备交易管理系统当中。
实践证明,在500以内用户数同时并发的情况下,传统框架与服务分流框架系统响应时间没有太大的区别;但超过500用户并发的情况下,服务分流框架下系统响应时间明显较低,而且随着并发用户数的增长优势有逐步增加的趋势。如图4所示。
图4 传统框架与服务分流框架数据对比
[1]Alaric Cole. Learning Flex3[M]. Canada: O’Reilly, June 2008.
[2]吕晓鹏.精通Flex3.0-基于ActionScript3.0实现[M].北京:人民邮电出版社,2008.
[3]夏辉.基于 FLEX 的信息系统框架研究[J].计算机技术与发展,2012(6):35-38.
[4]Flex通信机制及与JAVA集成研究报告[R].信息科技有限公司,2012(4)
The Research and Application of Service Streaming Framework Base on Flex
Huang Peiquan1.2, Lin Kunlin1
1.Department of Computer Engineering, Guangdong Youth Leaders College, Guangzhou 510545, China
2.College of Innovation and Practice, Liaoning Technical University, Liaoning Fuxin 123000, China
With the increase in online users,the application system based on Flex RIA technology will become more and more slowly, or even system cause the phenomenon of system crashes.In order to solve the problem and achieve the purpose of optimization system, a service streaming framework was proposed,which the user services are classified,and then, depending on defferent service request,the business is shunted to make the system faster response to user requests.The service streaming framework has been applied to enterprise development, experimental results show that the effect is obvious.
P315.69
A
10.3969/j.issn.1001-8972.2012.21.034
辽宁工程技术大学优秀青年基金《电子政务系统Web Office插件的研究及应用》(编号:09263)
黄培泉(1979-),男,硕士, 讲师,研究领域为计算机应用;
林坤林(1972-),男, 学士, 高级实验师,研究方向为计算机网络技术。