Lithosphere是基于XMPP协议的IoT开发平台。
Lithosphere平台的目标,是提供全栈的IoT解决方案,开发者可以基于Lithosphere平台技术,开发复杂、灵活的IoT应用。
Lithosphere 作为IoT应用的解决方案,主要有以下的特征:
- 全栈IoT开发框架
Lithosphere提供全栈的IoT解决方案,包括IoT服务器,LoT局域网网关,到MCU硬件板通讯库,以及移动端开发框架。
Lithosphere采用统一的架构技术和通讯协议,开发者不再需要整合多种开发技术来开发IoT应用,这使得IoT应用的开发变得简单。 - 插件架构(Plugin-Architecture)
Lithosphere的核心子项目Chalk,Granite,Sand等,都基于插件架构构建。采用Lithosphere开发的IoT应用一般会具备以下这些特征:- 高度模块化
- 扩展性良好
- 部署灵活
- 高效的通讯协议
标准XMPP协议使用XML来表达协议消息包,这使得它具备灵活和扩展性强特点的同时,也备受通讯协议冗余和低效的指责。
一家公司在解决XMPP效率问题上做出了很好的示范。WhatsApp公司使用二进制的XMPP变种,为全球超过20亿用户提供IM服务。
是的,Lithosphere平台也使用二进制XMPP来解决通讯协议效率问题。 - 基于IoT概念组件编程
Lithosphere提供了一组屏蔽了底层通讯细节,封装良好的IoT组件来提高开发效率。
我们可以使用Actuator,Sensor,Concentrator,Gateway,Webcam等IoT概念组件来做开发,而不需要去研究XMPP、LoRa、WebRTC等具体技术的底层实现细节。
Granite是一个基于Java开发的XMMP Server。Granite XMPP Server具有以下特征:
- 标准兼容
- 高度模块化
- 高可用性和高扩展性
- 易于扩展和集成
Granite基于微内核架构(插件架构),这使得它非常灵活和易于扩展。
Chalk是Java XMPP客户端通讯库,可以用于开发Java桌面和Android的XMPP客户端。Chalk基于插件架构设计,这使得它易于使用及易于扩展。
Basalt是XMPP的Java解析库。Basalt基于OXM(Protocol Object-XMPP Document Mapping)概念,提供XMPP协议文档和协议对象(Protocol Object)之间的解析转换功能。
Sand项目提供一组封装良好的IoT插件。这些IoT插件基于Chalk技术(客户端插件)和Granite技术(服务器端插件)开发。包括:
- Actuator
执行器组件。关于执行器,可以参考概念里的Actuator章节内容。 - Sensor
传感器组件。关于传感器,可以参考概念里的Sensor章节内容。 - Edge Thing
边缘设备组件。Lithosphere里的边缘设备组件(Edge Thing)连接到Granite XMPP Server上后,会自动申请注册。一般来说,Gateway,Concentrator等组件,都是Edge Thing。 - LoRa Gateway
封装LoRa协议的网关组件。 - Remoting
远程控制插件。用于在移动App或桌面客户端里做IoT设备的远程控制。 - Operator
运维人员使用的运维功能插件。例如,在运维App里,用于实现授权设备入网,修改客户权限等功能。 - Webcam
基于WebRTC技术的实时监控摄像头组件。
MCU板通讯库。支持BXMPP,和TUXP协议族Notification、
Execution、Report等协议。使用Mud库,可以为MCU板添加IoT通讯能力。
如果你并不熟悉XMPP,插件架构,IoT,那你可以通过阅读
概念
来熟悉相关概念 。
如果你是第一次接触使用Lithosphere,建议跟随
Hello Lithosphere教程
来学习和了解Lithosphere平台的使用。