CN103390018A - 一种基于SDD的Web服务数据建模与搜索方法 - Google Patents
一种基于SDD的Web服务数据建模与搜索方法 Download PDFInfo
- Publication number
- CN103390018A CN103390018A CN2013101598446A CN201310159844A CN103390018A CN 103390018 A CN103390018 A CN 103390018A CN 2013101598446 A CN2013101598446 A CN 2013101598446A CN 201310159844 A CN201310159844 A CN 201310159844A CN 103390018 A CN103390018 A CN 103390018A
- Authority
- CN
- China
- Prior art keywords
- service
- data
- file
- information
- sdd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于SDD的Web服务数据建模与搜索方法,第一步、建立一个基于SDD的Web服务数据模型,分为解析层、控制层和表现层;第二步、基于所述的模型,提出的Web服务数据搜索方法。
Description
技术领域
本发明涉及一种对Web服务数据建模与搜索的方法
背景技术
随着Internet平台的快速发展与广泛应用,互联网上数据资源有效利用已经成为信息化社会的重大需求,导致了计算服务化进程不断加快。“服务”作为现代分布式协同计算系统的技术构成单元,通过面向服务的架构(Service-Oriented Architecture,SOA)、服务计算模式及其实现技术,支持着计算系统的随需演化与动态重组。近年来,与服务计算相关的研究层出不穷,而服务组合一直是服务计算研究的热点之一。通过服务来抽象和封装数据,利用服务组合实现动态地组织和聚合互联网上丰富的服务资源,能高效地开发可以满足复杂、动态业务需求的网络化应用,快速构建出满足用户个性化需要的服务,实现异构系统间数据的共享和利用。
目前,服务组合效率的提高仍然面临着巨大的挑战。现有的SOA所采用的服务组织模式使得服务资源数目呈爆炸式增长,从而出现大量功能相同或相似的服务,服务功能及质量均呈现出持续变化的特点。对于用户来说,在一个大型服务资源库内,通过服务组合来发现和调用关心的数据资源是一个复杂、多变的过程,开发者需要掌握大量服务描述标准、检索技术以及领域相关知识,才能发现合适的可组合服务,尤其数据本身又是一种复杂数据,这更加大了用户对数据资源的利用难度。
由于目前的SOA平台缺乏一种直观的资源视图,用户往往很难对需要的数据资源进行透明和一体化的访问。当用户为查询或操作某种数据资源时,需要在服务资源库查找合适服务,但资源库内不相关或者关联度不大的服务往往扩大了用户的查找范围,使用户不得不对大量服务逐一进行筛选和试用,当选定服务出错后又不得不重复一次类似的发现过程,因此,在现有SOA的基础上,有必要从用户需求出发,建立针对服务数据的有效搜索方法,从而提高虚拟计算环境的用户友好性,完成对服务的组织和管理,实现数据的透明化、一体化共享。
发明内容
本发明提供了一种解决上述问题的方案,提供一种对Web服务数据建模与搜索的方法,方法通过SDD(Service Data Description)文档来对一个大型服务资源库内的Web服务和其提供数据的能力进行描述,引入改进的惰性加载机制,实现服务资源库的快速读取与实时更新、混合视图的生成,服务和服务数据的搜索。让用户发现数据分析和数据查询结果之间的相互关系,获取对复杂情景的更深层次的理解,以快速找出适合自己的服务,满足用户的需要。
本发明所采用的技术方案是:
第一步、建立一个基于SDD的Web服务数据模型,分为解析层、控制层和表现层。
1.1、解析层(parse layer):负责模型的初始化,以及对底层数据的解析。解析层数据的来源是整个服务资源库的WSDL和BPEL文件。
解析层包含的模块有:
解析器(Parser):负责服务资源库的解析操作为不同类型的文件提供了专门的XML解析程序,每解析完一个文件,解析器把需要的信息写入SDD文件中。
SDD(Service Data Description):一种WSDL/BPEL的XML映射文件。
分析器(Analyzer):专门负责读取SDD的信息并进行分析。
装载器(Loader):负责初始化工作,根据全局资源配置文件,通知解析器服务资源的位置,并完成对Meta-Service MAP文件的读写。
全局资源配置文件(Globle Config):包括了资源库的地址与目录等信息,是一组资源信息的描述文件,描述资源部署的节点信息,是一种XML文件。
Meta-Service MAP:提供了时间戳信息,实现惰性加载机制的XML依据文件。
1.2、控制层(controller layer):负责数据的提取、转化以及与表现层的通讯,并能根据表现层触发的事件执行相应的动作。
控制层包含的模块有:
控制器(Controller):模型内信息传送的桥梁,负责将分析器采集的数据传送给转换器,并将转换器转换生成的数据模型发送到标签提供者;事件发生时,通知相关组件完成相应的工作。
转换器(Converter):针对表现层不同的可视化方式建立对应的数据模型,并把这些数据传送给控制器,形成于表现层的组件间的松耦合关系。
标签提供者(LabelProvider):负责接受控制器传来的信息,并通知更新相应的视图
1.3、表现层(expression layer):负责对外显示信息,并提供对用户操作的监听
表现层包含的模块有:
视图(View):将数据模型转换为平行坐标或点阵的可视化方式,以便用户进行直观理解,同时提供资源库的文件树,WSDL\BPEL\SDD的XML文件浏览编辑功能。
监听器(EventListener):监听用户事件。
第二步、基于所述的模型,提出的Web服务数据搜索方法如下:
步骤1:采用改进的惰性加载机制来提高模型对服务资源的加载速度,只执行一次完全加载,以后都通过时间戳和Meta-Service MAP进行局部更新
步骤1.1:模型第一次被调用后,调用装载器读取全局资源配置文件(文件内包括服务资源库的地址与内部文件目录及各种资源文件信息)和Meta-ServiceMAP文件信息并存储在内存中,Meta-Service MAP中的数据以(key,value)数据结构存储,其中key由文件名和文件存储的网络地址组成,value包含了一个时间戳信息和一个链表结构的数据,链表结构内保存该文件包含的serviceId或processId信息。由于是模型第一次启动,此时Meta-Service MAP对象的值为空。
步骤1.2:装载器唤醒解析器,解析器按照全局资源配置文件指定的网络路径对相应目录内的WSDL和BPEL文件进行读取,取出文件的名称和地址添加到Map的key中,取出文件的最后更新时间添加到时间戳内。
步骤2:设计SDD文件来实现对应WSDL和BPEL文件元素的映射。
SDD是一种XML文件,描述了服务自身数据和服务组合的流程信息,SDD的主要两部分领域设计为service元素和process元素。
service:主要描述了服务提供的数据能力,包含了服务的功能封装、服务的数据类型等信息。service属性serviceId提供给系统一个唯一的标识符,为确认服务资源库中服务的唯一性,serviceId由服务文件名称,服务URI,服务名称组成。SDD分析器可以根据serviceId快速定义服务。子元素function封装了能提供服务数据的操作,data元素代表了一个具体的数据信息,并通过data_type来描述其数据结构。
process:描述了服务组合的信息,startNode代表了服务组合的起点,intermediateNode指明服务流程要经过的中间节点,endNode代表服务的终结点。每一个节点通过variable元素来描述,variable提供了节点上涉及的Web服务、服务操作、参与的数据,以及当前路径的节点深度等信息。
步骤3:解析WSDL和BPEL文件并置换到SDD文件中,解析方法包括如下的子步骤;
步骤3.1:解析器根据WSDL文件的规则完成对其内部需要的元素的提取,包括核心元素types、message、portType、partnerLinkType及其下面的所有子元素和属性。
步骤3.2:进行WSDL元素与SDD元素间映射。
步骤3.3:解析器解析BPEL文件,读取服务组合的流程,并保存对wsdl元素的调用记录。
步骤3.4:建立BPEL元素与SDD元素的映射。
步骤3.5:建立SDD内部自身元素的关联关系。
步骤4:解析器解析完成后通知装载器,装载器将内存中的Map信息再写回到MAP文件内。
步骤5:当模型再次被调用时,将不再执行完全加载过程,而是将Meta-Service MAP中的key和时间戳信息与解析器解析出来的文件最后更新时间进行比较,如果没有服务资源在这段时间内被更新,SDD信息将不会被修改,并直接被系统读取。
步骤6:分析器根据用户对服务数据的搜索要求,按照SDD XSD规定的格式进行解析,获取对服务数据的描述。
步骤6.1、解析service元素及其子元素和属性,获取符合要求的服务信息
步骤6.2、解析process元素及其子元素和属性,获取符合要求的服务组合信息
步骤7:控制器将分析器采集的数据传送给转换器,转换器针对表现层不同的可视化方式建立对应的数据模型,并把这些数据传送给控制器。
步骤8、控制器再将转换器转换生成的数据模型发送到标签提供者,标签提供者负责接受控制器传来的信息,并通知更新表现层内相应的视图。
步骤9、搜索结果在视图中被转换为平行坐标和点阵的混合可视化方式。
步骤9.1:对服务资源库内提取的BPEL信息进行计算,找出已有的服务组合中最长的路径(路径上的每一个节点代表服务组合需要的一个服务),设最长路径XM初始值为0,搜索BPEL的<sequenc>元素,计算单个BPEL参与服务的个数为M,XM和M的计算规则如下:
步骤9.1.1、单次搜索过程中
对搜索到的receive子元素,M=M++;
对搜索到的reply子元素,M=M++;
对搜索到的from和to成对子元素,M=M++;
对搜索到的query子元素,M=M--;
步骤9.1.2、单次搜索结束后
如果XM<M,则XM=M;否则进入下一个BPEL文件的搜索
步骤9.1.3、搜索全部结束后,把服务组合最长的路径设置为平行坐标的最大维度数,维度代表了服务组合的路径深度,维度上的数据用服务来代替,折线代表了一个服务组合的路径。
步骤9.2:通过点阵来可视化服务内部数据及服务间的关联信息。
9.2.1、将SDD的service元素包含的子元素data所描述的数据类型data_type按照XML Scheme规范划分为简单类型和复杂类型两大类,其中复杂类型则由简单类型和/或其他复杂类型构造而成。
9.2.2、采用矩阵来表示service元素的数据结构,矩阵的标题行为子元素data的值,标题列为子元素data_type的值。读取service元素的属性获取服务名称、URI、数据所属的操作,这并把这些信息用矩形附加在矩阵上表示。
9.2.3、根据步骤6的解析结果,读取内存中存储process元素及其子元素startNode、intermediateNode、endNode的变量,根据变量值得出服务与服务间的组合关系,并用节点-链接图进行标识,如果服务与服务之间两两发生组合关系,通过直线连接相应的服务,箭头代表服务的数据流动方法。服务间交互的数据细节则通过矩阵中数据所在的行引出的箭头来表明。
9.2.4、在点阵中加入弹性层次机制,对复杂类型数据,在矩阵视图中增加节点“+”,当该节点被点击后,视图会提取出该数据的结构并用一个新的矩阵进行显示。在服务矩阵视图上方增加节点“+”/“-”,使之可以展开或闭合相关服务,来有效利用空间,减少链接之间在可视化时的交叉和覆盖。在节点-链接图上加入节点“+”/“-”,来开启或闭合服务与服务间的交互数据细节。
步骤9.3:在监听器内注册监听事件,当注册事件发生时,通知监听器,并传送一个事件对象e,该对象包含了事件发生时的各类状态信息,并由监听器发送到控制器,控制器解析事件对象并通知视图进行更新。
本发明的优点是:(1)模型实现服务资源库的快速读取与实时更新、完成了用户所要搜索的复杂数据的采集准备工作,以获取复杂情景下的数据更深层次的理解需求,同时为用户新的数据需求即时搜索支持的服务组合。(2)基于该模型的搜索方法,为用户提供了抽象层次较高的服务数据可视方式,让用户发现数据分析和数据查询结果之间的相互关系,以快速找出适合自己的服务,满足用户的需要。(3)在视图的生成过程中,都能保持和WSDL、BPEL文件间的实时联动,帮助用户监控资源库内各类服务组合信息在不同抽象层次上的变化。
下面结合附图进一步说明本发明。
附图说明
图1示出了模型的三层框架。
图2示出了改进的惰性加载机制流程。
图3示出了SDD文档的XML Scheme结构。
图4示出了WSDL/BPEL/SDD文档的解析流程。
图5示出了系统内某服务资源库的平行坐标可视图。
图6示出了系统内经服务搜索后的服务组合平行坐标可视图。
图7示出了系统内经服务搜索后的服务组合点阵可视图。
具体实施方式
下面结合附图对本发明作进一步描述。
实施例1
1、建立一个基于SDD的Web服务数据模型,模型按照分层架构思想设计,如图1所示,分为101解析层、102控制层和103表现层。
1.1、101解析层(parse layer):负责模型的初始化,以及对底层数据的解析。BPEL文件描述了服务组合的信息,而具体的服务信息仍然需要从WSDL文件中解读,因此解析层数据的来源是整个服务资源库的WSDL和BPEL文件。
101解析层包含的模块有:
解析器(Parser):负责服务资源库的解析操作,支持资源的分布式部署,能对网络上的XML文件进行解析。由于WSDL与BPEL元素结构不同,解析器为不同类型的文件提供了专门的XML解析程序,每解析完一个文件,解析器把需要的信息写入SDD文件中。
SDD(Service Data Description):一种WSDL/BPEL的XML映射文件。
分析器(Analyzer):专门负责读取SDD的信息并进行分析。
装载器(Loader):负责初始化工作,它能根据全局资源配置文件,告诉解析器服务资源的位置,并完成对Meta-Service MAP文件的读写。
全局资源配置文件(Globle Config):包括了资源库的地址与目录等信息,是一组资源信息的描述文件,描述资源部署的节点信息,是一种XML文件。
Meta-Service MAP:提供了时间戳信息,实现惰性加载机制的XML依据文件。
1.2、102控制层(controller layer):负责数据的提取、转化以及与表现层的通讯,并能根据表现层触发的事件执行相应的动作。
102控制层包含的模块有:
控制器(Controller):模型内信息传送的桥梁,负责将分析器采集的数据传送给转换器,并将转换器转换生成的数据模型发送到标签提供者;事件发生时,通知相关组件完成相应的工作。
转换器(Converter):分析器内提取的数据还无法直接在表现层运用,转换器针对表现层不同的可视化方式建立对应的数据模型,并把这些数据传送给控制器,形成于表现层的组件间的松耦合关系。
标签提供者(LabelProvider):负责接受控制器传来的信息,并通知更新相应的视图
1.3、103表现层(expression layer):负责对外显示信息,并提供对用户操作的监听
103表现层包含的模块有:
视图(View):将数据模型转换为平行坐标或点阵的可视化方式,以便用户进行直观理解,同时提供一些辅助视图,如资源库的文件树,WSDL\BPEL\SDD的XML文件浏览编辑。
监听器(EventListener):监听用户事件,如平行坐标和点阵间的联动,当用户更改了平行坐标的显示内容时,通知控制器重新生成点阵;用户单击“+”,则生成更多的层次信息等等。
2、基于所述的模型,提出的Web服务数据搜索方法如下:
步骤1:采用改进的惰性加载机制来提高模型对服务资源的加载速度,根据实际情况只执行一次完全加载,然后通过时间戳和Meta-Service MAP进行局部更新。
步骤1.1:如图2①所示,模型第一次被调用后,调用装载器读取全局资源配置文件(文件内包括服务资源库的地址与内部文件目录及各种资源文件信息)和Meta-Service MAP文件信息并存储在内存中,Meta-Service MAP中的数据以(key,value)数据结构存储,其中key由文件名和文件存储的网络地址组成,value包含了一个时间戳信息和一个链表结构的数据,链表结构内保存该文件包含的serviceId或processId信息。由于是模型第一次启动,此时Meta-ServiceMAP对象的值为空。
步骤1.2:装载器唤醒解析器(图2②),按照全局资源配置文件指定的网络路径对相应目录内的WSDL和BPEL文件进行读取(图2③),取出文件的名称和地址添加到Map的key中,取出文件的最后更新时间添加到时间戳内。
步骤2:设计SDD文件来实现对应WSDL和BPEL文件元素的映射。
SDD是一种XML文件,描述了服务自身数据和服务组合的流程信息,SDD的主要两部分领域设计为service元素和process元素。
service:主要描述了服务提供的数据能力,包含了服务的功能封装、服务的数据类型等信息。service属性serviceId提供给系统一个唯一的标识符,为确认服务资源库中服务的唯一性,serviceId由服务文件名称,服务URI,服务名称组成。SDD分析器可以根据serviceId快速定义服务。子元素function封装了能提供服务数据的操作,data元素代表了一个具体的数据信息,并通过data_type来描述其数据结构。
process:描述了服务组合的信息,startNode代表了服务组合的起点,intermediateNode指明服务流程要经过的中间节点,endNode代表服务的终结点。每一个节点通过variable元素来描述,variable提供了节点上涉及的Web服务、服务操作、参与的数据,以及当前路径的节点深度等信息。
步骤3:解析WSDL和BPEL文件并置换到SDD文件中(图2④),图中的实线表示文件内部元素间的互相调用关系(internal call),虚线表示元素对外部文件元素的互相调用关系(external call),具体解析方法包括如下的子步骤;
步骤3.1:解析器根据WSDL文件的规则完成对其内部需要的元素的提取,包括核心元素types、message、portType、partnerLinkType及其下面的所有子元素和属性(图4①)。这些核心元素的内部调用顺序如表1所示:
表1
元素A | 元素B | 关系 |
wsdl:partnerLinkType | wsdl:portType | A调用B |
wsdl:portType | wsdl:message | A调用B |
wsdl:message | wsdl:types | A调用B |
步骤3.2:进行WSDL元素与SDD元素间映射(图4②),映射规则如表2所示:
表2
元素A | 元素B | 关系 |
wsdl:types | sdd:data_type | A映射到B |
wsdl:message | sdd:data | A映射到B |
wsdl:portType | sdd:service | A映射到B |
步骤3.3:解析器解析BPEL文件,读取服务组合的流程,由于BPEL的许多元素基于WSDL定义的,解析器还必须保存对wsdl元素的调用记录(图4③)。这些元素的内部调用顺序如表3所示:
表3
元素A | 元素B | 关系 |
wsdl:partnerLinkType | bpel:parterLinks | B调用A |
bpel:variables | bpel:parterLinks | A调用B |
bpel:activity | bpel:variables | A调用B |
bpel:activity | bpel:parterLinks | A调用B |
步骤3.4:建立BPEL元素与SDD元素的映射(图4④),映射规则如表4所示:
表4
元素A | 元素B | 关系 |
bpel:activity | sdd:process:startNode | A映射到B |
bpel:activity | sdd:process:imtermediateNode | A映射到B |
bpel:activity | sdd:process:endNode | A映射到B |
步骤3.5:建立SDD内部自身元素的关联关系(图4⑤),规则如表5所示:
表5
元素A | 元素B | 关系 |
sdd:process:startNode:variable | sdd:data | A关联到B |
sdd:process imtermediateNode:variable | sdd:data | A关联到B |
sdd:process:endNode:variable | sdd:data | A关联到B |
步骤4:解析器解析完成后通知装载器(图2⑤),装载器将内存中的Map信息再写回到MAP文件内(图2⑥)。
步骤5:当模型再次被调用时,将不再执行完全加载过程,而是将Meta-Service MAP中的key和时间戳信息与解析器解析出来的文件最后更新时间进行比较,如果没有服务资源在这段时间内被更新,SDD信息将不会被修改,系统直接可以读取SDD,这样就大大提高了加载速度。
如果某文件的时间戳不匹配。如果key值不匹配,说明有新增或被删除的服务资源,如果时间戳不匹配,说明服务资源有更新,此时解析器都将对该文件重新进行解析,并更新对应的时间戳,同时修改SDD文件中对应的节点元素,由于只解析有变化的文件,执行效率相对较高。
步骤6:步骤1-5完成模型的加载和数据的读取工作,从本步骤开始分析器将根据用户对服务数据的搜索要求,自动按照SDD XSD规定的格式进行解析,获取对服务数据的描述。SDD的XSD描述格式如下:
步骤6.1、解析service元素及其子元素和属性,获取符合要求的服务信息,存储到内存变量中。
步骤6.2、解析process元素及其子元素和属性,获取符合要求的服务组合信息,存储到内存变量中。
步骤7:控制器将分析器采集的数据传送给转换器,转换器针对表现层不同的可视化方式建立对应的数据模型,并把这些数据传送给控制器。
步骤8、控制器再将转换器转换生成的数据模型发送到标签提供者,标签提供者负责接受控制器传来的信息,并通知更新表现层内相应的视图。
步骤9、搜索结果在视图中被转换为平行坐标和点阵的混合可视化方式。
步骤9.1:对服务资源库内提取的BPEL信息进行计算,找出已有的服务组合中最长的路径(路径上的每一个节点代表服务组合需要的一个服务),设最长路径XM初始值为0,搜索BPEL的<sequenc>元素,计算单个BPEL参与服务的个数为M,XM和M的计算规则如下:
步骤9.1.1、单次搜索过程中
对搜索到的receive子元素,M=M++;
对搜索到的reply子元素,M=M++;
对搜索到的from和to成对子元素,M=M++;
对搜索到的query子元素,M=M--;
步骤9.1.2、单次搜索结束后
如果XM<M,则XM=M;否则进入下一个BPEL文件的搜索
步骤9.1.3、搜索全部结束后,把服务组合最长的路径设置为平行坐标的最大维度数,维度代表了服务组合的路径深度,维度上的数据用服务来代替,折线代表了一个服务组合的路径。
步骤9.2:通过点阵来可视化服务内部数据及服务间的关联信息。
9.2.1、将SDD的service元素包含的子元素data所描述的数据类型data_type按照XML Scheme规范划分为简单类型和复杂类型两大类,其中复杂类型则由简单类型和/或其他复杂类型构造而成。
9.2.2、采用矩阵来表示service元素的数据结构,矩阵的标题行为子元素data的值,标题列为子元素data_type的值。读取service元素的属性获取服务名称、URI、数据所属的操作,这并把这些信息用矩形附加在矩阵上表示。
9.2.3、根据步骤6的解析结果,读取内存中存储process元素及其子元素startNode、intermediateNode、endNode的变量,根据变量值找出服务与服务间的组合关系,并用节点-链接图进行标识,如果服务与服务之间两两发生组合关系,通过直线连接相应的服务,箭头代表服务的数据流动方法。服务间交互的数据细节则通过矩阵中数据所在的行引出的箭头来表明。
9.2.4、在点阵中加入弹性层次机制,对复杂类型数据,在矩阵视图中增加节点“+”,当该节点被点击后,视图会提取出该数据的结构并用一个新的矩阵进行显示。在服务矩阵视图上方增加节点“+”/“-”,使之可以展开或闭合相关服务,来有效利用空间,减少链接之间在可视化时的交叉和覆盖。在节点-链接图上加入节点“+”/“-”,来开启或闭合服务与服务间的交互数据细节。
步骤9.3:在监听器内注册监听事件,当注册事件发生时,通知监听器,并传送一个事件对象e,该对象包含了事件发生时的各类状态信息,并由监听器发送到控制器,控制器解析事件对象并通知视图进行更新。。
实施例2
本发明提供了一种基于该模型的系统,系统开发实施环境采用基于EclipsePDE(Eclipse Plug-in Development Environment)技术开发。模型解析层的装载器、解析器和SDD分析器均使用了基于开源的log4j技术来实现对xml文件的解析。控制层与视图层采用SWT/JFace(Standard Widget Toolkit/JFace)技术创建视图,实现控制层与视图层的松耦合。可视化图形的绘制使用GEF(GraphicalEditing Framework)技术实现平行坐标和点阵的绘制。系统封装通过RCP(RichClient Platform)技术封装为胖客户端程序供用户使用。
以如下数字化校园领域的服务资源库为例来介绍本发明的具体实施例
选取15个关联性较强的服务来组成一个服务资源库,并且通过BPEL描述了这些服务之间的组合。表6对这些服务的属性进行了概述。
表6
其中SMS(Student Management System)为学生信息管理系统,URP(University Resource Planform)为高校数字化校园平台,CIS(Course InformationSystem)为选课信息系统,LMS(Library Management System)为图书馆借阅管理系统。
参照图5、图6、图7,改进的惰性加载机制的启动、SDD的生成、模型的初始化都与实施例1相同。图5示出了在模型初始化后,视图层运用GEF技术将服务资源库的服务组合数据模型转换为平行坐标的可视化方式。
用户想根据某个学生的信息,来查询他选修的课程和相关的参考书籍,然后希望了解图书馆中该类书籍的借阅情况。通过打开服务数据搜索对话框,输入bookname和author,分析器根据请求解析SDD,控制器将分析器采集的数据传送给转换器,转换器建立对应的数据模型,并把这些数据传送给控制器。控制器再将转换器转换生成的数据模型发送到标签提供者,标签提供者负责接受控制器传来的信息,并通知更新表现层内相应的视图,图6示出了搜索到资源库中存在三个服务组合满足用户搜索的条件,红色的路径代表了满足条件的服务组合,红色的原点代表了最终负责输出的服务节点。此时系统已经过滤掉不需要的服务组合。
用户点击点阵视图,系统用过GEF技术把内存中的数据模型转换为对应的点阵视图(图7),该视图与平行坐标视图动态关联。用户可以展开每个服务组合最后一条链接线上的+号来了解详细的数据交互关系,需找能满足自身需求的服务组合。可以发现701服务组合查询的是学生借书的情况,无法和课程信息关联。702服务组合通过课程编号来查询书籍信息,不符合用户的预期输入。703服务组合通过输入学生的姓名和班级,最终获得该学生选修课程的名称和相应的参考书的借阅情况,能满足用户的需求。
Claims (1)
1.一种基于SDD的Web服务数据建模与搜索方法,所采用的技术方案是:
第一步、建立一个基于SDD的Web服务数据模型,分为解析层、控制层和表现层。
1.1、解析层(parse layer):负责模型的初始化,以及对底层数据的解析。解析层数据的来源是整个服务资源库的WSDL和BPEL文件。
解析层包含的模块有:
解析器(Parser):负责服务资源库的解析操作为不同类型的文件提供了专门的XML解析程序,每解析完一个文件,解析器把需要的信息写入SDD文件中。
SDD(Service Data Description):一种WSDL/BPEL的XML映射文件。
分析器(Analyzer):专门负责读取SDD的信息并进行分析。
装载器(Loader):负责初始化工作,根据全局资源配置文件,通知解析器服务资源的位置,并完成对Meta-Service MAP文件的读写。
全局资源配置文件(Globle Config):包括了资源库的地址与目录等信息,是一组资源信息的描述文件,描述资源部署的节点信息,是一种XML文件。
Meta-Service MAP:提供了时间戳信息,实现惰性加载机制的XML依据文件。
1.2、控制层(controller layer):负责数据的提取、转化以及与表现层的通讯,并能根据表现层触发的事件执行相应的动作。
控制层包含的模块有:
控制器(Controller):模型内信息传送的桥梁,负责将分析器采集的数据传送给转换器,并将转换器转换生成的数据模型发送到标签提供者;事件发生时,通知相关组件完成相应的工作。
转换器(Converter):针对表现层不同的可视化方式建立对应的数据模型,并把这些数据传送给控制器,形成于表现层的组件间的松耦合关系。
标签提供者(LabelProvider):负责接受控制器传来的信息,并通知更新相应的视图
1.3、表现层(expression layer):负责对外显示信息,并提供对用户操作的监听
表现层包含的模块有:
视图(View):将数据模型转换为平行坐标或点阵的可视化方式,以便用户进行直观理解,同时提供资源库的文件树,WSDL\BPEL\SDD的XML文件浏览编辑功能。
监听器(EventListener):监听用户事件。
第二步、基于所述的模型,提出的Web服务数据搜索方法如下:
步骤1:采用改进的惰性加载机制来提高模型对服务资源的加载速度,只执行一次完全加载,以后都通过时间戳和Meta-Service MAP进行局部更新。
步骤1.1:模型第一次被调用后,调用装载器读取全局资源配置文件(文件内包括服务资源库的地址与内部文件目录及各种资源文件信息)和Meta-ServiceMAP文件信息并存储在内存中,Meta-Service MAP中的数据以(key,value)数据结构存储,其中key由文件名和文件存储的网络地址组成,value包含了一个时间戳信息和一个链表结构的数据,链表结构内保存该文件包含的serviceId或processId信息。由于是模型第一次启动,此时Meta-Service MAP对象的值为空。
步骤1.2:装载器唤醒解析器,解析器按照全局资源配置文件指定的网络路径对相应目录内的WSDL和BPEL文件进行读取,取出文件的名称和地址添加到Map的key中,取出文件的最后更新时间添加到时间戳内。
步骤2:设计SDD文件来实现对应WSDL和BPEL文件元素的映射。
SDD是一种XML文件,描述了服务自身数据和服务组合的流程信息,SDD的主要两部分领域设计为service元素和process元素。
service:主要描述了服务提供的数据能力,包含了服务的功能封装、服务的数据类型等信息。service属性serviceId提供给系统一个唯一的标识符,为确认服务资源库中服务的唯一性,serviceId由服务文件名称,服务URI,服务名称组成。SDD分析器可以根据serviceId快速定义服务。子元素function封装了能提供服务数据的操作,data元素代表了一个具体的数据信息,并通过data_type来描述其数据结构。
process:描述了服务组合的信息,startNode代表了服务组合的起点,intermediateNode指明服务流程要经过的中间节点,endNode代表服务的终结点。每一个节点通过variable元素来描述,variable提供了节点上涉及的Web服务、服务操作、参与的数据,以及当前路径的节点深度等信息。
步骤3:解析WSDL和BPEL文件并置换到SDD文件中,解析方法包括如下的子步骤;
步骤3.1:解析器根据WSDL文件的规则完成对其内部需要的元素的提取,包括核心元素types、message、portType、partnerLinkType及其下面的所有子元素和属性。
步骤3.2:进行WSDL元素与SDD元素间映射。
步骤3.3:解析器解析BPEL文件,读取服务组合的流程,并保存对wsdl元素的调用记录。
步骤3.4:建立BPEL元素与SDD元素的映射。
步骤3.5:建立SDD内部自身元素的关联关系。
步骤4:解析器解析完成后通知装载器,装载器将内存中的Map信息再写回到MAP文件内。
步骤5:当模型再次被调用时,将不再执行完全加载过程,而是将Meta-Service MAP中的key和时间戳信息与解析器解析出来的文件最后更新时间进行比较,如果没有服务资源在这段时间内被更新,SDD信息将不会被修改,并直接被系统读取。
步骤6:分析器根据用户对服务数据的搜索要求,按照SDD XSD规定的格式进行解析,获取对服务数据的描述。
步骤6.1、解析service元素及其子元素和属性,获取符合要求的服务信息
步骤6.2、解析process元素及其子元素和属性,获取符合要求的服务组合信息
步骤7:控制器将分析器采集的数据传送给转换器,转换器针对表现层不同的可视化方式建立对应的数据模型,并把这些数据传送给控制器。
步骤8、控制器再将转换器转换生成的数据模型发送到标签提供者,标签提供者负责接受控制器传来的信息,并通知更新表现层内相应的视图。
步骤9、搜索结果在视图中被转换为平行坐标和点阵的混合可视化方式。
步骤9.1:对服务资源库内提取的BPEL信息进行计算,找出已有的服务组合中最长的路径(路径上的每一个节点代表服务组合需要的一个服务),设最长路径XM初始值为0,搜索BPEL的<sequenc>元素,计算单个BPEL参与服务的个数为M,XM和M的计算规则如下:
步骤9.1.1、单次搜索过程中
对搜索到的receive子元素,M=M++;
对搜索到的reply子元素,M=M++;
对搜索到的from和to成对子元素,M=M++;
对搜索到的query子元素,M=M--;
步骤9.1.2、单次搜索结束后
如果XM<M,则XM=M;否则进入下一个BPEL文件的搜索
步骤9.1.3、搜索全部结束后,把服务组合最长的路径设置为平行坐标的最大维度数,维度代表了服务组合的路径深度,维度上的数据用服务来代替,折线代表了一个服务组合的路径。
步骤9.2:通过点阵来可视化服务内部数据及服务间的关联信息。
9.2.1、将SDD的service元素包含的子元素data所描述的数据类型data_type按照XML Scheme规范划分为简单类型和复杂类型两大类,其中复杂类型则由简单类型和/或其他复杂类型构造而成。
9.2.2、采用矩阵来表示service元素的数据结构,矩阵的标题行为子元素data的值,标题列为子元素data_type的值。读取service元素的属性获取服务名称、URI、数据所属的操作,这并把这些信息用矩形附加在矩阵上表示。
9.2.3、根据步骤6的解析结果,读取内存中存储process元素及其子元素startNode、intermediateNode、endNode的变量,根据变量值得出服务与服务间的组合关系,并用节点-链接图进行标识,如果服务与服务之间两两发生组合关系,通过直线连接相应的服务,箭头代表服务的数据流动方法。服务间交互的数据细节则通过矩阵中数据所在的行引出的箭头来表明。
9.2.4、在点阵中加入弹性层次机制,对复杂类型数据,在矩阵视图中增加节点“+”,当该节点被点击后,视图会提取出该数据的结构并用一个新的矩阵进行显示。在服务矩阵视图上方增加节点“+”/“-”,使之可以展开或闭合相关服务,来有效利用空间,减少链接之间在可视化时的交叉和覆盖。在节点-链接图上加入节点“+”/“-”,来开启或闭合服务与服务间的交互数据细节。
步骤9.3:在监听器内注册监听事件,当注册事件发生时,通知监听器,并传送一个事件对象e,该对象包含了事件发生时的各类状态信息,并由监听器发送到控制器,控制器解析事件对象并通知视图进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310159844.6A CN103390018B (zh) | 2013-04-28 | 2013-04-28 | 一种基于SDD的Web服务数据建模与搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310159844.6A CN103390018B (zh) | 2013-04-28 | 2013-04-28 | 一种基于SDD的Web服务数据建模与搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103390018A true CN103390018A (zh) | 2013-11-13 |
CN103390018B CN103390018B (zh) | 2016-05-18 |
Family
ID=49534292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310159844.6A Expired - Fee Related CN103390018B (zh) | 2013-04-28 | 2013-04-28 | 一种基于SDD的Web服务数据建模与搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103390018B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484326A (zh) * | 2014-09-30 | 2015-04-01 | 天津大学 | 一种基于可视分析的文物集成信息的交互探索方法 |
CN104598591A (zh) * | 2015-01-20 | 2015-05-06 | 清华大学 | 一种针对类型属性图模型的模型元素匹配方法 |
CN105022614A (zh) * | 2014-04-21 | 2015-11-04 | 上海墨盾电脑科技有限公司 | 一种电子商务的泛架构 |
CN105278946A (zh) * | 2015-06-12 | 2016-01-27 | 浙江大学 | 一种RESTful API可视化方法 |
CN107301220A (zh) * | 2017-06-16 | 2017-10-27 | 百度在线网络技术(北京)有限公司 | 数据驱动视图的方法、装置、设备及存储介质 |
CN108804710A (zh) * | 2018-06-25 | 2018-11-13 | 浪潮软件集团有限公司 | 基于业务规则通过模型工具提炼标签的方法及装置 |
CN111435940A (zh) * | 2019-01-14 | 2020-07-21 | 神州数码信息系统有限公司 | 一种面向分布式异构资源的服务集成方法 |
CN112669943A (zh) * | 2021-03-22 | 2021-04-16 | 南京汇百图科技有限公司 | 一种文件目录中dicom文件的解析方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833568A (zh) * | 2010-04-01 | 2010-09-15 | 武汉大学 | Web数据管理系统 |
-
2013
- 2013-04-28 CN CN201310159844.6A patent/CN103390018B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833568A (zh) * | 2010-04-01 | 2010-09-15 | 武汉大学 | Web数据管理系统 |
Non-Patent Citations (1)
Title |
---|
肖刚等: "基于web service的网格构件研究及应用", 《计算机工程》, no. 23, 31 December 2007 (2007-12-31) * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022614A (zh) * | 2014-04-21 | 2015-11-04 | 上海墨盾电脑科技有限公司 | 一种电子商务的泛架构 |
CN104484326A (zh) * | 2014-09-30 | 2015-04-01 | 天津大学 | 一种基于可视分析的文物集成信息的交互探索方法 |
CN104484326B (zh) * | 2014-09-30 | 2018-08-21 | 天津大学 | 一种基于可视分析的文物集成信息的交互探索方法 |
CN104598591A (zh) * | 2015-01-20 | 2015-05-06 | 清华大学 | 一种针对类型属性图模型的模型元素匹配方法 |
CN105278946A (zh) * | 2015-06-12 | 2016-01-27 | 浙江大学 | 一种RESTful API可视化方法 |
CN105278946B (zh) * | 2015-06-12 | 2018-07-17 | 浙江大学 | 一种RESTful API可视化方法 |
CN107301220A (zh) * | 2017-06-16 | 2017-10-27 | 百度在线网络技术(北京)有限公司 | 数据驱动视图的方法、装置、设备及存储介质 |
CN107301220B (zh) * | 2017-06-16 | 2020-12-11 | 百度在线网络技术(北京)有限公司 | 数据驱动视图的方法、装置、设备及存储介质 |
CN108804710A (zh) * | 2018-06-25 | 2018-11-13 | 浪潮软件集团有限公司 | 基于业务规则通过模型工具提炼标签的方法及装置 |
CN111435940A (zh) * | 2019-01-14 | 2020-07-21 | 神州数码信息系统有限公司 | 一种面向分布式异构资源的服务集成方法 |
CN112669943A (zh) * | 2021-03-22 | 2021-04-16 | 南京汇百图科技有限公司 | 一种文件目录中dicom文件的解析方法 |
CN112669943B (zh) * | 2021-03-22 | 2021-05-25 | 南京汇百图科技有限公司 | 一种文件目录中dicom文件的解析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103390018B (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103390018B (zh) | 一种基于SDD的Web服务数据建模与搜索方法 | |
US10346184B2 (en) | Open data protocol services in applications and interfaces across multiple platforms | |
US8751558B2 (en) | Mashup infrastructure with learning mechanism | |
CN103336813B (zh) | 一种基于中间件架构的物联网数据集成管理方案 | |
US9164998B2 (en) | Archive-system-independent archive-type objects | |
Yue et al. | GeoPW: Laying blocks for the geospatial processing web | |
Yue et al. | Augmenting geospatial data provenance through metadata tracking in geospatial service chaining | |
Isikdag | Design patterns for BIM-based service-oriented architectures | |
US20140172827A1 (en) | In-memory, columnar database multidimensional analytical view integration | |
CN102571420B (zh) | 一种网元数据管理方法及系统 | |
Katasonov et al. | Towards ontology-driven development of applications for smart environments | |
CN101201842A (zh) | 数字博物馆网格及其构造方法 | |
CN102158516B (zh) | 服务组合编译方法及编译器 | |
CN113626128B (zh) | 视听媒体微服务第三方模块接入方法、系统、电子设备 | |
CN102193958A (zh) | 基于互联网的空间决策支持系统的实现方法 | |
CN115811546B (zh) | 用于科技服务实现网络协同分布式处理的系统及其方法 | |
CN103164476A (zh) | 一种bi应用元数据描述文件的执行方法和装置 | |
CN113312242B (zh) | 接口信息管理方法、装置、设备及存储介质 | |
CN109063059A (zh) | 行为日志处理方法、装置及电子设备 | |
D'Agostino et al. | Lessons learned implementing a science gateway for hydro‐meteorological research | |
CN103064688A (zh) | 工作流通用服务的方法和系统 | |
CN106371848A (zh) | 一种web开发框架支持Odata的实现方法 | |
Iacob et al. | Quantitative analysis of service-oriented architectures | |
De Giorgio et al. | An approach to enable replacement of SOAP services and REST services in lightweight processes | |
CN102929605A (zh) | 一种基于云计算的数据挖掘系统开放接口 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190222 Address after: 310011 Room 1503 and 1510, Fatiandi Building, 15 Guyun Road, Gongshu District, Hangzhou City, Zhejiang Province Patentee after: HANGZHOU YIHAO NETWORK TECHNOLOGY CO.,LTD. Address before: 310014 Chao Wang Road, Xiacheng City, Hangzhou, Zhejiang Province, No. 18 Patentee before: Zhejiang University of Technology |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160518 |
|
CF01 | Termination of patent right due to non-payment of annual fee |