Kaa is a highly flexible open-source platform for building, managing, and integrating connected software in the Internet of Everything. Kaa introduces standardized methods for achieving integration and interoperation across connected products. On top of this, Kaa’s powerful back-end functionality greatly speeds up product development, allowing vendors to concentrate on maximizing their product’s unique value to the consumer.
The Kaa platform is comprised of the server component and endpoint SDK that integrates with client applications. For more information on the Kaa server architecture, please refer to the Design reference.
Key features of Kaa:
Event system performs discovery of a device’s advertised capabilities and delivery of the appropriate event messages across devices. Events may be unicast or multicast to several recipients. For detailed information on managing events, refer to the Events section.
Log collection: Kaa endpoints perform temporary storage of records of an arbitrary structure (“logs”). Kaa endpoint SDK implements log upload triggers that initiate periodic logs upload to the server. The server can store logs in the filesystem or using big data platforms like Hadoop, MongoDB, etc., or submit the data directly to the stream analytics processors. For example, logs can be used to help debug client applications, analyse user behavior, identify anomalies, etc. For detailed information on logging management, refer to the Logging section.
Profiling and grouping: Kaa introduces the concept of the endpoint profile, which is a snapshot of any data the specific server application needs to know about the client. Profiles can then be used to organize the endpoints into groups. Grouping endpoints can, for example, be used to send targeted notifications or adjust software behavior. For a more detailed explanation about profiles, filtering, and grouping refer to the the Endpoint profiling and Endpoint grouping sections.
Notifications delivery: Kaa features a topic-based notification system that enables the server to deliver messages of an arbitrary structure to subscribed endpoints. Topic access is controlled using the endpoint’s group membership. For a more detailed explanation about managing notifications, please refer to the Notifications section.
Data distribution: This feature can be used for centralized configuration management, content distribution, etc. Using Kaa’s “data schema” definition language, developers are able to define any type of data structure and constraint data types. Kaa’s data distribution is then able to deliver the structured data configured on the server to specific endpoint(s). For detailed information on data distribution refer to the Configuration section.
Transport abstraction: Kaa’s data channel abstraction architecture presents software vendors with freedom in selecting the networking stack for establishing communications between the server and endpoints - WiFi, Ethernet, Zigbee, mqtt, CoAP, XMPP, TCP, HTTP, etc. A major benefit of Kaa is its ability to build applications that function over any type of network connection and intelligently communicate with devices over intermittent data connections.
Stay tuned for the updates!
Kaa project team