JBossDO: 又一個免費的JDO產品現身

來源:互聯網
上載者:User

JBossDO正式公布

最近,JBoss在其4.0版的內部開發版4.2中公布了它的JDO實現產品:JBossDO,為免費JDO產品的陣營又添了一位生力軍!

 

說起JBoss,我不由得想起了我的EJB開發曆程。三年前,我陰差陽錯地陷入了EJB開發的泥潭,當時還是J2EE1.2規範,由於是Java資料庫開發的大熱門,所以我們也只好跟上這個風,要不人前人後,怎麼好意思抬頭呢(可別當真)? 我們當時用的是WebLogic5.1,開發BMP方式的實體Bean,其中的酸甜苦辣,真是一言難盡,往事不堪回首Java中……估計很多朋友也有過相似的經曆,設計JavaBean、實現EJB介面、Home介面、編寫具體的BMP Bean,一堆SQL,編譯,打包,EJB編譯,關閉伺服器,上傳,啟動伺服器……這些都是對代碼有一點點改動所需要的完整過程,其中的調試過程簡直是令人窒息!當時的幾個程式員痛苦至極,整天尋死覓活的,看了真讓人心疼。不過我也是其中之一,那種痛苦至今記憶猶新,直到今天,想起這些時刻還常常犯事噁心,總有一種想吐的感覺。

雖然J2EE是個正常化的東西,但在具體的伺服器上進行開發,比起原先的JDBC+SQL來,工作量非但沒減少,反而增加了很多,有一種生拉硬套的感覺,結果導致設計彆扭,開發緩慢,調試麻煩,BUG多多。不過既然EJB是規範,那我們就應該適應它,以前喝不慣可口可樂,但它是個規範,慢慢調整自己的口型,現在不也習慣了?華主席說過,凡是毛主席說過的,都是正確的,在Java世界裡,Sun是大哥大,凡是Sun提出的,我們也應該堅決執行!於是,我開始將這些開發的繁瑣,歸咎於WebLogic,接著就開始研究不同的J2EE伺服器,這樣,我看了WebSphere,Sun的DynamicsXXX(記不清楚了),Oracle的Application Server,等等,其中還有一個令人一陣驚喜的產品:金碟的阿派斯!它可是一個完全國產的東東,總算走在了時代的前沿。不過這個產品配置同樣麻煩,後來進展也比較緩慢,與當今的IBM和BEA兩大巨頭無法同日而語。我繼續研究J2EE伺服器,最後壓軸的當然就是今天的主角:JBoss,一個開放源碼的免費J2EE伺服器!自動類更新檢測,EJB熱發布,一切是那麼的美好!JBoss最注重的就是易用性,方便開發、減少手續、節省時間是其最大特色。

實踐證明,易用性是讓開發人員在如今新技術層出不窮的時代最為推崇的東西,誰抓住一點,誰就得到程式員的心!看看.NET的C#,看看JDK1.5的改進,看看J2EE規範不斷的改進,看看JDO……

EJB在近幾年也不斷髮展出新的規範,現在已經是2.1版了,每一個版本都有著不同程度的易用性改進,比如EJBQL,在不遠的將來,可能在3.0版本中還會將EJBQL擴充為全動態!JBoss緊抓住這些特點,在省事、省心方面下了很大功夫,效能也不斷最佳化,慢慢地成熟起來,終於有一天,JBoss可以跟Sun主席叫板了!前一陣的JBoss與Sun的不愉快說明了這一點,所謂樹大招風,不,應該是勢大心高,JBoss逐漸顯出霸氣!

JBoss中開始主推一個新的開發概念:面向方面的編程(Aspect-Oriented Programming,簡稱AOP),這確實是個在層次上高於OOP的好東東,可以讓關注不同方面(效能、日誌、安全等等)的開發人員專註於編寫相關的代碼而不互相干擾,最後又天衣無縫地整合在一起成為穩定的系統。這個概念雖然已經提出來幾年了,但還不流行,屬於比較前位的概念,JBoss這麼一搞,可能本來Sun想提出來的,結果被JBoss搶了先手,你說Sun氣不氣?(純屬猜測,請勿當真)。

JBoss很想在自己的J2EE伺服器中加入新的特性,而Sun把持著規範,在規範相容性上面向JBoss捅了一刀,告訴它:“喂,哥們兒,悠著點,別太冒頭了,有些東西應該讓領導來提,別自己想得太超前了!” JBoss當然不買帳,它批評Sun對Java規範的獨攬大權而做事拖遢,進展緩慢(其實我對Sun的這方面也很不滿意,只不過我還沒寫出JBoss這樣的產品,唉,英雄氣短!),而JBoss深得人心,應該在Java世界裡給個名份才行!是不是感覺有點象二奶逼宮?呵呵……

好了,我們回到主題上來,JDO是Sun為簡化資料庫開發提出的新規範,目標是透明的Object Storage Service。這種好東東,JBoss當然不會放過,也許這也是JBoss和Sun言歸於好的契機吧!我們看到,JBoss在很短的時間內選擇了JDO這個方面,並且做出了產品,而且還是免費的,實在是功不可沒。至此,免費產品家族在TJDO、XORM、OJB的基礎上,又多了一個JBossDO!不過目前的JBossDO只能用在JBoss伺服器中,以後可能會放開限制。JBossDO目前還有一些其它限制,比如不支援繼承,不支援自動建立資料庫結構等等,這些應該都算是實用性的絆腳石,希望在不遠的將來能看到更成熟的JBossDO產品!

附註:經過對JBossDO的一番研究後,我不得不給大家帶來一點負面的資訊:JBossDO不完全符合JDO規範,除掉前面說過的不支援繼承之外,還有以下明顯的衝突:

1、對資料的更新不採用事務:JDO規範要求所有對資料進行更新的操作必須放到一個transaction中,方法是PM.currentTransaction()對象的begin()和commit(),但在JBoss的示範代碼中,很明顯沒有交易處理語句,對資料的更新只是放到getPersistenceManager()和pm.close()之間,這一點不利於實現樂觀事務控制(Optimistic Transaction,JDO的重要可選特性之一)。

2、查詢語言不符合JDOQL規範,JDOQL要求查詢的斷言符合Java語言規範,比如等值比較使用“==”,而與操作使用“&&”等等,但JBossDO顯然不符合這些規範。

難道這又是JBoss再一次向Sun叫板?平心而論,我並不支援JBoss的這些做法,其它所有的JDO產品都是按照規範來的,雖然我不是老夫子,但JBoss此舉實在令人費解。這些問題還有待進一步研究。

最新訊息:JBoss負責人已經修正和解釋了上面提到的兩個問題,第一個問題是因為他們使用的是JBoss伺服器的JTA;第二個問題是示範代碼寫錯了。請看這裡:http://www.jdocentral.com/forums/index.php?s=5e0542b8ce25715faf2783f15cd1f72f&act=ST&f=5&t=787&st=0&#entry4075

 

本文的著作權屬於筆者本人,但歡迎轉載,前提是註明出處和原作者。另外,歡迎在我的專欄中查看我的另幾篇文章,並提出寶貴意見!

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.