0 引言
嵌入式技术已在人们生活中得到广泛应用,移动计算更是给人们的生活带来了极大的方便,由移动计算技术推动发展的新的数据库技术让人耳目一新。如嵌入式移动数据库就是随着各种移动设备、智能计算设备、嵌入式设备的发展而迅速发展起来。分析当前存在的各种嵌入式移动数据库系统的体系结构,我们考虑采用一种总体上采用组件方式设计、组件内部采用模块化方式设计的嵌入式移动数据库。
1 基本概念
模块化设计(Block-based design)就是指程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。模块化设计的基本思想是为了减少模块与模块之间的关联性,模块之间的逻辑结构相对独立,无函数的交叉调用,数据传递由全局变量完成。模块化设计的核心是模块的独立性,主要包括功能独立性和结构独立性,这使得软件开发的分工易于实现。
软件组件的概念产生于软件复用,近几年随着对组件技术的认识不断深入,出现了若干新的组件定义。其中比较有代表性的有对象管理小组(Object Management Group, OMG)的“建模语言规范”中对组件的定义如下:系统中一种物理的、可代替的部件、它封装了实现并提供了一系列可用的接口。一个组件代表一个系统中实现的物理部分,包括软件代码(源代码,二进制代码,可执行代码)或者一些类似内容,如脚本或者命令文件。
2 基于组件的EMDBS 的体系结构
目前已出现的商业EMDBS 产品基本上都是采用一种封闭式的体系结构,并都有各自的特性。他们支持不同的操作系统平台,具有不同的内存管理需求,提供不同类型的接口给用户访问数据库中的数据,并且它们都是一种封闭、稳定的数据库产品,一旦发布,数据库的功能就已经确定下来。很少考虑数据库的非功能特性。为了降低数据库开发成本,减少开发时间、同时随着时间的变迁不断完善数据库的各项功能,这样传统的数据库的体系结构就很难完成各项新功能。因此我们考虑设计一种新的体系结构——总体上基于组件、组件内部模块化的EMDBS 的体系结构。这些组件可以随时添加、删除和重新配置新功能,它将提供数据库原来没有的功能,同时又不影响原来的功能。
考虑到基于组件软件开发各个方面的好处,我们把这种总体上基于组件、组件内部模块化的EMDBS 的体系结构设计成3 层体系结构[2][4][7]。如图1 所示。
第一层是数据库基本功能提供层,它提供包含数据对象的定义、格式、存储以及如何检索这些对象的基本数据库功能。本层隐藏了与硬件部分相关用户的细节,同时这一层自身也会被作为组件的一部分。这一次通过接口向上一层和下一层提供相应的服务,保证在添加时提供一种验证机制,在删除时不影响系统的基本功能。
第二层是组件接口层。它是多种功能组件的大集合,构成了一个组件库,库中的组件提供一种特定的服务或者服务集。它向数据库基本功能提供层发送请求,获得来自数据库的请求结果,同时向上层的基于组件的应用程序和组件配置层提供相应的服务。比如客户的应用有可能不需要使用数据库提供的现有功能或者需要修改已有的数据库服务功能以满足特殊的使用目的,在这种情况下,可以通过向数据库中提供新的组件以完成任务,从而达到简化设计的目的。
第三层是组件配置层,它提供一种供新组件顺利地移植到数据库中的机制。这一层的部分工作就是提供用户接口。通过用户接口可以了解到各个组件的属性及其提供的服务。同时,该用户接口也允许组件拥有者选择新的组件属性和服务映射到已经存在的功能上。一旦组件拥有者完成了这个映射过程,那么配置层产生的胶合代码将确保对数据库中的新组件提供支持,同时这些胶合代码信息都会被保存在数据库之中。在生成组件胶合代码之前,用户接口会提供验证机制以弄清楚该组件能否被融入到系统中,同时用户接口将会生成一个报告,用以说明兼容性上的细节,也会视具体情况做些配置上的修改以便使该组件适用于本数据库。
3 基于组件的EMDBS 的开发过程
基于组件的EMDBS 的开发过程可以有以下7 个步骤:需求分析和开发平台选择、基于组件EMDBS 体系结构设计、组件实现、组件集成、集成测试、系统测试、系统发布。如图2 所示[1]。