CN113343507A - 一种面向水利勘测的Web服务组合发现方法 - Google Patents
一种面向水利勘测的Web服务组合发现方法 Download PDFInfo
- Publication number
- CN113343507A CN113343507A CN202110764702.7A CN202110764702A CN113343507A CN 113343507 A CN113343507 A CN 113343507A CN 202110764702 A CN202110764702 A CN 202110764702A CN 113343507 A CN113343507 A CN 113343507A
- Authority
- CN
- China
- Prior art keywords
- lpn
- service
- web service
- assume
- identity
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 40
- 238000010276 construction Methods 0.000 claims abstract description 14
- 239000011159 matrix material Substances 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 25
- 230000007704 transition Effects 0.000 claims description 18
- 238000012217 deletion Methods 0.000 claims description 15
- 239000000126 substance Substances 0.000 claims description 15
- 230000001174 ascending effect Effects 0.000 claims description 6
- 101100379079 Emericella variicolor andA gene Proteins 0.000 claims description 3
- 101100001678 Emericella variicolor andM gene Proteins 0.000 claims description 3
- 238000003491 array Methods 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241000838698 Togo Species 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/22—Design optimisation, verification or simulation using Petri net models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种面向水利勘测的Web服务组合发现方法,包括如下步骤:S101、构建服务本体,并对Web服务进行语义标注,消除Web服务描述的二义性;S102、构建Web服务逻辑Petri网模型,进而构建Web服务集合的逻辑Petri网模型;S103、对逻辑Petri网模型进行可达性分析,构建Web服务组合仓库;S104、根据Web服务组合参数元素、个数构建服务组合簇集合;S105、对水利勘测服务组合需求进行构建,进而面向水利勘测进行服务组合绑定;本发明解决了面向水利勘测的Web服务组合发现问题,并通过本体定义、形式化建模、可达性分析、服务簇构建等手段提高了服务组合发现效率及精度。
Description
技术领域
本发明涉及一种面向水利勘测的Web服务组合发现方法。
背景技术
水利勘测作为水利工程项目建设的重要环节,涉及到外业测绘、数据传输、内业成图等工序,水利勘测的信息化建设关系到水利工程事业的发展;随着信息技术的不断发展,基于XML的Web服务发展迅速;Web服务是一种由URL标识的软件,能够实现跨平台的分布式应用程序调用,通过标准的Web 服务协议与服务端口实现互操作,满足用户需求;Web服务可以应用到水利勘测中以达到改善水利勘测模式、提升工作效率、优化成果质量的目的;不少学者对服务组合在水利工程中的应用进行了研究,并进行了实践,起到了良好效果;但近年来,Web服务数量不断增多,这些服务数量众多,功能种类繁杂;服务数量的增多,一方面满足了水利勘测对Web服务的应用需求;另一方面,面对大规模的Web服务数据集,用户也常常为服务查准率和服务发现效率不高困扰;目前,Web服务发现方法主要有以下几种,一是基于关键词的服务发现技术,通过Web服务注册系统建立关键词与此Web服务的对应关系,通过关键词匹配输出符合条件的Web服务;此类服务发现技术实现简单,但Web服务查询基数较大,查询效率较低;二是基于聚类的服务发现技术,服务聚类是指在进行服务查找前,把功能、输入输出或描述相似或相同的服务聚集在一起成为服务簇,当用户提出服务需求时,从服务簇中查询相应服务,减少服务发现基数;但随着服务总数的增多,服务簇中的服务数量也在增加,服务发现优化效果逐渐降低;三是基于Qos的服务聚类技术,这种方法是在相似度匹配基础上,加入了Qos服务质量因子,确立服务筛选的Qos阀值,进一步缩小了服务查找空间,提高了服务查询效率和精度;但Qos属性内容较为繁杂,属性数值采集及赋值较为困难;鉴于上述背景,如何进一步提高服务发现效率和发现精确度,解决面向水利勘测的Web服务组合发现问题成为一项研究课题。
发明内容
鉴于上述背景信息,本发明旨在提供一种面向水利勘测的Web服务组合发现方法,解决面向水利勘测的Web服务组合发现问题;为实现上述目的,本发明采用如下技术方案。
一种面向水利勘测的Web服务组合发现方法,其特征在于,包括如下步骤:
S101、构建服务本体
定义Web服务Wservice,Web服务表示为一个五元组Wservice=(Identity,Inputs, Outputs, Relations, QoS);
其中,Identity 唯一标识了一个Web服务;Inputs标识了Web服务的输入参数集;Outputs标识了Web服务的输出参数集;Relations是一个逻辑关系有限集,包含了Web服务中输入、输出参数之间的逻辑关系;Relations 逻辑关系集合中元素的格式为<输入逻辑表达式,输出逻辑表达式>;QoS为一个非负整数值,标识了此Web服务的服务质量。
定义服务本体Wbenti,服务本体表示为一个三元组Wbenti =(Class, Instance,Relation);
其中,Class表示Web服务的参数词汇类集;Instance表示Web服务的参数词汇对象集;Relation表示参数词汇类与参数词汇对象的关系集;
服务本体的构建及Web服务标注流程为:
第一步,词汇收集;将Web服务集合中所有Web服务的输入参数、输出参数放入到一个词汇集合中,并将重复的词汇进行删除;第二步,词汇分类;逐一分析词汇集合中的词汇,若当前词汇被确定为词汇类,则将当前词汇放入到词汇类集Class中,反之则放入词汇对象集Instance中;第三步,生成关系集Relation;遍历词汇对象集Instance,若词汇类Class q 为当前词汇对象Instance p 的类,则把关系<Class q , Instance p >放到关系集Relation中;第四步,遍历Web服务集合中所有Web服务的输入、输出参数,若当前参数为词汇对象,则替换为此词汇对象的词汇类。
S102、构建Web服务集合的逻辑Petri网模型
Web服务的逻辑Petri网建模流程为:
第一步,输入Web服务Wservice m ,新建逻辑Petri网LPN a ,一个Web服务Wservice,且Wservice=Wservice m ,一个变量x,且x=1;第二步,遍历Web服务的关系集合Wservice m .Relations;假设当前元素为Relation i ,新建两个逻辑Petri网LPN b 、LPN c ,规定这两个逻辑Petri网的变迁都仅为一个,且其变迁标记分别为Wservice m .Identity”+”x”+1”和Wservice m .Identity”+”x”+2”,即LPN b .T={Identity+x+1}和LPN c .T={Identity+x+2},|· Identity+x+1|=|Wservice.Inputs|, |Identity+x+2·|=|Wservice.Outputs|,新建一个库所,并标记为Identity”+”x;令Identity+x+1·=· Identity+x+2=Identity+x,且LPN b 的变迁为逻辑输入变迁,LPN c 的变迁为逻辑输出变迁,即Identity+x+1∈T I , Identity+x+2∈T O ,令x=x+1;遍历变迁Identity+x+1的前置库所集· Identity+x+1;假设Relation i = <输入参数逻辑约束,输出参数逻辑约束>,则令f I (Identity+x+1)=输入参数逻辑约束,f O (Identity+x+2)=输出参数逻辑约束;令LPN a .P=LPN a .P∪LPN b .P∪LPN c .P,LPN a .T=LPN a .T∪LPN b .T∪LPN c .T,LPN a .T.Identity+x+1∈T I ,LPN a .T.Identity+x+2∈T O , LPN a .F=LPN a .F∪LPN b .F∪LPN c .F,LPN a .f I =LPN a .f I ∪LPN b .f I ∪LPN c .f I ,LPN a .f O =LPN a .f O ∪LPN b .f O ∪LPN c .f O ,令LPN a 的初始标识LPN a .M 0全部清零;第三步,输出逻辑Petri网LPN a 。
Web服务集合的逻辑Petri网建模流程为:
第一步,输入经标注的Web服务集Q,新建一个逻辑Petri网LPN a ;第二步,遍历Web服务集Q,假设当前元素为Web服务Webservice m ,Web服务的逻辑Petri网建模流程,能够建立Webservice m 的逻辑Petri模型,并假设其LPN模型为LPN b ;令LPN a .P=LPN a .P∪LPN b .P;LPN a .T=LPN a .T∪LPN b .T;LPN a .F =LPN a .F∪LPN b .F;LPN a .f I =LPN a .f I ∪LPN b .f I , LPN a .f O =LPN a .f O ∪LPN b .f O ;LPN a .M 0全部清零;第三步:输出逻辑Petri网LPN a 。
S103、构建Web服务组合仓库
定义服务组合仓库Scomlry,服务组合仓库表示为一个两元组Scomlry=(C_LPNs,C_Relations):
其中,C_LPNs为Web服务集的逻辑Petri网模型;C_Relations为一个有限集,元素格式定义为<输入参数集,输出参数集,Web服务ID序列>。
Web服务组合仓库的构建流程为:
第一步:输入Web服务集的逻辑Petri网模型LPN i ,令q=0,w=1,e=2,i=3,Q 1=Q 2为空,k=j=r=v=f=0,建立数组Z[u];第二步,假设LPN i 的初始标识集合为Q,遍历初始标识集合Q;假设当前元素为M c ,令LPN i .M 0=M c ,由逻辑Petri网的可达性得到在初始标识M 0下的可达标识图RG(∑)=(R(M 0), E, P);建立数组A[n][i],其中n=|R(M 0)|,令f=0,遍历RG(∑).E;假设当前元素为E a ={(M i , M j )|M i , M j ∈R(M 0), 任意的t k ∈T:M i [t k >M j },则A[f][q]=M i ,A[f][w]=M j ;若在RG(∑).P中,P: E→T, P(M i , M j )=t k ,且M i [t k >M j ,则令A[f][e]= t k ;对于r从0至n-1,及v从0到1,遍历集合Q,假设集合Q的当前元素为M s ,则如果M s 等于A[r][v], 那么f=1,并返回;假设f等于0,则把A[r][v]放入Q 1和Q 2中,令Z[j]=A[r][v],且j=j+1,否则f=0;令j=j-1,建立邻接矩阵matrix[j][j],并设置矩阵中各元素为+∞,新建一个路径矩阵path[j][j],且设置路径矩阵中各元素为-1,复制A[n][i]至B[n][i],对于r从0到n-1,及v从0到1,及f从0至j-1,如果B[r][v]=Z[f],则替换B[r][v]为f,对于r从0至n-1,假如B[r][e]=t k ,且t k 对应的Web服务质量为QoS k ,令matrix[B[r][q]][B[r][w]]= QoS k ,path[B[r][q]][B[r][w]]= B[r][w],对于r从0至j-1,及v从0至j-1,及f从0至j-1,若(matrix[r][v]>matrix[r][f]+matrix[f][v]),则matrix[r][v]=matrix[r][f] +matrix[f][v],且path[r][v]=path[r][f];第三步,新建服务组合库Scomlry j ,令Scomlry j .C_LPNs为LPN i ;遍历集合Q 1,假设当前元素为M s ,对于r从0至j-1,如果Z[r]等于M s ,则返回r;遍历集合Q 2,假设当前元素为M k ,对于v从0至j-1,如果Z[v]等于M k ,则返回v,若matrix[r][v]≠+∞,则新建C_Relations的关系元素R t ,且R t =<inputs t , outputs t , transitions t >,令inputs t 等于在标识集M s 下C_LPNs.P中标识为1的元素, outputs t 等于在标识集M k 下C_LPNs.P中标识为1的元素,建立一个变迁集合Q 3,令f=path[r][v],如果f ≠v,则对于k从0到n-1,如果A[k][q]与Z[r]相同,且A[k][w]与Z[f]相同,则把A[k][e]放入集合Q 3中,令r=f,f= path[r][v],令transitions t =Q 3;第四步,输出Scomlry j 。
S104、构建服务组合簇集合
定义服务组合簇Wcluster,服务组合簇表示为一个五元组Wcluster= (InputNo,Inputs, OutputNo, Relations, Ordermode):
其中,InputNo为单个服务组合中的输入参数个数;Inputs为单个服务组合中的输入参数集;OutputNo为单个服务组合中的输出参数个数;Relations为一个有限集,元素的格式定义为<输入参数集,输出参数集,Web服务ID序列>;Ordermode为排序模式,若Ordermode为0,为降序排列,若Ordermode为1,为升序排列。
Web服务组合簇集的构建流程为:
第一步,输入Web服务组合库Scomlry,建立数组Z[u],m=i=j=l=0,新建一个服务组合库Scomlry p = Scomlry,Q=null;第二步,遍历Scomlry p .C_Relations,若当前元素为R x ,遍历R x .inputs x ,假设当前元素为input t ,则j=j+1;令Z[i]=j,i=i+1,l从0至i,新建一个集合B,遍历Scomlry.C_Relations,假设当前元素为R x ,遍历R x .inputs x ,当前元素为input t ,j=j+1;若j与Z[l]相等,则把R x 放入集合B中,并从Scomlry p .C_Relations中删除R x ,令j=0;遍历集合B,假设当前元素为R t ,把R t 放入集合C中,在集合B中删除元素R t ,遍历集合B,假设当前元素为R w ,若R w .inputs w ==R t .inputs t ,则把R w 放入集合C中,在集合B中删除元素R w ;遍历集合C,假设当前元素为R t ,把R t 放入集合D中,在集合C中删除元素R t ;遍历outputs t ,假设当前元素为output t ,则j=j+1,遍历集合C,假设当前元素为R w ,遍历输出参数集合outputs w ,假设当前元素为output w ,则m=m+1,若m与j相等,则把R w 放入集合D中,在集合C中删除元素R w ;新建一个服务组合簇Wcluster k ,令Wcluster k .InputNo=Z[l];Wcluster k .Inputs=R w .inputs w ;Wcluster k .OutputNo= m;Ordermode=1;遍历集合D,假设当前元素为R t ,把R t 放入集合Wcluster k .Relations中,把服务组合簇Wcluster k 放入Q;第三步,将Q中服务组合簇及服务组合、各个集合内的元素按照首字母ASCII码值升序排列,输出Q。
S105、面向水利勘测进行服务组合绑定
定义服务查找结果Rtables,服务查找结果表示为一个两元组Rtables={Items,Percent}:
其中,Percent为客户满意率;Items为一个有限集合,元素格式定义为<Id,Outputs,Records>,Id唯一标识一个结果集合中的元素;Outputs为输出参数集合;Records为一个有限集合,元素的格式定义为<Rid, Rinputs, Routputs, Sid>,Rid唯一标识一个Records集合中的元素;Rinputs标识一个输入参数有限集合;Routputs标识一个输出参数有限集合;Sid标识一个Web服务的ID号。
定义水利勘测用户需求Udemand,水利勘测用户需求表示为一个三元组Udemand=(Id, Uinputs, Uoutputs):
其中,Id唯一标识一个用户需求;Uinputs标识用户需求的输入参数集合;Uoutputs标识用户需求的输出参数集合。
面向水利勘测的服务组合查找流程为:
第一步,输入水利勘测用户需求Udemand i 、服务组合簇集合Q、ASCII码检索集Y;新建一个服务查找结果Rtables={Items,Percent},建立五个变量InNo=0、OutNo=0、n=0、x=0、z=0;第二步,遍历用户需求Udemand i 的输入参数集Uinputs,假设当前元素为Uinput w ,则InNo= InNo+1,历用户需求Udemand i 的输出参数集Uoutputs;假设当前元素为Uoutput w ,则OutNo=OutNo+1,遍历服务组合簇集合Q,假设当前元素为Wcluster j ,则n=n+1;调用快速查找函数:Qsch(Q, InNo, OutNo, Uinputs, n, Y),如果返回值是Null,则输出Null,否则,假设得到的服务组合簇为Wcluster k ,遍历服务组合簇关系集合Wcluster k .Relations;假设当前元素为R j ,则n=n+1;调用快速查找函数Outch(n,OutNo, Wcluster k .Relations,Uoutputs, Y);若返回值不为Null,则设返回关系元素为R x ,令服务查找结果Rtables.Percent=100%;新建服务查找结果Rtables={Items,Percent}中Rtables.Items的一个元素Item u ,令Item u .Id=1,Item u .outputs x = Uoutputs,遍历R x .ServiceIds x ;假设当前元素为a+b,假设在Web服务集中Id标号为a的Web服务为Wservice a ,假设Wservice a .Relations的第b个元素为Relation b ;新建集合Item u .Records的一个元素,令record u .Rid=x,且x=x+1;由Relation b 的输入逻辑表达式赋值record u .Rinputs;由Relation b 的输出逻辑表达式赋值record u .Routputs;令record u .Sid=a;输出服务查找结果Rtables。
进一步,上述步骤S105中,匹配函数Comp(n,Pa 1,Pa 2,Y) 的运行流程为:第一步,输入元素比较个数n;参数集合Pa 1和Pa 2;ASCII码检索集Y,新建一个变量i;第二步,令i从1到n,假设Pa 1的第i个参数为Con j ,遍历ASCII码检索集Y,假设当前检索号为ConNo t =(Concept,ascii)。若Concept与Con j 相等,则返回ConNo t . ascii,假设Pa 2的第i个参数为Con k ,遍历ASCII码检索集Y,假设当前检索号为ConNo r ,若Concept与Con r 相等,则返回ConNo r .No,假设ConNo t .No大于ConNo r .No,则输出1,若ConNo t .No小于ConNo r .No,则输出-1,并退出函数,若i等于n,则输出0,并退出函数。
进一步,上述步骤S105中,快速查找函数Outch(n,OutNo, Q, OutPa, Y)的运行流程为:第一步,输入变量n;参数匹配个数OutNo;关系元素集合Q;输出参数集OutPa;ASCII码检索集Y,新建两个变量i,j,令i=0,j=n;第二步,假设集合Q的第(i+j)/2个元素为R k ,若i>j,则输出Null,并退出下面的执行。若i<=j,调用匹配函数Comp(OutNo,R k .outputs x ,OutPa,Y),若函数返回值为0,则输出关系元素R k ,并退出下面的执行;若返回值为-1,则令i=(i+j)/2+1,若返回值为1,则令j=(i+j)/2-1,并返回第二步进行循环。
进一步,上述步骤S105中,水利勘测用户需求Udemand的生成流程为:第一步,水利勘测Web服务需求种类分析;将水利勘测过程分为外业勘测、数据传输及内业标绘三个部分;外业勘测Web服务需求种类归纳为天气预报、订票服务、出行服务、酒店预定;数据传输Web服务需求种类归纳为即时通讯服务、应急通信服务、网络资源服务、云服务器服务;内业标绘Web服务需求种类归纳为测绘数据处理服务、数字地图生成服务、测绘成果打印服务、3D视觉展现服务;第二步,遍历上述水利勘测Web服务需求种类,假设当前种类为SClass,则新建一个用户需求Udemand,按照专家判断模式结合实际需求从Web服务本体的词汇类集中选择词汇类构建Udemand的输入参数集合Uinputs和输出参数集合Uoutputs,并随机生成一个唯一Id号;第三步,输出水利勘测用户需求Udemand。
附图说明
图1为本发明所述的一种面向水利勘测的Web服务组合发现方法的步骤图。
图2为所述服务本体构建示意图。
图3为Web服务集Q 1的逻辑Petri网模型示意图。
图4为水利勘测Web服务需求分类示意图。
具体实施方式
下面将结合本发明附图,对本发明的具体实施方式进行描述;
一种面向水利勘测的Web服务组合发现方法,其特征在于,包括如下步骤:
S101、构建服务本体
定义Web服务Wservice,Web服务表示为一个五元组Wservice=(Identity,Inputs, Outputs, Relations, QoS);
其中,Identity 唯一标识了一个Web服务;Inputs标识了Web服务的输入参数集;Outputs标识了Web服务的输出参数集;Relations是一个逻辑关系有限集,包含了Web服务中输入、输出参数之间的逻辑关系;Relations 逻辑关系集合中元素的格式为<输入逻辑表达式,输出逻辑表达式>;QoS为一个非负整数值,标识了此Web服务的服务质量。
定义服务本体Wbenti,服务本体表示为一个三元组Wbenti =(Class, Instance,Relation);
其中,Class表示Web服务的参数词汇类集;Instance表示Web服务的参数词汇对象集;Relation表示参数词汇类与参数词汇对象的关系集。
图2给出了服务本体构建示意图,所述的服务本体构建及Web服务标注流程为:
第一步,词汇收集;将Web服务集合中所有Web服务的输入参数、输出参数放入到一个词汇集合中,并将重复的词汇进行删除;第二步,词汇分类;逐一分析词汇集合中的词汇,若当前词汇被确定为词汇类,则将当前词汇放入到词汇类集Class中,反之则放入词汇对象集Instance中;第三步,生成关系集Relation;遍历词汇对象集Instance,若词汇类Class q 为当前词汇对象Instance p 的类,则把关系<Class q , Instance p >放到关系集Relation中;第四步,遍历Web服务集合中所有Web服务的输入、输出参数,若当前参数为词汇对象,则替换为此词汇对象的词汇类。
S102、构建Web服务集合的逻辑Petri网模型
Web服务的逻辑Petri网建模流程为:
第一步,输入Web服务Wservice m ,新建逻辑Petri网LPN a ,一个Web服务Wservice,且Wservice=Wservice m ,一个变量x,且x=1;第二步,遍历Web服务的关系集合Wservice m .Relations;假设当前元素为Relation i ,新建逻辑Petri网LPN b 、LPN c ,规定这两个逻辑Petri网的变迁都仅为一个,且其变迁标记分别为Wservice m .Identity”+”x”+1”和Wservice m .Identity”+”x”+2”,即LPN b .T={Identity+x+1}和LPN c .T={Identity+x+2}, |· Identity+x+1|=|Wservice.Inputs|, |Identity+x+2·|=|Wservice.Outputs|,新建一个库所,并标记为Identity”+”x;令Identity+x+1·=· Identity+x+2=Identity+x,且LPN b 的变迁为逻辑输入变迁,LPN c 的变迁为逻辑输出变迁,即Identity+x+1∈T I , Identity+x+2∈T O ,令x=x+1;遍历变迁Identity+x+1的前置库所集· Identity+x+1;假设Relation i = <输入参数逻辑约束,输出参数逻辑约束>,则令f I (Identity+x+1)= 输入参数逻辑约束,f O (Identity+x+2)=输出参数逻辑约束;令LPN a .P=LPN a .P∪LPN b .P∪LPN c .P,LPN a .T=LPN a .T∪LPN b .T∪LPN c .T,LPN a .T.Identity+x+1∈T I ,LPN a .T.Identity+x+2∈T O , LPN a .F= LPN a .F∪LPN b .F∪LPN c .F,LPN a .f I = LPN a .f I ∪LPN b .f I ∪LPN c .f I ,LPN a .f O = LPN a .f O ∪LPN b .f O ∪LPN c .f O ,令LPN a 的初始标识LPN a .M 0全部清零;第三步,输出逻辑Petri网LPN a 。
Web服务集合的逻辑Petri网建模流程为:
第一步,输入经标注的Web服务集Q,新建一个逻辑Petri网LPN a ;第二步,遍历Web服务集Q,假设当前元素为Web服务Webservice m ,Web服务的逻辑Petri网建模流程,能够建立Webservice m 的逻辑Petri模型,并假设其LPN模型为LPN b ;令LPN a .P=LPN a .P∪LPN b .P;LPN a .T=LPN a .T∪LPN b .T;LPN a .F =LPN a .F∪LPN b .F;LPN a .f I =LPN a .f I ∪LPN b .f I ,LPN a .f O =LPN a .f O ∪LPN b .f O ;LPN a .M 0全部清零;第三步:输出逻辑Petri网LPN a 。
如存在一个Web服务集Q 1={Webservice 1, Webservice 2},其中, Webservice 1=(Identity 1, Inputs 1, Outputs 1, Relations 1, QoS 1),Identity 1=1, Inputs 1={a, b, c,d}, Outputs 1={e, f, g, h}, Relations 1={<(a), (e)>, <(b), (f)>, <(c∧d), (g∧h)>};Webservice 2=(Identity 2, Inputs 2, Outputs 2, Relations 2, QoS 2), Identity 2=2,Inputs 2={a, j, d}, Outputs 2={e, i, h}, Relations 2={<(a), (e)>, <(j∧d), (i∧h)>};图3给出了Web服务集Q 1的逻辑Petri网模型示意图。
S103、构建Web服务组合仓库
定义服务组合仓库Scomlry,服务组合仓库表示为一个两元组Scomlry=(C_LPNs,C_Relations):
其中,C_LPNs为Web服务集的逻辑Petri网模型;C_Relations为一个有限集,元素格式定义为<输入参数集,输出参数集,Web服务ID序列>。
Web服务组合仓库的构建流程为:
第一步:输入Web服务集的逻辑Petri网模型LPN i ,令q=0,w=1,e=2,i=3,Q 1=Q 2为空,k=j=r=v=f=0,建立数组Z[u];第二步,假设LPN i 的初始标识集合为Q,遍历初始标识集合Q;假设当前元素为M c ,令LPN i .M 0=M c ,由逻辑Petri网的可达性得到在初始标识M 0下的可达标识图RG(∑)=(R(M 0), E, P);建立数组A[n][i],其中n=|R(M 0)|,令f=0,遍历RG(∑).E;假设当前元素为E a ={(M i , M j )|M i , M j ∈R(M 0), 任意的t k ∈T:M i [t k >M j },则A[f][q]=M i ,A[f][w]=M j ;若在RG(∑).P中,P: E→T, P(M i , M j )=t k ,且M i [t k >M j ,则令A[f][e]= t k ;对于r从0至n-1,及v从0到1,遍历集合Q,假设集合Q的当前元素为M s ,则如果M s 等于A[r][v], 那么f=1,并返回;假设f等于0,则把A[r][v]放入Q 1和Q 2中,令Z[j]=A[r][v],且j=j+1,否则f=0;令j=j-1,建立邻接矩阵matrix[j][j],并设置矩阵中各元素为+∞,新建一个路径矩阵path[j][j],且设置路径矩阵中各元素为-1,复制A[n][i]至B[n][i],对于r从0到n-1,及v从0到1,及f从0至j-1,如果B[r][v]=Z[f],则替换B[r][v]为f,对于r从0至n-1,假如B[r][e]=t k ,且t k 对应的Web服务质量为QoS k ,令matrix[B[r][q]][B[r][w]]= QoS k ,path[B[r][q]][B[r][w]]= B[r][w],对于r从0至j-1,及v从0至j-1,及f从0至j-1,若(matrix[r][v]>matrix[r][f]+matrix[f][v]),则matrix[r][v]=matrix[r][f] +matrix[f][v],且path[r][v]=path[r][f];第三步,新建服务组合库Scomlry j ,令Scomlry j .C_LPNs为LPN i ;遍历集合Q 1,假设当前元素为M s ,对于r从0至j-1,如果Z[r]等于M s ,则返回r;遍历集合Q 2,假设当前元素为M k ,对于v从0至j-1,如果Z[v]等于M k ,则返回v,若matrix[r][v]≠+∞,则新建C_Relations的关系元素R t ,且R t =<inputs t , outputs t , transitions t >,令inputs t 等于在标识集M s 下C_LPNs.P中标识为1的元素, outputs t 等于在标识集M k 下C_LPNs.P中标识为1的元素,建立一个变迁集合Q 3,令f=path[r][v],如果f ≠v,则对于k从0到n-1,如果A[k][q]与Z[r]相同,且A[k][w]与Z[f]相同,则把A[k][e]放入集合Q 3中,令r=f,f= path[r][v],令transitions t =Q 3;第四步,输出Scomlry j 。
S104、构建服务组合簇集合
定义服务组合簇Wcluster,服务组合簇表示为一个五元组Wcluster= (InputNo,Inputs, OutputNo, Relations, Ordermode):
其中,InputNo为单个服务组合中的输入参数个数;Inputs为单个服务组合中的输入参数集;OutputNo为单个服务组合中的输出参数个数;Relations为一个有限集,元素的格式定义为<输入参数集,输出参数集,Web服务ID序列>;Ordermode为排序模式,若Ordermode为0,为降序排列,若Ordermode为1,为升序排列。
Web服务组合簇集的构建流程为:
第一步,输入Web服务组合库Scomlry,建立数组Z[u],m=i=j=l=0,新建一个服务组合库Scomlry p = Scomlry,Q=null;第二步,遍历Scomlry p .C_Relations,若当前元素为R x ,遍历R x .inputs x ,假设当前元素为input t ,则j=j+1;令Z[i]=j,i=i+1,l从0至i,新建一个集合B,遍历Scomlry.C_Relations,假设当前元素为R x ,遍历R x .inputs x ,当前元素为input t ,j=j+1;若j与Z[l]相等,则把R x 放入集合B中,并从Scomlry p .C_Relations中删除R x ,令j=0;遍历集合B,假设当前元素为R t ,把R t 放入集合C中,在集合B中删除元素R t ,遍历集合B,假设当前元素为R w ,若R w .inputs w ==R t .inputs t ,则把R w 放入集合C中,在集合B中删除元素R w ;遍历集合C,假设当前元素为R t ,把R t 放入集合D中,在集合C中删除元素R t ;遍历outputs t ,假设当前元素为output t ,则j=j+1,遍历集合C,假设当前元素为R w ,遍历输出参数集合outputs w ,假设当前元素为output w ,则m=m+1,若m与j相等,则把R w 放入集合D中,在集合C中删除元素R w ;新建一个服务组合簇Wcluster k ,令Wcluster k .InputNo=Z[l];Wcluster k .Inputs=R w .inputs w ;Wcluster k .OutputNo= m;Ordermode=1;遍历集合D,假设当前元素为R t ,把R t 放入集合Wcluster k .Relations中,把服务组合簇Wcluster k 放入Q;第三步,将Q中服务组合簇及服务组合、各个集合内的元素按照首字母ASCII码值升序排列,输出Q。
S105、面向水利勘测进行服务组合绑定
定义服务查找结果Rtables,服务查找结果表示为一个两元组Rtables={Items,Percent}:
其中,Percent为客户满意率;Items为一个有限集合,元素格式定义为<Id,Outputs,Records>,Id唯一标识一个结果集合中的元素;Outputs为输出参数集合;Records为一个有限集合,元素的格式定义为<Rid, Rinputs, Routputs, Sid>,Rid唯一标识一个Records集合中的元素;Rinputs标识一个输入参数有限集合;Routputs标识一个输出参数有限集合;Sid标识一个Web服务的ID号。
定义水利勘测用户需求Udemand,水利勘测用户需求表示为一个三元组Udemand=(Id, Uinputs, Uoutputs):
其中,Id唯一标识一个用户需求;Uinputs标识用户需求的输入参数集合;Uoutputs标识用户需求的输出参数集合。
面向水利勘测的服务组合查找流程为:
第一步,输入水利勘测用户需求Udemand i 、服务组合簇集合Q、ASCII码检索集Y;新建一个服务查找结果Rtables={Items,Percent},建立五个变量InNo=0、OutNo=0、n=0、x=0、z=0;第二步,遍历用户需求Udemand i 的输入参数集Uinputs,假设当前元素为Uinput w ,则InNo= InNo+1,历用户需求Udemand i 的输出参数集Uoutputs;假设当前元素为Uoutput w ,则OutNo=OutNo+1,遍历服务组合簇集合Q,假设当前元素为Wcluster j ,则n=n+1;调用快速查找函数:Qsch(Q, InNo, OutNo, Uinputs, n, Y),如果返回值是Null,则输出Null,否则,假设得到的服务组合簇为Wcluster k ,遍历服务组合簇关系集合Wcluster k .Relations;假设当前元素为R j ,则n=n+1;调用快速查找函数Outch(n,OutNo, Wcluster k .Relations,Uoutputs, Y);若返回值不为Null,则设返回关系元素为R x ,令服务查找结果Rtables.Percent=100%;新建服务查找结果Rtables={Items,Percent}中Rtables.Items的一个元素Item u ,令Item u .Id=1,Item u .outputs x = Uoutputs,遍历R x .ServiceIds x ;假设当前元素为a+b,假设在Web服务集中Id标号为a的Web服务为Wservice a ,假设Wservice a .Relations的第b个元素为Relation b ;新建集合Item u .Records的一个元素,令record u .Rid=x,且x=x+1;由Relation b 的输入逻辑表达式赋值record u .Rinputs;由Relation b 的输出逻辑表达式赋值record u .Routputs;令record u .Sid=a;输出服务查找结果Rtables。
进一步,上述步骤S105中,匹配函数Comp(n,Pa 1,Pa 2,Y) 的运行流程为:第一步,输入元素比较个数n;参数集合Pa 1和Pa 2;ASCII码检索集Y,新建一个变量i;第二步,令i从1到n,假设Pa 1的第i个参数为Con j ,遍历ASCII码检索集Y,假设当前检索号为ConNo t =(Concept,ascii)。若Concept与Con j 相等,则返回ConNo t . ascii,假设Pa 2的第i个参数为Con k ,遍历ASCII码检索集Y,假设当前检索号为ConNo r ,若Concept与Con r 相等,则返回ConNo r .No,假设ConNo t .No大于ConNo r .No,则输出1,若ConNo t .No小于ConNo r .No,则输出-1,并退出函数,若i等于n,则输出0,并退出函数。
进一步,上述步骤S105中,快速查找函数Outch(n,OutNo, Q, OutPa, Y)的运行流程为:第一步,输入变量n;参数匹配个数OutNo;关系元素集合Q;输出参数集OutPa;ASCII码检索集Y,新建两个变量i,j,令i=0,j=n;第二步,假设集合Q的第(i+j)/2个元素为R k ,若i>j,则输出Null,并退出下面的执行。若i<=j,调用匹配函数Comp(OutNo,R k .outputs x ,OutPa,Y),若函数返回值为0,则输出关系元素R k ,并退出下面的执行;若返回值为-1,则令i=(i+j)/2+1,若返回值为1,则令j=(i+j)/2-1,并返回第二步进行循环。
进一步,上述步骤S105中,水利勘测用户需求Udemand的生成流程为:第一步,水利勘测Web服务需求种类分析;将水利勘测过程分为外业勘测、数据传输及内业标绘三个部分;外业勘测Web服务需求种类归纳为天气预报、订票服务、出行服务、酒店预定;数据传输Web服务需求种类归纳为即时通讯服务、应急通信服务、网络资源服务、云服务器服务;内业标绘Web服务需求种类归纳为测绘数据处理服务、数字地图生成服务、测绘成果打印服务、3D视觉展现服务;第二步,遍历上述水利勘测Web服务需求种类,假设当前种类为SClass,则新建一个用户需求Udemand,按照专家判断模式结合实际需求从Web服务本体的词汇类集中选择词汇类构建Udemand的输入参数集合Uinputs和输出参数集合Uoutputs,并随机生成一个唯一Id号;第三步,输出水利勘测用户需求Udemand。
相比传统的基于服务簇的服务组合发现技术,本发明具有四个优越性:
(a) 本发明是基于服务组合簇集的;服务组合簇集的创建为服务查找进行了全面的准备工作;包括服务组合的获取、服务组合的分类工作等;当用户进行服务查找时,不需再进行实际的服务匹配等工作;
(b) 用户在服务组合簇集内进行服务组合查找时,系统采用高效查找算法,提高了服务发现效率;系统对服务组合簇集及服务组合簇内元素进行了排序;对于一个服务组合簇内部元素来讲,其输入参数集的排序关键字为首字母ASCII码值;关系元素中的输出参数集排序关键字为首字母ASCII码值;对于服务组合簇集合整体来讲,其排序关键字为输入参数个数;当输入参数个数相同时,按照输入参数集中第一个元素的首字母ASCII码值来排序;若仍然相同,再按照服务组合簇中的输出参数个数大小进行排序;由此,在服务查找时,可利用快速查找算法、折半查找等方法提高了服务发现效率;
(c) 本发明所述的服务组合簇集在构建时,考虑到了最优服务组合的选择,在Web服务集的逻辑Petri网中,若两个结点间的可达路径不唯一,则利用最短路径优先算法选取QoS值最优的可达路径,舍去其他选择。从而提高了服务组合簇集中的服务组合的精度;
(d)本发明为面向水利勘测的服务组合发现提供了解决途径。
显而易见,上述实施方式仅仅为本发明的其中一个示范例,任何在本发明所提供结构或原理上的简单改进均属于本发明的保护范围。
Claims (3)
1.一种面向水利勘测的Web服务组合发现方法,其特征在于,包括如下步骤:
S101、构建服务本体
定义Web服务Wservice,Web服务表示为一个五元组Wservice=(Identity, Inputs,Outputs, Relations, QoS);
其中,Identity 唯一标识了一个Web服务;Inputs标识了Web服务的输入参数集;Outputs标识了Web服务的输出参数集;Relations是一个逻辑关系有限集,包含了Web服务中输入、输出参数之间的逻辑关系;Relations 逻辑关系集合中元素的格式为<输入逻辑表达式,输出逻辑表达式>;QoS为一个非负整数值,标识了此Web服务的服务质量;
定义服务本体Wbenti,服务本体表示为一个三元组Wbenti =(Class, Instance,Relation);
其中,Class表示Web服务的参数词汇类集;Instance表示Web服务的参数词汇对象集;Relation表示参数词汇类与参数词汇对象的关系集;
服务本体的构建及Web服务标注流程为:
第一步,词汇收集;将Web服务集合中所有Web服务的输入参数、输出参数放入到一个词汇集合中,并将重复的词汇进行删除;第二步,词汇分类;逐一分析词汇集合中的词汇,若当前词汇被确定为词汇类,则将当前词汇放入到词汇类集Class中,反之则放入词汇对象集Instance中;第三步,生成关系集Relation;遍历词汇对象集Instance,若词汇类Class q 为当前词汇对象Instance p 的类,则把关系<Class q , Instance p >放到关系集Relation中;第四步,遍历Web服务集合中所有Web服务的输入、输出参数,若当前参数为词汇对象,则替换为此词汇对象的词汇类;
S102、构建Web服务集合的逻辑Petri网模型
Web服务的逻辑Petri网建模流程为:
第一步,输入Web服务Wservice m ,新建逻辑Petri网LPN a ,一个Web服务Wservice,且Wservice=Wservice m ,一个变量x,且x=1;第二步,遍历Web服务的关系集合Wservice m .Relations;假设当前元素为Relation i ,新建两个逻辑Petri网LPN b 、LPN c ,规定这两个逻辑Petri网的变迁都仅为一个,且其变迁标记分别为Wservice m .Identity”+”x”+1”和Wservice m .Identity”+”x”+2”,即LPN b .T={Identity+x+1}和LPN c .T={Identity+x+2},|· Identity+x+1|=|Wservice.Inputs|, |Identity+x+2·|=|Wservice.Outputs|,新建一个库所,并标记为Identity”+”x;令Identity+x+1·=· Identity+x+2=Identity+x,且LPN b 的变迁为逻辑输入变迁,LPN c 的变迁为逻辑输出变迁,即Identity+x+1∈T I , Identity+x+2∈T O ,令x=x+1;遍历变迁Identity+x+1的前置库所集· Identity+x+1;假设Relation i = <输入参数逻辑约束,输出参数逻辑约束>,则令f I (Identity+x+1)=输入参数逻辑约束,f O (Identity+x+2)=输出参数逻辑约束;令LPN a .P=LPN a .P∪LPN b .P∪LPN c .P,LPN a .T=LPN a .T∪LPN b .T∪LPN c .T,LPN a .T.Identity+x+1∈T I ,LPN a .T.Identity+x+2∈T O , LPN a .F=LPN a .F∪LPN b .F∪LPN c .F,LPN a .f I =LPN a .f I ∪LPN b .f I ∪LPN c .f I ,LPN a .f O =LPN a .f O ∪LPN b .f O ∪LPN c .f O ,令LPN a 的初始标识LPN a .M 0全部清零;第三步,输出逻辑Petri网LPN a ;
Web服务集合的逻辑Petri网建模流程为:
第一步,输入经标注的Web服务集Q,新建一个逻辑Petri网LPN a ;第二步,遍历Web服务集Q,假设当前元素为Web服务Webservice m ,Web服务的逻辑Petri网建模流程,能够建立Webservice m 的逻辑Petri模型,并假设其LPN模型为LPN b ;令LPN a .P=LPN a .P∪LPN b .P;LPN a .T=LPN a .T∪LPN b .T;LPN a .F=LPN a .F∪LPN b .F;LPN a .f I =LPN a .f I ∪LPN b .f I , LPN a .f O =LPN a .f O ∪LPN b .f O ;LPN a .M 0全部清零;第三步:输出逻辑Petri网LPN a ;
S103、构建Web服务组合仓库
定义服务组合仓库Scomlry,服务组合仓库表示为一个两元组Scomlry=(C_LPNs, C_Relations):
其中,C_LPNs为Web服务集的逻辑Petri网模型;C_Relations为一个有限集,元素格式定义为<输入参数集,输出参数集,Web服务ID序列>;
Web服务组合仓库的构建流程为:
第一步:输入Web服务集的逻辑Petri网模型LPN i ,令q=0,w=1,e=2,i=3,Q 1=Q 2为空,k=j=r=v=f=0,建立数组Z[u];第二步,假设LPN i 的初始标识集合为Q,遍历初始标识集合Q;假设当前元素为M c ,令LPN i .M 0=M c ,由逻辑Petri网的可达性得到在初始标识M 0下的可达标识图RG(∑)=(R(M 0), E, P);建立数组A[n][i],其中n=|R(M 0)|,令f=0,遍历RG(∑).E;假设当前元素为E a ={(M i , M j )|M i , M j ∈R(M 0), 任意的t k ∈T:M i [t k >M j },则A[f][q]=M i ,A[f][w]=M j ;若在RG(∑).P中,P: E→T, P(M i , M j )=t k ,且M i [t k >M j ,则令A[f][e]= t k ;对于r从0至n-1,及v从0到1,遍历集合Q,假设集合Q的当前元素为M s ,则如果M s 等于A[r][v], 那么f=1,并返回;假设f等于0,则把A[r][v]放入Q 1和Q 2中,令Z[j]=A[r][v],且j=j+1,否则f=0;令j=j-1,建立邻接矩阵matrix[j][j],并设置矩阵中各元素为+∞,新建一个路径矩阵path[j][j],且设置路径矩阵中各元素为-1,复制A[n][i]至B[n][i],对于r从0到n-1,及v从0到1,及f从0至j-1,如果B[r][v]=Z[f],则替换B[r][v]为f,对于r从0至n-1,假如B[r][e]=t k ,且t k 对应的Web服务质量为QoS k ,令matrix[B[r][q]][B[r][w]]= QoS k ,path[B[r][q]][B[r][w]]= B[r][w],对于r从0至j-1,及v从0至j-1,及f从0至j-1,若(matrix[r][v]>matrix[r][f]+matrix[f][v]),则matrix[r][v]=matrix[r][f] +matrix[f][v],且path[r][v]=path[r][f];第三步,新建服务组合库Scomlry j ,令Scomlry j .C_LPNs为LPN i ;遍历集合Q 1,假设当前元素为M s ,对于r从0至j-1,如果Z[r]等于M s ,则返回r;遍历集合Q 2,假设当前元素为M k ,对于v从0至j-1,如果Z[v]等于M k ,则返回v,若matrix[r][v]≠+∞,则新建C_Relations的关系元素R t ,且R t =<inputs t , outputs t , transitions t >,令inputs t 等于在标识集M s 下C_LPNs.P中标识为1的元素, outputs t 等于在标识集M k 下C_LPNs.P中标识为1的元素,建立一个变迁集合Q 3,令f=path[r][v],如果f ≠v,则对于k从0到n-1,如果A[k][q]与Z[r]相同,且A[k][w]与Z[f]相同,则把A[k][e]放入集合Q 3中,令r=f,f= path[r][v],令transitions t =Q 3;第四步,输出Scomlry j ;
S104、构建服务组合簇集合
定义服务组合簇Wcluster,服务组合簇表示为一个五元组Wcluster= (InputNo,Inputs, OutputNo, Relations, Ordermode):
其中,InputNo为单个服务组合中的输入参数个数;Inputs为单个服务组合中的输入参数集;OutputNo为单个服务组合中的输出参数个数;Relations为一个有限集,元素的格式定义为<输入参数集,输出参数集,Web服务ID序列>;Ordermode为排序模式,若Ordermode为0,则为降序排列,若Ordermode为1,则为升序排列;
Web服务组合簇集的构建流程为:
第一步,输入Web服务组合库Scomlry,建立数组Z[u],m=i=j=l=0,新建一个服务组合库Scomlry p = Scomlry,Q=null;第二步,遍历Scomlry p .C_Relations,若当前元素为R x ,遍历R x .inputs x ,假设当前元素为input t ,则j=j+1;令Z[i]=j,i=i+1,l从0至i,新建一个集合B,遍历Scomlry.C_Relations,假设当前元素为R x ,遍历R x .inputs x ,当前元素为input t ,j=j+1;若j与Z[l]相等,则把R x 放入集合B中,并从Scomlry p .C_Relations中删除R x ,令j=0;遍历集合B,假设当前元素为R t ,把R t 放入集合C中,在集合B中删除元素R t ,遍历集合B,假设当前元素为R w ,若R w .inputs w ==R t .inputs t ,则把R w 放入集合C中,在集合B中删除元素R w ;遍历集合C,假设当前元素为R t ,把R t 放入集合D中,在集合C中删除元素R t ;遍历outputs t ,假设当前元素为output t ,则j=j+1,遍历集合C,假设当前元素为R w ,遍历输出参数集合outputs w ,假设当前元素为output w ,则m=m+1,若m与j相等,则把R w 放入集合D中,在集合C中删除元素R w ;新建一个服务组合簇Wcluster k ,令Wcluster k .InputNo=Z[l];Wcluster k .Inputs=R w .inputs w ;Wcluster k .OutputNo= m;Ordermode=1;遍历集合D,假设当前元素为R t ,把R t 放入集合Wcluster k .Relations中,把服务组合簇Wcluster k 放入Q;第三步,将Q中服务组合簇及服务组合、各个集合内的元素按照首字母ASCII码值升序排列,输出Q;
S105、面向水利勘测进行服务组合绑定
定义服务查找结果Rtables,服务查找结果表示为一个两元组Rtables={Items,Percent}:
其中,Percent为客户满意率;Items为一个有限集合,元素格式定义为<Id,Outputs,Records>,Id唯一标识一个结果集合中的元素;Outputs为输出参数集合;Records为一个有限集合,元素的格式定义为<Rid, Rinputs, Routputs, Sid>,Rid唯一标识一个Records集合中的元素;Rinputs标识一个输入参数有限集合;Routputs标识一个输出参数有限集合;Sid标识一个Web服务的ID号;
定义水利勘测用户需求Udemand,水利勘测用户需求表示为一个三元组Udemand=(Id,Uinputs, Uoutputs):
其中,Id唯一标识一个用户需求;Uinputs标识用户需求的输入参数集合;Uoutputs标识用户需求的输出参数集合;
面向水利勘测的服务组合查找流程为:
第一步,输入水利勘测用户需求Udemand i 、服务组合簇集合Q、ASCII码检索集Y;新建一个服务查找结果Rtables={Items,Percent},建立五个变量InNo=0、OutNo=0、n=0、x=0、z=0;第二步,遍历用户需求Udemand i 的输入参数集Uinputs,假设当前元素为Uinput w ,则InNo= InNo+1,历用户需求Udemand i 的输出参数集Uoutputs;假设当前元素为Uoutput w ,则OutNo=OutNo+1,遍历服务组合簇集合Q,假设当前元素为Wcluster j ,则n=n+1;调用快速查找函数:Qsch(Q, InNo, OutNo, Uinputs, n, Y),如果返回值是Null,则输出Null,否则,假设得到的服务组合簇为Wcluster k ,遍历服务组合簇关系集合Wcluster k .Relations;假设当前元素为R j ,则n=n+1;调用快速查找函数Outch(n,OutNo, Wcluster k .Relations, Uoutputs, Y);若返回值不为Null,则设返回关系元素为R x ,令服务查找结果Rtables.Percent=100%;新建服务查找结果Rtables={Items,Percent}中Rtables.Items的一个元素Item u ,令Item u .Id=1,Item u .outputs x = Uoutputs,遍历R x .ServiceIds x ;假设当前元素为a+b,假设在Web服务集中Id标号为a的Web服务为Wservice a ,假设Wservice a .Relations的第b个元素为Relation b ;新建集合Item u .Records的一个元素,令record u .Rid=x,且x=x+1;由Relation b 的输入逻辑表达式赋值record u .Rinputs;由Relation b 的输出逻辑表达式赋值record u .Routputs;令record u .Sid=a;输出服务查找结果Rtables。
2.根据权利要求1所述的一种面向水利勘测的Web服务组合发现方法,其特征在于,所述步骤S105中,匹配函数Comp(n,Pa 1,Pa 2,Y) 的运行流程为:第一步,输入元素比较个数n;参数集合Pa 1和Pa 2;ASCII码检索集Y,新建一个变量i;第二步,令i从1到n,假设Pa 1的第i个参数为Con j ,遍历ASCII码检索集Y,假设当前检索号为ConNo t =(Concept, ascii);若Concept与Con j 相等,则返回ConNo t . ascii,假设Pa 2的第i个参数为Con k ,遍历ASCII码检索集Y,假设当前检索号为ConNo r ,若Concept与Con r 相等,则返回ConNo r .No,假设ConNo t .No大于ConNo r .No,则输出1,若ConNo t .No小于ConNo r .No,则输出-1,并退出函数,若i等于n,则输出0,并退出函数。
3.根据权利要求1所述的一种面向水利勘测的Web服务组合发现方法,其特征在于,所述步骤S105中,快速查找函数Outch(n,OutNo, Q, OutPa, Y)的运行流程为:第一步,输入变量n;参数匹配个数OutNo;关系元素集合Q;输出参数集OutPa;ASCII码检索集Y,新建两个变量i,j,令i=0,j=n;第二步,假设集合Q的第(i+j)/2个元素为R k ,若i>j,则输出Null,并退出下面的执行;若i<=j,调用匹配函数Comp(OutNo,R k .outputs x ,OutPa,Y),若函数返回值为0,则输出关系元素R k ,并退出;若返回值为-1,则令i=(i+j)/2+1,若返回值为1,则令j=(i+j)/2-1,并返回第二步进行循环。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110764702.7A CN113343507B (zh) | 2021-07-07 | 2021-07-07 | 一种面向水利勘测的Web服务组合发现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110764702.7A CN113343507B (zh) | 2021-07-07 | 2021-07-07 | 一种面向水利勘测的Web服务组合发现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113343507A true CN113343507A (zh) | 2021-09-03 |
CN113343507B CN113343507B (zh) | 2024-05-14 |
Family
ID=77482934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110764702.7A Active CN113343507B (zh) | 2021-07-07 | 2021-07-07 | 一种面向水利勘测的Web服务组合发现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113343507B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188039A1 (en) * | 2002-03-26 | 2003-10-02 | Liu James C. | Method and apparatus for web service aggregation |
TW200844762A (en) * | 2007-05-08 | 2008-11-16 | Univ Nat Central | A possibilistic petri-nets based method for web service matchmaking |
US20090089741A1 (en) * | 2007-09-28 | 2009-04-02 | Sap Ag | Service-based processes using policy-based model-to-model conversion and validation techniques |
WO2011003837A1 (de) * | 2009-07-08 | 2011-01-13 | Schneider Electric Automation Gmbh | Verfahren zur optimierung von petri-netz orchestrierten arbeitsabläufen für service-orientierte automatisierungsgeräte in service-orientierten automatisierten systemen |
CN102447735A (zh) * | 2011-11-09 | 2012-05-09 | 重庆大学 | Daml-s组合服务可靠性分析方法 |
CN102831175A (zh) * | 2012-07-30 | 2012-12-19 | 河海大学 | 一种基于云平台的水利业务Web服务库的构建方法 |
CN103345541A (zh) * | 2013-06-04 | 2013-10-09 | 华南理工大学 | 一种基于扩展Petri网模型的语义Web服务组合方法 |
JP2014170485A (ja) * | 2013-03-05 | 2014-09-18 | Nec Corp | サービス提供構造管理装置、サービス提供構造管理方法およびサービス提供構造管理プログラム |
CN104092744A (zh) * | 2014-06-30 | 2014-10-08 | 山东科技大学 | 基于记忆化服务簇映射目录的Web服务发现方法 |
CN104317853A (zh) * | 2014-10-15 | 2015-01-28 | 山东科技大学 | 一种基于语义Web的服务簇构建方法 |
CN104902018A (zh) * | 2015-05-20 | 2015-09-09 | 山东科技大学 | 基于服务簇的服务组合与替换方法 |
KR20170048134A (ko) * | 2015-10-23 | 2017-05-08 | 삼성전자주식회사 | 사용자 단말 및 이의 웹 서비스 제공 방법 |
CN107135092A (zh) * | 2017-03-15 | 2017-09-05 | 浙江工业大学 | 一种面向全局社交服务网的Web服务聚类方法 |
US20180089343A1 (en) * | 2016-09-29 | 2018-03-29 | Amazon Technologies, Inc. | Logic repository service |
-
2021
- 2021-07-07 CN CN202110764702.7A patent/CN113343507B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188039A1 (en) * | 2002-03-26 | 2003-10-02 | Liu James C. | Method and apparatus for web service aggregation |
TW200844762A (en) * | 2007-05-08 | 2008-11-16 | Univ Nat Central | A possibilistic petri-nets based method for web service matchmaking |
US20090089741A1 (en) * | 2007-09-28 | 2009-04-02 | Sap Ag | Service-based processes using policy-based model-to-model conversion and validation techniques |
WO2011003837A1 (de) * | 2009-07-08 | 2011-01-13 | Schneider Electric Automation Gmbh | Verfahren zur optimierung von petri-netz orchestrierten arbeitsabläufen für service-orientierte automatisierungsgeräte in service-orientierten automatisierten systemen |
CN102447735A (zh) * | 2011-11-09 | 2012-05-09 | 重庆大学 | Daml-s组合服务可靠性分析方法 |
CN102831175A (zh) * | 2012-07-30 | 2012-12-19 | 河海大学 | 一种基于云平台的水利业务Web服务库的构建方法 |
JP2014170485A (ja) * | 2013-03-05 | 2014-09-18 | Nec Corp | サービス提供構造管理装置、サービス提供構造管理方法およびサービス提供構造管理プログラム |
CN103345541A (zh) * | 2013-06-04 | 2013-10-09 | 华南理工大学 | 一种基于扩展Petri网模型的语义Web服务组合方法 |
CN104092744A (zh) * | 2014-06-30 | 2014-10-08 | 山东科技大学 | 基于记忆化服务簇映射目录的Web服务发现方法 |
CN104317853A (zh) * | 2014-10-15 | 2015-01-28 | 山东科技大学 | 一种基于语义Web的服务簇构建方法 |
CN104902018A (zh) * | 2015-05-20 | 2015-09-09 | 山东科技大学 | 基于服务簇的服务组合与替换方法 |
KR20170048134A (ko) * | 2015-10-23 | 2017-05-08 | 삼성전자주식회사 | 사용자 단말 및 이의 웹 서비스 제공 방법 |
US20180089343A1 (en) * | 2016-09-29 | 2018-03-29 | Amazon Technologies, Inc. | Logic repository service |
CN107135092A (zh) * | 2017-03-15 | 2017-09-05 | 浙江工业大学 | 一种面向全局社交服务网的Web服务聚类方法 |
Non-Patent Citations (4)
Title |
---|
JING SHA ET AL: "A User Requirement Oriented Web Service Discovery Approach Based on Logic and Threshold Petri Net", 《IEEE/CAA JOURNAL OF AUTOMATICA SINICA》, pages 1528 - 1542 * |
宁玉辉等: "基于服务簇的 Web服务绑定方法", 《JOURNAL OF SHANDONG UNIVERSITY OF SCIENCE AND TECHNOLOGY NATURAL SCIENCE》, pages 94 - 98 * |
程永上等: "Web 服务组合在水利领域中的应用", 《 计算机工程与应用》, pages 209 - 212 * |
邓式阳等: "基于服务簇和 QoS 的 Web 服务组合方法", 《计算机应用》, pages 2167 - 2170 * |
Also Published As
Publication number | Publication date |
---|---|
CN113343507B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Community mining from signed social networks | |
CN103678671B (zh) | 一种社交网络中的动态社区检测方法 | |
CN107103050A (zh) | 一种大数据建模平台及方法 | |
CN108170826A (zh) | 一种基于互联网大数据的宏观经济分析方法及系统 | |
CN103678436A (zh) | 信息处理系统和信息处理方法 | |
WO2023155508A1 (zh) | 一种基于图卷积神经网络和知识库的论文相关性分析方法 | |
Chen et al. | Personalized travel route recommendation algorithm based on improved genetic algorithm | |
Kushwah et al. | A review on link prediction in social network | |
WO2022188646A1 (zh) | 图数据处理方法、装置、设备、存储介质及程序产品 | |
Keyvanpour | A survey on community detection methods based on the nature of social networks | |
CN109885694B (zh) | 一种文献选择及其学习先后次序确定方法 | |
CN102508971A (zh) | 概念设计阶段产品功能模型建立方法 | |
CN103294791A (zh) | 一种可扩展标记语言模式匹配方法 | |
CN109299340A (zh) | 一种基于图数据库的微博用户转发关系导入及可视化方法 | |
CN113343507B (zh) | 一种面向水利勘测的Web服务组合发现方法 | |
Leung et al. | A data science model for big data analytics of frequent patterns | |
Shi et al. | Flow-based influence graph visual summarization | |
EP3979092A1 (en) | Method for querying indexed, partitioned dimension tables | |
CN108280176A (zh) | 基于MapReduce的数据挖掘优化方法 | |
CN108256083A (zh) | 基于深度学习的内容推荐方法 | |
CN108256086A (zh) | 数据特征统计分析方法 | |
Rezaeipanah et al. | Providing a new method for link prediction in social networks based on the meta-heuristic algorithm | |
Jia | Establishing an intelligent and smart tourism model using data mining in the context of big data | |
CN106383863A (zh) | 一种同构子图查询优化方法 | |
Rekatsinas et al. | Crowdgather: Entity extraction over structured domains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |