1、浙江大学计算机科学与技术学院硕士学位论文基于微内核的构件框架设计与实现姓名:姜振宇申请学位级别:硕士专业:计算机系统结构指导教师:陈文智20100101浙江大学硕士学位论文,谢,廿:;浙江大学硕士学位论文图目录图目录图以度内核为的虚拟化架构图总体框架示意图图应用、构件、对象间的关系图 类图对象查询图接口定义图语 言的接口定义图语 言的接口内部结构图格式示例。图类对象的类型图类对象的图由获取接口对象 。图远程过程调用图使用不同通讯协议的各类 图参数收集图格式示例图对文件的解析流程图中间层的接口函数调用过程图函数命名一图流程图!函数处理步骤 图构件层次结构图硬件、内核和调试选项 图硬件选项图内核选
2、项图调试选项。图调试选项图接口定义文件图解析及输出代码文件图函数模板图函数具体实现 图服务的图客户端调用图服务端响应图客户端()调 用 浙江大学硕士学位论文图目录图服务端()响 应 图客户端()调用图服务端响应图客户端 调用图服务端()响应图应 用与 应用性能对比 图带来的额外开销百分比浙江大学硕士学位论文表目录表目录表生存周期管理相关函数表接口定义中支持的数据类型表字符转义表从文件自动生成的文件列表浙江大学硕士学位论文第章绪论第章绪论课题背景嵌入式系统的传统开发方法,正在产生越来越不可靠的嵌入式软件。随着嵌入式硬件功能的增加,更多的功能被加入嵌入式系统中,导致了日趋复杂的嵌入式软件系统。然而
3、,从前一节 可以看到,随着软件系统复杂性的增加,其开发方法和技术并没有显著的变化。这些技术用于小型系统尚可,但不足以应付更为复杂更为庞大的系统,需要使用一种更为先进的软件工程技术,以确保嵌入式软件质量的提升和开发效率的提高。基于构件的软件开发方法特别针对这个问题,提供了一种方式开发独立系统,并且具备良好的结构性和代码重用性。 还可以提升系统的灵活性,允 许新的构件加入系统或从系统移除。另外,由于构件相 对独立,允许不同的开发者使用不同的开发语言开发大型系统的各个模块,开发和维护变得简单。然而,用于嵌入式软件系统的构件化设计方法与用于传统的企业级软件的构件化设计有很大不同之处,这主要体现在资源限
4、制和非功能性要求两个方面。嵌入式系统通常有很强的资源限制,例如成本考量、大小限制等,这些因素直接决定了嵌入式设备的计算能力、内存容量、能耗等,嵌入式软件开发必须提供良好的机制,确保软件可以在不同处理能力(通常更慢)的处理器上正常运行,能适应不同的内存环境,并且能够在高效运行的同时, 节省能耗。嵌入式系统的非功能性要求主要体现在实时性、安全性和可靠性, 实时性意味着软件运行必须是可预测的,其行为必须是可控的,安全性和可靠性意味着关键任务不能出现失败,因为这类软件故障会导致严重损失,有时甚至是生命损失。许多企业级的构件模型,例如、等,虽然这些中间件平台提供众多丰富的服务和灵活的管理配置,但是获取这
5、些丰富性和灵活性的副作用是庞大臃肿的软件系统,以及众多安全隐患,未能解决嵌入式系统的实时性、容错性、能耗等方面的关键问题,很 难应用于资源有限的嵌入式 设备。我们浙江大学硕上学位论文第章绪论需要一种专门针对嵌入式系统设计的构件模型以及相应的开发工具和环境。研究意义与目的嵌入式应用软件开发仍是昂贵且容易导致错误的过程,为减少软件代价和提高软件质量,需要一种专门针对嵌入式系统设计的方法。构件模型的基本好处是强调模块化和扩展性,在固定的接口内封装了实现细节,增强了软件可重用性,通过模块化设计提高可伸缩性和可移植性。而微内核以其极小化和安全性的特点,被越来越多应用于嵌入式设备。我们希望设计一个构件框架
6、,基于该平台实现软件复用和应用快速开发部署,将操作系统底层细节对整个系统的影响降到最低,针对特定的构件应用进行性能和能耗方面的优化。作为一种尝试,我们在微内核系统上开发一套轻量级构件框架,针对嵌入式设备进行快速应用开发和部署。该构件框架应当具备灵活的底层通讯扩展机制,可灵活适应于不同的环境(如不同操作系统);建立一套构件设计规范,作为构件应用开发的标准;提供代码自动化生成工具,依据设计者提供的接口描述生成通用代码。我的工作本文基于微内核开发一个轻量级构件框架一,基于此平台,可实现嵌入式应用的快速开发部署。另外,由于嵌入式 应用通常具有自身的特殊性,构件框架针对特殊应用进行设计优化,利用有限的资
7、源,发挥最大的效能。主要工作如下:构建基于微内核系统的底层基础平台支持,包括开发环境的搭建、基础库的定制和移植等。设计并实现 一个基于微内核的轻量级构件框架,包括构件模型设计、接口设计、数据类型封装、参数及返回值的传递和解析、通用类型支持、代理对象机制、代理对象的通讯扩展支持。浙江大学硕士学位论文第章绪论设计一套基于 该构件框架的 规范,从系统的实现机制、功能、提供的接口、参数类型、出错代码等几方面对构件框架具体实现进行规范。提供一套开发工具,对遵循构件框架规范的接口描述文件进行解析,自动生成服务端、客户端代码,以及上 层对象代理接口、底层封装代码。论文组织本文重点研究了卜基于微内核的构件框架
8、的设计与实现,实现一个可运行于嵌入式设备的应用开发框架。第章介绍了课题 背景和研究的意 义与目的,并提出本文的工作。第章简要介绍 了基于微内核的嵌入式 应用开发的发展现状和相关技术,并详细阐述了构件模型的研究现状和发展趋势。第章将介绍了构件框架所涉及到的关键技术研究。第章将介绍构件框架的具体设计与实现。第章将介绍构件框架的演示验证,包括平台的移植与搭建。第章将总结本文所做的工作,并对接下来的研究方向作出展望。浙江大学硕上学位论文第章相关技 术综述微内核介绍第章相关技术综述今天大部分操作系统,例如内核,功能不断丰富,支持的硬件范围也越来越广,直接导致内核体积迅速膨胀。然而代 码都是有错误倾向的,
9、如此多的代码中隐藏的缺陷和安全漏洞无可避免,内核中出现的一个小错误可以破坏整个系统的正常工作。是一个微内树】构架的操作系统内核,现在已经形成一个微内核家族。微内核系统是一个基于消息传送()机制的内核,它只提供对操作系统绝对必要的功能,而把其它属于传统操作系统内核部分的功能留给用户态进程来实现。微内核系统具有出色的性能和很小的体积。的设计原则是“一项特性当且仅当安全需要它在特权模式被实现时才应该在微内核里,根据这一原则,微内核系统由微内核与用户态服务组成。根据的参考文档【,可以了解到,的构建基础由 进程线程组成,一个进程可以看做一个相对独立的地址空间,它是系统资源的一个容器;线程是应用的执行单元
10、,由内核统一调度。进程间通讯()是微内核的另一个非常重要的部分,通过机制,不同线程以一种高效的方式进行消息的交换。微内核系统发展出了很多分支,原始版本特 别注重速度,为了获得高性能,内核中许多关键代码用汇编写成。:是的一个分支,用面向对象的 语言开 发,具有良好的可移植性及可读性;:这一分支包含对硬实时的支持,其内核是完全可重入的,允许在任何时刻被中断;龟;建了一个新的分支一,用于嵌入式环境。微内核设计背后隐藏着组件化设计的思想, 许多功能都可以在上以服务的形式进行设计。的每种中断可以被赋予特定的线程进行处理,对于内:浙江大学硕士学位论文第章相关技 术综述核提供的也以接口的形式对外提供。本身的
11、 这种特性,使得非常适合用于组件化设计,一个错误的影响,容易将范 围限制在局部范围。传统应用开发以自身优秀的性能和灵活性,以及微内核特性,越来越多的应用于嵌入式设备【。嵌入式移动计算刚刚兴起,未来该领域将有很大增长。随着嵌入式硬件功能的增加,更多的功能被加入嵌入式系统中, 导致了日趋复杂的嵌入式软件系统。在上开发应用有两种方式,一种是原始方式,另一种是虚拟化技术。原始方式是指直接利用微内核提供的接口进行应用程序设计,对于简单应用而言, 这种设计非常便捷,可以避免复杂框架或机制带来的额外开销。但是这种方式由于很原始,需要了解系统接口的语义,对内核机制有深入的了解。另外,不适合大型复杂的应用系统开
12、发。另一种方式基于虚拟化技术,即在微内核基础上通过虚拟化技术运行另外一个较成熟的操作系统,例如,由该操作系统运行真正需要运行的应用,提供所需服务。这种方式的好处显而易见,可以在成熟的操作系统环境下开发和调试应用程序,通常这些应用可以正确无误的在基于的虚拟化环境中运行。然而,这种方式的弊端也很明显, 对于一个普通应用,需要运行整个操作系统提供运行环境, 额外开销太大,并且整个操作系统的运行依赖于虚拟化技术,而虚拟化技术本身是一项很复杂的技术,对于运行时出现的错误,不容易定位,可能是应用本身出错,也可能是虚拟化过程出错。基于虚拟化技术的应用开发文献为我们 展现了一种典型的在上使用虚 拟化技术的架构
13、,如图所示。这种架构以为,在此基础上运行各个客户操作系统。、使用的都是这种架构。浙江大学硕士学位论文第章相关技 术综述圆圆固圆圈图以度内核为的虚拟化架构。是一个移植到微内核上的,作为一个普通的线程运行于微内核上,相当于一个运行普通任务的。与其他的微内核组件,例如 实时组件,一同运行于微内核上。与普通的系统是二进制兼容的,可在普通上运行的应用理论上都可以运行于上。目前的最新版本是一。是专为移动设备平台虚拟化而设计,具备相对完备的功能。的手机、的就使用了的虚拟化技术,提供一个最小化环境,在其上运行成熟的操作系统,以提供完整的功能。是一个具备相对成熟的商业化应用的产品,目前有、多种系统可运行于提供的
14、虚 拟 化平台上。与类似,是一个移植到上的系统【】,不能单独使用,是项目的一部分。关于,我们在下一节中会有详细介绍。基于虚拟化技术提供服务的方式在嵌入式设备中的应用越来越多,作为一种极其精简的微内核系统,为虚拟化提供基础和支持,克服虚拟化技术的许多缺:。,浙江大学硕士学位论文第章相关技 术综述吲】。通过在微内核基础上通过虚拟化技术运行另外一个较成熟的操作系统,由该操作系统运行真正需要运行的应用,提供所需服务。这种方式的好处显而易见,可以在成熟的操作系统环境下开发和调试应用程序,通常这些应用可以正确无误的在基于的虚拟化环境中运行,特 别是驱动程序 【。然而,这种方式的弊端也很明显, 对于一个普通
15、应用,需要运行整个操作系统提供运行环境, 额外开销太大。虚 拟化技术本身是一项很复杂的技术,对于运行时出现的错误,不容易定位,可能是 应用本身出错,也可能是虚拟化过程出错。对于资源受限的嵌入式设备,需要一种更加灵活、开 销较小的方式开发应用。基于库的应用开发基于的原始开发方式非常单薄和复杂,不适合大型复杂的应用系统开发。为此有一些代码集合对进行扩充,提供更 为丰富的功能和 调用接口,方便开发者使用。这些代码集合可以是供直接使用的代码片段、函数调用,也可以是一种机制和框架,具有自身的特点和约束, 为开发者提供更为强大的功能和扩展。我们把这些代码集合统称为库,基于这些现成的代码或框架的开发称作基于
16、库的应用开发。是一个在微内核上开发应用程序的编程环境,它最早作为实时操作系统的一部分而开发。随着应用开发的增多,许多应用都有一些共同的需求,包括对开发环境的要求,频繁使用到的功能等。为此,针对这些通用功能,定义了一个最小的开 发环境,可以满足大多数请求,避免代码依赖于特定系统和硬件架构。为提供了许多扩展,包括内存管理、线程管理、扩展、同步管理、 输入输出日志机制、资源管理等【】,这些为应用开发提供了很大的方便。是的一个项目, 为嵌入式系统提供操作系 统的基础功能,运行于微内核上,具有自身设计框架。补充了底层的,提供了几乎所有操作系统环境都需要的基础服务,例如内存管理、保护管理和设:?浙江大学硕
17、士学位论文第章相关技 术综述备驱动框架,支持低开销的数据共享。在基础上可运行操作系统,通过半虚拟化提供传统嵌入式系统欠缺的功能。与相比,更多的是提供一种机制和框架,开发者在这些特点和约束基础上开发自己的应用。无论是还是,都方便了应用的开发。与直接利用微内核提供的接口进行应用程序 设计相比,复杂性大大降低。但是,基于库的应用开发随机性太大,往往需要对不同的应用作针对性设计,而库是通用设计, 针对特殊需求没有灵活性,类似 这种框架也缺乏扩展性。另外,库本身的设计通常很松散,缺乏系统化设计,不能形成一套机制。构件化应用开发嵌入式构件特点从前一节可以看到,随着软件系统复杂性的增加,其开发方法和技术并没
18、有显著的变化,而虚拟化技术的分隔粒度太大,需要一种更精细的分隔方式。 这些技术用于小型系统尚可,但不足以应付更为复杂更为庞大的系统。嵌入式系统的传统开发方法,正在产生越来越不可靠的嵌入式软件。需要使用一种更为先进的软件工程技术,以确保嵌入式软件质量的提升和开发效率的提高。构件化技术使得大型复杂软件被分割为小而简单的、相对独立得模块。基于构件的软件开发方法,提供了一种新的开发独立系统的方式,具备良好的结构和代码重用性。提升系统的灵活性,允许新的构件加入系统或从系统移除。另外,由于构件相对独立,允许不同的开发者使用不同的开发语言开发大型系统的各个模块,开发和维护变得简单。然而,用于嵌入式软件系统的
19、构件化设计方法与用于传统的企业级软件的构件化设计有很大不同之处,这主要体现在资源限制和非功能性要求两个方面。嵌入式系统通常有很强的资源限制,成本考量、大小限制等直接决定了嵌入式设备的计算能力、内存容量、能耗等,嵌入式软件开发必须提供良好的机制,确保软件可以在不同处理能力(通常更慢)的处理器上正常运行,能适应不同的内存环境,并且能够在高效运行的同时, 节省能耗。嵌入式系 统 的非功能性要求主要体浙江大学硕士学位论文第章相关技 术综述现在实时性、安全性和可靠性, 实时性意味着软件运行必须是可预测的【,其行为必须是可控的,安全性和可靠性意味着关键任务不能出现失败,因为这类软件故障会导致严重损失,有时
20、甚至是生命损失。许多企业级的构件模型,例如、等,虽然这些中间件平台提供众多丰富的服务和灵活的管理配置,但是获取这些丰富性和灵活性的副作用是庞大臃肿的软件系统,以及众多安全隐患,未能解决嵌入式系统的实时性、容错性、能耗等方面的关键问题,很 难应用于资源有限的嵌入式 设备。我们需要一种专门针对嵌入式系统设计的构件模型以及相应的开发工具和环境【训。另外,针对嵌入式系统的特殊性,对某些功能进行硬件上的优化和扩展【, 】,可以在有限资源下达到更高性能,在构件模型设计时可以考虑优化问题。现有构件模型,】的目标定位是目标应用领域独立、部署环境独立、开销小。 该架构的核心是一个最小化的运行时核心组件,提供加载
21、、绑定组件的基本服务。核心组件位于硬件软件部署环境之上,核心是策略无关的,它提供的具备目标系统无关性和部署环境独立性。在核心层之上是扩展层,根据不同的目标系统和应用环境提供相应增强型功能,增加了的可裁剪性和扩展性。以为代表,我们学习一种新的构件平台设计模式:基于已有的平台,开发和验证新特性。但不适合用作真实的嵌入式设备,一方面因为它依赖于微软的,底层机制也深受的约束,无法独立运作于嵌入式设备;另一方面,是一个通用设计【,对于嵌入式应用,在效率上不免有所影响。】是一个用于网络嵌入式系统的构件平台,架构上分两层:底层是语言无关、基于组件的编程模型,这一层非常的精简,可以运行于几乎所有典型网络嵌入式
22、设备;上层是软件构件,提供更为丰富的构件功能,并且按照功能划分出组件集合,每个组件按照自身提供的功能在需要时自动部署。其依据标准接口描述语言定义。构件模型中组件是封装和部署的基础单元,它们在运行时由组件类型来实例化。组件通过接口提供服务,这些接口的定义具有编浙江大学硕上学位论文第章相关技 术综述程语言无关性。值得注意的是,仅仅通过种操作,就可以实现对构件模型的完全管理,这种轻量级的模型很容易实现,并 应用于多种平台。这种核心层的简洁设计为我们的构件平台设计带来启发。】是由飞利浦设计,专注于消费电子设备的软件产品开发。主要强调嵌入式设备的资源受限特点,并且提供了一个轻量级的构件模型。的构件间通讯
23、通过远程过程调用风格的接口实现,支持构件的静态绑定,为减少运行时开销,所有的构件调用都是硬编码进构件中的。没有考 虑包括实时、安全特性在内的非功能性要求。【】(汽车安全系统的重要组件)项目开发了一个构件模型一一,用于车载系统。是构件开发框架】的一个组成部分,支持构件的静态配置和构件绑定,仅仅专注于实时性和构件行为的可预测性等属性,环境还提供了分析工具。使用的一个例子就是使用构件组成的控制 环路。基于和开发的一种构件模型,其中微内核提供最小可信计算基础()】,提供一些基础性的关键服务(如内存管理、命名服务、设备驱动支持等)。构件概念需要被映射到所提供的机制上,一个构件通常被放在一个独立的保护域中
24、,被设计为一个单独的服务,以提供封装和隔离;的接口也是直接映射到的接口机制上的,的接口机制在设计时考虑的是如何保护,而非所强调的封装;的数据端口机制被映射到的内存区段机制,以实现内存共享;的事件被映射到的异步通知机制。可以看到,的许多概念严重依赖于的机制,如果不提供或者改变了自身的实现方法,那么将受到影响;另外,的设计有其自身需求和特点,将构件模型的一些机制映射到另一个系统上,难免产生生硬的套用,在效率上受到影响。在的基础上,提出一种基于构件的模型驱动开发架构,可快速将模型设计转化为代码,构建了在上基于的建模环境,并提供一套浙江大学硕士学位论文第章相关技 术综述基于微内核的构件开发工具。将基于
25、构件的模型驱动开发方法引入嵌入式系统【,带来了一些新的概念和挑战,但其带来的好处很多,这也促使我们对构件模型进行更多的研究。本章小结本章主要介绍了微内核以及基于微内核的应用开发。微内核以其精简、安全的特性,被越来越多的应用于嵌入式系统中,嵌入式系统通常有较多的限制,包括实时性、可靠性、资源受限等要求,使得传统的 应用开发越来越难以满足新的要求,列举了常见的基于虚拟化的开发和基于库的开发。最后介绍了新兴的嵌入式构件化应用开发方法,列举了现有的一些构件框架,以及各自的不足之处,促使我 们对构件模型进行更多的研究。浙江大学硕士学位论文第章关键技术研究第章关键技术研究对象管理构件服务最终都由一个具体的
26、对象提供,需要解决以下几个与对象相关的问题:构件与对 象、对象与接口应当是一个怎样的关系;如何从构件中的一个对象跳转到另一个对象;构件中的对 象提供服务的生存周期如何管理;如何定位对 象,进而获取服务。对于第一点,为了保持模块化设计,构件中通常 应当包含一个或多个对象,分别针对不同功能,提供不同服务。 对象与接口的关系就比较灵活了,可以有两种设计方式,一种是一个接口对应着一个对象,这种方式强调接口,不同客户通过接口访问到的总是相同对象,当所提供的服务具有唯一性特征时,这种实现方式是合适的;另一种是一个接口可以对应多个对象,为访问对象,需要一种途径来定位每个服务对象,虽然每个对象服务的功能完全相
27、同,但其处理的数据则具有局部性特点。不同的应用场景对应着不同的对象模型,构件框架应当提供足够的灵活性,根据需求灵活选择所需的对象模型,而不 应在设计时就将接口与对象的对应关系限定死。对于第二点,当获得一个服务对象后,如果需要 获得同一构件中的其他对象,应当有一种便捷的方式进行获取。跳转机制的设计直接关系到构件对象的包容、聚合等特性【,因此应当在底层设计时就考虑到跳转机制。并且构件框架应当具备良好的扩展特性,以方便开发者实现自己的对象包容、聚合等特性。对于第三点,对象的生命周期管理方案有较多选择,比较常见的有基于计数管理和全局垃圾回收管理。考虑到用于嵌入式设备环境,系统资源比较稀缺,计数管理方法
28、是一个较好的选择。当然,构件框架 应当将对象生命周期管理设计成具有扩展性,可根据策略选择或扩展管理方式。浙江大学硕士学位论文第章关键技术研究对于第四点,如何定位对象,可以根据对象与接口的关系选择不同方案。如果对象与接口是一对一的关系,那么可根据接口的定位方式定位相应服务对象;如果一个接口可以有多个服务对象存在,那么需要种机制来定位每一个不同的服务对象,可以考虑类似【】的做法,使用抽象地址方法来定位。解决好上述的四个问题,构件框架的对象模型基本确定。对象模型是构件框架的基本机制之一,位于底层, 对整体产生的影响非常大, 应当充分考虑设计时的灵活性和可扩展性。接口机制接口是隐藏实现细节的关键,设计
29、良好的接口机制是构件框架的基本要求。接口应当保证与编程语言的无关性,并且能清晰描述接口所提供的服务。接口的定义应当能够体现构件的设计层次,一个接口对应着一个相对独立的功能设计;接口自身应当具备完备性,能够表示基本数据类型以及常见的扩展数据类型,并能够准确描述这些参数的属性。接口设计的另一个重要方面是保证二进制级别的兼容性。从技术上讲,接口仅仅是包含一组函数的数据结构,通过这组数据结构,客户代码可以调用构件对象实现的功能。 这组成员函数就是构件对象所暴露出来的所有信息。接口语义不仅应当在语法层面上保持正确性,在二进制层面依然有效。接口定义的确定性和参数类型的确定性,应当保证接口调用的正确语义,甚
30、至在二进制级别也能正确表达。在二迸制层面上的兼容性是保证构件运行时多态的关键,也是实现构件的编程语言无关性的重要因素。为方便快速开发,构件框架可以提供一套自动化工具,从接口定义中自动生成通用代码【,供开 发者使用。当然,这一功能可选,但非常重要。代理机制代理机制卅是 实现远程服 务本地调用的关键,代理作为服务对象在客户端的代表,为应用开发者隐藏了获取服务的实现细节,是 实现分布式特性的重要元素之一。浙江大学硕士学位论文第章关键技术研究代理将对远程服务的请求转化为远程过程调用,支持多种通讯协议,并保留扩展接口给开发者,使其能实现自己的通讯协议。不 论何种通讯协议,代理都 应当保持统一的调用接口,
31、将服务调用请求正确传送至目的服务端。对于而言,其应用环境为微内核系 统,因此至少必须针对的通讯实现一套代理。代理机制中的远程过程调用的传输涉及到函数名称封装、数据类型封装、参数及返回值的传递和解析、通用类型支持等内容。这些内容需要制定规范,以便开发者遵循共同的规范开发应用。间接层利用构件框架开发应用时,客户端关注服务的快速获取,服务端关注服务的实现。而对于前述的代理机制具体如何实现分布式应用、远程过程调用如何实施等内容,应当通过某种方式隐藏起来。为此构件框架应当根据接口定义生成一些间接层代码。间接层代码【,用于封装获取响应服务过程的一些底层细节,包括调用、参数封装【,、函数分派等。这些间接层代
32、码由框架根据一定规则生成,是实现快速开发和分布式特性的关键,是框架的核心功能之一。框架提供一套开发工具,对遵循描述规范的接口描述文件进行解析【,自动生成服务端、客户端相应代码, 这些代码可以看作代码模板。本章小结本章围绕关键特性,介绍了构件框架使用到的一些关键技术,包括对象管理、接口机制、代理机制、间接层。有些关键技术可以有多种实现方式,我们针对 不同情况分别进行了讨论, 对于涉及核心设计的问题,我们追求精益求精,对于其他一些非关键问题,我们尽量留下扩展空间,让框架保持足够的灵活性。所有这些关键技术, 为构件框架的设计初步定犁。浙江大学硕士学位论文第章构件框架设计与实现第章构件框架设计与实现是
33、基于微内核系统开发的轻量级构件框架,着眼于组件化设计,降低耦合性,减少软件代价,提高软件质量;强调模块化和可扩展性,在固定的接口内封装了实现细节,增强了软件可重用性;通过模块化设计提高可伸缩性和可移植性,通过动态配置可以提高扩充性。构件框架具 备灵活的底层通讯扩展机制,可灵活适应于不同的环境。 围绕建立一套构件开发设计规范,作为构件应用开发的准则,并提供代码自动化生成工具,依据设计者提供的接口描述生成通用代码。总体结构构件框架提供构件开发的基础设施,基于可开发各种构件,每个构件提供特定服务, 这些构件通过的基础功能进行通讯,对外通过接口提供服务。将具体的通 讯细节封装起来,包括具体系统及通讯协议的选择。构件框架及各个构件应用的整体结构如图所示:浙江大学硕士学位论文第章构件框架设计与实现图总体框架示意图构件模型定义的核心是一个最小化的基础构件框架,仅提供基础设施与机制,是高级功能和机制扩展的基石。构件框架包含许多元素:对象模型、 远程过程调用(冲)、数据封装、抽象地址解析等等。对本文中出现的一些术语作一个界定,应用包含一个或多个构件(或组件,本文构件和组件意义相同,可替换使用)组成,一个构件内含一个或多个提供具体功能的对象,对象对外提供接口供用户访问。其关系如图所示:浙江大学硕上学位论文第章构件框架设计与实现图应用、构