使用Axis2来构建Web Service客户端
生活随笔
收集整理的這篇文章主要介紹了
使用Axis2来构建Web Service客户端
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Web services可以用來為用戶提供廣泛的功能,從簡單的,少時間消耗的功能到多時間消耗的業務服務。當我們使用(調用客戶端的應用程序)這些Web Service時,我們不能用簡單的調用機制來針對那些對時間消耗有很大要求的服務操作。例如,如果我們使用一個簡單的傳輸通道(如HTTP)并使用IN-OUT模式來調用一個需要很長時間來完成的Web Service,那么多數情況下,我們得到的結果將是"connection time outs"。另一方面,如果我們從一個簡單的客戶端應用程序調用一個同步的服務,使用"blocking"的客戶端API將會降低客戶端應用程序的性能。現在來分析一下一些常用的服務調用形式。 許多Web Service引擎提供給客戶Blocking和Non-Blocking的客戶端APIs。 1)Blocking API-一旦服務被啟用,客戶端的應用程序將被掛起,直到operation被執行完畢(表現為收到一個response或fault),才能重新獲得控制權。這是調用Web Service最簡單的方式,并且這種方式適用于多數業務情形。 2)Non-Blocking API-這是一個回叫或輪詢機制的API。因此,一旦服務被起用,客戶端應用程序馬上得到控制權,通過使用一個callback對象來獲得response。這種方式使得客戶端應用程序可以很方便的同步啟用多個Web Service。 這兩種機制都是工作在API層面上的。稱將通過使用Non-Blocking API而產生的異步行為方式為API Level?異步。 這兩種機制都使用單一的傳輸連接來發送request和接收response。它們的性能遠遠落后于使用兩個傳輸連接來發送request和接收response(不管是單工還是雙工)。所以這兩種機制都不能解決需要長時間處理的事務的傳輸問題(在operation處理完成之前,很有可能你的連接已經超時了)。一種可能的解決方法是使用兩個獨立的傳輸連接來發送和接收request&response。這種異步行為,我們稱為Transport Level?異步。 通過組合API Level異步和Transport Level?異步,我們可以得到四種調用模式。如下所示。
Axis2提供了所有上述4種調用Web Service的實現方式。?
本文轉自zhangjunhd51CTO博客,原文鏈接:http://blog.51cto.com/zhangjunhd/23805,如需轉載請自行聯系原作者
| API (Blocking/Non-Blocking) | Dual Transports (Yes/No) | Description |
| Blocking | No | 最簡單和常用的調用模式 |
| Non-Blocking | No | 使用回叫或輪詢機制 |
| Blocking | Yes | 在單工模式下,service operation為IN-OUT時,很有用。(如SMTP) |
| Non-Blocking | Yes | 此模式下的異步效果最大 |
本文轉自zhangjunhd51CTO博客,原文鏈接:http://blog.51cto.com/zhangjunhd/23805,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的使用Axis2来构建Web Service客户端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android学习笔记(二)基础知识(1
- 下一篇: 简单工厂模式