1.1 什么是web服务

这里列举一些常见的web服务:

  1. 手机淘宝、京东….

  2. 天气预报

  3. 手机号归属地

  4. 股票查询

  5. 发手机短消息

  6. 手机充值功能

  7. 中英文翻译

  8. 银行转账业务

  9. 公司的“进销存系统”在某商品缺货时自动给供应商下订单

1.2 简介

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

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

(3) webService三要素:soap、wsdl、uddi

1.3 术语

1.3.1 webservice开发规范

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

下面来分别简要的介绍一下这三个规范。

(1.)JAX-WS:

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 Attachment API For Java,JSR 67)是与JAXM 搭配使用的API,为构建
SOAP 包和解析SOAP 包提供了重要的支持,支持附件传输,它在服务器端、客户端都需要使用。这里还要提到的是SAAJ 规范,其API 位于javax.xml.soap.*包。JAXM&SAAJ 与JAX-WS 都是基于SOAP 的Web 服务,相比之下JAXM&SAAJ暴漏了SOAP更多的底层细节,编码比较麻烦,而JAX-WS 更加抽象,隐藏了更多的细节,更加面向对象,实现起来你基本上不需要关心SOAP 的任何细节。那么如果你想控制SOAP 消息的更多细节,可以使用JAXM&SAAJ,目前版本为1.3。

(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 作为实现,CXF 是Objectweb Celtix和Codehaus XFire 合并而成。CXF 的核心是org.apache.cxf.Bus(总线),类似于Spring 的ApplicationContext,Bus 由BusFactory 创建,默认是SpringBusFactory 类,可见默认CXF是依赖于Spring 的,Bus 都有一个ID,默认的BUS 的ID 是cxf。你要注意的是Apache CXF2.2 的发行包中的jar 你如果直接全部放到lib 目录,那么你必须使用JDK1.6,否则会报JAX-WS 版本不一致的问题。对于JAXM&SAAJ 规范我们采用JDK 中自带的默认实现。

1.3.2 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部分,包含要执行的服务器的方法。和发送到服务器的数据。

1.3.3 wsdl说明书

Web Service描述语言WSDL(SebService Definition Language)就是用机器能阅读的方式提供的一个正式描述文档而基于XML(标准通用标记语言下的一个子集)的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。
wsdl说明书
1) 通过wsdl说明书,就可以描述webservice服务端对外发布的服务;
2) wsdl说明书是一个基于xml文件,通过xml语言描述整个服务;
3) 在wsdl说明中,描述了:
​ 对外发布的服务名称(类)
​ 接口方法名称(方法)
​ 接口参数(方法参数)
​ 服务返回的数据类型(方法返回值)

1.3.4 UDDI

Web 服务提供商又如何将自己开发的 Web 服务公布到因特网上,这就需要使用到 UDDI 了,UDDI的话,是一个跨产业,跨平台的开放性架构,可以帮助 Web 服务提供商在互联网上发布 Web 服务的信息。UDDI 是一种目录服务,企业可以通过 UDDI 来注册和搜索 Web 服务。
简单来时候话,UDDI 就是一个目录,只不过在这个目录中存放的是一些关于 Web 服务的信息而已。并且 UDDI 通过SOAP 进行通讯,构建于 . Net 之上。UDDI 即 Universal Description,Discovery andIntegration,也就是通用的描述,发现以及整合。UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

(一)Web Service——基本概念相关推荐

  1. Web Service 基本概念和技术应用

    (一) Web Service 技术的名词解释 往往某一知识点的基本概念总是枯燥而乏味的,但若能花费些时间好好的理解,也能获益匪浅. Web Service 也称作 XML Web Service,是 ...

  2. Web Service 的工作原理

    Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

  3. Web service是什么?

    一.Web service的概念 想要理解Web service,必须先理解什么是Service(服务). 传统上,我们把计算机后台程序(Daemon)提供的功能,称为"服务"(s ...

  4. web service(web服务)总结

    由于开发需要用到接口, 想到了web service 以前了解过web service 但是没有实际写过, 今天就工作需要写一篇示例, 谨以为后学之人提供一点了解途径. 首先 说明的是我用的开发环境是 ...

  5. [转载] Web Service工作原理及实例

    一.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...

  6. Web Service入门简介(一个简单的WebService示例)

    一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intrane ...

  7. 关于Restful Web Service的一些理解

    对于restful web service,刚开始确实是个不太好理解的概念. 看了些文章,总是在描述和解释restful的原则: 1)显式地使用HTTP方法. 2)无状态. 3)公开目录结构式的 UR ...

  8. Web service 是什么 ?

    我认为,下一代互联网软件将建立在Web service(也就是"云")的基础上. 我把学习笔记和学习心得,放到网志上,欢迎指正. 今天先写一个最基本的问题,Web service到 ...

  9. Web Service 系列 → 第一个 Hello Word

    一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intrane ...

最新文章

  1. OpenCvSharp手绘ROI区域+模板匹配+霍夫变换检测圆的边界
  2. iPhone开发环境搭建For PC
  3. oracle数据导入-dblink方式
  4. 阿里云边缘云荣获“分布式云创新奖”与“先进边缘云架构奖”
  5. html里table的scope,HTML表格的运用
  6. Expression Blend实例中文教程(6) - 项目控件和用户交互控件快速入门
  7. python必背入门代码-初学Python必背手册
  8. Javascript执行效率总结
  9. 机器学习常见的优化算法
  10. 安装AD软件后,无法打开PCB,打开后一直提示advpcb.dll丢失,然后一直是停不下来的滚动条,解决方法。
  11. Olly's Shadow
  12. MATLAB中的msgbox函数
  13. 怎么给图片换背景?点开收货一些新方法
  14. 模电——多级放大电路的耦合方式
  15. 攻防世界 web webshell
  16. onReachBottom触底触发事件
  17. ad自动连线_AD19如何使用强大的自动布线功能
  18. 关于批处理以及批处理常用命令的总结
  19. 百度贴吧怎么进不去_百度贴吧引流不行了?我是怎么把文案做上百度首页引流的...
  20. Java中带返回值的方法的定义与调用

热门文章

  1. [Java基础]Lambda表达式练习
  2. Wooden Sticks POJ - 1065(最大上升子序列+动态规划状态转移思维)
  3. Redis持久化-深入理解AOF,RDB
  4. Ubuntu上安装使用Docker
  5. JVM(2)——JVM类加载机制
  6. NUMTRYE - Number Theory (Easy)
  7. Codefest 18 (rated, Div. 1 + Div. 2)-D-Valid BFS--思维--已知bfs序,求是否正确
  8. CF1550F Jumping Around
  9. 牛客题霸 [ 寻找峰值] C++题解/答案
  10. 牛客题霸 [合并两个有序的数组] C++题解/答案