构造式数据交换模型的制作方法

文档序号:6444381阅读:619来源:国知局
专利名称:构造式数据交换模型的制作方法
技术领域
本发明属于信息技术领域,具体涉及ー种构造式数据交換模型。
背景技术
计算机技术经过几十年的发展,在各个行业和领域已经得到了广泛的应用,随着网络和分布式计算技术的发展,部门、行业、领域、企业之间正在进行越来越频繁的数据交换,大量的系统被整合和集成起来形成更加复杂和自动化的信息处理系统。因为系统开发受到应用领域、应用目标、依赖环境的影响,已经存在的系统之间存在数据模型、数据格式之间的差异,因此需要实现不同应用系统间的数据交換。为了实现不同系统间的数据交換,不同领域制定了大量的数据交換格式和交互方法。很多成熟的商业软件提供的交互格式,比如AutoCAD的DXF格式;不同领域的组织也參与制定本领域的通用数据交換格式,比如OOC制定的GML、Simple Feature规范等。有的组织开发面向数据交換和数据转换的转换系统,比如Mfe公司提供的GIS数据转换引擎FME。 但是面对数据交換的需求,不同企业、组织制定的数据交互机制,往往直接从自身的交互需求出发,缺乏ー套共享的数据交互基础。

发明内容
本发明的目的是提供ー种结构简单、易于编程的数据交換模型,为异构系统的数据交換提供一种解决方案,该模型也可以作为一种数据序列化的方法,用于分布式的数据传输和数据的本地存储。本发明是基于如下对数据组织、数据存储和数据结构的基本分析
i.变量是构成数据结构的基础,在编程语言中,其类型是基本一致,比如常用的整数、浮点数、字符串等;
.变量集合(数組)是组织具有简单重复模式数据的常用方式,如图像可以认为是颜色的有序集合;
iii.层次结构(树)是ー种通用的数据组织方式,复杂的数据结构和数据内容, 都可以用嵌套的层次来组织;
iv.以ニ维表(Table)为基础的关系模型成为当前应用最广泛的数据库模型,大量的数据以关系模型进行存储;
v.命名是表示数据含义的最简单有效的方式,如数据库表字段、文件夹、数据结构设计等都是名字表示相关项;
Vi.数据结构的功能依赖于对其的解释,比如同一个三元组U,y,Z),在不同的应用中可以认为是三维坐标,也可以解释成三维向量,如果将ζ视为半径χ,y视为点,则解释成平面上的圆。基于上述分析,本发明的构造式数据交換模型采用如下技术方案
构造式数据交換模型包括节点和核两种基本数据构造元素,其中,节点包含0到多个孩子节点,所述节点及其孩子节点构成层次结构;每个节点包含ー个名字和ー个核,核的子类型为存储数据类型或者为指示节点作为孩子节点容器的行为类型;当所述核为存储数据类型吋,核所属节点包含0个孩子节点,无父亲的节点及其子节点构成一个数据集。所述核为存储数据类型吋,包括存储值和存储值的数组两类,这两种类型均仅包括整数、浮点数、字符串,ニ维向量、三维向量和四维向量。所述核为指示所属节点作为孩子节点容器的行为类型吋,根据核的指示其行为包括结构、列表、键值对和ニ维表。当所述核指示所属节点的行为是结构时,该节点的孩子节点可以包含任意类型的核。当所述核指示所属节点的行为是列表吋,该节点的孩子节点拥有相同节点层次结构。当所述核指示所属节点的行为是键值对时,该节点包含两个孩子节点,且孩子节点的核为具有相同元素个数的数組,两个数组的元素按照顺序一一对应,第一个数组中的元素是键,第 ニ个数组中的元素是值。当所述核指示所属节点的行为是ニ维表时,该节点包含两个以上孩子节点,且孩子节点的核为具有相同元素个数的数組,或孩子节点是列表类型的容器,且容器中的节点个数与数组的元素个数相同。可以通过节点的名字获取节点中的孩子节点,也可以通过索引获取节点中的孩子 ザル本发明的构造式数据交換模型,通过总结数据结构、数据组织以及数据存储中的 ー些通用模式,建立基本数据交換构造单元,通过基本构造单元的組合与堆叠,描述数据交换内容。这套基础为各种数据交換提供一組固定的结构、模式和API,在此基础上,构建个性化的交互机制。本发明的模型具有结构简単、灵活,自描述特性,可用以分布式计算的数据传输、计算模块的參数描述、异构系统间的数据交換等多种领域。


