档案管理相关技术文献综述.doc_第1页
档案管理相关技术文献综述.doc_第2页
档案管理相关技术文献综述.doc_第3页
档案管理相关技术文献综述.doc_第4页
档案管理相关技术文献综述.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

档案管理相关技术文献综述摘要: Java是SUN公司开发的适用于Internet的新型面向对象的程序设计语言。有人甚至预言“Java将是网络的世界语。Java是一种适用于分布式网络(客户/服务器)环境的编程语言,是新一代面向对象的程序设计语言,它特别适用于Internet应用程序的开发。 基于J2EE的档案管理系统包含了很多尖端IT技术,它是中型的综合应用系统,在开发过程中采用模块化设计,运用一些技术比较满意地完成整个系统的开发与研制。方便、快捷的管理手段使所有管理部门的大大减轻了工作量,同时也较好的解决了安全问题。J2EE体系结构采用组件的思想,将业务逻辑层从客户、服务器端独立出来,从而带来开发、使用和维护的便利.关键词:Java/ 对象 /类 /J2EE1 Java基本概念入门 在开始系统分析时,由于要选JAVA作为首选编程语言,这时我对JAVA仅有粗浅的认识,远远不够做东西的水平,我就翻阅了大量的书籍和文献,经过同学的介绍推荐,我仔细翻看了Bruce Eckel编著的Java编程思想中文版,从中我受益匪浅,本书有个特点介绍全面详细,作者有Java编程方面的经验,学识丰富,而且作者所举例子非常常见,容易联想,特别是对于初学者来说作者给出了很多有用的建议和指导意见,我就把我从此书中所学到的做个简单的介绍。 JAVA是有SUN公司开发的新一代编程语言,它可以用在各种不同的机器、操作系统的网络环境中进行开发。不论你使用哪种浏览器或者使用哪种操作系统(Windows、Unix等等),只要浏览器支持JAVA,你就可以看到生动的主页。JAVA正在逐步成为Internet应用的主要开发语言,它彻底改变了应用软件的开发模式,为迅速发展的信息世界增添了新的活力。下面我简单介绍一下java的基本概念: “尽管以C+为基础,但Java是一种更纯粹的面向对象程序设计语言”。无论C+还是Java都属于杂合语言。但在Java中,设计者觉得这种杂合并不像在C+里那么重要。杂合语言允许采用多种编程风格;之所以说C+是一种杂合语言,是因为它支持与C语言的向后兼容能力。由于C+是C的一个超集,所以包含的许多特性都是后者不具备的,这些特性使C+在某些地方显得过于复杂。Java语言首先便假定了我们只希望进行面向对象的程序设计。也就是说,正式用它设计之前,必须先将自己的思想转入一个面向对象的世界(除非早已习惯了这个世界的思维方式)。只有做好这个准备工作,与其他OOP语言相比,才能体会到Java的易学易用。在本章,我们将探讨Java程序的基本组件,并体会为什么说Java乃至Java程序内的一切都是对象。1.1、用句柄操纵对象 每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(C或C+里的指针)?所有这些在Java里都得到了简化,任何东西都可看作对象。因此,我们可采用一种统一的语法,任何地方均可照搬不误。但要注意,尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄”(Handle)。在其他Java参考书里,还可看到有的人将其称作一个“引用”,甚至一个“指针”。可将这一情形想象成用遥控板(句柄)操纵电视机(对象)。只要握住这个遥控板,就相当于掌握了与电视机连接的通道。但一旦需要“换频道”或者“关小声音”,我们实际操纵的是遥控板(句柄),再由遥控板自己操纵电视机(对象)。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电视机。 此外,即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有一个句柄,并不表示必须有一个对象同它连接。所以如果想容纳一个词或句子,可创建一个String句柄:String s; 但这里创建的只是句柄,并不是对象。若此时向s发送一条消息,就会获得一个错误(运行期)。这是由于s实际并未与任何东西连接(即“没有电视机”)。因此,一种更安全的做法是:创建一个句柄时,记住无论如何都进行初始化:String s = asdf; 然而,这里采用的是一种特殊类型:字串可用加引号的文字初始化。通常,必须为对象使用一种更通用的初始化类型。1.2、所有对象都必须创建 创建句柄时,我们希望它同一个新对象连接。通常用new关键字达到这一目的。new的意思是:“把我变成这些对象的一种新类型”。所以在上面的例子中,可以说:String s = new String(asdf);它不仅指出“将我变成一个新字串”,也通过提供一个初始字串,指出了“如何生成这个新字串”。当然,字串(String)并非唯一的类型。Java配套提供了数量众多的现成类型。对我们来讲,最重要的就是记住能自行创建类型。事实上,这应是Java程序设计的一项基本操作,是继续本书后余部分学习的基础。保存到什么地方 程序运行时,我们最好对数据保存到什么地方做到心中有数。特别要注意的是内存的分配。有六个地方都可以保存数据:(1) 寄存器。这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。(2) 堆栈。驻留于常规RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直接支持。堆栈指针若向下移,会创建新的内存;若向上移,则会释放那些内存。这是一种特别快、特别有效的数据保存方式,仅次于寄存器。创建程序时,Java编译器必须准确地知道堆栈内保存的所有数据的“长度”以及“存在时间”。这是由于它必须生成相应的代码,以便向上和向下移动指针。这一限制无疑影响了程序的灵活性,所以尽管有些Java数据要保存在堆栈里特别是对象句柄,但Java对象并不放到其中。(3) 堆。一种常规用途的内存池(也在RAM区域),其中保存了Java对象。和堆栈不同,“内存堆”或“堆”(Heap)最吸引人的地方在于编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间。因此,用堆保存数据时会得到更大的灵活性。要求创建一个对象时,只需用new命令编制相关的代码即可。执行这些代码时,会在堆里自动进行数据的保存。当然,为达到这种灵活性,必然会付出一定的代价:在堆里分配存储空间时会花掉更长的时间!(4) 静态存储。这儿的“静态”(Static)是指“位于固定位置”(尽管也在RAM里)。程序运行期间,静态存储的数据将随时等候调用。可用static关键字指出一个对象的特定元素是静态的。但Java对象本身永远都不会置入静态存储空间。(5) 常数存储。常数值通常直接置于程序代码内部。这样做是安全的,因为它们永远都不会改变。有的常数需要严格地保护,所以可考虑将它们置入只读存储器(ROM)。(6) 非RAM存储。若数据完全独立于一个程序之外,则程序不运行时仍可存在,并在程序的控制范围之外。其中两个最主要的例子便是“流式对象”和“固定对象”。对于流式对象,对象会变成字节流,通常会发给另一台机器。而对于固定对象,对象保存在磁盘中。即使程序中止运行,它们仍可保持自己的状态不变。对于这些类型的数据存储,一个特别有用的技巧就是它们能存在于其他媒体中。一旦需要,甚至能将它们恢复成普通的、基于RAM的对象。Java 1.1提供了对Lightweight persistence的支持。未来的版本甚至可能提供更完整的方案。特殊情况:主要类型 有一系列类需特别对待;可将它们想象成“基本”、“主要”或者“主”(Primitive)类型,进行程序设计时要频繁用到它们。之所以要特别对待,是由于用new创建对象(特别是小的、简单的变量)并不是非常有效,因为new将对象置于“堆”里。对于这些类型,Java采纳了与C和C+相同的方法。也就是说,不是用new创建变量,而是创建一个并非句柄的“自动”变量。这个变量容纳了具体的值,并置于堆栈中,能够更高效地存取。Java决定了每种主要类型的大小。就象在大多数语言里那样,这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。主类型 大小 最小值 最大值 封装器类型boolean1-bitBooleanchar16-bitUnicode 0Unicode 216- 1Characterbyte 8-bit-128+127Byteshort16-bit-215+215 1Short1int32-bit-231+231 1Integerlong64-bit-263+263 1Longfloat32-bitIEEE754IEEE754Floatdouble64-bit IEEE754IEEE754DoublevoidVoid1 数值类型全都是有符号(正负号)的,所以不必费劲寻找没有符号的类型。主数据类型也拥有自己的“封装器”(wrapper)类。这意味着假如想让堆内一个非主要对象表示那个主类型,就要使用对应的封装器。例如:char c = x;Character C = new Character(c);也可以直接使用:Character C = new Character(x); 这样做的原因将在以后的章节里解释。1. 高精度数字Java 1.1增加了两个类,用于进行高精度的计算:BigInteger和BigDecimal。尽管它们大致可以划分为“封装器”类型,但两者都没有对应的“主类型”。这两个类都有自己特殊的“方法”,对应于我们针对主类型执行的操作。也就是说,能对int或float做的事情,对BigInteger和BigDecimal一样可以做。只是必须使用方法调用,不能使用运算符。此外,由于牵涉更多,所以运算速度会慢一些。我们牺牲了速度,但换来了精度。 BigInteger支持任意精度的整数。也就是说,我们可精确表示任意大小的整数值,同时在运算过程中不会丢失任何信息。 BigDecimal支持任意精度的定点数字。例如,可用它进行精确的币值计算。至于调用这两个类时可选用的构建器和方法,请自行参考联机帮助论文。 J2EE开发模式是潮流所趋,所以我们在做档案管理系统的时候也试着去利用这一先进的技术平台,虽然理解的不全面,但是对这个以前从没有接触过的技术有了粗浅的认识,相信对以后从事这方面的工作的时候是个很好的过渡。2. J2EE体系概述 J2EE是美国Sun公司刚刚推出的一种全新概念的模型,与传统的互联网应用程序模型相比有着不可比拟的优势。当今许多企业都需要扩展他们的业务范围,降低自身经营成本,缩短他们和客户之间的响应时间,这就需要存在一种简捷,快速的服务于企业,合作伙伴和雇员之间。典型的说,提供这些服务的应用软件必须同企业信息系统(EIS)相结合,并提供新的能向更为广阔的用户提供的服务。这些服务要具备以下的特点:a 高可用性:来满足现在的全球商业环境b 安全性:保护用户的隐私和企业数据的安全c 可依赖性和可扩展性:保证商业交易的正确和迅捷 通常这些服务是由分布的应用程序组成的,包括前端数据端和后端数据源以及它们之间的一层或几层,这些中间层提供了把商业功能和数据与EIS相结合的功能。这些中间层把客户端从复杂的商业逻辑中分离出来,利用成熟的INTERNET技术使用户在管理上所花费的时间最小化。 J2EE正式降低了开发这种中间层服务的成本和复杂程度,因而使得服务可以被快速的展开,并能够更轻松的面对竞争中的压力。1. J2EE的优势其表现如下:a J2EE Application Programming Model -一种用于开发多层次,瘦型客户用户程序的标准设计模型b J2EE Platform-一个标准的平台,用来整合J2EE的应用程序,指定一系列的接口和方法c J2EE Compatibility Test Suite-一套兼容测试组件,用来检测产品是否同J2EE 平台兼容d J2EE Reference Implementation-用来示范J2EE的能力2J2EE 应用程序模型 J2EE是被设计为顾客,雇员,供应商,合作者提供企业级服务,这样的应用程序天生具有复杂性,他们要访问各种类型的数据并分发于大量的客户端。为了更好的控制,管理这些应用程序,支持各种各样用户的商业功能要在中间层引入,中间层描述了一个被企业的信息技术部门紧紧控制的环境。J2EE应用程序依靠于EIS层来存储企业的商业数据。这些数据和用来管理它的系统是企业中的核心。最初,双层结构(client-server)应用程序模型许诺将提高伸缩性与更广阔的功能,但不幸的是,直接向用户提供EIS服务的复杂性和再每台用户计算机上安装和维护商业逻辑所引起的管理上的问题成了很大的限制。而这些再双层结构中的限制在三层结构中已不存在了。如今要求既开发服务的商业功能,还要开发访问数据库和其他资源的代码,这是很复杂的,因为每一种多层结构的服务器都有它自己的应用模型,因此组建一直富有经验的开发队伍将是困难的。另外,随着服务规模的扩大,为了降低开支和加快响应速度,也要经常对其基层代码进行修改。 J2EE应用模型定义了一种建筑模型来让多层应用程序实现服务,并消除了以上的问题,提供了可伸缩的,易访问的,易于管理的方法。 J2EE应用模型把实现多层结构服务的工作划分为二部分:开发者实现商业和表达逻辑,以及由J2EE平台提供的标准的系统服务。开发者可以依赖于这个平台为开发中间层服务中遇到的系统级硬件问题提供解决方案 J2EE应用模型为中间层应用程序提供了编译一次,任意运行的特点(write once,run anywhere),这种标准模型最小化了培训开发人员的费用。 J2EE应用程序模型通过在建立多层应用程序中最小化其复杂程度,围简化和加速应用程序的开发迈出了重要的一步。3Java技术基础 J2EE应用程序模型起始于Java程序语言和Java虚拟机,他们提供的不断提高的便携性,安全性和开发人员能力的提高是应用程序模型的基础。应用程序模型通常包括JavaBean组件模型,JavaBean是的为普通功能编写基于Java技术的代码更加容易,利用JavaBean的开发工具可以可视的定制,组合这些组件。4安全性 当其他的应用程序模型需要在每个程序中有特定平台的安全性时,J2EE平台环境使在开发时安全约束便已定义了。 J2EE平台定义了一种标准的公开的存取控制规则,当程序在企业平台上开发时就已被程序师定义和解释了。J2EE也需要提供一个标准的注册机制以便应用程序不用将这些注册机制和逻辑相混合,相同的工作要执行于大量的不同的环境中而并不需要改变源代码。 例如:J2EE应用程序开发人员可以指定几个安全级别(如,user,superuser,administrator),于是他们写出代码来检查当前用户权限的级别当用户访问数据时。在开发阶段,开发人员赋予多组用户适当的安全级,使应用程序能够容易的判断限制级在执行限制操作之前。5中间层 J2EE应用程序模型的一个主要优点便是在中间层的多层应用程序。在J2EE平台,中间层商业功能是由企业JavaBean实现的。这些企业Beans允许服务开发者集中于商业逻辑,并且让EJB Server处理传送稳定的,可升级服务的复杂工作。 JavaServerPages 技术和Servlets向客户层提供了易于访问的Internet型服务的中间层功能。Jsp技术使用户接口开发者更加容易的提供向任何浏览器用户提供动态页面的服务。Servlets让基于Java技术的开发者有更大的自由来在Java语言中提供完全的动态服务。6 客户层 J2EE平台支持几种类型的客户。 许多J2EE服务被设计为浏览器用户服务,这些服务通过动态生成Html页和表单来同客户端实现交互,而Jsp和Servlets是通过让这些商业数据通过某种方式格式化,使客户端更容易来同它工作。这些客户端可以是运行于浏览器中的JavaApplet和基于Java技术的程序。要注意的是安全是多层结构的关键部分,在J2EE中安全性总是通过平台和管理员来解决的。在大多案例中,服务方或客户方都不需要开发者与安全逻辑。7 基于Html页的客户 在Java2中可以实现向用户的浏览器直接提供动态Html页的服务,在JavaServerPage 技术中通过在Htm

温馨提示

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

评论

0/150

提交评论