Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3510003.3510065acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article
Open access

Change is the only constant: dynamic updates for workflows

Published: 05 July 2022 Publication History

Abstract

Software systems must be updated regularly to address changing requirements and urgent issues like security-related bugs. Traditionally, updates are performed by shutting down the system to replace certain components. In modern software organizations, updates are increasingly frequent---up to multiple times per day---hence, shutting down the entire system is unacceptable. Safe dynamic software updating (DSU) enables component updates while the system is running by determining when the update can occur without causing errors. Safe DSU is crucial, especially for long-running or frequently executed asynchronous transactions (workflows), e.g., user-interactive sessions or order fulfillment processes. Unfortunately, previous research is limited to synchronous transaction models and does not address this case.
In this work, we propose a unified model for safe DSU in workflows. We discuss how state-of-the-art DSU solutions fit into this model and show that they incur significant overhead. To improve the performance, we introduce Essential Safety, a novel safe DSU approach that leverages the notion of non-essential changes, i.e., semantics preserving updates. In 106 realistic BPMN workflows, Essential Safety reduces the delay of workflow completions, on average, by 47.8% compared to the state of the art. We show that the distinction of essential and non-essential changes plays a crucial role in this reduction and that, as suggested in the literature, non-essential changes are frequent: at least 60% and often more than 90% of systems' updates in eight monorepos we analyze.

References

