绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
SiteWhere用户指南【译】
2022-04-24 11:14:12

SiteWhere用户指南

本指南旨在帮助新用户安装和配置SiteWhere实例。它还为配置SiteWhere提供的许多功能提供参考。


安装 - 在本地机器或云中安装SiteWhere


全局配置 - 配置所有租户共有的SiteWhere的全局方面

引导核心系统组件:conf / sitewhere / sitewhere-server.xml
租户配置文件:conf / sitewhere / tenants / xxx/sitewhere-tenant.xml(其中xxx是租户ID)

SiteWhere使用Spring XML文件的层次结构作为其配置机制。当SiteWhere服务器启动时,首先要通过加载conf / sitewhere / sitewhere-server.xml文件来引导核心系统组件该文件充当全局服务器配置,指定所有租户共享的系统方面,如用户数据存储实施和Hazelcast配置。除全局配置外,conf / sitewhere / tenants / xxx(其中xxx是租户ID)中的每个租户都有文件夹租户配置文件sitewhere-tenant.xml位于租户文件夹中,以及不应与其他租户共享的任何租户特定资源。该配置是一个Spring XML文件,用于指定有关如何配置租户引擎的详细信息。设备管理和通信引擎等大多数功能均在这些租户配置文件中配置。

Spring Beans配置
有效的SiteWhere配置基于标准的Spring beans XML文件,嵌入式部分使用特定于SiteWhere的模式。下面的XML是部分配置文件,说明了一些主要功能。
处理敏感数据
SiteWhere配置文件通常包含登录凭证或其他不应与其他用户共享的信息。此外,在某些情况下,系统的设置是特定于环境的(生产与分段与开发)以及为每个系统维护单独的配置都会产生额外的工作。使用Spring属性占位符可以将敏感数据移动到外部属性文件中并在运行时注入。
全局数据存储配置
SiteWhere可以使用MongoDB或Apache HBase进行底层数据存储。租户数据存储必须使用与全局配置中指定的数据库类型相同的数据库类型。
填充示例数据
在MongoDB和HBase安装中,如果SiteWhere不存在,SiteWhere将自动创建底层数据库。之后,每次SiteWhere服务器启动时,它都会检查数据库中是否有数据,并且如果配置了数据初始化程序,将提示使用示例数据填充数据库。SiteWhere有一个初始化程序,它将为用户和租户数据模型创建样本数据。可以通过将default-user-model-initializer添加到数据存储 区部分进行配置,如上面的数据存储示例所示。
配置日志记录
SiteWhere使用Apache Log4j记录有关正在运行的系统的信息。日志记录输出由默认服务器分发的lib文件夹中的log4j.xml文件配置。对于在自己的应用程序服务器实例上运行SiteWhere的用户,可以在GitHub上找到默认的日志记录配置文件。该文件必须在服务器类路径中可用才能使用。

租户配置 - 使用他们自己的数据存储和处理管道配置单个租户

租户配置

每个租户都有自己的配置文件,它通过Spring上下文确认从全局配置继承。这允许全局定义的bean可以由个人租户配置访问。租户的Spring XML配置文件位于conf / sitewhere / tenants / xxx / sitewhere-tenant.xml中(其中xxx是租户ID)。每个租户都有自己的设备数据和可配置的处理管道。租户配置文件使用Spring bean和自定义模式(如全局配置),但使用针对租户特定功能的不同模式:

注意:Tenant配置在SiteWhere 1.5.0中更改为每个租户使用单独的文件夹。以前的版本使用每个租户的单个文件并共享所有资源。

租户数据存储
租户数据存储通过特定于租户的对象模型的实现来扩展全局数据存储的功能。这些包括设备管理,资产管理和进度管理。用户和租户在全球范围内进行管理。

租户数据存储必须与为全局数据存储配置的类型相对应。无法将MongoDB用作租户数据存储的全局数据存储和HBase,反之亦然。

缓存提供者
设备数据模型的许多元素不会经常更改,并且可以从缓存实现中受益。SiteWhere提供了一个服务提供者接口 IDeviceManagementCacheProvider ,它可以被实现为提供使用外部缓存提供者的缓存功能。请注意,删除缓存会导致性能明显下降,因为底层的服务提供者实现将加载数据存储中的所有数据。

