基于RESTFUL 架构的油田区块产量运行系统设计

2020-03-24 03:49胡宏涛
智能计算机与应用 2020年11期
关键词:气量架构数据库

胡宏涛,李 皎

(西安石油大学 计算机学院,西安 710065)

0 引言

伴随着国内油田开发的逐步深入,许多油田区块进入开发的中后期,开采难度不断上升,使得石油企业更加注重油田区块产量运行。RESTFUL Web Service 是一种常见的REST 的应用,遵守了REST风格的Web 服务。RESTFUL 架构是目前流行的一种互联网软件架构[1]。因此,开发基于RESTFUL架构的产量运行系统显得尤为迫切与必要。基于REST 模式的Web 服务完全抛弃了SOAP 协议框架,真正的将HTTP 协议作为应用协议,消息的传输直接建立在HTTP 应用协议之上。通过HTTP 定义的请求方法即可直接完成对资源的操作,极大的简化了Web 服务的设计和开发、服务请求和响应的过程。克服了基于SOAP 的WCF 局限性,可避免给开发人员带来复杂繁琐的配置操作[2]。RESTFUL 架构实现了在不同数据规模下,资源操作响应时间短、返回数据包小的优势。因此,开发基于RESTFUL 架构的油田区块产量运行设计,来提升油田区块产量,使油田企业管理者能够准确、方便地掌握油田区块产量的运行情况,提出合理的生产管理措施,从而达到增产提效的目的。

1 RESTFUL 架构

REST(Representational State Transfer,“表现层状态 转 移”)是一种新的软件架构规则[3]。则RESTFUL 架构就是一组协作的符合REST 原则的架构约束,而RESTFUL API 就是符合REST 约束的网络应用接口[4]。REST 将互联网上的一切实体定义为资源,每一个资源至少对应一个URI(统一资源定位符),每个URI 代表一类操作,使得Web 资源、服务具有可寻址性[5]。此外,客户端与服务器间的交互是无状态的,而是通过标准的HTTP 方法(GET、POST、PUT、DELETE 等)实现网络资源的处理。基于RESTFUL 的HTTP 服务资源操作流程如图1 所示。浏览器通过URI 向服务器发送请求,服务器依据指定的方法进行处理,并再次通过URI 返回相应数据格式的信息,根据数据源的变更来修改URI。

图1 基于RESTFUL 的HTTP 服务资源操作流程Fig.1 HTTP service resource operation process based on RESTFUL

2 系统设计

考虑到系统的稳定性、安全性及可维护性等特点[6],本系统采用分层架构开发。上层使用下层的各种服务,降低层与层之间的耦合度,以此保证开发过程各层相互独立,提高工作效率。整个系统的流程设计分为需求分析、功能设计、系统开发与部署及系统维护四个步骤,具体流程如图2 所示。

图2 面向RESTFUL Web 的产量运行系统设计流程Fig.2 Design process of RESTFUL Web-oriented production operation system

2.1 数据库逻辑结构设计

数据库是整个软件系统后台的核心,系统的所有数据都依赖于后台数据库系统,所以设计一套简单、完整的数据库表是数据库设计的重中之重。产量运行系统是由用户管理、井基本数据管理、井产量数据管理、井产量构成数据管理。本系统数据库使用MySQL 设计与开发工具,通过对产量运行系统数据流程分析,针对系统需求,部分数据表关系模型设计如下:

用户(账号,用户名,密码,身份,电话,性别)

井基本信息(井名,井号,井类别,设计人,设计单位,设计时间)

井产量数据(井号,井名,井类别,日产油量,日产水量,日产气量,月产油量,月产水量,月产气量,年产水量,年产油量,年产气量,年累计产油量,日累计产油量,月累计产油量,年累计产气量,月累计产气量,日累计产气量,年累计产水量,月累计产水量,日累计产水量)

产量构成计划数据信息(井号,井名,井类别,年月,计划措施井数,计划日增油量,计划年增油量,计划月增油量,计划月增气量,计划日增气量,计划年增气量,更新日期,数据来源)

分级统计数据信息(区块,井名,井类别,总井数,原产油量,单井产量统计,井组产量统计,区块产量统计,油田名称)

产量完成情况数据信息(井号,井名,井类别,总井数,开井数,日产油能力,日产水能力,日产气能力,月产水能力,月产气能力,月产油能力,年产油能力,年产水能力,年产气能力)

井类型(井号,井名,井别,总井数,开井数,备注)

2.2 系统架构

由于产量运行动态分析系统在需求上要求多终端和开放性,考虑到系统的稳定性、可扩展性和可移植性等特点,本次平台开发采用分布式框架,即用分层的方法对产量运行系统进行业务处理[7]。产量运行的系统架构如图3 所示。

图3 产量运行系统架构Fig.3 Production operation system architecture

根据系统的总体架构图可以发现,整个产量运行分析系统可分为3 层设计,分别为表示层(客户端)、RESTFUL 服务接口层和数据层。其中,表示层客户端主要为系统所有用户提供登陆和对应业务操作服务;RESTFUL 服务接口层主要是提供对于业务的支撑保障服务,服务于生产运行分析、产量构成分析、产量统计分析以及用户信息管理这4 大核心功能。数据层涵盖了用户的相关信息数据库、各种井产量数据库及产量构成数据库和分级统计数据库,为保持系统平稳运行提供数据支撑和保障。

2.3 系统功能设计

基于RESTFUL 架构的油田区块产量运行系统设计,为了解决传统的产量运行软件中出现的信息孤岛问题,使用服务理念即RESTFUL Web 的开发,研究和实现产量运行系统。对产量运行系统进行功能分析、模块划分和低耦合的服务封装,有针对性地建立基于RESTFUL Web 的产量运行系统。本系统主要分为4 个功能模块:生产运行模块、产量构成模块、分级统计模块和用户管理模块4 部分。功能模块结构如图4 所示。

(1)生产运行模块:根据产量数据表,实现不同种类井的产量运行曲线图,输出产量完成情况统计表。

(2)产量构成模块:实现不同方式的产量构成,分析其产量构成情况。

(3)分级统计模块:根据区块、井组、单井来进行产量统计,实现分级统计产量。

(4)用户管理模块:不同的用户分配不同的权限来管理系统,并满足不同的用户需求。

图4 模块功能图Fig.4 Module function diagram

3 系统工作原理

不同操作系统、各种终端的浏览器向提供Web服务的服务器发送HTTP 请求,RESTFUL API 利用OData(开放数据协议)将各种数据转换为标准化,再对HTTP 请求进行数据的增添、删除、修改、查找等处理[8]。例如URI(统一资源标志符)路由和Action 解析、路由选择和控制器选择等。采用实体对象映射模型(ORM)封装,从产量运行系统的数据库获取数据,并返回结果集(JSON、XML 形式表达),接着返回给请求源。系统原理如图5 所示。

图5 系统工作原理Fig.5 System working principle

4 结束语

本文根据油田的区块产量运行实际背景流程,使用基于RESTFUL Web 面向服务架构的新思想,利用计算机相关协议以及软件开发技术,展开对产量运行系统的软件架构设计和各种新型相关的开发技术的研究,旨在利用RESTFUL API、HTTP 协议以及RESTFUL 风格和.NET 开发技术等有效方法,设计一套基于RESTFUL 接口的Web 服务应用框架,帮助油田管理人员科学、高效、合理的进行产量分析,达到科学化的管理,来提升油田区块产量,准确及时地提出产量运行的合理化建议,实现增产提效的目的。

猜你喜欢
气量架构数据库
功能架构在电子电气架构开发中的应用和实践
做人要有气量,交友要有雅量
基于B/S架构的图书管理系统探究
气量可以学习吗
构建富有活力和效率的社会治理架构
王旦的气量
气量三层次
数据库
数据库
VoLTE时代智能网架构演进研究