一种发布/订阅方法及装置与流程

文档序号:12949112阅读:137来源:国知局
一种发布/订阅方法及装置与流程

本发明实施例涉及软件研发技术领域,特别是涉及一种发布/订阅方法及装置。



背景技术:

随着计算机技术的快速发展,软件技术也得到相应的发展。在软件研发过程中,发布/订阅为一种使用频率非常高的开发机制。在现有中的发布/订阅机制中,主题与订阅者相互分离,当主题事件发生时,发布者将信息传递给订阅者,整个机制便完成。

但是,在发布/订阅过程中,如果发生错误,或需要回溯执行过程时,无法获取执行的情况,例如在发送给订阅者的过程中由于突发网络故障导致发送不成功,而发布者不知道订阅者是否成功收到发布的信息,订阅者也不知道发布者的执行状况,导致订阅者订阅的信息遗失,且时间错误的信息也没办法获取。在整个研发过程中,大量的错误信息或者在事件执行过程中,需要进行及时定位,获取信息,这就需要对整个系统进行监控,以随时获取执行的效果。



技术实现要素:

本发明实施例的目的是提供一种发布/订阅方法及装置,以实现对发布/订阅过程的监控,提升发布/订阅机制的可维护性与可管理性。

为解决上述技术问题,本发明实施例提供以下技术方案:

本发明实施例一方面提供了一种发布/订阅方法,应用于信息中心,包括:

当接收到主题发送的主题消息时,对主题的发送状态进行更新,所述主题在有事件发生时,在向发布者发送主题信息时,同时将所述主题信息发送至信息中心;

接收订阅者发送的,成功接收到发布者发送的主题信息的反馈消息及反馈执行结果,并进行存储,所述订阅者将所述反馈消息成功发送至所述信息中心后,继续发送执行反馈的结果。

可选的,所述信息中心用二维表进行表示,所述二维表的行表示所述主题的名字,列表示所述订阅者的信息,当所述订阅者订阅所述主题时,将对应的二维表的表中元素设置为第一预设值。

可选的,所述信息中心用所述二维表进行表示,所述当接收到主题发送的主题消息时,对主题的发送状态进行更新包括:

当主题有多个事件发生时,按照事件发生的顺序,对所述二维表中的各所述第一预设值以递增的表达方式进行设置,以便于查询主题信息发布的顺序。

可选的,所述信息中心用所述二维表进行表示,所述接收所述订阅者发送的成功接收到发布者发送的主题信息的反馈消息及反馈执行结果包括:

当接收所述订阅者发送的成功接收到发布者发送的主题信息的反馈消息时,在所述二维表中确定所述订阅者与主题信息对应的目标元素;

为所述目标元素设置接收标识信息,以用于表示所述订阅者已接收到所述主题信息。

可选的,所述信息中心用所述二维表进行表示,所述接收所述订阅者发送的成功接收到发布者发送的主题信息的反馈消息及反馈执行结果包括:

当接收所述订阅者发送的反馈执行结果时,在所述二维表中确定具有接收标识信息的目标元素;

当判定当前执行成功时,则为所述目标元素设置执行成功标识;反之,则设置执行失败标识。

可选的,还包括:

接收所述发布者反馈的将所述主题信息已发送给订阅者的消息,并进行存储,所述发布者接收到主题发送的主题信息之后,将所述主题信息发送给订阅者。

本发明实施例另一方面提供了一种发布/订阅装置,应用于信息中心,包括:

主题接收模块,用于当接收到主题发送的主题消息时,对主题的发送状态进行更新,所述主题在有事件发生时,在向发布者发送主题信息时,同时将所述主题信息发送至信息中心;

订阅者信息模块,用于接收订阅者发送的成功接收到发布者发送的主题信息的反馈消息及反馈执行结果,并进行存储,所述订阅者将所述反馈消息成功发送至所述信息中心后,继续发送执行反馈的结果。

可选的,所述主题接收模块为当主题有多个事件发生时,按照事件发生的顺序,对所述二维表中的各所述第一预设值以递增的表达方式进行设置,以便于查询主题信息发布的顺序的模块。

可选的,所述订阅者信息模块为当接收所述订阅者发送的成功接收到发布者发送的主题信息的反馈消息时,在所述二维表中确定所述订阅者与主题信息对应的目标元素;为所述目标元素设置接收标识信息,以用于表示所述订阅者已接收到所述主题信息的模块。

可选的,所述订阅者信息模块包括:

执行结果设置单元,用于当接收所述订阅者发送的反馈执行结果时,在所述二维表中确定具有接收标识信息的目标元素;当判定当前执行成功时,则为所述目标元素设置执行成功标识;反之,则设置执行失败标识。

本发明实施例提供了一种发布/订阅方法,当接收到主题发送的主题消息时,对主题的发送状态进行更新,所述主题在有事件发生时,在向发布者发送主题信息时,同时将主题信息发送至信息中心;接收订阅者发送的,成功接收到发布者发送的主题信息的反馈消息及反馈执行结果,并进行存储,订阅者将反馈消息成功发送至信息中心后,继续发送执行反馈的结果。

本申请提供的技术方案的优点在于,在传统的发布/订阅中,设置了信息中心,用以与主题、发布者、订阅者进行通信,以实现对发布/订阅过程的全程监控,用户可以随时查看信息中心,知晓发布/订阅机制的执行结果,方便监控发布/订阅整个机制的执行情况,能够在错误发生时及时进行错位的定位,甚至是错误的回溯,提高发布/订阅机制的可追溯性,提升整个系统的可管理性、可维护性与可监控性。

此外,本发明实施例还针对发布/订阅方法提供了相应的实现装置,进一步使得所述方法更具有实用性,所述装置具有相应的优点。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种发布/订阅方法的流程示意图;

图2为本发明实施例提供的信息中心的一种表示方式的示意图;

图3为本发明实施例提供的信息中心的另一种表示方式示意图;

图4为本发明实施例提供的信息中心的再一种表示方式示意图;

图5为本发明实施例提供的信息中心的再一种表示方式示意图;

图6为本发明实施例提供的另一种发布/订阅方法的流程示意图;

图7为本发明实施例提供的发布/订阅装置的一种具体实施方式结构图;

图8为本发明实施例提供的发布/订阅装置的另一种具体实施方式结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。

首先参见图1,图1为本发明实施例提供的一种发布/订阅方法的流程示意图,本发明实施例可包括以下内容:

s101:当接收到主题发送的主题消息时,对主题的发送状态进行更新,所述主题在有事件发生时,在向发布者发送主题信息时,同时将所述主题信息发送至信息中心。

s102:接收订阅者发送的成功接收到发布者发送的主题信息的反馈消息及反馈执行结果,并进行存储,所述订阅者将所述反馈消息成功发送至所述信息中心后,继续发送执行反馈的结果。

预先创建信息中心,用于与主题、发布者与订阅者进行通信,获取发布/订阅过程中的各个参与者的执行情况。可在发布/订阅者定义的同时进行初始化建立。当主题有事件发生,在向发布者进行信息提交的同时提交信息到信息中心,信心中心对主题的发送进行更新,如果订阅者收到了发布者发布的消息,订阅者也对信息中心进行反馈,告诉信息中心收到了发布者发布的消息。当订阅者执行完毕后,将执行的结果告知信息中心,方便后期对事件执行结果的监测。

信息中心可用二维表进行表示,具体形式可参阅图2所示,二维表的行可表示所述主题的名字,列表示所述订阅者的信息(例如订阅者的名字),当所述订阅者订阅某个主题时,将订阅者与该主题对应的二维表的表中元素设置为第一预设值;当所述订阅者没有订阅某个主题时,将订阅者与该主题对应的二维表的表中元素设置为第二预设值。信息中心的可整体的记录的系统的情况。同时如果有新的主题或者新的订阅者,或者新的订阅发生,则直接修改表格的行列,保证信息中心能时刻记录所有的主题和订阅者。

