偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開發(fā) 后端 分布式
Java企業(yè)級(jí)應(yīng)用架構(gòu)設(shè)計(jì)是每個(gè)Java開發(fā)者不必學(xué)的知識(shí),本文將對(duì)Java EE應(yīng)用的架構(gòu)與設(shè)計(jì)進(jìn)行一些基礎(chǔ)性的介紹,而這些內(nèi)容構(gòu)筑了整個(gè)Java EE應(yīng)用開發(fā)的基礎(chǔ)。

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

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

首先Java EE平臺(tái)自身所提供的豐富選擇就足可以令人生畏。那些過(guò)剩的框架、實(shí)用程序類庫(kù)、集成開發(fā)環(huán)境(IDE),以及可供選擇的工具讓一切都更加富有挑戰(zhàn)性。因此,選擇好合適的技術(shù)對(duì)于開發(fā)基于Java EE的軟件來(lái)說(shuō)至關(guān)重要。而那些擁有健壯架構(gòu)與設(shè)計(jì)準(zhǔn)則的技術(shù),會(huì)對(duì)構(gòu)建易于維護(hù)、重用以及擴(kuò)展的應(yīng)用系統(tǒng)大有裨益。
 
我們將首先回顧一下分布式計(jì)算的進(jìn)化史以及n級(jí)結(jié)構(gòu)。之后我將展示Java EE平臺(tái)是如何解決分布式應(yīng)用開發(fā)中的難點(diǎn)的。同時(shí)你還會(huì)了解模型-視圖-控制器(MVC)結(jié)構(gòu)準(zhǔn)則。然后我會(huì)結(jié)合MVC準(zhǔn)則與Java EE平臺(tái),來(lái)講解多層Java EE應(yīng)用結(jié)構(gòu)。
 
在了解了應(yīng)用系統(tǒng)架構(gòu)之后,我將把注意力集中到基于面向?qū)ο笤瓌t的Java EE應(yīng)用開發(fā)上。我同時(shí)還會(huì)講解如何使用設(shè)計(jì)模式來(lái)簡(jiǎn)化設(shè)計(jì)過(guò)程,以及如何選擇***的實(shí)踐范例。此外我還會(huì)觸及Sun公司的Java BluePrints所收錄的設(shè)計(jì)模式目錄,其內(nèi)容在Deepak Alur et al的《核心J2EE設(shè)計(jì)模式》(Prentice Hall出版社,2003年)一書中有詳細(xì)的介紹。在文章的***,我將介紹通用建模語(yǔ)言(UML)以及其在可視化Java EE文檔設(shè)計(jì)與架構(gòu)之中所扮演的的角色。
 
分布式計(jì)算進(jìn)化史
 
在分布式計(jì)算中,一個(gè)應(yīng)用會(huì)被劃分為若干稍小的部件,并同時(shí)運(yùn)行在不同的計(jì)算機(jī)上。這種計(jì)算方式又被稱為“網(wǎng)絡(luò)計(jì)算”,因?yàn)檫@些部件通常會(huì)通過(guò)建立在TCP/IP或者UDP協(xié)議之上的某些協(xié)議進(jìn)行通訊。這些稍小的應(yīng)用部件被稱為“級(jí)”,每一級(jí)都可以向其他連接級(jí)獨(dú)立提供一類服務(wù)。而“級(jí)”又可以被細(xì)化為若干“層”,以便降低功能的粒度。大多數(shù)Java企業(yè)級(jí)應(yīng)用架構(gòu)設(shè)計(jì)都應(yīng)具有三個(gè)不同的層:

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

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

◆數(shù)據(jù)訪問(wèn)層負(fù)責(zé)對(duì)存儲(chǔ)在企業(yè)信息系統(tǒng)(EIS)中的數(shù)據(jù)進(jìn)行存取等操作。
 
通過(guò)分析分布式計(jì)算結(jié)構(gòu)的躍遷史,我們可以更好的理解當(dāng)代網(wǎng)絡(luò)計(jì)算的現(xiàn)狀。在接下來(lái)的幾節(jié)中,我將用幾個(gè)恰當(dāng)?shù)睦咏榻B分布式結(jié)構(gòu)的變遷。
 
單級(jí)結(jié)構(gòu)
 
單級(jí)結(jié)構(gòu)的使用可以追溯到那些使用簡(jiǎn)易終端連接巨型主機(jī)的日子。在這種結(jié)構(gòu)中,用戶接口、業(yè)務(wù)邏輯以及數(shù)據(jù)等所有應(yīng)用構(gòu)成層都被配置在同一個(gè)物理主機(jī)中。用戶通過(guò)終端機(jī)或控制臺(tái)與系統(tǒng)進(jìn)行交互,而這種方式只具有非常有限的文本處理能力(參見圖1)

Java企業(yè)級(jí)應(yīng)用架構(gòu)設(shè)計(jì)中的單層結(jié)構(gòu)
圖1. 單層結(jié)構(gòu)(圖中文字:Console——“控制臺(tái)”;Dumb Terminal——“簡(jiǎn)易終端”;Mainframe——主機(jī))

2級(jí)結(jié)構(gòu)
 
在1980年代早期,個(gè)人電腦(PC)變得非常流行,它比大型主機(jī)便宜,處理能力又比簡(jiǎn)易終端之類的設(shè)備強(qiáng)。PC的出現(xiàn)為真正的分布式(客戶端——服務(wù)器,C/S)計(jì)算鋪平了道路。作為客戶端的PC現(xiàn)在可以獨(dú)立運(yùn)行客戶接口(UI)程序,同時(shí)它還支持圖形化客戶接口(GUI),允許用戶輸入數(shù)據(jù),并與服務(wù)器主機(jī)進(jìn)行交互,而服務(wù)器主機(jī)現(xiàn)在只負(fù)責(zé)業(yè)務(wù)邏輯和數(shù)據(jù)的部分。當(dāng)用戶在客戶端完成數(shù)據(jù)錄入后,GUI程序可以選擇性的進(jìn)行數(shù)據(jù)有效性校驗(yàn),之后將數(shù)據(jù)發(fā)送給服務(wù)器進(jìn)行業(yè)務(wù)邏輯處理。Oracle基于表單的應(yīng)用就是2級(jí)結(jié)構(gòu)的優(yōu)秀范例。表單的GUI存儲(chǔ)在客戶端PC中,而業(yè)務(wù)邏輯(包括代碼以及存儲(chǔ)過(guò)程)以及數(shù)據(jù)仍然保留在Oracle的數(shù)據(jù)庫(kù)服務(wù)器中。
 
此后又出現(xiàn)了另外一種2級(jí)結(jié)構(gòu),在這種結(jié)構(gòu)中,不只是用戶接口(UI),連業(yè)務(wù)邏輯也被放到了客戶端一級(jí)。這種應(yīng)用的典型運(yùn)行方式是直接連接數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行各種數(shù)據(jù)庫(kù)查詢。這種客戶端被稱作“胖客戶端”,因?yàn)檫@種結(jié)構(gòu)將可執(zhí)行代碼的相當(dāng)大一部分都放到了客戶端一級(jí)(參見圖2)。

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

3級(jí)結(jié)構(gòu)
 
盡管2級(jí)“胖客戶端”應(yīng)用的開發(fā)很簡(jiǎn)單,但是任何用戶接口或者業(yè)務(wù)邏輯的改變所導(dǎo)致的軟件升級(jí)都需要在所有客戶端上進(jìn)行。幸運(yùn)的是,在上世紀(jì)90年代中期,硬件成本已經(jīng)變得越來(lái)越低,而CPU的運(yùn)算能力卻得到了巨大提升。與此同時(shí),互聯(lián)網(wǎng)的發(fā)展非常迅速,互聯(lián)網(wǎng)應(yīng)用的發(fā)展趨勢(shì)已經(jīng)逐漸顯現(xiàn),兩者的結(jié)合最終導(dǎo)致了3級(jí)結(jié)構(gòu)的產(chǎn)生。
 
在3級(jí)結(jié)構(gòu)模型中,PC客戶端只需要安裝“瘦客戶端”軟件——比如瀏覽器——來(lái)顯示服務(wù)器提供的展示內(nèi)容,服務(wù)器負(fù)責(zé)準(zhǔn)備展示內(nèi)容、業(yè)務(wù)邏輯以及數(shù)據(jù)訪問(wèn)邏輯,應(yīng)用程序的數(shù)據(jù)來(lái)自企業(yè)信息系統(tǒng),例如關(guān)系數(shù)據(jù)庫(kù)。在這樣的系統(tǒng)中,業(yè)務(wù)邏輯可以通過(guò)遠(yuǎn)程訪問(wèn),因此通過(guò)Java控制臺(tái)應(yīng)用程序支持一個(gè)獨(dú)立的客戶端就成為課程。業(yè)務(wù)層主要通過(guò)數(shù)據(jù)訪問(wèn)層與信息系統(tǒng)實(shí)現(xiàn)交互。因?yàn)檎麄€(gè)應(yīng)用都位于服務(wù)器之上,因此這樣的服務(wù)器也被稱作“應(yīng)用程序服務(wù)器”或者“中間件”(參見圖3)。

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

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

Java企業(yè)級(jí)應(yīng)用架構(gòu)中的N級(jí)結(jié)構(gòu) 

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

【編輯推薦】

  1. J2EE架構(gòu)的6個(gè)***實(shí)踐
  2. Java EE的Web服務(wù)原理和體系結(jié)構(gòu)
  3. OSGi和Java企業(yè)級(jí)開發(fā)的未來(lái)方向
  4. 初探Java企業(yè)級(jí)開源框架OSGi
責(zé)任編輯:佚名 來(lái)源: 譯言
相關(guān)推薦

2025-03-06 01:00:55

架構(gòu)推送服務(wù)編程語(yǔ)言

2009-10-26 14:10:46

分布式設(shè)計(jì)

2022-02-22 10:29:24

分布式架構(gòu)高可用

2010-01-15 10:15:34

分布式交換技術(shù)

2022-06-02 10:35:20

架構(gòu)驅(qū)動(dòng)

2014-03-03 09:23:43

Zabbix分布式系統(tǒng)監(jiān)控

2023-08-27 16:11:35

數(shù)據(jù)庫(kù)分布式事務(wù)數(shù)據(jù)庫(kù)

2017-07-06 17:26:36

阿里分布式應(yīng)用架構(gòu)

2021-08-26 00:23:14

分布式存儲(chǔ)高可用

2021-08-24 05:02:34

云原生容器分布式

2018-12-14 10:06:22

緩存分布式系統(tǒng)

2020-01-03 09:00:00

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理金融

2009-08-25 13:48:01

Java EE架構(gòu)企業(yè)級(jí)應(yīng)用

2021-08-25 05:05:26

存儲(chǔ) 備份恢復(fù)

2014-03-10 17:21:00

IT技術(shù)周刊

2013-05-13 10:30:26

分布式架構(gòu)架構(gòu)設(shè)計(jì)網(wǎng)站架構(gòu)

2021-06-09 09:00:00

微服務(wù)架構(gòu)技術(shù)

2018-11-26 15:12:45

存儲(chǔ)選型架構(gòu)

2019-11-19 09:00:00

數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)

2021-08-26 23:54:46

分布式存儲(chǔ)負(fù)載
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)