Domanda

Sto scrivendo una presentazione sulla tecnologia del motore di regole, in particolare JBoss Drools.

Quali sono alcuni dei 'miti' sui motori di regole.

Una mi viene in mente è che permette agli utenti aziendali di controllare il motore di regole, credo che sia possibile, ma richiede un controllo e l'istruzione -. E non tutti gli utenti aziendali sono in grado di farlo

E 'd'accordo / disaccordo? Qualcuno altro ha qualche idea?

Buon per rilasciare le mie 'scoperte' finali sotto scorta ...

È stato utile?

Soluzione

Non so su miti, ma sono d'accordo che avere gli uomini d'affari mantengono regole non è uno slam dunk.

Credo che aspettavo gente d'affari di avere la pazienza e anale attenzione ai dettagli di ritenzione richiesto di fare di IT lavoro è una fantasia. E 'stato in gioco fin da lingue 3G (approcci grafici alla programmazione) è stato offerto come un modo per ottenere segretari a scrivere il codice in modo che i programmatori potrebbero essere tutti licenziati.

mi piacerebbe sottolineare che, come la dimensione del set di regole aumenta, la possibilità di garantire che sia corretto e auto-consistente va giù. Se il set di regole ha migliaia di regole sarà difficile prova.

A proposito del quale, esplosione combinatoria di combinazioni renderà difficile per testare un motore di regole.

motori regole sono la tecnologia formidabile, ma attenzione.

Altri suggerimenti

sbava In realtà, avendo usato pesantemente, non sono d'accordo con voi sul vostro punto circa gli utenti avere la possibilità di fare cose facilmente, penso che sia relativamente banale per fornire agli utenti una semplice interfaccia per generare regole potenti in modo dinamico.

Un'avrei sicuramente aggiungere alla lista è:

  

Mito: i motori di regole sono lenti

!

Non è così, ancora una volta, ho spinto addirittura migliaia di eventi al secondo attraverso sbava abbastanza facilmente.

Un altro che ho assolutamente detestato era:

  

Mito:. E 'il peso troppo pesante e complessa per l'uso

Sciocchezze, la sintassi è banale e con poche righe di Java, si può fare alcune cose davvero funky! Scusate se questo sembra essere uno sproloquio, ha avuto mesi di questo schifo in un precedente datore di lavoro, come ho wad cercando di introdurre questa tecnologia!

Miti ...
1 utenti / business può:
regole autore
distribuirli
testarli
eseguirli
Whithout l'aiuto di IT ... io ho dato un corso di formazione per un cliente che è stato effettivamente pensando che fosse vero, perché il venditore ha detto così ... ah ah ah hanno reso il mio giorno / Mese / Anno !!!

Si può seriamente pensare a una società che prenderà il rischio di implementare un servizio nella parte posteriore del team IT ?? nessun modo!
Avete bisogno di sicurezza, nonché per evitare che me scrivere una regola affermando:
se il nome del cliente è "Damien" poi sconto del 100% -! bambino Groovy

L'architettura di un progetto non può essere fatto da utenti non tecnici

2 / È possibile gestire progetti regola facilmente senza doversi preoccupare di nulla.
Non v'è limite del numero di regole si può affrontare. In teoria si potrebbe avere il numero di regole che vogliono, ma questo non è del tutto corretto. JRules interrompere la sincronizzazione regole tra Eclipse e RTS da circa 3.000 norme. Ci vorranno sempre se si dispone di un progetto con 100.000 regole tutto in Rete. Costruire l'albero ci vorrà molto tempo. Anche in modalità sequenziale ci vuole molto tempo per procedere.
Non è possibile utilizzare un repository regola come la cartella "My Documents" e continuare ad aggiungere regole.

3 utenti / commerciali possono scrivere tutti i tipi di regole senza alcuna formazione.
Cose diverse:
a / ordine di condizioni può influire sulle prestazioni.
b / alcune regole sono complesse e hanno bisogno di una buona comprensione della lingua
c / l'algoritmo utilizzato può influire il risultato dell'esecuzione
d / una singola regola scritto male può moltiplicare il tempo di esecuzione dal n.
Ho lavorato su un progetto in cui solo l'1 regola era responsabile di alcuni timeout casuali.
e / Qualche problema complesso può essere esprimere in una regola.
Questo problema è risolvere in una regola e ha una conseguenza:
Ci sono quattro giocatori di golf in piedi a un tè, in una linea da sinistra a destra.
- Il golfista a destra immediata del Fred indossa pantaloni blu
- Joe è secondo in linea
- Bob indossa pantaloni a scacchi
- Tom non è in posizione di uno o quattro, e lui non indossa i pantaloni arancioni
BTW: Questo è un esempio JBoss.
Come può un utente business fare questo?

motore 4 / Rule può fare a ritroso il concatenamento
Credo JBoss dicono che si può, ma non sono sicuro di questo. Blaze e JRules non possono.

5 / Non si ha bisogno di alcun linguaggio di programmazione per le regole di scrittura.
Corretto, ma avrete bisogno di alcune di eseguire le regole. A meno che non si sta utilizzando un semplice XSD come Object Model. Ma la vostra decisione Servizio non farà più di tanto cosa intelligente.

6 / E 'più lento di JAVA
Naturalmente ma utilizzando BRMS si sta esternalizzando la logica di business in modo che abbia un costo.
Esattamente come quando si externalize dati. La chiamata di database ha un costo.
Ho inviato 5.000 oggetti nella memoria di lavoro di JRules con un progetto contenente 4 regole fittizie, che chiedevano l'un l'altro ... Performance scopo di test
Risultato: 19 Milioni regole eseguiti in 75 secondi. Fai i tuoi calcoli ... non è così lento.

7 / si può fare nulla in una regola
Non fare chiamata di database in una regola (specialmente nelle condizioni). Utilizzando Rete, in teoria, una regola potrebbe "test" la condizione per trovare risultato corrispondenti nelle migliaia memoria del tempo.
Nessuno desidera chiamare un database che molto in un'applicazione.

Speranza che aiuta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top