Huihoo.org - Open Enterprise Foundation
SOAP技术讨论记录 (2003.06.20)
讨论现场>>> | 更多讨论,更多补充,请跟贴>>>

结论和一些观点:

--确定OpenWeb SOAP的开发步骤:先实现SOAP1.1规范,再实现SOAP1.2规范
--SOAP1.1和SOAP1.2在命名空间上有很大的改变
--一位朋友的建议:为何不基于Apache SOAP做新的扩展和提升,我们需要做自己的实现
--HTTP,SMTP,JMS,FTP等协议的动态转换?这个需要我们继续讨论,可参考orbas插件式协议框架的做法.
--基于SOAP的Web服务的互操作需要重点考虑:J2EE .NET,一些商业化的产品如http://www.themindelectric.com/提供这样的服务

【公告】

大家
  今天议题:SOAP规范,SOAP应用,SOAP设计与实现的讨论
发布者:allen
09:13:00
**debug**大家说:10点准时开始?(09:27:49)
darthvader大家说:应该是的(09:29:03)
allen大家说:对,10点准时开始.请先准备一些问题和要讨论的话题.(09:29:17)
darthvader大家说:聊天室的时间有问题吧(09:29:51)
**debug**大家说:应该使慢了10来分钟(09:30:40)
allen大家说:对,时间是有问题,我正在和对方联系.(09:31:18)
【公告】

大家
  今天的主持人:darthvader,他是OpenWeb-UDDI的作者
发布者:allen
09:48:34
darthvader大家说:今天的讨论是直接面向我们的openweb项目中的soap平台开发的(09:50:28)
darthvader大家说:所以想听听大家对这个平台的开发的一些意见和建议(09:51:08)
darthvader大家说:首先,我们初步决定使用java来进行开发(09:52:09)
darthvader大家说:那么使用soap1.1还是soap1.2是目前需要决定的,所以想听听大家的意见(09:52:52)
darthvader大家说:目前以有的相对比较成熟的JAVA实现的开源soap平台apache soap是使用的soap1.1(09:53:51)
darthvader大家说:但是.目前soap 1.2已经成为了w3c的推荐标准(09:54:10)
raider大家说:开始了没?(09:55:10)
raider大家说:居然有美女(09:55:24)
hally大家说:我是来看热闹的:)(09:56:11)
allen大家说:SOAP使用HTTP来把XML请求和响应数据发送到远程运行进程,它和CORBA的RPC处理有些相似的地方(09:56:47)
raider大家说:MM这么谦虚(09:56:47)
darthvader大家说:事实上不一定是http,ftp什么都可以(09:57:11)
darthvader大家说:理论上来说只要是基于tcp/ip的协议都可以(09:57:33)
darthvader大家说:这样一来就使soap具有比较好的防火墙穿透能力(09:58:38)
**debug**大家说:不知SOAP对有界面的应用集成如何处理?(09:59:53)
darthvader大家说:其实有没有界面对soap来说是无关紧要的(10:01:19)
darthvader大家说:因为界面最终还是要通过某个方法激活一段操作(10:01:56)
darthvader大家说:只要把那一个操作发布成web服务就可以了(10:02:17)
darthvader大家说:其实soap只是一个传输协议...(10:02:35)
darthvader大家说:它是web 服务的传输协议(10:03:16)
**debug**大家说:关键是有界面的应用可能使返回悬挂起来(10:03:33)
darthvader大家说:应用集成的问题实际上是web 服务那一层次上的问题了(10:03:39)
**debug**大家说:目前SOAP对可靠性的保证如何?(10:04:11)
**debug**大家说:我也对SOAP刚入门,来学习一下(10:04:43)
darthvader大家说:soap的消息并不要求有请求就要有回应,从而保证一些同步和异步方面的要求(10:04:52)
darthvader大家说:你说的可靠性是指哪方面?(10:05:20)
**debug**大家说:例如请求在传输过程中的丢失(10:05:50)
darthvader大家说:呵呵,http是怎么保证的soap就是怎么保证的(10:06:16)
darthvader大家说:或者其他协议也一样(10:06:23)
**debug**大家说:(10:06:32)
darthvader大家说:因为soap为了保证其简单性(10:06:32)
darthvader大家说:自身并没有规定一个特殊的传输协议(10:06:50)
darthvader大家说:而是使用绑定其他的以有传输协议(10:07:15)
**debug**大家说:但是是否可能在其上建立一个额外的协议呢(10:07:20)
darthvader大家说:没有必要,反而麻烦.(10:07:47)
**debug**大家说:例如一些重要信息,如果传输丢失,需要自动重发等等(10:07:49)
darthvader大家说:这个可以在一些事物性的处理中来协调(10:08:47)
**debug**大家说:那么SOAP协议需要研究的内容集中在那些方面呢?(10:08:48)
darthvader大家说:比如规定要有一个回应(10:09:02)
darthvader大家说:集中在soap信封的内容(10:09:48)
darthvader大家说:soap信封包括一个可选的soap header(10:10:11)
darthvader大家说:和soap body(10:10:18)
**debug**大家说:(10:10:26)
spring大家说:大家好(10:10:45)
allenspring说:你好,欢迎你的参与(10:11:54)
darthvader大家说:简单的说,soap header负责的是指定soap消息的接受方,以及消息转发等(10:12:14)
darthvader大家说:soap body中通常是放给soap消息的最终接受方所需要的信息(10:14:10)
raider大家说:安全性差(10:14:52)
raider大家说:速度慢(10:15:12)
**debug**大家说:加密(10:15:20)
darthvader大家说:那你认为应该如何提高其安全性呢?(10:15:23)
**debug**大家说:局域网不适合(10:15:27)
raider大家说:通用性不理想(10:15:44)
raider大家说:局域网怎么不适合???(10:16:02)
**debug**大家说:信息本身的加密,数字签名(10:16:12)
darthvader大家说:速度的话,应该和http等协议有关吧.soap其实本上并不负责传输啊(10:16:15)
darthvader大家说:soap关心的是信息的内容本身(10:16:33)
darthvader大家说:soap是面向internet的(10:16:50)
**debug**大家说:我认为也是,但是我觉得速度慢是现实(10:17:08)
darthvader大家说:通用性为什么不理想呢????(10:17:12)
darthvader**debug**说:速度慢会不会和网络条件有关?(10:18:15)
**debug**大家说:我觉得不是(10:18:27)
**debug**大家说:通用性应该可以哦(10:18:36)
darthvader**debug**说:网络条件好的话,你用http协议下载东西也能很快啊(10:18:45)
raider大家说:呵呵,我坐过一个项目全部用soap,很烦恼的(10:18:59)
darthvaderraider说:哦~呵呵,介绍介绍吧!(10:19:14)
**debug**大家说:关键对XML的解析很烦(10:19:25)
darthvaderraider说:用什么平台实现的?.net?(10:19:28)
allenraider说:能讲讲你的烦恼吗?(10:19:39)
hally[allen]说:你好,我是在读学生,没什么项目经验,对soap不太了解,今天想来向各位学习一下(10:19:55)
raider大家说:是一个不开放的系统(10:20:00)
**debug**大家说:请raider介绍一下(10:20:01)
darthvader**debug**说:xml有很好的parser啊(10:20:02)
raider大家说:.net和j2ee之间互动(10:20:15)
darthvaderraider说:你绝对最麻烦的地方在哪里?(10:20:43)
**debug**[allen]说:但是速度还是不好,DOM或SAX撒行都有局限(10:20:58)
spring大家说:如果只是对XML的解析的话,应该不是很麻烦的事情吧。(10:20:59)
allenhally说:好的,大家多些交流.(10:21:20)
raider大家说:因为客户端的编程全部用HTC来实现,不好调试(10:21:21)
raider大家说:而且有很多局限性(10:21:38)
spring大家说:比如说?(10:22:03)
**debug**[allen]说:学习学习(10:22:15)
allen大家说:要使用SOAP定义的原始数据类型来保证基于SOAP的Web服务能与所有的Web服务互操作,如J2EE和.NET(10:22:30)
darthvader**debug**说:xml已经成了数据交换的标准了吧,都会遇到解析的问题啊!(10:22:48)
**debug**大家说:例如建立某个行业的信息交换标准,可能会造成信息量非常大(10:23:31)
raider大家说:我们是通过htc也就是jscript来通过gateway来调用.net和j2ee上的soap接口(10:23:39)
raider大家说:数据类型不太兼容,微软的标准和大家不太一样(10:24:11)
**debug**大家说:因为我做信息集成的,关心异地企业之间的信息交换,原来一直相拥SOAP来做(10:24:12)
darthvaderraider说:确实.微软的自己标准是一个问题(10:24:37)
allen大家说:这时需要在XML和SOAP平台差异之间映射的工具(10:25:24)
raider大家说:大家知道glue这个平台吗?(10:26:05)
darthvaderraider说:是不是literal和document两中不同的映射方式产生的差异???(10:26:09)
darthvaderraider说:呵呵,知道的(10:26:15)
darthvaderraider说:我有用过!但是现在没法激活了!申请了新的帐号也不行!很奇怪(10:26:43)
raider大家说:他是一个比较成熟的平台,但是台产品化(10:26:44)
allen大家说:The Mind Electric公司商业化的产品.(10:27:02)
raider大家说:不要licence也可以的(10:27:07)
raider大家说:st版本是免费的(10:27:22)
darthvaderraider说:不会啊!我使用java2wsdl的时候它就会报错啊(10:27:31)
darthvaderraider说:哦~是吗?那我再去下载一个看看(10:27:49)
allen大家说:http://www.themindelectric.com/ 产品主页(10:28:09)
raider大家说:wsif是一个不错的东西(10:28:44)
raider大家说:建立在wsdl4j上(10:29:04)
darthvader大家说:大家觉得soap消息转发的时候有没有必要改变绑定协议??(10:29:10)
darthvaderraider说:呵呵,我还是觉得glue的java2wsdl比较的傻瓜(10:29:33)
raider大家说:wsif支持各种协议(10:29:53)
darthvader大家说:大家觉得soap消息转发的时候有没有必要改变绑定协议???(10:30:10)
darthvader大家说:目前的soap协议中好象没有就这点有详细的说明(10:30:29)
darthvader大家说:比如说一个soap的其实节点是用http绑定的话(10:32:12)
darthvader大家说:那么经过N个中介节点一直到最终节点都是用http绑定?(10:32:43)
darthvader大家说:大家对这个有什么看法????(10:33:46)
spring大家说:我觉得很有必要,不知道在技术上会不会比较难实现呢?(10:36:13)
darthvader[allen]说:两个应用背景,我目前考率的是(10:37:38)
raider大家说:为什么要改变绑定协议?(10:37:42)
spring大家说:可更加灵活些。(10:37:59)
allen大家说:可绑定HTTP,SMTP,JMS,FTP等协议.(10:38:04)
darthvader[allen]说:第一,系统可能是有不同的原有系统的集成..(10:38:13)
darthvader[allen]说:不同的系统可能在不同的防火墙之后...(10:38:27)
darthvader[allen]说:有的允许http通过,有的只允许ftp通过...(10:38:54)
darthvader[allen]说:我觉得这种可能性是存在的(10:39:05)
darthvader[allen]说:那么一个soap消息可能要通过多个在不同防火墙之后的中介(10:39:34)
darthvader[allen]说:到答最终节点.(10:39:48)
darthvader[allen]说:那么一种协议肯定是通不过的(10:40:07)
darthvader[allen]说:这是我认为第一种的应用背景(10:40:46)
allen大家说:对SOAP标准的支持,我个人觉得首先要先完全支持SOAP1.1,然后再一点点支持SOAP1.2(10:41:04)
darthvader[allen]说:嗯,是的.但是1.1和1.2的命名空间有不同的(10:41:39)
darthvader[allen]说:soap 1.2自身作为soap的命名空间也由原来的http://schema.xmlsoap.org(10:43:04)
darthvader[allen]说:变成了http://www.w3c.org的形式了(10:43:22)
darthvader[allen]说:所以,这之间的兼容性怎么解决?(10:43:46)
darthvader[allen]说:我确实没有试过向一个soap1.1 的平台发送一个soap1.2的消息会产生什么样的结果(10:44:17)
spring[allen]说:我觉得我们还没有熟习1.1和1.2的schema(10:46:37)
allen大家说:1.1,1.2版本之间的互操作我们需要去验证,现在比较重要的事,可能要把这两套标准实现.因为关于两个版本的互操作(10:47:17)
allen大家说:需要W3C去处理(10:47:23)
darthvader大家说:按理说1.2应该能够向下兼容吧(10:48:02)
allen大家说:版本的不断的升级和兼容是W3C考虑的问题.我们只要跟紧标准就好.(10:48:38)
allen大家说:理论是这样,但需要去检测.(10:48:50)
darthvader大家说:嗯.现在我们到底是上1.1还是1.2(10:49:11)
darthvader大家说:目前的人力来说只可能实现一套标准(10:49:29)
allen大家说:先实现1.1,因为1.1存在比较久,已经有了不少应用,我们应保证能和这些应用有很好兼容(10:51:11)
darthvader大家说:好的,那就这么定了(10:51:31)
allen大家说:OK,先这样定下来.(10:51:54)
darthvader大家说:呵呵,我个人认为,协议的转换大有文章可做啊(10:54:32)
spring[allen]说:那确实(10:54:58)
allen大家说:协议的转换如何操作?是使用协议插件吗?(10:56:13)
darthvader大家说:这个,我也没有具体考率,这个想法还是一个初步的(10:57:55)
darthvader大家说:协议的转换我觉得对客户来说应该是透明的(10:58:16)
allen大家说:这个考虑也不错.(10:58:45)
darthvader大家说:客户应该只对消息的第一个接收者感兴趣(不一定是最终的)(10:58:56)
darthvader大家说:那么有个问题是中介的节点如何自动发现下一个节点是什么协议允许的呢?(10:59:36)
darthvader大家说:通过UDDI?(10:59:42)
**debug**大家说:是不是有点路由的概念?(11:01:59)
darthvader大家说:对的,有这么点意思在里面,但不完全是(11:02:30)
darthvader大家说:因为本身soap消息的路由是通过header来控制的(11:02:49)
darthvader大家说:用uri来标识节点(11:03:00)
darthvader大家说:所以说目前的问题是,并不是不知道下一个节点是哪个(11:03:30)
darthvader大家说:而是不知道该用什么协议传个下一个节点(11:03:43)
darthvader大家说:传统的方法,好象是一个协议到底.所以就不用考率这个问题(11:04:19)
allen大家说:WS-Inspection 协议好象可对这一功能进行处理(11:04:44)
darthvader[allen]说:你说指的协议插件是什么意思????(11:04:49)
darthvader[allen]说:是吗?我是想把这个直接做到soap平台里面(11:05:25)
darthvader[allen]说:也就是说这个由平台自动完成.因为协议转换本身可业务逻辑无关(11:05:52)
joezxhraider说:f(11:06:13)
allen大家说:Pluggable protocols framework:支持动态的装载不同的协议,我们的orbas1.0使用了此方(11:06:17)
allen大家说:使用了此方法(11:06:30)
allen大家说:WS-Inspection 规范提供了用来帮助探察某个站点以获得可用服务的 XML 格式,(11:07:21)
allen大家说:以及提供了一组关于怎样使与探察相关的信息可用于消费的规则。(11:07:32)
allen大家说:探询用什么协议好象没规范遵循,我们自己去实现.(11:10:04)
darthvader[allen]说:这个是探查服务本身,也就是出入几个什么样的参数可以得到什么回应,而不是什么协议可访问(11:10:22)
darthvader[allen]说:嗯!对的!可能确实需要我们自己来做(11:10:35)
darthvader[allen]说:能不能用ldap里面资源探测的方式????(11:12:41)
allendarthvader说:不太清楚,留着思考(11:14:10)
darthvader大家说:嗯.呵呵,大家有时间都来想想看 (11:31:55)
darthvader大家说:众人的智慧啊....呵呵(11:32:10)
joezxhraider说:感觉没必要自己设计soap,apache的soap,wsil,wsif等已经相当好了,你们不如把精力花在扩展这些东东方面(11:33:50)
joezxh[allen]说:自己开发soap,j2ee server等对于炒做概念有利,但是真正作东西,可能每人会用你们的东东(11:34:54)
allenjoezxh说:你的建议很好,我们想做一个国人自己的实现.(11:35:12)
allenjoezxh说:目前可,可能会没有什么用我们的东西,但炒做概念不是我们要干的.(11:35:39)
darthvaderjoezxh说:我的想法是通过分析国外的产品,实现自己的产品,从而更加理解某项技术.(11:36:03)
darthvaderjoezxh说:这样才能有所扩展啊(11:36:12)
joezxh大家说:估计没人敢使用你们的soap server(11:36:16)
allenjoezxh说:我们正在和一些公司联系,使用和集成我们的部分产品.如JFoxMX,orbas(11:36:27)
raider大家说:joezxh说的对(11:37:13)
allenjoezxh说:我们的OpenWeb-UDDI已有一些成功应用,darthvader可给大家介绍一下.(11:38:15)
raider大家说:怎么没人说话了(11:38:22)
darthvader大家说:我们学校的一些web服务就是使用的我们自己的UDDI实现(11:39:20)
allen大家说:joezxh对我们的建议我们要仔细考虑,但做些实事是我们追求的,而不是炒做概念(11:39:46)
darthvader大家说:比如说一个ASP的在线考试系统,成绩查询部分做成了WEB服务(11:40:22)
allen大家说:另外,已有两,三家公司正考虑基于我们的JFoxMX开发基于JMX的网管系统,(11:41:04)
darthvader大家说:有一个J2EE的学生管理系统使用这个服务来把在线考试的成绩作为平时成绩的一部分(11:41:01)
darthvader大家说:J2EE系统本身一部分查询功能也做成了web服务(11:41:39)
darthvader大家说:一个短信平台使用这个web服务(11:41:57)
darthvader大家说:所以学生可以通过发手机短信的方式来查询自己的一个信息(11:42:24)
allen大家说:我们的Orbas1.0是国内首个完整实现minimum corba1.0规范的开源产品,若是为炒做概念,我们开发这些干什(11:42:30)
allen大家说:我们只想踏踏实实做些事,请大家继续支持我们 (11:44:10)
joezxh大家说:不知道我算不算浇冷水 (11:44:17)
allenjoezxh说:可能你对我们不是很了解,了解多了,就不会认为我们在炒做概念(11:44:58)
allenjoezxh说:请更多关注和支持我们(11:45:13)
allen大家说:今天我们的讨论就到这,谢谢大家的参与(11:45:30)
darthvader大家说:谢谢大家 (11:45:37)
joezxh大家说:http://ws.apache.org/(11:45:56)