WMMP(Wireless M2M Protocol)是为实现M2M业务中M2M终端与M2M平台之间、M2M终端之间、M2M平台与M2M应用平台之间的数据通信过程而设计的应用层协议,主要作用是为了实现推进机器通信协议统一,降低运营成本的目的,其体系如图4-13所示。
WMMP由M2M平台与M2M终端接口协议(WMMP-T)和M2M平台与M2M应用接口协议(WMMP-A)两部分协议组成。WMMP-T完成M2M平台与M2M终端之间的数据通信,以及M2M终端之间借助M2M平台转发、路由所实现的端到端数据通信。WMMP-A完成M2M平台与M2M应用之间的数据通信,以及M2M终端与M2M应用之间借助M2M平台转发、路由所实现的端到端数据通信。
WMMP的功能架构如图4-14所示。WMMP的核心是其可扩展的协议栈及报文结构,而在其外层是由WMMP核心衍生的与通信机制无关的接入方式和安全机制。在此基础之上,由内向外依次为WMMP的M2M终端管理功能和WMMP的M2M应用扩展功能。行j1
图4-13 WMMP体系
图4-14 WMMP的功能架构
在上图中WMMP的终端管理功能包括异常警告、软件升级、连接检查、登录控制、参数配置、数据传输、状态查询、远程控制。WMMP应用扩展功能包括智能家居、企业安防、交通物流、金融商业、环境监测、公共管理、制造加工、电力能源等行业应用。
WMMP对用户的价值体现在:
1)满足无人值守机器终端的基本管理需求,提供电信级的终端管理能力。
2)通过扩展协议的方式满足行业用户差异化的需求,提供WebService接口,降低应用开发难度。
3)提供了端到端通信的服务保障能力,有效提高业务质量。
4)提供了业务快速开发和规模运营的基础,降低用户业务使用成本。
基本功能:提供端到端电信级机器通信、终端管理、业务安全等基本功能。
扩展功能:屏蔽了不同行业之间的差异,通过扩展协议即可满足行业用户差异化需求。
M2M平台与应用系统接口协议是WMMP的一部分(WMMP-A),它对M2M平台与终端的接口规范进行了封装,对应用系统提供了对M2M终端进行监控管理的能力。同时,通过本协议,M2M终端与M2M应用之间可以通过M2M平台传递业务流程,实现定制化的M2M应用。
(1)基本协议
双方的消息交互采用SOAP(Simple Object Access Protocol,简单对象访问协议)接口。这是一个可以运行在任何传输协议上的轻量级协议,它包含3个方面:XML-envelop为描述信息内容和如何处理内容定义了框架;将程序对象编码成为XML对象的规则;执行远程调用(Remote Procedure Call,RPC)的约定。
(2)接口描述
本协议支持两种连接方式:
1)基于HTTP的标准WEB Service方式。应用系统和M2M平台采用WSDL(Web Serv-ices Description Language)来对接口进行描述。WSDL是用来定义Web服务的属性以及如何调用它的一种XML。一个完整的WSDL服务描述是由一个服务接口和一个服务实现文档组成的。通过查阅Web服务的WSDL文档,开发者可以知道Web提供了哪些方法和如何用正确的参数调用它们。因为WSDL包含了对服务接口的完整描述,所以我们可以使用它来创建能简化服务访问的存根,该存根为一段Java代码(假设使用Java),它自动生成了访问Web服务的类。如果我们需要访问Web服务,只需调用该类中对应的方法即可,而不用在客户端程序中再写入配置信息。要求通信双方作为Web Service服务端时,应实现HTTP会话的超时机制。即一定时间内,如果客户端没有新的HTTP请求,则服务端主动断开连接。会话维持的时间要求可配置。
2)长连接。应用系统可以选择采用长连接和M2M平台交互,以提高效率。消息格式的定义和Web Service方式一致。
(3)消息格式
所有的协议数据单元(PDU)由如下表的消息头和消息体组成:
消息头和消息体在xml中的表现形式如下:(www.xing528.com)
未加密的消息体也是一个完整的xml文件,如下例所示:
本规范报文为文本格式,对于二进制内容,应进行BASE64编码。
加密后的消息体通过BASE64编码放入BODY标签。
(4)消息的安全性
1)数据安全。
本规范采用3DES算法对数据进行加密。M2M平台与应用之间的交互消息均要求携带摘要字段,算法如下:MD5[消息头+3DES(消息体)+用户名+密码]。
其中用户名和密码由M2M平台为应用分配,应用发往M2M平台的消息以及M2M平台发往应用的消息,均要求用上述算法计算摘要。
应用系统和M2M平台的交互包含两种密钥:
①基础密钥,不同的M2M应用系统由M2M平台分配不同的基础密钥;M2M平台负责统一分配和保存所有的M2M应用系统密钥。M2M应用系统的密钥通过Email的方式由M2M平台发送给各M2M应用系统。
②会话密钥,应用系统与M2M平台的每次会话均由M2M平台分配会话密钥。一次会话只允许持续一定的时间,如果超出该时间,应用系统必须重新登录,分配新的会话密钥。否则M2M平台将拒绝应用系统的消息。
基础密钥用于应用向平台登录启动新会话时加密消息体,以及M2M平台返回会话密钥时用于加密消息体。应用系统需要先在M2M平台登录,登录消息包含M2M平台分配的用户名和密码,并用基础密钥加密(3DES算法)。M2M平台为本次会话分配会话密钥,并用基础密钥加密后返回给应用系统。然后在会话中,双方用会话密钥加密和解密消息体。
消息交互流程如图4-15所示。
图4-15 消息交互流程
应用系统首先通过TAppLoginReq在M2M平台进行登录,由M2M平台分配并返回会话密钥。在后续的消息交互的数据包中,双方通过会话密钥加密消息体。
2)网络安全。
M2M平台接口采用如下的手段保证和M2M应用系统之间通信的网络安全:IP鉴权及业务ID控制列表。
①M2M应用系统接入M2M平台时需提供其业务系统出访IP和URL(根据其业务特性确定)。
②M2M平台为M2M应用系统的每一个业务分配一个全局唯一的业务ID。
③M2M平台侧防火墙配置安全策略,只有有效的IP和业务ID才能够访问M2M平台。
④M2M应用系统端配置相应策略,以拒绝非M2M平台的接口调用。
⑤建议M2M应用系统和M2M平台之间采用VPN通道。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。