`
pipilu
  • 浏览: 39502 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于WS-Addressing的疑问

阅读更多
最近在研究WebService异步调用及WS-Addressing的应用。感觉很困惑。
疑问一:
  JAX-WS 2.0提出的WebService编程模型,异步调用有两种方式:轮询(polling)和回调(callback),这个用java实现是没问题的(因为用java编写WebService必定要遵守JAX-WS编程模型),cxf或axis2框架都有示例程序。但如果客户端如果不是java编写的(这样它就不需要遵循JAX-WS),那该怎么办呢?
解决思路:
  先抓个包看看吧,看看SOAP消息是怎么写的。
疑问二:
  关于WS-Addressing,这个规范(或协议)为WebService提供了类似路由的功能。这个WebService服务端收到带Addressing头的WebService调用后,会把回复消息发往reply-to指定的地址。这样服务端要发起一个调用,怎么调用呢?
解决思路:
  根据JAX-WS编程模型提供的WebService调用方式,应该可以采用dispatch的方式调用(之所以说“应该”,是因为还没实践过)——事实上,cxf已经提供了根据reply-to的调用,只需要配置服务端支持WS-Addressing就可以了。但根据WS-Addressing,reply-to只提供了WebService的URL,WS-Addressing定义的域中,并没有一个提供在reply时要请求的Web服务的方法——这样也是没法发起一个对WebService的调用——后来证明这样想就想偏了。因为reply时的节点名是确定的,客户端调用的是hello方法,那么回复时的消息节点名则为:helloResponse。
  (未完待续)


几个问题先记录下来:
1、WS-Addressing的提出是为了“传输中立性”(与具体传输协议无关的机制),那http中的post和soapAction起什么作用呢?(可以参考:http://msdn.microsoft.com/zh-cn/library/ms996537.aspx)
2、WS-Addressing中的Action是必须有的项,它的具体作用是什么呢?
3、通过@Action可以指定operation的input和output的soapAction,有什么用处么?


--------------------------------------------------------------
PS:
感觉WebService真是博大精深,实现起来应该也很容易,但是要深入理解,又涉及分布式应用的知识(安全、事务、可靠性之类的),因为要不依赖于具体协议,其中它又提出某方面约定是出于什么什么的考虑,而自己又不是了解那个协议,就有些迷糊了(比如http协议下的SoapAction),又有网络方面的知识(比如原来是WS-Rout,后来改成WS-Addressing,其中就有路由方面的考虑),还有什么穿越防火墙,知识点太多了,让人发困。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics