一种石油工程数据的存取系统与方法技术方案

技术编号:21477117 阅读:72 留言:0更新日期:2019-06-29 04:43
本发明专利技术提供了一种石油工程数据的存取系统与方法,属于计算机软件领域。该系统包括项目文件、业务对象、读模块、写模块、序列化处理模块、反序列化处理模块;所述项目文件用于存储工程项目的全部石油工程数据;将工程项目的全部石油工程数据分为多个所述业务对象,并按业务对象的从属关系,将全部业务对象组织为业务对象多叉树;所述读模块用于从项目文件中读出数据到业务对象;所述写模块用于将业务对象的数据写入到项目文件;所述序列化处理模块对存有数据的业务对象进行序列化处理,得到序列化的二进制串;所述反序列化处理模块对二进制串进行反序列化处理,得到含有具体数据的业务对象。本发明专利技术大大提高了石油工程数据的存储与读取效率。

【技术实现步骤摘要】
一种石油工程数据的存取系统与方法
本专利技术属于计算机软件领域,具体涉及一种石油工程数据的存取系统与方法,满足石油工程数据的实际应用需求并大大提高石油工程数据的存储与读取效率。
技术介绍
石油工程数据不仅包括结构化数据,还包括非结构化数据,如地震、地质、测井大数据体,现有石油工程专业软件应用中还没有很好解决石油工程数据中结构化数据与非结构化数据的一体化存取效率问题。目前的系统一般使用数据库存储结构化数据,使用数据文件存储非结构化数据,同时将非结构化数据的索引保存在数据库中。当需要使用非结构化数据时,需要先从数据库中读取索引,根据索引定位数据文件以及数据在文件中的偏移量。连接数据库并读取索引的过程耗费额外时间,限制了数据的一体化存取效率。
技术实现思路
本专利技术的目的在于解决上述现有技术中存在的难题,提供一种石油工程数据的存取系统与方法,满足石油工程数据的实际应用需求并大大提高石油工程数据的存储与读取效率。本专利技术是通过以下技术方案实现的:一种石油工程数据的存取系统,包括项目文件、业务对象、读模块、写模块、序列化处理模块、反序列化处理模块;所述项目文件用于存储工程项目的全部石油工程数据;将工程项目的全部石油工程数据分为多个所述业务对象,并按业务对象的从属关系,将全部业务对象组织为业务对象多叉树;所述读模块用于从项目文件中读出数据到业务对象;所述写模块用于将业务对象的数据写入到项目文件;所述序列化处理模块对存有数据的业务对象进行序列化处理,得到序列化的二进制串;所述反序列化处理模块对二进制串进行反序列化处理,得到含有具体数据的业务对象。每个工程项目对应唯一的一套项目文件;所述项目文件包括一个主文件和0个至多个非结构化数据文件;所述主文件记录该工程项目的基本信息、结构化数据被序列化处理后所得的二进制串,以及非结构化数据文件的索引信息;如果有非结构化数据,则将其按规定的格式存储为外部文件,即非结构化数据文件。所述业务对象多叉树包括项目根对象、业务对象;所述项目根对象是记录工程项目基本信息的对象;每个业务对象作为一个子对象,从属于且仅从属于项目根对象或另一个业务对象,对应地,其所从属的所述项目根对象或另一个业务对象即为该子对象的父对象;所述业务对象之间的从属关系,与实际业务实体的从属关系相同;由项目根对象出发,能够逐级索引得到全部业务对象;所述工程项目基本信息包括项目名称、创建人、创建日期。所述业务对象包括结构化业务对象和非结构化业务对象;每个所述结构化业务对象包含一个或者多个属性,每个属性对应一项结构化数据;每个非结构化业务对象包含非结构化数据文件的索引信息。所述序列化处理模块从业务对象多叉树的项目根对象开始,遍历该业务对象多叉树,将每个遍历到的业务对象,进行序列化处理得到序列化的二进制串,所述写模块按照遍历顺序,依次将所得的二进制串写入项目文件的末尾;如果业务对象挂接有外部文件,则将指向外部文件的指针作为对象属性一起进行序列化处理后保存在项目文件中。所述读模块首先从项目文件中读出二进制串,然后调用反序列化处理模块,所述反序列化处理模块由项目根对象开始,依次进行反序列化,生成业务对象,并按照每个业务对象中所记录的子对象,逐级建立多叉树的全部节点,最终形成完整的业务对象多叉树。所述系统进一步包括项目信息树显示模块,其按照所述业务对象多叉树的结构,显示出业务对象多叉树;所述系统进一步包括外部文件读写模块,用于读写非结构化数据文件。利用所述系统实现的石油工程数据的存取方法,包括:存储数据的步骤:将业务对象写入到项目文件中;读取数据的步骤:从项目文件中将数据读出到业务对象中。所述存储数据的步骤包括:S1,新建或清空项目文件;S2,找到所述业务对象多叉树的项目根对象;S3,从当前对象出发,遍历以当前对象为父对象的多叉树分支;将遍历到的每一个子对象做序列化处理,然后将序列化处理的结果依次存入到项目文件中;S4,判断是否对业务对象多叉树遍历完毕,如果是,则转入步骤S5,如果否,则返回步骤S3;S5,关闭项目文件。所述读取数据的步骤包括:T1,打开项目文件,建立空的业务对象多叉树;T2,读取项目根对象的二进制串;T3,进行反序列化处理,生成业务对象多叉树的项目根对象;T4,读取下一个节点的二进制串,进行反序列化处理,生成业务对象,然后将此业务对象按照父对象和子对象的关系挂接到业务对象多叉树上;T5,判断项目文件是否结束,如果是,则进入步骤T6,如果否,则返回T4;T6,关闭项目文件。与现有技术相比,本专利技术的有益效果是:本专利技术满足了石油工程数据的实际应用需求,在石油工程专业软件研发应用中大大提高了石油工程数据的存储与读取效率。附图说明图1存储数据时的系统模块间调用流程图图2存储数据时的具体流程图图3读取数据时的系统模块调用流程图图4读取数据时的具体流程图图5-1业务对象的多叉树组织关系示意图图5-2对应图5-1的业务对象多叉树的工程项目文件的示意图。具体实施方式下面结合附图对本专利技术作进一步详细描述:本专利技术系统涉及项目文件、业务对象,具体包括项目数据文件读模块、写模块、序列化处理模块、反序列化处理模块、项目信息树显示模块等。其中:(1)项目文件针对石油工程业务数据,数据的物理存储采用项目文件的方式,每个工程项目对应唯一的一套项目文件,存储项目自身的全部数据。现有技术一般是将数据储存在数据库中。有的虽保存项目文件,但项目文件中不包含具体数据,只包含数据索引。项目文件可以是多个文件,但是其中只有一个文件是项目的主文件,其它文件是非结构化数据文件。主文件中记录有项目的基本信息、结构化数据被序列化处理后所得的二进制内容,以及非结构化数据文件内容的索引信息。(2)业务对象项目文件中的数据是序列化后的二进制内容,不能够直接用于编程。因此设计了一套石油工程业务对象,用于在系统内存中存储数据和进行数据交互。把项目文件存储的数据读入到业务对象中,业务处理程序对业务对象进行编辑和处理。把石油工程数据分为多个业务对象,并按业务对象的从属关系,将全部业务对象组织为多叉树。父对象包含对子对象的索引。对于没有父对象的对象,另设一个项目根对象,该项目根对象包含对所有没有父对象的索引,以及所有父对象的索引,具体来说,该项目根对象是记录了工程项目基本信息(例如项目名称、创建人、创建日期)的对象,项目根对象即为多叉树的根对象,其它所述业务对象是实际业务实体到软件对象类的映射。使用一个多叉树组织项目根对象和全部业务对象,这样,由项目根对象出发,可以逐级索引得到全部业务对象。结构化的业务数据全部存储为业务对象的某个属性,即一个业务对象包含一个或者多个属性,一个属性对应一项业务数据。非结构化的业务数据,可另行规定格式,存储为外部文件,例如测井数据、地震数据。对于非结构化的业务数据,也为其设置业务对象,其中包含格式文件的索引信息。另行设置读写模块进行这些格式文件的读写,即本专利技术系统中需要两套读写模块,一套用于内部文件的读写,另一套用于外部文件的读写,序列化处理模块、反序列化处理模块只负责索引信息的处理。需要存储新的业务数据时,需要编写新的业务对象,并为每个业务对象实现序列化、反序列化程序,即采用依赖注入技术实现的程序,不在序列化与反序列化模块之内,运行时自动嵌入序列化与本文档来自技高网...

