基于Java的传感器数据采集库

基于Java的传感器数据采集库,java,real-time,sensors,data-stream,Java,Real Time,Sensors,Data Stream,我正在寻找一个嵌入式Java库,它适合于以通用方式收集传感器数据的实时流。我计划使用它来开发一个“中心”应用程序,用于报告在基于JVM的服务器上运行的多个不同的传感器流(也将为此使用Clojure) 它需要具备的关键要素: 各种常见传感器类型/API的接口。我很乐意自己制作我需要的东西,但如果能从盒子里拿出一些标准的东西就好了 适用于“软实时”使用,即相当低的延迟和低开销 能够在运行时监控和管理流,收集统计数据等 在合理许可的许可下开放源代码,以便我可以将其与其他代码集成(Apache、EPL

我正在寻找一个嵌入式Java库,它适合于以通用方式收集传感器数据的实时流。我计划使用它来开发一个“中心”应用程序,用于报告在基于JVM的服务器上运行的多个不同的传感器流(也将为此使用Clojure)

它需要具备的关键要素:

  • 各种常见传感器类型/API的接口。我很乐意自己制作我需要的东西,但如果能从盒子里拿出一些标准的东西就好了
  • 适用于“软实时”使用,即相当低的延迟和低开销
  • 能够在运行时监控和管理流,收集统计数据等
  • 在合理许可的许可下开放源代码,以便我可以将其与其他代码集成(Apache、EPL、BSD、LGPL都可以)
  • 合理活跃的社区/开发商生态系统

您可以推荐适合此配置文件的产品吗?

1。循环数据库()

RRDtool(循环数据库工具的首字母缩写)旨在处理 网络带宽、温度、CPU负载等时间序列数据。 数据存储在循环数据库(循环缓冲区)中,因此 系统存储占用空间随时间保持不变

这种方法/DB格式应用广泛、稳定且简单。开箱即用,可生成漂亮的绘图:

有一个Java实现--:

RRD4J是一种高性能的时间数据记录和绘图系统 系列数据,在Java中实现RRDTool的功能。接下来 大部分逻辑和使用相同的数据源、归档类型 和RRDTool一样定义。Apache 2.0许可下的开源

更新

忘了提及Clojure RRD API()

2。对于一些具有实时数据的实验,我建议考虑< /强>

它体积小、速度快、可靠性高,但分布在GPLv3下。Perst提供了几种索引算法:

  • B-树
  • T-Tree(针对内存中数据库进行了优化)
  • R-树(空间索引)
  • Patricia Trie(前缀搜索)
  • KD树(多维索引)
  • 时间序列(大量带有时间戳的固定大小对象)
  • 最后一个非常适合你的需要

    3。使用

    这种方法产生红利的一个很好的例子是时间序列 数据,其中的读数表示为每个 发生

    4

    Oracle Berkeley DB Java Edition是一款开源、可嵌入、, 事务存储引擎完全用Java编写。这需要全部时间 Java环境简化开发和维护的优势 部署。Oracle-Berkeley数据库Java版的体系结构 对于读密集型和非读密集型,都支持非常高的性能和并发性 和编写密集型工作负载

    建议

    试着:

  • 这很简单
  • 它提供了相当不错的情节
  • 它有Clojure API
  • 它支持多个后端,包括
  • 它可以存储/可视化详细的数据集

  • 对于收集传感器数据的实时流,以下内容可能会有所帮助

    你查过LeJos API了吗。这个

    此外,还值得检查Oracle Java ME Embedded及其所针对的目标市场

    可从

    在存储时间序列数据方面,没有什么能比得上卡桑德拉,也没有什么能回答为什么卡桑德拉会引用它

    要从Java访问Cassandra,请参阅 在cassandra db refer中应用时间序列概念非常有帮助

    为什么不直接使用Android?我将在JVM上运行-Android是否提供了一个在这种环境下工作的库?如果是这样,那么这可能是一个很好的答案。您用Java编写代码,但它在Dalvik机器上运行。您可能希望将此作为一个起点,并查看您的需求是否将被添加到:我认为您应该添加,因为他可能需要一些消息传递。