Ringer::Discrimination::IDiscriminator Node1 Ringer::Discrimination ::IDiscriminator + execute() Node4 Ringer::Discrimination ::IDiscriminatorVarDep + read() Node1->Node4 Node2 Ringer::IRingerProcedure + write() + ~IRingerProcedure() Node2->Node1 Node3 IRedirectMsgStream Node3->Node2