【技术保护点】
1.一种石油工程数据的存取系统,其特征在于:所述石油工程数据的存取系统包括项目文件、业务对象、读模块、写模块、序列化处理模块、反序列化处理模块;所述项目文件用于存储工程项目的全部石油工程数据;将工程项目的全部石油工程数据分为多个所述业务对象,并按业务对象的从属关系,将全部业务对象组织为业务对象多叉树;所述读模块用于从项目文件中读出数据到业务对象;所述写模块用于将业务对象的数据写入到项目文件;所述序列化处理模块对存有数据的业务对象进行序列化处理,得到序列化的二进制串;所述反序列化处理模块对二进制串进行反序列化处理,得到含有具体数据的业务对象。

【技术特征摘要】
1.一种石油工程数据的存取系统,其特征在于:所述石油工程数据的存取系统包括项目文件、业务对象、读模块、写模块、序列化处理模块、反序列化处理模块;所述项目文件用于存储工程项目的全部石油工程数据;将工程项目的全部石油工程数据分为多个所述业务对象,并按业务对象的从属关系,将全部业务对象组织为业务对象多叉树;所述读模块用于从项目文件中读出数据到业务对象;所述写模块用于将业务对象的数据写入到项目文件;所述序列化处理模块对存有数据的业务对象进行序列化处理,得到序列化的二进制串;所述反序列化处理模块对二进制串进行反序列化处理,得到含有具体数据的业务对象。2.根据权利要求1所述的石油工程数据的存取系统,其特征在于:每个工程项目对应唯一的一套项目文件;所述项目文件包括一个主文件和0个至多个非结构化数据文件;所述主文件记录该工程项目的基本信息、结构化数据被序列化处理后所得的二进制串,以及非结构化数据文件的索引信息;如果有非结构化数据,则将其按规定的格式存储为外部文件,即非结构化数据文件。3.根据权利要求2所述的石油工程数据的存取系统,其特征在于:所述业务对象多叉树包括项目根对象、业务对象;所述项目根对象是记录工程项目基本信息的对象;每个业务对象作为一个子对象,从属于且仅从属于项目根对象或另一个业务对象,对应地,其所从属的所述项目根对象或另一个业务对象即为该子对象的父对象;所述业务对象之间的从属关系,与实际业务实体的从属关系相同;由项目根对象出发,能够逐级索引得到全部业务对象;所述工程项目基本信息包括项目名称、创建人、创建日期。4.根据权利要求3所述的石油工程数据的存取系统,其特征在于:所述业务对象包括结构化业务对象和非结构化业务对象;每个所述结构化业务对象包含一个或者多个属性,每个属性对应一项结构化数据;每个非结构化业务对象包含非结构化数据文件的索引信息。5.根据权利要求4所述的石油工程数据的存取系统,其特征在于:所述序列化处理模块从业务对象多叉树的项目根对象开始,遍历该业务对象多叉树,将每个遍历到的业务对象,进行序列化处...

【专利技术属性】
技术研发人员:孙旭东何江邹本友孙旭王玉娟段继男
申请(专利权)人:中国石油化工股份有限公司中国石油化工股份有限公司石油工程技术研究院
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1