一种Web服务聚类的方法转让专利

申请号 : CN201010613232.6

文献号 : CN102043863B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴健马莹王飞吴朝晖尹建伟

申请人 : 浙江大学

摘要 :

本发明公开了一种Web服务聚类的方法,包括Web服务库,主控装置,标签库,该方法包括以下步骤:步骤一:使用VSM方法将Web服务转化为向量集合;步骤二:根据应用需求,确定Web服务的权重;步骤三:使用LSH方法对Web服务向量集合进行聚类。本发明的方法相对于现有技术的有益效果是:1、针对WSDL文档进行聚类,保持了与现有协议与技术的兼容性;2、比之Kmeans等方法,具有极高的效率;且Web服务向量空间维度越高,本发明的高效性越明显;3、Web服务聚类结果既可以用于Web服务发现,也可以用于Web服务组合,普适性较强,使本发明具有很强的向后兼容性。

权利要求 :

1.一种Web服务聚类的方法,其特征在于包括以下步骤:

步骤一:使用VSM方法将Web服务转化为向量集合

a.主控装置(2)从Web服务库(1)中读取当前所有Web服务的WDSL文档数据,若用户给定限制条件,则获取符合条件的Web服务;

所述Web服务库(1):为存储WDSL文档的数据库,用于给现有Web建立索引,支持数据存取和写入;

所述主控装置(2):它包括

用户交互装置:为与用户IO交互的各种驱动;

计算处理装置:包括内存、外存和CPU,用于获取Web服务的向量模型、运算聚类结果;

数据库交互装置:包括数据库驱动、xml解析器、用户终端、输入输出设备及显示器,用于数据库通信、及用户对于某些场景或参数的选择;

b.主控装置(2)获取Web服务后,使用VSM方法将Web服务集合转化为向量空间集合;

所述VSM方法,是将每个所述WSDL文档中的“Web服务基本信息的描述”、“功能操作”、“输入参数”、“输出参数”以及“Qos”分割成一组关键词,表示为五个属性,每一个关键词代表一个维度,统计关键词在文档中的出现频率,并计算每一维向量在每个文档下的权重,进而将代表Web服务的WSDL文档转化为向量;

每一维向量在每个文档下的权重为:

其中wik表示第k个词在WSDL文档i中的权重,fik表示第k个词在文档i中出现的次数,N表示集合中的全部文档数量,nk表示包含第k个词的文档数量,继而采用公式将wik值规范化,将每一维向量的权重值规范在[0,1]之间取值,而|wik|即为第k维向量的长度,其中,t为空间向量维数,wik'即为t维空间向量中第k个位置的值;

步骤二:根据应用需求,确定Web服务的权重

主控装置(2)向用户发起询问,询问用户是否自行标定Web服务上述五个属性

的权重值<α1Des,α2Oper,α3Input,α4Output,α5Qos>系数α1、α2、α3、α4、和α5,其中α1+α2+α3+α4+α5=1,若是,则由用户输入权重值,否则,使用该场景下的默认权重值系数,即α1=α2=α3=α4=α5=0.2;

步骤三:使用LSH方法对Web服务向量集合进行聚类

a.主控装置(2)获取从上述步骤二中得到的标定好权重的向量集合,通过使用LSH方法顺序处理各Web服务,计算每个Web服务对应的N个哈希值,其中,向量 代表一个Web服务空间向量,是一个向量,其维度与 相同,且服从高斯分布,b是一个范围在[0,w]的随机实数,w表示一个哈希桶的长度,为经验值,由操作者给定,通常情况下,在Web服务集合数量不超过10000的情况下,w值取[4,6]效果较好;在w值给定的情况下,反复随机选取向量 和随机实数b,获取构建哈希函数的变量,得到N个哈希函数,形成哈希函数族;

