论文部分内容阅读
摘 要:Ocean是一个以加速勘探开发软件输出成果为目的的开放式API软件开发框架,为了使用户可以利用Ocean这一软件开发框架来自由地设计新的应用插件,是用户进行应用软件开发的工具。用户可以编制自己的软件加入Petrel平臺,定制自己的应用界面,使用工区的数据。
一、前言
Ocean是一个以加速勘探开发软件输出成果为目的、开放式API软件开发框架,为了使用户可以利用Ocean这一软件开发框架来自由地设计新的应用插件,是用户进行应用软件开发的工具。
二、Ocean技术特点
开放性:Ocean可以作为任何公司或单位的应用工具。开放性意味着客户和第三方可以使用Ocean界面构建应用软件,而且API(应用编程界面)与内部应用软件开发使用的API完全相同。
可扩展性:在Petrel功能基础上扩展自有算法和流程。
可持续性:始终聚焦在石油行业新技术发展的前沿 。
先进性:Ocean API是由C#语言编写的,这是由.Net开发环境所决定的,这种语言结合了Java语言的流行特性和.Net运行语言翻译程序的效率。
完整性:整合客户化的算法和数据与Petrel为一体。
及时性:把客户的思想及时转换成模块应用。
三、Ocean框架
Ocean框架结构包括三个元素:Ocean core(核心)、Ocean service(服务)、Ocean Petrel。
Ocean Core担任着构建软件底层的任务,它负责管理Ocean模块和注册服务,这种服务既包括配套程序预先载入的,也包含通过开发应用界面(API)动态增加的。Ocean core负责管理着配套程序所提供的数据源,以及被任一模块所定义的外部数据源。
Ocean Services 由多个独立应用单元组成,这些独立单元通过配套程序标准化形成功能模块。
Product family是Ocean应用的主程序,并为Ocean module(模块) 提供了运行环境,product family主要提供了以下资源:域对象及数据源、应用程序数据图示环境、所有应用程序的用户界面组件公共交互窗口。
应用模块能够连接所有的软件层以及.NET构架,并且应用模块通过Ocean core能够注册所连接软件层自身的服务并可应用其他模块所提供的服务。通过Ocean框架所开展的应用可按照类似的方式进行设计,但是要依赖于product family (配套程序)来开展和运行。
四、Petrel 数据域数据获取
通过Ocean 框架为Petrel提供的接口,应用程序可在下面五个域中得到数据:井筒(岩石与地质应用)、地震(地球物理应用)、形状(结构建模)、网格(几何模型)、仿真(油藏评价)。
五、Ocean与 Petrel 用户接口构建
Ocean 扩展Petrel 用户接口功能,为Petrel 开发应用界面提供以下支持:
窗口,支持增加自定义窗口功能;
渲染,对域对象在不同窗口中增加渲染功能;
交互,增加自定义窗口模式用于不同窗口之间的交互,实现在不同的窗口中选择对象进行操作;
菜单与工具栏,为Petrel 窗口增加新菜单或者扩展Petrel 菜单,为自定义工具增加新工具条,用自定义工具扩展Petrel工具条。
Petrel工程浏览器,在特殊层中的Petrel树结构增加自定义对象;在Petrel进程图和工作流程编辑器中增加进程和流程。
六、Ocean 模块
Ocean 模块是对product family(配套程序)的扩展,Plug-in程序员可编译类似Petrel的任一标准模块,这些模块可汇编集成,模块在plug-in中编译并提供它所参考模块的ID和支持信息,Plug-in由Petrel plug-in管理员在Petrel的帮助菜单的支持下进行安装,plug-in管理员读入pip扩展文件(Petrel plug-in安装包),并应用该文件定义plug-in及其模块,这些模块在Petrel启动时会被加载。
Ocean模块都有一个伴随着某种需求和限制而定义的生命周期,这种需求和限制可允许清除与product family(配套程序)的集成。Ocean模块的生命周期阶段有助于许可模块,并将Ocean初始化、集成到product family(配套程序)中,Ocean模块生命周期还可增加描述接口,并能够在模块卸载时去除窗口。
Ocean模块使用配套程序所提供的函数、Ocean Services、Ocean Core和th .NET架构,它也可以使用地防范程序和其他模块。
七、I-Module接口
一个Ocean模块实现I-Module接口,Petrel负责装载Ocean模块,I-Module在斯伦贝谢Ocean核心的命名空间中被定义。
接口定义5种模块循环方法,并从disposable中集成具体包括Construction (default constructor) 构造(默认构造函数)、Initialization (初始化)、Integration (集成)、Presentation integration(提供集成)、Disintegration(分解)、Disposal(处理)。
在产品启动阶段,Ocean core 将根据配套程序配置文件定义装载模块,Ocean core 调用默认构造函数实例化每一个模块,构造函数并用于初始化私有域,并提供模块所需要的任何资源
模块生命周期第二阶段是初始化方法,初始化的目的是根据Ocean Service Locator类对模块所提供的服务进行注册等级,当初始化完成,所有的Ocean模块都可使用所注册的服务。
集成方法最为关键Ocean所登记的服务在什么位置,这是由于所有的模块都要经初始化阶段,而在初始化阶段服务由Ocean登记注册,Service Locator类用来查询服务。
八、结论
Ocean软件通过在Petrel平台上直接创建或综合特殊的技术及工作流程,Ocean Framework与Petrel平台的对接,使用户可创建一流的工作流程,避免了多碎片式软件解决方案的缺陷。使用户都能够在熟悉的软件环境下应用新技术,加速项目完成。
参考文献:
[1]杰克逊.软件开发问题框架 [M].机械工业出版社,2005
[2]Richard Bennett.多功能开放式软件设计[J]. 油田新技术,2009,21(3 ):45-51
[3]http://www.slb-sis.com.cn/products-services/Ocean.aspx
一、前言
Ocean是一个以加速勘探开发软件输出成果为目的、开放式API软件开发框架,为了使用户可以利用Ocean这一软件开发框架来自由地设计新的应用插件,是用户进行应用软件开发的工具。
二、Ocean技术特点
开放性:Ocean可以作为任何公司或单位的应用工具。开放性意味着客户和第三方可以使用Ocean界面构建应用软件,而且API(应用编程界面)与内部应用软件开发使用的API完全相同。
可扩展性:在Petrel功能基础上扩展自有算法和流程。
可持续性:始终聚焦在石油行业新技术发展的前沿 。
先进性:Ocean API是由C#语言编写的,这是由.Net开发环境所决定的,这种语言结合了Java语言的流行特性和.Net运行语言翻译程序的效率。
完整性:整合客户化的算法和数据与Petrel为一体。
及时性:把客户的思想及时转换成模块应用。
三、Ocean框架
Ocean框架结构包括三个元素:Ocean core(核心)、Ocean service(服务)、Ocean Petrel。
Ocean Core担任着构建软件底层的任务,它负责管理Ocean模块和注册服务,这种服务既包括配套程序预先载入的,也包含通过开发应用界面(API)动态增加的。Ocean core负责管理着配套程序所提供的数据源,以及被任一模块所定义的外部数据源。
Ocean Services 由多个独立应用单元组成,这些独立单元通过配套程序标准化形成功能模块。
Product family是Ocean应用的主程序,并为Ocean module(模块) 提供了运行环境,product family主要提供了以下资源:域对象及数据源、应用程序数据图示环境、所有应用程序的用户界面组件公共交互窗口。
应用模块能够连接所有的软件层以及.NET构架,并且应用模块通过Ocean core能够注册所连接软件层自身的服务并可应用其他模块所提供的服务。通过Ocean框架所开展的应用可按照类似的方式进行设计,但是要依赖于product family (配套程序)来开展和运行。
四、Petrel 数据域数据获取
通过Ocean 框架为Petrel提供的接口,应用程序可在下面五个域中得到数据:井筒(岩石与地质应用)、地震(地球物理应用)、形状(结构建模)、网格(几何模型)、仿真(油藏评价)。
五、Ocean与 Petrel 用户接口构建
Ocean 扩展Petrel 用户接口功能,为Petrel 开发应用界面提供以下支持:
窗口,支持增加自定义窗口功能;
渲染,对域对象在不同窗口中增加渲染功能;
交互,增加自定义窗口模式用于不同窗口之间的交互,实现在不同的窗口中选择对象进行操作;
菜单与工具栏,为Petrel 窗口增加新菜单或者扩展Petrel 菜单,为自定义工具增加新工具条,用自定义工具扩展Petrel工具条。
Petrel工程浏览器,在特殊层中的Petrel树结构增加自定义对象;在Petrel进程图和工作流程编辑器中增加进程和流程。
六、Ocean 模块
Ocean 模块是对product family(配套程序)的扩展,Plug-in程序员可编译类似Petrel的任一标准模块,这些模块可汇编集成,模块在plug-in中编译并提供它所参考模块的ID和支持信息,Plug-in由Petrel plug-in管理员在Petrel的帮助菜单的支持下进行安装,plug-in管理员读入pip扩展文件(Petrel plug-in安装包),并应用该文件定义plug-in及其模块,这些模块在Petrel启动时会被加载。
Ocean模块都有一个伴随着某种需求和限制而定义的生命周期,这种需求和限制可允许清除与product family(配套程序)的集成。Ocean模块的生命周期阶段有助于许可模块,并将Ocean初始化、集成到product family(配套程序)中,Ocean模块生命周期还可增加描述接口,并能够在模块卸载时去除窗口。
Ocean模块使用配套程序所提供的函数、Ocean Services、Ocean Core和th .NET架构,它也可以使用地防范程序和其他模块。
七、I-Module接口
一个Ocean模块实现I-Module接口,Petrel负责装载Ocean模块,I-Module在斯伦贝谢Ocean核心的命名空间中被定义。
接口定义5种模块循环方法,并从disposable中集成具体包括Construction (default constructor) 构造(默认构造函数)、Initialization (初始化)、Integration (集成)、Presentation integration(提供集成)、Disintegration(分解)、Disposal(处理)。
在产品启动阶段,Ocean core 将根据配套程序配置文件定义装载模块,Ocean core 调用默认构造函数实例化每一个模块,构造函数并用于初始化私有域,并提供模块所需要的任何资源
模块生命周期第二阶段是初始化方法,初始化的目的是根据Ocean Service Locator类对模块所提供的服务进行注册等级,当初始化完成,所有的Ocean模块都可使用所注册的服务。
集成方法最为关键Ocean所登记的服务在什么位置,这是由于所有的模块都要经初始化阶段,而在初始化阶段服务由Ocean登记注册,Service Locator类用来查询服务。
八、结论
Ocean软件通过在Petrel平台上直接创建或综合特殊的技术及工作流程,Ocean Framework与Petrel平台的对接,使用户可创建一流的工作流程,避免了多碎片式软件解决方案的缺陷。使用户都能够在熟悉的软件环境下应用新技术,加速项目完成。
参考文献:
[1]杰克逊.软件开发问题框架 [M].机械工业出版社,2005
[2]Richard Bennett.多功能开放式软件设计[J]. 油田新技术,2009,21(3 ):45-51
[3]http://www.slb-sis.com.cn/products-services/Ocean.aspx