999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于三層架構的映射方法研究

2015-09-19 09:43:25穆仕華陳月英
中國科技縱橫 2015年15期

穆仕華 陳月英

【摘 要】傳統的三層架具有層次清晰、任務明確的特點,但軟件的設計和編碼也涉及到三個層次,不同層次涉及到不同的開發語言、工具和方法,使得軟件的設計、編碼、測試和維護困難,軟件開發效率和質量難以保障。本文通過對三層架構映射模型的建立,采用規則引擎、組件引擎、代碼生成技術和組件解析技術實現了一層到三層的映射,在保留三層架構優點的基礎上,簡化了軟件設計和開發的難度,提高了軟件開發的效率和質量。

【關鍵詞】三層架構 映射方法 組件引擎 規則引擎 代碼生成

三層架構是指在客戶端瀏覽器與后臺數據庫間加入了一個可稱為組件層的中間層。組件層分為業務邏輯層BLL、數據訪問層DAL、數據對象模型層Model[1]。三層架構的優點是層次清晰,提高了系統設計的靈活性、可擴展性和可維護性。但是,從三層架構的各層來看,具有涉及的開發語言多、開發工具多的特點:(1)表示層的設計復雜。在表示層,需要對用戶界面進行設計,界面是實現人機友好交互的接口,界面的友好性對用戶體驗有直接影響[2]。WEB表示層的設計涉及頁面布局、圖片處理、人機會話等技術,這些技術需要多種工具和語言來完成,如Photoshop、html、div、js等,不同內核的瀏覽器在表示層存在較大的兼容性問題,導致同樣的界面在不同瀏覽器中的表現形式不一致,甚至部分功能失效。(2)業務邏輯層的實現復雜。在業務邏輯層,通過對業務邏輯的封裝,對表示層進行隱藏實現,表示層通過調用業務邏輯層的接口來實現各種操作。業務邏輯層是表示層和數據訪問層的紐帶,需要處理各種復雜的算法實現問題。實現業務邏輯層的語言有VB、C#、JAVA等,不同語言的開發環境、語法格式、基礎類庫等差異較大,開發過程中需要進行大量的編碼工作。(3)數據訪問層的差異較大。在數據訪問層,需要解決不同數據庫的存取問題,不同類型的數據庫在連接方法、數據類型、SQL查詢語句、存儲過程、用戶自定義函數的語法格式方面存在差異,這些差異需要技術人員在開始過程中查閱相關的幫助文檔才能解決,消耗了大量的時間和精力。

1 三層架構技術比較

1.1 MVC

MVC在開發復雜的大型網站時,能將不同的功能作切割,提高程序代碼的可讀性,以及組件的可重用性。MVC縱向切割了開發過程中的代碼,從服務器到瀏覽器層層分離。層次之間耦合度很低。但MVC無法封裝,所以無法被重用[3]。

1.2 MVP

MVP演變自MVC,通過表示器將視圖與模型巧妙地分開。在該模式中,視圖通常由表示器初始化,它呈現用戶界面(UI)并接受用戶所發出命令,但不對用戶的輸入作任何邏輯處理,而僅僅是將用戶輸入轉發給表示器[4]。

1.3 WPF

WPF涵蓋了桌面應用程序開發、網絡應用程序開發和移動應用程序開發,是微軟開發技術未來十年的主要方向。WPF 基于DirectX 底層接口,帶來優秀的圖形向量渲染引擎,因此相對于上一代GDI/GDI+編程模型有了質的飛躍,可以輕松實現2D/3D 絢麗效果,比如半透明、圖形翻轉、平移、縮放等[5]。

2 映射模型設計

通過對三層架構常見模式的優缺點進行比較,提出三層架構的映射模型,如圖1所示。

2.1偽碼文檔

偽碼文檔是一個二維表結構,其行列結構可通過代碼生成器的算法轉化為HTML代碼。在偽碼文檔的單元格中,通過規則表達式描述各單元格中的組件類型、組件屬性以及組件的數據接口。按照組件引擎和規則引擎的約定,在偽碼文檔中還可描述數據庫的表結構、表間關系、業務流程及用戶權限。

2.2 組件引擎

組件引擎是由表單、數據列表、報表、業務流程、圖文、視頻等具有通用性的組件組成的組件庫,其底層實現細節通過JAVA、C#等支持面向對象的WEB開發語言實現。組件引擎除包含常見的組件外,還可根據其提供的標準和統一接口進行組件擴展,組件的標準接口包括組件ID、組件類型、數據庫類型、可編程性數據接口、界面描述、外部文件引入路徑,在此基礎上,可擴展新加入組件的其他屬性。

2.3 規則引擎

2.3.1表結構描述規則