b.对N个哈希值都相同的Web服务进行处理,计算Web服务之间的距离,对于N个哈希值都相同的Web服务,将大多数距离相近的点标定为同一类,c.判定上一步所述的距离相近的点中是否存在奇异点,若Web服务不为奇异点,则对该Web服务进行标定处理:若标签库中已有大量数据,则将N个哈希值合并成一个序列,并在标签库(3)中查询给定的权重值组合下该序列所对应的标签,若不存在该标签,则由主控装置(2)向用户发起询问,用户以文字形式为每个类别写入标签,若用户不想手工处理,则可由主控装置(2)标定随机数字标签;主控装置(2)将Web服务以索引形式写入标签库(3)中对应权重值及类别标签下,并标定这些Web服务已经处理;若Web服务为奇异点,则对该Web服务不做处理;

所述标签库(3):用于存储以序号表示的不同的权重组合、类别标签、及以索引形式存储的Web服务库中的Web服务,并存储相应的哈希值,支持数据读出及写入;

d.主控装置(2)对所述奇异点进行处理,将其邻近的若干个已写入标签库(3)中Web服务进行投票,将该Web服务以索引形式写入到标签库(3)中出现最频繁的与该Web服务对应的权重值组合及类别标签下,并标定该Web服务已被处理;

e.主控装置(2)向用户发起询问,是否继续进行新一轮聚类,若是,则返回步骤三a.继续进行,反之,则结束整个流程。

说明书 :

一种Web服务聚类的方法

技术领域

[0001] 本发明涉及Web服务领域,尤其是一种Web服务聚类的方法,结合Vector Space Model(VSM,向量空间模型)技术,对Web服务进行向量化处理,并通过Locality Sensitive Hashing(LSH,位置敏感哈希)进行扩展,完成对Web服务的聚类。

背景技术

[0002] 随着Internet各种技术的不断发展及异构化平台之间协同工作要求的提出,Web服务作为一个优秀的解决方案,逐渐得到越来越多的重视。Web服务能够集成不同的应用,形成统一的一套解决方案,它被广泛地应用于电子商务、工作流甚至是日常生活中。单独的Web服务难以解决复杂的应用要求,因此,学术界及工业界对Web服务的关注多集中于Web服务组合、Web服务发现等方面。在这些研究领域中,Web服务聚类起到了很好的辅助作用,一个聚类结果良好的Web服务集合,可以在Web服务组合中提供具有更好的Quality of Service(Qos,Web服务质量,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。当网络过载或拥塞时,QoS能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。)的组合结果;或者在Web服务发现中,返回给用户更符合要求的Web服务子集。如何对一个Web服务集合进行准确、高效的聚类,便成了Web服务技术领域中人们所关心的一个重要问题。
[0003] Web服务聚类是对Web服务进行聚合,将Web服务库中的Web服务分成多个类别,使得同一类别中的Web服务或功能相似,或输入输出相似,或有相似程度的Qos。在Web服务组合或Web服务发现之前,对Web服务进行聚类,会极大提升上述Web服务聚类的效率,但Web服务聚类本身也存在着效率问题。当前对于Web服务聚类的技术,多与Web服务组合或Web服务发现结合进行,或对具体情况提出具有针对性的聚类方法,如针对用户日志及访问记录进行聚类以分析用户偏好等。这些研究采用的聚类方法,多是常见的数据挖掘中的聚类方法或是这些方法的改进,如K-means方法、DIANA方法等,这些聚类方法在特定情况下具有一定的优势,但却存在着以下不足:一是Web服务聚类不准确,这是由于其聚类方法本身的局限性所造成的,如K-means对孤立点十分敏感,少量孤立点会对聚类结果产生极大影响;二是大多聚类方法对于高维空间(即Web服务的属性较多的情况),聚类效率较低,而且由于只考虑基于某一方面的Web服务聚类,如只针对Web服务的功能属性进行聚类,虽适用于Web服务组合,但舍弃了Qos的考虑,使得应用这种聚类结果进行的Web服务发现难以快速找到Qos水平较高的Web服务,因此不具有普适性。

发明内容

