Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are both REST and SOAP an implementation of SOA?

Tags:

rest

soap

soa

I have a question around SOA.

Are SOAP and REST both considered approaches for implementing a service-oriented architecture?

I know that REST is a style, thus this leads me to this question.

like image 391
Joeblackdev Avatar asked Mar 11 '11 21:03

Joeblackdev


2 Answers

Yes, they both can be considered approaches for implementing a SOA. I suppose you could say REST is a style, but then you'd have to say SOAP is one too. I would simply consider them different techniques to accomplish the same end. SOAP mimics a Remote Procedure Call and REST is inline with how the web (http) was designed.

like image 55
CoderSteve Avatar answered Nov 16 '22 01:11

CoderSteve


When creating/adapting services to work in a SOA architecture the interfaces exposed can be whatever you desire as long as the consumers have the ability to process the response.

For the sake of giving a more concise answer, I will interpret REST as being a HTTP interface which can perform the CRUD operations, perhaps responding to requests with an XML or JSON object.

SOAP tends to lend itself to more complex operations on the service side, the libraries and involved XML's of SOAP introduces complexity to the system.

If all you require is the representation of resources which can be accessed through simple CRUD operations it is worth considering implementing a REST interface to reduce complexity, even if the service will run along side services with SOAP interfaces. All that would be required is the consumer of the service is able to deal with the RESTful style responses as well as acting as a SOAP client.

There would be arguments for consistency across the service to improve maintainability and ease of development, but this isn't a necessity and should only be included in the decision process.

When including a messaging bus into the design, heterogeneous services can be dealt with even more effectively by inserting standard transforms (XSLT, custom) into the process which can translate the response from services into a standard format understood by the system as a whole.

like image 42
rogermushroom Avatar answered Nov 16 '22 01:11

rogermushroom