摘要:针对小型企业办公自动化程度低的问题, 设计了基于Java Web的办公自动化系统。该系统充分考虑了小型企业人员规模小, 行政流程相对简单的特点, 放弃了用处不大的工作流。此外, 为降低耦合度和维护成本, 系统采用了B/S构架, 运用Java Web中的SSH框架和MVC控制模型开发而成。研究结果表明:该系统功能针对性强, 日常维护方便, 可以满足小型企业的日常使用需求。
关键词:小型企业; 自动化办公系统; Java Web技术; SSH框架;
Abstract:Aiming at the problem that traditional office business style is popular in small enterprises, an automation office system (OA) based on Java Web is designed. The system considers the characteristics of the small enterprises such as small size and simple administration, the workflow software has been abandoned. In addition, in order to reduce the cost of design and maintenance, the system uses B/S framework, SSH frame and MVC model to separate business logic and control data, reduce the coupling, which is in favor of system maintenance and expansion. The results show that the system has strong function and convenient maintenance, and can meet the daily needs of small businesses.
Keyword:small enterprises; Java Web technology; SSH frame;
互联网已深入到个人生活的方方面面, 随之而来的自动化、智能化理念日渐深入人心。“互联网+”正改变着人们的日常生活, 作为日常活动主要构成部分的办公活动, 也不可避免地受到关注, 办公自动化这一概念越来越多地被提及。
办公自动化就是通过信息技术将办公环境集成起来。主要有信息交互平台, 信息发布平台, 流程自动化, 管理自动化, 辅助办公, 信息集成, 办公分布化等七个方面的功能。
办公自动化的研究虽然在我国起步较晚, 但近30年其技术发展一日千里, 我国对相关理论的研究越来越深入。早期引入办公设备部分取代人力办公就被视为办公自动化;后来办公自动化的定义有了延伸, 利用电脑进行文档存贮、编排及打印工作, 用电脑进行各种人事、财务管理等活动也被视为办公自动化;现在办公自动化可以理解为是不同主体间信息的传递及处理过程[1]。
办公自动化系统在企业中已经得到了广泛应用。对于一些大企业而言, 由于行政流程相对规范化、标准化, 资金也相对充裕, 因而大企业一般采购专业公司开发的现成系统。这些系统虽然价格昂贵, 但开发之初功能模块就很完善, 后期只需按照客户需求稍作修改就可投入使用。对小企业而言, 由于人员规模较小, 行政流程也相对更简洁、有特色, 资金不充裕, 而采购专业系统昂贵, 一些工作流可能并不贴合企业实际, 造成功能浪费。此外, 对小企业而言, 系统运维人手也并不如大企业充裕, 维护复杂的系统较困难。因此, 开发简洁、易维护的办公系统对小企业而言就很有必要[2-3]。
本研究结合实际, 分析小型企业的基本需求, 运用SSH框架和MVC控制模型以实现用户管理功能, 日程管理功能, 短消息管理功能, 公告管理功能, 会议管理功能, 个人通讯录功能, 工作日志功能等基本功能并进行测试。
1、系统架构设计
SSH是struts+spring+hibernate集成框架的简称, 是一种较为流行的开源的Web应用程序框架。
⑴最简单的整合方式无疑是用Struts中的Action继承Spring中的Action Support类, 并在Action中获取Spring的Application Context。
⑵此外, 也可以在Struts的配置文件中, 以Spring的Delegating Request Processor类代替Struts的Request Processor类, 并在Spring的配置文件中定义与Struts配置文件中<action-mappings>对应的bean, 从而将Struts的Action与Spring分开, 并把Struts的动作置于Spring的控制之下。这种整合方式的优点是将不再依赖Spring这个特定的Io C容器, 但必须依赖Struts的Request Processor类。
⑶最灵活的整合方式无疑是通过Spring的Delegating Action Proxy类代理Struts的动作, 即在Struts配置文件中, 将定义<action-mappings>的type属性全部改为Delegating Action Proxy, 而不是具体的类名, 并在Spring配置文件中定义与Struts动作映射对应的bean, 从而将Struts的Action与Spring分开, 并把Struts的动作置于Spring的控制之下。
MVC包含了模型 (Model) 对象, 视图 (View) 对象和控制器 (Control) 对象。采用该模型来开发系统, 不仅可以彻底的分离视图、控制器与模型, 还分离了业务逻辑层与持久层。该模型的好处在于不用考虑前端的变化, 模型层只要稍加改动就可适应前端的变化, 而且也无需担心数据库的变化会影响前端, 这样有助于提高系统的可复用性, 可大大提高开发效率[4-5]。SSH架构如图1所示。
2、系统详细设计
本系统分为若干个功能模块, 各模块相互独立。例如, 用户管理模块对普通用户和系统管理员作了区分。使用该办公自动化系统用户首先要注册, 登录模块判断用户是否为合法用户。登录与注册流程如图2、图3所示。
图1 struts+Spring+Hibernate架构
图2 登录结构图
图3 注册结构图
其他功能模块有日程管理, 短消息管理, 公告管理, 会议管理, 个人通讯录管理, 工作日志管理。这些模块与用户管理模块作用不同, 但它们彼此间功能较为相似, 主要是实现对信息的增、删、改、查。以日程管理模块为例, 其流程图如图4所示。其他功能模块流程图略。
图4 日程安排模块结构图
3、系统功能模块实现
3.1、开发流程
⑴Hibernate功能开发。包括创建Hibernate的持久化类、映射文件, 开发DAO类[6-7]。
⑵Spring功能开发。配置application Context.xml文件, 其中包括数据源配置、Session Factory的配置、配置事务、配置DAO组件以及配置DAO事务[8]。
⑶Struts功能开发。开发Form Bean类、Action类、JSP页面调用Hibernate层的DAO类执行与数据库的交互[9]。
3.2、相关功能模块的设计代码
用户管理模块的作用是方便用户登录和注册, 该模块对普通用户和系统管理员作了区分。登录、注册模块是系统中最早与用户交互的功能模块。
3.2.1、Hibernate开发
由My Eclipse自动生成持久化抽象类Abstract User.java, 持久化类User.java映射文件User.hbm.xml, 并在application Context.xml进行配置。开发User DAO.java功能类, 该类包含的函数分别是判断用户是否存在, 并添加用户, 删除用户。核心代码如下: (该接口定义了User DAO.java中定义的方法)
3.2.2、Struts开发
创建表单类:
Login Form.java, Register Form.java
创建Action类:
Login Action.java, Logout Action, Register Action.java
(在类中调用User DAO类实现数据库的操作) 。
创建JSP页面[10-11]:
⑴登陆页面login.jsp
<form name="form1"action="login.do"method="post">
⑵欢迎页面welcome.jsp
<form name="form1"action="logout.do"method="post">
⑶注册页面register.jsp
<form name="form1"action="register.do.method=register"method="post">
登录注册模块的数据流图如图5所示。
图5 登录、注册模块数据流图
3.2.3、日程管理模块的实现
日程管理模块中的主要信息有年、月、日及日程安排等, 用户可以添加新的日程安排, 也可对已经发布的日程安排进行查看、修改和删除操作。
⑴Hibernate开发
由My Eclipse自动生成持久化抽象类AbstractSchedules.java;
持久化类Schedule.java, 映射文件Schedule.hbm.xml;
并在application Context.xml进行配置。
开发Schedule DAO.java功能类, 该类包含的函数分别是添加日程, 修改日程, 删除日程, 察看日程。核心代码如下 (该接口定义了Schedule DAO.java中定义的方法) :
⑵Struts开发
创建表单类:Schedule Form.java
创建Action类:Schedule Action.java (在类中调用Schedule DAO类实现数据库的操作) 。
创建JSP页面:
(1) 列表页面schedule.jap
<form name="form1"action="schedule.do method=list"method="post">
(2) 添加页面schedule_add.jsp
<form name="form1"action="schedule_add.domethod=insert"method="post">
(3) 修改页面schedule_edit.jsp
<form name="form1"action="schedule_edit.do method=update"method="post">
该模块数据流图如图6所示。
图6 日程安排模块数据流图
4、系统测试
新系统在完成设计实现后还需进行测试。测试有助于发现系统设计开发中的功能错误, 可使系统的功能更加完善, 可使系统在投入使用后运行更加流畅平稳。本研究拟定测试方案如下:
4.1、功能测试
功能测试需遵照功能说明书, 测试时不考虑系统内部结构, 只看输入数据后系统能否正确输出数据。
4.2、单元测试
单元测试规模小, 采用白盒方法编写测试用例, 让所有路径都覆盖一遍, 从而达到较为彻底的测试效果。
由于本研究测试用例过多, 在此不一一列举。公告管理测试用例如表1所示。
表1 添加公告测试用例
5、结束语
本文分析了小型企业办公需求, 结合实际设计了基于Java Web的办公自动化系统。基于B/S构架, 运用SSH框架和MVC控制模型较好地减低了耦合度, 增加了可扩展性。经测试, 相关功能模块运行正常, 可以满足日常使用要求。
系统还存在许多不足。如系统过于追求简练可靠, 使用的技术相对保守, 一些图片标签没有添加到系统中去, 以至系统界面不够美观;系统在设计之初主要考虑本单位需求, 一些功能如考勤管理和财务管理没有整合到设计中去, 因此系统功能还存在缺陷。
下一步, 笔者打算进一步美化系统, 使界面更具观赏性;尝试设计开发考勤管理和财务管理等功能模块;扩展接口, 尝试将本系统与本单位的官方网站及采编系统整合起来, 使其更集成化。
参考文献
[1]张淞芝.关于我国办公自动化系统建设的几点看法[J].计算技术与自动化, 1986.4:3-9
[2]于莉.我国中小企业OA系统应用现状分析[J].中国电子商务, 2011.11:230-230
[3]李明钧.一个中小型办公自动化系统的规划设计方案浅析[J].计算技术与自动化, 1986.4:19-21
[4]刘中兵.开发者突击Java Web主流框架整合开发[M].电子工业出版社, 2008.
[5]叶达锋.Eclipse编程技术与实例[M].人民邮电出版社, 2006.
[6]范斯瓦尼.My SQL完全手册[M].电子工业出版社, 2005.
[7]李春葆, 曾慧.SQL Server2000应用系统开发教程[M].清华大学出版社, 2003.
[8]刘军, 戴金山.基于Spring MVC与i Batis的轻量级Web应用研究[J].计算机应用, 2006, 26 (4) :840-843
[9]邱哲, 马斗.Struts设计开发大全[M].清华大学出版社, 2006.
[10]刘晓华.JSP应用开发详解[M].电子工业出版社, 2007.
[11]唐友国, 湛洪波.JSP网站开发详解 (JSP+Servlet+Tomcat+Eclipse+SSH) [M].电子工业出版社, 2008.