[0004] 本发明的目的在于:提供一种Web服务聚类的方法,能够在动态变化的Web服务库中高效、准确地进行Web服务聚类,并具有普适性。
[0005] 为实现上述目的,本发明可采取下述技术方案:
[0006] 本发明一种Web服务聚类的方法,其特征在于包括以下步骤:
[0007] 步骤一:使用VSM方法将Web服务转化为向量集合
[0008] a.主控装置(2)从Web服务库(1)中读取当前所有Web服务的WDSL文档数据,若用户给定限制条件,则获取符合条件的Web服务;
[0009] 所述Web服务库(1):为存储WDSL文档的数据库,用于给现有Web建立索引,支持数据存取和写入;
[0010] 所述主控装置(2):它包括
[0011] 用户交互装置:为与用户IO交互的各种驱动;
[0012] 计算处理装置:包括内存、外存和CPU,用于获取Web服务的向量模型、运算聚类结果;
[0013] 数据库交互装置:包括数据库驱动、xml解析器、用户终端、输入输出设备及显示器,用于数据库通信、及用户对于某些场景或参数的选择;
[0014] b.主控装置(2)获取Web服务后,使用VSM方法将Web服务集合转化为向量空间集合;
[0015] 所述VSM方法,是将每个所述WSDL文档中的“Web服务基本信息的描述”、“功能操作”、“输入参数”、“输出参数”以及“Qos”分割成一组关键词,表示为五个属性,每一个关键词代表一个维度,统计关键词在文档中的出现频率,并计算每一维向量在每个文档下的权重,进而将代表Web服务的WSDL文档转化为向量;
[0016] 每一维向量在每个文档下的权重为:
[0017]
[0018] 其中wik表示第k个词在WSDL文档i中的权重,fik表示第k个词在文档i中出现的次数,N表示集合中的全部文档数量,nk表示包含第k个词的文档数量,继而采用公式[0019]
[0020] 将wik值规范化,将每一维向量的权重值规范在[0,1]之间取值,而|wik|即为第k维向量的长度,其中,t为空间向量维数,wik′即为t维空间向量中第k个位置的值;
[0021] 步骤二:根据应用需求,确定Web服务的权重
[0022] 主控装置(2)向用户发起询问,询问用户是否自行标定Web服务上述五个属性的权重值<α1Des,α2Oper,α3Input,α4Output,α5Qos>系数α1、α2、α3、α4、和α5,其中α1+α2+α3+α4+α5=1,若是,则由用户输入权重值,否则,使用该场景下的默认权重值系数,即α1=α2=α3=α4=α5=0.2;
[0023] 步骤三:使用LSH方法对Web服务向量集合进行聚类
[0024] a.主控装置(2)获取从上述步骤二中得到的标定好权重的向量集合,通过使用LSH方法顺序处理各Web服务,计算每个Web服务对应的N个哈希值,
[0025]
[0026] 其中,向量 代表一个Web服务空间向量,是一个向量,其维度与 相同,且服从高斯分布,b是一个范围在[0,w]的随机实数,w表示一个哈希桶的长度,为经验值,由操作者给定,通常情况下,在Web服务集合数量不超过10000的情况下,w值取[4,6]效果较好;在w值给定的情况下,反复随机选取向量 和随机实数b,获取构建哈希函数的变量,得到N个哈希函数,形成哈希函数族;
[0027] b.对N个哈希值都相同的Web服务进行处理,计算Web服务之间的距离,对于N个哈希值都相同的Web服务,将大多数距离相近的点标定为同一类,
[0028] c.判定上一步所述的距离相近的点中是否存在奇异点,若Web服务不为奇异点,则对该Web服务进行标定处理:若标签库中已有大量数据,则将N个哈希值合并成一个序列,并在标签库(3)中查询给定的权重值组合下该序列所对应的标签,若不存在该标签,则由主控装置(2)向用户发起询问,用户以文字形式为每个类别写入标签,若用户不想手工处理,则可由主控装置(2)标定随机数字标签;主控装置(2)将Web服务以索引形式写入标签库(3)中对应权重值及类别标签下,并标定这些Web服务已经处理;若Web服务为奇异点,则对该Web服务不做处理;
[0029] 所述标签库(3):用于存储以序号表示的不同的权重组合、类别标签、及以索引形式存储的Web服务库中的Web服务,并存储相应的哈希值,支持数据读出及写入;
[0030] d.主控装置(2)对所述奇异点进行处理,将其邻近的若干个已写入标签库(3)中Web服务进行投票,将该Web服务以索引形式写入到标签库(3)中出现最频繁的与该Web服务对应的权重值组合及类别标签下,并标定该Web服务已被处理;
[0031] e.主控装置(2)向用户发起询问,是否继续进行新一轮聚类,若是,则返回步骤三a.继续进行,反之,则结束整个流程。
[0032] 本发明一种Web服务聚类的方法相对于现有技术的有益效果是:
[0033] 1、针对WSDL文档进行聚类,保持了与现有协议与技术的兼容性。
[0034] 2、Web服务聚类采用LSH方法,对于Web服务,仅使用投影方式,将高维向量投影到低维空间,比之Kmeans等方法,具有极高的效率;且Web服务向量空间维度越高,本发明的高效性越明显。
[0035] 3、考虑了多个场景下的Web服务聚类,使得Web服务聚类结果既可以用于Web服务发现,也可以用于Web服务组合,普适性较强;对于以后可能应用Web服务的各种场景,可以依据不同的需要,对Web服务各项属性取不同的权重值,得到不同的聚类结果。因此本发明具有很强的向后兼容性。

