A full-stack secure IoT Platform

Dot Tag

  • Link between readers and app platforms
  • Brain that controls consistency within its group
  • Secure audit log of all signals and events (eg. 21CFR11)
  • Dashboard control panel and status monitor screens for wall-mounted displays
  • Monitors RuBee devices – status, health, activity
  • Central control of readers – can send commands and configuration
  • Allows app platforms (,,, Tulip, ...) to use RuBee data
  • Works with any app platform, or none
  • Tempest-hardened small form-factor server
  • Secure enterprise Linux
  • Java – mature and well-understood
  • REST API over TLS/SSL – for apps and app platforms
  • Redis for fast data structure I/O, RabbitMQ and MQTT support

Framework Comparison: vs.  
Overview Public, cloud, outsourced IoT platform Private, secure, controlled IoT platform

The cloud may be fine for some things, but it's not the right place for your sensitive industrial and defense IoT data. In the end, "cloud" is just a marketing term. A popular saying among systems professionals reveals the truth: "There is no cloud, it's just somebody else's computer."

Engineering influence GE Lockheed Martin, US DoE, US DoD speaks DoDAF 2.x

The Department of Defense Architecture Framework (DoDAF) is an architecture framework for the United States Department of Defense (DoD) that provides visualization infrastructure for specific stakeholders concerns through viewpoints organized by various views.

All major U.S. DoD weapons and information technology system acquisitions are required to develop and document an enterprise architecture (EA) using the views prescribed in the DoDAF. While it is clearly aimed at military systems, DoDAF has broad applicability across the private, public and voluntary sectors around the world, and represents one of a large number of systems architecture frameworks.




There are lots of reasons to use Java:

  • Owned/supported by Oracle
  • Mature and proven language/environment. Widespread adoption... literally billions of devices
  • Platform-independent
  • Easy to find developers and systems professionals
  • Easy for IT to install and manage
  • Scales predictably and inexpensively, from laptops to the largest clouds
  • World of enterprise components for integration



Spring provides an open programming model that is comprehensive, cohesive, widely understood and well-supported.




REST is an architectural style consisting of a coordinated set of architectural constraints applied to components, connectors, and data elements, within a distributed hypermedia system. REST ignores the details of component implementation and protocol syntax in order to focus on the roles of components, the constraints upon their interaction with other components, and their interpretation of significant data elements.

REST is a de-facto standard in the enterprise integration world:

Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.

BPMN 2.0 workflow (analytics/orchestrations)



Business Process Model and Notation (BPMN) is a standard for business process modeling that provides a graphical notation for specifying business processes in a Business Process Diagram (BPD), based on a flowcharting technique very similar to activity diagrams from Unified Modeling Language (UML). The objective of BPMN is to support business process management, for both technical users and business users, by providing a notation that is intuitive to business users, yet able to represent complex process semantics. The primary goal of BPMN is to provide a standard notation readily understandable by all business stakeholders. These include the business analysts who create and refine the processes, the technical developers responsible for implementing them, and the business managers who monitor and manage them. Consequently, BPMN serves as a common language, bridging the communication gap that frequently occurs between business process design and implementation...

Redis (in-memory) data structure management



Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

According to the monthly ranking by, Redis is the most popular key-value database, Redis has also been ranked the #1 NoSQL in User Satisfaction and Market Presence based on user reviews, the most popular NoSQL database in containers, and the #1 NoSQL among Top 50 Developer Tools & Services.

Works with Oracle ecosystem No


Because runs on top of Oracle, it works with the entire world of Oracle applications, tools, and systems.
User WYSIWYG reporting tools (PDF, XML, CSV)



User WYSIWYG web/mobile application builder No


For Oracle installations we include and support: Oracle Application Express
RDBMS PostgreSQL only Oracle, PostgreSQL, MySQL, and others

Choosing a database platform is a big commitment. And you may have committed to a specific platform already. So works with all of the common databases.

(If there are no other considerations, our recommendation is PostgreSQL for small-medium companies and Oracle for medium-large ones.)

Oracle 11g can be run for free — see Oracle Express Edition.

Message broker/queue RabbitMQ RabbitMQ or ActiveMQ

Messaging enables software applications to connect and scale. Applications can connect to each other, as components of a larger application, or to user devices and data. Messaging is asynchronous, decoupling applications by separating sending and receiving data.

You may be thinking of data delivery, non-blocking operations or push notifications. Or you want to use publish / subscribe, asynchronous processing, or work queues. All these are patterns, and they form part of messaging. RabbitMQ is a messaging broker - an intermediary for messaging. It gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.

Audit-logging of all data changes



Whenever people change data, tracks what was changed, who changed it, when it was changed, along with old/new values.
Where is data physically? "The cloud" outside of your control Your environment, 100% under your control at all times  
Application works on mobile devices? No, build a separate application. Yes, applications automatically work on mobile devices  
User interface foundation New/obscure "Polymer" library Mature/popular Bootstrap and jQuery libraries

Familiar to nearly every web designer/developer in the world.

Or you can use your own system: Polymer or any of a dozen others.

Internationalization and localization Handle it yourself. We've handled it. Applications are automatically multi-lingual and multi-localizable, with built-in interface for easily managing translations. Even supports right-to-left layouts and languages, e.g. Arabic.
English-like scripting language for defining logic, jobs, and tests No Yes


// platform defines the core logic
class Asset {

// you add custom attributes, like this:
class Firearm extends Asset {
    String serialNumber
    String caliber
    Date lastCleanedAt


Group commands into scripts, and easily run them from the included terminal and web-based console.

Or schedule them to run as jobs...