2019-10-01

参考资料:

《Tomcat与Java Web》,孙卫琴。

这一章节,我们主要解决关于Webservice概念性的问题,首先弄明白Webservice的概念和原理,然后弄清楚它的交互流程,这样容易理解后续Webservice的调用方法。

1 Web服务的定义

Web服务架构与Web一样,也是网络应用层的一种分布式架构,同时也是基于客户/服务器通信模式(C/S),并且也能实现异构系统之间的通信。在Web服务架构中,服务器端负责提供Web服务,而客户端则请求访问Web服务。

什么是Web服务呢?有两个重要概念。

1、Web服务确立一种基于Internet的分布式软件架构,它支持两个运行在不同操作系统平台上,并且用不同编程语言实现的系统能够互相通信。一个系统向另外一个系统公开的服务被称为Web服务。

2、Web服务可以被看做是客户端远程调用的各种方法,这些方法能处理特定业务逻辑,或者进行复杂运算等。下图显示客户端请求访问服务器端的一个Web服务的过程。

2 Web服务的通信协议

Web服务结构采用SOAP(Simple Object Access Protocol)作为通信协议。

(1)SOAP规定了客户端与服务器之间一律使用XML语言进行通信。XML是一种可扩展的阔平台的标记语言。

(2)SOAP规定了客户端与服务器发送的Web服务请求的具体数据格式,以及服务器端向客户端发送的Web服务响应结果的具体数据格式。

要实现Web服务架构,就意味着必须创建基于SOAP协议,负责发布和调用Web服务,以及负责发送Web服务响应结果的服务器,还要创建基于SOAP协议的负责请求访问Web服务的客户程序。

·

3 SOAP协议

1、SOAP(Simple Object Access Protocol),简单对象访问协议,是在分布式的环境中采用交换数据的简单协议,它以XML为通信语言。

2、SOAP采用的数据传输协议可以是HTTP/HTTPS协议,也可以是SMTP/POP3协议,还可以是为一些应用而专门设计的特殊数据传输协议。

3、SOAP有两种工作模式。一种称为RPC(Remote Procedure Call),另一种方法不统一,在Microsoft的文档中称为Document-Oriented,在Apache的文档中,称为Message-Oriented,它可以利用XML来交换机构更为复杂的数据,通常以SMTP作为数据传输协议。

可以把SOAP RPC简单地理解为这样一个开放协议:SOAP=RPC+HTTP+XML。它有以下特征:

(1)采用HTTP作为传输协议,并且采用客户/服务器模式。

(2)RPC作为同意的远程方式调用途径。

(3)传送的数据使用XML语言,允许服务提供者和客户经过防火墙在Internet上进行通信。

4、SOAP客户访问SOAP服务的流程如下(Webservice的交互流程):

(1)客户端创建XML格式的SOAP请求,它包含了提供服务的服务器的URI、客户请求调用的方法名称和参数信息。如果参数是对象,则必须进行序列化操作(把对象转化成XML数据)。

(2)客户端的协议连接器把XML格式的SOAP请求头包装为HTTP请求,即把SOAP请求作为HTTP请求的正文,并且增加HTTP请求头。

(3)服务器端的协议连接器接收到客户端发送的HTTP请求,对其进行解析,获取其中的请求正文,请求正文就是客户端发送的XML格式的SOAP请求。

(4)服务器对XML格式的SOAP请求进行解析,如果参数中包含对象,先对其进行反序列操作(把XML格式的参数转换为对象),然后执行客户请求 的方法。

(5)当服务器执行完毕后,如果方法的返回值是对象,则先对其进行序列化操作,把对象转化为XML格式,然后把返回值包装成XML格式的SOAP响应。

(6)服务器端的协议连接器把XML格式的SOAP响应包装为HTTP响应,即把SOAP响应作为HTTP响应的正文,并且增加HTTP头。

(7)客户端的协议连接器接收到服务器端发送的HTTP响应,并对其进行解析,获取其中的响应正文,响应正文就是服务器端发送的XML格式的SOAP响应。

(8)客户端解析XML格式的SOAP响应,如果返回值中包含对象,则先对其进行反序列操作,将XML格式转化成对象,最后获得返回值。

