<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    [導入]再談普元EOS中的數據總線

    Posted on 2006-04-02 14:47 canonical 閱讀(1925) 評論(2)  編輯  收藏 所屬分類: 軟件開發
    ?? 前兩天一位普元的朋友衣風http://blog.sina.com.cn/u/1495516693在我的blog上留言,談到對數據總線的不同看法. 我本人并未使用過普元EOS,所做的判斷只是基于我個人膚淺的第一印象, 很有可能是不準確的. 不過, 目前我仍然堅持自己對于普元EOS的看法,呵呵.
    ?? ?
    ??? 1. EOS產生的xml描述文件中的大量條目都是EOS自身的結構要求,而與實際業務無關,即EOS描述文件中的有效信息量密度很低.
    ??? 衣風認為條目并不是EOS自身的結構要求,而是業務對象的結構描述. 這里我的看法是業務對象應該盡量通過領域(Domain)語言來描述, 領域信息的外在表象應該盡量是卷縮的,而不是展開的, 應該盡量是抽象的而不是實現細節層面上的.例如:
    ??? <function class="test.MyFunctionProvider">
    ??????? <args>
    ??????????? <arg>
    ??????????????? <name>argA</name>
    ??????????????? <value>3</value>
    ??????????? </arg>
    ??????? </args>
    ??? </function>
    ??? 以上信息可以描述一個方法調用, 這里的function, args, arg, name, value等標簽的設置都是解析器為了理解該調用的語義而規定的結構元素,這些元素并不屬于函數本身. 例如我們可以規定如下的調用格式來簡化描述文件而不損失信息,
    ??? <function class="test.MyFunctionProvider">
    ??????? <arg name="argA">3</arg>
    ??? </function>
    ??? 而在我們的工作流引擎中, 業務操作的調用以封裝后的形式出現
    ??? <BusinessA:DoWorkA argA="3"/>
    ??? 通過標簽封裝之后, 我們在調用的時候所需要提供的信息是最小化的, 每一個涉及到的元素都是有著業務含義的, 而將解析器本身的結構要求隱蔽在封裝的標簽定義中.此后我們如果更換了實現,而業務需求不變, 則我們的調用處是不會受到影響的.
    ??? 現在基于xml語法的文件格式很多, 我們的工作流引擎也采用了xml描述. 但是我們的一個基本觀點是, xml配置文件解析器不應該直接理解文件中所有的標簽, 即它只需要理解自身的結構元素, 而為引入Domain知識保留余地.
    ???
    ??? 2. 普元EOS中的結構似乎很難進行有效的擴展。而所謂的xml總線技術更加劇了這一點
    ??? 衣風認為"正是將XML作為數據傳遞的總線,才使應用在數據層次上具有了較強的擴展能力"。從面向對象的觀點看, 程序中普適性的基本基元是數據與行為的集合體, 而程序模塊之間的交互也絕不僅僅是通過數據來進行, 而是往往呈現出一種數據與行為的交織狀況. 普元的模型應該包含了大量發生緊密關聯的局部元素, 它們應該處在同一進程(狀態)空間中, 直接訪問對象應該是最簡單,最經濟, 最完備的信息傳遞方式, 而"xml節點的表達能力遠遠超越了普通的數據類型,但充其量也不過是對現有數據的規整的樹形表示,并不具有動態計算能力(甚至是最簡單的lazy evaluation)". 實際上對于所謂的總線, 最簡單的模型是一個可以動態管理的變量集合, 那么一個Map就足夠了. 在集合中我們可以保存各種對象, 比如xml節點, 但是又不限于xml節點. 從建模的角度上說, 把xml節點定義為一級集合元素我認為是不合適的. 通過對象的成員函數, 我們在對象圖中可以包含大量的動態計算信息, 例如
    ???? obj.getSomeCalculatedAttribute().getLazyLoadValue()
    ??? 這些動態語義在純數據含義的xml總線技術中不知道如何表達.
    ??? 對象圖表達數據關聯的能力也強于樹形結構的xml節點, 例如 obj.getRefObj().getRefObj() == obj, 不知道這樣的關聯在普元EOS的數據總線中如何表達.
    ??? 在并發訪問中如果需要同步, 對于對象, 我們可以使用synchronized機制, 但是對于xml節點不知道如何才能有通用的處理方式.?

    Feedback

    # re: [導入]再談普元EOS中的數據總線  回復  更多評論   

    2007-04-24 15:57 by 方順
    一句話,eos對于業務的侵入性太強了!

    # re: [導入]再談普元EOS中的數據總線  回復  更多評論   

    2007-10-08 17:31 by 看熱鬧的人
    eos的思想值得借鑒,但是我個人感覺普元在將這種思想轉化成商業產品這步上不理想,也許這種思想根本就不適合以通用框架的形式推出。如果不這樣又怎么能夠實現商業化呢?!
    主站蜘蛛池模板: 亚洲AV综合色区无码一区爱AV| 国产成人不卡亚洲精品91| 亚洲AV无码成H人在线观看| 在线永久免费的视频草莓| 国产日韩精品无码区免费专区国产 | 好吊妞视频免费视频| 无码人妻精品中文字幕免费 | 亚洲人成网站18禁止一区| 成人免费视频小说| 亚洲三级在线免费观看| 日本免费在线中文字幕| 中文字幕无线码中文字幕免费| 久久久久久久久无码精品亚洲日韩| 亚洲第一成年网站大全亚洲| 亚洲国产AV无码专区亚洲AV| 亚洲视频人成在线播放| 免费大香伊蕉在人线国产| 成人免费视频试看120秒| 国产免费不卡v片在线观看| 1000部无遮挡拍拍拍免费视频观看 | 免费可以在线看A∨网站| 69视频在线观看免费| 免费91最新地址永久入口| 男女一进一出抽搐免费视频| 成人精品综合免费视频| 无码免费又爽又高潮喷水的视频| 亚洲av无码兔费综合| 亚洲国产精品久久久久秋霞小| 亚洲人精品亚洲人成在线| 亚洲成年人免费网站| 亚洲成a人片在线观| 亚洲第一页在线观看| 亚洲最大中文字幕| 亚洲国产综合人成综合网站00| 亚洲欧洲国产综合| 亚洲免费在线视频播放| avtt天堂网手机版亚洲| 亚洲欧美精品午睡沙发| 亚洲爆乳成av人在线视菜奈实| 亚洲国产AV一区二区三区四区| 欧美色欧美亚洲另类二区|