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

下載本文檔

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

文檔簡介

1、全網(wǎng)電子商務(wù)平臺技術(shù)架構(gòu)說明書2010年3月18日北京友聯(lián)慧通科技有限公司目 錄技術(shù)性需求分析4一致的邏輯數(shù)據(jù)4優(yōu)秀的網(wǎng)絡(luò)環(huán)境適應(yīng)性4系統(tǒng)的兼容性4優(yōu)異的系統(tǒng)性能4開放的界面和接口4完備的操作日志管理策略4高度的安全性4技術(shù)性設(shè)計思想和原則5最小成本原則5安全性、可靠性、先進(jìn)性原則5安全性與可靠性原則5先進(jìn)性原則:5實用性、易用性、可擴(kuò)展性原則5實用性原則5統(tǒng)一及一致性原則6業(yè)務(wù)引導(dǎo)及易用性原則6友好及方便性原則6擴(kuò)展性和適應(yīng)性原則6數(shù)據(jù)共享原則7系統(tǒng)技術(shù)架構(gòu)的設(shè)計7技術(shù)架構(gòu)的特點(diǎn)7系統(tǒng)的架構(gòu)圖7技術(shù)架構(gòu)圖7系統(tǒng)請求數(shù)據(jù)處理流程圖9體系結(jié)構(gòu)圖10系統(tǒng)核心功能分布圖11架構(gòu)層次的說明11數(shù)據(jù)庫層

2、11中間件層12基礎(chǔ)服務(wù)層16應(yīng)用層20業(yè)務(wù)表現(xiàn)層和系統(tǒng)接口層21系統(tǒng)部署環(huán)境22商城平臺部署環(huán)境22運(yùn)行平臺22操作系統(tǒng)22應(yīng)用服務(wù)器23Web服務(wù)器23數(shù)據(jù)庫服務(wù)器23緩存服務(wù)器23圖片文件服務(wù)器23系統(tǒng)部署拓?fù)鋱D23系統(tǒng)部署結(jié)構(gòu)圖24技術(shù)性需求分析一致的邏輯數(shù)據(jù)一般來說,平臺所有的服務(wù)接點(diǎn)都是這個數(shù)據(jù)庫的客戶端訪問;因此從邏輯上,任意服務(wù)網(wǎng)絡(luò)接入點(diǎn)的數(shù)據(jù)應(yīng)該是一致的。優(yōu)秀的網(wǎng)絡(luò)環(huán)境適應(yīng)性從系統(tǒng)的實現(xiàn)角度考慮,要滿足各種復(fù)雜的網(wǎng)絡(luò)環(huán)境。系統(tǒng)的兼容性由于服務(wù)結(jié)點(diǎn)的數(shù)量巨大,其使用的平臺和語言各不相同,需要能夠容納所有類型的服務(wù)結(jié)點(diǎn);優(yōu)異的系統(tǒng)性能從系統(tǒng)架構(gòu)設(shè)計上需要考慮巨大量數(shù)據(jù)的處理引擎,

3、從系統(tǒng)本身進(jìn)行性能上的優(yōu)化,而不是僅僅憑借于硬件服務(wù)器的性能。開放的界面和接口不僅個人用戶能夠方便地通過Web應(yīng)用查詢信息,同時也需要能夠預(yù)留非GUI的交互界面的接口,以便使其它應(yīng)用系統(tǒng)也能使用數(shù)據(jù)管理系統(tǒng)提供的信息服務(wù),同時還需要為第三方軟件預(yù)留標(biāo)準(zhǔn)的集成接口,使系統(tǒng)具有高度的可擴(kuò)展性;完備的操作日志管理策略需要有完備的操作日志管理引擎,記錄系統(tǒng)交互過程中的日志數(shù)據(jù)。高度的安全性利用JAVA所特有的安全性,更多的從系統(tǒng)角度去維護(hù)數(shù)據(jù)的安全,同時需要從數(shù)據(jù)庫和服務(wù)器的角度提出安全維護(hù)的有效建議。技術(shù)性設(shè)計思想和原則最小成本原則系統(tǒng)建設(shè)充分考慮目前已實施的業(yè)務(wù)系統(tǒng)的實際情況,充分利用原系統(tǒng)資源,

4、在實現(xiàn)新系統(tǒng)建設(shè)同時保護(hù)原有系統(tǒng)的資源。任何一個系統(tǒng)的建設(shè),如果不能合理和有效地利用現(xiàn)有的資源和之前的系統(tǒng)的資源,這樣的系統(tǒng)應(yīng)該算不了絕對的成功。因此,在進(jìn)行系統(tǒng)重建時,充分考慮如何利用以前的信息系統(tǒng)、網(wǎng)絡(luò)和其他設(shè)備,并對以前實施的應(yīng)用系統(tǒng)進(jìn)行整合,一方面保證原有的設(shè)備可以重新利用,另一方面保證以前的應(yīng)用重獲新生。在真正意義上做到既完成了新系統(tǒng)的建設(shè)又保護(hù)了原有設(shè)備和系統(tǒng)的資源。安全性、可靠性、先進(jìn)性原則安全性與可靠性原則:考慮到電子商務(wù)系統(tǒng)工程建設(shè)項目安全性、可靠性的需求,在系統(tǒng)設(shè)計中,應(yīng)充分注意系統(tǒng)的安全性和可靠性,采用多種安全防范技術(shù)和措施,保障系統(tǒng)的信息安全,保障系統(tǒng)長期穩(wěn)定可靠運(yùn)行,

