Lithosphere

Lithosphere IoT Development Platform

Stars
18
Committers
3

Welcom to Lithosphere

Lithosphere是什么?

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等具体技术的底层实现细节。

Lithosphere由以下子项目构成:

Granite

Granite是一个基于Java开发的XMMP Server。Granite XMPP Server具有以下特征:

  • 标准兼容
  • 高度模块化
  • 高可用性和高扩展性
  • 易于扩展和集成
    Granite基于微内核架构(插件架构),这使得它非常灵活和易于扩展。

Chalk

Chalk是Java XMPP客户端通讯库,可以用于开发Java桌面和Android的XMPP客户端。Chalk基于插件架构设计,这使得它易于使用及易于扩展。

Basalt

Basalt是XMPP的Java解析库。Basalt基于OXM(Protocol Object-XMPP Document Mapping)概念,提供XMPP协议文档和协议对象(Protocol Object)之间的解析转换功能。

Sand

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技术的实时监控摄像头组件。

Mud

MCU板通讯库。支持BXMPP,和TUXP协议族Notification、 Execution、Report等协议。使用Mud库,可以为MCU板添加IoT通讯能力。

快速入门

如果你并不熟悉XMPP,插件架构,IoT,那你可以通过阅读 概念 来熟悉相关概念 。 如果你是第一次接触使用Lithosphere,建议跟随 Hello Lithosphere教程 来学习和了解Lithosphere平台的使用。