model-view-controller - refieren - mvc python
¿Puede MVC(o MVP) coexistir con SOA? (2)
Creo que la lógica empresarial debe existir en un modelo cuando se utiliza un patrón de diseño MVC o MVP, pero debe ocultarse detrás de un servicio en una arquitectura orientada a servicios.
¿Puede un sistema de software usar el patrón de diseño MVC o MVP dentro de una arquitectura orientada a servicios? Si es así, ¿dónde se sienta el modelo?
Buena pregunta. Creo que MVC y SOA deben y deben coexistir. MVC es la arquitectura más exitosa para la comunicación entre el usuario y el sistema. SOA es una arquitectura para una comunicación efectiva entre sistema y sistema. En la mayoría de las organizaciones, hay un lugar para ambos. Por lo tanto, creo que coexistirán.
En términos de cómo interactúan entre sí, mi opinión personal es que MVC se mantendrá (una vez que se haya agotado la publicidad de SOA) como el patrón arquitectónico principal con interfaces de servicios de exposición de modelos y controladores cuando corresponda.
Bueno, son animales totalmente diferentes. MVC tiene que ver con la presentación de datos, el control de la navegación del diálogo del usuario y la lógica comercial en la construcción del modelo de datos.
SOA trata de recuperar datos de un proveedor de servicios.
En el lado del cliente, puede usar SOA dentro de la parte Modelo del patrón MVC para construir su modelo con datos de un servicio SOA.
En el lado del servicio, ya que no hay presentación ni diálogo de usuario, la mayoría del patrón MVC se vuelve redundante. Además, un buen diseño de SOA debe concentrarse en proporcionar un servicio útil independientemente del almacén de datos subyacente, por lo que la parte del "modelo" se vuelve en gran medida incidental.
Es cierto que muchos servicios son "con estado" (por ejemplo, los pedidos son validados, pagados, despachados y recibidos), pero estos estados son una parte integral de la lógica comercial y no se prestan a la gestión de sesión típica del patrón MVC .