OA办公自动化系统_第1页
OA办公自动化系统_第2页
OA办公自动化系统_第3页
OA办公自动化系统_第4页
OA办公自动化系统_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 毕业设计(论文)OA办公自动化系统学 院: 计算机科学与技术学院专 业: 姓 名: 指导老师: 软件工程三班李挚轩 学 号: 职 称: 郑大鹏中国珠海二一 年 五 月北京理工大学珠海学院毕业论文诚信承诺书本人郑重承诺:我所呈交的毕业论文OA办公自动化系统是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,论文使用的数据真实可靠。承诺人签名: 日期: 年 月 日OA办公自动化系统摘 要传统的办公模式主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。如何实现信息处理的自动化和办公的无纸化逐步得到了人们

2、的重视。Internet/Intranet的迅猛发展,为信息的交流和共享,团队的协同运作提供了技术的保证,同时也预示着网络化办公时代来临。利用网络通讯基础及先进的网络应用平台,建设一个安全、可靠、开放、高效的信息网络和办公自动化、信息管理电子化系统,为管理部门提供现代化的日常办公条件及丰富的综合信息服务,提高办公效率和管理水平,实现企业各部门日常业务工作的规范化、电子化、标准化,增强档案的可管理性,实现信息的在线查询、借阅,最终实现“无纸”办公。办公自动化还是一个企业与整个世界联系的渠道,企业的Intranet网络可以和Internet相联。一方面,企业的员工可以在Internet上查找 有关

3、的技术资料、市场行情,与现有或潜在的客户、合作伙伴联系;另一方面,其他企业可以通过Internet访问你对外发布的企业信息,如企业介绍、生产 经营业绩、业务范围、产品/服务等信息。从而起到宣传介绍的作用。随着办公自动化的推广,越来越多的企业将通过自己的Intranet网络联接到 Internet上,所以这种网上交流的潜力将非常巨大。关键词:OA MyEclipse Tomcat J2EE On-line Business Enterprise Transacts the AutomationABSTRACTThis volume is divided into six totally, int

4、roducing the on-line business enterprise to transact the development background of the automation first, the OA says all, developping the tool and technique researches.Is system analysis and the system designs that transacts to automate this system to the net business enterprise the next in order, i

5、nclude the main function, carry out the target, the system structure diagram, the business flow chart, the database design, the document configurings etc.Then transacted the realization of the automation function to do to the whole on-line business enterprise to elaborate detailedly, include to carr

6、y out the target, carrying out the process, the code analysis wait.Make use of the Dreamweaver adequately to complete the creation that the whole on-line business enterprise transacts the automation, make this system function more perfect, the page enriches the beauty more.Keywords The ASP on-line b

7、usiness enterprise transacts the automation 目 录 摘 要3ABSTRACT4目 录51 引言12 办公自动化系统需求分析22.1系统功能模块23 系统总体设计53.1系统架构设计53.2本系统架构设计及系统技术介绍53.3 Struts63.4 ORM93.5 Hibernate93.6 IOC(DI)103.7 AOP113.8 Sping123.9 SSH133.91 Struts基本原理和解决问题133.92 Hibernate解决问题143.93 Spring解决问题143.10 系统架构154 UML建模164.1系统用例图164.2系统

8、顺序图174.3系统活动图235 数据库设计255.1 Hibernate基本映射原理255.2 系统对象设计255.2.1 权限模型 基本对象设计255.2.1 工作流模型 基本对象设计305. 2. 2 组织机构模型 基本对象设计316 系统详细设计316.1 表现层实现326.2 业务逻辑层 持久层 实现336.21 SSH整合336.22 JBPM介绍346.22 工作流整合356.23 接口设计356.3界面设计396. 3. 1 登录界面396. 3. 2 管理主界面396. 3. 3 组织机构406. 3. 4 权限管理436.4 公文管理516. 4. 1 公文管理516. 4

9、. 2 工作流547 调试和测试577.1 单元测试577.2 调试运行598小结60参考文献611 引言传统的办公模式主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。如何实现信息处理的自动化和办公的无纸化逐步得到了人们的重视。Internet/Intranet的迅猛发展,为信息的交流和共享,团队的协同运作提供了技术的保证,同时也预示着网络化办公时代来临。利用网络通讯基础及先进的网络应用平台,建设一个安全、可靠、开放、高效的信息网络和办公自动化、信息管理电子化系统,为管理部门提供现代化的日常办公条件及丰富的综合信息服务,提高办公效率和管理水平,实

