APP下载

插件式集成技术在数字油田系统建设中的应用

2013-09-21刘建涛李春雷杨河山

中国科技信息 2013年3期
关键词:油气田插件应用程序

刘建涛 李春雷 杨河山

胜利油田分公司地质科学研究院,山东东营 257015

引言

发在线、岩心发布系统、实验数据发布系统、开发GIS、油藏动态分析软件、开发决策支持系统、勘探决策支持系统等大量的特色软件,而且在各自的业务领域取得了较好的应用效果,但是,随着油田勘探开发业务水平的不断提高和信息化工作的不断深入,“跨学科的复合型人才”、“勘探开发一体化应用”等时髦词汇被推上日程,油田迫切希望以现有的应用软件为基础,以最小的投资解决勘探开发业务软件的应用集成问题。

目前,主流的集成解决方案是基于SOA思想的ESB平台架构,它以数据整合为基础,解决整个企业完整业务流程中的应用集成问题,投资成本高,见效周期长。插件式集成解决方案能充分利用现有的应用软件资源,即把应用软件改造成插件挂接到集成框架中,实现勘探开发一体化的应用集成,该解决方案综合成本低、实现周期短,而且集成框架具有较好的可扩展性,能够满足油田勘探开发综合研究迫切的一体化应用需求。

1 数字油气田的概念

国际上不同的学术团体、油公司对未来数字化油田的提法各异,而且随着技术的进步和应用的深入,数字油气田的概念也处于不断的发展之中,因此,没有一个确切的概念,根据胜利油田信息化建设的特点,将数字油气田定义为:以油田为研究对象,以计算机和高速网络为载体,以空间坐标信息为参考,将油田的生产和管理的多种数据进行高度融合,利用数字虚拟等技术对数据进行多维可视化表达,实现横向上涵盖整个油田地域,纵向上油田从地面到地下的多层次信息定位,提高油田总体数据查询和信息分析能力,并用集成技术实现功能完善的勘探开发一体化应用系统,以支持油田勘探开发核心业务的决策分析,提高数据利用率、数据查询效率和决策水平[2]。

2 数字油气田建设的主要内容[4][5][6]

数字油气田概念的定位决定了数字油气田建设的主要内容包括:数据集成、地下关键信息的虚拟、以平面GIS、三维可视化技术、数据查询为基础的信息综合展示、应用集成、实时监测、实时分析决策、实时优化等。这些建设内容涵盖了多源异构数据集成、业务软件应用集成、关键地质体的三维可视化、实时分析决策、智能化等关键技术;同时还包括了一项重要的应用成果:数字油气田应用系统,它是集成了通用查询、主题查询、定制查询、三维可视化导航查询等多种数据服务方式,以及开发方案编制、油藏动态分析、勘探井位部署、生产过程决策等油田勘探开发主体业务功能的综合型应用系统。

数字油气田建设是一项复杂的、长期的工程,需要分阶段、有步骤的进行,数字油气田技术的升级换代可以划分为三个层次:一是信息资源整合,实现灵活多样、快捷便利的数据综合服务;二是在攻克三维可视化、GIS导航、应用集成等关键技术的基础上,实现勘探开发一体化的业务应用;三是利用实时监测、实时分析决策、实时优化等高端技术,实现智能化数字油气田。

目前,胜利油田已建立了完善的数据存储和数据应用体系,并储备了信息资源整合、数据综合服务、三维可视化表示、GIS导航等关键技术,但各业务应用相对独立,导致勘探开发过程中的业务衔接不好,可见,胜利的数字油田建设正处于勘探开发业务应用集成的关键时期。

3 插件式集成解决方案

针对数字油气田建设过程中的集成应用需求,设计了插件式集成解决方案,它适合解决独立分散、业务功能专一的各种业务软件的集成问题,而且实现快、成本相对较低、可扩展性好。

3.1 插件式集成的基本原理[3]

插件是系统功能的表现,通常以dll或COM组件的形式存在。插件式集成是把独立、分散的应用程序或服务改造成一个独立的插件,集成框架预先留出接口,把插件挂接在集成框架上,这样,这些插件应用程序就能装载到同一个服务容器内,使它们能够在统一的界面平台上运行,用户体验就像是同一个应用系统里实现了不同功能,同时,通过插件通讯技术实现各个应用程序间的数据交换和消息通讯。插件式集成框架是实现系统集成功能的成熟的框架体系,它负责对插件提供公共的服务,并实现对插件的管理。

