1、厦门大学本科毕业论文 (科研训练、毕业设计) 办公自动化系统之组织管理模块的设计与实现 - 1 - 办公自动化系统之组织管理模块 的设计与实现 摘要 : 本文主要 通过办公自动化系统中的组织管理模块的设计与实现 研究了 Java 及其相关技术在办公自动化系统( OA)设计中的应用,并且进一步研究了如何利用 Java 技术的自身优点来实现整个系统的优化设计,以达到实现系统性能提升的目的,最终更好的满足用户与日剧增的需求。在整个研究过程中应用了多种 Java 及其它与系统构成搭建密切相关的技术,这些技术主要包括 JSP, B/S 构架, TOMCAT, J2SE, XML, ORACLE。在设计的
2、过程中我们还引入了一定的设计模式的思想,以使整 个系统的构架更加科学合理。在整个研究过程中我们发现通过依托 Java 自身固有的技术优点,并且在设计的过程中合理的加以运用,在构建类似于办公自动化( OA)一类的企业级应用系统时,可以充分的实现设计目标,有效的减少系统缺陷,并且能够提供给系统更高的安全性。同时利用 Java 技术开放源代码的特点,还可以增强系统的扩展性,提供给用户更多的自由选择空间。 关键字 : 办公自动化系统( OA) 组织管理模块 Java B/S 构架 扩展性 厦门大学本科毕业论文 (科研训练、毕业设计) 办公自动化系统之组织管理模块的设计与实现 - 2 - The des
3、ign and realization of organizational management module For Office Automation System Abstract: This article mainly has studied that how Java and its correlative technologies perform in designing the Office Automation System through The design and realization of organizational management module, furt
4、her more, we have also studied that how we can realize the optimal design for whole system using the advantages of Java Technology. By achieved that we can realized the goal of enhancing the capability of the system, finally satisfied the customers with demands which are increasing sharply day by da
5、y. During the whole process of the research, we have used many Java and its correlative technologies which are closely relative to the system. For example, JSP, B/S architecture, J2SE, XML and ORACLE. In the process of designing, we also use the idea of design pattern to make the whole architecture
6、of the system more reasonable. And we found that by making good use of the advances of the Java technologies we can fully realize the design object, effectively reduce the system bug, and make the system more secure. At the same time, because of the open source of Java, we can enhance the expansibil
7、ity of the system, by this way, the customer can get more optional spa ce. Key Words: Office Automation System organizational management module Java B/S architecture Expansibility 厦门大学本科毕业论文 (科研训练、毕业设计) 办公自动化系统之组织管理模块的设计与实现 - 3 - 目录 第一章 引 言 . - 4 - 第二章 系统分析与设计 . - 6 - 2.1 技术方案 . - 6 - 2.1.1 Java 介绍
8、. - 6 - 2.1.2 JSP 介绍 . - 7 - 2.1.3 B/S 构架介绍 . - 10 - 2.2 系统功能模块 . - 11 - 2.2.1 部门管理子模块 . - 11 - 1 设计细节 . - 11 - 2 讨论与说明 . - 16 - 2.2.2 角色管理子模块 . - 18 - 1 设计细节 . - 18 - 2 讨论与说明 . - 22 - 2.2.3 群组管理子模块 . - 23 - 1 设计细节 . - 23 - 2 讨论与说明 . - 27 - 2.2.4 人员管理子模块 . - 27 - 1 设计细节 . - 27 - 2 讨论与说明 . - 34 - 2.2
9、.5 系统总论 . - 35 - 第三章 结 论 . - 37 - 致谢语 . - 38 - 参考文献 . - 39 - 厦门大学本科毕业论文 (科研训练、毕业设计) 办公自动化系统之组织管理模块的设计与实现 - 4 - 第一章 引 言 二十一世纪的今天,社会竞争日趋激烈,效率的重要地位越发兀显。企业配置一套适合自身特点的办公自动化系统,实现企业日常办公的电脑化、自动化,例如建立公文的网上流转、信息的网上存储、发布、传输和共享;设立员工论坛接收员工对于企业的合理化建议等措施,可以极大的提高企业员工的工作效率,进而提高企业的运做效率。 国内 从八十年代末、九十年代初开始发展办公自动化,到现在已经
10、有十几年的历史了 。在早期,多是由企业、单位内部的计算机人员或爱好者使用 FoxBASE、 Foxpro 编写出来的 ,它们多数是单机操作模式,不能实现信息交换和共享,所做的内容往往只是输入某些特定内容,再把这些内容按照一定的格式打印出来, 并不是真正意义上的办公自动化软件 进入九十年代中期后,随着网络技术 (如: 100M以太网 )、群件系统 (特别 MicrosoftExchange Server和 Louts Notes)、数据库技术 (成熟的关系数据库管理系统 )和各种面向对象开发工具 (如:Microsoft Visual Studio)等技 术和产品日渐成熟而被广泛应用,这时,办公
11、自动化开始进入一个快速的发展阶段。但它存在着一些致命的缺点: 1.开发周期长 2.投资大 3.软件开发完成后需要不断的维护 。 导致出现这些缺点的原因有很多种,如软件开发公司的开发队伍组队模式不合理、缺乏开发办公自动化产品的经验、用户缺乏对办公自化产品的认识等等,但真正重要的原因往往是由于在开发过程中或开发完成后用户的需求发生变化而引起的,经常会出现在开发过程中因为用户的需求不断变化而导致软件的不断修改,以至整个开发周期加长和开发费用超支。当经过千辛万苦把软件开发出来 后,又会因为用户需求变化要对软件进行不断的修改维护。到最后,整个软件犹如一件千缝百补的衣裳,性能和可使用性都大大降低。 到了九
12、十年代末期,随着各个国家机关和企业计算机网络建设的逐渐完善,以及Internet/Intranet 在国内的普及,电子化的信息交流方式逐渐成为主流。这时早期开发的一些办公自动化软件又暴露出一些弊端。早期办公自动化软件多是以局域网环境为基础而设计的,由于当时选型的平台并不是统一的 (如群件平台、数据库平台 ),造成在实现多个局域网进行数据交换 (如与上下级或平级单位的数据交换 )遇到了极大的阻力 ,出现了一种 “信息鸿沟 ”,局域网间的信息传递往往只能依靠原始的文本方式传递,从而形成了一个个各自独立的信息孤岛。这种情况极大地阻碍了我国办公自动化的发展。 厦门大学本科毕业论文 (科研训练、毕业设计
13、) 办公自动化系统之组织管理模块的设计与实现 - 5 - 以上 ,介绍了国内近十年来办公自动化系统的发展概况 ,我们可以发现国内办公自动化系统的应用虽然正在不断普及但是却存在许多的问题 ,简单的可以概括成两点 , 一个是技术方面的 ,另一个则是供求方面的。 如何才能解决这些问题? 在我接触了 Java 技术之后,尤其是在体会了 Java 技术的众多优点之后,我觉的似乎找到了解决问题的途径。 本文描述了我们所作的一套办公自动化系统 ,通过论证分析整个系统的设计,来阐述 Java技术之一的 JSP 在设计办公自动化系统中的的作用,以及所体现出来的优势,以此希望促进我国办公自动化系统的发展,促进 J
14、ava 技术在系统设计中的应用,更加重要的是,能够促进Java 技术在国内的推广,最终,不断增强我国 IT 业的技术竞争力。 厦门大学本科毕业论文 (科研训练、毕业设计) 办公自动化系统之组织管理模块的设计与实现 - 6 - 第二章 系统分析与设计 2.1 技术方案 2.1.1 Java 介绍 Java(TM)是由美国 SUN 电脑公司 (Sun Microsystems, Inc.)所发展出的第一种能在国际互联网络 (Internet)上面具有硬件 /软件中立性交互能力的程序语言。 它在许多方面有着广泛的应用, 特别是在 Internet 和多媒体 (Multimedia)相关产品类方面。
15、Java 具有很多优点和特性,它 是因应撰写 C+语言程序时的困难而研制开的,起先 , 只是一个消费性电子产品大计划中的一部份, C+语言是当初被考虑采用的,但从一开始的 编译问题一直到最后的一连串问题迫使得放弃 C+语言,而有 Java 语言的产生。 Sun 是要 Java成为一个简单 (Simple)、面向对象的 (Object Oriented)、分布式的 (Distributed)、解释的(Interpreted)、健壮的 (Robust)、安全的 (Secure)、结构中立的 (Architecture Neutral)、 可移植的(Portable)、高效能的 (High Perf
16、ormance)、多线程的 (Multithreaded)、动态的 (Dynamic)的程序语言 。下面我们将对这些特点进行详细的表述。 1.简单 (Simple):容易编写程序,不需要长时间的训练,而能满足现代的需求 。 程序小型亦是简单的一种特性,使得软体能够在小型机器上执行,基本的解释器约为 40k,若加上基本的程序库,约为 215k。 2.面向对象的 (Object-Oriented):面向对象的设计是一种重心在资料和接口的技巧。若以木工为比喻,一个面向对象的木工,他 (她 )最主要的重点是即将要做的木椅子,其次才是所需要的工具;反之;一个以非面向对象的木工,他 (她 )所关心的只是工
17、具。最近的即插即用(Plug and Play)亦是面向对象设计的重点。 3.分布式的 (Distributed): Java 有一个很周全的程序库,且很容易地与 HTTP 和 FTP 等 TCP/IP通讯协定相配合。 Java 应用程序 (Applications)能在网路上开启及连结 使用物件,就如同透过URLs 连结使用一个本地文件系统 (Local File System)。 4.健壮的 (Robust):由 Java所编写出的程序能在多种情况下执行而具有其稳定性。 Java与 C/C+厦门大学本科毕业论文 (科研训练、毕业设计) 办公自动化系统之组织管理模块的设计与实现 - 7 -
18、最大不同点是 Java 有一个指针模型 (Pointer Model)来排除内存被覆盖 (Overwriting Memory)和毁损数据 (Corrupting Data)的可能性。 5.安全的 (Secure): Java 是被设计用于网络及分布式的环境中,安全性自必是一个很重要的考虑。 Java 拥有数个阶层的互锁 (Interlocking)保护措施,能有效地防止 病毒的侵入和破坏行为的发生。 6.结构中立的 (Architecture Neutral):一般而言,网络是由很多不同机型的机器 所组合而成的,CPU 和作业系统体系结构均有所不同;因此,如何使一个应用程序可以在每一种机器上
19、执行,是一个难题。所幸, Java 的编译器产生一种结构中立的目标文件格式 (Object File Format);这使得编译码得以在很多种处理器中执行。 7.可移植的 (Portable):原始资料型式的大小是被指 定的,例如 “float“一直是表示一个 32 位元IEEE 754 浮点运算数字,因绝大多数的 CPU 都具有此共同特征。程序库属于系统的一部份,它定义了一些可移植的程序接口, Java 本身具备有很好的可移植性。 8.解释的 (Interpreted): Java 解释器能直接地在任何机器上执行 Java 位元码 (Bytecodes),因此在进行程序连结时,时间的节省,这
20、对于缩短程序的开发过程,有极大的帮助。 9.高效能的 (High Performance): Java 位元码迅速地能被转换成机器码 (Machine Code),从位 元码转换到机器码的效能几乎与 C 与 C+没有分别。 10.多线程的 (Multi threaded): Java 语言具有多线程的功能,这对于交互 回应能力及即时执行行为是有帮助的。 11.动态的 (Dynamic): Java 比 C 或 C+语言更具有动态性,更能适应时刻在变的环境, Java不会因程序库的更新,而必须重新编译程序。 鉴于以上 Java 所具有的众多优点所以我们在系统的构建之初就选择了以 Java 为基础
21、的JSP 作为系统的编程语言,与 ASP 相比,我们在整个系统的编写过程中充分体会了 Java 所带来的众多方便。并且因为 Java 是源代码开放的,所以我们可以有众多的资源可以参考,也可以让我们在这个过程中学到更多的东西,更好的提高自己的能力。 2.1.2 JSP 介绍 JSP(Java Server Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准,该技术为创建显示动态生成内容的 Web 页面提供了一个简捷而快速的方法。厦门大学本科毕业论文 (科研训练、毕业设计) 办公自动化系统之组织管理模块的设计与实现 - 8 - JSP 技术的设
22、计目的是使得构造基于 Web 的应用程序更加容易和快捷,而这些应用程序能够与各种 Web 服务器,应用服务器,浏览器和开发工具共同工作。 JSP 规范是 Web 服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。在传统的网页 HTML 文件(*htm,*.html)中加入 Java 程序片段 (Scriptlet)和 JSP 标记 (Tag),就构成了 JSP 网页 (*.JSP)。 Web服务器在遇到访问 JSP 网页的请求时,首先执行其中的程序片段,然后将执行结果以 HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 Email 等等,这就是建立动态网站所
23、需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可 以实现无 Plugin,无 ActiveX,无 Java Applet,甚至无 Frame。 正如上文所说我们在系统的设计之初我们选择了 JSP,而没有选择 ASP,是基于两者之间进行比较后的结果。比较如下: ASP 是由微软推出的,功能强大,简单易学 。但是它却有微软产品的通病 ,只能在 Windows平台下使用,虽然它可以通过增加控件而在 LINUX 下使用,但是其功能最强大的 DCOM 控件却不能使用。而 SUN 公司在 Java 的基础下开发出的 JSP(Java ServerPa
24、ges)实现了动态页面与静态页面的分离,脱离了硬件平台的 束缚,以及编译后运行等方式大大提 高了其执行效率而逐渐成为因特网上的主流开发工具。 下面从多个方面对二者进行比较 1、 结构 : JSP 和 ASP 在结构上类似,都是以 “作为标计符,不同的是在标计符之间的代码ASP 为 JavaScript 或 VBScript 脚本,而 JSP 为 Java 代码。 JSP 将网页的表现形式和服务器端的代码逻辑分开。作为服务器进程的 JSP 页面,首先被转换成 servlet(一种服务器端运行的Java 程序)。 Servlet 支持 HTTP 协议的请求和响应。当 JSP 被转换成纯 Java
25、代码。多个用户同时请求一个 JSP 页面时,应用实例化线程来响应请求。这些线程由 WEB 服务器进程来管理,和 ASP 的线程管理器功能类似。同 CGI 为每个请求创建一个进程的模式比较,这种方式效率高的多。 2、 性能和平台无关性 : 与 C+、 VB 等语言比较, Java 被看作是个效率不太高的语言,但它以牺牲效率换来了平台无关性使 Java 可以在大多数操作系统上运行而不需要重新编译 -许多人愿意为此而付出代价。 Java 的编译代码是一种字节代码,在运行时由操作系统上的一个 Java VirtualMachine(JVM)虚拟机解释。字节代码可以在所有平台上迁移,而不 需要任何改动。
26、交叉平台编程倾向于采用所有操作系统的 “最小公分母 “,尤其是使用图形化界面时 (Servlets 不需要任何图形界面 )。 Servlets 比传统的 Java 程序( applets, Javaapplets)要快,因为它们在服务厦门大学本科毕业论文 (科研训练、毕业设计) 办公自动化系统之组织管理模块的设计与实现 - 9 - 器端运行,不需要加载沉重的 GUI( HTML 的 GUI 是非常少的)。另外, Servlets 的字节代码只有在客户请求时才执行,所以尽管当首次调用 Servlets 时会有几秒钟的加载时间,但后续的请求相应非常迅速,因为服务器已经缓存了运行的 Servlets
27、。当前的 JSP 服务器,都带有Java 即时编译器( JIT),因此, JSP 的执行比每次都要解释执行的 ASP 代码要快,尤其是在代码中存在循环操作时, JSP 的速度要快 1 到 2 个数量级。 3、 Session 管理 : 为了跟踪用户的操作状态, ASP 应用 Session 对象。 JSP 使用一个叫 HttpSession的对象实现同样的功能。 Session 的信息保存在服务器端, Session 的 id 保存在客户机的 Cookie中。如果客户机禁止 Cookie, Session Id 就必须带在 url后面。 Session 一般在服务器上设置了一个 30 分钟的过
28、期时间,当客户停止活动后自 动失效。 Session 中保存和检索的信息不能是基本数据类型( primitivedatatypes)如 (int, double)等,而必须是 Java的相应的 object(对象 )如 (Integer,Double)。 4、 Application 管理 : 有时服务器需要管理面向整个应用的参数,使得每个客户都能获得同样的参数值。和 Session 一样, ASP 使用 Application 对象而 JSP 使用 ServletContext 对象,操作的方法和 Session 一样。 5、 ServerSideIncludes : 在服务器 端引用上 A
29、SP 和 JSP 有着相同之处。 ASP 和 JSP 都可以支持此功能的服务器 (IIS,APACHE)上实现服务器端包含虚文件。但 JSP 是将动态页面的结果包含进来,而不是包含文件的代码本身。当你包含的文件在另一个服务器上时,不包含任何代码和对象是一个非常有效的功能。 6、 Java 组件 JavaBeans : JavaBeans 是一些完成预定义功能的封装的对象数据。 JavaBeans 和JSP 接合与 COM 和 ASP 相比如下: COM 对象常用来封装商业逻辑和为 ASP 页面完成高强度计算。重用的组件使得页面简单快速,因为组件 由编译语言( C+,VB)构成,而不是解释型的
30、scripting 语言( VBScript, JavaScript)。 JavaBeans 只能用 Java 语言开发, COM 可以由符合标准对象模型的任何语言开发(包括 Visual J+)。另一方面, JavaBeans 更容易开发,因为一旦掌握了 Java,了解 JavaBeans 的结构非常容易。 而 COM 则极其复杂,不容易掌握 。 COM 组件需要在服务器上注册,如果你修改了一个现有的组件,服务器需要重新启动才能使用它。 JavaBeans 不需要重新注册,如果开发者不需要得到对 服务器的完全访问权限,这是其一个巨大的优点。可以创建满足商业逻辑的完整的 JavaBeans 库
31、,让非编程人员使用库来厦门大学本科毕业论文 (科研训练、毕业设计) 办公自动化系统之组织管理模块的设计与实现 - 10 - 开发动态网站。 Beans 可以在服务器端管理数据库连接。 JavaBeans 符合结构化对象模型:每个 Bean 由一个不带参数的构造函数,控制它的 Serverlet 可以使用内省( introspection)来设置其属性。要设置 Bean 的内置属性,必须使用带有属性名的 setProperty 标签。如果一个属性可以设置, Bean 需要有一个 setXxxx 方法, Xxxx 用实际的属性名来代替。 7、 JSP 和数据 库 : ASP 使用 ODBC 通过
32、ADO 连接数据库,而 Java 通过一个叫 JDBC 的技术联接数据库。目标数据库需要一个 JDBC 驱动程序 -一个数据库与 Java 的借口,使得 Java可以用标准的方式访问数据库。 JDBC 不使用服务器端的数据源。只要有 JDBC 驱动程序, Java就可以访问数据库了。如果一个特定的数据库没有 JDBC 驱动程序,而只有 ODBC 驱动程序,Java 提供一个 JDBC-ODBC 桥来将 JDBC 调用转化为 ODBC 调用。所有的 Java 编译器都带有一个免费的 JDBC-ODBC 桥。理论上,桥可以访问任何常见的数据库 产品。 JSP 模型是在 ASP 之后定义的,它借用了
33、 ASP 的许多优点,如 Session, Application 等对象。同时 JSP 使用灵活而强大的 Java 语言,而不是低效的 Scripting 语言。 ASP 开发者只能使用基于 windows 平台的技术,而 Java 和 JSP 是跨平台的。 2.1.3 B/S 构架 介绍 B/S( Browser/Server)结构即浏览器和服务器结构。它是随着 Internet 技术的兴起,对C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过 WWW 浏览器来实现,极少部分事 务逻辑在前端( Browser)实现,但是主要事务逻辑在服务器端( Server)实现,形成所谓三层 3-tier 结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本( TCO)。以目前的技术看,局域网建立 B/S 结构的网络应用,并通过 Internet/Intranet 模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如 LAN, WAN, Internet/Intranet 等)访问和操作共同的数据库;它能 有效地保护数据平台和管理访问权限,服务器数据库也很安全 。