Non capisco SOA (Service-oriented Architecture) e database. Mentre sono attratto dal concetto SOA (incapsulando la logica aziendale riutilizzabile in servizi) non riesco a capire come dovrebbe funzionare se le tabelle dati incapsulate in un servizio sono richieste da altri servizi/sistemi --- oppure è adatto per SOA del tutto in questo scenario?SOA e database condivisi
Per essere più concreto, supponiamo di avere due servizi:
CustomerService
: contiene la mia tabellaCustomers
di database e la logica di business associati.OrderService
: contiene la tabella e la logicaOrders
.
Ora che cosa se ho bisogno di JOIN
le tabelle Customers
e Orders
con un'istruzione SQL? Se le tabelle contengono milioni di voci, le prestazioni inaccettabili risulterebbero se dovessi inviare i dati sulla rete utilizzando SOAP/XML. E come eseguire lo JOIN
?
Facendo una piccola ricerca, ho trovato alcune soluzioni proposte:
- Use replication per fare una copia locale dei dati richiesti dove necessario. Ma poi non c'è incapsulamento e allora qual è il punto di usare SOA? Questo è discusso on StackOverflow ma non c'è un chiaro consenso.
- Impostare un Master Data Service che incapsula tutti i dati del database. Immagino che otterrebbe dimensioni di mostro (con essenzialmente una chiamata API per ogni stored procedure) e richiedono aggiornamenti per tutto il tempo. Per me questo sembra legato al concetto enterprise data bus.
Se avete qualche input su questo, per favore fatemelo sapere.
Edit: È passato un anno, e il mio interesse per la SOA è diminuita, come è la popolarità del concetto in generale. Al giorno d'oggi, le persone sembrano voler concentrarsi sui servizi RESTful.
La modifica rende assolutamente zero senso. I servizi RESTful sono una questione di progettazione dell'API e la presenza di singoli servizi spinge in realtà le cose verso SOA. Quindi il tuo commento sul passaggio da SOA a REST è come dire di passare dal mangiare banane all'utilizzo di sveglie. – Max
Grazie per l'input, ma non sono sicuro di essere d'accordo con te. Sin dagli albori dell'evoluzione dell'architettura orientata ai servizi (SOA), la SOA è stata confrontata e contrapposta al modello dell'interfaccia RESTful. [SearchSOA] (http://searchsoa.techtarget.com/tip/SOA-and-RESTful-interfaces-When-why-the-should-be-combined) - Gruber 24 minuti fa – Gruber
Controlla anche questo: http: // martinfowler.com/articles/enterpriseREST.html#bounded-contexts –