溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java企業(yè)級應(yīng)用架構(gòu)設(shè)計中的分布式結(jié)構(gòu)是怎樣的

發(fā)布時間:2021-11-20 17:40:20 來源:億速云 閱讀:148 作者:柒染 欄目:編程語言

本篇文章為大家展示了Java企業(yè)級應(yīng)用架構(gòu)設(shè)計中的分布式結(jié)構(gòu)是怎樣的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Java企業(yè)級應(yīng)用架構(gòu)設(shè)計中的分布式結(jié)構(gòu)大致可以分為單級結(jié)構(gòu)、2級結(jié)構(gòu)、3級結(jié)構(gòu)和N級結(jié)構(gòu)。充分理解和應(yīng)用分布式結(jié)構(gòu)可以更好的理解當代網(wǎng)絡(luò)計算的現(xiàn)狀,設(shè)計出更優(yōu)的企業(yè)級應(yīng)用程序。

長久以來,Java企業(yè)級版本(Java EE)已經(jīng)成為了眾多產(chǎn)業(yè)領(lǐng)域(如銀行業(yè)、保險業(yè)、零售業(yè)、酒店業(yè)、旅游業(yè)以及電信業(yè)等等)進行企業(yè)商務(wù)應(yīng)用開發(fā)和部署的平臺選擇。Java EE之所以應(yīng)用如此廣泛,其原因在于,Java EE可以為構(gòu)建健壯、高擴展性的分布式應(yīng)用系統(tǒng)提供標準化的平臺,而這些應(yīng)用所支持的范圍可以涵蓋從銀行核心業(yè)務(wù)運作,到航空公司訂票引擎之間的廣大區(qū)域。不過,開發(fā)成功的Java EE應(yīng)用也可能成為一項艱巨的任務(wù),Java企業(yè)級應(yīng)用架構(gòu)設(shè)計在其中起著重要作用。

首先Java EE平臺自身所提供的豐富選擇就足可以令人生畏。那些過剩的框架、實用程序類庫、集成開發(fā)環(huán)境(IDE),以及可供選擇的工具讓一切都更加富有挑戰(zhàn)性。因此,選擇好合適的技術(shù)對于開發(fā)基于Java EE的軟件來說至關(guān)重要。而那些擁有健壯架構(gòu)與設(shè)計準則的技術(shù),會對構(gòu)建易于維護、重用以及擴展的應(yīng)用系統(tǒng)大有裨益。

我們將首先回顧一下分布式計算的進化史以及n級結(jié)構(gòu)。之后我將展示Java EE平臺是如何解決分布式應(yīng)用開發(fā)中的難點的。同時你還會了解模型-視圖-控制器(MVC)結(jié)構(gòu)準則。然后我會結(jié)合MVC準則與Java EE平臺,來講解多層Java EE應(yīng)用結(jié)構(gòu)。

在了解了應(yīng)用系統(tǒng)架構(gòu)之后,我將把注意力集中到基于面向?qū)ο笤瓌t的Java EE應(yīng)用開發(fā)上。我同時還會講解如何使用設(shè)計模式來簡化設(shè)計過程,以及如何選擇***的實踐范例。此外我還會觸及Sun公司的Java BluePrints所收錄的設(shè)計模式目錄,其內(nèi)容在Deepak Alur et al的《核心J2EE設(shè)計模式》(Prentice Hall出版社,2003年)一書中有詳細的介紹。在文章的***,我將介紹通用建模語言(UML)以及其在可視化Java EE文檔設(shè)計與架構(gòu)之中所扮演的的角色。

分布式計算進化史

在分布式計算中,一個應(yīng)用會被劃分為若干稍小的部件,并同時運行在不同的計算機上。這種計算方式又被稱為“網(wǎng)絡(luò)計算”,因為這些部件通常會通過建立在TCP/IP或者UDP協(xié)議之上的某些協(xié)議進行通訊。這些稍小的應(yīng)用部件被稱為“級”,每一級都可以向其他連接級獨立提供一類服務(wù)。而“級”又可以被細化為若干“層”,以便降低功能的粒度。大多數(shù)Java企業(yè)級應(yīng)用架構(gòu)設(shè)計都應(yīng)具有三個不同的層:

◆表現(xiàn)層負責用戶接口。

◆業(yè)務(wù)層執(zhí)行業(yè)務(wù)邏輯。在運行過程中,它還會與數(shù)據(jù)訪問層進行交互。

◆數(shù)據(jù)訪問層負責對存儲在企業(yè)信息系統(tǒng)(EIS)中的數(shù)據(jù)進行存取等操作。

通過分析分布式計算結(jié)構(gòu)的躍遷史,我們可以更好的理解當代網(wǎng)絡(luò)計算的現(xiàn)狀。在接下來的幾節(jié)中,我將用幾個恰當?shù)睦咏榻B分布式結(jié)構(gòu)的變遷。

單級結(jié)構(gòu)
 
單級結(jié)構(gòu)的使用可以追溯到那些使用簡易終端連接巨型主機的日子。在這種結(jié)構(gòu)中,用戶接口、業(yè)務(wù)邏輯以及數(shù)據(jù)等所有應(yīng)用構(gòu)成層都被配置在同一個物理主機中。用戶通過終端機或控制臺與系統(tǒng)進行交互,而這種方式只具有非常有限的文本處理能力(參見圖1)

Java企業(yè)級應(yīng)用架構(gòu)設(shè)計中的分布式結(jié)構(gòu)是怎樣的
圖1. 單層結(jié)構(gòu)(圖中文字:Console——“控制臺”;Dumb Terminal——“簡易終端”;Mainframe——主機)

2級結(jié)構(gòu)
 
在1980年代早期,個人電腦(PC)變得非常流行,它比大型主機便宜,處理能力又比簡易終端之類的設(shè)備強。PC的出現(xiàn)為真正的分布式(客戶端——服務(wù)器,C/S)計算鋪平了道路。作為客戶端的PC現(xiàn)在可以獨立運行客戶接口(UI)程序,同時它還支持圖形化客戶接口(GUI),允許用戶輸入數(shù)據(jù),并與服務(wù)器主機進行交互,而服務(wù)器主機現(xiàn)在只負責業(yè)務(wù)邏輯和數(shù)據(jù)的部分。當用戶在客戶端完成數(shù)據(jù)錄入后,GUI程序可以選擇性的進行數(shù)據(jù)有效性校驗,之后將數(shù)據(jù)發(fā)送給服務(wù)器進行業(yè)務(wù)邏輯處理。Oracle基于表單的應(yīng)用就是2級結(jié)構(gòu)的優(yōu)秀范例。表單的GUI存儲在客戶端PC中,而業(yè)務(wù)邏輯(包括代碼以及存儲過程)以及數(shù)據(jù)仍然保留在Oracle的數(shù)據(jù)庫服務(wù)器中。

此后又出現(xiàn)了另外一種2級結(jié)構(gòu),在這種結(jié)構(gòu)中,不只是用戶接口(UI),連業(yè)務(wù)邏輯也被放到了客戶端一級。這種應(yīng)用的典型運行方式是直接連接數(shù)據(jù)庫服務(wù)器進行各種數(shù)據(jù)庫查詢。這種客戶端被稱作“胖客戶端”,因為這種結(jié)構(gòu)將可執(zhí)行代碼的相當大一部分都放到了客戶端一級(參見圖2)。

Java企業(yè)級應(yīng)用架構(gòu)設(shè)計中的分布式結(jié)構(gòu)是怎樣的
圖2. 2級結(jié)構(gòu)(Business Logic Layer——業(yè)務(wù)邏輯層;Optional——可選;User Interface Layer——用戶接口層;Thick Client——胖客戶端;Data Access Layer——數(shù)據(jù)訪問層; Mainframe Server——服務(wù)器主機)

3級結(jié)構(gòu)

盡管2級“胖客戶端”應(yīng)用的開發(fā)很簡單,但是任何用戶接口或者業(yè)務(wù)邏輯的改變所導(dǎo)致的軟件升級都需要在所有客戶端上進行。幸運的是,在上世紀90年代中期,硬件成本已經(jīng)變得越來越低,而CPU的運算能力卻得到了巨大提升。與此同時,互聯(lián)網(wǎng)的發(fā)展非常迅速,互聯(lián)網(wǎng)應(yīng)用的發(fā)展趨勢已經(jīng)逐漸顯現(xiàn),兩者的結(jié)合最終導(dǎo)致了3級結(jié)構(gòu)的產(chǎn)生。

在3級結(jié)構(gòu)模型中,PC客戶端只需要安裝“瘦客戶端”軟件——比如瀏覽器——來顯示服務(wù)器提供的展示內(nèi)容,服務(wù)器負責準備展示內(nèi)容、業(yè)務(wù)邏輯以及數(shù)據(jù)訪問邏輯,應(yīng)用程序的數(shù)據(jù)來自企業(yè)信息系統(tǒng),例如關(guān)系數(shù)據(jù)庫。在這樣的系統(tǒng)中,業(yè)務(wù)邏輯可以通過遠程訪問,因此通過Java控制臺應(yīng)用程序支持一個獨立的客戶端就成為課程。業(yè)務(wù)層主要通過數(shù)據(jù)訪問層與信息系統(tǒng)實現(xiàn)交互。因為整個應(yīng)用都位于服務(wù)器之上,因此這樣的服務(wù)器也被稱作“應(yīng)用程序服務(wù)器”或者“中間件”(參見圖3)。

Java企業(yè)級應(yīng)用架構(gòu)設(shè)計中的分布式結(jié)構(gòu)是怎樣的
圖3. 3級結(jié)構(gòu)(圖中文字:Presentation Layer——表現(xiàn)層;Business Logic Layer——業(yè)務(wù)邏輯層;Data Access Layer——數(shù)據(jù)訪問層;Thin Client——瘦客戶端;Application Server——應(yīng)用程序服務(wù)器;Enterprise Data——企業(yè)數(shù)據(jù);Database Server——數(shù)據(jù)庫服務(wù)器)

N級結(jié)構(gòu)
 
隨著互聯(lián)網(wǎng)帶寬的不斷提高,全世界的各大企業(yè)都相繼啟動了他們的網(wǎng)絡(luò)服務(wù)。這種變化導(dǎo)致應(yīng)用服務(wù)器無法繼續(xù)承擔表現(xiàn)層的巨大負荷。這項任務(wù)現(xiàn)在已經(jīng)由專門負責產(chǎn)生展示內(nèi)容的專門網(wǎng)頁服務(wù)器所承擔。展示內(nèi)容之后被傳送到客戶端級的瀏覽器上,瀏覽器會負責將用戶接口表現(xiàn)出來。N級結(jié)構(gòu)中的應(yīng)用服務(wù)器負責提供可遠程訪問的業(yè)務(wù)邏輯組件,而表現(xiàn)層網(wǎng)頁服務(wù)器則使用本網(wǎng)協(xié)議通過網(wǎng)絡(luò)訪問這些組件。圖4展示了n級結(jié)構(gòu)。

Java企業(yè)級應(yīng)用架構(gòu)設(shè)計中的分布式結(jié)構(gòu)是怎樣的

以上是Java企業(yè)級應(yīng)用架構(gòu)設(shè)計中的分布式結(jié)構(gòu),在不同的需求和應(yīng)用場景中,我們會用到不同的分布式結(jié)構(gòu),設(shè)計不同的Java企業(yè)級應(yīng)用架構(gòu)。

上述內(nèi)容就是Java企業(yè)級應(yīng)用架構(gòu)設(shè)計中的分布式結(jié)構(gòu)是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI