【正文】
系統(tǒng)的性能,如提供系統(tǒng)的系統(tǒng)調優(yōu)如何設置等就要靠開發(fā)人員摸索了。又由于多個框架的實現(xiàn)風格不同,這很容易造成程序員在編碼基于 WEB 應用的基礎軟件框架項目可行性研究報告 過程中的混亂,而且不便于整個應用系統(tǒng)的風格統(tǒng)一控制。目前很多應用系統(tǒng)在開發(fā)時都是將多個現(xiàn)有的框架混合在一起使用,這樣雖然解決了問題,但由于一個應用系統(tǒng)涉及到多個框架,他們之間的協(xié)同需要程序員花功夫來把握。它們都是側重其中一個方面或其中二個方面,對于全面集成的基礎軟件框架目前沒有。因此可以說 DWR 的主要用于解決 WEB 遠程調用,而不是 UI 的組件化或數(shù)據(jù)訪問層的ORM。 Qooxdoo 的文件較大,應用于 Inter 環(huán)境時,客戶端裝載時較慢,因此和 Dojo 一樣更適合在 Intra 中應用。Qooxdoo 實現(xiàn)了 UI 的組件化,支持 XMLHTTP。但 Dojo 對于商業(yè)層、數(shù)據(jù)訪問層的抽象整理沒有,因此一般 Dojo 必須配合其它框架使用,同時 Dojo 在執(zhí)行速度上太慢,并不十分適合 Inter 的應用,更適合在Intra 中應用。利用 Dojo 的低級 APIs 和可兼容的代碼,可以編寫出輕便的、單一風格(復雜)的 javascript 代碼。Dojo 的目標是解決開發(fā)DHTML 應用程序遇到的那些長期存在的歷史問題——跨瀏覽器問題。作為全球公認的 UI 組件化典范,它并沒有獲得多大的商業(yè)應用案例,可以說幾乎沒有,其中一個原因就是,對組件化的 UI,開發(fā)人員沒有多大的靈活性,UI 組件的風格單一,這以 WEB 應用華麗和充滿個性化的發(fā)展趨勢向背離。在 Browser/Server 時代,最經(jīng)典的 Framework 莫過于 Erik 等編寫的 Bindows,這個框架已經(jīng)將 JavaScript 的 OOP 和基于 IE()的 DHTML 發(fā)揮到極點,結合 xml 的無刷新技術,能夠開發(fā)非常強大的 Web Application 應用。因此可以看出它主要的工作也還是集中在服務器后臺,對于UI 的組件化,UI 控制的容器化工作更不不是其研究方向。Hibernate 是一個開放源代碼的對象關系映射框架,它對 JDBC 進行了非常輕量級的對象封裝,使得 Java 程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。同 Struts 框架相同,Spring 框架解決的主要方向是如何構架一個 MVC 結構的 WEB應用系統(tǒng),同時在這個主要的任務基礎之上,獨特的應用 IoC 和依賴注入(DI)來編寫商業(yè)層和數(shù)據(jù)訪問層的代碼,使其可以通過配置的方式修改程序。Spring 還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如 JTA 或者JDBC 事務提供一個一致的編程模型。 Spring 提供了唯一的數(shù)據(jù)訪問抽象,包括簡單和有效率的 JDBC 框架,極大的改進了效率并且減少了可能的錯誤。Spring 的架構基礎是基于使用 JavaBean 屬性的 Inversion of Control 容器。基于 WEB 應用的基礎軟件框架項目可行性研究報告 如目前國內外應用中很大一部分是使用 Struts,Struts 把 Servlet、JSP 、自定義標簽和信息資源(message resources)整合到一個統(tǒng)一的框架中,開發(fā)人員利用其進行開發(fā)時不用再自己編碼實現(xiàn)全套 MVC 模式,極大的節(jié)省了構架 MVC 框架的時間,因此雖然 Struts 也提供自定義標簽,但這不是它的主要解決方向,它的主要任務是構建一個 MVC 結構的系統(tǒng),因此它并不實現(xiàn)數(shù)據(jù)訪問層中數(shù)據(jù)的持久化、關系對象映射(ORM)等,同時 UI 的組件化也不是它的強項。GBSF 通過將 CSS 引入到框架中,使用戶可以靈活自由設定系統(tǒng)默認的 UI顯示風格,而不需要修改程序代碼。GBSF 允許應用開發(fā)人員通過繼承框架的基礎 UI 控件構建自己的 UI 組件,并可以將自己構建的 UI 組件和系統(tǒng)提高的 UI 組件、UI 容器及后臺商業(yè)層等進行協(xié)同工作。 GBSF 將各種 UI 組件堆砌到一個統(tǒng)一的 UI 容器中,進而使界面操作中復雜繁瑣的如光標跳轉、事件的觸發(fā)、事件的傳播、鍵盤快捷鍵的控制等都可以有 UI 容器配合UI 組件來完成,使程序員將主要精力放置在實現(xiàn)客戶關心的業(yè)務邏輯上,從而加快 UI 乃至整個應用系統(tǒng)的開發(fā),減少在操作控制層面上的 BUG。使開發(fā)面向 WEB 應用的三層應用系統(tǒng)變得輕松、快捷、方便。 研究的意義GBSF 的研制可從根本上解決針對面向 WEB 的三層結構應用系統(tǒng)各層的統(tǒng)一實現(xiàn)。其中有很多被業(yè)界廣泛采基于 WEB 應用的基礎軟件框架項目可行性研究報告 用,并取得了不錯的效果?,F(xiàn)在大型企業(yè)級應用的成功案例多采用 JAVA 作為其開發(fā)語言,這主要是因為 JAVA 語言的跨平臺性、JAVA 語言的面向對象性,同時全世界有眾多提供各種解決 JAVA 開發(fā)的應用系統(tǒng)的中間件供應商。如何使 MVC 的構架可以迅速、簡便、容易的步入“尋常百姓家” ,這就需要開發(fā)出一套支持 MVC 構架的通用的基礎軟件框架。如今的 WEB 應用多數(shù)采用 MVC 模式進行構架,采用 MVC 模式構架系統(tǒng)不僅僅是符合業(yè)界和國際慣例,更是因為 MVC 構架的系統(tǒng)具有良好的代碼維護能力,在需求等發(fā)生變化后,進行系統(tǒng)調整時可以將調整對系統(tǒng)的影響范圍縮小到最小,而且也便于維護人員理解系統(tǒng)代碼。而且使用 JSP 標簽,存在大量的客戶機到服務器端的數(shù)據(jù)傳輸,使網(wǎng)絡資源被浪費。如何解決這個問題?現(xiàn)在有了一些解決方案,如將一些程序段分割成一個個文件片斷,在需要時進行組合,這樣做造成各個程序段之間的耦合程度提高,對程序段的修改可能就要影響到其它程序段或功能。然而前臺的交互界面,它的實現(xiàn)仍然還在低水平的重復著大量的重復勞動?,F(xiàn)在用于開發(fā)后臺服務程序的語言也越來越多的支持面向對象設計和編碼(OOA/P ) ,但前臺交互界面的 UI 設計還是處于較原始的狀態(tài),需要界面設計人員一點點描繪實現(xiàn)。 項目的目的及意義 研究的目的現(xiàn)在基于 WEB 的應用越來越多,從企業(yè)管理系統(tǒng)到 ERP,到辦公自動化,到企業(yè)協(xié)同基于 WEB 應用的基礎軟件框架項目可行性研究報告 辦公,從網(wǎng)站到 B2B、B2C 的網(wǎng)上電子商店都開始采用基于 WEB 的運行模式。通過對數(shù)據(jù)和行為的封裝形成 JS 組件。基于 WEB 應用的基礎軟件框架項目可行性研究報告 J a v a s c r i p t 程序 X M L H T T P / X M L H t t p R e q u e s t 對象S e r v l e t通過 H T T P 協(xié)議提交數(shù)據(jù)相關服務通 過 W E B 遠 程 調 用 提 交 數(shù) 據(jù) 示 意 圖返回結果調用調用通過 R e s p o n s e 返回結果返回結果圖 例 說 明 :: 調用返回: 調用 JS 組件JS 組件是由 Javascript 腳本語言編寫的用于展現(xiàn) WEB 界面或相關控制的通用組件,它分成 UI(用戶界面)組件和控制組件兩部分,UI 組件是一個個可視化的 WEB 頁面上的控件,如輸入框、下拉選擇框、復選框、窗口等,它完成將數(shù)據(jù)展現(xiàn)給用戶或接受用戶的操作。同步模式由于它的這個等待特性較適合響應時間短、網(wǎng)絡傳輸數(shù)據(jù)量小的應用。異步模式通過客戶端發(fā)出異步調用請求來完成,同步模式通過客戶端發(fā)出同步請求來完成。下面圖示說明了系統(tǒng)框架同各個邏輯控制組件的交互情況:基于 WEB 應用的基礎軟件框架項目可行性研究報告 安 全 控 制 組 件接口日 志 管 理 組 件 工 作 流 管 理 組 件接口 接口軟 件 框 架具 體 業(yè) 務 組 件接口具 體 業(yè) 務 應 用 系 統(tǒng) WEB 遠程調用層的技術原理WEB 的遠程調用其實是在客戶瀏覽器上通過執(zhí)行客戶端的 Javascript(簡稱:JS )腳本語言,通過在 JS 腳本語言中創(chuàng)建 XMLHttp(或 XMLHttpRequest)對象,通過調用該對象的OPEN 和 SEND 方法將客戶端數(shù)據(jù)封裝成 XML 字符流,并通過 HTTP 協(xié)議發(fā)送到服務器,服務器端偵聽程序獲取傳入的 XML 字符流進行必要的解析,然后執(zhí)行相關處理,并將執(zhí)行結果封裝成 XML 字符流返回客戶端,客戶端通過解析受到的 XML 字符流獲得調用執(zhí)行結果。這就形成了插頭與插座的關系,對于同一個插座,只要插頭遵循約定的規(guī)范,就可以插入插座,而插座也不用理會插頭后面是空調還是彩電。接口從更深層次的理解應是定義(規(guī)范、約束)與實現(xiàn)的分離。我們也是延續(xù)這種思想將具體應用系統(tǒng)的業(yè)務流程控制及邏輯剝離,將較為通用的如安全控制、日志管理、工作流管理進行的提取和抽象。數(shù) 據(jù) 訪 問 層數(shù) 據(jù) 庫 服 務商 業(yè) 邏 輯 層 邏輯控制層的技術原理邏輯控制層主要解決應用系統(tǒng)的具有系統(tǒng)控制和業(yè)務邏輯,因此這一層是具體體現(xiàn)應用系統(tǒng)個性的主要部分之一。這樣就形成了最基本的 ORM。數(shù)據(jù)訪問層在技術實現(xiàn)上采用對象關系映射(ORM)來實現(xiàn)。 技術原理簡述 數(shù)據(jù)訪問層的技術原理在 N 層應用程序開發(fā)中對數(shù)據(jù)庫的操作以往通常直接采用硬編碼方式,也就是在業(yè)務邏輯中采用直接編寫 SQL 語句的方式實現(xiàn)對數(shù)據(jù)庫的操作,這樣的硬編碼帶來的問題是系統(tǒng)和數(shù)據(jù)庫關聯(lián)十分緊密,當數(shù)據(jù)庫發(fā)生變化時,變化的影響將波及整個系統(tǒng)?;?WEB 應用的基礎軟件框架項目可行性研究報告 用戶U I 組件1 、 操作頁面中元素 U I 容器2 、 觸發(fā)事件和動作3 、 容器截獲事件并分發(fā)事件J S 組 件 及 容 器 工 作 意 圖4 、 響應容器事件并將結果返回用戶 輔助工具GBSF 中的輔助工具是用來幫助使用 GBSF 的開發(fā)團隊加快開發(fā)速度,進行團隊內部協(xié)同、團隊成員直接溝通、項目的文檔管理而提供的輔助工具,輔助工具本身不是框架所必須的。UI 容器控件是將頁面理解成一個巨大的容器,在這個容器中又可以包含若干個小的容器和 UI 顯示控件,當用戶操作界面時,實際上就是在操作容器,容器將截獲用戶操作動作,而作出適當?shù)姆从?,從而驅動界面上的各種功能,如某個 UI 顯示控件是否可用、當前 UI 顯示控件失去焦點后誰來獲得焦點等等。GBSF 框架中 JS 組件可以分為基礎 JS 組件、UI 容器控件、UI 顯示控件三類。也就是說 GBSF 不僅僅支持 AJAX(Asynchronous JavaScript and XML) ,還同時支持基于 WEB 應用的基礎軟件框架項目可行性研究報告 SJAX(Synchronous JavaScript and XML) 。GBSF 的 WEB 遠程調用支持同步模式和異步模式兩種,在通過 WEB 遠程調用交互的數(shù)據(jù)量不大或者服務器端商業(yè)邏輯組件相應快速的情況下,可以采用本框架提供的同步模式的 WEB 遠程調用。邏輯控制統(tǒng)一訪問接口可訪問數(shù)據(jù)內容控制數(shù)據(jù)加密解密用戶訪問權限控制用戶數(shù)據(jù)操作權限控制… …安全控制日志管理各個應用組件邏 輯 控 制 示 意 圖工作流管理工作流引擎工作流設置… … WEB 遠程調用GBSF 的 WEB 遠程調用負責實現(xiàn)客戶端通過 XMLHttp 訪問服務器端的商業(yè)邏輯組件。GBSF 的邏輯控制層也運行應用開發(fā)人員建立自己的公用邏輯控制模塊,只要這些模塊遵守統(tǒng)一的接口規(guī)范,并按這些接口規(guī)范編寫就可以。而日志管理主要完成對系統(tǒng)運行進行記錄,并為檢查系統(tǒng)安全漏洞、安全策略的調整、用戶訪問追蹤等提供輔助信息。資源統(tǒng)一訪問接口O r a c l e 訪問類M S S Q l S e r v e r 訪問類M y S Q L 訪問類D B 2 訪問類… …A c c e s s 訪問類數(shù)據(jù)庫訪問物流文件訪問網(wǎng)絡資源訪問各個應用組件數(shù) 據(jù) 訪 問 示 意 圖 邏輯控制GBSF 的邏輯控制完成對基于 WEB 應用系統(tǒng)的商業(yè)邏輯層的抽象,應用系統(tǒng)的商業(yè)邏輯涉及到安全控制、日志管理、工作流管理的部分都是通過調用基礎軟件框架的控制邏輯統(tǒng)一接口完成相應功能集成的?;?WEB 應用的基礎軟件框架項目可行性研究報告 數(shù)據(jù)訪問GBSF 的數(shù)據(jù)訪問解決應用系統(tǒng)對數(shù)據(jù)庫、物理文件和網(wǎng)絡資源的訪問,通過框架提供的統(tǒng)一接口實現(xiàn)對各種資源的統(tǒng)一訪問,從而減輕應用開發(fā)人員在訪問不同資源時進行危險、復雜、不可靠的代碼實現(xiàn),而是便于他們專注完成具體的數(shù)據(jù)訪問操作,而不用去理會訪問的資源是什么,具體如何編寫實現(xiàn)代碼。和其它軟件框架不同的是它將進行 WEB 應用開發(fā)所必須涉及到的各個層面都進行了集成實現(xiàn),使應用開發(fā)人員不需要為了進行 WEB 應用開發(fā)而去掌握和使用多個框架和工具。整個 GBSF 的框架結構圖如下所示:基于 WEB 應用的基礎軟件框架項目可行性研究報告 金鼎基于 W E B 應用的基礎軟件框架 ( G B a s i c S o f t w a r e F r a m e w o r k )數(shù)據(jù)訪問 邏輯控制 J S 組件 輔助工具數(shù)據(jù)庫訪問物理文件訪問網(wǎng)絡資源訪問安全控制日志管理工作流管理基礎j s組件U I顯示控件U I