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