它是 Tomcat,還是房間裡的大象? (Is it a Tomcat, or the Elephant in the Room?)

工程 (Engineering) | Rod Johnson | 2007年12月24日 (December 24, 2007) | ...

有時候重要的改變會悄悄發生。這些改變不是由行銷活動推動的,而是由許多個別的決定造成的;沒有任何的宣傳;當人們觀察到它們時,它們已經有了驚人的動能。我在最近的 Spring Experience 會議的開幕主題演講中提到了這樣一個發展:Tomcat 的穩定崛起。(Sometimes important changes sneak up. Such changes aren't driven by marketing campaigns, but by many individual decisions; there's no fanfare; by the time they're observed, they have surprising momentum. I mentioned one such development in my opening keynote at the recent Spring Experience conference: the steady rise of Tomcat.)

最近我們開始在 SpringFramework.org 上進行民意調查,一些結果很有趣。您使用哪些應用程式伺服器? 這個問題產生了以下結果:BEA WebLogic (各種版本) 和 JBoss AS 在 Java EE 應用程式伺服器中並列第一,各佔 16%,IBM WebSphere 緊隨其後佔 15%,Glassfish 的表現也相當不錯,佔 5%。但輕鬆的贏家是 Tomcat,佔 37%。(Recently we've begun running polls on SpringFramework.org, and some of the results are interesting. The question Which application server(s) do you use? produced the following results: BEA WebLogic (various versions) and JBoss AS shared first place among Java EE app servers on 16% each, with IBM WebSphere just behind on 15% and Glassfish putting in a creditable performance on 5%. But the easy winner was Tomcat, on 37%.)

研究公司 BZ Research 的 第 6 屆年度 Java 使用與認知研究,來自 2006 年 12 月,問了一個類似的問題:目前貴公司正在使用哪些 Java 應用程式伺服器?。允許多個答案,因此總數加起來超過 100%。明顯的領先者再次是 Tomcat,佔 64.3%,領先於 WebSphere 佔 36.9%,JBoss 佔 32%,WebLogic 佔 23.7%。(Research firm BZ Research's 6th Annual Java Use & Awareness Study, from December 2006, asked a similar question:Which Java application servers are currently in use at your company?. Multiple answers were permitted, hence the total added up to more than 100%. The clear leader was again Tomcat, on 64.3%, ahead of WebSphere on 36.9%, JBoss on 32% and WebLogic on 23.7%.)

調查之間的差異可能部分可以解釋為 Spring 在大型企業客戶中特別成功。因此,我們看到重量級產品在 Spring 用戶中被過度代表。(The difference between the surveys can probably be explained partly by the fact that Spring has been particularly successful in large enterprise customers. Thus we see the big-iron products over-represented among Spring users.)

然而,毫無疑問的是 Tomcat 的領導地位,這在兩個結果中都是一致的。其他正在研究該領域的分析公司,例如 the 451 Group,也發現了類似的結果。(However, there is little doubt about the leadership of Tomcat, which is consistent in both results. Other analyst firms who are researching the area, such as the 451 Group, are finding similar results.)

一些有趣的結論 (Some interesting takeaways)

  • IBM 的 WebSphere 在採用方面非常強大。我們在客戶帳戶中看到了這一點。(IBM's WebSphere is very strong in adoption. We see that in customer accounts.)
  • <li>Tomcat is a clear leader. It may well be the elephant in the room. This is particularly interesting given that <i>no large (or even medium sized) vendor is promoting Tomcat.</i> The Tomcat numbers aren't driven by vendor marketing, but by thousands of companies making similar decisions.</li>
    
  • 同樣從我們在客戶帳戶中的觀察來看,我預計 JBoss 的很大一部分數字實際上是 Tomcat。許多認為他們正在使用 JBoss 的用戶實際上正在使用效率較低的 Tomcat 形式。一個例子是法國稅務局的線上稅務服務,它是 JBoss 和 Spring 的公開參考。(Also from our observations in customer accounts, I would expect that a large part of the JBoss numbers are actually Tomcat. Many users who think they're using JBoss are actually using a less efficient form of Tomcat. One example--the French Tax Office's online taxation service--is a public reference for both JBoss and Spring.)
  • Tomcat 的部分受歡迎程度歸功於它比傳統 Java EE 伺服器更輕巧和簡單。這並不意味著它只是一個簡化的 EE 伺服器——這意味著它可能更適合 SOA 正在打破公司內部孤島的環境,這些公司曾經有傳統的煙囪式架構。開源領域最傑出的分析師之一 最近在對此的一個有趣的評論中被引用(Part of Tomcat's popularity is due to the fact that it's lighter and simpler than traditional Java EE servers. This doesn't mean that it's just a dumbed down EE server--it means that it may be better equipped for an environment where SOA is breaking down the silos within companies that once had traditional stovepipe architectures. One of the most prominent analysts in the open source space was recently quoted in an interesting comment on this)
    Forrester Research 的高級分析師 Michael Goulde 表示,他發現自 2005 年以來 Tomcat 的採用率有所上升。但不僅僅是 Web 開發人員在聽 Tomcat 的喵叫;SOA 開發人員也在傾聽。「Java EE 伺服器並不是當今 SOA 的全部和最終目標。還有很多其他的選擇,」Goulde 說。(Michael Goulde, senior analyst with Forrester Research, said that he's seen Tomcat uptake rise since 2005. But it's not just Web developers listening to Tomcat's meow; SOA developers are lending an ear as well. “Java EE servers are not the be all and end all of SOA today. There are a lot of other options,” said Goulde.)

當然,Tomcat 並不能完全替代 WebSphere 或 WebLogic。它仍然缺乏這些產品所擁有的一些重要的企業功能,儘管它在集群等重要領域取得了進展,並且與幾年前相比,其性能有了很大的提高。在這一點上,它不是一個蘋果對蘋果的比較,而更類似於 Oracle 與 MySQL。如果您需要 Oracle 擅長的一些東西,例如它的事務模型,MySQL 並不具有吸引力。(我就是那種重視這些東西的人。)另一方面,如果您正在實施許多驅動互聯網的應用程式,那麼撇開成本不談,MySQL 可能是一個更好的技術選擇。(Of course, Tomcat is not a complete alternative to WebSphere or WebLogic. It still lacks a number of important enterprise features that those products have, although it is making progress in important areas such as clustering, and its performance is much improved compared to a few years ago. At this point, it's not an apples-to-apples comparison, but more analogous to Oracle vs MySQL. If you need some of the things Oracle excels at, such as its transaction model, MySQL isn't compelling. (I'm the sort of guy who does value those things.) OTOH, if you are implementing many of the applications that drive the Internet, MySQL may be a better technical fit, cost aside.)

然而,這提出了一個有趣的問題:Tomcat 會成功嗎? 市場上是否有足夠的動力來確保一個或多個供應商開始添加缺失的功能?一個有趣的現象是,性能最高的網格/集群解決方案不是應用程式伺服器本身,而是 GigaSpaces、Oracle Coherence 和 IBM ObjectGrid 等專用解決方案。沒有理由將 HA 功能與 Java EE 伺服器關聯起來。(However, this raises an interesting question: Will Tomcat get there? Is there enough momentum in the market to ensure that one or more vendors start adding the missing features? An interesting force is that the highest performing grid/clustering solutions are not the app servers themselves, but specialist solutions such as GigaSpaces, Oracle Coherence and IBM ObjectGrid. There is no reason that HA features need to be associated with Java EE servers.)

與在 Tomcat 上運行相比,在 WebLogic 上更容易運行大型部署的差異與 Java EE 規範無關,而與 QoS 和可管理性有關。例如,對於絕大多數用戶來說,WebLogic 並不是因為 EJB (他們不需要) 或 JCA 或一大堆基本無關的 Java EE 規範而優越。這一切都與超出規範範圍的東西有關,這些東西來自 BEA 客戶群的需求。BEA 在過去幾年的定位反映了對此的認識,強調 WebLogic 可以適應多種程式設計模型,並為 SOA 提供「堅如磐石的基礎」。IBM 幾乎沒有追逐 API,仍然離 Java EE 5.0 的認證實現還有一段距離,並且在 WebSphere 產品頁面上做出了類似的關於 SOA 多於 Java EE 的定位聲明。(The differences mean that you can run a huge deployment on WebLogic easier than on Tomcat are nothing to do with the Java EE specifications, but to do with QoS and manageability. For the vast majority of users, for example, WebLogic is not superior because of EJB (which they don't want) or JCA or a host of other largely irrelevant Java EE specifications. It's all about stuff beyond the specs that comes from the demands of the BEA customer base. BEA's positioning over the last couple of years has reflected awareness of this, stressing that WebLogic can accommodate multiple programming models, and provides "the Rock-Solid Foundation for SOA". IBM has hardly been API-chasing, still being some way away from a certified implementation of Java EE 5.0, and making similar positioning statements about SOA more than Java EE on the WebSphere product pages.)

在開源時代,傳統的 API 主導的應用程式伺服器銷售已被 QoS 銷售所取代。Java EE 6「配置」可能有助於形式化這一點。有趣的是,在這裡最需要擔心的應用程式伺服器供應商很可能是 Red Hat。如果應用程式伺服器是 QoS 銷售而不是 API 銷售,那麼 JBoss AS 在 API 上與 BEA 和 IBM 相匹配,但在 QoS 上不匹配的事實可能不足以證明其優於 Tomcat 的使用。(In the era of open source, the traditional API-led sale for application servers has been replaced by a QoS sale. Java EE 6 "profiles" may help to formalize this. Interestingly, the app server vendor with the most to worry about here may well be Red Hat. If an app server is a QoS sale rather than an API sale, the fact that JBoss AS matches BEA and IBM on APIs but not on QoS may not be enough to justify its use over Tomcat.)

取得 Spring 電子報 (Get the Spring newsletter)

隨時掌握 Spring 電子報的最新消息 (Stay connected with the Spring newsletter)

訂閱 (Subscribe)

取得領先 (Get ahead)

VMware 提供培訓和認證,以加速您的進展。(VMware offers training and certification to turbo-charge your progress.)

了解更多 (Learn more)

取得支援 (Get support)

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進制檔。(Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.)

了解更多 (Learn more)

即將舉行的活動 (Upcoming events)

查看 Spring 社群中所有即將舉行的活動。(Check out all the upcoming events in the Spring community.)

查看全部 (View all)