云制造环境中基于资源约束的服务选取方法转让专利

申请号 : CN201210078643.9

文献号 : CN102664915B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李海波陈艳秋梁梦夏张帅

申请人 : 李海波

摘要 :

本发明公开了一种云制造环境中基于资源约束的服务选取方法,首先要对企业资源形式化,并以元数据形式存储为XML格式,形成资源元数据模型;将资源约束形式化,并以关系表达式、逻辑表达式的形式描述成XML格式,形成资源约束模型;把资源元数据模型、资源约束模型注册到云制造服务平台上,作为资源池配置的一项,工作流运行时,即开始了企业的管理、企业间的交互,此时工作流引擎通过读取工作流模型,即可获取资源约束模板,并结合运行时企业注册的资源元数据,对所有资源约束进行满足性检测;检测结果可用于资源服务的有效性识别,作为服务选取的直接依据。本发明可提高企业应用集成的效率,并具有很高的灵活性。

权利要求 :

1.一种云制造环境中基于资源约束的服务选取方法,其特征在于,包括以下步骤:

1)形式化资源为元数据模型:

描述资源元数据模型,云制造平台提供虚拟资源维护功能,要求企业用户提供如下信息:资源基本信息、提供商信息、填加资源属性、填加资源总数、资源单位、资源价格信息;

虚拟资源搜索用于协助对资源的维护:用户选择资源类型,填写关键字,点击搜索,搜索资源,系统根据用户输入的关键字,进行切词,搜索标签或名称含有关键字的资源,按照使用次数进行倒序排序,返回给用户,根据资源信息在平台的存放情况不同,分为普通资源、常用资源、外部资源,针对每一种资源的搜索方式有所区别,普通资源搜索是直接在资源池中搜索,而外部资源搜索必须调用每一个企业提供的Web服务进行搜索,然后将结果综合,返回给用户,常用资源搜索则取自于常用资源池;

2)形式化资源约束模型,资源模型采用关系表达式和逻辑表达式的形式描述成XML格式,其中包括了表达式本身、表达式中变量的出处信息;

3)注册资源元数据模型和资源约束模型,经过步骤1)、步骤2),分别形成RMeta.xml和RConstraint.xml两个文件,并部署到服务平台目录XXXResource中,XXX为企业账户,该目录存放该企业的资源元数据模型和约束模型;

4)资源服务有效性检测:基于资源元数据模型和资源约束模型的描述,在服务运行阶段,采用算法进行服务有效性检测,算法步骤如下:定义资源约束:若服务Sj在执行前必须满足约束P(Si.R)=TRUE,则称服务Sj依据约束P依赖于服务Si产生的资源R,简称为服务的资源约束,记作P(Si.D)→Sj,若不存在服务Si,D为公共资源,即服务Sj依据约束P依赖于公共数据D;

定义有效资源集:对资源约束P(Si.D)→Sj,如果服务Sj执行之前服务Si的资源Si.D已经注册到服务平台,称Si.D为有效资源集合,记为Available(Si.D)=TRUE,有效资源集清楚地区分了资源的特征和值之间的关系,即只有资源集被服务执行产生后,才能用于后序服务的资源约束满足性的判断,才能生效;

检测服务的资源约束满足性算法SrvAvailable,输入:服务S以及S需满足的资源约束集P,输出:P是否得到满足,即TRUE或者FALSE,算法思路:对资源约束集P中的所有关系表达式或逻辑表达式的值进行检测,同时考虑表达式中的资源均为有效资源,若全部为真,则认定该服务S的资源约束已得到满足,否则,不满足;

服务动态组合时的有效性检测算法PostSrvAvailable,算法PostSrvAvailable适用于服务的 时序组合情况,主动检测约束的满足性可提前预知待组合服务的有效性,算法输入:某服务Si的后序节点集合及其对应的约束集的超集,输出:所有约束集的资源约束满足性,算法思路:根据对工作流模型图进行深度优先搜索,通过引入资源约束模型,逐路径检测后序服务节点对应的资源约束的满足性,检测到结果为FALSE的关系表达式或逻辑表达式,表明此路径存在不满足资源约束的服务节点;

