Here are some key open source software tools for your IoT ecosystem, including frameworks for maintenance-related microservices and using Java to connect separate machines.
The open source landscape is chock-full of talented developers creating powerful tools. These tools are often more than just barebones applications; they can be fully featured business technology solutions.
Open source projects area jumping-off point for new Internet of Things (IoT) infrastructure or features, as well as a long-term solution that becomes a fixture in your organization’s workflow. Not only do open source tools provide cost-saving benefits but also provide a vibrant, passionate community of other users to connect with.
In the case of the IoT ecosystem, this community is important as new technologies emerge daily in this realm.
Connecting with a broad range of people working in this space is a great way to stay up-to-date on IoT and a boon for navigating this new region of business technology.
Open source frameworks for IoT range from device management tools to data collection and application development.
Depending on your organization’s IoT goals, you may find one or more of these open source projects useful in deploying or streamlining an IoT infrastructure. Here are some projects to consider.
M2M Labs Mainspring
M2M Labs Mainspring is a Java-based machine to machine (M2M) application framework.
The framework supports many functions you would want in an M2M application, such as device modeling for timestamping and locating data sources per fleet device, data normalization and validation using triggered Groovy scripts, and long term data storage functionality through compact time series values.
M2M Labs provides a wiki with sample applications for Arduino, Android, Raspberry PI, Ubuntu Core, and Merkur Board .
ThingsBoard
ThingsBoard is a full IoT platform for connecting devices within a fleet, collecting and processing data, device management, and data visualization.
The platform uses a microservices architecture to support scalability.
ThingsBoard can be used with both on-premises and cloud deployment, and connects devices using MQTT, CoAP, or HTTP protocols.
The visualization features are utilized through custom widgets and shareable dashboards. The ThingsBoard wiki provides installation and getting started guides, application programming interface (API) documentation, and architecture guides.
DeviceHive
DeviceHive is a scalable IoT data framework that can be deployed on private, public and hybrid clouds using Docker compose or Kubernetes.
The platform is device-agnostic and supports a range of libraries, including Android and iOS. DeviceHive comes with Apache Spark and Spark Streaming support, but can also utilize Cassandra and Kafka.
The platform provides extensive documentation and a quick-start environment called Playground. With Playground, users can sign up quickly using Facebook, GitHub or Google+, and get started with DeviceHive APIs to get a project up and running.
Zetta
Zetta is a Node.js-based platform for scalable IoT servers. The platform focuses on API usage by providing each device in the fleet with a local Rest API.
It gives developers access to abstractions to help speed up and simplify development time. Zetta highlights its data-intensive application support with an emphasis on reactive programming to manage large batches of data.
Although there is documentation on GitHub for Zetta, the scope is smaller than other open source projects in this overview. Zetta does encourage users to connect with its community to share knowledge.
OpenRemote
OpenRemote’s goal is to integrate a range of IoT devices into a unified management platform. The platform supports standard protocols, like HTTP and MQTT, but also lesser used ones such as KNX.
Data is transformed into a generic OpenRemote asset for management through the centralized platform. One powerful advantage of OpenRemote is its flexible front-end development abilities.
UX designers can customize a front-end application to be accessed on both PCs and mobile devices. OpenRemote documentation provides a quick-start guide, architecture documentation, and account and identity management guides.
Serverless Framework
Serverless Framework is an IoT framework that offers both an open source use and paid use option. Serverless Framework lets developers build applications consisting of microservices that run in response to events to reduce overall maintenance costs.
It supports deployments in Amazon Web Services, Microsoft Azure and Google Cloud Platform, among others, and offers local testing and management of code. It supports several languages, including Node.js, C#, PHP, Python and Java.
The Serverless Framework community has also built a large selection of plugins for existing commands. The Pro version of the framework adds more monitoring transactions and builds, as well as other benefits.
Open source communities continue to thrive with the many platforms and solutions being further developed and improved upon every day.
IoT is a broad ecosystem with numerous business applications, and open source IoT solutions are almost as varied. At least one of these open source projects is bound to fit your needs and since they are free to use, there is little risk in experimenting with some of these options.