没有应用程序服务器
我們最近發布了有關從免費Plumbr部署中收集的應用服務器市場份額的數據 。 它產生了很好的共鳴-通過不同的渠道,我們獲得了數百種有關如何解釋數據的評論。 但是,通過各種渠道不斷提出一種形式不同的論點。 無論是采用“ T omcat不是應用程序服務器 ”的形式還是“ 此數據都無關緊要,因為它沒有集中在Weblogic或WebSphere等真實的應用程序服務器上 ”,它只是在不斷出現。 這使我們感到奇怪– Java社區為什么對真正的應用服務器有如此不同的看法。 因此,我們決定對該問題進行一些說明。 調查最明顯的來源(即Wikipedia ),事情看起來還不錯:
應用程序服務器可以是提供通用方法來創建應用程序服務器實現的軟件框架,而無需考慮應用程序的功能是什么,也可以是特定實現實例的服務器部分。 在這兩種情況下,服務器的功能均致力于有效執行過程(程序,例程,腳本)以支持其應用程序。
到目前為止,一切都很好。 顯然任何東西都可以是基于Wikipedia定義的應用程序服務器。 但是,當我們嘗試為Java EE應用服務器找到正式定義時,事情就變得更加有趣了。
如果深入研究Java EE規范 ,您會發現Sun既沒有過去的歷史,也沒有Oracle在官方規范中使用“應用程序服務器”一詞。 而是在整個材料中使用了“容器”一詞。 容器必須支持不同的規范,例如JMS , JTA , JSP,以保證應用程序可跨不同的實現移植。
下一個重要的事實–在Java EE 5之前, Sun / Oracle承認您的產品正式符合Java EE的唯一方法是實施整個規范。 這導致了大型,單一的“企業級”產品,例如臭名昭??著的Websphere和2000年代中期的Weblogic。 結果,越來越多的人蜂擁而至,遠離了幾乎不可能使用的野獸,并開始使用諸如Tomcat或Jetty之類的更人性化的東西。 出乎意料的是,這些產品的供應商對官方規范的關注程度并不低,而是專注于為手頭的工作提供良好的工具。 因此,規格委員會最終屈服并分解了規格。
Java EE 6中的這種故障稱為Java EE配置文件。 Java EE 6規范使容器供應商可以選擇是希望實現規范的子集以獲得Web Profile認證,還是希望獲得Full Profile并實現所有規范。 下表描述了相應配置文件中的強制性規范:
| 完整的Java EE 6.0實現 | |||||
| 網站資料 | |||||
| Servlet 3.0 | JSP 2.2 | EL 2.2 | EJB 3.1 | JMS 1.1 | JavaMail 1.1 |
| JSR-45 1.0 | JSTL 1.2 | JSRF 2.0 | 連接器1.6 | Web服務1.3 | JAX-RPC 1.1 |
| 通用注釋1.1 | EJB 3.1精簡版 | JTA 1.1 | JAX-WS 2.2 | JAX-RS 1.1 | JAXB 2.2 |
| JPA 2.0 | Bean驗證1.0 | 托管豆1.0 | JAXR 1.0 | Java EE管理1.1 | Java EE部署1.2 |
| 攔截器1.0 | JSR 299 1.0 | 依賴注入1.0 | JACC 1.4 | JASPIC 1.0 | Web服務元數據2.1 |
因此,如果您希望構建自己的完整Java EE實現,則最好為該列表中的所有30個縮寫提供實現。 由于這絕不是一件容易的事,所以在發布本文時,只有以下應用程序服務器由Oracle 正式認證為Java EE 6:
| 完整檔案 |
| 甲骨文Glassfish 3 |
| IBM WebShpere 8 |
| IBM WebSphere CE 3 |
| 甲骨文Weblogic |
| JBoss AS 7 |
| Apache Geronimo 3 |
| 日立uCosminexus應用服務器9 |
| 富士通Interstage應用服務器10 |
| TMAX耶穌7 |
| 網站資料 |
| 甲骨文Glassfish 3 |
| Caucho樹脂4 |
| Apache TomEE 1 |
| JBoss AS 7 |
| Apache Geronimo 3 |
| Sap NetWeaver |
| 喬納斯 |
如果現在將此列表與最受歡迎的應用程序服務器進行比較,我們會發現66%的用戶群愉快地運行在諸如Tomcat和Jetty之類的產品上,而這在官方認證的容器列表中是遙遙無期的。 但是我們仍然認為它們兩者都是為您的應用程序提供出色且易于使用的平臺。 因此,正式而言,沒有像Java EE Application Server這樣的東西。 取而代之的是,我們有Java EE容器,如果供應商希望,可以在任何配置文件中申請官方認證。 而且,您絕對可以擁有自己的可愛應用服務器,僅實現Servlet規范,而忽略其他所有內容。 在這種情況下,您只是沒有資格獲得官方認證。
翻譯自: https://www.javacodegeeks.com/2013/04/there-is-no-application-server.html
總結
- 上一篇: 网吧电脑怎么样装系统(自己电脑怎么装网吧
- 下一篇: JUnit和Mockito合作