当前位置:首页 > 读后感 > 系统架构设计 [基于MVC的系统架构设计探究]
 

系统架构设计 [基于MVC的系统架构设计探究]

发布时间:2019-02-21 04:43:25 影响了:

  摘要:MVC=模型-视图-控制器,在近年来的网络编程中最常使用的一种架构模式之一,在JAVA和.NET中,都有极为广泛的应用;作为一种架构模式,用以描述应用程序的结构以及结构中各部分的职责和交互方式。本文将结合某招生信息管理系统的实际案例对MVC的系统架构设计做探究,以供交流。
  关键词:MVC 架构模式 Struts技术
  中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2012)01-0125-02
  
  1、系统设计原则
  1.1 可用性原则
  根据招生录取以及报到的实际情况,充分利用计算机和Internet网技术的优势,实行网上、现场两种报名方式,减轻现场报名的压力,降低劳动强度。充分考虑其它各子系统(如网上报名系统等)的运行平台和实现技术,为它们提供一个可行的统一用户、统一权限、统一功能接口的环境。
  为了保证系统的不间断运行和出现错误时能及时恢复并没有数据丢失、系统崩溃等现象出现,业务数据存储采用RAID 5磁盘阵列,数据定时备份。这些方式可以避免停电、操作失误、机器硬件错误和不可预测的天灾、人祸等造成的数据丢失等现象。
  1.2 安全性原则
  由于拟建成的系统将采用B/S和C/S的混合结构,B/S结构直接采用某大学网络中心统一平台提供服务,由校园网络的防火墙等原有安全设备提升系统安全性,此外数据库服务器置于内网中,外部用户无法直接攻击数据库服务器。数据库服务器采用以数据库本身的安全机制为主,以数据加密、数据定时备份/恢复、关键数据操作审计等其他的数据安全机制来保证系统中的数据安全。
  1.3 易用性原则
  简单、易用、实用一直是我们系统设计的宗旨。对于软件的使用人员,基本设置为通过鼠标点击就能完成大部分任务;在小门类报名方面,考生无需到学校即可直接在网上完成报名、报名表的填写以及下载,考试完后,可以通过本系统在网上查询录取结果;现场确认方面,考生只需验证身份证即可查出自己的信息,工作人员通过系统核实考生信息、确认并打印准考证;招生录取人员在录取过程中将录取结束省份的考生信息导入录取子系统,然后再进行其它分学号、分班等操作即可。系统使用不需要复杂的培训,界面友好,每种功能有详细的说明和在线帮助。
  1.4 标准化与开放性原则
  系统设计充分考虑了系统的可伸缩性、可扩展性和可继承性,让系统能够随所选择的平台不断的升级而得到进一步的继承和发展。结合我校实际情况,并参照了教育部2002年颁发的《教育管理信息化标准》、2006年10月由高教学会信息化分会颁布的《CELTS-34高等学校管理信息标准》之数据标准集和《CELTS-34高等学校管理信息标准》之代码标准集,采用统一的标准数据代码,便于校内数据的集中与共享,采用规范的开发流程,便于系统维护升级。
  系统的开放性是指系统能根据学校统一规划的应用系统建设规范,为教务处、研究生院、学工部、财务处、后勤处、网络中心等部门的请求提供数据交换服务。如将本科新生个人详细信息提供给教务处,方便教务处为学生建立学籍档案;为学工部提供所有新生详细信息,以便学工部建立学生基本信息库,方便日后学生管理工作;为财务处提供学生姓名、身份证号等信息,方便财务处为学生办理银行卡,用以缴纳学费等。
  2、MVC设计模式
  MVC源于Smaltalk,主要用来构建用户界的。由三个类对象组成:(1)Model对象:应用程序的主体部分。包含完成任务所需的所有行为、数据以及对象的状态等。(2)View对象:负责用户界面的生成,显示从模型中提取的数据。View对象可以是一组可视化的元素,如对话框、菜单、工具条等。(3)Controller对象:根据用户的输入,控制用户界面数据的显示及更新Model中的数据内容。通常一个界面对应于一个控制器,但在需要时控制器还可以负责创建其它的界面和控制器。MVC是一种设计模式,它强制性地把应用程序的输入、处理和输出分开。MVC把应用程序分成三个核心模块:模型、视图和控制器,它们分别担负不同的任务。MVC的优点主要有:
  低耦合性,视图层和业务层分离,模型与控制器和视图相分离;
  高重用性和可适用性,MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码;
  较低的生命周期成本,MVC使降低开发和维护用户接口的技术含量成为可能;
  快速的部署,使用MVC模式使开发时间得到相当大的缩减,它使程序员(java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上;
  可维护性,分离视图层和业务逻辑层也使得WEB应用更易于维护和修改;
  有利于软件工程化管理,由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。
  3、Struts技术
  Struts是一个基于MVC模式架构的开源框架,是MVC的一种实现,它将Servlet和JSP标记(属于J2EE)用作实现的一部分。Struts由Servlet、标记库、实用类库等构成。其中Servlet用于HTTP请求的分配及JSP的调用;标记库用于页面的动态生成;实用类库用于XML的解析及Bean的属性设定等。Struts有3个主要的类:ActionServlet,Action,ActionForm。
  (1)ActionServlet:完成Controller的功能。它根据HTTP请求信息,调用类Action,并根据其执行结果,选择调用的JSP文件。选择JSP文件时的匹配信息保存在XML配置文件中。
  (2)Action:完成Model中逻辑Bean的功能。它是事务处理的实装,完成数据的处理。
  (3)ActionForm:完成Model中数据bean的功能,它保存从HTTP请求中取得的数据,并包含数据的设定及取得等操作。
  (4)Struts-config.xml主要用来保存action的匹配信息。
  Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的Controller Servlet 通过读取struts-config.xml文件中的配置信息,将用户的请求转发到相应的Action类,并将请求数据封装到相应的Action Form 中,Action类根据ActionForm中的数据进行处理各种业务逻辑的操作,成功后将响应通过ActionForward类转发到相应的jsp页面,形成一个简单的业务流程。它的这种机制,实现了表现和逻辑的分离,使熟悉业务的开发人员可以专注于Action类中代码的开发,维护方便等优点,在业界得到广泛的应用。
  4、某招生信息管理系统软件设计模式
  本系统中的网上招生子系统设计和实现采用基于MVC模式的Struts框架结构,软件模式使用用户、应用服务器和数据服务器三层结构。Web服务器和数据库服务器分别在两个机器上,使应用和数据分开,减轻了各服务器的工作负担,同时数据库服务器只能由web服务器访问,在很大程度上保证了数据的安全。
  应用服务器中,用户视图使用JSP技术来构建,系统中主要页面如各门类的报名页面等均是由JSP语言编写,在Struts应用框架中,JSP环境不仅包含自身的一套标准的行为标记,同时还包含有一个扩展的自定义标记库,通过这些自定义标记,创建View和Model之间的联系,实现和ActionForm对象的映像,完成对用户数据的封装。下面是招生页面中采用的一部分引入JSP标签库的代码。
  
  
  
  控制器主要由Actionservlet类来实现。它包括一组基于struts-config.xml配置文件生成ActionMapping对象,下面是系统配置文件中的登陆控制action:
  
    path="/login"
  type="com.action.Login"
  scope="request"
  name="loginForm"
  >
  
  
  
  
  
  
  
  
  
  每个ActionMapping 对象实现了一个请求到一个具体的Model部分中Action对象之间的映像。Actionsevlet利用配置的ActionMapping对象把用户请求映像到Action对象进行处理。Action对象完成业务逻辑调用后,返回ActionForWard对象,该对象封装了把用户请求再转发给其它Web应用组件的信息,如上面代码中,登陆成功后,返回名称为main的forward对象。
  系统中关于框架中模型的部分则由JavaBean完成,下面代码是对应于考生注册库表的JavaBean的部分代码:
  public class Student {
  private String xm="";
  private String sfzh="";
  private String yhmm="";
  public String getXm() {
  return xm;
  }
  public void setXm(String xm) {
  this.xm = xm;
  }
  public String getSfzh() {
  return sfzh;
  }
  public void setSfzh(String sfzh) {
  this.sfzh = sfzh;
  }
  public String getYhmm() {
  return yhmm;
  }
  public void setYhmm(String yhmm) {
  this.yhmm = yhmm;
  }
  其调用需要Action对象支持。Action对象是控制器和模型交互的桥梁,负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。下面列出了登陆Action的部分代码:
  //ActionForward方法的声明。
  public ActionForward execute(ActionMapping mapping, ActionForm form,
  HttpServletRequest request, HttpServletResponse response)
  throws Exception {……}
  //根据不同的情况返回不同的mapping.findforward动作。
  if ((r.getYhsf().trim().equalsIgnoreCase("admin"))
  && (s1.getYhsf().trim().equalsIgnoreCase("1")))
  return mapping.findForward("admin");
  else {
  return mapping.findForward("main");
  }
  } else {
  return mapping.findForward("error");
  }
  5、结语
  MVC体系结构是一种非常优秀的设计模式之一。它降低了处理和显示数据的对象间的耦合性,将逻辑与非逻辑功能部分隔离开,并且这一概念在基于WEB方式的多层应用程序领域中得以广泛应用。Struts框架是Apache软件基金会下的一个开源子项目,它包含了众多组件,这些组件分别实现了MVC各层的独立功能,较好的实现了MVC模式,是实现MVC设计模式的最佳应用框架之一。
  参考文献
  [1]孙卫琴.精通Struts: 基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004:9-17.
  [2]刘秋生.高校招生信息系统研究[J].商场现代化,2005: 144-144.
  [3]张友生,钱盛友.异构软件体系结构的设计[J].计算机工程应用,2003(22):126-128.
  作者简介
  王哲(1982-11),女,湖南长沙,硕士,湖南大学新闻传播与影视艺术学院实验中心助理工程师,专业:软件工程。研究方向:数字媒体技术。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3