Architettura con comandi, livello di servizio e DAO

0

Ho un'applicazione che fondamentalmente deve eseguire una catena di processi. Questi processi agiscono su diversi host UNIX e diversi database. Quindi sono arrivato con la seguente architettura su 3 livelli. Può la domanda è fondamentalmente su come io uso il livello di servizio.

  1. Livello di processo: ogni processo viene suddiviso in unità atomiche e inserisco ciascuna unità in un comando, utilizzando lo schema di comando. Ciò significa che, ad esempio, se devo creare un file, caricarlo su un host ed eseguire un comando unix su questo host, ho tre comandi per farlo.
  2. Livello di servizio: il livello di servizio traduce fondamentalmente una query di database o un comando unix nella sua forma corretta, impostando i parametri e quindi inviarlo al DAO. Nota: A volte devo attendere l'esecuzione di un comando controllando uno stato nel DB dopo l'esecuzione. Lo faccio nel comando, utilizzando una funzione di servizio per eseguire il comando unix e un'altra funzione di servizio per interrogare il database per l'aggiornamento.
  3. Livello DAO, che fondamentalmente fa query, uodati, ecc. Ma considero le classi SSHClients anche come DAO.

Ho diviso il livello di servizio in un servizio per ogni database o host. È una buona idea o sarebbe meglio unirli? Sarebbe meglio avere tutta questa logica nel livello di servizio? Non l'ho fatto, perché i comandi sarebbero in realtà solo una chiamata ai servizi ciascuno, e dal momento che li ho divisi per DB o host, è necessario più di un servizio per un comando.

Grazie per eventuali suggerimenti su come migliorare una simile struttura, in cui gestisci più database.

    
posta Jefe infiltrado 04.05.2017 - 10:23
fonte

0 risposte

Leggi altre domande sui tag