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