今天下午趕到復旦大學三教
去Ben Wang的JBoss講座
由於聽講座的人比較多
教室臨時從
改到
:
分
Ben在曹曉鋼同學陪同下來的
曹曉鋼同學最辛苦
上午去浦東機場接Ben
在講座開始前
和Ben進行了簡單的交談
感覺Ben是個謙謙君子
很有學者的氣質
實際上他也確實是PhD
沒有一點架子
很平易近人
很和藹
Ben講座要介紹的內容很多
因此兩個小時的演講很緊湊
講座結束之後
有幾個朋友舉手提問
其中有個朋友的問題比較尖銳
直接對准了EJB
特別是Entity Bean
而Ben的回答也堅定了我的一些觀點
這些下面再提到
提問結束以後
論壇的幾個版主
我
曹曉鋼
dlee和他的gf
smallduzi
gehf
馬偉
和在IBM做consultant的nuke陪同Ben來到陸家嘴小南國吃飯
實際上最後是由nuke埋單的
飯桌上大家邊吃邊聊
邊向Ben請教問題
我也借機問了很多關於JBoss
EJB
Hibernate方面的問題
由於Ben第一次來中國大陸
於是晚餐後我們陪Ben逛了浦東的濱江大道
眺望浦西外灘
欣賞著名的上海灘夜景
最後做鳥獸散了
Ben此次來華的主要目的就是想了解一下中國大陸
香港地區和台灣地區對於JBoss的應用情況
以及尋找合適的合作伙伴
因此他比較關心JBoss在這些地區的應用狀況
我向他介紹了一些我了解的國內的應用JBoss
應用Hibernate方面的現狀
向他提了一點點個人的見解
通過今天聽Ben的講座和Ben的交流
我覺得收獲很大
一方面是和JBoss Inc這樣一個國際著名的Java Open Source組織有了近距離的接觸和了解
也許這樣的機會可以促進中國的Java社區和國際Java社區更多的交流和合作
同時對Java視線網站也是一個很好的提升
另一方面我了解了很多關於JBoss
Hibernate方面的情況
由於Ben是JBoss的core team成員之一
因此很多情況從他嘴裡說出
我想應該是相當的准確了
雖然這僅僅代表Ben自己一個人的想法
不過我想也基本上可以代表整個JBoss Core Team的看法
這一點也是我想向大家稍微詳細介紹的地方
關於Entity Bean和Hibernate的爭論 我是一個Entity Bean的堅決反對者
圍繞Entity Bean的話題
在國內也是眾說紛纭
我去年夏天曾經就這個問題和很多人反復辯論過
由於堅決反Entity Bean
堅持O/R Mapping
特別是Hibernate的態度
最後被很多人圍攻
這也直接導致了現在Java視線論壇的誕生
對於JBoss這樣一個全面支持EJB的Java Application Server來說
了解JBoss core team對EJB
特別是對Entity Bean的態度
是我比較關心的事情
Ben在講座提問的時候就表明
Entity Bean是J
EE規范中最失敗的東西
然而對數據庫的操作又是一個軟件項目最重要的部分
如果連這部分都做不好
軟件還能做什麼?晚餐的時候
Ben也向我介紹
他以前做項目
也往往采用Session Bean去直接操作JDBC
而不采用Entity Bean
相對於Entity Bean的失敗
Hibernate卻得到了異乎尋常的關注
從Ben的意思中似乎流露出JBoss Inc有意將Hibernate做為Java數據庫持久層規范來推廣的設想
另外由於Gavin King是JDO委員會成員
Ben說從他那裡了解的情況是
現在JDO
規范已經陷入了難產
各個成員代表了不同公司的利益
相持不下
JDO
在可以預見的將來無法發布
JDO的未來已經蒙上了陰影
鑒於此
JBoss在目前的階段已經放棄了把JDO技術集成進來的設想
而轉為全面支持EJB
規范
而未來的EJB
規范據他說將非常不同於現在的EJB
我感覺JBoss似乎有點努力讓Hibernate成為EJB
規范中的一部分
而我問到既然Entity Bean是雞肋的話
而Hibernate也完全可以在CMP外面使用
又何必要另外費時費力把Hibernate集成到CMP中
做CMP的Engine呢?Ben回答是沒有必要使用CMP的
但是考慮到很多采用了CMP的老系統兼容問題
考慮到為了保持和J
EE規范的兼容問題
所以才會這樣做的
這不是一個技術因素
而是一個政治因素
當然如果你覺得沒有必要使用CMP
你可以完全可以單獨使用Hibernate
從Ben那裡了解到的情況
我覺得對於O/R Mapping未來的技術方向
稍微有點眉目
) 當前的Entity Bean無疑是失敗的
未來的EJB
中的Entity Bean也許會變成了像Hibernate的樣子
) JDO的前景堪憂
未來還遙遙無期
至少JBoss已經放棄了對JDO的興趣
) JBoss在力推Hibernate
似乎有將Hibernate做為Java持久層標准規范的設想
在Ben看來
開放源代碼軟件的競爭模式就是沒有標准的
大家都在競爭
最後優勝者就成了標准
現在Hibernate無疑是這方面的佼佼者
有望成為事實上的標准
AOP的廣泛應用 上次聚會gigix的AOP講座我沒有時間聽
這次Ben介紹AOP
我得以有幸了解了AOP的基本概念
從Ben介紹來看
JBossAOP能夠做的事情很多
可以處理Log
處理跨類調用的事務
等等
跨類調用的事務?
呵呵
這不是原來EJB的功能嗎?這也是我的一個疑問
如果AOP可以把容器管理事務
Security檢查
分布式功能全部實現
那麼還要EJB干什麼?畢竟AOP可以實現的功能是對POJO的
而且是lightweight的
無論編程
調試
部署和運行
其難度都遠遠小於EJB
而性能相當甚至更好
於是我帶著這個疑問請教Ben
他的回答就是
如果未來的發展
AOP真的可以做到的話
EJB確實就沒有使用的必要了
但是從現狀來說
有很多舊系統要兼容
有Sun的J
EE規范要兼容
沒有這個兼容認證
可能很多企業就不會用JBoss了
當然Ben沒有否定EJB
他說JBoss是在同時支持AOP和EJB的
並且JBoss做為一個App Server
要想被企業接受
全面支持J
EE標准是必要的
對於AOP和EJB的問題
Ben的看法是也許在將來J
EE規范將包括AOP
否則也許J
EE規范會逐漸被淘汰
而JBoss的做法就是支持J
EE規范
支持EJB
同時JBoss也支持AOP
你如果想兼容J
EE開發EJB
那麼OK
如果你喜歡用AOP簡化編程
那麼也OK
關於JBoss本身的發展 由於我對JBoss不是很熟悉
因此在這方面也說不出來所以然
印象比較深刻的兩點是
) JBoss接受Venture Capital
從JBoss Group改名為JBoss Inc
做為一個商業公司開始運作了
我覺得這是一個很好的事情
軟件要成功
遲早要和商業化運作結合的
) JBoss要成為一個Java Open Source Project的社區
不斷的吸收適合自己發展需要的Java Open Source Project
共同推進OpenSource事業的發展
通過這次交流
我想包括我本人在內
對Hibernate的信心都無疑得到了巨大的加強
我雖然反對Entity Bean
對JDO標准也一向沒有好感
但是我從來沒有想過Hibernate有成為O/R Mapping標准的可能性
我只是一慣認為
Hibernate是一個很好用很實用的東西
在項目中使用可以節省巨大的人力
可以讓你的OO編程變得很舒服
就是現在我也不認為Hibernate會成為O/R Mapping的事實標准
如果有一天有更好的O/R Mapping框架出現
我也會毫不猶豫的喜新厭舊
不過毫無疑問的是
Hibernate必將成為Java O/R Mapping領域裡最主流的
最有前途的
應用最廣泛的框架之一
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28584.html