Alla società per cui lavoro, stiamo dividendo la nostra soluzione monolite in una serie di piccoli servizi (SOA).
Lo scopo di questo è di rendere gli sviluppatori che lavorano su ogni blocco di codice (servizio) più indipendente e, nel complesso, di rendere il codice base più gestibile. Quando viene introdotta una modifica del codice, deve essere distribuita solo una parte (vale a dire un intero servizio), invece di dover distribuire tutto . Questo aiuta anche con i test, c'è meno bisogno di testare tutto quando viene distribuito qualcosa.
Molti servizi sono piccoli, quindi vorremmo implementare un numero di questi servizi sullo stesso server delle applicazioni, JBoss 7.1 in questo caso.
Secondo la filosofia SOA, l'indipendenza di ogni servizio e i team che lavorano su di loro è molto importante. Quale sarebbe il modo migliore per organizzare i dati?
- Utilizza uno schema per servizio
- Utilizzeresti un'origine dati per schema nel server delle applicazioni?
- Oppure usa un'origine dati, prefiggendo in modo trasparente tutti i nomi degli oggetti DB con il nome dello schema?
- Utilizzare uno schema condiviso, evitando qualsiasi conflitto di denominazione richiedendo a ciascun servizio di utilizzare un prefisso distinto per tutti gli oggetti DB
- Altre opzioni?
Forse sto pensando che questo sia completamente sbagliato qui? :)
Modifica: Spiegato perché il codice base viene suddiviso da un monolite a servizi più piccoli.