專利名稱::用于定制通訊協議的方法和裝置、轉換通訊協議描述的方法和裝置的制作方法
技術領域:
:本發明涉及通信協議的實現技術,尤其涉及一種用于定制通訊協議的方法和裝置、轉換通訊協議描述的方法和裝置。
背景技術:
:通信系統中,不同的實體之間要完成通信必須按照一定通信協議進行。不同通信設備消息的交互也是按照協議規定的消息格式進行的。通信協議的實現是通信系統的關鍵步驟。對于通信系統中的各個接口都有專用的通信協議,包括其消息的編碼方式。同時考慮到傳輸的效率等問題,大多4妄口消息都定義了自己的編碼方式,發送方按照預先約定的編碼規則把消息編成碼流,接受方則根據這個編碼MJ'j來解碼,以此完成消息的交互過程。通信協議特別是消息的編解碼要在通信系統的實體上實現。為了便于實現和管理,通信協議的定制需要有統一的語言。抽象語法規則語言就是可以用于描述通信協議內容、協議消息結構的語言。該類語言包括用于描述協議的信息元素(IE,InformationElement)和正的屬性。該類語言只是抽象地描述協議消息中各正的邏輯關系、數據類型、賦值方式等。其中,抽象語法規則一(ASN.1,AbstractSyntaxNotationOne)是一種用于定義兩個不同的網絡設備之間該如何發送數據的標準語言。ASN.l—般用于描述結構化客體的結構和內容。在通信系統開發中,由于后期需要開發出針對協議的程序代碼,包括編解碼代碼、消息構造和解析函數、協議消息樹表代碼生成等等,而對于這些代碼開發如果采用人工編寫的方式,會花費大量人力投入,后期維護也比較麻煩,而且協議升級會帶來程序代碼的變化。所以需要采用一種自動化的方式實現這些代碼開發,ASN.l雖然提供了描述抽象文法結構和內容的表示方法,但對通信協議中消息樹層次關系描述不直觀、IE元素依賴關系表達、正類型、正范圍描述只能通過ASN.l中關鍵字語義獲取,而實現這些代碼自動化方式需要提供一種更直觀、規律化、l更于自動化方式實現的一種協議描述表達。
發明內容有鑒于此,本發明解決的技術問^iA提供一種用于定制通訊協議的方法和裝置,與ASN.1相比本發明的描述方法更直觀、更規律,也更易于代碼自動化實現。本發明還提供一種轉換通訊協議描述的方法和裝置。為此,本發明提供的技術方案如下一種用于定制通訊協議的方法,包括確定定制通訊協議所需要的信息元素正以及所述正的各種屬性;按正所處的層次和正之間的依賴關系,將所述正及所述正的屬性對應為二維關系將同一正的不同種屬性對應到二維關系的同一行;將不同正的同一種屬性對應到二維關系的同一列。其中,進一步包括規律地讀取IE信息,生成協議消息樹;確定所述協議消息樹中各元素對應的數據類型和所需代碼的映射關系;根據所述映射關系,編制自動化工程,生成相應的代碼和腳本文件。其中,逐行地讀取正信息。其中,以二維表格表示所述二維關系,或以文;^格式表示所述二維關系。其中,正的屬性包括正名稱、層次、依賴關系、類型、取值范圍、缺省值和描述。本發明提出一種轉換通訊協議描述的方法,包括確定抽象語法規則一ASN.l文件定制的通訊協議中的關鍵字所對應的表示規范中的關鍵字;根據所述表示規范中的關鍵字確定定制所述通訊協議所需要的信息元素正以及所述ffi的各種屬性;根據所述表示規范,按正所處的層次和正之間的依賴關系,將所述IE及所述正的屬性對應為二維關系將同一IE的不同種屬性對應到二維關系的同一行;將不同正的同一種屬性對應到二維關系的同一列。本發明提出的一種用于定制通訊協議的裝置,包括輸入單元,用于輸入定制通訊協議所需要的信息元素正以及所述IE的各種屬性;和,協議定制單元,用于根據預定義的表示規范,按正所處的層次和正之間的依賴關系,將所述正及所述正的屬性對應為二維關系將同一正的不同種屬性對應到二維關系的同一行;將不同正的同一種屬性對應到二維關系的同一列。其中,還包括消息樹單元,用于規律地讀取正信息,生成協議消息樹;映射關系確定單元,用于確定所述協議消息樹中各元素對應的數據類型和所需代碼的映射關系;和,編碼單元,用于根據所述映射關系,編制自動化工程,生成相應的代碼和腳本文件。其中,消息樹單元逐行地讀取正信息。其中,以二維表格表示所述二維關系,或以文扣格式表示所述二維關系。其中,正的屬性包括正名稱、層次、依賴關系、類型、取值范圍、缺省值和描述。本發明提出的一種轉換通訊協議描述的裝置,包括第一單元,用于確定抽象語法規則一ASN.l文件定制的通訊協議中的關鍵字所對應的表示規范中的關鍵字;第二單元,用于根據所述表示規范中的關鍵字確定定制所述通訊協議所需要的信息元素正以及所述正的各種屬性;和,協議定制單元,用于根據所&示規范,按正所處的層次和正之間的依賴關系,將所述正及所述IE的屬性對應為二維關系將同一正的不同種屬性對應到二維關系的同一行;將不同正的同一種屬性對應到二維關系的同一列。在本發明中,定義了一組軟件通訊協議消息的表示規范,規定了一套符號集和符號使用規則以及協議組織規則。它獨立于才喿作系統平臺、程序設計語言,是一種抽象語法的符號集合。在本發明中,由于采用二維關系的方式定制通訊協議,因此通過正、IE的層次、正之間的依賴關系以及各IE的其它屬性,可以^艮直觀地體現所要定制的通訊協議,從而可以^吏所定制的通訊協議更直觀、更規律,也更易于開發針對所述通訊協議的程序代碼,易于所述通訊協議對應代碼的自動化實現。圖1是采用本發明提供的協議描述規范定制通訊協議的二維表格示意圖2是本發明中技術開發人員定制通訊協議的流程圖;圖3是本發明中對協議消息進行代碼自動化生成的流程圖;圖4是本發明中完整的開發通信協議的示意圖;圖5是本發明提供的用于定制通訊協議的裝置的示意圖;圖6是本發明提供的轉換通訊協議描述的裝置的示意圖。具體實施例方式目前,ASN.l雖然提供了定制抽象文法結構和內容的表示方法,但對通信協議中消息樹層次關系定制不直觀、正元素依賴關系表達、正類型、正范圍描述只能通過ASN.l中關鍵字語義獲取。針對這種情況,本發明提出了一種全新的定制通訊協議的方法。利用該方法,技術人員可以用二維關系(例如二維表格或文本格式)的形式定制通訊協議,從而使所要定制的協議更加直觀化,更具規律性。為使本領域技術人員更好地理解本發明,下面結合具體的實施例對本發明提供的方法作具體說明。本發明采用二維關系形式定制通訊協議,從而定制了一套協議描述規范。協議描述規范獨立于操作系統平臺、程序設計語言,是一種抽象語法的符號集合。協議描述規范定義了一組軟件通訊協議消息的表示規范,規定了組織規則、關鍵字符號集合以及符號使用規則。協議描述規范的組織規則是指協議描述對應于一張NxM二維表格。其中,N代表正個數,M對應正的屬性個數。每個IE由M個屬性來表達,正={正名稱,層次,依賴關系,類型,取值范圍,缺省值,描述,...},M的大小可以擴展。同一正的不同種屬性對應到二維關系的同一行;將不同IE的同一種屬性對應到二維關系的同一列,如圖l所示。協議描述規范提供了一套關鍵字符號集合,每種關鍵字表示不同的語義,有其特的規則格式表達形式,且只能出現在二維表格中特定的列中,下面按照圖1中的各列介紹對應的關鍵字。a、層次用關鍵字">"的個數來表示正的在結構中層次關系。例如正的層次表達為">"時,該正屬于距離它以上最近的沒有">"的正的成員節點,對應樹型中的父子節點的關系;當正的層次表達為">>,,時,該正屬于距離它以上最近一個層次表達為">"的正的成員節點,對應樹型中的父子節點的關系,依次類推。在圖1中,信息元素CellNum和Cellld的層次表達都為">",信息元素CellNum和Cellld都屬于信息元素CellCtx的成員節點;信息元素Code2的層次表達為">>",信息元素Code2屬于信息元素Codel的成員節點,而信息元素Codel屬于信息元素Channel的成員節點。關鍵字"$"是一個IE塊的結束標志。關鍵字"#"是整個協議的結束標志。b、IE名稱正名稱應該符合自動生成目標代碼編譯環境中的命名規范。其中,可以將語義相對獨立信息塊稱為正塊。正塊由多個正組成,IE塊的名稱應該位于正塊第一行,表示正塊起始位置,一個IE塊中的同層次正的名稱是唯一的。c、依賴關系依賴關系表達了消息的編碼規則,也就是正之間存在的相互依附關系。一個正可能必定出現,也可能依賴于當其它正滿足一定條件時候才會出現。為了清楚地表達這種依附關系,需要將依賴項分為必選項和可選項。表1示出了依賴關系的表達式和相應的依賴關系的含義。表1<table>complextableseeoriginaldocumentpage9</column></row><table>關鍵字代表含義M表示必選項(MustItem),C表示條件選項(ConditionalItem),O表示可選項(OptionalItem)。d、類型類型表達了IE的lt據類型。正類型定義包括基本數據類型(如表2-1所示)、數組類型(如表2-2所示)、結構體類型(如表2-3所示)。表2-l<table>complextableseeoriginaldocumentpage9</column></row><table>表2-2<table>tableseeoriginaldocumentpage10</column></row><table>表2-3<table>tableseeoriginaldocumentpage10</column></row><table>e、取值范圍取值范圍是表述正在協議理解中可取值的范圍描述。取值范圍可分為離散范圍和連續范圍,離散范圍表示該正可取的M數值集合,連續范圍表示該正的取值區間。取值范圍的規定格式為離散范圍=(value1,value2,…,valueN)連續范圍=(value1..value2)f、缺省值缺省值是表述正在協議中的默認取值。g、描述描述是對正在協議中的具體含義的說明。h、擴M性()擴展屬性用于用戶根據實際需要添加一些可用信息,如所占用字節長度等等。對協議描述規范進行了說明后,技術開發人員在定制通訊協議時就可以按照協議描述規范的要求定制所述通訊協議了。圖2是技術開發人員定制通訊協議的流程圖。技術開發人員確定所要定制的通訊協議后,步驟21,確定定制所述通訊協議所需要的正以及所述正的各種屬性。如協議描述規范所規定的,正的屬性包括正名稱、層次、依賴關系、類型、取值范圍、缺省值和描述,另外還可以包括一些擴展的屬性。確定定制通訊協議所需要的正以及所述正的各種屬性后,在步驟22,技術開發人員按照協議描述規范制定出通訊協議的二維表達格式,即,應該按各正的層次和正之間的依賴關系,將各IE及各正的屬性對應到二維表格。至此,通訊協i義定制完成。采用二維表格的方式定制通訊協議,通過正、正的層次、正之間的依賴關系以及各正的其它屬性,可以更直觀更規律地體現所要定制的通訊協議,從而更易于開發針對所述通訊協議的程序代碼自動化實現。針對上述用于定制通訊協議的方法,本發明還提出一種相應的代碼自動化生成方法,以對協議消息進行自動化編碼。可以看出,當按照所述協議描述規范定制通訊協議時,就可以規則地讀取正,然后規律的分析每一行正的內容,分析出每一行數據與對應生成代碼的映射關系,也就找到自動化代碼生成實現的方法。代碼自動化生成的基本思想是,采用協議描述規范定義的協議消息,開發一個能針對一個不同結構類型正塊,該正塊內嚢括所有基本類型和復合類型(包括嵌入式的結構,和外部結構類型),找到每種類型和所對應代/馬的映射關系,然后自動化的生成的過程。根據這個思想,可方便的實現自動化的生成具體工程代碼。以編解碼代碼自動化生成過程為例,可采用每種結構對應一個編碼過程和解碼過程,結構塊的類型決定了它的編解碼方式,由于結構之間存在引用的內容,所以采用函數接口方式可關聯所有結構內容,所以編解碼代碼自動化過程只需要確認每種類型所對應的編解碼代碼也就是實現編解碼自動化的過程。下面結合具體的實施方式作更進一步的說明。圖3是對協議消息進行代碼自動化生成的流程圖。步驟31,規律地逐行讀取二維表格中的信息,生成協i義消息樹。通過分析表格的層次元素可以得到一棵消息樹,樹中的每個葉節點代表一個正(對應消息中基本類型和數組類型),每個非葉節點代表一個正塊(對應消息中結構類型)。每個節點的編碼規則,由依賴關系決定。正的屬性對應到相應節點的屬性上。步驟32,分析所述協議消息樹,確定所述協議消息樹中各元素對應數據類型和工程中所需的代碼映射關系。步驟33,根據所述協議消息樹中各數據類型與所需代碼映射關系,編制自動化工程,生成相應的代碼和腳本文件。至此,完成自動4匕生成代碼的過程。自動化生成代碼后,將產生消息構ii/析構代碼、host存儲格式與網絡傳輸格式轉換代碼、協議消息樹型表示代碼,以及功能測試腳本等等。可根據實際工程中需求生成與協議消息對應的代碼。圖4是完整的開發通信協議的示意圖,完整的通訊協議開發過程包括確定所要開發的通訊協議,然后按照協議描述^L范制定出通訊協議的二維表達格式,最后可以通過自動化工具根據實際工程中的需求自動化生成代碼,例如消息構it/析構代碼、host存儲格式與網絡傳輸格式轉換代碼、協議消息樹型表示代碼,以及功能測試腳本等等。ASN.l作為一種國際標準,被廣泛地應用于系統之間的協議消息定義。為了今后的測試更加簡單方便,可自動化提供針對ASN.l定制協議的程序代碼和腳本,可以將現有的采用ASN.l定制的通訊協議轉換為采用二維關系定制的通訊協議,該方法包4舌1)、獲取定制協議消息的ASN.1文件。2)、確定ASN.l文件中的關鍵字所對應的本協議描述規范中的關鍵字。ASN.l標準描述協議內了數據,數據類型M列格式,以及如何將各部分組成消息。該標準也提供了一些關鍵字符號集,每種關鍵字都表達了不同語義,語義不同表示了不同類型,所以需要轉換ASN.1描述中關鍵字到協議描述規范的關鍵字。2.1)變換基本類型沒有對實際類型進行區分,可根據INTEGER類型范圍值確定協議描述規范的描述類型,如表3-l所示。表3-l<table>tableseeoriginaldocumentpage13</column></row><table>2.3)變換依賴表達關系ASN.l對正依賴關系表達式有嚴格的語義規定,依賴表達關系大致分為必選項和可選項,依賴關系描述的對應如表3-3所示。表3-3<table>tableseeoriginaldocumentpage14</column></row><table>3)、根據所確定的關鍵字后,根據ASN.l描述確定所述通訊協議所需要的IE以及所述正的各種屬性(包括取值范圍、默認值、描述內容等等)。4)、技術開發人員應該按各正的層次和正之間的依賴關系,將各正及各正的屬性對應到二維表格。至此,通訊協議的描述轉換完成。然后,自動化生成工具就可以自動生成接口協議消息相關的程序代碼或測試腳本。基于上述的用于定制通訊協議的方法,本發明還提出一種用于定制通訊協議的裝置。圖5是該裝置的示意圖,該裝置包括輸入單元S51和協議定制單元S52。技術開發人員確定所要定制的通訊協議后,就可以確定定制所迷通訊協議所需要的正以及所述正的各種屬性。確定定制通訊協議所需要的正以及協議所需要的信息元素正以及所述正的各種屬性。然后,協議定制單元S52將按照協議描述規范制定出通訊協議的二維表達格式,即,應該按各正的層次和正之間的依賴關系,將各正及各正的屬性對應到二維表格。為能實現代碼的自動化生成,該裝置還應該包括消息樹單元、映射關系確定單元和編碼單元。消息樹單元用于規律地逐行讀取正信息,生成協議消息樹。通過分析表格的層次無素可以得到一棵消息樹,樹中的每個葉節點代表一個正(對應消息中基本類型和數組類型),每個非葉節點代表一個正塊(對應消息中結構塊數據類型)。每個節點的編碼規則,由依賴關系決定。映射關系確定單元用于分析所述協議消息樹,確定所述協議消息樹中各元素對應的數據類型和所需代碼的映射關系。編碼單元用于根據所述協議消息樹中各數據類型與所需代碼映射關系,編制自動化工程,生成相應的代碼和腳本文件。至此,完成代碼的自動化生成。其中,對協議消息的編碼將產生消息構it/析構代碼、host存儲格式與網絡傳輸格式轉換代碼、協議消息樹型表示代碼,以及功能測試腳本等等,可根據實際工程中需求生成與協議消息對應的代碼。本發明還提出一種轉換通訊協議描述的裝置,用于將現有的采用ASN.l定制的通訊協議轉換為采用二維關系定制的通訊協議。圖6是該裝置的示意圖,該裝置包括第一單元S61、第二單元S62和協議定制單元S52。獲取定制協議消息的ASN.l文件后,就可以利用第一單元S61確定ASN.l文件中的關鍵字所對應的協議描述規范中的關鍵字。才艮據協議描述規范中的關鍵字,第二單元S62可以確定定制所述通訊協議所需要的正以及所述正的各種屬性。然后,協議定制單元S52將根據協議描述規范,按正所處的層次和正之間的依賴關系,將所述正及所述正的屬性對應到二維表格。雖然上述都是以二維表格為例,對本發明的技術方案進4亍的具體說明,但本領域技術人員應該能夠看出,采用文^4各式同樣能夠體現協議描述規范所要求的二維關系,這里不再贅述。根據所述公開實施例的描述,可以使得本領域技術人員能夠實現或者使用本發明。對于本領域技術人員來說,這些實施例的各種修改是顯而易見的,并且這里定義的總體原理也可以在不脫離本發明的范圍和主旨的基礎上應用于其他實施例。以上所述的實施例僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。權利要求1.一種用于定制通訊協議的方法,其特征在于,包括確定定制通訊協議所需要的信息元素IE以及所述IE的各種屬性;按IE所處的層次和IE之間的依賴關系,將所述IE及所述IE的屬性對應為二維關系將同一IE的不同種屬性對應到二維關系的同一行;將不同IE的同一種屬性對應到二維關系的同一列。2、如權利要求1所述的用于定制通訊協議的方法,其特征在于,進一步包括規律地讀取正信息,生成協議消息樹;確定所述協議消息樹中各元素對應的數據類型和所需代碼的映射關系;才艮據所述映射關系,編制自動化工程,生成相應的代碼和腳本文件。3、如權利要求2所述的用于定制通訊協議的方法,其特征在于,逐行地讀取正信息。4、如權利要求1所述的用于定制通訊協議的方法,其特征在于,以二維表格表示所述二維關系,或以文本格式表示所述二維關系。5、如權利要求1至4任意一項所述的用于定制通訊協議的方法,其特征在于,正的屬性包括正名稱、層次、依賴關系、類型、取值范圍、缺省值和描述。6、一種轉換通訊協議描述的方法,其特征在于,包括確定抽象語法規則一ASN.l文件定制的通訊協議中的關4走字所對應的表示規范中的關鍵字;根據所述表示規范中的關鍵字確定定制所述通訊協議所需要的信息元素正以及所述正的各種屬性;根據所述表示規范,按正所處的層次和IE之間的依賴關系,將所述正及所述正的屬性對應為二維關系將同一正的不同種屬性對應到二維關系的同一行;將不同正的同一種屬性對應到二維關系的同一列。7、一種用于定制通訊協議的裝置,其特征在于,包括輸入單元,用于輸入定制通訊協議所需要的信息元素正以及所述正的各種屬性;和,協議定制單元,用于根據預定義的表示規范,按正所處的層次和IE之間的依賴關系,將所述正及所述正的屬性對應為二維關系將同一IE的不同種屬性對應到二維關系的同一行;將不同正的同一種屬性對應到二維關系的同一列。8、如權利要求7所述的用于定制通訊協議的裝置,其特征在于,還包括消息樹單元,用于規律地讀取正信息,生成協議消息樹;映射關系確定單元,用于確定所述協議消息樹中各元素對應的數據類型和所需代碼的映射關系;和,編碼單元,用于才艮據所述映射關系,編制自動化工程,生成相應的代碼和扭卩本文件。9、如權利要求8所述的用于定制通訊協議的裝置,其特征在于,消息樹單元逐行地讀取IE信息。10、如權利要求7所述的用于定制通訊+辦議的裝置,其特征在于,以二維表格表示所述二維關系,或以文本格式表示所述二維關系。11、如權利要求7至IO任意一項所述的用于定制通訊協議的裝置,其特征在于,正的屬性包括正名稱、層次、依賴關系、類型、取值范圍、缺省值和描述。12、一種轉換通訊協i義描述的裝置,其特征在于,包括第一單元,用于確定抽象語法規則一ASN.l文件定制的通訊協議中的關鍵字所對應的表示規范中的關鍵字;第二單元,用于根據所述表示規范中的關鍵字確定定制所述通訊協議所需要的信息元素IE以及所述正的各種屬性;和,協議定制單元,用于根據所述表示規范,按正所處的層次和正之間的依賴關系,將所述正及所述IE的屬性對應為二維關系將同一正的不同種屬性對應到二維關系的同一行;將不同正的同一種屬性對應到二維關系的同一列。全文摘要本發明公開一種用于定制通訊協議的方法,包括確定定制通訊協議所需要的信息元素IE以及所述IE的各種屬性;按IE所處的層次和IE之間的依賴關系,將所述IE及所述IE的屬性對應為二維關系將同一IE的不同種屬性對應到二維關系的同一行;將不同IE的同一種屬性對應到二維關系的同一列。由于采用二維關系的方式描述通訊協議,因此通過IE、IE的層次、IE之間的依賴關系以及各IE的其它屬性,可以很直觀地體現所要定制的通訊協議,從而可以使所定制的通訊協議更直觀、更規律,也更易于開發針對所述通訊協議的程序代碼,易于所述通訊協議的自動化實現。本發明還公開一種用于定制通訊協議的裝置、以及轉換通訊協議描述的方法和裝置。文檔編號H04L29/06GK101370003SQ200710120270公開日2009年2月18日申請日期2007年8月14日優先權日2007年8月14日發明者力黨,王多華,王慶太申請人:大唐移動通信設備有限公司