智慧城市数据中心平台概要设计说明书_第1页
智慧城市数据中心平台概要设计说明书_第2页
智慧城市数据中心平台概要设计说明书_第3页
智慧城市数据中心平台概要设计说明书_第4页
智慧城市数据中心平台概要设计说明书_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、新增非公党建、食品安全等主题库建设项目概要设计说明书 智慧城市数据中心平台概要设计说明书 第 PAGE * Arabic 2页 共 NUMPAGES23 页目 录 TOC o 1-2 h z u HYPERLINK l _Toc45215685 1.引言 PAGEREF _Toc45215685 h 1 HYPERLINK l _Toc45215686 1.1编写目的 PAGEREF _Toc45215686 h 1 HYPERLINK l _Toc45215687 1.2项目背景 PAGEREF _Toc45215687 h 1 HYPERLINK l _Toc45215688 1.3术语

2、PAGEREF _Toc45215688 h 2 HYPERLINK l _Toc45215689 2.总体设计 PAGEREF _Toc45215689 h 3 HYPERLINK l _Toc45215690 2.1设计原则 PAGEREF _Toc45215690 h 3 HYPERLINK l _Toc45215691 2.2总体建设目标 PAGEREF _Toc45215691 h 3 HYPERLINK l _Toc45215692 2.3总体建设任务 PAGEREF _Toc45215692 h 4 HYPERLINK l _Toc45215693 2.4总体架构设计 PAGER

3、EF _Toc45215693 h 5 HYPERLINK l _Toc45215694 2.5系统功能结构 PAGEREF _Toc45215694 h 6 HYPERLINK l _Toc45215695 2.6技术架构 PAGEREF _Toc45215695 h 6 HYPERLINK l _Toc45215696 2.7体系架构 PAGEREF _Toc45215696 h 10 HYPERLINK l _Toc45215697 3.系统概要设计 PAGEREF _Toc45215697 h 12 HYPERLINK l _Toc45215698 3.1数据资源规范 PAGEREF

4、_Toc45215698 h 12 HYPERLINK l _Toc45215699 3.2数据资源库 PAGEREF _Toc45215699 h 12 HYPERLINK l _Toc45215700 3.3资源模型管理 PAGEREF _Toc45215700 h 12 HYPERLINK l _Toc45215701 3.4数据资源管理 PAGEREF _Toc45215701 h 14 HYPERLINK l _Toc45215702 3.5共享服务管理 PAGEREF _Toc45215702 h 16 HYPERLINK l _Toc45215703 3.6系统管理 PAGERE

5、F _Toc45215703 h 17 HYPERLINK l _Toc45215704 3.7对外接口 PAGEREF _Toc45215704 h 19 HYPERLINK l _Toc45215705 4.非功能性设计 PAGEREF _Toc45215705 h 21 HYPERLINK l _Toc45215706 4.1系统性能设计 PAGEREF _Toc45215706 h 21 HYPERLINK l _Toc45215707 4.2扩展性设计 PAGEREF _Toc45215707 h 27 引言编写目的本文档对数据中心平台的整体架构及各模块功能的设计进行概要性描述。本文

6、档编写的目的在于:1、方便系统用户、分析人员和软件设计人员进行交流,在设计阶段再次判定目标软件能否满足其原来的期望。2方便软件设计人员及开发人员了解系统体系架构和技术方案,并以此文档为基础进行系统详细设计。本文档主要目的是以设计人员进行软件详细设计为基本出发点,也是维护人员的技术支持文档之一。项目背景在信息化时代背景下,数据资源的多寡、数据质量的高低直接决定着各类社会主体的运作效率,数据分析应用能力也影响着管理者决策的方向,对数据的全面搜集和有效挖掘利用已经成为当今世界各国信息化建设的重要内容。自2020年以来,在智慧城市顶层设计总规的指导下,开展了业务、资源、系统、基础设施等方面的顶层设计,