设备通信
每个租户可能都有自己的设备连接要求,因此SiteWhere提供了一个功能强大且可扩展的设备通信子系统,可以根据每个租户进行定制。数据可以从许多来源获取,包括MQTT主题,通过AMQP的RabbitMQ队列,WebSockets,直接套接字连接和许多其他选项。可以使用命令目标(包括MQTT主题,Twilio SMS和许多其他选项)将命令发送回设备。有关更多信息,请参阅设备通信 文档

事件处理

每个租户对于如何处理设备数据以及如何与其他技术集成都有自己的要求。事件处理子系统允许定制入站事件处理的各个方面,包括入站事件的线程/排队和入站数据的定制处理步骤(例如事件存储,注册,度量标准等)。它还允许自定义出站事件处理(在事件持续发生后),包括线程/排队和自定义出站处理器逻辑(例如,通过Hazelcast进行广播,与Azure EventHub集成,在Apache Solr中进行索引等)。有关 更多信息,请参阅事件处理文档

资产管理
SiteWhere包括一个资产管理子系统,它提供了一种标准化方式来引用来自许多不同来源的资产。SiteWhere资产参考现实世界中的项目,包括人员(人员资产),地点(位置资产)和事物(硬件资产)。还有一类名为设备资产的资产,它们是可用于设备规范的硬件资产。资产用于指定有关设备规格的信息,例如使资产的名称,照片和属性。它们还用于设备分配,以指示与设备相关联的物理对象,例如与徽章相关联的人或与跟踪设备关联的汽车。


租户设备通信 - 配置租户与设备交互并与外部系统交互

租户设备通信

通信子系统配置SiteWhere与设备的通信方式。在入站侧,设备数据通过事件源被引入系统入站数据转换成SiteWhere事件和传递到入站处理链入站处理策略在出站端(作为出站处理链的一部分),命令通过命令目标发送到外部设备出站命令路由器 使得其中的命令目的地将被用于递送命令有效负载的选择。

通信引擎

SiteWhere通信引擎处理与设备交互相关的所有功能。其职责包括:

注册新的或现有的设备

SiteWhere设备可以通过API调用手动创建,但通常好让设备自行注册在这种情况下,设备会向系统提供一个的硬件ID和规格标记,然后创建一个可以开始接受事件的新设备记录。SiteWhere假定每个设备在系统中都有的ID,因此可以独立寻址。在启动时传递的规格令牌指示设备正在使用的硬件类型,并引用系统中已存在的设备规格。设备在引导或连接到网络时发送注册事件,SiteWhere会创建新设备记录或找到现有设备记录。SiteWhere会向设备返回一条指示注册状态的响应消息。

从连接的设备收到事件

一旦向系统注册,设备就可以向SiteWhere报告任何数量或类型的事件,然后存储这些事件。事件类型包括位置更新,传感器测量和其他采集数据,或响应特殊事件的警报。设备还能够确认收到由SiteWhere发布的命令。事件通过入站事件管道传送到SiteWhere,该入站事件管道提供了引入处理传入数据的新功能的模块化方式。

向连接的设备传送命令

在SiteWhere中注册的每个设备都有一个与设备上运行的硬件类型相关的关联设备规范。每个设备规范都有一个可以针对具有该规范的设备执行的命令列表。SiteWhere允许为规范添加任意数量的命令,每个命令可以携带任意数量的参数。命令和参数可以通过管理用户界面或通过REST调用添加。当命令执行时,它们通过一条流水线传播,以预期的格式对它们进行编码,并通过预期的协议传递它们。

SiteWhere通信引擎中的数据流如下所示:

参考:http://documentation.sitewhere.io/architecture.html

详见:https://blog.csdn.net/orchidofocean/article/details/79668974哭


管理应用程序 - 使用包含的HTML5管理应用程序来配置SiteWhere实例

不在此赘述
详见:http://documentation.sitewhere.io/userguide/adminui/adminui.html

参考:http://documentation.sitewhere.io/userguide.html

分享好友

分享这个小栈给你的朋友们,一起进步吧。

SiteWhere
创建时间:2022-04-24 11:04:49
SiteWhere
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • itt0918
    专家
戳我,来吐槽~