




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
引言目的通過對(duì)系統(tǒng)整體架構(gòu)和技術(shù)規(guī)范的描述,為下一步大規(guī)模設(shè)計(jì)開發(fā)提供基礎(chǔ)和規(guī)范。對(duì)象與范圍項(xiàng)目管理人員,開發(fā)人員,測(cè)試人員。概述未來重構(gòu)的工作量。webapphessian通信。第一層和第二層獨(dú)立部署,第二層的不同模塊也可以獨(dú)立部署。webapp采用集群負(fù)載均衡,數(shù)據(jù)庫采用負(fù)載均衡和讀寫分離,以滿足一定的性能需求。文檔描述了各層結(jié)構(gòu)和模塊使用的技術(shù)和框架發(fā)工具。文檔只是描述了一期的架構(gòu),系統(tǒng)架構(gòu)圖一期系統(tǒng)架構(gòu)如下用戶瀏覽器http負(fù)載均衡,動(dòng)靜分離(nginx)
靜態(tài)請(qǐng)求
網(wǎng)絡(luò)存儲(chǔ)動(dòng)態(tài)請(qǐng)求WebAPP(bull)
rmi同步
Web
文件存取郵件服務(wù)器物流公司A8系統(tǒng) WS
Hessian
Hessian
hessian (hourse)
http
管理員瀏覽器第三方網(wǎng)站短信平臺(tái)銀行,第三方支付
Smtpapi
(lion)
(antelope)
(eagle)
(pigieon))
(camel)
存(fox)
調(diào)用(mouse)
JDBCJDBC數(shù)據(jù)庫讀寫分離,負(fù)載均衡(Amoeba)ODBCDB(salver)
DB(salver)DB(master) REPLICATIONDB(salver)
DB(salver)層次和模塊前端負(fù)載均衡nginxWEBnginx平Nginxwebapp的負(fù)載均衡。動(dòng)靜分離動(dòng)靜分離可以很好得分擔(dān)服務(wù)器的負(fù)載,有兩種方式實(shí)現(xiàn)動(dòng)靜分離。2級(jí)域名,配置專門的靜態(tài)文件服務(wù)器。nginxurl轉(zhuǎn)發(fā)功能,把靜態(tài)請(qǐng)求轉(zhuǎn)發(fā)到靜態(tài)服務(wù)器或在nginx本地處理,動(dòng)態(tài)請(qǐng)求轉(zhuǎn)發(fā)到應(yīng)用服務(wù)器。jscss和靜urlajax請(qǐng)求和動(dòng)態(tài)頁面使用動(dòng)態(tài)服務(wù)器地址生成。負(fù)載均衡nginxupstreamip_hash的方式把動(dòng)態(tài)請(qǐng)求轉(zhuǎn)發(fā)到組內(nèi)的某臺(tái)服務(wù)器,同時(shí)保證客戶端在IPsession保持問題。Webapp網(wǎng)站前端,基于j2ee,spring框架開發(fā)。頁面展示和控制系統(tǒng)有三種頁面方式。velocity模板生成頁面,客戶端刷新整個(gè)頁面。ajaxAjaxvelocityhtml串;json格式;直接返回簡單的字符串。模板生成的純靜態(tài)頁面前臺(tái)頁面采用的框架和第三方技術(shù)有:e(ajax請(qǐng)求,頁面刷新……。Jqzoom(圖片放大器)輸入驗(yàn)證)……權(quán)限安全控制apacheshiroShiroShirocas單點(diǎn)登錄整合,方便在下一期擴(kuò)展多個(gè)應(yīng)用模塊??蚣馨褭?quán)限系統(tǒng)分成(當(dāng)前用戶權(quán)限數(shù)據(jù))三層。支持基于實(shí)際資源和基于角色的權(quán)限校驗(yàn),同時(shí)shiro實(shí)現(xiàn)基于驗(yàn)證碼和數(shù)據(jù)庫用戶密碼的用戶登錄驗(yàn)證。在過濾器層,我們暫時(shí)只使用shiro的3種類型過濾器控制訪問1.AnonymousFilter 匿名過濾器 任何人可以訪問。2.AuthenticatingFilter認(rèn)證過濾器必須通過身份認(rèn)真才能訪問(跳轉(zhuǎn)到登錄頁面。
可以對(duì)當(dāng)前subject直接調(diào)用方法完成判斷是否登錄,登錄,注銷等操作,方便對(duì)登錄功能的擴(kuò)展??刂破鲗觭pringvelocityjsonajaxtext返回。數(shù)據(jù)驗(yàn)證使用和擴(kuò)展apache的common-validator。邏輯層采用spring基于注解的事務(wù)控制。數(shù)據(jù)持久層采用ibatis框架,基于sqlmap配置實(shí)現(xiàn)數(shù)據(jù)的讀寫,sqlmap配置可以控制底層sql語句,便于數(shù)據(jù)庫的調(diào)優(yōu)。緩存的處理ehcache架。用到兩種緩存方式:用頁面緩存效果很好,比如首頁?;谧⒔獾姆椒ň彺妫梢詫?duì)方法的返回值緩存,存入的參數(shù)可以組成。可以等數(shù)據(jù)。Ehcache支持分布式緩存,ehcache支持服務(wù)器之間通過rmi調(diào)用保持所有服務(wù)器之間緩存同步。緩存的兩種過期機(jī)制:ehcache的配置確定緩存過期頻率。主動(dòng)通知,管理員在后臺(tái)系統(tǒng)進(jìn)行某些操作后,通過hessian用服務(wù)器緩存過期。只需通知一臺(tái)應(yīng)用服務(wù)器,應(yīng)用服務(wù)器之間通過ehcache自帶分布式緩存復(fù)制方式同步緩存。后臺(tái)管理系統(tǒng)可以提供刷新緩存功能,管理員在后臺(tái)管理系統(tǒng)主動(dòng)刷新緩存。去其他模塊之間的通信通過hessian遠(yuǎn)程調(diào)用框架,實(shí)現(xiàn)與其他模塊功能之間的通信。Hessian是一個(gè)基于http的二進(jìn)制遠(yuǎn)程過程調(diào)用框架,比webservice更高效。與Spring框架很好結(jié)合,開發(fā)簡單。后臺(tái)管理系統(tǒng)j2eespring頁面的展示大部分請(qǐng)求采用頁面刷新的機(jī)制。頭部,中部左側(cè)菜單和底部固定不變。中部右側(cè)iframe為主操作區(qū),每次操作刷新頁面。商品描述的編輯需要使用到富文本編輯器,我們采用開源的TinyMCE,TinyMCE在國內(nèi)應(yīng)用比較廣泛。緩存機(jī)制后臺(tái)系統(tǒng)訪問不是很頻繁,同事管理員需要的是實(shí)時(shí)的數(shù)據(jù),所以后臺(tái)管理系統(tǒng)不對(duì)數(shù)據(jù)進(jìn)行緩存。權(quán)限管理采用spingsecurity框架進(jìn)行權(quán)限的控制,基于用戶、角色和資源的授權(quán)機(jī)制。支付模塊:j2eespringspringmvc模式。與銀行和其他支付系統(tǒng)的交互需要提供一個(gè)Url地址,供銀行在用戶完成支付后回調(diào),通知系統(tǒng)已經(jīng)支付成功。與內(nèi)部模塊之間的通信主要來自網(wǎng)站前端的調(diào)用?;趆essian機(jī)制。物流模塊j2eespringspringmvchessian機(jī)制對(duì)外提供遠(yuǎn)程效用服務(wù)。郵件模塊郵件模塊主要用來向客戶發(fā)送郵件?;趈2eespring框架。采用springmvc模式。郵件發(fā)送使用javamail包發(fā)送郵件,支持以固定模板發(fā)送郵件。定時(shí)發(fā)送使用spring+quartz框架實(shí)現(xiàn)定時(shí)任務(wù)發(fā)送郵件。與內(nèi)部模塊之間的通信為網(wǎng)站前端和后臺(tái)管理系統(tǒng)提供遠(yuǎn)程調(diào)用服務(wù)?;趆essian機(jī)制。短信模塊短信模塊主要用來向客戶發(fā)送短信?;趈2eespring框架。采用springmvc模式。郵件發(fā)送調(diào)用短信設(shè)備api發(fā)送短信,支持以固定模板發(fā)送短信。定時(shí)發(fā)送使用spring+quartz框架實(shí)現(xiàn)定時(shí)任務(wù)發(fā)送短信。與內(nèi)部模塊之間的通信為網(wǎng)站前端和后臺(tái)管理系統(tǒng)提供遠(yuǎn)程調(diào)用服務(wù)?;趆essian機(jī)制。進(jìn)銷存模塊調(diào)用A8系統(tǒng)接口,實(shí)現(xiàn)庫存的管理?;趈2eespring框架。采用springmvc模式。Webservice調(diào)用采用spring+xfile框架調(diào)用a8系統(tǒng)webservice。與內(nèi)部模塊之間的通信為網(wǎng)站前端和后臺(tái)管理系統(tǒng)提供遠(yuǎn)程調(diào)用服務(wù)?;趆essian機(jī)制。搜索模塊為網(wǎng)站提供搜索服務(wù)。包括商品檢索和問答式搜索的問題檢索。基于j2eespring框架。采用springmvc模式。檢索框架coreSeekSphinx研發(fā)并獨(dú)立開發(fā)的搜索引擎。自帶中文分詞器,有大量中文文檔。提供。索引建立效率高并且與業(yè)務(wù)無關(guān)。在國內(nèi)有大量成功案例。與內(nèi)部模塊之間的通信為網(wǎng)站前端提供遠(yuǎn)程調(diào)用服務(wù)。基于hessian機(jī)制。第三方服務(wù)調(diào)用模塊調(diào)用第三方合作服務(wù)商的接口?;趈2eespring框架。采用springmvc模式。Webservice調(diào)用采用spring+xfile框架調(diào)用第三方服務(wù)webservice。與內(nèi)部模塊之間的通信為網(wǎng)站前端和后臺(tái)管理系統(tǒng)提供遠(yuǎn)程調(diào)用服務(wù)?;趆essian機(jī)制。對(duì)外服務(wù)接口對(duì)外部系統(tǒng)提供webservice接口服務(wù)Webservice服務(wù)采用spring+xfile框架對(duì)外提供webservice服務(wù)。與內(nèi)部模塊之間的通信調(diào)用內(nèi)部其他模塊的服務(wù)?;趆essian機(jī)制。數(shù)據(jù)庫使用mysql5.5數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù),并使用讀寫分離機(jī)制提高數(shù)據(jù)庫性能。數(shù)據(jù)庫讀寫分離我們使用開源的mysqlAmoeba實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離mysql自帶的復(fù)制機(jī)制實(shí)現(xiàn)數(shù)據(jù)的同步。數(shù)據(jù)庫負(fù)載均衡Amoeba支持輪詢和權(quán)重兩種負(fù)載均衡機(jī)制,我們使用權(quán)重負(fù)載機(jī)制實(shí)現(xiàn)讀服務(wù)器的負(fù)載均衡。數(shù)據(jù)庫表引擎的選擇主服務(wù)器必須使用innodb支持事務(wù)的存儲(chǔ)引擎,行級(jí)鎖表。而從服務(wù)器可以考慮使用myisam引擎,不支持事務(wù),表級(jí)鎖表,具有更高的讀寫效率,但不支持外鍵。主從數(shù)據(jù)庫的差異優(yōu)化要可以提高主服務(wù)器的性能。charvarchar,text,blob字段的表是靜態(tài)表,反之是動(dòng)態(tài)表,靜態(tài)表的檢索效率要比動(dòng)態(tài)表好若干倍。工程命名工程以動(dòng)物命名,結(jié)合了各種動(dòng)物特征與我們各工程的職責(zé):公共接口工具magpie(喜鵲)網(wǎng)站前臺(tái)服務(wù)bull(公牛)物流cheetah(獵豹)支付lion(獅子)進(jìn)銷存接口fox(狐貍)搜索dog(狗)郵件eagle (鷹)短信pigeon(鴿子后臺(tái)管理)調(diào)用第三方合作接口mouse(老鼠)對(duì)外服務(wù)接口camel(駱駝)工程規(guī)范工程目錄結(jié)構(gòu)src 源碼WebContentWEN-INFlib jar包c(diǎn)onfig 配置文件views 視圖模板layout布局模板screen…… 各模塊common公共的styles樣式文件resources資源文件scripts js文件common js…… js項(xiàng)目包結(jié)構(gòu)寫公共工具接口工程公共工具:mon.util各層的公共基類:mon下的各子包遠(yuǎn)程調(diào)用公共dto:com.zjdelai.emall.提供服務(wù)的工程名.remoting.dto.業(yè)務(wù)子模塊遠(yuǎn)程調(diào)用公共接口:com.zjdelai.emall.提供服務(wù)的工程名.erfaces.業(yè)務(wù)子模塊第三方開源包的擴(kuò)展:mon.第三方開源包名各模塊工程數(shù)據(jù)對(duì)象:com.zjdelai.emall.工程名業(yè)務(wù)子模塊dao接口:com.delai.emall..dao.業(yè)務(wù)子模塊dao接口實(shí)現(xiàn):com.zjdelai.emall.(ibatis)sqlmap:com.zjdelai.emall..dbMap..(mysql)業(yè)務(wù)邏輯接口:com.zjdelai.emall.工程名.service.業(yè)務(wù)子模塊業(yè)務(wù)邏輯實(shí)現(xiàn):com.zjdelai.emall..service..implWebaction:com.zjdelai.emall.業(yè)務(wù)子模塊Web.zjdelai.emall.工程名業(yè)務(wù)子模塊Web.zjdelai.emall.工程名.web.filter工具:com.zjdelai.emall.工程名.util遠(yuǎn)程調(diào)用接口實(shí)現(xiàn):com.zjdelai.emall.工程名.erfaces.業(yè)務(wù)子模塊.impl類、接口命名類命名基本原則:首字母大寫,多個(gè)單詞的首字母大寫接口命名基本原則:以大寫字母"I"開頭,如果有多個(gè)單詞,每個(gè)單詞頭字母大寫I數(shù)據(jù)對(duì)象:數(shù)據(jù)庫表名.javaDao接口:I+數(shù)據(jù)對(duì)象名+Dao.javadao實(shí)現(xiàn):數(shù)據(jù)對(duì)象名+Dao+框架名(Ibatis).javasqlmap:數(shù)據(jù)對(duì)象名.xml+Manager.java+ManagerImpl.javaWeb:domain名+Action.javaWebvalidator:domain名+Validator.javaDto:***Dto.java遠(yuǎn)程調(diào)用接口:I+數(shù)據(jù)對(duì)象名+Sercice.java遠(yuǎn)程調(diào)用實(shí)現(xiàn):數(shù)據(jù)對(duì)象名+SerciceImpl.java變量和方法命名類變量、局部變量命名規(guī)范:變量名首字母必須小寫,如果該變量名有多個(gè)單詞組成,后面的單詞首字母大寫,單詞與單詞之間不要使用‘_’做連接。類常量命名規(guī)范:所有字母大寫,如果有多個(gè)單詞組成,單詞與單詞之間以‘_’隔開。而且該變量必須是公共、靜態(tài)、final類型。方法命名規(guī)范:方法名首字母必須小寫,如果該變量名有多個(gè)單詞組成,后面的單詞首字母大寫,單詞與單詞之間不要使用‘_’做連接。方法參數(shù)名命名規(guī)范:參數(shù)名首字母必須小寫,如果該變量名有多個(gè)單詞組成,后面的單詞首字母大寫,單詞與單詞之間不要使用‘_’做連接。注釋類、接口的注釋類、接口必須要有注釋。描述類、接口的功能,作者,版本,最近修改時(shí)間。版本。/**XXXX功能類*@authorXXX@versionX.X.X */類、接口的變量和常量注釋簡單描述其代表的意義。/*** XXXXXX*/類、接口方法注釋簡單描述,方法的參數(shù)、返回值類型、返回值意義簡單的描述,跑出異常描述/**XXXXXX功能@param a a參數(shù)的意義@param b b參數(shù)的意義@retur
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村材料合同范本
- 動(dòng)產(chǎn)汽車互易合同范本
- 企業(yè)投資期權(quán)合同范本
- 2024年徐州市凱信電子設(shè)備有限公司招聘考試真題
- 勞動(dòng)關(guān)系合同范本
- 2024年西安醫(yī)學(xué)院第一附屬醫(yī)院灃東醫(yī)院招聘筆試真題
- 2024年臺(tái)州仙居縣人民醫(yī)院醫(yī)共體招聘工作人員筆試真題
- 2024鞍鋼資本金融管理業(yè)務(wù)人才招聘4人筆試參考題庫附帶答案詳解
- 第16課《誡子書》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版語文七年級(jí)上冊(cè)
- 出售環(huán)衛(wèi)用車合同范本
- 化工車間開停車風(fēng)險(xiǎn)分析
- 職業(yè)技能鑒定質(zhì)量督導(dǎo)報(bào)告
- 鈑金k因子和折彎扣除參照表
- 首都機(jī)場(chǎng)集團(tuán)公司固定資產(chǎn)實(shí)物分類指導(dǎo)規(guī)則20140901(終稿)
- 市政小三線施工方案(共22頁)
- 靜壓樁機(jī)、鉆孔灌注樁、沉槽機(jī)CAD圖形
- 易經(jīng)(拼音版)
- 紅旗優(yōu)質(zhì)服務(wù)窗口先進(jìn)事跡材料
- 總監(jiān)辦標(biāo)準(zhǔn)化管理規(guī)定
- (完整版)裝飾裝修工程監(jiān)理細(xì)則(詳解)最新(精華版)
- ipsecvpn技術(shù)詳解
評(píng)論
0/150
提交評(píng)論