NED語言是用來描述一個仿真的模型。
基本介紹
- 中文名:NED語言
- 外文名:NED
NED概述,NED語言特性,層次化,基於元件,接口,繼承,包,內部類型,元數據注釋,
NED概述
NED(Network Description)語言用於描述仿真模型的結構。NED允許用戶定義一些簡單的模組,連線組合它們。使之成為複合模型。用戶可以將一些複合模型標記為networks,這一種自包含的仿真模型。信道是另一種元件類型,它的實例同樣可以在複合模型中套用。
NED語言特性
NED語言本身有如下特性,使之非常適合於一些大型的項目。
層次化
處理複雜性的傳統方法是引入層次化。在OMNET++中,任何一個模組如果作為單個實體太過複雜,那么可以將它分成更小的模組,並在使用時看成一個複合模組。
基於元件
簡單模組和複合模組本質上都可以重複使用,這樣不僅減少了代碼量,更重要的是允許元件庫(像INET Framework、MIXIM、Castalla等)存在。
接口
通常使用一個模組或者信道類型時,模組和信道接口是作為占位符來使用的,具體的模組或信道類型是由設定網路時的一個參數決定的。具體的模組類型必須能“實現”它們所代替的接口。舉個例子,給出一個叫做MobileHost的複合模型,這個複合模組包含一個mobility的子模組,類型為IMobility(這裡 IMobility是一個模組接口),mobility實際的類型可以從實現IMobility的模組的類型中選擇(Random WalkMobility或TurtleMobility等)。
繼承
模組和信道可以子類化,派生模組和信道可以增加新的參數、門和新子模組(在複合模組的情況下)及連線。他們可以將現有的參數設定為指定的值,就可以從GenericTCPClientApp模型中派生出FTPClientApp;或者通過增加WebClientApp子模組並連線到已繼承的TCP子模組,就可以從BaseHost複合模組中派生出WebClientHost複合模組。
包
NED語言有著類似於Java包結構的特徵,為了減少不同模組間的命名衝突,引入了NEDPATH(類似於Java的CLASSPATH)來區分各仿真模組的從屬關係。
內部類型
複合模組所使用的局部信道類型和模組類型可以在此複合模組中被定義,這是為了減少命名空間的污染。
元數據注釋
可以通過增加屬性來注釋模組或者信道的類型、參數、門和子模組。仿真核心不直接使用元數據,但是元數據攜帶者多種工具、運行時環境、或者模型中另外模組的事件等的額外信息。例如,一個模組繪圖的表示(圖示等),或者一個參數的提示字元串和度量單位(毫瓦等)已經用元數據注釋指定了。