插件式集成技术采用的是面向对象和面向服务的思想,它为应用程序的功能扩展提供的无限的想象空间。一个应用程序,无论前期做了多少的市场调查,需求分析做的多么完美,也只是迎合一部分人的期望,甚至只能迎合一部分人的一部分期望,或者一部分人在某一时间的一部分期望。而插件式集成框架能在提供新功能时不必重新发布程序,人们也可以根据自己的需要来开发新的功能在插件集成框架中扩展来满足自己的业务功能需求。

3.2 插件式集成解决方案

插件式集成解决方案框图如图1所示,它主要包括两部分,一部分是插件式集成框架;另一部分是插件。服务端采用云技术实现对插件服务的管理;用户通过统一交互界面使用各种插件应用程序的功能,统一交互界面在表现形式上就是一个包装好的外壳,实现插件的装载、卸载,它的内部实现插件通讯的细节,并为插件提供界面风格、窗体样式等各种公共服务;外部应用程序通过实现插件接口功能、订阅和发布消息、设置启动界面等工作后编译成插件,即可装载到集成平台上,不用时可随时卸载[1]。

图1 插件集成解决方案框图

3.3 插件式集成框架

良好的插件式集成框架的特点是:插件的装载卸载方便、插件程序改造的代码改动少、能支持不同粒度的服务或应用的集成、功能重用性好、可扩展性好、安装部署容易。插件式集成框架解决了订立契约、加载插件、提供公共服务、管理插件、进行通讯等五个方面的技术问题。

(1)通过接口订立契约,使遵循规则的插件能够被加载

契约是集成框架与插件之间进行交互的依据和凭证,框架必须声明有什么功能可被插件使用,插件必须满足何种条件才能被加载。反之,插件必须要知道框架提供什么样的功能,才能将自己的功能融入到框架体系中。

通常使用接口或抽象类订立契约,在插件式集成框架中使用接口订立契约,因为集成框架是在满足服务的基础上来提供附加的插件功能,就这一点来说,接口更灵活,更容易扩展。

(2)动静态加载机制相结合实现插件的加载

静态插件加载机制是客户端应用开发人员将自己特色的服务(非共享式服务)采用配置文件添加插件应用,客户端在集成框架启动之前分解该XML配置文件,加载服务。下面是单井信息集成服务插件静态加载的配置代码。

通用的基础服务则由服务器统一提供,原理结构图如图2所示。在集成框架启动之前,桌面端门户的服务容器通过远程服务加载器interfaceConfigLoader和Dispatcher调用指定的信道ICommonicationChannel到通用服务器抽取服务信息。

插件动态加载机制是在程序集运行时加载插件,将插件下载到客户端指定的目录,集成框架启动时,搜索插件并实现加载。

(3)通过服务容器提供公共服务

应用程序向插件提供服务有两种方式,一种是直接在集成框架程序接口中声明属性或者方法,一种是将集成框架接口声明成一个服务容器。一般来说,明确的功能就在接口中直接声明成属性或者方法,否则将集成框架接口声明成一个服务容器,以方便插入更多的服务功能,提高应用程序的可扩展性。在集成框架中定义一个服务根容器,各个服务容器构成了一个服务容器树,每一个节点的服务都可以一直向上传递,直到根部,而每一个节点请求服务的时候,总是可以从根节点获得。这个根节点好比一个服务中心,它汇总了所有可提供的服务,当某个对象要请求服务时,只需要向根结点发送要获得的服务,根结点就可以把服务的对象传递给它。

(4)通过订阅、发布事件实现插件间通讯

集成框架为系统提供了插件间通讯的接口,插件模块可以使用BaseUseCase类提供的AddPublication(string idName,object publisher, string eventName)、AddSubscription(string idName, object subscriber, string methodName)方法来添加发布和订阅事件,采用RemovePublication(string idName,object publisher, string eventName)、RemoveSubscription(string idName,object subscriber, string methodName)移除发布和订阅事件。

通过在插件的SampleUseCase类中添加对InstallEvents()方法的重载将事件订阅到事件消息中,示例代码如下:

它是将E v e n t s命名空间下的R e c e i v e C a b E v e n t对象的ReceiveSignalsBullet方法订阅到了cab事件消息中。

