It is therefore more likely that, in the future, an application development team will not only implement the application but also the corresponding management part. The problem of undocumented or even non-existing management interfaces of systems and applications could then be solved. Also, off-the-shelf CASE-tools may be used for the analysis, design and programming for the agent part of an application.
Another issue is security: While in traditional client/server architectures a client could always trust the server, this is no more true for distributed objects due to the frequent role changes of CORBA-clients and -servers. It is therefore important to provide mechanisms on either sides (client and server) to prevent unauthorized execution of functionality. An object implementation must have the ability to check whether a client is authorized to perform functions on the object: With every method call, the ORB runtime system delivers information from which client a service request has been issued. A managed system can therefore authenticate the managing system and decide whether the delegated functionality should be executed or not. As it is impossible for a managed system to determine the semantics of delegated functionality, access control lists have to be maintained by the managed system.