监听方法及装置
技术领域
本发明属于协同办公技术领域,尤其涉及一种监听方法及装置。
背景技术
通常的协同办公***架构为底层平台及在底层平台上运行的多个业务模块。这些业务模块基于底层平台分别独立开发,实现各自不同的功能。在每个业务模块内,该业务模块维护若干数据,并基于这些数据进行相关操作,从而完成其业务功能。
一方面,不同业务模块之间的业务相对独立,分别维护各自业务模块内的数据。但另一方面,这些业务模块之间又存在一些关联业务,从而在这些业务模块间需要共享一些关联数据。
监听是实现在不同业务模块之间共享关联数据的方式之一。一种监听实现方式是在被监听业务模块中预留监听接口,当该被监听业务模块对关联数据有修改时,其内置的监听接口随即通知监听业务模块;监听业务模块接收该通知,获知数据修改内容,并由监听业务模块自主执行与该数据对应的相关操作。
这种方式中,各业务模块开发人员分别开发其业务模块需要的监听接口。尽管监听接口的实现原理大致相同,但不同业务模块开发人员的具体实现方式可能各不相同。这种模式带来以下问题:首先,不同开发人员需要做大量的重复工作,不但浪费了人力资源,且拉长了开发周期开发;其次,不同开发人员开发的同一功能实现方式多样,不便于底层平台集中管理、调试、排查运行中出现的问题。上述问题导致协同办公***臃肿、庞大,运行复杂度加。
另外,这些业务模块之间需要分别相互注册,注册过程程序繁琐。运行时,这些业务模块之间需要沟通数据,信息安全得不到保障,且执行效率不高。
另外,运行时,业务逻辑通常指按照既定顺序执行。在协同办公***中,各业务模块的多个业务逻辑并发执行。在涉及到关联数据的操作时,不同业务模块分别按照其既定业务逻辑并发执行相关操作。一旦被监听业务模块对关联数据的操作未成功,而监听业务模块已经通过监听接口获知该关联数据的更新,并针对该更新按照预定业务逻辑进行了对应的操作,将导致协同办公***内关联数据在不同业务模块中的更新不一致,出现致命的***性错误。
发明内容
鉴于此,本发明提出一种监听方法及装置,用于在协同办公***的不同业务模块之间安全高效地同步更新关联业务。
第一方面,本发明提出的监听方法如下:
一种监听方法,用于协同办公***的底层平台,包括如下步骤:
接收被监听业务模块发送的第一消息,该第一消息的内容包括数据和操作类型,该数据和该操作类型由被监听业务模块中对应的待监听事件确定;
提取该第一消息内容中的该数据和该操作类型;
确定需要监听该数据和/或该操作类型的监听业务模块,监听业务模块需要监听的数据和/或操作类型是底层平台对监听业务模块注册时确定的,需要监听的数据和/或操作类型由监听业务模块需要监听的待监听事件指定;
向监听业务模块发送第二消息,该第二消息的内容包括该数据和该操作类型。
进一步地,本发明提出的监听方法中,底层平台对监听业务模块注册时包括如下步骤:
扫描监听业务模块的注解信息,该注解信息中记载至少一个待监听事件,待监听事件从预先公布的第一待监听事件集合中选择;
提取该注解信息中记载的待监听事件;
生成第二待监听事件集合,该第二待监听事件集合包括监听业务模块已注册的待监听事件,该第二待监听事件集合用于底层平台确定需要监听待监听事件的监听业务模块。
进一步地,本发明提出的监听方法中,向监听业务模块发送第二消息包括如下步骤:
当监测到被监听业务模块中与该数据和该操作类型对应的事务执行成功,向监听业务模块发送该第二消息。
进一步地,本发明提出的监听方法中,向监听业务模块发送该第二消息之后,还包括如下步骤:
当监测到所述监听业务模块中与该数据和该操作类型对应的事务没有执行成功,则发出第一指令,该第一指令指示被监听业务模块清除与该数据和该操作类型对应的已成功执行的事务;
发出第二指令,该第二指令指示监听业务模块清除与该数据和该操作类型对应的已成功执行的事务。
本发明监听方法中,底层平台完成监听功能的部分开发工作并对监听业务模块进行注册,减少了监听业务模块和被监听业务模块的开发工作量;底层平台参与到监听过程中,统一封装监听功能,避免了业务模块间相互开放数据而引入的安全隐患;底层平台统一调度监听功能的执行,使得协同办公***的运行效率更高。
因此,本发明监听方法使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
第二方面,本发明提出的监听方法如下:
一种监听方法,用于协同办公***的监听业务模块,包括如下步骤:
接收协同办公***底层平台发送的第二消息,该第二消息的内容包括数据和操作类型;该数据和/或该操作类型由协同办公***的被监听业务模块中对应的待监听事件确定;
提取该第二消息内容中的该数据和该操作类型;
执行与该数据和/或该操作类型对应的事务。
进一步地,本发明提出的监听方法中,监听业务模块提取的数据的类型和/或操作类型记载在监听业务模块的注解信息中;
该注解信息用于记载监听业务模块从预先公布的第一待监听事件集合中选择的待监听事件;
该数据的类型和/或该操作类型由待监听事件指定;
该注解信息由协同办公***底层平台对监听业务模块注册时读取。
本发明监听方法是协同办公***中监听业务模块执行监听功能的实现方法,通过接收协同办公***底层平台的通知消息,同步更新关联业务,更安全,更高效。
第三方面,本发明提出的监听方法如下:
一种监听方法,用于协同办公***的被监听业务模块,包括如下步骤:
触发待监听事件,该待监听事件记载在预先公布的第一待监听事件集合中;
确定该待监听事件对应的数据和操作类型;
向协同办公***的底层平台发送第一消息,该第一消息的内容包括该数据和该操作类型。
本发明监听方法是协同办公***中被监听业务模块执行监听功能的实现方法,通过向底层平台发送消息,向关联业务传递更新后的数据,使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
第四方面,本发明提出的监听装置,用于协同办公***的底层平台,包括:
第一消息接收单元,该第一消息接收单元用于接收被监听业务模块发送的第一消息,该第一消息的内容包括数据和操作类型,该数据和该操作类型由被监听业务模块中对应的待监听事件确定;
第一消息提取单元,该第一消息提取单元用于提取该第一消息内容中的该数据和该操作类型;
监听业务模块确定单元,该监听业务模块确定单元用于确定需要监听该数据和/或该操作类型的监听业务模块,监听业务模块需要监听的数据和/或操作类型是底层平台对监听业务模块注册时确定的,需要监听的数据和/或操作类型由监听业务模块需要监听的待监听事件指定;
第二消息发送单元,该第二消息发送单元用于向监听业务模块发送第二消息,该第二消息的内容包括该数据和该操作类型。
进一步地,本发明提出的监听装置,还包括:
注解信息扫描单元,该注解信息扫描单元用于扫描监听业务模块的注解信息,该注解信息中记载至少一个待监听事件,待监听事件从预先公布的第一待监听事件集合中选择;
注解信息提取单元,该注解信息提取单元用于提取该注解信息中记载的待监听事件;
事件集合生成单元,该事件集合生成单元用于生成第二待监听事件集合,该第二待监听事件集合包括监听业务模块已注册的待监听事件,该第二待监听事件集合用于底层平台确定需要监听待监听事件的监听业务模块。
进一步地,本发明提出的监听装置,还包括:
事务监测及通知单元,该事务监测及通知单元用于当监测到被监听业务模块中与该数据和该操作类型对应的事务执行成功,通知第二消息发送单元向监听业务模块发送第二消息。
进一步地,本发明提出的监听装置,还包括:
事务监测及指令单元,该事务监测和指令单元用于当监测到监听业务模块中与该数据和该操作类型对应的事务没有执行成功,则发出第一指令,该第一指令指示被监听业务模块清除与该数据和该操作类型对应的已成功执行的事务;
发出第二指令,该第二指令指示监听业务模块清除与该数据和该操作类型对应的已成功执行的事务。
本发明监听装置中,底层平台完成监听功能的部分开发工作并对监听业务模块进行注册,减少了监听业务模块和被监听业务模块的开发工作量;底层平台参与到监听过程中,统一封装监听功能,避免了业务模块间相互开放数据而引入的安全隐患;底层平台统一调度监听功能的执行,使得协同办公***的运行效率更高。
因此,本发明监听装置使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
第五方面,本发明提出的监听装置,用于协同办公***的监听业务模块,包括:
第二消息接收单元,该第二消息接收单元用于接收协同办公***底层平台发送的第二消息,该第二消息的内容包括数据和操作类型;该数据和该操作类型由被监听业务模块中对应的待监听事件确定;
第二消息提取单元,该第二消息提取单元用于提取该第二消息内容中的该数据和该操作类型;
监听业务模块执行单元,该监听业务模块执行单元用于执行与该数据和/或该操作类型对应的事务。
进一步地,本发明提出的监听装置的第二消息提取单元提取的该数据的类型和/或该操作类型记载在监听业务模块的注解信息中;
该注解信息用于记载监听业务模块从预先公布的第一待监听事件集合中选择的待监听事件;
该数据的类型和/或该操作类型由待监听事件指定;
该注解信息由底层平台对监听业务模块注册时读取。
本发明监听装置用于实现协同办公***中监听业务模块的监听功能,通过接收底层平台的通知消息,同步更新关联业务,更安全,更高效。
第六方面,本发明提出的监听装置,用于协同办公***的被监听业务模块,包括:
触发单元,该触发单元用于触发待监听事件,该待监听事件记载在预先公布的第一待监听事件集合中;
确定单元,该确定单元用于确定该待监听事件对应的操作类型和数据;
第一消息发送单元,该第一消息发送单元用于向协同办公***的底层平台发送第一消息,该第一消息的内容包括该数据和该操作类型。
本发明监听装置用于实现协同办公***中被监听业务模块的监听功能,通过向底层平台发送消息,向关联业务传递更新后的数据,使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明实施例监听方法信息传递示意图;
图2为本发明实施例监听方法底层平台端的流程示意图;
图3为本发明实施例监听方法底层平台端对业务模块注册的流程示意图;
图4为本发明实施例监听方法监听业务模块端实现监听功能的流程示意图;
图5为本发明实施例监听方法被监听业务模块端实现监听功能的流程示意图;
图6为本发明实施例提供的底层平台端的监听装置进行监听事件处理部分的组成示意图;
图7为本发明实施例提供的底层平台端的监听装置进行注解信息处理部分的组成示意图;
图8为本发明实施例提供的底层平台端的监听装置进行事务完成后发送监听消息部分的组成示意图;
图9为本发明实施例提供的底层平台端的监听装置进行同步监听处理部分的组成示意图;
图10为本发明实施例提供的监听业务模块端的监听装置进行监听处理部分的组成示意图;
图11为本发明实施例提供的被监听业务模块端的监听装置进行监听处理部分的组成示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合实施例中的附图,对实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部实施例。基于已给出的实施例,本领域普通技术人员在未作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
协同办公***包括底层平台及各业务模块。这些业务模块之间可能存在关联业务。对于采用监听实现业务模块间同步更新关联业务的协同办公***来讲,某一个具体的业务模块,可能既需要处理监听事务又需要处理被监听事务,也可能仅需要处理监听事务,也可能仅需要处理被监听事务。
需要说明的是,以下实施例并不针对某一个具体业务模块内的监听事务和/或被监听事务进行阐述。
以下实施例根据在监听功能中的作用将业务模块抽象地划分为监听业务模块和被监听业务模块这两类。如图1所示,被监听业务模块10将被监听的数据及操作类型信息发送给底层平台20,并由底层平台20将该数据及操作类型信息发送给对应的监听业务模块30,从而使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
以下分别对底层平台、监听业务模块及被监听业务模块实现监听功能的具体实施方式进行阐述。
实施例1:
本实施例监听方法,用于协同办公***的底层平台,包括如下步骤:
接收被监听业务模块发送的第一消息,该第一消息的内容包括数据和操作类型,该数据和该操作类型由被监听业务模块中对应的待监听事件确定;
提取该第一消息内容中的该数据和该操作类型;
确定需要监听该数据和/或该操作类型的监听业务模块,监听业务模块需要监听的数据和/或操作类型是底层平台对监听业务模块注册时确定的,需要监听的数据和/或操作类型由监听业务模块需要监听的待监听事件指定;
向该监听业务模块发送第二消息,该第二消息的内容包括该数据和该操作类型。
本实施例中,底层平台定义并公布待监听事件的数据格式及触发待监听事件后上报监听事件及由该待监听事件确定的数据和操作类型的方法,由底层平台、监听业务模块及被监听业务模块根据需要选择使用。
本实施例中,预先收集各被监听业务模块提供的待监听事件,组成第一待监听事件集合,并公布给各监听业务模块。各监听业务模块选择待监听事件并开发对应的监听功能以同步更新相关联的业务。通常,被监听业务模块提供至少一个待监听事件。
应该说明的是,对于第一待监听事件集合中的每一个待监听事件而言,可能有至少一个监听业务模块需要监听该事件,也可能没有监听业务模块需要监听该事件。
开发被监听业务模块时,对记载在第一待监听事件集合中的待监听事件开发对应的功能,以实现在触发该待监听事件后向底层平台上报该待监听事件及由该待监听事件确定的数据和操作类型。
在被监听业务模块中,待监听事件由操作类型和/或数据触发。与之对应,在监听业务模块中,更新与该待监听事件对应的业务时则同时需要数据信息和操作类型信息。
开发监听业务模块时,从第一待监听事件集合中确定需要监听的待监听事件,并通过向底层平台注册的方式上报监听业务模块需要监听的待监听事件。
在监听业务模块向底层平台集成时,底层平台完成对监听业务模块的注册,生成第二待监听事件集合。第二待监听事件集合包括监听业务模块已注册的待监听事件。底层平台利用该第二待监听事件集合确定与待监听事件对应的监听业务模块。
被监听业务模块执行事务时,通过对数据进行操作触发待监听事件,或通过操作使得数据更新而触发待监听事件。
如图2所示,底层平台接收被监听业务模块发送的第一消息,该第一消息在被监听业务模块触发待监听事件后发送;底层平台通过预先定义的监听事件数据格式读取到被监听业务模块在触发待监听事件时确定的数据与操作类型;并根据对监听业务模块向底层平台注册时确定的监听业务模块与该数据和该操作类型的对应关系,确定监听业务模快;并将从第一消息中提取的数据及操作类型作为第二消息,发送给该监听业务模快。
本实施例监听方法中,底层平台完成监听功能的部分开发工作并对监听业务模块进行注册,减少了监听业务模块和被监听业务模块的开发工作量;底层平台参与到监听过程中,统一封装监听功能,避免了业务模块间相互开放数据而引入的安全隐患;底层平台统一调度监听功能的执行,使得协同办公***的运行效率更高。
因此,本实施例监听方法使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
实施例2:
本实施例是在实施例1的基础上,进一步对底层平台对监听业务模块进行注册的方法进行说明。
本实施例监听方法中,底层平台对监听业务模块注册时包括如下步骤:
扫描监听业务模块的注解信息,该注解信息中记载至少一个待监听事件,待监听事件从预先公布的第一待监听事件集合中选择;
提取该注解信息中记载的待监听事件;
生成第二待监听事件集合,该第二待监听事件集合包括监听业务模块已注册的待监听事件,该第二待监听事件集合用于底层平台确定需要监听待监听事件的监听业务模块。
开发监听业务模块时,从第一待监听事件集合中选择需要监听的待监听事件,并将待监听事件添加到注解信息内,并在注解消息头部或尾部添加标识,该标识由底层平台预先定义并发布。
如图3所示,在监听业务模块向底层平台集成时,底层平台按照预先设定的标识扫描监听业务模块的注解信息,并提取出注解信息中记载的待监听事件,生成第二待监听事件集合。其中,待监听事件指定需要监听的数据和/或操作类型。底层平台在接收到被监听业务模块因触发待监听事件而发送的第一消息时利用该第二待监听事件集合确定与该待监听事件对应的监听业务模块。
本实施例监听方法的注解信息简化了底层平台的注册过程。底层平台对监听业务模块注册时,不再需要监听业务模块主动向底层平台发起注册请求,而是由底层平台主动扫描监听业务模块的注解信息来完成注册;底层平台不再需要分别响应各业务模块的注册请求,并与各业务模块进行交互;监听业务模块只需要通过简单的注解语句指明监听需求即可,减少了开发工作量;底层平台只需要读取各业务模块的注解信息,进行相应处理就可以完成监听业务模块的注册。
本实施例监听方法将常规监听中注册需要双方交互的模式,简化为一方预先声明、一方主动读取的模式,使得注册过程既简单又高效。
实施例3:
本实施例是在实施例1的基础上,进一步对底层平台实现事务完成后发送监听消息的方法进行说明。
本实施例监听方法,向监听业务模块发送第二消息包括如下步骤:
当监测到被监听业务模块中与该数据和该操作类型对应的事务执行成功,向监听业务模块发送该第二消息。
本实施例监听方法在被监听业务模块中与待监听事件对应的事务成功执行后再向监听业务模块发送待监听事件的消息,从而避免出现监听业务模块成功执行与待监听事件对应的事务而被监听业务模块没有成功执行与待监听事件对应的事务现象而导致的关联数据更新不一致这一***错误。
如果被监听业务模块中与待监听事件对应的事务没有成功执行,则待监听事件的消息不会被发送给监听业务模块。
具体实现时,可以采用下述的方式。需要注意的是,下述的方式仅是作为示例,并未穷尽所有可能,也并未限制只能由这一种方式实现。任何本领域普通技术人员能够显而易见地实施的其他方式也在本申请的保护范围之内。
以Java语言为例,本实现方式包括如下步骤:
采用spring机制,将实现“发送监听指令”这一功能的语句进行延迟;
当业务逻辑运行到与该“发送监听指令”对应的语句时,底层平台在堆栈中记录该执行动作,以及上下文信息,但不执行该动作,而是跳过该动作转而执行其他动作;
待被监听业务模块中与该数据和该操作类型对应的整个事务执行成功后,底层平台从堆栈中读取该执行动作并执行。
应当指出的是,“事务完成后发送监听消息”这一机制也适用于传统的监听业务。
本实施例监听方法在被监听业务模块的对应事务全部成功更新后,再向监听业务模块发出监听消息,避免盲目发出监听消息导致的***错误,使得监听功能更加高效、可靠。
实施例4:
本实施例是在实施例1的基础上,进一步对协同办公***实现同步监听的方法进行说明。
本实施例监听方法,向监听业务模块发送该第二消息之后,还包括如下步骤:
当监测到所述监听业务模块中与该数据和该操作类型对应的事务没有执行成功,则发出第一指令,该第一指令指示被监听业务模块清除与该数据和该操作类型对应的已成功执行的事务;
发出第二指令,该第二指令指示监听业务模块清除与该数据和该操作类型对应的已成功执行的事务。
本实施例监听方法在监听业务模块中与待监听事件对应的业务没有成功执行时,指示被监听业务模块清除与待监听事件对应的已成功执行的事务;及指示监听业务模块清除与待监听事件对应的已成功执行的事务。
本实施例监听方法通过设置当在后同步更新的关联业务没有成功执行时清除在前业务模块中已成功执行的更新操作这一机制,保证协同办公***内不出现多个业务模块内数据更新不一致这一***错误,从而使得协同办公***的不同业务模块之间可靠地同步更新关联业务。
需要说明的是,上述实施例2至4可多个相互配合实施。这里的“多个”,应当理解为两个及以上。
实施例5:
本实施例监听方法,用于协同办公***的监听业务模块,包括如下步骤:
接收协同办公***底层平台发送的第二消息,该第二消息的内容包括数据和操作类型;该数据和/或该操作类型由协同办公***的被监听业务模块中对应的待监听事件确定;
提取该第二消息内容中的该数据和该操作类型;
执行与该数据和/或该操作类型对应的事务。
参见实施例1,在被监听业务模块中,待监听事件由操作类型和/或数据触发。与之对应,在监听业务模块中,更新与待监听事件对应的业务则同时需要操作类型信息与数据信息。
如图4所示,本实施例监听方法中,监听业务模块接收协同办公***底层平台发送的第二消息,该第二消息的内容包括数据及操作类型,该数据类型及该操作类型由协同办公***被监听业务模块对应的待监听事件确定。监听业务模块提取到该数据和/或该操作类型后,执行与该数据和/或该操作类型对应的事务。
更具体地,可以在监听业务模块中定义监听接口,用于指定监听业务模块中与该数据和/或该操作类型对应的事务。监听业务模块在提取到该数据和/或该操作类型后,确定监听接口,并调用该监听接口,执行由该监听接口指定的事务。
本实施例监听方法是协同办公***中监听业务模块执行监听功能的实现方法,通过接收底层平台的通知消息,及时更新关联业务,从而使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
实施例6:
本实施例是在实施例5的基础上,进一步对监听业务模块的注解信息进行说明。
本实施例监听方法中,监听业务模块提取的数据的类型和/或操作类型记载在监听业务模块的注解信息中;
该注解信息用于记载监听业务模块从预先公布的第一待监听事件集合中选择的待监听事件;
该数据的类型和/或该操作类型由待监听事件指定;
该注解信息由协同办公***底层平台对监听业务模块注册时读取。
本实施例监听方法的具体实现方式参见实施例2。
本实施例监听方法的注解信息简化了底层平台的注册过程。底层平台对监听业务模块注册时,不再需要监听业务模块主动向底层平台发起注册请求,而是由底层平台主动扫描监听业务模块的注解信息来完成注册;底层平台不再需要分别响应各业务模块的注册请求,并与各业务模块进行交互;监听业务模块只需要通过简单的注解语句指明监听需求即可,减少了开发工作量;底层平台只需要读取各业务模块的注解信息,进行相应处理就可以完成监听业务模块的注册。
本实施例监听方法将常规监听中注册需要双方交互的模式,简化为一方预先声明、一方主动读取的模式,使得注册过程既简单又高效。
实施例7:
本实施例监听方法,用于协同办公***的被监听业务模块,包括如下步骤:
触发待监听事件,该待监听事件记载在预先公布的第一待监听事件集合中;
确定该待监听事件对应的数据和操作类型;
向协同办公***的底层平台发送第一消息,该第一消息的内容包括该数据和该操作类型。
参见实施例1,开发被监听业务模块时,对记载在第一待监听事件集合中的待监听事件开发对应的功能,以实现在触发该待监听事件后向底层平台上报该待监听事件及由该待监听事件确定的数据和操作类型。
在被监听业务模块中,待监听事件由操作类型和/或数据触发。与之对应,在监听业务模块中,更新与该待监听事件对应的业务时则同时需要数据信息和操作类型信息。
如图5所示,本实施例监听方法中被监听业务模块执行事务时,通过对数据进行操作触发待监听事件,或通过操作使得数据更新而触发待监听事件。当待监听事件被触发后,被监听业务模块确定该待监听事件对应的数据和操作类型,并向协同办公***的底层平台发送第一消息,该第一消息的内容包括该数据和该操作类型。
本实施例监听方法是协同办公***中被监听业务模块执行监听功能的实现方法,通过向底层平台发送消息,实现向关联业务传递更新后的数据,从而使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
实施例8:
本实施例是在上述实施例1至7的基础上,对底层平台、监听业务模块及被监听业务模块3方共同参与而实现监听功能的具体实施方式进行阐述。
本实施例以协同办公***中,人员管理业务模块进行人员登入或者登出操作并关联到企业资源管理模块ERP为例进行说明。
本实施例协同办公***包括底层平台、人员管理业务模块及其他业务模块,如第三方开发的企业资源管理模块ERP。当人员管理业务模块进行了人员登入或者登出时,则企业资源管理模块ERP需要监听到这一事件,并对其节点中存储的相应数据进行修改。
在该协同办公***集成时,底层平台对企业资源管理模块ERP进行注册,并记录企业资源管理模块ERP需要监听的待监听事件,比如,人员登入或者登出操作及由该待监听事件指定的数据和操作类型,如人员数据和登入操作或者登出操作。
人员管理业务模块执行业务逻辑,对人员登入进行操作,并向底层平台发送监听消息,通知底层平台该人员管理业务模块触发了人员登入这一事件。
这里的监听消息即上述第一消息,该第一消息中包括人员具体的数据信息及人员登入这个操作类型。
底层平台接收到该监听指令后,根据注册信息,将人员管理业务模块的人员登入这一事件分发给企业资源管理模块ERP。具体来讲,就是底层平台将人员具体的数据信息及人员登入这个操作类型作为上述的第二消息,发送给企业资源管理模块ERP。
企业资源管理模块ERP接收到该第二消息后,将人员具体的数据信息添加并保存在企业资源管理模块ERP中,并可针对该人员信息进行相应的操作,如,设置研发任务或者匹配物料信息等。
优选地,底层平台接收到该监听指令后,根据注册信息,确定需要将人员管理业务模块的人员登入这一事件分发给企业资源管理模块ERP后,并不立即分发给企业资源管理模块ERP。而是在监测到人员管理业务模块将人员登入这一操作已经成功执行后,底层平台再将人员具体的数据信息及人员登入这个操作类型作为上述的第二消息,发送给企业资源管理模块ERP。
优选地,底层平台将上述第二消息成功发送后,继续监测企业资源管理模块ERP接收该第二消息后续的执行情况。如果监测到将人员具体的数据信息添加并保存在企业资源管理模块ERP中,和/或针对该人员信息进行相应的操作没有执行成功,则向企业资源管理模块ERP发出第二指令,该第二指令指示企业资源管理模块ERP进行事务回卷,清除该人员具体的数据信息以及与该人员登入相关的已成功执行的事务;向人员管理业务模块发出第一指令,该第一指令指示人员管理业务模块清除与该人员具体的数据信息及人员登入这个操作数据相关的已成功执行的事务。
实施例9:
如图6所示,本实施例监听装置21,用于协同办公***的底层平台,包括:
第一消息接收单元211,该第一消息接收单元用于接收被监听业务模块发送的第一消息,该第一消息的内容包括数据和操作类型,该数据和该操作类型由被监听业务模块中对应的待监听事件确定;
第一消息提取单元212,该第一消息提取单元用于提取该第一消息内容中的该数据和该操作类型;
监听业务模块确定单元213,该监听业务模块确定单元用于确定需要监听该数据和/或该操作类型的监听业务模块,监听业务模块需要监听的数据和/或操作类型是底层平台对监听业务模块注册时确定的,需要监听的数据和/或操作类型由监听业务模块需要监听的待监听事件指定;
第二消息发送单元214,该第二消息发送单元用于向监听业务模块发送第二消息,该第二消息的内容包括该数据和该操作类型。
本实施例监听装置的具体实施方式参见实施例1。
本实施例监听装置中,底层平台完成监听功能的部分开发工作并对监听业务模块进行注册,减少了监听业务模块和被监听业务模块的开发工作量;底层平台参与到监听过程中,统一封装监听功能,避免了业务模块间相互开放数据而引入的安全隐患;底层平台统一调度监听功能的执行,使得协同办公***的运行效率更高。
因此,本实施例监听装置使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
实施例10:
本实施例监听装置是在实施例9的基础上,对处理注解信息时的监听装置进行说明。
如图7所示,本实施例监听装置21,还包括:
注解信息扫描单元215,该注解信息扫描单元用于扫描监听业务模块的注解信息,该注解信息中记载至少一个待监听事件,待监听事件从预先公布的第一待监听事件集合中选择;
注解信息提取单元216,该注解信息提取单元用于提取该注解信息中记载的待监听事件;
事件集合生成单元217,该事件集合生成单元用于生成第二待监听事件集合,该第二待监听事件集合包括监听业务模块已注册的待监听事件,该第二待监听事件集合用于底层平台确定需要监听待监听事件的监听业务模块。
本实施例监听装置的具体实施方式参见实施例2。
本实施例监听装置的注解信息简化了底层平台的注册过程。底层平台对监听业务模块注册时,不再需要监听业务模块主动向底层平台发起注册请求,而是由底层平台主动扫描监听业务模块的注解信息来完成注册;底层平台不再需要分别响应各业务模块的注册请求,并与各业务模块进行交互;监听业务模块只需要通过简单的注解语句指明监听需求即可,减少了开发工作量;底层平台只需要读取各业务模块的注解信息,进行相应处理就可以完成监听业务模块的注册。
本实施例监听装置将常规监听方法中注册需要双方交互的模式,简化为一方预先声明、一方主动读取的模式,使得注册过程既简单又高效。
实施例11:
本实施例监听装置是在实施例9的基础上,对事务结束后发送监听消息的装置进行说明。
如图8所示,本实施例监听装置21,还包括:
事务监测及通知单元218,该事务监测及通知单元用于当监测到被监听业务模块中与该数据和该操作类型对应的事务执行成功,通知第二消息发送单元向监听业务模块发送第二消息。
本实施例监听装置的具体实施方式参见实施例3。
本实施例监听装置在被监听业务模块的事务全部成功更新后,再向监听业务模块发出监听消息,避免盲目发出监听消息导致的***错误,使得监听功能更加高效、可靠。
实施例12:
本实施例监听装置是在实施例9的基础上,对同步监听的装置进行说明。
如图9所示,本实施例监听装置21,还包括:
事务监测及指令单元219,该事务监测和指令单元用于当监测到监听业务模块中与该数据和该操作类型对应的事务没有执行成功,则发出第一指令,该第一指令指示被监听业务模块清除与该数据和该操作类型对应的已成功执行的事务;
发出第二指令,该第二指令指示监听业务模块清除与该数据和该操作类型对应的已成功执行的事务。
本实施例监听装置的具体实施方式参见实施例4。
本实施例监听装置在监听业务模块中与待监听事件对应的业务没有成功执行时,指示被监听业务模块清除与待监听事件对应的已成功执行的事务;及指示监听业务模块清除与待监听事件对应的已成功执行的事务。
本实施例监听装置通过在设置当在后同步更新的关联业务没有成功执行时清除在前业务模块中已成功执行的更新操作这一机制,保证协同办公***内不出现多个业务模块内数据更新不一致这一***错误,从而使得协同办公***的不同业务模块之间可靠地同步更新关联业务。
需要说明的是,上述实施例10至12可多个相互可配合实施。这里的“多个”,应当理解为两个以上。
实施例13:
如图10所示,本实施例监听装置31,用于协同办公***的监听业务模块,包括:
第二消息接收单元311,该第二消息接收单元用于接收协同办公***底层平台发送的第二消息,该第二消息的内容包括数据和操作类型;该数据和该操作类型由被监听业务模块中对应的待监听事件确定;
第二消息提取单元312,该第二消息提取单元用于提取该第二消息内容中的该数据和该操作类型;
监听业务模块执行单元313,该监听业务模块执行单元用于执行与该数据和/或该操作类型对应的事务。
本实施例监听装置的具体实施方式参见实施例5。
本实施例监听装置是协同办公***中监听业务模块执行监听功能的装置,通过接收底层平台的通知消息,完成关联业务,从而使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
实施例14:
本实施例监听装置是在实施例13的基础上,对注解信息进行说明。
本实施例监听装置31的第二消息提取单元提取的该数据的类型和/或该操作类型记载在监听业务模块的注解信息中;
该注解信息用于记载监听业务模块从预先公布的第一待监听事件集合中选择的待监听事件;
该数据的类型和/或该操作类型由待监听事件指定;
该注解信息由底层平台对监听业务模块注册时读取。
本实施例监听装置的具体实施方式参见实施例2和6。
本实施例监听装置的注解信息简化了底层平台的注册过程。底层平台对监听业务模块注册时,不再需要监听业务模块主动向底层平台发起注册请求,而是由底层平台主动扫描监听业务模块的注解信息来完成注册;底层平台不再需要分别响应各业务模块的注册请求,并与各业务模块进行交互;监听业务模块只需要通过简单的注解语句指明监听需求即可,减少了开发工作量;底层平台只需要读取各业务模块的注解信息,进行相应处理就可以完成监听业务模块的注册。
本实施例监听装置将常规监听中注册需要双方交互的模式,简化为一方预先声明、一方主动读取的模式,使得注册过程既简单又高效。
实施例15:
如图11所示,本实施例监听装置11,用于协同办公***的被监听业务模块,包括:
触发单元111,该触发单元用于触发待监听事件,该待监听事件记载在预先公布的第一待监听事件集合中;
确定单元112,该确定单元用于确定该待监听事件对应的操作类型和数据;
第一消息发送单元113,该第一消息发送单元用于向协同办公***的底层平台发送第一消息,该第一消息的内容包括该数据和该操作类型。
本实施例监听装置的具体实施方式参见实施例7。
本实施例监听装置是协同办公***中被监听业务模块执行监听功能的装置,通过向底层平台发送消息,实现向关联业务传递更新后的数据,从而使得协同办公***的不同业务模块之间安全高效地同步更新关联业务。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。