摘要:隨著互聯(lián)網(wǎng)的普及,許多中小型企業(yè)開始建立電子商務站點。在線交易有許多明顯的優(yōu)勢。因此,我們分析先進的電子商務網(wǎng)站業(yè)務模型,采用流行的網(wǎng)絡設計語言和先進的平臺架構體系,對當今企業(yè)級的電子商務平臺模型進行探討。
關鍵詞:電子商務;N層系統(tǒng)結構;.NET
Enterprise Electronic Commerce Model in .NET
Abstract:With the popularization of Internet, electronic commerce is no longer a strange topic. It is benefic for many enterprises to make use of EC. As to this, we analyze the advanced business model of EC website and adopt latest network technology and advanced platform to build up a system. As a result we do some discussions on the EC platform model of enterprise layer.
Key Words:Electronic Commerce;N tier;.
前言
開發(fā)一個具有實用價值的企業(yè)級應用軟件,需要的不僅是高水平的編程技藝和開發(fā)技巧,更重要的是整個應用軟件應符合企業(yè)級標準,既要考慮到企業(yè)當前的需求及規(guī)模,也要考慮到企業(yè)今后的發(fā)展。所以一個企業(yè)級的應用程序應具有健壯性、穩(wěn)定性、可維護性和可擴展性等特點。為了方便對整個企業(yè)級電子商務平臺的設計理念的探討,我們采用.NET技術做了一個電子商務平臺模型,取名為SunBook。SunBook圍繞虛擬網(wǎng)上書店建立,其模型是典型的網(wǎng)上購物中最為普遍的B2C模式,包括瀏覽、搜索、購物車、客戶管理、帳戶管理和結賬等基本功能。
SunBook的四層架構體系
一、N層架構概述
N層應用程序使開發(fā)有更大的靈活性和可擴展性,已經(jīng)成為構建企業(yè)級軟件的標準。N層應用程序就是被分成多個獨立的邏輯部分的應用程序,每層有其特定的功能。層次系統(tǒng)要求上層子系統(tǒng)可以使用下層子系統(tǒng)的功能,而下層子系統(tǒng)不能夠使用上層子系統(tǒng)的功能。上層調(diào)用下層,從而完成多個復雜的業(yè)務功能。
二、SunBook架構分析
SunBook采用四層體系結構,即表現(xiàn)層(Web層)、業(yè)務外觀層、業(yè)務規(guī)則層和數(shù)據(jù)訪問層。
1.表現(xiàn)層(Web層)
該層為客戶端提供對應用程序的訪問,由 ASP.NET Web 窗體和代碼隱藏文件組成。Web 窗體只是用 HTML 提供用戶操作,而代碼隱藏文件實現(xiàn)瀏覽器端各種控件的事件處理。
2.業(yè)務外觀層
該層為表現(xiàn)層提供處理帳戶、類別瀏覽和購書的界面。
3.業(yè)務規(guī)則層
包含各種業(yè)務規(guī)則和邏輯的實現(xiàn)。
4.數(shù)據(jù)訪問層
數(shù)據(jù)訪問層為業(yè)務規(guī)則層提供數(shù)據(jù)服務。
另外,還包含兩個輔助層,一個是系統(tǒng)框架層,它主要解決應用程序配置、異常處理、日志記錄等問題。另一個是業(yè)務實體層(通用層),業(yè)務實體層解決了業(yè)務數(shù)據(jù)表現(xiàn)形式的問題。我們將在下文詳細介紹業(yè)務實體層,數(shù)據(jù)訪問層,業(yè)務外觀層和業(yè)務規(guī)則層。
系統(tǒng)各層的邏輯關系參看系統(tǒng)的邏輯模型圖。
說明:
1.箭頭表示為“…使用…”。例如:“數(shù)據(jù)訪問”子系統(tǒng)正在使用“系統(tǒng)框架”子系統(tǒng)。
2.瀏覽器首先調(diào)用的是表現(xiàn)層,然后該層將請求發(fā)送給業(yè)務外觀層,業(yè)務外觀層對請求進行初步的處理,判斷是否需要調(diào)用業(yè)務規(guī)則層,還是直接調(diào)用數(shù)據(jù)訪問層獲取數(shù)據(jù)。最后由數(shù)據(jù)訪問層訪問數(shù)據(jù)庫并按照來時的步驟返回結果到瀏覽器。
針對電子商務平臺而言,普遍的分布式三層體系結構還不夠完美,特別是在業(yè)務處理的各種功能實現(xiàn)方面會顯得非常混亂。SunBook的四層體系結構能很好地解決這個問題。對此部分的進一步分析見“SunBook的業(yè)務外觀與規(guī)則”部分。軟件分層使得程序有良好的透明和封裝、高內(nèi)聚低藕荷、易于擴展、維護和重用,開發(fā)人員易于分工、提高開發(fā)效率,特別在架構方面定義清晰嚴謹,值得進行深入的學習和探討。
SunBook的業(yè)務實體
根據(jù)需求分析SunBook應該實現(xiàn)八大功能:獲取書籍類別數(shù)據(jù);獲取某類書籍數(shù)據(jù);獲取某本書籍詳細數(shù)據(jù);客戶數(shù)據(jù)操作,例如創(chuàng)建、檢索、更新客戶數(shù)據(jù)項;獲取客戶信息;獲取付款相關數(shù)據(jù),例如信用卡號碼等;獲取定單摘要;獲取定單詳細信息。根據(jù)以上功能要求以及需求,按照“高內(nèi)聚、低耦合”的原則可以明確應用程序需要處理四個邏輯業(yè)務實體:客戶實體、定單實體、書籍類別實體和書籍實體。我們采用類型化的DataSet來表示這些業(yè)務實體。
數(shù)據(jù)是用于表示現(xiàn)實世界中諸如產(chǎn)品和定單這樣的業(yè)務實體的。業(yè)務實體層解決了業(yè)務數(shù)據(jù)表現(xiàn)形式的問題。其核心是創(chuàng)建業(yè)務實體組建。其結果就是要將系統(tǒng)處理的數(shù)據(jù)進行有效規(guī)劃和組織,建立包含用于各層間傳遞信息的數(shù)據(jù)集。
SunBook的數(shù)據(jù)訪問
我們采用ADO.NET實現(xiàn)SunBook的數(shù)據(jù)訪問。ADO.NET是.NET技術中有關數(shù)據(jù)訪問的解決方案。
經(jīng)過需求分析,SunBook中的數(shù)據(jù)訪問有以下四點策略:
1.數(shù)據(jù)訪問層對所有數(shù)據(jù)處理使用存儲過程,使應用程序的數(shù)據(jù)訪問層對數(shù)據(jù)庫邏輯的更改更具靈活性。
2.數(shù)據(jù)訪問類是無狀態(tài)的,即它們不在實例數(shù)據(jù)成員內(nèi)保持狀態(tài)??蛻舳藢⑻囟ú僮魉璧乃袛?shù)據(jù)傳遞給方法。而方法將所有結果數(shù)據(jù)傳遞回客戶端,然后立即釋放每個數(shù)據(jù)訪問對象,簡化了資源管理。
3.數(shù)據(jù)訪問層盡可能推遲數(shù)據(jù)庫資源分配并且盡可能快地釋放數(shù)據(jù)庫資源,將數(shù)據(jù)庫資源保留最短的時間。
4.SQL連接配置。在Web.Config文件存儲應用程序的數(shù)據(jù)庫連接字符串。通過其他文件的函數(shù)調(diào)用來讀取SQL連接字符串。這樣的策略方便更改SQL連接字符串而不用重新啟動IIS。
分層結構確定了每層的功能。層與層之間通過一定的機制連接和通信。業(yè)務外觀層和業(yè)務規(guī)則層通過數(shù)據(jù)訪問層訪問數(shù)據(jù)庫中的數(shù)據(jù)。數(shù)據(jù)訪問層通過業(yè)務實體層確定待處理的業(yè)務實體。數(shù)據(jù)訪問層與業(yè)務實體層是通過類型化的DataSet來通信的。
SunBook的業(yè)務外觀與規(guī)則
業(yè)務外觀層為表現(xiàn)層提供處理帳戶、類別瀏覽和購書的界面。業(yè)務規(guī)則層的功能是完成各種業(yè)務規(guī)則和邏輯的實現(xiàn),主要完成如客戶帳戶、書籍定單的驗證、定單稅費計算等任務。
當表示層向服務器發(fā)出與數(shù)據(jù)庫交互的請求時,幾乎所有的調(diào)用都要通過業(yè)務外觀層,然后才層層傳遞,一直到數(shù)據(jù)調(diào)用層完成與數(shù)據(jù)庫的交互任務。這個過程分兩種情況,一種情況是當這種請求涉及到了系統(tǒng)業(yè)務規(guī)則,例如稅費計算、驗證等問題,那么業(yè)務外觀層就調(diào)用業(yè)務規(guī)則層進行處理,之后再通過業(yè)務規(guī)則層調(diào)用數(shù)據(jù)訪問層與數(shù)據(jù)庫交互。第二種情況是當這種請求并沒有涉及到業(yè)務規(guī)則,只是簡單的數(shù)據(jù)只讀訪問,例如檢索每日推薦書目、檢索某類別書籍的相關信息等問題,那么業(yè)務外觀層可直接調(diào)用數(shù)據(jù)訪問層,再通過數(shù)據(jù)訪問層完成與數(shù)據(jù)庫的交互。
我們從開發(fā)企業(yè)級應用程序的角度分析,把業(yè)務層分成業(yè)務外觀層和業(yè)務規(guī)則層有很大的好處。在設計一個企業(yè)級應用程序過程中,我們需要考慮系統(tǒng)需求發(fā)生改變了怎么辦,如何保證系統(tǒng)穩(wěn)定可靠,如何能夠快速地找到要尋找的代碼,而不迷失在數(shù)以萬計的代碼中,如何才能使開發(fā)人員同時開工,加快系統(tǒng)開發(fā)進度,以上問題是系統(tǒng)設計人員需要考慮的事情。 在應用程序中,有些只是簡單的操作,不需要經(jīng)過處理,直接將數(shù)據(jù)顯示到網(wǎng)頁上。而有些是涉及到業(yè)務規(guī)則的復雜操作,這部分往往有許多不同的功能的類,操作起來也比較復雜。采用三層設計,是不能達到企業(yè)級應用程序需要的可擴展性、可維護性、穩(wěn)定性、健壯性等要求的。業(yè)務外觀層和業(yè)務規(guī)則層的創(chuàng)建,梳理了系統(tǒng)代碼,使得系統(tǒng)流程井井有條,秩序井然。
總結
電子商務站點正蓬勃興起,未來企業(yè)級的電子商務會更注重網(wǎng)頁的響應速度、客戶數(shù)據(jù)的安全性、系統(tǒng)運行的穩(wěn)定性、系統(tǒng)運行成本,使用.NET技術是技術員建立企業(yè)級電子商務平臺的一大法寶。
參考文獻
【1】康博,譯.VB.NET入門經(jīng)典.清華大學出版社.
【2】康博,譯.VB.NET和SQL Server 2000 高級編程.清華大學出版社.
【3】楊浩,譯.ASP.NET電子商務入門經(jīng)典.清華大學出版社.
【4】李英軍,等,譯.設計模式.機械工業(yè)出版社.
【5】聯(lián)機幫助文獻:如T-SQL語言等.