cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

We are working to address an issue with subscription email notifications. In the meantime, be sure to check your favorite boards for new topics.

Choose a Connectivity Method

No ratings

 

Guidelines for selecting the optimal method for connecting to ThingWorx

 

GUIDE CONCEPT

 

In the world of IoT application development, connectivity refers to the infrastructure and protocols which connect devices to the cloud or network. Edge devices handle the interface between the physical world and the cloud.

 

ThingWorx provides you with several different tools for connecting to the Thingworx platform.

 

This guide is designed as an introduction to these tools, and will help you determine which to choose based on your specific requirements.

 

YOU'LL LEARN HOW TO

 

  • Pros and cons of different connection methods
  • The connection method best suited for some typical applications
  • Where to find detailed information about any connection method

 

NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete this guide is 30 minutes

 

Step 1: Connectivity Method Options

 

There are many factors that will influence your decision about the ideal mechanism to connect to ThingWorx. On this page we compare and contrast different methods and give examples for where each one is a natural fit.

 

Connectivity MethodDeveloper Benefit
REST APIIntegrate seamlessly using dynamically-generated API calls
Azure IoT Hub ConnectorConnect devices that use Azure IoT Hub
Edge SDKsBuild full-featured integrations for any platform
ThingWorx Kepware ServerConnect out-of-the-box with over 150 protocol drivers for industrial equipment
Edge MicroServerEstablish bi-directional connectivity with this complete, ready-to-run agent

 

REST API

 

ProsConsTypical use caseSkills RequiredConnection Type 
Web developer can easily create integrationThingWorx cannot trigger action on the edgePush data from small devices to ThingWorxREST API developmentRequest/Response

 

Using the ThingWorx REST API is an easy way for low-capability devices to connect with a ThingWorx platform. Any edge device that can make an HTTP POST can read and update properties or execute services on a ThingWorx platform. The disadvantage of this method is that it is one way from edge to platform. There is no way for the platform to initiate a service on the remote device and properties are only updated when the edge device initiates a connection with ThingWorx.

 

Learn more about the ThingWorx REST API:

 

 

Azure IoT Hub Connector

 

ProsConsTypical use CaseSkills RequiredConnection Type 
Easily connect devices that use Azure IoT HubAdds dependency and cost to applicationAdd ThingWorx for devices connected with the Azure cloudAzure edge developmentAlwaysOn™

 

The diagram illustrates device-to-cloud integration with the Azure IoT Hub.

 

ThingWorx-Azure-IoT-Connector-diagram.jpg

The ThingWorx Azure IoT Hub Connector establishes network connections to both ThingWorx Foundation and the Azure IoT Hub. Data flows in from devices, through the Azure IoT Hub hosted in the cloud, to the ThingWorx Azure IoT Hub Connector configured for a specific ThingWorx instance. The ThingWorx Azure IoT Hub Connector translates messages from the Azure IoT Hub format, to the native ThingWorx format and uses an established AlwaysOn connection to forward the information to ThingWorx Foundation.

 

Azure IoT Hub

 

Connect Azure IoT Devices

 

Edge SDKs

 

ProsConsTypical Use caseSkill RequiredConnection Type 
  • Fully integrate device or remote system with ThingWorx platform
  • Most developer flexibility
All functionality must be developed by programmerFull customization or tight integration requiredApplication development in Java, C, or .NetAlwaysOn™

 

These SDKs are developer tools that wrap the protocol used to connect to the ThingWorx Platform. There are SDK's available for Java, C, and .Net languages. The Edge MicroServer uses the C SDK internally. All SDKs use the ThingWorx AlwaysOn binary protocol together with the HTTP WebSocket protocol for transport. WebSocket connections can operate through a firewall allowing two-way, low latency communication between the device and server. The SDKs support the following key concepts that allow a Thing developed with an SDK to be a full-fledged entity in the ThingWorx environment:

 

  • Remote properties — Entities that define the types, identities, and values from a device or remote system
  • Services — Actions that can be performed on demand by a device or remote system
  • Events — Data that is sent to a subscribed device or remote system whenever the Event is triggered

 

You can choose from any of the SDK's to create a custom application that meets their exact requirements.

 

C SDK

 

The C SDK is the most lightweight of all the SDKs and will result in an application that uses the least amount of RAM, frequently requiring less than 200kB. It is the only SDK that is distributed as source code, allowing compilation of C SDK applications on any platform even those without an operating system.

 

Learn more about the C SDK:

 

 

Java SDK

 

The Java SDK is designed for portability and simplicity to ease connecting any Java-enabled device or system to ThingWorx. The Java SDK is provided as .jar files and sample Java source code. Any system that can run Java 1.7.51 or later should be able to build and run the example applications.

 

Learn more about the Java SDK:

 

 

.Net SDK

 

The .Net SDK is provided as .dll files with sample Visual C# project files and source code. Any system that can run Microsoft NET 3.5 SP1 Framework development environment should be able to build and run the example applications.

 

Learn more about the .Net SDK:

 

 

ThingWorx Kepware Server

 

ProsConsTypical Use caseSkill RequiredConnection Type 
Easily connect to hundreds of different types of industrial equipmentRequires computer running Windows physically connected to deviceAdding ThingWorx to an industrial settingConfigure settingsAlwaysOn™

 

The ThingWorx Kepware Server Windows client lets users quickly and easily connect real-time, bi-directional industrial controls data to the ThingWorx IoT Platform via the ThingWorx AlwaysOn protocol. ThingWorx services enable users to browse, read, write, and interact with ThingWorx Kepware Server, and includes intuitive tools that simplify the modeling of industrial things.

 

Learn more about the ThingWorx Kepware Server:

 

 

Edge MicroServer

 

ProsConsTypical Use caseSkill RequiredConnection Type 
Easily connect with simple scripting
  • Requires a device running Windows or Linux
  • Customization with Lua scripting
Connecting gateway router to ThingWorxConfigure settingsAlwaysOn™

 

The ThingWorx Edge MicroServer is a binary executable available for Windows and Linux running on either ARM or x86 processors. The EMS establishes an AlwaysOn, bi-directional connection to a destination ThingWorx platform when it is started. The EMS is configured by editing a json text file to specify the target platform and credentials. The EMS uses the always on connection to provide a local HTTP server that is a reflection of the platform REST API. This local copy of the platform API allows devices that are not capable of making encrypted connections across the open internet to securely interact with the platform. The EMS package also includes the Lua Script Resource application. This application extends the ThingWorx Foundation server by connecting through the EMS HTTP server and provides a Lua interpreter that can be used to connect local resources to the ThingWorx server.

 

Learn more about the ThingWorx Edge MicroServer:

 

 

Step 2: Next Steps

 

Congratulations! You've successfully completed the Choose a Connectivity Method guide.

 

At this point, you can make an educated decision regarding which connection methods are best suited for your application and infrastructure.

 

The next guide in the Connect and Configure Industrial Devices and Systems learning path is Use REST API to Access ThingWorx

 

Learn More

 

We recommend the following resources to continue your learning experience:

 

CapabilityGuide
ConnectThingWorx Application Development Reference
BuildGet Started with ThingWorx for IoT
ExperienceCreate Your Application UI

 

Additional Resources

 

If you have questions, issues, or need additional information, refer to:

 

ResourceLink
CommunityDeveloper Community Forum
SupportThingWorx Connectors Help Center
Version history
Last update:
‎Dec 02, 2022 04:28 PM
Updated by:
Labels (2)
Contributors