5、同時在系統(tǒng)設(shè)計要充分考慮系統(tǒng)運(yùn)行性能,達(dá)到“簡便、實用、快捷、安全、準(zhǔn)確”的目的。先進(jìn)性原則:由于IT技術(shù)發(fā)展的速度驚人。因此,在電子商務(wù)項目進(jìn)行系統(tǒng)總體規(guī)劃時,我們選擇業(yè)界到目前為止先進(jìn)和成熟的技術(shù)作為整個系統(tǒng)的技術(shù)架構(gòu),以保證系統(tǒng)有不斷發(fā)展和擴(kuò)充的余地。系統(tǒng)總體設(shè)計的先進(jìn)性原則主要體現(xiàn)在以下幾方面:1) 系統(tǒng)結(jié)構(gòu)選擇當(dāng)前先進(jìn)的SSH架構(gòu)進(jìn)行邏輯和業(yè)務(wù)和展示分層的架構(gòu)進(jìn)行系統(tǒng)開發(fā);2) 軟件的設(shè)計中利用先進(jìn)的面向?qū)ο蠹夹g(shù)、設(shè)計模式、接口技術(shù)和組件技術(shù)來提高軟件的通用性和復(fù)用性。實用性、易用性、可擴(kuò)展性原則實用性原則衡量一個電子商務(wù)系統(tǒng)的好壞決不是看它投入了多少、如何的先進(jìn),而是看它是否真正滿

6、足運(yùn)營業(yè)務(wù)需求,是否真的符合真正的運(yùn)營情況。因此,在進(jìn)行系統(tǒng)的建設(shè)時,我們始終不忘實用性原則,努力保證投資花在實處,保證建設(shè)出來的系統(tǒng)切切實實是所需要的,而不是一個富麗堂皇的空架子,光有一個外表而沒有實際的內(nèi)容。   實用性是每個信息系統(tǒng)在建設(shè)過程中所必須考慮的,從實際應(yīng)用的角度來看,這個性能更加重要。為了提高系統(tǒng)的實用性,本系統(tǒng)考慮如下幾個方面:    設(shè)計上充分考慮當(dāng)前各業(yè)務(wù)層次、各環(huán)節(jié)管理中數(shù)據(jù)處理的便利和可行,把滿足用戶業(yè)務(wù)管理作為第一要素進(jìn)行考慮;    采取總體設(shè)計、分步實施的技術(shù)方案,在總體

