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

Skip to main content

SOA and the Button Problem

  • Conference paper
  • First Online:
Formal Methods – The Next 30 Years (FM 2019)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 11800))

Included in the following conference series:

  • 1383 Accesses

Abstract

Service-oriented architecture (SOA) is a popular architectural style centered around services, loose coupling, and interoperability. A recurring problem in SOA development is the Button Problem; how to ensure that whenever a “button is pressed” on some service—no matter what—the performance of other key services remains unaffected? The Button Problem is especially complex to solve in systems that have devolved into hardly comprehensible spaghettis of service dependencies.

In a collaborative effort with industry partner First8, we present the first formal framework to help SOA developers solve the Button Problem, enabling automated reasoning about service sensitivities and candidate refactorings. Our formalization provides a rigorous foundation for a tool that was already successfully evaluated in industrial case studies, and it is built against two unique requirements: “whiteboard level of abstraction” and non-quantitative analysis.

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 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Notes

  1. 1.

    In terms of the Osi transport layer, Tcp/Ip packets involved in a push are acknowledged (as part of the Tcp/Ip protocol), but this is at a lower level of abstraction.

  2. 2.

    Individual services in \(\hat{S}\) may contribute only partially to the simulation (see also Example 2). This is where our definition of simulation differs significantly from the classical one in concurrency theory (e.g., [17]). It is also why \(s \mathrel {R} \hat{s}\) appears as a conjunct on the right-hand side of the implication instead of on the left-hand side.

  3. 3.

    More precisely, the only services that create additional services or calls are \(\textit{Split} \), \(\textit{AddQueue} \), and \(\textit{AddCache} \). The number of times a service can be split is bound by the number of types, while the services and calls added through \(\textit{AddQueue} \) and \(\textit{AddCache} \) carry annotations that inform Elmo to not refactor them any further.

  4. 4.

    Elmo may find designs that solve the specified insensitivity goals, but that are still unacceptable to SOA developers due to external constraints (e.g., the number of machines exceeds the budget; some services should not be merged because it requires reorganization of development teams). Instead of letting Elmo first explore the entire design space and then filtering the unacceptable solutions, SOA developers can specify additional model annotations upfront to constrain which refactorings Elmo will try to apply; corners of unacceptable solutions in the design space are skipped.

    Specifically, in the initial deployment model, users can indicate that a service must remain intact (i.e., it cannot be split, merged, or modified); that some services cannot be merged; that some sets of types cannot be split; that a call must remain intact (i.e., it cannot be flipped or replaced by a queue/cache); that some sets of services must be collocated; that the number of machines must not exceed some limit.

References

  1. Akamai Technologies Inc.: Akamai Online Retail Performance Report \(|\) Akamai (2017). Accessed 28 June 2019. https://www.akamai.com/uk/en/about/news/press/2017-press/akamai-releases-spring-2017-state-of-online-retail-performance-report.jsp

  2. AppDynamics LLC: Application Performance Monitoring and Management \(|\) AppDynamics (nd). Accessed 28 June 2019. https://www.appdynamics.com

  3. Bertoli, M., Casale, G., Serazzi, G.: JMT: performance engineering tools for system modeling. SIGMETRICS Perform. Eval. Rev. 36(4), 10–15 (2009)

    Article  Google Scholar 

  4. Bischofberger, W., Kühl, J., Löffler, S.: Sotograph – a pragmatic approach to source code architecture conformance checking. In: Oquendo, F., Warboys, B.C., Morrison, R. (eds.) EWSA 2004. LNCS, vol. 3047, pp. 1–9. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24769-2_1

    Chapter  Google Scholar 

  5. Brebner, P.: Real-world performance modelling of enterprise service oriented architectures: delivering business value with complexity and constraints (abstracts only). SIGMETRICS Perform. Eval. Rev. 39(3), 12 (2011)

    Article  Google Scholar 

  6. Caracciolo, A., Lungu, M.F., Nierstrasz, O.: A unified approach to architecture conformance checking. In: WICSA, pp. 41–50. IEEE Computer Society (2015)

    Google Scholar 

  7. Datadog Inc.: Modern monitoring and analytics \(|\) Datadog (nd). Accessed 28 June 2019. https://www.datadoghq.com

  8. Dynatrace LLC: Software intelligence for the enterprise cloud \(|\) Dynatrace (nd). Accessed 28 June 2019. https://www.dynatrace.com

  9. van Eekelen, M., Jongmans, S.S., Lamers, A.: Non-Quantitative Modeling of Service-Oriented Architectures, Refactorings, and Performance. Technical Report TR-OU-INF-2017-02, Open University of the Netherlands (2017)

    Google Scholar 

  10. Elmo Demo (2018). Accessed 28 June 2019. https://youtu.be/Oi9kxqh_GBs

  11. Headway Software Technologies Ltd.: Structure101 Home – Structure101 (nd). Accessed 28 June 2019. https://structure101.com

  12. Johnsen, E.B., Pun, K.I., Tapia Tarifa, S.L.: A formal model of cloud-deployed software and its application to workflow processing. In: SoftCOM, pp. 1–6. IEEE (2017)

    Google Scholar 

  13. Juan Ferrer, A., et al.: OPTIMIS: a holistic approach to cloud service provisioning. Future Gener. Comp. Syst. 28(1), 66–77 (2012)

    Article  Google Scholar 

  14. Kobryn, C.: Modeling components and frameworks with UML. Commun. ACM 43(10), 31–38 (2000)

    Article  Google Scholar 

  15. Kounev, S.: Performance modeling and evaluation of distributed component-based systems using queueing petri nets. IEEE Trans. Softw.Eng. 32(7), 486–502 (2006)

    Article  Google Scholar 

  16. Lamers, A., van Eekelen, M., Jongmans, S.-S.: Improved architectures/deployments with elmo. In: Liu, X., et al. (eds.) ICSOC 2018. LNCS, vol. 11434, pp. 419–424. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-17642-6_36

    Chapter  Google Scholar 

  17. Milner, R.: Communication and concurrency. PHI Series in computer science. Prentice Hall, New Jersey (1989)

    Google Scholar 

  18. New Relic Inc.: New Relic \(|\) Deliver more perfect software (nd). Accessed 28 June 2019. https://www.newrelic.com

  19. Pautasso, C., Zimmermann, O., Amundsen, M., Lewis, J., Josuttis, N.M.: Microservices in practice, part 1: reality check and service design. IEEE Software 34(1), 91–98 (2017)

    Article  Google Scholar 

  20. Peled, D.: Partial-order reduction. In: Clarke, E., Henzinger, T., Veith, H., Bloem, R. (eds.) Handbook of Model Checking, pp. 173–190. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-10575-8_6

  21. SonarSource SA: Continuous Inspection \(|\) SonarQube (nd). Accessed 28 June 2019. https://www.sonarqube.org

  22. Zhu, L., Liu, Y., Bui, N.B., Gorton, I.: Revel8or: model driven capacity planning tool suite. In: ICSE, pp. 797–800. IEEE Computer Society (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sung-Shik Jongmans .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Jongmans, SS., Lamers, A., van Eekelen, M. (2019). SOA and the Button Problem. In: ter Beek, M., McIver, A., Oliveira, J. (eds) Formal Methods – The Next 30 Years. FM 2019. Lecture Notes in Computer Science(), vol 11800. Springer, Cham. https://doi.org/10.1007/978-3-030-30942-8_40

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-30942-8_40

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-30941-1

  • Online ISBN: 978-3-030-30942-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics