refactoring MessageType, AbstractProtocolService; handle failure remote
exception in one place: AbstractProtocolService