Despite what any REST fan would say, from the perspective of a OOP guy, SOAP makes much more sense. The invoked “complexity” of SOAP over REST is simply perceived complexity. If tools “shield” you from SOAP complexity then is SOAP complex ? The reality is that SOAP and REST accomplish the same thing but they operate on different levels . In SOAP case you have objects, methods, exceptions etc. In REST’s case you have a HTTP request and HTTP error codes (and yeah…it’s much nicer to get a SoapException describing the problem than to “remap” different error codes in your head for each request).
From the perspective of the guy who must expose the service is much simple to “define” complex interactions with SOAP. Even the basic entity interaction (CRUD) is not so simple with REST because you’ll always need to expose multiple ways (with associated parameters) for GET (GetOrderByDate, GetOrderByCustomer, GetOrderByStatus etc). Even worse is exposing business logic errors with HTTP error codes.
So, i think that REST is fine for very simple “interactions” , for everything else go SOAP.