7、提出要加强数据中心建设工作,搭建数据中心辅助决策平台,进一步提升数据整合、共享和分析决策能力,并通过数据架构体系的理论研究和网格化社会服务信息化系统的建设,积累了大量人、地、物、组织、房屋、地下空间的基础资源数据和协同业务数据,为数据分析决策、数据共享应用奠定了数据基础。鉴于以上背景,提出了构建数据中心的整体规划,整合北京市现有数据库和系统资源,建设统一规范的人、组织、地、物等基础信息库,实现全区基础信息的准确性、唯一性和权威性;建设各政府部门之间准确、完整、规范、清晰、权则结合的基础数据信息共享交换平台,实现基础数据信息高度共享和综合应用;通过基础数据和业务数据的整合集中、统一管理,为科学决

8、策提供强大的数据支持;建立和健全数据标准规范体系和数据安全体系,建立一个统一规范、集中部署、安全规范、充分共享的基础信息数据中心。其中数据中心平台是整体规划的重要核心系统,通过本项目建设,为政务部门和社会公众提供数据共享服务,保障政府决策的科学性、有效性和规范性,提升政府管理能力和公共服务水平。术语序号术语所指对象或含义人实际生活在的人口总称,包括常住人口、流动人口、散居社会境外人员等。地地点,社会管理区域内需要关注的重要场所、部位等地理位置的统称物物件,社会管理区域内需要关注的重要设施、物品的统称组织社会管理区域内需要关注和利用的各类单位、团体等集体的统称经济宏观经济,以统计经济信息为基础的

9、金融、税收、统计等经济数据网格化社会服务一种创新型的社会服务管理模式,采用网格化管理理念划分社会管理网格单元,实现网格内 “人、地、事、物、组织”等全要素信息的常态化管理与服务,促进社会管理由“粗放型管理”向“精细型管理”转变总体设计设计原则实用性原则:这是所有应用软件最基本的原则,直接衡量系统的成败,每一个提交到用户手中的系统都应该是实用的,能解决用户的实际问题,达到用户的 “功能性需求”和“非功能性需求”。 适应性和可扩展性原则:系统需要具备很好适应能力,采用J2EE的技术架构体系能适应于多种运行环境,来应对未来变化的环境和需求。可扩展性主要体现在系统易于扩展,系统总体设计采用高内聚,低耦

10、合原则,该原则设计的系统具有更好的扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。可靠性原则:系统设计从系统结构、设计方案、设备选型等方面考虑,使得系统故障发生的可能性尽可能少,影响尽可能小,对各种可能出现的紧急情况有应急的方案和对策。可维护性和可管理性原则:在系统设置、系统维护等方面的设计要易于操作,体现灵活性的原则,通过实用性与方便性的设计来提高管理水平和工作的效率。安全性原则:现在的计算机病毒几乎都来自于网络,系统遵照国家安全等级保护三级标准,在网络安全、系统安全、用户安全、用户程序的安全和数据安全环节采取措施,使系统具备较高安全性,对使用信息进行

11、严格的权限管理,技术上,应采用严格的安全与保密措施,保证系统的安全可靠性、保密性和数据一致性等。 总体建设目标以现有业务系统资源为基础,梳理制定信息资源标准规范,构建人员、地点、物件、组织和经济五大资源库,实现基础信息的集中、统一与规范管理,实现资源元数据及资源目录管理,提供数据对外共享服务,为政府统计分析及决策支持提供数据支撑,为政务部门和社会公众提供基准数据服务,保障政府决策的科学性、有效性和规范性,提升政府管理能力和公共服务水平。总体建设任务资源标准规范以现有业务系统数据资源为基础,提取每类资源的数据指标,按人员、地点、物件、组织和经济分类整理,分析合并形成业务元数据,整理元数据名称、类

12、型、长度、数据单位、来源部门、备注说明等信息项。结合元数据及现有业务系统的数据结构,对每类数据资源进行分析,抽取形成业务资源对象基本模型和业务主题模型,整理具体模型对象的指标名称、指标类型、指标长度、计量单位、代码标识符及备注属性。五大资源库人口库,依托人口规范模型构建人口资源库,管理包括常住人口、流动人口、散居社会境外人员在内的所有人员基本信息和业务主题信息。地点库,依托地点规范模型构建地点资源库,管理社会管理区域内需要关注的重要场所、部位等地点位置。物件库,依托物件规范模型构建物件资源库,管理社会管理区域内需要关注的重要设施、物品等物件信息。组织库,依托组织规范模型构建组织资源库,管理从事

