在線書籍銷售零售商Barnes & Noble提供大量的書目存貨,從而使自己的業務具有強大的客戶服務基礎。這意味著公司擁有可以獲得的書籍,并且可以準時交付。當銷售旺季到來時,在線銷售額的巨大增長促使公司考慮支持自己的執行和配送系統的方法,以確保它能跟上業務增長的速度。
負責網站運營的官員一直認為:“只是擁有一個好的網站是不夠的,你必須擁有執行和配送的后端服務,并且這些服務能夠按比例增加以滿足動態的、以指數增長的需求。”
為了為這些執行關鍵任務的應用程序提供一個可伸縮的基礎,Barnes & Noble決定及時地將自己的后端系統遷移到相應的Windows 操作系統,從而為季日銷售做好準備。
結果能說明一切。銷售額增長了,公司的客戶量也增長了,其重復購買率更高達66%。Barnes & Noble利用了加入 SQL Server的機會使公司可以對配送和執行系統的后端數據庫進行必要的修改,以滿足不斷增長的需求。從廠商采購產品的后端購物引擎的性能提高了300%。
支持訂單的巨大增長
當前端的Web服務器需要能每天處理數百萬次點擊時,后端的服務器負責確保訂單在承諾的時間內完成。Barnes & Noble之前基于Windows NT® Server的環境對于處理前端已經足夠了,但客戶需求將會持續大幅增長,公司認識到需要一個可以動態伸縮的后端服務器基礎設施,以應對變化不定的負荷。公司堅持更新系統。
后一種方案以獲得:
COM+工具,以簡化開發以及與其他系統的集成。
巨大的可伸縮性和靈活性。
集成的Microsoft Message Queue Service (MSMQ)和Microsoft COM+ Transaction Services,以獲得更快的性能。
“系統是一個高度依賴于消息的系統,因此對基于Windows的服務,如COM+MSMQ和群集的所有改進,將我們引到了Windows 2000 Advanced Server,”Barnes & Noble首席信息官John Peterson說。在2000年盛夏,公司將執行和配送系統遷移到了Microsoft SQL Server 2000—第一個微軟.NET企業服務器—以幫助處理所預計的2000年休假旺季需求巨大增長。
Barnes & Noble的執行和配送系統充分利用了n層分布式應用程序體系結構。將邏輯在通過COM模型共享服務和通信的表示層、商務邏輯層和數據層間分離,幫助公司極大的縮短了上市的時間。
表示層向客戶提供服務應用程序,這些應用程序由主機在瀏覽器中與中間層對話的ASP頁面組成。同時它提供利用Visual Basic® for Applications創建,并與Microsoft Internet Information Services 5.0 (IIS)集成的、自定義的動態HTML用戶界面。
商務邏輯層中的COM+組件執行各種功能,如準備訂單、核準信用卡、為供應商購貨,以及與運輸產品的自動化的車間機械通信。MSMQ對這些步驟中的每一步進行處理。每個組件從入站隊列接收指令,完成處理任務,然后將消息發給下一個組件的隊列。訂單可以被分配給多個訂單處理程序和其他計算機上運行的組件,從而提高了真正不受限制的可伸縮性。
COM+和MSMQ自動處理多步交易的能力,不僅節約了時間和勞動力,而且極大提高了Barnes & Noble訂單處理能力。例如,公司自定義開發的倉庫管理系統自動對進入的訂單流進行控制,向車間工作人員提供打印的發貨單以進行產品挑選和包裝,然后與車間設備通信打印運輸標簽。
商務邏輯最獨特的一部分是智能購物和運輸組件。它是由Barnes & Noble使用Microsoft Visual Studio® 開發系統開發的。這個組件使得系統能夠自動為訂購的項目選擇配送中心,并確定從該位置發送貨物的最容易、最迅速,并且最經濟合算的方法。
當一份訂單包括從不同位置裝配的項目時,智能購物和運輸系統確定處理這種情況的最佳方式。“如果我們有一本來自Barnes & Noble配送中心的書籍和來自另一個位置的音樂制品,系統將計算出繼續進行處理的最佳方法,”Peterson說。“我們是否單獨發送?我們是否要在某個位置將所有項目合并到一起?系統自動確定最佳方案,以滿足所承諾的遞送日期和客戶的期望水平。”
所有來自前端Web服務器的訂單信息都進入一個運行在Microsoft SQL Server 7.0上的Shop DB數據庫中。這個數據庫被復制到后端的一個鏡像數據庫中。數據層包括基于 SQL Server 2000上的主OLTP(online transaction processing)數據庫和一個用于生成報表的數據倉庫。
這個分布式的數據庫系統以輪軸-輻條式設計為基礎。“輪軸”包括來自Shop DB數據庫的所有訂單和中央客戶服務系統(Customer Service System)。而“輻條”指向每個銷售商站點的分布式交易數據庫。
位于后端的復制的Shop DB數據庫的訂單數據,通過使用SQL Server復制和MSMQ被傳遞給一個位于中心的SQL Server 2000數據庫。然后,根據內容,使用MSMQ訂單被自動發送給外部網中適當的銷售商數據庫。訂單被從適當的銷售商站點中拉出,而結果被發送回中心系統。
系統使用一個自定義開發的MSMQ應用程序,從 SQL Server 2000數據庫析取數據,然后將數據拉到SAP R/3系統中。同時從 SQL Server數據庫中提取數據,并將它們導入到數據倉庫中,然后在數據倉庫中使用自定義開發的應用程序對數據進行分析。