領測軟件測試網
模型驅動應用的核心和癥結就在于一個長期困擾我們的問題:如何對復雜問題建模?對模型驅動的眾多懷疑正是這個問題沒能得到有效解決的明證。
一、MDA的規劃及實現
MDA的規劃其實是非常宏偉的,MDA顯然充分意識到了問題的復雜性,所有嚴格區分了MDA四類模型:
1、計算無關模型(Computation Independent Model, CIM)
2、平臺無關模型(Platform Independent Model, PIM)
3、平臺特定模型(Platform Specific Model, PSM)
4、實現相關模型(Implementation Specific Model, ISM)。
其中3、4二個模型解決軟件基礎設施問題,也即如今熱門的業務基礎平臺問題。模型驅動實現的關鍵在于,從PIM到業務基礎平臺如何對接。就MDA的規劃來看,主要是通過模型交換。但可執行UML(xUML)顯然給出了另一種快捷的方式。這樣,就有二種模型驅動的實現方式:
xUML--就是使用動態執行引擎直接執行UML模型
模型交換--就是把PIM模型變換為容易執行的PSM模型
MDA更多的是從
白盒視角規劃了業務基礎平臺的實現架構?蓤绦蠻ML的模型驅動程度無疑更高。且較之MDA采用PSM來解決對多平臺的支持,xUML則是類
java跨平臺的方式,顯得更為
敏捷。
二、計算的邏輯模型或邏輯服務模型
更重要的是,xUML實際上消解了PIM與PSM的區分,而專注于計算的邏輯模型。所以,在asp?type=4&id=79">關于《新一代企業信息系統研究與
開發綱要》的對話中,我用不嚴格的語言表術了這個問題:
從現實的觀點出發,邏輯層(或服務層)才是模型驅動的關鍵。就一般而論,業務模型與技術體系的松散耦合,是以邏輯服務層為中介的。所以,我得出一個結論:一套良好的服務元語義,可能是模型驅動系統的關鍵。
這里,我把計算的邏輯模型稱為邏輯服務模型,是想融合進
SOA的思想(而不是技術)。所謂一套良好的服務元語義就是指一種xUML的規范。顯然,這里一個隱含的前提是,UML語言本身并不能直接作為這種規范,需要在其上擴展,尤其是融合DSL,方能構建出良好的服務元語義。
當然,這里出現了拋開UML另起爐灶的觀點。從理論上,這也是可行的。比如,aspx">Microsoft就可能這樣做。但是,這個成本太高,也只有Microsoft玩得起。事實上,模型驅動的思想很早就出現了。如今通過MDA流行起來,實際上是得益于UML的成功。拋開UML談模型驅動,明顯缺乏根基。最近UMLChina上的一個消息微軟: "UML and more" 的延期和期待表明,就是財大氣粗的Mcrosoft也并不想赤裸裸地拋開UML鬧革命。所以:
UML無疑還是需要的,它是“模型驅動應用”具備現實可行性的前提。重要的不是拋棄UML,而是如何完善和拓展UML,以構造一套良好的邏輯服務建模規范。
在我前面的一系列隨筆中,多次提到aspx">業務本體分析的意義。實際上也是在探索拓展UML的可能方式。把“本體”概念與UML關聯,無疑很有希望開拓一個全新的領域。當然,這個難度很大。我曾經在轉帖:CYC+CRM:知識商務的未來之路 中說:
文章來源于領測軟件測試網 http://www.k11sc111.com/
TAG:
CIM
ODM
建模
模型
驅動