{'fraction_non_alphanumeric': 0.025974025974025976, 'fraction_numerical': 0.0017316017316017316, 'mean_word_length': 5.963855421686747, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
SAMURAI: A Streaming Multi-tenant Context-Management Architecture for Intelligent and Scalable Internet of Things Applications

In the Internet of Things, heterogeneous and distributed streams of sensor events is a driver for context-aware behavior in intelligent environments. However, processing the event data usually cross-cuts the business logic of IoT applications and offering such reusable functionality as a service towards a variety of customers with different needs is often faced with scalability concerns. We present SAMURAI, a multi-tenant streaming context architecture that integrates and exposes well-known components for complex event processing, machine learning, knowledge representation, NoSQL persistence and in-memory data grids. SAMURAI pursues a twofold approach to achieve scalability: (1) distributed deployment with horizontal scalability, (2) shared resources through multi-tenancy. For the scenario used in the experimental evaluation of our architecture, the results show little overhead to support multi-tenancy, with near-linear scalability and flexible elasticity for deployment schemes with data partitioning per tenant.