Skip to main content

Building Systems of Systems with Escher

  • Conference paper
  • First Online:
Stabilization, Safety, and Security of Distributed Systems (SSS 2021)

Abstract

This paper presents Escher, an approach to build and deploy multi-tiered cloud-based applications, and outlines the framework that supports it. Escher is designed to allow systems of systems to be derived methodically and to evolve over time, in a modular way. To this end, Escher includes (i) a novel authenticated message bus that hides from one another the low-level implementation details of different tiers of a distributed system; and (ii) general purpose wrappers that take an implementation of an application and deploy, for example, a sharded or replicated version of an application automatically.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 79.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Abadi, M., Lamport, L.: The existence of refinement mappings. Theor. Comput. Sci. 82(2), 253–284 (1991)

    Article  MathSciNet  Google Scholar 

  2. Adya, A., et al.: Farsite: federated, available, and reliable storage for an incompletely trusted environment. In: Proceedings of the 5th Symposium on Operating Systems Design and Implementation (OSDI 2002). USENIX, December 2002

    Google Scholar 

  3. Ajmani, S., Liskov, B., Shrira, L.: Modular software upgrades for distributed systems. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 452–476. Springer, Heidelberg (2006). https://doi.org/10.1007/11785477_26

    Chapter  Google Scholar 

  4. Aksoy, R.C., Kapritsos, M.: Aegean: replication beyond the client-server model. In: Proceedings of the 27th ACM Symposium on Operating Systems Principles, SOSP 2019, pp. 385–398, New York, NY, USA. Association for Computing Machinery (2019)

    Google Scholar 

  5. Altinbuken, D., Van Renesse, R.: Ovid: a software-defined distributed systems framework. In: 8th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 2016), June 2016

    Google Scholar 

  6. Ananthanarayanan, R., et al.: Photon: fault-tolerant and scalable joining of continuous data streams. In: Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, SIGMOD 2013, pp. 577–588, New York, NY, USA. Association for Computing Machinery (2013)

    Google Scholar 

  7. Bernstein, D.: Containers and cloud: from LXC to Docker to Kubernetes. IEEE Cloud Comput. 1(3), 81–84 (2014)

    Article  Google Scholar 

  8. Bidan, C., Issarny, V., Saridakis, T., Zarras, A.: A dynamic reconfiguration service for CORBA. In: Proceedings of the Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159) (1998)

    Google Scholar 

  9. Bonakdarpour, B., Bozga, M., Jaber, M., Quilbeuf, J., Sifakis, J.: A framework for automated distributed implementation of component-based models. Distrib. Comput. 25, 10 (2012)

    MATH  Google Scholar 

  10. Burns, B., Grant, B., Oppenheimer, D., Brewer, E., Wilkes, J.: Borg, omega, and kubernetes. Queue 14(1), 70–93 (2016)

    Article  Google Scholar 

  11. Cooper, E.C.: Replicated procedure call. SIGOPS Oper. Syst. Rev. 20(1), 44–56 (1986)

    Article  Google Scholar 

  12. IBM Cloud Education. ESB (Enterprise Service Bus). https://www.ibm.com/cloud/learn/esb

  13. Gelernter, D.: Generative communication in Linda. ACM Trans. Program. Lang. Syst. 7(1), 80–112 (1985)

    Article  Google Scholar 

  14. Object Management Group. The Common Object Request Broker: Architecture and specification, revision 2.4.1, forma1/00-11-07, November 2000

    Google Scholar 

  15. Hawblitzel, C., et al.: IronFleet: proving practical distributed systems correct. In: Proceedings of the 25th Symposium on Operating Systems Principles, SOSP 2015, pp. 1–17, New York, NY, USA. Association for Computing Machinery (2015)

    Google Scholar 

  16. Apache Kafka. https://kafka.apache.org/

  17. Laibinis, L., Troubitsyna, E., Iliasov, A., Romanovsky, A.B.: Fault tolerant middleware for agent systems: a refinement approach. In: 12th European Workshop on Dependable Computing (EWDC 2009), Toulouse, France, May 2009

    Google Scholar 

  18. Leino, K.R.M.: Dafny: an automatic program verifier for functional correctness. In: Clarke, E.M., Voronkov, A. (eds.) LPAR 2010. LNCS (LNAI), vol. 6355, pp. 348–370. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-17511-4_20

    Chapter  MATH  Google Scholar 

  19. Liu, Y.A., Stoller, S.D., Lin, B.: High-level executable specifications of distributed algorithms. In: Richa, A.W., Scheideler, C. (eds.) SSS 2012. LNCS, vol. 7596, pp. 95–110. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-33536-5_11

    Chapter  Google Scholar 

  20. Horstmann, M., Kirtland, M.: DCOM architecture. In: Microsoft Developer Network, July 1997

    Google Scholar 

  21. Netto, H.V., Lung, L.C., Correia, M., Luiz, A.F., de Souza, L.M.S.: State machine replication in containers managed by Kubernetes. J. Syst. Archit. 73 (2017)

    Google Scholar 

  22. Envoy Proxy. https://www.envoyproxy.io/

  23. TIBCO Enterprise Message Service. https://www.tibco.com/products/tibco-enterprise-message-service

  24. Shoup, R.: Service architectures at scale: Lessons from Google and eBay

    Google Scholar 

  25. Truyen, E., Joosen, W., Verbaeten, P., Jorgensen, B.N.: On interaction refinement in middleware. In: Workshop on Component-Oriented Programming, June 2000

    Google Scholar 

  26. Valesky, T.: Enterprise JavaBeans: Developing Component-Based Distributed Applications. Addison-Wesley Longman Publishing Co., Inc., USA (1999)

    Google Scholar 

  27. Vieira, M.A.M., et al.: Fast packet processing with EBPF and XDP: concepts, code, challenges, and applications. ACM Comput. Surv. 53(1) (2020)

    Google Scholar 

  28. Wang, Y., et al.: Robustness in the Salus scalable block store. In: Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation, NSDI 2013, pp. 357–370, USA. USENIX Association (2013)

    Google Scholar 

  29. Wilcox, J.R., et al.: Verdi: a framework for implementing and formally verifying distributed systems. SIGPLAN Not. 50(6), 357–368 (2015)

    Article  Google Scholar 

  30. Yap, K.S., Jalote, P., Tripathi, S.: Fault tolerant remote procedure call. In: Proceedings of the 8th International Conference on Distributed Computing Systems (1988)

    Google Scholar 

Download references

Acknowledgments

We thank the reviewers for their feedback. This work was supported in part by a Google Faculty Research Award, and by the NSF grants CSR-17620155, CNS-CORE 2008667, and CNS-CORE 2106954.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Burcu Canakci .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Canakci, B., Alvisi, L., van Renesse, R. (2021). Building Systems of Systems with Escher. In: Johnen, C., Schiller, E.M., Schmid, S. (eds) Stabilization, Safety, and Security of Distributed Systems. SSS 2021. Lecture Notes in Computer Science(), vol 13046. Springer, Cham. https://doi.org/10.1007/978-3-030-91081-5_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-91081-5_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-91080-8

  • Online ISBN: 978-3-030-91081-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics