国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件開發(fā)中的三層架構(gòu)技術(shù)分析

2016-03-07 14:22:52徐文鋒
無線互聯(lián)科技 2015年22期
關(guān)鍵詞:三層架構(gòu)軟件開發(fā)

徐文鋒

X

摘要:隨著計(jì)算機(jī)的普及,人們在生活中越來越依賴計(jì)算機(jī),因而對計(jì)算機(jī)軟件也提出了更高的要求,要求計(jì)算機(jī)軟件能夠提供更加方便、快捷、周全的服務(wù)。這就對計(jì)算機(jī)軟件開發(fā)技術(shù)提出了更高的要求,為了適應(yīng)軟件發(fā)展的需要,在計(jì)算機(jī)軟件開發(fā)中更多地引入了三層架構(gòu)技術(shù)。文章對此技術(shù)進(jìn)行了具體的分析。

關(guān)鍵詞:軟件開發(fā);二層架構(gòu);三層架構(gòu)

計(jì)算機(jī)普及之初,軟件的開發(fā)使用的都是二層架構(gòu)技術(shù),即只考慮2個(gè)端點(diǎn):客戶端和服務(wù)器端。用戶通過客戶端界面所提供的數(shù)據(jù),直接在客戶端對數(shù)據(jù)進(jìn)行計(jì)算和處理,然后通過服務(wù)器在數(shù)據(jù)庫中對數(shù)據(jù)進(jìn)行讀取等操作,得出需要的最終結(jié)果,并將結(jié)果傳輸?shù)娇蛻舳私缑骘@示給用戶。

在這種方式中,客戶端直接和服務(wù)器對接,沒有其他數(shù)據(jù)處理環(huán)節(jié),有利于提高數(shù)據(jù)庫數(shù)據(jù)讀取的速度,但缺點(diǎn)是當(dāng)計(jì)算機(jī)軟件的任何一個(gè)部分發(fā)生更改,哪怕是最微小的變動(dòng),整個(gè)計(jì)算機(jī)軟件都需要重新開發(fā),限制了軟件的通用性。特別是對于大型軟件開發(fā),除不利于軟件的修改,在軟件的開發(fā)期也存在很大的困難,需要程序編程人員相互高度配合,而且也不利于工作的分配。

為了解決這種矛盾,就出現(xiàn)了計(jì)算機(jī)軟件的三層架構(gòu)技術(shù),將原先單一的客戶端和服務(wù)器端的模式,根據(jù)功能分別拆分成表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層和數(shù)據(jù)實(shí)體層。采用“分而治之”的思想,把復(fù)雜的問題分成不同的部分,即不同的層,以便逐個(gè)解決問題,便于軟件的設(shè)計(jì)、控制、資源分配和修改。為了讓大家更好地了解三層架構(gòu)技術(shù),本文從幾個(gè)方面對軟件開發(fā)中的三層架構(gòu)技術(shù)進(jìn)行介紹。

1三層架構(gòu)技術(shù)中具體分工和各層功能介紹

(1)表示層:主要是指適合用戶與計(jì)算機(jī)的交互界面,目的是為了方便用戶數(shù)據(jù)的輸入和顯示處理后的數(shù)據(jù)結(jié)果,這部分工作主要由界面的美工完成。軟件設(shè)計(jì)人員通過表示層界面收集用戶輸入的數(shù)據(jù)要求,并把這些數(shù)據(jù)轉(zhuǎn)換成業(yè)務(wù)邏輯層可以操作的數(shù)據(jù)。同時(shí)也把業(yè)務(wù)邏輯層傳出的結(jié)果轉(zhuǎn)換成客戶想要的效果,通過文本、圖片、動(dòng)畫、3D等格式顯示在用戶眼前。表示層也可以被理解為輸入和輸出的操作平臺(tái),我們可以創(chuàng)建一個(gè)圖書館,然后把客戶要求設(shè)計(jì)成固定的元素:圖片、腳本、CSS、附件等進(jìn)行統(tǒng)一管理。

(2)業(yè)務(wù)邏輯層:又稱為領(lǐng)域?qū)?,是表示層和?shù)據(jù)訪問層的中間橋梁,實(shí)現(xiàn)業(yè)務(wù)之間的邏輯處理,主要是對經(jīng)過表示層輸入的數(shù)據(jù)進(jìn)行驗(yàn)證、計(jì)算和業(yè)務(wù)規(guī)則等方面的處理。在程序編寫的過程中,主要體現(xiàn)在對象的方法、屬性、事件、索引、接口等,通過這些手段,實(shí)現(xiàn)與數(shù)據(jù)訪問層的對接。業(yè)務(wù)邏輯層的位置非常關(guān)鍵,它位于表示層與數(shù)據(jù)訪問層的中間位置,對數(shù)據(jù)的交換起到了承上啟下的作用。對于表示層而言,它是被調(diào)用者,而對于數(shù)據(jù)訪問層而言,它是調(diào)用者,依賴與被依賴的關(guān)系都糾結(jié)在業(yè)務(wù)邏輯層上。

