Imagine que tenemos 2 servicios: Producto y orden. Según mi conocimiento de SOA, sé que cada servicio puede tener su propio almacén de datos (una base de datos separada o un grupo de tablas en la misma base de datos). Pero ningún servicio puede tocar el almacén de datos de otro servicio directamente.SOA: uniendo datos a través de múltiples servicios
Ahora imagine que hemos almacenado el producto y pedido los datos de forma independiente dentro de los Servicios de productos y pedidos. En el Servicio de pedidos, podemos identificar los productos por su ID.
Mi pregunta es: Con esta arquitectura, ¿cómo puedo mostrar la lista de pedidos y detalles del producto en la "misma" página?
Según tengo entendido, debería obtener la lista de artículos de pedido de OrderService. Cada OrderItem tiene un ProductID. Ahora, si hago una llamada por separado a ProductService para recuperar los detalles de cada Producto, eso sería muy ineficiente.
¿Cómo abordaría este problema?
Saludos, Mosh
Realmente espero que nadie más siga este paradigma de codificación ya que ha aplicado incorrectamente MUCHA información. No hay absolutamente ningún "requisito" que indique que dos servicios de los que USTEDES están bajo control no pueden vincularse a la misma base de datos/tablas/almacén de respaldo. Estas "soluciones" imponen restricciones que simplemente no existen y se consideran realmente mal diseño. – NotMe
Me gustaría no estar de acuerdo con Chris en este caso. Estas "restricciones" son restricciones que pueden ser muy útiles. Para un ejemplo trillado, estas restricciones pueden ayudarlo a evolucionar su sistema para escalar. El desarrollo de software se trata de elegir sus limitaciones sabiamente. En una pequeña aplicación de demostración, esta restricción puede parecer una tontería, pero en una aplicación grande que necesita mantenerse en el tiempo, tiene mucho sentido. –