IoT Development Platforms: Carriots Overview

The Carriots logo

Carriots is a Platform as a Service (PaaS) designed for Internet of Things (IoT) and Machine to Machine (M2M) projects. It enables the collection and storage of data from connected objects (things), and helps build powerful applications with few lines of code as well as integration with external IT systems.

Carriots provides a development environment, APIs, and hosting for IoT projects development that automatically scales to meet any demand, from several to several million devices.

The Carriots working environment
Figure 1: The Carriots working environment

Carriots is one of the IoT Platforms that made the Codeguru list of Top IoT platforms. In evaluating Carriots, we used the structure recommended in our article “Top IoT Platforms for Developers.” By using this structure below, you will be able to compare Carriots to other IoT platforms covered here on Codeguru.

Key Features

IoT Hardware Support

Any commercial, open, or custom-made hardware is potentially compatible with Carriots. All it needs is Internet connectivity to talk to a REST API. Compatible tested hardware includes:

  • Arduino
  • Raspberry Pi
  • Beagle Bone
  • Cubie Board
  • TST Gate
  • TST Mote
  • Cloudgate
  • Nanode

IoT OS Support

Carriots is developed with Groovy (http://www.groovy-lang.org/) technology. Groovy is a “dynamic language for the Java Virtual Machine that builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby or Smalltalk.”

Here are some of the main reasons for choosing Groovy for Carriots SDK, according to the Carriots docs:

  • Makes modern programming features available to Java developers with almost-zero learning curve
  • Supports Domain-Specific Languages and other compact syntax for good reading and easy maintaining code
  • Seamlessly integrates with all existing Java classes and libraries
  • Great toolset
  • Good community support and penetration

The Carriots SDK includes a set of core libraries for Carriots entities management coverage and a set of utility tools for custom use. Access to the core functionality goes through the core internal authentication services; communications are controlled and filtered by a communication module.

Java security policies and custom wrappers grant security within the SDK ecosystem. Carriots’ aim is to ensure encapsulation and security executing arbitrary code. Data access is always filtered to match script owners’ visibility.

Developers can build their complete control panel over Carriots REST API in the language of their choosing.

Moreover, the HTTP/HTTPS RESTful API can be utilized to push and pull XML or JSON encoded data.

Key Sensor Support

Carriots can store data from your sensors or status information from the device. You can use all that data to build monitor applications or to publish it.

The http://api.carriots.com/sensors/ API call lists all of the available types of Carriots sensors. It accepts an HTTP GET request and returns a JSON/XML response.

Various API calls available to Carriot
Figure 2: Various API calls available to Carriot

IoT Data Considerations

In addition to the ability to collect and store any kind of data from your devices, Carriots also provides a means to integrate with other IT systems, create export files, push data to another database, or just use the REST API to manage your outbound data.

Carriots brings two ways to publish data: pushing it to an external system or pulling it with REST API.

Pushing Data with a Trigger

Triggers are the way Carriots automatically pushes the data received to external systems. A trigger must be associated to a service. Each dataset received by a device of that service will launch the trigger to push the data.

Analytics

Data analytics deliver added value to existing solutions by consuming historical data. There are different analytics solutions to choose from. Santiago Mota, Carriots contributor and Business Intelligence expert, has provided a good integration example on GitHub.

IoT Security Considerations

Communication with the Carriots REST API is achieved over the HTTP or HTTPS protocols. The latter is recommend so that the connection between your app/devices and Carriots is secured using encryption.

MQTT over TCP vs TLS

Carriots uses the MQTT protocol to send streams and exchange information with IoT devices. MQTT relies on TCP as its transport protocol, which means by default the connection does not use encrypted communication. To encrypt the whole MQTT communication, most MQTT brokers allow clients use TLS instead of plain TCP. TCP/IP port 1883 is reserved for use with MQTT, and TCI/IP port 8883 also is reserved to use MQTT over TLS.

Protocols and Checksum

When using the Carriots control panel, data integrity is granted by the panel’s logic. When the REST API is used, a checksum with HMAC can be useful to automatically check data integrity and re-authenticate each request.

Carriots has three protocols to be used among external devices or applications and Carriots. When using Carriots protocol version v3, the checksum token is generated by the sender and included in the stream “envelope.”

Development and Deployment Considerations

As mentioned earlier, deployment can be scaled from tiny prototypes to thousands of devices.

Some of the advantages offered by development and deployment in Carriots include:

  • Carriots PaaS has been designed for high availability
  • Scale up to millions of devices
  • Focus on your apps and let the Carriots Platform carry the systems, security, and communications
  • Save development time
  • Forget about IT infrastructure cost, problems, and scalability issues
  • Fast prototyping

Cost and Licensing of IoT Platforms and Solutions

Carriots offers four pricing models:

Free

  • For testing and prototyping
  • Min. number of devices: 1
  • Max. number of devices: 2
  • API KEYS: 4
  • Max. accepted streams:
    • 500 streams per day
    • 10 streams per minute
  • Max. stream size: 5 KB
  • Max. stream data storage: 5000 KB per day
  • Data retention: 3 months
  • Max. API requests:
    • 1000 per day
    • 100 per minute
  • SMS API:
    • 5 SMS per day
    • 1 SMS per minute
  • E-mail API:
    • 100 e-mail per day
    • 10 e-mail per minute
  • SDK Http Request (outbound): 1000 req. per day
  • Basic support:
    • Email support in our best effort
    • Developer forum
  • Service Level Agreement: NO

CORPORATE

Approx $2.59 USD per month per device

  • Devices sending up to 1 MB per day and making lots of connections
  • Min. number of devices: 11
  • Max. number of devices: Unlimited
  • API KEYS: 100
  • Max. accepted streams:
    • 1500 x device number per day
    • 50 x device number per minute
    • + INFO
  • Max. stream size: 0 KB
  • Max. stream data storage:
    • 1 MB x device number per day
    • + INFO
  • Data retention: 1 year
  • Max. API requests:
    • 1000 x device number per day
    • 100 x device number per minute
    • + INFO
  • SMS API:
    • Free 5 SMS per day
    • >6 SMS 0.1€* per unit.
  • E-mail API:
    • Free 100 e-mail per day
    • >100 0.50€* per thousand
  • SDK Http Request (outbound):
    • 1000 req. x device number per day
    • + INFO
  • Corporate support:
    • Phone support
    • Email support within 24 hours
    • Guaranteed response time
  • Service Level Agreement: Different plans available

LITE

$0.65 USD per month per device

  • Lots of devices sending low amount of data. For example Smart Meter, Remote Maintenance
  • Min. number of devices: 100
  • Max. number of devices: Unlimited
  • API KEYS: 10
  • Max. accepted streams:
    • 25 x device number per day
    • 5 x device number per minute
    • + INFO
  • Max. stream size: 5 KB
  • Max. stream data storage:
    • 100 KB x device number per day
    • + INFO
  • Data retention: 1 year
  • Max. API requests:
    • 100 x device number per day
    • 10 x device number per minute
    • + INFO
  • SMS API:
    • Free 5 SMS per day
    • >6 SMS 0.1€* per unit.
  • E-mail API:
    • Free 100 email per day
    • >100 0.50€* per thousand
  • SDK Http Request (outbound):
    • 25 req. x device number per day
    • + INFO
  • Lite support:
    • Phone support
    • E-mail support within 24 hours
    • Guaranteed response time
  • Service Level Agreement: Different plans available

PRIVATE CLOUD ON PREMISE

For unlimited connections and data storage or private usage or custom needs

  • Max. number of devices: Unlimited
  • API KEYS: Unlimited
  • Max. accepted streams: Unlimited
  • Max. stream size: Unlimited
  • Max. stream data storage: Unlimited
  • Data retention: Unlimited
  • Max. API requests: Unlimited
  • SDK Http Request (outbound): Unlimited
  • Premium support: Different plans available
  • Service Level Agreement: Different plans available

See the Carriots pricing information for more details.

Carriots

Company: Altair

Key features:

  • Device Management
  • Remotely maintain, control, and interact with your devices regardless of their location. Check status, change configurations, enable/disable or upgrade the firmware of your devices.

Listeners: When you receive data, when you store it, when a device is connected or disconnected… all those events will let you react with simple IF-THEN-ELSE structures. Just write your Groovy expressions and make your devices smart.

Rules: Complex scripts, reusable pieces of code, simple ready to use logic… you name it. Rules are Groovy scripts stored at Carriots and ready to be used in Listeners.

Triggers: Push your data to an external system with Carriots’ triggers. A simple method to implement data brokerage.

SDK Application Engine: Listeners and rules, both are executed by Carriots SDK engine. Sandboxing Java execution threads to keep secure and efficient. All your database is accessible with powerful Groovy scripting.

Data export: Integrate with other IT systems, create your export files, push data to another database, or just use our REST API to manage your outbound data.

Custom alarms: Alarms are created by Carriots when something goes wrong. You also can create and manage your own custom Alarms to notify, acknowledge, and discard them.

Debug logs: Developing always needs to keep an eye on every part of a project. Use the logs to know of your device’s interact with Carriots.

Customer hierarchy level: Keep projects organized or just deal with different customers with different visibilities. The seven-level hierarchy, starting at Customer down to Devices, will keep your mind healthy.

API Key Management: API access is controlled by API keys; they tell Carriots what you can do and see. Define them using fine grained privilege and visibility management.

Custom Control Panel: Create your custom control panel with your preferred technology and manage all Carriots entities with the REST API.

Programming Environment/Tools:

OS:

  • Mac
  • Linux
  • Windows

Languages: REST API. Carriots REST API is the way devices and other systems interact with the platform. It is a standard protocol based on HTTP/S and it is plain text JSON or XML formatted.

Carriots SDK: The Carriots SDK (Software Development Kit) is the core intelligence engine in the Carriots ecosystem. It’s based on Groovy scripting technology and has libraries to help you work with all Carriots ecosystems. Those libraries are built to be used in the Carriots execution engine and therefore are internal libraries. They are imported in rules or listener expressions and can access all your data. Check the Carriots SDK documentation for more details about them. For external software development, Carriots REST API will cover the same functionalities.

Protocol: MQTT protocol

Target audience: Intermediate to advanced developers.

License: Carriots enforces Four Laws of Service and Data Protection:

  • Your Data is Yours
  • Your Data is Protected
  • Your Data is Portable
  • The Free Account is provided “AS IS and “AS AVAILABLE” with no Service Level Agreements. Corporate Accounts with SLAs are available upon commercial request.

See the Terms of service for full details.

Conclusion

Carriots is one of several IoT Platforms to make our list. You can find the others in the IoT area of Codeguru!

Robert Gravelle
Robert Gravelle
Rob Gravelle resides in Ottawa, Canada, and has been an IT guru for over 20 years. In that time, Rob has built systems for intelligence-related organizations such as Canada Border Services and various commercial businesses. In his spare time, Rob has become an accomplished music artist with several CDs and digital releases to his credit.

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read