10、现企业各部门日常业务工作的规范化、电子化、标准化,增强档案的可管理性,实现信息的在线查询、借阅,最终实现“无纸”办公。“无纸”办公不仅比较环保,节省了纸张的“浪费”,而且能够缩短办公人员的办公时间,对于提高企业效率上有一定帮助。所以企业引进办公自动化系统有一定必要性。传统JSP+JAVABEAN技术基本可以完成办公自动化系统,但开发难度,开发周期等都比较大,它适合于开发难度比较低而且需求比较明确的系统。本系统采用Struts,Hibernate,Spring来开发,工作流方面采用JBPM技术,大大降低开发难度和开发周期,对于系统可扩展性和可维护性有很大程度的提高。对于系统权限方面,市面上存在一

11、些比较简单的权限设计方案,虽然从根本上能实现权限的授权和验证,但不利如权限模块的可扩展性。或者存在过于复杂,但无用的设计,不利于系统的可理解性,也不利于维护。所以本系统从对RBAC模型的理解上扩展,形成一套扩展性和维护性相对较好的模型,既能满足大部分国内市场的需求,也能很好的完成权限的授权和验证。2 办公自动化系统需求分析2.1系统功能模块序号功能名称功能需求标识优先级简要描述个人办公我的办公桌高打开个人办公桌,在个人办公桌上,是到达各种管理功能的快捷链接我的便签低随手记录的信息我的任务低任务管理通信录低个人通信录公文管理公文维护高各种类型的公文管理、审批公文等归档处理高对已完成流转的公文进行

12、归档公共信息信息管理中进行新闻、通知、期刊、知识和规章制度的发布和管理,使企业的信息和知识快速传播和转移。行政办公会议管理中管理会议室的占用情况资产管理低管理企业的资产信息用品管理低管理企业用品的申请车辆管理低企业车辆的管理图书管理低图书的借出管理消息管理收件箱中接收的所有消息发件箱中发送的所有消息垃圾箱中已删除的消息聊天记录中跟某个用户的聊天记录工作流程流程管理高如何定义企业的流程(可以灵活定义各种流程)表单定义高如何针对不同的流程定义表单组织管理机构管理高公司组织架构管理人员管理高公司人员管理权限管理模块管理高系统所有模块的管理角色管理高系统的角色定义、给角色分配权限等用户管理高系统帐号的

13、分配、给用户分配角色、给用户分配权限等系统管理密码修改低代码定义低系统初始化低人事档案人员履历低转正申请低离职申请低员工考勤低办公自动化系统需求还是比较多的,在分析需求后划分系统模块,根据模块的特点和所用技术划分出优先级并制定开发计划,从优先级比较高的模块开始着手开发。这样从难到易的开发模式由利于节省开发成本,和缩短开发迭代的周期。本系统将只实现优先级为高的需求。在工作流模块中,流程管理里将实现流程的添加,更新和删除,通过结合JBPM使得流程管理功能更加强大;然后表单定义描述的是对动态表单的实现,每个流程可以对应不同的表单,这完全是用户自定义的。在组织管理模块中,机构管理将实现机构的增,删,改

14、,查操作,鉴于机构有层次关系,机构的显示将会采用树形结构显示。在权限管理模块中,分别提供模块,角色和用户的增,删,改,查操作,用户定义好模块之后,在角色管理里,能够按照不同的角色分别相应的模块增,删,改,查操作,为了满足更大的一部分需求,本系统除了可以为角色授权之外,还可以给用户单独授权,在用户管理里,显示所有用户,并能为之授权。最后在公文管理模块中,用户可以创建公文并绑定到某一工作流里,通过对工作流的触发,把公文提交到下一流程,最终实现“无纸“办公的目的。3 系统总体设计3.1系统架构设计J2EE技术发展到今天,已有很多成熟的技术和思想,在技术和思想上两者可谓相辅相成,互相影响,缺一不可。技

