Qual è il valore aggiunto di Service Discovery in SOA per questo progetto?

0

Stiamo riadattando un'architettura su un paesaggio frammentato di circa 9 prodotti software. Questi prodotti sono tutti correlati a una piattaforma social / community. Questi prodotti software, costituiti da applicazioni web, servizi web e app per smartphone, sono stati sviluppati da studenti senza aderenza a nessuna architettura. Le app stesse sono state sviluppate con una certa architettura, ma non sono state prese in considerazione o rispettate architetture a livello di sistema. È quindi responsabilità del mio gruppo incollare tutto insieme in modo che questi prodotti software possano comunicare insieme.

Ho pensato ad un'architettura orientata ai servizi perché mi piace l'idea di poter collegare i servizi e perché molti dei prodotti software stessi possono essere definiti servizi nel loro rispetto. Tuttavia, l'argomento che mi infastidisce davvero è la scoperta del servizio che vedo in ogni testo SOA. Non capisco perché ne avrei bisogno quando:

  1. Le informazioni e le esigenze di assistenza di ogni prodotto software sono chiaramente definite. Sanno di quali altri prodotti hanno bisogno e quali informazioni desiderano.
  2. Non esiste un catalogo di servizi esterni / di terze parti e non è previsto l'utilizzo di uno.

Per dirla senza mezzi termini, perché non è possibile eseguire l'hardcode dei servizi necessari all'interno dei rispettivi prodotti software? O anche solo creare un piccolo database di server e utilizzare un broker per orchestrare le chiamate API e quant'altro? Naturalmente viene in mente il problema della scalabilità: "Che cosa succede se viene aggiunto un nuovo servizio? Hai intenzione di modificare tutto il codice sorgente?" No, solo quelli che hanno bisogno del nuovo servizio. "Cosa succede se tutti i prodotti hanno bisogno del nuovo servizio?" Bene, quindi lo aggiungiamo in un piccolo sforzo di sviluppo.

La trasparenza potrebbe anche essere influenzata: "Che cosa succede se vogliamo conoscere la descrizione completa del servizio di un servizio e le chiamate che possiamo fare contro la sua API?" Diamo un'occhiata alla documentazione allora.

Ho problemi con la comprensione della necessità in questo contesto. Sono anche nervoso di non poterlo coniare come un vero SOA se non esistono scoperte o descrizioni di servizi. Qualcuno può spiegare il potenziale di scoperta dei servizi in questo progetto?

    
posta Zimano 17.01.2017 - 18:10
fonte

1 risposta

2

Se tutti i progetti software sono interni alla tua organizzazione e i limiti dell'interfaccia sono ben progettati e completamente documentati, , potresti non aver bisogno di Service Discovery.

Ma se pubblichi un'API pubblica di cui altre organizzazioni dipendono per il corretto funzionamento del loro software, allora l'individuazione del servizio potrebbe diventare più importante. Una grande parte dell'architettura orientata ai servizi consente alle aziende di collaborare in modo orientato ai dati e Service Discovery consente loro di farlo.

Il termine "Architettura orientata ai servizi" è associato a certe "programmazioni nel grande" cose come il messaggio code e autobus di servizio. Se non hai bisogno di queste cose, allora mi chiedo se un'architettura SOA in piena regola sia adatta alle tue esigenze. Puoi avere i vantaggi dell'accoppiamento e della modularità liberi senza implementare un'intera architettura SOA, magari sfruttando i microservizi.

    
risposta data 17.01.2017 - 18:25
fonte

Leggi altre domande sui tag