Deadlock-free software architectures for COM/DCOM Applications