




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
引言目的通過對系統(tǒng)整體架構和技術規(guī)范的描述,為下一步大規(guī)模設計開發(fā)提供基礎和規(guī)范。對象與范圍項目管理人員,開發(fā)人員,測試人員。概述系統(tǒng)一期,以實現(xiàn)功能為主,效率性能為輔,但設計兼顧未來性能的擴展,以減少未來重構的工作量。webapp按邏輯分為兩層,第一層用戶服務接入,第二層內部服務。第一層一期不分模塊,以二級目錄形式表示不同模塊,第二層根據(jù)不同服務分模塊,第一層和第二層之間使用hessian通信。第一層和第二層獨立部署,第二層的不同模塊也可以獨立部署。下一期考慮第一層分模塊的二級域名獨立部署,并實現(xiàn)單點登錄。webapp采用集群負載均衡,數(shù)據(jù)庫采用負載均衡和讀寫分離,以滿足一定的性能需求。文檔描述了各層結構和模塊使用的技術和框架。最后描述了開發(fā)的規(guī)范和用到的開發(fā)工具。 文檔只是描述了一期的架構,系統(tǒng)架構圖一期系統(tǒng)架構如下頭部,中部左側菜單和底部固定不變。中部右側iframe為主操作區(qū),每次操作刷新頁面。商品描述的編輯需要使用到富文本編輯器,我們采用開源的TinyMCE,TinyMCE在國內應用比較廣泛。緩存機制后臺系統(tǒng)訪問不是很頻繁,同事管理員需要的是實時的數(shù)據(jù),所以后臺管理系統(tǒng)不對數(shù)據(jù)進行緩存。權限管理采用spingsecurity框架進行權限的控制,基于用戶、角色和資源的授權機制。支付模塊:支付模塊主要功能是訂單的管理,與銀行等支付系統(tǒng)的交互。基于j2eespring框架。采用springmvc模式。與銀行和其他支付系統(tǒng)的交互需要提供一個Url地址,供銀行在用戶完成支付后回調,通知系統(tǒng)已經(jīng)支付成功。與內部模塊之間的通信主要來自網(wǎng)站前端的調用?;趆essian機制。物流模塊支付模塊目前主要功能是調用物流公司的接口跟蹤物流狀態(tài),隨著系統(tǒng)的不斷發(fā)展,在擁有自己的物流后,可能發(fā)展成一個龐大的系統(tǒng)?;趈2eespring框架。采用springmvc模式?;趆essian機制對外提供遠程效用服務。郵件模塊郵件模塊主要用來向客戶發(fā)送郵件?;趈2eespring框架。采用springmvc模式。郵件發(fā)送使用javamail包發(fā)送郵件,支持以固定模板發(fā)送郵件。定時發(fā)送使用spring+quartz框架實現(xiàn)定時任務發(fā)送郵件。與內部模塊之間的通信為網(wǎng)站前端和后臺管理系統(tǒng)提供遠程調用服務。基于hessian機制。短信模塊短信模塊主要用來向客戶發(fā)送短信?;趈2eespring框架。采用springmvc模式。郵件發(fā)送調用短信設備api發(fā)送短信,支持以固定模板發(fā)送短信。定時發(fā)送使用spring+quartz框架實現(xiàn)定時任務發(fā)送短信。與內部模塊之間的通信為網(wǎng)站前端和后臺管理系統(tǒng)提供遠程調用服務?;趆essian機制。進銷存模塊調用A8系統(tǒng)接口,實現(xiàn)庫存的管理?;趈2eespring框架。采用springmvc模式。Webservice調用采用spring+xfile框架調用a8系統(tǒng)webservice。與內部模塊之間的通信為網(wǎng)站前端和后臺管理系統(tǒng)提供遠程調用服務。基于hessian機制。搜索模塊為網(wǎng)站提供搜索服務。包括商品檢索和問答式搜索的問題檢索?;趈2eespring框架。采用springmvc模式。檢索框架我們使用國產(chǎn)開源coreSeek搜索引擎,基于俄國開源項目Sphinx研發(fā)并獨立開發(fā)的搜索引擎。自帶中文分詞器mmseg,有大量中文文檔。提供JAVAAPI。索引建立效率高并且與業(yè)務無關。在國內有大量成功案例。與內部模塊之間的通信為網(wǎng)站前端提供遠程調用服務。基于hessian機制。第三方服務調用模塊調用第三方合作服務商的接口?;趈2eespring框架。采用springmvc模式。Webservice調用采用spring+xfile框架調用第三方服務webservice。與內部模塊之間的通信為網(wǎng)站前端和后臺管理系統(tǒng)提供遠程調用服務?;趆essian機制。對外服務接口對外部系統(tǒng)提供webservice接口服務Webservice服務采用spring+xfile框架對外提供webservice服務。與內部模塊之間的通信調用內部其他模塊的服務。基于hessian機制。數(shù)據(jù)庫使用mysql5.5數(shù)據(jù)庫存儲數(shù)據(jù),并使用讀寫分離機制提高數(shù)據(jù)庫性能。數(shù)據(jù)庫讀寫分離我們使用開源的mysql代理Amoeba實現(xiàn)數(shù)據(jù)庫的讀寫分離,把寫請求發(fā)送到主服務器,讀請求發(fā)送到從服務器,主從之間通過mysql自帶的復制機制實現(xiàn)數(shù)據(jù)的同步。數(shù)據(jù)庫負載均衡Amoeba支持輪詢和權重兩種負載均衡機制,我們使用權重負載機制實現(xiàn)讀服務器的負載均衡。數(shù)據(jù)庫表引擎的選擇主服務器必須使用innodb支持事務的存儲引擎,行級鎖表。而從服務器可以考慮使用myisam引擎,不支持事務,表級鎖表,具有更高的讀寫效率,但不支持外鍵。主從數(shù)據(jù)庫的差異優(yōu)化主服務器只需要建立唯一索引和外鍵約束,其它針對對查詢優(yōu)化的索引可以不建立,這要可以提高主服務器的性能。從服務器字段使用char而不用varchar,沒有varchar,text,blob字段的表是靜態(tài)表,反之是動態(tài)表,靜態(tài)表的檢索效率要比動態(tài)表好若干倍。工程命名工程以動物命名,結合了各種動物特征與我們各工程的職責:公共接口工具magpie(喜鵲)
網(wǎng)站前臺服務bull(公牛)
物流cheetah(獵豹)
支付lion(獅子)
進銷存接口
fox(狐貍)
搜索dog(狗)
郵件eagle
(鷹)
短信pigeon(鴿子)
后臺管理horse(馬)
調用第三方合作接口mouse(老鼠)
對外服務接口
camel(駱駝)工程規(guī)范工程目錄結構src源碼WebContent WEN-INF libjar包 config配置文件 views視圖模板 layout布局模板 screen頁面模板 …… 各模塊 common公共的 styles樣式文件 resources資源文件 scriptsjs文件 common公共js ……各模塊,各開源js項目包結構包命名基本原則:小寫字母開頭,如果有多個單詞,除第一個單詞之外的單詞首字母大寫公共工具接口工程公共工具:mon.util各層的公共基類:mon下的各子包遠程調用公共dto:com.zjdelai.emall.提供服務的工程名.remoting.dto.業(yè)務子模塊遠程調用公共接口:com.zjdelai.emall.提供服務的工程名.erfaces.業(yè)務子模塊第三方開源包的擴展:mon.第三方開源包名各模塊工程數(shù)據(jù)對象:com.zjdelai.emall.工程名.domain.業(yè)務子模塊持久層dao接口:com.delai.emall.工程名.dao.業(yè)務子模塊持久層dao接口實現(xiàn):com.zjdelai.emall.工程名.dao.業(yè)務子模塊.持久層框架名(ibatis)持久層sqlmap:com.zjdelai.emall.工程名.dbMap.業(yè)務子模塊.數(shù)據(jù)庫類型(mysql)業(yè)務邏輯接口:com.zjdelai.emall.工程名.service.業(yè)務子模塊業(yè)務邏輯實現(xiàn):com.zjdelai.emall.工程名.service.業(yè)務子模塊.implWeb控制器action:com.zjdelai.emall.工程名.web.action.業(yè)務子模塊Web驗證器:com.zjdelai.emall.工程名.web.validator.業(yè)務子模塊Web過濾器:com.zjdelai.emall.工程名.web.filter工具:com.zjdelai.emall.工程名.util遠程調用接口實現(xiàn):com.zjdelai.emall.工程名.erfaces.業(yè)務子模塊.impl類、接口命名類命名基本原則:首字母大寫,多個單詞的首字母大寫 接口命名基本原則:以大寫字母"I"開頭,如果有多個單詞,每個單詞頭字母大寫I數(shù)據(jù)對象:數(shù)據(jù)庫表名.javaDao接口:I+數(shù)據(jù)對象名+Dao.javadao實現(xiàn):數(shù)據(jù)對象名+Dao+框架名(Ibatis).javasqlmap:數(shù)據(jù)對象名.xml業(yè)務邏輯接口:I+數(shù)據(jù)對象名+Manager.java業(yè)務邏輯實現(xiàn):數(shù)據(jù)對象名+ManagerImpl.javaWebaction:domain名+Action.javaWebvalidator:domain名+Validator.javaDto:***Dto.java遠程調用接口:I+數(shù)據(jù)對象名+Sercice.java遠程調用實現(xiàn):數(shù)據(jù)對象名+SerciceImpl.java變量和方法命名類變量、局部變量命名規(guī)范:變量名首字母必須小寫,如果該變量名有多個單詞組成,后面的單詞首字母大寫,單詞與單詞之間不要使用‘_’做連接。 類常量命名規(guī)范:所有字母大寫,如果有多個單詞組成,單詞與單詞之間以‘_’隔開。而且該變量必須是公共、靜態(tài)、final類型。 方法命名規(guī)范:方法名首字母必須小寫,如果該變量名有多個單詞組成,后面的單詞首字母大寫,單詞與單詞之間不要使用‘_’做連接。 方法參數(shù)名命名規(guī)范:參數(shù)名首字母必須小寫,如果該變量名有多個單詞組成,后面的單詞首字母大寫,單詞與單詞之間不要使用‘_’做連接。注釋類、接口的注釋類、接口必須要有注釋。描述類、接口的功能,作者,版本,最近修改時間。類的注釋必須寫在該類的聲明語法之前。在注釋中要描述該類的基本作用,作者,日期,版本。/***XXXX功能類**@authorXXX*@versionX.X.X修改時間作者*/類、接口的變量和常量注釋 類、接口的變量和常量必須有注釋,變量和常量注釋必須寫在變量和常量定義之前,簡單描述其代表的意義。 /** *XXXXXX */類、接口方法注釋方法必須要有注釋,方法注釋必須寫在方法定義之前。該注釋包括:方法其功能的簡單描述,方法的參數(shù)、返回值類型、返回值意義簡單的描述,跑出異常描述 /***XXXXXX功能*@paramaa參數(shù)的意義*@parambb參數(shù)的意義*@return返回類型返回的意義*@throwsXXXX異常*@throwsXXXX異常*/ 邏輯代碼注釋邏輯代碼必須注
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年合肥市公務員考試行測真題附答案詳解
- 歷史名篇人物探究:《中國古代文學人物分析》
- 2025年道路機場與橋隧工程??荚囶}+答案(附解析)
- 2025年單招信息技術模擬試題及參考答案
- 2025年住建委租賃合同模板示例
- 2025年浙江衢州柯城區(qū)中醫(yī)醫(yī)院招聘編外人員3人筆試備考題庫及答案詳解1套
- 2025年大連市西崗區(qū)教育系統(tǒng)自主招聘應屆畢業(yè)生(第三批)考前自測高頻考點模擬試題及答案詳解(名校卷)
- 2025年福州市福清市南嶺鎮(zhèn)人民政府執(zhí)法中隊招聘模擬試卷及參考答案詳解一套
- 茶葉高端市場消費分析報告
- 2025年長春市市直事業(yè)單位招聘高層次人才(5號)(3人)模擬試卷及答案詳解(奪冠)
- 監(jiān)督工作培訓課件
- 中國老年糖尿病診療指南(2025)全文版
- 公司宣傳工作管理辦法
- 2024年云南省巍山彝族回族自治縣人民醫(yī)院公開招聘護理工作人員試題帶答案詳解
- 兒童敗血癥課件
- 鐵路職業(yè)道德課件教學
- 道路貨物運輸安全生產(chǎn)管理制度文本
- 茶葉施肥技術課件
- 雕塑在數(shù)字藝術中的創(chuàng)新實踐
- 中文版兒童睡眠習慣問卷CSHQ 含評分維度
- 妊娠合并血小板減少的護理講課件
評論
0/150
提交評論