15、术和思想的不断革命为J2EE系统的开发注入不少动力,并且不断带来变化。从以前的纯JSP开发到JSP+JAVABEAN,再到MVC技术的普及等等,都带来革命性的影响。到了现在,J2EE各项技术和思想上的不断革新,程序员们陆续提倡要回归软件本身,回归软件的核心,即为用户解决领域相关问题的能力,其他的一些特性,尽管他们也许是必需的,但也是用来支持这个核心目的的。解决领域相关问题要求我们更加关注领域对象模型的建模,而解决来自领域方面的问题的软件本分通常只占整个软件系统的一小部分,这于它的重要性相比是不成正比的。为了应用优秀的领域建模技术,我们需要把领域对象跟系统的其他功能分离出去,才能避免另领域概念雨

16、其他跟软件技术相关的概念混淆或者在庞大的系统中失去对领域的把握。这种成熟的领域分离技术早已出现,它为我们打下良好的基础-系统架构分层。传统三层架构早已在J2EE项目中得到广泛应用,它主要分为:表现层,业务逻辑层和持久化层。将一个复杂的程序进行层次划分。为每一层进行设计,每层都是高内聚的而且只依赖于它的下层,每层具体职责为:表现层负责向用户显示信息,并解析用户命令。定义软件可以完成的工作,并指挥下层操作领域对象来解决问题。业务逻辑层该层对业务影响深远,他包含业务规则或者知识,完成系统主要功能需求,操作领域对象互相合作解决问题持久化层为上层提供通用技术能力,把领域对象持久化保存到数据库中,为下次访

17、问该对象提供条件各层分工合作,层于层之间做到低耦合,每层间的类做到高内聚,使系统可维护性和扩展性得到巨大的提升。3.2本系统架构设计及系统技术介绍本系统采用JAVA语言进行开发,面向对象特性为系统的可维护性和可扩展性提供了根本的支持,而且JAVA开放源代码特性,使其迅速发展,涌现大量成熟技术支持,尤其在JAVA EE领域,更可谓前无古人。JAVA EE包含13种技术,当然现在可能已经不止,当今JAVA EE领域里更多的是使用Struts,Hibernate,Spring的架构方式,现在分别介绍一下这三种技术,然后就这三种技术可以解决的问题作陈述,再而讨论本系统采用这三种技术的必要性。3.3 S

18、trutsStruts作为一个开放原代码的应用框架,在最近几年得到了飞速的发展,在JSP Web应用开发中应用得非常广泛,有的文献上说它已经成为JSP Web应用框架的事实上的标准。Struts是一个实现了Model2的MVC框架,要介绍Struts的话,就要从JSP Web应用的两种基本的结构模式:Model 1和Model 2说起, Model 1结构如图1所示:mode1 1是一个以JSP文件为中心的模式,在这种模式中JSP页面不仅负责表现逻辑,也负责控制逻辑。专业书籍上称之为逻辑耦合在页面中,这种处理方式,对一些 规模很小的项目如:一个简单的留言簿,也没什么太大的坏处,实际上,人们开始

19、接触一些对自己来说是新的东西的时候,比如,用JSP访问数据库时,往往喜欢 别人能提供一个包含这一切的单个JSP页面,因为这样在一个页面上他就可以把握全局,便于理解。但是,用Model 1模式开发大型时,程序流向由一些互相能够感知的页面决定,当页面很多时要清楚地把握其流向将是很复杂的事情,当您修改一页时可能会影响相关的很多页面, 大有牵一发而动全身的感觉,使得程序的修改与维护变得异常困难;还有一个问题就是程序逻辑开发与页面设计纠缠在一起,既不便于分工合作也不利于代码的重 用,这样的程序其健壮性和可伸缩性都不好。 Grady Booch等人在UML用户指南一书中,强调建模的重要性时,打了一个制作狗

20、窝、私人住宅、和大厦的形象比喻来说明人们处理不同规模的事物时应该采用的合 理方法一样,人们对不同规模的应用程序也应该采用不同的模式。 为了克服Model 1的缺陷,人们引入了Model 2,如下图所示:它引入了控制器这个概念,控制器一般由servlet来担任,客户端的请求不再直接送给一个 处理业务逻辑的JSP页面,而是送给这个控制器,再由控制器根据具体的请求调用不同的事务逻辑,并将处理结果返回到合适的页面。因此,这个servlet 控制器为应用程序提供了一个进行前-后端处理的中枢。一方面为输入数据的验证、身份认证、日志及实现国际化编程提供了一个合适的切入点;另一方面也提供了 将业务逻辑从JSP

