Posted on 2006-04-02 14:45
canonical 閱讀(1630)
評(píng)論(0) 編輯 收藏 所屬分類:
軟件開發(fā)
???? http://www.primeton.com/
??? 普
元軟件公司是國內(nèi)專業(yè)的中間件提供商,從國家得到了不少投資,做出來的東西也是相當(dāng)?shù)凝嫶蟆W罱赵狤OS的宣傳和發(fā)展的勢頭都很盛。其宣傳材料中屢次提
到“軟件的涅磐“這一用語,這明顯是一種危言聳聽之舉,當(dāng)然這在業(yè)內(nèi)也不算什么新鮮的事情。按照EOS的宣傳,"以圖形化的構(gòu)件組裝方式“畫”出來的軟件
無論從結(jié)構(gòu)上、形式上還是開發(fā)過程上都堪稱簡捷而美的軟件"。這一提法倒是別開生面。圖形化與簡潔,與美竟然還存在著這樣必然的聯(lián)系,實(shí)在是一種創(chuàng)舉。
????
從普元公開的資料來看,EOS的一個(gè)鮮明特征是全面基于xml描述,即所謂的xml數(shù)據(jù)總線。表面上看起來,xml結(jié)構(gòu)內(nèi)置于系統(tǒng)內(nèi)核中似乎很時(shí)尚,但實(shí)
際上,EOS產(chǎn)生的xml描述文件中的大量條目都是EOS自身的結(jié)構(gòu)要求,而與實(shí)際業(yè)務(wù)無關(guān),即EOS描述文件中的有效信息量密度很低。這是一個(gè)危險(xiǎn)的信
號(hào)。EOS的xml描述本身可以看作是一種完全新的編程語言,但這個(gè)語言似乎沒有什么抽象能力和組合能力,對于關(guān)聯(lián)的表達(dá)能力也很弱(到處都是數(shù)字
id)。如果直接手工編寫,那是一件要死人的事情。只有通過集成開發(fā)環(huán)境的可視化界面,EOS才呈現(xiàn)出可理解的一面。
????
EOS的概念與Language
Workbench是不同的,其中的結(jié)構(gòu)似乎很難進(jìn)行有效的擴(kuò)展。而所謂的xml總線技術(shù)更加劇了這一點(diǎn)。xml數(shù)據(jù)總線其實(shí)與面向過程編程類似,只是過
程變成了service,數(shù)據(jù)變成了xml節(jié)點(diǎn)而已。對象與簡單數(shù)據(jù)結(jié)構(gòu)在結(jié)構(gòu)表達(dá)上的本質(zhì)差異就在于對象通過成員函數(shù)可以封裝動(dòng)態(tài)結(jié)構(gòu)。雖然xml節(jié)點(diǎn)
的表達(dá)能力遠(yuǎn)遠(yuǎn)超越了普通的數(shù)據(jù)類型,但充其量也不過是對現(xiàn)有數(shù)據(jù)的規(guī)整的樹形表示,并不具有動(dòng)態(tài)計(jì)算能力(甚至是最簡單的lazy
evaluation)。喪失了動(dòng)態(tài)計(jì)算能力,就意味著我們很難在系統(tǒng)中動(dòng)態(tài)引入結(jié)構(gòu),程序中所操縱的結(jié)構(gòu)都需要事前定義出來,這將極大的限制系統(tǒng)的可擴(kuò)
展性。另一方面,xml節(jié)點(diǎn)受限于自身格式,其描述關(guān)聯(lián)的能力也要弱于java對象結(jié)構(gòu)本身。對象通過引用訪問相關(guān)對象,其隱含意義是對象處于同一地址
(狀態(tài))空間中,可以非常自然的保證對象的唯一性并實(shí)現(xiàn)同步訪問。在跨越狀態(tài)空間的邊界時(shí),xml表示是有意義的,因?yàn)槲覀冃枰阉械慕Y(jié)構(gòu)都暴露出來并
加以描述(外在化)。而在狀態(tài)空間內(nèi)部,我們需要更加緊致有效的表述方式。
???? 在具體的實(shí)現(xiàn)中,
EOS暴露給程序員的xml操縱API相當(dāng)?shù)脑迹褂闷饋砗芊爆崱T谇芭_(tái)展示頁面中,如果不使用EOS的界面組件,提取數(shù)據(jù)本身就是一種不小的困難。
EOS的前臺(tái)展示組件與后臺(tái)的結(jié)合也比較弱,后臺(tái)改變之后,缺乏有效的手段來檢測并保證前后臺(tái)結(jié)構(gòu)的同步性。所謂的前臺(tái)構(gòu)件層似乎只是提供了一些幫助函數(shù)
和功能固化的組件,并沒有提供什么有效的利于結(jié)構(gòu)抽象和結(jié)構(gòu)重組的機(jī)制。
???? 整個(gè)EOS的構(gòu)架看起來很象是一個(gè)monster, 我很難想象它的各個(gè)部分如何才能獨(dú)立的,深入的發(fā)展下去。