(1)表結構描述規則。關系數據庫的表結構通過“TableName={字類名 $ 字段類型 $ 字段長度 $ 驗證方式 $ 字段說明}”的方式進行描述,字段的驗證方式是指對字段對應的控件在接收用戶輸入的數據時進行的有效性驗證,常見的驗證方式包括身份證號、電話、郵編、電子郵箱、整數、小數、日期、時間等,用其對應的英文名作為偽碼描述。

(2)表間關系描述規則。表單關系包括1對1,1對多和多對多關系,通過規則表達式“{表x->字段1 or n = 表y->字段1 or n}”進行描述。若同一表與多表之間存在關系,則可通過編寫多個表間關系表達式進行描述。

2.3.2 組件描述規則

組件描述通過規則表達式“Component=組件ID $ 組件類型 $ 屬性集合”進行描述,屬性集合以“{屬性ID=屬性值},{屬性ID=屬性值}”的方式描述組件的多個屬性。

由于組件在實現業務功能時可能需要引入一些外部文件作為支撐,因此,對于文件的引入規則采用“

2.3.3 參數描述規則

在規則引擎中還需制定各種參數的傳遞和接收方法,WEB應用中的參數傳遞方式主要包括Post、Get,Session和Cookie三種,對于Post和Get,其偽碼表達式為“參數變量=request.參數名”,Session和Cookie則分別為“參數變量=Cookie.參數名”和“參數變量=Session.參數名”。

2.4 代碼生成器

代碼生成器的作用是將偽碼文檔轉換成組件的XML配置文檔及相關的文件。代碼生成器的工作流程為導入偽碼文檔,對偽碼文檔的類型進行判斷,若偽碼文檔為表結構偽碼,則通過SQL代碼生成器生成特定關系數據庫的SQL建表腳本和用于實現數據增加、刪除和修改的腳本。若偽碼文檔是組件結構,則根據組件的結構生成HTML、CSS、JS文件和組件的XML配置文檔。代碼生成器的工作流程如圖2所示。

2.5 組件解析器

組件解析器的作用是將組件的XML文檔轉換成WEB應用程序。組件解析器的工作流程是對代碼生成器生成的XML文檔進行加載,并根據組件的參數描述從外部獲取session、post等方式傳遞的參數,與此同時,調用一個通用數據接口獲取關系數據庫中的數據并創建組件,組件創建完畢后,根據組件的HTML界面布局呈現組件。

3 映射模型實現

映射模型實現的關鍵是通過各種算法對偽碼文檔進行解析,以生成組件的XML配置文檔,而組件的XML配置文檔中包含了組件的屬性描述、界面描述、數據接口描述,XML配置文檔是組件解析器將其轉換為WEB應用的基礎,因此映射模型需要對代碼生成算法和組件解析算法進行實現。

3.1 代碼生成算法

三層架構映射模型的關鍵是實現HTML、JS、XML和SQL的代碼生成,各種代碼的生成原理和方法差異較大。

3.1.1 HTML生成算法

HTML生成算法根據偽碼文檔描述的二維表結構生成WEB應用程序的界面布局,其算法的關鍵步驟如下:

(1)遍歷二維表的所有行和列,開始遍歷前生成“”標簽;(2)讀取每一個單元格式的值,如果不為空,產生一個“

”標識,如果為空,并入其左側的單元格;(3)如果某一單元格的下方存在空單元格,則將其合并;(4)所有單元格遍歷結束生成“
”標簽。

3.1.2 JS生成算法

JS代碼用于實現數據的驗證、在前端實現計算等,其代碼生成算法的關鍵步驟如下:(1)根據組件的描述規則引入JS文件;2)如果組件涉及函數庫的調用,則將調用函數庫所需的相關參數轉換為接收到的實際參數;(3)對于表單組件,若發現算法運算或邏輯運算表達式,則采用二叉樹的遍歷算法遍歷整個表達式,以獲取表達式中的控件ID,同時調用JQuery函數庫中的組件選擇器獲取特定控件的值,并將整個表達式轉換為條件表達式,以實現對表單中相關數據的驗證。

3.1.3 XML生成算法

XML生成算法將偽碼文檔的整體結構生成一個XML文檔,并將偽碼文檔中描述的組件作為XML文檔的子節點。XML生成算法的關鍵步驟如下:(1)遍歷二維表的所有行和列,開始遍歷前生成“”根節點;(2)讀取每一個單元格式的值,如果找到Component標識,則獲取組件的類型,根據組件的結構為偽碼文檔的描述生成組件和XML描述文檔,同時作為“”根節點的子節點;(3)遍歷完成后,生成””結束標簽。

3.1.4 SQL生成算法

SQL生成算法將偽碼文檔中描述數據庫表結構的偽碼生成為數據庫的建表腳本,同時根據偽碼文檔中描述的組件接口的需要,生成相應的數據處理腳本,其關鍵的代碼生成步驟如下:(1)遍歷二維表的所有行和列,若發現“TableName”標簽,則說明是一個數據為表結構相關的偽碼描述;(2)獲取每一個單元格的值,拆分偽碼表達式以獲取字段名、字段類型、長度和備注信息,存入數組;(3)遍歷結束后,判斷當前選用的關鍵數據庫類型,調用特定關系數據庫的建表方法生成數據庫表結構;(4)遍歷描述組件的偽碼文檔,根據組件的數據接口需求生成特定的數據處理腳本。