21、文件剥离的可能。业务逻辑从JSP页面分离后,JSP文件蜕变成一个单纯完成显示任务的东西,这就是常说的View。而独立出来的事务 逻辑变成人们常说的Model,再加上控制器Control本身,就构成了MVC模式。实践证明,MVC模式为大型程序的开发及维护提供了巨大的便利。 其实,MVC开始并不是为Web应用程序提出的模式,传统的MVC要求M将其状态变化通报给V,但由于Web浏览器工作在典型的拉模式而非推模式,很难做 到这一点。因此有些人又将用于Web应用的MVC称之为MVC2。正如上面所提到的MVC是一种模式,当然可以有各种不同的具体实现,包括您自己就可以实 现一个体现MVC思想的程序框架,St

22、ruts就是一种具体实现MVC2的程序框架。它的大致结构如下图所示:上图基本勾勒出了一个基于Struts的应用程序的结构,从左到右,分别是其表示层 (view)、控制层(controller)、和模型层(Model)。其表示层使用Struts标签库构建。来自客户的所有需要通过框架的请求统一由 叫ActionServlet的servlet接收(ActionServlet Struts已经为我们写好了,只要您应用没有什么特别的要求,它基本上都能满足您的要求),根据接收的请求参数和Struts配置(struts- config.xml)中ActionMapping,将请求送给合适的Action去处理

23、,解决由谁做的问题,它们共同构成Struts的控制器。 Action则是Struts应用中真正干活的组件,开发人员一般都要在这里耗费大量的时间,它解决的是做什么的问题,它通过调用需要的业务组件(模型) 来完成应用的业务,业务组件解决的是如何做的问题,并将执行的结果返回一个代表所需的描绘响应的JSP(或Action)的ActionForward对 象给ActionServlet以将响应呈现给客户。 过程如图四所示:3.4 ORM对象-关系映射就是Java应用中的对象到关系数据库中的表的自动的(和透明的)持久化,使用元数据(meta data)描述对象与数据库间的映射。本质上,ORM的工作是将数据

24、从一种表示(双向)转换为另一种。3.5 Hibernatehibernate是一个基于orm的开源框架,也是一个轻量级框架,它是在JDBC之上提供一层薄薄的封装,在提供完全透明的持久化机制的同时又提供尽可能多的灵活性。架构图如下:1 hibernate 是一个对象/关系 映射的框架,有了hibernate可以使我们不再关心数据库的底层结构 只需要专心我们的对象 是实现了完全面向对象的编程。 2 透明持久化,进行持久化的对象是单线程的 而且对象的生命周期很短,当对象被hibernate持久化的时候 对象没有太过依赖于hibernate 并没有实现某个接口或者 那个框架 它们只是和session进

25、行关联 hibernate提供很好的session管理的方式,当对象持久化的操作完成后 session就会自动的关闭这样对象 又能够被任何的其他层使用。 3 框架的特性,框架是一个轻量级的框架 没有入侵性 4 hibernate的缓存机制 hibernate提供了一级缓存 session 二级缓存sessionFactory 5 hibernate是jdbc的轻量级 的对象封装。 是可以独立的对象持久层框架。可以用在任何jdbc可以使用的场合,比如说 java程序的数据库的访问,web程序的数据库的访问。它是指和jdbc 有关系 和运用hibernate的程序关 可以这样说 只要是能够使用 j

26、dbc链接数据库的程序都能够使用hibernate进行数据库的链接,它和 服务器或者程序也不存在兼容性。 6 内存消耗问题 在开发小项目关系单一的话 那么 eb的效率最高 。 jdbc次之 hibernate也许是最低的 但是对于大的项目 关系非常复杂的来说 hibernate 的处理速度非常惊人,jdbc次之,eb几乎根本就不能够实现。 hibernate的缺点 7 hibernate适合各种数据库 从一对一 到多对多关系 操作方便。3.6 IOC(DI)分离关注( Separation of Concerns : SOC)是Ioc模式和AOP产生最原始动力,通过功能分解可得到关注点,这些关

27、注可以是 组件Components, 方面Aspects或服务Services。Ioc英文为 Inversion of Control,即反转模式,这里有著名的好莱坞理论:你呆着别动,到时我会找你。后被Martin Fowler改名为 Dependency Injection 依赖注射,也就是将类之间的关系通过第三方进行注射,不需要类自己去解决调用关系。其实Ioc模式也是解决调用者和被调用者之间的一种关系,由于被调用者名称写入了调用者的代码中,这产生了一个接口实现的原罪:彼此联系,调用者和被调用者有紧密联系,在UML中是 用依赖 Dependency 表示。但是这种依赖在分离关注的思维下是不可

