一种基于HTTP协议的井下数据搜索引擎及交互系统的制作方法

文档序号:23004240发布日期:2020-11-20 11:53阅读:86来源:国知局
一种基于HTTP协议的井下数据搜索引擎及交互系统的制作方法

本发明涉及石油测井技术领域,特别涉及一种基于http协议的井下数据搜索引擎及交互系统。



背景技术:

随着石油测井技术的深入发展,在油田勘探过程中对井下数据处理的准确性、可靠性提出了更高的要求。由于井下环境空气湿度大、空气中浮游杂质含量高、腐蚀性气体含量高等特点,集成数据检索与井下数据调优,实现数据可视化是一个技术难点。



技术实现要素:

为了克服上述现有技术的不足,本发明的目的在于提供一种基于http协议的井下数据搜索引擎及交互系统,有效对井下数据进行性能分析、提升可靠性评估的准确性。

为了实现上述目的,本发明采用的技术方案是:

一种基于http协议的井下数据搜索引擎及交互系统,包括守护进程模块,守护进程模块与web服务器模块相连,web服务器模块分别与主页面显示模块、用户登录模块、数据检索模块、内容模块相连。

所述web服务器模块用于实现在程序运行后,作为主进程接收来自网页客户端的http请求,并分析其请求报文,返回所对应的响应报文;

所述主页面显示模块用于实现用户在网页端输入指定ip地址,web服务器接收到请求报文后返回给用户html格式的登录主页面,显示区域由一张背景图和一个文本控件组成;

所述用户登录模块包括注册组件、登录组件;

注册组件用于实现用户注册登录名,设置8-15位长度密码,同时将本次注册信息插入sqlite数据库存储为用户信息;

登录组件包含以下功能:输入登录名,登录名验证、输入密码、密码验证,其中登录名验证通过数据库已存储用户名字符串匹配,校验是否输入正确格式的用户名;密码验证同样通过数据库已存储用户密码字符串匹配,校验是否输入正确格式的密码,若判断输入密码匹配,登陆成功,服务器返回数据检索的响应报文;

所述数据检索模块用于实现精准检索所需数据,井下信息数据库包含动液面、沉没度、含水率、井底流压、套压、压力参数、温度参数、深度值、功率图、示功图等数据,用户可在搜索框中键入关键字、词进行快速搜索已存入sqlite数据库标题文件夹的内容;

所述内容模块可以实现子用户键入关键字后,服务器在本地sqlite数据库中搜索相应井下数据内容,并返回响应报文;

所述内容模块包含文字内容、图片内容两部分。所述文字内容用于显示sqlite数据库存入的关键字相关所有信息,若显示内容过多,设置分页管理,用户可点击下一页方便阅读所有数据。

所述图片内容则是为了让用户更直观地分析数据;

具体过程如下,需要进行沉没度参数优化时,守护进程模块将结合vogel方程绘制出油层的供液能力曲线,通过对冲程、冲次、泵径的计算分析,得到最佳合理沉没度值;需要进行含水率参数参数优化时,守护进程模块将结合童氏标准曲线和校正曲线拟合,通过对矿化度、温度、标定含水率的计算分析,得到高精度的实际含水率数据,把优化后的沉没度值、含水率数据更新至数据库。

所述守护进程模块用于实现搭建后台服务器端,根据用户端提交请求的关键字,判断进行沉没度参数设置或含水率参数设置,上述参数设置组件包含:沉没度优化参数选择窗口、含水率优化参数选择窗口。通过共享内存将优化参数发送至主进程的计算模型,经计算模型优化,将优化后的数据更新至数据库,通过对冲程、冲次、泵径的优化计算分析,可得到最佳合理沉没度值,因而更符合抽油机井生产的实际情况,通过对矿化度、温度、标定含水率的优化计算分析,可得到高精度的实际含水率数据。

所述web服务器模块采用epoll技术实现多用户并发访问,可以使服务器不会因为同一时间申请连接人数过多导致网页崩溃。

所述用户登录模块和数据检索模块使用sqlite数据库存储用户登录信息,若同一用户下次登录或者检索,在文本框内会提示近期登录用户信息和检索历史,方便用户使用,节省重复操作的时间。

所述守护进程模块后台维护web服务器,监听客户端的参数调优请求;

具体为:web服务器利用socket套接字函数绑定一个端口,监听客户端的连接,当客户端向服务器任一ip发送连接请求时,双方通过建立安全传输连接,服务器端接收并解析来自客户端的请求关键字,判断并返回沉没度参数设置页面或者含水率参数设置页面,通过共享内存将接收的优化参数分享至主进程中的计算模型,从而对数据进行优化,提高采集数据的准确性。

本发明的有益效果:

本系统基于linux环境和轻量级sqlite数据库,采用b/s架构实现井下实时数据和历史数据快速检索,通过创建守护进程可以将实时数据接收至服务端,利用计算模型进行调参设置,测井人员可以主动参与计算模型的参数调优,从而使接收数据的精确度和准确度可以提高20%。

附图说明

图1为本发明实施例的一种基于http协议的井下数据搜索引擎及交互系统的结构图。

图2为本发明实施例的一种基于http协议的井下数据搜索引擎及交互系统的守护进程模块框图。

具体实施方式

下面结合附图对本发明作进一步详细说明。

一种基于http协议的井下数据搜索引擎及交互系统,采用b/s模型,包括web服务器模块、主页面显示模块、用户登录模块、数据检索模块、内容模块、守护进程模块,可以实现井下数据搜索引擎及交互功能。基于http协议的井下数据搜索引擎及交互系统框架图如图1所示。

所述web服务器模块用于实现在程序运行后,作为主进程接收来自网页客户端的http请求,并分析其请求报文,返回所对应的响应报文。其具体实现是通过socket网络编程,设置服务器为server端,建立基于tcp协议的通讯基础,绑定ip地址供用户网页端访问,在程序启动后,listen函数使服务器一直处于监听状态,当用户网页端向服务端发送连接请求时,后端编程阶段实现请求报文的separate分割函数,通过分割后的请求方法字段、url字段关键字判断返回的响应报文类型,其中响应报文包含文字类型和图片类型两类,从而实现了服务器端与用户网页端的数据交互。

在此基础上,由于现有的服务器经常面临同一时刻大量用户请求提交数据,因此针对这一难点利用epoll技术实现服务器高并发功能,以满足实际要求。

epoll实现高并发操作过程需要三个接口函数,分别如下:

1.intepoll_create(intsize);创建一个epoll的句柄,size用来告诉内核这个监听的数目一共有多大,当创建好epoll句柄后,它就会占用一个fd值,在linux下如果查看/proc/进程id/fd/,是能够看到这个fd的,所以在使用完epoll后,必须调用close()关闭,否则可能导致fd被耗尽。

2.intepoll_ctl(intepfd,intop,intfd,structepoll_event*event);该函数是对指定描述符fd执行op操作,epfd:是epoll_create()的返回值;op:表示op操作,用三个宏来表示:添加epoll_ctl_add,删除epoll_ctl_del,修改epoll_ctl_mod。分别添加、删除和修改对fd的监听事件。fd:是需要监听的fd(文件描述符)epoll_event:是告诉内核需要监听什么事。struct结构体便是对应的文件描述符的属性集合。

3.intepoll_wait(intepfd,structepoll_event*events,intmaxevents,inttimeout);

该函数等待epfd上的io事件,最多返回maxevents个事件。参数events用来从内核得到事件的集合,maxevents告之内核这个events有多大,这个maxevents的值不能大于创建epoll_create()时的size,参数timeout是超时时间(毫秒,0会立即返回,-1将不确定,也有说法说是永久阻塞)。该函数返回需要处理的事件数目,如返回0表示已超时。

epoll对文件描述符的操作有两种模式:lt(leveltrigger)和et(edgetrigger)。lt模式是默认模式,lt模式时,当epoll_wait检测到描述符事件发生并将此事件通知应用程序,应用程序可以不立即处理该事件;下次调用epoll_wait时,会再次响应应用程序并通知此事件。et模式时,当epoll_wait检测到描述符事件发生并将此事件通知应用程序,应用程序必须立即处理该事件;如果不处理,下次调用epoll_wait时,不会再次响应应用程序并通知此事件。

et模式在很大程度上减少了epoll事件被重复触发的次数,因此效率要比lt模式高。epoll工作在et模式的时候,必须使用非阻塞套接口,以避免由于一个文件句柄的阻塞读/阻塞写操作把处理多个文件描述符的任务阻塞。因此本服务器端采用et模式的epoll技术可以实现高并发。

所述守护进程模块用于实现搭建后台服务器端,根据用户端提交请求的关键字,判断进行沉没度优化设置或含水率优化设置,通过共享内存将优化参数发送至主进程的计算模型,经计算模型优化,将优化后的数据更新至数据库。守护进程模块框图如图2所示。受到干扰引起参数波动较大时,用户可通过输入服务器网卡任一ip,由守护进程模块向服务器端发送请求,服务器端根据客户端发送的请求关键字,判断返回沉没度调优页面或者含水率调优页面,客户端在网页输入调优参数后,服务器端接收数据并通过共享内存发送至主进程计算模型,对沉没度或含水率数据进行优化。上述参数设置组件包含:沉没度优化参数选择窗口、含水率优化参数选择窗口。以井下效率为目标函数优化合理沉没度的方法,不仅考虑了井筒中的情况,而且考虑了油层供液能力,通过对冲程、冲次、泵径的优化计算分析,可得到最佳合理沉没度值,因而更符合抽油机井生产的实际情况。通过对矿化度、温度、标定含水率的优化计算分析,可得到高精度的实际含水率数据。

所述主页面显示模块实现了用户在网页端输入指定ip地址,确定后即向服务器端发送了连接请求,报文中请求头包含了请求方法字段、url字段和http协议版本,web服务器接收到请求报文后,判断各字段类型返回给用户html格式的显示主页面,显示区域由一张背景图和一个文本控件组成,显示主页面在经过1s后向服务器端发送登录页面请求报文。

所述用户登录模块包括注册组件、登录组件。注册组件用于实现用户注册登录名,设置8-15位长度密码,同时将本次注册信息插入sqlite数据库存储为用户信息。登录组件包含以下功能:输入登录名,登录名验证、输入密码、密码验证,其中登录名验证通过数据库已存储用户名字符串匹配,校验是否输入正确格式的用户名,若没有输入用户名,则显示“请输入用户名”;若输入的用户名正确,校验通过等待用户输入密码;密码验证同样通过数据库已存储用户密码字符串匹配,校验是否输入正确格式的密码,若输入长度不足8-15位,则显示“密码长度错误!”;若没有输入密码,显示“请输入密码”,若输入密码不正确,显示“用户名或密码错误!”若判断输入密码匹配,登陆成功。同时向服务器建立连接请求,发送包含搜索页面所属字段的请求报文,服务器监听连接后返回数据检索的响应报文。

所述数据检索模块用于实现精准检索所需数据,数据库井下数据包含动液面、沉没度、含水率、井底流压、套压、压力参数、温度参数、深度值、功率图、示功图等数据。数据检索模块设计有相应界面,用户可在界面的搜索框中键入关键字、词进行快速搜索已存入sqlite数据库标题文件夹的内容。

所述内容模块实现了用户键入关键字后,服务器在本地sqlite数据库中搜索相应井下数据内容,并返回响应报文。内容模块包含了文字内容、图片内容两部分。所述文字内容用于显示sqlite数据库存入的关键字相关信息,若显示内容过多,设置了分页管理,用户可点击下一页方便阅读所有数据。所述图片内容显示为了让用户更直观地分析数据。

应当理解,以上所描述的具体实施例仅用于解释本发明,并不用于限定本发明。由本发明的精神所引伸出的显而易见的变化或变动仍处于本发明的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1