IT修真院_JAVA

什么是WEBService,实现WEBService有哪些框架,

2017-09-09  本文已影响0人  CodeBuilder

github:https://ptteng.github.io/PPT/PPT-java/Java-task2-webservice.html#/

什么是WEBService,实现WEBService有哪些框架,为什么WEBService经常被认为太重了,只有银行和大型国企才会使用的更多有一些?

什么是webservice

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

webservice分类

在SOA的基础技术实现方式中WebService占据了很重要的地位,通常我们提到WebService第一想法就是SOAP消息在各种传输协议上交互。近几年REST的思想伴随着SOA逐渐被大家接受,同时各大网站不断开放API提供给开发者,也激起了REST风格WebService的热潮。

基于soap的webservice

其实SOAP最早是针对RPC的一种解决方案,简单对象访问协议,很轻量,同时作为应用协议可以基于多种传输协议来传递消息(Http,SMTP等)。但是随着SOAP作为WebService的广泛应用,不断地增加附加的内容,使得现在开发人员觉得SOAP很重,使用门槛很高。在SOAP后续的发展过程中,WS-*一系列协议的制定,增加了SOAP的成熟度,也给SOAP增加了负担。

rest式的webservice

REST其实并不是什么协议也不是什么标准,而是将Http协议的设计初衷作了诠释,在Http协议被广泛利用的今天,越来越多的是将其作为传输协议,而非原先设计者所考虑的应用协议。SOAP类型的WebService就是最好的例子,SOAP消息完全就是将Http协议作为消息承载,以至于对于Http协议中的各种参数(例如编码,错误码等)都置之不顾。其实,最轻量级的应用协议就是Http协议。对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。

restful不一定就要用json,xml同样可以,不过是类似去掉header的soap webservice。要注意的是,就算是restful,大多数公司也没有完全遵守,而且在复杂的业务接口设计下,要通过RUCD来抽象所有的接口作为资源基本是不实际的。很多公司只是套了个rest的壳子,自己在内部实现了别的协议,所以只要能达到目的,无论是基于soap的还是restful的webservice,并不一定都是泾渭分明的。

那该如何选择?

REST对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景。SOAP的成熟性可以给需要提供给多开发语言的,对于安全性要求较高的接口设计带来便利。

总的来说,基于soap协议的webservice由于有历史包袱,在安全性和扩展性上增强了很多,而且使用xml解析。相应地效率也不如rest式的。但restful的webservice速度虽然可以,但安全性上远不如上一个。所以没必要一定分是非高下,关键还是看应用场景。比如银行国企自然走soap协议的,对安全要求不高的web项目自然去追求速度。

常用的webservice框架

如cfx、jwx、XFire与Axis2,jwx也就是jax-ws,是java6提供的对webservice的一种实现。cxf框架则简化了服务发布过程。Axis与XFire已随着技术不断的更替慢慢落幕,而目前也只有axis2和cxf官方有更新,Axis与XFire都已不再更新。

上一篇下一篇

猜你喜欢

热点阅读