实时通信技术作为一项根本性前提,在物联网应用程序的开发工作中扮演着核心角色。想象一下,如果我们能够利用手机与家居环境内的各种小装置进行通信,那么科幻电影中的种种场景将很快变成现实。但如果整个通信过程需要数秒才能完成,那么使用体验无疑会大打折扣。
要说起实时通信技术的发展演变,我们就不能不提即时通讯方案的出现。从历史角度讲,即时通讯产品可以算是最早出现的客户友好型联网实时通信客户端。AOL IM、ICQ以及Jabber正是各类支持实时通信的即时通讯方案中的典型代表。而这一切早在上世纪九十年代就已然出现了。
时至今日,我们开始将着眼点放在开发作用于不同物联网设备之间的通信协议——不过当初构建即时通讯解决方案时积累到的经验仍然适用。目前物闻网设备所广泛使用的三大实时协议包括:XMPP、CoAP以及MQTT。有趣的是,其中的XMPP早在Jabber时代就已经作为一套开放即时通讯协议存在了。
XMPP
XMPP的全称为可扩展通讯与表示协议。这项立足于XML的TCP通信协议能够以近实时方式在两个甚至更多联网功能实体之间进行结构化数据交换。XMPP当中的现成功能包括表示信息以及联系人名单维护。尽管这两项功能最初都是针对即时通讯需求设计而成,但它们在物联网应用程序当中仍然能够起到不错的效果。鉴于其出色的开放特性并以XML为基础,XMPP已经被扩展至各类公共订阅系统当中——而这也恰好适合物联网应用的实际需求。
利用XMPP作为物联网通信协议,我们能够享受到几大突出优势。首先就是XMPP的分散特性。XMPP的运作方式与电子邮件比较相似,游走于由传输代理构建而成的分布式网络当中,而非高度依赖于单一中央服务器或者代理节点(CoAP与MQTT皆属于这种情况)。与电子邮件一样,每个人都能够轻松运行属于自己的XMPP服务器,这就使得设备制造商以及API供应方能够创建并管理自己的设备网络体系。而由于大家都有能力运行自己的服务器,所以出于安全考虑,我们可以在必要时利用内置TLS加密机制将该服务器隔离在企业内网的安全验证协议之下。
遗憾的是,XMPP也存在着一些弊端。其最大的问题之一就是缺少端到端加密机制。尽管在不少场景之下,这类加密机制基本算是可有可无,但归根结底大多数物联网设备仍然需要利用加密来保障安全。端到端加密机制的缺失无疑会令物联网设备制造商陷入被动当中。