skip to main content
10.1145/3474624.3477072acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

Towards First-Class Architectural Connectors: The Case for Self-Adaptive Service Meshes

Published:05 October 2021Publication History

ABSTRACT

The development of architectural connectors as first-class software entities is a long-standing software engineering promise that has not been fully realized thus far. This observation is especially true in self-adaptive software systems, where most advances within academia and industry have targeted software components as the primary locus for run-time adaptation. In this paper, we revisit the evolutionary history of architectural connectors and discuss the challenges of implementing architectural connectors as first-class self-adaptation entities in the domain of modern microservice applications. We then make a case for our ongoing work on a cloud-native self-adaptive service mesh framework that builds on recent container orchestration, self-adaptation, and service mesh technologies.

References

  1. 2003. UNIX Network Programming Volume 1: The Sockets Networking API. Vol. 3. Addison-Wesley Professional.Google ScholarGoogle Scholar
  2. C. M. Aderaldo 2019. Kubow: An Architecture-Based Self-Adaptation Service for Cloud Native Applications. In 13th European Conference on Software Architecture–Volume 2. 42–45.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. Albassam 2016. Model-based Recovery Connectors for Self-adaptation and Self-healing. In 11th International Joint Conference on Software Technologies – Volume 1: ICSOFT-EA. 79–90.Google ScholarGoogle Scholar
  4. J. Aldrich 2019. Model-Based Adaptation for Robotics Software. IEEE Software 36, 2 (2019), 83–90.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Amazon Web Services. [n.d.]. AWS App Mesh: Application-level networking for all your services. Retrieved 2021/07/26 21:09:38  from https://aws.amazon.com/app-mesh/Google ScholarGoogle Scholar
  6. Apache Foundation. [n.d.]. Apache ActiveMQ: Flexible & Powerful Open Source Multi-Protocol Messaging. Retrieved 2021/07/26 21:09:38  from https://activemq.apache.org/Google ScholarGoogle Scholar
  7. Apache Foundation. [n.d.]. Apache Kafka: A Distributed Streaming Platform. Retrieved 2021/07/26 21:09:38  from https://kafka.apache.org/Google ScholarGoogle Scholar
  8. G. Banavar 1999. A Case for Message Oriented Middleware. In International Symposium on Distributed Computing(Lecture Notes in Computer Science, Vol. 1693). Springer, 1–17.Google ScholarGoogle ScholarCross RefCross Ref
  9. A. D. Birrell and B. J. Nelson. 1984. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems (TOCS) 2, 1 (1984), 39–59.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Box 2000. Simple Oject Access Protocol (SOAP) 1.1. Retrieved 2021/07/26 21:09:38  from https://www.w3.org/TR/2000/NOTE-SOAP-20000508/Google ScholarGoogle Scholar
  11. B. Burns and D. Oppenheimer. 2016. Design patterns for container-based distributed systems. In 8th {USENIX} Workshop on Hot Topics in Cloud Computing (HotCloud 16).Google ScholarGoogle Scholar
  12. L. Calcote. 2018. The Enterprise Path to Service Mesh Architectures. O’Reilly.Google ScholarGoogle Scholar
  13. J. Cámara 2016. Incorporating architecture-based self-adaptation into an adaptive industrial software system. Journal of Systems and Software 122 (2016), 507–523.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. A. Chappell. 2004. Enterprise Service Bus. O’Reilly Media, Inc.Google ScholarGoogle Scholar
  15. S.-W. Cheng and D. Garlan. 2012. Stitch: A language for architecture-based self-adaptation. Journal of Systems and Software 85, 12 (2012), 2860–2875.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. De Lemos 2013. Software Engineering for Self-Adaptive Systems: A Second Research Roadmap. In Software Engineering for Self-Adaptive Systems II. Springer, 1–32.Google ScholarGoogle Scholar
  17. M. DeLaney. 2020. What Is Progressive Delivery All About?Retrieved 2021/07/26 21:09:38  from https://launchdarkly.com/blog/what-is-progressive-delivery-all-about/Google ScholarGoogle Scholar
  18. EnvoyProxy. [n.d.]. Envoy. Retrieved 2021/07/26 21:09:38  from https://www.envoyproxy.io/Google ScholarGoogle Scholar
  19. R. T. Fielding. 2000. REST: Architectural Styles and the Design of Network-based Software Architectures. Ph.D. Dissertation. University of California, Irvine. Retrieved 2021/07/26 21:09:38  from http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htmGoogle ScholarGoogle Scholar
  20. Flagger.app. [n.d.]. Flagger: Progressive Delivery Operator for Kubernetes. Retrieved 2021/07/26 21:09:38  from https://flagger.app/Google ScholarGoogle Scholar
  21. Omitted for blind review. [n.d.]. An Empirical Evaluation of Two Microservice Resiliency Patterns: Retry and Circuit Breaker. Submitted for publication.Google ScholarGoogle Scholar
  22. D. Garlan 1995. Architectural Mismatch: Why Reuse is So Hard. IEEE Software 12, 6 (1995), 17–26.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. Garlan 2004. Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure. Computer 37, 10 (2004), 46–54.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. Garlan, R. T. Monroe, and D. Wile. 2000. Acme: Architectural Description of Component-Based Systems. Foundations of Component-Based Systems 68 (2000), 47–68.Google ScholarGoogle Scholar
  25. gRPC. [n.d.]. gRPC: A high-performance, open source universal RPC framework. Retrieved 2021/07/26 21:09:38  from https://grpc.io/Google ScholarGoogle Scholar
  26. HashiCorp. [n.d.]. Consul Connect. Retrieved 2021/07/26 21:09:38  from https://www.consul.io/docs/connectGoogle ScholarGoogle Scholar
  27. P. Inverardi 2005. Synthesis of correct and distributed adaptors for component-based systems: an automatic approach. In 20th IEEE/ACM international Conference on Automated software engineering (ASE). 405–409.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Istio. [n.d.]. Istio: Connect, secure, control, and observe services. Retrieved 2021/07/26 21:09:38  from https://istio.io/Google ScholarGoogle Scholar
  29. P. Jamshidi 2018. Microservices: The Journey So Far and Challenges Ahead. IEEE Software 35, 3 (2018), 24–35.Google ScholarGoogle ScholarCross RefCross Ref
  30. J. O. Kephart and D. M. Chess. 2003. The Vision of Autonomic Computing. Computer 36, 1 (2003), 41–50.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Kubernetes. [n.d.]. Horizontal Pod Autoscaler. Retrieved 2021/07/26 21:09:38  from https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/Google ScholarGoogle Scholar
  32. Kubernetes. [n.d.]. Kubernetes: Production-Grade Container Orchestration. Retrieved 2021/07/26 21:09:38  from https://kubernetes.io/Google ScholarGoogle Scholar
  33. Kuma.io. [n.d.]. Kuma: The universal Envoy service mesh for distributed service connectivity. Retrieved 2021/07/26 21:09:38  from https://kuma.io/Google ScholarGoogle Scholar
  34. J. Lewis and M. Fowler. 2014. Microservices: a definition of this new architectural term. Retrieved 2021/07/26 21:09:38  from https://martinfowler.com/articles/microservices.htmlGoogle ScholarGoogle Scholar
  35. Linkerd. [n.d.]. Linkerd: Ultralight, security-first service mesh for Kubernetes. Retrieved 2021/07/26 21:09:38  from https://linkerd.io/Google ScholarGoogle Scholar
  36. S. Mahdavi-Hezavehi 2017. A systematic literature review on methods that handle multiple quality attributes in architecture-based self-adaptive systems. Information and Software Technology 90 (2017), 1–26.Google ScholarGoogle ScholarCross RefCross Ref
  37. N. R. Mehta, N. Medvidovic, and S. Phadke. 2000. Towards a Taxonomy of Software Connectors. In 22nd International Conference on Software Engineering (ICSE). 178–187.Google ScholarGoogle Scholar
  38. N. C. Mendonça 2018. Generality vs. Reusability in Architecture-Based Self-Adaptation: The Case for Self-Adaptive Microservices. In 12th European Conference on Software Architecture: Companion Proceedings.Google ScholarGoogle Scholar
  39. N. C. Mendonça 2021. Developing Self-Adaptive Microservice Systems: Challenges and Directions. IEEE Software 38, 2 (2021), 70–79.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. N. C. Mendonça 2020. Model-based analysis of microservice resiliency patterns. In 2020 IEEE International Conference on Software Architecture (ICSA). IEEE, 114–124.Google ScholarGoogle ScholarCross RefCross Ref
  41. D. Merkel. 2014. Docker: Lightweight Linux Containers for Consistent Development and Deployment. Linux J. 2014, 239 (2014).Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. W. Morgan. 2019. The Service Mesh: What Every Software Engineer Needs to Know about the World’s Most Over-Hyped Technology. Retrieved 2021/07/26 21:09:38  from https://buoyant.io/service-mesh-manifesto/Google ScholarGoogle Scholar
  43. Object Management Group. 2012. Common Object Request Broker Architecture (CORBA) 3.3. Retrieved 2021/07/26 21:09:38  from https://www.omg.org/spec/CORBA/Google ScholarGoogle Scholar
  44. M. Oussalah, A. Smeda, and T. Khammaci. 2004. An Explicit Definition of Connectors for Component-Based Software Architecture. In 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems (ECBS). IEEE, 44–51.Google ScholarGoogle Scholar
  45. J. L. Pastrana 2011. QoS-enabled and self-adaptive connectors for Web Services composition and coordination. Computer Languages, Systems & Structures 37, 1 (2011), 2–23.Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Prometheus. [n.d.]. Prometheus: Monitoring system & time series database. Retrieved 2021/07/26 21:09:38  from https://prometheus.ioGoogle ScholarGoogle Scholar
  47. M. Ranney. 2016. What I Wish I Had Known before Scaling Uber to 1,000 Services. Retrieved 2021/07/26 21:09:38  from gotocon.com/dl/goto-chicago-2016/slides/MattRanney_WhatIWishIHadKnownBeforeScaling UberTo1000Services.pdf presentation at GOTO Chicago 2016.Google ScholarGoogle Scholar
  48. N. Salatge and J.-C. Fabre. 2007. Fault tolerance connectors for unreliable web services. In 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). IEEE, 51–60.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. M. Shaw. 1993. Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status. In Workshop on Studies of Software Design. Springer, 17–32.Google ScholarGoogle Scholar
  50. M. Shaw and D. Garlan. 1996. Software Architecture: Perspectives on an Emerging Discipline. Vol. 1. Prentice Hall Englewood Cliffs.Google ScholarGoogle Scholar
  51. SMI-Spec. [n.d.]. SMI: A standard interface for service meshes on Kubernetes. Retrieved 2021/07/26 21:09:38  from https://smi-spec.io/Google ScholarGoogle Scholar
  52. Traefik Labs. [n.d.]. Traefik Mesh: Simpler Service Mesh. Retrieved 2021/07/26 21:09:38  from https://traefik.io/traefik-mesh/Google ScholarGoogle Scholar
  53. D. Weyns. 2017. Software Engineering of Self-Adaptive Systems: An Organised Tour and Future Challenges. Springer.Google ScholarGoogle Scholar
  54. O. Zimmermann. 2017. Microservices tenets. Computer Science: Research and Development 32, 3 (2017), 301–310.Google ScholarGoogle ScholarDigital LibraryDigital Library
  1. Towards First-Class Architectural Connectors: The Case for Self-Adaptive Service Meshes

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      SBES '21: Proceedings of the XXXV Brazilian Symposium on Software Engineering
      September 2021
      473 pages
      ISBN:9781450390613
      DOI:10.1145/3474624

      Copyright © 2021 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 5 October 2021

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

      Acceptance Rates

      Overall Acceptance Rate147of427submissions,34%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format