钢厂铁路运输管理信息系统关键技术研究与实现

【摘 要】 钢厂铁路运输信息化建设是提高钢厂运输物流管理工作的重点,并对于推进钢厂铁路运输工作效率具有十分重要的意义。B/S结构属于三层技术架构体系,具有分布式、动态、跨平台和易于集成的特点,是目前分布式计算处理网络系统的主流架构体系。本文对采用B/S结构下MVC设计模式来开发的钢厂铁路运输管理系统进行了研究,并对系统结构、数据库以及关键技术实现进行了详细的描述。

【关键词】 运输管理信息系统 B/S结构 MVC设计模式

1 引言

当前大多数钢厂的铁路运输物流管理中存在方式落后、效率较低、信息不透明、历史信息利用率低等问题,而当前的管理理念、信息化技术和系统集成技术都得到了大幅度的提高,将其应用于钢厂的铁路运输物流管理已成为可能。本文采用B/S结构来实现钢厂铁路运输管理信息系统浏览器端的功能。

2 B/S架构体系

2.1 MVC设计模式

B/S结构体系即浏览器/服务器体系结构[1],是随着INTERNET的快速发展和WEB技术的日益成熟,于20世纪90年代发展起来的,目前已成为分布式计算处理的网络系统的主流,是三层技术架构体系,在本文中主要采用了B/S结构中的MVC设计模式,如图1所示。

MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。MVC把应用程序分为三个核心模块:模型、视图和控制器,它们分别担负不同的任务。[2]它较好地解决了C/S模式中体系结构的不足,实现了分布式的、动态的、跨平台的、交互式的、易于集成和扩展的操作。

对于钢厂铁路运输管理信息系统的具体实现如下:其中视图层部分采用Jsp和Struts标签方式实现,控制层部分采用Struts和Servlet方式实现,模型层部分利用Struts的Action实现。对数据库的访问采用JDBC方式,查询的结果集保存到数据库映射对象VO里,各层之间使用Struts框架及接口实现。处理流程图如图2所示。

2.2 B/S结构中MVC设计模式的优点

2.2.1 开发和维护成本低

对于B/S模式,只需在客户端安装通用的浏览器,在服务器端,应用程序可为Internet/Intranet上的任何授权用户所使用。所有的维护与升级工作都是在服务器上执行的,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。

2.2.2 客户端负载小

B/S模式的客户端把事务处理逻辑部分分给了功能服务器,不再负责处理复杂计算和数据访问等关键事务,只需要进行显示,使客户机能够减少负担。

2.2.3 采用开放的标准

B/S模式所采用的标准都是开放的、非专用的,是经过标准化组织所确定的而非单一厂商所制定,保证了其应用的通用性和跨平台性。

2.2.4 代码可重用性

在B/S结构MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。

2.2.5 移植性

对于B/S模式,模型的自包含的,与控制器和视图保持相对独立,所以可以方便地改变应用程序的数据层和业务规则。如果把数据库从Oracle移植到MySQL或SQLServer,只需改变模型即可。此外从浏览器角度来说,在客户端安装的是通用浏览器,不存在任何移植性问题。

2.2.6 用户界面风格

B/S系统只需在客户端安装通用浏览器就可以访问应用程序,浏览器的界面统一友好、易于使用,可一劳永逸地解决用户的使用问题,从而可将培训的时间与费用减至最少。

3 钢厂铁路运输管理信息系统设计

3.1 MVC设计模式下的钢厂铁路运输信息管理系统结构

在钢厂铁路运输管理信息系统中,视图层主要由一组JSP页面文件组成,如实时信息查询、历史信息查询、计划执行情况查询、调车作业单查询、局车停时统计、用户等。在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签,这些标签在本文中为Struts标签库中的客户化标签。

在本文中,把Struts框架中的ActionForm Bean也划分到视图模块中,ActionForm Bean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。

模型层表示应用程序的状态和业务逻辑,对于本文所研究的系统,业务逻辑由JavaBean来实现,主要模块包括路局车查询、自备车查询、老牌车查询、轨道车查询、车辆信息查询、车辆状态查询、运用非运用车查询、车辆装卸信息查询、车辆信息查询封存车查询、车辆历史信息查询、车辆检修信息查询,日局车计划执行查询、日场车计划执行查询,调车作业单查询,停时动态查询,停时动态统计,用户登陆、退出、修改基本信息等部分。

控制层由ActionServlet类和Action类来实现。其中ActionServlet是Struts框架中的核心组件,它继承了javax.servlet.http.HttpServlet类,它在MVC模型中扮演了中央控制器的角色。ActionServlet主要负责接收HTTP请求信息,根据配置文件struts-config.xml的配置信息,把请求转发给适当的Action对象。系统结构如图3所示。

3.2 数据库概要设计

由于系统的数据量积累比较庞大,有许多数据需要导出,如统计报表等,所以数据库设计尤为重要。在本系统中,主要采用Oracle数据库来承担保存数据,记录信息,模块间交换数据的职责,为了减少查询时数据表的连接查询,经常查询的数据采用字段冗余的存储方式,经常查询变化不频繁的记录采用视图的方法,以提高数据库的效率和减少编程逻辑的复杂。对于固定的复杂逻辑的数据操作采取存储过程的方式处理,这样可以提高数据库的使用效率,并减少反复查询对数据库带来的额外负担。

对于数据库的管理,有以下几个类应给予说明。

3.2.1 SQLBeanBase类

管理数据库的基础类,系统中所有对数据库的操作都要通过这个接口实现,这样可以保证数据库资源的统一管理,更高效的利用数据库资源,减少数据库压力,并且使日后维护更容易。这个类提供对数据库的连接、打开、关闭功能。具体实现如下:

public Statement getStatement(){

try{

con = getConn();//連接数据库

stmt = con.createStatement();

}catch(NamingException e1){

e1.printStackTrace();

System.out.println("NamingException is occor");

ctx = null;

closeDB();

}catch(Exception e3){

e3.printStackTrace();

System.out.println("Exception is occor");

ctx = null;

closeDB();

}

return stmt;

}

public void closeDB(){ //关闭数据库

try {

if(stmt != null) {

stmt.close();

stmt = null;

}

} catch(SQLException e) { //Exception error

System.out.println("stmt close error:" + e.getMessage());

}

try {

if(con != null) {

con.close();

con = null;

}

} catch(SQLException e) {

System.out.println("con close error:" + e.getMessage());

}

}

3.2.2 QueryFactory类

这个类是本系统中的关键类,在系统中所有的查询模块都要调此工厂类,返回其对这个类的一个引用,这样可以提高系统内存的使用率,统一维护管理查询对下功能模块。这类根据类名获取类对象,所有查询模块的查询调用都要从此工厂中取。需要参数“类名”,返回类对象。

查询条件输入并提交后,系统调用查询条件验证模块,处理条件是否合法,如果不合法则跳转到信息页面,并提示用户查询条件不合法,否则调用数据库管理模块,打开数据库连接,提交查询,关闭数据库,并将查询结果以结果集方式返回,将结果集封装到List中,返回,系统调用相应显示结果页面显示查询结果。流程图如图4所示:

4 结语

铁路运输管理信息系统的使用越来越受到各大钢厂的重视,B/S 结构作为一种成熟的主流分布式网络系统架构体系也必将越来越多的被应用于管理信息系统的开发。本系统基于成熟的B/S结构MVC设计模式开发,真正实现了分布式的、动态的、跨平台的和易于集成的特点,具有用户操作简便、维护和升级方便、可扩展性强、可移植性高的优点,将会对钢厂铁路物流运输效率的提高提供一定帮助。

参考文献:

[1]吴丽平,赵卓,陈绮,施国荣,郑建群.基于三层架构的系统管理软件的研究与设计[J]. 计算机工程,2006,17(99):283-285.

[2]孙卫琴.精通Struts:基于MVC的Java Web设计与开发,电子工业出版社,2004.8.

推荐访问:铁路运输 钢厂 技术研究 管理信息系统 关键