发明名称 一种基于SDD的Web服务数据建模与搜索方法
摘要 一种基于SDD的Web服务数据建模与搜索方法,第一步、建立一个基于SDD的Web服务数据模型,分为解析层、控制层和表现层;第二步、基于所述的模型,提出的Web服务数据搜索方法。
申请公布号 CN103390018A 申请公布日期 2013.11.13
申请号 CN201310159844.6 申请日期 2013.04.28
申请人 浙江工业大学 发明人 陆佳炜;张元鸣;徐俊;肖刚;高飞;冯敏
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 一种基于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‑Service MAP文件信息并存储在内存中,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,该对象包含了事件发生时的各类状态信息,并由监听器发送到控制器,控制器解析事件对象并通知视图进行更新。
地址 310014 浙江省杭州市下城区潮王路18号