发信人: kamkam(KK)
整理人: xiange(2004-03-09 17:28:16), 站内信件
|
例如总是见到这里关于web service的贴子,下面就有几个争论。原来由于一直扎在项目上,没有时间去看看怎么回事。刚好最近一个项目需要将domino和业务系统连接,而业务系统是不同的平台,而且由其他公司掌握,不可能直接依赖对方数据库设计。同时domino这边的系统对性能和时间要求不高,因此想到尝试一下web service。
刚好domino有个Soapconnect,可以作为client使用(consume)服务,就花了一个多星期了解了概念以及动手完成了这个东西,服务端用Apache的Axis,client端,因为深入看看发现soapconnect实现不满足要求,同时自己很反感在notes designer中写东西,就将它的思路修改为基本使用java代理实现,在外面写好引入到notes库中。
由于时间不长,了解不深,初步觉得web service整个东西,无非就是个基于xml的rpc而已。好处是耦合度更加低,更加与两边平台无关。坏处是又多包了一堆东西,效率更加低,当然对于什么查查股票行情这些东西还是很时何的。如果愿意自己去解析request或者response的内容,不用soap的包,自己做servlet也可以同样提供web service或者消费(consume)web service。(因为soap的实现基本都是基于http的普遍机制:servlet)当然,那样的话,就等于自己提供soap的实现了。
由于soap的这些特性,只要两边都遵守协议,跨平台的连接一点问题没有,例如我这边的client,domino不能使用axis的包,使用的是最早的org.apache.soap的包,服务器端使用的是axis提供的soap实现,没有问题。同样用别的语言(平台)的,也没有问题,例如domino帮助提供的web service服务例子,就是用substr之类的字符串函数直接分析cgi变量request_content中的整个soap包的内容!我靠tmd,IBM居然这样都好意思说DOMINO能完整支持web service并能在domino内部作为web server的服务!当然domino支持引入java,这样java能做什么,domino就能做什么倒是真的。
记得原来,好像看到哪个高人问别人:你能不能做到C#和java之间用web service互连,当时不知道web service是怎么回事,以为这是很高级的技术,现在看来,这个问题和“你能不能同时用筷子和勺子吃饭?”这个问题差不多。
至于xpath、xsl之类的,现在都是基本的东西了,没有什么不用到他们,其实我有时总是很困惑,现在提倡的配置式编程,号称这样更加灵活方便云云,难道没人觉得,面对着比代码还长的xml配置文件,更加难以理解和发现错误吗?还是因为那些鼓吹者们面对的都是书上的例子,从来没有面对超过3页纸的配置文件?
当然,使用soap,简单使用很简单,加入自定义对象,加入自己的错误处理,就需要更加复杂的配置以及代码编写,可是我以为实质没有变,还是那些玩艺而已。
以上,如有错误,敬请狠狠批评。
同时也请解释我一个迷惑,web service,和使用soap进行rpc调用或者message外,到底有什么不同,还是说web service根本就是包罗万象,所有有关web上的玩意儿?
欢迎讨论,嗯,如想联系我,就发给netease邮箱吧[email protected],虽然不常看,不过公开公司邮箱不太好。
tmd,走了,听了一千遍《后来》了 |
|