After reading some literature on the topics of SOA, Web-Services and Client-Server architectute. I really confused about these terms because can't see the real difference between them. Can someone explain what the actual difference between SOA and Client-Server is? Can I use Client-Server to implement SOA or the former is a different concept? Is client-server obsolete now? And where is the place for web-services here? Is web-service just a client-server architecture?
I would very appreciate if someone helps me to clarify all these terms and differences between these concepts.
The biggest difference between SOA and client-server is the coupling between the tiers. In SOA, the server side is very independent of the client. Many different client types use the same server. Think about a web server. It does the same thing, no matter what browser you use to connect to it. In this way SOA services are designed for reuse. http://en.wikipedia.org/wiki/Service-oriented_architecture
Client-server on the other hand is usually more coupled. The server exists for a specific client, without planning for re-use. Think about Microsoft Exchange. It is designed to work with Microsoft Email clients. It is literally just splitting a single process into 2 parts, running them on different machines. That being said, technically a SOA service is client-server, just with more than one client.
So, all SOA services are client-server, but not all client-server processes are SOA.