[发明专利]一种基于需求驱动的电梯数据服务组合与视图自动生成方法在审
申请号: | 201810037892.0 | 申请日: | 2018-01-16 |
公开(公告)号: | CN108334566A | 公开(公告)日: | 2018-07-27 |
发明(设计)人: | 张元鸣;黄浪游;李梦妮;陆佳炜;徐俊;高飞;肖刚 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;黄美娟 |
地址: | 310014 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于需求驱动的电梯数据服务组合与视图自动生成方法。首先,将电梯相关数据集封装为电梯原子数据服务;其次,根据用户数据需求,在数据服务依赖图上自动搜索相关的原子数据服务,并将原子数据服务组合生成电梯复合数据服务;最后,以用户数据需求的约束条件作为输入,执行复合数据服务生成电梯数据组合视图。本发明为基于需求驱动的数据集成提供了一种有效的数据组合视图自动生成方法,提高了其自动化程度。 | ||
搜索关键词: | 电梯数据 服务组合 需求驱动 原子数据 自动生成 电梯 复合数据 用户数据 服务生成 数据服务 数据集成 数据组合 约束条件 自动搜索 组合视图 数据集 依赖图 封装 服务 自动化 | ||
【主权项】:
1.一种基于需求驱动的电梯数据服务组合与视图自动生成方法,包括以下步骤:(1)建立电梯数据服务依赖图;将电梯相关数据集封装为电梯原子数据服务,其定义如下:定义1原子数据服务:将可独立访问且语义不可再分的数据服务称为原子数据服务,它表示为一个八元组ADS=,其中Id是ADS的唯一标识;Name是ADS的名称;Fields是ADS的属性列表;Description是ADS的语义描述;Input是ADS的输入,有一个或多个;Output是ADS的输出,是一个关系;Operations是对ADS可执行的操作,包括查询、修改和删除;Publisher是ADS的发布者;根据数据依赖关系,建立电梯数据服务依赖图的具体步骤如下:步骤a1:根据电梯数据库的元数据,封装电梯原子数据服务ADS;步骤a2:根据属性间的函数依赖和连接依赖,建立电梯数据依赖图DDG,其节点为属性,有向边为依赖关系;步骤a3:基于电梯数据依赖图,将属性间的数据依赖关系直接转换为原子数据服务之间的依赖关系,构建电梯数据服务依赖图DSDG,其节点为原子数据服务,无向边为连通关系;(2)根据用户需求自动生成电梯复合数据服务;(2.1)用户数据需求描述;数据服务组合过程是在用户数据需求驱动下进行的,用户数据需求DR表示用户所需要操作的数据对象,其定义如下:定义2数据需求:用户所需要的属性列表、约束条件以及执行的操作称为数据需求,表示为一个三元组DR=,其中Requires表示数据需求的属性列表;Conditions={|Field表示属性名,Value表示属性值>}表示数据需求的约束条件;Operations={get,delete,update}表示需要执行的操作;(2.2)基于数据服务依赖图生成复合数据服务;根据用户数据需求,在数据服务依赖图上自动搜索相关的原子数据服务,并将原子数据服务组合的结果称为复合数据服务CDS,其定义如下:定义3复合数据服务:由若干原子数据服务组成且可被独立访问的数据服务称为复合数据服务,它表示为一个八元组CDS=,其中Id是CDS的唯一标识;Name是CDS的名称;Sub‑DSG是DSDG的子图;Description是CDS的语义描述;Input是CDS的输入,有1到多个;Output是CDS的输出,是一个关系;Operations是对CDS可执行的操作;Publisher是CDS的发布者;基于需求驱动的复合数据服务生成算法的思想:从第一个需求属性开始按广度优先策略访问数据服务依赖图,直至访问到所有需求属性,得到第一个属性至其余属性之间的访问路径,按访问路径依次选取相关的ADS,组合所有ADS生成CDS,算法具体步骤如下:输入:数据服务依赖图DSDG,数据需求DR输出:复合数据服务CDS步骤b1:选取DR的Requires属性列表中第一个属性field1,属性field1做已访问标记,判断属性field1是否为主键,若是,选取以field1为输入属性、输出属性的ADS为初始访问结点node1;若不是,选取以field1为输入属性、field1所属表主键为输出属性的ADS为初始访问结点node1;步骤b2:将结点node1做已访问标记,加入输出列表并压入队列queue;步骤b3:若queue不为空,则弹出结点node1,将node1所有邻接结点中未访问过的结点压入queue,做已访问标记,并记录每个结点的前置结点为node1;步骤b4:判断已访问结点是否包含DR属性列表中所有的ADS,若包含,则转步骤b5;若不包含,则转步骤b3;步骤b5:判断DR的Requires属性列表中是否存在未访问的属性field2,若存在,属性field2做已访问标记,按步骤b1的判断规则选取ADS作为初始访问结点node2,将node2加入输出列表中;若不存在,将输出列表中的ADS封装为一个CDS,结束算法;步骤b6:判断node2的前置结点是否包含在输出列表中,若包含,则转步骤b5;若不包含,则加入输出列表中,将前置结点标为node2重复步骤b6;只要数据依赖图包含数据需求的属性列表中所有属性,就一定能够查找到相关原子数据服务,通过服务组合生成满足数据需求的复合数据服务;(3)根据用户约束条件自动生成电梯数据组合视图;复合数据服务CDS包含了与数据需求相关的原子数据服务及其依赖关系,以用户数据需求的约束条件作为输入,其执行的结果称为数据组合视图,其定义如下:定义4数据组合视图:执行复合数据服务后生成的结果称为数据组合视图,其形式上是一张二维表格;基于需求驱动的电梯数据组合视图自动生成算法的思想:从第一个条件属性对应的ADS开始执行,并按广度优先策略访问复合数据服务,当有冗余访问的情况时,将图结构的已访问部分和未访问部分划分,从未访问部分继续访问,直至执行所有ADS,对所有产生的数据子集依次进行连接操作组成完整的数据集,再按所有条件对数据集进行投影和筛选操作,得到结果集,算法具体步骤如下:输入:复合数据服务依赖图CDS,数据需求DR输出:电梯数据组合视图DCV步骤c1:选取DR的Conditions中第一个条件的属性,判断属性field是否为主键,若是,执行输入属性、输出属性都为field的ADS1;若不是,执行以field为输入属性、field所属表主键为输出属性的ADS1;步骤c2:按广度优先策略,将与ADS1所有连通的ADS压入队列Queue1步骤c3:若Queue1不为空,弹出ADS2,若ADS1的输出属性为主键,转步骤c4;若ADS1的输出属性不为主键,转步骤c6;若Queue1为空,将当前数据集存入数据集链表,转步骤c8;步骤c4:若ADS2的输出属性为主键,则ADS2的输出结果等于ADS1的输出结果;若ADS2的输出属性不为主键,转步骤c5;步骤c5:若ADS2的输出属性所属的表有多个主键,将除ADS1的输出属性外的其余主键为输入的ADS压入队列Queue2,然后转步骤c2;若只有一个主键,则以ADS1的输出结果为输入,执行ADS2,然后转步骤c2;步骤c6:若ADS2的输出属性与ADS1的输出属性属于同一张表,转步骤7,否则将ADS2压入队列Queue2;步骤c7:若ADS2的输出属性所属表只有一个主键,则转步骤c5,否则将除ADS1的输出属性外的其余主键为输入的ADS压入队列Queue2;步骤c8:若Queue2不为空,弹出ADS3,转步骤c2;若Queue2为空,将数据集链表里的多个数据子集执行连接操作;步骤c9:按所有的Requires属性对连接的结果执行投影操作,然后按所有的Conditions条件进行筛选,结束算法;数据组合视图中包含的属性与数据需求的属性列表相匹配,当执行的数据结果存在满足数据需求的约束条件时,自动生成一张二维表格。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810037892.0/,转载请声明来源钻瓜专利网。