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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Abadi, M., Lamport, L.: The existence of refinement mappings. Theor. Comput. Sci. 82(2), 253–284 (1991)
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
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
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)
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
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)
Bernstein, D.: Containers and cloud: from LXC to Docker to Kubernetes. IEEE Cloud Comput. 1(3), 81–84 (2014)
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)
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)
Burns, B., Grant, B., Oppenheimer, D., Brewer, E., Wilkes, J.: Borg, omega, and kubernetes. Queue 14(1), 70–93 (2016)
Cooper, E.C.: Replicated procedure call. SIGOPS Oper. Syst. Rev. 20(1), 44–56 (1986)
IBM Cloud Education. ESB (Enterprise Service Bus). https://www.ibm.com/cloud/learn/esb
Gelernter, D.: Generative communication in Linda. ACM Trans. Program. Lang. Syst. 7(1), 80–112 (1985)
Object Management Group. The Common Object Request Broker: Architecture and specification, revision 2.4.1, forma1/00-11-07, November 2000
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)
Apache Kafka. https://kafka.apache.org/
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
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
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
Horstmann, M., Kirtland, M.: DCOM architecture. In: Microsoft Developer Network, July 1997
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)
Envoy Proxy. https://www.envoyproxy.io/
TIBCO Enterprise Message Service. https://www.tibco.com/products/tibco-enterprise-message-service
Shoup, R.: Service architectures at scale: Lessons from Google and eBay
Truyen, E., Joosen, W., Verbaeten, P., Jorgensen, B.N.: On interaction refinement in middleware. In: Workshop on Component-Oriented Programming, June 2000
Valesky, T.: Enterprise JavaBeans: Developing Component-Based Distributed Applications. Addison-Wesley Longman Publishing Co., Inc., USA (1999)
Vieira, M.A.M., et al.: Fast packet processing with EBPF and XDP: concepts, code, challenges, and applications. ACM Comput. Surv. 53(1) (2020)
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)
Wilcox, J.R., et al.: Verdi: a framework for implementing and formally verifying distributed systems. SIGPLAN Not. 50(6), 357–368 (2015)
Yap, K.S., Jalote, P., Tripathi, S.: Fault tolerant remote procedure call. In: Proceedings of the 8th International Conference on Distributed Computing Systems (1988)
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
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)