 achieve some defined function- ality by configuring network devices as necessary. Its APIs can be used to develop user applications and to maintain network resources and network configuration changes. 11.2.3 Configuration Server Database Schema Audit-related information is stored in the RDBMS and can be accessed via APIs. The back-end server maintains and updates the information model in persistent stor- age. It is instructive to see the various tables that are implemented in the RDBMS: Task to Device List Map: When a task is defined and devices are associated, the mapping between the tasks and device lists are stored here. Task Audit: This table is used to store task-level audit details. It contains informa- tion such as task name, time submitted, device list and data source. Attribute Audit: This table contains audit details at the attribute level and con- tains information such as the number of retries and ending time of execution. Device Audit: This table stores device-level audit details, including information such as device name, task name, starting time of execution and ending time of execution. This also contains the configuration status, that is, success or failure. 11.2.4 Tasks A "task" is an entity containing configuration attributes and the data used to config- ure the devices to achieve a desired functionality. Attributes, on the other hand, comprise the command to be executed and the set of values needed to execute the 11 Configuration Management command. For example, in the case of SNMP, the attributes are the OIDs. In the case of Telnet, an attribute is the command to be executed in a network element. While creating a task, the task level and attribute level information must be men- tioned. The task-level information is set using methods of the TaskGenerator class. This is the basic class used to define and generate configuration details in XML for- mat. This class provides methods for defining task-level information such as the task name, whether or not rollback is needed, and whether or not an 