從Python & Zope到Java with EJB 3 & JBoss SEAM
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
相關文章
- ejb
- 藉助 zope.interface 深入瞭解 Python 介面Python
- 27、EJB與JAVA BEAN的區別?JavaBean
- 從 Python 2 切換到 Python 3 你所需要了解的Python
- ① EJB無狀態的bean(建立EJB的基礎教程)Bean
- 從Java到Kotlin(八)JavaKotlin
- 從Java到Kotlin(七)JavaKotlin
- EJB簡單理解
- ABAP TEST-SEAM 的使用方法
- Python3之從遞迴到閉包再到裝飾器Python遞迴
- 從 Java 到 Scala(四):TraitsJavaAI
- 從 Java 到 Scala(二):objectJavaObject
- Python從入門到精通Python
- netty系列之:使用Jboss Marshalling來序列化java物件NettyJava物件
- 從Java到Kotlin,然後又回到Java!JavaKotlin
- Python 從入門到放棄——Python科普!Python
- 從Java到JVM到OS執行緒睡眠JavaJVM執行緒
- 從 Java 到 Kotlin - 介紹 KotlinJavaKotlin
- Python從入門到轉行Python
- 從 python 到 Scala 簡明教程Python
- 從 java 8到 java 11變化一覽Java
- Python3 《零基礎小白從入門到實戰》之“列表”Python
- 120ms 到 30ms:從 Python 到 RustPythonRust
- java 從EXCEL匯入到系統JavaExcel
- Python:從閉包到裝飾器Python
- 從Python到Go:初學筆記PythonGo筆記
- Python從菜鳥到高手:分片(Slicing)Python
- Jboss eap7.1 配置部署
- JBoss安全問題總結
- JBOSS未授權訪問
- 從零到專業,程式設計師快速入門Python的3種方法!程式設計師Python
- python2到python3程式碼轉化:2to3Python
- 使用PyO3從Python呼叫 Rust:加速PythonPythonRust
- vue-cli3 從搭建到優化Vue優化
- 從 jQuery 到 Vue3 的快捷通道jQueryVue
- 從 Java 位元組碼到 ASM 實踐JavaASM
- 從 Java 到 Scala (三): object 的應用JavaObject
- Java集合從菜鳥到大神演變Java
- Java 從入門到精通-反射機制Java反射