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