I am staying away from the heated discussion on WebServices vs RPC vs HTTPRequest vs FDS. Here at least there is a smaller chance that people would feel necessary to defend their point of view, and approach they claim to be successful.
First, I have to admit that I used all of them and to some extent is guilty of the flame mails in the past proclaiming flavor of the month the best thing invented. In the years to come, while running certain applications, I had to do adaptations, compromises, and run-arounds to make damn thing work.
It is true for WebServices – regardless of what industry says they do not work outside of controlled environment. The parsing libraries are large and slow, large datasets have bad performance, router tend to break them, recoverability is bad, and security systems always have problems with them. For 4 years while in pure WebService environments, I had to provide alternative (XML) packaging to deal with the above issues, tweak compression filters for every router/https error known to human kind while claiming that it is wort it as the lowest denominator solution that is fully open and provide widest range of servers and clients. I am still have to see those system implementing second type of client or moved to different server platform
On the other end of spectrum, I would not use FDS for large reporting system for example as it was clearly engineered for different types of applications
RPC and HTTP can be customized by small development team to provide ideal solution for your problems. Take RPC – (RemoteObject) – I can give any of developers here the request to get it working with any platform – PHP, Java, C++, ASP or whatever – and can expect reasonably working gateway in weeks. I would add few options to our code generators, and it would produce platform specific code for serialization/deserialization that would be both fast and reliable.
The point I am trying to make it this: there is no magic bullet or single protocol for anything. You need to see through it and try to solve business problem first. Connectivity in Flex is so rich and simple, you would be able to adopt and use all options in one day. Then you decide what works and what does not – and still keep your options open.
[tags]Flex, WebService, RPC, ActionScript, RemoteObject[/tags]