Guía de entrevistas técnicas de Arquitectura de Software

Accede/Registrate para Descargar tu Guía

Lista de Preguntas


¿Qué diferencias existen entre SOA y REST?

Característica

Arquitectura Orientada a Servicios (SOA)

REST (Transferencia de Estado Representacional)

Definición

Un enfoque arquitectónico que organiza servicios reutilizables.

Un estilo arquitectónico que se centra en recursos y operaciones.

Protocolo de Comunicación

Puede utilizar varios protocolos, como SOAP (Simple Object Access Protocol).

Principalmente utiliza el protocolo HTTP, comúnmente con RESTful APIs.

Estilo de Interfaz

Puede tener interfaces más ricas y complejas (puede incluir operaciones más complejas).

Interfaces más sencillas y uniformes que utilizan operaciones estándar de HTTP (GET, POST, PUT, DELETE).

Descripción de Servicios

Puede utilizar descripciones de servicios como WSDL (Web Services Description Language).

Menos énfasis en descripciones formales, a menudo utiliza documentación y descripciones de recursos en el propio servicio.

Estado del Cliente (Statefulness)

Puede ser stateful o stateless dependiendo de la implementación específica.

Generalmente es stateless, lo que significa que cada solicitud del cliente al servidor contiene toda la información necesaria.

Representación de Datos

Puede usar formatos como XML o JSON para la representación de datos.

Comúnmente utiliza JSON para representación de datos, pero puede admitir otros formatos.

Descubrimiento de Servicios

Puede implicar registros de servicios centralizados y técnicas de descubrimiento.

A menudo utiliza URIs (Uniform Resource Identifiers) y enlaces para descubrir recursos, sin un registro centralizado.

Orquestación de Servicios

Puede implicar orquestación compleja de servicios a través de protocolos como BPEL (Business Process Execution Language).

A menudo se basa en la composición simple de recursos y servicios mediante la combinación de solicitudes HTTP.

Flexibilidad

Puede ser más flexible en términos de tecnologías y protocolos utilizados.

Ofrece simplicidad y flexibilidad, pero a veces puede carecer de formalidades para ciertos casos de uso.

Uso Común

Históricamente utilizado en grandes empresas y aplicaciones empresariales complejas.

Ampliamente utilizado en aplicaciones web, servicios en la nube y API públicas debido a su simplicidad y rendimiento.

Whatsapp Mentores Tech