LQuery的設(shè)計(jì)原則考慮以下幾個(gè)方面的要求:性能、可靠性、吞吐量、可擴(kuò)充性、可管理性、可重用性和安全性。
LQuery的性能一般用一個(gè)用戶終端對(duì)某一個(gè)操作的響應(yīng)時(shí)間來(lái)衡量,如不考慮后臺(tái)數(shù)據(jù)庫(kù)性能的開銷,LQuery對(duì)以下各類操作的處理時(shí)間為:
操作類型 |
處理時(shí)間 |
對(duì)表或基于存儲(chǔ)過程的數(shù)據(jù)清單 |
不超過2秒 |
對(duì)表的匯總性角度分析 |
不超過10秒 |
對(duì)后臺(tái)返回的數(shù)據(jù)進(jìn)行圖形展示 |
不超過2秒 |
LQuery在生產(chǎn)運(yùn)行系統(tǒng)中應(yīng)該支持7×24小時(shí)不間斷運(yùn)行的要求。
LQuery應(yīng)該支持一定的并發(fā)量,保證在多個(gè)前端用戶同時(shí)進(jìn)行查詢分析的時(shí)候,系統(tǒng)能維持客戶滿意的處理性能并同時(shí)保證系統(tǒng)穩(wěn)定運(yùn)行不崩潰。系統(tǒng)能支持的并發(fā)用戶數(shù)應(yīng)至少在10個(gè)以上。
LQuery的可擴(kuò)充性體現(xiàn)在兩個(gè)層面:應(yīng)用層和開發(fā)層。
應(yīng)用層的可擴(kuò)充性是指平臺(tái)提供的配置化的增加應(yīng)用查詢分析功能的能力,用戶在不影響已有系統(tǒng)功能的前提下可以方便地增加額外的功能或修改已有功能。
開發(fā)層的可擴(kuò)充性體現(xiàn)在源程序的易于擴(kuò)充和修改,這往往通過低耦合、接口和封裝等設(shè)計(jì)技術(shù)去實(shí)現(xiàn)。
LQuery應(yīng)該有友好的用戶界面,易于管理和維護(hù),并允許動(dòng)態(tài)的系統(tǒng)配置管理。
LQuery的組件應(yīng)該能最大程度可重用,以提高開發(fā)和管理效率。
LQuery通過提供用戶認(rèn)證、功能權(quán)限和數(shù)據(jù)權(quán)限從而保證系統(tǒng)的安全性。
LQuery使用三層的B/S體系架構(gòu),即將應(yīng)用功能分成表示層、功能層和數(shù)據(jù)層三個(gè)部分。表示層是應(yīng)用的用戶接口部分,它負(fù)擔(dān)應(yīng)用和用戶間的對(duì)話。功能層負(fù)責(zé)處理具體的業(yè)務(wù)邏輯。數(shù)據(jù)層負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)或文件數(shù)據(jù)的讀寫。
這種三層的體系結(jié)構(gòu)具有以下特點(diǎn)和優(yōu)越性:
客戶端零維護(hù)、可擴(kuò)展性好、安全性好和可移植性好。
JAVA/J2EE/SOA/XML/AJAX技術(shù)可以支持分布式的企業(yè)應(yīng)用模型,可以提供可擴(kuò)展的,模塊化的組件開發(fā)模式和組件裝配技術(shù)。
基于JAVA/J2EE的企業(yè)應(yīng)用可以方便快捷地部署到任意JAVA應(yīng)用服務(wù)其平臺(tái)產(chǎn)品之上,從而實(shí)現(xiàn)“一次開發(fā)、處處可用”的理想目標(biāo)。
基于SOA的服務(wù)請(qǐng)求處理模式可以更好地解決企業(yè)內(nèi)部多種系統(tǒng)之間的互聯(lián)互通及數(shù)據(jù)共享,實(shí)現(xiàn)系統(tǒng)之間的輕耦合。而XML技術(shù)更是為系統(tǒng)之間的數(shù)據(jù)傳遞提供了更標(biāo)準(zhǔn)的表達(dá)方式。
AJAX技術(shù)的廣泛應(yīng)用更是改善了用戶的操作體驗(yàn),通過頁(yè)面的無(wú)刷新技術(shù),使用戶的頁(yè)面執(zhí)行效率得到了極大的提高。
LQuery可以對(duì)數(shù)據(jù)庫(kù)中的表或視圖進(jìn)行清單式查詢,也可以對(duì)能返回?cái)?shù)據(jù)的存儲(chǔ)過程做清單式查詢,也可以對(duì)表或視圖進(jìn)行匯總性的分析查詢。
LQuery各個(gè)查詢功能是通過XML文件配置產(chǎn)生的,對(duì)各個(gè)功能的修改只需要修改配置文件,無(wú)需重新啟動(dòng)應(yīng)用服務(wù)器或重新登錄。
LQuery所需的各類代碼表是從XML配置文件產(chǎn)生的或者動(dòng)態(tài)從數(shù)據(jù)庫(kù)讀取,無(wú)需在源程序中維護(hù)。
LQuery通過對(duì)XML的配置,可以對(duì)數(shù)據(jù)庫(kù)表記錄的內(nèi)容直接進(jìn)行修改操作,同時(shí)也可以對(duì)文本文件或excel文件的進(jìn)行修改或批量讀取。
LQuery從在個(gè)層面上來(lái)說(shuō)可以是struts+hibernate的替代品,但是LQuery使用起來(lái)更方便,功能更強(qiáng)大。
LQuery對(duì)查詢結(jié)果可以以系統(tǒng)自定義的風(fēng)格進(jìn)行展現(xiàn),保持界面的一致性,用戶也可以自己定義頁(yè)面展現(xiàn)的風(fēng)格。
系統(tǒng)的自定義的風(fēng)格有:表格、餅圖、柱狀圖、線圖、柱狀圖3D和餅圖3D等。
通過LQuery的定制,開發(fā)者可以自己開發(fā)數(shù)據(jù)的展現(xiàn)頁(yè)面。
LQuery對(duì)每一個(gè)用戶請(qǐng)求URL是通過WEB服務(wù)器提供的過濾器技術(shù)Filter實(shí)現(xiàn)合法性檢查的,系統(tǒng)通過配置文件提供了對(duì)不同的頁(yè)面的檢查方式。
在Filter過濾器基礎(chǔ)上,平臺(tái)提供了對(duì)操作人員及及其機(jī)構(gòu)進(jìn)行權(quán)限控制的功能,而業(yè)務(wù)功能模塊無(wú)需關(guān)注安全控制是怎么實(shí)現(xiàn)的,只需專注業(yè)務(wù)功能的實(shí)現(xiàn)。
LQuery可以實(shí)現(xiàn)基于用戶透明的跨數(shù)據(jù)庫(kù)訪問(查詢及修改等〕支持,以LQuery為架構(gòu)的應(yīng)用系統(tǒng)可以輕松地同時(shí)與任意多個(gè)外圍業(yè)務(wù)系統(tǒng)如ERP/CRM系統(tǒng)集成。 |