13、市场活动的经济组织、机关事业单位、街道社区组织、社会团体等组织信息。5、经济库,依托宏观经济规范模型构建经济资源库,管理以统计经济信息为基础的金融、税收、统计等经济数据资源目录管理根据数据资源的业务类型、来源部门等多维度对数据资源进行灵活编目,实现数据资源的有效管理,包括元数据、信息集、资源目录、数据查询等功能。共享服务管理提供在线和离线接口形式,对外提供人、地、物、组织、经济信息的共享服务.搭建基础软硬件平台实现系统软硬件、运行环境和应用的集成,内容包括硬件设备安装调试、中间件安装初始化和数据库安装配置,为上层业务应用提供一个稳定可靠的支撑环境。总体架构设计本项目应按数据中心建设的总体要求,

14、以构建权威、完整、准确的数据资源库为核心,以数据标准规范、数据管理和共享服务为重点,充分挖掘数据的应用价值和服务效能,进行整体优化设计和资源库建设。从资源的管理生命周期及数据加工过程视角来看,项目的总体架构分数据提供层、数据整合层、数据资源层、数据应用层和应用访问层。数据提供层:现有系统已积累的数据资源,如网格系统数据库。数据整合层:对分散在各个系统的数据源进行提取、清洗、整合,完成数据的汇总、校核和质量检查,存在问题的数据向数据源反馈。数据资源层:存放整合后数据资源,作为对外提供服务的核心生产库。资源应用层:提供数据管理和数据共享服务应用,可以对资源元数据、资源目录进行管理,对外提供数据接口

15、服务。应用门户层:提供web应用平台和在线服务接口,提供系统数据的访问。系统功能结构系统功能划分主要包括数据资源规范、数据资源库、资源模型管理、数据资源管理、共享服务管理和系统管理。技术架构技术实现架构描述了系统在开发过程中采用的具体技术实现方案,也是对逻辑架构的进一步补充。技术架构中重点对业务处理部分的系统服务层、应用支撑层、业务运行层和数据交换层所采用的实现技术和应用的组件进行说明。应用系统架构系统技术架构遵循J2EE标准,以东软成熟的技术平台解决方案为基础进行开发,客户端基于RIA富客户端开发,应用服务共分为Action、IABO、ALBO、DAO四层,其中Action层为统一代理。富互

16、联网应用程序(RIA)技术RIA(Rich Internet Applications,富互联网应用程序)是目前B/S架构系统最为常用的技术。传统的基于HTML页面的系统已经渐渐不能满足网络浏览者的更高的、全方位的体验要求了,RIA的出现也就是为了解决这个问题。RIA技术提供了多种数据模型来处理客户端复杂的数据操作。使用RIA可以将部分原本需要在后台程序处理的问题转移到客户端,使数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快,数据往返于服务器的次数更少的用户界面。RIA技术提供了比HTML更为丰富的界面表现元素,密集、响应速度快和图形丰富的页面元素与数据模型结合在一起,为

17、用户提供好的使用体验。 RIA 具有的桌面 HYPERLINK /view/330120.htm t _blank 应用程序的特点包括:在消息确认和格式编排方面提供互动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式(drag and drop)以及在线和离线操作能力。RIA具有的Web应用程序的特点包括如:立即部署、跨平台、采用逐步下载来检索内容和数据以及可以充分利用被广泛采纳的互联网标准。RIA具有通信的特点则包括实时互动的声音和图像。本系统中所有应用系统均采用RIA实现技术。下面就本项目中用到的RIA典型应用作个介绍:界面交互基于Ajax的web应用程序模

18、型与传统的web模型具有很大优势,如上图所示。在本系统的界面交互方案中采用业界比较成熟的Ajax技术,从而在以下方面提升系统效能:Ajax的根本理念是“按需取数据”,可以把以前的一些服务器负担的工作转嫁到客户端,利用客户端闲置的计算能力处理,从而减轻服务器和带宽的负担,节约存储和网络成本。为了更好的用户体验,无刷新更新页面,减少用户实际和心理等待时间,即使要读取比较大的数据,也不会像刷新一样出现白屏的情况Ajax是用XMLHTTP发送请求得到服务端应答数据,在不重新载入整个页面的情况下用JavaScript操作DOM最终更新页面的,所以在读取数据的过程中,相对时间比较短。Ajax不需要插件或下

