井场实时数据传输系统的设计与实现.docx

上传人:b****6 文档编号:7194374 上传时间:2023-01-21 格式:DOCX 页数:34 大小:599.12KB
下载 相关 举报
井场实时数据传输系统的设计与实现.docx_第1页
第1页 / 共34页
井场实时数据传输系统的设计与实现.docx_第2页
第2页 / 共34页
井场实时数据传输系统的设计与实现.docx_第3页
第3页 / 共34页
井场实时数据传输系统的设计与实现.docx_第4页
第4页 / 共34页
井场实时数据传输系统的设计与实现.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

井场实时数据传输系统的设计与实现.docx

《井场实时数据传输系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《井场实时数据传输系统的设计与实现.docx(34页珍藏版)》请在冰豆网上搜索。

井场实时数据传输系统的设计与实现.docx

井场实时数据传输系统的设计与实现

摘 要

随着计算机及相关技术的迅猛发展,计算机在石油工业方面的应用越来越广泛,把钻井数据实时地传输到油田基地,是现代化生产管理的重要手段,本文主要介绍了基于Delphi编程基础的关键技术,以及Oracle数据库的设计及操作方法,详细的说明了井场实时数据传输系统的设计与实现过程。

系统主要包括基地客户端、基地服务器端和数据库部分。

基地客户端包括系统配置数据传输和状态监视三部分。

服务器端包括系统配置和状态监视两部分。

实现了井场数据的实时传输功能,并采用了加密压缩技术,对数据进行了处理,以保证数据传输的保密性和实时性。

在传输过程中,实现了多客户端可以同时连接服务器进行数据传输,并可以对当前服务器和客户端进行状态监视,确定当前连接状态。

本文详细介绍了系统的实现技术和实现原理,同时给出了实现的部分代码和遇到的问题及其解决方法。

关键词:

Delphi;Oracle;数据实时传输

 

Abstract

Alongwiththeswiftandviolentdevelopmentofthecomputerandrelevanttechnology,computerintheoilindustryintheincreasinglywidespreadapplication.puttingdrillingdatareal-timetransmissiontotheOilfieldbaseisameansofthemodernizationofproduction.thisarticlemainlyintroducedthekeytechnologybasedonDelphiprogramming,designandoperationmethodofOracledatabase.detaileddescripedthedesignandimplementationprocessofwellfieldreal-timedatadeliverysystem.

Thesystemmainlyincludesawellsiteclient,thebaseserveranddatabase.Thebaseclientcarriestoincludesystemtoinstalladatatodelivertokeep,watchonwithappearancethreeparts,configure.Theservercarriestoincludesystemtoinstalltokeepwatchonwithappearancetwoparts.Achievingthereal-timeWellfielddatatransmissionfunctions,andadoptedtoencryptacompressiontechnique,dataaccordingtocarriedonaprocessing,toensuretheconfidentialityandreal-timeofdatatransmission.Duringtheperiodofdelivering,achievingmanyclientscanlinkaservertocarryonadatatransmissioninthemeantime,andcansurveillancetothecurrentserverandtheclient,makesurethestateofthelinkatpresent.

Thisarticledetailedintroductionthetechnologyandprincipleofthesystem,inthemeantimegivingpartsofcodesofrealization,theproblemsencounteredonandtheirsolutions.

Keyword:

Delphi;Oracle;Datareal-timetransmission

 

目 录

4.2系统程序流程图16

4.3设计要求16

第1章 概述

1.1问题提出的背景及意义

由于探井大都远离生产指挥机关,以前的通讯方式已经不适应现在的技术要求。

如果工作人员要想详细了解井场情况,必须亲临现场,而大部分井场地处偏远、交通不便,将耗费大量的时间、精力,也无法全面、详尽了解井场状况。

随着石油勘探技术和现代信息技术的发展,对录井技术有了更高的要求,为了解决在复杂条件下,正确分析和解释地质资料,对井场实施信息化管理,利用各种媒介把在井场由综合录井仪采集到的地面和井下数据(包括钻井工程、泥浆、气测)实时传输到基地数据中心。

利用公司的现有网络,在对综合录井系统进行实时数据截取的基础上,利用客户/服务器模型开发了钻井数据实时远程传输和监控软件[1],可以在任何一台客户计算机上进行实时观测。

开发井场实时数据传输系统的目的是将井场采集的实时数据及时准确地传输到基地服务器,方便工作人员随时观察数据变化。

井场实时数据传输系统的核心是数据的实时传输,并在客户端对传输的实时数据加密压缩,在服务器端对数据进行解压解密,从而保证数据的实时性与保密性。

通过数据远程获取和传输的好处有:

