专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » axis开发webservice:Web Service开发的层次 »正文

axis开发webservice:Web Service开发的层次

来源: 发布时间:星期一, 2009年8月17日 浏览:27次 评论:0
        Web Service是最近几年比较火个东西它带来了大堆新名词所以显得比较炫看透其华而不实表面它也就不再神奇下面讨论均以Java为参考

        1 访问个Web Service实际上可以看作区别就是这个是远程这么它和RMI就没有什么本质区别了 既然是当然要有声明了完成这个工作就是WSDL它详细定义原型包括名、入口参数、出口参数这就是WSDL中opertion完成工作 既然是个远程还要涉及和远程地址个绑定这是WSDL中service任务 Axis是个可以通过WSDL生成相应访问代码开发包JBuilder中将它集成了进去通过Wizard方式简化了原本需要在命令行中手工完成操作

        2 既然是远程访问定要有个访问协议Web Service访问协议就是SOAPSOAP建立在XML的上区别就是对XML原本没有限制格式加上了些限制需要有envelope在envelope中还要分header和body 如果利用SOAP开发Web Service那就需要根据WSDL定义来自行组装SOAP包这显然要比利用WSDL直接面向Web Service开发要复杂 JAXM是个利用SOAP进行通信开发包它简化了SOAP消息打包过程

        3 SOAP是建立在XML的上那么显然XML开发包同样适合于SOAP
        在这个层次上开发Web Service除了要完成上工作外还要自行按照SOAP格式组装SOAP消息这显然又增加了工作量
XML开发工具就比较多了从最简单SAX和DOM到DOM4J、JDOM还有不少XML到对象绑定工具如JAXB、Castor等等
其实不考虑Web Service完全用XML做通信协议情况也并不少见知晓XML-RPC存在就不难理解了XML做通信含义了 截至到这里所讨论内容Sun提供了JWSDP(Java Web Service Developer Pack)其中包含从XML解析到WSDL生成全套解决方案

        4 上面讨论所有东西实际上都还停留在传递消息内容上并未涉及通信过程不要看到Web ServiceWeb就想当然认为它只能通过HTTP来传输前面讨论可以看出所有消息内容和传输并无直接关系所以无论是以HTTP传输还是SMTP或是自定义协议都没有问题 在这个层次上开发Web Service前面种种险阻的外还要完成对XML手工解析工作 
        这里还是以最常见HTTP方式来讨论 HTTP开发就将Server和Client区别对待Server实现通常选择是Servlet让Web Server替我们完成HTTP协议解析可以省去我们很多Client实现可以选择JDK自带Http ClientApacheJakarta项目下Commons子项目也提供了个HttpClient

        5 无论是HTTP还是SMTP抑或是自定义协议归根结底都是应用级协议底层实现都是由Socket完成到了这个层次基本就是原始时代了什么都没有切都要手工完成 在这个层次上开发Web Service所有前面困难都要经历此外还有协议开发等待着不幸至此人们 到了这里也不需要其它工具了JDK自带Socket可以保打天下

        6 还想往下吗?再往下就是操作系统实现了Java平台无关就失去了意义也超出了我目前所了解范围到此打住吧!
        前面所提及应该算是Web Service个基本知识结构这里并没有讨论UDDI等等内容来我对它并不了解 2来那应该属于应用不应该算Web Service实现中 虽然我们可能不会从最下层开发Web Service但遇到底层问题情况却在所难免 我就曾经在开发个Web Service应用时候被人抓住HTTP头中SOAPAction大小写和某个所谓规范标准区别我查了半天HTTP规范标准和SOAP规范标准知道了HTTP是区分大小而SOAPAction就是应该这么写据理力争指出所谓规范标准 

        经过前面讨论我们可以看出Web Service并没有什么神秘可言所有东西都是建立在已有东西基础的上技术发展不会是无中生有只会是个更好解决方案而已在追新求变的前个比较牢固基础才是最重要

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: