Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SOA vs Client-Server vs Web Service - what is the difference? [closed]

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.

like image 392
MainstreamDeveloper00 Avatar asked Mar 13 '14 09:03

MainstreamDeveloper00


People also ask

What is the difference between an SOA and a Web service?

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.

What is the difference between SOA and client server architecture?

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.

What are the 3 types of architecture in SOA?

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.

Is SOAP and SOA are same?

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.


2 Answers

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.

like image 133
Rob Conklin Avatar answered Oct 06 '22 00:10

Rob Conklin


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.

like image 41
kingAm Avatar answered Oct 05 '22 23:10

kingAm