基于中油即时通信的钻井数据推送平台设计开发
王重云①②
①中国石油集团录井技术研发中心
②中国石油集团长城钻探工程有限公司录井公司

作者简介:王重云 高级工程师,1986年生,2013年毕业于东北石油大学控制理论与控制工程专业,硕士学位,现在中国石油集团长城钻探工程有限公司录井公司从事软件开发工作。通信地址:124010 辽宁省盘锦市兴隆台区石油大街77号。电话:(0427)7806806。E-mail:397626108@qq.com

摘要

为降低钻井现场作业人员数据汇报工作量,规范数据汇报过程,设计开发了基于中油即时通信的钻井数据推送平台。通过对业务现状和需求进行分析,明确以中油即时通信作为推送渠道,确定了推送内容和推送策略,基于.NET框架开发了钻井数据推送平台软件并应用于生产数据推送。实践表明,利用中油即时通信进行数据推送与人工数据汇报相比,具有自动化程度高、数据更加安全的特点,有助于提升数据汇报工作效率和企业的信息化管理水平。

关键词: 软件开发; 中油即时通信; .NET框架; 钻井数据; 数据推送
中图分类号:TE132.1 文献标志码:A
Design and development of drilling data push platform based on CNPC Instant Messenger
WANG Zhongyun①②
①Mud Logging Technology Research and Development Center, CNPC, Panjin, Liaoning 124010, China
②GWDC Mud Logging Company, CNPC, Panjin, Liaoning 124010, China
Abstract

In order to reduce the workload of data reporting for drilling site operators and standardize the data reporting process, a drilling data push platform based on CNPC Instant Messenger has been designed and developed. By analyzing the current business status and demands, it clearly takes CNPC Instant Messenger as the push channel, and determines the push content and push strategy. The drilling data push platform software is developed based on .NET framework and applied to production data push. The practice has shown that using CNPC Instant Messenger for data push has the characteristics of high automation and safer data compared to manual data reporting, which helps to improve the work efficiency of data reporting and the level of enterprise informatization management.

Keyword: software development; CNPC Instant Messenger; .NET framework; drilling data; data push
0 引言

钻井数据是在石油与天然气钻井设计和实钻阶段产生的重要生产数据,广义上由来自钻井、定向井、钻井液等多个专业的数据共同组成,可以分为基础数据、日报数据和实时数据3部分。这些数据来自生产一线,且由各专业自行填报,因此具有即时性高、种类齐全和内容详细的特点,是钻探活动中最为可靠的数据来源,不仅钻井公司,基层项目部、相关专业公司、甲方单位以及第三方作业承包商等也需要这些数据。目前,长城钻探工程有限公司的钻井数据主要由现场作业人员在中国石油工程作业智能支持系统(EISS系统)的专业子系统中填报,再通过数据同步软件上传至EISS系统数据库,就可以在EISS系统的网页上查看。由于子系统无法直接下载数据以及有些人员没有EISS系统权限等原因,导致各专业无法看到其他专业填报的数据,每日还需要井队技术员人工收集各专业的数据,汇总后通过微信、QQ和钉钉等通信工具向外发送,而且经常有其他人员打电话向技术员索要数据,每日完成各种生产汇报消耗了技术员大量的时间和精力。另外,钻井数据属于企业的重要信息,应该通过受控渠道向有关人员提供。因此,钻井公司提出,希望录井公司能够开发一套软件,实现以合规方式向特定人员每日推送关注井的钻井数据,解决人工完成各类汇报带来的工作量大的问题。

1 需求分析与功能设计

钻井公司提出的需求涉及3个方面的具体问题:(1)推送渠道问题, 即数据用什么方式推送给接收者; (2)推送内容问题, 需要推送哪些数据; (3)推送策略问题, 需要确定哪些井推送给哪些人, 或者在什么时间进行推送等, 也就是需要配置哪些推送参数。

1.1 推送渠道

目前, 企业常用的信息推送渠道主要有微信、企业微信、APP(应用程序)、短信和邮件等[1, 2, 3]。其中微信的用户数量众多, 具有推送成本低廉、支持图文等优势, 因而微信推送方式的应用最为广泛。企业微信推送的优点与微信相同, 但由于企业微信是企业内部的通信工具, 使用起来具有一定的局限性, 其推送范围仅限企业内部成员。APP推送基于自主开发软件, 因此其推送范围、频率和内容形式可以完全不受限制, 但开发成本相对较高, 需要适用于不同操作系统且推送服务能在系统后台保持运行, 这种推送方式适用于企业APP已经得到广泛使用的场合, 可以在此基础上进行推送功能的开发。短信推送可以实现无需用户操作, 只要登记手机号码就可以推送, 缺点是字数限制严格且需支付推送费用。邮件推送的内容可以灵活定义, 信息容量大, 也没有接收范围限制, 但由于部分邮件平台缺乏及时通知提醒的功能, 以及国内用户不习惯或者没条件经常查看邮件等原因, 推送效果相较前几种方式要差一些。

考虑到企业内部使用中油即时通信(企业微信的私有部署版本)作为即时通信工具的实际情况, 以及有关部门对生产数据安全性的管理要求、开发使用成本和消息推送实时性等因素, 经过综合比较几种推送方式的优缺点, 项目组最终确定选用中油即时通信作为钻井数据的推送渠道。

1.2 推送内容

中油即时通信推送的单条消息最大允许长度为2 048个字节, 且必须是UTF8编码, 在该编码下每个汉字占用3个字节长度, 也就意味着单条消息的汉字最多有682个, 如果超过这个长度, 后面的内容会被自动截断。而钻井过程中涉及的工程参数较多, 各钻井队的汇报内容又并不完全一致, 因此需要与钻井公司沟通, 汇总各公司提交的参数, 去除其中的非必要参数, 将有限的字数留给关键参数使用。经过讨论, 项目组确定了在单条消息中保留各类钻井数据参数95个, 详细参数清单如表1所示。

表1 单条推送消息中包含的钻井参数清单
1.3 推送策略

结合企业的生产运行情况, 项目组设计了两种数据推送策略:(1)静态策略, 由推送平台每日固定向各钻井公司的EISC(工程作业智能支持中心)人员推送本公司施工井的数据, 井的数量根据施工情况自动选择, 只要1口井在推送当天产生日报就纳入推送范围, 也就是向固定的几个用户批量推送若干口井的数据; (2)动态策略, 可以在推送平台后台配置向谁推送哪些井的数据, 用于向关注某井数据的用户进行推送[4]。两种策略的推送时间均可配置[5], 一般配置成在现场数据上传完成后, 各公司汇总生产日报前进行推送。

2 平台架构设计

钻井数据推送平台由1个数据库和模板配置程序、钻井数据提取程序以及后台推送服务程序3个应用程序组成, 其基本运行流程如图1所示。在数据库中定义了3张表(应用表、模板表、任务表)和1个视图(钻井数据视图), 分别用于记录应用、模板、任务信息和提供钻井数据的组合查询结果。应用表记录了应用名称、应用简称、应用秘钥以及合法IP列表等; 模板表记录了模板名称、模板文本、模板SQL等; 任务表记录了任务名称、接收用户、是否启用、绑定数据等, 且任务表绑定了应用表和模板表。钻井数据视图提供了1个包含当日需要推送井的全部钻井参数且顺序与模板相符的查询结果。

图1 钻井数据推送平台运行流程

2.1 模板配置程序

考虑到其他应用系统也有利用中油即时通信推送信息的需求, 项目组为推送平台设计了多应用支持功能[6]。平台管理员可以在推送平台中注册和管理多个应用, 并给每个应用分配身份凭据, 各应用凭借身份凭据登录后台推送服务程序推送自身数据, 实现了平台对多个应用同时推送数据的支持。下文提到的数据提取程序, 也需要在模板配置程序中注册后方可进行推送。

模板配置程序是一个可视化的管理和配置工具, 其主要包括6项功能。

2.1.1 数据源配置

配置后面提取数据时用到的数据源, 记录各数据库的IP、端口、数据库名、用户名和密码等信息。

2.1.2 应用注册

将需要推送消息的每个应用信息录入, 用于后台推送服务鉴权。

2.1.3 模板配置

模板配置, 主要包括模板文本和生成数据的模板SQL。

2.1.4 任务配置

记录推送任务来自哪个应用, 使用哪个模板和数据(指定井号), 以及推送给谁。

2.1.5 数据测试

