CN104636190B - 软件系统及插件间消息传递方法 - Google Patents

软件系统及插件间消息传递方法 Download PDF

Info

Publication number
CN104636190B
CN104636190B CN201310545913.7A CN201310545913A CN104636190B CN 104636190 B CN104636190 B CN 104636190B CN 201310545913 A CN201310545913 A CN 201310545913A CN 104636190 B CN104636190 B CN 104636190B
Authority
CN
China
Prior art keywords
plug
unit
data
message
module
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
Application number
CN201310545913.7A
Other languages
English (en)
Other versions
CN104636190A (zh
Inventor
关业志
王汉钧
李培明
高彦林
梅胜全
杜清波
李平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China National Petroleum Corp
BGP Inc
Original Assignee
China National Petroleum Corp
BGP Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China National Petroleum Corp, BGP Inc filed Critical China National Petroleum Corp
Priority to CN201310545913.7A priority Critical patent/CN104636190B/zh
Publication of CN104636190A publication Critical patent/CN104636190A/zh
Application granted granted Critical
Publication of CN104636190B publication Critical patent/CN104636190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种软件系统及插件间消息传递方法。所述软件系统包括:用于实现预定功能的第一插件和第二插件;为所述第一插件和所述第二插件之间传递消息的基础平台。本发明提供的软件系统通过利用基础平台为插件之间传递消息,从而使得插件之间无需进行直接的消息传递,减小了插件之间的耦合度,从而便于对软件系统中插件的升级,或者编写新的插件,使得所述软件系统具有广泛的适用性,能够满足软件用户的使用需求。另,本发明还提供一种软件系统中插件间消息传递方法。

Description

软件系统及插件间消息传递方法
技术领域
本发明涉及一种软件,尤其涉及一种软件系统。
本发明涉及一种软件,尤其涉及一种软件系统中插件间消息传递方法。
背景技术
插件是遵循一定规范的编写出来的程序,其经常应用于软件系统中,用于拓展软件系统的功能,或强化软件系统的某一功能。
传统的软件系统是软件开发商依照市场或用户的功能需求进行开发,在开发过程中会整体考虑软件的每一部分以满足功能需求。即便在软件系统中应用了插件,在开发过程中,也会将插件作为整体软件系统中的一小部分,插件之间直接进行数据或消息的传递,使得插件之间具有较强的耦合度。在软件用户使用软件的过程中,有时需要根据工作研究成果对部分插件的算法进一步的改进。如在地震勘探领域,受技术发展及不同的需求,配套的地震勘探软件不可能提供所有的物探算法应用。为了避免每次对算法的改变都通过软件开发商,软件用户会想自己重新编制软件中的部分插件,以实现最新的算法,然而由于现有软件系统中插件之间的耦合度非常强,若需要修改插件或编制新插件,需要开发人员对软件系统的底层程序有着非常全面深入的了解,显然软件用户对软件系统的了解不可能达到要求,使得目前软件系统难以满足软件用户的使用要求。
发明内容
有鉴于此,有必要提供一种插件之间具有较低耦合度的软件系统。
本发明提供一种软件系统,包括:第一插件包括用于向基础平台发出需传递的消息的消息注册模块,所述消息代表所述第一插件执行的功能;用于在所述消息代表的功能被执行时通知所述基础平台所述消息发生的通知模块;第二插件包括用于向所述基础平台发出侦听请求的侦听请求模块,所述侦听请求为侦听所述消息;用于接收从所述基础平台发出的所述消息的消息接收模块;基础平台包括用于接收和保存所述消息和所述侦听请求的接收模块;收发模块,用于在接收所述通知模块通知后,将所述消息发送给所述第二插件;
所述第一插件还包括:用于向所述基础平台发出数据注册请求的数据注册模块,所述数据注册请求中包括所述第一插件需要注册的数据;所述基础平台还包括:用于接收所述数据注册请求,并按照预定保存规则保存所述数据的数据保存模块;用于接收数据使用请求,并反馈所述数据的数据反馈模块;所述第二插件还包括:用于向所述基础平台发出数据使用请求,以及接收所述基础平台反馈的数据的使用请求模块。
所述基础平台还包括使用记录模块,所述使用记录模块用于记录所述数据当前被插件使用的次数记录,在所述数据反馈模块接收到所述数据使用请求之后,所述使用记录模块将所述次数记录增加预定数值。
优选地,所述第二插件还包括在所述数据使用结束后,向所述基础平台发出数据释放通知的释放通知模块;所述基础平台还包括释放通知接收模块,所述释放通知接收模块收到所述数据释放通知后,所述使用记录模块将所述使用记数减小所述预定数值。
优选地,所述基础平台还包括数据删除模块,所述数据删除模块仅当所述次数记录等于预定数量时才能够删除所述数据。
优选地,所述第二插件具有唯一代表所述第二插件的身份信息,所述接收模块设置有消息表,在所述消息表中对应存储所述消息和所述第二插件的身份信息。
本发明还基于上述的软件系统提供一种软件系统中插件间消息传递方法,包括:第一插件向基础平台发出需传递的消息,所述消息代表所述第一插件执行的功能;所述基础平台保存所述消息;第二插件向所述基础平台发出侦听请求,以侦听所述消息;所述基础平台接收所述侦听请求;所述消息代表的功能被执行,所述第一插件通知所述基础平台;所述基础平台将所述消息发送给所述第二插件;所述第二插件接收所述消息。
本发明提供的软件系统及插件间消息传递方法,通过利用基础平台为插件之间传递消息,从而使得插件之间无需进行直接的消息传递,减小了插件之间的耦合度,从而便于对软件系统中插件的升级,或者编写新的插件,使得所述软件系统具有广泛的适用性,能够满足软件用户的使用需求。
附图说明
图1是本发明第一实施方式提供的软件系统的功能框图;
图2是本发明第二实施方式提供的软件系统的功能框图;
图3是本发明第三实施方式提供的软件系统的功能框图;
图4是本发明实施方式提供的软件系统中插件间消息传递方法的流程示意图。
具体实施方式
请参阅图1,本发明第一实施方式提供一种软件系统100,其包括:第一插件10和第二插件20、和为所述第一插件10和所述第二插件20之间传递消息的基础平台30。所述软件系统100通过所述基础平台30为所述第一插件10和所述第二插件20传递消息,从而实现降低了所述第一插件10和所述第二插件20之间的耦合度。
所述第一插件10和所述第二插件20为按照预定规则开发编制。进一步的,只有按照所述预定规则开发的插件才能够被所述基础平台30识别。所述预定规则可以包括:插件文件的扩展名,插件的命名规则、插件内函数的命名规则、插件的调用接口等。当然所述预定规则还可以包括其他内容,在此限于篇幅,不再一一列举,本领域技术人员依照本领域的现有技术还可能对所述预定规则作出进一步的变更,但是要其实现的功能和效果与本发明相同或相似均应涵盖于本发明保护范围内。
所述第一插件10包括消息注册模块12和通知模块14。
所述消息注册模块12用于向基础平台发出需传递的消息,所述消息代表所述第一插件执行的功能。在所述软件系统运行过程中,一个插件执行的某个功能可能是另一个插件的某个功能的启动事件,此时,插件之间便需要消息传递。所述功能可以为依照软件开发要求的需要,将数据按照某一算法进行处理,或者将运算结果按照某一方式呈现给用户。当然,所述预定功能还可能是其它可以通过软件实现的功能,在此限于篇幅不再列举。在本实施方式中,假设所述第一插件10可能将要执行功能G,所述第一插件10给所述基础平台30发出消息,告知所述基础平台30所述第一插件10将要执行功能G。如此可以实现将所述基础平台30作为媒介,将所述第一插件10将要执行的功能告知其它插件。
所述消息能够唯一代表所述第一插件10将要执行的功能。如此有效避免程序执行过程中消息传递出现混淆,从而使所述软件系统运行较为稳定。所述消息可以为主要实现所述功能的函数的名称,也可以为唯一表示所述功能的识别码。在本实施方式中,所述消息为唯一表示所述功能的识别码,其可以包括英文字母、数字和标点符号。
当然,由于软件用户在使用过程中有着不确定性,即所述第一插件10的全部功能均可能被执行。所述第一插件10可以仅将其可能将要执行的部分功能的作为消息发送给所述基础平台30,也可以将所述第一插件10全部功能的作为消息发送给所述基础平台30。在一个所述消息中,可以只代表一个功能,也可以代表多个功能。在本实施方式中,所述第一插件10仅将已经明确其将要执行的功能作为消息发送给所述基础平台30。从而有利节省硬件的存储资源。
所述通知模块14用于在所述消息代表的功能被执行时,通知所述基础平台30。即所述消息代表的功能被执行。在本实施方式中,在发出所述消息之后,随着软件用户的使用操作,触发了所述第一插件10在所述基础平台30注册的消息,此时所述第一插件10通过所述通知模块14通知所述基础平台30所述消息已经发生,则所述基础平台30可以进一步扩散传播该消息,如此实现了插件之间的消息传递。所述消息代表的功能被执行,可以为所述第一插件10要开始执行所述功能,也可以为所述第一插件10在执行所述功能的过程中,还可以为所述所述第一插件10执行完成所述功能。
所述第二插件20包括侦听请求模块22和消息接收模块24。
所述侦听请求模块22用于向所述基础平台30发出侦听请求,所述侦听请求为侦听所述消息的发生。插件需要向所述基础平台30提出侦听请求,并告知所述基础平台30需要侦听的功能名称,如此当所述功能被执行后,所述基础平台30才能够将所述消息发送给所述插件。在本实施方式中,举例为所述第二插件20的功能H以所述第一插件10的功能G的执行为前提,故所述第二插件20需要侦听所述功能G的执行状况。所述第二插件20通过所述侦听请求模块22向所述基础平台30发出侦听请求,用于侦听所述第一插件10的所述功能G是否被执行。
在所述软件系统运行过程中,可以在加载所述第二插件20时,即由所述第二插件20向所述基础平台30发出全部的侦听请求,也可以在所述第二插件20加载完成之后,随着所述第二插件20的程序执行,动态的向所述基础平台30发出侦听请求。举例为,所述第二插件20共需要侦听插件W的功能W1,插件X的功能X1和插件Y的功能Y1是否被执行,可以在所述第二插件20被所述软件系统加载时,即向所述基础平台30提出针对所述功能W1、所述功能X1和所述功能Y1的侦听请求,也可以在所述第二插件的程序执行过程中,因程序的需要动态的向所述基础平台30发出针对所述功能W1、所述功能X1和所述功能Y1中部分或全部的侦听请求。在本实施方式中,所述第二插件20被所述软件系统加载时,即向所述基础平台30提出全部的侦听请求。
所述侦听请求中包括需要侦听的功能对应的消息,以及发出所述侦听请求的插件的身份信息。所述身份信息可以为所述插件的名称,或所述插件中的函数的名称,或者能够唯一表示所述插件的其它信息。在本实施方式中,所述身份信息为所述插件的名称。
所述消息接收模块24用于接收从所述基础平台30发出的所述消息。在本实施方式中,所述第二插件20向所述基础平台30提出侦听请求之后,所述基础平台30会在侦听的功能被执行时发出消息给所述第二插件20,所述消息接收模块24即用于接收从所述基础平台30发出的所述消息。
所述基础平台30用于为所述第一插件10和所述第二插件20之间传递消息。所述基础平台30可以为所述软件系统100的底层框架,也可以是单独开发用于实现消息传递的插件。在本实施方式中,所述基础平台30为所述软件系统的底层框架。
所述基础平台包括接收模块32和收发模块34。
所述接收模块32用于接收和保存所述消息和所述侦听请求。所述接收模块32接收到所述消息之后,保存所述消息。所述接收模块接32收到所述侦听请求之后,获取所述侦听请求中功能的名称,则对应保存所述消息和发出所述侦听请求的插件的身份信息。
在一些情况下,所述接收模块32会首先接收到所述消息,然后接收到所述侦听请求。此时所述接收模块32会首先保存所述消息,在接收到所述侦听请求之后,对应所述消息保存发出所述侦听请求的插件的身份信息。在一些情况下,所述接收模块32会首先接收到所述侦听请求,然后接收到所述消息。此时所述接收模块32先保存所述侦听请求中侦听的消息和发出所述侦听请求的插件的身份信息,在接收到所述消息时,若发现所述消息已经被保存,则不再重复保存。在本实施方式中,所述接收模块32设置有一个消息表,所述消息分两列存储数据,第一列为所述消息,第二列为需要侦听所述消息的插件的身份信息。如此,当所述消息发生时,所述基础平台30通过所述消息表中的记录,便可以得出需要告知所述消息的插件。
所述收发模块34用于在接收所述通知模块通知后,将所述消息发送给所述第二插件,表示所述消息发生。所述收发模块34接收到所述通知模块14的通知,将所述消息发送给侦听所述消息的插件。在本实施方式中,所述收发模块34接收到所述通知模块14的通知,在所述消息表中查找侦听所述消息的插件的身份信息即所述第二插件,将所述消息发送给所述第二插件。
所述基础平台30作为所述第一插件10和所述第二插件20之间沟通的媒介,使得所述第一插件10和所述第二插件20之间可以不发生直接的信息传递。当需要所述第一插件10向所述第二插件20传递信息时,所述第一插件10会将所述信息首先发送给所述基础平台30,所述基础平台30再将所述信息发送给所述第二插件20。由此,所述软件系统100中的所述第一插件10和所述第二插件20之间不再发生直接的消息传递,使得二者之间的耦合度被降低。进一步的,软件用户需要针对所述第一插件10或所述第二插件20改进,再或者编制全新的插件时,只需要关注要修改或全新编制的插件本身,并适当调用所述基础平台提供的程序接口即可,如此极大的提高了所述软件系统100的适用度,满足了软件用户的使用需求。
请参阅图2,本发明第二实施方式提供一种软件系统200,其与所述第一实施方式提供的软件系统100基本相同,其不同之处在于:所述基础平台30为所述第一插件10和所述第二插件20传递消息的基础上,还为所述第一插件10和所述第二插件20传递数据。如此所述第一插件10和所述第二插件20之间的交互均通过所述基础平台30实现,进一步降低所述第一插件10和所述第二插件20的耦合度。
所述第一插件10包括:用于向所述基础平台30发出数据注册请求的数据注册模块11,所述数据注册请求中包括所述第一插件10需要注册的数据。
在本实施方式中,所述第一插件10的程序执行过程中,需要与所述第二插件20进行数据交互,如所述第一插件10中某一程序段运行的结果是所述第二插件20某一程序段的输入。此时,所述第一插件10首先对数据进行初始化,然后所述数据注册模块11将包括所述数据的所述数据注册请求发送给所述基础平台30。
所述基础平台30包括:用于接收所述数据注册请求,并按照预定保存规则存储所述数据的数据保存模块31;用于接收数据使用请求,并反馈数据的数据反馈模块33。
在本实施方式中,所述数据保存模块31接收到所述数据注册请求之后,获取所述数据注册请求中的所述数据,将所述数据保存,以进一步供其它插件使用所述数据。
所述预定保存规则为所述数据保存模块31存储所述数据的模式,其可以采用堆栈的结构或树形结构。在本实施方式中,所述数据保存模块31将需要存储的数据采用树形结构保存,从而形成了数据树。在所述数据树中,所述数据保存在数据节点中,每个所述数据节点具有节点名称,且在所述数据树中每个所述节点名称唯一,使得只需获知所述节点的名称,便可以获取相应的数据,如此有利于数据查找和后续使用。当然,在本发明技术精髓的启示下,本领域技术人员还可能采用其它存储数据的模式,但只要其实现的功能和达到的效果与本发明相同或相似,均应涵盖于本发明保护范围内。
所述数据反馈模块33用于向需要使用所述数据的插件发送所述数据。在本实施方式中,采用先请求再反馈数据的模式,即所述数据反馈模块33在接收到数据使用请求之后,才向相应的插件反馈其请求使用的数据。
所述数据使用请求用于向所述数据反馈模块33指明需要使用的数据。所述软件系统中的插件在发布时,均会公布出所述插件在运行过程中输出的数据明细,以及对应至所述预定保存规则中,相应所述数据的存储情况,进一步的,可以明确所述数据在所述数据树上的保存路径。当然,也可以仅仅给出存储所述数据的数据节点的名称,如此根据数据节点的名称也可以获取所述数据。在本实施方式中,所述数据使用请求中包括保存所述数据的数据节点的名称,如此,所述数据反馈模块33在接收到所述数据使用请求之后,便可以依照数据节点的名称在所述数据树中找到所述数据节点,并获取所述数据之后,将所述数据反馈给请求使用所述数据的插件。当然,对应于所述数据保存模块31采用不同模式存储所述数据,所述数据使用请求的内容也会相应的改变,但只要其实现的功能和达到的效果与本发明相同或相似,均应涵盖于本发明保护范围内。
所述第二插件20包括:用于向所述基础平台30发出数据使用请求,以及接收所述基础平台30反馈的数据的使用请求模块21。
所述第二插件20的程序运行过程中,需要使用其它插件输出的数据,则所述第二插件20通过所述使用请求模块21向所述基础平台10发出数据使用请求。在本实施方式中,所述第二插件20在编制过程中,便预先设定需要采用所述第一插件10输出的数据,作为所述第二插件20的一个数据输入,则对应至所述数据树中对于数据的所述预定保存规则,所述使用请求模块21发出的数据使用请求中包括有所述数据在所述数据树中的数据节点的名称,如此所述数据反馈模块33便可以查找并反馈所述数据,所述使用请求模块21能够接收所述数据反馈模块33反馈的数据,使得所述第二插件20继续运行程序。
本实施方式提供的软件系统传递数据的过程举例如下。所述第一插件10的程序在运行过程中产生了数据A,所述请求注册模块11向所述数据保存模块31发出数据注册请求,在所述数据注册请求中包括所述数据A。所述数据保存模块31接收到所述数据注册请求后,获取所述数据A,并将所述数据A按照预定保存规则,在所述数据树中增加数据节点B,并且将所述数据A保存在所述数据节点B中。所述第二插件20执行过程中,需要使用所述数据A,则所述使用请求模块21向所述数据反馈模块33发出数据使用请求,并依照所述预定保存规则,在所述数据使用请求指定数据节点的名称。所述数据反馈模块33接收到所述数据使用请求之后,获取所述数据节点的名称,在所述数据树中找到所述数据节点B,获取所述数据A后,将所述数据A反馈给所述使用请求模块21,如此使得所述第二插件20的程序可以继续执行。
本实施方式中,所述第一插件10和所述第二插件20之间的数据传递通过与所述基础平台的交互实现,在所述第一插件10和所述第二插件20之间没有直接的消息传递基础上,实现所述第一插件10和所述第二插件20之间没有直接的数据传递,使得所述第一插件10和所述第二插件20之间的耦合达到最小,从而便于对所述第一插件10或所述第二插件20的算法进行改进,满足软件用户的多元化需要。
请参阅图3,本发明第三实施方式提供一种软件系统300,所述软件系统300与所述第二实施方式提供的软件系统200的基本相同,其不同之处在于:所述基础平台30还包括使用记录模块35、释放通知接收模块37和数据删除模块39。
所述使用记录模块35用于记录所述数据当前被插件使用的次数记录,在所述数据反馈模块33接收到所述数据使用请求之后,所述使用记录模块将所述次数记录增加预定数值。如此可以实现清晰的了解所述数据的使用状态。
所述预定数值为程序中设定的最小数量单位,比如1、2、3……100等等,在此进一步举例,如果规定所述预定数值为50,则当所述数据反馈模块33接收到所述数据使用请求后,所述次数记录增加50。在本实施方式中,所述预定数值为1,即当所述数据反馈模块33接收到所述数据使用请求后,所述次数记录增加1。
在所述软件系统运行过程中,可能存在多个插件同时使用所述基础平台30上的一个数据,所述数据反馈模块33每接收到一个数据使用请求,所述使用记录模块35将对应的数据的次数记录增加所述预定数值。在本实施方式中,所述使用记录模块35针对所述数据树中每个所述数据节点内保存的数据,均分别设置有所述次数记录。
所述释放通知接收模块37收到所述数据释放通知后,所述使用记录模块将所述次数记录减小所述预定数值。在本实施方式中,插件完成数据使用之后,通过所述数据释放通知告知所述基础平台30,所述基础平台30通过所述释放通知接收模块37接收所述数据释放通知。所述数据释放通知中会按照所述数据树的所述预定保存规则指明释放的数据,即所述数据释放通知中可以包括存储所述数据的数据节点的名称,如此所述使用记录模块35可以依照所述数据节点的名称找到对应的数据,并将所述数据的次数记录减少所述预定数值。
所述数据删除模块39仅当所述次数记录等于预定数量时才能够删除所述数据。在本实施方式中,为了使所述软件系统运行的更加顺畅,需要对所述软件系统占用的存储资源进行管理。所述数据树中保存了大量的数据,使得所述数据树占用了大量的存储资源,因所述软件系统运行情况,当一些所述数据树中的数据不再需要使用时,所述数据删除模块39即可以删除所述数据。为了避免出现删除插件正在使用的数据,所述数据删除模块39仅当所述次数记录等于预定数量时才能够删除所述数据。在本实施方式中,仅当所述次数记录等于0时,所述数据删除模块39才能够删除相应的数据。如此实现所述软件系统能够清理不需要的数据,进而释放存储资源,同时也让所述软件系统运行更加顺畅快速。
所述第二插件20还包括在所述数据使用结束后,向所述基础平台30发出数据释放通知的释放通知模块25。在本实施方式中,所述第二插件20结束使用所述数据之后,通过所述数据释放通知告知所述基础平台30,如此所述基础平台30能够动态了解所述数据的使用状态。
请参阅图4,本发明实施方式还提供一种软件系统中插件间消息传递的方法,所述方法包括:
S1:所述第一插件10向所述基础平台30发出需传递的消息,所述消息代表所述第一插件30执行的功能。
在本实施方式中,所述第一插件10的所述消息注册模块12向所述基础平台30发出所述消息。
S3:所述基础平台30保存所述消息。
在本实施方式中,所述基础平台的接收模块32接收所述消息,并保存所述消息。具体的,所述接收模块32将所述消息保存至所述消息表中。
S5:所述第二插件20向所述基础平台30发出侦听请求,以侦听所述消息。
在本实施方式中,所述第二插件20的所述侦听请求模块22向所述基础平台30发出侦听请求,所述侦听请求中包括需要侦听的消息以及发出所述侦听请求的插件的身份信息。
S7:所述基础平台30接收所述侦听请求。
在本实施方式中,所述基础平台30的所述接收模块32接收所述侦听请求,并在所述消息表中对应所述消息存储所述第二插件20的身份信息。
S9:所述消息代表的功能被执行,所述第一插件10通知所述基础平台30。
在本实施方式中,所述第一插件10的所述通知模块14发通知所述基础平台30。所述消息代表的功能被执行,可以为所述第一插件10要开始执行所述功能,也可以为所述第一插件10在执行所述功能的过程中,还可以为所述第一插件10执行完成所述功能。
S11:所述基础平台30将所述消息发送给所述第二插件20。
在本实施方式中,所述基础平台30的所述收发模块34接收到所述通知模块14的通知后,在所述消息表中查找对应所述消息存储的插件的身份信息,即所述第二插件,将所述消息发送给所述第二插件。
S13:所述第二插件20接收所述消息。
在本实施方式中,所述第二插件20的消息接收模块24接收所述消息。
在所述软件系统中插件间消息传递方法中,步骤S5和步骤S1并不限于前述的描述顺序,也可以首先执行步骤S5后执行步骤S1。即所述基础平台30首先接收到所述第二插件20发出的所述侦听请求,所述基础平台30存储所述侦听请求中的所述第二插件20的身份信息,再接收到所述第一插件10发出的消息后,对应侦听请求对应的消息,将所述消息与所述身份信息对应存储。
本发明提供的软件系统及插件间消息传递方法,通过利用基础平台为插件之间传递消息,从而使得插件之间无需进行直接的消息传递,减小了插件之间的耦合度,从而便于对软件系统中插件的升级,或者编写新的插件,使得所述软件系统具有广泛的适用性,能够满足软件用户的使用需求。
在本发明的技术精髓启示下,本领域技术人员不需要进行创造性劳动便可以对所述软件系统及软件系统中插件间消息传递的方法作出改进,然而只要其实现的功能和效果与本发明相同或相似,均应涵盖于本发明保护范围内。

Claims (5)

1.一种软件系统,其特征在于,包括:
第一插件包括:用于向基础平台发出需传递的消息的消息注册模块,所述消息代表所述第一插件执行的功能;用于在所述消息代表的功能被执行时通知所述基础平台的通知模块;
第二插件包括:用于向所述基础平台发出侦听请求的侦听请求模块,所述侦听请求为侦听所述消息;用于接收从所述基础平台发出的所述消息的消息接收模块;
基础平台包括:用于接收和保存所述消息和所述侦听请求的接收模块;收发模块,用于在接收所述通知模块通知后,将所述消息发送给所述第二插件;
所述第一插件还包括:用于向所述基础平台发出数据注册请求的数据注册模块,所述数据注册请求中包括所述第一插件需要注册的数据;
所述基础平台还包括:用于接收所述数据注册请求,并按照预定保存规则保存所述数据的数据保存模块;用于接收数据使用请求,并反馈所述数据的数据反馈模块;
所述第二插件还包括:用于向所述基础平台发出数据使用请求,以及接收所述基础平台反馈的数据的使用请求模块;
所述基础平台还包括使用记录模块,所述使用记录模块用于记录所述数据当前被插件使用的次数记录,在所述数据反馈模块接收到所述数据使用请求之后,所述使用记录模块将所述次数记录增加预定数值。
2.如权利要求1所述的软件系统,其特征在于:所述第二插件还包括在所述数据使用结束后,向所述基础平台发出数据释放通知的释放通知模块;所述基础平台还包括释放通知接收模块,所述释放通知接收模块收到所述数据释放通知后,所述使用记录模块将所述使用记数减小所述预定数值。
3.如权利要求2所述的软件系统,其特征在于:所述基础平台还包括数据删除模块,所述数据删除模块仅当所述次数记录等于预定数量时才能够删除所述数据。
4.如权利要求1所述的软件系统,其特征在于:所述第二插件具有唯一代表所述第二插件的身份信息,所述接收模块设置有消息表,在所述消息表中对应存储所述消息和所述第二插件的身份信息。
5.一种基于权利要求1所述的软件系统的插件间消息传递方法,其特征在于,其包括:
第一插件向基础平台发出需传递的消息,所述消息代表所述第一插件执行的功能;
所述基础平台保存所述消息;
第二插件向所述基础平台发出侦听请求,以侦听所述消息;
所述基础平台接收所述侦听请求;
所述消息代表的功能被执行,所述第一插件通知所述基础平台;
所述基础平台将所述消息发送给所述第二插件;
所述第二插件接收所述消息。
CN201310545913.7A 2013-11-06 2013-11-06 软件系统及插件间消息传递方法 Active CN104636190B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310545913.7A CN104636190B (zh) 2013-11-06 2013-11-06 软件系统及插件间消息传递方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310545913.7A CN104636190B (zh) 2013-11-06 2013-11-06 软件系统及插件间消息传递方法

Publications (2)

Publication Number Publication Date
CN104636190A CN104636190A (zh) 2015-05-20
CN104636190B true CN104636190B (zh) 2018-03-13

Family

ID=53214982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310545913.7A Active CN104636190B (zh) 2013-11-06 2013-11-06 软件系统及插件间消息传递方法

Country Status (1)

Country Link
CN (1) CN104636190B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106992923B (zh) * 2017-03-10 2020-09-22 广州慧睿思通信息科技有限公司 基于树形结构的模块通信方法及装置
CN107273142B (zh) * 2017-07-12 2021-04-23 北京龙之心科技有限公司 程序更新方法、程序运行方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101201755A (zh) * 2007-05-10 2008-06-18 深圳市同洲电子股份有限公司 一种数字接收终端的软件模块管理方法、系统及设备
CN101571811A (zh) * 2009-05-22 2009-11-04 中兴通讯股份有限公司 一种信息传输方法及装置
CN103176789A (zh) * 2011-12-26 2013-06-26 腾讯科技(深圳)有限公司 一种实现开放平台功能扩展的方法及系统
CN103309700A (zh) * 2012-03-16 2013-09-18 腾讯科技(深圳)有限公司 一种插件管理控制方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101201755A (zh) * 2007-05-10 2008-06-18 深圳市同洲电子股份有限公司 一种数字接收终端的软件模块管理方法、系统及设备
CN101571811A (zh) * 2009-05-22 2009-11-04 中兴通讯股份有限公司 一种信息传输方法及装置
CN103176789A (zh) * 2011-12-26 2013-06-26 腾讯科技(深圳)有限公司 一种实现开放平台功能扩展的方法及系统
CN103309700A (zh) * 2012-03-16 2013-09-18 腾讯科技(深圳)有限公司 一种插件管理控制方法及装置

Also Published As

Publication number Publication date
CN104636190A (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
CN107807815B (zh) 分布式处理任务的方法和装置
CN105760184B (zh) 一种加载组件的方法和装置
CN104850301A (zh) 一种在系统桌面上将应用程序图标分类的方法和系统
CN111666326B (zh) Etl调度方法及装置
CN102790771A (zh) 一种文件传输方法及系统
CN105354255A (zh) 数据查询方法和装置
CN105027535A (zh) 使用rest类api的应用的向后兼容特征级版本控制
CN105787077A (zh) 数据同步方法和装置
CN109542964B (zh) 一种数据调用方法及数据调用系统
CN101860493A (zh) 为客户端分配应用服务器地址的方法、服务器及系统
CN111861754B (zh) 交易打包方法、设备和存储介质
CN105045790A (zh) 图数据搜索系统、方法和设备
CN104636190B (zh) 软件系统及插件间消息传递方法
CN103580918B (zh) 一种配置数据处理方法及装置
CN104504010A (zh) 一种多对多的数据采集系统及其采集方法
CN106790489B (zh) 并行数据加载方法和系统
CN113014510A (zh) 惯导系统分布式测试中数据缓存方法及装置
CN105511849A (zh) 一种展示应用程序的方法、装置及系统
CN108520003A (zh) 一种存储过程调度系统和方法
CN104243358B (zh) Vcf系统中pe设备软件加载的方法以及装置
CN104239486A (zh) 一种数据处理的方法、系统以及相关设备
CN110798358A (zh) 分布式服务标识方法、装置、计算机可读介质及电子设备
CN107844360B (zh) 一种硬盘执行应用代码的方法及装置
CN106664637A (zh) 路由信息配置方法及装置
CN107102901B (zh) 一种任务处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant