Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js
Date: 1/31/2018 @ 2 p.m. ET
A number of IoT Platforms made the Codeguru list of Top IoT platforms, including ThingWorx. In evaluating ThingWorx, the structure recommended in "Top IoT Platforms for Developers" was used. This will make it easier for you to compare various IoT platforms.
PTC acquired ThingWorx, creators of an award-winning platform for building and running applications for the Internet of Things (IoT), for approximately $112 million in December of 2013. The acquisition of ThingWorx positioned PTC as a major player in the emerging Internet of Things arena.
ThingWorx is a platform for the rapid development and deployment of smart, connected devices. Its set of integrated IoT development tools support connectivity, analysis, production, and other aspects of IoT development.
It offers Vuforia for implementing augmented reality development, and Kepware for industrial connectivity. KEPServerEX provides a single point for data distribution, and facilitates interoperability when partnered with a ThingWorx agent.
ThingWorx is the only enterprise-ready technology platform that enables innovators to rapidly develop and deploy smart, connected solutions for the Internet of Things.
Developers can create IoT solutions that are scalable, secure, and meet the needs of large enterprise-level companies.
IoT Hardware Support
ThingWorx marketplace offers a number of development kits which include popular boards, such as:
- Intel Galileo
- Intel Galileo Gen 2
- Intel Edison
- NXP iMX6UltraLite Evaluation Kit
- Raspberry Pi
IoT OS Support
Windows, Apple iOS, and Android are supported. Moreover, you can compile C SDK applications on any platform, even running it without an operating system.
Key Sensor Support
To perceive the state of an IoT-connected device, whether it's a mining haul truck or a refrigerator, you need sensor data.
Sensors convert some measurement of the physical environment into an electrical signal, which can then be processed, analyzed, and used to make decisions. Those physical measurements include pressure, position and motion, vibration, temperature, humidity, ion concentration, magnetic signatures, and radiation, as well as imagery.
The point of a platform is an abstraction. It takes the specificities of all your device sensors and presents them in straightforward interfaces that can be interacted with. As a result, your managers can understand its value(s), abstracted from specific implementation details. Meanwhile, you, the developer, can focus on the coding and deployment of specific applications.
ThingWorx employs a Python library to read sensor data.
IoT Data Considerations
ThingWorx offers good analytics capabilities that are worth considering.
ThingWorx Analytics enables developers to extract meaning from their IoT data—to learn from past data, understand and predict the future, and make decisions based on data trends.
More specifically, it monitors devices to provide:
- Real-time pattern and anomaly detection on real-time data streams
- Automated predictive modeling and operationalization
- Prescriptive and simulative intelligence that identifies factors that contribute to an outcome and explains how to change a predicted outcome
- Automatic operationalization and maintenance of predictive and simulative intelligence to deliver to end-users
IoT Security Considerations
Developers of IoT devices face a number of security challenges, including:
- Complexity: New layers of device and user interactions need to be secured
- Risk Mitigation: Concerns over cyber-attacks finding devices on the Internet
ThingWorx follows the OWASP Software Assurance Maturity Model (SAMM) and helps its customers successfully implement a Secure Software Development Life Cycle (Secure SDLC).
There is a very granular security model available within ThingWorx. There are two sets of permissions, one for design time and one for run time. The design time permissions are for managing who is allowed to modify the model (create, read, update, and delete entities), whereas the run time permissions determine who can access data, execute services, and trigger events on a thing.
For each permission, you can explicitly permit a User or Group to be able to do something (like edit a thing) or explicitly deny a Group the ability to do something. You can apply permissions at the Group level and at the User level. It is also important to note that security checks default to not allow an operation. If no specific grant has been given to a user, that operation will be denied.
Other security features include:
- Administrator Services
- Allowing Embedded Mashups in iFrames
- Application Key Services
- Directory Services Authentication
- Inheriting Permissions from a Thing Template
- Service Overrides
- Single Sign-on Authentication
Development and Deployment Considerations
At the heart of the ThingWorx infrastructure is the IoT platform. The IoT platform is a suite of components that enable:
- Deployment of applications that monitor, manage, and control connected devices
- Remote data collection from connected devices
- Independent and secure connectivity between devices
- Device/sensor management
- Integration with third party systems
The IoT platform exists independently between the hardware and the application layers of the IoT technology stack. It integrates with any connected device and enables the implementation of IoT features and functions into any device in the same way.
Figure 1: ThingWorx works on multiple platforms
To migrate an application from the sandbox to production, you just need to import the data and entities into the production server.
Cost and Licensing of IoT Platforms and Solutions
ThingWorx is available only by subscription. This offers customers the benefits of faster access to new ThingWorx features and enhancements, flexibility and lower upfront costs, and Cloud deployment options.
Unfortunately, ThingWorx has not provided pricing information and public pricing information is unavailable.
Visit PTC.com/subscription for more information.
- Rapid prototyping
- Complete sets of integrated IoT-specific development tools and capabilities
- Integrates with leading public device Clouds
- Offers several pre-built tools to help companies manage, monitor, and extract data from their products
- Developers can use their preferred development tools, such as Eclipse, or source code management tools, such as Git
- Won 2015 IoT Excellence Award, Most Innovative Platform Solution 2014, Best in Show Award for IoT Solution 2013, and many more
- Integrated Search allows context-aware search to be built into applications' development and runtime.
- Device Browsing enables developers to automatically add edge devices, machines, and systems to ThingWorx with nearly zero effort.
- An enhanced Extensibility Toolkit enables partners, customers, and OEMs to extend the capabilities of ThingWorx with their unique intellectual property to deliver applications, services, and visualizations that meet the needs of their targeted markets.
- New connectivity extensions provide integration to M2M and industrial protocols such as MQTT, OData, OPC, Modbus, Zigbee/ZWave, and others.
- Expanded capabilities for integration with many leading enterprise CRM and ERP systems, big data analytics tools, and public Web services.
- Project team development features improve productivity for distributed development teams through chat and online collaboration, audit trail documentation, and configuration management.
- ThingWorx IoT Starter Kits
- ThingWorx Composer
- ThingWorx drag-and-drop Mashup Builder
- ThingWorx Studio
ThingWorx Studio Supported Operating Systems and Browsers:
- Mac El Capitan Chrome
- Windows 7, 10 (64-bit only), Chrome
Note that the screen resolution minimum is 1280.
ThingWorx View iOS Supported Devices (iOS 9.0 or later)
Note: only iOS 10 or later will be supported after the release of iOS 11.
Device Supported Versions:
- iPhone 5s, 6, 6 Plus, 6s, 6s Plus, SE
- iPad Air, Air 2, Mini 4, Pro, Pro 9.7
ThingWorx View Android Supported Operating Systems: ThingWorx View is supported on devices with an Android operating system with version 5.0 and newer.
ThingWorx View Windows Supported Devices:
- Surface Pro 4
- Surface Book
- Microsoft HoloLens
Languages: ThingWorx offers SDKs that allow edge devices the means to communicate with ThingWorx through various programming languages.
Target audience: intermediate to experienced developers
Most recent update/stable release: 8.0, June 2017
License: PTC uses a subscription licensing model. You have to fill out a form and have them contact you.
ThingWorx is one of several IoT Platforms to make our list. You can find the others in the IoT area of Codeguru!