19、载小程序,基于标准化技术实现,被广泛支持,其应用前景很广泛,同时也利于日后维护和修改。界面组件Dojo是一个开源的JavaScript 用户界面开发工具包,Dojo体系结构如上图所示。它能够使我们更容易编写JavaScript,更快速的制作大型的界面,在一定程度上使我们更容易开发动态的用户界面:Dojo是基于Ajax的客户端架构Dojo是基于JavaScript 的界面开发工具包。这意味着使用Dojo可以直接画出静态页面,而不依赖于任何服务器资源,使界面设计与功能实现相分离,功能实现时可以直接应用界面设计的成果,这是Taglib标签库等无法实现的。Dojo是一个面向对象的JavaScript框

20、架。通过JavaScript的封装来提供面向对象特征,使界面开发完全组件化,使代码更容易维护、藕合性更低,并且可以进行很好的自定义组件扩充。Dojo是开源的。利用开源特性,我们可以获得更广泛的组件复用及功能支持。在本系统中采用基于Dojo并高于Dojo的策略构建页面组件,即在Dojo之上实现更高层的封装及扩展,借此即能利用Dojo已有功能及组件,又能对局部进行优化改造、组件替换。客户端与服务器端数据交互在标准的J2EE规范中,客户机与服务器之间使用Http协议通信,数据采用XML格式交互,Ajax架构也是如此。Xml是交换数据的标准方法,但通常不是最好的方法。尽管Xml可以为数据添加结构和元数

21、据,但这确实是一个比较麻烦的方法。Xml还有相当复杂的语法,需要解析器解析它。在JavaScript中,Xml必须被解析为DOM树才可以使用。并且,一旦构建了DOM树,还不得不通过建立相应的JavaScript对象或其他方法才能在客户端应用程序中使用Xml数据。最关键的是Xml数据解析的性能问题,大数据量下将成为速度瓶颈,虽然可以使用自定义的字符串格式来替代Xml,但数据量大时字符串的解析仍然成为问题,而且很大程度上增加了客户端与服务端代码的藕合性,增大了维护的成本。为解决上述性能问题,本系统中客户端与服务端数据交互将采用Json技术(JavaScript Object Notation)。J

22、son与Xml相似,也是采用文本格式,但其比Xml具备如下优势:Json的文本数据格式和JavaScript对象的内部数据格式一致,可以将Json字符串直接转换为JavaScript对象,与Xml和字符串解析不同,这种转换而不需付出任何代价。与Xml相比,Json的文本数据格式更加简单、非冗余。这将大幅减少客户端与服务器之间通信的数据量,提高应用性能。对比如下:Xml数据: Mary Lebow 5 Main Street San Diego, CA 619 332-3452 664 223-4667 Json数据:addressbook: name: Mary Lebow, address:

23、 street: 5 Main Street city: San Diego, CA, zip: 91912, , phoneNumbers: 619 332-3452, 664 223-4667 体系架构运行环境应用服务器及数据库采用集群部署,数据库服务器采用光纤交换机链接磁盘整列,数据库集群共享统一的磁盘整列存储,即所有数据库数据存放于磁盘阵列中实现快速交换及安全存储。开发环境 配置环境:SVN 应用服务器:tongweb以上(Jdk1.6以上)数据库:Gbase 8t开发工具:UniEAP3.5(基于eclipse架构)等系统概要设计数据资源规范以现有系统数据资源为基础,梳理人口概念模型

24、、地理概念模型、物件概念模型、组织概念模型和经济概念模型。数据资源库依据已有的人口概念模型、地理概念模型、物件概念模型、组织概念模型和经济概念模型生成对应的数据资源库。资源模型管理资源模型管理包括资源分类管理、元数据管理、数据集管理和数据集查询四个模块。资源分类管理模块概要设计模块描述实现对基础数据库的分类管理,资源可分为人、地、物、组织和宏观经济五类功能操作新增:新增资源分类修改:修改资源分类删除:删除资源分类关键逻辑无约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信息项资源分类名称、资源分类标识符元数据管理模块概要设计模块描述对物理

25、模型信息项进行统一管理,包括元数据增加、查看、修改、删除功能。功能操作新增:录入元数据信息修改:修改元数据信息删除:删除元数据信息关键逻辑元数据必须属于某一个数据集约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信息项元数据名称、资源分类、元数据编码、元数据类型、元数据长度、数据单位、代码集标识、拼音、备注数据集管理模块概要设计模块描述参照数据资源库对每一类数据资源对应的物理表及字段进行维护。功能操作数据集查询:根据资源分类和数据集名称查询符合条件的数据集数据集新增:录入数据集信息数据集修改:修改选中的数据集信息数据集删除:删除选中的数据

26、集信息项维护:维护数据集的信息项关键逻辑无约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信息项查询:资源分类、数据集名称新增:数据集名称、资源分类、更新周期、来源部门、物理表名、备注信息项维护模块概要设计模块描述参照数据资源库对每一类数据资源对应的字段进行维护。功能操作新增:录入信息项信息修改:修改选中的信息项信息删除:删除选中的信息项关键逻辑无约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信息项名称、类型、长度、数据单位、代码标识、备注数据集查询模块概要设计模块描述根据查询条件

27、查询符合条件的数据集功能操作查询:查询数据集关键逻辑无约束条件无信息项资源类型、数据集名称、名称、类型、长度、数据单位、代码标识、备注数据资源管理数据资源管理包括代码集管理、资源目录管理、数据查询三个模块。代码集管理模块概要设计模块描述对代码集进行管理,包括增加、修改和删除操作功能操作新增:录入代码集信息修改:修改代码集信息删除:删除代码集信息查询:查询代码集关键逻辑无约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信息项代码类型名称、代码类型编码、代码名称、代码值资源目录管理模块概要设计模块描述对现有数据资源的描述管理,通过资源目录能够

28、快速定位到资源数据信息,提供对多维度的资源管理功能操作新增:新增资源目录节点修改:修改资源目录节点删除:删除资源目录节点关键逻辑叶子节点必须管理物理表名称约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信息项目录名称、物理表名称数据查询模块概要设计模块描述通过资源目录用户能够快速了解到所需要资源的相关情况功能操作查询:点击资源目录叶子节点,系统动态生成相关表的数据情况。关键逻辑资源目录叶子节点必须关联物理表约束条件无信息项资源目录名称、资源目录分类名称共享服务管理共享服务管理包括在线服务接口、在线接口管理和在线接口测试三个模块。在线服务接

29、口模块概要设计模块描述提供人、地、物、组织和经济信息的在线接口服务,支持对外基本数据提供要求功能操作数据需求方根据提供的接口url和方法名称获取所需要的数据关键逻辑无约束条件无信息项访问url、方法名称、入参在线接口注册模块概要设计模块描述实现对接口服务的注册功能,接口类型包括人、地、物、组织和经济五类功能操作查询:根据条件查询需要的接口服务新增:录入接口信息修改:修改接口信息删除:删除修改信息关键逻辑无约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信息项接口编号、接口名称、方法名称、访问地址、入参、出参、描述在线接口测试模块概要设计模

30、块描述实现对已注册的接口服务进行测试功能操作接口查询:根据条件查询接口信息接口测试:测试已注册的接口是否正确关键逻辑接口服务必须先注册约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信息项资源类型、访问地址、入参、结果输出系统管理系统管理包括用户管理、组织管理、角色管理和权限管理用户管理模块概要设计模块描述对系统用户进行管理,包括增加、修改、删除等操作功能操作新增:录入用户信息修改:修改选中的用户信息删除:删除选中的用户信息关键逻辑无约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信

31、息项用户名称、用户账号、用户描述、组织单元、业务角色、是否锁定组织管理模块概要设计模块描述对系统组织机构进行统一管理,包括组织的新增、修改和删除等功能功能操作新增:添加组织机构信息修改:修改组织机构信息删除:删除组织机构信息关键逻辑约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成后给予操作完成提示信息项组织单元名称、描述信息、上级领导岗位、组织单元角色管理模块概要设计模块描述对系统角色进行统一管理,包括角色新增、修改和删除功能操作新增:新增角色信息修改:修改角色信息删除:删除角色信息关键逻辑无约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是

