Servizi o librerie condivise?

2

Lavoro in un ambiente in cui disponiamo di diverse applicazioni Web, ognuna delle quali ha caratteristiche diverse, ma deve comunque fare cose simili: autenticazione, lettura da fonti di dati comuni, memorizzazione di dati comuni, ecc.

È meglio costruire la funzionalità condivisa in un insieme di servizi, per essere chiamati dalle app web, o è meglio creare una libreria condivisa, che include le applicazioni web?

I servizi o le biblioteche dovrebbero accedere a vari database e sembra che mantenere quell'accesso in un unico posto (servizio) sia una buona idea. Ridurrebbe anche il numero di connessioni al database necessarie. Un servizio manterrebbe anche la logica in un unico posto, ma si potrebbe quindi sostenere che una libreria condivisa può fare la stessa cosa. Ci sono altri benefici che si possono trarre dall'usare servizi su librerie condivise?

    
posta Royal 23.06.2011 - 16:17
fonte

2 risposte

3

Se si utilizza il percorso di assistenza, tutte le applicazioni falliranno se il singolo servizio fallisce. Certo, significa che se devi modificare il codice che gestisce la funzionalità comune, devi solo farlo in un unico posto (il servizio).

Se segui il percorso della libreria, le tue applicazioni sono più indipendenti (infatti potrebbero essere distribuite su server diversi che non comunicano nemmeno) e non tutte si basano su un singolo servizio. Naturalmente, se è necessario modificare il codice che gestisce la funzionalità comune, sarà probabilmente necessario ricostruire e ridistribuire tutte le applicazioni con le nuove librerie. Questo potrebbe anche essere un vantaggio se si desidera desiderare l'applicazione A per utilizzare la versione 3 di Some Library e si desidera che l'applicazione B utilizzi la versione 4.2 della stessa libreria. Non è un caso comune, ma io ho visto accadere una o due volte in situazioni molto specifiche.

Gli sforzi di test per entrambi dovrebbero essere gli stessi, perché anche se viene modificata una sola "applicazione" di servizio, tutte le applicazioni utente dovrebbero essere nuovamente testate come se il servizio fosse interno a loro.

    
risposta data 23.06.2011 - 16:27
fonte
0

Vantaggi della libreria:

Vantaggi del servizio:

  • Tutti ricevono gli aggiornamenti immediatamente e in modo trasparente (a meno che un'offerta API non sia disponibile)
  • I consumatori non possono decompilare il codice
  • Può scalare separatamente l'hardware di servizio
  • Agnostica della tecnologia. Con una libreria condivisa, i consumatori devono utilizzare una tecnologia compatibile.

  • Più sicuro. Il livello dell'interfaccia utente può chiamare il servizio che si trova dietro un firewall invece di accedere direttamente al DB.

risposta data 13.02.2013 - 06:03
fonte

Leggi altre domande sui tag