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