LoveUnix » 编程开发 & Rational » soap简单理解[原创]
让LU留住您的每

一天 让LU博客留住您的每一天
2005-8-16 18:33 无双
自己的理解 不对的地方请指正<br /><br />无双: loveunix.net <br /><br />由于部门中一个项目要使用soap 所以大概看了看soap的内容<br />从技术上来讲 使用soap做个c/s并不是很合适(做b/s可能更合适,或是有大量并发访问的c/s )<br />不过时间紧 qa与rd都懒的做框架与测试框架 无法说服他们 ( 可能后面出现的问题会更多吧 如安全性问题 性能问题等)<br /><br />一个介绍的ppt<br /><a href='http://www.chinagrid.net/grid/paperppt/webservice1.ppt' target='_blank'>http://www.chinagrid.net/grid/paperppt/webservice1.ppt</a><br /><br />另外还有几篇介绍的文章<br />在<br /><a href='http://wsue.blog-city.com' target='_blank'>http://wsue.blog-city.com</a><br />还有<br /><a href='http://www.bloglines.com/blog/wushuang' target='_blank'>http://www.bloglines.com/blog/wushuang</a><br /><br /><br />soap :定义了一种封装格式 指明如果把指定内容传给对方 不关心里面的内容  一般用于进行进程过程调用<br />如调用一个远程web服务 并取得它的结果(结果返回也是以soap格式封装)<br />soap = http/smtp/ftp + xml (+rpc)<br /><br />在web服务中,与soap同时出现的还有uddi 和wsdl<br /><br />uddi是web服务定位站点  指明某个服务的信息(站点 输入输出参数等)<br />wsdl 是调用这个web服务的方式(相当于函数定义) 指明怎样使用soap去调用这个服务<br /><br />比喻:<br />soap相当于通道  可以通过它去调用远程的对象<br />wsdl相当于接口定义 定义对象的接口与调用方式(如参数类型等)<br />uddi相当于DNS服务器<br /><br />SOAP与其它远程过程调用技术的比较<br />远程过程调用还有DCOM和corba 这两种,当然还有其它专用的中间件技术<br />1 DCOM和corba 都是通过自定制的底层协议来实现远程过程调用的 (如定义自己的封包格式 然后使用tcp传输到被调用者- 服务器  服务器处理后返回 dcom和corba把封包与解包过程进行了封装 调用者不知道这种封包)<br />从这点来看 soap与corba,dcom的实现原理是一样的,<br />但是 soap使用的是xml+http, xml的优点就是用户可以只关注自己关心的类型, 增加或减少其它类型不会影响<br />也就是 后面可以增加参数 但是接收方可以只关心自己需要的参数而不必理会新增加的参数  所以参数的增加并不会引起代码的重写<br />2 soap 使用xml+http 这个可以由任何语言来实现<br />而 corba则需要实现与某个语言的绑定 所以这限制了corba的扩展<br />另外不同厂家实现的corba映射可能不一样 会存在兼容性问题 (协议不可能完全定义明确 对协议理解的误差就可能会引起不兼容的情况这也是一般开发协议软件时出现的问题 还有一个引起不兼容的情况就是 厂家发现原来协议定义的不足以支持新的需求而对协议进行了各个不同的扩展  这样等到下次协议升级时大家都想让自己的扩展成为标准而引起不兼容)<br />这样使部署corba时要使双方的兼容 可能会有难度<br /><br />3 在internet中 corba的安全性可能成为问题 但是soap可以使用ssl来进行加强<br />4 corba通过IOR进行server的定位 IOR是一个字符串,里面包括有服务器ip地址等信息<br /> 而soap解决方案中可以使用uddi提供分布式服务 或是在当一个服务器不可用时使用另外一个服务器代替<br /><br />最后 因为soap是一个可扩展基于xml的协议 所以它会在电子商务中使用越来越广<br />corba二进制流 不需要进行xml解析 所以性能比soap高的多  现在基本上停止发展了 但可能也会有使用在企业内做为一个解决方案

2005-8-17 10:10 99大话王
<!--emo&:rose:--><img src='style_emoticons/default/rose.gif' border='0' style='vertical-align:middle' alt='rose.gif' /><!--endemo-->

2005-8-17 13:15 无双
<!--emo&:)--><img src='style_emoticons/default/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->

页: [1]
查看完整版本: soap简单理解[原创]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.