2010-03-17 24 views

Respuesta

5

SOA como concepto ha existido durante años, pero fue nombrado más recientemente como tal. Hay muchas tecnologías que se puede decir que implementan SOA, ya sea completamente, o aspectos de ella. Podría decirse que CORBA es uno de ellos, aunque el término no existía cuando se creó CORBA.

CORBA ciertamente implementa son una gran parte de la superficie de SOA, pero no creo que se podría decir que lo hace completamente (lo que sea que eso signifique). SOA puede ser un poco vago.

6

La diferencia entre CORBA y SOA es que CORBA es una tecnología específica, mientras que SOA es un estilo de arquitectura.

+0

¿No tenía CORBA toda una filosofía detrás de esto también? – Zubair

+4

@Zubair Sí: especifique los servicios que nadie querrá, y hágalos tan difíciles de implementar y usar como sea posible. Un objetivo secundario era evitar proporcionar implementaciones de referencia utilizables de cosas que la gente realmente podría usar, como cadenas de caracteres. Disgustado ex programador CORBA (nunca, nunca más) hablando. –

+1

@Neil, me gusta su comentario :) Creo que la mayoría de las implementaciones de SOA son complejas, tal vez algún día algo fácil de usar estará disponible – Zubair

4

Si bien no existe una definición "oficial" de SOA, parte del objetivo es desacoplar los diversos servicios entre sí. Esto incluye disociar la implementación (plataforma y tecnología) utilizada en el servicio. Como ejemplo, si uno expone un servicio a través de WebServices, cualquier cliente, ya sea java/python/.Net, etc. podría consumir este servicio, pero utilizar un marco de llamadas de procedimiento RPC/remoto a menudo lo vinculará a una plataforma/implementación particular en Para llamar al servicio.

Corba sí ofrece algo de lo que promete SOA, pero es en el mejor de un subconjunto de lo SOA está "destinado a ser"

La principal diferencia es que aunque SOA es un concepto arquitectónico general, mientras que Corba es una tecnología implementación del concepto de RPC/Remoting

3

No realmente. SOA es un estilo arquitectónico, mientras que CORBA es una tecnología particular con la que puede implementar SOA.

13

Además del hecho ya mencionado, esa SOA es una arquitectura, y CORBA una implementación específica.

CORBA no implementa SOA

la diferencia principal es que CORBA es objeto estirado o Componente orientado y SOA es Servicio Orientada

La principal diferencia técnica (en mi opinión) es que en SOA pasas mensajes (u objetos de datos) y en CORBA puedes pasar objetos genéricos (que pueden tener métodos) así que aunque puedes implementar SOA usando CORBA (limitándote a un subconjunto de la funcionalidad), el estándar forma de usin g CORBA no está orientado al servicio.

+0

Muy bien dicho; Creo que la clave es que CORBA está orientado a los componentes y no orientado al servicio, y por supuesto CORBA es una implementación específica de cierto tipo de arquitectura de comunicación remota orientada a componentes, mientras que SOA no es una implementación en sí misma. – Jaywalker

+0

+1 para esta respuesta. Estaba dividido en el medio, pero mencionar que CORBA está orientado hacia la orientación de componentes me lo dio. – realnsleo

1

CORBA y SOA son ambas arquitecturas. Es un error decir que CORBA es una implementación. No lo es. Es una arquitectura, una visión de la construcción de sistemas con objetos. SOA también es una arquitectura, una visión de la construcción de sistemas con servicios. Ambas son formas de organizar sus sistemas como una colección de objetos o servicios. Existen implementaciones específicas para CORBA, así como para SOA.

Son ambas tecnologías. Ambos le brindan recibos y recomendaciones para estructurar sus sistemas y administrar la complejidad. Existen herramientas desarrolladas por terceros para respaldar estas tecnologías para ambos.

Los objetos en una arquitectura ORB común (CORBA) proporcionan servicios para que pueda pensar en una traducción entre la arquitectura orientada a servicios (SOA) y la arquitectura ORB común.No son lo mismo, pero se puede imaginar la implementación de un sistema de software con uno u otro, lo que los hace, desde cierto punto de vista, equivalentes.

No son lo mismo de la misma manera que la Programación Orientada a Objetos y Programación Estructurada o Programación Funcional no son lo mismo, aunque uno podría usar cualquiera de los estilos de programación mencionados anteriormente para implementar una cierta funcionalidad.

0

Son intrínsecamente diferentes porque uno depende de la tecnología (CORBA) y el otro no.

  • CORBA es un estándar abierto desarrollado por el OMG (Object Management Group) para el uso ORB (Object Request Broker) middleware con un gran enfoque en la interoperabilidad (plataformas de software, hardware y plataformas de lenguajes de programación).
  • SOA es un estilo de diseño de software en el que los servicios proporcionan a los otros componentes componentes de la aplicación a través de un protocolo de comunicación a través de una red. Los principios básicos de la arquitectura orientada a servicios son independientes de proveedores, productos y tecnologías.

Tenía la misma duda que usted porque la definición de SOA es demasiado amplia y puedo ver que muchos conceptos de CORBA se pueden asignar naturalmente a la terminología de SOA. Por ejemplo, en CORBA, los clientes (objetos) piden a los servidores (también a los objetos) que realicen algún trabajo a través de un protocolo de comunicación a través de una red. Además, las implementaciones de CORBA proporcionan servicios generales como el registro y el soporte de eventos. Creo this link resume la relación entre CORBA y SOA:

La primera arquitectura orientada a servicios para muchas personas en el pasado era con el uso de Object Request Broker (ORB) basados ​​en la especificación CORBA. La especificación CORBA es responsable de realmente aumentar el conocimiento de las arquitecturas orientadas a servicios.

Cuestiones relacionadas