TW201448544A - 經由通用類型長度值產生器及剖析器之訊息交換 - Google Patents
經由通用類型長度值產生器及剖析器之訊息交換 Download PDFInfo
- Publication number
- TW201448544A TW201448544A TW103103085A TW103103085A TW201448544A TW 201448544 A TW201448544 A TW 201448544A TW 103103085 A TW103103085 A TW 103103085A TW 103103085 A TW103103085 A TW 103103085A TW 201448544 A TW201448544 A TW 201448544A
- Authority
- TW
- Taiwan
- Prior art keywords
- tlv
- message
- type
- file
- agreement
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/169—Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本發明係基於將類型長度值(TLV)格式應用於一協定訊息框架。本發明引入一種新機制:一種不依賴於任何特定協定之一般性TLV引擎。該一般性TLV引擎可處理基於相同TLV框架定義之多個協定。新增一新協定僅需要建立新組態檔案。改變一協定僅需要改變該等組態檔案。換言之,支援新協定或更新現有協定不需要程式碼改變。解決方案允許部署新協定或對現有協定作出改變之較快速轉回且比傳統解決方案更具成本效益。用戶端側TLV引擎應相同;處理不同協定僅依賴於所載入組態檔案。將散佈協定組態檔案,而非散佈用戶端側訊息處理引擎。請注意:協定組態檔案應在用戶端側與伺服器側兩者上相同。若用戶端側TLV引擎及伺服器側TLV引擎正使用相同程式語言,則該等用戶端側TLV引擎可與該等伺服器側TLV引擎相同。
Description
類型長度值(TLV)係一彈性訊息格式。一TLV格式訊息係由TLV元素構成,每一TLV元素可以任何次序放置於訊息主體內部。TLV元素可嵌套(nest),此意指一個元素可包含一或多個元素。可安全跳過或忽略在一較舊應用程式處接收之新訊息元素,使得基於TLV格式之訊息回溯相容。然而,新增新TLV元素、改變TLV定義及改變TLV元素結構(嵌套元素關係)將需要產生並處理程式碼改變、測試及部署。
在一通信系統中,各種元件藉由交換訊息而通信,此需要通信元件使用一預定義及議定通信協定。隨著應用程式改變或更新,訊息格式可改變。舉例而言,假定一訊息元素之長度改變,因此此訊息元素及隨後元素格式(位置及偏移)亦將改變。由於該格式改變,因此程式產生(在發送器端)及處理(在接收器端)需要相應地改變。新程式研發、測試及部署係高成本且花費較長時間。
本發明係基於將TLV格式應用於一協定訊息框架。
本發明引入一種新機制:一種不依賴於任何特定協定之一般性TLV引擎。該一般性TLV引擎可處理基於相同TLV框架定義之多個協定。新增一新協定僅需要建立新組態檔案。改變一協定僅需要改變該等組態檔案。換言之,支援新協定或更新現有協定不需要程式碼改
變。解決方案允許部署新協定或對現有協定作出改變之較快速轉回且比傳統解決方案更具成本效益。
用戶端側TLV引擎應相同;處理不同協定僅依賴於所載入組態檔案。將散佈協定組態檔案,而非散佈用戶端側訊息處理引擎。請注意:協定組態檔案應在用戶端側與伺服器側兩者上相同。若用戶端側TLV引擎及伺服器側TLV引擎正使用相同程式語言,則該等用戶端側TLV引擎可與該等伺服器側TLV引擎相同。
100‧‧‧類型長度值訊息
102‧‧‧類型長度值元素/子類型長度值元素/父代類型長度值元素/上階類型長度值元素/子代子類型長度值元素/分量類型長度值元素/祖代類型長度值元素/曾祖代類型長度值元素
102a‧‧‧類型長度值元素
102b‧‧‧子類型長度值元素
102c‧‧‧子類型長度值元素
104‧‧‧類型
106‧‧‧長度
108‧‧‧值
110‧‧‧協定
300‧‧‧發送器
302‧‧‧接收器
304‧‧‧中間類型長度值引擎/類型長度值引擎/用戶端側類型長度值引擎/伺服器側類型長度值引擎/本端類型長度值引擎
304a‧‧‧類型長度值引擎
304b‧‧‧類型長度值引擎
306‧‧‧組態檔案
308‧‧‧輸出
310‧‧‧輸入
400‧‧‧用戶端側應用程式
402‧‧‧伺服器側應用程式
502‧‧‧類型長度值訊息資料容器
504‧‧‧訊息產生器及剖析器
600‧‧‧TLVElement類別
602‧‧‧ByteArray屬性
604‧‧‧Type屬性
606‧‧‧Value屬性
608‧‧‧DataType屬性
610‧‧‧Tag屬性
612‧‧‧TLVList屬性
614‧‧‧ParentElement屬性
616‧‧‧TLVDictionary屬性
618‧‧‧FindByType方法
620‧‧‧FindChildrenByType方法
700‧‧‧TLVDataCollection類別
702‧‧‧AddTLV方法
704‧‧‧AddChildTLV方法
800‧‧‧類型定義檔案
802‧‧‧標籤/Tag欄位
804‧‧‧TypeName欄位
806‧‧‧Type欄位
808‧‧‧DataType欄位
900‧‧‧佈局定義檔案
900a‧‧‧佈局定義檔案
902‧‧‧ParentTags欄位
904‧‧‧Requirement欄位
906‧‧‧IsCollection欄位
908‧‧‧SubItem欄位/子項目
910‧‧‧ItemsInCollection欄位
1200‧‧‧組態檔案編輯器
1700‧‧‧單一電腦系統/電腦系統
1706‧‧‧匯流排
1707‧‧‧處理器
1708‧‧‧主記憶體
1709‧‧‧唯讀記憶體
1710‧‧‧儲存裝置
1711‧‧‧顯示裝置
1712‧‧‧輸入裝置
1714‧‧‧通信介面
1715‧‧‧通信鏈路
1731‧‧‧資料儲存系統
1732‧‧‧資料庫
1733‧‧‧資料介面
藉助於附圖闡釋本發明之進一步細節,其中:圖1繪示一TLV訊息之一例示性實施例。
圖2繪示具有嵌套之子TLV元素之一TLV元素之一例示性實施例。
圖3繪示使用中間TLV引擎之一發送器與一接收器之間的一例示性互動。
圖4繪示在請求訊息與回應訊息之交換期間在一用戶端側TLV引擎與一伺服器側TLV引擎之間的例示性互動。
圖5繪示一TLV引擎之一例示性實施例。
圖6繪示可由一TLV引擎使用之一TLVElement。
圖7繪示可由一TLV引擎使用之一TLVDataCollection類別。
圖8繪示一類型定義檔案之一例示性實施例。
圖9繪示一佈局定義檔案之一例示性實施例。
圖10繪示其他佈局定義檔案嵌套至其中之一佈局定義檔案之一例示性實施例。
圖11繪示根據圖10之佈局定義檔案結構化之一例示性TLV訊息。
圖12及圖13繪示一組態檔案編輯器之一實施例之螢幕截圖。
圖14繪示建立且散佈組態檔案之一方法之一流程圖。
圖15繪示根據組態檔案產生一TLV訊息之一方法之一流程圖。
圖16繪示根據組態檔案剖析一接收TLV訊息之一方法之一流程圖。
圖17繪示一電腦系統之一例示性實施例。
如下闡述本發明之實施例之細節:一般性TLV產生器及剖析器闡述在第2頁開始。
TLV程式庫設計在第19頁開始
TLV管理員使用者指南在第31頁開始
通用協定框架呈現方式在第41頁開始
用於訊息交換之一般性TLV產生器及剖析器(說明)
1. 問題描述
2. 大體概念:
2.1. 可主張之特徵:
2.2. 用戶端發送TLV訊息至伺服器/自伺服器接收TLV訊息工作流程
2.3. TLVEngine組件
2.3.1. TLV訊息資料容器
2.3.2. TLVEngine支援之資料類型
2.3.3. 訊息產生器及剖析器
2.3.4. 組態檔案編輯器
3. 範例組態XML檔案
3.1. 組態檔案名稱
3.1.1. 名稱慣例
3.2. OPLT TLV類型定義檔案
3.3. OPLT TLV佈局定義檔
3.4. 範例TLV佈局
圖1 用戶端與伺服器訊息交換(多個引擎)
圖2 用戶端與伺服器訊息交換(一般性TLVEngine)
圖3 用戶端發送訊息至伺服器/自伺服器接收訊息
圖4 建立/編輯類型定義組態檔案
圖5 建立/編輯佈局、定義組態檔案
圖6 範例TLV佈局
在一通信系統中,各種元件藉由交換訊息而通信,此需要通信元件使用一預定義及議定通信協定。隨著應用程式改變或更新,訊息格式可改變。舉例而言,假定一訊息元素之長度改變,因此此訊息元素及隨後元素格式(位置及偏移)亦將改變。由於該格式改變,因此程式產生(在發送器端)及處理(在接收器端)需要相應地改變。新程式研發、測試及部署係高成本且花費較長時間。
TLV(類型長度值)係一彈性訊息格式。一TLV格式訊息係由TLV元素構成,每一TLV元素可以任何次序放置於訊息主體內部。TLV元素可嵌套,此意指一個元素可包含一或多個元素。可安全跳過或忽略在一較舊應用程式處接收之新訊息元素,使得基於TLV格式之訊息回溯相容。然而,新增新TLV元素、改變TLV定義及改變TLV元素結構(嵌套元素關係)將需要產生並處理程式碼改變、測試及部署。
在需要訊息交換之一PKI安全中心中存在數種應用程式。每一應用程式使用其特定協定。應針對所有協定研發一訊息交換應用程式。
在圖1中,一用戶端發送一請求訊息至伺服器;伺服器將開啟一程式(引擎)以處理傳入之請求訊息。哪一引擎開啟取決於所接收之請
求訊息之協定。每一程式(引擎)將僅處理特定協定中定義之訊息。
本發明引入一種新機制:一種不依賴於任何特定協定之一般性TLVEngine。該一般性TLVEngine可處理基於相同TLV框架定義之多個協定。 新增一新協定僅需要建立新組態檔案。改變一協定僅需要改變該等組態檔案。 換言之,支援新協定或更新現有協定不需要程式碼改變。解決方案允許部署新協定或對現有協定作出改變之較快速轉回且比較早闡述之傳統解決方案更具成本效益。
用戶端側TLVEngine應相同;處理不同協定僅依賴於所載入組態檔案。 將散佈協定組態檔案,而非散佈用戶端側訊息處理引擎。 應注意:協定組態檔案應在用戶端側與伺服器側兩者上相同。若用戶端側TLVEngine及伺服器側TLVEngine正使用相同程式語言,則該等用戶端側TLVEngine可與該等伺服器側TLVEngine相同。
在圖2中,一用戶端發送一請求訊息至伺服器,伺服器將開啟一TLVEngine執行個體以處理請求訊息; 所有TLVEngine相同,處理來 自不同協定之訊息之唯一差異係載入不同組態檔案, 該等組態檔案係基於訊息協定之XML檔案。請參考範例組態XML檔案。
1.一個TLV引擎可處置使用相同TLV協定訊息框架定義之任何訊息協定中之任一訊息語法。TLVEngine不依賴於任何特定訊息格式及語法。該TLVEngine可藉由在載入特定組態檔案而處置任何訊息格式及語法。
新增一新訊息協定或修改一現有訊息協定不需要任何程式碼改變。
2.使用一類型定義組態檔案來針對所有訊息格式及語法辨識及解譯元素。
3.使用一佈局定義組態檔案來定義訊息結構。所產生之此TLV訊息可藉由TLVEngine剖析器剖析而不需佈局定義組態檔案。剖析TLV訊息檔案僅需要類型定義檔案。
4.使用佈局定義組態檔案中之屬性IsCollection來處置資料之集合。
5.使用佈局定義組態檔案中之一特定資料類型Compound來處置經嵌套TLV元素關係。
6.使用佈局定義組態檔案中之屬性Subltem來處置群組關係。
7.在類別TLVElement引入以下各項時,使用此類別便於建立及剖析TLV資料:‧一元素之父-子關係之一清單,‧用以涵蓋不同資料類型之一資料類型,包含帶正負號整數(1個、2個、4個、8個位元組)、不帶正負號整數(1個、2個、4個、8個位元組)、浮點數(4個位元組、8個位元組)、字串(ASCII)及二進制
陣列(位元組陣列)。該類別亦引入支援嵌套TLV結構之一新資料類型Compound。
TLVEngine包含以下組件:
‧TLV訊息資料容器
‧組態檔案控制訊息產生器及剖析器
‧用以建立/編輯組態檔案之GUI
此架構允許軟體基於相同TLV框架處理任何訊息交換協定。每一協定需要應用程式特定類型及訊息結構,因此處理引擎由協定特定組態檔案控制。新增GUT以針對新或現有訊息協定建立/編輯組態檔
案。下文論述每一組件之細節。
存在用作TLV訊息資料容器之兩個主要類別, TLVElement及TLVDatacollection。
TLVElement類別:屬性:
‧ByteArray保存呈位元組陣列格式之元素資料。
‧Type及Value係TLV類型及值。
‧DataType係此TLVElement之資料類型。關於細節請參考TLVEngine支援資料類型。
‧Tags係一字串陣列,其保存此元素之標籤及所有父代之標籤。
‧TLVList係TLVElement之一清單。若其具有子代,則其係一子代清單。其可用於建立嵌套TLV元素結構。
‧若ParentElement具有父代,則其保存父代。其用於搜尋。
其係子類別且自TLVElement導出。其提供基本類別屬性及方法且亦提供用於輸入之額外方法:
DataType包含:
‧不帶正負號位元組、不帶正負號短整數(2個位元組)、不帶正負號整數(4個位元組)及不帶正負號長整數(8個位元組),
‧帶正負號位元組、帶正負號短整數(2個位元組)、帶正負號整數(4個位元組)及帶正負號長整數(8個位元組),
‧浮點數(4個位元組浮點數)及雙精準數(8個位元組浮點數)
‧字串(ASCII)及二進制陣列,長度係變數。
‧複合(嵌套TLVElement,其包含一或多個子代TLVElement)
‧
訊息產生器及剖析器用於基於組態檔案建構/解譯用於特定訊息協定之訊息。不同組態檔案用於不同協定。在任何訊息建構之前,基於協定即時載入對應組態檔案,且訊息類型資訊包含於初始訊息請求中。
在以下工作階段中闡述組態檔案之細節。
如上文所提及,TLVEngine不針對不同訊息交換協定改變。TLVEngine應能夠處理使用TLV訊息框架定義之任何協定,唯一差異係基於協定載入不同組態檔案。在此架構中,使用以下呈XML格式之兩個組態檔案。
‧類型定義檔案
‧佈局定義檔案。
此檔案定義針對特定協定之應用程式特定類型,其包含type、type name、tag及data type。如下係類型「Company Id」之一實例:
在以上實例中,Tag表示此類型之簡短名稱,TypeName係選用之描述。Type係指派至此類型之一預定義十六進制值,且DataType係一資料類型表示。關於完整類型定義檔案,請參3.2 OPLT TLV類型定義檔案(其係OPLT協定之一實例)。
產生訊息及剖析訊息需要類型定義檔案。
此檔案定義如何以TLV形式(諸如嵌套關係及集合)結構化訊息。如下係佈局定義中類型「Company Id」之一實例:
在上述實例中,ParentTags係其父代、祖代標籤等之一經「.」分離之字串。Requirement屬性指示其係強制性或是選用之要求。IsCollection及Subltem係用以指示群組關係之布林旗標。關於完整佈局定義,請參考OPLT TLV佈局定義檔案(其係OPLT協定之一實例)。
產生訊息需要佈局定義檔案,除非TLV元素係一般佈局(flat layout)。
TLVEngine係一一般性模組,一般性模組不依賴於任何協定,處理一特定協定僅需要載入特定組態檔案。因此, 研發一新訊息協定實際上係研發新組態檔案,且修改一現有訊息協定實際上係編輯現有組態檔案。 具有用於研發組態檔案之一工具。請參考下文之組態檔案編 輯器。
如上文所提及,在需要建立或修改一協定時,僅需要改變相關聯組態檔案。然後將新或更新組態檔案散佈至用戶端及伺服器兩者。建立此GUI工具用於建立並編輯組態檔案。組態以XML檔案格式保存。
由於一個TLVEngine可處理多個協定,因此同一資料夾中存在多個組態檔案。必須定義檔案名稱:
‧類型定義檔案名稱:<Protocol Name>TypeDefinition.xml
<Protocol Name>可係OPLT、PKIS、OPUS、ULS等。
‧佈局定義檔案名稱:<Protocol Name><Message Type><Request/Response>LayoutDefinition<Protocol Version>.xml
<Protocol Name>可係OPLT、PKIS、OPUS、ULS等。
<Protocol Version>協定版本,其可省略;預設將係最新版本。
<Message Type>指示協定內之訊息類型。
<Request/Response>可係Req或Resp。
針對協定OPLT,檔案名稱將係:OPLTTypeDefmition.xml
OPLT0ReqLayoutDefinition.xml
OPLT1RespLayoutDefinition.xml
TLV程式庫設計文件
1. 簡介
1.1. 目的及範疇
1.2. 系統概觀
1.3. 參考文獻
1.4. 縮寫字及定義
2. 設計考量因素
2.1. 假設
2.2. 約束
2.3. 系統環境
2.4. 設計目標
3. 使用情形
4. 架構
4.1. 概觀
4.2. 子系統、組件或模組
4.2.1. 密碼編譯軟體.TLV.核心.通用程式
4.2.2. 密碼編譯軟體.TLV.核心.引擎
4.2.3. 密碼編譯軟體.TLV.核心.列舉程式
4.2.4. 密碼編譯軟體.TLV.核心.公用程式
4.3. XML定義檔案
4.3.1. 類型定義
4.3.2. 佈局定義
5. 介面設計
5.1. 介面TLVEngine
5.1.1. 建立介面
5.1.2. 介面API
5.1.3. 用途
5.2. 輸入TLV資料
5.2.1. 基本方法:
5.2.2. 其他方法:
5.3. TLVDataType
6. 未處理問題
7. 範例程式碼
圖1 系統概觀
圖2 架構概觀
圖3 類別圖TLV核心通用程式
圖4 類別圖TLV核心引擎
TLV程式庫經設計以處置基於類型長度值(TLV)格式化之PKI中心通用協定框架(CPF)訊息。此新基於TLV協定之主要目的係用於用戶端/伺服器請求/回應不需要任何額外安全保護之一識別資料。
‧CPF-OPUS Lite協定
程式庫所需要值兩個XML檔案(類型及佈局定義)已透過TLV管理員產生且假定係有效的。
應用程式應在Microsoft Windows平臺(XP或稍後版本)中運行。
所有軟體應使用Microsoft.Net技術(Microsoft Visual C# 2010或稍後版本)來研發。
TLV程式庫應係一般性以針對不同訊息協定產生TLV資料且剖析
該TLV資料。
TLV核心經劃分成四個專案,諸如:
‧密碼編譯軟體.TLV.核心.通用程式
‧密碼編譯軟體.TLV.核心.引擎
‧密碼編譯軟體.TLV.核心.列舉程式
‧密碼編譯軟體.TLV.核心.公用程式
此專案含有用於儲存TLV訊息或資料、類型定義、佈局定義、輸
入TLV資料集合等等之類別。以下類別圖式圖解說明繼承層級、類別屬性及方法。
此專案揭示用以產生或剖析TLV程式庫資料之一介面。
此專案含有程式庫需要之所有列舉程式。
命名為TLVTagEnum之列舉程式用於通用之TLV類型定義且不應修改其名稱、值或屬性。此當前版本之保留類型係如下:
‧CRC(0x4350462E)
‧ENV(0x454E562E)
‧PLD(0x504C442E)
‧PROTNAME(0x00010001)
‧PROTVER(0x00010002)
‧MSGTYPE(0x00010003)
‧OPMOD(0x00010004)
‧COMPID(0x00010005)
‧PRODINFO(0x00010006)
‧PRIMDEVID(0x00010007)
‧SECDEVID(0x00010008)
‧STATUS(0x00010009)
‧IDTYPE(0x0001000A)
‧IDVALUE(0x0001000B)
‧PRSLZDATATYPE(0x0001000C)
‧PRSLZDATA(0x0001000D)
‧CRC(0x0001000E)
此係提供有用功能性(諸如計算TLV二進制資料、自二進制資料擷取特定部分、自二進制轉換成其他類型、將二進制資料保存至檔案等等)之公用程式專案。
TLV程式庫係用以針對每一基於TLV之協定產生並剖析TLV資料之一一般性處置常式。針對每一協定,必須以XML格式定義類型及佈局定義。程式庫將基於定義檔案處理TLV資料。可使用TLV管理員GUI來管理新或現有XML定義檔案。
類型定義描述與協定相關聯之標籤、類型及資料類型。TLV類型定義含有以下XML屬性:
‧Tag(簡短名稱)
‧TypeName(Tag之長描述)
‧Type(指派十六進制值)
‧DataType(複合、字串、二進制陣列等)
類型定義可來自保留(參見章節4.2.3.1)或協定特定類型。此處係用以描述 primary device id 資訊之範例類型定義。
請注意,類型定義檔案名稱必須呈以下格式:<Protocol Short Name>TypeDefinitions.xml
舉例而言:OPUS Lite協定類型定義檔案名稱係 OPTL TypeDefinitions.xml
佈局定義描述TLV類型之間的位置及關係。TLV佈局定義含有以下XML屬性:
‧Tag(用於識別)
‧ParentTags(用於關係)
‧Requirement(識別Type係強制性、選用或有條件的)
‧IsCollection
‧Subltem
‧ItemsInCollection(若IsCollection旗標為真,則將集合中之項目放置於此)
每一佈局定義之位置應不重要,只要父代標籤經正確定義。此處係用以描述 primary device id 資訊之範例佈局定義。
請注意,佈局定義檔案名稱必須呈以下格式:
<ProlocolVersion>可省略,預設係最新版本。
舉例而言:OPUS Lite訊息回應協定佈局定義檔案名稱係 OPTL1PDRespDefinitions.xml
若defaultXMLFolder被省略,則預設資料夾將與可執行檔案資料夾相同。
在上文範例程式碼中,產生TLVData方法需要一TLVElement。rootData可係一根TLVElement或一根TLVDataCollection,其包含所有資料(所有元素係其子代或孫代)。
類別TLVDataCollection:TLVElement,其係自TLVElement導
出
以下方法將提供輸入功能:
TLVElement AddTLV(string TagName,object value)
TLVElement AddChildTLV(TLVElement:parent,string TagName,object value)
TLVElement AddTLV(TLVElement tlvElement)
TLVElernent AddTLV(uint tlvType,TLVDataType dataType,object value)
TLVElemeal AddTLV(uint tlvType,TLVDataType dataType,object value,TLVElement parent=null)
TLVElement AddChildTLV(TLVE1ement parent,uint tlvType,TLVDataType dataType,object value)
TLVEngine支援多支援緒且每一執行緒(執行個體)可針對不同訊息協定運行。TLVEngine API係安全執行緒方法。
1 簡介
1.1 主螢幕
2 類型定義
2.1 載入類型定義
2.2 編輯類型定義
2.3 保存類型定義
2.4 保留類型定義
3 佈局定義
3.1 載入佈局定義
3.2 編輯類型定義
3.3 保存佈局定義
圖1:類型定義主螢幕
圖2:佈局定義主螢幕
圖3:類型定義開啟檔案對話方塊
圖4:類型欄位
圖5:類型XML檔案內容
圖6:新增TLV類型定義視窗
圖7:類型定義保存檔案對話視窗
圖8:佈局定義開啟檔案對話視窗
圖9:佈局定義XML檔案內容
圖10:佈局樹狀節點色彩表示
圖11:配置佈局節點
圖12:更新及移除佈局定義
圖13:新增佈局定義視窗
圖14:類型定義保存檔案對話方塊
PKI中心通用協定框架(CPF)係基於標籤長度值(TLV)建構之一般性訊息格式。協定定義以XML檔案格式定義且每一協定需要兩個類型定義(類型定義及佈局定義)。TLV管理員可用於形成新XML定義檔案或編輯現有XML定義檔案。
可藉由按類型定義索引標籤中之Load XML按鈕來載入XML檔案。如圖3中所示將出現開啟檔案對話方塊。選擇適當佈局定義檔案且點擊Open按鈕以載入。
請注意,類型定義XML檔案名稱必須呈正確格式。否則,程式將顯示為錯誤且載入將中止。檔案名稱必須呈以下格式:<Prot.ocol Short Name>TypeDefinitions.xml
舉例而言,Opus Lite協定類型定義必須命名為OPTLTypeDefimtions.xml
在使用者已選定XML檔案之後,程式將驗證內容。若內容無效,則程式將顯示錯誤。否則,將在主顯示區域下顯示類型定義,如圖5中所示。
注意:在圖4中,在Type欄位下之數字表示係呈十六進制格式。
使用者可在TLV管理員中新增、移除或更新類型定義。為更新或移除,藉由點擊類型定義檔案之任一部分來選擇特定類型定義且點擊更新或移除按鈕。保留類型(參見2.5)不允許更新。
為新增新類型,點Add TLV Type按鈕且一新視窗將快顯,如圖6中所示。
可藉由自一下拉式選單挑選來新增保留類型,或可藉由在每一欄位中輸入值來定義一協定特定類型。點擊Add按鈕來在主顯示區域中新增類型定義。
為保存新或更新類型定義,點擊Save XML按鈕且如圖7中所示將
出現保存檔案對話方塊。在可保存XML檔案之前,必須首先定義協定簡短名稱。否則,程式將警示定義協定名稱。
在保存檔案對話方塊中,所建議檔案名稱係基於協定名稱自動建立。可選擇資料夾位置且點擊Save按鈕以保存XML檔案。圖7展示保存範例ULS類型定義。
存在數個可重新用於不同協定之通用類型定義。彼等類型定義成為 「保留全域類型定義」 且其值不允許修改。保留類型定義在程式啟動期間預先載入(參見圖1)。
可藉由按佈局定義索引標籤中之Load XML按鈕來載入XML檔案。如圖8中所示將出現開啟檔案對話方塊。選擇適當佈局定義檔案且點擊Open按鈕以載入。
請注意,佈局定義XML檔案名稱必須呈正確格式。否則,程式將顯示為錯誤且載入將中止。檔案名稱必須呈以以下格式:<Protocol Short Name><Message TypeID><Message Type Name>LayoutDEfinitions.xml
舉例而言,Opus Lite協定請求佈局定義必須命名為OPLT0PDReqLayoutDefinitions.xml.
若佈局定義XML檔案內容有效,則將在主顯示區域下顯示佈局定義,如圖9中所示。
佈局定義具有關係資訊,因此其以樹狀節點結構表示。如可注意,節點中之某些節點經色彩強調提示以供容易識別。舉例而言,參見圖10。
使用者可藉由選擇節點且點擊向上或向下按鈕來重新配置次序。一旦節點達到頂部或底部,對應按鈕將停用。參見圖11。
可使用Update或Remove按鈕來更新或移除選定佈局。請注意,使用者不能修改Tag及ParentTags欄位。參見圖12。
為新增新佈局,點擊Add TLV Layout按鈕且一新視窗將快顯,如圖13中所示。為新增佈局至集合,點擊Add to Collection按鈕且相同視窗將快顯。
使用者可自下拉式清單選擇每一欄位且點擊Add按鈕以依據使用
者挑選新增至樹狀結構或集合 請注意,必須首先在類型定義索引標籤中載入或定義類型定義以便新增新佈局。
為保存新或更新佈局定義,點擊Save XML按鈕且將如圖14中所示出現保存檔案對話方塊。必須在可保存XML檔案之前定義協定簡短名稱及訊息類型。否則,程式將警示定義協定名稱或訊息類型。
在保存檔案對話方塊中,所建議檔案名稱將基於協定名稱及訊息類型自動建立。可選擇資料夾位置且點擊Save按鈕以保存XML檔案。圖14展示保存範例Opus Lite回應佈局定義
.一嵌套類型,含有關於裝置ID類型之一個子標籤,及關於裝置ID值自身之一個子標籤。
.裝置ID、序號等之相同格式。
.ID類型係由一全域4位元組類型規定。
Claims (4)
- 一種機制,其包括:一類型長度值(TLV)引擎,其不依賴於任何特定協定,該TLV引擎經組態以處理多個協定,其中該等協定係基於相同TLV框架定義,其中新增一新協定僅需要建立新組態檔案且改變一協定僅需要改變該等組態檔案。
- 一種系統,其經組態以建立/編輯與一協定相關聯之組態檔案且將針對該協定之該等組態檔案散佈至TLV引擎,其中該等TLV引擎中之一者載入與一協定相關聯之該等組態檔案以處理該協定之一TLV訊息。
- 一種方法,其包括:自一發送器接收一輸出;載入與一特定協定相關聯之類型定義檔案及佈局定義檔案;基於該等類型定義檔案及佈局定義檔案,判定哪些TLV元素用於該協定中以及該等TLV元素之間的結構關係;根據該等類型定義檔案及佈局定義檔案產生TLV元素及結構以建立一TLV訊息;及將傳出TLV訊息傳輸至連結至一接收器之一單獨TLV引擎。
- 一種方法,其包括:自連結至一發送器之一TLV引擎接收傳入TLV訊息;載入與該TLV訊息之協定相關聯之類型定義檔案;基於該等類型定義檔案,將該所接收TLV訊息內之個別TLV元素剖析成一輸入;及將該輸入傳輸至一接收器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361756987P | 2013-01-25 | 2013-01-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201448544A true TW201448544A (zh) | 2014-12-16 |
Family
ID=51224243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103103085A TW201448544A (zh) | 2013-01-25 | 2014-01-27 | 經由通用類型長度值產生器及剖析器之訊息交換 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140215011A1 (zh) |
TW (1) | TW201448544A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138355A (zh) * | 2020-08-12 | 2022-03-04 | 艾锐势企业有限责任公司 | 生成并检测配置文件中的错误的电子设备、方法及介质 |
CN114650445B (zh) * | 2020-12-17 | 2023-08-01 | 深圳Tcl新技术有限公司 | 一种tlv数据包的过滤方法、存储介质及终端设备 |
US11516320B2 (en) | 2020-12-23 | 2022-11-29 | Itron, Inc. | Frame compatibility across network protocol versions |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050047406A1 (en) * | 2003-08-25 | 2005-03-03 | Susan Hares | Nested components for network protocols |
US7720054B2 (en) * | 2004-03-02 | 2010-05-18 | Cisco Technology, Inc. | Router configured for outputting update messages specifying a detected attribute change of a connected active path according to a prescribed routing protocol |
US8705550B2 (en) * | 2005-08-08 | 2014-04-22 | Qualcomm Incorporated | Device interface architecture and protocol |
WO2009028102A1 (ja) * | 2007-08-31 | 2009-03-05 | Fujitsu Limited | メッセージ交換方法、無線通信システム、無線端末装置、および無線基地局装置 |
US20090310511A1 (en) * | 2008-06-13 | 2009-12-17 | Silver Spring Networks, Inc. | Methods and systems for dynamically configuring and managing communication network nodes at the mac sublayer |
-
2014
- 2014-01-27 TW TW103103085A patent/TW201448544A/zh unknown
- 2014-01-27 US US14/164,627 patent/US20140215011A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20140215011A1 (en) | 2014-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3502896B1 (en) | Generation of an adapters configuration user interface using a data structure | |
US9804837B2 (en) | System and method for creating, managing, and reusing schema type definitions in services oriented architecture services, grouped in the form of libraries | |
US8375354B2 (en) | System and method and apparatus for using UML tools for defining web service bound component applications | |
US7954107B2 (en) | Method and system for integrating the existing web-based system | |
US7720953B2 (en) | System and method of data source detection | |
US8676942B2 (en) | Common configuration application programming interface | |
US8683046B2 (en) | Unified interface for configuring multiple networking technologies | |
US20100001834A1 (en) | System and method for a message registry and message handling in a service -oriented business framework | |
US8615570B2 (en) | Unified storage for configuring multiple networking technologies | |
US8751612B2 (en) | Creating cross-technology configuration settings | |
US20130254757A1 (en) | Nesting installations of software products | |
US20050114692A1 (en) | Systems, methods and software to configure and support a telecommunications system | |
TW201448544A (zh) | 經由通用類型長度值產生器及剖析器之訊息交換 | |
Li et al. | Designing large scale REST APIs based on REST chart | |
Biehl | GraphQL API Design | |
Li et al. | Automated creation of navigable REST services based on REST chart | |
Le Zou et al. | On synchronizing with web service evolution | |
CN110442331A (zh) | 一种自动化搭建代码框架的方法及系统 | |
CN117435177B (zh) | 应用程序接口构建方法、系统、设备及存储介质 | |
Beckner et al. | BizTalk 2013 Recipes: A Problem-Solution Approach | |
CN102693240A (zh) | Web服务协议语义的形式化描述方法及装置 | |
Hillier | The Microsoft Office System |