论文部分内容阅读
软件从它诞生之日起就一直变得越来越重要,现代生活的方方面面都直接或间接地依赖着软件所提供的服务。随着计算机硬件和网络环境的迅速发展,用户对软件的需求日益复杂且不断变化,复用和重构成为软件开发过程的重要方面,决定着有效性和软件成本,传统软件开发方法在建模、实现、分析和进化等环节正面临越来越多的困难。
从软件模型角度看,产生式方法和模型驱动开发等面向领域的高层抽象和复用是控制软件开发复杂性的有效方法,然而这些方法在强调领域专用性的同时并没有为通用软件开发提供解决方案,由其产生的各自独立的领域模型,使得跨领域复用难以实现。
从实现角度看,网络分布式计算环境为软件性能提升带来了新的机会和挑战。理想的高性能计算平台可以通过多处理器或核并行而相对简单地实现,软硬件资源通过网络也更容易被融合起来,提供更多更好的服务。然而事实并非如此,传统的软件模型如面向对象,是在单一控制流假设下发展起来的,对象包含的共享状态使得并行计算难以实现,多线程方式的并行计算模型同样面临组合性的困难。相对的,传统数据流模型非常适合分布式并行计算,却因为缺乏如事件响应、流程事务、非确定性等通用软件模型元素,始终没有成为主流的软件模型。
针对上述现状,本论文提出了一种面向分布式计算环境的通用软件构件化模型--管站软件模型,它结合面向对象的层次化复用和面向功能的构件类型划分,提供跨领域的构件复用性。管站软件模型将构件交互语义抽象为形式场,后者允许相互组合和连接以表达丰富的控制语义,其中的数据流场适合分布式计算环境的高效实现。管站软件模型被应用于笔者负责的多个数据仓库和政府数据中心项目,取得了良好的效果。
本研究工作取得的创新性成果主要包括:
1)结合实践,深入研究了数据仓库ETL过程的领域需求,提出了ETL领域模型--ETL场,这一模型为ETL领域的商业工具和用户自定义软件提供了规范化的模型表达,有利于领域知识的记录和复用,实践也证明了其合理性;
2)结合面向对象模型、数据流计算模型和面向功能的领域需求分析,提出了领域无关的管站软件模型,它面向功能构件,以数据流、有穷状态等形式场表达构件的交互语义,通过场的连接实现模型组合,不仅提高了软件模型的抽象层次,还有利于跨领域的构件复用;
3)研究并提出了一种基于动态迭代优化的分布式管站模型数据流场的构件调度算法,它使用运行时采集的构件操作序列,分析构件之间的数据依赖和计算复杂性,有效地平衡了处理器负载,为管站模型的数据流场提供了高效的实现;
4)基于图变换思想,采用专家系统的规则推导实现了ETL领域模型到管站软件模型的自动模型变换,使用户可以采用更贴近领域的模型进行软件开发,这一思想和方法也适合其它领域;
5)基于ETL场、管站软件模型及其分布式调度算法,实现了实验系统--万能工匠,以验证本文提出的可配置、领域独立的软件建模与实现框架。在此基础上,笔者负责研发了一种基于统一数据模型和可扩展流程模型实现的插件化数据交换和集成工具-DataTurbo,它以示例驱动的界面引导用户将可配置的功能插件快速、灵活地组合构成数据流程,实现自动、稳健和高效的数据物化集成。DataTurbo目前正作为底层数据支撑平台,服务于两个政府数据中心。