近年來,電子商務借助于互聯網有了迅猛的發展,從事電子商務的企業都投入了大筆資金進行網站建設。但是大多數網站在建設時,只注重當前的業務規模,缺乏可伸縮性,從而給今后的發展帶來一定程度的不良影響。本文分析了影響電子商務網站可伸縮性的主要因素,并給出了切實可行的解決策略。
可伸縮性的影響因素
電子商務網站的建設是一項系統工程,必須進行充分的需求分析和深入細致的設計規劃,其中整個網站的可伸縮性是建設的一個重要內容。只有保持可伸縮性,才能保護企業的現有投資,才能適應企業將來的發展。為了保持整個網站的可伸縮性,通常采用上擴和外擴兩種方法。
1、上擴
上擴是使用性能更好、速度更快和成本更高的硬件實現可伸縮性的常用術語。上擴包括添加更多內存、添加更多或更快的處理器,或者只是將應用程序遷移到功能更強大的單個計算機。通常,該方法能夠在不改變源代碼的情況下增加容量。
2、外擴
外擴利用了使用商用 PC 硬件在多個服務器中分配處理負載的優點。盡管外擴的實現需要使用多臺計算機,但計算機集合本質上是作為單個計算機運行的。通過使若干臺計算機專門執行常見的任務,增加了應用程序容錯。當然,從管理員的角度看,外擴使計算機的數目增多,從而提出了更大的管理挑戰。
設計采用三層體系結構
根據一些權威的統計,如果要想在電子商務時代繼續保持企業的競爭力,必須有以下三點最基本的要求:首先是要以最短路徑將產品或者服務送到消費者手中,也就是直銷模式;第二、以最低的成本滿足用戶對產品和服務的需求,給用戶提供最便宜的產品;第三、以最快的方式獲取所需的資源或者信息,企業必須迅速得到各種必需的信息,這包括自身的信息和競爭對手以及市場的信息。這三點要求體現了電子商務的核心理念,也就是要以最小的代價得到最大的回報——利潤。
在傳統的Client/Server結構中,前端客戶機上會有多種多樣的應用,后端服務器除了有數據庫和數據支持系統以外,還需要有一些與前端對應的應用支持系統。解決這個問題的辦法就是采用三層體系結構。三層結構就是把二層的事務處理邏輯模塊從客戶機的任務中分離出來,由單獨組成的一層來負擔其任務,這樣客戶機的壓力大大減輕了,把負荷均衡地分配給了Web服務器,三層的Browser/Server結構靈活性強、界面友好、適用范圍廣、易于維護。
整個網站的計算模式轉化為三層結構后,整個系統能力已經有很大的提高,同時仍然可以隨著用戶需求的發展變化采用更新的技術,這樣就有力地保證了整個系統的可伸縮性。
針對可伸縮性進行代碼優化
一些人錯誤地認為,通過增加更多的CPU\\磁盤系統\\硬件\\并行結構以及其他的先進技術,可以滿足任何可伸縮性方面的要求。然而事實是,僅僅增加這些是不夠的,應當針對一些關鍵代碼進行優化,以獲得可伸縮性的極大提高。
1、調整查詢語句
例如,下面的語句可用來打印每天的發票:

假設上述查詢語句最初需要用10秒的時間完成,則當公司轉入電子商務后,預計客戶數量增至三倍,同時定單也成比例增長,那么查詢時間將不會是線形增長為以前的三倍(30秒)。通過仔細檢查,發現主要原因如下:
⑴ORDER BY意味著有一個排序過程,通常排序的開銷比被排序的行數增長得更快;
⑵對于表的搜索使用非唯一索引;
⑶在嵌套循環中對各個定單的掃描需要使用客戶信息。
所有這些因素造成的結果是在實際使用時,同樣的查詢將用去比預期更多的時間。為了更好地利用電子商務,充分發揮電子商務網站的優越性,就有必要重新查看那些訪問數據庫的查詢語句。
2、手工強制執行垃圾收集
Java技術由于其安全性和可伸縮性,在電子商務網站的建設過程中,得到了廣泛應用。垃圾收集器在Java中是自動被調用的,但是如果內存有約束,則會極大地影響其可伸縮性,因為即使在編寫程序時僅僅漏掉了一個對象引用,則就無法保證屆時會運行垃圾收集,進而影響整個系統的可伸縮性。通過創建一個運行期對象,并為該對象調用gc()方法,可以強制執行垃圾收集,具體代碼如下:
/*本程序顯示了如何進行強制垃圾收集*/

對設計過程中選用的產品進行優化選擇
隨著企業電子商務應用的深入發展,企業對電子商務基礎設施軟件的要求越來越高,這些要求體現在高可伸縮性、高可靠性和高性能等方面。然而,今天的企業用戶在部署電子商務基礎設施時面臨著諸多挑戰。無數的例子都在告訴人們:集成性、簡單性、可伸縮性是企業能夠不斷提高信息技術應用水平、優化IT技術投資回報的重要基礎。簡單部署、迅速啟動、容易擴展、充分利用現有的IT投資、以較低的投入實現主機系統的高性能是廣大企業的理想。在電子商務網站的建設過程中,需要選用比較先進的產品。
Oracle9i是Oracle公司新一代電子商務基礎架構,利用此平臺,企業用戶在不斷擴展系統的過程中,不再需要考慮昂貴的軟件集成和維護費用。它真正應用集群技術,首次把集群技術擴展到了應用層面和各種低端硬件設施,從而帶來了最經濟的計算模式——集群計算模式,讓低端硬件用戶也能夠享用集群技術實現過去只有大型主機系統才擁有的高性能和高可靠性。最重要的是,用戶可以隨時根據應用需要,擴展系統。
與基于主機的計算體系和基于客戶機/服務器的計算體系相比,集群計算模式具有更加領先的優勢。我們知道,主機的計算體系雖然具有良好的系統可伸縮性、可靠性和高性能,但它昂貴的價格迫使用戶在系統建設之初就在硬件系統上投入巨大資源,而用戶花費巨額資金購買的主機系統也許包含了不少并不需要的功能,造成資源浪費。基于客戶機/服務器的計算體系雖然允許用戶根據實際需要逐步增加硬件系統,但這種體系的系統在應用升級和管理方面都需要用戶付出巨大的代價。在集群計算模式下,用戶能夠使用運行新一代電子商務基礎架構真正應用集群技術的低成本數據庫服務器,把運行了該架構真正應用集群系統的普通硬件系統組成集群,再根據需要隨時在集群系統中增加新的硬件,提高系統的伸縮性和可用性,從而能夠在價格相對低廉的中低端平臺上享用過去只有高端系統才具備的高可伸縮性和高可用性,既提高了系統的性能,同時也降低了成本。
通過新一代電子商務基礎架構,Oracle為用戶能夠以更低的成本、更高的效率開展電子商務提供了完整的技術體系,讓用戶真正能夠以較少的資源投入,輕松實現前所未有的高效益。
結束語
電子商務網站的建設是一項長期的工程,我們必須考慮到企業的發展目標、企業現有的資源、企業主要的潛在客戶等內容。為了充分發揮網站的效用,必須注重其可伸縮性能力。當然,可伸縮性能力也不能被孤立地看待,需要從多個方面進行綜合考慮。只有這樣,才能真正提升企業的核心競爭力。
作者單位:重慶工商大學管理學院