Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js
Date: 1/31/2018 @ 2 p.m. ET
Figure 1: The Microsoft Azure IoT suite
Microsoft has been contributing to the Internet of Things (IoT) for some time now with its Azure service. Thanks a very polished starter kit, Microsoft has been steadily taking market share away from its competitors, such as Google IoT Platform and Amazon Web Services (AWS) IoT.
A number of IoT Platforms made the Codeguru list of "Top IoT Platforms for Developers," including the Azure IoT Suite. In evaluating the Azure IoT Suite, the structure recommended in "How to Evaluate IoT Platforms for Developers" was used. This will make it easier for you to compare various IoT platforms.
The Azure IoT Suite is designed to be a quick-start type of portal—a true example of a platform as a service (PaaS)—that gives you the necessary resources to manage the data being generated by your IoT devices, so that you may better understand it, manipulate it, and use it to improve your business processes.
To deliver these capabilities, Azure IoT Suite packages together multiple Azure services with custom extensions as preconfigured solutions. These preconfigured solutions are base implementations of common IoT solution patterns that help to reduce the time to deliver your own IoT solutions. By using the IoT software development kits, you can customize and extend these solutions to meet your own requirements. You also can use these solutions as examples or templates when you are developing new IoT solutions.
Figure 2: Azure solutions
IoT Hardware Support
To start your IoT projects, Azure offers Certified for IoT devices, gateways, and Azure IoT Starter Kits. Each has been compatibility-tested for seamless connectivity to an IoT Hub.
The Azure catalog features hundreds of certified IoT devices and starter kits tailored to just about any application from starter kits, to sensors, to whole operating systems.
Their selection of starter kits includes a ride range of boards, including:
- M5Stack Iot kit
- CPS 200
- Intel NUC
- Intel Edison
- Adafruit Feather Huzzah
- Adafruit Feather M0 Wi
You also can certify your own devices by joining the Azure Certified for IoT program.
IoT OS Support
You might expect Microsoft to promote their own OS over all others, but in fact, this is not the case. Recognizing that IoT devices often run on Linux or other OSes, Microsoft has wisely accepted a wide range of popular OSes, such as:
- Windows 10
- Debian Linux
- Windows Server
- Ubuntu Linux
- Windows 8
- Yocto Linux
- Windows IoT Core
- Fedora Linux
- Raspbian Linux
Key Sensor Support
The Azure catalog showcases more than 500 devices from more than 200 partner manufacturers' certified Tested Compatible Sensors and Tested Built-in Sensors, including:
- Air Temperature
- Liquid Temperature
- Soil Alkalinity
- Image Capture
- Motion Detection
- Chemical/Compound Presence
Any sensor will work with the Azure IoT Suite as long as it can communicate over AMQP, AMQP over WebSockets, MQTT, or HTTP/REST for the device-to-Cloud communication protocols.
Azure also includes:
- Support for SSL (using third-party dependencies such as openSSL or WolfSSL)
- Simple APIs to:
- Establish a secure connection to IoT Hub
- Send messages to IoT Hub
- Receive messages from IoT Hub
There also are development boards and starter kits IDEs for a variety of programming languages Libraries to support I/O and sensor interactions.
IoT Data Considerations
The Azure IoT Hub is a service for controlling and ingesting data from IoT devices.
Azure's IoT Hub integration enables you to unleash the power of real-time analytics to glean insight over millions of events from all your connected devices. Hence, Stream Analytics clients can perform real-time analytics over data brought in through Azure Event Hubs, IoT Hubs, and Azure Blobs.
IoT Hub is a fully managed service that enables reliable and secure bi-directional communications between millions of IoT devices and an application back end. Azure IoT Hub offers reliable device-to-Cloud and Cloud-to-device messaging, enables secure communications using per-device security credentials and access control, and includes device libraries for the most popular languages and platforms.
It provides services like the following categories:
Data + Analytics
- HDInsight: Provisions Cloud Hadoop, Spark, R Server, HBase, and Storm clusters
- Stream Analytics: Real-time data stream processing from millions of IoT devices
- Azure Bot Service: Intelligent, serverless bot service that scales on demand
- Data Lake Analytics: Distributed analytics service to facilitate big data
- Data Lake Store: Hyperscale repository for big data analytics workloads
- Data Factory: Orchestrates and manages data transformation and movement
- Power BI Embedded: For embedding interactive data visualizations in your applications
- Data Catalog: To get more value from your enterprise data assets
- Log Analytics: For the collecting, searching, and visualizing of machine data from on-premises and the Cloud
- Apache Spark for Azure HDInsight: Apache Spark in the Cloud for mission-critical deployments
- Text Analytics API: Evaluates sentiment and topics to understand what users want
- Azure Analysis Services: Enterprise grade analytics engine as a service
- Dynamics 365 for Customer Insights: Transforms your customer data into actionable insights
- Custom Speech Service: Overcomes speech recognition barriers such as speaking style, background noise…
- Event Hubs: Receives telemetry from millions of devices
- SQL Data Warehouse: Elastic data warehouse as a service with enterprise-class features
AI + Cognitive Services
- Machine Learning Studio: For building, deploying, and managing predictive analytics solutions.
- Cognitive Services: Adds smart API capabilities to enable contextual interactions
- Azure Bot Service: Intelligent, serverless bot service that scales on demand
- Text Analytics API: Evaluates sentiment and topics to understand what users want
- Recommendations API: Predicts and recommends items your customers want
- Academic Knowledge API: Tapping into the wealth of academic content in the Microsoft Academic Graph
- Computer Vision API: Helps distill actionable information from images
- Content Moderator: Automated image, text, and video moderation
- Emotion API: For personalizing user experiences with emotion recognition
- Face API: Detects, identifies, analyzes, organizes, and tags faces in photos
- Bing Speech API: Converts speech to text and back again to understand user intent
- Web Language Model API: Uses the power of predictive language models trained on Web-scale data
- Language Understanding Intelligent Service: Teaches your apps to understand commands from your users
- Speaker Recognition API: Uses speech to identify and authenticate individual speakers
- Custom Speech Service: Overcomes speech recognition barriers like speaking style, background noise, and vocabulary
- Bing Autosuggest API: Gives your app intelligent autosuggest options for searches
- Bing Spell Check API: Detects and corrects spelling mistakes in your app
- Translator Speech API: Conducts real-time speech translation via a simple REST API call
- Translator Text API: Conducts machine translation via a simple REST API call
- Bing Custom Search: An easy-to-use, ad-free, commercial-grade search tool that lets you deliver the results you want
- Bing Entity Search API: Enriches your experiences by identifying and augmenting entity information from the Web
- Bing Web Search API: Gets enhanced search details from billions of Web documents
- Bing Video Search API: Searches for videos and gets comprehensive results
- Bing Image Search API: Searches for images and gets comprehensive results
- Bing News Search API: Searches for news and gets comprehensive results
- Custom Decision Service: A Cloud-based, contextual decision-making API that sharpens with experience
- QnA Maker API: Distills information into conversational, easy-to-navigate answers
- Knowledge Exploration Service: Enables interactive search experiences over structured data via natural language inputs
- Entity Linking Intelligence Service API: Powers your app's data links with named entity recognition and disambiguation
- Linguistic Analysis API: Simplifies complex language concepts and parses text with the Linguistic Analysis API
- Video Indexer: Unlocks video insights
- Video API: Intelligent video processing
- Custom Vision Service: Customizes your own computer vision models for your unique use case
This service provides on-demand, real-time analytics to drive intelligent action. Developers can run real-time analytics in parallel on multiple IoT or non-IoT streams of data using an SQL-like language. Custom code also may be utilized for more advanced scenarios. There`s no infrastructure to manage, so you can process data on-demand, scale whenever necessary, and only pay per job.
In addition to Azure Stream Analytics, Azure IoT typically stores data in blobs. These can be analyzed by using HDInsight and Machine Learning, then fed into Power BI for additional analysis, on a routine or ad hoc basis.
Azure Stream Analytics is priced by the number of streaming units required to process the data into the service. The price per Standard Streaming Unit is $0.11 per hour.
IoT Security Considerations
Azure IoT supports the security standards Device Identity Composition Engine (DICE) and Hardware Security Module (HSM). In addition, Microsoft has partnered with Micron and STMicro to support HSM and DICE security technologies and Spyrus to support HSM for SD and USB storage devices.
Their Security Center includes a number of security tools and services to prevent, detect, and respond to threats with increased visibility. These include:
- Azure Active Directory for Developers: Scalable, cross-platform authentication for your mobile apps and Web sites
- Key Vault: To manage cryptographic keys and secrets
- Azure Active Directory: Synchronizes on-premises directories and enables single sign-on
- Azure Active Directory B2C: Consumer identity and access management in the Cloud
- Active Directory for Domain Services: Joins Azure virtual machines to a domain without domain controllers
- Multi-Factor Authentication: Safeguards access to your data and apps with an extra level of authentication
Development and Deployment Considerations
If you're looking for a full IoT solution, Microsoft provides an Event Hub, IoT Hub, Stream Analytics, Power Bi, and many more automation and monitoring tools. For developers, the IoT Suite deployment tool makes it easier to set up these tools. With just a few clicks, you can organize all the components you need for collecting, storing, and monitoring your device data. IoT Suite even includes mechanisms like Rules and Alerts.
Once you have created a solution with IoT Suite, you then can pull it apart and change anything you like, as per your specific scenario and requirements.
Once you're finished tinkering with your IoT Suite demo/prototype, you can delete everything that was created by simply Deleting the Solution that IoT Suite created. Doing so deletes everything in the solution's Resource Group and the AAD instance created for it.
Cost and Licensing of IoT Platforms and Solutions
Azure pricing carries no upfront costs; you only pay for what you use.
Here's some example pricing:
|App Service||Starting From $0 per month|
|Virtual Machines||Starting From $13 per month|
|SQL Database||Starting From $4.99 per month|
You can estimate your expected monthly bill by using the online Pricing Calculator, and track your actual account usage and bill at any time by using the billing portal. It allows you to set up automatic e-mail billing alerts to be notified if your spending goes above an amount you configure.
There's also a calculator to compare the total cost of ownership (TCO) of your on-premises infrastructure with a comparable Azure deployment using the TCO Calculator and estimate savings you can realize by moving to Azure.
The Azure internet of things (IoT) services offer a broad range of capabilities. These enterprise grade services enable you to:
- Collect data from devices
- Analyze data streams in-motion
- Store and query large data sets
- Visualize both real-time and historical data
- Integrate with back-office systems
- Manage your devices
To deliver these capabilities, Azure IoT Suite packages together multiple Azure services with custom extensions as preconfigured solutions. These preconfigured solutions are base implementations of common IoT solution patterns that help to reduce the time you take to deliver your IoT solutions. By using the IoT software development kits, you can customize and extend these solutions to meet your own requirements. You also can use these solutions as examples or templates for developing new IoT solutions.
Azure IoT Suite provides complete, end-to-end implementations of this architecture for specific IoT scenarios. For example:
- The remote monitoring solution enables you to monitor the status of devices such as vending machines.
- The predictive maintenance solution helps you to anticipate maintenance needs of devices, like pumps in remote pumping stations, and avoid unscheduled downtime.
- The connected factory solution helps you to connect and monitor your industrial devices.
Programming Environment/Tools: The Azure IoT suite is a full-scale member of the Azure service, and thus works with Visual Studio, Eclipse, Chef, Puppet, GitHub, PowerShell, Python, MongoDB, Hadoop, Ruby, Docker, MySql, and anything else that is part of the set of compatible offerings and capabilities with Azure.
Target audience: Intermediate to advanced developers
Most recent update/stable release: N/A
Microsoft offers a few licenses to choose from.
Microsoft's Open licensing programs are a simple, cost-effective way for small and midsize organizations to acquire the latest Microsoft technology. With a customizable platform and price advantages for volume purchasing, Open programs provide a simple, cost-effective way to acquire the latest Microsoft technology. Microsoft Open programs offer the ability to add Online Services purchases to your agreement, so you can transition to the Cloud at your own pace through your existing agreement.
Open Value is the recommended program if you have a small to midsize organization with five or more desktop PCs and want to simplify license management, manage software costs, and get better control over your investment. It also includes Software Assurance, providing access to valuable benefits such as training, deployment planning, software upgrades, and product support help you boost your organization's productivity.
An Open Value Subscription provides the lowest up-front costs of the Open program options with the flexibility to reduce the total licensing costs in years when the desktop PC count declines. This option gives your organization the rights to run the software throughout your organization only during the term of the agreement with Microsoft. You also have the ability to add the single platform option to an Open Value Subscription agreement.
For many Online Service products, the five-license minimum initial purchase is waived.
With an initial purchase of five or more licenses, you can acquire products as you need them over the term of your agreement.
In addition to options for commercial businesses, Microsoft also offers Open programs for the following industries:
- Government organizations
- Health organizations
- Educational institutions
- Qualifying 501(c)(3) nonprofit organizations
- Multinational organizations
US government entities are eligible to purchase Azure Government services from a licensing solution provider with no upfront financial commitment or directly through a Pay-As-You-Go online subscription.
See the pricing page for more purchasing and licensing options.
Microsoft's end-to-end IoT platform is the most complete IoT offering, enabling enterprises to build and realize value from IoT solutions quickly and efficiently. Their IoT solutions, including Azure IoT Suite and Azure IoT Hub, harness the power of the full Cloud, data, and developer offerings for the enterprise to provide large-scale IoT services, data and analytics, and deep integration. Developers can start building custom solutions using IoT Hub or get started quickly with the comprehensive preconfigured solutions of Azure IoT Suite (which includes Azure IoT Hub).
To help developers leverage the power of IoT in their endeavors and get started quickly, Azure IoT offers a set of open source SDKs, samples, preconfigured solutions, and tools. Microsoft engineers work on these SDKs, tools, and samples on GitHub, collaborating with the community and partners in the open to add features; support new languages, protocols, and devices and platforms; fix bugs; and improve performance.
You are unlikely to find a solution in this space where it is easier to get started and make tweaks to build your own workspace. Definitely worth a look!
Azure IoT Suite is one of several IoT Platforms to make our list. You can find the others in the IoT area of Codeguru!