La tua domanda è abbastanza ampia. La risposta è al fine di ragionare sui dati, a meno che non si stia lavorando con stored procedure, qualsiasi applicazione (sbavature o meno) dovrà caricare i dati nella JVM. I dati possono quindi, in un'applicazione Drools, essere inseriti nella memoria di lavoro (si noti che ciò non causa alcuna operazione di copia come funziona con i POJO dell'applicazione standard come fatti) o può essere recuperato su richiesta dalle regole usando il " da "elemento condizionale. Hibernate usa anche POJO e Drools non ha problemi a lavorare con loro.
"sbava non può ragionare su un gran numero di oggetti contemporaneamente"
Non so cosa vuoi dire con questo? quanto è un numero grande? Ho lavorato personalmente con alcune applicazioni di drools che utilizzavano più di un milione di fatti contemporaneamente in ogni istanza della memoria di lavoro, con un tempo di risposta medio per l'esecuzione della regola nell'ordine dei 100 ms. Qui puoi vedere una presentazione di un consulente che ha lavorato a un progetto in cui le regole dovevano interrogare e ragionare su dati storici di oltre 30 milioni di record in tempo reale: http://vimeo.com/27209589. Ha usato un database noSQL per questo.
Le applicazioni di grandi dimensioni richiedono più cura durante la progettazione dell'architettura, naturalmente, ma questo vale sia per Drools che per qualsiasi tecnologia. Se specifichi il tuo caso d'uso, possiamo darti consigli più specifici. Raccomanda anche di controllare la mailing list di Drools perché ci sono un sacco di buoni consigli per la progettazione dell'applicazione.
Spero che aiuti a chiarire.
fonte
2012-04-03 19:16:34
Tipo di collegamento: http://stackoverflow.com/questions/8509993 –
grazie per il link utile – fennou
Vuoi che Drools mantenga i dati, invece di essere completamente in memoria? E per ragionare in modo trasparente su un livello di persistenza e salvare i risultati? – aitchnyu