Hasta hace unos años, las integraciones de aplicaciones usando servicios web consistían en soluciones basadas exclusivamente en los estándares SOAP/WSDL/WS-* . Ese tipo de servicios se denominan servicios web pesados en contraposición de los servicios web basados en REST, que son más recientes y se consideran ligeros. Según las nuevas tendencias en tecnología, los servicios REST proponen un estilo de integración que elimina la complejidad añadida por los estándares y vuelve a las raíces usando el protocolo HTTP de forma pura y limpia. O casi…

En realidad hay un poco de confusión y las tendencias solas no ayudan a tomar decisiones bien fundamentadas. ¿Cuál modelo es realmente el mejor para un proyecto nuevo? ¿Cuál modelo conlleva más esfuerzo de mantenimiento a mediano y largo plazo? ¿Se puede medir el coste y el riesgo de una u otra arquitectura? ¿Soporte de herramientas? ¿Aplicamos la metodología de proyectos anteriores o adoptamos las nuevas tendencias?

Como siempre, no hay una respuesta única e inmediata. Todo depende y algunas preguntas son difíciles de responder. Por eso da gusto toparse con artículos que explican el conjunto de factores en juego y ayudan en la toma de decisiones. En “RESTful Web Services vs. ‘Big’ Web Services: Making the Right Architectural Decision” se hace un análisis profundo de las ventajas y desventajas técnicas de cada unas de las dos alternativas, comparándolas en diferentes escenarios y teniendo en cuenta varios principios como el nivel de acoplamiento, disponibilidad de tecnologías para la implementación, descripción de los servicios, etc.

La conclusión rápida: pareciera que los servicios RESTful son la solución más apropiada para integraciones “ad hoc” a través de la web; los servicios pesados (SOAP/WSDL/WS-*) son la mejor solución para integrar aplicaciones en las que se preve un ciclo de vida más largo y tienen requerimientos más sofisticados de seguridad, trazabilidad, gestión de transacciones, etc.