`

WebService相关

阅读更多
   之前由于工作需要,也接触到一些webService相关的开发,但是自己一直对webService不是很理解,自己几次使用webService感觉效果也不是很理想,感觉效率较低,后面都是使用httpClient来实现 交互,在最近看了《java中间件》中关于webService相关的介绍,才发现自己以前对webService的认识还是太少了。
    Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
    xml是webService平台中表示数据的基本格式,xml的优点在于,它既是平台无关的,又是厂商无关的。这种无关性是比技术优越性更重要。
    xml解决了数据表示问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型(如整型数到底代表什么?16位?32位?)。W3C制定的XML Schema(XSD)就专门来解决这一问题。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。webService平台就是用XSD来作为其数据类型系统,当用某种语言(java,c++)来构造一个webService时,为了符合WebService标准,使用的所有的数据类型都必须转换为XSD类型。
    webService描述语言(WSDL)是一个基于XML的语言,用于描述webService及其函数,参数,返回值
    webService的调用,WebService原来有两种方式调用,一是SOAP协议方式,在这种方式下需要WSDL,UDDI等,二是REST方式。soap提供了标准的RPC方法来调用webService,soap规范定义了soap消息的格式,以及怎样通过http协议来使用soap,soap也是基于xml和xsd的xml是soap的数据编码格式。
    其他:webService框架(基于java)
     1、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务本身的角度来看JWS服务是没有语言界限的。但是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径。
     2、Axis2是Apache下的一个重量级WebService框架,准确说它是一个Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制作和发布WebService,而且可以生成Java和其他语言版WebService客户端和服务端代码。这是它的优势所在。但是,这也不可避免的导致了Axis2的复杂性,使用过的开发者都知道,它所依赖的包数量和大小都是很惊人的,打包部署发布都比较麻烦,不能很好的与现有应用整合为一体。但是如果你要开发Java之外别的语言客户端,Axis2提供的丰富工具将是你不二的选择。
     3、XFire是一个高性能的WebService框架,在Java6之前,它的知名度甚至超过了Apache的Axis2,XFire的优点是开发方便,与现有的Web整合很好,可以融为一体,并且开发也很方便。但是对Java之外的语言,没有提供相关的代码工具。XFire后来被Apache收购了,原因是它太优秀了,收购后,随着Java6 JWS的兴起,开源的WebService引擎已经不再被看好,渐渐的都败落了。
     4、CXF是Apache旗下一个重磅的SOA简易框架,它实现了ESB(企业服务总线)。CXF来自于XFire项目,经过改造后形成的,就像目前的Struts2来自WebWork一样。可以看出XFire的命运会和WebWork的命运一样,最终会淡出人们的视线。CXF不但是一个优秀的Web Services / SOAP / WSDL 引擎,也是一个不错的ESB总线,为SOA的实施提供了一种选择方案,当然他不是最好的,它仅仅实现了SOA架构的一部分。
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics