地球物理软件技术发展趋势与战略研究
赵改善*
中国石油化工股份有限公司石油物探技术研究院,南京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的地震数据和测井曲线浏览程序。
Arco公司于1995年开发了一个基于Web的地震数据处理软件的原型系统—JavaSeis,以及ARCO地震性能测试软件集(ASBS)作为地震应用原型环境,其设计特征是灵活性和可扩展性。在该环境下,地震数据被作为并行化分布式对象来管理(采用传统的过程型编程语言,如C和Fortran),采用“拷贝模板继承”的方式开发新的处理功能。
Bevc等人[5]于2000年描述了基于互联网的地震处理系统(INSP)的特性。INSP系统由计算服务器、客户端及网络连接组成,计算服务器运行在高性能计算机上,主要执行处理工作流的启动和管理工作,处理工作流执行大计算量功能模块程序,这些模块可用计算效率高的语言(如C、Fortran)编写。客户端有两个主要模块:一个是信息浏览器/作业流建立器,用于建立和管理作业流;另一个是数据浏览器,用于地震数据、速度模型、道集等数据的显示及在数据集上的交互操作,如拾取、速度模型建立和编辑等。INSP客户-服务器(C/S)软件包全部用Java语言编写,只要有Java运行环境即可运行,软件包程序之间的网络通讯协议采用RMI(远程方法引用)实现。
■ 并行化
石油工业中对高性能计算需求最突出的是地震资料处理和油藏动态模拟。高性能计算的需求和计算技术的发展导致了计算机集群技术的发展和应用。相对其它并行计算机系统而言,计算机集群系统具有用户投资小、开发周期短、升级容易、扩展性好等特点,满足了石油工业对高性能计算的需求。集群计算机系统已经成为地震资料处理中心的标准配置[6]。
■ 可视化
可视化技术已经广泛应用于数据和处理测试的质量控制,数据分析解释,地质模型的建立和修正,多学科研究组的协同工作,勘探开发工程设计,以及客户和服务商之间的技术交流和决策支持。采用先进的可视化和虚拟现实技术,构建沉浸式虚拟环境工作屋,提供先进的数据浏览手段,为从数据中挖掘出有用信息创造了良好的条件,为地球物理、地质、油藏工程技术人员组成的多学科协同工作组成员之间的交流提供了有效的工具和创造性环境,特别有助于地学研究人员与投资、管理人员之间的交流和勘探决策,提高了工作效率,缩短了研究和勘探开发优化决策周期。过去十年中,交互工作站提高了个人生产率;今后十年中,可视化和虚拟现实沉浸式协作环境将有效地提高团队的工作效率。
■ 标准化
“标准化”思想表示:基础软件开发环境符合国际标准或行业标准,软件开发过程符合软件开发的标准化、规范化、工程化,所采用的技术符合相关的国家标准、国际标准和行业标准。标准化包括硬件设备的标准化、软件接口的标准化、数据格式的标准化等,标准化保证了信息系统和软件产品的兼容性和互操作性。
■ 智能化
智能化是现代信息技术应用的又一个特征。各种软计算技术广泛应用于专业技术应用和信息管理、决策支持中,如人工智能、专家系统、人工神经网络等技术,广泛应用于数据处理分析和决策支持中。在石油物探应用软件中,广泛应用了模式识别、人工神经网络、模拟退火、地质统计、支持向量机等软计算技术,这些技术的应用大大增强了数据处理和分析解释、设计和决策过程的智能化。
■ 普及化
普及化表现在石油勘探开发应用软件覆盖应用领域的普及化和应用人员的普及化两个方面。在石油工业中,当前信息技术已经广泛应用于包括专业技术应用、系统自动控制、日常办公、业务决策、财务管理、商业业务流程、客户关系管理等几乎所有方面,从高层管理人员,到技术人员、一般工作人员都依赖于信息系统来开展工作,而信息技术的应用都是通过应用软件来实现的。在石油物探技术应用中,软件已经广泛应用于工程设计、采集装备、采集质量监控、数据处理、综合解释、决策支持、理论研究、实验控制、数据管理、成果管理等方面。
2 地球物理技术发展对软件技术的需求
2.1 地球物理软件的应用支持范围
地球物理技术发展的多样性和应用的阶段性对地球物理软件的一体化(集成化)提出了更高的要求。从技术的多样性方面看,一体化要求地球物理软件不但要支持应用最为广泛的二维/三维、地面/海上地震勘探,而且要支持应用面不广或新发展起来的技术,如多波多分量地震、高密度(高精度)地震、井中地震(含VSP、井间地震、单井地震等)、微地震(被动源地震)甚至重磁电等非地震技术。目前的主流产品在这方面尚存在严重的不足。
从应用的阶段性来看,一体化要求地球物理软件应支持地球物理的整个工作流程,包括采集、处理、解释三个阶段。对于地震勘探应用软件而言,一体化支持的工作流程包括:地震采集工程设计、地震采集质量监控、地震数据处理(含常规处理与偏移成像处理)、地震构造解释、叠前/叠后地震反演处理与属性分析、储层预测与油藏描述等。
2.2 地球物理软件平台的功能需求
地球物理应用软件平台的开发,是实现地球物理软件对应用技术与工作流程一体化支持目标的前提和基础。地球物理软件平台的功能需求可以概括为以下诸方面:
(1)一体化地学数据模型(多学科共享数据库)与统一的数据管理工具;
(2)一体化软件开发平台,包括:数据平台,图形平台,可视化平台,通讯平台;
(3)一体化应用集成框架:
l 交互应用程序框架:包含架构组件和业务组件,支持快速交互应用程序开发和集成,支持分布式应用,支持功能的即插即用;
l 批处理模块程序框架:包含控制架构、开发模板、通用模块等,支持数据处理模块开发和集成,支持模块代码自动生成、编程、编译、调试、注册,支持大规模并行计算;
(4)应用程序运行方式:支持交互式运行、批处理运行,支持大规模并行化计算,支持基于网络的应用模式(C/S、B/S等);
(5)地学数据处理作业流程管理:支持作业流程的交互建立、编辑、保存、检查、提交等;
(6)批处理作业执行与运行监控:支持作业运行、监控、控制、异常处理、日志等;
(7)统一的系统主控程序或网络应用门户:支持子系统或实用工具扩充、软件配置、个性化设置、许可证管理等;
(8)系统资源配置与运行监控:支持可用资源监控、运行状态监控、故障报警、运行资源统计等,资源包括CPU、内存、磁盘存储、网络等;
(9)作业调度:支持多用户、多作业、多类型、多节点、并行系统作业调度,支持多种调度策略、作业记账与信息统计。
2.3 地球物理软件(平台)的性能需求[7]
随着勘探开发需求和地球物理技术的不断发展,未来十年内地震勘探项目的数据量将达到PB(1000TB即1015字节)级规模,计算量将达到1023(即100ZFlops)级规模,海量数据管理和巨量计算成为地球物理软件面临的两大主要挑战。但是,对于地球物理软件尤其是软件平台发展而言,其性能要求是多方面,主要包括:
(1)海量数据管理:支持1000TB(1PB,1015字节)级规模项目的数据管理,支持单数据集的多文件、分布式存储;单项目支持100万炮,每炮100万道,每道100000个样点;
(2)巨大并行计算:支持1000Tflops(Tflops:每秒万亿次浮点运算)级或万核级并行计算系统,支持多节点、多处理器、多核、GPU等多层次并行计算,应用支持1000-10000万核级并行;
(3)高性能可视化:支持1-10TB级规模数据的实时三维可视化;
(4)支持动态地学数据模型:时变、多版本;
(5)系统伸缩性:支持桌面机(台式机、笔记本机)、工作站(单CPU)、服务器(SMP)、大型并行计算系统、异构协同并行计算系统等多种运行环境;
(6)支持多用户应用:用户数大于100或更高;
(7)系统安全性:包括应用系统安全、数据安全、应用许可管理;
(8)系统可管理性:硬件系统资源与软件系统组成可配置;
(9)系统可靠性:运行稳定,可用性大于99.7%(每月故障时间小于2小时);
(10)系统可扩展性:
l 软件可扩充性:功能易于扩充,便于二次开发,支持第三方交互应用、批处理模块开发,支持即插即用;
l 硬件可扩展性:支持单机、多处理器服务器、大规模集群计算机系统,具有良好的并行计算效率;支持云计算环境,支持大规模资源动态配置;
(11)系统容错性:操作容错处理,大规模并行计算的容错处理、断点保护;
(12)系统易用性:操作简单、使用方便、错误检查;
(13)标准化:支持主流应用环境,支持标准化数据输入、数据输出和绘图;
(14)生命周期:大于10~15年。
3 值得关注的软件新技术
信息技术发展迅速,软件技术也日新月异。近期出现的一些新技术可能将对未来地球物理软件的发展产生深远的影响,如:多核并行计算技术、GPU计算技术、异构协同并行计算技术、SOA技术、虚拟化技术、云计算技术、NoSQL数据库技术、脚本语言技术等。
■ 多核并行计算技术[8]
长期以来,计算性能的提高主要得益于微处理器工作频率的提高,莫尔定律主宰着信息技术发展的步伐。然而,主频的提高带来的系统发热问题日趋突出,系统功耗不断上升。因此,近年来CPU技术的发展采取了新的思路,主频提高的步伐放慢甚至停止,而提高处理器并行处理能力逐步成为主要技术思路。为了保证微处理器芯片性能的持续提高,更重要的是为了降低芯片功耗和复杂性,目前主流的商用CPU设计已全面采用多线程多核体系结构,双核和四核已成为CPU的主流产品,六核和八核CPU产品也已经大规模批量生产,预计处理器核的持续增加(称为众核处理器)将成为未来一段时间CPU技术发展的主要特征。如何快速有效地开发多核并行计算程序,对于充分发挥多核处理器系统的性能至关重要,。
■ GPU计算技术[9]
充分利用GPU并行处理能力,可以将GPU作为计算加速器为基于CPU的通用计算平台提供高性能的科学计算能力补充,这样可以在现有通用计算平台的基础上实现高性能价格比的高性能计算解决方案。GPU计算技术与产品已经发展到一定的成熟阶段,GPU计算产品已达到很高的性能(1U的机架服务器可以提供4TFlops的计算能力)和较高的性能价格比,相应的软件开发环境(CUDA与OpenCL)也已经推出,从而使得GPU计算平台上的应用软件开发比可重构计算平台上的应用软件开发要容易得多,这一点使得GPU计算技术将可以更早地广泛应用于地球物理领域。地球物理计算的特点,决定了GPU在未来地球物理计算中将发挥越来越重要的作用,而推动这一工作进程的关键是软件开发与移植工作。
■ 异构协同并行计算技术[8,10]
在传统CPU由单核向多核(众核)发展的技术路线以外,当前活跃着几条新的技术路线,它们可能代表着未来高性能计算技术发展的重要方向。一个重要方向是基于FPGA(现场可编程门阵列)的可重构计算技术,另一个重要方向是基于GPU的通用计算技术即GPGPU技术。我们认为以CPU+GPGPU混合加速为特征的异构并行计算系统将成为未来十年高性能计算的主流产品。无论是国际上还是国内,代表当前最高计算水平的千万亿次计算机系统都是采用了这种异构并行计算系统架构。如何构建异构并行计算系统上的多层次并行计算软件开发框架和编程工具,促进大规模并行计算应用软件的开发与移植,是实现异构并行计算系统大规模普及应用的关键。
■ SOA技术[11]
SOA是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。面向服务架构(SOA)技术已经成为当前软件技术发展的一个热点。通过面向服务架构的应用部署和面向服务的软件开发,将具有特定功能的应用软件封装成服务,可以将该服务集成进业务流程和应用系统中去。SOA的关键是“服务”概念,服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其它成员。与传统的系统结构相比,SOA规定了资源间更为灵活的松散耦合关系。
SOA的基本特征包括:可从企业外部访问,随时可用,粗粒度的服务接口,分级,松散耦合,可重用的服务,标准化的服务接口,支持各种消息模式,精确定义的服务契约。
SOA具有编码灵活性、支持多种客户类型、易维护、更好的伸缩性、更高的可用性等优点。SOA将能够帮助我们站在一个新的高度理解企业级架构中各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。
■ 虚拟化技术[11]
虚拟化是资源的逻辑表示,它不受物理限制的约束。这里的资源可以是CPU、内存、存储、网络等硬件资源,也可以是各种软件环境,如操作系统、文件系统、应用程序等。虚拟化的主要目标是对包括基础设施、系统和软件等IT资源的表示、访问和管理进行简化,并为这些资源提供标准的接口来接收输入和提供输出。虚拟化从划分物理资源和逻辑资源的角度为系统管理员、软件开发者、服务提供者创造了丰富的解决方案。
虚拟化分基础设施虚拟化、系统虚拟化、软件虚拟化三大类型,而基础设施虚拟化包括网络虚拟化和存储虚拟化两类。
系统虚拟化的核心思想是使用虚拟化软件在一台物理机上虚拟出一台或多台虚拟机,提供硬件共享、统一管理、系统隔离等。系统虚拟化的最大价值体现在服务器虚拟化,可以有效提高资源利用率、应用兼容性、服务可用性,加速应用部署,动态调度资源,降低运行成本和能源消耗。系统虚拟化的另一应用是桌面虚拟化,同样可以在一个终端环境下运行多个不同的系统。桌面虚拟化将用户的桌面环境与其使用的终端设备解耦合,每个用户的桌面环境完整地保存在服务器上,用户可以用任何具有足够显示能力的兼容设备(如微机、智能手机、掌上PDA等)来访问和使用自己的桌面环境。通过桌面虚拟化,所有数据和认证都能够做到策略一致、统一管理,有效提高企业的信息安全级别,简化轻量级客户端架构。桌面虚拟化技术是瘦客户端系统部署的基础。
软件虚拟化包括应用虚拟化和高级语言虚拟化两种。应用虚拟化将应用程序和操作系统解耦合,为应用程序提供了一个虚拟的运行环境。当用户需要使用某种应用程序时,应用虚拟化服务器可以实时地将用户所需的程序组件以流的方式推送到客户端的应用虚拟化运行环境。虚拟化使应用可以运行在任何共享的计算资源上。
■ 云计算技术[11]
云计算是一种共享的网络交付信息服务的模式,云服务的使用者看到的只是服务本省,而不用关心相关基础设施的具体实现。云计算既指互联网上以服务形式提供的应用,也指在数据中心中提供这些服务的硬件和软件。在云计算中,硬件和软件都是资源并被封装成服务,这些资源在物理上分布式共享,但在逻辑上以单一整体的形式呈现,可以根据需要进行动态扩展和配置,用户可以通过互联网按需地访问和使用这些资源,按实际使用量付费,但无需管理这些资源。
从技术层面看,云计算的产生是芯片及硬件的飞速发展、虚拟化技术的成熟、SOA的广泛应用、软件即服务(SaaS)模式的流行、互联网技术的发展、Web 2.0技术的流行等六个方面原动力作用的结果。虚拟化技术是云计算中最关键、最核心的技术原动力,SOA为云中资源与服务的组织提供可行的方案,软件即服务是云计算的先行者,随处可用的互联网使得云计算中跨地域的资源共享和服务成为可能,Web 2.0提供了云计算的接入模式。
按服务类型,云计算可以分为三种类型,即基础设施云、平台云、应用云。这反映了云架构的基本层次,即典型云架构分基础设施层、平台层、应用层三个层次。云计算是一种革命性的计算模式,完成了从传统的、面向任务的单一计算模式向现代的、面向服务的多元计算模式的转变。云计算的出现,可以优化产业布局,推进专业分工,提升资源利用率,减少用户的初期投资,降低管理开销。
IBM公司于2010年推出了面向云环境的软件开发解决方案,包括“面向云计算的Rational软件交付服务”和“云环境下IBM智慧的业务开发与测试”,旨在加快企业应用的创建与交付。
■ NoSQL数据库技术[12,13]
NoSQL,意为反SQL运动,是一项全新的数据库革命性运动,NoSQL的拥护者提倡运用非关系型的数据存储。NoSQL是主要用于构建极大规模数据存储系统的存储方案,其中的主要代表有Google BigTable、HBase、Hypertable、Amazon Dynamo、CouchDB、MonogoDB等。目前大多数NoSQL数据库基于DHT(分布式散列表)模型,底层的数据模型可以看成是一个巨大的Hashtable(键/值存储)。NoSQL数据存储系统可以运行在数量巨大的普通机器上,数据经过分区和复制散布在大量的机器上,放松了数据一致性约束。著名的Map/Reduce分布式计算模型就是建立在这种数据存储系统上。
4 地球物理软件技术发展趋势[4,10,11,14]
地球物理软件技术的发展趋势,既受石油勘探开发需求和地球物理技术发展需求的制约,又受信息技术尤其是软件技术发展的影响;地球物理软件的发展,与其它领域应用软件的发展既有一定的共同特征,又有一定的特殊性。这里仅从宏观上而不是技术细节上来分析地球物理软件技术的发展趋势。
■ 集成化
集成化即一体化,已经成为近年来石油勘探开发应用软件发展的一个重要特征,只不过我们尚未实现预定的目标,未来一段时间内仍是重要的发展趋势之一。在系统平台中采用统一的数据模型和数据管理系统,共享统一地学数据库和油藏模型,实现统一的用户管理、工区和项目管理,在统一的用户界面下实现对所有应用功能的访问,实现勘探与开发阶段工作流程的一体化、数据处理和分析解释的一体化,实现支持面向油藏建模和油藏管理的多种油藏地球物理技术应用和油藏动态模拟等油藏开发技术的应用,以形成跨越不同阶段应用功能的无缝集成,而无需在不同的应用系统之间进行切换,无需在不同的应用系统之间进行数据传输和格式转换。简而言之,实现数据存储管理的一体化、用户界面的一体化、不同学科应用的一体化、工作流程的一体化、不同阶段业务工作的一体化,以及分布式计算资源、存储资源、输入输出资源、可视化资源管理的一体化,是一体化即集成化的未来发展目标。
■ 平台化
平台软件已经成为当前软件发展的一个重要方向,石油工业也不例外。“平台化”的要点是:充分考虑石油勘探开发中不同学科的应用人员对软件开发和应用的不同需求,既要满足不同专业的需求,又要满足开发人员和应用人员的需求。既要方便开发人员将该平台作为软件开发平台进行的专业应用系统的开发、功能增强二次开发,又要方便软件应用人员将该平台作为软件集成平台进行应用系统的集成应用。
平台化是发展大型应用软件系统的必然需要,平台化也要求我们采用先进的软件架构。基于先进的软件架构,地球物理应用软件平台可以采用软件组件技术以积木式构建的方式添加新的软件功能,扩展软件应用领域。平台化对软件系统稳定性、可靠性提出了较高的要求,更对软件的生命周期提出了更高的要求,要求软件设计具有较强的超前性和系统性,并在采用先进技术与成熟技术方面实现良好的平衡。
■ 协同化
在通信、数据存储、信息共享和应用集成的基础上,越来越多的企业通过网络来实现企业的业务流程重组和全球协同工作,从而明显改善了企业的快速响应能力,降低了企业的运营成本。在网络技术、数据管理技术、虚拟现实技术支持下实现多学科工作组的协同工作,在一个拟境环境下直观地、深入地、全面地进行勘探开发决策和方案设计,提高决策效率和决策水平。基于Web的网络计算模型,可以在异构、分布式系统环境下实现对勘探开发数据进行存取、处理、分析的协同工作框架,可以通过互联网访问远端数据、运行远端应用、使用远端资源、提供远程研究团队的知识共享和协同工作,密切了客户和服务商之间的合作关系,为多学科合作提供了便利,缩短了项目周期,加快了决策进程。
通过高速卫星数据网络、现代3G/4G通讯网络实现地震勘探数据采集点(采集船)与远程处理中心、客户之间的连接,使得客户可以在数据采集阶段对项目进展有实时而全面的了解和更强的控制,客户解释人员在采集阶段直接参与资料的质量控制有利于及时调整采集参数、提高采集数据的质量,也有利于缩短处理周期。现代网络和通信技术的发展为地震数据采集队(船)与数据处理中心、研究中心和客户的交流、数据传输提供了便利的手段,随着无线通信网络带宽的不断提高和商业化,有望实现“实时地震勘探”。
■ 网格化
地球物理勘探对高性能计算需求强劲,我们不仅需要一台台超高性能的计算机如高性能集群计算机系统来完成各自的数据处理和分析解释任务,同时也希望将不同地理位置上分布的、异构的多种计算资源通过高速网络连接起来,共同完成计算问题,以满足巨大计算任务的需求,同时也希望实现其它计算资源的共享和协同工作。石油工业需要应用网格计算技术来构建业务流程的基础设施,全面实现信息共享、数据共享、存储共享、计算资源共享、软件资源共享、知识共享和协同工作等。
在地球物理勘探中应用网格计算技术,可以带来以下应用效果和效益:提高现有资源的利用率,降低运作成本;使地震成像等高端技术实用化;缩短处理周期,提高处理质量;增加灵活性,产生新的服务模式;实现支持异地、分布式的数据处理、资料解释、可视化分析与设计、多学科决策等一系列远程协同工作甚至全球协同工作。石油勘探开发行业是一个高度依赖于信息技术的行业,网格将成为勘探开发行业应用的基础设施,形成服务于石油勘探开发业务的信息网格、数据网格、计算网格、知识网格和协同工作网格。根据行业的特点,我们预计对高性能计算需求最大的油气地震勘探领域将首先大规模应用网格计算技术,而且将首先建立起企业内部的应用网格系统。
当然,随着云计算技术的发展,云计算可能在继承与发展网格计算技术的基础上替代网格计算,成为未来提供的一种主流技术或应用模式,为地球物理软件的服务化提供技术基础。
■ 服务化
服务化可以是狭义的基于Web服务技术的应用服务化,也可以是广义的通过通用的、统一的应用门户注册和应用的应用服务化。云计算技术的发展,极大推动了服务化趋势。作为一种新兴的计算模式,云计算能够将各种各样的资源以服务的方式通过网络交付给用户,这些服务包括种类繁多的互联网应用、运行这些应用的平台以及虚拟化后的计算与存储资源。典型的云架构分三个层次,即基础设施层、平台层和应用层,它们对应着三种服务层次,它们是基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。
云计算技术的发展,使得一些新的商业营运模式和服务模式成为可能。如:通过IaaS提供高性能计算与存储资源,通过SaaS为地球物理数据处理和分析解释用户提供计算资源和应用软件资源的捆绑服务,用户可以按需使用、按使用付费,无需购置大规模软硬件设备;大型技术研究和服务机构可以构建地球物理云,提供面向技术开发、数据处理、解释用户的IaaS、PaaS、SaaS等服务;小型技术研究和服务机构可以租用IaaS和PaaS服务资源进行技术研究与软件开发,并为石油勘探开发用户提供特色技术的应用服务。
5 地球物理软件发展战略分析研究
从国际石油产业竞争形势来看,我们无法通过以引进为主来发展我国石油物探软件事业,以引进为主充满了风险。以我为主、引进为辅,是发展我国石油物探软件事业、长期支撑国内石油勘探开发的必然之路。同时,开拓海外已经成为中国石油工业资源战略的重要组成部分,而走出国门需要自主知识产权的核心技术与软件产品作为支撑,而目前国外相关企业和国家对我们设置了知识产权壁垒和技术障碍,影响了海外油气资源战略的顺利实施。因此,地球物理软件发展对于中国石油工业而言具有战略意义。
笔者认为,地球物理软件发展战略应包括管理战略、平台战略、技术战略、产品战略、人才战略等方面。
5.1 管理战略
■ 统一部署,各方联合,实施地球物理软件工程
在企业系统内部成立软件发展领导小组,对软件产品的规划、设计、开发、推广应用等工作进行审批、指导、协调和组织实施。以骨干单位为依托,联合相关单位专家成立软件规划设计小组,制定软件发展规划和产品研发计划,组织软件产品的设计。在统一规划、统一部署、统一组织、统一标准、统一设计的前提下,综合协调企业内部相关的软件开发力量,组织技术攻关和软件开发工作,加快软件产品发展,实现全系统的资源共享和联合。
■ 整体规划,分步实施
地球物理软件发展是一个长期的工作,应该按照“整体规划、分步实施”的原则进行。这样既可以保障基础软件平台及其应用软件的开发有序进行,又可以分期分批取得成果,加速成果的应用转化过程。“整体规划”意味着我们在技术方案设计时应尽量充分地考虑不同技术应用现在与未来对软件平台的功能和性能需求,合理设计系统的基本架构与基本组成、数据规范与接口标准、系列应用软件产品体系,明确软件平台和应用软件发展的总目标,确保软件系统的可扩充性,避免系统间出现不兼容而无法集成的不利局面。“分步实施”则强调应根据设定目标的技术成熟度、技术需求和市场需求的迫切程度、系统组成与开发内容之间的制约程度、人力资源投入和投资规模情况等条件逐步实施软件工程内容,确保整个开发工作的有序进行并不断取得可用的成果。
■ 掌握核心技术,加强联合,通过对外协作加快软件开发的进程
充分利用系统内外的技术和人力资源,是我们快速进行技术创新的有效途径之一。软件发展也应加大对外合作力度,充分利用外部资源,包括外部技术成果、外部人力资源,在完全掌握自主知识产权和源代码的前提下,通过技术咨询、合作开发、技术转移等多种形式加强与国内外相关研究机构、高等院校和企业的合作,这样可以弥补内部人力资源短缺和技术成果不配套等缺陷,加速软件开发进程,抓住有利时机,迅速转化技术成果,占领石油软件市场。但是,在开展对内对外技术协作和软件开发时,应牢牢把握核心技术和关键技术,避免由于核心技术和关键技术可能出现的意外导致对全局的影响。
■ 软件研发与推广应用并重
长期以来我们重软件开发、轻推广应用,重视软件新功能扩充而对软件实用性和易用性的完善关注较少。软件产品研发是软件发展过程中的一个环节,软件推广应用是另外一个重要环节。只有通过应用,才能体现软件的价值;也只有通过应用,才能发现软件产品存在的问题,实现软件版本升级。软件研发和推广应用是软件发展不可或缺、相互促进的两个方面。
■ 加强软件工程管理,强化知识产权保护
大型软件开发工作离不开软件工程管理,软件开发工作中应强化软件工程管理和质量控制,提高软件开发的规范化、标准化、工程化和商品化程度,提高软件开发的质量和效率,降低软件开发的成本。具体来说,加强软件工程管理主要应加强以下几个方面的管理和控制:需求分析与软件设计、软件开发工程监控、软件测试、软件文档管理、软件配置管理等。
软件成果的价值体现在其知识产权上,软件产品的市场推广应用需要进行可靠的知识产权保护,因此我们要切实加强软件开发过程中的知识产权保护工作。知识产权保护应重点抓好以下几个关键环节:关键设计文档的保密,软件平台源代码的保密,与软件许可证管理。
5.2 平台战略
作为石油大国和大型石油企业,我们迫切需要发展一个石油勘探开发一体化应用软件平台作为油气勘探开发数据处理、数据分析、综合解释、油藏描述、油藏动态管理等石油勘探开发领域的技术研发和集成平台,来支撑石油勘探开发技术的长期、可持续发展,在此基础上根据我国实际地质条件和勘探开发需求发展一系列有针对性的核心技术、关键技术和特色技术。
国内外所有大型地球物理软件系统都有自己的基础软件平台支撑,在统一基础软件平台支持下开发的应用软件系统具有更好的稳定性、可扩展性,在软件开发上具有更高的代码重用性、软件易维护性和更高的软件开发效率。
地震数据处理解释是石油勘探领域信息技术应用最早、最广泛的领域,它一方面高度依赖于高性能计算技术的发展,同时也高度依赖于地震处理方法技术及其承载实体—软件技术的发展。因此,地震数据处理解释软件平台的发展在石油勘探开发软件领域中具有及其重要的地位,对地球物理技术的发展具有重要的支撑、促进与推动作用。地震数据处理解释软件平台将成为石油物探技术发展、技术集成和软件产品开发的软件支撑平台,上游技术创新的技术支撑平台,并将提高中国地球物理技术创新能力。
5.3 技术战略
■ 需求牵引,技术推动
地球物理软件发展应遵循“需求牵引,技术推动”的方针,即以地球物理技术发展需求拉动软件的发展,以信息技术的发展来推动软件的发展。地球物理软件的发展必须紧密结合地球物理技术的发展特点和需求,同时必须准确把握信息技术的发展现状与发展方向。
■ 功能丰富,性能优越
地球物理软件必须具有丰富的功能、优越的性能,足以支撑地球物理专业工作流程,实现较高的工作效率。软件平台发展必须支撑各种地球物理应用功能,地震数据处理软件平台不但要满足常规地面地震、海上地震数据处理的需求,还要面向地球物理新技术的发展与应用,如地震叠前偏移成像技术、高密度单点地震技术、井中地球物理技术、多分量地震技术、时延地震技术等。软件平台设计与开发中要特别关注这些地球物理技术对数据管理、数据处理、数据分析的功能需求与性能需求,而且要考虑这些功能的综合应用。
■ 面向未来
软件平台及软件产品设计与开发,既要满足当前地球物理技术发展的需求,又要超前考虑地球物理技术的发展趋势,确保软件平台能够满足未来相当一段时间内地球物理技术发展的需求,实现软件的功能扩充与产品升级。
软件平台及软件产品设计与开发,既要考虑目前信息技术发展的水平,确保软件系统能够运行于当前主流软硬件环境上,充分利用先进的IT环境(包括高性能计算环境、可视化环境、存储环境、网络环境等);同时,还要预测信息技术的未来发展趋势,确保软件系统能够运行于未来的主流软硬件环境上,延长软件的生命周期。我们正处于信息技术突飞猛进的时代,把握信息技术未来发展方向对于软件系统架构的设计具有十分重要的作用。
■ 深入分析并广泛采用软件新技术
对于大量软件开发新技术,如多核并行计算技术、GPU计算技术、异构协同并行计算技术、SOA技术、虚拟化技术、云计算技术、NoSQL数据库技术、软件架构技术、持续集成技术、脚本语言技术等,我们深入分析,并广泛采用具有良好的发展前景、可能给我们带来效益和效率的新技术,以保证软件平台和产品的先进性和较长的生命周期。
■ 提升软件工程技术水平
在地球物理软件开发过程中,我们不但要采用先进的地球物理技术与软件开发技术,还要采用先进的软件工程技术,包括软件需求分析技术、系统设计技术、软件编程技术、软件测试技术等,以保证软件开发的周期和质量。抓住设计、集成与测试几个关键环节,实现对整个工程质量的控制。
5.4 产品战略
■ 软件平台建设与应用开发滚动式发展
软件平台建设与应用开发滚动式进行,以解决平台开发周期过长和应用开发需求迫切之间的矛盾,并通过这种滚动式开发检验、修正和完善平台的设计与开发,以满足应用开发对基础软件平台功能与性能的需求。同时,通过这种滚动式开发及早地分享软件平台开发的成果和回报。
■ “大而全”与“小而特”并举发展模式
从总的发展趋势来说,发展大型综合应用软件系统和小型特色软件产品是两个主要方向,同时还有可以集成于不同软件平台系统上的应用模块、插件开发。目前大型应用软件系统特别是地震资料处理软件系统一般都运行于Linux开放系统环境下(支持集群计算系统),小型特色软件系统特别是分析解释类软件运行于Windows系统环境下。未来这种局面将会被打破,一方面跨平台软件开发技术的成熟将使大多数应用软件产品可以运行于Linux、Windows等多种系统下,另一方面未来地球物理软件产品将分布式地运行于多种环境下。
■ 抓住重点,形成地球物理软件产品系列
在统一规划、软件平台研发的前提下,以中国石油勘探开发中面临的技术需求为导向,以对计算技术需求较为迫切和关键领域的需求作为突破口和研究开发重点,优先发展地震数据处理软件系统和综合油藏描述软件系统,并逐步形成涵盖地球物理正演模拟、地震采集工程设计、地震采集资料质量评价、地震数据处理、地震偏移成像、综合解释与油藏描述、重磁电数据处理解释等内容的地球物理软件产品系列。
5.5 人才战略
人才是软件发展的核心,软件人才队伍建设是决定软件发展成败的决定性因素。地球物理软件发展的人才战略包括以下几个主要方面:
1)建立一支结构合理、层次分明、专业配套、素质高的软件研发队伍;
2)培养既懂地球物理技术又懂软件技术的复合型人才,使其成为地球物理软件发展的骨干力量;
3)重视软件架构人才的培养,造就一批熟悉地球物理技术特点、满足地球物理软件发展需求的软件架构人才;
4)通过培训提高广大软件开发人员的并行计算软件开发技术水平,建立一支并行计算软件开发专家队伍,适应并行计算时代的人才需求。
6 结束语
1)地球物理软件是地球物理技术的重要载体和体现形式,加强地球物理软件发展是提升中国石油工业核心竞争力、中国石油企业走向国际的必然需要,地球物理软件发展是中国石油工业技术创新体系的重要组成部分。
2)地球物理软件的发展必须紧密结合地球物理技术的发展特点和需求,同时必须准确把握信息技术的发展现状与发展方向。地球物理软件的发展应遵循“需求牵引,技术推动”的方针,即以地球物理技术发展需求拉动软件的发展,以信息技术的发展来推动软件的发展。
3)我们应高度重视多核处理器、异构协同并行计算、虚拟化、云计算、SOA、瘦客户端等新技术对未来地球物理软件发展的影响,地球物理软件架构设计者对信息技术的发展方向应具有较高的远见和预测能力。
4)我们应高度重视面向未来地球物理软件开发人才队伍的建设,尤其是要注重培养既懂地球物理技术又懂软件技术的复合型人才、软件架构人才、并行计算软件开发人才,加强软件开发人员业务培训与知识更新,提高人才素质和技术水平。
参考文献
[1] 王宏琳,赵振文,林庆忠.油气勘探一体化软件体系结构[J],勘探地球物理进展,2003,26(3):161-166
[2] 王宏琳.计算机集群地震交互成像软件技—概念、系统结构、设计模式及Internet交互处理[J],勘探地球物理进展,2002,25(4):1-8
[3] 王宏琳.地球物理计算机的变革[J],勘探地球物理进展,2009,32(4):233-238
[4] 杨红霞,赵改善.21世纪的地震数据处理系统[J],石油物探,2001,40(4):125-140
[5] Bevc D, Popovici M, Biondi B.Will Internet seismic processing be the new paradigm for depth migration interpretation and visualization[J],First Break,2002,20(3):168-176
[6] 赵改善,包红林.集群计算技术及其在石油工业中的应用[J],石油物探,2001,40(3):118-126
[7] 赵改善.我们需要多大和多快的计算机?[J],勘探地球物理进展,2004,27(1):22-28
[8] 赵改善.可重构计算技术及其在地球物理中的应用前景[J],勘探地球物理进展,2007,30(4):309-316
[9] 赵改善.地球物理高性能计算的新选择:GPU计算技术[J],勘探地球物理进展,2007,30(5):399-404
[10] 赵改善.高性能计算在石油物探中的应用现状与展望[J],高性能计算发展与应用,2009,(4):19-23
[11] 虚拟化与云计算小组.虚拟化与云计算[M],北京:电子工业出版社,2010
[12] Ho Ricky.NoSQL的模式[J],程序员,2010,(1):95-99
[13] Ho Ricky.NoSQL数据库的查询处理[J],程序员,2010,(2):105-107
[14] 赵改善,李剑峰,王于静,等.网格计算技术及其在石油勘探开发中的应用前景[J],石油物探,2005,44(5):413-420