32、否确认删除功能操作完成后给予操作完成提示信息项角色编号、角色名称、备注权限管理模块概要设计模块描述授权管理可以提供权限的配置功能,提供对权限本身的管理和对角色进行授权的机制配置,可以对不同资源进行授权。功能操作选择需要授权的节点,点击右侧节点进行授权,点击保存。关键逻辑无约束条件无信息项角色名称、角色编码、权限名称、权限编码菜单管理模块概要设计模块描述菜单管理提供了系统应用菜单的维护,包括菜单的增加、删除和修改,支持菜单树形层次结构的管理功能操作增加:录入菜单信息修改:修改菜单信息删除:删除菜单信息关键逻辑无约束条件带*号输入项必须填写,给予录入提示删除信息时要提示用户是否确认删除功能操作完成

33、后给予操作完成提示信息项名称、请求对象、题目、目标区域、是否显示对外接口系统支持对外提供数据接口服务,接口类型为WbeService接口,系统提供接口访问url、接口名称、入参格式、出参格式。接口类型分为人口数据接口、地理数据接口、物件数据接口、组织数据接口和经济数据接口五类。序号接口名称所属资源分类描述1人口信息接口服务人口实现访问人口数据的系列接口服务2地理信息接口服务地理实现访问地理数据的系列接口服务3物件信息接口服务物件实现访问物件数据的系列接口服务4组织信息接口服务组织实现访问组织数据的系列接口服务5经济信息接口服务经济实现访问经济数据的系列接口服务非功能性设计系统性能设计系统为用户

34、提供方便快捷的业务应用,快速的响应速度、准确的信息查询结果、友好的界面显示和高效的运行。为了满足应用系统的性能的需求,在系统建设时,我们从人机交互、开发部署、系统支撑环境三个方面进行了优化设计,确保系统性能最优。一、采用AJAX技术,减少页面刷新根据系统架构的设计原则,尽量减少页面与数据库的交互以提高性能,其中,AJAX技术是最为普遍的技术之一。AJAX技术的存在,使得用户不用手动刷新页面,重新读取数据库中该页面所有的数据元素,而是由系统自动刷新页面上的某个元素或某个区域,只对必须刷新的数据进行读取,从而最大程度的避免数据库压力。缓存Ajax“引擎”。Ajax“引擎”可以运行在客户机而不是在服

35、务器上,并且在最初加载页面时进行下载。这个引擎包含大量应用程序逻辑(以 JavaScript 代码实现)。尽管它包含了很多应用程序逻辑和表示框架元素,但是经过恰当的设计,它可以不包含任何业务数据或个性化内容。应用程序和表示都冻结在部署时。在典型的Web环境中,应用程序资源可能几个小时才会变更一次。这意味着负责隔离应用程序资源和数据资源的 Ajax 引擎是高度可缓存的。例如Dojo 提供了构建工具来创建一个包含所有应用程序逻辑、表示和风格的压缩 JavaScript 文件。由于它只是一个文件,因此 Web 浏览器可以对其进行缓存,这意味着第二次访问启用 Dojo 的 Web 应用程序时,很可能就

36、会从浏览器缓存中加载 Ajax,而不是从服务器上加载它。将这种情况与传统服务器端 Web 应用程序进行一下对比,后者每次请求都会导致大量的服务器处理,因为浏览器和网络中介不能缓存不断变化的资源。另外,Ajax 应用程序引擎只是一个文件,所以它是可以使用代理缓存的。对于应用程序资源来说,经过良好定义的 Ajax 应用程序引擎符合 REST 准则,与服务器端 Web 应用程序相比,它具有显著的可伸缩性优势。缓存 Ajax 数据。由于应用程序逻辑和状态都在浏览器上驻留并执行,因此应用程序与服务器的交互就与传统 Web 应用程序的方式有很大的不同。不需要获取混合的内容页面,只需要获取业务数据即可。考虑

37、到这个操作在Ajax 版本的应用程序中的情况。对于“最近查看的内容” 并不需要进行处理。当点击某个链接时,这些在页面上已经存在的信息并不会消失。Ajax 架构风格的另外一个优点是它可以轻松处理服务器的故障。传统服务器端 Web 应用程序通常会在服务器上保存大量的用户会话状态。如果服务器发生了故障,会话状态就丢失了,那么用户就会体验到非常奇怪的浏览器行为。在采用有状态客户机和无状态服务的 Ajax 应用程序中,服务器崩溃/重新启动对于用户来说都是完全透明的,因为服务器崩溃不会影响会话状态,这些都保存在用户的浏览器中;无状态服务的行为是幂等的,可以由用户请求的内容来单独确定。二、代码优化通用代码调

38、优1、减小没有必要的操作对象的创建是个很昂贵的工作,所以我们应当尽量减少对象的创建,在需要的时候声明它,初始化它,不要重复初始化一个对象,尽量能做到再使用,而用完后置null有利于垃圾收集。让类实现Cloneable接口,同时采用工厂模式,将减少类的创建,每次都是通过clone()方法来获得对象。另外使用接口也能减少类的创建。对于成员变量的初始化也应尽量避免, 特别是在一个类派生另一个类时。异常抛出对性能不利。抛出异常首先要创建一个新的对象。Throwable接口的构造函数调用名为,fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法检查堆栈

39、,收集调用跟踪信息。只要有异常被抛出,VM就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。异常只能用于错误处理,不应该用来控制程序流程。此外,建议关闭Debug输出,尽量少用串行化、同步操作和耗时昂贵的服务(如Date())。2、使用合适的类型当原始类型不能满足我们要求时,使用复杂类型。String和StringBuffer的区别自不必说了,是我们使用最多的类型,在涉及到字符运算时,强烈建议使用StringBuffer。在做String匹配时使用intern()代替equal()。带有final修饰符的类是不可派生的, 如果指定一个类为final,则该类所有的方法都是final。Jav

40、a编译器会寻找机会内联所有的final方法,这将能够使性能平均提高50%。类的属性和方式使用final或者static修饰符也是有好处的。调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。所以尽量使用局部变量。ArrayList和Vector,HashMap和Hashtable是我们经常用到的类,前者不支持同步,后者支持同步,前者性能更好,大多数情况下选择前者。3、尽量使用POOL、BUFFER 和CACHE使用pool、buffer和cache能大大提高系统的性能,这在J2EE的大部分技术中都是适用的。在中间件容器中就大量使用了池:JDBC Connecti

41、on Pool、Socket Pool、Object Pool和Thread Pool。I/O操作中,buffer是必须的,特别是对大文件的操作,不然容易造成内存溢出。字节操作最快,所以尽可能采用write(byte),Buffered FileOutputStream比Buffered FileWriter要快,因为FileWriter需要Unicode到Byte的转换。而后面讲到的JDBC、JSP、EJB和JMS我们都非常建议使用buffer和cache。为HttpServletResponse设置buffersize,使用wl-cache,缓存在JNDI树上获取的对象等等。此外,使用JD

42、K 的非阻塞I/O对性能也有很大提高。4、尽量指定类的final修饰符在Java核心API中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了人们覆盖length()方法。另外,如果指定一个类为final,则该类所有的方法都是final。Java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。5、尽量重用对象特别是String 对象的使用中,出现字符串连接情况时应用StringBuffer 代替。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。

43、因此,生成过多的对象将会给程序的性能带来很大的影响。6、尽量使用局部变量调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其他变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。另外,依赖于具体的编译器/JVM,局部变量还可能得到进一步优化。7、不要重复初始化变量默认情况下,调用类的构造函数时, Java会把变量初始化成确定的值:所有的对象被设置成null,整数变量(byte、short、int、long)设置成0,float和double变量设置成0.0,逻辑值设置成false。当一个类从另一个类派生时,这一点尤其应该注意,因为用new关键词创

44、建一个对象时,构造函数链中的所有构造函数都会被自动调用。8、过期对象的及时回收由于JVM的有其自身的GC机制,不需要程序开发者的过多考虑,从一定程度上减轻了开发者负担,但同时也遗漏了隐患,过分的创建对象会消耗系统的大量内存,严重时会导致内存泄露,因此,保证过期对象的及时回收具有重要意义。JVM回收垃圾的条件是:对象不在被引用;然而,JVM的GC并非十分的机智,即使对象满足了垃圾回收的条件也不一定会被立即回收。所以,建议我们在对象使用完毕,应手动置成null。9、慎用异常异常对性能不利。抛出异常首先要创建一个新的对象。Throwable接口的构造函数调用名为fillInStackTrace()的

45、本地(Native)方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。只要有异常被抛出,VM就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。 异常只能用于错误处理,不应该用来控制程序流程。10、采用lazy loading 的策略尽量采用lazy loading 的策略,即在需要的时候才开始创建。11、合理的使用Java类 java.util.Vector简单地说,一个Vector就是一个java.lang.Object实例的数组。Vector与数组相似,它的元素可以通过整数形式的索引访问。但是,Vector类型的对象在创建之后,对象的大小能够根据元素的增加或者

46、删除而扩展、缩小。12、复制大量数据当复制大量数据时,使用System.arraycopy()命令。13、不用new关键词创建类的实例用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。 14、及时清除不再需要的会话为了清除不再活动的会话,许多应用服务器都有默认的会话超时时间,一般为30分钟。当应用服务器需要保存更多会话时,如果内存容量不足,操作系统会把部分内存数据转移到磁盘,应用服务器也可能根据“最近最频繁使用”(Most Recently Used)

47、算法把部分不活跃的会话转储到磁盘,甚至可能抛出“内存不足”异常。在大规模系统中,串行化会话的代价是很昂贵的。当会话不再需要时,应当及时调用HttpSession.invalidate()方法清除会话。HttpSession.invalidate()方法通常可以在应用的退出页面调用。JDBC代码调优1、严格资源使用JDBC代码调优最大的原则就是使用中间件的连接池,而不是自己直连数据库。在我接触的很多自己实现连接池的项目中,大部分遇到死锁和连接泄漏的问题,最后得不得修改代码。而主流中间件都提供了功能强大,性能良好的数据库连接池,我们要做的只是封装一个连接管理类,从JNDI树上获取数据源并缓存,得到

48、连接,并提供一系列关闭数据库资源的方法。2、SQL优化语句SQL语句的优化牵涉到很多数据库的知识,需要与索引配合,因此需要DBA对代码中的SQL进行检查测试。常见的,select *不提倡使用,效率极差,建议显式获取列,即使是所有字段也应罗列,而取总数时使用count(*),为提高cache的命中率,尽量做到SQL重用。对于大数据量的查询,可以充分利用Oracle数据库的特性,每次取出m-n行的数据,实现分页查询。另外,提高性能的好选择可能就是把所有的字符数据都保存为Unicode,Java以Unicode形式处理所有数据,因此,数据库驱动程序不必再执行转换过程。三、数据库性能优化数据库的性能

49、是影响整个系统性能的重要因素,系统中的数据库设计采用以下性能优化技术:1、在线数据库使用了多数据库同时处理,使转接数据库服务器具有了扩展能力,提升了在线数据库的性能。2、对每个处理所要进行的数据库读写操作均进行仔细地分析和考虑。系统尽量将数据库读写操作次数减少到最低,避免重复的数据库访问。对数据的检索查询条件尽量使用索引中的键值,避免了由于无索引的条件导致的全表搜索。3、索引被分配在不同的表空间,使用不同的硬盘,减少对磁盘操作的竞争,提高数据的读写性能。4、有效地使用索引,因为索引在带来查询速度的增加的同时,也导致了插入、修改和删除的效率降低。5、根据应用系统中使用的各种数据表的不同特点使用不同的索引策略。对于象转接子系统交易日志这样的表,其主要特点是插入和修改频繁,而查询相对其他种类应用而言较少;对于象差错处理子系统所使用的存放历史信息表来讲,其查询远远大于插入和修改操作。对于插入和修改较频繁的表使用较精简的索引;对于查询量非常大的表,使用多种索引,以满足各种查询需求。四、

温馨提示

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

评论

0/150

提交评论