5)资源选取:包括直接选取和服务工作流的动态选取与组合,无论哪种情形,均根据步骤4)形成的检测算法选取服务。

2.根据权利要求1所述的云制造环境中基于资源约束的服务选取方法,其特征在于,步骤1)中所述的具体搜索过程如下:A定义一个共同的搜索接口,再定义三个接口分别用来:用户输入关键字或资源类别进行搜索、获取资源剩余数量、返回资源详细信息;

B对于普通资源、常用资源、外部资源这三类资源,分别定义三个类实现A中共同搜索接口,根据资源类型实现搜索功能;

C定义三个针对具体搜索类的工厂类,创建对应的搜索类对象;

D搜索大资源池,方法如下:对用户的输入进行分词,最原始的分词采用空格为分隔符;如果用户输入词组或者长词组,则使用一种中文分词工具包进行分词,将用户选择的类别信息、分词所得的关键字作为条件,查询名称、标签中含有这些关键字的资源,将这些得到的资源按照一定的规则计算与用户输入条件的相似度,然后根据相似度进行排序,并返回结果;

E搜索常用资源池,除搜索对象是常用资源池外,方法同D;

F搜索外部资源,从共同搜索接口继承,执行其他节点提供的搜索服务;对每一个提供外部资源的个体均使用相同的方法,以UML做参数,实例化外部搜索接口,调用其中的搜索函数进行搜索,取得搜索结果;

G将搜索结果整合,并按照相似度进行排序,返回。

说明书 :

云制造环境中基于资源约束的服务选取方法

技术领域

[0001] 本发明属于系统软件集成领域,涉及云制造环境下对制造资源的一种服务选取技术,具体涉及一种云制造环境中基于资源约束的服务选取方法。

背景技术

[0002] 云制造是云计算中的一个分支领域,是面向企业协同制造的云环境。其中,资源主要关注的是制造资源。制造资源是指完成产品整个生命周期的所有生产活动的软、硬件元素,包括了设计、制造、维护等相关活动过程中涉及的所有元素,制造资源的表现形式就是能提供制造资源的Web服务。制造资源的虚拟化技术在云制造环境下有其独特性,不能忽略业务因素。资源服务化技术的核心就是制造资源选取。云制造平台就是通过集成和信息化这些制造资源,并通过虚拟化技术实现云制造过程管理。
[0003] 但目前,在现有技术中,云计算多侧重云存储方面,云制造方面的研究刚刚起步。同类产品目前主要包括集团企业的云制造平台、中小企业的云制造平台等等,而且大多处于探索阶段。在此类服务平台上,服务选取的方法目前多数都是采用难以准确获取的服务质量信息,如服务响应时间、服务可用性等。而且在协同制造领域,基于SOA(Service-Oriented Architecture)的企业应用软件行业特征明显,大多是为了支持企业的某项业务,服务的功能基本不通用,很难形成有规模的候选服务群,常规的基于服务质量的服务选取方法在云制造虚拟化的设计方法上面临困境。

发明内容

