大家好,我是GitHub好项目君,每天分享GitHub上的好项目
主要分享GitHub上有趣、有意义、重要的项目
SiteWhere 是一个具有工业实力的开源物联网应用支持平台,可促进大规模物联网设备数据的摄取、存储、处理和集成。
源代码:
http://www.gitpp.com/digital-twin/sitewhere
SiteWhere 的介绍
SiteWhere作为一个工业级的、开源的物联网(IoT)应用支持平台,其功能主要围绕物联网设备数据的摄取、存储、处理和集成展开。以下是SiteWhere的主要功能:
-
设备数据摄取
:SiteWhere提供了从物联网设备中收集数据的能力。这些数据可能包括设备状态、传感器读数、位置信息等。
-
数据存储
:收集到的设备数据需要被安全、可靠地存储起来,以便后续的分析和处理。SiteWhere提供了持久化存储的功能,可以确保数据的安全性和可访问性。
-
数据处理
:除了存储数据外,SiteWhere还提供了对设备数据进行处理的能力。这包括数据清洗、转换、聚合等操作,以便将原始数据转换为更有价值的信息。
-
数据集成
:SiteWhere支持与其他系统和应用程序的集成,以便将物联网设备数据与业务流程、决策支持系统等进行连接。通过API和消息队列等机制,SiteWhere可以实现与各种系统和服务的无缝集成。
-
微服务架构
:SiteWhere基于微服务架构构建,这使得平台具有高度的可扩展性和灵活性。通过模块化设计,SiteWhere可以轻松地添加新的功能和服务,以满足不同项目的需求。
-
支持多种协议
:SiteWhere支持多种物联网通信协议,如MQTT、CoAP、HTTP等。这使得平台可以与各种物联网设备和传感器进行通信,无论它们使用何种协议。
-
提供开发者工具
:SiteWhere为开发者提供了一整套工具和框架,以便他们可以轻松地构建和部署物联网应用程序。这些工具包括设备管理、数据可视化、事件处理等功能。
-
多租户支持
:SiteWhere支持多租户架构,这使得平台可以同时支持多个独立的项目或客户。每个租户都可以拥有自己独立的数据和配置,从而实现资源的隔离和共享。
SiteWhere 作为一个开源的物联网应用支持平台,具有高度的灵活性和可扩展性,适用于各种物联网应用场景,如智能家居、工业制造、智慧城市、能源管理等。通过使用 SiteWhere,用户可以快速构建适合自己的物联网解决方案,实现设备连接、数据分析和应用开发等功能。
功能特性:
-
可以在单个SiteWhere实例上运行任意数量的IoT应用程序。
-
提供了Spring框架配置。
-
使用MQTT、AMQP、Stomp等协议连接设备。
-
通过自助注册、REST服务或批量添加设备。
-
可以与第三方集成框架集成,如Mule AnyPoint。
-
默认的存储数据库是MongoDB。
-
使用Eclipse Californium实现CoAP消息传递。
-
使用InfluxDB存储事件数据。
-
SiteWhere数据可视化。
-
支持使用HBase存储非关系数据。
以下是SiteWhere的一些主要使用场景:
1.
物联网设备管理
:SiteWhere 可以用来管理和控制连接的物联网设备,收集设备数据,并将其用于进一步的处理和分析。
2.
数据收集与处理
:在物联网环境中,SiteWhere 可以作为数据收集和处理的中介,将来自不同设备和传感器的数据集中起来,并进行预处理和格式化。
3.
实时分析与决策支持
:SiteWhere 提供了实时数据处理和分析的能力,可以帮助企业和组织从物联网设备收集的数据中提取有价值的洞察,以便做出实时决策。
4.
应用程序开发
:开发者可以使用SiteWhere来构建和部署物联网应用程序,包括设备管理、数据分析和用户界面等。
5.
集成第三方服务:
SiteWhere 可以集成第三方服务和APIs,允许企业将物联网解决方案与现有的业务系统和服务无缝集成。
6. 多租户支持:SiteWhere 支持多租户架构,允许多个用户或组织在同一平台上运行不同的应用程序。
7. 可扩展性和高可用性:SiteWhere 设计用于可扩展性,可以处理大量的数据和用户,并且提供了高可用性的支持。
8. 安全性:SiteWhere 提供了内置的安全性,包括用户认证、授权和数据加密,以确保物联网应用程序的安全。
总的来说SiteWhere 适用于需要处理大量物联网数据、实现实时分析和决策支持以及构建复杂的物联网应用程序的场景。
SiteWhere采用了运行在Kubernetes上的分布式架构,并提供了highly-available数据库和MQTT代理等基础设施以及微服务,以促进物联网项目开发的各个方面。该平台采用框架方法构建,使用明确定义的API,以便随着物联网生态系统的发展,新技术可以轻松集成。
该平台利用了cutting-edge技术(如Kubernetes、Istio和Kafka)之上的微服务架构,以便有效地扩展到大型物联网项目的预期负载。
部署和协调
SiteWhere由Java-based微服务组成,这些服务被构建为Docker映像并部署到Kubernetes进行编排。为了简化安装和配置,Helm用于为各种部署场景提供标准模板。Helm图表提供了运行完整站点部署所需的微服务和依赖关系。基础设施组件包括Apache Zookeeper和Kafka等技术,高可用性数据库,如MongoDB、InfluxDB和Cassandra,以及其他支持技术,如MQTT代理。
Microservices
SiteWhere不是使用单一方法,而是基于许多作为分布式系统运行的微服务。每个微服务都是一个完全self-contained实体,它有自己的配置模式、内部组件、数据持久性以及与事件处理管道的交互。微服务构建在一个定制的微服务框架之上,并作为独立的Spring引导进程运行,每个进程都包含在自己的Docker映像中。