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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、口文件只有一個(gè),通過(guò)參數(shù)控制(c=控制器名&m=方法名)訪問(wèn)不同控制器的方法以打開(kāi)不同的頁(yè)面。表 1-1系統(tǒng)目錄結(jié)構(gòu)表目錄名說(shuō)明/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)說(shuō)明見(jiàn)表 1-2。表 1-2系統(tǒng)PHP

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

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

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

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

11、,為了方便維護(hù),系統(tǒng)還開(kāi)發(fā)了操作日志記錄功能(調(diào)用setLog(日志內(nèi)容)方法),用中文的方式記錄主要的操作信息,操作日志目錄在/appxj/data_cenetr/logs5. 共同組件 5.1 分 頁(yè) 組 件數(shù)據(jù)列表是頁(yè)面的一種常見(jiàn)頁(yè)面表現(xiàn)形式,而分頁(yè)功能又是列表的一個(gè)不可缺少 的功能,分頁(yè)組件主要為各種形式的數(shù)據(jù)列表提供一個(gè)共同的分頁(yè)功能。技術(shù)上實(shí)現(xiàn)為 首先查詢出總的符合條件的數(shù)據(jù)記錄數(shù),然后每次只查詢出一頁(yè)的數(shù)據(jù)記錄,這種方法對(duì)于大數(shù)據(jù)量的情況性能很好。本系統(tǒng)頁(yè)面表現(xiàn)基于 Ajax 技術(shù),實(shí)現(xiàn) 無(wú)刷新效果,組件調(diào)用接口要求簡(jiǎn)潔明了。分頁(yè)組件主要通過(guò)前臺(tái)js+ajax實(shí)現(xiàn),后臺(tái)控制器只需

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論