28、忍耐的,必须切割,实现调用者和被调用者解耦,新的Ioc模式 Dependency Injection 模式由此产生了, Dependency Injection模式是依赖注射的意思,也就是将依赖先剥离,然后在适当时候再注射进入。3.7 AOPAOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可 以说也是这种目标的一种实现。方面(Aspect):对横向分布在多个对象中的关注点所做的模块化。在企业应用中,事务管理就是一个典型的横切关注点。Spring.

29、NET将方面实现 为Advisor或拦截器(interceptor)。(按:Advisor是通知和切入点的组合,拦截器实际就是指通知,注意在本文档中,一般会把环绕 通知称为拦截器,而将其它类型的通知称为通知,这是因为环绕通知实现的是 AopAlliance.Intercept.IMethodInterceptor接口,而其它通知类型实现的都是Spring.Aop命名空间下的通 知接口。) 连接点(Joinpoint):程序执行过程中的一个点,例如对某个方法的调用或者某个特定异常的抛出都可以称为连接点。 通知(Advice):AOP框架在某个连接点所采取的行为。通知有多种类型,包括“环绕”通知,

30、“前置”通知和“异常”通知等,后文将对通知类 型进行讨论。包括Spring.NET在内的很多AOP框架都把通知建模为拦截器(interceptor),并且会维护一个包围在连接点周围的拦截 器链。 切入点(Pointcut):指通知的应用条件,用于确定某个通知要被应用到哪些连接点上。AOP框架应允许让开发人员指定切入点,例如,可以使 用正则表达式来指定一个切入点。 引入(Introduction):向目标对象添加方法或字段的行为。Spring.NET允许为任何目标对象引入新的接口。例如,可以利用引入 让任何对象在运行期实现IAuditable接口,以简化对象状态变化的跟踪过程。(按:也称为mix

31、in,混入) 目标对象(Target object):指包含连接点的对象。也称为被通知或被代理对象。(按:“被通知对象”实际是“被应用了通知的对象”,在译文中,将advised object或proxied object统称为目标对象,这样更为统一) AOP代理(AOP proxy):由AOP框架在将通知应用于目标对象后创建的对象。在Spring.NET中,AOP代理是使用IL代码在运行时创建的动态代理。 织入(Weaving):将方面进行组装,以创建一个目标对象。织入可以在编译期完成(例如使用Gripper_Loom.NET编译器),也可 以在运行时完成。Spring.NET在运行时执行织入

32、。3.8 SpingSpring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然 而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。架构图如下:目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器 框架。轻量从大小与开销两方面而言Spring都是轻量的。

