2010-03-17 30 views

risposta

5

SOA come un concetto è stato intorno per anni, ma è stato solo più recentemente nominato come tale. Ci sono molte tecnologie che si possono dire per implementare SOA - completamente, o aspetti di esso. Si potrebbe dire che CORBA fosse uno di questi, anche se il termine non esisteva quando è stato creato CORBA.

CORBA certamente implementa gran parte della superficie SOA, ma non credo si possa dire che lo faccia completamente (qualunque cosa ciò significhi). SOA può essere un po 'vago.

6

La differenza tra CORBA e SOA è che CORBA è una tecnologia specifica, mentre SOA è uno stile di architettura.

+0

CORBA non ha una filosofia completa dietro di esso anche se? – Zubair

+4

@Zubair Sì: specifica i servizi che nessuno vorrà e renderli difficili da implementare e utilizzare il più possibile. Un obiettivo secondario era evitare di fornire implementazioni di riferimento utilizzabili di cose che le persone potrebbero effettivamente utilizzare, come le stringhe. Insoddisfatto del programmatore CORBA (mai, mai più) parlando. –

+1

@Neil, mi piace il tuo commento :) Penso che la maggior parte delle implementazioni SOA siano complesse, forse un giorno qualcosa di facile da usare sarà disponibile – Zubair

4

Anche se non esiste una definizione "ufficiale" di SOA, parte del problema è separare i vari servizi l'uno dall'altro. Ciò include possibilmente disaccoppiare l'implementazione (piattaforma e tecnologia) utilizzata nel servizio. Ad esempio se uno espone un servizio tramite WebServices, qualsiasi client sia java/python/.Net etc ... potrebbe consumare questo servizio - ma l'utilizzo di un framework di chiamata RPC/procedura remota spesso ti legherà a una particolare piattaforma/implementazione in per chiamare il servizio.

Corba non offre alcune delle cose che promette SOA, ma è nella migliore delle ipotesi un sottoinsieme di ciò che SOA è "destinata ad essere"

La differenza principale è però che SOA è un concetto architettonico generale, mentre Corba è una tecnologia implementazione del concetto RPC/Remoting

3

Non proprio. SOA è uno stile architettonico mentre CORBA è una tecnologia particolare con cui è possibile implementare SOA.

13

Oltre al fatto già menzionato, SOA è un'architettura e CORBA un'implementazione specifica.

CORBA non implementa SOA

la differenza principale è che CORBA è Object Oriented o Componente oriented e SOA è Servizio Oriented

La principale differenza tecnica (a mio parere) è che in SOA si passano messaggi (o oggetti dati) e in CORBA si possono passare oggetti generici (che possono avere metodi) quindi, sebbene sia possibile implementare SOA usando CORBA (limitandosi a un sottoinsieme della funzionalità), lo standard modo di usin g CORBA non è orientato al servizio.

+0

Molto bene detto; Penso che il punto cruciale sia che CORBA è orientato ai componenti e non orientato al servizio, e naturalmente CORBA è un'implementazione specifica di un certo tipo di architettura remota orientata ai componenti, mentre SOA non è un'implementazione in sé. – Jaywalker

+0

+1 per questa risposta. Sono stato diviso in due, ma menzionare il CORBA è orientato verso l'orientazione dei componenti che lo ha inchiodato per me. – realnsleo

1

CORBA e SOA sono entrambe architetture. È sbagliato dire che CORBA è un'implementazione. Non è. È un'architettura, una visione di sistemi costruiti con oggetti. SOA è anche un'architettura, una visione di sistemi costruiti con servizi. Entrambi sono modi per organizzare i sistemi come una raccolta di oggetti o servizi. Esistono implementazioni specifiche per CORBA e SOA.

Sono entrambe tecnologie. Entrambi ti danno ricevute e consigli per strutturare i tuoi sistemi e gestire la complessità. Esistono strumenti sviluppati da terze parti per supportare queste tecnologie per entrambi.

Gli oggetti in un'architettura ORB comune (CORBA) forniscono servizi in modo da poter pensare a una traduzione tra Service Oriented Architecture (SOA) e Common ORB Architecture.Non sono la stessa cosa, ma si può immaginare di implementare un sistema software con l'uno o l'altro, rendendoli, da un certo punto di vista, equivalenti.

Non sono la stessa cosa allo stesso modo della programmazione orientata agli oggetti e della programmazione strutturata o della programmazione funzionale non sono la stessa cosa, anche se si potrebbe usare uno qualsiasi degli stili di programmazione sopra menzionati per implementare una determinata funzionalità.

0

Sono intrinsecamente diversi perché uno dipende dalla tecnologia (CORBA) e l'altro no.

  • CORBA è uno standard aperto sviluppato da OMG (Object Management Group) per l'ORB uso (richiesta oggetto mediatore) middleware con una grande attenzione per l'interoperabilità (piattaforme software, piattaforme hardware e linguaggi di programmazione).
  • SOA è uno stile di progettazione software in cui i servizi vengono forniti agli altri componenti dai componenti dell'applicazione, attraverso un protocollo di comunicazione su una rete. I principi di base dell'architettura orientata ai servizi sono indipendenti da fornitori, prodotti e tecnologie.

Ho avuto lo stesso dubbio di te perché la definizione di SOA è troppo ampia e posso vedere molti concetti di CORBA possono essere mappati in modo naturale alla terminologia della SOA. Ad esempio in CORBA, i client (oggetti) chiedono ai server (anche oggetti) di fare un po 'di lavoro attraverso un protocollo di comunicazione su una rete. Inoltre, le implementazioni CORBA forniscono servizi generali come il logging e il supporto agli eventi. Credo che this link riassume la relazione tra CORBA e SOA:

La prima architettura orientata ai servizi per molte persone in passato con l'uso di Object Request Broker (ORB) basati sulla specifica CORBA. La specifica CORBA è responsabile per aumentare realmente la consapevolezza delle architetture orientate ai servizi.