考虑到基于组件软件开发各个方面的好处,我们把这种总体上基于组件、组件内部模块化的EMDBS 的体系结构设计成3 层体系结构[2][4][7]。如图1 所示。
第一层是数据库基本功能提供层,它提供包含数据对象的定义、格式、存储以及如何检索这些对象的基本数据库功能。本层隐藏了与硬件部分相关用户的细节,同时这一层自身也会被作为组件的一部分。这一次通过接口向上一层和下一层提供相应的服务,保证在添加时提供一种验证机制,在删除时不影响系统的基本功能。
第二层是组件接口层。它是多种功能组件的大集合,构成了一个组件库,库中的组件提供一种特定的服务或者服务集。它向数据库基本功能提供层发送请求,获得来自数据库的请求结果,同时向上层的基于组件的应用程序和组件配置层提供相应的服务。比如客户的应用有可能不需要使用数据库提供的现有功能或者需要修改已有的数据库服务功能以满足特殊的使用目的,在这种情况下,可以通过向数据库中提供新的组件以完成任务,从而达到简化设计的目的。
第三层是组件配置层,它提供一种供新组件顺利地移植到数据库中的机制。这一层的部分工作就是提供用户接口。通过用户接口可以了解到各个组件的属性及其提供的服务。同时,该用户接口也允许组件拥有者选择新的组件属性和服务映射到已经存在的功能上。一旦组件拥有者完成了这个映射过程,那么配置层产生的胶合代码将确保对数据库中的新组件提供支持,同时这些胶合代码信息都会被保存在数据库之中。在生成组件胶合代码之前,用户接口会提供验证机制以弄清楚该组件能否被融入到系统中,同时用户接口将会生成一个报告,用以说明兼容性上的细节,也会视具体情况做些配置上的修改以便使该组件适用于本数据库。
3 基于组件的EMDBS 的开发过程
基于组件的EMDBS 的开发过程可以有以下7 个步骤:需求分析和开发平台选择、基于组件EMDBS 体系结构设计、组件实现、组件集成、集成测试、系统测试、系统发布。如图2 所示[1]。
第一阶段是需求分析和开发平台选择,通过分析确定功能性需求和非功能性需求。确定哪些功能由硬件来实现,哪些功能由软件来实现,同时结合相应领域的知识选择开发工具和规划各个部分实现的功能。