## 7 Conclusions  
The first result obtained by RAM\({}^{\text{S}}\) is the simplified implementation of complex multimedia stream analysis applications, by resulting in a reduction in code lines one has to write to run them in a distributed computing environment. This clearly helps developers in quickly scale out their multimedia stream data mining applications which were originally conceived for a non-distributed scenario. This benefits an easier extraction of value and knowledge from massive multimedia data streams. A second advantage is the independence of the implementation from the underlying exploited Big Data platform, since RAM\({}^{\text{S}}\) can indifferently run on top of Spark, Storm, Flink, or Samza, and the decision can be performed at runtime. This allows, for example, to devise which, of the four platforms, is the most suitable for the scenario at hand, considering both the characteristics of available hardware and the requirements of the online application (e.g., limited latency, scalability, high throughput). Indeed, as recently acknowledged [18], the benchmarking of stream engines has become quite a battleground, as contrasting results from Spark [19] and Flink [20] have been published. Quoting from [18]:  
_\"It is better not to believe benchmarking these days because even a small tweaking can completely change the numbers. Nothing is better than trying and testing ourselves before deciding.\"_  
However, implementing even a simple application on top of different stream processing platforms could be quite hard, since the developer has to deal with details specific to each framework. Here, the generality and wide applicability of RAM\({}^{\text{S}}\) are of immediate help, since the same code could be executed on top of any of the four included streaming platforms. A relevant step in this direction is being pursued by Google, whose Apache Beam platform ([[https://beam.apache.org/](https://beam.apache.org/)]([https://beam.apache.org/](https://beam.apache.org/)), accessed on 3 December 2021) has the goal of writing stream (and also batch) processing applications independent of the underlying engine (called _runner_), so that the resulting code could be executed on any of the supported runners (which also include the proprietary Google Cloud Dataflow ([[https://cloud.google.com/dataflow/](https://cloud.google.com/dataflow/)]([https://cloud.google.com/dataflow/](https://cloud.google.com/dataflow/)), accessed on 3 December 2021) [21]. \begin{table}
\begin{tabular}{c c} \hline \hline
**Framework** & **Lines of Code** \\ \hline Spark & \(\sim\)170 \\ Storm & \(\sim\)150 \\ Flink & \(\sim\)200 \\ Samza (Kafka) & \(\sim\)50 \\ Samza (custom connector) & \(\sim\)250 \\ RAM\({}^{\text{S}}\) & \(\sim\)120 \\ \hline \hline \end{tabular}
\end{table} 
Table 5: Base of use in implementing the face recognition use case over the considered frameworks. To conclude, we would like to point out that, since the scenario of stream processing platforms is evolving at a breathtaking speed (an example is the short life of Apache Apex ([[https://apex.apache.org/](https://apex.apache.org/)]([https://apex.apache.org/](https://apex.apache.org/)), accessed on 3 December 2021)), we plan to continue in metamorphosing RAM\({}^{3}\)S, e.g., to include other streaming engines. For example, we are considering including Apache Kafka not only as a message broker, rather as a first class citizen of the streaming world, thanks to its Kafka Streams API. A further direction for future work is the deployment modality of underlying platforms: At the moment every streaming engine is deployed in stand-alone mode, while including a resource manager such as Apache Hadoop Yet Another Resource Negotiator (YARN) could automatically add fault-tolerance and resource balancing to the overall architecture. Finally, a further extension of the Reader and Writer classes would allow to connect more than a Reader to any Writer (and vice versa) so that the whole multimedia stream processing architecture can assume the form of a Directed Acyclic Graph.