軟件開發(fā)
三層架構(gòu)軟件開發(fā)
軟件開發(fā)中的三層架構(gòu)技術(shù)分析
三層架構(gòu)技術(shù),其實(shí)就相當(dāng)于在客戶端與數(shù)據(jù)庫(kù)端之問加了一個(gè)“中間層”,也可以稱之為組件層。這個(gè)“中間層”,并不是實(shí)際物理意義上的中間層,而指的是邏輯上的中間層,把應(yīng)用程序中的業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗(yàn)等工作放到了中間層進(jìn)行處理,客戶端不再直接與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互,而是通過中間層來建立連接,再由中間層和數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的交互,最終實(shí)現(xiàn)客戶端和數(shù)據(jù)庫(kù)端的數(shù)據(jù)的交互。
三層架構(gòu)軟件技術(shù)的規(guī)則
在軟件開發(fā)的三層架構(gòu)技術(shù)中,第四層數(shù)據(jù)實(shí)體層是基本的數(shù)據(jù)源,是必不可少的一層,是軟件操作的基礎(chǔ),它的運(yùn)算效果取決于計(jì)算機(jī)的硬件和數(shù)據(jù)庫(kù)設(shè)計(jì)的合理性。而對(duì)于另外三層,并不是只要項(xiàng)目被劃分成了表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層就稱之為三層架構(gòu),這三層之間還必須要遵守一些約定的規(guī)則:
(1)表示層僅僅只是一個(gè)和用戶進(jìn)行對(duì)接的界面,因而可以將其任意移植到其他類似環(huán)境的項(xiàng)目中。
(2)數(shù)據(jù)實(shí)體層只能通過數(shù)據(jù)訪問層進(jìn)行數(shù)據(jù)讀取,其他層都不能夠直接從數(shù)據(jù)實(shí)體層中讀取數(shù)據(jù)。
(3)數(shù)據(jù)訪問層只能作為一個(gè)對(duì)數(shù)據(jù)庫(kù)實(shí)體的讀取中間層,而不能進(jìn)行任何業(yè)務(wù)邏輯的處理操作。
(4)軟件設(shè)計(jì)應(yīng)該以業(yè)務(wù)邏輯層為核心,而不是數(shù)據(jù)訪問層或是數(shù)據(jù)實(shí)體層,更不應(yīng)該是表示層。在業(yè)務(wù)邏輯層應(yīng)該以面向?qū)ο蟮姆绞?,?shí)現(xiàn)所有的有業(yè)務(wù)邏輯操作。
(5)數(shù)據(jù)層中所有的數(shù)據(jù)都應(yīng)該在一定的抽象程度上做到與系統(tǒng)無關(guān)。
(6)設(shè)計(jì)的時(shí)候,所有的遠(yuǎn)程對(duì)象技術(shù)都應(yīng)該考慮到不同的服務(wù)器和多臺(tái)服務(wù)器之間的負(fù)載均衡作集群。
(7)這3個(gè)模塊中的任意模塊都可以運(yùn)行在不同的服務(wù)器上。
一個(gè)項(xiàng)目是否需要進(jìn)行三層設(shè)計(jì),首先要看這個(gè)項(xiàng)目的復(fù)雜度。實(shí)際上,很多項(xiàng)目只需要編輯一個(gè)W e bAp plicatio n就足夠?qū)崿F(xiàn)全部功能了,根本不需要更復(fù)雜的技術(shù),而只有真正復(fù)雜的項(xiàng)目,才需要利用三層架構(gòu)技術(shù)進(jìn)行設(shè)計(jì)和開發(fā)。
三層架構(gòu)技術(shù)的優(yōu)勢(shì)
通過對(duì)三層架構(gòu)技術(shù)的工作原理的理解,我們可以得到通過三層架構(gòu)技術(shù)開發(fā)出來的軟件的優(yōu)點(diǎn)。
(1)結(jié)構(gòu)清晰,耦合度低。三層架構(gòu)技術(shù)中層次分明,層與層之間結(jié)構(gòu)清晰,軟件編寫人員分工明確,層與層之間的關(guān)聯(lián)不多,降低層與層之間的依賴性,編寫人員可以只關(guān)注整個(gè)結(jié)構(gòu)中的某一層,從而極大地避免了二層技術(shù)開發(fā)的軟件中存在的耦合度問題。
(2)可維護(hù)性高,可擴(kuò)展性高。用三層架構(gòu)技術(shù)開發(fā)的軟件在后期維護(hù)的時(shí)候,極大地降低了維護(hù)成本和維護(hù)時(shí)間。軟件的任意一部分的功能更改和升級(jí),僅需更改某層的設(shè)計(jì)和編寫,而不需要對(duì)整個(gè)系統(tǒng)做出改變,而不像用二層技術(shù)開發(fā)的軟件那樣,一個(gè)小程序的變化都需要調(diào)整整個(gè)軟件開發(fā),極大地提高了軟件的維護(hù)性和擴(kuò)展陛。
(3)利于開發(fā)任務(wù)同步進(jìn)行,容易適應(yīng)需求變化。三層架構(gòu)技術(shù)極大地解決了軟件開發(fā)的問題,特別是大型軟件開發(fā)的問題,讓軟件開發(fā)實(shí)現(xiàn)任務(wù)的同步。在二層技術(shù)開發(fā)軟件時(shí),由于僅有2個(gè)端點(diǎn),故軟件開發(fā)時(shí)就存在一個(gè)編程的先后,必須由一個(gè)團(tuán)隊(duì)對(duì)整個(gè)軟件流程十分清楚,并從始至終編寫所有環(huán)節(jié)的程序。而三層架構(gòu)技術(shù)把軟件分成4個(gè)層次,而且層與層之間關(guān)聯(lián)不大,故可以將軟件分成4個(gè)不同層次進(jìn)行同步開發(fā),實(shí)現(xiàn)任務(wù)的同步,從而大大縮短了軟件開發(fā)的時(shí)間,更容易適應(yīng)需求的變化。
軟件三層架構(gòu)技術(shù)的缺點(diǎn)
(1)降低了整個(gè)系統(tǒng)的讀取數(shù)據(jù)的速度。在二層技術(shù)結(jié)構(gòu)中,大部分?jǐn)?shù)據(jù)的讀取是通過客戶端直接造訪數(shù)據(jù)庫(kù)而得到的結(jié)果,而三層架構(gòu)技術(shù)卻必須經(jīng)1/4個(gè)層次的完整過程才能得到最終結(jié)果,無形中增加了中間環(huán)節(jié),從而降低了系統(tǒng)的性能。
(2)有時(shí)會(huì)導(dǎo)致關(guān)聯(lián)層次的修改。由于三層架構(gòu)技術(shù)中層與層之間存在邏輯關(guān)系,當(dāng)其中一個(gè)層次由于需要而發(fā)生功能的改變或增加時(shí),很有可能導(dǎo)致其他層次的代碼改變。例如:當(dāng)表示層中增加了一個(gè)功能,為了保證其各層設(shè)計(jì)的結(jié)構(gòu)合理性,可能需要在對(duì)應(yīng)的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層中都增加相應(yīng)的代碼,從而達(dá)到最終數(shù)據(jù)的一致性。
(3)整體代碼編寫的工作量增加。由于三層架構(gòu)技術(shù)增加了層與層之間的接口,有些能夠直接使用的代碼現(xiàn)在不得不分開使用,無形中增加了代碼的編寫工作量。
(4)增加了開發(fā)成本。原先一個(gè)整體的軟件開發(fā),現(xiàn)在首先必須將其分割成不同功能的層次,而且需要考慮層與層之間的連接接口,無形中增加了整個(gè)軟件開發(fā)的過程和工作量,從而增加了軟件開發(fā)的成本。
總結(jié)
總體而言,針對(duì)如今軟件開發(fā)的日趨大型化、規(guī)?;奶攸c(diǎn),三層架構(gòu)技術(shù)解決了很多二層架構(gòu)技術(shù)中無法解決的問題,從而真正實(shí)現(xiàn)了軟件開發(fā)的同步性、可維護(hù)性和可擴(kuò)展性,是軟件開發(fā)進(jìn)步的重要標(biāo)志。
以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的軟件開發(fā)中的三層架構(gòu)技術(shù)分析。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗(yàn),可以盡快評(píng)估開發(fā)周期與IC價(jià)格,也可以核算PCBA報(bào)價(jià)。我們是多家國(guó)內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計(jì)與軟件開發(fā)能力。涵蓋了電路設(shè)計(jì)、PCB設(shè)計(jì)、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號(hào)開發(fā)、語音識(shí)別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計(jì)、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計(jì)、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
- 返回頂部