7、設(shè)計的前提下,系統(tǒng)實施時先進(jìn)行業(yè)務(wù)處理層及低層管理,穩(wěn)步向中高層管理及全面自動化過渡。這樣做可以使系統(tǒng)始終與業(yè)務(wù)實際需求緊密連在一起,不但增加了系統(tǒng)的實用性,而且可使系統(tǒng)建設(shè)保持很好的連貫性;    全部人機(jī)操作設(shè)計均充分考慮不同使用者的實際需要;    用戶接口及界面設(shè)計充分考慮人體結(jié)構(gòu)特征及視覺特征進(jìn)行優(yōu)化設(shè)計,界面盡可能美觀大方,操作簡便實用。統(tǒng)一及一致性原則在統(tǒng)一的用戶界面風(fēng)格前提下,實現(xiàn)各GUI中各類按鈕、圖標(biāo)、文字(字體、大?。徭I(快捷鍵)的統(tǒng)一和一致,達(dá)到便于使用、便于學(xué)習(xí)、交互友好的目的。  &

8、#160;人機(jī)工程及標(biāo)準(zhǔn)化原則    在保證界面風(fēng)格統(tǒng)一、一致的基礎(chǔ)上,按照人機(jī)工程原理,遵循IBM 和 Microsoft的界面設(shè)計標(biāo)準(zhǔn),將界面的布局(包括按鈕、菜單、顯示框等)設(shè)計成符合操作者習(xí)慣的形式,并在界面顏色的搭配上滿足操作者長時間工作要求,提供一個人性化的人機(jī)操作環(huán)境,以保證用戶使用的舒適性。業(yè)務(wù)引導(dǎo)及易用性原則充分考慮業(yè)務(wù)的管理需求,在界面的菜單及功能的組合設(shè)計中,將界面的操作順序按業(yè)務(wù)歸類,以便操作的有效引導(dǎo),保證軟件的易用性。同時,在各功能名稱的用詞、信息提示文字等方面,使用政府審批業(yè)務(wù)的規(guī)范化、習(xí)慣化用詞,以保證軟件使用者的習(xí)慣性,符合現(xiàn)有政

9、府審批管理模式,有利于操作者在較快的時間熟練用好軟件。  友好及方便性原則    鼠標(biāo)、鍵盤的靈活輸入方式;熱鍵的使用,以保證各種業(yè)務(wù)數(shù)據(jù)信息的錄入界面,更新維護(hù)界面和記錄增刪界面及部門內(nèi)部信息查詢界面和信息統(tǒng)計報表界面等使用的方便性、友好性,確保各種業(yè)務(wù)信息數(shù)據(jù)都能通過用戶界面方便地、快速錄入。擴(kuò)展性和適應(yīng)性原則擴(kuò)展性和適應(yīng)性是系統(tǒng)升級前要考慮的首要元素,為了進(jìn)一步讓客戶能夠降低成本來完成未來可預(yù)見的系統(tǒng)升級開發(fā),系統(tǒng)在設(shè)計時就充分考慮到實際系統(tǒng)在今后工作發(fā)展而產(chǎn)生的升級需求,盡量保證在原有代碼基礎(chǔ)上容易適應(yīng)、容易修改和升級的目標(biāo)。數(shù)據(jù)共享原

10、則對所有的數(shù)據(jù)采用合理的數(shù)據(jù)結(jié)構(gòu),把它們有效地組織好,進(jìn)行統(tǒng)一維護(hù)管理,避免數(shù)據(jù)重復(fù),減少冗余,提高準(zhǔn)確性和可靠性,保證數(shù)據(jù)的統(tǒng)一性和完整性。系統(tǒng)技術(shù)架構(gòu)的設(shè)計技術(shù)架構(gòu)的特點(diǎn)我們的技術(shù)架構(gòu)有以下特點(diǎn):     采用目前安全性能高,擴(kuò)展性好,框架技術(shù)最為完善JAVA語言作為系統(tǒng)開發(fā)的語言。 采用SSH框架技術(shù),使系統(tǒng)能夠分層開發(fā),各層之間邏輯分明,層與層之間提供接口方式來實現(xiàn)業(yè)務(wù)和數(shù)據(jù)的溝通。讓系統(tǒng)具有極強(qiáng)的擴(kuò)展性。     基于組件技術(shù),力求將變化封裝在組件內(nèi)部。對應(yīng)組件可以對外提供API。  

11、   適應(yīng)能力強(qiáng),同步、異步都能處理,既能滿足快速反映的業(yè)務(wù)的需求,又能滿足大數(shù)據(jù)量、復(fù)雜的、異步的業(yè)務(wù)的需求。     與OS、中間件平臺、數(shù)據(jù)庫系統(tǒng)無關(guān)。     具有很好的可擴(kuò)展性。模塊化使得系統(tǒng)很容易在縱向和水平兩個方向拓展:一方面可以將系統(tǒng)升級為更大、更有力的平臺,同時也可以適當(dāng)增加規(guī)模來增強(qiáng)系統(tǒng)的網(wǎng)絡(luò)應(yīng)用。在擴(kuò)充或修改功能時,基本不會破壞原有結(jié)構(gòu)的穩(wěn)定性。 強(qiáng)而可靠的數(shù)據(jù)庫搜索引擎 實用且安全的SEO搜索引擎設(shè)計 支持分布式部署的緩存引擎系統(tǒng)的架構(gòu)圖技術(shù)架構(gòu)圖系統(tǒng)技術(shù)架構(gòu)圖系統(tǒng)請求數(shù)

12、據(jù)處理流程圖體系結(jié)構(gòu)圖體系結(jié)構(gòu)圖系統(tǒng)核心功能分布圖架構(gòu)層次的說明數(shù)據(jù)庫層對于平臺中的所有應(yīng)用,都存在著各種各樣的配置信息、業(yè)務(wù)數(shù)據(jù)、系統(tǒng)運(yùn)行狀態(tài)等信息。數(shù)據(jù)庫層對這些數(shù)據(jù)信息本身進(jìn)行歸檔,提供快速查詢的底層接口,并保證數(shù)據(jù)的完整性、可靠性。    在數(shù)據(jù)庫方面,我們的程序是可以無縫對接主流數(shù)據(jù)庫的包括Oracle,Mysql,和MSSql,但建議采用Oracle 或者是 MySQL。因為他們和程序一樣具備跨平臺的特性,但這兩種數(shù)據(jù)庫分別有不同的適用環(huán)境。Oracle     適合大型的電子商務(wù)應(yīng)用。  &

13、#160; 能使用所有的商城平臺功能。如訪問量排行榜、降價排行榜、銷售排行榜、訪問量統(tǒng)計等等,就以往的經(jīng)驗來看,這些功能每天要處理的數(shù)據(jù)都會超過一千萬。這種數(shù)據(jù)量如果使用傳統(tǒng)的統(tǒng)計方法,統(tǒng)計一次的時間就可能會以天來計算了。如果使用Oracle,再配合我們專門對Oracle進(jìn)行優(yōu)化的高效率的統(tǒng)計程序,那么只需十?dāng)?shù)秒便可完成。    此外,如果只用一臺數(shù)據(jù)庫無法應(yīng)付日益增長的服務(wù)器訪問量,可以使用Oracle RAC(真正應(yīng)用集群),通過增加數(shù)據(jù)庫服務(wù)器進(jìn)行集群。MySQL     適合中小型的電子商務(wù)應(yīng)用。 

14、0;  無法使用商城平臺一些高級應(yīng)用,如排行榜、統(tǒng)計分析、MIS系統(tǒng)對接等。這是由于MySQL設(shè)計上強(qiáng)調(diào)訪問速度,犧牲了一些數(shù)據(jù)庫的高級功能,雖然用程序也可以實現(xiàn)這些功能,但是在性能上無法滿足需求。    比較難實現(xiàn)數(shù)據(jù)庫集群。中間件層 中間件層主要是購?fù)ㄆ脚_使用的J2EE中間件,包括平臺使用到的應(yīng)用服務(wù)器和中間件技術(shù)。    一、應(yīng)用服務(wù)器    應(yīng)用服務(wù)器為購?fù)ㄌ峁┑恼麄€J2EE平臺實現(xiàn),商城系統(tǒng)基礎(chǔ)服務(wù)層和應(yīng)用層、業(yè)務(wù)層都是建立在應(yīng)用服務(wù)器之上。    購?fù)ㄔO(shè)

