When a client and service communicate, there are several aspects to the communication.
Synchronous/asynchronous: Messages can be used in a request/response pattern or they can be used in asynchronous communication depending on whether the client waits for the response or not.
Transport protocol: The protocol used for transporting the messages can vary depending on the needs. Protocols such as HTTP, Transmission Control Protocol (TCP), Microsoft Message Queuing (MSMQ), and Inter-process communication (IPC) can be used.
Encoding: You have a choice on how to encode the messages. You can choose to use plain text if you want maximum interoperability. Alternatively, you can use binary encoding to speed up performance, or using the Message Transport Optimization Mechanism (MTOM) to handle larger payloads.
Security: There are also some options that can be used to handle security and authentication. Security can be implemented at the transport level, at the message level, or can be skipped...