Abstract
This paper describes an architectural approach that facilitates the dynamic adaptation of systems to changing domain rules. The approach relies on “coordination contracts”, a modelling and implementation primitive we have developed for run-time reconfiguration. Our framework includes an engine that, whenever a service is called, checks the domain rules that are applicable and configures the response of the service before proceeding with the call.
This approach enhances dependability in two essential ways: on the one hand, it guarantees that system execution is always consistent with the domain logic because service response is configured automatically (i.e., without any need for programmer intervention); on the other hand, it makes it possible for changes to be incorporated into existing domain rules, and from new rules to be created, with little effort, because coordination contracts can be superposed dynamically without having to change neither the client nor the service code.
Our approach is illustrated through a case study in financial systems, an area in which dependability arises mainly in the guise of business concerns like adherence to agreed policies and conditions negotiated on a case-by-case basis. We report on an information system that ATX Software developed for a company specialised in recovering bad credit. We show in particular how, by using this framework, we have devised a way of generating rule-dependent SQL code for batch-oriented services.
This paper is a considerably extended version of [1].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Wermelinger, M., Koutsoukos, G., Avillez, R., Gouveia, J., Andrade, L., Fiadeiro, J.L.: Using coordination contracts for flexible adaptation to changing business rules. In: Proc. of the 6th Intl. Workshop on the Principles of Software Evolution, pp. 115–120. IEEE Computer Society Press, Los Alamitos (2003)
Andrade, L., Fiadeiro, J.L., Gouveia, J., Koutsoukos, G.: Separating computation, coordination and configuration. Journal of Software Maintenance and Evolution: Research and Practice 14, 353–369 (2002)
Gouveia, J., Koutsoukos, G., Wermelinger, M., Andrade, L., Fiadeiro, J.L.: The coordination development environment. In: Kutsche, R.-D., Weber, H. (eds.) FASE 2002. LNCS, vol. 2306, pp. 323–326. Springer, Heidelberg (2002)
Gouveia, J., Koutsoukos, G., Andrade, L., Fiadeiro, J.L.: Tool support for coordination-based software evolution. In: Proc. TOOLS 38, pp. 184–196. IEEE Computer Society Press, Los Alamitos (2001)
Avizienis, A., Laprie, J.C., Randell, B.: Fundamental concepts of dependability. In: 3rd Information Survivability Workshop, Software Engineering Institute (2000)
Wermelinger, M., Koutsoukos, G., Fiadeiro, J., Andrade, L., Gouveia, J.: Evolving and using coordinated systems. In: Proc. of the 5th Intl. Workshop on Principles of Software Evolution, pp. 43–46. ACM, New York (2002)
Moazami-Goudarzi, K.: Consistency Preserving Dynamic Reconfiguration of Distributed Systems. PhD thesis, Imperial College London (1999)
Lano, K., Fiadeiro, J.L., Andrade, L.: Software Design Using Java 2. Palgrave Macmillan (2002)
Gelernter, D., Carriero, N.: Coordination languages and their significance. Communications of the ACM 35, 97–107 (1992)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17, 40–52 (1992)
Magee, J., Kramer, J.: Dynamic structure in software architectures. In: Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 3–14. ACM Press, New York (1996)
Kramer, J.: Configuration programming—a framework for the development of distributable systems. In: International Conference on Computer Systems and Software Engineering, Israel, IEEE, Los Alamitos (1990)
Endler, M., Wei, J.: Programming generic dynamic reconfigurations for distributed applications. In: Proceedings of the First International Workshop on Configurable Distributed Systems, IEE, pp. 68–79 (1992)
Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering 26, 70–93 (2000)
Monroe, R.T.: Capturing software architecture design expertise with Armani. Technical Report CMU-CS-98-163, School of Computer Science, Carnegie Mellon University (1998)
Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley, Reading (1998)
Kilov, H., Ross, J.: Information Modeling: an Object-oriented Approach. Prentice-Hall, Englewood Cliffs (1994)
Notkin, D., Garlan, D., Griswold, W., Sullivan, K.: Adding implicit invocation to languages: Three approaches. In: Nishio, S., Yonezawa, A. (eds.) ISOTAS 1993. LNCS, vol. 742, pp. 489–510. Springer, Heidelberg (1993)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wermelinger, M. et al. (2004). Enhancing Dependability Through Flexible Adaptation to Changing Requirements. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds) Architecting Dependable Systems II. Lecture Notes in Computer Science, vol 3069. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25939-8_1
Download citation
DOI: https://doi.org/10.1007/978-3-540-25939-8_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23168-4
Online ISBN: 978-3-540-25939-8
eBook Packages: Springer Book Archive