本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,更具體地,涉及一種功能接口調(diào)用響應(yīng)方法、裝置。
背景技術(shù):
互聯(lián)網(wǎng)的通訊協(xié)議,是指通信雙方對數(shù)據(jù)傳送控制的一種約定。約定中包括對數(shù)據(jù)格式,同步方式,傳送速度,傳送步驟,檢糾錯方式以及控制字符定義等問題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守,它也叫做鏈路控制規(guī)程,如HTTP(Hyper Text Transfer Protocol)超文本傳輸協(xié)議、SNMP(simple Network Management Protocol)簡單網(wǎng)絡(luò)管理協(xié)議、SWTP(Simple Mail Transfer Protocol,SMTP)簡單郵件傳送協(xié)議等等。而應(yīng)用層通訊協(xié)議定義了運(yùn)行在不同端系統(tǒng)上的應(yīng)用程序進(jìn)程如何相互傳遞報(bào)文。
Web上可用的每種資源,如HTML文檔、圖像、視頻片段、程序等均由URI(Uniform Resource Identifier)通用資源標(biāo)識符進(jìn)行定位,URI是一個用于標(biāo)識某一互聯(lián)網(wǎng)資源名稱的字符串,用來唯一的標(biāo)識一個資源,該種標(biāo)識允許用戶對任何(包括本地和互聯(lián)網(wǎng))的資源通過特定的協(xié)議進(jìn)行交互操作,URI可由確定語法和相關(guān)協(xié)議的方案所定義。URI一般包括路徑信息、文件名信息、標(biāo)識符信息等。
一般地,現(xiàn)有的技術(shù)方案是根據(jù)某一種消息協(xié)議的結(jié)構(gòu)去編寫URI解析和分發(fā)邏輯。例如HTTP命名方案的URI,如:HTTP://www.iet.org/rfc/rfc2399.txt,從其結(jié)構(gòu)上來講,其中開頭是HTTP是通訊協(xié)議類型,接下來的www.iet.org是網(wǎng)站域名,最后的/rfc/rfc2396.txt是網(wǎng)站文件的存放路徑和文件名信息。一般的做法是通過按照URI的結(jié)構(gòu)去解析和分發(fā)邏輯,以把消息協(xié)議分發(fā)到對應(yīng)的文件或者處理函數(shù)。
隨著近年來計(jì)算機(jī)技術(shù)的快速發(fā)展,不同終端之間的通訊也愈發(fā)復(fù)雜,而位于不同層級之間的通訊協(xié)議種類也越來越多,采用現(xiàn)有的一般做法去逐條解析URI費(fèi)時費(fèi)力,不但錯誤率高,而且維護(hù)不便,更不能保證工作效率。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,本發(fā)明提出了一種功能接口調(diào)用響應(yīng)方法,其提供了對調(diào)用請求的數(shù)據(jù)包的解析機(jī)制,其能夠兼容各種類型的通訊協(xié)議。
第一方面,本發(fā)明提供了一種功能接口調(diào)用響應(yīng)方法,包括如下步驟:
接收包含資源定位信息的特定協(xié)議類型的調(diào)用請求;
調(diào)用解碼機(jī)接口,通過該解碼機(jī)中與該特定協(xié)議類型相匹配的解碼器函數(shù)對所述調(diào)用請求的數(shù)據(jù)包進(jìn)行解碼后,獲取其中的資源定位信息的通用消息標(biāo)識符;
調(diào)用分發(fā)機(jī)接口,通過該分發(fā)機(jī)調(diào)用并運(yùn)行與所述通用消息標(biāo)識符相對應(yīng)的功能接口,獲取該功能接口的執(zhí)行結(jié)果消息;
響應(yīng)于所述調(diào)用請求而反饋包含所述執(zhí)行結(jié)果消息的報(bào)文。
具體地,所述解碼機(jī)包括用于提供所述解碼機(jī)接口的接口函數(shù)和用于解碼的多個解碼器函數(shù),所述的接口函數(shù)用于調(diào)用與所述特定協(xié)議類型相匹配的解碼器函數(shù),所述解碼器函數(shù)用于對包含特定協(xié)議類型的調(diào)用請求的數(shù)據(jù)包進(jìn)行解碼。
具體地,所述調(diào)用解碼機(jī)接口的過程包括如下步驟:
調(diào)用解碼機(jī)接口以根據(jù)所述特定協(xié)議類型確定相應(yīng)的解碼器函數(shù);
調(diào)用該解碼器函數(shù)對該數(shù)據(jù)包進(jìn)行解碼,獲得解碼結(jié)果;
從所述數(shù)據(jù)包中提取所述資源定位信息;
轉(zhuǎn)換獲取所述資源定位信息中的通用消息標(biāo)識符。
進(jìn)一步地,從所述資源定位信息中轉(zhuǎn)換獲取的通用消息標(biāo)識符為數(shù)字格式。
具體地,所述通用消息標(biāo)識符被注解于所述資源定位信息中,所述分發(fā)機(jī)用于確定所述通用消息標(biāo)識符與所述功能接口的方法函數(shù)的對應(yīng)關(guān)系,以為所述通用消息標(biāo)識符調(diào)用其相應(yīng)的功能接口。
具體地,所述資源定位信息包括通訊協(xié)議信息、服務(wù)器名稱信息、路徑信息和命名信息,所述解碼機(jī)接口通過提取所述命名信息從其與通用消息標(biāo)識符中確定要獲取的通用消息標(biāo)識符。
進(jìn)一步地,所述路徑信息包含所述功能接口的資源位置目錄。
進(jìn)一步地,所述功能接口以預(yù)編程封裝后的方法函數(shù)代碼存儲,所述功能接口的命名信息包含對應(yīng)于該功能接口的方法函數(shù)名,所述代碼為Java語言代碼,所述功能接口的資源位置目錄對應(yīng)于包含該功能接口方法函數(shù)的Java類所在的Java包的包路徑。
第二方面,本發(fā)明提供了一種功能接口調(diào)用響應(yīng)裝置,該功能接口調(diào)用響應(yīng)裝置具有實(shí)現(xiàn)上述第一方面中功能接口調(diào)用響應(yīng)方法行為的功能。所述功能可以通過硬件實(shí)現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊。該功能接口調(diào)用響應(yīng)裝置包括如下各模塊:
接收模塊,用于接收包含資源定位信息的特定協(xié)議類型的調(diào)用請求;
解碼模塊,用于調(diào)用解碼機(jī)接口,通過該解碼機(jī)中與該特定協(xié)議類型相匹配的解碼器函數(shù)對所述調(diào)用請求的數(shù)據(jù)包進(jìn)行解碼后,獲取其中的資源定位信息的通用消息標(biāo)識符;
分發(fā)模塊,用于調(diào)用分發(fā)機(jī)接口,通過該分發(fā)機(jī)調(diào)用并運(yùn)行與所述通用消息標(biāo)識符相對應(yīng)的功能接口,獲取該功能接口的執(zhí)行結(jié)果消息。
反饋模塊,用于響應(yīng)于所述調(diào)用請求而反饋包含所述執(zhí)行結(jié)果消息的報(bào)文。
本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)存儲介質(zhì),用于儲存為上述功能接口調(diào)用響應(yīng)裝置所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面為功能接口調(diào)用響應(yīng)裝置所設(shè)計(jì)的程序。
相對于現(xiàn)有技術(shù),本發(fā)明提供的方案,本機(jī)在接收到包含資源定位信息的特定協(xié)議類型的調(diào)用請求后,首先通過解碼機(jī)對其解碼,然后通過分發(fā)機(jī)分發(fā),在獲得執(zhí)行結(jié)果后反饋報(bào)文。一方面通過設(shè)計(jì)解碼機(jī)可以對所有類型的協(xié)議兼容處理,而解碼機(jī)只需根據(jù)特定協(xié)議類型信息就可以確定相關(guān)的解碼器函數(shù)從而高效的對請求數(shù)據(jù)包進(jìn)行解碼,另一方面,本發(fā)明設(shè)計(jì)了分發(fā)機(jī),其根據(jù)解碼后獲取的通用消息標(biāo)識符即可找到對應(yīng)的功能接口,并獲取該功能接口的執(zhí)行結(jié)果信息,從而建立了通用消息標(biāo)識符與對應(yīng)的功能接口的對應(yīng)關(guān)系,從而使得整個執(zhí)行過程快捷高效,同時也便于維護(hù)。另外,本發(fā)明建立的可重復(fù)使用的解碼機(jī)也便于維護(hù),避免了程序開發(fā)過程中的重復(fù)勞動,顯著提高工作效率。
本發(fā)明的這些方面或其他方面在以下實(shí)施例的描述中會更加簡明易懂。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了根據(jù)本發(fā)明一個實(shí)施例的功能接口調(diào)用響應(yīng)流程圖。
圖2示出了根據(jù)本發(fā)明一個實(shí)施例的功能接口調(diào)用響應(yīng)方法流程圖。
圖3示出了根據(jù)本發(fā)明一個實(shí)施例的所述調(diào)用解碼機(jī)接口的過程流程圖。
圖4示出了根據(jù)本發(fā)明一個實(shí)施例的功能接口調(diào)用響應(yīng)裝置框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
在本發(fā)明的說明書和權(quán)利要求書及上述附圖中的描述的一些流程中,包含了按照特定順序出現(xiàn)的多個操作,但是應(yīng)該清楚了解,這些操作可以不按照其在本文中出現(xiàn)的順序來執(zhí)行或并行執(zhí)行,操作的序號如101、102等,僅僅是用于區(qū)分開各個不同的操作,序號本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或并行執(zhí)行。需要說明的是,本文中的“第一”、“第二”等描述,是用于區(qū)分不同的消息、設(shè)備、模塊等,不代表先后順序,也不限定“第一”和“第二”是不同的類型。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明所述的“資源定位信息”一般是指能夠定位資源位置的通訊協(xié)議,一般是指URI(Uniform Resource Identifier),即通用資源標(biāo)識符,其能夠用來唯一的標(biāo)識一個資源,更具體地,該URI可以是URL(Uniform Resource Locator,)或URN(Uniform Resource Name),其中URL是從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址,其用來指示路徑,URN用來指示具體文件名??偠灾?,URI對資源的定位是唯一的。
本發(fā)明所述的“特定協(xié)議類型”為互聯(lián)網(wǎng)通用協(xié)議任意類型或自定義協(xié)議類型,每種協(xié)議類型均有一相對應(yīng)的解碼器函數(shù)與之對應(yīng)。具體地,例如HTTP(HyperText Transfer Protocol)超文本傳輸協(xié)議、SNMP(simple Network Management Protocol)簡單網(wǎng)絡(luò)管理協(xié)議、SWTP(Simple Mail Transfer Protocol,SMTP)簡單郵件傳送協(xié)議等,在本發(fā)明中,對應(yīng)傳統(tǒng)常用的通訊協(xié)議都設(shè)計(jì)了專門的解碼器函數(shù),每個解碼器函數(shù)都對應(yīng)的解析特定類型的資源定位信息,另外在一些實(shí)施例中,所述通訊協(xié)議也包括其他用戶自定義的協(xié)議,本發(fā)明也設(shè)計(jì)了對其他協(xié)議的解碼器函數(shù)。
本發(fā)明所述的“解碼機(jī)”用于對調(diào)用請求的數(shù)據(jù)包進(jìn)行解碼。其包括用于提供所述接口的接口函數(shù)和用于解碼的多個解碼器函數(shù),所述的接口函數(shù)用于調(diào)用與所述特定協(xié)議類型相匹配的解碼器函數(shù),所述解碼器函數(shù)用于對包含特定協(xié)議類型的調(diào)用請求的數(shù)據(jù)包進(jìn)行解碼。本領(lǐng)域內(nèi)技術(shù)人員能夠理解,本發(fā)明所述的解碼機(jī)并非是一種實(shí)體存在的硬件設(shè)備,而是起到被封裝為一體的虛擬機(jī)器,其輸入接口為調(diào)用請求的數(shù)據(jù)包,輸出接口輸出從該數(shù)據(jù)包中提取出來的通用資源標(biāo)識符。在其中一個實(shí)施例中,該解碼機(jī)包括用于提供所述解碼機(jī)接口的接口函數(shù)和多個用于解碼的解碼器函數(shù),當(dāng)外部傳入數(shù)據(jù)包后,首先傳輸?shù)浇獯a機(jī)接口,然后解碼機(jī)接口調(diào)用對應(yīng)所述特定協(xié)議類型的解碼器函數(shù)對數(shù)據(jù)包進(jìn)行解析以獲得數(shù)據(jù)包中通用消息標(biāo)識符。
類似于上述“解碼機(jī)”,本發(fā)明所述的“分發(fā)機(jī)”的輸入接口為通用消息標(biāo)識符,其內(nèi)部包括提供所述分發(fā)機(jī)接口的調(diào)度函數(shù),該調(diào)度函數(shù)根據(jù)通用消息標(biāo)識符調(diào)用與該通用消息標(biāo)識符對應(yīng)的函數(shù)。
本發(fā)明所述的“數(shù)字格式”用于表征通用消息標(biāo)識符,一般情況下,其僅僅為與特定資源定位信息相匹配數(shù)字字符串文本,而一般不能直接在計(jì)算機(jī)中運(yùn)算。
參見圖2,本發(fā)明提供一種功能接口調(diào)用響應(yīng)方法,包括如下步驟:
S101,接收包含資源定位信息的特定協(xié)議類型的調(diào)用請求。
所述特定協(xié)議類型為互聯(lián)網(wǎng)通用協(xié)議任意類型或自定義協(xié)議類型,每種協(xié)議類型均有一相對應(yīng)的解碼器函數(shù)與之對應(yīng)。
所述的特定協(xié)議為互聯(lián)網(wǎng)通用協(xié)議,例如在一個實(shí)施例中采用了HTTP協(xié)議,用戶在客戶端在瀏覽器中輸入地址信息(地址信息包括HTTP協(xié)議),用協(xié)議請求頁面,而瀏覽器在客戶端主要工作包括三步:
(1)首先從地址信息中解析出協(xié)議名、主機(jī)名、端口、對象路徑等部分,例如對于地址http://localhost:8080/simple.htm的解析結(jié)果為,
協(xié)議名:http
主機(jī)名:localhost
端口:8080
對象路徑:/simple.htm
(2)結(jié)合本機(jī)自己的信息,封裝成一個HTTP請求數(shù)據(jù)包,然后使用TCP協(xié)議連接到服務(wù)器的指定端口,并發(fā)送已經(jīng)封裝好的請求數(shù)據(jù)包。
(3)等待服務(wù)器返回?cái)?shù)據(jù),解析顯示數(shù)據(jù)并顯示出來。
結(jié)合上述實(shí)施例,本發(fā)明核心在于設(shè)計(jì)通用的解碼機(jī)和分發(fā)機(jī),以適用于解析所有類型的含資源定位信息的特定協(xié)議類型的調(diào)用請求數(shù)據(jù)包。
本發(fā)明所能解析的請求數(shù)據(jù)包將不僅僅限制于客戶端的通訊協(xié)議,還包括服務(wù)器用戶自定義的通訊協(xié)議,例如在下位機(jī)和上位機(jī)的傳輸開發(fā)中,一般用到物理層的自定義的通訊協(xié)議,如中央處理芯片與外部的傳感器的通訊協(xié)議,自定義通信協(xié)議包括有:幀頭、地址信息、數(shù)據(jù)類型、數(shù)據(jù)長度、數(shù)據(jù)塊、校驗(yàn)碼、幀尾,用戶自定義的協(xié)議解析邏輯代碼也可封裝于本發(fā)明所述的解碼機(jī)內(nèi)。
S102,調(diào)用解碼機(jī)接口,通過該解碼機(jī)中與該特定協(xié)議類型相匹配的解碼器函數(shù)對所述調(diào)用請求的數(shù)據(jù)包進(jìn)行解碼后,獲取其中的資源定位信息的通用消息標(biāo)識符。
具體地,所述解碼機(jī)包括用于提供所述解碼機(jī)接口的接口函數(shù)和用于解碼的多個解碼器函數(shù),所述的接口函數(shù)用于調(diào)用與所述特定協(xié)議類型相匹配的解碼器函數(shù),所述解碼器函數(shù)用于對包含特定協(xié)議類型的調(diào)用請求的數(shù)據(jù)包進(jìn)行解碼。在本發(fā)明的一個實(shí)施例中,當(dāng)外部傳入請求數(shù)據(jù)包后,該數(shù)據(jù)包首先傳輸?shù)浇獯a機(jī)接口,然后解碼機(jī)接口調(diào)用對應(yīng)所述特定協(xié)議類型的解碼器函數(shù)對數(shù)據(jù)包進(jìn)行解析以獲得數(shù)據(jù)包中通用消息標(biāo)識符,例如當(dāng)請求數(shù)據(jù)包的協(xié)議名為HTTP協(xié)議時,則所述解碼機(jī)接口就將該請求數(shù)據(jù)包發(fā)送至對應(yīng)HTTP協(xié)議的解碼器函數(shù)進(jìn)行處理;當(dāng)請求數(shù)據(jù)包的協(xié)議名為SWTP協(xié)議時,則所述解碼機(jī)接口就將請求數(shù)據(jù)包發(fā)送至對應(yīng)SWTP協(xié)議的解碼器函數(shù)進(jìn)行處理。在一個實(shí)施例中,本發(fā)明的解碼器也并非集合所有類型通訊協(xié)議的解碼器函數(shù),而是根據(jù)運(yùn)行環(huán)境不同而分別封裝成不同的解碼機(jī),例如根據(jù)層的不同而分別設(shè)計(jì)物理層解碼機(jī)和應(yīng)用層解碼機(jī)等,當(dāng)然也不排除本發(fā)明所述的解碼機(jī)為用戶提供針對一些自定義的通訊協(xié)議的自定義解碼函數(shù)的接口。
參見圖3,所述調(diào)用解碼機(jī)接口的過程包括如下步驟:
S201,調(diào)用解碼機(jī)接口以根據(jù)所述特定協(xié)議類型確定相應(yīng)的解碼器函數(shù);在本發(fā)明一個實(shí)施例中,所述解碼機(jī)接口根據(jù)特定協(xié)議類型確定相應(yīng)的解碼器函數(shù),即,如果請求數(shù)據(jù)包包括HTTP協(xié)議,則調(diào)用對應(yīng)HTTP協(xié)議的解碼器函數(shù)去解析該請求數(shù)據(jù)包。在一個實(shí)施例中,解碼機(jī)接口將參數(shù)傳輸至解碼器函數(shù),繼而通過解碼器函數(shù)提取其中的通用消息標(biāo)識符。
S202,調(diào)用該解碼器函數(shù)對該數(shù)據(jù)包進(jìn)行解碼,獲得解碼結(jié)果;所述解碼器函數(shù)對數(shù)據(jù)包進(jìn)行解析。例如在一個實(shí)施例中,開發(fā)人員設(shè)計(jì)了unmarshal()函數(shù)用于解析HTTP協(xié)議的請求數(shù)據(jù)包。
S203,從所述數(shù)據(jù)包中提取所述資源定位信息;例如,在本發(fā)明一個實(shí)施例中,開發(fā)人員設(shè)計(jì)了getUri()函數(shù)其主要用于提取所述資源定位信息。
S204,轉(zhuǎn)換獲取所述資源定位信息中的通用消息標(biāo)識符。在所述解碼接的設(shè)計(jì)過程中,也可引用現(xiàn)有的Java函數(shù),在本發(fā)明一個實(shí)施例中,采用用戶自定義的轉(zhuǎn)換函數(shù)對數(shù)據(jù)進(jìn)行轉(zhuǎn)換;在另一個實(shí)施例中,本發(fā)明采用Java開發(fā),其采用java.lang.String.valueOf(double),String.valueOf(double)是string類中的一個取值的函數(shù),用于轉(zhuǎn)換變量從而生成數(shù)字格式的字符串,而該轉(zhuǎn)換后的字符串為數(shù)字格式,而一般不能夠直接在計(jì)算機(jī)中運(yùn)算。
在本發(fā)明一個優(yōu)選實(shí)施例中,開發(fā)人員設(shè)計(jì)的解碼機(jī)和分發(fā)機(jī)代碼如下,
public String parse(Unpack packet){
//解碼協(xié)議獲取URI
YYProtoPacket protoPacket=new YYProtopacket();
protoPacket.unmarshal(packet);
int uri=protoPacket.getheader().getUri();
return String.valueOf(uri);
}
其中parse()函數(shù)為支持解碼機(jī)接口的接口函數(shù),其用于根據(jù)特定協(xié)議類型調(diào)用對應(yīng)該特定協(xié)議類型的解碼器函數(shù);packet為調(diào)用請求數(shù)據(jù)包,同時其在本實(shí)施例中也作為parse()函數(shù)的參數(shù);protoPacket是初始化結(jié)構(gòu)體變量,YYProtopacket()則是開發(fā)人員設(shè)計(jì)的對應(yīng)特定通訊協(xié)議的解碼器函數(shù)結(jié)構(gòu)體;unmarshal()為被解碼機(jī)接口調(diào)用的解碼器函數(shù),其參數(shù)為數(shù)據(jù)包packet;uri為自定義的整型變量,其用于標(biāo)識URI的通用消息標(biāo)識符的原始格式;而getheader()則是通常表示獲取通用消息標(biāo)識符的位置,getUri()則是開發(fā)人員設(shè)計(jì)的用于獲取通用消息標(biāo)識符的函數(shù),最后通過傳輸uri參數(shù)給String.valueOf()而將通用消息標(biāo)識符轉(zhuǎn)化為數(shù)字格式。
優(yōu)選地,從所述資源定位信息中轉(zhuǎn)換獲取的通用消息標(biāo)識符為數(shù)字格式。當(dāng)然不僅限制于轉(zhuǎn)化成數(shù)字格式字符,也可能是其他字母、符號等形式。
S103,調(diào)用分發(fā)機(jī)接口,通過該分發(fā)機(jī)調(diào)用并運(yùn)行與所述通用消息標(biāo)識符相對應(yīng)的功能接口,獲取該功能接口的執(zhí)行結(jié)果消息。
所述通用消息標(biāo)識符被注解于所述資源定位信息中,所述分發(fā)機(jī)用于確定所述通用消息標(biāo)識符與所述功能接口的方法函數(shù)的對應(yīng)關(guān)系,以為所述通用消息標(biāo)識符調(diào)用其相應(yīng)的功能接口。
@Dispatch(uri=15001,max=3410,min=23)
Public void addDemo(ReqGift gift)throws Exception
{
//業(yè)務(wù)處理邏輯
}
在該實(shí)施例中,Dispatch()函數(shù)為提供分發(fā)機(jī)接口的調(diào)度函數(shù),通過注解操作,資源定位信息Uri被注解為“15001”的通用消息標(biāo)識符,以調(diào)用與該通用消息標(biāo)識符對應(yīng)的函數(shù)。
S104,響應(yīng)于所述調(diào)用請求而反饋包含所述執(zhí)行結(jié)果消息的報(bào)文。
當(dāng)分發(fā)機(jī)確定好所述通用消息標(biāo)識符與所述功能接口的方法函數(shù)的對應(yīng)關(guān)系后,在數(shù)據(jù)包傳遞過來時,將自動調(diào)用解碼機(jī)接口和分發(fā)機(jī)接口,從而快速的解析數(shù)據(jù)包,而獲得其中的通用消息標(biāo)識符,從而通過通用消息標(biāo)志號和函數(shù)的對應(yīng)關(guān)系自動調(diào)用函數(shù)而取得執(zhí)行結(jié)果,進(jìn)而反饋該執(zhí)行結(jié)果消息的報(bào)文。例如HTTP響應(yīng)報(bào)文,包括狀態(tài)行、響應(yīng)頭和響應(yīng)體三部分,結(jié)果數(shù)據(jù)包含于響應(yīng)體中。
在本發(fā)明的另一個實(shí)施例中,所述資源定位信息包括通訊協(xié)議信息、服務(wù)器名稱信息、路徑信息和命名信息,所述解碼機(jī)接口通過提取所述命名信息確定要獲取的通用消息標(biāo)識符。在該實(shí)施例中,所述通用消息標(biāo)識符被注釋于所述資源定位信息中,然后在運(yùn)行過程中通過掃描的方式掃描特定的通用消息標(biāo)識號,然后按照開發(fā)者預(yù)設(shè)的通用消息標(biāo)識符和函數(shù)的對應(yīng)關(guān)系調(diào)用相關(guān)函數(shù)。例如在資源定位信息中注釋了“hello”,則在該資源定位信息的請求數(shù)據(jù)包到來時,則自動的掃描“hello”,繼而執(zhí)行對應(yīng)于該“hello”通用信息標(biāo)識符的函數(shù)。
所述路徑信息包含所述功能接口的資源位置目錄,所述功能接口以預(yù)編程封裝后的方法函數(shù)代碼存儲,所述功能接口的命名信息包含對應(yīng)于該功能接口的方法函數(shù)名,所述代碼為Java語言代碼,所述功能接口的資源位置目錄對應(yīng)于包含該功能接口方法函數(shù)的Java類所在的Java包的包路徑。在本發(fā)明另一個實(shí)施例中,通用消息標(biāo)識符和命名信息相對應(yīng),即通用消息標(biāo)識符也可以用來標(biāo)識方法函數(shù)。
在本實(shí)施例中,功能接口為Java語言方法函數(shù)的形式,在其他實(shí)施例中,功能接口也可以是其他計(jì)算機(jī)程序語言的方法函數(shù)形式,或者是任意的可執(zhí)行文件(包括exe、bat、htm、bmp等后綴的可執(zhí)行文件)。
第二方面,本發(fā)明還提供了一種功能接口調(diào)用響應(yīng)裝置,參見圖4,包括:
接收模塊101,用于接收包含資源定位信息的特定協(xié)議類型的調(diào)用請求。
解碼模塊102,用于調(diào)用解碼機(jī)接口,通過該解碼機(jī)中與該特定協(xié)議類型相匹配的解碼器函數(shù)對所述調(diào)用請求的數(shù)據(jù)包進(jìn)行解碼后,獲取其中的資源定位信息的通用消息標(biāo)識符。
分發(fā)模塊103,用于調(diào)用分發(fā)機(jī)接口,通過該分發(fā)機(jī)調(diào)用并運(yùn)行與所述通用消息標(biāo)識符相對應(yīng)的功能接口,獲取該功能接口的執(zhí)行結(jié)果消息。
反饋模塊104,用于響應(yīng)于所述調(diào)用請求而反饋包含所述執(zhí)行結(jié)果消息的報(bào)文。
在本申請所提供的實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(ROM,Read Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁盤或光盤等。
以上對本發(fā)明所提供的功能接口調(diào)用響應(yīng)方法、裝置進(jìn)行了詳細(xì)介紹,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。