Ephemeral Data Handling in Microservices - Technical Report

Saverio Giallorenzo, Fabrizio Montesi, Larisa Safina, Stefano Pio Zingaro [2019].
In CoRR abs/1904.11327.

In modern application areas for software systems --- like eHealth, the Internet-of-Things, and Edge Computing --- data is encoded in heterogeneous, tree-shaped data-formats, it must be processed in real-time, and it must be ephemeral, i.e., not persist in the system. While it is preferable to use a query language to express complex data-handling logic, their typical execution engine, a database external from the main application, is unfit in scenarios of ephemeral data-handling. A better option is represented by integrated query frameworks, which benefit from existing development support tools (e.g., syntax and type checkers) and execute within the application memory. In this paper, we propose one such framework that, for the first time, targets tree-shaped, document-oriented queries. We formalise an instantiation of MQuery, a sound variant of the widely-used MongoDB query language, which we implemented in the Jolie language. Jolie programs are microservices, the building blocks of modern software systems. Moreover, since Jolie supports native tree data-structures and automatic management of heterogeneous data-encodings, we can provide a uniform way to use MQuery on any data-format supported by the language. We present a non-trivial use case from eHealth, use it to concretely evaluate our model, and to illustrate our formalism.
Additional notes
Cite (BibTeX)
Click to expand
  author       = {Saverio Giallorenzo and
                  Fabrizio Montesi and
                  Larisa Safina and
                  Stefano Pio Zingaro},
  title        = {Ephemeral Data Handling in Microservices - Technical Report},
  journal      = {CoRR},
  volume       = {abs/1904.11327},
  year         = {2019},
  url          = {http://arxiv.org/abs/1904.11327},
  eprinttype    = {arXiv},
  eprint       = {1904.11327},
  timestamp    = {Sat, 23 Jan 2021 01:11:27 +0100},
  biburl       = {https://dblp.org/rec/journals/corr/abs-1904-11327.bib},
  bibsource    = {dblp computer science bibliography, https://dblp.org}