CN103034545B - 基于ace的通信框架和方法、及功能模块间的通信方法 - Google Patents

基于ace的通信框架和方法、及功能模块间的通信方法 Download PDF

Info

Publication number
CN103034545B
CN103034545B CN201210529682.6A CN201210529682A CN103034545B CN 103034545 B CN103034545 B CN 103034545B CN 201210529682 A CN201210529682 A CN 201210529682A CN 103034545 B CN103034545 B CN 103034545B
Authority
CN
China
Prior art keywords
functional module
configuration file
ace
module
communication
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
CN201210529682.6A
Other languages
English (en)
Other versions
CN103034545A (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.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication Technology Co Ltd
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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201210529682.6A priority Critical patent/CN103034545B/zh
Publication of CN103034545A publication Critical patent/CN103034545A/zh
Application granted granted Critical
Publication of CN103034545B publication Critical patent/CN103034545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于ACE的通信框架和方法以及功能模块间的通信方法。该通信框架由底层向上依次包括:操作***层、ACE层、平台层和应用层。应用层包括功能模块的集合;平台层包括守护进程和子进程。守护进程解析功能模块所在进程的配置文件;子进程基于进程的配置文件进行配置以启动子进程,并解析功能模块的配置文件以激活功能模块,从而通过平台层来统一管理功能模块间的通信。因为平台层不直接参与功能模块间的数据交互,只统一生成子进程以及告知目的功能模块的通信端口,这样避免了使用对存储空间和处理速度要求较高的中间服务器。同时功能模块不需要关心彼此间是如何进行数据交互的,因此避免了因代码撰写差异而导致的通信故障率增加。<!--1-->

Description

基于ACE的通信框架和方法、及功能模块间的通信方法
技术领域
本发明涉及数据通信,尤其涉及一种基于ACE的通信方法和框架、及功能模块间的通信方法。
背景技术
在模块化的程序设计方法中,通常将一个较大的程序按功能分成若干个功能模块,每个功能模块是一个代码集,通过编写和调试可将多个功能模块组合构成程序段,即函数。在同一个程序内,每个功能模块不可能孤立运行,必须相互配合,因此功能模块间需要进行数据交互和相互调用。然而,不同的功能模块可能由不同的人员编写,人员间的程序编写水平和风格不同,易于造成功能模块间的通信故障率增加,从而导致程序无法执行其功能,以及还将导致调试、测试、维护的难度增大。当程序内的功能模块越多时,这些问题将更为严重。
进一步地,当需要进行数据交互的功能模块位于不同的程序内时,在实现应用程序之间数据交互的程序间通信过程中,如果应用程序装载在同一台终端中,它们之间只需一定的通道就能实现数据交互;然而,如果应用程序装载在不同的终端中,则要复杂得多。首先,程序之间要通过网络之间的协议才能实现;其次,不同的终端中可能装载不同的操作***,例如,有的终端采用Windows操作***,有的则采用UNIX/Linux操作***,由此,在实施上述应用程序的功能过程中,其进程间的通信需要跨操作***才能实现。
目前,业界通常采用JAVA和ACE(ADAPTIVECommunicationEnvironment)两种方法来实现跨操作***的进程间通信。其中,JAVA由于在处理二进制和大容量方面存在效率问题,因此在网管和应用服务器领域内,如果需要跨操作***,通常采用ACE。虽然采用ACE可以解决跨操作***通信的问题,但是因各进程可能位于不同的终端或操作***中,其代码的撰写风格和工具不统一,使得进程间的通信容易出现故障,而出现故障后调试和解决的难度较大。
另外,还有一种方法是采用中间服务器,例如MTC服务器(MachineTypeCommunicationsServer),通过该中间服务器来转发需要交互的数据,而程序之间彼此并不知晓该数据是如何传送的,彼此之间也不直接传送数据。这种方法虽然可以避开操作***,但是其对中间服务器的存储空间和处理速度要求较高,且处理方法更为复杂。
发明内容
本发明要解决的技术问题在于针对现有技术中功能模块间通信容易出现故障的缺陷,提供一种基于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层,以实现跨操作***的数据通信。该功能模块间的数据交互至少部分通过平台层,从而可通过该平台层来统一管理各功能模块间的通信,以使得功能模块只需要关心其自身特有功能的实施,而不需要关心功能模块间是如何进行数据交互的。
具体而言,功能模块可能位于同一个程序段中,也有可能位于不同的程序段中。而上述程序段可能装载在不同的终端上,也有可能装载在同一终端上。其中,上述终端可能具有不同的操作***。在实施上述程序段的过程中,可能多个程序段共用一个进程,也可能每个程序段对应一个进程,也可能一个程序段具有多个进程。
为此,可预先设置功能模块所在进程的配置文件,在该配置文件中设置进程的IP和端口(port)。例如,在第一种进程的配置文件中,配置进程的IP为172.16.161.249,端口为11000;该进程内包括两个功能模块,分别是功能模块“access”和功能模块“security”,其中“access”和“security”为功能模块的名称(name)。在这种配置文件中,一个进程内包括多个功能模块,从而实现了功能模块部署与代码分离,即不需要根据不同的部署重新编写代码,只需要相应修改配置文件即可。
在第二种进程的配置文件中,配置进程1的IP为172.16.161.249,port为11000;进程2的IP为172.16.161.249,port为12000。其中,进程1中只包括一个名称为“access”的功能模块;进程2中只包括一个名称为“security”的功能模块。
图2示出了依据本发明实施例的图1中的平台层的逻辑框图,如图2所示,平台层包括守护进程和子进程。其中,守护进程解析功能模块所在进程的配置文件;子进程基于功能模块所在进程的配置文件进行配置以启动该子进程,并解析功能模块自身的配置文件,以基于功能模块自身的配置文件来激活功能模块,从而通过平台层来统一管理功能模块间的通信。
图3示出了采用上述通信框架实施依据本发明实施例的基于ACE的通信方法的流程图,下面将按步骤描述该通信方法。
S110、守护进程解析功能模块所在进程的配置文件。具体而言,平台层中的守护进程通过解析功能模块所在进程的配置文件(简称为进程的配置文件),获得守护进程需要拉起的子进程的IP地址和端口,例如,通过解析上述的第二种进程的配置文件,获得需要拉起的子进程1的IP为172.16.161.249,端口为11000,子进程2的IP为172.16.161.249,端口为12000。解析完成后,将获得的进程的配置文件(包括IP和端口)、以及进程下的功能模块的名称传送至子进程。
S120、子进程基于功能模块所在进程的配置文件进行配置以启动子进程。具体而言,当进程的配置文件包括IP和端口时,子进程在进行上述配置过程中将该IP和端口作为通信端口。仍以上述的第二种进程的配置文件为例,此时根据该进程的配置文件配置的子进程1的IP为172.16.161.249,端口为11000,子进程2的IP为172.16.161.249,端口为12000。
S130、子进程解析功能模块自身的配置文件,以基于功能模块自身的配置文件来激活功能模块,从而通过平台层来统一管理功能模块间的通信。具体而言,当在步骤S120中启动或拉起子进程后,该子进程已从守护进程处获知它所包括的功能模块,因此功能模块自身的配置文件(简称为功能模块的配置文件)可只包括功能模块的名称、ID以及对应的动态库。例如,在功能模块的配置文件中,设置名称为“access”的功能模块的ID为1,对应的动态库为“libaccess”;设置名称为“security”的功能模块的ID为2,对应的动态库为“libsecurity”。应当注意的是,对于整个平台层而言,功能模块的ID是统一赋值,一个功能模块对应一个ID,各ID间没有重复或共用的情况发生。此时,子进程将动态库加载至它的进程空间即可激活该功能模块。例如,子进程1将动态库“libaccess”加载至它的进程空间后即可激活该功能模块“access”。由于通过平台层统一启动子进程和激活功能模块,因此可通过平台层实现统一管理功能模块间的通信。
为了进一步阐述上述基于ACE的通信框架和方法,图4示出了依据本发明实施例的一种功能模块间的通信方法,此时设置待传送数据的功能模块为源功能模块,接收数据的功能模块为目的功能模块,下面将按步骤描述这种把数据从源功能模块传送到目的功能模块的方法。
事先地,在步骤S201中,平台解析功能模块所在进程的配置文件;并基于功能模块所在进程的配置文件分别配置功能模块对应的子进程以启动子进程;子进程解析功能模块自身的配置文件,以激活功能模块。例如,可通过上述基于ACE的通信框架,采用上述基于ACE的通信方法来实施该步骤,此处部分或全部引用上述关于基于ACE的通信框架和通信方法的描述。该步骤一旦完成,后续的步骤中则可以使用所启动的子进程。
随后,在步骤S210中,源功能模块向平台层发送数据传送通知,告知平台准备发送数据的事件以及该事件中的目的功能模块。优选地,源功能模块还向平台层发送目的功能模块的ID。
步骤S220中,平台层查找目的功能模块所在的子进程以及该子进程的通信端口。其中,上述通信端口包括子进程的IP地址和端口。优选地,平台层根据接收的目的功能模块的ID查找目的功能模块所在的子进程以及子进程的通信端口。因为对于平台层而言,功能模块与其ID一一对应,因此通过ID查找功能模块的结果必然是唯一的。仍以第二种进程的配置文件为例,如果告知目的模拟功能模块的ID为2,则查找到该功能模块的名称为“security”,位于子进程2中,该子进程2的IP为172.16.161.249,端口为12000。采用该ID来进行查找的方法在确保查找精确的同时简化了查找过程。
S230、基于目的功能模块所在的子进程的通信端口,源功能模块把数据直接传送到目的功能模块。仍以步骤S220中的示例为例,平台层将目的功能模块的IP和端口告知源功能模块,源功能模块则直接将数据传送至具有上述IP和端口的子进程内的ID为2的目的功能模块处,从而完成了功能模块间的数据通信。
从以上可以看出,平台层并不直接参与功能模块间的数据交互,平台层只是对各功能模块所在的子进程进行统一配置,并告知源功能模块其目的功能模块所在的子进程以及该子进程所的通信端口。这样避免了使用对存储空间和处理速度要求较高的中间服务器。因为平台层统一生成和管理子进程,功能模块只需要关心其特有功能即可,不需要关心彼此之间是如何进行数据交互的,因此简化了功能模块的编码。与此同时,因为实现了功能模块间的统一通信,避免了因代码撰写差异而导致的通信故障率增加,并且简化了调试、测试、维护以及故障定位过程。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (6)

1.一种基于ACE的通信框架,其特征在于,由底层向上依次包括:操作***层、ACE层、平台层、以及应用层;其中,
所述应用层包括功能模块的集合,多个或一个所述功能模块设置在同一进程中;
所述平台层包括守护进程和子进程;其中,所述守护进程用于解析所述功能模块所在进程的配置文件;所述子进程用于基于所述功能模块所在进程的配置文件进行配置以启动所述子进程,并解析所述功能模块自身的配置文件,以基于所述功能模块自身的配置文件来激活所述功能模块,从而通过所述平台层来统一管理所述功能模块间的通信。
2.根据权利要求1所述的基于ACE的通信框架,其特征在于,
所述功能模块所在进程的配置文件包括IP和端口;
所述子进程在进行所述配置时采用所述IP和所述端口作为通信端口。
3.根据权利要求1或2所述的基于ACE的通信框架,其特征在于,
所述功能模块自身的配置文件包括所述功能模块的ID和对应的动态库;
所述子进程用于将所述动态库加载至它的进程空间来激活所述功能模块。
4.一种基于ACE的通信方法,其特征在于,包括步骤:
S110、守护进程解析功能模块所在进程的配置文件,获得所述守护进程需要拉起的子进程的IP地址和端口;
S120、子进程基于所述功能模块所在进程的配置文件进行配置以启动所述子进程;
S130、子进程解析所述功能模块自身的配置文件,以基于所述功能模块自身的配置文件来激活所述功能模块,从而通过平台层来统一管理所述功能模块间的通信。
5.根据权利要求4所述的基于ACE的通信方法,其特征在于,当所述功能模块所在进程的配置文件包括IP和端口时,所述步骤S120中,所述子进程在进行所述配置时采用所述IP和所述端口作为通信端口。
6.根据权利要求4或5所述的基于ACE的通信方法,其特征在于,当所述功能模块自身的配置文件包括所述功能模块的ID和对应的动态库时,所述步骤S130中,所述子进程将所述动态库加载至它的进程空间来激活所述功能模块。
CN201210529682.6A 2012-12-10 2012-12-10 基于ace的通信框架和方法、及功能模块间的通信方法 Active CN103034545B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210529682.6A CN103034545B (zh) 2012-12-10 2012-12-10 基于ace的通信框架和方法、及功能模块间的通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210529682.6A CN103034545B (zh) 2012-12-10 2012-12-10 基于ace的通信框架和方法、及功能模块间的通信方法

Publications (2)

Publication Number Publication Date
CN103034545A CN103034545A (zh) 2013-04-10
CN103034545B true CN103034545B (zh) 2016-08-03

Family

ID=48021468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210529682.6A Active CN103034545B (zh) 2012-12-10 2012-12-10 基于ace的通信框架和方法、及功能模块间的通信方法

Country Status (1)

Country Link
CN (1) CN103034545B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399541B (zh) * 2013-07-22 2016-04-06 苏州有色金属研究院有限公司 铝板带轧制工艺过程控制***的通讯方法
CN105468465A (zh) * 2015-12-28 2016-04-06 深圳市科漫达智能管理科技有限公司 一种基于ace的进程间通信***和方法
CN106815086B (zh) * 2017-01-13 2020-04-14 邦彦技术股份有限公司 一种基于龙芯平台的通信控制装置
CN111901677B (zh) * 2020-07-24 2022-08-02 海信视像科技股份有限公司 一种统一控制进程启动的方法及显示设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739300A (zh) * 2008-11-18 2010-06-16 中兴通讯股份有限公司 一种多媒体终端进程间通讯的方法和***
CN102137123A (zh) * 2010-01-25 2011-07-27 腾讯科技(北京)有限公司 实现移动终端上不同应用程序的进程之间通信的装置和方法
CN102722377A (zh) * 2012-06-28 2012-10-10 上海美琦浦悦通讯科技有限公司 基于ace框架的网络视频应用处理***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739300A (zh) * 2008-11-18 2010-06-16 中兴通讯股份有限公司 一种多媒体终端进程间通讯的方法和***
CN102137123A (zh) * 2010-01-25 2011-07-27 腾讯科技(北京)有限公司 实现移动终端上不同应用程序的进程之间通信的装置和方法
CN102722377A (zh) * 2012-06-28 2012-10-10 上海美琦浦悦通讯科技有限公司 基于ace框架的网络视频应用处理***

Also Published As

Publication number Publication date
CN103034545A (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
CN110389900B (zh) 一种分布式数据库集群测试方法、装置及存储介质
CN108763090B (zh) 测试环境部署方法、装置、计算机设备和存储介质
US11256539B2 (en) Task processing method, apparatus, and system based on distributed system
CN104536899A (zh) 一种基于智能集群的软件部署及其维护方法
CN107241315B (zh) 银行网关接口的接入方法、装置及计算机可读存储介质
CN103677858A (zh) 一种云环境中虚拟机软件管理的方法、***及设备
CN113220431B (zh) 跨云的分布式数据任务调度方法、设备及存储介质
CN103034545B (zh) 基于ace的通信框架和方法、及功能模块间的通信方法
CN114244717A (zh) 虚拟网卡资源的配置方法、装置、计算机设备及介质
CN111258913A (zh) 算法自动测试方法、装置、计算机***及可读存储介质
CN115328752B (zh) 一种用于Kubernetes控制面测试的集群模拟方法及***
CN106708573B (zh) 一种用于Hadoop集群自动安装的***及方法
CN109254765B (zh) 定时任务管理方法、装置、计算机设备及存储介质
CN112860282A (zh) 集群插件的升级方法、装置和服务器
US9832137B1 (en) Provisioning system and method for a distributed computing environment using a map reduce process
CN103077034A (zh) 混合虚拟化平台java应用迁移方法与***
WO2019117767A1 (en) Method, function manager and arrangement for handling function calls
CN112346980B (zh) 软件性能测试方法、***和可读存储介质
CN113658351A (zh) 一种产品生产的方法、装置、电子设备及存储介质
CN104951346A (zh) 一种用于嵌入式***的进程管理方法及***
CN108965403A (zh) 运维监控连接的建立方法及终端设备
CN111459510A (zh) 跨网络操作***的安装方法、装置、电子设备及介质
CN111767126A (zh) 分布式批量处理的***和方法
CN114697334B (zh) 一种编排任务的执行方法和装置
CN114257614B (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
PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20180313

Granted publication date: 20160803

PD01 Discharge of preservation of patent

Date of cancellation: 20210313

Granted publication date: 20160803

PD01 Discharge of preservation of patent
PP01 Preservation of patent right

Effective date of registration: 20210313

Granted publication date: 20160803

PP01 Preservation of patent right
PD01 Discharge of preservation of patent

Date of cancellation: 20240313

Granted publication date: 20160803

PD01 Discharge of preservation of patent