Abstract
For supporting the design of self-adaptive computing systems, the PSCEL language offers a principled approach that relies on declarative definitions of adaptation and authorisation policies enforced at runtime. Policies permit managing system components by regulating their interactions and by dynamically introducing new actions to accomplish task-oriented goals. However, the runtime evaluation of policies and their effects on system components make the prediction of system behaviour challenging. In this paper, we introduce the construction of a flow graph that statically points out the policy evaluations that can take place at runtime and exploit it to analyse the effects of policy evaluations on the progress of system components.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
We use n to denote a generic name and n to denote the name of a syntactic element.
- 2.
Structured names are composed by a category name, i.e. one among \({\textsf {action}}\), \({\textsf {subject}}\) and \({\textsf {object}}\), and a name \({\textsf {n}}\). For example, \({\textsf {action}}/{\textsf {id}}\) refers to the name of the action generating the request, while \({\textsf {subject}}/{\textsf {label}}\) refers to the value of the interface feature \({\textsf {label}}\) of the component subject of the action.
- 3.
This splitting can always be done by appropriately applying standard boolean laws because each relational operator takes at most one variable as argument.
- 4.
The name \( sr1 \) of the component where the policy \(\varPi _S\) is assumed to be in force is that referred to by the variable \(\mathsf {this}\) occurring in the definition of rule \({\textsf {S1}}\).
- 5.
E.g., rule S2 of policy \(\varPi _S\) checks the feature \({\textsf {load}}\). Since S2 only generates paths of length one, possible updates of \({\textsf {load}}\) cannot interleave with policy evaluations.
References
Appeltauer, M., Hirschfeld, R., Haupt, M., Lincke, J., Perscheid, M.: A comparison of context-oriented programming languages. In: COP, pp. 6:1–6:6 (2009)
Bruneton, E., Coupaye, T., Leclercq, M., Quéma, V., Stefani, J.B.: The FRACTAL component model and its support in Java. Softw.: Pract. Experience 36, 1257–1284 (2006)
Charfi, A., Mezini, M.: AO4BPEL: an aspect-oriented extension to BPEL. World Wide Web 3, 309–344 (2007)
Damianou, N., Dulay, N., Lupu, E.C., Sloman, M.: The ponder policy specification language. In: Sloman, M., Lobo, J., Lupu, E.C. (eds.) POLICY 2001. LNCS, vol. 1995, pp. 18–38. Springer, Heidelberg (2001)
David, P.-C., Ledoux, T.: An aspect-oriented approach for developing self-adaptive fractal components. In: Löwe, Welf, Südholt, Mario (eds.) SC 2006. LNCS, vol. 4089, pp. 82–97. Springer, Heidelberg (2006)
De Nicola, R., Loreti, M., Pugliese, R., Tiezzi, F.: A formal approach to autonomic systems programming: the SCEL language. TAAS 9(2), 7:1–7:29 (2014)
Hankin, C., Nielson, F., Riis Nielson, H., Yang, F.: Advice for coordination. In: Lea, D., Zavattaro, G. (eds.) COORDINATION 2008. LNCS, vol. 5052, pp. 153–168. Springer, Heidelberg (2008)
Hennicker, R., Klarl, A.: Foundations for ensemble modeling – the Helena approach. In: Iida, S., Meseguer, J., Ogata, K. (eds.) Specification, Algebra, and Software. LNCS, vol. 8373, pp. 359–381. Springer, Heidelberg (2014)
Huebscher, M.C., McCann, J.A.: A survey of autonomic computing-degrees, models and applications. ACM Comput. Surv. 40(3), 7 (2008)
Khakpour, N., Jalili, S., Talcott, C.L., Sirjani, M., Mousavi, M.R.: Formal modeling of evolving self-adaptive systems. Sci. Comput. Program. 78(1), 3–26 (2012)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: ECOOP, pp. 220–242 (1997)
Loreti, M., Margheri, A., Pugliese, R., Tiezzi, F.: On programming and policing autonomic computing systems. In: Margaria, Tiziana, Steffen, Bernhard (eds.) ISoLA 2014, Part I. LNCS, vol. 8802, pp. 164–183. Springer, Heidelberg (2014)
Margheri, A., Masi, M., Pugliese, R., Tiezzi, F.: A rigorous framework for specification, analysis and enforcement of access control policies. Technical Report (2016.). http://local.disia.unifi.it/wp_disia/2016/wp_disia_2016_05.pdf
Margheri, A., Riis Nielson, H., Nielson, F., Pugliese, R.: Design, analysis and implementation of policy-based self-adaptive computing systems. Technical report (2016). http://facpl.sf.net/research/StaticPSCEL-TR.pdf
Mayer, P., et al.: The autonomic cloud. In: Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.) Collective Autonomic Systems. LNCS, vol. 8998, pp. 495–512. Springer, Heidelberg (2015)
Salvaneschi, G., Ghezzi, C., Pradella, M.: Context-oriented programming: a programming paradigm for autonomic systems. CoRR, abs/1105.0069 (2011)
Terepeta, M., Riis Nielson, H., Nielson, F.: Recursive advice for coordination. In: Sirjani, M. (ed.) COORDINATION 2012. LNCS, vol. 7274, pp. 137–151. Springer, Heidelberg (2012)
Wirsing, M., Hölzl, M., Tribastone, M., Zambonelli, F.: ASCENS: engineering autonomic service-component ensembles. In: Boer, F.S., Bonsangue, M.M., Beckert, B., Damiani, F. (eds.) FMCO 2011. LNCS, vol. 7542, pp. 1–24. Springer, Heidelberg (2012). Revised Selected Papers
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Margheri, A., Nielson, H.R., Nielson, F., Pugliese, R. (2016). Towards Static Analysis of Policy-Based Self-adaptive Computing Systems. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation: Foundational Techniques. ISoLA 2016. Lecture Notes in Computer Science(), vol 9952. Springer, Cham. https://doi.org/10.1007/978-3-319-47166-2_39
Download citation
DOI: https://doi.org/10.1007/978-3-319-47166-2_39
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-47165-5
Online ISBN: 978-3-319-47166-2
eBook Packages: Computer ScienceComputer Science (R0)