The proliferation of sensors over the last years has generated large amounts of raw data, forming data streams that need to be processed. In many cases, cloud resources are used for such processing, exploiting their flexibility, but these sensor streaming applications often need to support operational and control actions that have real-time and low-latency requirements that go beyond the cost effective and flexible solutions supported by existing cloud frameworks, such as Apache Kafka, Apache Spark Streaming, or Map-Reduce Streams. In this paper, we describe a model-driven and stepwise refinement methodological approach for streaming applications executed over clouds. The central role is assigned to a set of Petri Net models for specifying functional and non-functional requirements. They support model reuse, and a way to combine formal analysis, simulation, and approximate computation of minimal and maximal boundaries of non-functional requirements when the problem is either mathematically or computationally intractable. We show how our proposal can assist developers in their design and implementation decisions from a performance perspective. Our methodology allows to conduct performance analysis: The methodology is intended for all the engineering process stages, and we can (i) analyse how it can be mapped onto cloud resources, and (ii) obtain key performance indicators, including throughput or economic cost, so that developers are assisted in their development tasks and in their decision taking. In order to illustrate our approach, we make use of the pipelined wavefront array.
翻译:近年来,传感器的普及产生了大量原始数据,形成了需要处理的数据流。在许多情况下,云资源因其灵活性被用于此类处理,但这些传感器流式应用通常需要支持具有实时和低延迟需求的操作与控制动作,这超出了现有云框架(如Apache Kafka、Apache Spark Streaming或Map-Reduce Streams)所支持的经济高效且灵活的解决方案范围。本文描述了一种用于在云上执行的流式应用的模型驱动且逐步精化的方法论。其核心角色由一组Petri网模型承担,用于指定功能性和非功能性需求。这些模型支持模型复用,并结合了形式化分析、仿真以及当问题在数学上或计算上难以处理时,对非功能性需求的最小和最大边界的近似计算。我们展示了我们的建议如何从性能角度协助开发者进行设计与实现决策。我们的方法允许进行性能分析:该方法旨在涵盖所有工程过程阶段,并且我们能够:(i) 分析如何将其映射到云资源上,(ii) 获取关键性能指标,包括吞吐量或经济成本,从而协助开发者完成开发任务和决策。为了阐述我们的方法,我们利用了流水线波前阵列。