There are many parameter needs to be considered before
choosing REST or SOAP like
Performance & Scalability
- REST has better Performance and Scalability features. Read operation in REST can be cached whereas SOAP based read cannot be cached.
- REST service is good when we have limited bandwidth and have requirement to accomplish by simple CRUD based operation.
- Provide more choice for implementing security beyond the standard SSL support by implementing WS-Security standard
- SOAP can support distributed two-phase commit transactions by implementing WS-Atomic standards.
- REST does not support transaction
- REST allow better support for browser and mobile clients due to its support for JSON.
- REST allows many data format like JSON, XML, Text, SOAP only support XML which require more bandwidth to pass data through wire
- SOAP service can use any transport protocol such as HTTP, HTTPS, TCP, SMTP, and MSMQ. REST only support standard HTTP and it is much easier to implement, simple methods to call GET, PUT, POST and DELETE.
- REST support standard HTTP error handling but SOAP provide more robust error handling including user define error handling.
Summary
REST
|
SOAP
|
Expose the data
|
Expose the logic
|
Support multiple Data format, JSON, XML,
HTML, Text etc.
|
Support only XML
|
Support only Http, Https protocol
|
Support multiple protocol; Http, Https, TCP,
UDP SMTP, Messaging etc.
|
Support for Transaction Management but not
ACID compliance or two-phase commit transaction.
|
Better support for transaction management Support, ACID and two-phase commit transaction
by implementing WS-Atomic Standard
|
Need less band width
|
Need more band width because of XML
|
Suited for stateless CRUD operations
|
Suited for Stateful operation, Easy to
configure session support
|
Less support for Security
Supports only
point-to-point SSL security. The SSL encrypts the whole message, whether all
of it is sensitive or not.
|
SOAP WS has Better support for Security Both SSL security and
WS-security
|
Better Support for browsers and mobile
client, Because of Lightweight
|
Limited browser support
|
Read operation can be cached
|
Read Operation cannot be cached
|
Support for better performance and scalability
|
Performance is less as compare to REST
|
Support only HTTP error Handling
|
Support robust error handling including user
define error handling
|
Only support Synchronous message
|
Can support Synchronous and Asynchronous
both messages
|
No comments:
Post a Comment