附图说明

[0036] 图1是本发明一种Web服务聚类的方法的系统结构示意图。
[0037] 图2是本发明一种Web服务聚类的方法的总体流程示意图。
[0038] 图3是图2中对Web服务向量集合进行聚类的流程示意图。

具体实施方式

[0039] 如图1至3所示,本发明一种Web服务聚类的方法,包括
[0040] Web服务库1:为存储WDSL文档的数据库,用于给现有Web建立索引,支持数据存取和写入;
[0041] 主控装置2:它包括
[0042] 用户交互装置:为与用户IO交互的各种驱动;
[0043] 计算处理装置:包括内存、外存(对于数据量较大的情况,需要外部数据缓存)和CPU,用于获取Web服务的向量模型、运算聚类结果;
[0044] 数据库交互装置:包括数据库驱动、xml解析器、用户终端、输入输出设备及显示器,用于数据库通信、及用户对于某些场景或参数的选择;
[0045] 标签库3:用于存储以序号表示的不同的权重组合、类别标签、及以索引形式存储的Web服务库中的Web服务,并存储相应的哈希值,支持数据读出及写入,支持根据所述类别标签查询标签下的所有Web服务,支持根据权重组合序号及Web服务索引及权重组合序号查询对应标签及哈希值,支持根据哈希值查询Web服务,N个哈希值合成一个序列;
[0046] 其特征在于包括以下步骤:
[0047] 步骤一:使用VSM方法将Web服务转化为向量集合
[0048] a.主控装置2从Web服务库1中读取当前所有Web服务的WDSL文档数据,若用户给定限制条件(如只查询某一网站的所有Web服务),则获取符合条件的Web服务;
[0049] b.主控装置2获取Web服务后,使用VSM方法将Web服务集合转化为向量空间集合;
[0050] 所述VSM方法,是将每个所述WSDL文档中的“Web服务基本信息的描述”、“功能操作”、“输入参数”、“输出参数”以及“Qos”分割成一组关键词,表示为五个属性,每一个关键词代表一个维度,统计关键词在文档中的出现频率,并计算每一维向量在每个文档下的权重,进而将代表Web服务的WSDL文档转化为向量;因此,在分割关键词的时候,会对以上五个属性信息分开统计,提取出五个长度不一的向量,合成统一的向量;
[0051] 每一维向量在每个文档下的权重为:
[0052]
[0053] 其中wik表示第k个词在WSDL文档i中的权重,fik表示第k个词在文档i中出现的次数,N表示集合中的全部文档数量,nk表示包含第k个词的文档数量,继而采用公式[0054]
[0055] 将wik值规范化,将每一维向量的权重值规范在[0,1]之间取值,而|wik|即为第k维向量的长度,其中,t为空间向量维数,wik′即为t维空间向量中第k个位置的值。
[0056] 步骤二:根据应用需求,确定Web服务的权重
[0057] 主控装置2向用户发起请求,以可选列表的方式让用户选择聚类后的应用场景(Web服务组合,Web服务发现或以后可能出现的任何场景),询问用户是否自行标定Web服务上述五个属性的权重值<α1Des,α2Oper,α3Input,α4Output,α5Qos>系数α1、α2、α3、α4、和α5,其中α1+α2+α3+α4+α5=1,若是,则由用户输入权重值,以交互形式完成对Web服务权重的标定,另外可以把用户输入的权重值作为该场景的一个权重选择记录存储下来,应用于以后聚类过程;否则,使用该场景下的默认权重值系数,即α1=α2=α3=α4=α5=0.2;加权后的向量代表一个Web服务,这一步骤会极大地影响Web服务的最终聚类结果,当某个Web服务属性特别重要时,将会有适当的比例倾斜,例如:在Web服务选择时,选择流程的每一步里,从聚类结果中挑选合适的Web服务,则要求聚类中Web服务的输入输出是相似的,这时,α3、α4可以各取0.5,而其他三个权重值为0。
[0058] 步骤三:使用LSH方法对Web服务向量集合进行聚类
[0059] 通过使用LSH方法选取合适的哈希函数族,对向量进行投射,依次使用哈希函数族中的每个哈希函数将高维向量投射到N个不同的低维空间,使用欧拉距离判断N个哈希值全部相等的Web服务是否是距离相近的,若是,则将同一哈希桶内的Web服务标定为某一类别标签;若同一哈希桶内有奇异点(即虽然N个哈希值与桶中其它Web服务相同,但是实际距离却于其它Web服务较远),则选择桶中大多数彼此之间距离较近的点,标定为某一类别标签,奇异点则暂不标定;对于尚未标定类别标签的Web服务(即之前的奇异点),计算与之相近的若干个Web服务,从中取出已经标定了类别标签的Web服务,使用投票机制,将其中最频繁的类别标签标定到该Web服务上;聚类分为两种类型:(1)若聚类目的已定(如专为Web服务发现进行的聚类),则权重值可确定,聚类过程结束;(2)若只是单纯聚类,使之服务于以后可能出现的任何Web服务操作,则可反复多次进行聚类,再次执行步骤二,选取不同的权重值,进行新一轮聚类;对每个Web服务,对于不同的权重值组合,计算相应的聚类结果,并存储相应的类别标签;这样,查询时可以查找相应权重下的Web服务,根据其标签获知它属于哪一类;具体流程为:
[0060] a.主控装置2获取从上述步骤二中得到的标定好权重的向量集合,通过使用LSH方法顺序处理各Web服务,计算每个Web服务对应的N个哈希值,
[0061]
[0062] 其中,向量 代表一个Web服务空间向量,是一个向量,其维度与 相同,且满足高斯分布,,b是一个范围在[0,w]的随机实数,w表示一个哈希桶的长度,为经验值,由操作者给定,通常情况下,在Web服务集合数量不超过10000的情况下,w值取[4,6]效果较好;在w值给定的情况下,反复随机选取向量 和随机实数b,获取构建哈希函数的变量,得到N个哈希函数,形成哈希函数族;
[0063] b.对N个哈希值都相同的Web服务进行处理,计算Web服务之间的距离,对于N个哈希值都相同的Web服务,将大多数距离相近的点标定为同一类,
[0064] c.判定上一步所述的距离相近的点中是否存在奇异点(即尽管N个哈希值都相同,但实际的欧拉距离与大多数Web服务较远),若Web服务不为奇异点,则对该Web服务进行标定处理:若标签库3中已有大量数据,则将N个哈希值合并成一个序列,并在标签库3中查询给定的权重值组合下该序列所对应的标签,若不存在该标签,则由主控装置2向用户发起询问,用户以文字形式为每个类别写入标签,若用户不想手工处理,则可由主控装置
2标定随机数字标签;主控装置2将Web服务以索引形式写入标签库3中对应权重值及类别标签下,并标定这些Web服务已经处理;若Web服务为奇异点,则对该Web服务不做处理;
[0065] d.主控装置2对所述奇异点进行处理,将其邻近的若干个已写入标签库3中Web服务进行投票,将该Web服务以索引形式写入到标签库3中出现最频繁的与该Web服务对应的权重值组合及类别标签下,并标定该Web服务已被处理;
[0066] e.主控装置2向用户发起询问,是否继续进行新一轮聚类,若是,则返回步骤三a.继续进行,反之,则结束整个流程。