基于Flex的企业创新方法服务系统的设计与实现
2014-12-23刘红敏宋素玲姜国权霍占强
刘红敏,宋素玲,姜国权,霍占强
(河南理工大学 计算机科学与技术学院,河南 焦作454003)
0 引 言
传统的基于页面架构的C/S (client/server)网络应用程序不能满足个人用户和企业用户对服务平台的需求,该模式的程序部署成本高,更新不及时,交互能力差,在很大程度上制约了更多领域用户对数据的使用。虽然B/S(browser/server)模式无需安装应用文件,部署发布成本低,维护简单,但是传统的B/S开发技术,将业务逻辑和页面显示混合在一起,从而加重了层次之间的依赖性和耦合性,另外,目前常用的对象持久化技术多数是通过在业务逻辑中内嵌SQL语句的方式来实现,这种方式最大的弊端就是一旦数据库结构发生变化,就会导致系统的大幅度修改,从而给系统的升级、维护与更新带来不便。针对以上不足,本文结合MVC[1,2](model-view-controller)架构和NHibernate技术设计了一种新的应用框架,并把该框架与Flex[3-5]技术相结合研发了基于Flex的企业创新方法服务系统。
1 Flex技术简介
RIA (rich internet applications)[6-9]:富互联网应用程序,具有高度互动性、丰富用户体验以及功能强大的客户端。而Flex是目前最流行的RIA 开发技术之一。一个完整的Flex开发模型由3部分组成,即:MXML、ActionScript和Flex类库。MXML 是一种XML 格式语言,用来描述Flex应用,类似于HTML,通过一组标签定义用户界面。ActionScript是一种功能强大的面向对象编程语言,它主要用于实现Flex程序中的交互处理与业务逻辑处理。Flex类库中提供了丰富的可见组件和不可见组件。其工作流程如图1所示:Flex编译器将MXML、ActionScript及Flex类库编译为SWF文件,然后在客户端由Flash Player执行。
图1 Flex应用程序的设计发布流程
2 系统架构设计
传统的网络服务系统被划分成3 个逻辑层次,即:Web表示层、应用服务层和数据库层。为了降低层与层之间的依赖关系和增加系统的灵活性,该系统在表示层使用了MVC架构,将Flex应用程序分为模型、视图和控制器3部分。把业务应用层划分为业务逻辑层、业务实体层、数据访问接口层及数据访问层。企业创新方法服务系统框架如图2所示,可以看出Web表示层只依赖于业务应用层中的实体层和业务逻辑层来获取所需信息;业务逻辑层只依赖于实体层和数据访问接口层;数据库层只面向数据访问层;实体层定义了实体对象,只有属性没有方法,体现了面向对象的思想。与传统的3层开发框架相比,该框架层次分工更加明确,层次之间的依赖性大大降低,便于系统功能的扩展和技术的替换,比如表示层用的技术是Flex,如果用ASP.NET实现,只需要修改配置,而不用修改其他层次代码。
图2 企业创新方法服务系统框架
2.1 Web表示层
表示层的开发采用Flex技术整合Cairngorm 开发框架,此框架使用MVC 架构,将Flex应用程序分为模型、视图和控制器3部分,强制性的将应用程序的输入、处理和输出分开。表示层用于呈现客户端的用户视图,负责接受用户请求并把它传递给控制器,并最终将结果封装后呈现给用户。在本系统中视图是通过在mxml页面中开发用户接口来实现,控制器的功能在mxml.as代码中实现。
2.2 业务应用层
采用C#技术对数据业务进行逻辑处理,首先,分离业务逻辑类和数据实体类,使业务逻辑类只专注于数据业务的逻辑处理,而实体类仅作为数据容器来持久化数据对象。然后,在业务逻辑层、数据访问层两者之间增加数据访问接口层,从而分离了业务逻辑与数据访问逻辑,使业务逻辑层专注于各种业务逻辑处理,简化了实体对象与数据库之间的交互,使得系统开发更加灵活,便于业务逻辑的测试、修改,提高了系统的可移植性和可扩充性。
2.3 数据库层
数据库层是系统的应用基础,主要负责数据的存取、管理和维护,并提供数据访问接口,是整个系统数据源的保障,该系统采用的是SQL Server 2008 数据库,采用NHibernate持久化技术的ORM (object relational mapping)[10]映射机制实现了对象和关系数据库中的高效映射,达到了业务逻辑层与数据存储的有效分离。在数据库底层采用NHibernate技术持久化.NET 对象到关系型数据库,从而不需要再编写繁琐的SQL 语句,使得代码仅仅和对象关联。以下代码实现了News类中Title属性和数据库表T_News的title列的对应,大幅度减少软件开发时人工使用SQL处理数据的时间。
2.4 框架应用
以系统的新闻检索模块为例,来说明本文所提出的框架的应用,其UML如图3所示。
图3 新闻检索模块类图
在Visual Studio 2008中,通过创建不同的工程来实现不同层次的划分,且每个工程拥有不同的命名空间。MIInnov.BLL和MIInnov.WS实现业务逻辑层,MIInnov.IBLL实现业务访问接口层,MIInnov.Models实现业务实体层,MIInnov.IDAL实现数据访问接口层,MIInnov.DAL 通过NHibernate技术来实现数据访问层。
在新闻检索的过程中,用户在页面中输入要检索的关键字,点击搜索按钮,触发Btn_ClickHandler()事件,调用业务逻辑层WebService中的getNewsByauthorandTitle()方法,由其调用BLL层的getNewsByAuthorandTitle()方法,该方法通过IDAL层访问DAL层中的FindAllByAu-thorandTitle()方法,通过访问数据库查询出相关的信息,返回News实体类的对象信息,然后把所需要的信息显示在前台页面。业务逻辑类MIInnov.BLL.News通过数据访问工厂获取新闻信息,代码如下:
3 系统功能设计、实现及性能分析
3.1 系统功能设计
企业创新方法服务系统功能的设计以分析其员工的需求为原则,为实现创新方法的推广、信息资源的管理和学习经验的交流等共设计了6大功能模块,即:资源管理模块、案例共享模块、新闻发布模块、创新交流模块、在线学习模块和方法应用模块,其功能结构如图4所示。
系统的各模块功能如下:
(1)资源管理模块:资源管理模块为企业获得创新资料提供接口,其丰富的资源和一站式的服务为用户带来了全新的体验。可对系统资源进行下载、上传、修改等操作。
图4 企业创新方法服务系统功能结构
(2)案例共享模块:案例共享模块的主要功能是建立应用创新方法解决企业技术难题的案例库,并应用数据库和数据挖掘相关知识提供友好的案例共享、浏览和查询。用户有提交案例的权限,提交到服务器的案例经管理员审核后发布到前台页面,并且案例浏览次数的多少从某种意义上体现了用户对该案例的关注程度,用户根据案例的浏览次数,可进一步上传更加合理的案例,从而提高网站的访问量。传统的HTML虽然能详细的统计数据,但对图形显示不足,而Flex提供了丰富的图表库,支持大量数据的显示,通过图表展示数据看起来更加直观,能为用户提供良好的直观感受。图5展示了近5年来各案例访问量的趋势图,可以看出创新案例越来越受到人们的关注,在2012年访问次数高达12000次。
图5 案例访问量
(3)新闻发布模块:新闻发布模块主要提供最新的创新思维、创新方法和创新工具的相关资讯,包括通知通告、创新要闻、企业实践、思维创新、方法创新和工具创新等较全面的内容。支持新闻发布、修改、删除、查询等功能。
(4)创新交流模块:创新交流模块以论坛的形式为企业应用创新方法解决技术难题提供交流平台,主要分为理论学习、技术难题和创新心得等子模块。该模块不但实现发帖、回帖、等级管理、精华推荐等功能,而且管理员可以很方便的定制模块类别和版面内容。
(5)在线学习模块:在线学习模块以PPT、FLASH、视频等方式将创新方法知识直观的展现出来。该模块的理论完整,交互友好,用户既可以从入门篇、初级篇、中级篇、高级篇循序渐进学习,也可以根据需要在初级、中级、高级篇中选择自己要学习的章节,统一归到自定义篇中来定制学习内容。在线学习视频界面如图6所示,用户可以根据自己的需要,任意调整视频的播放进度、视频页面的大小及视频在整个页面中的位置。
图6 在线学习视频界面
(6)方法应用模块:基于TRIZ理论[11,12]并应用计算机辅助创新技术解决企业技术难题模块,主要对TRIZ 理论中的冲突创新原理进行流程化与软件化,从而为用户提供简单、实用的流程化图形。
3.2 系统测试性能分析
从普通用户和管理员视角分别对系统性能进行测试,使用LoadRunner测试软件对传统登录页面和使用Flex技术进行优化后的登录页面分别进行100次用户登录时间测试和模拟并发用户进行系统内存使用率和CPU 利用率测试。测试结果见表1、表2。
表1 系统登录时间结果对比
表2 系统性能对比
从表1可以看出使用Flex技术登录系统,计算机平均响应的时间要低于使用传统方法直接登录的时间,说明此平台的用户响应时间短,可以避免不必要的用户等待。从表2可以看到相比传统登录选择Flex技术登录时,随着并发用户数的增加,CPU 利用率和内存使用率都有所降低。总之,应用Flex技术的系统在登录时间和性能方面比普通的系统有很大的优势。
4 结束语
本文结合MVC架构和NHibernate技术提出了一种全新的应用框架,并把该框架与Flex富客户端技术相结合研发了基于Flex技术的企业创新方法服务系统。与传统技术实现的企业服务系统相比该系统具有以下2方面的优势:
(1)MVC架构和NHibernate技术相结合形成的应用框架提高了系统的灵活性和可维护性,减少了编写系统代码的工作量,大大缩短了系统的开发时间,提高了系统的开发效率。
(2)Flex技术的采用使得该系统页面表现能力强、交互性好并且不需要刷新页面就能更新内容,提高了系统的及时响应能力,降低了CPU 利用率、内存使用率和企业开发软件成本,为企业用户间的信息交流和经验交流提供了一个规范化的学习型知识服务平台。
[1]LI Yuan,CHEN Shiping.Application of MVC design pattern in ASP.NET [J].Computer Engineering and Design,2009,30 (13):3180-3184 (in Chinese).[李园,陈世平.MVC 设计模式在ASP.NET 平台中的应用 [J].计算机工程与设计,2009,30 (13):3180-3184.]
[2]GUO Xiaofeng,YAO Shijun,YIN Zuwei.Design and application of framework of Web applications based on.NET [J].Computer Engineering and Design,2008,29 (2):454-456(in Chinese).[郭晓峰,姚世军,尹祖伟.基于.NET 的Web应用框架的设计与应用 [J].计算机工程与设计,2008,29(2):454-456.]
[3]PAN Dasi.Research and implementation of Web application support offline processing based on FLEX [J].Computer Science,2008,35 (7):298-301 (in Chinese).[潘大四.基于FLEX技术构建可离线Web应用程序的研究与实现 [J].计算机科学,2008,35 (7):298-301.]
[4]YANG Can,FU Hangyu,LIU Kan.Design and implementation of a Flex-based interactive network TV platform [J].Computer Engineering and Design,2011,33 (11):189-194(in Chinese).[杨灿,符航宇,刘侃.基于Flex的网络电视互动平台的设计与实现 [J].计算机工程与科学,2011,33(11):189-194.]
[5]HU Binfeng,SUN Weide,CHEN Qi.Research of WebGIS label control based on Flex [J].Computer Engineering,2011,37 (21):32-37 (in Chinese).[胡斌峰,孙伟德,陈奇.基于Flex的WebGIS 注记控件研究 [J].计算机工程,2011,37(21):32-37.]
[6]JIAO Shengming,BAO Yunxuan,GUO Jing,et al.Design and implementation of RIA-based information platform of weather station [J].Computer Engineering,2010,36 (20):217-219 (in Chinese). [焦圣明,包云轩,郭静,等.基于RIA 气象站信息平台的设计与实现 [J].计算机工程,2010,36 (20):217-219.]
[7]WANG Ruiling.RIA and Flex-based application development model of RIA [J].Sci-Tech Information Development and Economy,2007,17 (14):206-207 (in Chinese). [王瑞玲.RIA 及其基于Flex的应用开发模型 [J].科技情报开发与经济,2007,17 (14):206-207.]
[8]CHENG Guoxiong,HU Shiqing.System architecture and pattern research of RIA based on Silverlight[J].Computer Engineering and Design,2010,31 (8):1706-1709 (in Chinese).[程国雄,胡世清.基于Silverlight的RIA 系统架构与设计模式研究[J]. 计算机工程与设计,2010,31 (8):1706-1709.]
[9]SHI Quan,LU Chunlong,CHEN Jianping,et al.Application of RIA technology in information platform for marine environmental monitoring [J].Computer Engineering and Design,2011,32 (8):2684-2688 (in Chinese). [施佺,陆春龙,陈建平,等.RIA 技术在海洋环境监测信息平台中的应用 [J].计算机工程与设计,2011,32 (8):2684-2688.]
[10]WU Weiping,WANG Lifang,JIANG Zejun.Research of data persistent layer based on ORM [J].Microelectronics &Computer,2008,25 (7):188-193 (in Chinese).[吴卫平,王丽芳,蒋泽军.基于ORM 的数据持久化框架研究:微电子学与计算机 [J],2008,25 (7):188-193.]
[11]TAN Runhua.TRIZ and application:Technology innovation process and method [M].Beijing:Higher Education Press,2010:11-18 (in Chinese).[檀润华.TRIZ及应用:技术创新过程与方法 [M].北京:高等教育出版社,2010:11-18.]
[12]LAN Fang,QIN Bo.On applications of computer aided innovation based on TRIZ [J].Computer Applications and Software,2009,26 (8):171-173 (in Chinese). [兰芳,覃波.基于TRIZ的计算机辅助创新技术应用研究 [J].计算机应用与软件,2009,26 (8):171-173.]