一、Webservice的概念和原理相关推荐

  1. WebService 基本概念

    一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...

  2. iOS/OS X内存管理(一):基本概念与原理

    iOS/OS X内存管理(一):基本概念与原理 发表于21小时前| 1585次阅读| 来源CSDN| 8 条评论| 作者刘耀柱 移动开发iOSObjective-C内存管理内存泄露局部变量开发经验 a ...

  3. 前端路由的概念与原理

    前端路由router的概念与原理 1. 什么是路由 路由(英文:router)就是对应关系. 2. SPA 与前端路由 SPA 指的是一个 web 网站只有唯一的一个 HTML 页面,所有组件的展示与 ...

  4. 前端路由||路由的基本概念与原理||在开发中,路由分为:   后端路由   前端路由

    前端路由 路由的基本概念与原理 vue-router的基本使用 vue-router嵌套路由 vue-router动态路由匹配 vue-router命名路由 vue-router编程式导航 基于vue ...

  5. git入门:概念、原理、使用

    git和Github 概念 Git --- 版本控制工具(命令). 工具介绍官方网站:http://git-scm.com 工具下载地址:http://git-scm.com/download/ gi ...

  6. mysql优化器分析器_MySQL查询优化器的概念和原理整个执行过程

    原标题:MySQL查询优化器的概念和原理整个执行过程 什么是MySQL的Query Optimizer 专门负责优化SELECT语句的优化器模块MySQL Query Optimizer通过计算分析收 ...

  7. Java注解的基本概念和原理及其简单实用

      一.注解的基本概念和原理及其简单实用 注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析 ...

  8. 机器学习基础图表:概念、原理、历史、趋势和算法

    四大会计师事务所之一的普华永道(PwC)发布了多份解读机器学习基础的图表,其中介绍了机器学习的基本概念.原理.历史.未来趋势和一些常见的算法.为便于读者阅读,机器之心对这些图表进行了编译和拆分,分三大 ...

  9. 泛型与容器连载(一)泛型的基本概念和原理

    基本概念和原理 "泛型"的字面意思就是广泛的类型.接口和方法代码可以应用于广泛的类型,代码与他们能够操作的数据不在绑定在一起,同一套代码可以用于多种数据类型,这样不仅可以复用代码, ...

  10. Java程序员从笨鸟到菜鸟之(四十八)细谈struts2(十)ognl概念和原理详解

    引言:众所周知,在mvc中,数据是在各个层次之间进行流转是一个不争的事实.而这种流转,也就会面临一些困境,这些困境,是由于数据在不同世界中的表现形式不同而造成的: 1. 数据在页面上是一个扁平的,不带 ...

最新文章

  1. Android学习笔记之progressBar(进度条)
  2. 三维重建新应用:精确还原凶杀现场细节!
  3. datagridview滚动条自动滚动_Win32编程基础之滚动条
  4. 零基础代理神器allproxy
  5. excel如何把顺序倒过来_Excel 中的计算运算符和优先顺序级别
  6. 【学习总结】《大话数据结构》- 总
  7. php xmlreader 读xml,PHP中使用xmlreader读取xml数据示例
  8. idea 启动 springBoot debug很慢,正常启动很快是什么原因
  9. endnote无法同步原因_endnote不能同步(endnote retrieving references)的解决方法
  10. vRealize Operations Manager 安装部署
  11. LC-130 被环绕区域
  12. SpringBoot的properteis书写[配置对象类型数据、配置数组类型
  13. [原创]经典软件测试技术分类
  14. Chrome对开发有用的插件
  15. 不同以“网”,云端地球全新升级上线!
  16. Macbook双系统多分区的解决方案
  17. 本周AI热点回顾:AI技术重现的老北京原声影像又火了、百度ERNIE-ViL刷新5项任务记录、Transformer 3发布
  18. 深度学习鼻祖Geoffrey Hinton帮你入门带你飞
  19. Python 抓取微信公众号账号信息
  20. C++ handle classes

热门文章

  1. Xmind2021绿色版,思维导图最佳软件
  2. C4D插件X-Particles粒子特效(一)
  3. 个所税服务器没有企业信息,【重要】企业纳税申报一定要看进来!
  4. OBV指标的活用以及OBV指标的解析
  5. MatLab2019下载
  6. 内外网双网卡同时上网
  7. 【博弈论】翻硬币游戏8种模型
  8. 手机群控系统电脑/手机硬件配置相关测试参数
  9. 奥的斯服务器故障显示m什么意思,奥迪斯电梯故障代码对照表 奥的斯电梯故障解决方法...
  10. 综合管廊:道路工程综合管廊施工方案(图文)