1.得到的数据是第一手的资料,任何人在事后做出的修改都能通过对比原始资料进行检查,防止资料造假,对生产造成损失。

2.通过数据远程传输,数据在基地服务器得到了及时的保存,即使井场出现事故导致数据丢失,服务器端也会存有数据。

3.通过数据实时远程获取和传输能及时获得现场资料,指挥决策者可以及时准确的做出决定,指导生产。

目前大量现成的数据传输软件大多适用于文件的传输,并且需要人为操作,不适用于实时数据的传输。

因此,须开发相应的数据传输与接收软件。

1.2可行性分析

这个阶段的关键问题是“对问题的定义阶段所确定的问题是否有行得通的解决办法”。

这需要结合当前的开发技术在较高层次上进行分析。

这个阶段的主要任务不是用具体的技术解决具体的问题。

而是从整体上考虑要解决的,研究这个涉及的范围,考虑是否有必要解决,是否有解决的技术。

其目的就是用最小的代价在尽可能短的时间内确定问题能否解决,若有可行性的方案则确立方案,否则就取消该功能,从而确定系统的主要功能与相应的解决方案。

目前大量现成的数据传输软件大多适用于文件的传输,并且需要人为操作,不适用于实时数据的传输。

因此,须开发相应的数据传输与接收软件。

  TCP/IP协议是目前最成熟、应用最为广泛的通讯协议,在TCP/IP协议中,主要进程间的客户机/服务器(Client/Server)模型[2]是当前网络通讯和远程数据传输中最常用的模型,进程间的通讯采用套接字(SOCKET)接口来完成。

在系统开发时,采用了常用的流式套接字,它支持双向的、可靠的、有序不重复的和无记录边界的数据流。

进行通讯前,数据发送和接收方应根据分配的地址进行连接,连接后即可进行通讯。

“井场实时数据传输系统”可行性研究:

Ø技术方面的可行性

从技术上来讲,Borland的编译器很好,因为Borland有全世界最好的编译器开发组,Borland领先任何竞争对手至少2~3年。

一般来说,Borland的编译器总是能生成更小的代码并且通常(并不是在任何情况下)更快的代码。

从数据库方面来说,Delphi保留了我们认为是所有工具中最灵活的数据库结构。

对大多数基于本地、客户/服务器和ODBC数据库平台的应用程序来说,BDE的功能都非常强大。

如果你对此不满意,可以避开使用BDE以支持新的本地ADO组件。

如果你没有装ADO,可以自己创建数据访问类或者购买第三方数据访问解决方案

Ø经济可行性

系统的开发可以在PC上进行,其测试工作既可以在单机上进行,也可以通过在网络上进行系统的开发,所需的费用是很少的。

当系统完成之后即可以实现井场实时数据传输。

因此,从经济上来说是可行的。

 

第2章系统开发环境及工具

2.1系统开发环境

该实时传输系统从执行效率看,选择Delphi作为系统开发环境,在Delphi环境下实现井场实时数据传输的模块,设计出Socket通讯机制,将井场数据及时准确安全的传输到服务器端。

◆硬件环境

●处理器:

IntelPentiun42.8GMHz

●内存:

256MB

●硬盘空间:

80GB

●光驱:

SUMSUNG52X

●网卡:

ISA或者PCI均可

●显卡:

SVAG显示适配器

◆软件环境

●操作系统:

Windows2000Xp

●网络环境:

局域网

●数据库:

ORACLE9i

●开发语言:

DELPHI

2.2Delphi语言简介

Delphi是BorlandInternationalInc.的编程工具产品。

Delphi这个名字源于古希腊的城市名。

它集中了第三代语言的优点。

以ObjectPascal为基础,扩充了面向对象的能力,并且完美地结合了可视化的开发手段。

Delphi自1995年3月一推出就受到了人们的关注,并在当年一举夺得了多项大奖。

Delphi的出现打破了V承可视化编程领域一统天下的局面。

并且Delphi使用了本地编译器直接生成技术,使程序的执行性能远远高于其它产品生成的程序。

它还是真正的面向对象的编程语言。

PASCAL语言的严谨加上可视化的优势和强大的数据库功能使得它有充分的资本和微软的VB叫板。

许多人当时都认为Pascal是最有前途的程序设计语言,并预测Delphi将会成为可视化编程的主流环境。

Delphi在你编好程序后自动转换成EXE文件它运行时速度比VB快,而且编译后不需要其它的支持库就能运行。

它的数据库功能也挺强的,是开发中型数据库软件理想的编程工具。

Delphi适用于应用软件、数据库系统、系统软件等类型的开发。

而且它拥有和VB差不多一样的功能,而且一样能应用API函数,这在控制Windows方面很有用。

Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。

