Web Service 学习笔记(2)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Web Service 学习笔记(2)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            1.SOAP的目標是允許使用標準化的方法在客戶機和運行在Internet上的應用程序交換原文的信息.
2.每個SOAP消息都是一個XML文檔,XML文檔具有一個根元素,即SOAP封套.
3.串行化:把對象轉(zhuǎn)換為XML的過程?并行化:將XML中解構(gòu)對象的過程?完成這一轉(zhuǎn)換的模塊叫XmlSerializer
4.SOAP有兩種樣式.文檔樣式的SOAP(Document?Style?SOAP)把交換的數(shù)據(jù)看成文檔.Web服務可以接收或返回一個XML文檔.?RPC(RPC?Style?SOAP)把數(shù)據(jù)交換看成是遠程對象上的方法調(diào)用,遠程對象可以是一個JAVA對象,一個COM組件,一個.Net對象.
5.ASP.NET中有兩個屬性可以用來控制Web服務中所有消息的完整編碼:SoapDocumentService屬性??SoapRpcService屬性?位于System.Web.Services.Protocols中.當它們應用到Web服務中時,會影響Web服務中所有方法的編碼,影響方法的屬性是:SoapDocumentMethod?SoapRrpMethod,兩種編碼數(shù)據(jù)的方式:?字面量方式(Literal)?編碼方式(Encoded)?通常文檔樣式的SOAP使用字面量方式的數(shù)據(jù),適合交換文檔
6.什么時候不使用Web服務
?(1).存在系統(tǒng)開銷和性能問題
?(2).沒有自己的安全模型
?(3).有更好的途徑可以解決Web服務可以解決的問題
7.什么時候采用異步化調(diào)用服務
當通過進程和機器邊界經(jīng)由RPC機制調(diào)用方法時,異步化處理極可能成為候選的方式.在遠程調(diào)用是經(jīng)過HTTP發(fā)送,同時必須處理一些類似寬帶約束和網(wǎng)絡(luò)反應時間問題的Web服務的情況下,更應選擇異步化方式.
8.異步化編程的必要條件是:必須有一個方法讓調(diào)用線程知道操作何時完成
9.使用委托
(1).Net委托類作為容器起作用,委托包含關(guān)于單個方法的信息,并且被用來在服務器對像和客戶機應用程序之間提供通信機制.
(2)在c#中聲明委托的方法如下:
????Public?delegate?int?MyFirstDeletegate(ParameterValue?as?String);
(3)當一個委托代碼創(chuàng)建時,編譯品除了創(chuàng)建一個稱為Invoke的方法外,還創(chuàng)建了一個類,用于實例化與委托引用的方法的異步化連接,同時也創(chuàng)建了名為BeginInvoke和EndInvoke的兩個方法.
BeginInvoke()?在與調(diào)用方法不同的線程上開始執(zhí)行異步化操作,并且接受在這個委托中所指定的參數(shù)或其它附加信息,只要異步化方法一結(jié)束,就可以通過回調(diào)方法來調(diào)用AsyncCallback委托。
,AsyncState對象為回調(diào)描述上下文信息。Begidnvoke方法的返回值是一個實現(xiàn)IAsyncResult接口的對象引用。BeginInvoke方法返回的IAsyncResult對象可以被傳遞給AsyncResult對象。AsyncResult對象擁有AsyncDelegate屬性,它是在該異步化調(diào)用上被調(diào)用的委托對象。
EndInvoke()?EndInvoke可以用來獲取方法調(diào)用的結(jié)果。通過傳遞給BeginInvoke方法EndInvoke參數(shù)返回AsyncResult對象來提供遠程訪問機制。它可以返回異步化調(diào)用方法返回的值(和輸出/引用參
數(shù))。如果較早地被調(diào)用,EndImoke也將會阻塞調(diào)用線程直到異步化執(zhí)行方法返回,然后把結(jié)果返回給您。
(4)在.NET中使用異步化調(diào)用
????.NetFramework的異步化處理的模式相對來說是比較簡單的,但功能卻是強大的。這個模式的魅力之處在于用這種方式可以調(diào)用任何方法。所有需要做的就是詳細的聲明一個適當?shù)奈?br />托和調(diào)用它的BeginInvoke()和EndInvoke()?方法來進行異步化傳遞。不必編寫復雜的生成線程的代碼.
10.狀態(tài)管理需要注意的問題
(1)性能:?Processer>StateServer>SqlServer?在性能最重要時候,最好采用StateServer
(2)基于COM的組件:
                        
                        
                        2.每個SOAP消息都是一個XML文檔,XML文檔具有一個根元素,即SOAP封套.
