明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

創(chuàng)建Web Service Storefronts

[摘要]根據(jù)功能需求,實現(xiàn)單獨的通道來訪問你的商業(yè)邏輯。by Jonathan Goodyear, MCSD, MCP, CLS 大多數(shù)商業(yè)應用程序只通過Web services給外界提供其功能的一小部分。...
根據(jù)功能需求,實現(xiàn)單獨的通道來訪問你的商業(yè)邏輯。
by Jonathan Goodyear, MCSD, MCP, CLS
大多數(shù)商業(yè)應用程序只通過Web services給外界提供其功能的一小部分。大多數(shù)應用程序的商業(yè)邏輯都是在企業(yè)內(nèi)部互聯(lián)網(wǎng)中的防火墻后的。而且,在外部和內(nèi)部,你總是需要同樣的功能。理想情況下,你不需要在兩個不同的地方編寫這個重復的功能——它應該保留在一個集中的商業(yè)邏輯層中。要實現(xiàn)這一點,一種方法就是實現(xiàn)多個Web service接口,將它們作為進入你的商業(yè)邏輯的通道。我把它們稱作Web service “storefronts”。

例如,假設你在為一個網(wǎng)站構建一個內(nèi)容管理應用程序。在內(nèi)部,你可能需要一些功能來增加、更新、刪除和讀取網(wǎng)站內(nèi)容。如果你允許其它的網(wǎng)站運用你的內(nèi)容,那么在外部你只需要提供讀取功能。為了適當?shù)胤庋b你的商業(yè)邏輯,你需要將所有這些相關的內(nèi)容部件功能添加到一個叫做ContentWidget的單獨的集合中(見列表1)。

接下來,你創(chuàng)建兩個單獨的Web service接口,叫做InternalContent和ExternalContent。這兩個Web services都會引用ContentWidget集合。InternalContent Web service為ContentWidget.Server對象提供了每個方法,因為你(大概)需要所有這些方法來管理你的網(wǎng)站的內(nèi)容(見列表2)。

然而,ExternalContent Web service將只提供GetContentWidget方法來讀取內(nèi)容,因為對你的網(wǎng)站的內(nèi)容的外部訪問目的是單一的(見列表3)。注意,InternalContent和ExternalContent Web services都實現(xiàn)了GetContentWidget方法。如果你知道你的內(nèi)容管理應用程序有權限訪問這兩個Web services,你就可以從InternalContent Web service刪除GetContentWidget方法,作為替代,你可以調用ExternalContent Web service來讀取內(nèi)容,從而就可以刪除所有的多余的代碼。然而你的內(nèi)部應用程序并不是總是有權限訪問這兩個Web services的。

Web services storefront方法的好處就是你可以集中所有的商業(yè)邏輯,同時也可以控制你給外界提供的功能。需要記住的一個主要的概念是Web services不能用來提供商業(yè)邏輯。它們就類似一個ASP.NET Web應用程序中的Web窗體。它們只是方便了不同系統(tǒng)間(或人們之間,在Web forms的情況下——見資源)的交互。確信將IIS驗證添加到InternalContent Web service,以便限制已提供有效安全屬性的應用程序對它的訪問(見資源)。

你也可以用.NET remoting實現(xiàn)同樣的Web service storefront方法。到你的商業(yè)邏輯的內(nèi)部接口和外部接口是分離的,所以你可以同時實現(xiàn)它們。在這個例子中,我選擇在內(nèi)部和外部都運用了Web services,因為在這種情況下,你的商業(yè)邏輯集合就有很好的機會可以與非.NET系統(tǒng)交互。遇到一個.NET remoting應用程序并與之交互的可能性是很細微的(就目前情況來說)。

下載Web services storefront的一個完整的樣例。它包含ContentWidget商業(yè)邏輯集合、兩個Web service storefront項目、一個ASP.NET Web應用程序、安裝SQL Server表的腳本和存儲、管理內(nèi)容數(shù)據(jù)的存儲過程。


關于作者:
Jonathan Goodyear是ASPSoft(www.aspsoft.com)的總裁,這是個位于Orlando,Fla.的一家Internet咨詢公司。他是位MCSD,是Debugging ASP.NET(New Riders)一書的作者,你可以在www.debuggingasp.net找到它。你可以通過jon@aspsoft.com與他聯(lián)系,或者通過他在www.angryCoder.com上的angryCoder eZine同他聯(lián)系。