地球物理软件技术发展趋势与战略研究
赵改善*
中国石油化工股份有限公司石油物探技术研究院,南京210014
摘要:地球物理技术及其应用软件的发展日新月异。地球物理软件技术发展表现出先进性、开放性、一体化、自由化、网络化、并行化、可视化、标准化、智能化、普及化等特征。地球物理技术的发展对应用软件提出了更高的功能要求和性能要求,PB级(1015)海量数据管理、每秒千万亿次(PFlops即1015)巨量计算是我们面临的主要挑战。集成化、平台化、协同化、服务化将成为地球物理软件的主要发展方向。地球物理软件的发展应遵循“需求牵引,技术推动”的方针。提高软件开发人员的并行编程能力和培养并行软件开发专门人才是我们当前的一项重要任务。
关键词:地球物理,软件,集成化,平台化,SOA,云计算,并行
作者简介:赵改善(1962年7月—),男,教授级高级工程师,硕士,中国石化石油物探技术研究院副院长兼总工程师,目前主要研究方向为地震数据处理技术、地球物理软件技术与信息技术应用。
基金项目:本文为国家863计划“高效能计算机及网格服务环境”重大项目所属课题“面向千万亿次计算的石油勘探地震成像系统”的成果,课题编号为2009AA01A140。
Trends and Strategic Studies of Geophysical Software Development
Zhao Gaishan
(Sinopec Geophysical Research Institute,Nanjing 210014)
0 引言
石油工业是一个高风险、高投入、高技术含量的产业,石油工业上游的发展高度依赖于高新技术特别是信息技术的应用。软件在石油勘探开发中起到了核心作用,石油勘探开发技术蕴涵在软件之中,而软件是石油勘探开发技术的载体和具体体现。作为地球物理技术的重要载体,地球物理软件发展飞速、应用广泛,成为石油勘探的一项核心技术。地球物理软件技术的发展直接标志着地球物理技术的进步,从而直接支撑着石油勘探技术的发展,为满足复杂勘探条件下复杂勘探目标的油气勘探取得突破提供了有效的技术支撑。
国内外石油勘探开发应用软件产品类型繁多、规模不等。有来自于大技术服务公司的大型应用软件产品,有大石油公司的专用软件,也有小公司的特色软件产品。大技术服务公司不断收购小软件公司,已经成为石油软件产业发展的一个重要特征。
国外大的专业技术服务公司都有支持自己核心业务的商品化大型应用软件系统,其特点是:系统庞大,专业齐全,品种配套;拥有核心技术且为石油公司提供技术服务;对外销售软件,但不销售最新技术软件产品,且不允许竞争对手用其软件参与国外市场竞争。一般大石油公司都有综合研究中心,主要目的是发展特色技术,解决特殊需求,提高核心竞争力,控制风险。其特点是:有自己的软件平台、特色技术与核心技术;不对外销售软件,不开展社会化、市场化的技术服务。国内外还有很多小规模的软件公司从事石油勘探开发软件的发展,其特点是:软件系统不大,含专业特色技术;对外销售软件且开展相关技术服务。
在我国石油软件市场上,进口软件占主导地位。多年来,我国石油工业引进了大量软件,促进了我国石油勘探开发技术水平的提高。我国石油工业界在引进和应用国外软件产品的同时,也发展了一系列国产软件产品,取得了一定程度的应用。
近年来,信息技术发展迅速,信息技术在石油地球物理勘探中的应用也得到了持续发展,并且仍然保持着强劲的需求态势。在此背景下,石油地球物理勘探应用软件也正在不断的发展之中,经历了一系列的技术转型和组织变化,例如[1-4]:软件应用硬件平台、软件系统环境、软件应用及部署方式、软件开发模式等都处于不断的发展与变化之中,国外主要石油勘探应用软件都进行了应用环境的迁移与重要的版本升级,也一直在探索新的技术应用和软件服务方式。因此,开展地球物理软件技术发展趋势的分析与战略研究,有利于减少软件技术发展的盲目性,选准发展方向,实现地球物理技术的快速发展和广泛应用。
1 地球物理软件技术发展特征[2, 4]
信息技术发展突飞猛进,地球物理勘探技术及其应用软件的发展也是日新月异。归纳起来,地球物理软件技术发展表现出以下特征:先进性、开放性、一体化、自由化、网络化、并行化、可视化、标准化、智能化、普及化等。
■ 先进性
先进性主要表现在三个方面:①基于先进的信息技术基础和应用环境,如支持先进的网络、高性能计算和可视化环境;支持网络分布式计算和并行计算环境,尤其是集群并行计算环境;采用高性能三维可视化或虚拟现实技术实现交互、灵活、高效、沉浸式数据浏览、质量控制、交互分析、交互建模等功能。②采用先进的软件技术,如面向对象技术、并行计算技术、软件架构技术、组件技术、Web技术等。③支持和提供先进的应用功能和性能,支撑包括石油物探中地震采集设计、数据处理、分析解释、油藏描述等各种应用功能的集成。
■ 开放性
开放性通常包括开放的系统平台(软件开发与运行环境)、开放的用户界面、开放的数据结构和文件格式、开放的协议等。开放带来的好处是:没有人拥有它并控制它,业界将通过基于开放标准的具体实现竞争,竞争驱动创新,创新驱动用户的选择。开放带来完全的互操作性和跨平台特性。开放性的另一个重要表现是自由软件平台的出现,IA架构计算机系统和Linux操作系统已经成为地球物理应用软件的主流系统平台。
■ 一体化
“一体化或集成化”一般指:在系统平台中采用统一的数据模型和数据管理系统,共享统一地学数据库和地学模型,实现统一的系统管理(用户管理、工区和项目管理、软件管理),在统一的用户界面下实现对所有应用功能的访问。简而言之,一体化指数据管理的一体化、用户界面的一体化、工作流程的一体化、软件开发的一体化。
为实现石油勘探开发应用软件的一体化和标准化,由五大石油公司和石油软件公司等发起成立的POSC组织(Petrotechnical Open Software Corporation,现已更名为Petrotechnical Open Standard Corporation),于1990-1995年间制订了一系列的石油软件开发规范、标准和指南,推动了石油应用软件一体化和标准化的发展,其主要成果是标准化软件集成平台标准SIP,其中包括:基础计算机标准、用户界面风格指南、Epicentre勘探开发逻辑数据模型及数据交换方法、标准。但相关成果主要以规范、指南、逻辑模型等形式体现,而缺乏标准化的具体实现,因而宣称支持POSC的产品也互不兼容。POSC后致力于发展地学XML标准。
石油工业界有一个OpenSpirit联盟(后形成OpenSpirit公司),设计了一个独立于应用的软件集成平台,使得跨越石油勘探开发生命周期的不同应用软件可以做到即插即用式的集成,可以跨越异种平台实现数据的动态共享,实现多厂商应用和数据的互操作性能。它的GUI组件采用Java编写,以实现跨平台并支持基于Web的应用。但这种集成是外部包装、连接式的,而不是一个基于一体化公共数据库的,且只支持极有限的平台和数据服务器。
国际上,主要的一体化应用软件平台有Schlumberger的GeoFrame、Landmark的OpenWorks和Paradigm的EPOS等,这些平台上集成了丰富的综合解释和油藏描述软件,但除EPOS外尚未实现地震数据处理和综合分析解释功能的集成。在国内,中油油气勘探软件国家工程研究中心研发了GeoEast一体化平台,它以地震处理和解释一体化为目标。
■ 自由化
这里的“自由化”是指:在应用软件开发和应用中,大量采用可以免费、自由获得的标准化软件作为系统的主要开发和应用环境;在系统的基础平台和核心内容开发中,不采用个别厂商所拥有的集成开发环境和私有软件产品,这样可以最大限度地保证软件的长期发展不受个别厂商的约束和限制,保证了应用软件对硬件与软件环境的广泛兼容性。
自由软件运动的发展,为我们打破国外个别厂商对于操作系统和核心软件技术的垄断,发展具有自主知识产权的软件系统提供了良好的环境和机遇。在石油物探应用软件的发展中,被广泛应用的自由软件环境主要包括:Linux操作系统,GNU系列编译器,Xwindow二维图形开发环境,OpenGL三维图形开发环境,Qt用户界面开发环境,MPI并行计算开发环境,Java网络计算开发环境,MySQL、Postgre数据库管理系统等。Linux和MPI的发展,为集群计算技术的发展和广泛应用提供了有力的技术支撑。
■ 网络化
计算机网络技术在石油勘探开发中的应用得到不断的发展、普及和深入,成为石油工业的通信平台、信息发布平台、数据共享平台、管理平台、专业应用平台和业务流程工作平台,成为石油勘探开发的重要基础设施,支撑着石油勘探开发各个阶段和各个领域的技术工作和业务流程。网络化消除了应用系统访问的时间、空间、客户工作平台等的限制。网络化的主要表现为:(1)更高的网络带宽;(2)局域网的普及应用和广域网广泛应用;(3)应用软件对网络环境支持的增强,Web计算模型和B/S模式的普遍应用,应用软件和数据的集中式管理或分布式加集中式管理确保了系统和数据的安全性,方便了系统的维护和升级,降低了信息系统的总体拥有成本;(4)NAS、SAN、iSCSI等数据存储网络技术的广泛应用,勘探开发数据以集中管理模式进行管理;(5)以XML为代表的互联网标准的应用。
网络技术为实现全球性的网络化工作组工作方式提供了保证,新的工作方式密切了服务商、客户不同学科技术人员的协作,提高了工作效率,降低了成本。在地震处理系统中应用Web技术,特别是应用Web技术为客户通过互联网查询项目信息,已经成为各大地球物理服务商的共同做法。
许多石油软件公司和地学服务公司大量用Java语言开发地学应用软件。美国INT公司拥有很强的用于开发可视化软件的二维和三维图形工具包,推出了一套针对石油勘探开发应用软件开发的数据可视化Java工具—J/GeoToolkit,并在此基础上开发了基于Web