MDA 于JAVA

          Posted on 2008-06-26 14:58 英雄 閱讀(1398) 評論(0)  編輯  收藏

          現在元數據驅動架構的應用日益廣泛了。這種模式的應用一般為公司的架構師根據經驗提供一套schema定義,而業務邏輯實現由原來的編碼轉為按照此schema定義數據。之后有些系統使用代碼生成機制來生成代碼;而有些系統則采用編寫一套框架類,執行時解析定義數據,從而執行數據所表達的邏輯。這兩種方式各有利弊。
          對于第一種方式,會生成一堆固定模式的代碼,如果允許直接修改這些代碼,將造成很大的維護量;第二種方式,由于是解析執行,非常值得懷疑是否會造成JVM hotspot機制失靈,從而導致性能問題;最理想的方式我個人認為是生成代碼,但限制這些代碼為只讀代碼,同時保證這些生成代碼也要建立在框架結構之上,從而可以再靈活動態攔截進代碼。這樣一方面,提供了MDA外的補充,即可以插寫代碼;另一方面可以充分利用JVM hotspot編譯執行機制。
          前面也提到了,由于MDA起源于架構師的經驗,因此schema是不太可能保羅萬象的。MDA在項目上的應用必須要提供一種補充機制。一般也就是采用AOP切面編程或回調機制來做這件補充。首先保證項目的價值實現,然后再后期將這些代碼實現抽象進schema的范圍,從而擴大元數據的表達能力。我個人認為元數據擴大的極限就是編程語言,呵呵,想想吧,這個認識不是空話,所以我MDA的系統一定是留著補充機制的。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 通许县| 康乐县| 五常市| 宁强县| 兴文县| 防城港市| 大庆市| 息烽县| 海原县| 佛学| 景谷| 青海省| 将乐县| 永嘉县| 鄄城县| 含山县| 老河口市| 崇州市| 岳池县| 龙州县| 扬州市| 樟树市| 响水县| 通渭县| 万载县| 双江| 乐陵市| 霸州市| 钟山县| 沁水县| 巴塘县| 靖州| 湘乡市| 汉阴县| 廊坊市| 肇东市| 安化县| 光山县| 新兴县| 应用必备| 江城|