锁定老帖子 主题:关于 Web Service 的一些理解
精华帖 (0) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (12)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-17
最后修改:2009-06-18
关于 Web Service 的一些总结,一些理解
1,什么是 Web Service ? Web Service 就是一个网络组件(一个可以通过网络访问的程序)。 它有一个或多个端口(Port),这些端口用于接收客户端的请求,并返回响应 请求和响应的 都是一种基于XML的消息。 不过这种消息遵循特定的格式(SOAP )。
2,怎样调用 Web Service? 可能这样说不太准确,应该是“怎样调用Web Service中定义的操作 ” 每个Web Service 都有一个描述文件(WSDL ), 它描述 一个 Web Service 的如下方面: (1)服务的端口(接收SOAP消息的端口) (2)服务提供的操作 (3)操作的输入输出格式的定义(通过XMLSchema 定义输入输出格式) 有了Web Service 的描述文件(WSDL ),我们就知道怎样调用这个Web Service 中定义的操作了。 (1)通过服务提供的操作找到你想调用的操作 (2)找到这个操作的输入格式的定义(XMLSchema ),按照这种输入格式构造一个SOAP消息 (3)将这个SOAP消息发送到服务的指定端口 (4)准备接收一个从Web Service服务器返回的 SOAP 响应吧 !
3,Web Service服务器 一个Web Service服务器,本质上和一个Web服务器是相同的。 它主要做下面这些事:
--> 监听网络端口(监听服务端口) --> 接收客户端请求(接收SOAP请求) --> 解析客户端请求(解析SOAP消息,将SOAP消息转换为数据对象) --> 调用业务逻辑 (调用Web Service实现类的特定操作,参数是由SOAP消息 转换而来的数据对象) --> 生成响应 (将返回值转换为SOAP消息) --> 返回响应 (返回SOAP响应)
4,Web Service客户端 一个Web Service客户端,顾名思义是和一个Web Service服务器进行交互。 下面是一个Web Service客户端调用Web Service的基本过程。 --> 构造SOAP请求消息(将本地数据对象转换为SOAP消息) --> 发送SOAP消息到Web Service服务器的指定端口 --> 接收SOAP响应消息 --> 将SOAP响应消息转换为本地数据对象
其实大部分Web Service客户端 都不需要我们来编写,很多Web Service框架 都支持由 Web Service 的描述文件(WSDL)自动生成客户端。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-06-18
Web Service也分广义跟狭义。。 基于SOAP的只能算是Web Service的一种实现方式吧。。
我觉得Web Service就是通过网络提供服务。 我用RMI可以做到。 Rest也可以做到。phprpc也可以做到。 我只是去提供服务。 没得非要用到重量级的标准。无论是axis还是axis2还是cxf。。其实都还算挺麻烦的。 不过在多语言环境下,基于SOAP的Web Service也还是有优势的。。 |
|
返回顶楼 | |
发表时间:2009-06-18
Saito 写道 Web Service也分广义跟狭义。。 基于SOAP的只能算是Web Service的一种实现方式吧。。
我觉得Web Service就是通过网络提供服务。 我用RMI可以做到。 Rest也可以做到。phprpc也可以做到。 我只是去提供服务。 没得非要用到重量级的标准。无论是axis还是axis2还是cxf。。其实都还算挺麻烦的。 不过在多语言环境下,基于SOAP的Web Service也还是有优势的。。 现在提起 Web Service 一般都是指 Big Web Service (WSDL,SOAP,UDDI。。。), 感觉RMI,RPC 都是针对特定语言,不通用,不过应该有效率上的优势 个人更喜欢 RESTful Web Service ,轻量高效 |
|
返回顶楼 | |
发表时间:2009-06-18
学院派的paper来制定标准。什么Soap 什么 wsdl。。 外国的开源社区。大牛们跟进来实现框架。什么Axis。 CXF。 剩下我们这些人来玩别人玩剩下的。
如果连别人玩剩下的还没个选择权的话。那还是别玩了。玩也得找个好玩的玩。是吧? |
|
返回顶楼 | |
发表时间:2009-06-18
最后修改:2009-06-18
在企业应用中,好多人只了解web service这个概念。把它当做socket来使用了。浪费....
|
|
返回顶楼 | |
发表时间:2009-06-18
最后修改:2009-06-18
Saito 写道 学院派的paper来制定标准。什么Soap 什么 wsdl。。 外国的开源社区。大牛们跟进来实现框架。什么Axis。 CXF。 剩下我们这些人来玩别人玩剩下的。
如果连别人玩剩下的还没个选择权的话。那还是别玩了。玩也得找个好玩的玩。是吧? 让时间和市场来考验它们吧 ! 有些事情身不由己,如果大家都玩,那你不玩也得玩。。 melin 写道 在企业应用中,好多人只了解web service这个概念。把它当做socket来使用了。浪费....
把它当做socket来使用确实浪费了, 就像把衣服当布料使,再做成衣服,没必要绕这么大的弯。。 好像很少有人这么做吧。。 |
|
返回顶楼 | |
发表时间:2009-06-18
Saito 写道 Web Service也分广义跟狭义。。 基于SOAP的只能算是Web Service的一种实现方式吧。。
我觉得Web Service就是通过网络提供服务。 我用RMI可以做到。 Rest也可以做到。phprpc也可以做到。 我只是去提供服务。 没得非要用到重量级的标准。无论是axis还是axis2还是cxf。。其实都还算挺麻烦的。 不过在多语言环境下,基于SOAP的Web Service也还是有优势的。。 写一个 SOCKET Server 也可以实现通过网络提供服务, 但这不是 Web Service 的主要目的, 跨平台,跨语言,可互操作才是Web service的主要目的。 |
|
返回顶楼 | |
发表时间:2010-04-29
由于项目 要接触这东西 也只是了解概念 疯狂学习中
|
|
返回顶楼 | |
发表时间:2010-04-29
webservice是一种rpc
rmi也是 |
|
返回顶楼 | |
发表时间:2010-04-29
并不是只有基于SOAP的WebService可以跨平台,跨语言,可互操作。基于SOAP的WebService只是最慢最低效的一种,并且还向melin说的那样总是被当成socket来用,使原本的低效更加低效,而且最后连跨平台,跨语言,互操作的能力都丧失了。WebService的还是非SOAP的轻量级的好。
|
|
返回顶楼 | |