A continuación, se presenta un cuadro con la definición de la arquitectura y sus ventajas y desventajas generales.
ARQUITECTURA SOFTWARE | DEFINICIÓN | VENTAJAS | DESVENTAJAS |
MONOLÍTICA | Considera aplicaciones cuyas funcionalidades y reglas de negocios están unidas en un mismo paquete de Software. | El proceso de desarrollo es más fácil al no requerir de conectores o paquetes de software adicionales | Desde el punto de vista de la Operación, Control y despliegue. Requiere de tiempos de interrupción en ocasiones prolongados, debido a que al modificar una funcionalidad afecta a todas las demás. Al no poder separar fácilmente las funcionalidades, la detección de errores y monitoreo de este tipo de aplicaciones es más complejo. No soporta una escalabilidad transparente, es decir al realizar un Upgrade a alguna funcionalidad todas se ven afectadas. |
SOA | Por definición es una arquitectura orientadas a servicios, es decir las funcionalidades de las aplicaciones, están separadas por servicios y estos pueden ser consumidos de manera rápida y simple basado en estándares | El separar funcionalidades en Servicios, la escalabilidad de la aplicación es más fácil al no existir una dependencia. Por otro lado, permite la reutilización de código para aplicaciones On-Premise y soporta la integración con sistemas externos por medio de la definición de un Bus de integración, que permite realizar transformaciones, agregaciones, entre otras, soportando un gran número de protocolos, para asegurar la comunicación entre servicios. | Aunque la arquitectura SOA realiza una separación entre las funcionalidades de la Aplicación y su lógica, aún resulta precaria, ya que su portabilidad depende de la infraestructura y SO. Es decir, No es 100% desacoplable. |
MICROSERVICIOS | Es la evolución de la arquitectura SOA.Permite separar en funcionalidades mínimas una aplicación y desde esa perspectiva atomizar las funcionalidades en únicas piezas de software sin dependencias. | Las tecnologías de microservicios generalmente se desarrollan en API REST permitiendo un mejor desempeño de las aplicaciones, adicionalmente sumado a una arquitectura de contenedores, permite un desacoplamiento completo de las funcionalidades. | Las ventajas que pueden existir al dividir las aplicaciones en microservicios, se vuelve una desventaja en la administración, al gestionar un gran numero piezas de software.De manera nativa esta arquitectura No permite la integración con sistemas tipo SOAP, lo que limita su compatibilidad. |
SOA CON VECTOR DE MICROSERVICIOS | En la definición estricta, los microservicios formarían parte de la arquitectura SOA, al ser servicios divididos en mínimas funcionalidades viables. Sin embargo, al considerar la plataforma, vale la distinción de ambas. Siendo SOA su principal componente el bus de Integración, mientras que los microservicios son orquestados por un Administrador de APIs. La arquitectura SOA con vector de Microservicios, permite soportar servicios de tecnologías SOAP y Rest y por otro lado orquestar microservicios puros basados en API. | Soporta tecnologías de Integración de diversos protocolos a su vez permite el desarrollo de microservicios con todas sus ventajas de desacoplamiento, performance y escalabilidad. | Demanda un mayor conocimiento en la administración de la plataforma que dicta la arquitectura. |
Tabla 3 Análisis de Ventaja y Desventaja de Arquitecturas de Software para PCS