2011-01-11 23 views

Respuesta

3

Definitivamente sí. Este patrón SOA se denomina comúnmente coreografía, en el que un servicio web procesa y luego pasa el mensaje a otro en un canal de procesamiento. Google y encontrarás buenas referencias.
Otro caso puede ser razón más técnica como enrutamiento, donde hay servicios web frontend que las rutas de su contactado a los distintos servicios de back-end basado en la política de seguridad, el contenido, el puente de la tecnología diferente o protocolo de transporte, etc.

5

no puedo pensar en ninguna razón por qué no. Puedo pensar en varias razones por las cuales un servicio podría llamar a otro servicio. He diseñado e implementado múltiples servicios que hacen esto. También conozco otras arquitecturas que configuraron este tipo de sistema.

+0

se ¿No crees que, considerando que la arquitectura debería cortarse verticalmente de forma apropiada, crearía una arquitectura de spaghetti? – iwayneo

+0

Creo que si ejecuta sierras verticalmente a través de sus servidores, tendrá otros problemas con los que lidiar. También creo que la pasta será mala para los internos. ¿Tiene ejemplos concretos de los problemas que cree que pueden surgir? – Mark

+0

un problema que tengo es que, por ejemplo, si en mi sitio web, llamo a un servicio wcf, que llama a un servicio wcf, que potencialmente podría llamar a un servicio wcf ... etc. etc. – iwayneo

0

pensar en el objetivo arquitectónico de "separación de preocupaciones". en lugar de que cada servicio sepa cómo hacer todo, puede confiar en otros servicios especializados para las piezas compartidas de funcionalidad

+0

No estoy de acuerdo con esto en absoluto. Uno de los principios básicos de la Orientación a los Servicios es que los servicios son autónomos. Está creando dependencias en otros servicios web si "confía" en otros servicios especializados para compartir funciones de funcacionalidad. – user1431072

0

Tengo un escenario diferente. ¿Qué sucede si desea implementar el clúster de nivel de servicio en su SOA? Por ejemplo, digamos que el servicio de persistencia reside en una máquina y es responsable de manejar todas las tareas de persistencia en el clúster. Por lo tanto, en otra máquina que necesita funcionalidad de persistencia, necesita conectarse solo a esa máquina (ignore el factor de conmutación por error).

Ahora, al iniciar sesión, si el servicio de usuario tiene instancia de servicio de persistencia directamente, no podrá implementar el clúster de nivel de servicio.

Tenemos nuestro middleware SOA y llamé directamente el uno al otro. Pero cuando implementamos el clúster de nivel de servicio usando JMS/ActiveMQ, enfrentamos el problema de esos servicios interconectados.

3

La respuesta a esto es tan siempre "depende ..." déjame explicarte lo que quiero decir.

Llamar a otro servicio en una SOA es, por supuesto, una cosa totalmente aceptable, es en el corazón de SOA poder componer cosas nuevas de los servicios existentes.

La parte más importante es cómo llamar a los servicios, considere un sistema SOA donde varios servicios colaboran en una llamada en cadena, cada uno reclutando al otro en el ámbito transaccional. Hacer este tipo de cosas sin una planificación cuidadosa tendrá un impacto masivo en el rendimiento de su sistema. La misma cadena de llamadas diseñada utilizando servicios bien particionados que tienen un alcance en la unidad de trabajo correcta sufre menos.

Considere la robustez del sistema, en una arquitectura típica un servicio tiende a ser más popular que otros y llega a tener muchos otros servicios llamándolo. Una falla de este servicio reduce todo el sistema debido a que todos los otros servicios dependen de la llamada a este servicio.

Considere la diferencia entre llamadas síncronas y asíncronas, ¿cuándo utiliza qué? Ese es el impacto de cada uno?

¿Cómo se diseñan y dividen los servicios para limitar el costo de cruzar el límite del servicio en cada llamada?

Muchas preguntas, pero si miras a tu alrededor hay muchos lugares para encontrar respuestas, sugiero comenzar por estas.

Le sugiero que lea los artículos de Thomas Erl y Roger Sessions, esto le dará una idea clara de lo que SOA se trata.

Building a SOA

SOA Design Pattern

Achieving integrity in a SOA

Why your SOA should be like a VW Beetle

SOA explained for your boss

WCF Service Performance

Cuestiones relacionadas