COSS: Content-Based Subscription as an IoT Service
Publish/subscribe (pub/sub) systems are widely used in numerous Internet-Of-Things (IoT) applications such as environment monitoring, supply chain tracing, healthcare, and vehicle networks. In these applications, publishers (e.g. Smart devices, sensors) are continuously generating large volume of data with an extremely high throughput, whereas subscribers are only interested in a small portion of the data. Recently, content-based subscription systems have raised more and more attentions by the researchers where subscribers can specify rules on the content of messages that are composed of many attributes. For example, in traffic monitoring, an operator is only interested in the data within a specified area defined by constraints on latitude and longitude instead of the whole map. In this paper, we present COSS, the first Content-based Subscription Service for IoT with natural multi-tenant support and easy-to-use REST APIs. Moreover, we investigate in the problem of Balanced Rule Engine Partitioning for content-based subscription under the Tenant-Message-Rule (TMR) model. We show the NP-hardness of the problem and design a heuristics to enable COSS to adaptively adjust the message distribution according to the workload history, and to scale on both the high data throughput of IoT workloads and multi-tenant. Extensive experiments show that COSS offers high performance and scalability for content-based subscription in terms of the number of tenants, and the data throughput of the messages.