山起超
摘要:為了可以使數據和請求量在不斷擴大的過程中所致使的緩慢問題能夠得到有效的解決,該文基于數據庫算法設計了軟件應用框架。并對數據庫的算以及Web服務進行詳細的分析。在采用緩存層的同時引入websocket數據響應處理的方法,這種方法對于數據庫的緩存性能可以起到有效地改善。在實際使用的時候應用這種框架設計方法,并研究了緩存性能,然后對于緩存性能進行研究,最后實現數據庫中的各個層。采用該方法對于提高數據庫的緩存性能有著良好的作用,并且還可以使Web軟件應用的響應靈敏度以及數據庫性能得以提升。
關鍵詞:數據庫;Web;軟件應用框架;設計
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)32-0099-02
1背景
在當前網絡技術不斷發展的現如今,社會中越來越多的企業都選擇通過Web來對應用系統進行設計,Web應用有著許多的特點,例如,信息量較大、用戶數量較多、系統的結構較為復雜以及有著較多的功能等,并且在當前Web開發方式已經無法滿足應用開發的需求了。在使用期間還需要提高程序的應變能力,并且由于在維護過程也存在著一定程度上的難度,而且代碼的數量也非常的龐大,所以需要設計開發一個軟件應用框架。現如今這方面的研究設計人員都想利用現代化技術來對軟件應用框架開展設計,并且還希望能夠使所有的應用都在此框架中進行,這無疑是一個巨大的挑戰。體系結構、公用服務功能以及系統部分的整合等都是包含在軟件的非業務邏輯中,在整體的系統框架中應用軟件然后來對骨架進行創建,從而使軟件在使用過程中能夠更加的方便快捷,并且還可以提高軟件的質量,使開發周期得以縮短。本文主要是基于Web及數據庫算法的軟件應用框架進行設計分析。
2數據庫算法
當前,雖然具有種類多樣的與數據源集成的方式,但是中間件、聯邦數據庫以及數據倉庫這三種是使用最為頻繁的。數據倉庫指的是面向主體的數據集合,通常情況下對于此進行應用是在支持管理決策的時候,數據倉庫自身所具有的特點是能夠實現數據集成,還可以提供一些簡單的數據訪問,支持數據決策,并且處理也相對十分簡單,通常是在較為簡單的系統中進行應用。而中間件則是一個獨立的服務程序,并且主要是使用在分布式軟件中,通過中間見可以達到資源共享的目的。一般應用中間件的情況極為普遍,它是一種應用十分不變的數據庫集成算法,是通過利用數據源的局部模式以及全局模式來使不同數據源數據的集成得以實現。而聯邦數據庫系統存在的目的是為了可以實現數據共享,并且聯邦數據庫與他的數據局相比較而言,操作十分的獨立。除此之外,數據庫之間需要利用添加與訪問對方的數據庫來實現數據之間的傳遞和共享。
3數據庫設計
Web軟件應用需要跨多種數據庫來對數據進行調用,所以設計數據庫成為整個系統中十分重要的一個環節。在對比分析不同類型的數據庫之后,本文會選擇通下列的方式設計數據庫:
1)選擇適合的字段。采用長整形、二進制以及字符串這三種類型的字段,并以字符串來取代符點,日期是通過以長整形來替代。
2)選擇定義與操作數據的語言。
在選擇數據語言定義的時候,由于系統正處于初始化階段內所以全部的數據庫可以同時建立,因此就需要根據不同的數據庫選擇不同的定義語言;而由于數據庫沒有統一的標準,所以操作數據的語言必須要進行合理的規劃。本文所設計的數據庫是采用標準通用的SQL語言。
4軟件應用框架設計
4.1軟件框架結構
本文設計的軟件應用框架結構是基于Web以及數據庫算法來進行的,并且為了可以避免在數據量較多的時候,應用系統發生崩潰,Web層以及數據層在Web的基礎上都增添一個Web緩存層,并通過利用Web緩存層使用內存作為主要的存取媒介,這樣可以使讀寫速度提升。并且需要在數據庫層內來設計主數據庫與數據庫服務器,而之所以需要設計主數據庫的目的是為了更新數據緩存以及復制數據庫。通過實現數據讀寫,那么在數據進行更新的過程中,Web則會把信息傳輸到緩存層中,從而可以使得Web緩存與Web和共同開展工作,從而使得Web層中數據的負載率得到有效的降低。
4.2框架的設計
數據庫中的Web軟件應用框架的服務層則是通過WebServer模塊以及緩存模塊這兩個模塊來實現數據監聽,而客戶層則是采用Java作為Web代碼實現數據的請求,除此之外,還包括管理日志、管理通道、發布消息以及處理數據等眾多的功能。監聽器是為了使客戶請求監聽的過濾的目的得以實現,并且還具有查找實體、通過數據庫返回的信息以及調用緩存等眾多功能嘲。而在數據庫中建設通道是為了實現通信,數據的處理就是實現XML與JSON的數據處理。框架中的緩存模塊具有緩存池,并且緩存模塊可以使組件以及配置管理所具有的緩存作用得以實現。除此之外,緩存池的存在還可以使組件在訪問過程中調用存取需要使用到的數據,并且在經過服務調取之后,還會通過Hash算法對生成的Key進行計算,最終生成HasyKY,以此來使在不同的服務器中訪問緩存數據的目的得以實現。框架中的心跳包是為了避免數據在進行傳送的過程中發生停止傳送的情況,因為傳送一旦停止,服務器與客戶端之間的連接請求斷裂。而應用框架中的管理體制可以使服務器與客戶端兩者信息以及請求管理的目的得以實現。
5系統的實現
5.1實現客戶層
通常情況下是使用Struts框架來實現客戶層。Struts Web層的應用架構屬于開源免費,并且對于提高JSP、面向對象以及標簽庫的技術水平具有良好的效果,除此之外,還可以使開發人員使用MVC設計開發所需要的時間得以減少。根據JSP來實現Struts中的視圖部分,除了需要標準的標簽庫,還可以使用Struts中的自定義標簽庫,通過與Action之間進行互相的映射,從而使用戶數據封裝的目的是得以實現,并且還具有眾多的其他功能,例如表單驗證。Struts中的控制器含有Action類,它是屬于將業務邏輯以及用戶請求進行連接的一個重要的橋梁,并且還可以通過調用模型來更新模型的狀態,從而實現應用程序流程。將Action應用在較為大型的系統中是為了讓其充當業務邏輯處理與用戶請求兩者之間的適配器,應用其的主要作用是用以對請求以及業務邏輯進行區分;除此之外,Struts自身沒有模型組件,但是它卻可以對于M部分的問題進行有效的解決,因為在當前Struts對于客戶層問題還沒有一個良好的解決方法,但是M部分都是系統Nebula狀態,所以還是屬于Web層框架。
5.2實現服務層
服務層在系統框架中具有十分重要的作用,服務層的存在可以使策略為JavaBran業務邏輯目的得以實現,在J2EE規范中JavaBran結構有著十分詳細的定位,JavaBran結構主要分為可視化與非可視化。但通常情況下,Web應用使用的是使非可視化JavaBran。與普通Java類相比來說,JavaBran并沒有額外的其他附加功能,JavaBrml如果是在分布式的大型應用環境下的話,那么就需要通過開發人員自身的操作來實現。但如果JavaBran應用在較小型化的項目時,會更加的簡單,并且還具有比普通Java類更好的運行效率,不需要再增加其他的應用服務器就可以使系統正常運行。
5.3實現數據層
如果選擇單獨數據層來解決Web應用架構中數據持久化的問題,會致使與業務數據相關的操作都可以在數據層實現,例如,數據的查詢、添加、修改以及刪除,數據庫的訪問等。由于數據層中的服務都是抽象化的,所以在對數據源更改、數據庫移植以及結構變化的過程中,只要修改數據層即可。通過JBDC實現數據層,其是Java訪問數據庫的標準,除此之外,還可以為系統提供上層接口。
6結束語
綜上所述,如果在數據庫緩存中添加Web軟件應用框架,在對軟件框架進行的過程中,那么讀寫的時候將會使數據庫壓力得到極大程度的降輕,并且如果同時也在對Socket進行使用的話,那么軟件在使用過程中的訪問速度將會得到極為有效的提升。本文主要基于此對于軟件系統框架進行了設計,并在最后對對于框架中的各數據層、服務層以及客服層都一一進行了實現。通過詳細的分析數據庫算法的緩存數量,可以清楚地了解到所設計的軟件系統框架對于系統的緩存能力具有良好的提升作用,并且在對于軟件系統框架中的數據庫性能進行加強方面的目的也得以實現,除此之外,對于系統響應的靈敏度也進行了提升。