選擇一個(gè)微軟SOAP Toolkit
發(fā)表時(shí)間:2024-06-18 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]導(dǎo) 讀:SOAP Toolkit 是微軟提供的快速開發(fā)網(wǎng)絡(luò)服務(wù)(Web Services)的工具包。本文提供了一些包括SOAP Toolkit 各個(gè)版本以及.NET 框架和Visual Studio.NET的資料,并告訴我們?cè)鯓尤ミx擇一個(gè)在現(xiàn)在和將來(lái)都非常適合你的微軟SOAP Toolkit 版本...
導(dǎo) 讀:SOAP Toolkit 是微軟提供的快速開發(fā)網(wǎng)絡(luò)服務(wù)(Web Services)的工具包。本文提供了一些包括SOAP Toolkit 各個(gè)版本以及.NET 框架和Visual Studio.NET的資料,并告訴我們?cè)鯓尤ミx擇一個(gè)在現(xiàn)在和將來(lái)都非常適合你的微軟SOAP Toolkit 版本。
--------------------------------------------------------------------------------
翻譯整理:51dotnet.com(微軟.net技術(shù)網(wǎng))
原文出處:http://msdn.microsoft.com/xml/general/soap1and2tech.asp
選擇1.0版本或2.0版本
在選擇SOAP Toolkit 版本前,請(qǐng)先在下邊的三個(gè)選項(xiàng)中選擇你自己是屬于哪一類情況:
1.你已經(jīng)打算要發(fā)布一個(gè)基于微軟的SOAP Toolkit 1.0版本的網(wǎng)絡(luò)服務(wù)(Web Services)產(chǎn)品。
2.你還在創(chuàng)建一個(gè)網(wǎng)絡(luò)服務(wù)(Web Services)產(chǎn)品過(guò)程的早期。
3.你處于網(wǎng)絡(luò)服務(wù)(Web Services)技術(shù)的評(píng)估階段。
如果你是第一種情況,那么就不應(yīng)該使用微軟SOAP Toolkit 1.0版本代碼樣本,它只會(huì)使你的工作停止(或減慢),你應(yīng)該用12月份發(fā)布的微軟SOAP Toolkit 1.0版本,這個(gè)版本在穩(wěn)定性和可執(zhí)行性上都有所提高。如果你的一些服務(wù)客戶正在使用基于微軟的.NET 框架和Visual Studio.NET Beta 1客戶程序,你也需要使用12月份發(fā)布的產(chǎn)品。一旦你能這樣做,你就應(yīng)該計(jì)劃轉(zhuǎn)移到微軟支持的SOAP框架——或者是為應(yīng)用程序設(shè)計(jì)的微軟SOAP Toolkit 2.0版本,這個(gè)版本將于2001年秋季前或者在Visual Studio .NET和.NET框架正式發(fā)布前發(fā)布。當(dāng)然,一旦它發(fā)布后而你卻不能將之運(yùn)用到已存在服務(wù)中的話,你將需要在并行方案中轉(zhuǎn)移以維護(hù)你已存在的服務(wù)。使用同樣的標(biāo)準(zhǔn)來(lái)討論第二和第三種情況,你同樣要考慮是否要轉(zhuǎn)移到微軟的SOAP的Toolkit 2.0版本還是到.NET框架和Visual Studio .NET。
如果你是第二種情況,處于創(chuàng)建網(wǎng)絡(luò)服務(wù)(Web Services)產(chǎn)品過(guò)程的早期。你預(yù)期在2001年秋季將產(chǎn)品投放市場(chǎng),你就需要決定是否能接受,與選擇SOAP Toolkit 2.0版本技術(shù)相比,選擇這些新的.NET產(chǎn)品的BETA 2版本去發(fā)布你的服務(wù)所要承擔(dān)的風(fēng)險(xiǎn)。微軟的SOAP Toolkit 2.0版本采用了網(wǎng)絡(luò)發(fā)布方式,你可以期望在2001年秋天以前得到多次更新。另外一個(gè)方面,如果你的服務(wù)代碼是基于.NET技術(shù)的話,你能得到生產(chǎn)力和戰(zhàn)略上的優(yōu)勢(shì),因?yàn)?NET技術(shù)代表了微軟的一個(gè)SOAP的下部結(jié)構(gòu)的長(zhǎng)期投資。
如果你是第三種情況,并且仍在評(píng)估網(wǎng)絡(luò)服務(wù)(Web Services)的潛力,那么你應(yīng)該考慮不使用任何版本的SOAP Toolkit 去創(chuàng)造你的網(wǎng)絡(luò)服務(wù)(Web Services)。這是因?yàn)槲④洖榫W(wǎng)絡(luò)服務(wù)(Web Services)而提供一個(gè)快速的軟件應(yīng)用開發(fā)環(huán)境的長(zhǎng)期戰(zhàn)略是.NET和Visual Studio .NET,而你能等待我們繼續(xù)我們的投資,使這些產(chǎn)品用最有效的生產(chǎn)方式去創(chuàng)建和使用網(wǎng)絡(luò)服務(wù)(Web Services)。
從1.0版本轉(zhuǎn)移到2.0版本
轉(zhuǎn)換你的代碼
微軟SOAP Toolkit 1.0版本的開發(fā)者很少碰到類似于移植基于ROPE.Proxy對(duì)象的客戶端代碼到高級(jí)的2.0版本接口這樣的問(wèn)題。在這里僅僅眾所周知的問(wèn)題是在2.0版本中暫時(shí)缺少對(duì)客戶端證書的支持——你需要去徹底除去那些使用12月份發(fā)布的1.0版本特性的代碼?蛻舳俗C書將在最后發(fā)布的2.0 版本中被支持。
微軟的SOAP Toolkit 1.0版本的開發(fā)者通過(guò)客戶端代碼使用低層的ROPE. Packager接口和直接訪問(wèn)SOAP消息的相關(guān)特性,將在2.0版本的低層接口中進(jìn)一步改進(jìn)這項(xiàng)任務(wù)的靈活性和程序可用性。同樣的,那些使用ROPE.WireTransfer的開發(fā)者將會(huì)發(fā)現(xiàn)一個(gè)改進(jìn)后的2.0版本的體系框架,它允許插入不同的連接器去連接SOAP端點(diǎn)并在它們之間傳輸消息,就象不同協(xié)議的處理器一樣。不幸地,所有這些提高需要重寫大部分或所有的低層代碼。
那些使用ISAPI 監(jiān)聽器的微軟SOAP Toolkit 1.0版本的開發(fā)者不會(huì)發(fā)現(xiàn)其和2.0版本、Visual Studio .NET BETA1版本有相同之處。你現(xiàn)在應(yīng)該使用2.0版本中的ASP監(jiān)聽器,而 ISAPI監(jiān)聽器最終將包括在最后的版本中。微軟SOAP Toolkit 2.0版本中的網(wǎng)絡(luò)服務(wù)元語(yǔ)言(WSML)文件達(dá)到了類似于微軟SOAP Toolkit 1.0版本的ISAPI 監(jiān)聽器使用的.SOD文件把消息名字映射到PROGID的目的。這種機(jī)制可以使單個(gè)的、普通的監(jiān)聽器為多種服務(wù)所使用;不象1.0版本的ASP監(jiān)聽器,如果使用2.0版本的ASP監(jiān)聽器也需要WSML文件。
另外,那些使用ISAPI監(jiān)聽器的微軟SOAP Toolkit 1.0版本開發(fā)者需要移植glue代碼,把它們添加到自動(dòng)生成的interface. Asp中。
服務(wù)描述格式
微軟SOAP Toolkit 1.0版本、.NET框架和Visual Studio.NET Beta 1是以舊的服務(wù)描述語(yǔ)言(SDL)來(lái)描述網(wǎng)絡(luò)服務(wù)(Web Services)的功能的。微軟SOAP Toolkit 2.0版本、.NET框架和Visual Studio.NET Beta 2版本支持新的WSDL服務(wù)描述格式。為了一個(gè)能支持那些要求WSDL合同的客戶的服務(wù),你需要移植到微軟SOAP Toolkit 2.0版本或.NET框架和Visual Studio.NET Beta 2。在變遷的過(guò)程中,你需要去支持客戶期望的SDL或WSDL服務(wù)合同,微軟正在評(píng)估提供一個(gè)SDL到WSDL的“編譯器”的可行性。這個(gè)編譯器將允許使用微軟SOAP Toolkit 2.0版本客戶端去訪問(wèn)使用SOAP Toolkit 1.0版本或.NET框架和Visual Studio.NET創(chuàng)建的服務(wù)。如果這能幫助你移植到微軟SOAP Toolkit 1.0版本,請(qǐng)?jiān)L問(wèn)如下地址news://msnews.microsoft.com/microsoft.public.xml.soapsdk.
XML Schema格式
微軟SOAP Toolkit 1.0版本,.NET框架和Visual Studio.NET Beta 1是以舊的XML-DATA REDUCED(XDR)Schema格式為基礎(chǔ)的。微軟SOAP Toolkit 2.0版本或.NET框架和Visual Studio.NET Beta 2版本支持新的被W3C所提議的XML Schema定義(XSD)格式。
Schema格式是和服務(wù)描述相關(guān)的,在這里使用XDR定義SDL,而WSDL使用XSD。特別的是,XML原始的數(shù)據(jù)類型或被輸入或輸出參數(shù)類型的使用者定義Schema,必須在期望的XDR或XSD格式中指定。由于兩個(gè)Toolkit 都可以用工具去生成服務(wù)描述,這僅僅對(duì)那些手寫代碼文件的開發(fā)者重要。
只要是SOAP Toolkit 1.0版本所支持的XML原始數(shù)據(jù)類型,微軟SOAP Toolkit 2.0版本都支持。同樣的,這些普通的原始數(shù)據(jù)類型映射了與之相對(duì)應(yīng)的COM變量類型。
字符設(shè)置
用Windows code page 1252中的字符串變量編制的8位 ANSI字符來(lái)測(cè)試微軟SOAP Toolkit 1.0版本。因?yàn)镾OAP Toolkit 1.0版本信息序列化沒有在XML聲明中指定字符編碼,缺省的SOAP信息是UTF-8編碼(包括所有信息中的字符串變量)。實(shí)際上SOAP Toolkit 1.0版本是使用了UTF-8字符串編碼(包括UTF-8字符的子集),而UTF-8編碼與在Windows code page 1252中的8位ANSI編碼是不能區(qū)別的。
SOAP Toolkit 2.0版本則可以同時(shí)接受UTF-8和UTF-16字符串編碼,因此你使用SOAP Toolkit 1.0編寫的使用Windows code page 1252中的8位ANSI編碼的客戶端程序在SOAP Toolkit 2.0版本中能夠繼續(xù)使用。
在SOAP Toolkit 2.0版本中的服務(wù)器端信息發(fā)送代碼將會(huì)傳送字符串到UTF-16碼制的BSTR變量中。如果你的服務(wù)器端代碼要求有8位的ANSI編碼去編寫,你將需要移植到SOAP Toolkit 2.0版本,它將更新你的編碼到UTF-16碼制。
總結(jié)
我們希望幾乎每一個(gè)人都能馬上開始使用微軟的SOAP Toolkit 2.0版本,用來(lái)建立網(wǎng)絡(luò)服務(wù)(Web Services)。隨著開發(fā)者的支持,一個(gè)具有特色的擴(kuò)展集和一個(gè)設(shè)計(jì)完美的體系結(jié)構(gòu)的微軟SOAP Toolkit 2.0版本已經(jīng)為取代微軟SOAP Toolkit 1.0版本作好準(zhǔn)備。
我們知道,一些人還不能馬上方便地從SOAP Toolkit 1.0版本轉(zhuǎn)換過(guò)來(lái),并且采用微軟SOAP Toolkit 2.0版本將會(huì)是一個(gè)移植的過(guò)程。