High Availability of Policies
Original Publication Date: 2005-Mar-07
Included in the Prior Art Database: 2005-Mar-07
Policies and policy-based decisions have become pervasive in their use in many system, application and business components. Policy-based management allows a formal specification of policies which encompasses the scope under which these policies are applicable; the conditions under which a policy is in conformance (or has been violated); a set of resulting solicited decisions, unsolicited actions or unsolicited goals that need to be taken; and the ability to determine the relative value (priority) of multiple applicable solicited decisions, actions or goals. Fundamentally, a policy-based management system provides a formal method to capture the knowledge required for managing and operating various solution components. In an operational environment, it is often necessary to control various aspects of the behavior of a solution component in a manner that cannot always be determined beforehand by the person building the component. For example, the operational environment may dictate when a component can be stopped or started. It is not feasible for the component itself to incorporate all static and dynamic conditions when such an action can take place. This necessitates a separation between the core functions provided by a solution component and the temporal operational/business conditions that exist. Hence, solution components will need to provide well-defined interfaces to external entities that provide information to guide the operation of the component. A policy-based management system uses polices to implement these external entities. A policy management system must process requests from policy-based managed products in a timely fashion. Otherwise, the policy-based managed product will not have adequate response time for its users. Response time is highly affected whenever the policies are updated and deployed to the policy management system. Policies are usually stored in a flat file format and when policies are deployed, they must be read, parsed and converted into a cached data structure in the policy management system. The problem is that this takes a non-negligible amount of time and there may be requests waiting while this is happening. Ideally, requests should not wait during this policy update period. There are already many known caching solutions, however this is the application of caching with respect to policy management.
High Availability of Policies
The core idea of this invention is to have the policy management system process updated policies on a background thread while still processing requests based on the stale policies. Once the background thread is finished processing the updated policies, the stale policies may be swaped out with the new policies that have already been processed and converted into a cached data structure. This "swap" will take an negligible amount of time and should not affect response times.
Here is a diagram to further explain the invention:
Pointer to cache used for requests
R e q u e s t R e q u e s t
Thread processing new policies
1) The Administrator updates the current policies
2) The Policy Management System recieves the new policies and starts the processing of the new policies into a new policy cache data structure using a background thread.
3) The Policy-based Managed Products continue to receive responses to requests based on stale policies.
4) After the new policies are fully loaded into the new data structures, the "active policy data structure pointer" is switched to point to the new policy cache data structure rather
Administrator updates policies
Policy Management System
than the stale policy cache data structure. The stale policy cache is removed.
5) The Policy-based Managed Products receiv...