3.2 組件解析算法

組件解析算法根據組件的XML文檔生成WEB應用程序,組件解析算法以組件的XML文檔為基礎,從XML文檔的根節點開始對整個XML文檔進行遍歷,當讀取到組件類型標簽時,首先創建一個組件實例,同時從XML文檔獲取組件的其他參數對組件實例的接口進行配置。單個組件創建完成后,根據XML文檔中提供的界面布局對各組件進行呈現。組件呈現時,如果需獲取相關參數、設置組件的初始值,則根據規則表達式對參數進行解析,通過通用的數據接口獲取組件的數據源,調用其數據接口代碼獲取數據源中的數據,并綁定到組件中。

4 結語

基于三層架構的映射技術在建立三層架構映射技術的基礎上,以組件引擎為基礎,通過自定義的規則表達式對組件進行描述,形成偽碼文檔,實現了界面層、業務邏輯層和數據訪問層的設計通過一個文檔完成。在構建偽碼文檔的基礎上,通過代碼生成器將偽碼文檔轉化為組件的XML配置文檔,組件解析器將XML配置文檔轉換成WEB應用程序,從實現了通過XML代碼文檔向三層代碼的映射關系,簡化了軟件設計的過程,改變了WEB應用軟件代碼編寫的方式,從而提高了軟件的開發效率和質量。

參考文獻:

[1] 張士敏.ASP.NET的三層架構與實現[J].硅谷,2013,(第4期).

[2] HOU Yan'e,DANG Lanxue,WEI Dan.Design and implementation of web user interface automatic generation tool[J].Journal of Henan University(Natural Science),2011,41(6):641-644.

[3] 張志剛.基于ASP.NET MVC框架的研究[J].計算機光盤軟件與應用,2014,(第18期).

[4] 王念橋.應用MVP模式改進軟件架構[J].計算機時代,2012,(第4期).

[5] 王嬋娟.淺談WPF架構及其應用[J].科技信息,2011,(第21期).

主站蜘蛛池模板: 久久精品丝袜| 国产乱人视频免费观看| 在线播放国产99re| 亚洲第一福利视频导航| 五月婷婷丁香综合| 婷婷综合亚洲| 亚洲一级毛片在线播放| a网站在线观看| 国外欧美一区另类中文字幕| 久久性视频| 国产精品网址你懂的| 99久久性生片| 国产欧美日韩专区发布| 亚洲欧美日韩中文字幕在线一区| 亚洲视频在线观看免费视频| 曰韩免费无码AV一区二区| 国产高清又黄又嫩的免费视频网站| 青青操国产视频| 69视频国产| 在线国产欧美| 亚洲人成影院午夜网站| 久久久久青草大香线综合精品| 久久精品人人做人人爽| 日韩欧美国产综合| 欧美www在线观看| 日韩美一区二区| 在线毛片免费| 国产在线视频欧美亚综合| 青青操视频在线| 日韩欧美中文字幕在线精品| 久久精品日日躁夜夜躁欧美| 国产福利不卡视频| 就去色综合| 黄片一区二区三区| 亚洲福利视频一区二区| 国产小视频免费| 国产精品国产主播在线观看| 亚洲国内精品自在自线官| 人妻精品久久无码区| 少妇精品在线| 久久99国产视频| a网站在线观看| 欧洲高清无码在线| 日韩性网站| 97视频免费看| 欧美日韩国产在线人| 中日韩一区二区三区中文免费视频| 日本高清有码人妻| 91视频日本| 亚洲欧美在线综合一区二区三区| 亚洲天堂啪啪| 日本欧美一二三区色视频| 成人福利在线免费观看| 丁香综合在线| 欧美一级大片在线观看| 成人午夜网址| 福利片91| 国产成人精品日本亚洲77美色| 四虎影视无码永久免费观看| 亚洲男人天堂久久| 妇女自拍偷自拍亚洲精品| 69视频国产| 毛片网站免费在线观看| 亚洲中文字幕在线精品一区| 日韩欧美中文字幕在线精品| 成人免费视频一区| 亚洲欧美日韩成人在线| 免费播放毛片| 久久99国产乱子伦精品免| 免费高清毛片| 国产欧美日韩另类精彩视频| 精品超清无码视频在线观看| 国产va视频| 亚洲黄色激情网站| 国产成人亚洲无吗淙合青草| 亚洲av无码成人专区| 欧美一区二区三区香蕉视| 国产亚洲精| 广东一级毛片| 女人毛片a级大学毛片免费 | 国产丝袜第一页| 久久青草视频|