【正文】
檢索所有商品類別信息。在這個服務(wù)中,需要驗證客戶的信用卡并收取費用?,F(xiàn)實貿(mào)易交易中,企業(yè)可能是作為其他公司的承包商提供這個呼叫中心支持的,而這些公司經(jīng)常有它們自己的異構(gòu)的內(nèi)部系統(tǒng)??蛻艨梢詾g覽商務(wù)公司提供的產(chǎn)品目錄,把將要購買產(chǎn)品放到購物車中。 基于 Web 服務(wù)的企業(yè)級電子商務(wù)的研究與實現(xiàn) 20 第三章 基于 Web服務(wù)的電子商務(wù) 系統(tǒng) 需求分析與設(shè)計 電子商務(wù)的基本架構(gòu)為展示 Web 服務(wù)的承諾和競爭能力提供了一個極好的現(xiàn)實的示例。一般而言,絕大多數(shù)規(guī)范將最終有 W3C 或OASIS 作為最終版本的發(fā)布方和維護方。 將各個相對獨立的 Web Service 整合到一個系統(tǒng)中,需要構(gòu)建核心應(yīng)用程序。開發(fā)人員可通過調(diào)用 Web 應(yīng)用程序接口 (API),將 Web 服務(wù)集成到電子商務(wù)應(yīng)用程序中,和調(diào)用本地服務(wù)有所不同的是, Web API 調(diào)用可通過互聯(lián)網(wǎng)發(fā)送給位于遠程系統(tǒng)中的某一服務(wù)。因為在構(gòu)建這些電子商務(wù)應(yīng)用的時候,程序員們一般都采用“獨立解決方案’來實施。網(wǎng)絡(luò)是 Web 服務(wù)的基礎(chǔ), XML 是 SOAP 消息協(xié)議的基礎(chǔ), SOAP消息支持 Web 服務(wù)結(jié)構(gòu)中的發(fā)布、發(fā)現(xiàn)和綁定操作。如果不知道服務(wù)的地址或者它的接口,那么需要通過查詢一個 Web 服務(wù)注冊中心來搜索服務(wù)。 UDDI 商業(yè)注冊表提供的信息包含三個部分 : 白頁( White Page,通過名字組織企業(yè)) —— 白頁列出關(guān)于 Web 服務(wù)的常用信息,例如, Web 服務(wù)的 URL,公司名稱,地址極其他信息。提供企業(yè)標識分類與行業(yè)分類信息 ,并且提供企業(yè)的地址、聯(lián)系方式等信息 ,以快速準確地了解商業(yè)實體。 基于 Web 服務(wù)的企業(yè)級電子商務(wù)的研究與實現(xiàn) 12 2. 3. 4 Web 服務(wù)的發(fā)現(xiàn) 2. 2. 4. 1 UDDI 概述 UDDI 統(tǒng)一描述、發(fā)現(xiàn)和集成( Universal Description, Discovery, and Integration)一套基于 Web 的、分 布式的、為 Web Service 提供的、信息注冊中心的實現(xiàn)標準規(guī)范,同時 也使 注冊企業(yè) 提供的服務(wù)被發(fā)現(xiàn)和訪問 的實現(xiàn)標準 協(xié)議 。 (4)SOAP傳輸綁定框架定義了一個抽象框架用來使終端用戶能 通過下層協(xié)議交換 SOAP 封裝消息。這是 CORBA、 JavaRMI 及 DCOM 這些以專屬二進制格式傳送數(shù)據(jù)所不及的。因此,各種不同的客戶端必須使用一種共通的溝通標準 ,才能夠順利地和各種不同技術(shù)開發(fā)的 Web 服務(wù)互通。要使用這些擴展,只需引用包含擴展名稱的命名空間并在 binding和 port元素中使用這些擴展。第二個組件是可選的 types 元素,定義了將在 WSDL 文檔中用到的特定數(shù)據(jù)類型。操作包括輸入和輸出消息。WSDL 文檔包含了模式信息,與模式對消息結(jié)構(gòu)定義有關(guān)的信息,以及關(guān)于 SOAP 和 HTTP GET/POST 標準的信息。有時候數(shù)據(jù)是為數(shù)據(jù)庫準備的,有些時候則是供人閱讀的。 2. 3 Web 服務(wù)的支持技術(shù) Web 服務(wù) 平臺需要一套協(xié)議來實現(xiàn)分布式應(yīng)用程序的創(chuàng)建。 Find 操作:使 Service requester 可以通過 Service registry 查找特定種類的服務(wù)。 簡而言之: Web服務(wù)就是用戶通過互聯(lián)網(wǎng)向服務(wù)器發(fā)送一條 XML消息,然后收到一條 XML 響應(yīng)消息。綜合以上研究論述 Web 服務(wù)的優(yōu)勢。今天,客戶、合作伙伴和員工在日常工作中不得不使用大量信息系 統(tǒng),因為這些系統(tǒng)在整個 IT 環(huán)境中都是獨立的孤島式應(yīng)用。 Web 服務(wù)的出現(xiàn),給軟件產(chǎn)業(yè)又一次帶來新的商業(yè)模式。但近幾年來 ,Inter 和 Web 的風(fēng)起云涌 ,帶起 B2C 和 B2B(企業(yè)級 )電子商務(wù)浪潮,促使 運算平臺朝網(wǎng)絡(luò)遷移 ,企業(yè)間互動的需求隨之大增 ,舊式的 ERP和 EAI解決方案已無法滿足網(wǎng)絡(luò)時代的新需求 .解決此問題的方案是采用 Web 服務(wù)技術(shù)。充分利用數(shù)以千計的現(xiàn)有信息系統(tǒng)中的現(xiàn)有功能,并將它們轉(zhuǎn)變成可以以全新組合方式重復(fù)使用的組件 [2],意味著新一代應(yīng)用的構(gòu)建成本明顯降低。在此基礎(chǔ)上,分析了傳統(tǒng)企業(yè)級電子商務(wù)體系結(jié)構(gòu)的局限性,提出了基于 Web 服務(wù)的企業(yè)級電子商務(wù)體系結(jié)構(gòu)。一旦部署以后,其他 Web服務(wù) 應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù) [3]。 Service Requester:利用 Service registry 查找所需的服務(wù),然后使用該服務(wù)在這些角色之間使用 了三種操作: Publish 操作:使 Service provider 可以向 Service registry 注冊自己的功能及訪問接口。開發(fā)者可以開發(fā)出平臺獨立、編程語言獨立的 Web 服務(wù),從而能夠充分 利用現(xiàn)有的軟硬件資源和人力資源。 XML 可用于各種不同的應(yīng)用程序,但其實質(zhì)是: XML 是一種表示數(shù)據(jù)的方式。 基于 Web 服務(wù)的企業(yè)級電子商務(wù)的研究與實現(xiàn) 6 2. 3. 2 Web 服務(wù)的描述 Web 服務(wù)相關(guān)的 WSDL 文檔描述 了 Web 服務(wù)可以執(zhí)行的所有操作。在 WSDL 中, 消息 通過交換的數(shù)據(jù)類型來描述客戶端和服務(wù)之間的通信。第一個聲明組件包括不同的命名空間( NameSpace)聲明,聲明為根元素的屬性。WSDL 擴展 WSDL 定義只有與具體的協(xié)議一起使用才能發(fā)揮更大的作用,一般使用 SOAP 和 HTTP GET/POST 這兩個協(xié)議。 2. 3. 3 Web 服務(wù)的通信協(xié)議 2. 3. 3. 1 Web 服務(wù)通信協(xié)議的優(yōu)勢 Web 服務(wù)必須建立在開放和標準的規(guī)格之上,允許不同的客戶端呼叫使用它提供的服務(wù)。透過 XML 來傳遞信息的優(yōu)點 ,就是對程序語言、操基于 Web 服務(wù)的企業(yè)級電子商務(wù)的研究與實現(xiàn) 10 作系統(tǒng)的獨立性。 (3)SOAP RPC 表示定義了一個用來表示遠程過程調(diào)用和應(yīng)答的協(xié)定。 如圖 24所示: 圖 24 SOAP 消息傳輸涉及三個主要角色 2. 3. 3. 3 HTTP 協(xié)議 HTTP 是一種應(yīng)用廣泛的應(yīng)用層網(wǎng)絡(luò)傳輸協(xié)議 ,將 SOAP 消息綁定到HTTP 協(xié)議 ,必須利用 HTTP 協(xié)議的請求 /應(yīng)答方式發(fā)送和接收 SOAP 消息 . HTTPGET 和 HTTPPOST 是兩個標準的基于 HTTP 協(xié)議的方法,請求題頭指定了客戶機要從服務(wù)器獲取的內(nèi)容 ,被請求的服務(wù)器相應(yīng)一個或多個響應(yīng)題頭。 businessEntity結(jié)構(gòu) (商業(yè)實體信息 )—— 處于所有結(jié)構(gòu)的頂層 ,用于保存業(yè)務(wù)信息。 圖 26 UDDI 核心結(jié)構(gòu)之間的關(guān)系 UDDI 技術(shù)的核心 是 UDDI 商業(yè)注冊表,它使用一個 XML 文檔來描述企業(yè)及其提供的 Web 服務(wù)。 圖 27 UDDI 數(shù)據(jù)的關(guān)系 2. 3. 4. 2 Web 上訪問 UDDI 在 Inter 上發(fā)現(xiàn)一個 Web 服務(wù)有兩種方式:直接鍵入 URL 和使用搜索引擎來定位滿足您提供的標準的站點。 如圖 28所示: 基于 Web 服務(wù)的企業(yè)級電子商務(wù)的研究與實現(xiàn) 15 圖 28查詢一個 UDDI 注冊節(jié)點 的體系結(jié)構(gòu) 2. 3. 5 Web 服務(wù)技術(shù)關(guān)聯(lián) 在 Web Service 的技術(shù)架構(gòu)中 (圖 29) , UDDI 作用于服務(wù)發(fā)布層和服務(wù)發(fā)現(xiàn)層。 普通的 企業(yè)級 電子商務(wù)系統(tǒng)雖然也具有快速、高效、低成本、高收益率等特點,但在實際運作過程中,電子商務(wù)的基本結(jié)構(gòu)、交互接口等均沒有統(tǒng)一的標準和解決方案,這種不具備良好集成能力的應(yīng)用開發(fā)模式使得系統(tǒng)本身會出現(xiàn)一些無法克服的缺陷。基于 Web 服務(wù) 的 B2B 電子商務(wù)系統(tǒng)正是運用最先進的 Web 服務(wù) 的技術(shù),將傳統(tǒng)電子商務(wù)系統(tǒng)各子模塊做成一個個獨立的 Web 構(gòu)件,封裝后以 Web 服務(wù) 的形式發(fā)布到網(wǎng)上。而 Web Service 形式的購物車模塊不僅僅是一個單獨的 Web Service,還可以整合許多發(fā)布在 Inter 范圍內(nèi)的 Web Service,如運費查詢、稅率計算乃至在線支付等等。這些標準協(xié)議具有完全免費的規(guī)基于 Web 服務(wù)的企業(yè)級電子商務(wù)的研究與實現(xiàn) 19 范,以便由任意方進行實現(xiàn)。并闡述了以上技術(shù)的相互聯(lián)系,在此基礎(chǔ)上,介紹了 Web 服務(wù)的體系結(jié)構(gòu),分析了傳統(tǒng)企業(yè)級電子商務(wù)體系結(jié)構(gòu)的局限性,提出了基于 Web 服務(wù)的企業(yè)級電子商務(wù)體 系結(jié)構(gòu),并闡述了 Web 服務(wù)的優(yōu)勢。 客戶使用 Inter 店面站點訂購產(chǎn)品。呼叫中心的人員可以通過 Inter 使用 Inter 店面,為客戶操作這個 Web 站點。 Order Processing 訂單服務(wù)將處理訂單。 基于 Web 服務(wù)的企業(yè)級電子商務(wù)的研究與實現(xiàn) 25 網(wǎng) 上 訂 購 系 統(tǒng) 客 戶 端程 序W e b O r d e r網(wǎng) 上 訂 購 系 統(tǒng) W e b 服 務(wù) 程 序W e b S e r v i c eW e b S e r v i c eO r d e rO r d e r D a t a 圖 35網(wǎng)上訂購系統(tǒng) 程序集圖 4 網(wǎng)上訂購系統(tǒng)按照服務(wù)劃分為四個主要服務(wù)模塊,每個服務(wù)模塊都提供了的服務(wù)的方法,如圖 37 所示: 圖 36 系統(tǒng)功能模塊圖 基于 Web 服務(wù)的企業(yè)級電子商務(wù)的研究與實現(xiàn) 26 網(wǎng)上訂閱 Web 服務(wù)分為四個服務(wù)模塊需要提供以下方法: 1.產(chǎn)品目錄( ProductCatalog)服務(wù)模塊提供下面五種方法: 訂閱者用不同的方式檢索產(chǎn)品和產(chǎn)品類別,需要能夠搜索數(shù)據(jù)庫。并使用私有方法 Exists()查看所傳遞的電子郵件地址是否已經(jīng)存在, True 返回錯誤消息。 ItermRemove()方法 刪除購物車中的產(chǎn)品。最后給出了網(wǎng)上訂購系統(tǒng)的基本架構(gòu)。 ? 可用性:典型地在一個群集服務(wù)器節(jié)點環(huán)境中,對于節(jié)點請求,一個服務(wù)器是主動的,另 — 個服務(wù)器是被動的。脆弱的 DCOM 甚至 要求在每個端點使用 MS Windows。 在網(wǎng)上訂購 Web服務(wù)的實際開發(fā)和應(yīng)用中,商務(wù)公 司可以將訂購系統(tǒng)作為 Web服務(wù)部署在 Inter上,使用該服務(wù)的訂購者可以根據(jù)自身對于訂購服務(wù)提供的服務(wù)的需求,動態(tài)地查找、發(fā)現(xiàn)和調(diào)用這些已發(fā)布的 Web服務(wù)。 ? 為各種不同的瀏覽器提供了更好的支持 。用戶可以使用 DataSet 對象對數(shù)據(jù)集中的數(shù)據(jù)進行處理。系統(tǒng)自帶了 .NET Framework SDK 版。 (2)從下拉列表框中選擇 MSDE 服務(wù)器??梢杂盟呀o定的產(chǎn)品歸于一個特定類別 SKU nvarchar 給定產(chǎn)品的庫存管理編號 ProductName nvarchar 產(chǎn)品的名稱 ImageURL nvarchar 產(chǎn)品圖像的名稱 和路徑 UnitCost noney 產(chǎn)品目前的成本 Description nvarchar 產(chǎn)品的說明 Customer Web 服務(wù)使用三個表:用 Customers 表存放客戶基本信息,用 CustomerAddress 表存放客戶地址,用 CustomerCreditCards 表存放信用卡的詳細情況。 表 48 OrderDetails 表字段詳細說明 列 名 數(shù) 據(jù) 類 型 說 明 OrderID int 提供該表的主鍵和唯一鍵 CustomerID int 提 供對 Customers 表的引用 AddressID int 提供對 CustomerAddress 表的引用 CardID int 提供對 CustomerCredictCard 表的引用 OrderDate detatime 包含提交訂單的日期 StatusID int 提供對 OrderStatus 表的引用 表 49 Orders 表字段詳細說明 列 名 數(shù) 據(jù) 類 型 說 明 OrderID int 提供對 Orders 表的引用 ProductID int 提供對 Products 表的引用 UnitCost Money 每個單位產(chǎn)品的成本 Quantity int 訂購產(chǎn)品的數(shù)量 基于 Web 服務(wù)的企業(yè)級電子商務(wù)的研究與實現(xiàn) 37 表 410 OrderStatus 表字段詳細說明 列 名 數(shù) 據(jù) 類 型 說 明 StatusID int 提供該表的主鍵和唯一鍵 Status nvarchar 訂單狀態(tài)的文本描述 4. 3. 1. 4 存儲過程 為簡化訪問這些表中的數(shù)據(jù)而執(zhí)行的數(shù)據(jù)庫查詢,可以使用存儲過程。Customer、 Product、 Cart 和 Order Web 服務(wù)。在 Product Web 服務(wù)中使用數(shù)據(jù)緩存的方法解決提高被頻繁訪問的數(shù)據(jù)的存取速度問題。這個方法查詢數(shù)據(jù)庫并把 ProductCatalog XML 插入緩存。 ProductSearch()方法提供了從 Products 表檢索所有產(chǎn)品信息的機制。接著填充一個 DataSet,