從Python & Zope到Java with EJB 3 & JBoss SEAM

gudesheng發表於2008-01-03

 Nuxeo SAS宣佈他們的下一代企業內容管理平臺,預計2006年11月釋出,將會基於開源Java技術,尤其是JBoss SEAM, EJB 3和JBoss Application Server. 這個改變非常有意思,Nexeo曾經號稱是全球最大的使用Zope開發的公司,他們使用Python和ZOPE application server.

該公司最初選擇ZOPE是在2000年,當時開源Java產品還不多見。

在過去的六年裡,公司一直嘗試提升Zope產品的基礎元件,包括物件資料庫,文件模型,檢索引擎,工作流引擎,變成工具。而這些東西越來越多的出現在Java領域,例如Jackrabbit,Lucene,jBPM,Eclipse...

於是公司開始嘗試將Zope作為web前端,Jackrabbit+lucene作為後臺。最後公司覺得全部重寫該ECM,使用Java開發。

使用Java開發的優點有:
方便僱傭和訓練僱員
有豐富的開源元件,和ECM相關的有: Jackrabbit, Lucene, jBPM, JBoss Rules, etc.
我們可以選擇應用伺服器
有很東工具可以提升開發效率
方便整合客戶資訊系統
Java 現在非常“敏捷” ,這得益於JUnit, IDE支援重構,OSGi component model, AOP, 以及即將來的JVM scripting support (JSR-223)…
整個開源Java社群都具有競爭力 (感謝 Apache, JBoss, Eclipse, ObjectWeb, 以及其他的 groups 和 projects) 

缺點:
我們需要重寫整個應用(我們也可以選擇將zope2升級到sope3,這就不是那麼完美,工作量也很大,也許比Java重寫還大)
我們失去了全球最大的zope相關產品開發商的頭銜 ,但我們準備爭做最大的開源ECM公司,更多專注於業務(ECM)而不是技術。
我們離開了Python社群, 這裡有很多聰明和知識淵博的人,當然開源Java社群也非常Cool.


公司認為,將花費5人年來實現我們前一個版本的功能,但是具有更好的和更具有伸縮性的架構。我們已經在移植上工作了六個月。


公司決定使用JBoss SEAM 作為他們的web應用框架。此外,他們選擇JBoss應用伺服器作為完全的Java EE環境,以便利用EJB和實際應用伺服器的優點:

效能: Nuxeo 5 的目標是高文件容量和高併發事務,我們相信EJB容器的pooling和state複製服務會滿足我們的需求。

完整性和安全: Nuxeo 5 利用EJB3的事務和安全模型。我們有一個模組化的系統,有一個簡單的方法來保證所有元件在所有JVM上的事務和安全。

表現層和業務的完全分離: 所有Nuxeo 5的處理服務都用EJB3來實現,它帶來的好處有:

可以將表現層和邏輯層部署在不同的JVM上,還可以將一些資源需求比較高的業務元件部署在不同的機器上。
業務和表現層的開發模型完全不同,業務層需要遠端訪問:Nuxeo 5 可以同時用瘦客戶端和富客戶端訪問。EJB3使我們能夠部署遠端業務API.該API可以通過SOAP訪問,也可以通過RMI和IIOP訪問。

關注JBoss是非常重要的,我們需要一個能夠執行的產品,越快越好(預計在2006年11月),所以要實現這個目標的最好方法就是專著於一個目標平臺。JBoss從產品上看,非常成熟,Java EE 5/EJB 3相容,有專業的支援。最後,我們還選擇了JBoss的三個產品(Seam, jBPM and JBoss Rules) 作為我們平臺的主要構建工具。當然它們也可以部署在其他平臺上,但是元件和應用伺服器都是一個提供方顯然更加便利。

但長期目標,我們仍然會考慮其它的應用伺服器,包括JOnAS and Geronimo。我們專門設計了Nuxeo Runtime layer來達到這個目的,即通過為不同的平臺插入介面卡。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1310431


相關文章