(3)數(shù)據(jù)訪問層:直接和數(shù)據(jù)庫中原始數(shù)據(jù)進(jìn)行對接,是對數(shù)據(jù)底層的操作,主要包括對數(shù)據(jù)庫中數(shù)據(jù)的增加、刪除、修改、查找等操作。該層主要的功能是根據(jù)業(yè)務(wù)邏輯層的要求,把存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)取出并提交給業(yè)務(wù)邏輯層,同時(shí)把業(yè)務(wù)邏輯層處理的數(shù)據(jù)結(jié)果保存到數(shù)據(jù)庫。對數(shù)據(jù)庫的操作,可以分為單表操作、關(guān)聯(lián)表操作和不同數(shù)據(jù)庫之間的操作。可以充分利用SQL語言中的Insert,delete,update,Select等語句,對數(shù)據(jù)庫進(jìn)行操作,同時(shí)返回不同的數(shù)據(jù)類型結(jié)果,例如Data Table,Bool,Data Set,Data Reader等,將其生成DLL文件,然后通過組件的引用就可以現(xiàn)實(shí)數(shù)據(jù)訪問的功能。

(4)數(shù)據(jù)實(shí)體層:就是數(shù)據(jù)庫中的原始數(shù)據(jù)。為了能夠更有效地存儲(chǔ)原始數(shù)據(jù),方便數(shù)據(jù)訪問層對數(shù)據(jù)的存取等操作,就必須對數(shù)據(jù)庫進(jìn)行設(shè)計(jì),將數(shù)據(jù)有規(guī)律地進(jìn)行存放。

數(shù)據(jù)庫設(shè)計(jì)是信息系統(tǒng)的核心和基礎(chǔ)。首先我們應(yīng)該對軟件用戶的業(yè)務(wù)數(shù)據(jù)的使用情況進(jìn)行調(diào)查和分析,了解所有業(yè)務(wù)數(shù)據(jù)的種類、范圍、數(shù)量、存在形式以及它們之間的關(guān)聯(lián)情況,并由此確定用戶對數(shù)據(jù)庫的要求和相關(guān)制約條件等,形成用戶的需求分析。

通過用戶的需求分析,建立出一個(gè)合適的數(shù)學(xué)模型。這個(gè)數(shù)學(xué)模型應(yīng)能夠完整反映出現(xiàn)實(shí)中所有業(yè)務(wù)數(shù)據(jù)的信息結(jié)構(gòu)、信息內(nèi)容和信息之間的互相關(guān)聯(lián)與制約關(guān)系,并滿足用戶對信息的存儲(chǔ)、維護(hù)、檢索和修改數(shù)據(jù)的操作要求等。

2三層架構(gòu)技術(shù)的工作原理

首先,用一張圖表示三層架構(gòu)技術(shù)之間的關(guān)系(見圖1)。

從圖1中可以很清晰地看到四層之間的一個(gè)邏輯關(guān)系。用戶通過表示層的界面輸入數(shù)據(jù),將數(shù)據(jù)傳遞給業(yè)務(wù)邏輯層進(jìn)行驗(yàn)證、計(jì)算、處理等操作,然后傳遞給數(shù)據(jù)訪問層,通過數(shù)據(jù)訪問層到數(shù)據(jù)庫中進(jìn)行增加、刪除、查找等操作,得到用戶所需要的數(shù)據(jù)結(jié)果,將結(jié)果進(jìn)行存儲(chǔ)并把結(jié)果返回到數(shù)據(jù)訪問層,再通過給業(yè)務(wù)邏輯層,最后以用戶設(shè)定的格式顯示在用戶界面,最終用戶得到自己需要的結(jié)果。四層中任意一層僅僅和自己相鄰的層進(jìn)行數(shù)據(jù)交換,而和其他層無任何關(guān)聯(lián)。

三層架構(gòu)技術(shù),其實(shí)就相當(dāng)于在客戶端與數(shù)據(jù)庫端之間加了一個(gè)“中間層”,也可以稱之為組件層。這個(gè)“中間層”,并不是實(shí)際物理意義上的中間層,而指的是邏輯上的中間層,把應(yīng)用程序中的業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗(yàn)等工作放到了中間層進(jìn)行處理,客戶端不再直接與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,而是通過中間層來建立連接,再由中間層和數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的交互,最終實(shí)現(xiàn)客戶端和數(shù)據(jù)庫端的數(shù)據(jù)的交互。

