Towards a Technique for Extracting Relational Actors from Monolithic Applications
Resumo
Relational actors, or reactors for short, integrate the actor model with the relational data model, providing an abstraction for enabling actor-relational database systems. However, as a novel model of computation for databases, there is no extensive work on reasoning about reactor modeling. To close this gap, this paper aims to propose as well as evaluate a technique to extract reactors from a monolithic system. For evaluation, we selected a REST-based open-source OLTP system in which a decomposition to microservices was conducted and applied our technique on its predecessor monolithic version. Our technique led to the same set of decisions, regarding table and behavior selection, taken by experts when decomposing the same system into microservices. The proposed technique can be seen as a first step towards supporting practitioners in decomposing OLTP systems into reactors.
Referências
Bellatreche, L., Karlapalem, K., and Simonet, A. (2000). Algorithms and support for horizontal class partitioning in object-oriented databases. Distributed and Parallel Databases, 8(2):155–179. DOI: https://doi.org/10.1023/A:1008745624048
Bernstein, P. A., Dashti, M., Kiefer, T., and Maier, D. (2017). Indexing in an actororiented database. In CIDR 2017, 8th Biennial Conference on Innovative Data SystemsResearch, Chaminade, CA, USA, January 8-11, 2017, Online Proceedings.
Boner, J., Farley, D., Kuhn, R., and Thompson, M. (2019). The Reactive Manifesto. https://www.reactivemanifesto.org/.
Cheung, A., Madden, S., Arden, O., and Myers, A. C. (2012). Automatic partitioning of database applications. Proceedings of the VLDB Endowment, 5(11). DOI: https://doi.org/10.14778/2350229.2350262
Du, D.-Z. and Pardalos, P. (1998). Handbook of Combinatorial Optimization. Combinatoral Optimization in Clustering. Springer, New York, NY.
Fielding, R. (2000). Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine.
Fowler, M. (2015). Presentation domain data layering. https://martinfowler. com/bliki/PresentationDomainDataLayering.html.
Gysel, M., Kölbener, L., Giersche, W., and Zimmermann, O. (2016). Service cutter: A systematic approach to service decomposition. In Service-Oriented and Cloud Computing, pages 185–200. Springer International Publishing. DOI: https://doi.org/10.1007/978-3-319-44482-6\_12
Hasselbring, W. and Steinacker, G. (2017). Microservice architectures for scalability, agility and reliability in e-commerce. In IEEE ICSA Workshops, pages 243–246. DOI: https://doi.org/10.1109/ICSAW.2017.11
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., and Irwin, J. (1997). Aspect-oriented programming. In ECOOP’97 — Object-Oriented Programming, pages 220–242, Berlin, Heidelberg. Springer Berlin Heidelberg. DOI: https://doi.org/10.1007/BFb0053381
Levcovitz, A., Terra, R., and Valente, M. T. (2016). Towards a technique for extracting microservices from monolithic enterprise systems. CoRR, abs/1605.03175.
Mazlami, G., Cito, J., and Leitner, P. (2017). Extraction of microservices from monolithic software architectures. In International Conference on Web Services. IEEE. DOI: https://doi.org/10.1109/ICWS.2017.61
Olbrich, S. M., Cruzes, D. S., and Sjøberg, D. I. (2010). Are all code smells harmful? A study of god classes and brain classes in the evolution of three open source systems. IEEE International Conference on Software Maintenance. DOI: https://doi.org/10.1109/ICSM.2010.5609564
Pavlo, A., Curino, C., and Zdonik, S. B. (2012). Skew-aware automatic database partitioning in shared-nothing, parallel OLTP systems. In Proceedings of the ACM SIGMOD International Conference on Management of Data, SIGMOD 2012, Scottsdale, AZ, USA, May 20-24, 2012, pages 61–72. DOI: https://doi.org/10.1145/2213836.2213844
Richards, M. (2015). Software Architecture Patterns. O’Reilly, 1st edition. Rowe, L. A. and Stonebraker, M. (1987). The POSTGRES data model. In VLDB’87, Proceedings of 13th International Conference on Very Large Data Bases, September 1-4, 1987, Brighton, England, pages 83–96.
Shah, V. and Salles, M. A. V. (2018). Reactors: A case for predictable, virtualized actor database systems. In Proceedings of the 2018 International Conference on Management of Data, SIGMOD, Houston, TX, USA, June 10-15, 2018, pages 259–274. DOI: https://doi.org/10.1145/3183713.3183752
Shah, V. and Salles, M. V. (2017). Actor database systems: A manifesto. CoRR, abs/1707.06507.
Sutter, H. and Larus, J. R. (2005). Software and the concurrency revolution. ACM Queue, 3(7):54–62. DOI: https://doi.org/10.1145/1095408.1095421
Wang, Y., dos Reis, J. C., Borggren, K. M., Salles, M. A. V., Medeiros, C. B., and Zhou, Y. (2019). Modeling and building iot data platforms with actor-oriented databases. In Advances in Database Technology - 22nd International Conference on Extending Database Technology, EDBT 2019, Lisbon, Portugal, March 26-29, 2019, pages 512– 523. DOI: https://doi.org/10.5441/002/edbt.2019.47