欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于WS-Addressing的疑问 博客分类: WebService WebService编程网络协议网络应用防火墙 

程序员文章站 2024-02-21 12:54:40
...
最近在研究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,其中就有路由方面的考虑),还有什么穿越防火墙,知识点太多了,让人发困。