本发明专利技术公开了一种基于ACE的通信框架和方法以及功能模块间的通信方法。该通信框架由底层向上依次包括:操作系统层、ACE层、平台层和应用层。应用层包括功能模块的集合;平台层包括守护进程和子进程。守护进程解析功能模块所在进程的配置文件;子进程基于进程的配置文件进行配置以启动子进程,并解析功能模块的配置文件以激活功能模块,从而通过平台层来统一管理功能模块间的通信。因为平台层不直接参与功能模块间的数据交互,只统一生成子进程以及告知目的功能模块的通信端口,这样避免了使用对存储空间和处理速度要求较高的中间服务器。同时功能模块不需要关心彼此间是如何进行数据交互的,因此避免了因代码撰写差异而导致的通信故障率增加。
【技术实现步骤摘要】
本专利技术涉及数据通信,尤其涉及一种基于ACE的通信方法和框架、及功能模块间的通信方法。
技术介绍
在模块化的程序设计方法中,通常将一个较大的程序按功能分成若干个功能模块,每个功能模块是一个代码集,通过编写和调试可将多个功能模块组合构成程序段,即函数。在同一个程序内,每个功能模块不可能孤立运行,必须相互配合,因此功能模块间需要进行数据交互和相互调用。然而,不同的功能模块可能由不同的人员编写,人员间的程序编写水平和风格不同,易于造成功能模块间的通信故障率增加,从而导致程序无法执行其功能,以及还将导致调试、测试、维护的难度增大。当程序内的功能模块越多时,这些问题将更为严重。进一步地,当需要进行数据交互的功能模块位于不同的程序内时,在实现应用程序之间数据交互的程序间通信过程中,如果应用程序装载在同一台终端中,它们之间只需一定的通道就能实现数据交互;然而,如果应用程序装载在不同的终端中,则要复杂得多。首先,程序之间要通过网络之间的协议才能实现;其次,不同的终端中可能装载不同的操作系统,例如,有的终端采用Windows操作系统,有的则采用UNIX/Linux操作系统,由此,在实施上述应用程序的功能过程中,其进程间的通信需要跨操作系统才能实现。目前,业界通常米用JAVA 和 ACE (ADAPTIVE Communication Environment)两种方法来实现跨操作系统的进程间通信。其中,JAVA由于在处理二进制和大容量方面存在效率问题,因此在网管和应用服务器领域内,如果需要跨操作系统,通常采用ACE。虽然采用ACE可以解决跨操作系统通信的问题,但是因各进程可能位于不同的终端或操作系统中,其代码的撰写风格和工具不统一,使得进程间的通信容易出现故障,而出现故障后调试和解决的难度较大。另夕卜,还有一种方法是米用中间服务器,例如MTC服务器(MachineTypeCommunications Server),通过该中间服务器来转发需要交互的数据,而程序之间彼此并不知晓该数据是如何传送的,彼此之间也不直接传送数据。这种方法虽然可以避开操作系统,但是其对中间服务器的存储空间和处理速度要求较高,且处理方法更为复杂。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中功能模块间通信容易出现故障的缺陷,提供一种基于ACE的通信方法和框架、以及功能模块间的通信方法。本专利技术解决其技术问题所采用的技术方案是提供了一种基于ACE的通信框架,由底层向上依次包括操作系统层、ACE层、平台层、以及应用层;其中,所述应用层包括功能模块的集合;所述平台层包括守护进程和子进程;其中,所述守护进程用于解析所述功能模块所在进程的配置文件;所述子进程用于基于所述功能模块所在进程的配置文件进行配置以启动所述子进程,并解析所述功能模块自身的配置文件,以基于所述功能模块自身的配置文件来激活所述功能模块,从而通过所述平台层来统一管理所述功能模块间的通信。在依据本专利技术实施例的基于ACE的通信框架中,所述功能模块所在进程的配置文件包括IP和端口 ;所述子进程在进行所述配置时采用所述IP和所述端口作为通信端口。在依据本专利技术实施例的基于ACE的通信框架中,所述功能模块自身的配置文件包括所述功能模块的ID和对应的动态库;所述子进程用于将所述动态库加载至它的进程空间来激活所述功能模块。本专利技术还提供了一种基于ACE的通信方法,包括步骤S110、守护进程解析功能模块所在进程的配置文件;S120、子进程基于所述功能模块所在进程的配置文件进行配置以启动所述子进程;S130、子进程解析所述功能模块自身的配置文件,以基于所述功能模块自身的配置文件来激活所述功能模块,从而通过所述平台层来统一管理所述功能模块间的通信。在依据本专利技术实施例的基于ACE的通信方法中, 当所述功能模块所在进程的配置文件包括IP和端口时,所述步骤S120中,所述子进程在进行所述配置时采用所述IP和所述端口作为通信端口。在依据本专利技术实施例的基于ACE的通信方法中,当所述功能模块自身的配置文件包括所述功能模块的ID和对应的动态库时,所述步骤S130中,所述子进程将所述动态库加载至它的进程空间来激活所述功能模块。本专利技术还提供了一种功能模块间的通信方法,包括步骤S210、源功能模块向平台层发送数据传送通知;S220、所述平台层查找目的功能模块所在的子进程以及所述子进程的通信端口 ;S230、基于所述目的功能模块所在的子进程的通信端口,所述源功能模块把数据直接传送到所述目的功能模块。在依据本专利技术实施例的功能模块间的通信方法中,在步骤S210中,所述源功能模块还向所述平台层发送所述目的功能模块的ID ;在步骤S220中,所述平台层根据所述目的功能模块的ID查找所述目的功能模块所在的子进程以及所述子进程的通信端口。在依据本专利技术实施例的功能模块间的通信方法中,所述平台层位于操作系统层与ACE层之间。在依据本专利技术实施例的功能模块间的通信方法中,所述方法在所述步骤S210之前还包括步骤S201、所述平台解析功能模块所在进程的配置文件;并基于所述功能模块所在进程的配置文件分别配置所述功能模块对应的子进程以启动所述子进程;所述子进程解析所述功能模块自身的配置文件,以激活所述功能模块。本专利技术产生的有益效果是因为平台层并不直接参与功能模块间的数据交互,平台层只是对各功能模块的进程的进行统一配置,使得功能模块间按照统一的通信端口进行点对点的直接数据交互,这样避免了使用对存储空间和处理速度要求较高的中间服务器。另外,因为平台层统一生成和管理功能模块的子进程,功能模块只需要关心其特有功能即可,不需要关心彼此之间是如何进行数据交互的,因此简化了功能模块的编码。同时,因为功能模块间通信统一,还避免了因代码撰写差异而导致的通信故障率增加,并且简化了调试、测试、维护以及故障定位过程。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中图1示出了依据本专利技术实施例的基于ACE的通信框架的结构示意图;图2示出了依据本专利技术实施例的图1中的平台层的逻辑框图;图3示出了采用上述通信框架实施依据本专利技术实施例的基于ACE的通信方法的流程图;图4示出了依据本专利技术实施例的一种功能模块间的通信方法的流程图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。图1示出了依据本专利技术实施例的基于ACE的通信框架的结构示意图,如图1所示,该通信框架由底层向上依次包括操作系统层、ACE层、平台层、以及应用层。其中,上述操作系统层包括但不限于Windows、Linux以及Unix。应用层包括功能模块的集合,该功能模块间的数据交互至少部分通过ACE层,以实现跨操作系统的数据通信。该功能模块间的数据交互至少部分通过平台层,从而可通过该平台层来统一管理各功能模块间的通信,以使得功能模块只需要关心其自身特有功能的实施,而不需要关心功能模块间是如何进行数据交互的。具体而言,功能模块可能位于同一个程序段中,也有可能位于不同的程序段中。而上述程序段可能装载在不同的终端上,也有可能装载在同一终端上。其中,上述终端可能具有不同的操作系统。在实施上述程序段本文档来自技高网...
【技术保护点】
一种基于ACE的通信框架,其特征在于,由底层向上依次包括:操作系统层、ACE层、平台层、以及应用层;其中,所述应用层包括功能模块的集合;所述平台层包括守护进程和子进程;其中,所述守护进程用于解析所述功能模块所在进程的配置文件;所述子进程用于基于所述功能模块所在进程的配置文件进行配置以启动所述子进程,并解析所述功能模块自身的配置文件,以基于所述功能模块自身的配置文件来激活所述功能模块,从而通过所述平台层来统一管理所述功能模块间的通信。
【技术特征摘要】
1.一种基于ACE的通信框架,其特征在于,由底层向上依次包括操作系统层、ACE层、平台层、以及应用层;其中, 所述应用层包括功能模块的集合; 所述平台层包括守护进程和子进程;其中,所述守护进程用于解析所述功能模块所在进程的配置文件;所述子进程用于基于所述功能模块所在进程的配置文件进行配置以启动所述子进程,并解析所述功能模块自身的配置文件,以基于所述功能模块自身的配置文件来激活所述功能模块,从而通过所述平台层来统一管理所述功能模块间的通信。2.根据权利要求1所述的基于ACE的通信框架,其特征在于, 所述功能模块所在进程的配置文件包括IP和端口 ; 所述子进程在进行所述配置时采用所述IP和所述端口作为通信端口。3.根据权利要求1或2所述的基于ACE的通信框架,其特征在于, 所述功能模块自身的配置文件包括所述功能模块的ID和对应的动态库; 所述子进程用于将所述动态库加载至它的进程空间来激活所述功能模块。4.一种基于ACE的通信方法,其特征在于,包括步骤 S110、守护进程解析功能模块所在进程的配置文件; S120、子进程基于所述功能模块所在进程的配置文件进行配置以启动所述子进程;S130、子进程解析所述功能模块自身的配置文件,以基于所述功能模块自身的配置文件来激活所述功能模块,从而通过所述平台层来统一管理所述功能模块间的通信。5.根据权利要求4所述的基于ACE的通信方法,其特征在于, 当所述功能模块所在进程的配置文件包...
【专利技术属性】
技术研发人员:罗辉,
申请(专利权)人:上海斐讯数据通信技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。