The SCEL language is designed according to the separation of concerns principle, thus decoupling the functional aspects from the management ones. The latter aspects are regulated by policies, which refine components behaviour for guaranteeing accomplishment of specific tasks or satisfaction of specific properties. To enhance flexibility and better support self-management in different application domains, SCEL is parametric with respect to the policy language.
The policy language FACPL has been then integrated in SCEL to provide a complete language for programming and policing autonomic systems. In the resulting language, it is possible for example to define policies implementing adaptation strategies by exploiting specific actions that are produced at run-time as an effect of policy evaluation. These actions are executed as part of components’ behaviour to enforce the system adaptation.
Furthermore, policies can depend on the values of components attributes (reflecting the status of components and their environment) and can be dynamically replaced for better reacting to system changes. In particular, to explicitly represent the fact that the policies in force at any given component can dynamically change while the component evolves, we use a sort of automaton whose states are the policies in force at different times and labels are the events triggering the policies replacement.
The FACPL Language
The FACPL (FACPL web-site) language is at the basis of a user-friendly, feasible and effective approach for developing, operating and maintaining policy-based computer systems. The language permits expressing high-level policies regulating various computer systems’ aspects, e.g. access control, resource usage and adaptation.