基于WebAPI的固井工程设计系统研究
2018-01-15钟磊徐英卓
钟磊+徐英卓
摘要: 关键词: 中图分类号: 文献标志码: A文章编号: 2095-2163(2017)06-0088-03
Abstract: With the development of network technology, the Web server provides a new approach to Web services : Web API. The Web API includes a wide range of services capabilities such as storage, message, and computing, which could further develop powerful Web applications. This paper mainly introduces the principle and working process of the design system of cementing engineering based on Web API, and proposes the concept and working mode of Web API in detail.
0引言
目前,正在使用的固井工程系统是纯面向对象或者过程的,这样的软件在结构上是低内聚、高耦合的。如果后期有新的需求出现,这将会给开发者带来极大的不便。由此,新技术的出现,往往会引发软件世界的重大革新变化。为了解决传统固井软件的应用问题,以及增进在当代的软件架构中新思维—服务—系统优化的作用影响,对传统的固井软件进行服务升级,并设计研发出一整套面向服务架构(SOA)的固井工程设计系统即已尤显其迫切与必要。本文重点论述的固井工程设计系统的核心是基于微软的ASP.NET Web API来展开研究并获得实现的。其中,Web API是时下位居前沿的流行移动后台服务层,利用ODATA协议可以传输JSON、XML等格式的數据,支持跨语言/跨平台,克服了基于SOAP的WCF局限性,可避免给开发人员带来复杂繁琐的配置操作。同时,ASP.NET Web API是用于构建可以从任何客户机访问(包括浏览器和移动设备)的HTTP服务的框架,并且也是一种基于.NET Framework解析生成RESTful应用程序的理想平台。
1固井工程设计系统开发流程
基于Web API的固井工程设计系统的技术内容核心是Web服务的研究、设计与开发,以B/S架构为基础,整个系统的开发流程遵循经典的系统开发设计过程,即需求分析、系统设计、系统开发与部署、系统维护四个开发阶段,具体如图1所示。
研究中,针对基于Web API的固井工程设计系统需求分析阶段,除了要达到常规需求分析基础指定目的之外,还要立足于Web API的现状提供拓展分析,包括内容如下:什么是Web API,这种服务有哪些类型?服务接口怎么封装、注册及访问?等等。
本系统主体设计包括数据库设计、软件架构设计、Web API设计、前端界面设计这四个部分的内容。其中,数据库设计中选择使用的工具是Microsoft SQL server2012,基于实际固井数据,并且遵循传统的设计原则和方法。软件架构设计则主要采用了经典的三层架构。Web API设计上重点基于RESTful风格:采用URI标识资源、使用统一的接口、使用标准的HTTP方法、支持多种资源的表示方式、无状态性。而前端界面设计却融入采用了html和JavaScript等前端语言组织实现业务逻辑,保证系统的简洁性及实用性,紧密结合业务逻辑,因而更加贴近大众用户的使用习惯。
系统开发与部署包括两个部分:Web API的开发与部署和固井工程设计系统的开发与部署。Web API开发与部署使用的开发工具是Visual Studio 2015,并且.NET framework 4.5为Web API的研发构建提供了很大的方便。同时,单独部署Web API可以利于修改或者补充Web API,保证其独立性,从而便于共享和复用。固井工程设计系统的开发和部署整体上则将围绕各种用户界面的程序化展示,就是利用HTML和JavaScript等前端开发语言以及相关框架设计前端母版页,通过前端业务逻辑完成页面的调用及跳转。固井工程设计系统单独部署,可以有效地实现软件复用。
2需求分析
基于Web API的固井工程设计系统对不同地域、不同区块、不同油井产生的不同固井数据进行了详细的归纳分析,结合实际固井作业的需求,该系统的定制功能可表述如下:
1)服务端功能。具备权限控制,系统管理员具有最高系统控制权限,此外,系统管理员还将具有对固井相关数据库的增、删、改、查,并且能够接收用户端的动作请求,开展理想模型的计算,并将结果反馈给客服端。
2)前端功能。主要对应着用户的登录、修改、注销等功能,在此基础上还进一步包括固井数据的界面展示,并向服务端发送服务请求。
3固井工程设计系统总体设计
3.1数据库设计概述
基于Web API的固井工程设计系统使用Microsoft SQL Server 2012作为本系统数据库的设计及开发工具,本系统在研究中将配置涉及两个相关数据库,分别是:套管数据库和固井设计数据库。对其可做如下概述。
1)套管数据库按套管的外径分别建库,主要包括套管基本情况表、材料表及附件消耗表等。由于套管数据在设计中将会发挥非常重要的作用,为了防止对数据的误操作,一般情况下不允许随意修改套管数据。
2)固井设计数据库包含基本设计数据和井斜数据两部分。其中,基本设计数据主要包括用于设计套管强度的以及设计注水泥所需的大部分数据;井斜数据部分主要是对测深、井斜角及方位角等数据进行操作。综上可知,该数据库需要创建的基本表有流体组成表、配方表、井身质量表及地漏实验表等。endprint
3.2软件架构概述
固井工程设计系统在开发上采用了三层分布式框架,也就是用分层的方法对固井工程设计系统进行业务处理,因而充分体现了面向服务的架构理念。
下面即研究给出了固井工程设计系统的软件分层架构如图2所示。
由图2可见,该系统架构中各层的功能含义内容如下:
1)实体对象映射层。在常规三层架构的基础上,本系统的设计在底层数据库与传统的数据访问层之间添加了实体对象映射层,同时应用了面向对象的编程思想,获得了对象和实体数据库的逻辑匹配,为数据访问层提供了软件的操作基础。
2)数据访问层。首先接收来自数据访问层的请求;然后,利用NHibernate架构,直接调用NHibernate库中方法实现对固井工程设计系统的相关数据库表的增、删、改、查,并向上一层的业务逻辑层反馈数据。
3)服务层。与数据访问层类似,接收服务提供层请求信息,进行分析,交付给下面的数据访问层,完成数据的调用,并接受数据访问层的反馈,同时根据上一层的实际需求,引入对数据的验证、计算处理,最后给上一层发送反馈信息。在该层主要由Web API发布类、服务实现类等组成,模式方案则如图3所示。
4)Web展现层。采用脚本框架、插件类等提供的技术方法,完善友好界面,并通过HTTP或者HTTPs提供的方法调用需求服务,将服务展现给用户,主要体现为Web应用程序。
5)model层。该层主要任务是被实体对象映射层、数据访问层及服务层引用,完成抽象数据库实体数据,并通过转换的对象操控执行固井系统的相关逻辑计算。
6)通用层。主要是集成给出帮助类,比如说NHibernate的帮助类、log4net等。
3.3系统功能设计
从系统本质出发,系统功能设计核心在于设计服务,即Web API的开发。为了解决传统固井软件中展现的信息孤岛问题,采用服务理念来研究和实现固井工程设计系统,对固井工程设计系统进行功能分析、模块划分和低耦合的服务封装,并以此为基础,有针对性地建立了基于Web API的固井工程设计系统,本系统主要解决如下方面的设计需求:
1)套管数据库管理。完成套管各项数据的输入、修改、查询、标注等工作,为套管强度设计制订可靠的数值依据。
2)套管强度设计。根据用户提供的库存套管数据或给定的套管数据,以及设计安全系数和有关的地层、井眼流体等参数,进行套管强度的选型计算和安全系数校核。设计方法采用等安全系数法,对定向井需增加弯曲应力校核。设计结果按附表规定的格式打印输出。
3)注水泥设计。根据用户给定的井眼、套管、地层、流体等参数,以及注水泥施工质量要求等,推进实现注水泥有关内容的设计,设计结果按附表规定的格式打印输出。
4)注水泥模拟。注水泥模拟是根据注水泥设计的结果在计算机上开展注水泥施工作业的动态实时模拟,以便获得注水泥施工各时刻施工参数的动态变化情况。模拟的参数包括:真空段长度、井口压力、井底压力、注入流量、返出流量、井眼内任意给定点的压力。要求得到在注水泥施工任意时刻关于上述模拟参数的数值,模拟结果将用直观的曲线形式获得最终表示。
4固井工程设计系统的工作原理
各种终端的浏览器(包括不同操作系统)向提供Web服务的服务器发送HTTP请求,Web API利用OData协议将各种异质的数据转换为标准数据,再对HTTP请求进行一系列的相关处理,例如URI路由和Action解析、路由选择和控制器选择等。采用实体对象映射模型(ORM)封装从固井工程设计系统的数据库获得的需求数据,并返回结果集(结果集以JSON、XML形式表达),接着返回给请求源。
5结束语
本文是基于Web API这种面向服务架构的新思想,结合时下固井作业的实际背景流程,借助计算机相关网络协议及软件开发技术,展开固井工程设计系统的软件架构及各种新型相关的软件开发技术的研究,主要目的旨在利用Web API、HTTP协议及.NET開发技术等实效手段,致力于远程帮助钻井工程技术人员能够科学、合理、高效、优化进行固井工程设计以及进一步实现固井有关数据和设计资料的科学化管理,从而避免和减少在设计中由于人为因素造成的失误与偏差,使固井设计的全过程符合标准化和规范化的工程要求。
参考文献:
[1] 曹步清,刘建勋,唐明董,等. 基于用户使用历史与信誉评价的Web API推荐[J]. 计算机工程,2015,41(6):43-48,55.
[2] 陈振邦,王戟,董威,等. 面向服务软件体系结构的接口模型[J]. 软件学报,2006,17(6):1459-1469.
[3] 饶元,冯博琴. 新网络体系结构—Web Services研究综述[J]. 计算机科学,2004,31(5):1-4.
[4] 赵叶红. API开放平台高性能技术探索与实践[J]. 中国金融电脑,2016(2):47-52.
[5] 徐诗垚. 基于亚马逊网络服务的优惠商品搜索发布系统[D]. 长春:吉林大学,2012.
[6] 王红崧,周海晏. 基于百度地图API的旅游地理信息系统开发[J]. 现代计算机(专业版),2012(23):60-63.
[7] 向玉云,高爽,陈云红,等. 百度、高德及Google地图API比较研究[J]. 软件导刊,2017,16(9):19-21,25.
[8] 邹庆轩,李建,周永宏. 基于B/S体系结构的油田固井信息系统设计开发[J]. 现代电子技术,2006(7):85-87.
[9] 宣小平,但正刚,张文毅. ASP数据库系统开发实例导航[M]. 北京:人民邮电出版社,2003.endprint