3三層架構(gòu)技術(shù)的規(guī)則

在軟件開發(fā)的三層架構(gòu)技術(shù)中,第四層數(shù)據(jù)實(shí)體層是基本的數(shù)據(jù)源,是必不可少的一層,是軟件操作的基礎(chǔ),它的運(yùn)算效果取決于計(jì)算機(jī)的硬件和數(shù)據(jù)庫設(shè)計(jì)的合理性。而對于另外三層,并不是只要項(xiàng)目被劃分成了表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層就稱之為三層架構(gòu),這三層之間還必須要遵守一些約定的規(guī)則:(1)表示層僅僅只是一個(gè)和用戶進(jìn)行對接的界面,因而可以將其任意移植到其他類似環(huán)境的項(xiàng)目中。(2)數(shù)據(jù)實(shí)體層只能通過數(shù)據(jù)訪問層進(jìn)行數(shù)據(jù)讀取,其他層都不能夠直接從數(shù)據(jù)實(shí)體層中讀取數(shù)據(jù)。(3)數(shù)據(jù)訪問層只能作為一個(gè)對數(shù)據(jù)庫實(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)程對象技術(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è)WebApplication就足夠?qū)崿F(xiàn)全部功能了,根本不需要更復(fù)雜的技術(shù),而只有真正復(fù)雜的項(xiàng)目,才需要利用三層架構(gòu)技術(shù)進(jìn)行設(shè)計(jì)和開發(fā)。

4三層架構(gòu)技術(shù)的優(yōu)勢

通過對三層架構(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í)間。軟件的任意一部分的功能更改和升級,僅需更改某層的設(shè)計(jì)和編寫,而不需要對整個(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ì)對整個(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)需求的變化。

5三層架構(gòu)技術(shù)的缺點(diǎn)

(1)降低了整個(gè)系統(tǒng)的讀取數(shù)據(jù)的速度。在二層技術(shù)結(jié)構(gòu)中,大部分?jǐn)?shù)據(jù)的讀取是通過客戶端直接造訪數(shù)據(jù)庫而得到的結(jié)果,而三層架構(gòu)技術(shù)卻必須經(jīng)過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)合理性,可能需要在對應(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ā)的成本。

總體而言,針對如今軟件開發(fā)的日趨大型化、規(guī)模化的特點(diǎn),三層架構(gòu)技術(shù)解決了很多二層架構(gòu)技術(shù)中無法解決的問題,從而真正實(shí)現(xiàn)了軟件開發(fā)的同步性、可維護(hù)性和可擴(kuò)展性,是軟件開發(fā)進(jìn)步的重要標(biāo)志。

猜你喜歡
三層架構(gòu)軟件開發(fā)
基于“三層架構(gòu)”理論的教學(xué)設(shè)計(jì)案例分析
信息安全環(huán)境下的計(jì)算機(jī)軟件開發(fā)研究
計(jì)算機(jī)軟件開發(fā)中的分層技術(shù)運(yùn)用
建模技術(shù)在軟件開發(fā)中的應(yīng)用
軟件開發(fā)中數(shù)據(jù)庫設(shè)計(jì)理論的實(shí)踐
核電廠定期試驗(yàn)管理軟件開發(fā)
科技視界(2016年21期)2016-10-17 20:50:03
FPGA軟件開發(fā)過程中編碼規(guī)范的作用
科技視界(2016年20期)2016-09-29 13:35:10
良好的信息系統(tǒng)體系結(jié)構(gòu)模式對網(wǎng)絡(luò)安全監(jiān)察與維護(hù)技術(shù)的方法的探討
ASP.NET三層架構(gòu)體系分析與應(yīng)用
培訓(xùn)機(jī)構(gòu)信息發(fā)布平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
壤塘县| 双桥区| 北海市| 庆安县| 马公市| 麻栗坡县| 松桃| 攀枝花市| 定安县| 阜新市| 武乡县| 沙湾县| 砀山县| 凤凰县| 京山县| 屏山县| 图木舒克市| 永德县| 开远市| 邹城市| 新安县| 泰安市| 故城县| 右玉县| 广西| 辽阳县| 定西市| 富顺县| 肥东县| 桃园县| 嘉兴市| 鄂伦春自治旗| 大安市| 余江县| 石嘴山市| 台前县| 巴中市| 越西县| 沙洋县| 岱山县| 泰来县|