褚彬+陈修亮+闫丽
摘要摘要:实施综合统筹的一体化设计,是科学推进装备业务信息系统建设的必由之路。针对装备业务信息系统具体需求,阐述了J2EE多层架构的基本概念和分层结构,设计了装备业务信息系统的软件分层结构,并实现了系统的多层架构。
关键词关键词:J2EE;多层架构;装备管理;业务系统
DOIDOI:10.11907/rjdk.162191
中图分类号:TP319文献标识码:A文章编号文章编号:16727800(2017)001008303
引言
加快装备业务综合信息系统建设,是做好军事斗争装备准备的现实需要,是促进装备科学管理、提高基于信息系统体系作战能力和装备保障能力的必由之路。装备信息管理的空间分布广、时间跨度长、业务领域宽、关系错综复杂,只有准确把握装备业务管理的特点和规律,运用先进的信息工程理论和方法,才能确保系统建设实现又好又快发展,有效达成预期的建设目标[1]。当前,由于我军装备业务信息系统建设较早,其框架仍处于低层次架构,大多采用的是C/S和B/S的两层或三层架构,这些系统具有局限性、不可維护性、不可扩展性等缺点。因此,研究装备业务综合信息系统多层架构设计与实现,有效解决当前系统的主要局限,提高装备管理业务工作水平和效率,显得十分必要和紧迫。1J2EE及其多层架构
随着面向对象编程思想的深入应用以及系统对封装、复用、扩展、移置等方面的要求,传统客户/服务双层架构已不能满足互联网背景下计算处理要求,软件分层设计具有扩展性强、维护方便、组件重用性高等优点,有利于软件开发的标准化,也便于对整个开发过程的管理,因此被越来越多的开发者使用。其核心思想是在客户/服务之间加入一层数据库中间件,形成“瘦客户机—胖中间层—瘦服务器”的计算模式。
J2EE[2]是Java2平台企业版(Java2 Platform,Enterprise Edition)的简称,该平台提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用,它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩参考文献:
装备业务综合信息系统因业务逻辑和数据处理规则都是由总部或各军种统一制定,数据和程序集中在统一的服务器上,并且服务器运行平台与客户端的运行平台不同,采用J2EE的框架结构解决系统体系结构问题比较合适。2系统多层体系结构设计
装备业务综合信息系统采用基于Struts2和Hibernate框架组合的J2EE分层架构思想,整个系统架构分为5层,系统架构如图2所示。
该层次架构中,网络等基础设施是底层,主要依托全军网络基础设施,选择军队选型厂商生产的计算机等设备,加装全军统一配发的安全保密设备,确保硬件平台的安全稳定;操作系统等系统软件是基础,主要选择国家和军队推荐的国产化系统软件产品;WPS等办公软件是支撑,标准规范是保障,主要包括管理保障、基础支撑和业务应用3类,保障系统规范化研制、制度化管理和常态化运行。
装备信息管理软件是系统整体架构的核心,其多层架构主要由数据层、数据集成层、业务逻辑层、Web层和用户表示层五层组成。
数据层(企业信息系统层):具体指选用的关系数据库系统,主要负责基础数据库以及业务数据的底层存储。本系统的数据存储在SQL Server 2008数据库中的64个数据表中。
数据集成层:主要指与数据层中的数据表一一对应的本地接口实体Bean组成,当数据层发生改变时,该层向业务逻辑层提供的接口不会改变。因此,数据集成层完全向客户端隐藏了数据源的实现细节。系统主要包括与数据库64个表相对应的实体Bean。
业务逻辑层:主要负责对业务逻辑的封装,完成系统要求。系统具有3个有状态的会话Bean,处理与数据更新有关的业务逻辑;两个无状态的会话Bea,处理其它业务逻辑。
Web层:主要使用JSP和Struts2提供的标签库实现,提供了接收/响应客户端请求,与业务逻辑层交互,能够使业务数据格式化并生成动态Web页面,Web层运行在Web服务器中。系统选用52个Servlet负责会话Bean中定义的业务逻辑,并动态生成JSP。
用户表示层:主要通过系统的界面进行各自不同权限功能的相关操作。系统主要由198个JSP页面负责接收用户的请求,并把结果数据提供给用户。
根据系统的总体分层架构,在充分的需求分析基础上,确定系统的基本功能模块及其划分,系统的主要功能结构如图3所示。
系统中的多层架构层次分明,分工明确且相对独立,实现了功能层中业务逻辑和数据逻辑之间的松耦合关系,同时也降低了开发成本和开发风险。
3系统多层结构实现
根据系统的软件分层结构设计对系统的多层结构进行详细的代码实现,以“战勤资料管理”功能为例,说明系统中多层架构的实现。
(1)数据层。系统选用SQLServer 2008数据库,用基于XML的JNDI[3]和JDBC方法的连接代码如下:
(2)数据集成层。鉴于对数据的传输效率和实时性要求比较高,系统选用EJB中间件作为访问数据库的业务层组件。EJB能够自动提供对象持久性、安全性和事物管理等服务,大大简化了系统开发周期[4]。
为了将关系数据库的数据转换成对象,选用CMP实体Bean[5]实现对数据库的访问。系统的数据集成层采用具有本地接口的实体Bean,一个实体Bean对应数据库中的一个表,这样能够保证数据集成层和数据层一致,从而降低代码复杂度,提高可复用性。例如,在数据库中建立一个表T_NEWTABLE,SQL语句为:
CREATE TABLE “T_NEWTABLE” (“TABLEID” CARCHAR2(5), ”TNAME” VARCHAR2(20), ”TCONTENT” VARCHAR2(100));
与数据表T_NEWTABLE对应的实体Bean可以表示为:
Pulibc TNewTablecreate(string tableid, string tname, string tcontent) throws CreateException;
可以用如下语句为上层用于数据查询的会话Bean提供服务:
Public Collection find session() throws find Exception;
(3)业务逻辑层。根据系统的需求以及出于安全性和效率的考虑,本系统应用框架的业务逻辑层选用具有远程接口的会话Bean[6]。
以战勤法规资料维护为例,需要对数据库表T_HJZB_ZQZL进行添加、删除、修改等操作,按照应用框架的业务逻辑层的设计,本功能需要创建一个有状态的会话BEAN_ZQZLWH,用于战勤法规资料维护的业务逻辑。BEAN_ZQZLWH类图如图4所示。
(4)Web层。为减轻客户端开销,降低客户端软硬件配置要求,选用Servlet技术[7]负责Web界面的控制,采用MVC框架,使系统的输入、处理和输出区分开来,这样能够保证系统代码的相对独立性。
以“系统登录”为例,该层需要创建一个Servlet:SERVLET_LOGIN调用无状态的会话Bean_LOGIN接口,用来控制用户登录系统的界面,同时作为过滤器,将用户的登录信息保存在系统的Session中,由系统保存用户的权限,转至不同的功能界面,从而保证用户在使用本系统时只需要登录一次,而不需要每次使用一个功能都需要登录一次。
(5)用户表示层。本系统所有的用户表示层选用JSP页面,而JSP页面只负责显示,全部都是HTML代码,页面中的动态内容都是由Servlet负责,即JSP中显示的结果数据都是通过Servlet的控制动态生成并显示的,因此JSP页面实现相对简单。
4结语
介绍了基于J2EE多层架构的基本概念,设计与实现了基于该多层架构的装备业务信息系统,并已在军内装备业务主管部门使用。实践结果表明,采用多层架构的软件系统,层次分明、分工明确且相对独立,实现了功能层中业务逻辑和数据逻辑之间的松耦合关系,同时也降低了开发成本和开发风险,提高了数据的安全性能。
参考文献:
[1]张斌,杨长虹,石勇,等.装备业务信息系统总体设计应把握的几个重点问题[J].装甲兵工程学院学报,2011,25(5):5662.
[2]张少应,程传旭.基于Hibernate的对象关系映射研究[J].电子设计工程,2016,24(6):129130.
[3]欧阳宏基,葛萌.基于Struts2与Hibernate框架的Java Web应用研究[J].自动化技术与应用,2016,35(2):4852.
[4]HONG WENQIANG,CHE CHAO,ZHANG QIANG,et al.Hibernate combined tableviewer in the application of medicines inventory management system[J].Computer Aided Drafting,Design and Manufacturing,2014,24(2):4853.
[5]李洋,孫永维,许冰,等.基于Ajax、Struts、Hibernate和Spring的J2EE架构[J].吉林大学学报:信息科学版,2011,29(6):576584.
[6]安国志.基于J2EE技术的面向水利领域的分布式多层应用系统研究与开发[D].北京:北京工业大学,2013.
[7]王恩东.基于struts,hibernate和spring的J2EE架构研究[J].现代电子技术,2009,2(28):6163.