Esta semana estoy en el Tech-Ed for Developers 2008 en Orlando. Quise escribir antes pero aqui el tiempo se va rápido y por las noches uno llega tan cansado que se va directo a la cama 🙂
Hay muchas cosas por contar de este evento que, básicamente, se centra en lo ultimo que ha sacado Microsoft (lo futuro se ve en el PDC). Realmente, uno de los expositores que marca la diferencia es David Chappell, lo digo no solo por su experiencia y conocimiento, sino por su forma de hacer de las cosas «complicadas» para muchos, algo entendible para todos….o casi todos.
Bueno me toco ver ayer su comparacion entre plataformas Java vs. .NET muy bueno, pero de eso no hablare ahora, sino de la charla de hoy que fue sobre la comparacion entre SOAP/WS-* y REST.
Son dos estilos diferentes, para escenarios distintos. Primero hizo una explicacion de WFC con SOAP, haciendo incapie en que SOAP define una forma de mensaje XML descriptiva de la operacion y usa POST para el envio. Tambien hablo sobre WS-*, algo que no es reciente, pero que es soportado tambien por WCF Describio los binding que se usan en cada caso:
BasicHttpBinding, para SOAP
WSHttpBinfing, para SOAP/WS-*
NetTcpBinding, para usar TCP
Sobre WS-* mencionó que no es el predominante para Web Services en Windows y que la interoperabilidad entre vendedores sigue siendo imprefecta.
Luego, le toco el turno a REST, nos hablo que usa verbos HTTP (GET, POST, PUT, DELETE) y que todo es accedido a través de URIs. El binding que usa es «webHttpBinding». El Transporte HTTP puede enviar XML, JSON o datos binarios sobre HTTP.
SOAP/WS-* viene de una larga historia : RPC, RMI, CORBA, DCOM, etc. REST es Web Services puro.
REST es mas Internet, SOAP-WS-* no necesariamente fue creado para Internet sino para entornos corporativos y tambien internet.
En seguridad REST usa HTTPs, mientras que SOAP/WS-* puede usar HTTPs y estandares de seguridad WS.
La mejor decision debe ser por la razon, no por la emocion.
Lo mejor de todo, WCF soporta ambos!! 🙂
Antes de terminar, para los interesados en conocer más sobre REST, Chappell recomendo un libro RESTful Web Services por Leonard Richardson, de hecho estara pronto en mi biblioteca personal.
BasicHttpBinding