webService基本概念

webService

1)webService即web服务,它是一种跨编译语言和跨操作系统平台的远程调用技术。

 

2)java中共有三种WebService规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。

3)webService的三要素:soap、wsdl、uddi。

(1)JAX-WS:(soap协议)

JAX-WS(JAVA API For XML-WebService) ,JDK1.6自带的版本为JAX-WS2.1,其底层支持为JAXB。

JAX-WS(JSR 224)规范的API 位于javax.xml.ws.* 包,其中大部分是注解,提供API操作web服务,(通常在客户端的使用的较多,由于客户端可以借助SDK 生成,因此这个包中的API 我们较少会直接使用)。

(2)JAXM&SAAJ:可以更方便的操作协议内容

JAXM(JAVA API FOR XML Message)主要定义包含了发送和接收消息所需的API,想当于Web服务的服务器端,

其API位于javax.messaging.*包,它是JAVA EE 的可选包,因此 需要单独下载。

SAAJ(SOAP With Attachement API For Java ,JSR 67)是与JAXM 搭配使用的API,为构建SOAP 包和解析

SOAP包提供了重要的支持,支持福建传输,它在服务器端,客户端,都需要使用,这里还要提到SAAJ 规范,其API位于javax.xml.soap.*包。 JAXM&JAX-WS 都是基于SOAP 的web服务,相比之下,JAXM&SAAJ 暴露了SOAP 的更多细节,编码比较麻烦,而JAX-WS 更加抽象,隐藏了更多细节更加面向对象,实现起来基本不用关心SOAP的任何细节。

(3)JAX-RS:

JAX-RS是JAVA针对REST(RepresentationState Transfer)风格制定的一套Web服务规范,由于推出的较晚,该规范(JSR 311 目前JAX-RS的版本为1.0) 并未随JDK1.6一起发行,你需要到JCP上单独下载JAX-RS 规范的接口,其API 位于javax.ws.rs.*包。

这里的JAX-WS 和JAX-RS 规范我们采用Apache CXF 作为实现。

SOAP协议:

(1)SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML(表中通用标记语言下一个子集)编码信息的轻量级协议,它有三个主要方面: XML-envelope为描述恓内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,

执行远程过程调用(RPC)的约定,SOAP 可以运行在任何其他传输协议上。

(2)SOAP 作为一个基于XML 语言的协议用于网上传输数据。

(3)SOAP = HTTP 的基础+XML数据。

(4)SOAP 是基于HTTP的。

(5)SOAP的组成如下

a)Envelope -必须的部分。以XML的根元素出现。

b)Headers - 可选的。

c)Body - 必须的,在body部分,包含要执行的服务器的方法,和发送到服务器的数据。

WSDL 说明书:

Web Service 描述语言WSDL(SebService Definition Language)就是用机器能够阅读的方式提供的一个正式描述文档而基于XML

(标准通用语言下的一个子集)的语言用于描述Web Service 及其函数、参数和返回值,因为是基于XML 的,所以WSDL 即使及其可以阅读的,又是人可以阅读的。

1)通过wsdl说明书,就可以描述webservice 服务端对外发布的服务;

2)wsdl 说明书是一个基于xml 文件,通过xml语言描述整个服务;

3)在wsdl 说明中,描述了:

对外发布的服务名称(类)
接口方法名称(方法)

接口参数(方法参数)

服务返回的参数类型(方法返回值)

UUDI

Web 服务提供商有如何将自己开发的Web服务发布到因特网上,这就需要用到UUDI了,UUDI的话,是一个跨产业,跨平台的开放性架构,可以帮助Web服务提供商在互联网上发布Web服务的信息。UUDI 是一种目录服务,企业可以通过UUDI 来注册和搜索web服务。

简单来说的话,UUDI 就是一个目录,只不过在这个目录中存放的是一些关于Web服务的信息而已。并且UDDI 通过SOAP 进行通讯,构建于.Net 之上。

UDDI 即 Universal Description  DescriptIon, Discovery andintegration 也就是通用的描述,发现以及整合。

应用场景

webService 可以适用于应用程序集成、软件重用、跨防火墙通信等需求,不同的业务要求不同。具体如下:

1)跨防火墙通信

2)应用系统集成

3)软件和数据重用

简单来说,如果是一个功能,需要被多个系统使用,可以使用webservice开发一个服务端接口,供不用的客户端应用。主要应用在企业内部系统之间的接口调用、面向公网的webservice服务。

优缺点:

优点:

a)异构平台的互通性

理论上,webService 最大的优势是提供了异构平台的无缝衔接技术手段,由于不同的用户使用不同的硬件平台,不同的操作平台,不同的操作系统,不同的软件,不同的协议通信,这就产生了互通通信的需求,WebService 使得任何两个应用程序,只要能读写XML,那么就能够通信。

b)更广泛的软件复用(例如手机淘宝可以复用已有淘宝的业务逻辑)

软件的复用技术通过组合已有模块来搭建应用程序,能够大幅度提高软件的生产效率和质量,用户只要获得了描述 Web Service 的WSDL 文件,就可以方便的生成客户端代理,并通过代理访问Web Service。

c)低成本、可读性强、应用范围广

webSer 可以基于XML 的SOAP 来表示数据和调用请求,并且通过HTTP 协议传输XML 格式的数据。

d)迅捷的软件发行方式

每个webService称为一个生产者,不同的生产者可以互相协同合作完成整个应用,webService 将彻底的改变软件的发行方式。

e)跨语言传递对象

客户端与服务端可能是用不同的语言开发的,但是通过webService 提供服务接口,客户端和服务端之间可以传递对象。

缺点

由于SOAP 是基于XML 传输,本身使用XML 传输会传输一些无关内容从而影响效率,随着 SOAP 协议的完善,SOAP 协议增加了许多内容,这样就导致了使用SOAP 去完成简单的数据传输而携带的信息更多效率再受影响;

WebService 作为web跨平台访问的标准技术,很多公司都限定要求使用WebService,但是如果是简单的接口可以直接使用HTTP 传输自定义的数据格式,开发更快捷。

面向服务架构SOA 

SOA(Service-OrientedArchitecture)面向服务架构师一种思想,它将应用程序的不同功能单元通过中立的契约(独立于硬件平台、操作系统和编程语言)联系起来,使得各种形式的功能单元更好的集成。目前来说WebSer 是SOA 的一种较好的实现方式, WebService 采用HTTP 作为传输协议,SOAP 作为传输消息的格式 但是webservice 并不是完全符合SOA 的概念,因此SOAP 协议时WebService 的特有协议,并未符合SOA 的传输协议透明化的要求,SOAP协议是一种应用协议,早起应用于RPC 的实现,传输协议可以依赖于HTTP,SMTP等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值