3.串行化:把對象轉(zhuǎn)換為XML的過程?并行化:將XML中解構(gòu)對象的過程?完成這一轉(zhuǎn)換的模塊叫XmlSerializer
4.SOAP有兩種樣式.文檔樣式的SOAP(Document?Style?SOAP)把交換的數(shù)據(jù)看成文檔.Web服務可以接收或返回一個XML文檔.?RPC(RPC?Style?SOAP)把數(shù)據(jù)交換看成是遠程對象上的方法調(diào)用,遠程對象可以是一個JAVA對象,一個COM組件,一個.Net對象.
5.ASP.NET中有兩個屬性可以用來控制Web服務中所有消息的完整編碼:SoapDocumentService屬性??SoapRpcService屬性?位于System.Web.Services.Protocols中.當它們應用到Web服務中時,會影響Web服務中所有方法的編碼,影響方法的屬性是:SoapDocumentMethod?SoapRrpMethod,兩種編碼數(shù)據(jù)的方式:?字面量方式(Literal)?編碼方式(Encoded)?通常文檔樣式的SOAP使用字面量方式的數(shù)據(jù),適合交換文檔
6.什么時候不使用Web服務
?(1).存在系統(tǒng)開銷和性能問題
?(2).沒有自己的安全模型
?(3).有更好的途徑可以解決Web服務可以解決的問題
7.什么時候采用異步化調(diào)用服務
當通過進程和機器邊界經(jīng)由RPC機制調(diào)用方法時,異步化處理極可能成為候選的方式.在遠程調(diào)用是經(jīng)過HTTP發(fā)送,同時必須處理一些類似寬帶約束和網(wǎng)絡(luò)反應時間問題的Web服務的情況下,更應選擇異步化方式.
8.異步化編程的必要條件是:必須有一個方法讓調(diào)用線程知道操作何時完成
9.使用委托
(1).Net委托類作為容器起作用,委托包含關(guān)于單個方法的信息,并且被用來在服務器對像和客戶機應用程序之間提供通信機制.
(2)在c#中聲明委托的方法如下:
????Public?delegate?int?MyFirstDeletegate(ParameterValue?as?String);
(3)當一個委托代碼創(chuàng)建時,編譯品除了創(chuàng)建一個稱為Invoke的方法外,還創(chuàng)建了一個類,用于實例化與委托引用的方法的異步化連接,同時也創(chuàng)建了名為BeginInvoke和EndInvoke的兩個方法.
BeginInvoke()?在與調(diào)用方法不同的線程上開始執(zhí)行異步化操作,并且接受在這個委托中所指定的參數(shù)或其它附加信息,只要異步化方法一結(jié)束,就可以通過回調(diào)方法來調(diào)用AsyncCallback委托。
,AsyncState對象為回調(diào)描述上下文信息。Begidnvoke方法的返回值是一個實現(xiàn)IAsyncResult接口的對象引用。BeginInvoke方法返回的IAsyncResult對象可以被傳遞給AsyncResult對象。AsyncResult對象擁有AsyncDelegate屬性,它是在該異步化調(diào)用上被調(diào)用的委托對象。
EndInvoke()?EndInvoke可以用來獲取方法調(diào)用的結(jié)果。通過傳遞給BeginInvoke方法EndInvoke參數(shù)返回AsyncResult對象來提供遠程訪問機制。它可以返回異步化調(diào)用方法返回的值(和輸出/引用參
數(shù))。如果較早地被調(diào)用,EndImoke也將會阻塞調(diào)用線程直到異步化執(zhí)行方法返回,然后把結(jié)果返回給您。
(4)在.NET中使用異步化調(diào)用
????.NetFramework的異步化處理的模式相對來說是比較簡單的,但功能卻是強大的。這個模式的魅力之處在于用這種方式可以調(diào)用任何方法。所有需要做的就是詳細的聲明一個適當?shù)奈?br />托和調(diào)用它的BeginInvoke()和EndInvoke()?方法來進行異步化傳遞。不必編寫復雜的生成線程的代碼.
10.狀態(tài)管理需要注意的問題
(1)性能:?Processer>StateServer>SqlServer?在性能最重要時候,最好采用StateServer
(2)基于COM的組件:
轉(zhuǎn)載于:https://www.cnblogs.com/eastjazz/archive/2007/12/14/994312.html
總結(jié)
以上是生活随笔為你收集整理的Web Service 学习笔记(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: window.opener 的用法
- 下一篇: Java IDE鱼龙混杂,我们该如何选择
