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)來區分各模擬模塊的從屬關係。

內部類型

複合模塊所使用的局部通道類型和模塊類型可以在此複合模塊中被定義,這是為了減少命名空間的污染。

元數據註釋

可以通過增加屬性來註釋模塊或者通道的類型、參數、門和子模塊。模擬內核不直接使用元數據,但是元數據攜帶者多種工具、運行時環境、或者模型中另外模塊的事件等的額外信息。例如,一個模塊繪圖的表示(圖標等),或者一個參數的提示字元串和度量單位(毫瓦等)已經用元數據註釋指定了。

赞(0)