最近分到一个项目,linux下的蓝牙,我从底层驱动一直到系统层的lib、通信、测试全都涉及到了,花了整整两周时间,耽误了博客文章的发表,这篇是对soap的入门的一个介绍-------我自己的学习总结,对摄像头的驱动程序的分析以后再写,下个专题就是linux下的bluetooth了。
这篇主要是介绍soap涉及的几个专业术语和介绍客户端与服务器之间的通信过程。
(一)概论
1、专业术语的简述
SOAP:
SOAP是Simple Object Access Protocol(简单对象访问协议)的缩写,他仅仅是一个基于XML的用于访问网络服务的协议,与编程语言没有半点关系。他可使应用程序在 HTTP 之上进行信息交换。一言以蔽之,SOAP提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。
它包括四个部分:
(1)SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;
(2)SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例;
(3)SOAP RPC表示(RPCrepresentation),表示远程过程调用和应答的协定;
(4)SOAP绑定(binding),使用底层协议交换信息。
WSDL:
WSDL是Web Service Description Language(Web Services描述语言)的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言,为用户提供详细的接口说明。
XML:
即xml即可扩展标记语言。
可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
http:
即超文本传送协议。
超文本传输协议 (HTTP-Hypertext transfer protocol)是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
webservice:
即Web Service。
Web Service是基于网络的、分布式的模块化组件,执行特定的任务。Web Service 主要利用HTTP和 SOAP协议使数据在 Web 上传输。Web 用户能够使用 SOAP 和 HTTP通过 Web 调用的方法来调用远程对象。
2、客户端与服务器通信过程描述
客户端与服务器的通信过程概述如下:
(1)客户端根据 WSDL 描述文档,会生成一个 SOAP 请求消息;
(2)该请求会被嵌入在一个HTTP POST请求中,发送到 Web Services 所在的Web 服务器;
(3)Web Services 请求处理器解析收到的 SOAP 请求;
(4)调用相应的 Web Services。然后再生成相应的 SOAP 应答;
(5)Web 服务器得到 SOAP 应答后,会再通过 HTTP应答的方式把信息送回到客户端;
其中具体的过程描述如下:当客户端发送请求时,不管客户端是什么平台的,首先把请求转换成XML格式,SOAP网关可自动执行这个转换。转化成XML格式后,SOAP终端名(远程调用方法名)及其他的一些协议标识信息被封装成HTTP请求,然后发送给服务器。如果应用程序要求,服务器返回一个HTTP应答信息给客户端。与通常对HTML页面的HTTP GET请求不同的是,此请求设置了一些HTTP HEADER,标识着一个SOAP服务激发,和HTTP包一起传送。
注:就整个网络资源传输而言,包括message-header和message-body两部分。首先传递message- header,即http header消息 。http header 消息通常被分为4个部分:general header,request header, response header, entity header。
个人观点,有问题请斧正!!
转载请注明出处:http://blog.csdn.net/wang_zheng_kai