專利名稱:一種基于狀態(tài)機的協(xié)議構(gòu)造方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,為動態(tài)地生成網(wǎng)絡(luò)通信協(xié)議提供方法,為一種基于狀態(tài)機的協(xié)議構(gòu)造方法。
背景技術(shù):
網(wǎng)絡(luò)協(xié)議定義為計算機網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)交換而建立的規(guī)則、標(biāo)準(zhǔn)或約定的集合。網(wǎng)絡(luò)協(xié)議的構(gòu)造是基于具體應(yīng)用的需求和網(wǎng)絡(luò)的條件。目前廣泛應(yīng)用的協(xié)議是TCP/IP協(xié)議族,其中協(xié)議的構(gòu)造方法主要是根據(jù)需求手工設(shè)計并實現(xiàn)協(xié)議,采用靜態(tài)部署方式。這種方法針對某種特定的網(wǎng)絡(luò)和應(yīng)用,可以設(shè)計出高性能的協(xié)議,但是開發(fā)周期長、費用高、部署復(fù)雜,而且維護(hù)的費用也很昂貴。當(dāng)應(yīng)用需求發(fā)生變化時,協(xié)議無法動態(tài)地調(diào)整以適應(yīng)需求的擴展。
發(fā)明內(nèi)容
為了克服傳統(tǒng)協(xié)議構(gòu)造方法開發(fā)周期長、維護(hù)難度大的不足,本發(fā)明提供一種基于狀態(tài)機的協(xié)議構(gòu)造方法,該方法不僅簡化協(xié)議的構(gòu)造過程,而且提供一種通用的協(xié)議構(gòu)造及動態(tài)部署方法,可以讓協(xié)議動態(tài)地適應(yīng)應(yīng)用需求的變化。本發(fā)明的技術(shù)方案為一種基于狀態(tài)機的協(xié)議構(gòu)造方法,分析協(xié)議的語法、語義和時序,所述語法指數(shù)據(jù)與控制信息的結(jié)構(gòu)或格式,語義指需要發(fā)出何種控制信息,完成何種動作以及做出何種響應(yīng),時序指事件實現(xiàn)順序的詳細(xì)說明;將協(xié)議抽象為一組服務(wù)和狀態(tài),每一種服務(wù)對應(yīng)一個基本的網(wǎng)絡(luò)功能單元,每一種狀態(tài)對應(yīng)一個協(xié)議邏輯運行所處的階段,抽象出服務(wù)和狀態(tài)后,對協(xié)議的狀態(tài)變遷情況進(jìn)行分析,得到狀態(tài)變遷條件,并將狀態(tài)變遷條件抽象為信號,運用狀態(tài)機模型對協(xié)議進(jìn)行形式化描述,對于無狀態(tài)變遷的協(xié)議,使用一個統(tǒng)一的狀態(tài)機描述;對于存在狀態(tài)變化的協(xié)議,根據(jù)其規(guī)范標(biāo)準(zhǔn)進(jìn)行描述;對于構(gòu)造的新協(xié)議,根據(jù)其需求分析并構(gòu)建該協(xié)議所使用的基本數(shù)據(jù)和信息的結(jié)構(gòu),定義各個信息所需要完成的動作、做出的響應(yīng),以及各個狀態(tài)間的基本時序,從而對該協(xié)議進(jìn)行形式化描述;最后,根據(jù)描述的狀態(tài)機模型動態(tài)地構(gòu)造協(xié)議實例并控制其運行將協(xié)議的狀態(tài)機模型轉(zhuǎn)換為狀態(tài)轉(zhuǎn)移表。狀態(tài)轉(zhuǎn)移表包含四個屬性,分別為當(dāng)前狀態(tài)、輸入信號、跳轉(zhuǎn)狀態(tài)和執(zhí)行的服務(wù),每一個狀態(tài)轉(zhuǎn)移對應(yīng)一組四個屬性,所述屬性的內(nèi)容為上述抽象得到的服務(wù)、狀態(tài)和信號,屬性的對應(yīng)關(guān)系根據(jù)邏輯過程和狀態(tài)變遷條件確定;構(gòu)造協(xié)議過程中,當(dāng)協(xié)議處于狀態(tài)轉(zhuǎn)移表中的當(dāng)前狀態(tài)并收到對應(yīng)的輸入信號,則改變自己的當(dāng)前狀態(tài)為對應(yīng)的跳轉(zhuǎn)狀態(tài),同時調(diào)用對應(yīng)執(zhí)行的服務(wù),即協(xié)議的下一狀態(tài)和所調(diào)用的服務(wù)取決于當(dāng)前狀態(tài)和輸入信號,由此動態(tài)構(gòu)造協(xié)議實例,并控制其運行。狀態(tài)機模型的形式化描述如下,其中Q代表抽象出來的狀態(tài)的有限集合、S代表抽象出來的服務(wù)的有限集合、2代表抽象出的信號的有限集合、T代表狀態(tài)轉(zhuǎn)移的對應(yīng)函數(shù)、S代表服務(wù)執(zhí)行的對應(yīng)函數(shù)Q= {q0, q” q2, qn}是有限狀態(tài)集合;
Σ = { σ 1; σ 2,σ 3,…,σ J是有限輸入信號集合;S=Is1, s2, S3, , sr}是有限服務(wù)集合;T :QX 2->2Q是狀態(tài)轉(zhuǎn)移函數(shù);F :QX 2->S是執(zhí)行服務(wù)函數(shù);q(leQ是初始狀態(tài);
T(q, o)=a表示當(dāng)進(jìn)入狀態(tài)q,并得到輸入信號為σ時則進(jìn)入下一狀態(tài)a;F(q, σ)=8表示當(dāng)進(jìn)入狀態(tài)q,并得到輸入信號為σ時則執(zhí)行服務(wù)s ;當(dāng)輸入串為{ σ工,
O2,O3,..., O J 時,設(shè) T(q。,O ^=Q1, T (q1; σ 2)=q2, ...,T(q「l, σ ^qi,…,T (Qlri, σ η) =qn,這時的執(zhí)行服務(wù)序列為 F (q0, σ J,F(xiàn) (q” σ 2),· · ·,F(xiàn) (q^, σ ),· · ·,F(xiàn) (qn_1; σ η)。對于狀態(tài)變遷需要執(zhí)行多個服務(wù)的情況,將抽象出的服務(wù)保存于一個服務(wù)隊列中,對服務(wù)隊列中的每個服務(wù)設(shè)置其優(yōu)先等級,當(dāng)狀態(tài)變遷時根據(jù)優(yōu)先級依次執(zhí)行服務(wù),具有最高優(yōu)先級的服務(wù)最先執(zhí)行。本發(fā)明的有益效果是,簡化協(xié)議的構(gòu)造過程,降低協(xié)議部署、維護(hù)的復(fù)雜性,可以讓協(xié)議動態(tài)地適應(yīng)應(yīng)用需求的變化。傳統(tǒng)的協(xié)議構(gòu)造方法建立在層次型網(wǎng)絡(luò)的基礎(chǔ)上,是針對某種特定的網(wǎng)絡(luò)或應(yīng)用,經(jīng)過專門的標(biāo)準(zhǔn)化組織討論制定標(biāo)準(zhǔn),再通過編碼實現(xiàn),最后部署到實際網(wǎng)絡(luò)環(huán)境中。傳統(tǒng)的協(xié)議構(gòu)造方法開發(fā)周期比較長,費用比較高。隨著新增技術(shù)和網(wǎng)絡(luò)需求層出不窮,新增的功能不能安裝在特定的層次上,需要不同層次通過復(fù)雜機制協(xié)調(diào)完成,甚至需要增加層次,這就給新協(xié)議的部署帶來了很大的困難,而且很難避免功能上的冗余。當(dāng)對協(xié)議進(jìn)行維護(hù)時,需要對相關(guān)聯(lián)的協(xié)議同步維護(hù),復(fù)雜性較高。本發(fā)明基于狀態(tài)機的構(gòu)造方法,首先將網(wǎng)絡(luò)中的基本功能抽象成服務(wù),避免以后功能上的冗余,并且隱藏了實現(xiàn)的技術(shù)細(xì)節(jié)。再根據(jù)協(xié)議的語法、語義、時序,建立相應(yīng)的狀態(tài)機模型,構(gòu)造協(xié)議的過程即建立狀態(tài)機模型的過程,開發(fā)周期短,費用低。網(wǎng)絡(luò)環(huán)境中協(xié)議總是根據(jù)狀態(tài)機模型動態(tài)地運行。當(dāng)應(yīng)用需求發(fā)生變化時,只需要對相應(yīng)的狀態(tài)機模型進(jìn)行修改,而不需要對網(wǎng)絡(luò)環(huán)境中的具體實現(xiàn)部分進(jìn)行修改,降低了協(xié)議部署、維護(hù)的復(fù)雜性。
圖I是本發(fā)明無狀態(tài)變遷協(xié)議的狀態(tài)機模型示意圖。圖2是本發(fā)明建立連接的狀態(tài)機模型示意圖。圖3是本發(fā)明協(xié)議構(gòu)造的流程圖。
具體實施例方式
如圖3所示,本發(fā)明方法首先將協(xié)議的邏輯過程進(jìn)行抽象,生成不同的服務(wù)和狀態(tài),抽象協(xié)議邏輯過程是指分析協(xié)議的語法、語義和時序,所述語法指數(shù)據(jù)與控制信息的結(jié)構(gòu)或格式,語義指需要發(fā)出何種控制信息,完成何種動作以及做出何種響應(yīng),時序指事件實現(xiàn)順序的詳細(xì)說明。將協(xié)議抽象為一組服務(wù)和狀態(tài),每一種服務(wù)對應(yīng)一個基本的網(wǎng)絡(luò)功能單元,例如分片、加密、流量控制等;每一種狀態(tài)對應(yīng)協(xié)議邏輯運行所處的階段。抽象出服務(wù)和狀態(tài)后,對協(xié)議的狀態(tài)變遷情況進(jìn)行分析,得到狀態(tài)變遷條件并進(jìn)一步抽象為信號。根據(jù)這些抽象出的元素,運用狀態(tài)機模型,對協(xié)議的邏輯過程進(jìn)行描述。狀態(tài)機模型的形式化描述如下Q= {q0, q” q2, · · · qn}是有限狀態(tài)集合;Σ = { σ 1; σ 2,σ 3,…,σ J是有限輸入狀態(tài)集合;S=Is1, S2, S3, , sr}是有限服務(wù)集合;T :QX 2->2Q是狀態(tài)轉(zhuǎn)移函數(shù);F :QX 2->S是執(zhí)行服務(wù)函數(shù);q(leQ是初始狀態(tài)。其中Q代表抽象出來的狀態(tài)的有限集合、S代表抽象出來的服務(wù)的有限集合、Σ代表抽象出的信號的有限集合、T代表狀態(tài)轉(zhuǎn)移的對應(yīng)函數(shù)、S代表服務(wù)執(zhí)行的對應(yīng)函數(shù),T(q, σ )=a表示當(dāng)進(jìn)入狀態(tài)q,并得到輸入信號為σ時則進(jìn)入下一狀態(tài)a。F (q, σ ) =s表示當(dāng)進(jìn)入狀態(tài)q,并得到輸入信號為σ時則執(zhí)行服務(wù)S。當(dāng)輸入串為{0ι,σ 2) σ 3, . . . , σ J時,設(shè) T(q0, ο ^=Q1, T (q1; σ 2) =q2, ..., , σ ^=Qi,,T(qn_1, on)=qn。這時的執(zhí)行服務(wù)序列為 F (Qo> ο I),F(xiàn) (Qd ο 2),· · ·,F(xiàn) (Qi-d o i),· · ·,F(xiàn) (qn_i,o n)。在形式化描述的基礎(chǔ)上,生成狀態(tài)轉(zhuǎn)移表。狀態(tài)轉(zhuǎn)移表包含四個屬性,分別為當(dāng)前狀態(tài)、輸入信號、跳轉(zhuǎn)狀態(tài)、所執(zhí)行的服務(wù)。運行過程中當(dāng)協(xié)議處于狀態(tài)轉(zhuǎn)移表中的當(dāng)前狀態(tài)并收到對應(yīng)的輸入信號,便改變自己的當(dāng)前狀態(tài)為跳轉(zhuǎn)狀態(tài),同時調(diào)用對應(yīng)服務(wù)。協(xié)議的下一狀態(tài)和所調(diào)用的服務(wù)取決于當(dāng)前狀態(tài)和輸入信號。對于某個狀態(tài)需要執(zhí)行多個服務(wù)的情況,使用一個服務(wù)列表保存需要執(zhí)行的服務(wù)。狀態(tài)發(fā)生改變時依次執(zhí)行每個服務(wù)。根據(jù)生成的狀態(tài)轉(zhuǎn)移表,控制各個服務(wù)的運行,由此動態(tài)構(gòu)造協(xié)議實例,并控制其運行。下面通過具體實例來說明本發(fā)明的實施。對于簡單的無狀態(tài)變遷的協(xié)議,可以是傳統(tǒng)協(xié)議也可以是新構(gòu)造的協(xié)議,我們采用圖I所示的狀態(tài)機模型。實線箭頭表示客戶端的狀態(tài)變遷,虛線箭頭表示服務(wù)端的狀態(tài)變遷。對于Server服務(wù)端,初始處在CLOSE關(guān)閉狀態(tài),在收到SERVER_START啟動信號后便變遷到LISTEN監(jiān)聽狀態(tài),并執(zhí)行服務(wù)si ;處在LISTEN監(jiān)聽狀態(tài)時如果收到DONE完成信號,就變遷到CLOSE關(guān)閉狀態(tài),此時執(zhí)行的服務(wù)為NULL,表示不執(zhí)行任何服務(wù)。對于Client客戶端,初始處在CLOSE關(guān)閉狀態(tài),在收到CLIENT_START啟動信號后便變遷到SENT發(fā)送狀態(tài),并執(zhí)行服務(wù)s2和s3 ;處在SENT發(fā)送狀態(tài)時如果收到DONE完成信號,就變遷到CLOSE關(guān)閉狀態(tài)。狀態(tài)機模型的形式化描述為I)有限狀態(tài)集合 Q= {CLOSE, LISTEN, SENT};2)輸入狀態(tài)集合 2 = {SERVER_START,CLIENT_START, DONE};3)有限服務(wù)集合S=Is1, s2, s3} ;//這里的Sl、s2, S3并不特指某個具體的服務(wù),是根據(jù)實際需求產(chǎn)生的。它可以代表傳統(tǒng)協(xié)議的一個功能,也可以代表根據(jù)需求生成的新協(xié)議的某個功能。4)狀態(tài)轉(zhuǎn)移函數(shù)T :
T(CLOSE, SERVER_START)=LISTEN,T (CLOSE, CLIENT_START)=SENT,T(LISTEN, DONE)=CLOSE,T (SENT, DONE) =CLOSE,5)執(zhí)行服務(wù)函數(shù)F :
F(CLOSE, SERVER_START)=S1, F (CLOSE, CLIENT_START) =s2+s3,6) CLOSE為初始狀態(tài)根據(jù)狀態(tài)機模型,進(jìn)一步生成狀態(tài)轉(zhuǎn)移表,如表I所示。表I
權(quán)利要求
1.一種基于狀態(tài)機的協(xié)議構(gòu)造方法,其特征是分析協(xié)議的語法、語義和時序,所述語法指數(shù)據(jù)與控制信息的結(jié)構(gòu)或格式,語義指需要發(fā)出何種控制信息,完成何種動作以及做出何種響應(yīng),時序指事件實現(xiàn)順序的詳細(xì)說明;將協(xié)議抽象為一組服務(wù)和狀態(tài),每一種服務(wù)對應(yīng)一個基本的網(wǎng)絡(luò)功能單元,每一種狀態(tài)對應(yīng)一個協(xié)議邏輯運行所處的階段,抽象出服務(wù)和狀態(tài)后,對協(xié)議的狀態(tài)變遷情況進(jìn)行分析,得到狀態(tài)變遷條件,并將狀態(tài)變遷條件抽象為信號,運用狀態(tài)機模型對協(xié)議進(jìn)行形式化描述,對于無狀態(tài)變遷的協(xié)議,使用一個統(tǒng)一的狀態(tài)機描述;對于存在狀態(tài)變化的協(xié)議,根據(jù)其規(guī)范標(biāo)準(zhǔn)進(jìn)行描述;對于構(gòu)造的新協(xié)議,根據(jù)其需求分析并構(gòu)建該協(xié)議所使用的基本數(shù)據(jù)和信息的結(jié)構(gòu),定義各個信息所需要完成的動作、做出的響應(yīng),以及各個狀態(tài)間的基本時序,從而對該協(xié)議進(jìn)行形式化描述;最后,根據(jù)描述的狀態(tài)機模型動態(tài)地構(gòu)造協(xié)議實例并控制其運行 將協(xié)議的狀態(tài)機模型轉(zhuǎn)換為狀態(tài)轉(zhuǎn)移表。狀態(tài)轉(zhuǎn)移表包含四個屬性,分別為當(dāng)前狀態(tài)、輸入信號、跳轉(zhuǎn)狀態(tài)和執(zhí)行的服務(wù),每一個狀態(tài)轉(zhuǎn)移對應(yīng)一組四個屬性,所述屬性的內(nèi)容為上述抽象得到的服務(wù)、狀態(tài)和信號,屬性的對應(yīng)關(guān)系根據(jù)邏輯過程和狀態(tài)變遷條件確定;構(gòu)造協(xié)議過程中,當(dāng)協(xié)議處于狀態(tài)轉(zhuǎn)移表中的當(dāng)前狀態(tài)并收到對應(yīng)的輸入信號,則改變自己的當(dāng)前狀態(tài)為對應(yīng)的跳轉(zhuǎn)狀態(tài),同時調(diào)用對應(yīng)執(zhí)行的服務(wù),即協(xié)議的下一狀態(tài)和所調(diào)用的服務(wù)取決于當(dāng)前狀態(tài)和輸入信號,由此動態(tài)構(gòu)造協(xié)議實例,并控制其運行。
2.根據(jù)權(quán)利要求I所述的一種基于狀態(tài)機的協(xié)議構(gòu)造方法,其特征是狀態(tài)機模型的形式化描述如下,其中Q代表抽象出來的狀態(tài)的有限集合、S代表抽象出來的服務(wù)的有限集合、I代表抽象出的信號的有限集合、T代表狀態(tài)轉(zhuǎn)移的對應(yīng)函數(shù)、S代表服務(wù)執(zhí)行的對應(yīng)函數(shù)Q=Iq0, Q1, Q2, qj是有限狀態(tài)集合; S = Io1, O2, O3,-, oj是有限輸入信號集合; S=Is1, s2, s3, , sr}是有限服務(wù)集合; T QX 2->2°是狀態(tài)轉(zhuǎn)移函數(shù); F QX 2->S是執(zhí)行服務(wù)函數(shù); Q0 e Q是初始狀態(tài); T(q, o)=a表示當(dāng)進(jìn)入狀態(tài)q,并得到輸入信號為0時則進(jìn)入下一狀態(tài)a;F(q, o)=s表示當(dāng)進(jìn)入狀態(tài)q,并得到輸入信號為。時則執(zhí)行服務(wù)s ;當(dāng)輸入串為{ o工,O2, O3,..., O J 時,設(shè) T(q0, O ^=Q1, T (q1; o 2)=q2,, Kqi^1, o ^=Qi,…,T (Qlri, o n) =qn,這時的執(zhí)行服務(wù)序列為 F (q0, O J,F(xiàn) (q” o 2), ,F(xiàn) (q^, o 丨), ,F(xiàn) (qn_1; o n)。
3.根據(jù)權(quán)利要求I或2所述的一種基于狀態(tài)機的協(xié)議構(gòu)造方法,其特征是對于狀態(tài)變遷需要執(zhí)行多個服務(wù)的情況,將抽象出的服務(wù)保存于一個服務(wù)隊列中,對服務(wù)隊列中的每個服務(wù)設(shè)置其優(yōu)先等級,當(dāng)狀態(tài)變遷時根據(jù)優(yōu)先級依次執(zhí)行服務(wù),具有最高優(yōu)先級的服務(wù)最先執(zhí)行。
全文摘要
一種基于狀態(tài)機的協(xié)議構(gòu)造方法,通過分析協(xié)議的語法、語義和時序,將協(xié)議抽象為一組服務(wù)和狀態(tài),每一種服務(wù)對應(yīng)一個基本的網(wǎng)絡(luò)功能單元,每一種狀態(tài)對應(yīng)協(xié)議邏輯運行所處的階段,通過狀態(tài)機模型對協(xié)議的邏輯過程進(jìn)行描述,生成狀態(tài)轉(zhuǎn)移表,根據(jù)生成的狀態(tài)轉(zhuǎn)移表,控制各個服務(wù)的運行,由此動態(tài)地構(gòu)造協(xié)議實例并控制其運行。相對于傳統(tǒng)的協(xié)議構(gòu)成方法,可以降低協(xié)議部署、維護(hù)的復(fù)雜性和成本,提高其靈活性和擴展性,使協(xié)議發(fā)展可以動態(tài)地適應(yīng)應(yīng)用需求的變化。
文檔編號H04L29/06GK102685128SQ20121014163
公開日2012年9月19日 申請日期2012年5月9日 優(yōu)先權(quán)日2012年5月9日
發(fā)明者彭殷路, 沈軍, 范文, 韓濤 申請人:東南大學(xué)