next up previous
Next: 4.2 Reusing the existing Up: 4 Implementing the optimized Previous: 4 Implementing the optimized

4.1 Completing the generated IDL interfaces

The loss of information by transforming relationships is a good example for the necessary steps that need to be done manually in order to capture the full semantics of the OMT model in OMG IDL: Although the Object Relationship Service ([7]) has been standardized by the OMG, no currently available CORBA implementation contains functionality which helps to enforce the OMT relationship properties during runtime. We therefore had to implement methods by hand to survey the validity of relationships periodically. The method update_processes() checks which processes are currently running on the system.

This example leads us to another issue i.e., the representation of highly dynamic objects like processes: Generally spoken, the CORBA objects representing system resources should be instantiated at the start of the system and deleted when the CORBA runtime environment shuts down. While this is adequate for objects with a low degree of change rates like hard disks and CPUs, this method is unfeasible for administering highly dynamic objects, i.e., objects having a short lifetime like UNIX processes. It is almost impossible to maintain these objects consistent with the real state because that would imply the instantiation of an object at the start of a process and its deletion when the process dies. The solution to this problem consists of doing a snapshot of the current state every time information about processes is required. We achieved this by enforcing the access to Process objects through a metaclass MetaProcess which called the update_processes method every time when information about processes was required. Any requesting object (usually the monitoring objects from the managing system) gets therefore the correct process state.

Several other modifications were due to the specifics of our development toolkit ([5], [3]) and will be skipped here.


next up previous
Next: 4.2 Reusing the existing Up: 4 Implementing the optimized Previous: 4 Implementing the optimized
Copyright Munich Network Management Team