First I would say that when I talk to Web services, I'm not necessarily speaking about a SOAP endpoint. I'm taking a sort of broader view of Web services and focusing more on service-oriented architecture. And the reality is when people implement service-oriented architectures, they're usually implementing them as some form of Web service. It's not necessarily using SOAP, but some sort of XML-based, remotely available service endpoint that encapsulates a batch of logic. And the RIA model really works well when those sorts of services are created. It works better with that model than it does with traditional Web application models. The reason is that those service models so loosely couple the presentation and the client to the actual business logic, in a way that even Web applications don't, that it allows you to very cleanly separate the rich, client components from the server side business logic. What happens in traditional Web applications as opposed to Web services is that the presentation View components are intermingled with the model on the server. So in MVC terms, there is a separation, but it's not a 'just-in-time separation.' In a Web application model, the View and the Model are intermingled in a static html document before it's ever delivered to the user. In the Rich Interet Application model, there aren't View components flying across the network intermingled with data, just data is flying across the network. So ideally that data is XML-based, but it doesn't need to be, it can be in some binary format. But whatever it is, it's data. It's Model information and not View information that's passing across the network. Web services are obviously very conducive to that, because they create a formal service endpoint for a Rich Internet Application to hook up to. It's also nice because, Web services, being standard, allows RIA clients to hook up to a variety of platforms and a variety of services. So in the J2EE world it could be that a great many of the Web services are going to be Enterprise Javabeans that were formerly stateless session facades implemented in classic J2EE architectures. And what RIAs are able to do is, that EJB, that stateless session façade can become a SOAP endpoint, can become a service, then it can directly hook up with that stateless session façade and either augment or altogether replace the presentation tier.