Java EE与Java SE:Oracle是否放弃了企业软件?
Java Enterprise Edition是全球Java社區中最大的困惑來源之一。 就像《星球大戰》和《星際迷航 》之間的區別一樣,對于“原力覺醒”是他們在這部電影中看過的第一部電影的人來說。
奇怪的是,即使您有使用EE進行開發的經驗,但整個情況通常仍然很模糊。 在本文中,我們將收集所有最新消息,并在Java EE 8專家組的Werner Keil和前Oracle Java EE推廣者和創始人Reza Rahman的幫助下,仔細研究Java EE以消除迷霧Java EE守護者。
新帖:Java EE與Java SE:Oracle是否放棄了企業軟件? https://t.co/3wZHYgogKn pic.twitter.com/XXDez1OkRr
— Takipi(@takipid) 2016年4月21日
Java EE與Java SE究竟有何不同?
首先,我們需要做出重要的區分。 Java EE構建在Java SE之上。 與Java SE不同,Java企業版正式“只是”一個規范,Oracle以及RedHat和IBM等其他供應商提供了實際的實現(例如Glassfish參考實現)。
SE的API提供了Java語言(java。*軟件包)的標準核心功能,而EE的API(javax。*)提供了Java的擴展,這些擴展對于開發大型應用程序非常有用。 話雖如此,可能會有導致額外混亂的例外。 例如,Swing最初是作為擴展,而最終成為核心Java的一部分。 這不是防彈概念。
我們與Java EE 8專家組成員Werner Keil聯系以獲得進一步的見解。 Werner說:“最大的誤解是API是否是規范的編碼形式,還是其實現”。 “現在幾乎每個Java EE項目都將其視為實現,因此,絕大多數Java代碼的所有代碼都受到越來越開放的許可證的保護。 除了技術兼容性套件(TCK)測試套件外,專有的封閉式TCK仍然存在很大的問題,只有Oracle和公司許可方才能使用。
附帶說明,這些許可問題最終導致Apache軟件基金會在2010年從Java Community Process執行委員會撤回其成員資格 。
那么,EE規范實際上包括什么?
實際上,Java EE是企業Java擴展的總體規范。 它的核心包括獨立的功能,例如企業Java Bean(EJB),Java Servlet,Rest API(JAX-RS),上下文和依賴注入(CDI)等。
每個新版本都包括對單個技術的升級以及新功能。 例如,Java EE 8有望包括具有HTTP 2.0支持的Servlet 4.0規范。
由于Java是向后兼容的,因此您還可以在新的SE版本之上運行較舊的EE版本,并享受新的語言功能。 例如,在Java SE 8之上針對lambda和流的Java EE 7兼容實現,因此您無需等待Java EE 8即可使用它。
Servlet規范是Java EE的主要功能。 當前版本為v3.1,正在開發v4.0。 它最受歡迎的實現之一來自TomEE ,它是Tomcat的EE兼容版本。
重量級Java EE是一個神話
與流行的看法相反,Java EE 比看起來輕得多 。 工件大小,構建時間和部署時間等屬性可能很小。 輕量級是設計決策,其他被認為是輕量級的框架可能會成為……重量級。
“關于Java EE的最常見的誤解可能是它太大,太重或整體,并且不如Play!,Spring,Node.js或所有其他“ hip”以及新的或更舊的替代品那么靈活。 我們在Raspberry Pi上運行了整個Tomcat或Glassfish服務器” – Werner Keil
在生產中調試Java EE
分布式生產環境(尤其是微服務架構)經常遇到的問題是了解生產中發生的情況。 雖然不是特定于EE,但是始于一項服務的問題可能會在其他地方引起麻煩,然后您就獨自探索日志,試圖尋找甚至可能不存在的線索。
在塔基皮(Takipi),我們正在采用一種新的方法來解決此類問題。 每當發生異常,日志錯誤或警告時,我們都會提供所有必要的數據以找出其根本原因。 這包括錯誤棧跟蹤中的所有相關源代碼和狀態,請參見此處 。
Takipi的錯誤分析視圖:源,堆棧和狀態
Java EE與Java SE的發布周期
Java EE的工作在一個單一的Java規范請求( 這里是Java EE 8的請求)下進行管理,并等待SE完成以定義確切的規范。 下表總結了所有版本的發布日期:
為什么在SE之后發布EE通常需要2年?
“我認為這在歷史上是隨著時間而演變的。 Werner Keil說,在Java于1995年正式啟動兩年多一點之后,1998年就出現了EJB之類的J2EE技術??。 “一旦越來越多的公司和貢獻者開始在JCP下幫助Java EE,企業技術自然會花一些時間來準備,測試和集成EE框架下的所有組件。”
Werner補充說:“我個人認為,即使對于大型公司用戶,將Java EE版本X嚴格綁定到同一JDK版本X的需求也變得不那么重要。 默認情況下,已有多家供應商開始將其最新的Java EE 6或7兼容產品與Java SE 8捆綁在一起。”
“一旦Java EE 8準備就緒,我們有望看到Java SE 9及其Jigsaw模塊化系統不僅最終,而且相對成熟。 企業服務器可能需要花費一些時間來應對這一巨大的步驟,但是一旦正確理解并采用了模塊化,我發現EE可能比SE帶來更大的收益。 相當數量的EE配置文件應該會增長,并利用基礎平臺可以提供的所有可選項和模塊化。”
Java EE 8的當前狀態是什么?
Java EE 8預計將于2017年上半年發布。看來我們預計還會遇到更多延遲。 Werner Keil詳細闡述了這些問題:
“不幸的是,不僅是由于Java SE 9的延遲,而且Oracle內部資源的大量轉移似乎是為了為其(私有)云客戶提供服務,相反,幾乎所有針對Java EE 8的Oracle領導的JSR都被延遲了。 ”
“即使Oracle擔任聯合規范主管的JCache似乎也沒有真正的形狀,只是將Java EE 8的企業功能的關鍵方面(例如事務)簡單地丟進了Java EE 8中。”
“這些缺失的零件都由專有的供應商專有擴展涵蓋,無論是Oracle(Coherence),Hazelcast還是其他供應商。 也許這實際上將是最終的結果。 “
“ Java EE社區中許多人普遍擔心的是,Java EE和相關標準已變成了一個“無花果”,可以涵蓋專有的,大多是封閉源代碼的產品或服務,這些產品或服務在“云”中運行,而您只需租用并付費即可。對于。”
由于優先級看似不斷變化,Oracle Java EE傳播者Reza Rahman與Oracle分道揚and,創立了一個社區驅動的計劃,即Java EE Guardians。 “公正地看待它,無非是Java EE的“采用JSR”。 盡管很少有人嘗試讓JUG或其成員通過Adopt-a-JSR程序采用Java EE JSR,但實際上,它僅限于Java SE或獨立JSR,Oracle幾乎所有活動和涉及的主要JUG都完全專注于采用OpenJDK。 在過去,企業部門一直被一些大型供應商(例如IBM,BEA / Oracle或JBoss)視為一件事情。 “
“讓像TomiTribe或Payara這樣的小公司在開源方面做出貢獻,就像說JBoss甚至IBM押注大量由開源驅動的技術(如OpenStack或WebSphere Liberty Profile)一樣,這意味著范式發生了巨大的變化,至少許多甲骨文的公司和法律人士都愿意這樣做似乎還沒有完全理解。”
Java EE Guardians
為了進一步了解新社區,我們已與Reza Rahman聯系以獲取更多詳細信息。
“我們是一群熱愛Java EE的人,他們非常關注Oracle對開放標準的承諾。 我們致力于盡一切努力使Java EE社區向前發展” – Reza Rahman
Reza繼續說道:“ Oracle和Sun一直對Java EE的發展產生不健康的影響。 Oracle當前的不活動狀態使這種現實的弊端更加明顯。 從長遠來看,我認為社區和其他供應商(如RedHat,IBM,Tomitribe和Payara)將更加積極地推動Java EE的正確答案。”
“ Java EE的當前狀態令人擔憂。 生態系統不斷增強,并且比以往任何時候都充滿活力,背后有許多熱情的人。 盡管如此,Oracle主導的JSR上Oracle資源的活動卻顯著放緩。 除非Oracle的明顯行為發生變化,社區大大提高了貢獻或其他供應商彌補了因Oracle不活動而造成的進度差距,否則要滿足當前的Java EE 8時間表將非常困難。
Java的父親James Gosling博士與Java EE Guardians站在一起。 即將有更多詳細信息。 // @javaee_guardian pic.twitter.com/MqqT6VAXJQ
— Reza Rahman(@reza_rahman) 2016年4月11日
“ Java EE的發布時間是一個復雜的問題。 現實情況是,Java EE比Java SE或Spring做得多。 實際上,Spring直接受益于Java EE中完成的工作。”
“我相信,如果社區和其他供應商進一步參與進來,工作實際上會更快地進行。” – Reza Rahman
Java EE替代品
縱觀更廣泛的生態系統,我們看到其他解決方案以不同的向量更快地發展。 例如,Servlet容器Jetty不需要等待Se??rvlet 4.0規范完成就已經支持HTTP 2.0。 總體而言,Spring從以前的規范中受益,可以與Java EE競爭。
最后的想法
再次感謝Werner Keil和Reza Rahman與我們分享了他們對這篇文章的見解! 我們很高興看到您的評論,并了解您在Java EE方面的個人經驗。
Werner Keil是一家領先的汽車供應商的DevOps Build Manager,曾在一家大型瑞士保險公司等公司工作過。 除了在大型公司工作外,他還經營著自己的創意人才公司Creative Arts&Technologies,并在業余時間管理和支持開源項目以及Java Community Process執行委員會的個人成員。
Reza Rahman是Java EE Guardians核心的一部分,并且在Oracle內外都參與Java EE很長時間了。 他是CapTech Consulting的長期顧問,并且是Oracle的官方Java技術專家。 經常發表演講的人,作家以及JavaOne RockStar演講者獎的獲得者。 多年來,他還是Java EE,EJB和JMS專家組的成員。
翻譯自: https://www.javacodegeeks.com/2016/04/java-ee-vs-java-se-oracle-given-enterprise-software.html
總結
以上是生活随笔為你收集整理的Java EE与Java SE:Oracle是否放弃了企业软件?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有电脑怎么设置wi如何没有电脑设置无线
- 下一篇: 性能与可靠性:Java应用为何像F1汽车