## 4 CEP Model: Transforming IoT Events to Meaningful Business Domain Events  
Having presented an architecture for managing an IoT environment, we introduce Complex Event Processing for parametric progressive transformations that generate events that are meaningful in the context of an application domain. The proposed model is about a core concept, not a structure or a system. In other words, it is a conceptual framework that lays the foundations for creating and executing runtime business logic aware elements in the Center of the System layer of the proposed symmetrical functional architecture at the backbone of events and consequently establish asynchronous bi-directional communication between IoT and Applications based on a consistent, unified expression language for declaring Data and Processing Models in the domain context. In essence, the CEP model provides the ability to synthesize meaningful events that carry meaningful business information out of raw data and domain knowledge. The visual representation of the architecture and the CEP model is shown in Figure 2.  
In Section 3, we presented an approach to how meaningfulness is elicited in the application domain context. However, meaningfulness in the context of CEP can be many things, including semantics, schema, correlations, associations, topics, origin, domain knowledge, data quality, and every aspect that distinguishes raw and/or transient data from meaningful information. These concepts collectively assemble a conceptually meaningful event. We clarify that we do not make any assumptions regarding the complexity of a meaningful event. Moreover, we do not introduce any limitations on what can be considered a mean ingful event. Conceptually, it is a transformation product that is more than a data transfer object (DTO) and has specific semantics in the context of the IoT. Events, topics, and events streams are the basic notions of a traditional topic-based publish-subscribe model. Applications, topologies, and processors, which are presented in the following paragraphs, are essential building blocks of Complex Event Processing. All presented terms collectively constitute an expressive visual language that describes how information has to be processed and finally transformed into something meaningful. Building blocks can be parametric to boot. The developer can define which parts of the above elements are parameterizable, parameterize them, and get different instantiations of the same application, topology, or processor definition. The parameterization is conducted at application or topology level but may affect all encapsulated elements that make up the respective application or topology. The concept of parametrization is broad. Without introducing any limitations on what constitutes parameterization and parametric elements, we present some examples of parameters: the number of devices to be taken into account in the calculation of a value, a statistical method (standard deviation or mean, minimum or maximum), the duration of a time window, how to handle an error, how often to retrieve a calculated value (given that many values are produced), and more. An **event** represents something that happened in the observed world or, more generally, any kind of data that reflects some knowledge generated by the origin. Technically, it is a record or, more precisely, a message distributed across the architectural runtime  
Figure 2: Symmetrical layered Architecture enables parametric Complex Event Processing. elements. In its most basic conceptual form, an event has a key, value, timestamp, and optional metadata. Events are organized and live in **topics** that are named resources acting as virtual directories of records. Events are written to a topic by producers, which are client applications that publish events and read from a topic by consumers that are also client applications consuming and processing events. Events, which are the cornerstone of the proposed architecture, are processed in processing pipelines consisting of multiple stages.