基于J2EE 的网上办公系统的设计及实现

2011-02-09 01:57董久敏
制造业自动化 2011年5期
关键词:调用组件模块

董久敏,杨 旭

(烟台职业学院 信息工程系,烟台 264670)

0 引言

J2EE(Java 2 Platform Enterprise Edition)是目前最复杂、最成熟、最有影响力的企业应用模型。作为一种分布式计算的结构体系,J2EE在事务管理[1]、持久性、安全性、组件的多实例管理等方面提供了强大的支持。本文描述了网上办公系统的系统结构、软件架构以及系统实现的一些关键技术。

1 Web Services体系结构及关键技术

Web Services是一个应用组件,它逻辑性的为其他应用程序提供数据与服务。各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Services,通过Web Services内部执行得到所需结果。如果正提供一个服务,就需要将其描述给其他人;如果想使用一个服务,就需要将所寻找的服务描述出来。

2 系统分析

2.1 体系架构

由于CMP在大规模操作时占用系统资源很多且运行速度慢,因此对需要大量访问的功能模块,采用了在应用层的Java Bean 通过JNDI(Java Naming and Directory Interface,Java 命名和目录接口)查找数据库连接池获取连接来访问数据的方式实现[2]。

2.2 数据库分析

2.2.1 权限管理系统的实体有[3]

用户、角色、模块、功能,这四个实体之间的关系如图1所示。

图1 权限管理模块 E-R图

2.2.2 公文管理系统的实体有

公文(Document)、回复函(Return letter)、附件(Accessories)、部门(Department),公文附件Accessories完全依赖于特定的公文Document而存在,因此建模为弱实体;回函Return letter是部门针对特定的公文Document作出的答复,Document是Return letter的概化。4个实体的关系如图2所示。其它ER图,本文不再一一列举。

2.3 系统主要模块

2.3.1 权限管理模块

主要完成授予用户权限。基于角色的访问控制RBAC(Role-Based Access Control)授权模型,访问控制策略体现在RBAC模型里是用户-角色、角色-权限和角色-角色之间的关系。采用RBAC的最大好处在于将用户和其具有的权限分离开来,管理员可以将用户的授权和权限的划分进行分别处理,通过给角色授予权限,给用户分配角色来实现用户的授权操作[4]。如图3所示。

图2 公文管理模块ER图

图3 权限分配模型

2.3.2 公告管理模块

定期公告近期的重要活动、大事记。管理员具有最高的权限,可以进行公告的添加、修改、删除。

2.3.3 公文管理模块

由Word插件实现公文内容排版;公文经相关领导批准;应用商业插件将公文由Word文件转换成PDF文件;使用SmartUpload组件实现公文及其附件的上传;将公文发送到相关的部门;接收公文部门反馈签收信息、回函。

2.3.4 电子邮件管理模块

选择接收Email的部门,可以实现带附件电子邮件的群发。

3 业务逻辑层的实现

业务逻辑层主要采用EJB3.0技术实现,根据不同的OA功能,连接后台管理信息数据库,完成对基础管理信息的分析和处理,实现不同的管理功能逻辑,并通过对应的EJB组件为其它功能或其它应用程序提供运行时的调用接口。

每个功能模块包含一个或多个业务组件,每个业务组件由下列几部分组成,两个HOME接口(本地和远程),两个业务接口(本地和远程),一个实现了这些接口的主类,和一个部署描述符表(DD)。其中HOME接口定义了一些控制该组件生命周期的一些方法,例如:CREATE(),REMOVE()等,而业务接口中定义了该业务组件功能实现所需要的一系列业务方法,所有这些方法的定义都被映射到主类对各个方法的具体实现中,其它的业务组件或应用程序客户端通过这些接口对该组件进行调用,本地调用过程跟通常的单机调用过程类似,这里不再赘述。

4 系统的性能优化方法

用Session Facade 封装对相关数据的操作。在J2EE的实际应用中,经常会遇到对多个相关数据项目进行一系列的操作,而每个数据项目封装在各自的Entity Bean 中的情况。例如:在网上办公系统中,要查询一个用户的权限,需要访问用户信息表、角色信息表、用户角色信息表、模块信息表、功能信息表、权限信息表、角色权限信息表等等。通常这些信息都封装在独立的Entity Bean中。在处理这类情况时。如果让客户程序直接与这些Entity Bean交互,在其上进行一系列的操作,那么即使这些Entity Bean在同一个服务器上,客户程序也要进行多次远程调用才能完成操作,这样的设计方式显然会造成系统性能的低下。为此,我们可以采用Session Facade的设计模式,在客户程序和Entity Bean之间引入一个叫做Session Facade的Session Bean,由Session Facade封装对多个Entity Bean的一系列操作,并对外提供统一接口,客户程序提供该Session Facade的接口进行操作。这样以来,客户程序只需一次远程调用就可以完成操作,从而可以大大提高性能[5]。

5 结束语

网上办公系统将 EJB3.0、Web Services、JBOSS5.0等新技术完整地结合构建基于J2EE的Web应用系统,并采用缓存技术、连接池技术优化系统性能;系统可以跨平台稳定运行,应用MDB将打印等耗时长的操作实现异步处理,系统响应时间迅速,高效可靠地运行。

[1] 微软公司,Web Services 设计[M].北京:高等教育出版社,2008:86-99.

[2] 陈天河,Hibernate项目开发[M].北京:电子工业出版社,2009:393-398

[3] 李振捷,JSP网站开发[M].北京:电子工业出版社,2009:410-416

[4] 陈志泊,数据库原理及应用教程[M].北京:人民邮电出版社,2008:230-238

[5] Rima Patel Striganesh,Mastering EnterPrise JavaBean3.0[M].北京:电子工业出版社,2010:128-130.

猜你喜欢
调用组件模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
风起新一代光伏组件膜层:SSG纳米自清洁膜层
利用RFC技术实现SAP系统接口通信
集成水空中冷器的进气模块