括反應器單元和接收器單元,當ACE服務線程模塊的接收器單元接收ACE客戶端模塊發(fā)送的業(yè)務請求消息后,可以根據(jù)該業(yè)務請求消息創(chuàng)建事件處理器單元,在ACE服務線程模塊的反應器單元則可以根據(jù)業(yè)務請求消息進行處理得到來源于不同事件源的事件后,在反應器單元中進行注冊的事件處理器單元可以對反應器單元分配的事件進行處理,并能夠根據(jù)處理結果生成業(yè)務響應消息,將業(yè)務響應消息發(fā)送至ACE客戶端。由此可知,該結構簡單的進程間通信框架避免了多個功能模塊之間的數(shù)據(jù)交互,使得傳輸更為高效。此外,由于該進程間通信方法基于跨平臺的、具有自適應網(wǎng)絡環(huán)境的ACE網(wǎng)絡技術,從而解決了進程間通信的跨平臺應用難題,從而使該進程間通信應用更為廣泛。
[0043]為便于理解,下面對本發(fā)明實施例中的基于ACE的進程間通信系統(tǒng)進行描述,請參閱圖1,基于進程1和進程2,本發(fā)明實施例中基于ACE的進程間通信系統(tǒng)一個實施例包括:
[0044]自適配通信環(huán)境ACE客戶端模塊101和ACE服務線程模塊102;
[0045]其中,ACE服務線程模塊包括接收器單元1021、事件處理器單元1022和反應器單元1023,事件處理器單元1022由ACE服務線程模塊102接收到ACE客戶端101發(fā)送的業(yè)務請求消息后創(chuàng)建,事件處理器單元1022被創(chuàng)建之后可以在反應器單元1023進行注冊;
[0046]接收器單元1021可以用于接收ACE客戶端101發(fā)送的業(yè)務請求消息;
[0047]反應器單元1023可以用于對接收器單元1021接收的業(yè)務請求消息進行處理得到來源于不同事件源的事件,并將事件分配給事件處理器單元1022;
[0048]事件處理器單元1022可以用于對反應器單元1023分配的事件進行處理,并根據(jù)處理結果生成業(yè)務響應消息,將業(yè)務響應消息發(fā)送至ACE客戶端101。
[0049]具體而言,上述ACE客戶端模塊101和ACE服務線程模塊102可以位于同一個應用程序中,也可以位于不同的應用程序中,而上述應用程序可以裝載于同一個終端上,也可以裝載于不同的終端上,且上述終端可以是同一個操作系統(tǒng),也可以是不同的操作系統(tǒng),諸如Windows、Linux以及Unix之類,具體此處均不做限定。
[0050]需要說明的是,在實際應用中,該系統(tǒng)可以包括進程1和進程2,其中進程1可以包括外部通信模塊和ACE客戶端模塊101,進程2可以包括ACE線程模塊102和業(yè)務處理模塊,SP該系統(tǒng)從上層到下層可以為外部通信模塊、ACE客戶端模塊101、ACE服務線程模塊102以及業(yè)務處理模塊,其中外部通信模塊和業(yè)務處理模塊分別進行消息的轉換以及業(yè)務的處理,而主要的進程間通信,即數(shù)據(jù)交互主要發(fā)生在ACE客戶端模塊101與ACE服務線程模塊102之間。由于該進程間通信系統(tǒng)基于ACE網(wǎng)絡技術,因此,在ACE客戶端模塊101以及ACE服務線程模塊102中分別存在不同功能的類,可以提供完整的網(wǎng)絡化應用和組件,比如,ACE客戶端中101可以包含ACE_SOCK_Stream通信類,可以負責數(shù)據(jù)傳輸,ACE服務線程模塊102可以包含ACE_React0r反應器框架類,能夠允許事件驅動的應用對源于不同事件源的事件作出反應,以響應多種類型的基于1/0、定時器、信號和同步的事件,具體此處不做限定。
[0051]應用本發(fā)明實施例提供的系統(tǒng)的過程中,當ACE服務線程模塊102的接收器單元1021接收ACE客戶端模塊101發(fā)送的業(yè)務請求消息后,可以根據(jù)該業(yè)務請求消息創(chuàng)建事件處理器單元1022,當ACE服務線程模塊102的反應器單元1023根據(jù)業(yè)務請求消息進行處理得到來源于不同事件源的事件后,在反應器單元1023中進行注冊的事件處理器單元1022可以對反應器單元1023分配的事件進行處理,并能夠根據(jù)處理結果生成業(yè)務響應消息,再將業(yè)務響應消息發(fā)送至ACE客戶端101,完成ACE客戶端模塊101與ACE服務線程模塊10 2之間的數(shù)據(jù)交互。由于本發(fā)明實施例僅采取ACE客戶端模塊101和ACE服務線程模塊102兩個模塊進行進程間通信,從而簡化了該進程間通信系統(tǒng)的結構,也避免了多個功能模塊之間的數(shù)據(jù)交互,使得傳輸更為高效。此外,該進程間通信方法基于跨平臺的、具有自適應網(wǎng)絡環(huán)境的ACE網(wǎng)絡技術,可以解決進程間通信的跨平臺應用難題,從而使該進程間通信應用更為廣泛。
[0052]上面從模塊化功能實體的角度對本發(fā)明實施例中的基于ACE的進程間通信系統(tǒng)進行了描述,下面對本發(fā)明實施例中的基于ACE的進程間通信方法的具體流程進行描述,請參閱圖2,本發(fā)明實施例中基于ACE的進程間通信方法的一個實施例包括:
[0053]201、ACE服務線程模塊的接收器單元接收ACE客戶端模塊發(fā)送的業(yè)務請求消息;
[0054]進程1中的ACE客戶端模塊接收用戶的業(yè)務請求后,可以調(diào)用ACE客戶端模塊中諸如ACE_SOCK_Connector連接建立類發(fā)起主動連接,并由諸如ACE_SOCK_Stream通信類將業(yè)務請求消息發(fā)送至進程2中的ACE服務線程模塊,ACE服務線程模塊中建有接收器單元,該接收器單元可以接收該業(yè)務請求消息。
[0055]可以理解的是,業(yè)務請求可以由用戶終端發(fā)送,例如語音對講請求、登錄請求,也可以由第三方服務器發(fā)送,具體此處不做限定。
[0056]202、ACE服務線程模塊根據(jù)業(yè)務請求消息創(chuàng)建事件處理器單元;
[0057]當ACE服務線程模塊中的接收器單元接收到業(yè)務請求消息后,可以根據(jù)該業(yè)務請求消息創(chuàng)建事件處理器單元。
[0058]本實施例中,ACE服務線程模塊根據(jù)業(yè)務請求信息創(chuàng)建事件處理器單元的具體方式可以為:
[0059]ACE服務線程模塊根據(jù)業(yè)務請求信息獲取目標區(qū)域的目標內(nèi)存空間;
[0060]ACE服務線程模塊將目標內(nèi)存空間創(chuàng)建為事件處理器單元。
[0061]即,ACE服務線程模塊接收到業(yè)務請求消息后,可以根據(jù)該業(yè)務請求消息中攜帶的事件的內(nèi)存大小,在進程間通信系統(tǒng)的目標區(qū)域中申請與上述事件的內(nèi)存大小匹配的目標內(nèi)存空間,并將該目標內(nèi)存空間設置為處理器單元。
[0062]需要說明的是,上面僅以一個例子說明了ACE服務線程模塊根據(jù)業(yè)務請求信息創(chuàng)建事件處理器單元的具體方式,在實際應用中,ACE服務線程模塊還可以采用其他的創(chuàng)建方式進行結合或單獨使用,只要ACE服務線程模塊在接收到業(yè)務請求信息后創(chuàng)建事件處理器單元即可,具體的創(chuàng)建方式此處不做限定。
[0063 ] 203、事件處理器單元在反應器單元中進行注冊;
[0064]事件處理器單元被創(chuàng)建后,可以在反應器單元中進行注冊,該反應器單元是ACE服務線程模塊固有的單元。
[0065]具體地,事件處理器單元對反應器單元中事件處理器的指針進行賦值,即通知反應器單元可以進行處理的事件的類型以及處理該事件的事件處理器的指針,以使得反應器單元可以在內(nèi)部維護諸如成員對象等類型的表,反應器單元內(nèi)部記錄一個事件處理器單元的特定事件的相關回調(diào)方法,即相應的映射關系,一旦發(fā)生該特定事件,反應器單元可以將該特定事件,即將不同事件類型的事件與事件處理器單元聯(lián)系起來,該事件類型即為來源于不同事件源的事件。
[0066]204、反應器單元對業(yè)務請求消息進行處理確定來源于不同事件源的事件;
[0067]本實施例中,反應器單元可以在ACE網(wǎng)絡技術中的事件多路分離接口上進行監(jiān)聽,并可以檢測來源于不同事件源的事件的發(fā)生,當檢測到事件的發(fā)生后,即當ACE服務線程模塊接收到業(yè)務請求消息后,反應器單元可以對業(yè)務請求消息進行處理確定來源于不同事件源的事件。
[0068]本實施例中,反應器單元對業(yè)務請求消息進行處理得到來源于不同事件源的事件的具體方式可以為:
[0069]反應器單元調(diào)用反應器框架類對業(yè)務請求消息進行解析;
[0070]反應器單元根據(jù)解析結果確定業(yè)務請求消息中來源于不同事件源的事件。
[0071]需要說明的是,上面僅以一個例子說明了反應器單元對業(yè)務請求消息進行處理確定來源于不同事件源的事件的具體方式,在實際應用中,反應器單元還可以采用其他的處理方式進行結合或單獨使用,只要反應器單元可以對業(yè)務請求信息進行處理確定來源于不同事件源的事件即可,具體處理方式此處不做限定。
[0072]205、反應器單元將事件分配給對應的事件處理器單元;
[0073]當反應器單元確定來源于不同事件源的事件后,可以創(chuàng)建ACE服務線程模塊中ACE_Event_Handler事件處理器框架類的子類,以處理事件處理器單元為之服務的事件類型,反應器單元通過回調(diào)一個事件對應的事件處理器的函數(shù),即對應的映射關系,可以將該來源于不同事件源的事件分配給對應的事件處理器單元。
[0074]需要說明的是,步驟204可以置于步驟201至步驟205之間,只要事件處理器單元可以將事件分配給對