There are multiple ways to look at types of services, and I've chosen to consider the types of services based on the category of message they accept.
A Remote Procedure Call (RPC) is a means of executing a function on a distant object. These remote invocations are meant to appear as if they were happening locally and typically follow the request/response communication pattern. If you've written DCOM or CORBA components before, then this is a familiar concept. As SOAP gained traction, this was initially seen as just another way to execute remote functions but in a more interoperable way. However, this encourages a very point-to-point mentality.
RPC-style services follow the "Gang of Four" command pattern where objects (in our case, messages) correspond to the action you wish to perform. In essence, you are sending a message that tells the remote service what to do. For example, the payload of an RPC-style service request meant to create a new customer entity would...