15、計上遵循SUN公司提出的J2EE規(guī)范,這樣能夠盡可能的保證在不同的J2EE應(yīng)用服務(wù)器中進(jìn)行移植。    經(jīng)過測試購?fù)ㄆ脚_支持Tomcat、WebLogic、JBoss,webShare這幾種J2EE應(yīng)用服務(wù)器。        二、中間件技術(shù)    本著重用的設(shè)計原則,購?fù)ㄔ谝恍┕δ苤胁捎昧艘延械某墒旒夹g(shù),這些都是經(jīng)過實踐考驗的中間件。主要以java標(biāo)準(zhǔn)包和開源項目為主,大部分都針對系統(tǒng)作了相應(yīng)調(diào)整,以便適合系統(tǒng)的需要。    1. Apache

16、commons:    著名的開源組織Apache的一個java工具包,提供很多實用的功能。     1) commons-beanutils:    提供對Java反射和自省API的包裝。    在平臺中用于通用的接口設(shè)計。     2) commons-codec:    包含一些通用的編碼解碼算法。Hex,Base64, 以及URL encoder。  

17、0; 平臺中主要用來做消息摘要,實現(xiàn)數(shù)據(jù)加密等功能。     3) commons-collections:    提供一個類包來擴(kuò)展和增加標(biāo)準(zhǔn)的Java Collection框架。提供了比j2sdk更全面的數(shù)據(jù)結(jié)構(gòu),平臺中繼承并實現(xiàn)了一些特殊的數(shù)據(jù)結(jié)構(gòu)。     4) commons-pool:    提供了通用對象池接口,一個用于創(chuàng)建模塊化對象池的工具包,以及通常的對象池。    我們在原有的基礎(chǔ)上進(jìn)行了優(yōu)化,在性能和使用

18、性方面有所提高。     5) commons-dbcp:    這是一個基于apache的對象池(apache commons pool)實現(xiàn)的數(shù)據(jù)庫連接池。    我們在原有的基礎(chǔ)上進(jìn)行了優(yōu)化,對數(shù)據(jù)庫連接進(jìn)行了特別的處理,防止數(shù)據(jù)庫連接泄漏的問題,并提供了監(jiān)控的功能。     6) commons-discovery:    供工具來定位資源(包括類) ,通過使用各種模式來映射服務(wù)/引用名稱和資源名稱。 

19、60;   7) commons-el:    提供在JSP2.0規(guī)范中定義的EL表達(dá)式的解釋器。    對平臺中的JSP提供EL表達(dá)式支持。     8) commons-fileupload:    強(qiáng)大和高性能的文件上傳功能。    平臺中被用于上傳各種圖片、Flash、文檔等資源,我們在原有的基礎(chǔ)上進(jìn)行了優(yōu)化。     9) commons-logging: 

20、   提供通用的日志操作接口。    主要用于程序調(diào)試和服務(wù)器日常的日志輸出。    10) commons-validator:    提供了一個簡單的,可擴(kuò)展的框架來在一個XML文件中定義校驗器(校驗方法)和校驗規(guī)則。支持校驗規(guī)則的和錯誤消息的國際化。    平臺中用來校驗各種xml數(shù)據(jù)。           2. Dom4j:   

21、 Dom4j是一個易用的、開源的庫,用于XML,XPath和XSLT。它應(yīng)用于Java平臺,采用了Java集合框架并完全支持DOM,SAX和JAXP。    主要用來處理XML數(shù)據(jù)。    XML在商城有廣泛的應(yīng)用,主要是作為配置文件使用。由于XML嚴(yán)格的格式要求和層次結(jié)構(gòu),也有用來作為參數(shù)在HTML表單中傳遞。如組合商品功能,因為組合商品中的商品是由管理員挑選的,參數(shù)數(shù)量并不確定,如果每從組合商品中添加/刪除一個商品都直接更新到數(shù)據(jù)庫話,會對系統(tǒng)造成負(fù)荷。所以,在組合商品的管理中,將操作的數(shù)據(jù)類轉(zhuǎn)換成XML傳遞,就可以一次進(jìn)行修改。

