所谓跨编程语言和跨操做平台,就是说服务端程序采用Java编写,客户端程序则能够采用其余编程语言编写,反之亦然!跨操做系统平台则是指服务端程序和客户端程序能够在不一样的操做系统上运行。web
所谓远程调用,就是一台计算机a上的一个程序能够调用到另一台计算机b上的一个对象的方法。譬如从天气预报系统中获取某个城市的天气数据在本身系统中进行展现;从证券交易系统中获取某只股票的交易信息在本身的系统中进行展现;又譬如一个商城系统中可以展现快递的跟踪信息,而这些信息就是经过webservice从具体的快递公司的系统中获取的数据。spring
其实能够从多个角度来理解WebService,从表面上看,WebService就是一个应用程序向外界暴露出一个能经过Web进行调用的API,也就是说能用编程的方法经过Web来调用这个应用程序。咱们把调用这个WebService的应用程序叫作客户端,而把提供这个WebService的应用程序叫作服务端。从深层次看,WebService是创建可互操做的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操做性,你能够用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要咱们能够经过Web service标准对这些服务进行查询和访问。编程
Webservice经常使用框架有JWS、Axis二、XFire以及CXF。网络
下面分别介绍一个这几种Web Service框架的基本概念架构
一、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务自己的角度来看JWS服务是没有语言界限的。可是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径。
二、Axis2是Apache下的一个重量级WebService框架,准确说它是一个Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制做和发布WebService,并且能够生成Java和其余语言版WebService客户端和服务端代码。这是它的优点所在。可是,这也不可避免的致使了Axis2的复杂性,使用过的开发者都知道,它所依赖的包数量和大小都是很惊人的,打包部署发布都比较麻烦,不能很好的与现有应用整合为一体。可是若是你要开发Java以外别的语言客户端,Axis2提供的丰富工具将是你不二的选择。
三、XFire是一个高性能的WebService框架,在Java6以前,它的知名度甚至超过了Apache的Axis2,XFire的优势是开发方便,与现有的Web整合很好,能够融为一体,而且开发也很方便。可是对Java以外的语言,没有提供相关的代码工具。XFire后来被Apache收购了,缘由是它太优秀了,收购后,随着Java6 JWS的兴起,开源的WebService引擎已经再也不被看好,渐渐的都败落了。
四、CXF是Apache旗下一个重磅的SOA简易框架,它实现了ESB(企业服务总线)。CXF来自于XFire项目,通过改造后造成的,就像目前的Struts2来自WebWork同样。能够看出XFire的命运会和WebWork的命运同样,最终会淡出人们的视线。CXF不可是一个优秀的Web Services / SOAP / WSDL 引擎,也是一个不错的ESB总线,为SOA的实施提供了一种选择方案,固然他不是最好的,它仅仅实现了SOA架构的一部分。
注:对于Axis2与CXF之间的关系,一个是Axis2出现的时间较早,而CXF的追赶速度快。框架
如何抉择:
一、若是应用程序须要多语言的支持,Axis2应当是首选了;
二、若是应用程序是遵循 spring哲学路线的话,Apache CXF是一种更好的选择,特别对嵌入式的Web Services来讲;
三、若是应用程序没有新的特性须要的话,就还是用原来项目所用的框架,好比 Axis1,XFire,Celtrix或BEA等等厂家本身的Web Services实现,就别劳民伤财了。编程语言