一種分層應(yīng)用技術(shù)框架的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種分層的應(yīng)用技術(shù)框架,具體的說是處于底層應(yīng)用平臺(tái)和高層業(yè)務(wù)邏輯之間的中間層框架。
【背景技術(shù)】
[0002]伴隨著軟件開發(fā)技術(shù)的發(fā)展,軟件開發(fā)的規(guī)模日益龐大。伴隨著人們對(duì)軟件的功能性、穩(wěn)定性、可移植性、可復(fù)用性需求的增加,導(dǎo)致軟件的規(guī)模和復(fù)雜度日益增大,給軟件開發(fā)過程增加了極大的困難和挑戰(zhàn),這種挑戰(zhàn)在企業(yè)級(jí)應(yīng)用開發(fā)中尤為明顯。企業(yè)級(jí)應(yīng)用是為商業(yè)組織、大型企業(yè)而創(chuàng)建的解決方案及應(yīng)用程序。這類型應(yīng)用具有用戶多、數(shù)據(jù)量大、事務(wù)密集等特點(diǎn)。并且,在企業(yè)發(fā)展的過程中,企業(yè)業(yè)務(wù)變更頻繁而且復(fù)雜,業(yè)務(wù)邏輯是由企業(yè)根據(jù)自身的需要制定的業(yè)務(wù)規(guī)則決定的。有時(shí)候規(guī)則會(huì)很隨意,看上去似乎沒有任何的邏輯。企業(yè)往往有自己特定的需求,特殊的情況。這些層出不窮的特例導(dǎo)致了業(yè)務(wù)的復(fù)雜性,無邏輯性,使得企業(yè)級(jí)應(yīng)用軟件的開發(fā)和維護(hù)十分困難。所以要求企業(yè)級(jí)應(yīng)用系統(tǒng)易于升級(jí)和維護(hù)。
[0003]針對(duì)這種情況,業(yè)界提出了多種技術(shù)方案。包括面向過程軟件開發(fā)、面向?qū)ο筌浖_發(fā)、構(gòu)件技術(shù)、中間件技術(shù)、SOA (Service Oriented Architeture,面向服務(wù)的體系結(jié)構(gòu))技術(shù)等。
[0004]同時(shí),在不同的軟件開發(fā)平臺(tái)中,如JAVA,.NET平臺(tái)等,針對(duì)不同技術(shù)人們又開發(fā)了多種應(yīng)用框架。
[0005]其中SOA即面向服務(wù)的體系結(jié)構(gòu),將應(yīng)用系統(tǒng)的不同功能單元以服務(wù)的形式進(jìn)行層次見得交互,通過服務(wù)之間定義良好的接口和契約聯(lián)系起來。由于接口獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言,所以構(gòu)建在SOA系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。
[0006]由于這種技術(shù)的靈活性和可擴(kuò)展性,使該技術(shù)得到了極大的應(yīng)用。
【發(fā)明內(nèi)容】
[0007]本發(fā)明目的是提供一種降低復(fù)雜企業(yè)級(jí)應(yīng)用開發(fā)的技術(shù)難度,提高應(yīng)用系統(tǒng)魯棒性的應(yīng)用技術(shù)框架。
[0008]本發(fā)明為實(shí)現(xiàn)上述目的所采用的技術(shù)方案是:一種分層應(yīng)用技術(shù)框架,位于應(yīng)用平臺(tái)和外部業(yè)務(wù)邏輯中間,自上而下依次包括:
[0009]客戶端層,位于分層應(yīng)用技術(shù)架構(gòu)的最上層,用于接收業(yè)務(wù)邏輯,通過WPF技術(shù)實(shí)現(xiàn)客戶端界面的布局和觸發(fā)相應(yīng)事件;
[0010]服務(wù)層,用于根據(jù)觸發(fā)的事件調(diào)用客戶端層中界面模型層的業(yè)務(wù)邏輯函數(shù)、或者調(diào)用服務(wù)層中的服務(wù),將應(yīng)用層的服務(wù)發(fā)布到客戶端層;
[0011]應(yīng)用層:用于調(diào)用領(lǐng)域?qū)拥膶?shí)體對(duì)象,并通過調(diào)用數(shù)據(jù)訪問層將數(shù)據(jù)庫數(shù)據(jù)自動(dòng)加載到領(lǐng)域?qū)拥膶?shí)體對(duì)象中,將該實(shí)體對(duì)象返回至服務(wù)層,實(shí)現(xiàn)客戶端調(diào)用服務(wù)的業(yè)務(wù)邏輯;
[0012]領(lǐng)域?qū)?用于根據(jù)應(yīng)用層調(diào)用的實(shí)體對(duì)象實(shí)現(xiàn)實(shí)體對(duì)象數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫中數(shù)據(jù)庫表的映射;
[0013]數(shù)據(jù)訪問層:用于將映射的數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)化為應(yīng)用層調(diào)用的實(shí)體對(duì)象;
[0014]數(shù)據(jù)庫:位于分層應(yīng)用技術(shù)架構(gòu)的最下層,用于存儲(chǔ)數(shù)據(jù)并被數(shù)據(jù)訪問層調(diào)用數(shù)據(jù)庫中的數(shù)據(jù)。
[0015]所述數(shù)據(jù)結(jié)構(gòu)包括:
[0016]實(shí)體類:與數(shù)據(jù)庫表做ORM映射的實(shí)體類,數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫表結(jié)構(gòu)一致;
[0017]查詢類:與實(shí)體類對(duì)應(yīng),用于定義對(duì)實(shí)體對(duì)象的查詢條件;
[0018]自定義類:自定義且與數(shù)據(jù)庫表結(jié)構(gòu)不同的類。
[0019]一種分層應(yīng)用技術(shù)框架實(shí)現(xiàn)方法,包括:
[0020]客戶端層接收外部業(yè)務(wù)邏輯,通過WPF技術(shù)實(shí)現(xiàn)客戶端界面的布局和觸發(fā)相應(yīng)事件;
[0021]服務(wù)層根據(jù)觸發(fā)的事件調(diào)用客戶端層中界面模型層的業(yè)務(wù)邏輯函數(shù)、或者調(diào)用服務(wù)層中的服務(wù),將應(yīng)用層的服務(wù)發(fā)布到客戶端層;
[0022]應(yīng)用層調(diào)用領(lǐng)域?qū)拥膶?shí)體對(duì)象,并通過調(diào)用數(shù)據(jù)訪問層將數(shù)據(jù)庫數(shù)據(jù)自動(dòng)加載到領(lǐng)域?qū)拥膶?shí)體對(duì)象中,將該實(shí)體對(duì)象返回至服務(wù)層,實(shí)現(xiàn)客戶端調(diào)用服務(wù)的業(yè)務(wù)邏輯;
[0023]領(lǐng)域?qū)痈鶕?jù)應(yīng)用層調(diào)用的實(shí)體對(duì)象實(shí)現(xiàn)實(shí)體對(duì)象數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫中數(shù)據(jù)庫表的映射;
[0024]數(shù)據(jù)訪問層將映射的數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)化為應(yīng)用層調(diào)用的實(shí)體對(duì)象;
[0025]數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)并被數(shù)據(jù)訪問層調(diào)用數(shù)據(jù)庫中的數(shù)據(jù)。
[0026]所述調(diào)用服務(wù)層中的服務(wù)是通過調(diào)用應(yīng)用層的接口函數(shù)實(shí)現(xiàn)。
[0027]所述實(shí)現(xiàn)實(shí)體對(duì)象數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫中數(shù)據(jù)庫表的映射包括:
[0028]與數(shù)據(jù)庫表做ORM映射的實(shí)體類,其數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫表結(jié)構(gòu)一致;
[0029]與實(shí)體類對(duì)應(yīng),定義對(duì)實(shí)體對(duì)象的查詢條件;
[0030]自定義且與數(shù)據(jù)庫表結(jié)構(gòu)不同的類。
[0031]所述數(shù)據(jù)訪問層將映射的數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)化為應(yīng)用層調(diào)用的實(shí)體對(duì)象,即將不同類型數(shù)據(jù)庫數(shù)據(jù)進(jìn)行實(shí)體數(shù)據(jù)的自動(dòng)組裝,然后分別轉(zhuǎn)換成數(shù)據(jù)存儲(chǔ)函數(shù)。
[0032]本發(fā)明具有以下有益效果及優(yōu)點(diǎn):
[0033]1.本發(fā)明降低復(fù)雜企業(yè)級(jí)應(yīng)用開發(fā)的技術(shù)難度,提高應(yīng)用系統(tǒng)的魯棒性,降低由于企業(yè)業(yè)務(wù)變更而增加的開發(fā)成本。
[0034]2.本發(fā)明的框架提供了層次化的底層系統(tǒng)開發(fā)平臺(tái),基于本框架開發(fā)應(yīng)用系統(tǒng),開發(fā)人員可以通過重用成熟、穩(wěn)定的基礎(chǔ)組建,將主要精力投入在業(yè)務(wù)邏輯的開發(fā)過程中。
[0035]3.本發(fā)明通過層次化的系統(tǒng)框架,可以將業(yè)務(wù)變更局限在較小的范圍內(nèi)。
[0036]4.本發(fā)明通過服務(wù)層實(shí)現(xiàn)了業(yè)務(wù)功能模塊和界面顯示層的分離,可以實(shí)現(xiàn)相同業(yè)務(wù)功能在不同開發(fā)技術(shù)實(shí)現(xiàn)的界面之間靈活的切換。
[0037]5.本發(fā)明通過領(lǐng)域?qū)訉?shí)現(xiàn)頁面模塊的面向?qū)ο箝_發(fā),保證了系統(tǒng)可以通過高可用性、高可讀性的方式實(shí)現(xiàn)復(fù)雜業(yè)務(wù)邏輯。
[0038]6.本發(fā)明通過數(shù)據(jù)庫訪問層實(shí)現(xiàn)了系統(tǒng)對(duì)多種數(shù)據(jù)庫的支持,保證了系統(tǒng)在不同數(shù)據(jù)庫平臺(tái)上的靈活遷移。
【附圖說明】
[0039]圖1為本發(fā)明的分層應(yīng)用技術(shù)框架示意圖。
【具體實(shí)施方式】
[0040]下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說明。
[0041]本發(fā)明包括客戶端層、服務(wù)層、應(yīng)用層、領(lǐng)域?qū)印?shù)據(jù)訪問層和數(shù)據(jù)庫層;每個(gè)層次在應(yīng)用技術(shù)框架中執(zhí)行特定的技術(shù)功能;每個(gè)層次內(nèi)部又可以按照業(yè)務(wù)邏輯劃分為不同的業(yè)務(wù)功能模塊。同一業(yè)務(wù)功能不同層次互相協(xié)助,完成完整業(yè)務(wù)功能的執(zhí)行。
[0042]如圖1所示,框架自上而下可劃分為如下層次:
[0043]1.客戶端層:實(shí)現(xiàn)客戶端界面布局和相應(yīng)事件的功能實(shí)現(xiàn)。界面視圖層重點(diǎn)關(guān)注Π布局和Π事件交互。界面模型層重點(diǎn)關(guān)注界面后臺(tái)事件的業(yè)務(wù)功能函數(shù)的實(shí)現(xiàn),業(yè)務(wù)功能函數(shù)通過調(diào)用服務(wù)層提供的服務(wù)實(shí)現(xiàn)。
[0044]2.服務(wù)層:以WCF服務(wù)的形式將應(yīng)用層服務(wù)發(fā)布到客戶端。實(shí)現(xiàn)對(duì)應(yīng)用層服務(wù)的封裝,本身不包含業(yè)務(wù)邏輯,可通過配置實(shí)現(xiàn)多重協(xié)議的服務(wù)發(fā)布。
[0045]3.應(yīng)用層:實(shí)現(xiàn)客戶端調(diào)用服務(wù)的業(yè)務(wù)邏輯,包括簡(jiǎn)單的數(shù)據(jù)庫表操作和復(fù)雜的業(yè)務(wù)邏輯操作。
[0046]4.領(lǐng)域?qū)?領(lǐng)域?qū)佑糜诙x系統(tǒng)框架中應(yīng)用到的數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)具體業(yè)務(wù)實(shí)體類、查詢類以及復(fù)雜類的定義。
[0047]5.數(shù)據(jù)訪問層:實(shí)現(xiàn)系統(tǒng)底層多種類型的基礎(chǔ)數(shù)據(jù)存儲(chǔ)及操作,實(shí)現(xiàn)對(duì)實(shí)體對(duì)象的查詢、添加、修改和刪除等操作。
[0048]6.數(shù)據(jù)庫層:第三方數(shù)據(jù)庫服務(wù)器,用于數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)庫層級(jí)數(shù)據(jù)操作。
[0049]本發(fā)明方法主要涉及兩方面的內(nèi)容:設(shè)計(jì)一種分層的應(yīng)用技術(shù)框架和基于.Net技術(shù)的應(yīng)用框架實(shí)現(xiàn)。
[0050]基本概念:
[0051]企業(yè)級(jí)應(yīng)用:企業(yè)級(jí)應(yīng)用是指那些為商業(yè)組織、大型企業(yè)而創(chuàng)建并部署的解決方案及應(yīng)用。這些大型企業(yè)級(jí)應(yīng)用的結(jié)構(gòu)復(fù)雜,涉及的外部資源眾多、事務(wù)密集、數(shù)據(jù)量大、用戶數(shù)多,有較強(qiáng)的安全性考慮;
[0052]SOACService Oriented Architeture,面向服務(wù)的體系結(jié)構(gòu)):S0A 分為廣義的 SOA和狹義的S0A,廣義的SOA是指一種新的企業(yè)應(yīng)用架構(gòu)和企業(yè)IT基礎(chǔ)架構(gòu),它可以使企業(yè)實(shí)現(xiàn)跨應(yīng)用,跨部門,跨企業(yè)甚至跨行業(yè)之間的離散系統(tǒng)實(shí)現(xiàn)互連。狹義的SOA是指一種軟件架構(gòu),它可以根據(jù)需求通過網(wǎng)絡(luò)對(duì)松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。
[0053]層次劃分:
[0054]自上而下可劃分為如下層次:
[0055]1.客戶端層:客戶端界面代碼實(shí)現(xiàn),主要包括兩個(gè)部分
[0056]a)界面視圖層:定義界面控件、調(diào)整布局、視圖美化和定義事件。
[0057]輸入:界面模型層提供的功能函數(shù)。
[0058]輸出:界面響應(yīng)事件。
[0059]其中,界面視圖層與界面模型層