SOA: ¿cuán granulares deberían ser los servicios para mantener el rendimiento?

Estoy asumiendo un proyecto para reemplazar un antiguo sistema heredado desde cero. Antes de entrar, la compañía contrató a un consultor que compiló un bosquejo básico del sistema y presionó fuertemente a SOA. Esto dio como resultado una larga lista de "servicios de entidad", con la intención de que se compusieran en combinaciones de servicios más complejas. Por ejemplo, un usuario que desea información del comité golpeará el servicio "Comité", que luego llama al servicio "Persona" para obtener sus miembros, y el servicio "Reunión" para obtener sus reuniones, y así sucesivamente.

Entiendo las ganancias de flexibilidad en esto, pero mis preocupaciones están relacionadas con el rendimiento. Me parece que un sistema construido con un nivel de granularidad tan fino para sus servicios gasta demasiados recursos en traducir mensajes de servicio, y el rendimiento será inaceptable. También me parece que las ganancias de flexibilidad aún se pueden lograr utilizando objetos básicos reutilizables, aunque en ese caso se pierde el beneficio de una interfaz independiente de la tecnología para ganar rendimient

Para obtener más información: la organización que solicita este software no cuenta actualmente con un conjunto estable de paquetes de software de terceros con los que deba integrarse. Este software reemplazará todas las suites. Actualmente, tampoco hay consumidores externos que necesiten acceder a los datos fuera de la interfaz del sitio web proporcionada; todas las llamadas de servicio serán de otras partes dentro de nuestro sistema. La elección de SOA en este caso parece estar completamente basada en el concepto de "preparación".

Así que mi pregunta: ¿qué nivel de granularidad es aceptable en un estable de servicios sin sacrificar el rendimiento? ¿Estoy siendo demasiado escéptico con respecto a los éxitos de rendimiento que tomaremos implementando todas nuestras entidades como servicios? ¿Debería la funcionalidad estar disponible como servicios web solo cuando se necesitan, con el enfoque de "preparación" en lugar de diseñar la capa de negocios para la probabilidad de que los servicios se caigan más adelante?

Respuestas a la pregunta(3)

Su respuesta a la pregunta