为了使这个消息生效,在另一个插件中发布cab事件即可,示例代码如下:

图2 通用服务静态加载机制

图3 插件实现接口模型

当两个插件都添加到客户端框架时,框架会将插件中的事件进行挂接。框架会将SignalsBullet事件与SampleUseCase中的ReceiveSignalsBullet方法根据"cab"标识自动连接在一起,示例代码如下:

事件,执行ReceiveCabEvent(),.ReceiveSignalsBullet方法。

(5)FTP与数据表相结合的方式实现插件管理。

将所有的插件文件夹上传FTP服务器上,同时插件相关信息的描述存储在oracle数据表中,通过用户信息、插件信息、插件文件路径和插件名称的同步修改来实现插件的统一管理

3.4 实现插件

应用软件必须遵循一定的规则才能成为插件,并加载到集成框架中,这一过程即为插件的实现过程。由于集成框架封装了大量的功能代码,并抛出了插件接口、服务接口、通讯接口等,使得应用程序的插件代码改造变得非常容易,插件接口实现模型图如图3所示。只需在应用程序源代码中添加插件类,实现插件接口的加载、卸载和启动三个方法,即可实现插件;若要实现插件间的消息通讯,可以通过前面介绍的订阅和发布消息事件的方式来实现。

3.5 插件部署和使用管理

插件的部署采用的是ftp服务的方式。每个应用程序生产的插件是一个或多个dll程序,有的复杂的插件还包括一些xml、图片等资源文件,因此,一个特定功能的插件的全部资源保存在ftp的一个文件夹中,用户注册安装插件时,从ftp服务器上一次性下载该文件夹,客户端的集成框架启动时自动搜索可用的插件。

插件的使用管理结合集成系统的用户管理,根据用户的权限,客户端遵从插件申请、审核、注册安装、卸载等基本流程,服务器端实现对插件基本信息的管理。

4 插件式集成框架在数字油气田中的应用

根据数字油气田应用系统的业务应用需求,结合胜利油田现有应用系统的使用状况,利用插件式集成技术对开发井网部署、新区规划方案设计决策、新区产能建设方案决策、老区效果及潜力分析、油藏开发动态分析、探井生产运行管理、开发案例库、勘探井位部署、勘探生产过程决策等12个模块进行了集成。集成效果如图4、图5所示。

数字油气田应用系统实现了勘探开发信息综合展示和业务的一体化应用。数据综合服务提供了主题查询、用户定制查询、主题查询、三维导航查询等多种查询手段,提高了数据查询效率和灵活性。勘探开发决策支持功能涵盖了勘探井位部署、探井生产管理、勘探生产过程决策、开发井位部署、油田开发方案设计等油田的主体业务,能够满足勘探开发综合研究的业务应用需求,具有较好的推广应用前景。目前井网部署、新区规划方案决策、新区产能建设方案决策、老区开发效果分析、勘探井位部署、勘探生产过程决策、开发案例库等7个应用模块已在油田生产中实际应用,并初见成效。

图4 集成模块注册安装界面

图5 集成运行效果

5 结语

插件式集成框架能很好的解决分散独立的应用软件的集成问题,而且具有成本低、实现周期短、可扩展性好等优点,通过插件式集成解决方案在数字油气田建设中的实例应用所取得的效果,进一步表明插件式集成框架的合理性、有效性和实用性。此外,插件式集成框架本身与石油行业的特点无关,具有普遍适用性,能够推广应用到其它领域。

[1]祖兆研.基于插件的软件架构原理分析.中国科技论文在线

[2]严坤,倪桂强等.基于AOM和插件模式的轻量级框架研究.计算机技术与发展, 2010,(10)

[3]陈翥.插件体系结构软件的原理和实现.科技传播, 2010, (18)

[4]王权,杨斌,张万里.数字油田模式探讨

[5]龙颖波,何贞铭,彭李.数字油田理论探讨.信息系统工程,2010,(3)

[6]沈建林.数字新疆油田的建设实践.数字石油和化工,2008,(1)

猜你喜欢

油气田插件应用程序
油气田工程造价控制要点及其管理模式
涠洲油气田风能资源特征分析
智能油气田生产管理系统
自编插件完善App Inventor与乐高机器人通信
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
基于jQUerY的自定义插件开发
基于Revit MEP的插件制作探讨
我国产量最高的油气田长庆油田
插件体系结构软件的原理和实现