CN100468326C - 一种基于总线模型的软件系统及其使用方法 - Google Patents
一种基于总线模型的软件系统及其使用方法 Download PDFInfo
- Publication number
- CN100468326C CN100468326C CNB2005100838058A CN200510083805A CN100468326C CN 100468326 C CN100468326 C CN 100468326C CN B2005100838058 A CNB2005100838058 A CN B2005100838058A CN 200510083805 A CN200510083805 A CN 200510083805A CN 100468326 C CN100468326 C CN 100468326C
- Authority
- CN
- China
- Prior art keywords
- bus
- software
- message
- functional module
- software systems
- 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
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于总线模型的软件系统,该系统包括总线管理器、软件业务功能模块管理器、基础功能模块、软件系统总线以及软件业务功能模块,总线管理器、软件业务功能模块管理器、基础功能模块分别连接至软件系统总线,其中:总线管理器用于对软件系统中各部分之间通过软件系统总线所进行的通信进行管理,以及对软件系统总线进行维护;软件业务功能模块管理器用于实现与当前所需功能相对应的软件业务功能模块的本地装载和远程装载;基础功能模块用于为所述软件系统提供实现其各项功能时所必须的基础功能;所述软件业务功能模块用于通过软件系统总线对该模块的接口调用以及消息交互,实现特定的当前所需功能。本发明还公开了该软件系统的使用方法。
Description
技术领域
本发明属于计算机应用技术领域,尤其涉及一种基于总线模型的软件系统及其使用方法。
背景技术
随着软件业务需求的不断发展,对于软件的开发也从最初的面向过程的开发方式,逐步发展到当前广泛采用的面向对象、面向组件的开发方式,采用这类开发方式,软件开发人员能够以更加贴近现实的方式来设计和开发软件。在软件开发过程中,软件开发人员根据实际业务需要,为软件系统开发出各个独立的软件业务功能模块,所开发出的各个软件业务功能模块分别能够实现各自独立的功能。在上述软件的实际使用过程中,各个软件业务功能模块压缩在一个软件发布包中,使用该软件的客户端通过网络下载该软件发布包,对该发布包进行解压缩并将解压缩后得到的各个软件业务功能模块保存在客户端中。该软件启动后,根据使用者的需要,将所保存的软件业务功能模块装载到内存中,并在内存中运行该软件业务功能模块以实现相应的功能,从而满足使用者的使用需要。
该现有技术虽然能够根据实际需要开发出一套软件系统,并通过应用该系统为使用者提供相应的功能,然而,随着使用者对软件业务要求的不断提高,需要软件系统能够提供更多的功能,从而使得现有技术具有如下问题:
由于软件系统需要提供更多功能,因此,需要在软件系统中包括更多的软件业务功能模块,以分别实现各自的功能。在该现有技术中,由于各个软件业务功能模块压缩在一个发布包中,因此,在软件业务功能模块不断增加的情况下,会造成该发布包的数据量越来越大,由此会造成该发布包在通过带宽本就十分有限的网络进行发布时,所需耗费的时间较长,从而会对软件使用的便利性造成很大影响;另外,在软件系统随着不断开发而包括越来越多的软件业务功能模块的情况下,发布包的数据量会随之增加到一个相当庞大的值,此时,如果需要再对软件系统进行进一步的开发,则需考虑网络是否具有足够的带宽以在用户所能容忍的时间内来传输该发布包,以及运行该软件系统的客户端是否有足够的空间保存所接收到的发布包,由此,会对软件系统的进一步开发造成诸多限制,不利于新的软件业务功能的实现和推广。
另外,采用该现有技术,会通过发布包将所有的软件业务功能模块均发布给客户端保存,客户端一旦启动软件系统后,并不会对其所保存的各个软件业务功能模块进行区分,而是会将其保存的大部分软件业务功能模块加载到内存中。由于对大多数用户来说,通常只根据各自需要使用某些特定的软件业务功能,因此,在该现有技术中,由于客户端会在内存中加载大量并不需要的软件业务功能模块,因此会对内存资源造成浪费,降低软件系统的运行速度,严重时,会对客户端尤其是内存量较小的客户端造成相当大的影响。另外,大量的软件业务功能模块通过发布包不必要地传输给客户端,也会造成对网络传输资源的浪费。
由如上所述可见,由于现有技术采用发布包将所有的软件业务功能模块保存并发布给客户端,并且,客户端并不作区分地将发布包中的大部分软件业务功能模块加载到客户端中,因此,会对软件使用的便利性、新的业务功能的开发和推广造成较大影响,并且,还会对客户端的内存资源造成较大的浪费,不利于该软件的实际应用。
另外,由于在该现有技术中,软件系统每次运行一个软件业务功能模块时,均将该业务功能模块保留在内存中,使用完毕之后并不从内存中删除该功能模块,因此,在该现有技术中,会由于运行过的软件系统功能模块的不断累加,而对内存资源造成进一步的浪费。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于总线模型的软件系统及其使用方法,能够针对特定的业务需要,将该业务需要所对应的软件业务功能模块发布到客户端,并在客户端的内存中加载该功能模块,以解决现有技术中由于通过发布包保存并发布所有软件业务功能模块而带来的上述问题。
另外,本发明还可通过实时监测软件系统中各个功能模块的使用状态,并根据监测结果删除当前并未被使用的功能模块,进一步解决现有技术中由于运行过的软件业务功能模块的不断累加而造成的内存资源浪费问题。
为实现上述目的,本发明提供了一种基于总线模型的软件系统,该系统包括总线管理器、软件业务功能模块管理器、基础功能模块、总线消息广播器、软件系统总线以及由软件业务功能模块管理器装载到软件系统总线上的软件业务功能模块,总线管理器、软件业务功能模块管理器、基础功能模块、总线消息广播器分别连接至软件系统总线,其中:
总线管理器用于对软件系统中各部分之间通过软件系统总线所进行的通信进行管理,以及对软件系统总线进行维护;
软件业务功能模块管理器用于实现与当前所需功能相对应的软件业务功能模块的本地装载和远程装载;
基础功能模块用于为所述软件系统提供实现其各项功能时所必须的基础功能;
所述软件业务功能模块用于通过软件系统总线对该模块的接口调用以及消息交互,实现特定的当前所需功能;
总线消息广播器用于在消息交互过程中,通过软件系统总线接收软件业务功能单元所发送的消息,在总线上广播该消息,使软件系统中能够处理该消息的对应部分接收该消息并进行相应处理。
其中,所述软件业务功能模块管理器进一步用于:
在软件系统中根据各个软件业务功能模块的当前被引用状况,查询符合删除条件的软件业务功能模块,并将该模块从软件系统中删除。
其中,该系统进一步包括软件业务功能模块状态管理器,其中:
软件业务功能模块状态管理器用于管理软件系统中各个软件业务功能模块的当前状态,并为软件业务功能模块管理器提供相应软件业务功能模块的当前状态,软件业务功能模块管理器进一步用于根据软件业务功能模块状态管理器所提供的符合删除条件的软件业务功能模块的当前状态信息,在该软件业务功能模块处于可以被删除状态时将该模块从软件系统中删除。
其中,该系统进一步包括总线消息转换器,该总线消息转换器与软件系统总线相连,用于将软件系统中各个部分之间通过软件系统总线所交互的消息转换为标准格式。
其中,所述总线管理器进一步用于捕获在广播消息过程中未能被软件系统中对应部分处理的消息,并将该消息保存在消息队列中。
其中,该系统进一步包括总线安全管理器,该总线安全管理器与软件系统总线相连,用于对软件系统总线上所传输的消息以及数据进行安全性检查。
其中,所述总线安全管理器进一步用于对软件系统总线上所传输的消息以及数据进行加密和解密操作,和/或,在出现消息拥塞时,按照消息的优先级丢弃部分优先级较低的消息。
其中,该系统进一步包括:总线适配器,该总线适配器与软件系统总线相连,用于实现各个软件业务功能模块与软件系统总线之间的适配操作。
为实现上述目的,本发明还提供了一种基于总线模型的软件系统的使用方法,该方法包括:
步骤A:创建基于总线模型的软件系统,在该系统中,设置为该软件系统提供其运行过程中所需的基础功能的基础功能模块,设置用于对软件业务功能模块进行管理的软件业务功能模块管理器;以及,设置用于广播消息的总线消息广播器,并将该总线消息广播器与软件系统总线相连;
步骤B:软件业务功能模块管理器根据当前所需实现的功能,通过本地装载或远程下载的方式,将该功能所对应的软件业务功能模块装载到软件系统总线上;
步骤C:软件系统总线对装载到软件系统总线上的所述软件业务功能模块进行接口调用以及消息交互,在消息交互过程中,所设置的所述总线消息广播器通过软件系统总线,接收软件业务功能单元所发送的消息,在总线上广播该消息,软件系统中能够处理该消息的对应部分接收到该消息后进行相应处理,以实现当前所需功能。
其中,步骤A包括:
分别设置软件系统总线、所述基础功能模块和软件业务功能模块管理器,将所设置的基础功能模块和软件业务功能模块管理器连接至软件系统总线,和,设置用于软件系统总线所进行的通信进行管理以及对软件系统总线进行维护的总线管理器,将所设置的总线管理器连接至软件系统总线。
其中,步骤B包括:
步骤B1:软件业务功能模块管理器根据当前所需实现的功能,查找本地文件系统中是否存在与该功能相对应的软件业务功能模块,如果存在,则执行步骤B2及其后续步骤,否则,执行步骤B3;
步骤B2:软件业务功能模块管理器从本地文件系统获得所述软件业务功能模块,并将该模块直接装载到该软件系统的软件系统总线上,然后,执行所述步骤C;
步骤B3:软件业务功能模块管理器启动远程下载线程,从特定的远程服务器下载所述的软件业务功能模块;
步骤B4:软件业务功能模块管理器将下载的软件业务功能模块装载到软件系统总线上,和,将该软件业务功能模块保存到本地文件系统中,然后执行所述步骤C。
其中,步骤C包括:
软件系统总线对装载到软件系统总线上的软件业务功能模块进行接口调用和消息交互,在内存中直接运行该软件业务功能模块中的相应功能,以实现当前所需功能。
其中,步骤C包括:
软件系统总线对装载到软件系统总线上的软件业务功能模块进行接口调用和消息交互,使得所述的软件业务功能模块通过软件系统总线与该软件系统中的其它部分进行消息交互和功能调用,以实现当前所需功能。
其中,步骤A进一步包括:
设置用于实现各个软件业务功能模块与软件系统总线之间的适配操作总线适配器,并将该总线适配器连接至软件系统总线;
步骤C所述接口调用和消息交互进一步包括:
利用所设置的所述总线适配器,将各个软件业务功能模块的接口调用以及消息格式转换为标准的接口调用以及标准的消息格式。
其中,步骤A进一步包括:
设置用于对软件系统总线上所传输的消息以及数据进行安全性检查的总线安全管理器,并将该安全管理器与软件系统总线连接;
步骤C所述接口调用和消息交互进一步包括:
利用所设置的所述总线安全管理器对软件系统总线上所传输的消息以及接口调用过程中的数据进行安全性检查。
其中,步骤C所述接口调用和消息交互进一步包括:
利用所设置的所述总线安全管理器对软件系统总线上所传输的消息以及接口调用过程中的数据进行加密和解密操作。
其中,步骤C所述接口调用和消息交互进一步包括:
在出现消息拥塞时,利用所设置的所述总线安全管理器,按照消息的优先级丢弃部分优先级较低的消息。
其中,该方法进一步包括:
在所述广播消息的过程中,总线管理器捕获未能被软件系统中对应部分处理的消息,并将该消息保存在消息队列中,再次需要使用该消息时,直接从消息队列中获取该消息使用。
可见,采用本发明,能够根据当前所需功能装载特定的软件业务功能模块,而无需将所有的软件业务功能模块都装载到内存中,从而大大节省了对内存空间的占用,另外,由于本发明不再采用统一保存了各个软件业务功能模块的发布包来发布软件业务功能模块,因此,使得发布过程中数据的传输量得以大大减小,软件的进一步开发过程也可不再受到发布大小的限制,使得该软件能够进一步充分地适应软件业务不断发展的需要。此外,本发明还可对软件系统中的软件业务功能模块实现主动卸载,从而进一步减少对系统中内存的占用,有利于该软件自身以及其它同时运行的软件的顺畅执行。
附图说明
图1为本发明所提供的系统的示意图。
图2为本发明一实施例中所提供的系统的示意图。
图3为本发明一实施例中所提供的系统的示意图。
图4为本发明一实施例中所提供的系统的示意图。
图5为实现本发明的流程图。
图6为实现步骤502的流程图。
具体实施方式
本发明为一种基于总线模型的软件系统及其使用方法,软件系统按照总线模型的方式构建,在使用者需要实现特定的软件业务功能时,该软件系统中的软件业务功能模块管理器将相应的软件业务功能模块通过软件系统总线安装到该软件系统中,该软件系统将该软件业务功能模块加载到内存中运行,从而实现为使用者提供其需要的功能。
下面结合附图对本发明进行详细描述。
参见图1,本发明所提供的系统包括:
总线管理器、软件业务功能模块管理器、基础功能模块、软件系统总线以及由软件业务功能模块管理器装载到软件系统总线上的软件业务功能模块,总线管理器、软件业务功能模块管理器、基础功能模块分别连接至软件系统总线,其中:
总线管理器用于:
对软件系统中各部分之间通过软件系统总线所进行的通信进行管理,以及对软件系统总线进行维护;其中,总线管理器所进行的维护具体包括:
在软件系统启动时,开通软件系统总线通道,以使得软件运行过程中,软件系统中的各部分能够利用所开通的软件系统总线通道实现相互间的消息传输;
在软件系统运行时,对软件系统总线上所传输的消息进行控制,以使得消息能够有序传输,避免在软件系统总线上出现消息阻塞;
对软件系统总线的生命周期进行维护,以使得在软件系统停止后,能够利用该总线管理器对一些后续消息进行保存,并在该软件系统重新启动后将所保存的消息重新发送给软件系统中相应部分进行处理。
软件业务功能模块管理器用于:
实现与当前所需功能相对应的软件业务功能模块的本地装载和远程装载,具体包括:
软件业务功能模块管理器根据使用者当前所需使用的功能,在本地文件系统中查找是否存在与该功能相应的软件业务功能模块,并在查找得到存在该软件业务功能模块时,则将该软件业务功能模块直接装载到软件系统总线上;以及,在本地文件系统中无法查找得到相应的软件业务功能模块时,通过启动远程下载线程,从特定的远程服务器下载并保存该相应的软件业务功能模块,并将该通过远程下载得到的软件业务功能模块自动装载到软件系统总线上;
基础功能模块用于:
为本发明的软件提供实现其各项功能时所必须的基础功能;该基础功能模块在软件系统启动时直接装载至软件系统总线,通过在内存中运行该基础功能模块,从而为使用者提供该软件系统的基本功能;
软件业务功能模块用于:
在内存中运行该软件业务功能模块中的相应代码,以及通过软件系统总线与该软件系统中的其它部分进行消息交互,实现特定的当前所需功能,从而为使用者提供其所需的服务。
在本发明上述实施例中,由于通过软件业务功能模块管理器将满足使用者需要的特定软件业务功能模块装载到软件系统总线上,从而只需要在内存中装载该特定的软件业务功能模块,无需利用较大的内存空间来运行软件系统中的各个模块,从而可以达到节省内存空间的目的,在本发明另一实施例中,为了进一步节省内存空间,软件业务功能模块管理器除了具有上述装载功能之外,还可进一步具有软件业务功能模块的主动卸载功能,参见图2,在该实施例中,软件系统除了包括图1所示的各个部分之外,还进一步包括软件业务功能模块状态管理器,其中:
总线管理器、基础功能模块、软件系统总线以及由软件业务功能模块管理器装载到软件系统总线上的软件业务功能模块的功能与上述实施例中所述的功能相同;
软件业务功能模块管理器除了按照上述实施例那样用于实现相应软件业务功能模块的本地装载和远程装载之外,还进一步用于:
在软件系统中根据各个软件业务功能模块的当前被引用状况,查询符合删除条件的软件业务功能模块,并根据从软件业务功能模块状态管理器中获取的该模块的状态信息,在该软件业务功能模块处于可以被删除状态时将该模块从软件系统中删除;
软件业务功能模块状态管理器用于:管理软件系统中各个软件业务功能模块的当前状态,并为软件业务功能模块管理器提供相应软件业务功能模块的当前状态;其中,根据模块当前的使用情况,该软件业务功能状态管理器将各个模块的状态设置或切换到请求状态、就绪状态、忙状态、空闲状态、以及非使用状态,为了说明的更加清晰,下面对这些状态分别加以说明:
请求状态表示该模块当前处于被请求的状态,用户正在需要使用该模块的相应功能;
就绪状态表示该模块当前已经连接至软件系统总线,该模块当前已经可以被使用者使用或者其它模块调用;
空忙状态表示该模块当前正在被使用者使用或者其它模块调用,此时,该模块不能脱离软件系统总线;
闲状态表示该模块已经处理完相应的操作请求,处于空闲状态;
非使用状态表示该模块当前未被执行任何操作,已经可以脱离软件系统总线;
其中,上述的请求状态、就绪状态和忙状态表示该模块处于当前不可被删除的状态,空闲状态和非使用状态表示该模块处于当前可以被删除的状态。
参见图3,在本发明另一优选实施例中,为了能够减少对软件系统中各部分之间耦合度的要求,以及加强软件系统中各个部分之间通讯的便利性,该软件系统除了包括图2所示的各部分之外,还可进一步包括总线消息转换器和总线消息广播器,其中:
总线消息转换器与软件系统总线相连,用于将软件系统中各个部分之间通过软件系统总线所交互的消息转换为标准格式,从而使得各个部分均可以识别接收到的消息;在本发明实施例中,总线消息转换器采用XML定义消息的标准格式,并按照该格式进行消息转换,在具体应用中,还可根据实际业务的需要进行标准格式的定制以及合理扩展,并不影响本发明的实现;通过该总线消息转换器,为软件系统中各个部分之间的正常通讯提供了良好的保证,使得各部分之间通过统一的消息格式完成相互通讯,从而加强了通讯的便利性;
总线消息广播器与软件系统总线相连,用于通过软件系统总线,接收软件业务功能单元所发送的消息,在总线上以广播的方式将该消息发送给软件系统中的各个部分;采用此种广播的方式,使得发送消息的软件业务功能模块不再需要关心软件系统中的哪个部分可以接收并处理所发送的消息,而是将该消息以群发的方式发送给软件系统中的各个部分,由时,能够直接利用保存在消息队列中的消息来实现相应功能。
参见图4,在本发明另一优选实施例中,为了增加软件系统安全性,以及对各个软件业务功能模块的管理便利性,该软件系统还可以进一步包括总线安全管理器和总线适配器,其中:
总线安全管理器与软件系统总线相连,用于对软件系统总线上所传输的消息以及数据进行安全性检查,还可进一步用于对该消息和数据进行加密和解密操作,从而充分保证该基于总线模型的软件系统能够平滑稳定地运行;另外,为了避免出现突发消息拥塞,该总线安全管理器还可进一步用于在出现消息拥塞时,按照消息的优先级丢弃部分优先级较低的消息,从而尽可能的保证该基于总线模型的软件系统能够稳定运行;其中,在本发明实施例中,总线安全管理器直接设置于软件系统总线上,在本发明其它实施例中,也可独立于软件系统总线设置该总线安全管理器,并不影响本发明的实现;
总线适配器与软件系统总线相连,用于实现各个软件业务功能模块与软件系统总线之间的适配操作,将各个软件业务功能模块的接口调用以及消息格式转换为标准的接口调用以及标准的消息格式,从而使得各个软件业务功能模块能够与软件系统总线进行合理的匹配,从而完成使用者的特定业务操作;采用该总线适配器,能够保证软件业务功能模块与总线模型之间的透明性,从而在不知道软件业务功能模块的接口调用以及消息格式的情况下,就可以通过该总线适配器的统一管理及相应转换,实现将软件业务功能模块连接至软件系统总线,从而使得本发明的实现更加方便。
其中,根据实际需要,本发明的软件系统可以分别仅仅进一步包括总线安全管理器或总线适配器,并不影响本发明的实现。
以上所述为对本发明所提供的软件系统的详细描述,下面参见附图,对本发明所提供的方法加以详细描述。
参见图5,实现本发明需要以下步骤:
步骤501:创建基于总线模型的软件系统,在该系统中,设置基础功能模块,该模块通过软件系统总线为该软件系统提供其运行过程中所需的基础功能,以及,设置用于对软件业务功能模块进行管理的软件业务功能模块管理器;
步骤502:软件业务功能模块管理器根据当前所需实现的功能,通过本地装载或远程下载的方式,将该功能所对应的软件业务功能模块装载到软件系统总线上;
步骤503:在内存中运行装载到软件系统总线上的软件业务功能模块,以实现当前所需功能。
下面对上述步骤的具体实现分别进行详细说明:
(一)步骤501的具体实现:
在本发明实施例中,通过以下方式实现步骤501:
设置软件系统总线,并分别设置提供软件系统所需基础功能的基础功能模块和用于对软件业务功能模块进行管理的软件业务功能模块管理器,将所设置的基础功能模块和软件业务功能模块管理器连接至软件系统总线,并且,设置用于软件系统总线所进行的通信进行管理以及对软件系统总线进行维护的总线管理器,将所设置的总线管理器连接至软件系统总线;
其中,在本发明其它实施例中,为了能够方便软件系统中各部分与软件系统总线之间的通讯,步骤501中还可进一步设置用于实现各个软件业务功能模块与软件系统总线之间的适配操作总线适配器,并将该总线适配器连接至软件系统总线;
其中,在本发明其它实施例中,为了能够减少软件系统中各模块的耦合度要求,步骤501中还可进一步设置用于广播消息的总线消息广播器,并将该总线消息广播器与软件系统总线相连;
其中,在本发明其它实施例中,为了能够提高软件系统总线通讯过程中的安全性,步骤501中还可进一步设置用于对软件系统总线上所传输的消息以及数据进行安全性检查的总线安全管理器,并将该安全管理器与软件系统总线连接。
(二)步骤502的具体实现:
参见图6,在本发明实施例中,通过以下步骤实现步骤502:
步骤601:软件业务功能模块管理器根据当前所需实现的功能,查找本地文件系统中是否存在与该功能相对应的软件业务功能模块,如果存在,则执行步骤602及其后续步骤,否则,执行步骤603;
步骤602:软件业务功能模块管理器从本地文件系统获得所述软件业务功能模块,并将该模块直接装载到该软件系统的软件系统总线上,然后,结束本流程,执行所述步骤503;
步骤603:软件业务功能模块管理器启动远程下载线程,从特定的远程服务器下载所述的软件业务功能模块;
步骤604:软件业务功能模块管理器将下载的软件业务功能模块装载到软件系统总线上,并且,将该软件业务功能模块保存到本地文件系统中,然后结束本流程,执行所述步骤503;其中,在步骤604中,通过将下载的软件业务功能模块保存到本地文件系统中,能够在实现本次功能后,利用该保存在本地文件系统的该模块直接实现相应功能,从而无需再次进行远程下载。
(三)步骤503的具体实现:
在本发明实施例中,可采用如下方式实现步骤503:
1、软件系统总线对装载到软件系统总线上的软件业务功能模块进行接口调用和消息交互,在内存中直接运行该软件业务功能模块中的相应功能,以实现当前所需功能;
2、软件系统总线对装载到软件系统总线上的软件业务功能模块进行接口调用和消息交互,使得所述的软件业务功能模块通过软件系统总线与该软件系统中的其它部分进行消息交互和功能调用,以实现当前所需功能;
或者,也可根据所需实现的功能,综合通过上述两种方式来实现当前所需功能,并不影响本发明的实现。
在本发明一优选实施例中,为了能够方便软件业务功能模块与软件系统总线之间的消息交互,可以通过如下方式实现上述软件系统总线对软件业务功能模块的接口调用和消息交互:
利用在步骤501中所设置的总线适配器,对各个软件业务功能模块与软件系统总线之间进行适配操作,将各个软件业务功能模块的接口调用以及消息格式转换为标准的接口调用以及标准的消息格式,从而使得各个软件业务功能模块能够与软件系统总线进行合理的匹配,增加软件业务功能模块与总线模型之间的透明性。
在本发明一优选实施例中,为了能够增加软件系统总线上进行消息交互的安全性,还可进一步包括以下步骤:
利用步骤501中所配置的总线安全管理器,对软件系统总线上所传输的消息以及接口调用过程中的数据进行安全性检查;
如果为了进一步提高安全性,还可以进一步利用该总线安全管理器,对软件系统总线上所传输的消息以及数据进行加密和解密操作从而充分保证该基于总线模型的软件系统能够平滑稳定地运行;
另外,为了避免出现突发消息拥塞,该方法还可进一步包括:在出现消息拥塞时,总线安全管理器按照消息的优先级丢弃部分优先级较低的消息,从而尽可能的保证该基于总线模型的软件系统能够稳定运行。
在本发明一优选实施例中,为了增加上述通过软件系统总线所进行的消息交互的便利性,该方法还可进一步包括:
利用总线消息转换器,将软件系统中各个部分之间所交互的消息转换为标准格式,从而使得各个部分均接收到其可以识别的消息。在本发明实施例中,可以采用XML定义消息的标准格式,并按照该格式进行消息转换,在本发明其它实施例中,还可根据实际业务的需要进行标准格式的定制以及合理扩展,并不影响本发明的实现。
在本发明一优选实施例中,为了降低了对软件系统中各个部分之间耦合度的要求,在消息交互过程中,可以按照如下方式传输消息:
总线消息广播器通过软件系统总线接收软件业务功能单元所发送的消息,在总线上以广播的方式将该消息发送给软件系统中的各个部分,软件系统中能够处理该消息的对应部分接收该消息并进行相应处理;其中,如果软件系统中没有对应部分能够处理总线消息广播器广播的消息,则该方法还进一步包括:
总线管理器捕获未能被软件系统中对应部分处理的消息,并将该消息保存在消息队列中,再次需要使用该消息时,直接从消息队列中获取该消息使用。由此,可以保证软件业务功能模块能够随时脱离软件系统总线,而发送给该软件业务功能模块的消息不会由此而丢失,从而保证了消息传输的可靠性,使得再次将该软件业务功能模块连接至软件系统总线时,能够直接利用保存在消息队列中的消息来实现相应功能。
在本发明中,为了能够进一步减小对内存资源的占用,该方法还可进一步对软件业务功能模块进行主动卸载,具体包括:
软件业务功能模块管理器根据软件系统总线上的各个软件业务功能模块的当前被引用状况,查询符合删除条件的软件业务功能模块,并将该模块从软件系统中主动删除,从而释放内存空间,减少对内存空间的占用;其中,在本发明实施例中,判断软件业务功能模块的当前是否被引用,如果未被引用,则该模块为符合删除条件的软件业务功能模块,或者,也可判断软件业务功能模块是否在预先设定的一段时间内未被引用,如果是,则该模块为符合删除条件的软件业务功能模块;在本发明其它实施例中,考虑到各个软件业务功能模块有可能还需要被其它模块所引用等因素,在删除符合删除条件的软件业务功能模块之前,该方法还可进一步包括如下步骤:
判断该软件业务功能模块的当前状态是否为当前可以被删除的状态,如果是,则执行所述删除的步骤,否则,不删除该软件业务功能模块,直至该模块处于可被删除的状态;其中,上述可被删除的状态包括:空闲状态和非使用状态,不可被删除的状态包括:请求状态、就绪状态和忙状态,这些状态可以由软件业务功能模块状态管理器提供给软件业务功能模块管理器,从而由该管理根据所提供的状态进行相应的卸载操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1、一种基于总线模型的软件系统,其特征在于,该系统包括总线管理器、软件业务功能模块管理器、基础功能模块、总线消息广播器、软件系统总线以及由软件业务功能模块管理器装载到软件系统总线上的软件业务功能模块,总线管理器、软件业务功能模块管理器、基础功能模块、总线消息广播器分别连接至软件系统总线,其中:
总线管理器用于对软件系统中各部分之间通过软件系统总线所进行的通信进行管理,以及对软件系统总线进行维护;
软件业务功能模块管理器用于实现与当前所需功能相对应的软件业务功能模块的本地装载和远程装载;
基础功能模块用于为所述软件系统提供实现其各项功能时所必须的基础功能;
所述软件业务功能模块用于通过软件系统总线对该模块的接口调用以及消息交互,实现特定的当前所需功能;
总线消息广播器用于在消息交互过程中,通过软件系统总线接收软件业务功能单元所发送的消息,在总线上广播该消息,使软件系统中能够处理该消息的对应部分接收该消息并进行相应处理。
2、根据权利要求1所述的系统,其特征在于,所述软件业务功能模块管理器进一步用于:
在软件系统中根据各个软件业务功能模块的当前被引用状况,查询符合删除条件的软件业务功能模块,并将该模块从软件系统中删除。
3、根据权利要求2所述的系统,其特征在于,该系统进一步包括软件业务功能模块状态管理器,其中:
软件业务功能模块状态管理器用于管理软件系统中各个软件业务功能模块的当前状态,并为软件业务功能模块管理器提供相应软件业务功能模块的当前状态,软件业务功能模块管理器进一步用于根据软件业务功能模块状态管理器所提供的符合删除条件的软件业务功能模块的当前状态信息,在该软件业务功能模块处于可以被删除状态时将该模块从软件系统中删除。
4、根据权利要求1、2或3所述的系统,其特征在于,该系统进一步包括总线消息转换器,该总线消息转换器与软件系统总线相连,用于将软件系统中各个部分之间通过软件系统总线所交互的消息转换为标准格式。
5、根据权利要求1所述的系统,其特征在于,所述总线管理器进一步用于捕获在广播消息过程中未能被软件系统中对应部分处理的消息,并将该消息保存在消息队列中。
6、根据权利要求1、2或3所述的系统,其特征在于,该系统进一步包括总线安全管理器,该总线安全管理器与软件系统总线相连,用于对软件系统总线上所传输的消息以及数据进行安全性检查。
7、根据权利要求6所述的系统,其特征在于,所述总线安全管理器进一步用于对软件系统总线上所传输的消息以及数据进行加密和解密操作,和/或,在出现消息拥塞时,按照消息的优先级丢弃部分优先级较低的消息。
8、根据权利要求1、2或3所述的系统,其特征在于,该系统进一步包括:总线适配器,该总线适配器与软件系统总线相连,用于实现各个软件业务功能模块与软件系统总线之间的适配操作。
9、一种基于总线模型的软件系统的使用方法,其特征在于,该方法包括:
步骤A:创建基于总线模型的软件系统,在该系统中,设置为该软件系统提供其运行过程中所需的基础功能的基础功能模块,设置用于对软件业务功能模块进行管理的软件业务功能模块管理器;以及,设置用于广播消息的总线消息广播器,并将该总线消息广播器与软件系统总线相连;
步骤B:软件业务功能模块管理器根据当前所需实现的功能,通过本地装载或远程下载的方式,将该功能所对应的软件业务功能模块装载到软件系统总线上;
步骤C:软件系统总线对装载到软件系统总线上的所述软件业务功能模块进行接口调用以及消息交互,在消息交互过程中,所设置的所述总线消息广播器通过软件系统总线,接收软件业务功能单元所发送的消息,在总线上广播该消息,软件系统中能够处理该消息的对应部分接收到该消息后进行相应处理,以实现当前所需功能。
10、根据权利要求9所述的方法,其特征在于,步骤A包括:
分别设置软件系统总线、所述基础功能模块和软件业务功能模块管理器,将所设置的基础功能模块和软件业务功能模块管理器连接至软件系统总线,和,设置用于软件系统总线所进行的通信进行管理以及对软件系统总线进行维护的总线管理器,将所设置的总线管理器连接至软件系统总线。
11、根据权利要求9所述的方法,其特征在于,步骤B包括:
步骤B1:软件业务功能模块管理器根据当前所需实现的功能,查找本地文件系统中是否存在与该功能相对应的软件业务功能模块,如果存在,则执行步骤B2及其后续步骤,否则,执行步骤B3;
步骤B2:软件业务功能模块管理器从本地文件系统获得所述软件业务功能模块,并将该模块直接装载到该软件系统的软件系统总线上,然后,执行所述步骤C;
步骤B3:软件业务功能模块管理器启动远程下载线程,从特定的远程服务器下载所述的软件业务功能模块;
步骤B4:软件业务功能模块管理器将下载的软件业务功能模块装载到软件系统总线上,和,将该软件业务功能模块保存到本地文件系统中,然后执行所述步骤C。
12、根据权利要求9所述的方法,其特征在于,步骤C包括:
软件系统总线对装载到软件系统总线上的软件业务功能模块进行接口调用和消息交互,在内存中直接运行该软件业务功能模块中的相应功能,以实现当前所需功能。
13、根据权利要求9所述的方法,其特征在于,步骤C包括:
软件系统总线对装载到软件系统总线上的软件业务功能模块进行接口调用和消息交互,使得所述的软件业务功能模块通过软件系统总线与该软件系统中的其它部分进行消息交互和功能调用,以实现当前所需功能。
14、根据权利要求9所述的方法,其特征在于,步骤A进一步包括:
设置用于实现各个软件业务功能模块与软件系统总线之间的适配操作总线适配器,并将该总线适配器连接至软件系统总线;
步骤C所述接口调用和消息交互进一步包括:
利用所设置的所述总线适配器,将各个软件业务功能模块的接口调用以及消息格式转换为标准的接口调用以及标准的消息格式。
15、根据权利要求9所述的方法,其特征在于,步骤A进一步包括:
设置用于对软件系统总线上所传输的消息以及数据进行安全性检查的总线安全管理器,并将该安全管理器与软件系统总线连接;
步骤C所述接口调用和消息交互进一步包括:
利用所设置的所述总线安全管理器对软件系统总线上所传输的消息以及接口调用过程中的数据进行安全性检查。
16、根据权利要求15所述的方法,其特征在于,步骤C所述接口调用和消息交互进一步包括:
利用所设置的所述总线安全管理器对软件系统总线上所传输的消息以及接口调用过程中的数据进行加密和解密操作。
17、根据权利要求15或16所述的方法,其特征在于,步骤C所述接口调用和消息交互进一步包括:
在出现消息拥塞时,利用所设置的所述总线安全管理器,按照消息的优先级丢弃部分优先级较低的消息。
18、根据权利要求9所述的方法,其特征在于,该方法进一步包括:
在所述广播消息的过程中,总线管理器捕获未能被软件系统中对应部分处理的消息,并将该消息保存在消息队列中,再次需要使用该消息时,直接从消息队列中获取该消息使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100838058A CN100468326C (zh) | 2005-07-07 | 2005-07-07 | 一种基于总线模型的软件系统及其使用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100838058A CN100468326C (zh) | 2005-07-07 | 2005-07-07 | 一种基于总线模型的软件系统及其使用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1892590A CN1892590A (zh) | 2007-01-10 |
CN100468326C true CN100468326C (zh) | 2009-03-11 |
Family
ID=37597485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100838058A Active CN100468326C (zh) | 2005-07-07 | 2005-07-07 | 一种基于总线模型的软件系统及其使用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100468326C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193799A (zh) * | 2011-03-25 | 2011-09-21 | 上海磁浮交通发展有限公司 | 一种用于安全计算机通信的安全中间系统 |
CN106293955A (zh) * | 2015-05-19 | 2017-01-04 | 中国石油化工股份有限公司 | 一种应用进程间的通信方法 |
CN114756495B (zh) * | 2022-06-16 | 2022-09-06 | 中国人民解放军国防科技大学 | 基于分层消息软总线模型的操作系统及实现方法 |
-
2005
- 2005-07-07 CN CNB2005100838058A patent/CN100468326C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN1892590A (zh) | 2007-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130191526A1 (en) | Open plug-in management platform and plug-in management method implemented on browser | |
CN101820361B (zh) | 一种实现对多协议通信组件管理的方法及装置 | |
WO2018076755A1 (zh) | 一种升级包下发方法及装置 | |
US8082414B2 (en) | Method and system for centralized memory management in wireless terminal devices | |
US8719780B2 (en) | Application server with a protocol-neutral programming model for developing telecommunications-based applications | |
US20080034109A1 (en) | System for an open architecture deployment platform with centralized synchronization | |
CN108449410A (zh) | 一种云平台中消息管理方法、系统及相关装置 | |
CN110336871A (zh) | 一种文件处理方法、装置、存储介质及电子设备 | |
CN102520936B (zh) | 一种在Android上实现Socket通讯服务共享的方法 | |
CN103401896B (zh) | 一种多Android客户端服务共享方法及系统 | |
CN101667147A (zh) | 一种多任务的可控自动快照方法 | |
CN102576245A (zh) | 非易失性设备 | |
CN105893320B (zh) | 一种面向多核处理器的远程任务函数调用方法 | |
KR101558289B1 (ko) | 메시지 처리 파이프라인 구성 | |
KR100586866B1 (ko) | 네트워크 상에서 서비스를 공유하기 위한 장치 및 방법 | |
CN115134352B (zh) | 一种埋点数据上传方法、装置、设备及介质 | |
CN111722944B (zh) | 一种基于nio的airt-ros通信方法及系统 | |
CN100468326C (zh) | 一种基于总线模型的软件系统及其使用方法 | |
CN111371848A (zh) | 一种请求处理方法、装置、设备及存储介质 | |
US7209971B1 (en) | Architecture and run-time environment for network filter drivers | |
CN103019854A (zh) | 一种分布式的动态进程管理方法及系统 | |
CN115550438A (zh) | 物联网消息处理方法、装置、系统、设备及存储介质 | |
KR100833494B1 (ko) | 임베디드 단말의 OSGi 미들웨어 환경에서 이원화된애플리케이션 관리를 통한 애플리케이션 경량화를 위한장치 및 그 방법 | |
CN107391274A (zh) | 离线消息的处理方法及装置 | |
CN113296987A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20151230 Address after: The South Road in Guangdong province Shenzhen city Fiyta building 518057 floor 5-10 Nanshan District high tech Zone Patentee after: Shenzhen Tencent Computer System Co., Ltd. Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403 Patentee before: Tencent Technology (Shenzhen) Co., Ltd. |