You are on page 1of 2

Cuadro Comparativo de Web Services

SOAP WS RESTFul WS

 SOAP solamente permite XML.  REST permite diferentes formatos de datos, como lo
es JSON el cual generalmente es más rápido
permitiendo un mejor soporte a los clientes.

 La seguridad es una ventaja ya que incrementa la  La seguridad es una desventaja ya que no


privacidad y es fuertemente tipado (no permite está fuertemente tipado.
violaciones a los tipos de datos).

 Al modificar algo en el servidor esto impacta en los  REST es una arquitectura sin estado, ósea que cada
clientes. petición que se le haga al servidor será tratada de
manera totalmente independiente.

 Utiliza Web Services Description Language (WSDL),  No posee un estándar en mensajería y sus respuestas
un conjunto de normas para definir los mensajes, por lo que no se definen tipos de datos.
enlaces, operaciones y ubicación del servicio Web.
 Es necesario tener las herramientas correctas, de  Es sencillo al momento de interpretar y no hay
otra manera puede ser demasiado compleja. herramientas costosas que se requiera para utilizar
con los webservices.

 Tiene pocas operaciones con muchos recursos.


 Tiene muchas operaciones con pocos recursos.

 Los clientes necesitan saber las operaciones y su


 La descripción semántica es informal ya que está semántica antes del uso.
orientada al usuario.

 SMTP, HTTP POST, MQ; XMl Schema.  Protocolos HTTP GET, HTTP POST, HTTP PUT, HTTP
DEL; XML auto descriptivo.

 Consta de una dirección única para todas las  Posee una dirección para cada una de las
operaciones. operaciones del proceso.

 SOAP es definitivamente la opción más viable para el  REST es más fácil de usar en su mayor parte y es más
acceso a servicios web. flexible.
Ejemplo servicio SOAP en Java:
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

@WebService(serviceName = "ServicioWeb")
public class ServicioWeb{

@WebMethod(operationName = "sumar")
public double sumar(@WebParam(name = "a") double a, @WebParam(name="b")double
b){
return a+b;
}
@WebMethod(operationName = "restar")
public double restar(@WebParam(name = "a") double a,
@WebParam(name="b")double b){
return a-b;
}

You might also like