通過SOAP在web上提供的軟體服務(基於XML協議)
使用WSDL檔案進行說明(基於XML語言,描述webservice及其函數/參數/傳回值)
通過UDDI進行註冊(通用發現/說明和整合,相當於web服務的黃頁,包含一組使企業將自身提供的web service註冊時的別的企業能夠發現的訪問協議)
中介軟體平台的缺陷:無法擴充到互連網上,它們要求服務的用戶端與系統提供的服務本身之間必須進行緊密耦合,即要求一個同類基本結構
Web service不能到處濫用,有時它會降低程式效能,而沒任何好處。例如一台機器或同個區域網路裡啟動並執行同構應用程式不應該用webservice通訊
Web Service屬性介紹
Description
Name
Namespace
【WebService(Namespace="xxx",
Description="asdfa",
Name="ddddd")】
Description:對web service方法的描述資訊
EnableSession:指示web service是否啟動Session標誌,主要通過Cookie完成
MessageName:實現方法重載後的重新命名
TransactionOption:只是web service方法的事務支援
CacheDuration:設定相應應在緩衝中保留的秒數
添加web service 引用:最終目標都是在URL處輸入相應地址進行載入。然後會自動組建代理程式類(項目->顯示所有檔案才會顯示)
js調用webservice
利用webbehavior.htc調用(需要下載)
<body>
<div id="addserivice" style="behavior:url(webservice.htc)"></div>
</body>
為了保證能正確調用webservice,必須在body的onload時間裡馬上載入處理webservice調用的js
通過Mrcrosoft.XMLDOM調用webservice
XMLHTTP POST調用webservice
SOAP調用Webservice
winForm調用webservice
代理類方式
手動發送HTTP請求方式
POST和GET方式區別:Post參數經過URL編碼並在獲得請求之前傳送,而Get把參數用URL編碼後直接附加到請求的URL後面
實現非同步呼叫Web Service
使用Backgroundworker對象實現
調用Web Service的WebMethod的Async 方法實現(產生的代理類中有一個和原webservice方法名字相同而尾碼是Async的方法)
保證Web Service的安全
通過SoapHeader
採用SSL實現加密傳輸
訪問IP限制(維護IP地址表,進行檢測)
注意事項:
介面自說明
服務介面力度要合適
介面參數盡量簡單
提供介面參數和傳回值的校正
介面傳回值應該簡單並且語言無關
謹慎的拋出異常
介面盡量採用更新標準
注意標準的通用性
禁用HTTP POST/GET協議(預設綁定到三種協議:HTTP/POST,HTTP/GET和SOAP)<webServices><protocols><remove name="HttpPost"/>。。。刪除對HTTP/POST的綁定
用TCPTrace查看SOAP請求/應答訊息
簡化介面設計
避免使用ASP.NET工作階段狀態