2014年05月07日 星期三 国内统一刊号:CN51—0098     中国•企业家日报

浅谈基于MVC框架的烟草企业门户网站建设

来源:企业家日报 作者:

  本文简要论述烟草行业加强企业门户网站的意义以及MVC框架在搭建企业门户网站中的应用情况,重点以广东韶关烟草企业门户网站建设为例来谈,以求为行业内烟草商业企业加强信息化建设提供参考。

  ■ 梁海祥

  

  在2012年全国烟草工作会议上,原国家局局长姜成康做了重要讲话,提出“全面加强行业信息化建设。加强统筹规划、系统设计、整体推进,充分发挥规划对行业信息化建设的指导作用,切实做好行业信息化总体技术架构的设计与实施,实现行业信息化建设的统一性、系统性、完整性。高度重视信息化新技术推广应用,着力提高行业信息化建设水平。”按照国家局要求,烟草行业内许多企业都建设了自己的门户网站。

  

  MVC框架理论

  

  MVC框架概述网络服务用户希望保持交互操作界面的相对稳定,但更希望根据需要改变和调整显示的内容和形式。要做到这一点,从界面构成的角度看,困难在于:在满足对界面要求的同时,如何使软件的计算模型独立于界面的构成。模型-视图-控制(MVC:Model-View-Controller)就是这样的一种交互界面的结构组织模型。

  MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:(控制器Controller)- 负责转发请求,对请求进行处理。(视图View) - 界面设计人员进行图形界面设计。(模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

  通过把数据模式从各种可以被存取和控制的数据中分离出来可以改善分布式系统的设计。MVC设计模式由三部分组成。模型是应用对象,没有用户界面。视图表示它在屏幕上的显示,代表流向用户的数据。控制器定义用户界面对用户输入的响应方式,负责把用户的动作转成针对Model的操作。Model通过更新View的数据来反映数据的变化。

  

  MVC框架

  在行业门户网站系统上的应用

  

  门户网站使用户更容易使用网站底层资源和技术。目前的网站门户都具有一定的通用性和易访问性,但在功能、兼容性、可扩展性、表现能力上仍不尽人意,还有待完善。例如:资源管理和动态管理功能的欠缺,用户的个性化定制服务太少。

  采用MVC模式来设计行业门户网站,可以在网站的表现、控制上,充分选择和使用现有的成熟技术。结合网站特殊的API,构成完整的行业门户网站。比如,在表现层上,可以采用php技术,结合专门的API形成可定制的动态生成的页面。特别是使用表示层标准后,与底层网站技术实现无缝的衔接,可以使系统具有高可扩展性和灵活性。

  

  基于MVC的

  烟草行业门户网站设计

  

  一是门户系统结构。采用MVC框架的网站门户设计,在模型层定义数据结构,提供网站服务;在视图层采用php技术,为用户提供丰富的接口;在控制层由接口组件通过与底层的接口通信,控制用户与系统的交互。

  二是视图层。视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面。在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括AdobeFlash和象XHTML,XML/XSL,WML等一些标识语言和Webservices。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

  该层主要实现网站门户的Web可视化界面,主要是php页面。在页面中将处理逻辑与表示分离开来,具有良好的可扩展性和灵活性。

  视图层的可视化是模型层在用户界面的映射。网站数据的收集、分析与可视化是3个密切相关的环节,这3个环节应该和网站的动态运行过程建立良好的联系,准确地反映网站的运行状态。另外,网站数据的可视化要求做到对数据进行抽象,同时以直观、一目了然的方式显示给用户,为他们的经常性工作提供最方便、最容易理解以及最快捷的支持。

  三是模型层。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusionComponents这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

  模型层包括由网站应用数据封装而成的对象和提供的服务。底层的主要数据对象有:网站节点对象用以封装网站节点信息。网站用户对象数据UserInformation,用以包括用户名,密码,用户类型等信息。

  作业对象数据封装整个作业处理的提交者、作业的描述、作业数据、状态和作业的结果等信息。

  日志文件对象,用以提供日志文件的抽象表示。模型层要提供的服务包括:作业管理。包括作业队列管理作业的调度、负载均衡、进程迁移、作业执行及结果的返回等。

  作业调度策略管理。定义或选择作业策略。网站节点资源的管理。监控网站运行情况,收集、统计网站资源信息,对网站资源进行管理。

  系统组件的管理。获取系统的组成部分,查询、修改组件的属性,调用组件方法,从而动态地配置系统组件。

  用户管理。定义用户、用户组,管理用户权限,进行用户验证等。日志管理。跟踪、记录系统的运行情况,形成日志文件,并对日志信息进行统计,辅助系统管理。

  四是控制层。控制层接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。

  利用MVC框架构建网站门户,实现了与底层的网站技术实现无缝的衔接,使系统具有更强的可扩展性;通过可复用组件展示了更丰富的界面,实现了更完善的管理功能,提供了集成的用户接口。

  

  基于MVC框架的

  烟草行业门户网站系统实例

  

  以广东烟草韶关市有限公司门户网站为例,进行网站实现的简单介绍:

  韶关烟草以MVC(Model-View-Controller:模型-视图-控制)框架为基础架构,以PHP技术为工具,辅之以Flash动画等技术,不断学习创新,集思广益,博采众家之所长,努力丰富网站功能,优化网站架构,以期通过企业门户网站建设,提高烟草行业信息化建设水平。

  一是网站首页。从用户角度说,视图就是用户看到的HTML页面。从程序角度说,视图负责生成用户界面,通常根据数据模型中的数据转化成HTML输出给用户。视图可以允许用户以多种方式输入数据,但数据本身并不由视图来处理,视图只是用来显示数据。在实际应用中,可能会有多个视图访问同一个数据模型。如“用户”这一数据模型中,就有一个视图显示用户信息列表,还有管理员使用的用于查看、删除用户的视图。这两个视图同时访问“用户”这一数据模型。

  二是网站样式模板。在基于MVC模型的Web应用开发中,模板是不可或缺的。模板定义了一个并不完全的类HTML文件,它为用户视图提供了最基本内容的框架,一些重要的数据需要在程序中添加到模板中,从而形成完整的用户视图。MVC体系设计的模板引擎简单易懂,让美工人员可独立完成模板制作及数据调用,可让程序人员和美工人员分工协作,最大可能提高团队执行力。

  三是内容模型。内容模型的组建的合理,让模型的负载能力更高。自定义模型和字段功能则把系统灵活度充分发挥,可以不用编程就实现各种信息发布和检索。基于MVC架构,系统可以灵活内置文章、组图、下载等内容模型,并提供了常用字段类型,只需要用鼠标点选,就可以很方便的扩展网站的模型内容字段。

  文章功能是系统的主要内容模型之一,简化了一些文章发布时的操作流程。在后台内容列表中可以对内容进行单个或批量操作和管理。在文章的内容模型中,还可以加入对其它模型的支持。并提供灵活的调用方式,如增加与用户互动的投票功能,集成评论模块等,都可以很方便的应用。

  

  MVC模式应用于烟草行业的

  建议和意见

  

  在烟草行业的应用程序研发中,MVC模式存在一定的难度:

  一是由于它没有明确的定义,所以完全理解MVC模式并不是很容易,这使得采用MVC模式进行研发需要精心的计划。

  二是又由于它的内部原理比较复杂,需要花费一些时间去思考,这延长了烟草行业应用程序研发周期,加重了研发所需人力资源负担。

  三是同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。这增大了烟草行业应用程序研发测试的工作量。

  虽然存在以上不足,但現在多数软件设计框架能直接快速提供MVC骨架,供中小型应用程序开发,这大大节约了烟草行业应用程序研发成本。另外,烟草行业的应用程序一般存在大量用户界面,并且逻辑上较为复杂,此时使用MVC框架将会使软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初的开发中,构建MVC模式框架时会花费一定的工作量,它会大大提高后期应用程序开发的效率。从长远的角度来看,采用MVC框架有利于提高烟草行业应用程序开发效率,增强稳定性,这对于烟草行业提升信息化水平有着一定的意义。

  (作者单位:广东烟草韶关市有限公司)