tions. When the sub-tasks of a combined task are executed, the result of the task is passed to a method. From there, some user-defined code can be given which is called when- ever the task is executed, under certain conditions. 11.2.5.1 Handling Configuration Updates If multiple clients are connected to the CMS, then changes made by any one client should be informed to all other clients connected to the server. Such changes include saving, deleting and executing tasks, saving and deleting device lists and saving and deleting data sources. A method is called whenever these oper- ations are performed. Methods are available to obtain the necessary details of an update. There is a method which obtains the update ID which returns a ConfigConstant value such as a task, device list or data source. Another method is used to obtain finer details such as whether an entity has been added, deleted or executed. Clients can be notified of whether task execution has been started or completed. When using the Save operation of a task, device list or data source, then the corresponding XML code for any of those three can also be obtained. Suppose that two clients are logged in as the same user. If client A attempts to delete the task when client B is associating a device list to the same task, then upon deletion of the task, a message will be given to client B saying, "The task for which you are associating the device list has been deleted from the server." 11.2.5.2 Plugging in Proprietary Protocols In a large network, many classes of device will understand different protocols. Indeed, vendors often build their own EMS with proprietary protocols. In this case, it is necessary to integrate different protocols. CMS has a facility that allows the plugging in of proprietary protocols. The protocols SNMP, TL1, CLI and TFTP are pre-integrated with CMS. The provider class written for a specific protocol should extend a particular inter- face. After extending the interface, a handful of methods must be implemented and implementation detai