[0004] 本发明的目的在于克服传统服务选取方法的不足,提供一种既提高服务选取效率,又能提高所选服务的可用性的云制造环境中基于资源约束的服务选取方法,解决云制造资源服务化的关键性核心技术难题,使得协同制造领域的云计算-云制造能尽快地平台化,为云计算领域中新兴的制造云提供资源服务化的核心技术解决途径,也为服务选取提供优化手段,实现平台实用化、规模化。其技术方案为:
[0005] 一种云制造环境中基于资源约束的服务选取方法,包括以下步骤:
[0006] 1)形式化资源为元数据模型:
[0007] 描述资源元数据模型,云制造平台提供虚拟资源维护功能,要求企业用户提供如下信息:资源基本信息、提供商信息、填加资源属性、填加资源总数、资源单位、资源价格信息;
[0008] 虚拟资源搜索用于协助对资源的维护:用户选择资源类型,填写关键字,点击搜索,搜索资源,系统根据用户输入的关键字,进行切词,搜索标签或名称含有关键字的资源,按照使用次数进行倒序排序,返回给用户,根据资源信息在平台的存放情况不同,分为普通资源、常用资源、外部资源,针对每一种资源的搜索方式有所区别,普通资源搜索是直接在资源池中搜索,而外部资源搜索必须调用每一个企业提供的Web服务进行搜索,然后将结果综合,返回给用户,常用资源搜索则取自于常用资源池;
[0009] 2)形式化资源约束模型,资源模型采用关系表达式和逻辑表达式的形式描述成XML格式,其中包括了表达式本身、表达式中变量的出处信息;
[0010] 3)注册资源元数据模型和资源约束模型,经过步骤1)、步骤2),分别形成RMeta.xml和RConstraint.xml两个文件,并部署到服务平台目录XXXResource中,XXX为企业账户,该目录存放该企业的资源元数据模型和约束模型;
[0011] 4)资源服务有效性检测:基于资源元数据模型和资源约束模型的描述,在服务运行阶段,采用算法进行服务有效性检测,算法步骤如下:
[0012] 定义资源约束:若服务Sj在执行前必须满足约束P(Si.R)=TRUE,则称服务Sj依据约束P依赖于服务Si产生的资源R,简称为服务的资源约束,记作P(Si.D)→Sj。若不存在服务Si,D为公共资源,即服务Sj依据约束P依赖于公共数据D;
[0013] 定义有效资源集:对资源约束P(Si.D)→Sj,如果服务Sj执行之前服务Si的资源Si.D已经注册到服务平台,称Si.D为有效资源集合,记为Available(Si.D)=TRUE,有效资源集清楚地区分了资源的特征和值之间的关系,即只有资源集被服务执行产生后,才能用于后序服务的资源约束满足性的判断,才能生效;
[0014] 检测服务的资源约束满足性算法SrvAvailable,输入:服务S以及S需满足的资源约束集P,输出:P是否得到满足,即TRUE或者FALSE,算法思路:对资源约束集P中的所有关系表达式或逻辑表达式的值进行检测,同时考虑表达式中的资源均为有效资源,若全部为真,则认定该服务S的资源约束已得到满足,否则,不满足;
[0015] 服务动态组合时的有效性检测算法PostSrvAvailable,算法PostSrvAvailable适用于服务的时序组合(即服务工作流)情况,主动检测约束的满足性可提前预知待组合服务的有效性,算法输入:某服务Si的后序节点集合及其对应的约束集的超集,输出:所有约束集的资源约束满足性,算法思路:根据对工作流模型图进行深度优先搜索,通过引入资源约束模型,逐路径检测后序服务节点对应的资源约束的满足性(算法SrvAvailable),检测到结果为FALSE的关系表达式或逻辑表达式,表明此路径存在不满足资源约束的服务节点;
[0016] 5)资源选取:包括直接选取和服务工作流的动态选取与组合,无论哪种情形,均根据步骤4)形成的检测算法选取服务。
[0017] 进一步优选,步骤1)中所述的具体搜索过程如下:
[0018] A定义一个共同的搜索接口,再定义三个接口分别用来:用户输入关键字或资源类别进行搜索、获取资源剩余数量、返回资源详细信息;
[0019] B对于普通资源、常用资源、外部资源这三类资源,分别定义三个类实现A中共同搜索接口,根据资源类型实现搜索功能;
[0020] C定义三个针对具体搜索类的工厂类,创建对应的搜索类对象;
[0021] D搜索大资源池,方法如下:对用户的输入进行分词,最原始的分词采用空格为分隔符;如果用户输入词组或者长词组,则使用一种中文分词工具包进行分词,将用户选择的类别信息、分词所得的关键字作为条件,查询名称、标签中含有这些关键字的资源,将这些得到的资源按照一定的规则计算与用户输入条件的相似度,然后根据相似度进行排序,并返回结果;
[0022] E搜索常用资源池,除搜索对象是常用资源池外,方法同D;
[0023] F搜索外部资源,从共同搜索接口继承,执行其他节点提供的搜索服务;对每一个提供外部资源的个体均使用相同的方法,以UML做参数,实例化外部搜索接口,调用其中的搜索函数进行搜索,取得搜索结果;
[0024] G将搜索结果整合,并按照相似度进行排序,返回。
[0025] 与现有技术相比,本发明的有益效果为:
[0026] (1)本发明提出的服务选取方法,为云制造服务平台提供了资源选取的具体方法以及技术实现步骤,可为资源服务化的实现提供最为关键的方法;
[0027] (2)本发明摒弃了传统的基于QoS的服务选取方法存在的弊端,不依赖于候选服务集,在候选服务少的情况下仍可使用;
[0028] (3)本发明进一步从系统中分离了资源描述以及资源约束描述,并描述成模型注册到服务平台,这种结构的改进使约束满足性的检测成为现实,进而可检测资源服务组合的有效性,可提高企业应用集成的效率,并具有很高的灵活性。

