基于插件技术的油藏模拟软件底层框架设计

2017-04-20 05:29宋文娟
科技视界 2017年1期

宋文娟

【摘 要】采用专业通用模板技术、架构技术、插件技术、数据管理与图形显示引擎技术,实现油藏数值模拟软件前后处理系统的底层框架构建,建立模块插件统一开发模板,以模块插件统一开发模板为基础,设计并开发系统插件添加工具、模块参数卡管理与解析工具多种模块化架构配套工具。基于插件技术的油藏模拟软件底层构架设计通用性强、可拓展性强,能够满足油藏数值模拟软件在逐步发展工程中不断完善、即时集成的需求。

【关键词】插件式;底层框架;油藏模拟平台;模板技术

0 引言

油藏数值模拟是现代油藏开发中最重要的技术手段,其应用已经渗透到油藏开发的各个环节。商业化的数值模拟软件开发是各个油田都在关注的重要应用问题。油藏数值模拟软件系统从工作流程上一般分为前处理、主模型和后处理三大部分。前处理根据地质资料、PVT数据等生成相应的模型,并根据控制参数完成模型集成工作;主模型依照前处理得到的模拟模型进行模拟运算,得到运算结果;后处理对主模型得到的运算结果进行综合分析、方案设计和方案优化,最终得到最优方案,并完成报告编写的工作。本研究主要针对油藏数值模拟软件的前后处理系统底层平台设计,采用规范的软件工程方法,提升完善现有软件系统架构,实现软件系统平台的先进性、软件易用性、系统高效性、系统安全性。

1 总体结构

1.1 主体体系结构

一个系统的软件体系结构,由软件的大粒度结构组成,它描述系统的组成部分,以及在高的层次上这些组成部分如何互动。软件体系结构是影响一个软件产品内在质量的核心因素。软件产品的质量有许多方面的因素,包括:健壮性、灵活性、高性能、简洁性、可维护性、可理解性,特别是软件产品与用户环境和数据的整合,这些都与软件体系结构密切相关。

为使该系统各个组成部分实现内部高内聚、相互间低耦合,本研究软件体系结构主要参照SALSA(科学分析层次体系结构),包括:交互界面层、分析层和数据存取层。

具体到本研究,软件主体体系架构包括:交互界面层、功能模块层、数据IO与图形接口层,还包括并行服务与通讯服务接口。

1)交互界面层包括所有的用户交互界面,形成用户交互平台,负责显示用户界面并接收用户操作,并将用户操作传递给功能模块层和图形显示层。

2)功能模块层包括所有的应用模块,其中包括系统所提供的接口以及用户根据接口所编写的应用。功能模块层完成用户所要求的操作,将数据读写请求发送给数据IO层。

3)数据I/O与图形显示接口层包括对文件以及数据库的管理和提供显示绘图服务,为上层应用提供各个方面的数据读取和图形显示服务。例如参数数据、曲线图、圆饼图、等值线图等等。另外,数据I/O层还包括不同数据格式间的转换操作,将系统内部数据格式和其他软件所能识别的数据格式进行相互转换。

4)系统将数据索引保存在数据库中。

1.2 系统平台架构

依据SALSA系统架构模型,本研究基于NIST/ECMA的模型,参考项目应用特点,形成系统平台架構:

第一层:用户控制层,包含若干“用户界面(UI)”模块。对于客户端,可以有两类用户界面,一是基本用户界面模块,采用Qt架构构建基本用户界面,另外一个是3D可视化模块,用OpenGL开发。对于基本用户界面,将用户界面集成为用户主控制台。

第二层:应用执行控制层,实现应用功能模块的集成、执行和监控。功能包括:批量作业执行控制、与用户的交互执行的控制。

第三层:应用功能层,实现应用模块功能。应用功能层可以被许多功能模块调用。应用功能层交互工具和算法工具。

第四层:应用平台层,解析用户的操作,执行数据读写,执行图形显示,它提供应用软件与操作系统/系统环境的接口。包括数据管理,项目管理,存取控制等等。本研究采用XML标准进行数据编目。

第五层:存储与外部设备管理层:管理数据库、文件、图形的存储位置、存储方式以及输入输出设置。数据分层次管理,数据库只保存索引。

第六层:调度与通信服务层:完成系统的作业调度、资源调度以及并行处理。

1.3 软件框架设计

本研究基于框架进行软件开发。软件框架是一个可以复用的类,表示特定领域的可复用的设计。可以利用框架,通过扩充类、实现接口和挂接方法,定制一个软件。框架就是可以扩充的程序骨架,用户提供的方法填充这个骨架,并剪裁为特定的应用软件。

深入剖析数值模拟应用的业务流、数据流,以数值模拟流程为主线,采用管道/过滤模式和数据存储中心模式相结合的框架进行开发,以追求系统的易用性、高效性、开放性、可维护性为原则。

本研究的软件模块编程采用Plugin技术,即插件模块。软件框架编写标准的接口,用户根据软件框架提供的接口编写插件,可以动态的连接到软件框架中而不用重新编译框架。插件模块相对独立,不影响其他模块以及框架的运行,用户可以很方便的维护软件功能。

每一个插件模块都能够从系统的框架中得到所需的公开接口进行功能上的调用。并且,每个插件模块都有自己的接口与实现,因为效率/设计以及安全上的原因,插件的接口分为公共的和私有的,插件的实现一般也都被隐藏。

本研究将主要采用插件模块方法进行开发,并且降低插件之间的耦合度,使得系统健康、高效、可复用并易维护。

2 程序组织结构

2.1 图形显示设计

图形显示引擎是图形元素(点、线、面、体、图件等)的描述、数据的图形显示解析、用户的操作解析以及图形配置的集合。主要完成系统交互、显示工具的开发。该技术可以提高系统的开发效率,提高系统风格的一致性、可扩展性。

2.2 数据库管理设计

数据管理引擎是指数据库表的管理功能的集合,包括文件的及目录结构的定义,数据类型的定义,数据传递、数据读写请求、数据转换等数据相关功能。该技术可以提高系统的执行效率,提高系统的可扩展性及易用性。

本系统数据类型较为复杂,需要对数据进行详细分类,并建立数据字典以及数据字典管理工具,提高系统的可扩展性。

实现数据管理接口,使系统中数据的读写都可以通过数据管理平台实现,保证系统数据的安全性。

2.3 开发模板技术

开发模板是为软件开发人员提供的工具软件进行代码编写的方法,工具软件包括程序框架工具、参数和数据读写接口、参数卡生成工具以及参数解析引擎等。该技术可以提高系统的开发效率,提高系统的一致性、安全性、可扩展性。

3 结论

本系统设计了油藏数值模拟软件平台的底层主体架构,主要特点如下:

1)采用专业通用模板技术、架构技术、插件技术、数据管理与图形显示引擎技术来构建系统底层框架,控制流程管理;

2)实现多种功能强大、类型齐全的图件绘制、显示和打印功能以及丰富的人机交互功能;

3)实现三维可视化模型显示及人机交互功能;

4)实现多种类微机群的并行模拟计算,以及数据传输、进程控制等功能。

【参考文献】

[1]刘建涛,李春雷,杨河山.插件式集成技术在数字油田系统建设中的应用[J]. 中国科技信息,2013(3).

[2]彭永康,章义来.插件及其接口的研究与应用[J].计算机应用,2003(6).

[3]陈苏.油藏数值模拟远程工作平台软件设计[J].今日科苑,2008(3).

[责任编辑:田吉捷]