亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于三層架構(gòu)的軟件體系設(shè)計(jì)與應(yīng)用

        2017-05-10 19:27:10周健
        電子技術(shù)與軟件工程 2017年8期
        關(guān)鍵詞:表示層插件架構(gòu)

        周健

        摘 要

        本文首先通過總結(jié)三層架構(gòu)體的實(shí)踐經(jīng)驗(yàn),介紹了在人們熟知的表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲(chǔ)層這種縱向分層基礎(chǔ)上更進(jìn)一步的內(nèi)部七層詳細(xì)劃分;又以松耦合組件的實(shí)現(xiàn)為重點(diǎn),介紹了利用插件技術(shù)和AOP方法對(duì)三層結(jié)構(gòu)在軟件體系橫向上的分解方法及應(yīng)用要點(diǎn);最后介紹了三層結(jié)構(gòu)按地域分布時(shí)的應(yīng)用實(shí)踐。

        【關(guān)鍵詞】三層架構(gòu) 軟件體系 插件技術(shù) 地域分布

        隨著軟件工程研究與應(yīng)用的不斷進(jìn)步,軟件開發(fā)規(guī)范以及面向?qū)ο缶幊趟枷氲玫搅瞬粩嗌钊氲膽?yīng)用,人們對(duì)軟件可維護(hù)性和可重用性的要求不斷提高,使得傳統(tǒng)的二層架構(gòu)系統(tǒng)愈加顯得不能適應(yīng)軟件開發(fā)需要,由此在用戶界面層與數(shù)據(jù)庫層之間增加一個(gè)“中間層”的三層軟件架構(gòu)體系應(yīng)運(yùn)而生。這里所說的三層體系,不是指服務(wù)器物理設(shè)備上的三層配置,也不僅僅有B/S應(yīng)用才有三層體系結(jié)構(gòu),三層是指軟件系統(tǒng)在應(yīng)用邏輯設(shè)計(jì)上的三層。通過引入中間層,將復(fù)雜的商業(yè)邏輯從傳統(tǒng)的二層結(jié)構(gòu)(Client-Server)應(yīng)用模型中分離出來,并提供了便于擴(kuò)充、易于訪問、易于管理的設(shè)計(jì)思想和方法,通過將多種應(yīng)用服務(wù)分別封裝部署于應(yīng)用服務(wù)器來增強(qiáng)了應(yīng)用程序的可維護(hù)性和可重用性,使用戶在管理上所花費(fèi)的時(shí)間最小化,從而實(shí)現(xiàn)了安全、穩(wěn)定和高效的系統(tǒng)應(yīng)用。

        1 軟件的三層架構(gòu)體系

        三層架構(gòu)體系已經(jīng)成為軟件設(shè)計(jì)領(lǐng)域的基本結(jié)構(gòu),雖說關(guān)于三層架構(gòu)目前已經(jīng)有多種不同的描述定義,但在實(shí)際應(yīng)用中它的基本思想都是通過在界面應(yīng)用層和數(shù)據(jù)訪問層之間增加一個(gè)用來銜接兩者之間的業(yè)務(wù)邏輯層,借此來實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)中“高內(nèi)聚低耦合”的效果,從而達(dá)到為系統(tǒng)的擴(kuò)充和維護(hù)創(chuàng)造更多便利條件的目的。我們?cè)趹?yīng)用中以微軟DNA架構(gòu)定義為基礎(chǔ),并且根據(jù)實(shí)踐中的體會(huì)對(duì)各層的內(nèi)部進(jìn)行了進(jìn)一步的細(xì)劃,形成了如圖1所示軟件的實(shí)用型的三層架構(gòu)體系。

        1.1 表示層

        表示層的功能就是用于接收用戶輸入的數(shù)據(jù)和顯示經(jīng)過系統(tǒng)處理后用戶所需要的數(shù)據(jù),這一環(huán)節(jié)在應(yīng)用中可以再劃分為兩部分,其中的界面外觀層用來實(shí)現(xiàn)系統(tǒng)用戶界面的設(shè)計(jì)需求;而界面規(guī)則層是通過界面外觀層接收的用戶指令來調(diào)用業(yè)務(wù)接口層相應(yīng)的接口,并將界面輸入的業(yè)務(wù)數(shù)據(jù)傳送給業(yè)務(wù)邏輯層。

        1.2 業(yè)務(wù)邏輯層

        業(yè)務(wù)邏輯層也就是系統(tǒng)的“中間件”,它在系統(tǒng)中發(fā)揮著表示層與數(shù)據(jù)存儲(chǔ)層兩者之間的聯(lián)結(jié)作用,在系統(tǒng)運(yùn)行中承擔(dān)著數(shù)據(jù)校驗(yàn)、計(jì)算處理和業(yè)務(wù)規(guī)則實(shí)現(xiàn)等業(yè)務(wù)邏輯處理功能,對(duì)于輸入的數(shù)據(jù)經(jīng)過加工后保存到數(shù)據(jù)存儲(chǔ)層,而對(duì)于用戶從數(shù)據(jù)存儲(chǔ)層中檢索提取的數(shù)據(jù)返回給表示層。在具體實(shí)施時(shí)又可以細(xì)分業(yè)務(wù)接口層,利用它來接收表示層用所提供的指令接口,并將指令操作結(jié)果再返回給表示層;業(yè)務(wù)規(guī)則層,則是用來接受用戶指令,并將該指令根據(jù)需要?jiǎng)澐纸o不同的構(gòu)造器進(jìn)行處理,并構(gòu)造出所對(duì)應(yīng)的實(shí)體;實(shí)體層則是對(duì)數(shù)據(jù)庫對(duì)象的抽象,常見的有表、視圖、觸發(fā)器和存儲(chǔ)過程等;數(shù)據(jù)訪問層具體用來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的連接、查詢、插入、更新和刪除等操作。

        1.3 數(shù)據(jù)存儲(chǔ)層

        數(shù)據(jù)存儲(chǔ)層就是系統(tǒng)中的數(shù)據(jù)庫系統(tǒng)或數(shù)據(jù)倉庫系統(tǒng),其中包含了表、視圖、觸發(fā)器和存儲(chǔ)過程等數(shù)據(jù)庫對(duì)象。

        2 三層結(jié)構(gòu)+插件的應(yīng)用特點(diǎn)

        通常所說的三層架構(gòu)是對(duì)軟件系統(tǒng)進(jìn)行“縱向”分層,而三層架構(gòu)在實(shí)際應(yīng)用中經(jīng)常會(huì)形成圖2所示帶有插件的三層架構(gòu),它是在三層架構(gòu)基礎(chǔ)上利用各層上所添加的Addin“插件”對(duì)軟件系統(tǒng)進(jìn)行了“橫向”的分解,這種以縱向分層為基礎(chǔ),以橫向分解為擴(kuò)展的軟件架構(gòu)體系整體上可以被看作是一個(gè)“網(wǎng)格”形結(jié)構(gòu)。其中的某些網(wǎng)格可以看作是軟件系統(tǒng)的“擴(kuò)展點(diǎn)”,我們可以利用這些擴(kuò)展點(diǎn)來掛接“插件”,這樣就可以在三層架構(gòu)的每個(gè)內(nèi)部層級(jí)上通過掛接適當(dāng)?shù)牟寮硗瓿稍搶拥囊恍┕δ?,從而?shí)現(xiàn)了一個(gè)軟件系統(tǒng)與外接應(yīng)用程序的“熱插拔”式擴(kuò)展,也就是說可以在少影響甚至不影響系統(tǒng)服務(wù)的情況下,動(dòng)態(tài)的實(shí)現(xiàn)有關(guān)插件的加載、移除或更新等操作,通過采用這種插件技術(shù)可以實(shí)現(xiàn)以下功能:

        (1)對(duì)于表示層,可以動(dòng)態(tài)地對(duì)某些用戶界面進(jìn)行更新替換,或?qū)π略龅挠脩艚缑婺K進(jìn)行加載;在業(yè)務(wù)邏輯層,可以動(dòng)態(tài)地某項(xiàng)業(yè)務(wù)服務(wù)模塊進(jìn)行加載、替換或者刪除;在數(shù)據(jù)訪問層,通過使用插件技術(shù)我們可以動(dòng)態(tài)地添加對(duì)新的數(shù)據(jù)庫類型的支持。這些功能模塊的加載、替換或者刪除都是在系統(tǒng)整體架構(gòu)保持穩(wěn)定的基礎(chǔ)上,在運(yùn)行時(shí)就可以實(shí)現(xiàn)的。這種插件的“熱插拔”功能使得一個(gè)應(yīng)用系統(tǒng)的可擴(kuò)展性得到了極大的提高。

        (2)在需要進(jìn)行系統(tǒng)升級(jí)時(shí),大多可以通過升級(jí)某個(gè)層級(jí)的插件就可以實(shí)現(xiàn)了,還可以做到在系統(tǒng)服務(wù)整體不間斷的情況下進(jìn)行插件的動(dòng)態(tài)升級(jí)。

        (3)為了實(shí)現(xiàn)系統(tǒng)的“三層架構(gòu)+插件”結(jié)構(gòu),在系統(tǒng)設(shè)計(jì)時(shí)就需要對(duì)系統(tǒng)內(nèi)部各層進(jìn)行“松耦合”的設(shè)計(jì),只有滿足松耦合要求的組件才可以被做成“插件”。為了更好的實(shí)現(xiàn)松耦合的組件設(shè)計(jì),在架構(gòu)模型中可以采用面向切面編程AOP(Aspect Oriented Programmingg)框架進(jìn)行函數(shù)式編程,采用AOP技術(shù)的主要作用是可以實(shí)現(xiàn)對(duì)某些業(yè)務(wù)邏輯的橫向關(guān)鍵點(diǎn)的隔離,從實(shí)現(xiàn)了系統(tǒng)中業(yè)務(wù)邏輯各個(gè)部分之間的“低耦合”設(shè)計(jì),提高了程序的可重用性,自然也就提高了開發(fā)的效率。

        3 按地域分布的三層結(jié)構(gòu)應(yīng)用特點(diǎn)

        對(duì)于各類跨地域分布的應(yīng)用系統(tǒng),可以設(shè)計(jì)為圖3所示的按地域分布的架構(gòu),形成一種基于地理位置的服務(wù)。地域分布的架構(gòu)是在上述的三層架構(gòu)和“三層+插件”架構(gòu)基礎(chǔ)上按應(yīng)用需求的地域分布式服務(wù)體系。它的應(yīng)用特點(diǎn)如下:

        3.1 跨地域分布的服務(wù)需求案例

        假設(shè)某一系統(tǒng)需要為全國的多個(gè)城市提供業(yè)務(wù)功能服務(wù),每個(gè)城市的客戶量很大,而且每個(gè)城市訪問的數(shù)據(jù)需求可能是不一樣的,訪問的功能模塊也各不相同。某客戶除了需要向該系統(tǒng)請(qǐng)求服務(wù)之外,還會(huì)通過該系統(tǒng)與其它客戶進(jìn)行即時(shí)通信,而這兩個(gè)客戶可以是在同一個(gè)城市,也可能位于不同的城市。

        3.2 按地域分布式架構(gòu)的應(yīng)用要點(diǎn)

        首先,地域分布式架構(gòu)將用戶管理和業(yè)務(wù)功能服務(wù)分開,通過分別構(gòu)建應(yīng)用服務(wù)器和功能服務(wù)器來實(shí)現(xiàn)不同的服務(wù),然后將它們部署到不同的系統(tǒng)節(jié)點(diǎn)上。應(yīng)用服務(wù)器和功能服務(wù)器都是以三層架構(gòu)為基礎(chǔ),采用了“三層架構(gòu)+插件”架構(gòu)的架構(gòu)。比如,對(duì)于北京這一地域,系統(tǒng)可以部署一臺(tái)應(yīng)用服務(wù)器和一臺(tái)功能服務(wù)器,客戶可以通過客戶端來訪問應(yīng)用服務(wù)器實(shí)現(xiàn)服務(wù)請(qǐng)求。假設(shè)有一天上海地區(qū)的客戶量大幅度增加,因?yàn)橄到y(tǒng)中的業(yè)務(wù)計(jì)算處理都是在功能服務(wù)器上完成的,由此會(huì)導(dǎo)致功能服務(wù)器的訪問壓力劇增。在這種局面下,按地域分布式架構(gòu)將允許系統(tǒng)在不停止任何服務(wù)的情況下,動(dòng)態(tài)的加載新增的功能服務(wù)器,新添加的功能服務(wù)器能夠自動(dòng)注冊(cè)到應(yīng)用服務(wù)器。系統(tǒng)中的應(yīng)用服務(wù)器可以監(jiān)控每個(gè)功能服務(wù)器的負(fù)載情況,每當(dāng)有客戶端請(qǐng)求到來時(shí),應(yīng)用服務(wù)器會(huì)將請(qǐng)求交給負(fù)載最低的功能服務(wù)器進(jìn)行處理,這就實(shí)現(xiàn)了功能服務(wù)器的負(fù)載均衡。地域分布式架構(gòu)還可以通過配置跨區(qū)域應(yīng)用服務(wù)器來解決應(yīng)用服務(wù)器之間的通信問題。所有應(yīng)用服務(wù)器在啟動(dòng)的時(shí)候,將自動(dòng)向跨區(qū)域應(yīng)用服務(wù)器進(jìn)行注冊(cè),這樣就可以融入到整個(gè)地域分布式架構(gòu)體系中。

        4 結(jié)束語

        研究軟件系統(tǒng)三層架構(gòu)的主要目的就是為開發(fā)人員進(jìn)行系統(tǒng)的開發(fā)、部署、維護(hù)而服務(wù)的。在系統(tǒng)的開發(fā)中通過中間層的劃分,實(shí)現(xiàn)了表示層和數(shù)據(jù)庫層最大程度的脫離,也確保了系統(tǒng)組件的可維護(hù)性和可重用性。而“三層+插件”架構(gòu),則是利用插件技術(shù)和AOP方法在三層結(jié)構(gòu)體系基礎(chǔ)上對(duì)軟件系統(tǒng)的橫向分解,目的就是要實(shí)現(xiàn)系統(tǒng)組件的松耦合。按地域分布的結(jié)構(gòu)體系,則是三層架構(gòu)和“三層+插件”架構(gòu)在跨地域軟件系統(tǒng)中的一種解決方案。

        參考文獻(xiàn)

        [1]胡文生,楊劍鋒,趙明.面向可維護(hù)性的軟件體系結(jié)構(gòu)設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2016,33(07):145-149.

        [2]謝偉明.面向服務(wù)的軟件體系架構(gòu)總體設(shè)計(jì)[J].電子技術(shù)與軟件工程,2016,59(24):42.

        猜你喜歡
        表示層插件架構(gòu)
        基于FPGA的RNN硬件加速架構(gòu)
        功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實(shí)踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        自編插件完善App Inventor與樂高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        基于Spring的企業(yè)級(jí)Web項(xiàng)目架構(gòu)設(shè)計(jì)研究
        軟件(2019年6期)2019-10-08 06:27:21
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
        ASP.NET三層構(gòu)架解析
        基于SSH框架科研管理系統(tǒng)的設(shè)計(jì)
        MapWindowGIS插件機(jī)制及應(yīng)用
        一種基于FPGA+ARM架構(gòu)的μPMU實(shí)現(xiàn)
        基于Revit MEP的插件制作探討
        亚洲国产成人片在线观看| 亚洲日本精品一区二区三区| 黄色影院不卡一区二区| 国产欧美性成人精品午夜| 国产精品久久久久电影网| 国产av专区一区二区三区| 91精品国产综合久久国产| 美女网站免费观看视频| 日本精品人妻无码77777| 亚洲欧洲综合有码无码| 精品麻豆一区二区三区乱码| 少妇久久久久久人妻无码| 国产成人久久精品77777综合| 国产午夜激无码AV毛片不卡| 日韩av一区二区蜜桃| 久久伊人精品一区二区三区| 日本少妇人妻xxxxx18| 国产杨幂AV在线播放| 日本视频在线观看二区| 亚洲av日韩av在线观看| 久久国产精品国产精品日韩区| av有码在线一区二区| 精品人妻av一区二区三区| 男女啪啪永久免费观看网站| 91精品久久久久含羞草| 日本免费一区尤物| 日本人妻伦理片在线观看| 国产精品国产三级国产密月| 六月婷婷久香在线视频| 一区二区韩国福利网站| 91精品亚洲熟妇少妇| 欧美乱大交xxxxx潮喷| 精品国产三级a在线观看| 亚洲中文字幕人妻诱惑| 国产精品亚洲av无人区一区香蕉| 久久久精品人妻久久影视| 99久久精品国产自在首页| 少妇又紧又爽丰满在线视频| 成年女人粗暴毛片免费观看| 成人无码h真人在线网站| 在线久草视频免费播放|