[1]
2021. Kubernetes. https://kubernetes.io/, last accessed on 2021-10-22.
[2]
Rabe Abdalkareem, Suhaib Mujahid, Emad Shihab, and Juergen Rilling. 2021. Which Commits Can Be CI Skipped? IEEE Transactions on Software Engineering 47, 3 (March 2021), 448--463.
[3]
Amazon Web Services. 2021. Amazon States Language. https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html, last accessed on 2021-07-30.
[4]
Amazon Web Services. 2021. AWS Step Functions. https://aws.amazon.com/step-functions, last accessed on 2021-08-20.
[5]
Muhammad Asad Arfeen, Krys Pawlikowski, Don McNickle, and Andreas Willig. 2013. The role of the Weibull distribution in Internet traffic modeling. In Proceedings of the 2013 25th International Teletraffic Congress (ITC). 1--8.
[6]
Joe Armstrong. 2010. Erlang. Commun. ACM 53, 9 (Sept. 2010), 68--75.
[7]
Ioana Baldini, Paul Castro, Kerry Chang, Perry Cheng, Stephen Fink, Vatche Ishakian, Nick Mitchell, Vinod Muthusamy, Rodric Rabbah, Aleksander Slominski, and Philippe Suter. 2017. Serverless Computing: Current Trends and Open Problems. Springer, Singapore, 1--20.
[8]
Luciano Baresi, Carlo Ghezzi, Xiaoxing Ma, and Valerio Panzica La Manna. 2017. Efficient Dynamic Updates of Distributed Components Through Version Consistency. IEEE Transactions on Software Engineering 43, 4 (2017), 340--358.
[9]
Moritz Beller, Georgios Gousios, and Andy Zaidman. 2017. TravisTorrent: Synthesizing Travis CI and GitHub for Full-Stack Research on Continuous Integration. In Proceedings of the 14th International Conference on Mining Software Repositories (Buenos Aires, Argentina) (MSR '17). IEEE Press, 447--450.
[10]
Boutheina Bennour, Ludovic Henrio, and Marcela Rivera. 2009. A Reconfiguration Framework for Distributed Components. In Proceedings of the 2009 ESEC/FSE Workshop on Software Integration and Evolution @ Runtime (Amsterdam, The Netherlands) (SINTER '09). Association for Computing Machinery, New York, NY, USA, 49--56.
[11]
Christophe Bidan, Valérie Issarny, Titos Saridakis, and Apostolos Zarras. 1998. A Dynamic Reconfiguration Service for CORBA. In Proceedings of the Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159) (CDS '98). IEEE Computer Society, USA, 35--42.
[12]
Camunda. 2016. Zeebe - Workflow Engine for Microservices Orchestration. https://zeebe.io/, last accessed on 2021-09-02.
[13]
F. Casati, S. Ceri, B. Pernici, and G. Pozzi. 1998. Workflow evolution. Data & Knowledge Engineering 24, 3 (1998), 211--238. ER '96.
[14]
Gerry Gerard Claps, Richard Berntsson Svensson, and Aybüke Aurum. 2015. On the journey to continuous deployment: Technical and social challenges along the way. Information and Software Technology 57 (2015), 21--31.
[15]
Gerry Gerard Claps, Richard Berntsson Svensson, and Aybüke Aurum. 2015. On the Journey to Continuous Deployment: Technical and Social Challenges along the Way. Information and Software Technology 57 (2015), 21--31.
[16]
Uriel Corfa. 2017. Awesome Monorepo: Notable public monorepos. https://github.com/korfuri/awesome-monorepo#notable-public-monorepos, last accessed on 2021-09-02.
[17]
Flavio Corradini, Fabrizio Fornari, Andrea Polini, Barbara Re, and Francesco Tiezzi. 2019. RePROSitory: a Repository Platform for Sharing Business PROcess modelS. BPM (PhD/Demos) (2019), 149--153.
[18]
R. S. Fabry. 1976. How to Design a System in Which Modules Can Be Changed on the Fly. In Proceedings of the 2nd International Conference on Software Engineering (San Francisco, California, USA) (ICSE '76). IEEE Computer Society Press, Washington, DC, USA, 470--476.
[19]
Nicole Forsgren, Dustin Smith, Jez Humble, and Jessie Frazelle. 2019. 2019 Accelerate State of DevOps Report. Technical Report. https://services.google.com/fh/files/misc/state-of-devops-2019.pdf, last accessed on 2021-05-05.
[20]
Martin Fowler. 2010. Blue Green Deployment. https://martinfowler.com/bliki/BlueGreenDeployment.html, last accessed on 2021-07-22.
[21]
Keheliya Gallaba, Yves Junqueira, John Ewart, and Shane Mcintosh. 2020. Accelerating Continuous Integration by Caching Environments and Inferring Dependencies. IEEE Transactions on Software Engineering (2020).
[22]
Hector Garcia-Molina and Kenneth Salem. 1987. Sagas. In Proceedings of the 1987 ACM SIGMOD International Conference on Management of Data (San Francisco, California, USA) (SIGMOD '87). Association for Computing Machinery, New York, NY, USA, 249--259.
[23]
Matthias Geiger, Simon Harrer, Jörg Lenhard, and Guido Wirtz. 2016. On the Evolution of BPMN 2.0 Support and Implementation. In 2016 IEEE Symposium on Service-Oriented System Engineering (SOSE '16). 101--110.
[24]
Matthias Geiger, Simon Harrer, Jörg Lenhard, and Guido Wirtz. 2018. BPMN 2.0: The state of support and implementation. Future Generation Computer Systems 80 (2018), 250--262.
[25]
Durham Goode and Rain. 2014. Scaling Mercurial at Facebook. https://engineering.fb.com/2014/01/07/core-data/scaling-mercurial-at-facebook/, last accessed on 2021-09-02.
[26]
Google Cloud. 2021. Workflows. https://cloud.google.com/workflows, last accessed on 2021-08-20.
[27]
Paul Grefen, Jochem Vonk, and Peter Apers. 2001. Global Transaction Support for Workflow Management Systems: From Formal Specification to Practical Implementation. The VLDB Journal 10, 4 (Dec. 2001), 316--333.
[28]
Tianxiao Gu, Xiaoxing Ma, Chang Xu, Yanyan Jiang, Chun Cao, and Jian Lu. 2018. Automating Object Transformations for Dynamic Software Updating via Online Execution Synthesis. In 32nd European Conference on Object-Oriented Programming (ECOOP 2018) (Leibniz International Proceedings in Informatics (LIPIcs), Vol. 109), Todd Millstein (Ed.). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 19:1--19:28.
[29]
Deepak Gupta, Pankaj Jalote, and Gautam Barua. 1996. A formal framework for on-line software version change. IEEE Transactions on Software Engineering 22, 2 (1996), 120--131.
[30]
Michael W. Hicks and Scott Nettles. 2005. Dynamic software updating. ACM Trans. Program. Lang. Syst. 27, 6 (2005), 1049--1096.
[31]
David Kawrykow and Martin P. Robillard. 2011. Non-Essential Changes in Version Histories. In Proceedings of the 33rd International Conference on Software Engineering (Waikiki, Honolulu, HI, USA) (ICSE '11). Association for Computing Machinery, New York, NY, USA, 351--360.
[32]
Jeff Kramer and Jeff Magee. 1990. The evolving philosophers problem: dynamic change management. IEEE Transactions on Software Engineering 16, 11 (1990), 1293--1306.
[33]
Frederic Lardinois. 2017. Microsoft now uses Git and GVFS to develop Windows. https://techcrunch.com/2017/05/24/microsoft-now-uses-git-and-gvfs-to-develop-windows/, last accessed on 2021-09-02.
[34]
Eero Laukkanen, Juha Itkonen, and Casper Lassenius. 2017. Problems, causes and solutions when adopting continuous delivery---A systematic literature review. Information and Software Technology 82 (2017), 55--79.
[35]
James Lewis and Martin Fowler. 2014. Microservices: a definition of this new architectural term. http://martinfowler.com/articles/microservices.html, last accessed on 2021-09-02.
[36]
Aimee Lucido. 2017. Monorepo to Multirepo and Back Again. Presentation at the Uber Technology Day, https://www.youtube.com/watch?v=lV8-1S28ycM, last accessed on 2021-09-02.
[37]
Lucy Ellen Lwakatare, Terhi Kilamo, Teemu Karvonen, Tanja Sauvola, Ville Heikkilä, Juha Itkonen, Pasi Kuvaja, Tommi Mikkonen, Markku Oivo, and Casper Lassenius. 2019. DevOps in practice: A multiple case study of five companies. Information and Software Technology 114 (2019), 217--230.
[38]
Xiaoxing Ma, Luciano Baresi, Carlo Ghezzi, Valerio Panzica La Manna, and Jian Lu. 2011. Version-Consistent Dynamic Reconfiguration of Component-Based Distributed Systems. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (Szeged, Hungary) (ESEC/FSE '11). Association for Computing Machinery, New York, NY, USA, 245--255.
[39]
Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, and Betty H.C. Cheng. 2004. Composing adaptive software. Computer 37, 7 (2004), 56--64.
[40]
Frederic Montagut, Refik Molva, and Silvan Tecumseh Golega. 2008. The Pervasive Workflow: A Decentralized Workflow System Supporting Long-Running Transactions. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews) 38, 3 (2008), 319--333.
[41]
Kief Morris. 2021. Infrastructure as Code: Dynamic Systems for the Cloud Age (second ed.). O'Reilly Media, Inc., Sebastopol, CA, USA.
[42]
Netflix. 2021. Conductor. https://netflix.github.io/conductor/, last accessed on 2021-08-20.
[43]
Sam Newman. 2021. Building Microservices (second ed.). O'Reilly Media, Inc.
[44]
OASIS. 2007. Web Services Business Process Execution Language Version 2.0. OASIS Standard, http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html, last accessed on 2021-07-30.
[45]
Object Management Group. 2014. Business Process Model and Notation Version 2.0.2. https://www.omg.org/spec/BPMN, last accessed on 2021-07-30.
[46]
Dorothy Ordogh. 2018. Pants and Monorepos. Presentation at the Typelevel Summit Boston, https://www.youtube.com/watch?v=IL6LBWNi3fE, last accessed on 2021-09-02.
[47]
Rachel Potvin and Josh Levenberg. 2016. Why Google Stores Billions of Lines of Code in a Single Repository. Commun. ACM 59, 7 (June 2016), 78--87.
[48]
Bernd Rücker. 2019. trip-booking-saga-serverless. GitHub repository, https://github.com/berndruecker/trip-booking-saga-serverless, last accessed on 2021-07-27.
[49]
Marcio Augusto Sekeff Sallem and Francisco Jose da Silva e Silva. 2006. Adapta: A Framework for Dynamic Reconfiguration of Distributed Applications. In Proceedings of the 5th Workshop on Adaptive and Reflective Middleware (ARM '06) (Melbourne, Australia) (ARM '06). Association for Computing Machinery, New York, NY, USA, 10.
[50]
Danilo Sato. 2014. Carnary Release. https://martinfowler.com/bliki/CanaryRelease.html, last accessed on 2021-07-22.
[51]
Danilo Sato. 2014. Parallel Change. https://martinfowler.com/bliki/ParallelChange.html, last accessed on 2021-07-22.
[52]
Habib Seifzadeh, Hassan Abolhassani, and Mohsen Sadighi Moshkenani. 2013. A survey of dynamic software updating. Journal of Software: Evolution and Process 25, 5 (2013), 535--568. arXiv:https://onlinelibrary.wiley.com/doi/pdf/10.1002/smr.1556
[53]
Marigianna Skouradaki, Vasilios Andrikopoulos, and Frank Leymann. 2016. Representative BPMN 2.0 Process Model Generation from Recurring Structures. In 2016 IEEE International Conference on Web Services (ICWS). 468--475.
[54]
Marigianna Skouradaki, Dieter H. Roller, Frank Leymann, Vincenzo Ferme, and Cesare Pautasso. 2015. On the Road to Benchmarking BPMN 2.0 Workflow Engines. In Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering (Austin, Texas, USA) (ICPE '15). Association for Computing Machinery, New York, NY, USA, 301--304.
[55]
Daniel Sokolowski, Pascal Weisenburger, and Guido Salvaneschi. 2021. Automating Serverless Deployments for DevOps Organizations. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Athens, Greece) (ESEC/FSE 2021). Association for Computing Machinery, New York, NY, USA, 57--69.
[56]
Daniel Sokolowski, Pascal Weisenburger, and Guido Salvaneschi. 2022. Evaluation of Safe Dynamic Updating on Collaborative BPMN Workflows With a Discrete-event Simulation: Dataset, Implementation, Measurements, and Analysis.
[57]
Gareth Stoyle, Michael Hicks, Gavin Bierman, Peter Sewell, and Iulian Neamtiu. 2007. Mutatis Mutandis: Safe and Predictable Dynamic Software Updating. ACM Trans. Program. Lang. Syst. 29, 4 (Aug. 2007), 22--es.
[58]
Suriya Subramanian, Michael Hicks, and Kathryn S. McKinley. 2009. Dynamic Software Updates: A VM-Centric Approach. In Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation (Dublin, Ireland) (PLDI '09). Association for Computing Machinery, New York, NY, USA, 1--12.
[59]
Ken Tindell. 1990. Dynamic Code Replacement and Ada. Ada Lett. X, 7 (Aug. 1990), 47--54.
[60]
Yves Vandewoude, Peter Ebraert, Yolande Berbers, and Theo D'Hondt. 2007. Tranquility: A Low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates. IEEE Transactions on Software Engineering 33, 12 (2007), 856--868.
[61]
Thomas Würthinger, Christian Wimmer, and Lukas Stadler. 2010. Dynamic Code Evolution for Java. In Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java (Vienna, Austria) (PPPJ '10). Association for Computing Machinery, New York, NY, USA, 10--19.

Cited By

View all
  • (2024)RBPMN: the value of roles for business process modelingSoftware and Systems Modeling10.1007/s10270-024-01202-zOnline publication date: 22-Aug-2024
  • (2022)Portals: An Extension of Dataflow Streaming for Stateful ServerlessProceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3563835.3567664(153-171)Online publication date: 29-Nov-2022
  • (2022)Infrastructure as code for dynamic deploymentsProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3558912(1775-1779)Online publication date: 7-Nov-2022

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '22: Proceedings of the 44th International Conference on Software Engineering
May 2022
2508 pages
ISBN:9781450392211
DOI:10.1145/3510003
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].

Sponsors

In-Cooperation

  • IEEE CS

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 July 2022

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. dynamic software updating
  2. software evolution
  3. workflows

Qualifiers

  • Research-article

Funding Sources

  • University of St. Gallen (IPF)
  • Swiss National Science Foundation (SNSF)
  • Hessian LOEWE initiative (emergenCITY and Software-Factory 4.0)
  • German Research Foundation (DFG)

Conference

ICSE '22
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)251
  • Downloads (Last 6 weeks)71
Reflects downloads up to 18 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)RBPMN: the value of roles for business process modelingSoftware and Systems Modeling10.1007/s10270-024-01202-zOnline publication date: 22-Aug-2024
  • (2022)Portals: An Extension of Dataflow Streaming for Stateful ServerlessProceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3563835.3567664(153-171)Online publication date: 29-Nov-2022
  • (2022)Infrastructure as code for dynamic deploymentsProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3558912(1775-1779)Online publication date: 7-Nov-2022

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media