它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-OrientedLanguage)、当今世界上最快的编辑器、最为领先的数据库技术。

对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。

ØDelphi的基本形式

Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。

一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。

在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。

您的工作只是在“骨架”中加入您的程序。

缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。

这个窗口具有Windows窗口的全部性质:

可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。

因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。

  Delphi已经为您做好了一切基础工作——程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。

您所需要做的,只是在程序中加入完成您所需功能的代码而已。

在空白窗口的背后,应用程序的框架正在等待用户的输入。

由于您并未告诉它接收到用户输入后作何反应,窗口除了响应Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。

Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样您可以不为它们所困扰,轻松从容地对可视部件进行编程。

Ø面向对象编程的概念

面向对象的程序设计(Object-OrientedProgramming,简记为OOP)是Delphi诞生的基础。

OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。

它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。

面向对象的编程语言使得复杂的工作条理清晰、编写容易。

说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。

对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。

除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。

而Delphi是完全面向对象的,这就使得Delphi成为一种触手可及的促进软件重用的开发工具,从而具有强大的吸引力。

  一些早期的具有OOP性能的程序语言如C++,Pascal,Smalltalk等,虽然具有面向对象的特征,但不能轻松地画出可视化对象,与用户交互能力较差,程序员仍然要编写大量的代码。

Delphi的推出,填补了这项空白。

您不必自己建立对象,只要在提供的程序框架中加入完成功能的代码,其余的都交给Delphi去做。

欲生成漂亮的界面和结构良好的程序丝毫不必绞尽脑汁,Delphi将帮助您轻松地完成。

它允许在一个具有真正OOP扩展的可视化编程环境中,使用它的ObjectPascal语言。

这种革命性的组合,使得可视化编程与面向对象的开发框架紧密地结合起来[3]。

2.3Oracle关系数据库简介

2.3.1关系数据库基础理论

关系数据库是关系变量或表的集合。

关系变量是支持关系数据库及其操作的系统,特别是选择、投影和连接操作。

这些操作和其它操作都是集合操作。

关系系统的封闭性是指每种操作的输出都和其输入是相同类型的(都是关系的),这就表示可以写嵌套的关系表达式。

关系变量可以通过关系赋值操作来更新;类似地,INSERT、UPDATE和DELETE更新操作也可以看作是某些一般关系赋值操作的缩写。

关系系统所依据的形式理论是关系数据模型。

关系模型只涉及逻辑的内容,而不涉及物理的内容,它包括数据的三方面理论,即:

数据结构、数据完整性和数据操作。

结构化方面与关系本身有关;完整性方面与主码和外码有关;操作方面与操作符(选择、投影和连接等等)有关。

信息原则表明是以一种而且只以一种方式表示关系数据库的整个内容,即以关系中的行和列交叉位置的明确的值表示。

每个关系都含有一个标题和一个主体。

标题是队的集合,主体是对应标题的行集。

一个指定关系的标题可以当作谓词;主体中的每一行表示一个真命题,用参数的值代替占位符或谓词参数的适当类型来得到这个真命题。

换句话说,类型是我们所研究的对象的集合;关系是关于我们所研究的对象的内容的集合。

类型和关系对于我们所要表示的数据(逻辑上的)来说是充分而必要的。

在指定的数据库中,原关系变量成为基本关系变量,而它们的值称为基本关系;通过关系表达式从基本关系中得出的关系称为导出关系(基本关系和导出关系被称为可表现的关系)。

视图是一种关系变量,它的值在任何指定的时刻是一个导出的关系;在指定的时刻,这一关系变量的值是从相应的视图定义表达式计算得到的。

因此,基本关系变量是独立存在的,但视图不是(它们依赖于相应的基本关系变量)。

用户能够像操作基本关系一样操作视图。

系统是通过替换视图所对应的视图定义表达式来执行视图上的操作的。

因此,对视图的操作就转变为对基本关系变量的等值操作。

2.3.2Orcale数据库介绍

由于本系统存储的数据比较多,所以需要一个比较大型的关系数据库。

采用ORACLE关系数据库比较合适。

ORACLE是美国ORACLE公司的软件产品,ORACLE公司成立与1977年,是一家专门从事研究生产各种计算机关系数据库管理系统的专业厂家,1979年推出的ORACLE第2版是世界上首批商用关系数据库管理系统,86年推出的SQL*STAR,是一个具有分布式处理功能的关系数据库系统,在一定程度上满足对硬件,操作系统,网络的独立性要求,使用与多种机型,操作系统和网络系统。

现在,ORACLE公司已成为世界上生产关系数据库系统的主要厂家之一。

1982年ORACLE关系数据库产品进入我国,有关单位进行了大量汉化工作,同时进行了大量实际应用研发工作。

Ø特点:

1、ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。

这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。

2、提供了基于角色(ROLE)分工的安全保密管理。

在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。

3、支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。

4、提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。

加上它有许多优秀的前台开发工具如POWERBUILD、SQL*FORMS、VISIABASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。

5、提供了新的分布式数据库能力。

可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。

Ø存储结构

1、物理结构

ORACLE数据库在物理上是存储于硬盘的各种文件。

它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。

2、逻辑结构

  ORACLE数据库在逻辑上是由许多表空间构成。

主要分为系统表空间和非系统表空间。

非系统表空间内存储着各项应用的数据、索引、程序等相关信息。

我们准备上马一个较大的ORACLE应用系统时,应该创建它所独占的表空间,同时定义物理文件的存放路径和所占硬盘的大小。

Ø分布式数据库管理介绍

1、原理

  物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单个的大数据库。

用户可以通过网络对异地数据库中的数据同时进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的:

开发人员无需关心网络的连接细节、无需关心数据在网络接点中的具体分布情况、也无需关心服务器之间的协调工作过程。

2、过程

  由网络相连的两个ORACLE数据库之间通过数据库链接(DB-LINKS)建立访问机制,相当于一方以另一方的某用户远程登录所做的操作。

但ORACLE采用的一些高级管理方法,如同义词(SYNONME)等使我们觉察不到这个过程,似乎远端的数据就在本地。

数据库复制技术包括:

实时复制、定时复制、储存转发复制。

对复制的力度而言,有整个数据库表的复制,表中部分行的复制。

在复制的过程中,有自动冲突检测和解决的手段。

2.4关键技术介绍

2.4.1Socket技术介绍

计算机网络是由一系列网络通信协议组成的,其中的核心协议是传输层的TCP/IP和UDP协议。

TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登陆BBS,用的就是TCP协议;UDP是无连接的,通信双方都不保持对方的状态,浏览器访问Internet时使用的HTTP协议就是基于UDP协议的。

TCP和UDP协议都非常复杂,尤其是TCP协议,为了保证网络传输的正确性和有效性,必须进行一系列复杂的纠错和排序等处理。

所谓Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。

应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

Socket是建立在传输层协议(主要是TCP和UDP)上的一种套接字规范,最初是由美国加州Berkley大学提出,它定义两台计算机间进行通信的规范(也是一种编程规范),如果说两台计算机是利用一个“通道“进行通信,那么这个“通道“的两端就是两个套接字。

套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP协议软件和实现了套接字规范的计算机之间的通信成为可能。

Socket实质上提供了进程通信的端点。

进程通信之前,双方各自创建一个端点,然后建立联系并相互通信的。

Socket利用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。

socket是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的socket系统调用。

微软的WindowsSocket规范(简称winsock)对Berkley的套接字规范进行了扩展,利用标准的Socket的方法,可以同任何平台上的Socket进行通信;利用其扩展,可以更有效地实现在Windows平台上计算机间的通信。

在Delphi中,其底层的Socket也应该是Windows的Socket。

Socket减轻了编写计算机间通信软件的难度;Inprise在Delphi中对WindowsSocket进行了有效的封装,使得用户可以很方便地编写网络通信程序。

2.如何开发一个Server-Client模型的程序

开发原理:

服务器,使用TserverSocket控件监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。

客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。

客户端不需要指定本机打开的端口,通常临时的、动态的分配一个1024以上的端口。

2.4.2AES加密算法介绍

随着对称密码的发展[5],DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES[1]。

经过三轮的筛选,比利时JoanDaeman和VincentRijmen提交的Rijndael算法被提议为AES的最终算法。

此算法将成为美国新的数据加密标准而被广泛应用在各个领域中。

尽管人们对AES还有不同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。

AES正日益成为加密各种形式的电子数据的实际标准,这些数据包括用于商业应用程序(如银行和金融交易、电信以及私有和联邦信息)中的数据。

AES算法基于排列和置换运算。

排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。

AES使用几种不同的方法来执行排列和置换运算。

AES设计有三个密钥长度:

128,192,256位,相对而言,AES的128密钥比DES的56密钥强1021倍[2]。

AES算法主要包括三个方面:

轮变化、圈数和密钥扩展。

AES是分组密钥,算法输入128位数据,密钥长度也是128位。

用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。

每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与。

由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。

Ø圈变化

AES每一个圈变换由以下三个层组成:

非线性层——进行Subbyte变换;

线行混合层——进行ShiftRow和MixColumn运算;

密钥加层——进行AddRoundKey运算。

①Subbyte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射。

②ShiftRow

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1