董久敏,杨 旭
(烟台职业学院 信息工程系,烟台 264670)
J2EE(Java 2 Platform Enterprise Edition)是目前最复杂、最成熟、最有影响力的企业应用模型。作为一种分布式计算的结构体系,J2EE在事务管理[1]、持久性、安全性、组件的多实例管理等方面提供了强大的支持。本文描述了网上办公系统的系统结构、软件架构以及系统实现的一些关键技术。
Web Services是一个应用组件,它逻辑性的为其他应用程序提供数据与服务。各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Services,通过Web Services内部执行得到所需结果。如果正提供一个服务,就需要将其描述给其他人;如果想使用一个服务,就需要将所寻找的服务描述出来。
由于CMP在大规模操作时占用系统资源很多且运行速度慢,因此对需要大量访问的功能模块,采用了在应用层的Java Bean 通过JNDI(Java Naming and Directory Interface,Java 命名和目录接口)查找数据库连接池获取连接来访问数据的方式实现[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.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的部门,可以实现带附件电子邮件的群发。
业务逻辑层主要采用EJB3.0技术实现,根据不同的OA功能,连接后台管理信息数据库,完成对基础管理信息的分析和处理,实现不同的管理功能逻辑,并通过对应的EJB组件为其它功能或其它应用程序提供运行时的调用接口。
每个功能模块包含一个或多个业务组件,每个业务组件由下列几部分组成,两个HOME接口(本地和远程),两个业务接口(本地和远程),一个实现了这些接口的主类,和一个部署描述符表(DD)。其中HOME接口定义了一些控制该组件生命周期的一些方法,例如:CREATE(),REMOVE()等,而业务接口中定义了该业务组件功能实现所需要的一系列业务方法,所有这些方法的定义都被映射到主类对各个方法的具体实现中,其它的业务组件或应用程序客户端通过这些接口对该组件进行调用,本地调用过程跟通常的单机调用过程类似,这里不再赘述。
用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]。
网上办公系统将 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.