• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      三層架構(gòu)模式網(wǎng)站設(shè)計和研究

      2012-04-29 05:47:22張偉王倚天王嘉冰
      電腦知識與技術(shù) 2012年20期
      關(guān)鍵詞:架構(gòu)對象

      張偉 王倚天 王嘉冰

      摘要:該文介紹了基于三層架構(gòu)模式的網(wǎng)站的設(shè)計方法和設(shè)計流程,說明了層架構(gòu)的特點和優(yōu)勢,詳細闡述了各層設(shè)計的要點和難點。通過將對象設(shè)計思想應(yīng)用到網(wǎng)站設(shè)計中,網(wǎng)站設(shè)計模型得以重用。

      關(guān)鍵詞:層;對象;架構(gòu);LINQ

      中圖分類號:TP393文獻標(biāo)識碼:A文章編號:1009-3044(2012)20-4912-03

      Design and Study of Website Based on Three Layer Architecture

      ZHANG Wei,WANG Yi-tian,WANG Jia-bing

      (Shenyang University of Chemical Technology, Shenyang 110142, China)

      Abstract: This paper introduces how to design website based on three layer architecture, illuminates feature and advantage of layer archi tecture,demonstrates main points and difficulties of every layer design in detail.Website design model can be reused by applicating object de sign concept to website design.

      Key words: layer; object; architecture; LINQ

      架構(gòu)是指將應(yīng)用系統(tǒng)的每個功能部分分解到獨立的組件中,并將各種組件劃分到各個邏輯層中去[1]。

      層架構(gòu)是一種弱耦合結(jié)構(gòu),層和層之間是向下依賴的,底層對于上層是毫無所知的,上層的修改不會影響到對底層的調(diào)用。

      所謂三層體系結(jié)構(gòu),是在客戶端與數(shù)據(jù)庫之間加入了一個"中間層",也叫組件層。不是簡單地放置三臺機器就是三層體系結(jié)構(gòu),也不僅僅有B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即這三個層放置到一臺機器上[2]。

      傳統(tǒng)兩層架構(gòu)網(wǎng)站設(shè)計是通常將用戶的界面顯示與數(shù)據(jù)庫邏輯(SQL語句)都集中到用戶頁面中,用戶界面直接與數(shù)據(jù)庫連接。缺陷就是用戶界面中包含數(shù)據(jù)庫的查詢或更新語句。三層架構(gòu)是將用戶界面與數(shù)據(jù)的邏輯完全分開在不同的層面中,用戶界面不是直接與數(shù)據(jù)庫連接的,而是與業(yè)務(wù)邏輯層連接,業(yè)務(wù)邏輯層再與數(shù)據(jù)訪問層連接,這樣就實現(xiàn)了用戶界面與SQL語句的分離,便于系統(tǒng)的擴展。當(dāng)系統(tǒng)數(shù)據(jù)庫更換時,只需修改數(shù)據(jù)訪問層即可,前臺顯示相關(guān)頁面不需要任何修改,從而方便網(wǎng)站的維護和修改[3]。

      該文所做的工作是基金項目“網(wǎng)絡(luò)環(huán)境下高校圖書館特色資源庫的建設(shè)與研究”的一部分,特色資源是科研期刊論文和科研著作資源。網(wǎng)絡(luò)環(huán)境下高校圖書館特色資源庫是以三層架構(gòu)網(wǎng)站為技術(shù)核心建設(shè)的,即數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和界面表示層,在特色資源庫平臺上表現(xiàn)為特色資源的結(jié)果顯示、邏輯查詢和調(diào)用以及數(shù)據(jù)訪問,具體關(guān)系圖如下圖所示。

      1三層架構(gòu)設(shè)計

      按三層架構(gòu)模式設(shè)計網(wǎng)站是目前網(wǎng)站設(shè)計的普遍方法,三層即數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和界面表示層,數(shù)據(jù)訪問層是對數(shù)據(jù)請求進行響應(yīng),執(zhí)行sql語句,返回數(shù)據(jù)記錄或數(shù)據(jù)表;業(yè)務(wù)邏輯層是擬要設(shè)計的網(wǎng)站所涉及的業(yè)務(wù)領(lǐng)域,該領(lǐng)域的業(yè)務(wù)邏輯操作以計算機程序或算法的方式實現(xiàn);界面表示層是直接面向用戶的,向用戶展現(xiàn)網(wǎng)站的功能和布局及其美感。

      特色資源庫平臺網(wǎng)站按三層架構(gòu)設(shè)計,特色資源庫是學(xué)校老師科研論文和著作的資源總庫,對數(shù)據(jù)訪問層的數(shù)據(jù)請求基本是查詢和搜索,即按作者、篇名和關(guān)鍵詞等查詢;業(yè)務(wù)邏輯層是查詢條件的邏輯操作,即高級檢索按多個限定條件檢索;界面表示層是對查詢結(jié)果排列顯示及論文或著作的摘要簡介等。

      數(shù)據(jù)庫是三層架構(gòu)之外的最底層,它是按照某種數(shù)據(jù)模型組織數(shù)據(jù)并存放于存儲器中的具有一定聯(lián)系的數(shù)據(jù)集合。將所有數(shù)據(jù)集中存放在數(shù)據(jù)庫中,不但便于對其進行統(tǒng)一管理(如增加、刪除、修改和檢索數(shù)據(jù)等),而且便于提煉出對決策更有用的數(shù)據(jù)和信息[4]。

      數(shù)據(jù)庫可以是微軟的SQL Server或者ORACLE,以SQL Server數(shù)據(jù)庫為例,目前SQL Server最新版本是2008,但是運行穩(wěn)定且廣泛應(yīng)用的是SQL Server 2005版本,該版本擴展了SQL Server 2000的性能、可靠性、可用性、可編程性和易用性。SQL Server2005包含了多項新功能,尤其在安全性方面有著較高要求,對某些操作權(quán)限有嚴格限制。它成為大規(guī)模聯(lián)機事務(wù)處理(OLTP)、數(shù)據(jù)倉庫的電子商務(wù)應(yīng)用程序的優(yōu)秀數(shù)據(jù)庫平臺。

      1.1數(shù)據(jù)訪問層

      數(shù)據(jù)訪問層是對最底層數(shù)據(jù)庫操作,對數(shù)據(jù)庫進行增加、刪除、修改、查找記錄等操作。數(shù)據(jù)訪問層執(zhí)行增加、刪除、修改、查找等sql語句,sql語句中的參數(shù)是從業(yè)務(wù)邏輯層中傳來的,該參數(shù)是以對象的方式傳遞的,即在用戶界面層獲得一系列數(shù)據(jù),把這些數(shù)據(jù)以對象屬性的方式進行封裝,然后僅將對象傳遞給業(yè)務(wù)邏輯層即可,業(yè)務(wù)邏輯層將對象的屬性進行業(yè)務(wù)操作,最后將對象傳遞給數(shù)據(jù)訪問層。數(shù)據(jù)訪問層將對象的各個屬性作為sql參數(shù)參與執(zhí)行。該層將執(zhí)行結(jié)果返回給業(yè)務(wù)邏輯層,執(zhí)行結(jié)果是某條或多條數(shù)據(jù)記錄或者一個或多個數(shù)據(jù)表。

      特色資源庫平臺的數(shù)據(jù)訪問層包括科研論文、科研著作等數(shù)據(jù)庫表對應(yīng)的類及連接數(shù)據(jù)庫的類,全文采用文件上傳方式傳到文件夾中,數(shù)據(jù)庫里放該全文的相對鏈接地址。

      數(shù)據(jù)訪問層的兩種設(shè)計方法:

      1.1.1普通設(shè)計

      設(shè)計一個DBHelper類,該類中包含建立數(shù)據(jù)庫連接、執(zhí)行sql語句等。數(shù)據(jù)庫中的每個表對應(yīng)一個數(shù)據(jù)服務(wù)類,該類中包含對表中數(shù)據(jù)的一系列操作,操作結(jié)果對應(yīng)對象實例列表,每條數(shù)據(jù)對應(yīng)一個對象實例。

      1.1.2 LINQ設(shè)計

      LINQ是Language Integrated Query的縮寫,中文名字是語言集成查詢,它提供給程序員一個統(tǒng)一的編程概念和語法,程序員不需要關(guān)心將要訪問的是關(guān)系數(shù)據(jù)庫、XML數(shù)據(jù)或是遠程的對象,它都采用同樣的訪問方式[5]。每一種數(shù)據(jù)對象都有一種查詢語言,程序員無需知道每一種查詢語言,統(tǒng)一使用LINQ技術(shù)就可以一步到位。LINQ架構(gòu)如下圖1所示。

      圖1 LINQ架構(gòu)圖[6]

      存儲過程是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中。Linq到SQL在對象模型中使用方法來表示數(shù)據(jù)庫中的存儲過程,可以通過應(yīng)用FunctionAttribute屬性和ParameterAttribute屬性(如果需要)將方法指定為存儲過程[7]。

      使用VisualStudio2008的對象關(guān)系設(shè)計器可以很容易地把存儲過程映射為對象模型中的方法??梢灾苯影汛鎯^程拖放到方法窗口,這樣就能生成與該存儲過程對應(yīng)的方法,例如把存儲過程SPAddCA拖放到設(shè)計器最右邊的方法窗格中就會直接生成與該存儲過程對應(yīng)的方法SPAddCA。

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

      業(yè)務(wù)邏輯層處于界面表示層和數(shù)據(jù)訪問層中間,它不僅啟到中轉(zhuǎn)表示層數(shù)據(jù)到數(shù)據(jù)訪問層的作用,而且還可以對表示層輸入的數(shù)據(jù)進行處理和有效驗證、對多個表的事務(wù)處理等,它既是調(diào)用者又是被調(diào)用者,和界面表示層和數(shù)據(jù)訪問層是依賴和被依賴的關(guān)系。業(yè)務(wù)邏輯層決不是可有可無的中間層,隨著項目業(yè)務(wù)邏輯越來越復(fù)雜,就會漸漸的感覺到業(yè)務(wù)邏輯層所啟到的作用。對于事務(wù)處理在SQL Server數(shù)據(jù)庫中可以寫到存儲過程里,然而在ORACLE數(shù)據(jù)庫中就必須寫到業(yè)務(wù)邏輯層中,如果不使用業(yè)務(wù)邏輯層來處理,而放在數(shù)據(jù)訪問層來處理,業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯混在一起,代碼就會很混亂,給后期維護帶來諸多麻煩。

      業(yè)務(wù)領(lǐng)域?qū)<?,某一業(yè)務(wù)領(lǐng)域與計算機結(jié)合必將形成更大的價值結(jié)構(gòu)。業(yè)務(wù)邏輯層到底都包括什么?對于用戶界面層某些數(shù)據(jù)請求不能立即通過業(yè)務(wù)邏輯層傳給數(shù)據(jù)訪問層處理,需要業(yè)務(wù)邏輯層做相應(yīng)的處理,以PetShop為例,業(yè)務(wù)邏輯層中有購物車等業(yè)務(wù)邏輯,它就是將客戶訂購的商品逐一統(tǒng)計存入購物車,當(dāng)然如果中途改變主意不想訂購某個商品,也可以將某個商品從購物車中移除,最終將購物車中數(shù)據(jù)送給數(shù)據(jù)訪問層存儲在數(shù)據(jù)庫中。業(yè)務(wù)邏輯即是和某一專業(yè)相關(guān)的數(shù)據(jù)處理,并且該數(shù)據(jù)處理遵循本專業(yè)業(yè)務(wù)規(guī)則。業(yè)務(wù)邏輯層設(shè)計需要有業(yè)務(wù)領(lǐng)域?qū)<覅⑴c,設(shè)計業(yè)務(wù)流程。

      業(yè)務(wù)邏輯層設(shè)計就是將涉及業(yè)務(wù)邏輯操作的類抽象出來,按照面向?qū)ο蟮脑O(shè)計方法對類進行詳細設(shè)計,界面表示層和數(shù)據(jù)訪問層通過業(yè)務(wù)邏輯層中的對象的方法和屬性得到數(shù)據(jù)傳遞和信息交互。

      特色資源庫的業(yè)務(wù)邏輯包括科研論文和著作的查詢,高級搜索等。

      1.3界面表示層

      表示層是一個網(wǎng)站系統(tǒng)的“門面”,無論網(wǎng)站系統(tǒng)功能設(shè)計的多么強大和完善,代碼多么簡潔漂亮,系統(tǒng)的可擴展性多么高,但是最終面向用戶的大多是表示層的東西。表示層主要注重的是美觀和易用,美觀即外觀設(shè)計漂亮,能給人美的感覺;易用即具有良好的用戶體驗,用戶用起來舒服、順手。

      表示層是面向用戶的,對數(shù)據(jù)進行排列表示,對數(shù)據(jù)進行合法驗證,對數(shù)據(jù)在跨頁面間存儲和傳輸,對用戶登錄驗證和存儲。界面表示層是為用戶提供用于交互的應(yīng)用服務(wù)圖形界面,幫助用戶理解和高效地定位應(yīng)用服務(wù),接受用戶的輸入并呈現(xiàn)業(yè)務(wù)邏輯層中傳遞的數(shù)據(jù)。表示層對數(shù)據(jù)進行排列布局,給用戶提供優(yōu)美的外觀和良好的服務(wù),使用戶方便快捷地利用應(yīng)用服務(wù)和查詢信息。

      界面表示層設(shè)計遵循結(jié)構(gòu)和外觀分離的原則,即頁面文件只包含結(jié)構(gòu)信息,例如頁面控件布局、位置等;而所有與外觀相關(guān)的信息存儲在CSS文件中,例如字體、顏色、邊框等。這樣就保證了頁面的結(jié)構(gòu)不會錯位,外觀顯示不會混亂。DIV+CSS布局方法是目前一種比較方便和實用的網(wǎng)頁布局方法,它使用div標(biāo)簽作為容器,使用CSS技術(shù)排布div標(biāo)簽,使用這種方法能高效快捷地設(shè)計各種網(wǎng)頁[8]。

      特色資源庫網(wǎng)站平臺界面通過設(shè)計母版頁來簡化網(wǎng)站界面設(shè)計工作,根據(jù)網(wǎng)頁首部和底部在網(wǎng)站頁面中內(nèi)容一致的設(shè)計原則,故將首部和底部設(shè)計為母版頁,以方便重用。后臺管理頁也可以采用同樣的方法將導(dǎo)航等信息設(shè)計為母版頁。

      2優(yōu)點

      三層架構(gòu)模式網(wǎng)站設(shè)計方法是將面向?qū)ο笏枷霊?yīng)用到網(wǎng)站設(shè)計中,在數(shù)據(jù)訪問層中按照數(shù)據(jù)表建立數(shù)據(jù)服務(wù)類,將對某一數(shù)據(jù)表的各種操作放到該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)服務(wù)類中,業(yè)務(wù)邏輯層中的類是和數(shù)據(jù)訪問層中的類一一對應(yīng)的,只不過業(yè)務(wù)邏輯層不僅僅是對底層數(shù)據(jù)的調(diào)用,而且還是對上層數(shù)據(jù)的邏輯加工。界面表示層中每一個頁面對應(yīng)一個類,該類按照數(shù)據(jù)需求對業(yè)務(wù)邏輯層中的對象進行調(diào)用,該類中html表示信息和程序代碼分離。

      參考文獻:

      [1]孫繼紅.基于.NET三層架構(gòu)的網(wǎng)上商城設(shè)計與實現(xiàn)[J].網(wǎng)絡(luò)與通信,2008(9):96-98

      [2]吳澤. .Net的三層結(jié)構(gòu)[J].消費導(dǎo)刊,2007(2):123

      [3]龔赤兵.Web開發(fā)新體驗:ASP.NET3.5MVC架構(gòu)與實戰(zhàn)[M].北京:電子工業(yè)出版社,2009:378

      [4]王國勝,柴寶杰,尼春雨.ASP.NET+SQL Server動態(tài)網(wǎng)站開發(fā)[M].北京:清華大學(xué)出版社,2009:72

      [5]趙曉東,張正禮,許小榮.ASP.NET3.5從入門到精通[M].北京:清華大學(xué)出版社,2009:346

      [6]李小航. ASP.NET程序設(shè)計中LINQ技術(shù)的應(yīng)用研究[J].科技廣場,2010(8): 33-35

      [7]趙曉東,張正禮,許小榮.ASP.NET3.5從入門到精通[M].北京:清華大學(xué)出版社,2009:363

      [8]曾靜娜.新手學(xué)CSS+DIV[M].北京:北京希望電子出版社,2010:196.

      猜你喜歡
      架構(gòu)對象
      神秘來電
      睿士(2023年2期)2023-03-02 02:01:09
      基于FPGA的RNN硬件加速架構(gòu)
      涉稅刑事訴訟中的舉證責(zé)任——以納稅人舉證責(zé)任為考察對象
      功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
      汽車工程(2021年12期)2021-03-08 02:34:30
      基于云服務(wù)的圖書館IT架構(gòu)
      時代人物(2019年27期)2019-10-23 06:12:20
      攻略對象的心思好難猜
      意林(2018年3期)2018-03-02 15:17:24
      LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
      基于熵的快速掃描法的FNEA初始對象的生成方法
      區(qū)間對象族的可鎮(zhèn)定性分析
      一種基于FPGA+ARM架構(gòu)的μPMU實現(xiàn)
      潮州市| 开阳县| 潜江市| 城固县| 临江市| 家居| 乌兰浩特市| 郓城县| 景泰县| 冷水江市| 湄潭县| 平阴县| 来宾市| 芜湖县| 连云港市| 阳东县| 弋阳县| 安徽省| 新宾| 东港市| 新泰市| 亳州市| 鸡泽县| 荣成市| 双鸭山市| 高邮市| 静乐县| 布尔津县| 云龙县| 绥芬河市| 盈江县| 永和县| 永安市| 五常市| 堆龙德庆县| 古丈县| 乐陵市| 木兰县| 陈巴尔虎旗| 比如县| 江达县|