22、     3. Hibernate:    Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序?qū)嵱?,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。    在平臺中,我們采用Hibernate進(jìn)行數(shù)據(jù)庫操作,只有在一些對

23、數(shù)據(jù)庫性能有特別要求的模塊,才直接使用jdbc進(jìn)行連接。   4. Memcache:    Memcache是一個支持分布式部署的動態(tài)緩存引擎。    5. Spring定時器:           我們主要用Spring定時器管理以下一些定時任務(wù):     1) 年排行榜后臺更新進(jìn)程:自動計算年排行榜。     2) 月排行

24、榜后臺更新進(jìn)程:自動計算月排行榜。     3) 周排行榜后臺更新進(jìn)程:自動計算周排行榜。     4) 日排行榜后臺更新進(jìn)程:自動計算日排行榜。     5) 更新對象緩存:實現(xiàn)對象緩存的更新,處理那些長期沒被再一次訪問的對象緩存。     6) 清頁面緩存:當(dāng)管理員使用的手工刷新頁面緩存的功能時,系統(tǒng)會將這些需要刷新的緩存加到一個隊列中,由本進(jìn)程負(fù)責(zé)刷新。     7) 相關(guān)產(chǎn)品自動實現(xiàn)間隔:

25、相關(guān)產(chǎn)品的計算對系統(tǒng)消耗比較大,所以系統(tǒng)不會對所有幾十萬個商品進(jìn)行計算,只有在用戶查看單個商品時算出這個商品的相關(guān)產(chǎn)品并進(jìn)行緩存。那么當(dāng)用戶下一次訪問這個商品的相關(guān)產(chǎn)品時就直接從緩存中讀取出來。而這個進(jìn)程就是為了定時更新這個緩存。     8) 自動推薦后臺更新進(jìn)程:進(jìn)程根據(jù)商品推薦規(guī)則進(jìn)行自動推薦。      9) 新聞推薦后臺更新進(jìn)程:進(jìn)程根據(jù)新聞推薦規(guī)則進(jìn)行自動推薦。    10) 關(guān)鍵字后臺進(jìn)程:當(dāng)用戶在前臺搜索欄中輸入一個查詢值時,系統(tǒng)并不馬上將其統(tǒng)計到關(guān)鍵字,而是放到內(nèi)存中

26、,由此進(jìn)程定時統(tǒng)計。    11) 保存訪問量信息進(jìn)程:用戶每訪問一次系統(tǒng),系統(tǒng)并不馬上統(tǒng)計,而是放到內(nèi)存中,由此進(jìn)程定時保存到數(shù)據(jù)庫,供統(tǒng)計進(jìn)程進(jìn)行統(tǒng)計。    12) 年訪問量排行計算:計算年訪問量排行榜。    13) 月訪問量排行計算:計算月訪問量排行榜。    14) 周訪問量排行計算:計算周訪問量排行榜。    15) 日訪問量排行計算:計算日訪問量排行榜。    16) 年降價排行計算:計算年降價排行榜

27、。    17) 月降價排行計算:計算月降價排行榜。    18) 周降價排行計算:計算周降價排行榜。    19) 日降價排行計算:計算日降價排行榜。    20) 統(tǒng)計計算:每天對訪問量進(jìn)行統(tǒng)計。    21) 生成訂閱郵件列表進(jìn)程:根據(jù)用戶的訂閱設(shè)置,生成需要發(fā)送的郵件隊列。    22) 發(fā)送訂閱郵件進(jìn)程:根據(jù)要發(fā)送的郵件隊列發(fā)送郵件。    23) 拍賣自動出價進(jìn)程:實現(xiàn)拍賣模

28、塊中的自動出價功能。        6. Log4j:    Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務(wù)器、NT的事件記錄器、UNIX Syslog守護(hù)進(jìn)程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細(xì)致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進(jìn)行配置,而不需要修改應(yīng)用的代碼。    這是一個可選

29、包,如果不使用Log4j的話,commons-logging會自動使用SUN J2SDK的日志包,不過我們還是推薦使用Log4j,它的功能非常強(qiáng)大。    7. Compass:       Compass是一個開放源程序的搜尋器引擎,利用它可以輕易地為Java軟件加入全文搜尋功能。Compass的最主要工作是替文件的每一個字作索引,索引讓搜尋的效率比傳統(tǒng)的逐字比較大大提高,Compass提供一組解讀,過濾,分析文件,編排和使用索引的API,它的強(qiáng)大之處除了高效和簡單外,是最重要的是使使用者可以

30、隨時應(yīng)自已需要自訂其功能。    我們使用Compass建立索引,并在這基礎(chǔ)上實現(xiàn)了全文搜索功能。    8. Ant:    Ant是一個基于Java的自動化腳本引擎,腳本格式為XML。    我們除了用Ant做Java編譯相關(guān)任務(wù)外,還通過插件實現(xiàn)很多應(yīng)用的調(diào)用。包括程序編譯、打包、Hibernate配置文件自動生成、部署、以及單元測試等操作。    當(dāng)一個代碼項目大了以后,每次重新編譯,打包,測試等都會變得非常復(fù)雜而且重復(fù),因此c語言中有m

31、ake腳本來幫助這些工作的批量完成。在Java中應(yīng)用是平臺無關(guān)性的,當(dāng)然不會用平臺相關(guān)的make腳本來完成這些批處理任務(wù)了,Ant本身就是這樣一個流程腳本引擎,用于自動化調(diào)用程序完成項目的編譯,打包,測試等。除了基于JAVA是平臺無關(guān)的外,腳本的格式是基于XML的,比make腳本來說還要好維護(hù)一些。    9. Axis:    Axis是一個SOAP引擎,提供創(chuàng)建服務(wù)器端、客戶端和網(wǎng)關(guān)SOAP操作的基本框架。SOAP是被廣泛作為新一代跨平臺、跨語言分布計算Web Services的重要部分。    商城

32、平臺使用Axis提供WebService支持,廣泛應(yīng)用于通用數(shù)據(jù)接口,對外系統(tǒng)提供服務(wù)等功能。    如:     1) 商品查詢服務(wù):提供接口讓外接系統(tǒng)可以查到平臺中的商品信息。     2) 新聞發(fā)布服務(wù):提供接口讓外接系統(tǒng)可以取到各類新聞。     3) 訂單服務(wù):提供接口讓外接系統(tǒng)可以在平臺中生成訂單,并獲取各種訂單信息。    注:上述服務(wù)都有嚴(yán)格的權(quán)限控制。    10. J

33、avaMail:    JavaMail是Sun發(fā)布的用來處理email的API。它可以方便地執(zhí)行一些常用的郵件傳輸。    我們使用JavaMail實現(xiàn)了平臺中郵件發(fā)送、群發(fā)等相關(guān)功能,供業(yè)務(wù)系統(tǒng)使用。      11. JSTL:    JSP 標(biāo)準(zhǔn)標(biāo)記庫(JSP Standard Tag Library,JSTL)是一個實現(xiàn) Web 應(yīng)用程序中常見的通用功能的定制標(biāo)記庫集,這些功能包括迭代和條件判斷、數(shù)據(jù)管理格式化、XML 操作以及數(shù)據(jù)庫訪問。

34、60;   我們使用JSTL封裝各種業(yè)務(wù)邏輯。       12. JUnit:    JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing framework)。Junit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟件如何(How)完成功能和完成什么樣(What)的功能。    我們主要用JUnit來進(jìn)行單元測試。基礎(chǔ)服務(wù)層 基礎(chǔ)服務(wù)層構(gòu)建于J2EE平臺之上,借助于中間

35、件的接口服務(wù),提供電子商務(wù)平臺系統(tǒng)所需要的通用服務(wù)接口組件。系統(tǒng)將提供以下主要的服務(wù)接口支撐不同業(yè)務(wù)需求的實現(xiàn)。    欄目管理模塊:    欄目是一個抽象資源對象,是一種特殊的內(nèi)容類型。欄目可以表示產(chǎn)品、新聞信息類別、資源節(jié)點(diǎn)、導(dǎo)航欄的項、菜單中的項等等。欄目是一種組織管理型的資源。    系統(tǒng)設(shè)計上支持多級子欄目,采用虛擬文件系統(tǒng)(Virtual File System)技術(shù)以支持直觀的樹型導(dǎo)航風(fēng)格,一個欄目節(jié)點(diǎn)相當(dāng)于一個虛擬的文件目錄。    對于大型電子商務(wù)系統(tǒng),欄目

36、的節(jié)點(diǎn)是個非常大的數(shù)字,這對系統(tǒng)欄目樹展示的速度和性能有極高要求??紤]到以上原因系統(tǒng)采取了欄目對象緩存策略,同時對于頁面節(jié)點(diǎn)的呈現(xiàn)通過動態(tài)JavaScript輸出的技術(shù),從而使系統(tǒng)能很好的支持上萬個欄目數(shù)據(jù)節(jié)點(diǎn)操作管理。能平滑、高效的展示樹型風(fēng)格的欄目結(jié)構(gòu)。     用戶權(quán)限管理模塊:    大型電子商務(wù)應(yīng)用系統(tǒng)有用戶多,模塊多,權(quán)限多的特點(diǎn),因此必須采用分組的用戶管理系統(tǒng),并設(shè)置一個具有最高權(quán)限的管理員,負(fù)責(zé)對整個系統(tǒng)用戶設(shè)置,為每個用戶角色、用戶指定不同的權(quán)限,依照不同的權(quán)限在系統(tǒng)中可以使用不同的功能。  &#

37、160; 系統(tǒng)設(shè)置了Administrator用戶組,并設(shè)置了root這個具有最高權(quán)限、不可刪除的用戶。您可以根據(jù)您的需要使用root這一個管理員用戶。管理員可以創(chuàng)建、編輯和刪除用戶組,您可以根據(jù)您的需要給每個用戶組合理的權(quán)限劃分,并給每個用戶組添加、編輯和刪除用戶。用戶登錄系統(tǒng)后,系統(tǒng)會根據(jù)該用戶的權(quán)限提供相應(yīng)的功能,并對用戶的每個操作檢查用戶的使用權(quán)限。    系統(tǒng)采用Window用戶權(quán)限的思想,將用戶、用戶組的權(quán)限通過各個欄目節(jié)點(diǎn)進(jìn)行綁定,在各個欄目節(jié)點(diǎn)上實現(xiàn)繼承與非繼承的設(shè)置管理,從而使管理員可以進(jìn)行靈活的配置。     屬性

38、管理模塊:    在現(xiàn)實情況中,不同的事物對象存在其特殊的信息描述;比如一個手機(jī),存在 “網(wǎng)絡(luò)類型GSM”、“外觀樣式翻蓋”等等;同時這些特殊的信息描述在同類別的數(shù)據(jù)對象下經(jīng)常存在共性;比如TCL和 聯(lián)想 生產(chǎn)的手機(jī),應(yīng)該都存在以上兩種屬性的描述。    針對以上的情況,系統(tǒng)進(jìn)行了一個數(shù)據(jù)抽象,定義了一套屬性管理組件,可以方便、有效的描述相關(guān)的需求情況,同時對于存在共性描述的對象采用繼承模式來描述,從而很好的表現(xiàn)一個事物對象的特征。    繼承性管理模塊:    繼承是面向?qū)?/p>

39、象接口特性之一??紤]到抽象事物的通用性,系統(tǒng)通過一個通用的對象繼承模型接口,對所有需要實現(xiàn)繼承的功能提供基礎(chǔ)的支持。從而提高系統(tǒng)的重用性和降低系統(tǒng)的偶合度。    日志服務(wù)管理模塊:    日志是一個成熟的電子商務(wù)應(yīng)用系統(tǒng)所必備的功能。日志可以用于數(shù)據(jù)統(tǒng)計,為系統(tǒng)其他功能提供初始數(shù)據(jù);用于查看一個對象的修改歷史記錄,用于方便追蹤對象的修改狀態(tài)和明確事務(wù)責(zé)任。    通過對系統(tǒng)各種操作數(shù)據(jù)的分析,根據(jù)各操作功能,系統(tǒng)將日志進(jìn)行類別的劃分:    1、系統(tǒng)日志:記錄系統(tǒng)各種操作的

40、信息數(shù)據(jù)。(比如:用戶某個時間登陸了系統(tǒng))    2、商品日志:記錄系統(tǒng)商品數(shù)據(jù)發(fā)生改變的信息。(比如:商品價格發(fā)生變化)    3、信息日志:記錄系統(tǒng)信息數(shù)據(jù)發(fā)生改變的信息。(比如:某管理員增加了一個新的促銷公告)    4、訂單日志:記錄系統(tǒng)訂單數(shù)據(jù)發(fā)生改變的信息。(比如:某個訂單已經(jīng)進(jìn)行了送貨處理)    系統(tǒng)通過抽象出一個Log日志接口,采用Abstract Factory 模式,通過不同的構(gòu)造參數(shù)來獲取不同分類的Log日志實現(xiàn)。系統(tǒng)將各中類別下的日志,又區(qū)分不同的操

41、作。日志組件將通過抽象和封裝后,給各功能模塊提供統(tǒng)一接口服務(wù),方便系統(tǒng)各模塊的日志功能的開發(fā)和維護(hù)。    緩存服務(wù)管理模塊:    頁面訪問的時候,生成動態(tài) Web 頁會耗用各種各樣的系統(tǒng)資源。當(dāng) Web 服務(wù)器收到頁面請求時,它通常必須從數(shù)據(jù)庫或其他存儲系統(tǒng)中實時的檢索所請求的信息。對這些資源的訪問通常需要通過有限的資源池(如數(shù)據(jù)庫連接、套接字或文件描述符)進(jìn)行。因為 Web 服務(wù)器通常需要處理很多并發(fā)請求,所以對這些共享資源的爭奪可能會延遲頁面請求,直到資源變?yōu)榭捎?。在將請求發(fā)送后,仍然必須將結(jié)果轉(zhuǎn)換為 HTML 代碼以便進(jìn)行顯

42、示。    使系統(tǒng)速度更快的一種顯而易見的方法是購買更多、配置更好的硬件。此方法可能很吸引人,因為硬件便宜,而且不必更改程序,但更多的硬件只能在未達(dá)到其物理限制之前才會對性能有所幫助。系統(tǒng)中實施緩存管理,是一個有效的解決方案。    系統(tǒng)中存在兩中緩存對象:    1、 Java對象緩存:對于一些經(jīng)常被使用的Java對象保存于規(guī)定的內(nèi)存空間,通過配置的更新規(guī)則,同步更新數(shù)據(jù)庫內(nèi)容。    2、 前臺頁面緩存:對于前臺的html頁面按不同的塊來區(qū)分,然后通過一個key對象,通過

