Comprensione del livello di lavoro nell'architettura software

2

Sono nuovo di Java, sono stato principalmente uno scripter. Recentemente ho iniziato a lavorare in un negozio di Java e ho studiato l'architettura. Ho incontrato più di un progetto con una struttura di directory come questa:

| src/
---| api/
---| app/
---| dal/
---| sal/
---| metrics/
---| worker/

API, app, metriche sono piuttosto semplici. L'API è l'interfaccia pubblica, l'app è il prodotto, le metriche sono per la misurazione. I event comprendono il DAL (livello di accesso ai dati?) E SAL (livello di accesso al servizio) in una certa misura, ma non interamente.

Quello che veramente mi sta buttando fuori è questo "Livello Lavoratore". Cosa serve? Ho letto online che Worker Pattern ha lo scopo di distribuire un grande carico attraverso un pool limitato di risorse di calcolo. Eppure, come funziona? In che modo questo livello interagisce con un sistema più grande?

Per favore aiutami a capire.

    
posta dopatraman 29.09.2016 - 20:16
fonte

1 risposta

3

Non riesco a parlare con l'organizzazione del codice sorgente nel tuo progetto. Questa non è una specie di standard ufficiale di cui sono a conoscenza, ma hai molti indizi basati sulla denominazione della cartella. La mia ipotesi è che ognuna di queste cartelle contenga il codice sorgente per un singolo modulo indipendente in un'applicazione più grande. Ogni modulo può essere costruito come Jar, o forse War o Ear che contiene altri jar e librerie di moduli, se necessario.

Il lavoratore può essere per un modulo che segue qualcosa di così sofisticato per un modello di progettazione Master / Operaio o qualcosa di potenzialmente molto più semplice come un programma Batch.

Fonte: link

Questo grafico dà un'idea generale di cosa potrebbe essere questo. Laddove altri aspetti della vostra applicazione possono essere richiesti / basati sulla risposta e di natura transazionale, potrebbe essere necessario eseguire un numero di lavori di lunga durata in cui il feedback dell'utente immediato non è richiesto o necessario. I lavori possono essere suddivisi in Attività e le attività vengono elaborate in Risultati per lavoratori. Un processo principale accoderà le attività da prelevare e recupererà i risultati. Il processo Master può facoltativamente compilare più risultati in nuovi task che devono essere eseguiti. Questo pattern è anche noto come Map / Reduce.

Dal lato semplice, un processo di lavoro potrebbe essere semplicemente un semplice programma Java che viene eseguito per eseguire un lavoro specifico, in cui il risultato del programma potrebbe essere rilevato e utilizzato per un processo batch successivo o utilizzato dagli utenti in un secondo momento rapporti futuri e transazioni con il sistema.

    
risposta data 29.09.2016 - 21:26
fonte