33、完整的Spring 框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型 地,Spring应用中的对象不依赖于Spring的特定类。 控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦 合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不 是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的 业务逻辑与系统级服务(例如

34、审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务 逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是 一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以 创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经 常是庞大与笨重的,难以使用。 3.9 SSH3.91 Struts基本原理和解决问题

35、ActionServlet是一个Servlet类,扩展了javax.servlet.http.HttpServlet,实现了servlet的生命周期的方法 (init(),doGet(),doPost(),destroy())之处,还添加了一个真正处理请求的方法process.,实际上控制器所执行的 控制逻辑包含在RequestProcessor类中,而不是ActionServlet类中。RequestProcessor类的process() 方法从struts-config.xml文件中根据请求的URI查找匹配的子元素,并根据子 元素的name属性在该配置文件中查找匹配的子元素。确定下一步要

36、用到的ActionForm Bean.,取得FormBean的名称后,process()方法将创建或检索由元素的type属性命名的 ActionForm的一个实例。然后用再请求提交的值来填充数据。并调用ActionForm的validate()方法验证提交的值。最后 process()方法才真正开始处理请求。它首先从元素的type属性获得action类的名称,然后调用Action类 里的execute()方法。由execute()方法返回一个ActionForward对象,确定应用程序的下一个视图。由此可见,Struts为一个实现了MVC的框架,其灵活性相当高,适合用于绝大多数JAVA EE应

37、用中,可以轻松解决页面和控制之间的耦合,对营造一个良好的系统架构起着关键性的作用。3.92 Hibernate解决问题现在关系数据库技术发展已相当成熟,不仅形成一套理论支持,更有很多成功的关系数据库产品,关系数据库已经成为工业开发上的首选。而JAVA EE应用中,使用的JAVA是面向对象的语言,其面向对象特性和关系数据库特性明显截然不同,两者虽有协调之处,当总体显现为不和谐,不协调。Hibernate的出现正为解决这一问题,其为一ORM产品,帮助程序员把对象于对象之间的关系“无型”地转化为表于表之间的关系,完全屏蔽数据库细节。总之,采用hibernate开发系统,对于使用面向对象思想开发的程序

38、员来说,更来的自然和协调。3.93 Spring解决问题Spring可以将简单的组件配置,组合成为复杂的应用。在 Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑 的开发留给了你。 所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为 Spring中的各种模块提供了基础支持。3.10 系统架构综上所述,SSH从架构上很好体现系统架构,故该系统采用SSH技术进行开发。由于该系统为办公自动化系统,需要处理工作流问题,故搭档JBPM进行开发。系统架构图如下:本系统分为两层

39、,表现层和持久化层,上图所示为了表述,把业务逻辑层和持久化层画在一起。因为技术上采用hibernate的原因,屏蔽了数据库细节,跨数据库的特性,所以把业务逻辑层和持久化层结合为一层,简化系统结构,加快开发速度。4 UML建模4.1系统用例图1. 公文管理用例图:2. 流程管理4.2系统顺序图1部署流程顺序图:2查看流程3查看待审公文列表4查看公文审批历史5查看我的公文列表6查看以审公文列表7更新公文8审批公文9提交到流程10添加公文4.3系统活动图即时认证活动图:授权过程活动图:5 数据库设计根据持久层用hibernate实现的原则,数据库表设计准从hibernate表映射原理。5.1 Hib

40、ernate基本映射原理每一个类映射成一张表(没有配置承继),类中属性映射成表字段。其他表属性可个别配置,如字段类型,字段长度,字段名称,表类型等。5.2 系统对象设计5.2.1 权限模型 基本对象设计RBAC模型简介RBAC(Role-Based Access Control - 基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但从本质上讲,这种模型是对前面描述的访问矩阵模型的扩展。这种模型的基本概念是把许 可权(Permission)与角色(Role)联系在一起,用户通过充当合适角色的成员而获得该角色的许可权。这种思想世纪上早在20世纪70年代的多用户计算时期就被提出来了,

41、但直到20世纪90年代中后期,RBAC才在研究团体中得到一些重视。本章将重 点介绍美国George Mason大学的RBAC96模型。NIST (The National Institute of Standards and Technology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)在Kasai系统中,角色之间没有继承关系,也没有责任分离关系,因

42、此基本上是按照RBAC0的方式的。基本上实现了用户 users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权 permissions(PRMS)五个基本数据元素。同时Kasai也引入了Group的概念。由于缺乏角色继承关系,新建的角色没有包含任何的资源可 供使用,因此角色资源的添加也就变成了一项比较冗繁的工作。但总的来说对RBAC0模式下来说Kasai还是一款比较让人满意的权限系统。在开源RBAC中,除了Kasai值得称道外,还有其他几个项目也是很值得我们去关注:Role Manager项目、RIWS (Rbac Impl

43、ement as Web Services)项目。在RIWS项目的开发计划中,RIWS开发团队扬言要实现RBAC0、RBAC1、RBAC2和RBAC3,所以如果有机会还是 应该去关注一下这个项目的进展。RBAC0 定义了能构成一个RBAC控制系统的最小的元素集合RBAC0类图:在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作 operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户 时,此用户就拥有了该角色所包含的权限。会话sessions是

44、用户与激活的角色集合之间的映射。RBAC0与传统访问控制的差别在于增加一层间接性带来 了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展RBAC1 引入角色间的继承关系RBAC1类图:角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进 一步要求角色继承关系是一个树结构。RBAC2 模型中添加了责任分离关系RBAC2类图:RBAC2 的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分 离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。RBAC3 包含了RBAC1和RBAC2既提供了角色间的继承关系,又提供了责任分离关系。建立角色定义表。定出当前系统中角色。因为有继承的问题,所以角色体现出的是一个树形结构。本系统权限设计类图:Role跟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论