个人理解很粗浅,只是谈谈感受,希望能抛砖引玉。就从本次项目的实际需求说起,这次需要将我们的系统与一个老系统进行对接,目的是把一些业务数据在两个系统之间传来传去
这个需求很简单,实际上用更加轻量级的servlet+json来做也是可以的,但是由于老系统要求使用web service,所以也只能接受
于是我就在想,web service和servlet的区别在哪里。如果一个servlet被互联网上很多应用所调用,那么也就可以认为它是一个广义上的web service了。而狭义上的web service,似乎可以理解成soap+wsdl
根据我的理解,web service和一般的servlet(或者其他平台的服务端技术)主要有2个区别:
1、普通的servlet,走的协议是自定义的格式(比如自己定义的plain text或者是xml),或者最近几年比较流行的json。而web service走的协议是soap。这就造成一个后果,即普通的servlet,客户端需要自己对传输的内容进行解析,而web service的客户端则省去了这个步骤,因为各平台的web service实现框架(比如java平台有cxf),会代劳实体数据和soap的转换
2、普通的servlet,客户端代码需要自行开发。比如我知道某个地址提供了一个服务,那么我需要在了解接口协议之后,用httpclient+字符串解析等方式,来自行开发客户端的代码。而web service规范规定了wsdl文件,那么各平台的web service实现框架,可以提供一些工具,由wsdl生成平台相关的代码ÿ
这个需求很简单,实际上用更加轻量级的servlet+json来做也是可以的,但是由于老系统要求使用web service,所以也只能接受
于是我就在想,web service和servlet的区别在哪里。如果一个servlet被互联网上很多应用所调用,那么也就可以认为它是一个广义上的web service了。而狭义上的web service,似乎可以理解成soap+wsdl
根据我的理解,web service和一般的servlet(或者其他平台的服务端技术)主要有2个区别:
1、普通的servlet,走的协议是自定义的格式(比如自己定义的plain text或者是xml),或者最近几年比较流行的json。而web service走的协议是soap。这就造成一个后果,即普通的servlet,客户端需要自己对传输的内容进行解析,而web service的客户端则省去了这个步骤,因为各平台的web service实现框架(比如java平台有cxf),会代劳实体数据和soap的转换
2、普通的servlet,客户端代码需要自行开发。比如我知道某个地址提供了一个服务,那么我需要在了解接口协议之后,用httpclient+字符串解析等方式,来自行开发客户端的代码。而web service规范规定了wsdl文件,那么各平台的web service实现框架,可以提供一些工具,由wsdl生成平台相关的代码ÿ