webservice的定义:
1)可以简单的认为:Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。
2)从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。
webservice开源框架的选择:
Axis2 是对 Axis 进行了彻底的重写的一个新项目了,它使用了新的模块化架构,更方便于功能性的扩展等等。
Apache CXF 则是由 XFire 和 Celtix 两个现有的项目进行了重组。
对于现在的应用程序的迁移,如果你的应用程序是稳定而成熟的,并且在可预知的未来的情况下,只要很少的一些需求变更要做的话,那么保存你的体力,不要去做"劳民伤财"的迁移工作了。 如果你的现有应用程序BUG缠身,性能,功能等等都一片糟糕的话,那就要考虑迁移了,那选哪个框架呢?先比较一下它们的不同之处:
1、Apache CXF 支持 WS-Addressing、WS-Policy、WS-RM、WS-Security和WS-I BasicProfile
2、Axis2 支持 WS-Addressing、WS-RM、WS-Security和WS-I BasicProfile,WS-Policy将在新版本里得到支持
3、Apache CXF 是根据Spring哲学来进行编写的,即可以无缝地与Spring进行整合
4、Axis2 不是
5、Axis2 支持更多的 data bindings,包括 XMLBeans、JiBX、JaxMe 和 JaxBRI,以及它原生的 data binding(ADB)。
6、Apache CXF 目前仅支持 JAXB 和 Aegis,并且默认是 JAXB 2.0,与 XFire 默认是支持 Aegis 不同,XMLBeans、JiBX 和 Castor 将在 CXF 2.1 版本中得到支持,目前版本是 2.0.2
7、Axis2 支持多种语言,它有 C/C++ 版本。
8、Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services
如何抉择:
1、如果应用程序需要多语言的支持,Axis2 应当是首选了;
2、如果应用程序是遵循 Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的 Web Services 来说;
3、如果应用程序没有新的特性需要的话,就仍是用原来项目所用的框架,比如 Axis1,XFire,Celtrix 或 BEA 等等厂家自己的 Web Services 实现,就别劳民伤财了。
Axis是Apache组织推出的SOAP引擎,Axis项目是Apache组织著名的SOAP项目的后继项目, 但是Axis不仅仅是一个SOAP引擎,它还包括:
1)一个独立运行的SOAP服务器
2)一个servlet引擎的插件,这个servlet引擎可以是Tomcat
3)对WSDL的扩展支持
4)一个将WSDL的描述生成JAVA类的工具
5)一些示例代码
6)还有一个监控TCP/IP包的工具
Axis2的主要特点:
1)采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。
2)支持不同的消息交换模式。目前Axis2支持三种模式:In-Only、Robust-In和In-Out。In-Only消息交换模式只有SOAP请求,而不需要应答;Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;In-Out消息交换模式总是存在SOAP请求和应答。
3)提供阻塞和非阻塞客户端 API。
4)支持内置的 Web服务寻址 (WS-Addressing) 。
5)灵活的数据绑定,可以选择直接使用 AXIOM,使用与原来的 Axis 相似的简单数据绑定方法,或使用 XMLBeans、JiBX 或 JAXB 2.0 等专用数据绑定框架。
6)新的部署模型,支持热部署。
7)支持HTTP,SMTP,JMS,TCP传输协议。
8)支持REST (Representational State Transfer)。
XFire属于新一代的Web服务引擎。"新一代"不只是营销术语,它具有一定的重要意义。Apache Axis是Java领域最早的Web服务引擎之一,已成为后来问世的所有工具的衡量基准。在过去的几年里,Axis及其他这些工具已在许多生产环境进行了现场测试。获得的重要经验教训之一就是,Web服务并非最适合RPC类型的通信。出于性能和效率的考虑,面向文档的消息传输类型的通信才是出路。但Apache Axis及其他大多数Web服务引擎在设计上却是面向RPC的(不过它们支持文档类型)。业界现正在开发新一代的SOAP引擎,它们在设计上是面向文档的。Apache已经宣布停止开发旧版的Axis引擎,现正在开发Axis2(最新发布前版本为0.95)。
XFire的高级特性和功能:
1)本地数据绑定功能。支持普通Java对象(POJO)、XMLBeans、面向XML绑定的Java架构(JAXB)和Castor等。数据绑定指定了发送至Web服务的XML请求以及返回的XML响应如何映射成Java对象。
2)使用用于XML的流式API(StAX)处理XML文档。与文档对象模型(DOM)的基于树形的方法以及用于XML的简单API(SAX)的事件驱动方法相比,StAX使用了基于拉取的机制,这不但大大加快了速度,还提高了内存的使用效率。
3)支持各种传输协议,譬如HTTP、Java消息服务(JMS)和Java虚拟机内部传输(in-JVM transport)。
4)嵌入功能,这是XFire的主要优点之一。可以把这个SOAP引擎嵌入到应用当中,完全隐藏XFire特定的所有引用,因为所有配置都是程序驱动的。
5)具有丰富的API,这样一来,非常容易定制,让开发人员可以在需要时,在不同阶段截获请求,并且进行处理。
6)符合诸多最新标准,譬如SOAP 1.1(没有编码的远程过程调用即RPC)和1.2、WSDL 1.1、Web服务互操作性组织的Basic Profile 1.0、Web服务寻址规范和Web服务安全标准。
XFire的性能和局限:
Web服务使用许多资源,但它们的性能并不高。XFire打破了这个传统。与同类的SOAP引擎相比,XFire使用的内存大大减少(一方面是由于使用StAX),而性能却大大提高。
另外,XFire还提供了进一步优化性能的几种方法。方法之一就是使用Java虚拟机内部传输。如果知道Web服务与客户程序在同一个Java虚拟机里面运行,就可以选择使用本地传输,这样可以高速传输服务。在示例的客户程序代码当中,请注意指定了服务端点URL的那一行:
String serviceUrl = "http://localhost:8080/websvc/services/Banking"; 被换成了:
String serviceUrl = "xfire.local://Banking";
可以看到,性能的大幅度提升是因为绕开了整个网络层。
不过,XFire也具有一些严重的局限性,同样应当引起注意:
开发Web服务的一个好的做法就是,从WSDL开始着手。大多数SOAP引擎提供了利用WSDL创建服务占位模块的工具。XFire也提供了这样一个工具。但它需要使用注解,因而需要J2SE 5.0。这对仍坚持使用J2SE 1.4.X的人来说并不受欢迎,因为他们用其他方法来编写客户程序。
1.XFire发布服务的方式:
1)直接使用 Web 服务接口和 Web 服务实现类(POJO)来发布
2)基于 JSR181 标准和注释技术将被注释的 POJO 发布成 Web 服务
2.XFire发布服务的步骤:
1)定义接口(第二种发布服务的方式不用定义接口)
2)实现类
3)配置:\META-INF\xfire\services.xml
CXF
分享到:
相关推荐
【WebService概述】 Web Service是一种基于XML(可扩展标记语言)的通信技术,它允许不同的系统在互联网或内部网络上相互通信。Web Service的核心概念包括SOAP(简单对象访问协议)、WSDL(Web服务描述语言)和UDDI...
### CXF框架开发WebService概述及代码 #### WebService概念与CXF框架 WebService技术使得不同系统之间能够通过网络进行通信,而无需关心底层的具体实现细节。这种基于HTTP协议的组件服务,强调的是分布式应用程序...
详细讲述了 webservice 附带 小案例 让您轻松理解webservice
Web服务(WebService)是一种基于互联网的、平台独立的交互方式,允许不同系统之间进行数据交换和功能调用。它利用开放标准如XML(可扩展标记语言)、SOAP(简单对象访问协议)和WSDL(Web服务描述语言)来实现跨...
### WebService概述与基本用法 #### 一、WebService简介 WebService是一种标准的跨平台通信方式,它允许在不同技术栈之间进行数据交换和服务交互。通过WebService,可以在不同的应用程序之间共享业务逻辑、数据和...
#### 一、WebService概述 WebService是一种平台独立的、分布式的、基于互联网的应用程序接口(API),它使用标准的Internet协议(如HTTP)进行通信,并使用XML来交换数据。WebService的核心优势在于它能实现跨平台...
#### 二、Webservice概述 Webservice是一种支持HTTP协议的服务,可以实现不同应用之间的交互。它通常基于XML和SOAP等标准协议来定义接口和服务,使得服务提供者与消费者可以在不同的平台上进行通信。在SAP系统中,...
#### 一、WebService 概述与HTTP协议的应用 WebService是一种跨语言、跨平台的应用程序接口(API),它允许不同系统之间进行数据交换和功能调用。WebService通常通过HTTP协议来实现,这是因为HTTP是互联网上应用最...
### WebService概述 WebService是一种允许不同应用程序之间进行通信的技术标准。它提供了一种简单的方法来实现系统间的信息交换和服务共享,使得位于不同位置的应用能够通过网络互相调用对方提供的服务。WebService...
一、WebService概述 WebService是一种通过互联网进行通信的协议,它允许不同的应用程序之间交换数据。WebService基于标准的XML(可扩展标记语言)和WSDL(Web服务描述语言)进行交互,可以跨平台、跨语言地工作。...
### WebService概述 #### WebService简介 WebService是一种用于在分布式环境中进行远程调用的技术,它允许应用程序通过网络相互通信并共享数据。由于其具备跨编程语言和跨操作系统平台的能力,WebService成为了现代...
#### 一、WebService概述 1. **定义**: - WebService是一种跨编程语言和操作系统平台的远程调用技术,它允许程序通过HTTP协议访问远程服务器上的应用服务资源。 - WebService的核心是XML、SOAP、WSDL和UDDI等...
2. WebService概述: - WebService是一种基于开放标准(如SOAP、WSDL、UDDI)的互操作性技术,允许不同系统间的应用程序通过网络交换数据。 - SOAP(Simple Object Access Protocol)是传输协议,用于在Web上交换...
一、WebService概述 WebService是一种基于XML的网络服务,它提供了标准的接口定义(WSDL,Web Services Description Language)和消息交换协议(SOAP,Simple Object Access Protocol)。通过WebService,不同的应用...
#### XML WebService概述与特性 XML WebService是一种通过互联网进行数据交换和服务交互的技术,其核心在于提供了跨平台、跨语言的通信能力。WebService本质上是一个对外公开的、标准化的、基于XML的Web应用,允许...
#### 三、WebService概述与特点 1. **WebService的目标**:构建一个通用的、与应用无关、语言无关的技术层,用于不同平台之间的应用连接和集成。与传统的Web技术关注于人与Web应用的交互不同,WebService专注于系统...
WebService概述 Web Service是一种通过SOAP(Simple Object Access Protocol)协议在Web上提供和消费服务的方法。它基于WSDL(Web Services Description Language)描述服务接口,UDDI(Universal Description, ...