1) Interoperation:
It means, we can develop service by the technology we want, e.g., WCF, .net Remoting regardless of how the client was implemented.
If so, customer can also implement the client by Java, C++ or any other tech which support the SOAP message format.
2) Resource Management:
We can centralize to manage the resource applied to our application, like connection string and XAML format using by WPF client.
3) Versioning independently:
We needn’t to manage the version for each client in intranet. Within an intranet it can contain multi versions.
4) Security:
Actually, SOA is better than C/S in security. Within C/S there’s no authentication/authorization in SQL Server, and we can’t encrypt the message we send, since SQL server can’t decrypt it.
5) Centralized process logic:
We just need program one copy of process logic within WCF. Let’s say, one day, logic was changed, we needn’t re-built the client process, and re-dispatch them.
6) Scalability:
The two tier design will scale-up to service 100 users on a network, that’s C/S all about. But, SOA can support more than that, since we have the middle tier.
7) Flexibility:
Ease the pain that we have to deal with customer’s different venders of DBMS. From client’s perspective, no need to worry about what kind of database customer’s using.