Skip to content

TheFirstLineOfCode/Lithosphere

Repository files navigation

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是一个基于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平台的使用。