已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士学位论文 姓 名:袁轶 学 号: 0820080234 所在院系:电子信息与工程学院计算机系 学科门类:计算机科学与技术 学科专业:计算机软件与理论 指导教师:陈榕 副 指导教师 :顾伟楠 二 一 一 年 三 月 基于构件组装技术的 用的优化模型 的研究与实现 A in 0820080234 u 2011 of 脚 本 引 擎 中 构 件 组 装 技 术 的 优 化 模 型 的 研 究 与 实 现 袁 轶 同 济 大 学 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的 部分或全部内容用于学术活动。 学位论文作者签名: 年 月 日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原 创性声明的法律责任由本人承担。 学位论文作者签名: 年 月 日 摘要 现今的互联网已经步入了 代,传统的软件设计正越来越向 展和过渡,随着云计算的出现,以服务器为逻辑的核心,浏览器为客户端的应用层出不穷。基于浏览器的应用可以很好地解决不同平台上的移植性问题,同时也可以方便地获得云端强大的支持,使得程序的功能可以不受本地设备性 能的限制。更进一步,又有厂商推出了基于 操作系统,如 S。而在移动平台上, 推出了基于浏览器的操作系统 为一个面向互联网的操作系统, 台上也有一个基于浏览器的 用模型。 本文根据目前 台上已有的 用模型为基础,根据现有模型中的一些缺点和不足,并结合当今 用的发展趋势,提出了 台上的用的优化模型,并对其进行了设计与实现。 基于浏览器的应用的一个重要问题是 全局对象的保存 与 管理,在 的 用 中, 加了与 件技术之间的交互,使得模型变得更为复杂。对此,本文提出了 在 用中的全局对象管理机制 ,使得应用在不同的页面之间可以共享全局性的对象。同时,在 的模型中,对于 件中资源的加载还存在一定的瑕疵,加载资源的时机与方式可能会造成应用在性能上的瓶颈。针对这个问题,本文设计了按需加载的资源管理机制,使得应用在使用 件时更加节省时间与内存空间 ,同时强化了内存管理,避免了原来的模型中可能会出现内存泄漏情况 。最后,在本 文中还探讨了擎与 件交互时 ,调用的方法失败返回错误代码时的异常管理机制,从而使得 的 用更趋 合理与 完善。 本文中所设计的模型目前在开源浏览器 擎得到了实现,同时在 发的开源 擎 关键词 : 作系统, 件, 软件 优化, 擎, 用 is of on on on of S by On on As an to is eb on In an eb is on eb eb to is an of on In eb AR So eb is in in In in AR of To a on is of AR of At is in An be AR eb in is on is by it is on s 8. 目录 第 1 章 绪论 . 11 题的背景 . 11 题的研究目的与意义 . 12 文的组织结构 . 13 第 2 章 相关技术概述 . 15 作系统 . 15 件技术 . 16 件技术简介 . 16 件元数据 . 18 件的反射机制 . 19 件的回调机制 . 20 持的数据类型 . 20 . 21 介 . 21 主要构成 . 22 . 24 排版引擎与脚本引擎的交互方式 . 24 8 引擎 . 25 第 3 章 优化模型的整体设计 . 26 有模型的介绍 . 26 用的定义 . 26 台上对 用进行的扩展 . 27 本与 件的交互方式 . 28 台上的 用模型中的不足与可优化的功能点 . 29 化模型的总体架构 . 30 化模型中对于现有问题的解决方案 . 30 型的架构与功能模块的划分 . 32 设计 . 34 件中元数据的加载与管理 . 35 件中元数据在 境中的映射 . 35 需加载机制的设计 . 36 件中的元数据的抽象与封装 . 36 用中页面间全局对象的共享 . 37 局对象的实现方式 . 37 通 象的共享 . 38 象映射的 象的共享 . 39 设计 . 40 存管理的优化 . 40 常管理器 . 41 具方法集合 . 43 第 4 章 优化模型的性能分析 . 68 试设计 . 68 有模型与优化模型的性能比较 . 68 间性能上的比较 . 68 存使用上的比较 . 69 化模型在不同 的脚本引擎上的性能比较 . 70 间性能上的比较 . 70 存使用上的比较 . 71 局对象的不同实现 方式的讨论 . 72 第 5 章 总结与展望 . 74 致谢 . 76 参考文献 . 77 个人简历、在学期间发表的学术论文与研究成果 . 79 第 1章 绪论 题的背景 随着技术的日益发展,消费类电子正在深入人们的日常生活,现今的消费类电子产品,不但在种类上不断有新的产品出现,在功能上与以前的产品相比也已经有了巨大的扩展和深化。过去人们最常用的消费类电子产品是手机,功能也仅有最基本的通话、消息服务等,而目前随着硬件技术与移动互联网技术的长足进步,手机、平板电脑、上网 本等消费类电子产品正越来越普及,性能也日益提高,3G 无线网络正迅速铺开,使得无线上网速度成倍提升。 就消费类电子而言,人们已经不再满足于过去的简单功能,而需要各种不同的应用来满足商务、信息、学习和娱乐等等不同的需求。而随着各大系统的应用开发平台的发布,也使得应用的开发不再是一些应用提供商的专属。而今,每一个人都可以成为应用开发的一份子,并将自己的应用发布给千千万万的用户使用,这使得在消费类电子平台上的应用的开发也越来越成为热点。苹果的 智能手机操作的系统都提供了应用 开发平台供开发者开发自己的应用。目前, 应用平台 已经有超过 35 万个应用,而的应用数量也已经超过 20 万。 与此同时,在 台上,基于 构的互联网应用程序正越来越多的被 构所取代。 B/S 架构是一种基于浏览器的互联网应用程序模型,与传统 C/S 架构的不同, B/S 架构使用浏览器取代了 C/S 架构中需要针对每个应用进行独立开发的客户端。统一的客户端平台使得 B/S 架构有着其诸多独特的优势。第一,浏览器产生的 初衷是一个内容展示平台,这使其在界面的展示上有着易于开发的先天优势,从而使客户端的节目开发变得相对更加方便快捷。第二,基于浏览器的应用很好地解决了跨平台的问题,由于浏览器之间都遵循相对统一的标准,且浏览器在各大平台上都有实现,使得基于浏览器的应用在各大平台上都可以顺利地使用,而不需要任何的移植成本。目前比较著名的如出的 S、 均是采用了 B/S 架构。 而将消费类电子与 B/S 架构互相结合,也是目前的应用开发模型中一种崭新的尝试。 出的新产品 是一个以浏览器作为基础,并进行了功能上的拓展之后的应用平台。在这个平台上的应用开发方式与开发 用基本相同,同时又因为其对浏览器在功能上进行了一定的拓展,所以与普通的 台上的应用有更多的资源可以使用,可以实现更多的功能。 题的研究目的与意义 作系统也是一款面向消费类电子等手持式设备的网络操作系统,针对软件的构件化开发, 作系统上引入了 件技术。软件的构件化对于软件的开发有着其独特的优势,每一个构件都是一个可以实现特定 功能的独立单元,通过对不同构件的组装,可以灵活地实现各种不同的功能。由于构件的可重用性,使得软件开发的成本降低、开发周期缩短,同时也降低了开发者的门槛,使开发变得更加简单方便。同时,由于 一个面向网络的嵌入式操作系统,所以以浏览器作为其应用平台也是一个很好的尝试。 而对于一个应用平台来说,仅仅使用浏览器的基本功能作为其基础是远远不够的,因为浏览器出于安全等考虑,对本科与网络资源的访问与使用有着其严格的限制。现有的基于浏览器的产品中,对于计算资源有两种不同的解决方案。第一种是 B/S 架构的 用, B/S 架构的应用可以依赖其服务器端的计算能力,而本地浏览器客户端只需要作为一个基本的交互平台而不需要对它的计算与资源访问能力有过高的要求。第二种就是与 代表,以浏览器作为平台的基础,并对其进行一定改造,使其在功能上有新的拓展,打破浏览器本身固有的限制,使浏览器成为一个完善的应用平台。 显然,在 台上,应该采用第二种解决方案。因为作为一个嵌入式设备上的应用平台,我们需要的是流畅即时的用户体验,而在嵌入式平台上的应用从规模上来说也更倾向于简单实用,而过于依赖于服务器端在这样 的环境下就显得多余和低效了。在 ,对浏览器的改造时加入的最强大功能是对操作系统跨进程访问的支持,在加入这一支持之后,在浏览器上运行的应用就可以根据需要访问系统中的其它服务,从而实现一些浏览器不能实现的功能。而在 台上,作为 最大优势的 件技术,也可以在基于浏览器的架构上发挥巨大的作用。将浏览器与 件技术结合之后,浏览器就可以动态灵活地使用 件提供的功能,基于 件可以动态发现、加载、调用、卸载等特性,使得应用可以根据不同的需求使用不同的构 件,实现不同的功能拓展。 目前在 台上,已经实现了在浏览器上使用 本与 个基于浏览器的应用可以指定所需的 件在应用启动时被加载,并在应用的运行时,应用的脚本通过交互机制调用 件中的类与方法等计算资源。 但是目前的交互机制只是一个也存在一些不足之处。比如在对构件的加载上,目前的机制采用了一次性加载的方式,既消耗了时间,同时也对内存造成了一些不必要的浪费,在对构件的内存管理上的设计也不尽完善,所以很有可能造 成内存泄露,对于在调用构件时的失 败的情况下如何处理错误也没有详细的解决方案。 本课题的目的就是针对 台上的浏览器脚本引擎与 件交互机制中的一些不足与可以改进完善之处,提出了一套新的优化模型。该模型的重点是提高脚本引擎与 件之间交互的的效率,同时强化内存管理,杜绝可能出现的内存泄露情况,在构件的获取和发现上也提出了新的设计。 ( 1)在加载应用时采用 按需 加载的方式,只是最低限度地加载构件的信息,对其中的类等元数据不做处理,只有在 本调用时才对其进行加载。同时对于被 本使用过的 的资源进行缓存,也就是说,当一个 的元数据被加载之后,第二次使用时可以不需要再进行反射等效率较低的工作,而是直接从缓存中获取所需的 件的元数据。 ( 2)强化内存管理, 件与 擎进行交互时内存管理最大的难点在于在 件中采用引用计数进行内存管理,需要程序员进行手动控制释放内存的时机,而 采用垃圾自动回收机制,不需要进行手动的内存管理。所以将 件映射到 境中后, 象生命周期的管理就需要进行仔细的设计,使其在被 垃圾回收机制清除时可以及时释放所占有的内存,防止内存泄露。 ( 3)提出了全局对像的共享机制, 因为在浏览器中,不同的页面之间不能共享 象,所以说 需要一种额外的机制使得不同的页面之间的对象可以进行共享,也就是实现应用中的全局对象 。 加入 全局对象 之后,应用在开发与功能的实现上都可以有一个很大的提高 。 ( 4)在 擎与 件交互的机制中加入异常处理机制。使用异常机制处理程序运行时的错误,而 用 示方法调用是否成功。所以需 要在 常之间实现一套转换机制,将 法调用中返回的 的异常一一映射,并在 法调用时向 境中抛出相应的异常。 文的组织结构 本文接下来的内容是围绕 的 用模型 的优化展开,主要论述了优化模型的设计与实现的细节,以及模型的实现中所涉及到的一系列问题的解决方案。 本文的第一章阐述了本课题目前的技术背景与研究现状,同时论述了本课题的研究目的与意义。 第二章介绍和分析了本文的相关的理论和技术基础,包括 作系统、件技术、 览器引擎以及 擎 。 第三章提出了 的 用的优化模型的设计。本章首先简单介绍了 台上原有的 用模型,并提出了这个模型中的不足之处。针对原有模型的不足之处,提出 了 的新的优化模型的整体设计 ,新的模型有一个整体的框架 分为三个子模块, 件与 擎交互的 管 理 与 操 作 全 局 对 象 的管理异常处理的 及一个辅助的工具模块 提出了这些模块的具体设计。 第四 章针对 第三章中 所 设计 各个模块的实现,实现上使用了两种不同的擎, 览器自带的 开源浏览器引擎 对两种脚本引擎不同的特性,给出了两种不同的实现。 第五章 对 不同的实现 进行了测试 ,首先比较了在同样使用 为 擎时,原有模型与新模型的性能比较。然后测试了新的 优化模型在 种不同的引擎中的性能。最后讨论了全局对象的不同实现方式对于性能的影响。 第六章 对 在 本文 中所做的 工作进行了总结,并 且分析了新的优化模型中还可以改进的方面, 对 新模型 的 进一步 发展进行了展望。 第 2章 相关技术概述 作系统 作系统是由上海科泰世纪科技有限公司( 发 的 32位嵌入式操作系统。它基于微内核结构,动态绑定应用级系统服务,体系结构针对嵌入式应用开发,支持软实时和分时调度以及其它实时特征,拥有功能强大的,能 全面高效地提供对 务的支持。它提供 容的文件系统,可以从软盘、硬盘、 动,也可以通过网络启动,它体积小,速度快,适合网络时代的绝大部分嵌入式信息设备。 作系统主要由微内核、构件支持模块、系统服务器组成。微内核主要包含以下四大部分:对硬件的抽象描述并为该层之上的软件模块提供统一接口的硬件抽象层;规范化内存接口的内存管理部分;支持多进程、多线程的任务管理部分;构件技术的基础设施进程间通信部分。构件支持模块对 件提供了支持,实现了构件的运行环境,它建立在微内核 的进程间通信部分的基础之上。系统服务器提供了文件系统、设备驱动、网络支持等系统服务,它以动态链接库的形势存在。 作系统是完全面向构件技术的操作系统,具有灵活的构件组装的特点。它提供的功能模块全部基于 件技术,所以是可拆卸的构件,应用系统可以按照需要剪裁组装,或在运行时动态加载必要的构件。 作系统具有多进程、多线程、抢占式、基于线程的多优先级任务调度等特性。它支持三种线程:用户线程、纯内核线程、与进程上下文绑定的线程,其中用户线程可在用户态和特权态(系统调用)下运行,而 其它两种内核线程只在特权态下运行。它采用抢占式内核以确保时间关键的任务最先执行,使优先级最高的就绪任务总是最先得到 制权,优先级低的当前任务能够被优先级更高的任务抢占,暂时挂起执行,将 制权交给优先级高的任务。它的多优先级任务调度的特性指的是基于调度类和优先级信息来调度线程,不同的调度类也意味着不同的优先级别和不同的调度算法实现。 在嵌入式的开发中, 作系统主要有以下一些优势: ( 1)引入 件技术,为嵌入式操作系统的软件开发的工程化、工厂化提供基础。嵌入式操作系统的软件开发目 前大部分还采用手工作坊的方式,一般用汇编语言、 C 语言,少数系统已经支持了 C+开发,但还没有一个能够提供构 件化的运行环境。 作系统的构件化软件设计思想规范了工程化、工厂化的软件设计方法,提供了明晰可靠的软件接口标准,使软件构件可以像工业零件一样生产制造,零件可用于各种不同的设备上,这点优势将对嵌入式领域软件的工程化开发产生很大影响。 ( 2)支持动态加载和升级构件。在网络时代,需要将软件构件视作零件一样,随时进行装配,以满足用户的各种计算需求,可以说动态加载构件是必要的功能。新一代 移动 电话等移动电子产品,不能再像以前那样由厂家将所有的功能都做好后固定在产品里,而应该允许用户从网上获得自己感兴趣的程序。 术实现了构件动态加载,满足用户的这些需求。同时因为构件可动态加载,软件的升级也变得更加简便,开发商也不需要再为了添加了部分功能而向用户重新发布整套软件,不再 “ 牵一发而动全省 ” ,而只需升级个别的构件即可解决软件的升级问题。 ( 3)支持软件重用。软件重用一直是软件工程追求的目标, 术提供了构件的标准,二进制构件可以被不同的应用软件使用,使软件构件真正能够成为工业零件。嵌入式软件开发 商可以充分利用此优势来建立自己的构件库,在不同开发阶段开发的软件构件,其成果很容易被以后的开发所共享,充分利用经过考验的软件零件,避免重复性开发,使得系列产品的开发更加容易,新产品开发周期也得以缩短,可以提高软件生产效率和软件产品的质量,保护软件开发的投资。 ( 4)跨平台兼容的特性使得软件移植的风险被降低。基于 作系统开发的应用软件具有跨平台的特性,用户可以在 作系统(嵌入式设备)与 000/不加修改地运行同样的可执行文件,特别是对于需要将 的软件移到嵌入式系统以降低产品成本的用户,这一特点既可以大大节约软件移植的费用,也可以避免因移植而带来的其它隐患。 ( 5)功能完备的开发环境和便利的开发工具将节约开发时间。这些环境和工具将帮助程序员学习和掌握先进的构件编程技术,可以在开发环境下开发调试应用软件,与硬件研制工作同时进行,缩短产品研制周期。 件技术 件技术简介 件的全称是 一种面向构件的编程模型,它规定了构件之间的互相调用的标准,包括构件、类、对象、接口等定义, 以及访问构件对象的规定, 件可以对自己进行自描述,可以在运行时动态链接。 件中的 要有两层含义:( 1)软件零件,特指“目标代码单元”,在 程规范中是 2)软件部件,是软件零件的集合。软件部件不但包含一组 可以是单个 而且还包含了装箱单、数字签名、下载压缩包、元数据信息等打包之后的信息,与 面的 面的 件等类似。 件技术是在总结面向对象、面向构件编程技术的基础上,为了在资源有限的嵌入 式系统中更好的支持下一代网络应用软件开发而发明的。它没有使用 基于虚拟机的中间代码的机制,而是采用 C+编程,直接生成运行于 件运行平台的二进制代码的机制,能够达到 C/C+的运行效率。同时,使用 C+来编写构件可以使更多的程序员能够充分运用自己熟悉的编程语言知识和开发经验。 程序员在编写 件后用 译器编译即可生成基本的代码框架,然后可以在此基础上开发自己的构件。 描述的框架部分以元数据的形式存在于构件的发行格式中,元数据通过反射( 制参与构件 组装计算。框架是将具体的应用逻辑通过类似于 方式(计数管理、接口查询、构件聚合)隐藏起来,并把自己暴露在外的最终运行封装。 编程思想是 术的精髓,它贯穿于整个技术体系的实现中,起着非常重要的作用。 件技术由 作系统内核来实现,可以充分利用内核中的线程调度、跨进程通讯、软件装卸、服务定位等设施对 件提供高效、可靠的服务。而内核本身的程序实现也可因为利用了 件技术而变得更加模块化,从而可以加强对内核的软件工程管理。 操作系统内核和构件运行 平台提供的构件库都是采用 件技术实现的,内核与 件技术引入到内核中大大减少了各种应用软件与操作系统的总体开销。 件运行平台为 件提供了编程运行环境,提供了一套符合范的系统服务构件及支持构件相关编程的 数,实现和支持了系统构件及用户构件相互调用的机制。二进制构件直接运行在 件运行平台上,符合了嵌入式系统对应用软件的运行效率和实时性的要求。 件技术主要解决的问题有:不同来源的构件实现互操作、构件升级不会影响其 他的构件、构件独立于编程语言、构件运行环境的透明性。 对于软件开发企业来说,采用 件技术具有如下几方面的重要意义: ( 1) 开发工具自动实现构件的封装,简化了构件编程的复杂性,有 利于构件化编程技术的推广; ( 2) 件技术是一个实现软件工厂化生产的先进技术,可以大大提升企业的开发技术水平,提高软件生产的效率和软件产品的质量; ( 3) 件技术为建立软件工厂化生产的软件标准提供了参考,有利于建立企业内、行业内的软件标准和构件库。 件元数据 元数据 (是描述数据的 数据 (它是一种数据,是对数据的抽象,主要描述了数据的类型信息。普通的 C 或者 C+语言的源文件经过编译器的编译后产生二进制的文件,但在编译时编译器只提取了 行所需的信息,忽略了数据的类型信息。比如一个指针,单看编译完之后的二进制代码或汇编已不能区分它是整型或是 了,如果是指向字符串的指针,字符串的长度也没办法知道,这部分类型的信息就属于我们所说的元数据信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 版权合同范本协议要点梳理
- 直饮水购销合同
- 冰箱采购合同的运输责任
- 装修版权补充合同
- 现场拌合砂浆购销合同
- 个人借款合同范本格式格式格式阅读
- 短期借款合同与借据样本
- 装饰粉刷班组合同合作
- 产品推广翻译服务协议
- 网吧会员包月上网合同范例
- 竞争性谈判工作人员签到表及竞争性谈判方案
- 山东省淄博市张店区2023-2024学年九年级上学期1月期末化学试题(含解析)
- 厦门旅游课件
- 人工智能导论智慧树知到期末考试答案章节答案2024年哈尔滨工程大学
- 单位食堂供餐方案(2篇)
- 农村《智慧养老》课件
- 《庖丁解牛》 (教学课件)- 统编版高中语文必修下册
- 2022课程方案试题
- 丝氨酸蛋白酶在代谢性疾病中的作用
- 城市轨道交通工程监理控制要点
- 针刺气冲穴对慢性疼痛动物模式的电生理研究
评论
0/150
提交评论