Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js
IBM's Watson IoT platform is one of a number of IoT Platforms made the Codeguru list of Top IoT platforms. In reviewing IBM Watson IoT below, the areas shown in the article "Developer's Guide to Evaluating IoT Platforms" were used. This will make it easier for you to compare Watson IoT to other IoT platforms.
IBM Watson IoT Platform for Bluemix provides a versatile toolkit that includes gateway devices, device management, and powerful application access. By using Watson IoT Platform, you can collect connected device data and perform analytics on real-time data.
The IBM Watson IoT Platform is a fully managed, Cloud-hosted service that provides device management capabilities as well as data collection and management in a time series format. As part of IBM's Platform as a Service offering, IBM Bluemix, you can use the IBM Watson IoT Platform to rapidly build IoT apps from the catalog of services available in IBM Bluemix. You can choose from such IoT app options as storage services, rules, analytics services, stream analytics, machine learning, visualization, and user apps (Web or mobile). You also can embed cognitive capabilities in your IoT apps by using IBM Watson services available in IBM Bluemix.
Figure 1: The IBM Watson IoT Platform
IoT Hardware Support
Watson IoT supports just about any type of IoT device that can communicate over MQTT or HTTP.
IoT OS Support
Bluemix is built on top of Cloud Foundry and you can add support for languages or frameworks not supported in Cloud Foundry by default. These are located on the community-created buildpacks GitHub page.
Looking to develop in Python? You can find information here.
Cloud Foundry's open source technology makes Bluemix an extensible platform. It uses buildpacks that can be sourced from the community ecosystem. Some buildpacks are built-in so that you do not have to specify an external buildpack when deploying an application—for example, a Java Web application, Node.js application, or Ruby application.
Figure 2: Foundry's open source technology
Key Sensor Support
The growing range of Internet-connected devices that make up the Internet of Things, or IoT, capture or generate an enormous amount of information every day. These devices include mobile phones, sports wearables, home heating and air conditioning systems, and more. In an industrial setting, these devices and sensors can be found in manufacturing equipment, the supply chain, and in-vehicle components. IBM created the IBM Watson IoT Platform specifically to make developing and deploying IoT solutions of all sizes easier for developers.
The Bluemix dashboard has a form for selecting sensor data on your device(s):
Figure 3: The Bluemix dashboard
To interact with sensors and actuators on boards, Intel provides the libmraa library. This library provides an abstraction layer on top of supported hardware so that you can read data from sensors and actuators in a standard way and create portable code that works across supported platforms.
Figure 5 shows how devices communicate with the IBM Watson IoT Platform over MQTT:
Figure 4: How devices communicate with the IBM Watson IoT Platform over MQTT
IoT Data Considerations
Not surprisingly, the Watson IoT Platform provides a spectrum of analytics.
Real-Time Insights allows developers to easily define rules that monitor raw device properties, calculated values, or real-time analytic results. When triggered, rules generate alerts and drive automated actions that can send an e-mail or text message, create a maintenance request, or actuate a device. Real-Time Insights enables the monitoring of equipment to understand and respond to deteriorating circumstances.
Machine learning allows you to automatically process that data to understand what's important as well as what you should pay attention to. It helps you separate normal, expected behavior from abnormal behavior through automated analysis. It also helps you analyze large repositories of data to understand correlations and patterns among hundreds of device properties. Machine learning techniques can help businesses identify the complex interactions that foretell future events such as declining asset health, failures, and quality issues.
Cognitive analytics are ideal for analyzing unstructured data such as video, images, audio, and text. These data sources are harder to quantify and distill down to actionable insights, and analysis of this type of data requires deep learning and training to make sense of the patterns. Cognitive analytics learn and reason from interactions with their environment rather than being explicitly programmed. They use deep learning and fuzzy logic to understand data, classify results, and make decisions based on expected outcomes.
IoT Security Considerations
Operational security should be top of mind when selecting an IoT platform. The Watson IoT Platform supports robust security standards that complement the use of open standard secure communications protocols, such as TLS v1.2, that ensure IoT device interactions are authenticated and encrypted. Coupled with the additional operational security capabilities of both Bluemix and Softlayer—all compliant with a wide range of Industry Standards—you can configure and manage a secure environment appropriate for your device, application, and user requirements.
Watson IoT Platform is built on the highest standards of security internally and has been audited by a third-party firm to ensure compliance specifically with ISO 27001—the key standard that defines the best practices for information security management processes and ensures that the right measures are implemented, documented, and maintained.
Development and Deployment Considerations
Node-RED is a tool for wiring together the Internet of Things in new and interesting ways, including hardware devices, APIs, and online services. It is built on top of Node.js and takes advantage of the huge node module ecosystem to provide a tool that is capable of integrating many different systems. Its lightweight size makes it ideal to run at the edge of the network as well, such as on the Raspberry Pi, and other prototyping platforms.
Node-RED contains the following Watson IoT nodes that helps you to connect your devices, gateways, and applications to Watson IoT Platform and create IoT solutions quickly.
- Watson IoT Node: A pair of nodes to connect your device or gateway to the IBM Watson Internet of Things Platform. A device or gateway can use these nodes to send events and receive commands from the application.
- IBM IoT App Node: A pair of nodes to connect your application to the Watson IoT Platform. An application can use these nodes to receive device events and send commands back to the device.
Cost and Licensing of IoT Platforms and Solutions
The Watson IoT Platform offers three pricing models: Free, Standard, and Advanced Security.
Pricing works on three main metrics:
- Data Exchanged
- Data Analyzed
- Edge Data Analyzed
You get 200 MB of each for free every month.
The Free model includes:
- Up to 500 registered devices, and a maximum of 200 MB of each data metric
- Maximum of 500 registered devices
- Maximum of 500 application bindings
- Maximum of 200 MB of each of data exchanged, data analyzed and edge data analyzed
The Standard model encompasses:
- The free tier of 200 MB each of data exchanged, data analyzed and edge data analyzed per month at no cost. Above the free quota, all three metrics are tiered by usage in MB
- Charge per MB of data exchanged
- Charge per MB of data analyzed
- Charge per MB of edge data analyzed
The Advanced Security model includes:
- The free tier of 200 MB each of data exchanged, data analyzed, and Edge data analyzed, just as for the Standard Plan. Additionally, included in the free tier, Advanced Risk and Security Management features are provided. Above the free quota, all three metrics are tiered by usage in MB
When your free tier MB use is exceeded, charges will apply. These are:
- Charge per MB of data exchanged
- Charge per MB of data analyzed
- Charge per MB of edge data analyzed
Visit the Pricing Calculator to get exact figures.
The IBM Watson™ IoT Platform is built on the following key areas:
- Connect: Connect devices and develop applications.
- Information Management: Store, normalize, transform, and review device data and integrate your Watson IoT Platform with other services.
- Analytics: Visualize real-time device data by using the Watson IoT Platform dashboard.
- Risk Management: Configure secure connectivity and architecture with access control for users and applications.
See the Bluemix docs for more info.
Programming Environment/Tools: IBM Watson™ IoT Platform for Bluemix gives you a versatile toolkit that includes gateway devices, device management, and powerful application access. By using Watson IoT Platform, you can collect connected device data and perform analytics on real-time data from your organization. You can set up and configure your Watson IoT Platform instance from the dashboard.
OS/Languages: The IBM Watson IoT Platform works on all major OSes.
The IBM Watson IoT Platform provides device client libraries that make it easier to connect devices to the platform. Client libraries are available in the Python, Java, Embedded C, Node.js, and C# programming languages.
An alternative to connecting Intel devices to the IBM Watson IoT Platform is using the open source Eclipse Paho MQTT Library, which provides a client implementations of MQTT. To use Paho, you'll need to pick up a supported Paho MQTT library—for example, Microsoft .Net for Windows® 10 devices or a C client for devices that support that programming language.
The IBM Watson IoT Platform supports the MQ Telemetry Transport (MQTT) protocol, which is the foundation for all communication between Intel or other IoT devices and the IBM Watson IoT Platform.
To connect to the IBM Watson IoT Platform, you must register your device with the IBM Watson IoT Platform. Then, you receive an organization ID—a unique six-character identifier for your account. A IBM Watson IoT Platform Organization acts like a domain, where data is accessible only from devices and apps in that domain. When you have registered your devices, those devices and API keys are bound to that Organization. When an application connects to the IBM Watson IoT Platform by using an API key, that connection registers with the Organization that "owns" the API key. The combination makes it impossible for devices and apps that aren't part of the same Organization to communicate with each other.
Target audience: Intermediate to advanced developers
Most recent update/stable release: In August of 2015, Watson IoT Platform released version 2 of the Watson IoT Platform APIs, including all the features from the version 1 API and introducing new features and new ways to interact with existing features of the platform.
License: Licenses are paid on a subscription basis. IBM does not publish prices online.
IBM Watson IoT is one of several IoT Platforms to make our list. You can find the others in the IoT area of Codeguru!