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.
A Web service is a "call" to an application, a system, or a hub that asks a question, like: "Does this customer already exist?" By definition, a Web service uses the web to communicate its business question. SOA, on the other hand, is the architectural framework that enables a series of those Web services to occur.
Security: While client-server architecture is centralized on the server side, SOA is heavily dependent on WS-security framework for security purpose. Administration: While client-server architecture's maintenance cost is higher, SOA is immune to user-side maintenance needs.
There are three roles in each of the Service-Oriented Architecture building blocks: service provider; service broker, service registry, service repository; and service requester/consumer.
SOAP is a protocol that is almost always used in the context of a web services or SOA framework. As such, its API is typically hidden by the higher-level interface for SOA. SOA API middleware tools are available for nearly all modern programming languages, and Microsoft offers a variety of . NET SOAP and SOA tools.
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.
Lets take an example.
You have written a calculator code in any language (java, c,c++ etc) which perform 4 operations add, subtract, multiply and devide. Lets say, we deploy this code on a server. Now you want to publish this code on internet so that any person in world who has connected to internet can use your code. Now webservice will come into play. As per your server, you need to follow an implementation technique to convert your code into a webservice. For example, you are using Apache axis server and you have implemented your code using jax-ws (java api for xml web services). Your code will be published as a web service on a url ( like http://www.myserver/calculator).
Now how are you going to access this web service? Now client will come into play. Lets say you have designed a website www.calculation.com. And from there you are taking 2 integer inputs and calling your webservice using http://www.myserver/calculator/add for addition,http://www.myserver/calculator/subtract for subtraction,http://www.myserver/calculator/multiply for multiplication and http://www.myserver/calculator/multiply for division.
Now you can see each of your webservices operations addidtion, subtraction,multiplication and division is working as a service and in future lets say you have a requirement to put a equation solving service on your website then you can reuse your addition, subtraction multiplication and division web services using those links to make another service. Here you go, you have achieved service oriented architecture i.e. SOA.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With