43、開源JCS技術(shù)存儲于內(nèi)存或磁盤空間。        (請求中的頁面對象不在緩存對象中)         (請求中的頁面對象存在于緩存對象中)    從上邊兩幅圖可以很清晰的看到,對于并發(fā)訪問的頁面請求,通過頁面的緩存可以極大的減少對緊缺資源(數(shù)據(jù)庫連接)的調(diào)用,減少訪問響應(yīng)的時間,從而提高系統(tǒng)的訪問速度和整體性能。       2 上傳文件的共享  

44、;  我們采用共性文件形式的文件共享,主要使用磁盤陣列技術(shù),簡稱RAID(Redundant Arrays of Inexpensive Disks)。磁盤陣列是由一個硬盤控制器來控制多個硬盤的相互連接,使多個硬盤的讀寫同步,減少錯誤,增加效率和可靠度的技術(shù)。    磁盤陣列有以下優(yōu)點(diǎn):    1)傳輸速率快;    2)儲存容量可提升;    3)提升I/O每秒的數(shù)量;    4)增加數(shù)據(jù)安全性及穩(wěn)定性;  

45、60; 5)大量數(shù)據(jù)快速及簡易管理;    6)增加可用運(yùn)時間,減少維護(hù);    7)通過磁盤陣列,可以將不同服務(wù)器上傳的文件統(tǒng)一管理。         如圖所示:各臺服務(wù)器共享磁盤陣列,這樣所有的上傳的文檔都放到磁盤陣列之中。       3. 高可用性    我們建議采用負(fù)載平衡器,負(fù)載均衡器可以根據(jù)實際的響應(yīng)時間制定優(yōu)先級交付決策,從而實現(xiàn)高性能、智能化流量管理

46、,達(dá)到最佳的服務(wù)器群性能。采用第七層應(yīng)用控制還可以減少通信高峰期的錯誤訊息,因為差錯控制和流量管理技術(shù)可以偵測到一些錯誤信息,并透明地將會話重定向到另一個服務(wù)器,使用戶順利地進(jìn)行使用。例如,服務(wù)器A不可用或者數(shù)據(jù)庫出現(xiàn)錯誤,錯誤信息將會返回到負(fù)載均衡器上,然后會將客戶的訪問指向服務(wù)器B或者將消息重放到其他數(shù)據(jù)庫中去,整個過程對用戶是透明的。    將內(nèi)部的多個私有的服務(wù)器,對外映射成一個相同的IP。而且當(dāng)其中某臺服務(wù)器Down掉的時候,負(fù)載均衡器將不會將這個服務(wù)器映射出去。       

47、0; 6. 數(shù)據(jù)庫集群    如果數(shù)據(jù)庫是用Oracle的話,數(shù)據(jù)庫集群可以采用Oracle RAC?;赗AC的電子商務(wù)應(yīng)用的用戶或者中間層應(yīng)用服務(wù)器客戶,可以通過虛擬數(shù)據(jù)庫服務(wù)名連接到數(shù)據(jù)庫上。Oracle在集群中多個節(jié)點(diǎn)之間自動平衡用戶負(fù)載。不同節(jié)點(diǎn)上的Real Application Clusters數(shù)據(jù)庫實例預(yù)訂所有數(shù)據(jù)庫服務(wù)或者部分子集數(shù)據(jù)庫服務(wù)。這使得DBA高度靈活地選定,連接到特定數(shù)據(jù)庫服務(wù)的特定應(yīng)用程序客戶是否可以連接到某些或者全部的數(shù)據(jù)庫節(jié)點(diǎn)。RAC在工作期間,每個節(jié)點(diǎn)可以單獨(dú)的被使用并且被應(yīng)用程序負(fù)載均衡。如果發(fā)生意外,如一個節(jié)點(diǎn)的失敗,可以

48、實現(xiàn)節(jié)點(diǎn)的失敗切換,保證數(shù)據(jù)庫24*7的高可用性。    雖然每一個節(jié)點(diǎn)有一個不同的物理IP地址時,應(yīng)用客戶仍可以在一個邏輯數(shù)據(jù)庫服務(wù)名的水平上進(jìn)行連接。因此客戶端對于不相關(guān)的事情如多服務(wù)器的多個地址可以毫不關(guān)心。    任務(wù)調(diào)度模塊:    對于電子大型的成熟的電子商務(wù)平臺系統(tǒng),每天都有很多特定的數(shù)據(jù)需要進(jìn)行分析或處理(比如:每天都有大量的郵件需要發(fā)送)。對于大數(shù)據(jù)量、高數(shù)據(jù)運(yùn)算的處理功能,往往不希望在系統(tǒng)繁忙的時間進(jìn)行處理。    針對這種狀況,系統(tǒng)采用Spring定時器提供的基礎(chǔ)服務(wù),通過Spring定

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論