一种基于需求驱动的电梯数据服务组合与视图自动生成方法与流程

文档序号:15047397发布日期:2018-07-27 22:59阅读:136来源:国知局
本发明涉及一种基于需求驱动的电梯数据服务组合与视图自动生成方法。
背景技术
:电梯数据源涵盖生产、维保、使用的各个阶段,其类别包括电梯的基本数据、生产数据、维保数据、运行数据等,具有跨企业、异构、自治等主要特点。由于这些数据采用大量不同类型的数据存储,存储在跨平台且异构,使分散的电梯数据难以实现共享。针对电梯数据源的异构性、分布性和自治性,需要具备一个全局视图模式对不同的数据源的数据进行关系映射,实现跨越数据的集成。数据集成将异构数据源整合起来以一个统一的数据视图提供给用户,这个视图是物化视图和虚拟视图。虚拟视图法是将各个异构数据源模型信息集成到一个中心服务器,实际数据依然保存在各个数据源系统中的一种数据集成方式。这种统一的全局视图模式并不是真实的数据副本集成的表现形式,而是为了方便用户透明化完成数据交互流程,解决数据源异构的问题,提供给用户的统一查询接口,所以这种全局视图模式就是统一虚拟视图。在数据服务组合与数据视图方面,guz等(ieeetransactionsonservicescomputing,2010)提出了一种服务数据链接模型(sdl)来描述服务数据相关性,并介绍了sdl模型在数据驱动的自动服务组合领域的应用;张鹏等(计算机学报,2011)根据用户的组合结果,通过复合数据服务的等价变换,生成运行效果相同的多种数据服务组合方案,并提出了最小化更新代价的数据视图的更新优化算法,利用该算法为用户推荐优化的数据服务组合方案;温彦等(计算机科学与探索,2012)提出了跨组织业务数据视图的动态生成方法iviewer,通过可视化和易用的数据服务组合操作来动态构建数据视图;刘晨等(北方工业大学学报,2012)将数据服务作为数据视图构建的基本元素,将其与一个易于用户操控的呈现界面关联起来,通过提供可视化的集成环境和界面级的聚合操作实现数据集成;张鹏等(计算机学报,2013)提出了一种基于数据服务的嵌套视图动态更新方法,利用指针为嵌套视图中的元组建立嵌套任意层次的数据服务的引用,同时给出了一种记录数据服务更新的日志以及在该日志上的嵌套视图增量更新算法,提高了嵌套视图的数据新鲜度。技术实现要素:本发明要克服现有技术的上述缺点,提出一种基于需求驱动的电梯数据服务组合与视图自动生成方法。本发明在电梯数据服务依赖图的基础上,根据用户数据需求自动对数据服务组合,生成电梯复合数据服务,再以用户约束条件为输入,执行复合数据服务生成数据组合视图,提高了数据组合视图生成的自动化程度,具有较强的实用价值。一种基于需求驱动的电梯数据服务组合与视图自动生成方法,包括以下步骤:(1)建立电梯数据服务依赖图;将电梯相关数据集封装为电梯原子数据服务,其定义如下:定义1原子数据服务:将可独立访问且语义不可再分的数据服务称为原子数据服务,它表示为一个八元组ads=<id,name,fields,description,input,output,operations,publisher>,其中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,operations>,其中requires表示数据需求的属性列表;conditions={<field,value>|field表示属性名,value表示属性值>}表示数据需求的约束条件;operations={get,delete,update}表示需要执行的操作;(2.2)基于数据服务依赖图生成复合数据服务;根据用户数据需求,在数据服务依赖图上自动搜索相关的原子数据服务,并将原子数据服务组合的结果称为复合数据服务cds,其定义如下:定义3复合数据服务:由若干原子数据服务组成且可被独立访问的数据服务称为复合数据服务,它表示为一个八元组cds=<id,name,sub-dsdg,description,input,output,operations,publisher>,其中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条件进行筛选,结束算法;数据组合视图中包含的属性与数据需求的属性列表相匹配,当执行的数据结果存在满足数据需求的约束条件时,自动生成一张二维表格。本发明的优点是:本发明根据原子数据服务的依赖关系构建数据服务依赖图,在此基础上,根据用户数据需求自动组合原子数据服务生成复合数据服务,再以用户约束条件为输入执行复合数据服务生成数据组合视图,为基于数据服务的数据集成提供了一种有效的数据服务组合与视图自动生成方法,提高了其自动化程度。附图说明图1是本发明的电梯数据依赖图图2是本发明的电梯数据服务依赖图图3是本发明的满足用户数据需求的复合数据服务依赖图具体实施方式下面结合附图,进一步说明本发明的技术方案。为便于说明,设存在电梯企业的两个信息系统,它们包括的关系模式以及属性如表1所示,设计部门电梯基本信息表主键为a,电梯客户信息表主键为e,电梯订单信息表联合主键为{a,e};维修部门电梯基本信息表主键为k,电梯维修记录主键为o,电梯维修记录联合主键为{k,o},其中的属性a和属性k在两个信息系统中语义等价,相互依赖,为数据集成和共享提供了桥梁作用;表1电梯企业信息系统数据集结合该电梯数据集对基于需求驱动的电梯数据服务组合与视图自动生成方法的具体实施方式进行说明,步骤如下:(1)建立电梯数据服务依赖图;将电梯相关数据集封装为电梯原子数据服务,得到电梯原子数据服务集合如表2所示;表2电梯原子数据服务集合根据属性间的函数依赖和连接依赖,建立电梯数据依赖图ddg,其节点为属性,有向边为依赖关系,如图1所示;基于电梯数据依赖图,将属性间的数据依赖关系直接转换为原子数据服务之间的依赖关系,构建电梯数据服务依赖图dsdg,其节点为原子数据服务,无向边为连通关系,如图2所示;(2)根据用户需求自动生成电梯复合数据服务;(2.1)用户数据需求描述;数据服务组合过程是在用户数据需求驱动下进行的,用数据需求dr表示用户所需要操作的数据对象;设存在一个数据查询需求:客户名称为“杭州大厦”,电梯名称为“观光电梯”的电梯信息,该数据需求dr=<{客户名称,规格型号,安装日期,电梯名称,安装位置},{<客户名称,“杭州大厦”>、<电梯名称,“观光电梯”>},get>,其中{客户名称,规格型号,安装日期,电梯名称,安装位置}表示查询需求的属性列表;(2.2)基于数据服务依赖图生成复合数据服务;根据用户数据需求,在数据服务依赖图上自动搜索相关的原子数据服务,并将原子数据服务组合的结果称为复合数据服务cds;以上述查询需求dr为例,按照
发明内容中的复合数据服务生成算法得到满足该需求的复合数据服务,如图3所示;(3)根据用户约束条件自动生成电梯数据组合视图;复合数据服务cds包含了与数据需求相关的原子数据服务及其依赖关系,以用户数据需求的约束条件作为输入,其执行的结果称为数据组合视图;按照
发明内容中的电梯数据组合视图生成算法得到该复合数据服务对应的电梯数据组合视图。表3电梯数据组合视图客户名称规格型号安装日期电梯名称安装位置杭州大厦kwg2000/0.5vvvf2007-03-01观光电梯下城区武林广场21号杭州大厦kwg20002008-08-01观光电梯下城区武林广场21号杭州大厦sr1000/0.5-w2009-08-01观光电梯下城区武林广场21号本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1