附图说明

[0029] 图1是本发明云制造平台中基于资源约束的服务选取方法结构图;
[0030] 图2是本发明基于资源约束的服务选取方法主体流程图;
[0031] 图3是本发明资源搜索方法的主体流程图;
[0032] 图4是本发明算法SrvAvailable的流程图;
[0033] 图5是本发明算法PostSrvAvailable的流程图。

具体实施方式

[0034] 下面结合附图与具体实施方式对本发明作进一步详细地说明。
[0035] 参照图1,本实施例就是一个中小企业云制造服务平台。该平台核心部件包括资源虚拟化管理、虚拟资源配置、资源服务化管理、服务注册管理、工作流模型设计工具、过程监控器。本发明的资源选取方法用于资源服务化管理,实施过程要点如下:
[0036] 第一,用XML描述资源和资源约束。
[0037] 1.制造资源描述格式:
[0038] a)资源基本信息(必要信息)
[0039]
[0040] b)定义文档提交人信息(必要信息)
[0041]
[0042] c)资源提供者(必要信息)
[0043]
[0044] d)资源属性(可选信息)
[0045]
[0046] e)标签(可选信息)
[0047]
[0048] f)资源状态(必要信息)
[0049]
[0050] 2.资源约束描述格式:
[0051]
[0052] 3.制造资源描述范例:建筑行业施工资质
[0053]
[0054] 可承担单项建安合同额不超过企业注册资本金5倍的下列房屋建筑工程的施工
[0055] (1)40层及以下、各类跨度的房屋建筑工程;
[0056] (2)高度240米及以下的构筑物;
[0057] (3)建筑面积20万平方米及以下的住宅小区或建筑群体。
[0058] 房屋建筑工程是指工业、民用与公共建筑(建筑物、构筑物)工程。工程内容包括地基与基础工程,土石方工程,结构工程,屋面工程,内、外部的装修装饰工程,上下水、供暖、电器、卫生洁具、通风、照明、消防、防雷等安装工程。[0059]
[0060]
[0061]
[0062] 第二,虚拟资源搜索。
[0063] 1.提供一个共同的搜索接口ISearch,接口定义Search、GetSearchCount、GetResourceDetail三个方法。其中Search用来根据用户输入的关键字和资源类别搜索资源,返回搜索结果;GetSearchCount用来获取符合条件的资源总数;GetResourceDetail用来根据URI,获取资源详细信息。
[0064] 2.对于三种资源,分别定义NormalResourceSearch、UsualResourceSearch、ExternalResourceSearch三个类实现ISearch接口。在这三个类中,根据资源的类型实现搜索功能。
[0065] 3.对于三个具体的搜索类,定义三个针对它们的工厂类,分别是NormalSearchFactory、UsualSearchFactory、EXSearchFactory,用来创建对应的搜索类对象。这三个工厂类都实现一个共同的接口ISearchFactory。接口中定义CreateSearch方法,根据参数列表创建对应的搜索类对象。
[0066] 4.对于大资源池中的资源,使用NormalResourceSearch类进行搜索。搜索的方法是:①对用户的输入进行分词,最原始的分词采用空格为分隔符;如果用户输入词组或者长词组,则使用一种中文分词工具包进行分词,比如复旦大学的开源工具FudanNLP等。②将用户选择的类别信息、分词所得的关键字作为条件,查询名称、标签中含有这些关键字的资源。③将这些得到的资源按照一定的规则计算与用户输入条件的相似度,然后根据相似度进行排序,并返回结果。例如,权重的分配:名称>第1个标签>第2个标签>第3个标签…。
[0067] 5.对于常用资源池中的资源,搜索方法与大资源池中一致。但搜索的对象是常用资源池中的资源。
[0068] 6.对于外部资源,定义IEXSearch接口,继承自ISearch。并且规定提供外部搜索的公司必须使用WebService技术,实现这个IEXSearch这个接口。
[0069] 7.搜 索 外 部 资 源 的 时 候,在ExternalResourceSearch 类 中 实 现。ExternalResourceSearch类中的Search方法,首先对每一个提供外部资源的个体,使用EXFactory的CreateEXSearch方法,以WebService的URL作为参数,实例化IEXSearch接口,并调用IEXSearch中的Search进行搜索,取得搜索结果。然后将搜索结果整合,并按照相似度进行排序,返回。
[0070] 第三,形式化资源约束模型。制造资源约束描述范例:“建筑行业施工资质”资源约束。
[0071]
[0072] 第四,完成“建筑行业施工资质”资源元数据建模和“建筑行业施工资质”资源约束建模后,保存成文件RMeta.xml和RConstraint.xml,并部署到云制造服务平台目录BuildResource中。
[0073] 第五,当选取服务时,执行包含检测算法SrvAvailable的工具“资源检测器”,判断服务的资源约束“Price>=40万”的满足性,结果为真则选取该服务,结果若为假则放弃。
[0074] 第六,当在服务工作流环境下使用时,执行包含检测算法PostSrvAvailable的工具“资源检测器”,在服务执行的任何步骤都可判断服务的资源约束“Price>=40万”的满足性,一旦结果为假则放弃该服务,并寻求替代服务。
[0075] 基于资源约束的服务选取方法主体思路如图2所示。第一步,对资源进行描述。由于企业不同,企业的资源也千差万别,为了统一接入云制造服务平台,采用基于XML格式的元数据方式描述。
[0076] 第二步,对资源约束进行描述。以关系表达式或者逻辑表达式的方式进行描述,其中表达式里面涉及的资源在第一步进行描述。
[0077] 第三步,把资源描述和资源约束描述形成两个模型,并以文件的方式注册到云制造服务平台。
[0078] 第四步,当对资源进行选取的时候,包括直接选取以及服务工作流执行的时候的动态选取,首先采用检测算法对资源约束进行检测,若约束满足,可以选取,否则,不能选取。
[0079] 资源搜索方法的主体思路图3所示。第一步,给出一个用于搜索的公共接口定义,以备被不同的搜索实现。
[0080] 第二步,定义普通资源公共接口、常用资源接口以及外部资源公共接口。
[0081] 第三步,定义普通资源工厂类、常用资源工厂类以及外部资源工厂类。
[0082] 第四步,对用户输入分词,分词的目的就是分出不同的关键字,主要是解决用户输入不规范的问题。
[0083] 第五步,根据分好的关键词,对三个资源池进行搜索。
[0084] 第六步,其中,对外部资源搜索时,是用关键词做参数,调用外部搜索服务,并把执行返回的搜索结果,按照相似度排序并集中显示。
[0085] 算法SrvAvailable的思路如图4所示:第一步,定义资源,描述出资源元数据模型。
[0086] 第二步,定义资源约束,描述出资源约束模型。
[0087] 第三步,对某个服务的约束P进行检测,即根据运行时资源的取值,检测资源约束模型中的表达式的真假值。检测结果为真,表明约束满足,有效,结果为假,表明约束不满足,无效。
[0088] 算法PostSrvAvailable的思路如图5所示:第一步,读取服务Si,要对所有服务进行循环处理。
[0089] 第二步,读取约束表达式Pi,要对所有服务Si的所有约束Pi进行处理。
[0090] 第三步,执行算法SrvAvailable,此处对Pi进行测试。
[0091] 第四步,如果Pi结果为真,则继续,转第二步,否则直接转第一步,直接处理下一个服务
[0092] 第五步,服务工作流中,开始测试的节点之后的所有路径上的服务的约束是否存在不满足的约束,如果存在,表明该路径在约束不满足之处未来无法执行,路径无效。否则路径有效。