系統(tǒng)架構(gòu)設(shè)計說明書_第1頁
系統(tǒng)架構(gòu)設(shè)計說明書_第2頁
系統(tǒng)架構(gòu)設(shè)計說明書_第3頁
系統(tǒng)架構(gòu)設(shè)計說明書_第4頁
系統(tǒng)架構(gòu)設(shè)計說明書_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、設(shè)備及巡檢系統(tǒng)架構(gòu)設(shè)計說明書版本號:V0.12015 年 11 月1. 目的本說明書的編寫目的是描述系統(tǒng)的架構(gòu)設(shè)計方案,包括系統(tǒng)的軟件總體架構(gòu) 設(shè)計及使用的框架說明,以及基于該架構(gòu)的開發(fā)流程,并作為指導(dǎo)開發(fā)人員、測 試人員進行系統(tǒng)開發(fā)及測試的依據(jù)。2.系統(tǒng)架構(gòu)設(shè)計整個軟件架構(gòu)方案采用分層、分布式的部署結(jié)構(gòu),明確地分離了表現(xiàn)層和業(yè) 務(wù)邏輯,能夠保證應(yīng)用服務(wù)邏輯的一致性和穩(wěn)定性、結(jié)構(gòu)的開放性、功能的可擴 展性和可維護性、開發(fā)的可并行性,同時采用一些開源的框架,兼顧了經(jīng)濟性。 框架是一種特殊的軟件,它為軟件開發(fā)帶來了高度的重用性,是無數(shù)軟件開發(fā)人 員的多年項目開發(fā)經(jīng)驗的總結(jié)。在一個優(yōu)秀的框架上開發(fā)應(yīng)

2、用,而不是從零開始, 可以大量縮短項目的開發(fā)周期、降低開發(fā)風(fēng)險、增強應(yīng)用系統(tǒng)的穩(wěn)定性。用戶層平板 客戶端WEB 瀏覽器(IE)公共模塊 表示層View 設(shè)備模塊WEB 應(yīng)用 服務(wù)器業(yè)務(wù)層Controller巡檢模塊數(shù)據(jù)訪問層 ModelOCIOCI數(shù)據(jù)庫ORACLE操作系統(tǒng)LINUX系統(tǒng)總體架構(gòu)圖系統(tǒng)總體架構(gòu)如上圖所示,按功能可以分為 公共管理、設(shè)備管理、巡檢管理、機房出入等模塊;系統(tǒng)根據(jù)功能特點與業(yè)務(wù)需求采用基于web的B/S架構(gòu)模式,項目基于PHP代碼實現(xiàn),運用CI開源框架,可以運行于 Linux 和 Windows 平臺;3. WEB系統(tǒng)架構(gòu)設(shè)計用戶層Web 瀏覽器(IE、Google)

3、Web 服務(wù)器Nginx Server表示層htmlJsonViewDTODTO業(yè)務(wù)PHPController層DAOiBatisDTODTOModel數(shù)據(jù)訪問層ORMOCIOCI數(shù)據(jù)庫Oracle操作系統(tǒng)RedHat Linux從架構(gòu)圖中可以看出系統(tǒng)分為四層:用戶層:瀏覽器表示層:借助 html框架及json數(shù)據(jù)實現(xiàn)業(yè)務(wù)層:借助 PHP進行業(yè)務(wù)流程開發(fā)。 數(shù)據(jù)持久層:ORM模型操作數(shù)據(jù)庫 為什么采用這樣的四層架構(gòu)? 通過成熟的開源產(chǎn)品實現(xiàn)各層,同自己編寫代碼實現(xiàn),相比之下能縮短開發(fā)周期, 且架構(gòu)所用到的開源產(chǎn)品均有很廣泛的用戶群,經(jīng)受過實踐的考驗,質(zhì)量和性能 更有保障。 層與層之間松散耦合,

4、增加代碼重用率。 各層分工明確,這樣也利于團隊的明確分工。 系統(tǒng)的總體架構(gòu)從結(jié)構(gòu)上分為用戶層、表示層、業(yè)務(wù)層、數(shù)據(jù)訪問層以及在層間傳遞數(shù) 據(jù)的數(shù)據(jù)傳輸對象。下面針對各層加以描述。1)用戶層用戶層作為客戶端程序,用來與用戶交互,并把來自系統(tǒng)的信息顯示給用戶。系統(tǒng)的用戶層采用的是 IE 瀏覽器作為交互方式。2)表示層 表示層主要控制頁面外觀,產(chǎn)生頁面邏輯以及對用戶輸入的數(shù)據(jù)進行合法性驗證。系統(tǒng)中主要包括基于Bootstrap框架的 JavaScript 腳本及基于CI框架的 表單驗證。其中 JavaScript 腳本可以增強用戶體驗,PHP負責(zé)視圖的功能,由 HTML、 PHP程序片斷和 JSON

5、 數(shù)據(jù)構(gòu)成。3)業(yè)務(wù)層業(yè)務(wù)層處理應(yīng)用的核心業(yè)務(wù)邏輯。業(yè)務(wù)邏輯對象把業(yè)務(wù) 規(guī)則、約束、活動和數(shù)據(jù)結(jié)合在一起,Controller負責(zé)對這些業(yè)務(wù)對象的管理。4)數(shù)據(jù)訪問層數(shù)據(jù)訪問對象把底層的數(shù)據(jù)訪問操作和上層的商務(wù)邏輯分開。CI框架規(guī)范定義了 Web 應(yīng)用程序的類和文件存放的目錄結(jié)構(gòu)。該層次結(jié)構(gòu)由三個層 次構(gòu)成。第一層是上下文,它是一個目錄或者是多個目錄,用來查找與客戶請求關(guān)聯(lián)的 Web 應(yīng)用程序。在上下文中存在一個/Application目錄,該目錄存放應(yīng)用程序,它包 含MVC三層目錄,用來實現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯。/public 包含所有樣式文件,js文件和圖片。CI框架采用但入口方式訪問系統(tǒng),即入

6、口文件只有一個,通過參數(shù)控制(c=控制器名&m=方法名)訪問不同控制器的方法以打開不同的頁面。表 1-1系統(tǒng)目錄結(jié)構(gòu)表目錄名說明/data_center應(yīng)用上下文根目錄/publicCss 樣式表文件,js文件和圖片等目錄/uploads上傳的文件目錄/system框架系統(tǒng)目錄/downloads可下載的文件存放目錄/Application/config系統(tǒng)配置文件目錄/controllers業(yè)務(wù)邏輯層目錄(控制器)/models模型層目錄(模型)/views視圖層目錄(視圖)index.php系統(tǒng)入口文件controllers目錄下的系統(tǒng)PHP文件的結(jié)構(gòu)說明見表 1-2。表 1-2系

7、統(tǒng)PHP文件結(jié)構(gòu)說明表包名作用說明com_*.php系統(tǒng)管理模塊相關(guān)控制器sys_*.php公共管理模塊相關(guān)控制器equipment_*.php設(shè)備模塊相關(guān)控制器interface_*.php接口模塊相關(guān)控制器check_*.php巡檢模塊控制器room_*.php機房出入模塊控制器4. WEB子系統(tǒng)架構(gòu)總體功能設(shè)計4.1 CI框 架CI 是一個實現(xiàn)了 MVC 模式的框架,對 Model、View 和 Controller 都提供了對應(yīng) 的實現(xiàn)組件。如下圖所示:CI 入口文件BrowerControllerModelActionView1控制器(Controller)控制器的作用是從客戶端接受

8、請求,并且通過模型層和和數(shù)據(jù)庫交互,然后選擇執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,然后把響應(yīng)結(jié)果返回到客戶端(視圖層)。2模型(Model)MVC 系統(tǒng)中的 Model 部分從概念上可以分為兩類-系統(tǒng)的內(nèi)部狀態(tài),和改變系統(tǒng) 狀態(tài)的動作。CI 為 Model 部分提供了 default 對象:所有的 Action 處 理器對象都是開發(fā)者從 Struts 的 Action 類派生的子類。Action 處理器對象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到合適的 View 組件以產(chǎn)生響應(yīng)。3 視圖(View)View通過html+php技術(shù)實現(xiàn),view層提供了豐富的組件庫,例如下拉框,列表、翻頁等,可以

9、非常好的和系統(tǒng)的controller交互,通過這些標(biāo)簽組件實現(xiàn)數(shù)據(jù)的錄入和展現(xiàn)。4.2 表 單 驗 證對 Web 應(yīng)用來說,由于用戶的行為是無法預(yù)測的,在表單數(shù)據(jù)在傳遞給業(yè)務(wù)類之前, 必須保證數(shù)據(jù)的合法性及有效性,而表單驗證是保證數(shù)據(jù)合法性及有效性的重要手段。 對于基于 CI框架的表單驗證一般有兩種方式:基于 JavaScript 的表單驗證(前端驗證) 及基于 php 的表單驗證(后端驗證)。前端驗證: 可以針對基本類型(漢字、英文、整型、數(shù)字、日期、郵編)的有效性及合法性開發(fā)出一些共同 JavaScript 函數(shù),以備整個系統(tǒng)統(tǒng)一調(diào)用。 后端驗證:主要采用基于 CI form組件 的表單驗

10、證。 由于前端驗證不需要提交服務(wù)器,直接在客戶端完成,從而減少了服務(wù)器的壓力,所以我們優(yōu)先采用前端驗證。4.3 日 志 處 理規(guī)范合理的日志記錄能讓開發(fā)人員和維護人員事半功倍,在記錄日志時主要考慮對數(shù)據(jù)的一些敏感操作,如增加和刪除修改等,并且日志易讀。CI作為一個開源的強大的php框架,有自己的日志處理方式,運行日志主要保存在/home/wwwroot/default/data_center/application/logs在application/config/config.php中設(shè)置$config'log_threshold' = 1/2/3/4,如果

11、為0表示不輸出錯誤日志,可自定義日志輸出的級別;另外,為了方便維護,系統(tǒng)還開發(fā)了操作日志記錄功能(調(diào)用setLog(日志內(nèi)容)方法),用中文的方式記錄主要的操作信息,操作日志目錄在 /appxj/data_cenetr/logs5. 共同組件 5.1 分 頁 組 件數(shù)據(jù)列表是頁面的一種常見頁面表現(xiàn)形式,而分頁功能又是列表的一個不可缺少 的功能,分頁組件主要為各種形式的數(shù)據(jù)列表提供一個共同的分頁功能。技術(shù)上實現(xiàn)為 首先查詢出總的符合條件的數(shù)據(jù)記錄數(shù),然后每次只查詢出一頁的數(shù)據(jù)記錄,這種方法對于大數(shù)據(jù)量的情況性能很好。本系統(tǒng)頁面表現(xiàn)基于 Ajax 技術(shù),實現(xiàn) 無刷新效果,組件調(diào)用接口要求

12、簡潔明了。分頁組件主要通過前臺js+ajax實現(xiàn),后臺控制器只需按ajax提交的參數(shù)返回總的條數(shù)和對應(yīng)頁面的數(shù)據(jù)即可,此處用的組件是基于jquery的datatable組件。5.2 樹 形 組 件樹形結(jié)構(gòu)一般用于組織機構(gòu)等具有層次結(jié)構(gòu)的數(shù)據(jù),也是頁面常見的表現(xiàn)形式,樹 形組件為各種形式的層次結(jié)構(gòu)數(shù)據(jù)提供一個共同的分頁功能。技術(shù)上可以分兩種實現(xiàn)方 法:一是查詢出所有的層次節(jié)點的符合條件的數(shù)據(jù)記錄,在 html 頁面進行分層顯示??紤]到層次結(jié)構(gòu)數(shù)據(jù)一般數(shù)據(jù)量不大的特點,我們 采用第一種方法。此組件主要用戶巡檢模塊的參數(shù)設(shè)置,基于jquery的zTree樹形組件。5.3 下拉框組件對于下拉選項比較多

13、的情況,我們采用基于jquery的下拉組件select2,實現(xiàn)可以在下拉框中模糊搜索匹配,從而快速篩選出想要的下拉選項。5.4 model基類(CI_Model)針對模型層的model基類繼承CI的CI_Model類, 實現(xiàn)數(shù)據(jù)對象的增刪改查數(shù)據(jù)庫操作,通過實現(xiàn)query()方法來執(zhí)行SQL語句,通過result_array()方法來設(shè)定返回的數(shù)據(jù)為二維數(shù)組。 5.5 controller基類(CI_Controller)該類作為業(yè)務(wù)層Controller類的基類,所有業(yè)務(wù)層Controller類必須繼承該類。該類實現(xiàn)6. Web子模塊基于架構(gòu)的開發(fā)流程 6.1編寫model類 6.2編寫頁面 6.3編寫controller類引入相應(yīng)model類$this->load->model('db_table_model');調(diào)用相應(yīng)頁面public function index() $html = $this->load->view("index

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論