论坛首页 Java企业应用论坛

关于 Web Service 的一些理解

浏览 19557 次
精华帖 (0) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (12)
作者 正文
   发表时间:2009-06-17   最后修改:2009-06-18
SOA


关于 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)自动生成客户端。

   发表时间:2009-06-18  
  Web Service也分广义跟狭义。。 基于SOAP的只能算是Web Service的一种实现方式吧。。

  我觉得Web Service就是通过网络提供服务。 我用RMI可以做到。 Rest也可以做到。phprpc也可以做到。 我只是去提供服务。 没得非要用到重量级的标准。无论是axis还是axis2还是cxf。。其实都还算挺麻烦的。 不过在多语言环境下,基于SOAP的Web Service也还是有优势的。。
0 请登录后投票
   发表时间: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 ,轻量高效


0 请登录后投票
   发表时间:2009-06-18  
   学院派的paper来制定标准。什么Soap  什么 wsdl。。  外国的开源社区。大牛们跟进来实现框架。什么Axis。 CXF。  剩下我们这些人来玩别人玩剩下的。

   如果连别人玩剩下的还没个选择权的话。那还是别玩了。玩也得找个好玩的玩。是吧?
0 请登录后投票
   发表时间:2009-06-18   最后修改:2009-06-18
在企业应用中,好多人只了解web service这个概念。把它当做socket来使用了。浪费....
0 请登录后投票
   发表时间:2009-06-18   最后修改:2009-06-18
Saito 写道
   学院派的paper来制定标准。什么Soap  什么 wsdl。。  外国的开源社区。大牛们跟进来实现框架。什么Axis。 CXF。  剩下我们这些人来玩别人玩剩下的。

   如果连别人玩剩下的还没个选择权的话。那还是别玩了。玩也得找个好玩的玩。是吧?

让时间和市场来考验它们吧 !
有些事情身不由己,如果大家都玩,那你不玩也得玩。。

melin 写道
在企业应用中,好多人只了解web service这个概念。把它当做socket来使用了。浪费....

把它当做socket来使用确实浪费了,
就像把衣服当布料使,再做成衣服,没必要绕这么大的弯。。
好像很少有人这么做吧。。
0 请登录后投票
   发表时间: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的主要目的。
0 请登录后投票
   发表时间:2010-04-29  
由于项目 要接触这东西 也只是了解概念 疯狂学习中
0 请登录后投票
   发表时间:2010-04-29  
webservice是一种rpc
rmi也是
0 请登录后投票
   发表时间:2010-04-29  
并不是只有基于SOAP的WebService可以跨平台,跨语言,可互操作。基于SOAP的WebService只是最慢最低效的一种,并且还向melin说的那样总是被当成socket来用,使原本的低效更加低效,而且最后连跨平台,跨语言,互操作的能力都丧失了。WebService的还是非SOAP的轻量级的好。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics