pb webservice 调用 webservice_Web service在物联网IoT中的应用

物联网中应用最广泛的就是request/response通信模式(MQTT采用pub/sub模式)。通信双方一request一response,实际上就是client、server的模式。物联网中host端去request end-device的tempreture,end-device受到request后,responce相应的tempreture。实际上,end-device在此交互中充当着server的角色,为host端提供温度值。

end-device是server?我们想象中的server都是高性能的,每秒钟响应巨量的request,而资源受限的end-device怎么可以是server?但它确实提供了响应request tempreture的服务。

51d4f54b02b8b651fddc2faa3a3efb93.png

随着移动互联网的发展,client端不仅仅局限于PC,更多地,手机,pad等移动终端设备也应实现对服务器端end-device的访问。因此,end-device需要为不同的开发平台(Java、.net)和操作系统(Linux、Windows)提供服务。那么,有没有什么技术可以实现这种跨越平台,语言,从而达到与end-device(服务器)通信的目的?现在传统意义的服务器端是如何实现这一功能的呢,Web service!

一、什么是Web Service?

形象一点理解的话,Web Service就是一组位于远程服务器上的函数库(或者是存在于网络上的应用程序组件),通过这些函数库(组件),客户端可以通过web访问这些服务器端的service。调用Web service的这一端叫做客户端,而提供Web service的一端叫做服务端。

套用网上一个经典例子:腾讯QQ客户端的天气服务,显然不是腾讯公司发射卫星,自己去维护公司的内部天气服务器,而是去request气象局的服务器(气象局将天气信息通过Web service方式进行公开),再将服务器response回的天气状况进行QQ显示。

Web service的平台技术

从深层次讲,Web Service是一套标准、规范,这套规范了:

如何将server端的信息公布出去,让客户端得到足够信息来调用Web service;

因为需要跨平台,跨操作系统,所以需要提供一种标准的类型对信息进行封装。

规范一种方法,对Web service进行远程访问;

WSDL+XML+HTTP就构成了Web service的三大技术。

WSDL(Web Services Description Language):是一种基于xml的语言,是机器可读的。客户端在访问服务器提供的服务的时候,首先要知道,服务器提供的resources的url地址在哪,有哪些服务方法可以调用。WSDL文件就是服务器告诉客户端们我提供了哪些服务方法,他们的调用的url在哪。WSDL保存在Web服务器端,通过固定的url就可以访问到它。

XML格式:采用XML格式进行消息描述,其优点在于平台无关,它解决了数据的表示问题。

HTTP协议:Web Service通过HTTP协议发送请求和接收响应。request和response的内容均采用XML格式进行封装,并且在HTTP协议中加上一些首部字段如Content-type用于描述HTTP报文的内容格式。

二、Webservice 在IoT中的问题

上文提过,物联网中的end-device在交互中充当着server的角色。那么,上述的WSDL+XML+HTTP能否直接套用到end-device中呢?主要有下面几点问题:

XML文件难以解析,end-device在对文件进行解析时,会消耗过多的CPU和内存资源,XML文件相对来时比较大,在传输过程中会消耗较多的网络资源。

HTTP封包也比较大,消耗过多网络资源、内存资源。

HTTP的传输层使用的是TCP协议,在握手挥手过程中,过多的冗余数据Segment。

所以,WSDL+XML+HTTP+TCP是PC级别的,要部署在ROM RAM小到只有几十KB的end-device端中不是很实际,而且还要加上TCP/IP,链路层,外设代码,更显得不堪重负。

因此Web service要应用在物联网中,部署在end-device上必须要需求新的替代品。这就引出了我们的主角——CoAP协议。

三、IoT中的Web Service

上文提到PC级别的Web Service采用XML+HTTP+TCP的模式,IoT中end-device也采用类似架构的模式,只不过更精简,更易解析,更省资源:JSON+CoAP+UDP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值