CN111416854B - 云服务发布方法、订阅方法、装置和系统 - Google Patents
云服务发布方法、订阅方法、装置和系统 Download PDFInfo
- Publication number
- CN111416854B CN111416854B CN202010181430.3A CN202010181430A CN111416854B CN 111416854 B CN111416854 B CN 111416854B CN 202010181430 A CN202010181430 A CN 202010181430A CN 111416854 B CN111416854 B CN 111416854B
- Authority
- CN
- China
- Prior art keywords
- service
- subscription information
- service subscription
- information
- actual
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种云服务发布方法、订阅方法、装置和系统。发布方法包括:接收云服务供应商发送的服务发布信息;根据服务发布信息将发布的实际服务与服务订阅列表中各服务订阅信息对应的所需服务进行对比,当实际服务与任一个所需服务完全匹配时,按照服务订阅信息中的路径将实际服务反向传递至接收服务发布信息的节点对应的上一个节点,上一个节点用于将实际服务依次传输至与服务订阅信息相对应的云服务消费者。该云服务发布方法可以实现在任一个节点以及多节点服务发布,大大提高了服务发布的效率。
Description
技术领域
本申请涉及信息发布订阅技术领域,特别是涉及一种云服务发布方法、订阅方法、装置和系统。
背景技术
云计算(cloud computing)是一种通过互联网以服务的方式提供动态可伸缩的虚拟化的资源的计算模式。在云计算模式下,所有计算资源都以服务的形式提供给用户。用户可以通过网络以按需、可扩展的方式来获取所需服务,并且可以把这些服务组合起来,开发新的增值服务。作为一种崭新的计算模式和商业模式,云计算受到学术界和工业界越来越多的关注。目前,很多大型企业(比如IBM,谷歌,亚马逊等)都在研究并应用云计算技术和基于云计算的服务。
云计算环境改变了传统的应用开发模式。云环境下的应用开发模式及其独特特点,使得应用开发人员可以复用和组合现有的第三方服务来快速开发和部署新的增值服务,但同时也给增值服务开发带来了新的问题。为了灵活高效地开发出更好的增值服务,应用开发人员需要在海量的第三方服务中挑选最符合需求的服务,这牵涉到服务注册和服务查找等多方面的因素,比如判断服务功能是否一致、服务行为是否兼容、服务质量是否可靠、服务语义是否准确等等。在云计算环境下,这些因素的复杂度会急剧增加。因此,如何高效灵活发布云服务以及快速地从海量的第三方服务中有效查找到满足需求的服务成为一个亟需解决但又非常具有挑战性的问题,主要体现在以下几个方面:1)在云计算环境下,存在着海量的云服务和大量的服务提供商与服务消费者,并且不断出现大量新的服务发布和新的服务消费需求,这使得传统的基于服务注册中心的服务发布和查找方式存在很大的性能瓶颈。在一个集中式的服务注册中心,每次服务查找性能会随着注册服务数量的增加而急剧下降。当大量服务消费者同时访问服务注册中心时,服务查找遭遇的性能瓶颈问题更为突出。2)现有的服务注册中心缺乏对服务进行注册及查询的支持。现有工作更多关注如何发布和查找满足服务功能描述、服务质量匹配需求的服务。这些工作假设被查找服务是原子服务,其挑选的服务在行为上不一定准确。因此,当查找到这些服务后,服务消费者需要逐一验证所挑选服务行为是否兼容。如果挑选服务行为不兼容(例如出现死锁),服务消费者需要重新通过服务注册中心查找新的服务,直到所挑选的服务满足行为兼容为止。这不仅严重降低了服务查找的效率,而且极大增加了服务消费者查找服务的复杂度。3)现有工作基于集中注册和按需查找的方式,即服务消费者在需要查找服务时,主动通过查询服务注册中心来挑选满足需求的服务。这种方式适合于服务注册中心所注册服务变动很少的情况。然而,在云计算环境下,每天都有大量新的服务发布,并且服务提供商也会经常更新升级其发布的服务,这使得现有的这种服务查找方式缺乏灵活性。比如,当一个服务消费者挑选好一个服务后,一个功能相同、质量更好、价格更便宜的服务被发布出来,该服务消费者并不能及时发现这个更好的服务,因而给服务消费者带来了损失。
发明内容
基于此,有必要针对目前的问题,提供一种云服务发布方法、订阅方法、装置和系统。
一种云服务发布方法,所述方法用于Pub/Sub分布式云服务系统,其中所述Pub/Sub分布式云服务系统包括多个互相连接的节点,所述方法包括:
接收云服务供应商发送的服务发布信息;
根据所述服务发布信息将发布的实际服务与服务订阅列表中各服务订阅信息对应的所需服务进行对比,当所述实际服务与任一个所述所需服务完全匹配时,按照所述服务订阅信息中的路径将所述实际服务反向传递至接收所述服务发布信息的节点对应的上一个节点,所述上一个节点用于将所述实际服务依次传输至与所述服务订阅信息相对应的云服务消费者。
在其中一个实施例中,当实际服务与任一个所述所需服务部分匹配时,将未匹配的所述所需服务对应的所述服务订阅信息分解成子服务订阅信息,并将所述子服务订阅信息发送至接收所述服务发布信息的节点之外的任一节点,所述任一节点用于根据所述子服务订阅信息查找对应的实际服务。
在其中一个实施例中,还包括:
将所述实际服务缓存至服务发布列表。
在其中一个实施例中,还包括:
按照与所述所需服务的匹配次数对所述服务发布列表中的所述实际服务进行排序;
在预设的时间内,当所述匹配次数小于预设阈值时,从所述服务发布列表中删除相应的所述实际服务。
一种云服务订阅方法,所述方法用于Pub/Sub分布式云服务系统,其中所述Pub/Sub分布式云服务系统包括多个互相连接的节点,所述方法包括:
接收云服务消费者发送的服务订阅信息;
将接收的所述服务订阅信息与服务订阅列表中的服务订阅信息比较,当接收到的所述服务订阅信息与所述服务订阅列表中的任一个所述服务订阅信息相同时,检测所述服务订阅列表中的任一个所述服务订阅信息对应的所需服务是否处于匹配状态;
若处于匹配状态,在服务发布列表中提取与所述所需服务对应的实际服务;
将所述实际服务按照所述服务订阅信息中的路径传输至所述云服务消费者。
在其中一个实施例中,接收到的所述服务订阅信息与所述服务订阅列表中的任一个所述服务订阅信息部分相同时,对将不相同部分的接收到的所述服务订阅信息进行分解,得到子服务订阅信息,并将所述子服务订阅信息发送至接收云服务消费者发布的服务订阅信息的节点对应的其他节点。
在其中一个实施例中,还包括:
接收到所述子服务订阅信息对应的实际服务,将所有所述实际服务进行组合,并将组合后的实际服务按照所述服务订阅信息中的路径传输至所述云服务消费者。
在其中一个实施例中,当接收到的所述服务订阅信息与所述服务订阅列表中的任一个所述服务订阅信息不相同时,将接收到的所述服务订阅信息发送至相邻的其他节点。
一种云服务发布装置,所述装置用于Pub/Sub分布式云服务系统,其中所述Pub/Sub分布式云服务系统包括多个互相连接的节点,所述装置包括:
发布信息接收模块,接收云服务供应商发送的服务发布信息;
服务对比模块,用于根据所述服务发布信息将发布的实际服务与服务订阅列表中各服务订阅信息对应的所需服务进行对比;
实际服务传递模块,用于当所述实际服务与任一个所述所需服务完全匹配时,按照所述服务订阅信息中的路径将所述实际服务反向传递至接收所述服务发布信息的节点对应的上一个节点,所述上一个节点用于将所述实际服务依次传输至与所述服务订阅信息相对应的云服务消费者。
一种云服务订阅装置,所述装置用于Pub/Sub分布式云服务系统,其中所述Pub/Sub分布式云服务系统包括多个互相连接的节点,所述装置包括:
订阅信息接收模块,用于接收云服务消费者发送的服务订阅信息;
信息比较模块,用于将接收的所述服务订阅信息与服务订阅列表中的服务订阅信息比较;
匹配检测模块,用于当接收到的所述服务订阅信息与所述服务订阅列表中的任一个所述服务订阅信息相同时,检测所述服务订阅列表中的任一个所述服务订阅信息对应的所需服务是否处于匹配状态;
服务提取模块,用于若处于匹配状态,在服务发布列表中提取与所述所需服务对应的实际服务;
服务传输模块,用于将所述实际服务按照所述服务订阅信息中的路径传输至所述云服务消费者。
一种Pub/Sub分布式云服务系统,包括云服务供应商、云服务消费者和各节点,其中所述云服务供应商、所述云服务消费者分别与各节点连接,且各节点之间互相连接;
所述云服务供应商用于发送服务发布信息;
所述云服务消费者用于发送服务订阅信息,并接受与所述服务订阅信息对应的实际服务;
各所述节点执行所述的云服务发布方法或所述的云服务订阅方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的云服务发布方法或所述的云服务订阅方法。
上述的云服务发布方法、装置、系统和计算机可读存储介质,该云服务发布方法应用于Pub/Sub分布式云服务系统,该分布式系统中包括多个互相连接的节点(即服务器),任一个节点可以接收云服务供应商发送的服务发布信息,然后该节点根据服务发布信息将发布的实际服务与服务订阅列表中各服务订阅信息所对应的所需服务进行对比,当实际服务与所需服务完全匹配时,然后就将该实际服务发送至该节点对应的上一个节点,然后经过上一个节点依次将实际服务发送至于服务订阅信息相对应的云服务消费者。该云服务发布方法可以实现在任一个节点以及多节点服务发布,大大提高了服务发布的效率。且每一个节点都可以对发布的实际服务与订阅服务信息所对应的所需服务进行匹配,在匹配通过时直接就实际服务发送至相应的服务消费者,从而避免了中心节点(例如信息集中处理中心)对信息的集中处理,大大提高了信息处理速度。
上述云服务订阅方法、装置、系统和存储介质,任一节点可以接收云服务消费者发送的服务订阅信息,该节点将接收的服务订阅信息与该节点服务订阅列表中的服务订阅信息比较,当接收的服务订阅信息与列表中的服务订阅信息相同时,表示在该节点上已经存在相同的服务于订阅请求,然后根据服务订阅信息检测所需服务匹配状态,若匹配说明该服务订阅信息以及有对应的实际服务,只需要将实际服务提取出发送至云服务消费者。上述云服务订阅方法可以实现一个或多个节点信息同时传输、处理,大大提高了信息处理速度,且准确率高。
附图说明
图1为一个实施例中Pub/Sub分布式云服务系统的流程示意图;
图2为一个实施例中云服务发布方法的流程示意图;
图3为一个实施例中云服务发布方法的流程示意图;
图4为一个实施例中云服务订阅方法的流程示意图;
图5为另一实施例中云服务订阅/发布示意图;
图6为一个实施例中云服务订阅/发布示意图;
图7为一个实施例中云服务发布装置的结构示意图;
图8为一个实施例中云服务订阅装置的结构示意图;
图9为一个实施例中Pub/Sub分布式云服务系统的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为Pub/Sub分布式云服务系统,本方法运用于图1系统中,其中该系统包括云服务供应商(可以是一个或多个)、云服务消费者(可以是一个或多个)和多个节点(即服务器例如B1、B2…Bn),其中各节点之前互相连接,任一个节点都可以接收云服务供应商发送的服务发布信息,以及接收云服务消费者发送的服务订阅信息,并根据服务发布信息完成服务的发布,根据服务订阅信息完成服务的查找(即订阅)。
在一个实施例中,如2所示,提供了一种云服务发布方法,以该方法应用于任一节点(即服务器)为例行说明,包括以下步骤:
步骤S202,接收云服务供应商发送的服务发布信息;
该云服务发布方法是从节点(即服务器)单端角度撰写的。其中节点可以是Pub/Sub分布式云服务系统中任意一个节点。Pub/Sub是指发布者/订阅者模式或机制,即可以进行信息发布以及订阅。
服务发布就是(云)服务供应商根据云服务实现规范,定义基于有限状态自动机的云服务发布消息,即根据(云)服务的实现规范及各子任务之间的依赖关系,生成有限状态自动机,形式化描述云服务实现细节。其中自动机指有限状态机(FSM)的数学模型,即软件设计模式。根据云服务实现规范,(云)服务供应商把(云)服务自动机发布到分布式网络的一个节点,(云)服务供应商可以就近选择任意一个节点发布该服务发布,实现快速服务发布。
在本实施例中,(云)服务供应商根据分布式云服务发布订阅节点覆盖网络,可以选择就近节点发布服务。因此,(云)服务供应商发送服务发布消息至所要发布服务的节点,其中服务发布消息包括服务提供商ID、服务的自动机描述信息、服务内容(即实际服务)、自邻近节点的匹配结果(例如包含被匹配的服务)。
在其中一个实施例中,节点接收到服务发布信息,可以将服务发布信息缓存至该节点的服务发布列表,以供与后续的服务订阅信息匹配使用。
步骤S204,根据服务发布信息将发布的实际服务与服务订阅列表中各服务订阅信息对应的所需服务进行对比;
步骤S206,当实际服务与任一个所需服务完全匹配时,按照服务订阅信息中的路径将实际服务反向传递至接收服务发布信息的节点对应的上一个节点,上一个节点用于将实际服务依次传输至与服务订阅信息相对应的云服务消费者。
具体的,节点接收到一个服务发布之后(即接收到实际服务后),先把该实际服务与该节点上服务订阅列表中缓存的各服务订阅信息对应的所需服务进行匹配,即根据服务订阅信息中对应的所需服务来确定该节点发布的实际服务是否相同(即安全匹配),即确定实际服务就是所需服务,则将实际服务反向传递到该节点对应的上一个节点,并通过上一个节点依次传输到服务消费者。
上述的云服务发布方法,该云服务发布方法应用于Pub/Sub分布式云服务系统,该分布式系统中包括多个互相连接的节点(即服务器),任一个节点可以接收云服务供应商发送的服务发布信息,然后该节点根据服务发布信息将发布的实际服务与服务订阅列表中各服务订阅信息所对应的所需服务进行对比,当实际服务与所需服务完全匹配时,然后就将该实际服务发送至该节点对应的上一个节点,然后经过上一个节点依次将实际服务发送至于服务订阅信息相对应的云服务消费者。该云服务发布方法可以实现在任一个节点以及多节点服务发布,大大提高了服务发布的效率。且每一个节点都可以对发布的实际服务与订阅服务信息所对应的所需服务进行匹配,在匹配通过时直接就实际服务发送至相应的服务消费者,从而避免了中心节点(例如信息集中处理中心)对信息的集中处理,大大提高了信息处理速度。
另外,当实际服务与所需服务完全匹配时,需要进一步判断所需服务所对应服务订阅信息是否是一个完整服务订阅信息,如果是,则直接将实际服务通过相关路径发送至服务消费者即可;如果不是一个完整的服务订阅信息,则意味着还需要等待其他分解的子服务订阅信息都被匹配成功,然后将所有子服务订阅信息对应的实际服务都合并起来发送至服务消费者。并且如果匹配成功时,则更新服务订阅列表中的匹配状态,标注该实际服务与服务订阅信息为匹配成功状态。
在其中一个实施例中,当实际服务与任一个所需服务部分匹配时,将未匹配的所需服务对应的服务订阅信息分解成子服务订阅信息,并将子服务订阅信息发送至接收服务发布信息的节点之外的任一节点,任一节点用于根据子服务订阅信息查找对应的实际服务。
具体的,如果该实际服务没有匹配一个所需服务,则检查是否完成所需服务的部分功能?如果该服务订阅的部分功能能够被该服务实现,将未匹配的所需服务对应的服务订阅信息分解成子服务订阅信息。然后更新服务订阅列表,把新生成的子服务订阅信息加入到服务订阅列表当中,同时标记原服务订阅信息为分解状态,并记录其分解的详细信息。
在其中一个实施例中,如图3所示,还包括:
步骤S302,按照与所需服务的匹配次数对服务发布列表中的实际服务进行排序;
步骤S304,在预设的时间内,当匹配次数小于预设阈值时,从服务发布列表中删除相应的实际服务。
具体的,每个节点根据实际服务与所需服务的匹配次数对服务发布列表中的实际服务进行排序,当在预设时间内匹配次数小于给定阈值时,把该实际服务从服务发布列表中清理出。匹配次数太小,说明发布的该实际服务用途不大(即实用性差)或已经过时,将其清理,一方面减少资源浪费便于其他服务发布,另一方面也方面用户订阅,信息查找便利。
一种云服务订阅方法,方法用于Pub/Sub分布式云服务系统,其中Pub/Sub分布式云服务系统包括多个互相连接的节点,请参照图4,其中方法包括:
步骤S402,接收云服务消费者发送的服务订阅信息;
该云服务发布方法是从节点(即服务器)单端角度撰写的。其中节点可以是Pub/Sub分布式云服务系统中任意一个节点。根据分布式云服务发布订阅节点覆盖网络,云服务消费者可以选择就近节点发送服务订阅请求。服务订阅请求消息包含服务消费者ID,服务订阅的自动机描述等信息。其中自动机的生成过程为:根据云服务需求及各子任务之间的依赖关系,生成有限状态自动机(p,S,A,T),形式化描述云服务需求:其中p代表初始状态,S代表状态集合,A代表动作,T代表状态转移。在此基础之上,定义自动机之间的组合操作,即p=0||a·p|p||p|p+p|p;p。其中0表示终止状态;a.p表示先执行动作a,然后到达状态p;p||p表示两个自动机并行执行;p+p表示两个自动机选择执行;p;p表示只有成功执行完成第一个自动机,然后才能执行第二个自动机。以上组合操作可以用来组合不同的服务订阅信息,形成更大的服务订阅信息,也可以把一个大的服务订阅信息,分解成小的子服务订阅信息。
步骤S404,将接收的服务订阅信息与服务订阅列表中的服务订阅信息比较,当接收到的服务订阅信息与服务订阅列表中的任一个服务订阅信息相同时,检测服务订阅列表中的任一个服务订阅信息对应的所需服务是否处于匹配状态;
步骤S406,若处于匹配状态,在服务发布列表中提取与所需服务对应的实际服务;
步骤S408,将实际服务按照服务订阅信息中的路径传输至云服务消费者。
具体地,根据Pub/Sub分布式网络,从订阅节点向邻近的任一节点自动发送云服务订阅规范。邻近节点收到一个服务订阅请求后,首先查找该节点上缓存的服务订阅及匹配情况。节点把接收到的(云)服务订阅请求存放在节点的服务订阅列表中。每个节点都定义一个服务订阅列表,用于保存消费者服务订阅以及从邻近节点路由过来的服务订阅信息。服务订阅列表记录每个服务订阅的自动机、匹配状态以及分解情况。
节点检查接收到的服务订阅信息是否在服务订阅列表中存在相同的。相同的服务订阅信息指其服务订阅自动机是等价的。如果存在相同的服务订阅信息,检查该服务订阅信息的匹配状态,如果该相同的服务订阅信息已经被成功匹配,然后检查匹配成功的服务订阅是否为一个完整的服务订阅(即该服务订阅不是被分解的子订阅)。如果不是一个完整的服务订阅信息,则意味着还需要等待其他分解的子服务订阅都被完全匹配成功。如果该服务订阅信息是完整的,则意味着服务订阅信息已经被匹配成功,节点根据该服务订阅的匹配参数,沿着服务订阅路由的路径反向传播匹配结果,即将服务订阅信息对应的实际服务按照服务订阅信息中的路径传输至云服务消费者。
另外,如果存在相同的服务订阅信息,且该服务订阅信息北成功匹配,节点更新路由表,拷贝相同服务订阅的匹配参数,标注该服务订阅为匹配成功,无需继续向邻近节点路由该服务订阅信息。同时,如果该服务订阅信息是某些订阅的子服务订阅信息,则组合这些相应的子服务订阅信息。
在其中一个实施例中,接收到的服务订阅信息与服务订阅列表中的任一个服务订阅信息部分相同时,对将不相同部分的接收到的服务订阅信息进行分解,得到子服务订阅信息,并将子服务订阅信息发送至接收云服务消费者发布的服务订阅信息的节点对应的其他节点。
具体的,当接收到的服务订阅信息与服务订阅列表中的任一个服务订阅信息都不相同(即全部相同)时,检测接收到的服务订阅信息是否与服务订阅列表中的任意一个服务订阅信息部分相同,其中部分相同是指接收到的服务订阅信息是否能够覆盖现有的实际服务,即该服务订阅信息中的部分功能能够被现有的实际服务实现。如果该服务订阅信息能够覆盖现有的实际服务,则根据覆盖情况把该订阅进行分解,未被完成部分分解成子服务订阅信息,并将子服务订阅信息发送至接收云服务消费者发布的服务订阅信息的节点对应的其他节点。其他节点可以对子服务订阅信息进行处理,进一步找到其对用的实际服务,采用该方法可以快速地完成服务订阅信息对应的实际服务查找。
另外,覆盖的判断主要是通过覆盖关系来判断。具体的,根据有限状态自动机的结构和逻辑关系,定义自动机包含关系,作为(云)服务订阅规范之间的覆盖关系依据:如果p=q|a.q|q||q’|q+q’|q;q’|q;q’,则称p覆盖q,简记为cover(p,q)。该覆盖关系满足传递律,即如果存在q’满足cover(p,q’)∧cover(q’,q),则cover(p,q)成立。基于以上定义的覆盖关系,节点在转发订服务订阅信息之前,先判断该服务订阅信息是否已经覆盖了该节点上缓存的服务订阅信息,若存在满足覆盖的服务订阅信息,则把(云)服务订阅中已被覆盖的部分分解出来,把未被覆盖的部分生成子服务订阅信息,然后再把未被覆盖部分生成的子服务于订阅信息向邻近节点进行路由,从而减少重复路由及不必要的匹配。
可选的,节点在分解得到子服务订阅信息后,将其子服务订阅信息缓存到该节点的服务订阅列表中,以方便该节点在下一次接收到服务订阅信息时判断其服务订阅信息的完整性。
在其中一个实施例中,还包括:
接收到子服务订阅信息对应的实际服务,将所有实际服务进行组合,并将组合后的实际服务按照服务订阅信息中的路径传输至云服务消费者。
具体的,节点也会接受到其他节点发送的子服务订阅信息对应的实际服务,然后将所有的服务进行组合,从未形成了与服务订阅信息对应的完整的实际服务,然后将组合后的实际服务发送至云服务消费者。
在其中一个实施例中,当接收到的服务订阅信息与服务订阅列表中的任一个服务订阅信息不相同时,将接收到的服务订阅信息发送至相邻的其他节点。其他节点然后重复执行S402至S408的步骤。采用该方法可以方便用户快速找到与服务订阅信息对应的实际服务。
上述云服务订阅方法,任一节点可以接收云服务消费者发送的服务订阅信息,该节点将接收的服务订阅信息与该节点服务订阅列表中的服务订阅信息比较,当接收的服务订阅信息与列表中的服务订阅信息相同时,表示在该节点上已经存在相同的服务于订阅请求,然后根据服务订阅信息检测所需服务匹配状态,若匹配说明该服务订阅信息以及有对应的实际服务,只需要将实际服务提取出发送至云服务消费者。上述云服务订阅方法可以实现一个或多个节点信息同时传输、处理,大大提高了信息处理速度,且准确率高。
为了便于理解该方案,给出一个详细的实施例。如图5所示,B1、B2、B3、B4、B5、B6等节点相互连接组成一个分布式节点网络。三个服务提供商分别在节点B1、B2、B6发布了三条服务注册信息P1、P2、P3,一个服务消费者在B5发布了一条服务需求信息S。这些服务注册信息和服务需求信息既包括服务功能和服务质量,也包括服务行为的描述(在图5中以有限状态自动机的形式描述服务行为,刻画各个任务的先后和逻辑关系)。当节点B5接到服务订阅请求S时,该订阅会通过分布式节点网络自动进行路由,最终在路由的过程中自动分解为三个子订阅S1、S2、S3,分别与P1、P2、P3成功进行匹配,表示P1、P2、P3组合在一起成功满足消费者的服务需求,如图5-图6所示。最后,P1、P2、P3所代表的服务注册信息沿着服务订阅S的路由路径逆方向返回给服务消费者。这样,服务消费者成功查找到满足需求的服务组合(即P1、P2、P3的服务组合)。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,一种云服务发布装置,装置用于Pub/Sub分布式云服务系统,其中Pub/Sub分布式云服务系统包括多个互相连接的节点,装置包括:
发布信息接收模块702,接收云服务供应商发送的服务发布信息;
服务对比模块704,用于根据服务发布信息将发布的实际服务与服务订阅列表中各服务订阅信息对应的所需服务进行对比;
实际服务传递模块706,用于当实际服务与任一个所需服务完全匹配时,按照服务订阅信息中的路径将实际服务反向传递至接收服务发布信息的节点对应的上一个节点,上一个节点用于将实际服务依次传输至与服务订阅信息相对应的云服务消费者。
在其中一个实施例中,还包括:第一子服务订阅信息分解模块,用于当实际服务与任一个所需服务部分匹配时,将未匹配的所需服务对应的服务订阅信息分解成子服务订阅信息;
第一子服务订阅信息发送模块,用于将子服务订阅信息发送至接收服务发布信息的节点之外的任一节点,任一节点用于根据子服务订阅信息查找对应的实际服务。
在其中一个实施例中,还包括:实际服务缓存模块,用于将实际服务缓存至服务发布列表。
在其中一个实施例中,还包括:
实际服务排序模块,用于按照与所需服务的匹配次数对服务发布列表中的实际服务进行排序;
实际服务删除模块,用于在预设的时间内,当匹配次数小于预设阈值时,从服务发布列表中删除相应的实际服务。
一种云服务订阅装置,装置用于Pub/Sub分布式云服务系统,其中Pub/Sub分布式云服务系统包括多个互相连接的节点,如图8所示,装置包括:
订阅信息接收模块802,用于接收云服务消费者发送的服务订阅信息;
信息比较模块804,用于将接收的服务订阅信息与服务订阅列表中的服务订阅信息比较;
匹配检测模块806,用于当接收到的服务订阅信息与服务订阅列表中的任一个服务订阅信息相同时,检测服务订阅列表中的任一个服务订阅信息对应的所需服务是否处于匹配状态;
服务提取模块808,用于若处于匹配状态,在服务发布列表中提取与所需服务对应的实际服务;
服务传输模块810,用于将实际服务按照服务订阅信息中的路径传输至云服务消费者。
在其中一个实施例中,还包括:第二子服务订阅信息分解模块,用于接收到的服务订阅信息与服务订阅列表中的任一个服务订阅信息部分相同时,对将不相同部分的接收到的服务订阅信息进行分解,得到子服务订阅信息;
第二子服务订阅信息发送模块,用于并将子服务订阅信息发送至接收云服务消费者发布的服务订阅信息的节点对应的其他节点。
在其中一个实施例中,还包括:
实际服务组合模块,用于接收到子服务订阅信息对应的实际服务,将所有实际服务进行组合,并将组合后的实际服务按照服务订阅信息中的路径传输至云服务消费者。
在其中一个实施例中,服务订阅信息发送模块,用于当接收到的服务订阅信息与服务订阅列表中的任一个服务订阅信息不相同时,将接收到的服务订阅信息发送至相邻的其他节点。
在一个实施例中,一种Pub/Sub分布式云服务系统,包括云服务供应商、云服务消费者和各节点,其中云服务供应商、云服务消费者分别与各节点连接,且各节点之间互相连接;云服务供应商用于发送服务发布信息;云服务消费者用于发送服务订阅信息,并接受与服务订阅信息对应的实际服务;各节点执行任一实施例所述的云服务发布方法或任一实施例所述的云服务订阅方法。
具体的,如图9所示,基于Pub/Sub的云服务发布订阅系统包括包括云服务供应商、云服务消费者和各节点(B1......Bn),其中每一个节点包括服务发布接口300、服务订阅接口301、事件监听302、分布式节点覆盖网络构造303、分布式节点覆盖网络优化304、事务管理305、服务发布管理306、服务订阅管理307、服务订阅行为分解308、服务订阅路由管理309、服务发布/订阅匹配310、消息处理311,其中:服务发布接口300,用于云服务供应商调用进行服务发布;服务订阅接口301,用于云服务消费者调用进行服务订阅。事件监听302,用于自动收集分布式网络负载及云服务发布订阅路由与匹配信息,为分析和优化分布式节点网络提供数据支撑。分布式节点覆盖网络构造303,根据网络负载及发布订阅系统需求,自动构造基于Pub/Sub的分布式云服务发布订阅网络,为节点之间建立链接关系,为每个节点构造路由表。分布式节点覆盖网络优化304,根据现有网络负载情况及云服务发布订阅路由与匹配信息,分析和优化分布式节点网络,生成网络调整计划和方案,包括重新规划节点之间的链接关系,重新调整发布/订阅节点的位置,减少服务订阅和服务发布路由传递的路径,提高路由效率。事务管理305,采用基于松散定义的原子一致性语义,用于保证分布式节点网络调整时,不会遗漏正在传递和发布和订阅消息。服务发布管理306,用于维护服务发布列表,提供服务发布列表查询、修改、添加、删除以及排序等功能。服务订阅管理307,用于维护服务订阅列表,提供服务订阅列表查询、修改、添加、删除以及组合等功能。服务订阅行为分解308,用于分解服务订阅自动机,生成多个服务子订阅,所采用的分解依据为此前提出的服务组合操作。服务订阅行为分解是服务组合的逆过程。服务订阅路由管理309,用于维护节点的服务订阅路由表,提供基于行为覆盖的路由转发、基于订阅传播路径的反向匹配结果传播等功能。服务发布/订阅匹配310,用于判断服务订阅与服务发布自动机是否匹配,即服务发布是否完全或者部分实现了服务订阅的功能需求。消息处理311,用于接收服务订阅、服务发布、路由和匹配状态更新等消息,触发相应的处理模块进行消息处理。其中路由是指服务订阅信息从一个节点(服务器)传递到下一个节点(服务器)。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种云服务发布方法,所述方法用于Pub/Sub分布式云服务系统,其中所述Pub/Sub分布式云服务系统包括多个互相连接的节点,所述方法包括:
接收云服务供应商发送的服务发布信息;
根据所述服务发布信息将发布的实际服务与服务订阅列表中各服务订阅信息对应的所需服务进行对比,当所述实际服务与任一个所述所需服务完全匹配时,按照所述服务订阅信息中的路径将所述实际服务反向传递至接收所述服务发布信息的节点对应的上一个节点,所述上一个节点用于将所述实际服务依次传输至与所述服务订阅信息相对应的云服务消费者;当实际服务与任一个所述所需服务部分匹配时,将未匹配的所述所需服务对应的所述服务订阅信息分解成子服务订阅信息,并将所述子服务订阅信息发送至接收所述服务发布信息的节点之外的任一节点,所述任一节点用于根据所述子服务订阅信息查找对应的实际服务;所述服务订阅列表包括多个服务订阅信息,所述服务订阅信息包括订阅自动机、匹配状态和路径。
2.根据权利要求1所述的云服务发布方法,其特征在于,还包括:
将所述实际服务缓存至服务发布列表。
3.根据权利要求2所述的云服务发布方法,其特征在于,还包括:按照与所述所需服务的匹配次数对所述服务发布列表中的所述实际服务进行排序;在预设的时间内,当所述匹配次数小于预设阈值时,从所述服务发布列表中删除相应的所述实际服务。
4.一种云服务订阅方法,所述方法用于Pub/Sub分布式云服务系统,其中所述Pub/Sub分布式云服务系统包括多个互相连接的节点,所述方法包括:
接收云服务消费者发送的服务订阅信息;
将接收的所述服务订阅信息与服务订阅列表中的服务订阅信息比较,当接收到的所述服务订阅信息与所述服务订阅列表中的任一个所述服务订阅信息相同时,检测所述服务订阅列表中的任一个所述服务订阅信息对应的所需服务是否处于匹配状态;当实际服务与任一个所述所需服务部分匹配时,将未匹配的所述所需服务对应的所述服务订阅信息分解成子服务订阅信息,并将所述子服务订阅信息发送至接收服务发布信息的节点之外的任一节点,所述任一节点用于根据所述子服务订阅信息查找对应的实际服务;所述服务订阅列表包括多个服务订阅信息,所述服务订阅信息包括订阅自动机、匹配状态和路径;
若处于匹配状态,在服务发布列表中提取与所述所需服务对应的实际服务;
将所述实际服务按照所述服务订阅信息中的路径传输至所述云服务消费者。
5.根据权利要求4所述的云服务订阅方法,其特征在于,还包括:
接收到所述子服务订阅信息对应的实际服务,将所有所述实际服务进行组合,并将组合后的实际服务按照所述服务订阅信息中的路径传输至所述云服务消费者。
6.根据权利要求4或5所述的云服务订阅方法,其特征在于,当接收到的所述服务订阅信息与所述服务订阅列表中的任一个所述服务订阅信息不相同时,将接收到的所述服务订阅信息发送至相邻的其他节点。
7.一种云服务发布装置,所述装置用于Pub/Sub分布式云服务系统,其中所述Pub/Sub分布式云服务系统包括多个互相连接的节点,所述装置包括:
发布信息接收模块,接收云服务供应商发送的服务发布信息;
服务对比模块,用于根据所述服务发布信息将发布的实际服务与服务订阅列表中各服务订阅信息对应的所需服务进行对比;所述服务订阅列表包括多个服务订阅信息,所述服务订阅信息包括订阅自动机、匹配状态和路径;
实际服务传递模块,用于当所述实际服务与任一个所述所需服务完全匹配时,按照所述服务订阅信息中的路径将所述实际服务反向传递至接收所述服务发布信息的节点对应的上一个节点,所述上一个节点用于将所述实际服务依次传输至与所述服务订阅信息相对应的云服务消费者;当实际服务与任一个所述所需服务部分匹配时,将未匹配的所述所需服务对应的所述服务订阅信息分解成子服务订阅信息,并将所述子服务订阅信息发送至接收所述服务发布信息的节点之外的任一节点,所述任一节点用于根据所述子服务订阅信息查找对应的实际服务。
8.一种云服务订阅装置,所述装置用于Pub/Sub分布式云服务系统,其中所述Pub/Sub分布式云服务系统包括多个互相连接的节点,所述装置包括:
订阅信息接收模块,用于接收云服务消费者发送的服务订阅信息;信息比较模块,用于将接收的所述服务订阅信息与服务订阅列表中的服务订阅信息比较;所述服务订阅列表包括多个服务订阅信息,所述服务订阅信息包括订阅自动机、匹配状态和路径;
匹配检测模块,用于当接收到的所述服务订阅信息与所述服务订阅列表中的任一个所述服务订阅信息相同时,检测所述服务订阅列表中的任一个所述服务订阅信息对应的所需服务是否处于匹配状态或部分匹配状态;
服务提取模块,用于若处于匹配状态,在服务发布列表中提取与所述所需服务对应的实际服务;若处于部分匹配状态,将未匹配的所述所需服务对应的所述服务订阅信息分解成子服务订阅信息;
服务传输模块,用于将所述实际服务按照所述服务订阅信息中的路径传输至所述云服务消费者或根据所述子服务订阅信息查找对应的实际服务。
9.一种Pub/Sub分布式云服务系统,包括云服务供应商、云服务消费者和各节点,其中所述云服务供应商、所述云服务消费者分别与各节点连接,且各节点之间互相连接;
所述云服务供应商用于发送服务发布信息;
所述云服务消费者用于发送服务订阅信息,并接受与所述服务订阅信息对应的实际服务;
各所述节点执行所述权利要求1至3中或4至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3或4至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010181430.3A CN111416854B (zh) | 2020-03-16 | 2020-03-16 | 云服务发布方法、订阅方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010181430.3A CN111416854B (zh) | 2020-03-16 | 2020-03-16 | 云服务发布方法、订阅方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111416854A CN111416854A (zh) | 2020-07-14 |
CN111416854B true CN111416854B (zh) | 2022-04-19 |
Family
ID=71494401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010181430.3A Active CN111416854B (zh) | 2020-03-16 | 2020-03-16 | 云服务发布方法、订阅方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111416854B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095204B (zh) * | 2021-10-14 | 2024-03-15 | 北京天融信网络安全技术有限公司 | 基于订阅机制的情报设备联动方法、防护中心及安全设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158424A (zh) * | 2010-02-02 | 2011-08-17 | 微软公司 | 利用发布和订阅机制的消息传输系统 |
CN102624908A (zh) * | 2012-03-12 | 2012-08-01 | 浙江大学 | 一种基于混合P2P网络结构的语义Web服务发现方法 |
CN104468838A (zh) * | 2014-12-30 | 2015-03-25 | 桂林电子科技大学 | 一种P2P网路和发布订阅模式的Web服务选择方法 |
CN105610959A (zh) * | 2016-01-14 | 2016-05-25 | 中电长城网际系统应用有限公司 | 一种信息发布订阅平台及方法和信息发布订阅系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060165053A1 (en) * | 2005-01-21 | 2006-07-27 | Nec Laboratories America, Inc. | Content based data packet routing using labels |
CN102004798B (zh) * | 2010-12-27 | 2012-05-23 | 东北大学 | 一种基于复数单维索引的对称发布订阅系统匹配方法 |
US9560037B2 (en) * | 2014-06-19 | 2017-01-31 | Microsoft Technology Licensing, Llc | Integrated APIs and UIs for consuming services across different distributed networks |
CN106230638B (zh) * | 2016-08-08 | 2019-10-08 | 海南大学 | 一种基于事件的云服务测试与调试方法及系统 |
US20180262585A1 (en) * | 2017-03-08 | 2018-09-13 | Linkedin Corporation | Sub-second network telemetry using a publish-subscribe messaging system |
-
2020
- 2020-03-16 CN CN202010181430.3A patent/CN111416854B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158424A (zh) * | 2010-02-02 | 2011-08-17 | 微软公司 | 利用发布和订阅机制的消息传输系统 |
CN102624908A (zh) * | 2012-03-12 | 2012-08-01 | 浙江大学 | 一种基于混合P2P网络结构的语义Web服务发现方法 |
CN104468838A (zh) * | 2014-12-30 | 2015-03-25 | 桂林电子科技大学 | 一种P2P网路和发布订阅模式的Web服务选择方法 |
CN105610959A (zh) * | 2016-01-14 | 2016-05-25 | 中电长城网际系统应用有限公司 | 一种信息发布订阅平台及方法和信息发布订阅系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111416854A (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4588704B2 (ja) | 自己管理仲介情報フロー | |
Carzaniga et al. | Interfaces and algorithms for a wide-area event notification service | |
CN108874558A (zh) | 分布式事务的消息订阅方法、电子装置及可读存储介质 | |
CN113055492A (zh) | 服务灰度链路的控制方法、装置、计算机设备和存储介质 | |
CN103534988A (zh) | 消息发布与订阅的方法及装置 | |
US6839730B1 (en) | Method and system for efficiently matching events with subscribers in a content-based publish-subscribe system | |
CN114785685B (zh) | 软件差分升级方法、装置、电子设备及可读存储介质 | |
US9112824B2 (en) | Forwarding multicast messages in a messaging network | |
US10642585B1 (en) | Enhancing API service schemes | |
US20090187656A1 (en) | Method, system, and apparatus for scheduling pattern based web services | |
CN112040013A (zh) | 用于页面路由的方法、计算设备和计算机存储介质 | |
CN114401319B (zh) | 一种请求处理方法、装置、服务器及存储介质 | |
CN114338738A (zh) | 基于Actor模型的规则引擎及场景联动实现方法 | |
CN111416854B (zh) | 云服务发布方法、订阅方法、装置和系统 | |
CN113434119B (zh) | 一种基于流程控制的业务处理方法及其装置 | |
CN113468403A (zh) | 基于大数据挖掘的用户信息预测方法及云计算ai服务系统 | |
JP2004506272A (ja) | 未加工金融データを処理して、妥当性検査した商品案内情報を加入者に対して生成するシステム | |
JPWO2009107511A1 (ja) | 複合イベント検出/配信システム、複合イベント検出/配信方法、及び複合イベント検出/配信用プログラム | |
US8307112B2 (en) | Mediated information flow | |
CN115422225A (zh) | 分布式事务处理方法及事务管理器、中间件、系统 | |
Amarasinghe et al. | Aggregation-based discovery for virtual network environments | |
CN112685613B (zh) | 一种资源包查询的方法、装置及信息处理系统 | |
CN112035760B (zh) | 一种任务分配方法及计算机设备 | |
CN110995890B (zh) | 域名请求的调度方法及装置 | |
Rukkas et al. | Distributed datastores: Towards probabilistic approach for estimation of reliability |
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 | ||
GR01 | Patent grant |