平台推送的单条消息由模板文本和数据两部分合并组成, 默认模板文本是包含了全部95个参数描述及参数定位符的字符串, 模板SQL是执行后能够返回与当前模板参数顺序一致的全部数据的SQL语句。选中一个模板并输入井号, 程序以格式化字符串方式生成合并后的单条消息。以通用钻井数据推送模板为例, 其格式为“ 【{0}】{1}队/n井号:{2}/n区块:{3}/n……” , 模板SQL执行后返回的数据依次为EISS、79999、科探X、长庆区块……, 因此合并后的单条消息为“ 【EISS】79999队/n井号:科探X/n区块:长庆区块/n……” , 其中“ /n” 表示换行符。数据测试功能用于确认平台生成的待推送消息是否正确, 可以排查井号录入是否正确、是否存在单井空数据或单井多数据等问题。

2.1.6 接口测试

接口测试, 程序可以直接调用中油即时通信的后台接口, 向用户反馈接口工作是否正常、返回值是否正确等信息。

2.2 钻井数据提取程序

钻井数据提取程序需要实现两个功能。(1)定时激活推送任务, 根据生产需要, 定时任务划分为两种:一种是每日向各钻井公司EISC人员的推送, 每日推送一次, 东部区域设置为早上6点, 西部区域为早上8点; 另一种是向关注单井生产情况的有关人员的推送, 每日推送两次, 时间为早6点和晚6点。(2)根据任务关联的模板配置提取模板和数据, 合并为单条消息并通过后台推送服务程序推送出去。

2.3 后台推送服务程序

后台推送服务程序由鉴权模块和推送模块两部分组成。鉴权模块的作用有4项:(1)判断来源应用是否合法, 如果应用向网站提交的应用ID和应用秘钥在数据库中存在, 且应用IP在白名单中, 则视为应用合法, 否则不合法; (2)颁发与鉴别身份, 合法应用登录后获取认证Token, 推送消息时将Token一起提交给数据推送程序, 如果Token有效则允许推送; (3)权限控制, 通过在颁发Token时写入权限信息, 允许应用调用不同权限的API, 例如除了推送信息, 还可以申请获取用户列表等数据; (4)日志记录, 对于所有通过数据推送程序发出的消息, 程序都会进行记录, 以便于某些情况下进行数据追查。推送模块的主要功能有两个:一个是利用corpid和corpsecret参数从中油即时通信的服务API接口获取其Token, 另一个是利用Token与中油即时通信服务互动获取或推送数据[7, 8]。数据推送程序调用的部分中油即时通信API如表2所示。

表2 数据推送程序调用的部分中油即时通信API
3 平台功能的实现与应用
3.1 实现技术

平台数据库采用Oracle, 除了存储前面提到的3张表之外, 还用于存储操作记录和历史推送消息等数据。3个应用程序均采用C#语言基于Windows系统和.NET框架开发。模板配置程序是一个Windows窗体程序, 如图2所示, 除了普通的文本消息外, 用户还可以发送图片、语音、视频、文件和卡片等各种不同类型的消息。数据提取程序是一个命令行程序, 程序内部集成了开源作业调度框架Quartz.NET, 其作用是实现定时触发推送任务。该框架支持以cron表达式(一种用于描述定时任务执行时间的字符串格式)形式配置作业启动时间, 到时程序根据任务配置生成单条消息并与接收用户信息一起发给后台推送服务程序。后台推送服务程序是一个WebAPI类型的网站, 数据提取程序以POST方式向网站接口发送JSON数据, 网站收到数据后首先校验身份, 通过验证后方调用中油即时通信API将消息发给用户。

图2 模板配置程序主界面

3.2 应用效果

中油即时通信的钻井数据推送平台自投入试运行以来, 累计推送了76口井的数据, 发出消息5 158条, 消息的显示样式如图3所示, 具体应用效果体现在3个方面。

图3 中油即时通信里显示的钻井数据消息

(1)减轻了井队技术员的工作负担。为了从技术上减少各方人员向技术员索要数据的必要性, 项目组在推送钻井参数的选择上与钻井公司进行了反复沟通, 当前的参数列表基本可满足各方对一线生产数据的需求。同时项目组也对EISS专业子系统中的数据采集项进行了调整, 实现了对参数列表中所有参数的全覆盖。也就是说, 只要技术员把现场数据填写完整, 这些数据就可以出现在后面推送的消息中, 技术员不必再手动给各方编辑发送不同参数项的消息了。

(2)促进合规化管理, 降低资料外泄风险。在当今这个高度信息化的时代, 保障企业数据安全的重要性不言而喻。利用中油即时通信推送钻井数据, 实现了将数据留存在公司内部通信平台的同时, 可以进一步控制特定井信息的接收人员, 能够有效实现对数据的管控, 对于探井、高风险井和特殊矿藏井等重点井来说具有重要的意义。

(3)推送功能开放式设计, 允许接入多个系统, 满足其他平台实时推送数据的需求。平台在设计之初, 已考虑到后续的多应用接入问题, 因此设计了独立的后台推送服务程序, 其他应用只需简单开发接口调用功能并申请接入, 即可在中油即时通信上发送消息。目前除了EISS系统以外, 公司已有纪检平台、协同工作平台和审计系统等6个应用系统先后接入推送服务程序, 实现了业务数据、待办事项和流程提醒等各类消息在中油即时通信上发送。

4 结束语

中油即时通信作为集团公司内部承载百万用户的高效沟通工具, 在员工覆盖广度、安全性和便利性等方面具有得天独厚的优势。随着中油即时通信开放接口数量以及集成生产经营和协同办公应用数量的增加, 其在促进团队高效协作、提升移动办公水平方面也发挥着越来越重要的作用。基于中油即时通信的钻井数据推送平台首次实现了企业钻井数据的定制化和自动化推送, 也为后续其他应用系统与中油即时通信结合开发、发挥其优势功能提供了一个思路。同时, 平台的应用也推进了企业生产管理从“ 向人要数据” 到“ 向系统要数据” 模式的转变, 提升了企业的信息化管理水平。

编辑 王丙寅

参考文献
[1] 张世栋, 杨皆平. 本科教学环节消息主动推送研究[J]. 大学教育, 2022(6): 255-257.
ZHANG Shidong, YANG Jieping. Study on message active push in undergraduate teaching link[J]. University Education, 2022(6): 255-257. [本文引用:1]
[2] 曹茜林. 基于Android App的钻井数据监测平台的研究与设计[D]. 西安: 西安石油大学, 2021.
CAO Xilin. Research and design of drilling data monitoring platform based on Android App[D]. Xi’an: Xi’an Shiyou University, 2021. [本文引用:1]
[3] 谭理珂, 张晓光. 基于Zabbix的电力信息服务器告警及巡检一体化系统设计[J]. 水电站机电技术, 2022, 45(4): 87-89.
TAN Like, ZHANG Xiaoguang. Design of integrated warning and tours of inspection system of power information server based on Zabbix[J]. Mechanical & Electrical Technique of Hydropower Station, 2022, 45(4): 87-89. [本文引用:1]
[4] 袁铭, 蔡海超, 高翔. 数据治理技术在长庆钻井公司中的应用探析[J]. 电脑知识与技术, 2023, 19(28): 100-102.
YUAN Ming, CAI Haichao, GAO Xiang. Analysis on the application of data governance technology in Changqing Drilling Company[J]. Computer Knowledge and Technology, 2023, 19(28): 100-102. [本文引用:1]
[5] 叶飏, 宋世杰. 基于企业微信的智慧矿山生产信息推送系统[J]. 现代矿业, 2022, 38(4): 249-252.
YE Yang, SONG Shijie. Design and implementation of intelligent mine production push system based on Enterprise WeChat[J]. Modern Mining, 2022, 38(4): 249-252. [本文引用:1]
[6] 赵志强. 即时通讯平台的消息分级策略在企业中的应用[J]. 中国科技信息, 2021(21): 31-32.
ZHAO Zhiqiang. Application of the message grading strategy of the Instant Messaging platform in enterprises[J]. China Science and Technology Information, 2021(21): 31-32. [本文引用:1]
[7] 黄有福, 黄佩珊. 基于企业微信的信息推荐系统的设计与实现[J]. 信息与电脑, 2020, 32(23): 84-85.
HUANG Youfu, HUANG Peishan. Design and implementation of information recommendation system based on Enterprise WeChat[J]. Information & Computer, 2020, 32(23): 84-85. [本文引用:1]
[8] 崔超. 基于企业微信消息推送系统的设计与实现[J]. 信息通信技术与政策, 2019, 45(7): 91-93.
CUI Chao. Design and implementation of Enterprise WeChat Message Push System[J]. Information and Communications Technology and Policy, 2019, 45(7): 91-93. [本文引用:1]