Friday, March 18, 2005

Policy-based Systems Management

Policies are "high-level overall plans embracing the general goals and acceptable procedures" [1]. Policies are common methods of organizations and systems management. Policies reside at the top of the autonomic computing architecture [2]. Autonomic policies specify management requirements and criteria, the mechanism to distribute the policies among autonomic managers, and the configuration parameters for managed resources [3]. Currently, policy-based approaches are widely used in enterprise network management relevant to QoS and security. A team in IBM is developing a policy toolkit (PTK) that comprises modules that parse, edit, validate, transport, transform, and auto-update policies [4]. The policy-based IT management demo in IBM Emerging Technologies Toolkit (ETTK) shows how to manage database is using a policy-based approach in an autonomic computing environment. The policy management for autonomic computing package is released as well.

In a hierarchical autonomic system, the autonomic managers share the goals of high-level policies, while each autonomic manager has a private version of policies according to local environment and task. The same policy will have various representations for diverse autonomic managers and at different hierarchies of the systems. Policies are persistent during short periods. However, policies are also dynamic due to changing business and IT environments during long periods. The dynamic characteristics of policies will be more and more distinguishing with the trend of on-demand business, and request rapid deployment of policies on the fly.

Policies may be recorded in natural languages, specification languages, or general markup languages like XML. In object-oriented era, it is straightforward to represent policies as objects. Policies are represented as objects in some policy tools and policy specification languages like Ponder [5]. Policy objects can have attributes like modality, policy subject, policy target, policy goal, and policy constraints, operations like create, destroy, update, and query [6]. The interactions between policies include policy hierarchizing and policy prioritizing. The policy is a kind of 'cross-cutting' concern, which means a high-level policy will affect the behaviors of several sub-systems; many elements in a system may depend on the same policy to guide their actions; and a low-level policy may play roles in a number of atomic modules comprising an element. The crosscutting of policies results in tangled codes. It is hard to manage the policies that are scattered around modules. We suggest an aspectual view of policies for such issues.

[1] Merriam-Webster Online Dictionary, va=policy visited on Jan. 28, 05.

[2] S.R. White, J.E. Hanson, I. Whalley, D.M. Chess; and J.O. Kephart, "An architectural approach to autonomic computing", Proceedings of International Conference on Autonomic Computing, May 2004, pp. 2-9.

[3] Murch, R., Autonomic Computing, Prentice Hall PTR, 2004.

[4] D.C. Verma and S.B. Calo, "A toolkit for policy enablement in autonomic computing"; Proceedings of International Conference on Autonomic Computing, May 2004, pp. 260-271.

[5] N. Damianou, N. Dulay, E. Lupu, and M. Sloman, "The Ponder Policy Specification Language", Proceedings of the International Workshop on Policies for Distributed Systems and Networks, Lecture Notes In Computer Science; Vol. 1995, Springer-Verlag, London, UK, 2001, pp. 18-38.

[6] J. D. Moffett and M. S. Sloman, "The Representation of Policies as System Objects", Conference proceedings on Organizational computing systems, 1991, pp. 171-184.