其中,第一预设值、第二预设值可为任何一种表示方法,预先进行定义表示方法,使各个查询者明白当前表示方法的含义即可。例如,如果订阅者订阅了某个主题,则在对应行列中增加一个“0”的标志。如果订阅者没有订阅某个主题,则对应的表格位置置空。

举例来说,例如图2所示,订阅者为分别为1、2、3、4,主题为a、b、c。订阅者1与订阅者2订阅了a主题和b主题,订阅者3订阅了b主题,订阅者4订阅了c主题和b主题,那么二维表为四行五列的表格,行依次为订阅者1、订阅者2、订阅者3与订阅者4的名称1、2、3、4;列为主题的名称a、b、c。第二行第二列、第三列中的元素设置为0,表示订阅者1与订阅者2订阅了a主题;第三行第一列、第二列、第三列、第四列的元素设置为0,表示订阅者1、订阅者2、订阅者3与订阅者4订阅了b主题;第四行第四列的元素设置为0,表示订阅者4订阅了c主题。

当主题有多个事件发生时,按照事件发生的顺序,对所述二维表中的各所述第一预设值以递增的表达方式进行设置,以便于查询主题信息发布的顺序。

递增的表达方式可以为在字母与下标的方式进行表示,下标依次递增,以表示顺序,也可为数字递增的方式进行表示,这均不影响本申请的实现。

以上述具体实例为例,具体的请参阅图3所示,当主题发生,发布者发布信息时候,主题同时通知信息中心,按照事件发生的顺序,将主题对应的行有“0”的全部替换成“p1”、“p2”…,表示有主题执行,有信息发布。“pn”标志采用递增的方法,以便于订阅者按顺序收到发布主题,进行反馈时知道是哪个主题先触发,哪个主题后触发。例如b主题先发生,c主题后发生,将第三行第一列、第二列、第三列、第四列的元素设置为p1,第四行第四列的元素设置为p2。

当接收所述订阅者发送的成功接收到发布者发送的主题信息的反馈消息时,在所述二维表中确定所述订阅者与主题信息对应的目标元素;

为所述目标元素设置接收标识信息,以用于表示所述订阅者已接收到所述主题信息。

标识信息可为任何一种表示方法,预先进行定义表示方法,使各个查询者明白当前表示方法的含义即可。例如,如果订阅者接收到主题时,则在对应行列中增加一个“g”的标志。

信息中心记录订阅者接收到事件,当订阅者收到发布者发布的主题时,到信息中心,查询订阅者对应的列中,按照pn由小到大的顺序查找无“g”标志中“pn”,n取值最小的表格中,填入“g”标志。表示订阅者已经收到发布者发送的信息。

以图2中的具体实例为例,具体的请参阅图4所示,当订阅者3和订阅者4接收到发布者发送的b主题时,将第三行第三列、第四列的元素增加“g”,作为标识信息。

当接收所述订阅者发送的反馈执行结果时,在所述二维表中确定具有接收标识信息的目标元素;

当判定当前执行成功时,则为所述目标元素设置执行成功标识;反之,则设置执行失败标识。

执行成功标识与置执行失败标识可为任何一种表示方法,预先进行定义表示方法,使各个查询者明白当前表示方法的含义即可。例如,如果执行成功,则在对应行列中增加一个“y”的标识。

信息中心记录订阅者的执行情况所示,当订阅者执行完毕后,订阅者再次访问信息中心,根据订阅者的执行情况,进行反馈。查询对应列中,按照pn由到大的顺序查找有“png”(n=1,2,….)标记的,n取值最小的表格填入反馈结果。如果执行成功,则在订阅者对应的列中“png”(n=1,2,….)标志增加“y”,变成“pngy”(n=1,2,….),表示订阅者执行成功;如果执行失败,,则在订阅者对应的列中“png”(n=1,2,….),标志增加“n”,变成“pngn”(n=1,2,….),表示订阅者执行失败。

以图2中的具体实例为例,具体的请参阅图5所示,当订阅者3执行成功,订阅者4执行失败后,将第三行第三列增加“y”,作为成功执行标识信息;第四列的元素增加“n”,作为失败执行标识信息。

在本发明实施例提供的技术方案中,在传统的发布/订阅中,设置了信息中心,用以与主题、发布者、订阅者进行通信,以实现对发布/订阅过程的全程监控,用户可以随时查看信息中心,知晓发布/订阅机制的执行结果,方便监控发布/订阅整个机制的执行情况,能够在错误发生时及时进行错位的定位,甚至是错误的回溯,提高发布/订阅机制的可追溯性,提升整个系统的可管理性、可维护性与可监控性。

在一种具体的实施方式下,本申请还提供了另外一个实施例,请参阅图6,具体可包括:

s103:接收所述发布者反馈的将所述主题信息已发送给订阅者的消息,并进行存储,所述发布者接收到主题发送的主题信息之后,将所述主题信息发送给订阅者。

增加发布者的信息,可在将原二维表变为三维表进行记录发布/订阅过程中的各个参与者的执行情况。记录发布者的发布信息、执行成功信息,可以更加准确的、详细的回溯当前的执行过程,有助于提高发布/订阅机制的可追溯性,提升整个系统的可管理性、可维护性与可监控性。

本发明实施例还针对发布/订阅方法提供了相应的实现装置,进一步使得所述方法更具有实用性。下面对本发明实施例提供的发布/订阅装置进行介绍,下文描述的发布/订阅装置与上文描述的发布/订阅方法可相互对应参照。

参见图7,图7为本发明实施例提供的发布/订阅装置在一种具体实施过程下的结构图,该装置可包括:

主题接收模块701,用于当接收到主题发送的主题消息时,对主题的发送状态进行更新,所述主题在有事件发生时,在向发布者发送主题信息时,同时将所述主题信息发送至信息中心;

订阅者信息模块702,用于接收订阅者发送的成功接收到发布者发送的主题信息的反馈消息及反馈执行结果,并进行存储,所述订阅者将所述反馈消息成功发送至所述信息中心后,继续发送执行反馈的结果。

在本发明实施例的一些具体实施方式下,所述主题接收模块701可为当主题有多个事件发生时,按照事件发生的顺序,对所述二维表中的各所述第一预设值以递增的表达方式进行设置,以便于查询主题信息发布的顺序的模块。

在另外一些实施方式中,所述订阅者信息模块702可为当接收所述订阅者发送的成功接收到发布者发送的主题信息的反馈消息时,在所述二维表中确定所述订阅者与主题信息对应的目标元素;为所述目标元素设置接收标识信息,以用于表示所述订阅者已接收到所述主题信息的模块。

此次,所述订阅者信息模块702还可包括:

执行结果设置单元7021,用于当接收所述订阅者发送的反馈执行结果时,在所述二维表中确定具有接收标识信息的目标元素;当判定当前执行成功时,则为所述目标元素设置执行成功标识;反之,则设置执行失败标识。

可选的,在本实施例的一些实施方式中,请参阅图8,所述装置例如还可以包括:

发布者信息模块703,用于接收所述发布者反馈的将所述主题信息已发送给订阅者的消息,并进行存储,所述发布者接收到主题发送的主题信息之后,将所述主题信息发送给订阅者。

本发明实施例所述发布/订阅装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例在传统的发布/订阅中,设置了信息中心,用以与主题、发布者、订阅者进行通信,以实现对发布/订阅过程的全程监控,用户可以随时查看信息中心,知晓发布/订阅机制的执行结果,方便监控发布/订阅整个机制的执行情况,能够在错误发生时及时进行错位的定位,甚至是错误的回溯,提高发布/订阅机制的可追溯性,提升整个系统的可管理性、可维护性与可监控性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种发布/订阅方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1