图1是本发明构造式数据交換模型的结构示意图。图2是本发明构造式数据交換模型的核类型常量表。图3是本发明构造式数据交換模型的向量类型结构定义。图4是本发明构造式数据交換模型的节点-核UML图。图5是本发明实施例中用构造式数据交換模型表示的位图结构。图6是本发明实施例中用构造式数据交換模型表示的多边形结构。图7是本发明实施例中用构造式数据交換模型表示的世界政区数据。
具体实施例方式下面结合附图和实施例对本发明做进ー步详细说明。本发明的构造式数据交換模型其定义如下 (1)构造式数据交換模型的基本数据类型
构造式数据交換模型将如下数据类型作为基本数据类型
整数(Integer)、浮点数(Float)、字符串(String), ニ维向量(VeCtor2d)、三维向量 (Vector3d)、四维向量(Vector4d)。构造式数据交換模型将向量类型作为基本数据类型,是为了更好的支持空间数据的表示。ニ维向量包含两个Float元素;三维向量包含三个Float元素;四维向量包含四个 Float兀索。(2)构造式数据交換模型的构造元素
构造式数据交換模型包含节点(Node)和核(Kernel)两种构造元素,节点拥有1个可读的名字(Name),拥有1个核和拥有0到多个孩子节点。节点构成递归的层次树结构,每个节点都是下ー级节点的容器。如果ー个节点没有父亲节点,则称其为根节点(Root);如果ー个节点没有孩子节点,则称其叶子节点 (Leaf)。如果ー个节点拥有孩子节点,则称其为容器节点(Container)。根节点及其所有孩子Node构成ー个数据集(Dataset)。(3)构造式数据交換模型的核(Kernel)
构造式数据交換模型包含两种基本类型的核,一种是存储数据的核,另ー种是指示节点作为容器时的容器类型。I.存储数据的核
构造式数据交換模型中存储数据的核分为基本数据核和数组核两种,其中基本数据核存储(1)所述中基本数据类型的存储(1)所述基本数据类型的数組。如果ー个节点的核是存储数据的核,则该节点没有孩子结点,也就是该节点是ー 个叶子节点。II.节点容器类型及其类型定义核(Container Type Kernel)
构造式数据交換模型的节点作为孩子节点容器吋,有四种类型的容器,分別是结构 (Structure)容器、节点列表(Node List)容器、键值对(Value Map)容器和ニ维表(Table) 容器。节点容器类型的核用以指示节点作为容器的类型,下面分别对构造式数据交換模型定义的四种容器类型进行说明 a)结构容器节点
节点包含大于1个的孩子节点,容器对孩子节点的类型、个数无特别约束。结构容器用以组织复杂的层次结构。b)节点列表容器
节点包含0到多个孩子节点,且所有孩子节点的具有相同的节点层次结构。节点列表容器用以组织具有相同结构的数据内容。c)键值对容器
节点必须包含两个孩子节点,且孩子节点的核是数组核,同时两个数组元素的个数要保持相等。此时,两个数组中的元素一一对应,第一个节点中的元素作为键值对的键,第二个节点中的元素作为键值对的值。d) ニ维表容器
节点包含两个以上的孩子节点,且所有孩子节点的核是数组核,同时所有数组中的元素个数保持相等。此时每个数组构成了ニ维表中的一列,具有相同索引序号的数组元素构成表了中的一行。(4)构造式数据交換模型的UML类图
构造式数据交換模型的可以由UML类图进行表示。首先定义了一个枚举常量表(enum KernelType),将所有Kernel类型赋予ー个唯
5一编码,见附图1。其中ktArray需要与kthteger-ktVectorfd组合,表示数组类型的核, ktArray+ktlnteger = 0x011,表示整数数组,以此类推ktArray+ktVector4d=0x016表示四维向量的数組。其次,Vector2d、Vector3d、Vector4d可以使用Float类型构造的结构表示,如附图2所示。第三,定义构造式数据交換模型的类图,见附图3。Node(节点)包含Name(名称)、Kernel (核)、Nodes (孩子节点)三个字段。Kernel是个抽象类,拥有ー个虚拟函数 GetType函数,返回KernelType类型,指示当前Kernel属于什么类型。Kernel类有三个直接子类WalueKernel用以抽象存储值的核;ArrayKernel用以抽象存储数组的核,包含指示元素个数的Count字段^ontainerTypeKernel用以抽象节点容器类型,实现GetType函数返回 ktStructure 至Ij ktTable 的值。ValueKernel 禾ロ ArrayKernel 抑有存储 Int、Float、String、Vector2d、Vector3d、 Vector4d 类型的子类型KnInt、KnFloat、Kr^tring、KnVector2d、KnVector3d、KnVector4d 以及 KnIntArray> KnFloatArray> KnStringArray> KnVector2dArray> KnVector3dArray> KnVector4dArray。下面基于构造式数据交換模型对常用数据进行表达。(1)位像。附图4是位像的表达,顶层节点Bitmap是ー个结构容器,包含三个子节点Width节点用Kr^nteger存储图像的宽度;Height节点用Kr^nteger存储图像的高度;Pixels节点用KnhtegerArray存储像素值,假设像素是32位真彩色。(2)多边形。多边形是一种几何结构,包含一个外环和若干个内环。附图5是这种结构的表达=Polygon节点时一个结构容器,包含ExternalRing (外环)和InnerRings (内环)两个自节点。ExternalRing节点用KnVectorfdArray存储顶点序列,表示环结构。 InnerRings包含一系列结构相同的InnerRing结构,表示内环。(3)世界政区数据。假设有ー个世界政区数据库,包含每个国家的政区图,国家名称、首都名称、人口、面积以及首都的位置,可以使用附图6所示的构造式数据交換模型表示。Worldmap是顶层的节点;Siapes是ー个KnList类型的节点,包含使用Polygon结构表示的所有国家的边界信息。Database是属性部分,是ー个KnTabIe类型的节点,包含国家名称节点(CountyName)、首都节点(Capital)、人口节点(Population)、面积节点(Area)以及 g ^11/. :! ;1 (CapticalLocation;0本发明的构造式数据交換模型可以应用在具有建立数据交互需求的应用领域,也可以基于该模型,建立No-SQL数据库系统。
权利要求
1.构造式数据交換模型,其特征在干,该模型包括节点和核两种基本数据构造元素, 其中,节点包含0到多个孩子节点,所述节点及其孩子节点构成层次结构;每个节点包含一个名字和ー个核,核的子类型为存储数据类型或者为指示节点作为孩子节点容器的行为类型;当所述核为存储数据类型吋,核所属节点包含0个孩子节点,无父亲的节点及其子节点构成ー个数据集。
2.根据权利要求1所述的构造式数据交換模型,其特征在干,所述核为存储数据类型吋,包括存储值和存储值的数组两类,这两种类型均仅包括整数、浮点数、字符串,ニ维向量、三维向量和四维向量。
3.根据权利要求1所述的构造式数据交換模型,其特征在干,所述核为指示所属节点作为孩子节点容器的行为类型吋,根据核的指示其行为包括结构、列表、键值对和ニ维表。
4.根据权利要求3所述的构造式数据交換模型,其特征在干,当所述核指示所属节点的行为是结构时,该节点的孩子节点可以包含任意类型的核。
5.根据权利要求3所述的构造式数据交換模型,其特征在干,当所述核指示所属节点的行为是列表吋,该节点的所有孩子节点拥有相同节点层次结构。
6.根据权利要求3所述的构造式数据交換模型,其特征在干,当所述核指示所属节点的行为是键值对时,该节点包含两个孩子节点,且孩子节点的核为具有相同元素个数的数組,两个数组的元素按照顺序一一对应,且第一个数组中的元素是键值对中的键,第二个数组中的元素是键值对中的值。
7.根据权利要求3所述的构造式数据交換模型,其特征在干,当所述核指示所属节点的行为是ニ维表时,该节点包含两个以上孩子节点,且孩子节点的核为具有相同元素个数的数組,或孩子节点是列表类型的容器,且容器中子节点个数与数组元素个数相同。
全文摘要
本发明公开了一种构造式数据交换模型,属于信息技术领域。该模型包含“节点(Node)”和“核(Kernel)”两种基本构造元素;节点可以包含0到多个孩子节点,节点及其孩子节点构成递归的层次结构;每个节点拥有一个核,核包括存储数据和用以指示所属节点作为孩子节点容器的行为等类型;核存储的数据包括基本类型(字节、整数、浮点数、字符串、向量)以及基本类型的数组;节点作为孩子节点的容器时其行为可以使是结构、列表、键值对和数据表。本发明的构造式数据交换模型具有结构简单、灵活,自描述特性,可用以分布式计算的数据传输、计算模块的参数描述、异构系统间的数据交换等多种领域。
文档编号G06F17/30GK102591959SQ20111045442
公开日2012年7月18日 申请日期2011年12月30日 优先权日2011年12月30日
发明者吴明光, 温永宁, 胡迪, 闾国年, 陈旻 申请人:南京师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1