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