摘要:只要滿足規(guī)范的放入該容器,馬上就會被容器進行高效率的管理。根據(jù)康威定律,設(shè)計系統(tǒng)的組織時,最終產(chǎn)生的設(shè)計等價于組織的溝通結(jié)構(gòu),通俗來講,團隊的交流機制應(yīng)該與架構(gòu)分層交互機制相對應(yīng)。
本博客 貓叔的博客,轉(zhuǎn)載請申明出處
先來看看官網(wǎng)對它的定義。
Java平臺企業(yè)版(Java EE)是社區(qū)驅(qū)動的企業(yè)軟件的標(biāo)準。Java EE是使用Java Community Process開發(fā)的,其中包括來自行業(yè)專家,商業(yè)和開源組織,Java用戶組以及無數(shù)個人的貢獻。每個版本都集成了符合行業(yè)需求的新功能,提高了應(yīng)用程序的可移植性并提高了開發(fā)人員的工作效率
如今,Java EE的提供了豐富的企業(yè)軟件平臺,并與超過 20個兼容的Java EE實現(xiàn)可供選擇。
Java EE 8,你值得了解,起碼官網(wǎng)還提示了你它還在更新新的功能。
說到JEE,做web項目的朋友其實都有所了解,它將企業(yè)級軟件架構(gòu)分為三個層級,web層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲層。
先看看圖,舊時代的輝煌!
先介紹一下:
WEB容器:給處于其中的應(yīng)用程序組件(JSP,SERVLET)提供一個環(huán)境,使JSP,SERVLET直接跟容器中的環(huán)境變量接口交互,不必關(guān)注其它系統(tǒng)問題。主要由WEB服務(wù)器來實現(xiàn)。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規(guī)范中的WEB APPLICATION 標(biāo)準。我們把遵守以上標(biāo)準的WEB服務(wù)器就叫做J2EE中的WEB容器。同時,JEE 平臺將不同的模塊化組件聚合后運行在通用的應(yīng)用服務(wù)器上,例WebLogi,WebSphere , JBoss 等,這也包含 Tomcat Tomcat 僅僅是實現(xiàn)了 JEE Web 規(guī)范的 Web 容器。
EJB容器:Enterprise java bean 容器。更具有行業(yè)領(lǐng)域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規(guī)范的EJB放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現(xiàn)成的接口來獲得系統(tǒng)級別的服務(wù)。例如郵件服務(wù)、事務(wù)管理。WEB容器和EJB容器在原理上是大體相同的,更多的區(qū)別是被隔離的外界環(huán)境。WEB容器更多的是跟基于HTTP的請求打交道。而EJB容器不是。它是更多的跟數(shù)據(jù)庫、其它服務(wù)打交道。但他們都是把與外界的交互實現(xiàn)從而減輕應(yīng)用程序的負擔(dān)。例如SERVLET不用關(guān)心HTTP的細節(jié),直接引用環(huán)境變量session,request,response就行、EJB不用關(guān)心數(shù)據(jù)庫連接速度、各種事務(wù)控制,直接由容器來完成。
可以看到每個層次的職責(zé)如下:
Web層:負責(zé)與用戶交互或者對外提供接口
業(yè)務(wù)邏輯層:為了實現(xiàn)業(yè)務(wù)邏輯而設(shè)計的流程處理和計算處理模塊
數(shù)據(jù)存取層:將業(yè)務(wù)邏輯層處理的結(jié)果持久化以待后續(xù)查詢,并維護領(lǐng)域模型中對象的生命周期。
值得一提的是,JEE平臺是典型的二八原則的應(yīng)用場景,它將 80%通用的與業(yè)務(wù)無關(guān)的邏輯和流程封裝在應(yīng)用服務(wù)器的模塊化組件里,通過配置的模式提供給應(yīng)用程序訪問,應(yīng)用程序?qū)崿F(xiàn) 20%專用邏輯,并通過配置的形式來訪問應(yīng)用服務(wù)器提供的模塊化組件。事實上,應(yīng)用服務(wù)器提供的對象關(guān)系映射服務(wù)、數(shù)據(jù)持久服務(wù)、事務(wù)服務(wù)、安全服務(wù)、消息服務(wù)等通過簡單的配置即可在應(yīng)用程序中使用。
JEE 時代的架構(gòu)已經(jīng)對企業(yè)級應(yīng)用的整體架構(gòu)進行了邏輯分層,包括上面提到的 Web 層、業(yè)務(wù)邏 和數(shù)據(jù)存取層,分別對應(yīng)上圖中的 Web 容器、 JB 容器和數(shù)據(jù)存取 ORM 組件與數(shù)據(jù)持久層 (數(shù)據(jù)庫) 不同的層級有自己的職責(zé),并從功能類型上劃分層級,每個層級的職責(zé)單一。
在分層架構(gòu)下需要對項目管理過程中的團隊進行職責(zé)劃分,井建立團隊交流機制。根據(jù)康威定律,設(shè)計系統(tǒng)的組織時,最終產(chǎn)生的設(shè)計等價于組織的溝通結(jié)構(gòu) ,通俗來講,團隊的交流機制應(yīng)該與架構(gòu)分層交互機制相對應(yīng)。由于在架構(gòu)上把整體的單體系統(tǒng)分成具有不同職責(zé)的層級,對應(yīng)的項目管理傾向于把大的團隊分成不同的職能團隊,主要包括:用戶 交互 UI 團隊、后臺業(yè)務(wù)邏輯處理團隊、 數(shù)據(jù)存取 ORM 團隊與 DBA 團隊等,每個團隊只對自己的職責(zé)負責(zé),并對使用方提供組件服務(wù)質(zhì)量保證。
讓我們在看看另一個經(jīng)典,職能團隊劃分。
JEE通過對單體架構(gòu)的分層,結(jié)合職能劃分,開始通過架構(gòu)在一定程度上進行邏輯拆分,讓各個專業(yè)的人能更加高效的做他們應(yīng)該做的事情。
但是,每個層次的多個業(yè)務(wù)邏輯的實現(xiàn)會被放在同一應(yīng)用項目中,并且運行在同一個服務(wù)器上。盡管大多數(shù)公司會使用規(guī)范來約束不同業(yè)務(wù)邏輯的隔離性來解禍,但是久而久之,隨著復(fù)雜業(yè)務(wù)邏輯的選代增加及開發(fā)人員的不斷流動,新的程序員為了節(jié)省時間和趕進度,非法使用了其他組件的服務(wù),業(yè)務(wù)組件之間、 組件之間、數(shù)據(jù)存取之間的稿合性必然增加,最后導(dǎo)致組件與組件之間難以劃清界限,完全禍合在一起,將來的新功能迭代、增加和維護將難上加難。(反正你如果是入職接手一個老項目,那你一般都會很頭疼)
就當(dāng)時而言,盡管 JEE 支持 Web容器和 EJB 容器的分離部署,大多數(shù)項目仍然部署在同 個應(yīng)用服務(wù)器上井跑在一JVM 進程中。
說說你和JEE的那些事吧!
公眾號:Java貓說學(xué)習(xí)交流群:728698035
現(xiàn)架構(gòu)設(shè)計(碼農(nóng))兼創(chuàng)業(yè)技術(shù)顧問,不羈平庸,熱愛開源,雜談程序人生與不定期干貨。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/74182.html
摘要:只要滿足規(guī)范的放入該容器,馬上就會被容器進行高效率的管理。根據(jù)康威定律,設(shè)計系統(tǒng)的組織時,最終產(chǎn)生的設(shè)計等價于組織的溝通結(jié)構(gòu),通俗來講,團隊的交流機制應(yīng)該與架構(gòu)分層交互機制相對應(yīng)。 本博客 貓叔的博客,轉(zhuǎn)載請申明出處 先來看看官網(wǎng)對它的定義。 Java平臺企業(yè)版(Java EE)是社區(qū)驅(qū)動的企業(yè)軟件的標(biāo)準。Java EE是使用Java Community Process開發(fā)的,其中包括...
摘要:有人反駁人家工作兩年,你談個球的標(biāo)準。,,,,的概念不能更廣啊。附錄一個項目用來演示各種新特性的示例,有超過個示例程序。 這篇博客什么技術(shù)內(nèi)容都沒有,純粹是介紹JAVAEE這個寬廣的概念。 本文內(nèi)容的基于的環(huán)境是JavaEE7 起因: 起因是因為看了這個java EE兩年,目前北京在職,年后可以上班,下面有個人問: hantsy:Java EE 工程師?請問用過哪...
摘要:楊永林,人稱教主,八年前端開發(fā)經(jīng)驗,原新浪微博前端技術(shù)專家,現(xiàn)任鏈家網(wǎng)前端總架構(gòu)師。年年底,教主加入鏈家網(wǎng),負責(zé)前端的整體架構(gòu)工作。 楊永林,人稱教主,八年前端開發(fā)經(jīng)驗,原新浪微博前端技術(shù)專家,現(xiàn)任鏈家網(wǎng)前端總架構(gòu)師。長期研究Web訪問性能優(yōu)化和前端框架搭建。作為初始團隊成員,教主參與了新浪微博所有PC版本的開發(fā),其中4~6版以架構(gòu)師的身份設(shè)計了微博PC版的前端架構(gòu)。在新浪微博任職期間...
摘要:的方法在安卓底下會崩潰,結(jié)果竟然是要在里面設(shè)置正確的,因為我是用官網(wǎng)的腳手架搭起來的項目,不知道大家會不會遇到,改一下就可以解決問題了。 目錄 Weex系列(序) —— 總要知道原生的一點東東(iOS) Weex系列(序) —— 總要知道原生的一點東東(Android) Weex系列(1) —— Hello World項目 Weex系列(2) —— 頁面跳轉(zhuǎn)和通信 Weex系列(3)...
摘要:的方法在安卓底下會崩潰,結(jié)果竟然是要在里面設(shè)置正確的,因為我是用官網(wǎng)的腳手架搭起來的項目,不知道大家會不會遇到,改一下就可以解決問題了。 目錄 Weex系列(序) —— 總要知道原生的一點東東(iOS) Weex系列(序) —— 總要知道原生的一點東東(Android) Weex系列(1) —— Hello World項目 Weex系列(2) —— 頁面跳轉(zhuǎn)和通信 Weex系列(3)...
閱讀 3611·2023-04-26 02:10
閱讀 1397·2021-11-22 15:25
閱讀 1702·2021-09-22 10:02
閱讀 945·2021-09-06 15:02
閱讀 3505·2019-08-30 15:55
閱讀 635·2019-08-30 13:58
閱讀 2807·2019-08-30 12:53
閱讀 3092·2019-08-29 12:38