1、 寿命周期成本分析系统的设计与实现与实现温浩宇教授姚铁高级工程师夏 斐软件工程提交论文日期作者姓名工程领域二一二年一月企业指导教师姓名职称学校指导教师姓名职称Life Cycle CostAnalysis System Design and Implementation of题(中、英文)目代号分类号学号密级10701TP311.5公开0981490337UDC编号西安电子科技大学学位论文独创性(或创新性)声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经
2、发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关的法律责任。本人签名: 日期西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一
3、律署名单位为西安电子科技大学。(保密的论文在解密后遵守此规定)本学位论文属于保密,在年解密后适用本授权书。本人签名: 日期导师签名: 日期摘要建立一个过程自动化的寿命周期成本分析系统是加速成本分析领域应用开发的重要途径。数据分析与报表生成部分是过程自动化的寿命周期成本分析系统框架的关键组成部分,为寿命周期成本分析工作提供分析与报表功能,并提高该系统的运行性能。目前已有的寿命周期成本分析系统在通用性和扩展性方面还不能满足平台的需要。在分析了系统功能需求的基础上,设计并实现了一个基于Flex的寿命周期成本分析系统。通过用例和逻辑等视图分析了系统的设计架构,然后进行了分析模块和报表模块的设计和实现。
4、在分析模块中,应用了一种适用于B/S结构的寿命周期成本分析系统的Flex技术和Hibernate技术,并采用Cairngorm 作为MVC 框架,促使视图层和逻辑业务层分离。在报表模块中,采用了AlivePDF开发包,在正确处理各种命令的前提下使生成的高质量的PDF文件。最后,部署了一个寿命周期成本分析系统应用环境。实验结果表明,该寿命周期成本分析系统的可行性和有效性达到了设计要求。关键字:Flex技术 MVC框架 报表系统AbstractThe establishment of aprocess automationsystemlife cyclecost analysisis to acc
5、eleratethe field ofapplication developmentcost analysisan important way.Data analysis andreport generationpart of thelife-cyclecost analysis of the process automation systemisa key component ofthe systemframework, to provide theanalysis andreporting capabilities for the Life-cyclecost analysis, and
6、improvethe operating performanceof the system.In the analysisof the systembased onfunctional requirements,design and implementation a Flex-based life-cycle cost analysis system. Through the use case and logical views to analyze the system design architecture, then the analysis modules and report mod
7、ules are designed and implemented. In the analysis module,one for B/S structure of the system life-cycle cost analysis Flex technology and Hibernate technology has been used, and using Cairngorm MVC framework as to promote the business logic layer and the layer separation. In the report module, usin
8、g the AlivePDF development package, in order to correctly handle a variety of high quality under the condition that generated the PDF file. Finally,a system application environment to be deployed for the life cyclecost analysissystem. Experimental results show that the system life-cycle cost analysi
9、s of the feasibility and effectiveness of the design requirements.Keywords: Flex technology MVC framework Reporting system目录第一章绪论11.1选题的背景及研究意义11.2国内外研究现状11.3主要研究内容31.4论文结构3第二章相关技术概述52.1Flex相关技术52.1.1Flex运行机制52.1.2Flex 客户端程序结构62.1.3Flex远程调用方式82.2Cairngorm框架介绍92.3XML技术102.4Hibernate技术112.5寿命周期数据分析技术1
10、3第三章需求分析173.1背景介绍173.1.1 领域背景介绍173.1.2 软件总体结构介绍183.2数据分析及报表需求193.3系统的整体用例图及系统边界确定203.3.1 数据分析模型用例的细化用例213.3.2 报表生成用例26第四章系统的设计274.1数据分析和报表生成的整体设计274.2客户端的整体设计294.3服务器端的整体设计324.3.1服务器端概要描述334.3.2服务器端的设计344.4客户端与服务器整合设计354.5数据库结构的整体设计374.6客户端与服务器通信的整体设计374.7XML数据文件格式的设计39第五章系统的实现435.1客户端的实现435.2服务器端的实
11、现465.3客户端与服务器整合实现465.4分析报表的生成实现48第六章系统的部署及测试516.1系统的软硬件情况516.2系统的物理部署图516.3功能测试526.3.1 寿命周期分析测试546.3.2 比较模型测试576.3.3 敏感性分析测试596.3.4 成本动因控制测试606.3.5 报表管理测试61第七章 总结63致谢65参考文献673第一章绪论第一章 绪论本章阐述了寿命周期成本分析系统的相关的概念信息以及该系统背景和意义,提出了寿命周期成本分析系统的数据分析的重要性,并在此基础上指出企业由于对寿命周期成本分析的管理没有足够重视起来所产生的问题,进而提出寿命周期成本分析系统的必要性
12、和紧迫性。1.1 选题的背景及研究意义寿命周期成本分析的概念最初是由美国国防部于20世纪60年代提出的,开展寿命周期成本分析研究的主要目的是揭示寿命周期费用发生、发展的规律,从而采取有效的方法对其进行控制1。有关寿命周期成本分析技术应用研究的学术论文近年来也出现了很多,但大多数集中于军事装备建设领域,虽然我国从上世纪80年代就开始有关寿命周期成本分析理论的研究,但迄今为止,仍然处于初始阶段。在有关寿命周期成本分析的定义、构成、估算方法、建立费用数据库、预测和计算模型等基础工作远远没有达到标准化、规范化的程度,尚需进一步加以研究,更没有发布具有权威性的有关寿命周期费用估算和寿命周期采办的法规性文
13、件。而且,目前的研究与应用主要集中于军事领域,民用领域鲜有涉及。寿命周期成本分析理论虽然源于军事领域,但其应用决不仅仅限制于军事领域。本文通过借鉴和分析国外已有的寿命周期成本分析系统,描述寿命周期成本分析系统分析与报表实现的过程,从寿命周期成本分析系统的理论到系统的总体框架以及具体实现的数据分析与报表生成。随着中国不断与国际接轨,中国的金融市场越来越国际化,寿命周期成本也将可能引起机构投资者的更广泛地注意。1.2 国内外研究现状寿命周期成本分析是一个重要的技术经济分析方法。允许供应商向客户提供对自己生产的系统的保证,以及有关未来客户需要面对的费用的清楚的、具体的资料。寿命周期成本报表是为企业内
14、部 管理需要而编制,对加强成本管理,提高经济效益有着重要的作用。寿命周期费用LCC( Life Cycle Cost) 2是指产品论证、研制、生产、使用和退役各阶段一系列费用的总和,它是二十世纪六十年代提出的概念3。通常我们在购买任何产品时,往往主要着眼于如何使采购费便宜些,或者在选择一个项目时,主要关注完成项目所需的成本。然而,各国的大量事实证明,固定资产的维持费(使用费、维修及保障费、动力费等)常常会远远超过采购费。许多种产品的维持费高达其采购费的10100倍4。因此,对产品或项目进行全寿命费用估计,采用寿命周期费用的观点进行产品的采购或者项目方案的选择,具有十分重要的意义。日本寿命周期费
15、用委员会在对许多文献资料进行分析研究之后,提出寿命周期费用评价法的如下定义:“所谓寿命周期费用评价法,是为了使用户所用的系统具有经济的寿命周期费用,在系统的开发阶段将寿命周期费用作为设计的参数、而在对系统进行彻底的分析比较时作出决策的方法” 5。总之,寿命周期成本分析覆盖了工程项目的整个寿命周期,指导人们自觉地、全面地考虑项目成本和运营与维护成本,从多个可行性方案中,按照寿命周期成本最小化的原则,选择最佳的投资方案,从而实现更为科学合理的投资决策。而寿命成本分析的报表将向客户从产品的需求设计开始知道产品报废中间过程中所涉及到的费用提供最直接的数据。美国关于其定义主要有以下几种:第一,弗吉尼亚州
16、立工业大学教授、兼美国后勤学会负责国际部的副会长布兰查德教授所提的定义为“寿命周期费用是指系统和产品在确定的寿命周期内的总费用,其中包括如下费用:研究开发费,制造安装费,运行维修费,报废回收费6”。第二,美国国家预算局定义寿命周期费用为:“大型系统在预定有效期内发生的直接、间接、重复性、一次性及其它有关的费用。它是设计、开发、制造、使用、维修、支援等过程中发生的费用,以及预算中所列入的必然发生的费用总和7。”第三,美国国防部定义系统的寿命周期费用为:“政府为了设置和获得系统以及系统一生所消耗的总费用,其中包括开发、设置、使用、后勤支援和报废等费用8”。国外寿命周期费用管理的发展大致经历了四个阶
17、段:第一阶段,寿命周期费用的酝酿和研究阶段(19631970);第二阶段,寿命周期费用管理准备实施阶段(19711975);第三阶段,寿命周期费用管理的试行和完善阶段(19751985);第四阶段,成熟阶段(1985至今)。目前在美国、英国、法国、德国和日本等国家,寿命周期费用管理都得到了广泛的应用。我国对寿命周期成本分析技术的引进始于上世纪80年代初,引进后对其进行了深入的研究,并将其引入高校相应专业课程。这些年来寿命周期成本分析技术已在有关军、民营领域的大型工程项目应用上取得了较好的经济效益,如海军对在役各型主要舰船的服役年限论证中,用寿命周期成本分析技术对舰船的经济寿命进行计算,结合其自
18、然寿命和技术寿命分析,提出各型舰船最佳服役年限的建议,为决策提供了科学依据,对海军装备现代化建设起到了重要作用。总体来说,目前国内的寿命周期成本管理还不够成熟,主要是由于对寿命周期成本分析不够重视造成的。而且有关寿命周期成本分析的平台相对很有限的。但是这并不影响它的技术的快速发展,早晚将会被广泛的重视和应用。1.3 主要研究内容本文研究了寿命周期成本分析系统,重在对数据的分析和报表生成过程的研究。就是通过B/S结构的方便性,用户可以在任何地方进行寿命周期成本分析,进而生成寿命周期成本分分析PDF报表。利用生成的报表资料,将合同预算、生产预算、计划成本和实施项目的实际成本进行比较,了解成本的开销
19、情况,利用一定的方法,分析成本盈亏的原因,同时制定相应的策略,寻找降低项目部实施成本的途径,减少不合理消耗,达到降低项目成本的目的。满足企业内部经营管理的需要,因而内容更具有针对性。并且详细阐述了寿命周期成本分析系统的数据分析与报表生成的详细过程。1.4 论文结构通过学习软件工程理论,将软件开发过程用于系统实际开发中,并按照软件开发的过程组织了论文的的章节结构。各章节的内容安排如下所述,其中图1.1为本文的组织结构图:第一章:首先阐述了寿命成本分析系统以及该系统背景和意义,提出了数据分析与报表生成的重要性,并在此基础上指出企业由对寿命周期成本的管理没有足够重视起来所产生的问题,进而提出了寿命周
20、期成本分析的必要性和紧迫性。第二章:讨论了该系统中所涉及到的关键技术,包括Flex的相关技术,实现数据绑定所用到的XML技术及与之相关技术的分析和与关系型数据库交互过程中所用到的持久层框架Hibernate的相关技术特点。第三章:详细阐述了系统的需求分析,首先介绍了寿命周期成本分析的领域背景,并结合企业报表管理的实际情况所用列举一些本文中所涉及到的报表,最后通过文字结合系统用例图和系统数据流图说明了用户对系统的总体功能需求。第四章:简要介绍了数据分析与报表生成,其次分层详细描述了客户端、定服务器端和数据库的整体结构设计,并且提出了关于客户端与服务器整合的问题并且详细说明了客户端与服务器断的通信
21、的数据格式,最后定义了Flex控件提供数据源的XML的格式。第五章:通过客户端的实现、服务器端的实现、后台整合的实现和报表的生成和导出,详细描述了寿命周期成本分析的数据分析与报表生成的实现过程。第六章:描述了系统的软硬件的配置情况,并展现了系统的物理部署图。以需求中的用例为单位进行了系统的功能性测试,以表格的形式给出了测试的最终结果,最后展示了运行时的界面,使读者对系统有更具体的了解。第七章:首先说明了本文的背景及意义,然后说明了本文所做的工作,最后叙述了本文所做工作的后续工作。寿命周期成本分析的设计与实现选题背景及意义相关技术需求分析系统的设计系统的实现系统的部署及测试总结图1.1 论文组织
22、结构图图1.1 是整个论文的组织结构描述图,描述了论文的各章节结构。17第二章相关技术概述第二章 相关技术概述在实现寿命周期成本分析系统的数据分析与报表生成的过程中,需要选择相关技术来进行支撑。本章主要围寿命周期成本分析的关键技术进行描述,包括Flex的相关技术、Cairngorm框架介绍、实现数据分析与报表生成过程中所用到的XML技术及与之相关技术的分析和与关系型数据库交互过程中所用到的持久层框架Hibernate的相关技术特点。2.1 Flex相关技术传统的应用程序开发者发现,将动画元素添加到Web应用中具有很大的挑战性。于是,Macromedia公司为解决该问题而创建了Flash平台。而
23、Flex则是由Adobe公司开发提供的一个软件开发工具,它主要用于开发和部署基于Adobe Flash平台的,跨平台通用的富互联网应用程序。其特点是开发高效,源代码开源,并且能运行在所有主流的浏览器和操作系统之上9。除此之外,由于Adobe AIR10技术的支持,使用Flex开发的AIR应用程序也能部署为桌面应用程序,从而拓宽了Flex的应用领域。Flex的核心是Flex软件开发包(Flex SDK),它由一系列用户组件构成,它包括按钮、列表、树、数据格(DataGrid)、文本控件,以及各种各样的页面和控件容器。图表和图片等资源可以另外添加。2.1.1 Flex运行机制 Flex实质上是由M
24、XML与ActionScript构成11。其中MXML语言是从XML标准化语言演化而形成的,它为编程人员开发应用程序提供了一种非常简便的方式去建立图形界面提供了。然而基于ECMAScript标准的ActionScript语言,则是Flash Player中的关键语言,在Flex中用户的交互性操作和图形界面基本上是通过ActionScript在Flash Player中来完成执行交互的功能。但是Flex的最终运行时通过Flash Player对SWF文件的解释执行,所以Flex应用程序运行的主要问题是应该怎样把源文件编译生成成可直接运行的SWF文件。图21描述了Flex是如何生成SWF文件的。首
25、先,程序的开发人员应该编写的MXML代码和ActionScript代码并且结合相关的资源文件(比如音频文件、图片文件、xml文件等),还有Flex本身的类库,通过Flex SDK编译,最终生成SWF文件。然后用户使用浏览器访问包含了该SWF文件的网页,服务器就会查找到对应的SWF文件,并且将该SWF文件下载到用户的浏览器,则该SWF文件就可以在含有Flash Player的浏览器上面运行。如果运行过程中需要服务器端的数据和服务(如HTTP服务,Web服务等),那么该文件会使用相应的通信协议进行远程调用,读取远程数据或者把运行结果通过控制显示在浏览器上。事实际中与基于HTML的开发的Web应用程
26、序相比,Flex客户端有着强大的数据处理和保存能力,当客户端有数据需要发生改变时,用户不用重新下载该页面并且也不需要等待数据下载完毕才可进行交互性操作,而只需要等待相应控件更新完数据即可。 Flex SDKMXM文件ActionScript文件资源文件 .png .gif .xmlFlex类库浏览器Flash PlayerFlex Application编译Web 服务器数据数据图2.1 Flex生成SWF过程以上相关概念和Flex运行机制的介绍在图2.1中充分体现了它们的角色和相互间的关系。2.1.2 Flex 客户端程序结构 Flex中很重要的一个特点是,页面元素种类丰富,易于重用,而且M
27、XML语言使得开发界面变得更加简单高效。一个Flex应用程序的结构非常清晰,它一般由三层容器结构,加上具体的用户控件和ActionScfipt实现组成。Application在Flex中表示为应用程序容器,一个Flex应用程序只能有一个Application。因此,Flex应用程序的最外层是Application,然后在Application容器中,添加适当的应用程序具体需要的容器,如Canvas,Box等等。图22由于在多层结构模型中,Flex属于表现层,因此要发挥它在企业级应用中强大的客户端优势,必须结合有效的服务器端技术。Java 2 Enterprise Edition(J2EE)由于
28、其自身的成熟性和跨平台性,是与Flex技术相结合的热门技术平台。从中可以看出,Flex数据服务(FlexData Services12,简称FDS)为Flex客户端提供了丰富的远程通信协议:简单对象传输协议(SOAP),HTTPHTTPS协议,Action Message Format13 (AMF)协议和实时消息协议(RTMPRTMPS)。这些协议可以同时被一个客户端使用,从而充分发挥了Flex与J2EE服务器之间强大的通信能力。Flex企业级应用体系结构由于在多层结的框架结构模型中,Flex仅仅属于表现层,因此要发挥它在企业级应用中强大的客户端优势,那么就应该结合有效的服务器端技术。Jav
29、a 2 Enterprise Edition(J2EE)由于其自身的成熟性和跨平台性,它是与Flex客户端技术相结合的热门技术平台。其中,Flex数据服务(Flex Data Services,简称FDS)为Flex客户端提供了丰富的远程通信协议:简单对象传输协议(SOAP),HTTPHTTPS协议,Action Message Format14 (AMF)协议和实时消息协议(RTMPRTMPS)。这些协议可以同时被一个客户端使用,从而充分发挥了Flex与J2EE服务器之间强大的通信能力。Web BrowsersEnterpriseResourcesFlashPlayerUI Componen
30、tsPRCUI LogicsFlexFrameworkJ2EEServerFlex Data service Business LayerPersistence LayerEJB ,POJOData and Message ManagmentJDBC ,Hibernate,iBatisAMFHTTP SOAPResourcesDBMSLDAPERPWeb services图2.2 Flex多层模型结构以上相关概念是Flex多层模型结构的介绍,在图2.2中充分体现了Flex的多层模型结构。2.1.3 Flex远程调用方式对于一个基于Internet的应用而言,不能与服务器进行通信是不可以想象的,
31、Flex提供了基于PRC Service、Data Manage Service和Message Service 三种与服务器通信的方式15,这三种通信方式的作用于功能如表2.1所示。表2.1 Flex 与服务器端通信的方式通信方式说明运行环境RPC Service提供一基于HTTP协议的请求、相应访问模型。不需要LiveCycle Data Service可以运行,也可以通过设置LiveCycle Data Service提高访问效率。这种访问与服务端无关 ,可以是任意一种基于HTTP的Web应用例如(JSP、PHP、ASP、.Net等)Flex SDK 或LiveCycle Data Se
32、rviceData Manage Service基于RTMP协议的数据管理,提供实时的数据更新服务。可以透过RTMP协议向客户端发送数据,非常适合一对一或者一对多的关联数据。必须通过LiveCycle Data Service组件进行数据访问。由于使用了实时绑定技术,要求服务端必须是J2EE服务器LiveCycle Data ServiceMessageService可以为实时协作应用提供消息服务。这种服务是基于Socket通信和RTMP协议的。通过这种消息服务能够向其它应用发送消息,也可以从其它应用接受消息,甚至可以和JMS(Java Message Service)应用程序通信。必须使用L
33、iveCycle Data Service才能提供消息服务LiveCycle Data Service表2.1为Flex与服务器通信的三种方式的详细描述。Flex与服务器端的通信是建立在LiveCycle Data Service 基础之上的,LiveCycle Data Service 技术本身是Flex Data Service 。通过以上三种数据通信方式,Flex可以与服务端进行多样的数据交互。由于LiveCycle Data Service 是基于Java的技术,所示目前的LiveCycle Data Service只支持J2EE服务器。Flex与服务端通信的基本模型如图2.3所示。客
34、户端swf 文件 用户交互界面PRC Service 调用 Request Result Message ServiceData Manager Service 数据绑定对象Java Object WebServiceJMS (Java Message Service)AMF HTTP SOAPAMF HTTP SOAPRTMPXML Socket 图2.3 Flex与服务端通信的基本模型LiveCycle 是Adobe企业解决方案平台,包含业务流程管理系统(LiveCycle Process Management)、企业版权管理系统(LiveCycle Rights Management)、
35、表单服务(LiveCycle Forms)等12个解决方案组件。LiveCycle Data Service是其中的一个整合RIA应用和J2EE等企业应用的解决方案组件。2.2 Cairngorm框架介绍Adobe Flex及相关技术正成为RIA领域的主流。虽然Flex社区的规模还远比不上Java或Microsoft平台,但它正在Flex RIA开发者们的栽培下稳健地成长。许多开源开发框架也因此被创造出来16。Cairngorm是由Adobe公司推出的一个轻量级的Flex RIA程序开发框架。中文名:“烟水晶”。目的是提高程序的可扩展性、可维护性,其本身并不是一个完整的企业应用,它只是提供了一
36、个开发骨架,其内部结构主要是可以方便的安排业务逻辑。Adobe称之为体系。换句话说,它只为应用程序提供了一个通用的框架结构。Cairngorm主要就是对开发Flex应用程序应用了一系列的设计模式,从而使开发出来Flex程序可扩展性,可维护性都大大提高17。Cairngorm是最老也最成熟的Flex框架。目前由Adobe拥有并开源,而且被Adobe的RIA顾问服务团队大量使用。在Cairngorm中可以看到许多在J2EE中广泛使用的MVC相关设计模式,即使它只是一个仅用于RIA用户界面开发的微型架构框架。Cairngorm 被看作是企业RIA 开发框架。它的分层MVC 实现有助于开发出具有复杂的
37、业务逻辑的可伸缩的RIA 应用。在异步通信、事件驱动、无线程的Flex平台上,Cairngorm 为构建严肃的商业应用程序提供了快速而可靠的方法。Cairngorm 的本质也决定了它可能不适用于小型的快速原型。Cairngorm 框架的意图是为企业RIA 开发者提供一个框架。如果仅仅是编写一个非常简单的应用(比如程序原型),或者只有一个视图的程序,那么在开发中就不必挣扎于Cairngorm 所倡导的模型、视图和控制分离了。Cairngorm 架构的益处在开发复杂的RIA 应用的时候才能体现出来,比如有多个用例和视图,由一整个团队负责开发,以及团队中存在设计师、创意型开发者、技术型开发者等受过不
38、同训练的成员的情形。Cairngorm 是Flex 社区中众所周知的,并且是一个Adobe 开源网站上的项目,有良好的支持并且一个活跃的开发者社区继续为它工作。此外,它借用了来自Java开发世界的已被证明的策略。最后,它非常适合团队开发,因为它提供了一个高级的结构化的整套方法来允许分发任务进行创建应用。 2.3 XML技术XML全名为Extensible Markup Language,即“可扩展标记语言”,是由W3C于1998年2月推出的新一代网页标记语言,它是SGML(Standard Generalize Markup Language)的一个子集,虽然它保留了SGML 80的功能,却使
39、复杂程度降低了20,同时XML也继承了SGML的诸多优点,如高度的可扩展性、数据的自我表示、数据的结构化特性以及平台无关性等特点17。XML是由W3C的XML工作组制定的一组规范,以便于软件开发人员和内容创作人员在网页上组织信息,其目的不仅在于满足不断增长的网络应用需要,同时还能确保在通过网络进行交互合作时,具有良好的可靠性和互操作性18。由于XML能针对特定的应用领域而定义特定的标记集合,所以XML可以在电子商务、政府文档、报表、出版和中介信息交互等领域,根据不同的系统和应用提出各具特色的独立解决方案。XML给网络上的各种应用带来了第二次的革命性交化,在各个应用领域创造出了无穷的应用机遇。X
40、ML 相对于 HTML 的优点是它将用户界面与结构化数据分隔开来。这种数据与显示的分离使得集成来自不同源的数据成为可能。客户信息、订单、研究结果、帐单付款、病历、目录数据及其他信息都可以转换为 XML。但是XML的出现并不是要替换 HTML,实际上 XML 可以视作对 HTML 的补充,它们两者的目标是不同的:HTML 的设计目标是显示数据并集中于数据外观,而 XML 的设计目标是描述数据并集中于数据的内容。XML与 HTML 相似,都不进行任何操作。虽然 XML 标记可用于描述订单之类的项的结构,但它不包含可用于发送或处理该订单以及确保按该订单交货的任何代码。其他人必须编写代码来实际对 XM
41、L 格式的数据执行这些操作。但又与HTML 不同,XML 标记由架构或文档的作者定义,并且是无限制的。HTML 标记则是预定义的;HTML 作者只能使用当前 HTML 标准所支持的标记。自从XML1.0规范发布之后,XML的有关技术规范不断涌现,与XML相关的重要技术规范主要包括DOM、XSL、XSLT、Xlink、XML DTD、XML Schema18-19等。DTD(Document Type Definition)用于定义XML标记和架构,能够帮助XML解析器来解析XML文件的内容;XML Schema是为弥补DTD扩展性的不足而提出的一种检查系统。XML Schema架构本身就是一份
42、XML文件,并且你可以直接扩展别人现成的XML Schema;XSL(ExtenSible Stylesheet Language,可扩展样式表语言),它提供比CSS更加强大的XML文件显示格式的功能。它能够使用程序代码取出XML所需的数据然后指定显示的样式;XSLT20 (ExtenSible Stylesheet Language Transformation)是一种树状结构导向的转换语言,使用XSLT可以将XML文件的树状结构转换成另一个新的架构; XPoint和XLink这两种语言目前处于草案阶段,是针对HTML里超级链接而制定的XML链接方式。XPoint(XML Pointer L
43、anguage) 链接XML架构的本身或其它文件,用来在文件内寻址,以便快速找到所需的标记或内容。XML语言具有自描述性,可以对复杂对象进行详尽的结构化描述;具有语言独立性,可把数据、结构和显示方式相分离;并具有良好的可扩展性和平台无关性。而当前多种编程语言如C+、C以及Java等都己支持XML技术。因此XML技术是网络信息检索系统的理想数据交换格式和标准方法。作为自描述的标记语言,XML追求一种灵活性、简单性和可读性(包括对人和机器来说)的协调,能够根据具体的应用灵活地表现异构数据源中的各种信息,包括应用程序之间的数据交换、结构化和半结构化文档,以及数据库中数据的输出。2.4 Hiberna
44、te技术Hibernate21-22是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。Hibernate不仅负责从Ja
45、va类到数据库表的映射(还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。Hibernate是一种比较彻底的JAVA对象映射工具,支持所有的使用各种JAVA思想如inheritance,association,composition,collections等实现的对象。它可以直接映射大部分的实体类对象而不需要对类做任何修改,如果要修改也仅仅是在类的内部为成员变量添加私有的方法而已。通过映射表文件将类的实例与数据库中表中的行进行映射,而且运用了JAVA设计模式中的动态代理模式进行类的加载过程。Hiberna
46、te的这些特点就大大减小了直接从数据中取数据的代码,而且从开发效率上说也提高了整个开发效率。Hibernate采用了CGLB的方式,利用反射机制在系统启动的时候生成SQL语句对对象进行持久化管理,它的反射机制在很大程度上简化了编程工作,节约了开发成本,大大提高了工作效率。Hibernate作为一个优秀的持久层轻量级封装框架,缓存机制是它的亮点23。因此在实际的开发过程中用好缓存将会是系统的性能得到很好的提升,但是如果用的不好那么情况往往相反。Hibernate的缓存与计算机系统结构中的缓存是类似的,主要通过降低程序访问数据库的频率来提高程序的运行。缓存中临时存放的是源数据库中数据的拷贝。客户端访问持久层时,其实首先访问的是缓存,如果缓存中有所要访问的数据那么直接从中取出数据即可,若没有则向数据库发送提取数据的指令。Hibernate中的缓存分为一级缓存和二级缓存。在持久层框架中Session类提供了事务级别的一级缓存,该缓存中的内容在事务提交后立即就被清理掉。一级缓存主要是用来优化Hibernate生成的SQL语句的。二级缓存是SessionFactory内的缓存技术,它的实现主要是通过并发策略