java webservice 结构

    最近开始了解webserviece相关的东西,记录以供未来参考。
    访问一个Web Service实际上可以看作调用一个函数,唯一不同的就是这个函数是远程的,这么一说,它和RMI就没有什么本质的区别了。既然是一个函数,当然要有函数的声明了,完成这个工作的就是WSDL,它详细的定义函数的原型,包括函数名、入口参数、出口参数,这就是WSDL中opertion完成的工作。一个远程的函数,还要涉及与远程地址的一个绑定,这是WSDL中service的任务。
    既然是远程访问,就一定要有一个访问协议,Web Service的访问协议就是SOAP,SOAP建立在XML之上,不同的就是对XML原本没有限制的格式加上了一些限制,需要有envelope,在envelope中,还要分header和body。
    上面讨论的所有东西实际上都还停留在传递消息的内容上,并未涉及通信的过程。不要一看到Web Service的Web就想当然认为它只能通过HTTP来传输。前面的讨论可以看出,所有的消息内容与传输并无直接关系,所以,无论是以HTTP传输,还是SMTP或是自定义的协议都没有问题。
  在这个层次上开发Web Service,前面的种种险阻之外,还要完成对XML的手工解析工作。
  HTTP的开发就将Server和Client区别对待,Server的实现通常的选择是Servlet,让Web Server替我们完成HTTP协议的解析可以省去我们很多的工作。Client的实现可以选择JDK自带的Http Client,Apache的Jakarta项目下的Commons子项目也提供了一个HttpClient。
无论是HTTP还是SMTP,抑或是自定义协议,归根结底都是应用级的协议,底层的实现都是由Socket完成。到了这个层次基本就是原始时代了,什么都没有,一切都要手工完成。
    下图可以较清晰的表明相关技术的脉络。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值