Qualcuno ha utilizzato correttamente Windows Workflow per un motore di regole / convalida aziendali?


11

Mi chiedevo se qualcuno ha usato con successo Windows Workflow Foundation per un motore BusinessRules / Validation, o se conosci qualche codice di esempio o articoli su questo.

Se l'hai già usato, cosa ne pensi? Come viene confrontato con altri sistemi BusinessRule / Validation?

Sto pensando a regole come

if (A, B, and C) 
    AllowAccess();

O

if (Value between X and Y)
    return true;

Risposte:


6

Ho iniziato a costruire un motore usando il WCF del WWF diversi mesi fa. Non so quanto sia complessa la tua rule base, ma la nostra era piuttosto grande. Quando hai il potenziale per qualcosa come 40.000 filiali, il WWF non è adatto. In alternativa, ho finito per costruire un motore che utilizzava tabelle delle eccezioni logiche in SQL. Le righe memorizzerebbero i valori di base, nonché le stringhe formattate per le formule che variavano tra le eccezioni. Combinata con un linguaggio dinamico (ho usato un motore ironpython incorporato con un wrapper e potevi usare un motore JScript incorporato), la logica poteva essere determinata ad un livello altamente astratto al volo. Sono così contento di aver seguito questa strada.La logica del drag and drop sembra eccezionale, ma gli uomini d'affari non saranno mai in grado di usarla, nonostante il marketing, e rallenterà solo uno sviluppatore di IMHO, diventando rapidamente il nido di un topo .

Aggiornamento: se sei ancora interessato, ecco la guida per principianti . Non è certamente espansivo, ma ha alcuni video decenti. Per quanto riguarda l'installazione, i nostri ingegneri di rete hanno fatto l'installazione per me (politica aziendale per la manutenzione del server, la sicurezza, ecc.), Ma presumibilmente era quasi identico all'impostazione di un servizio WCF di base. Fondamentalmente lanciarlo in una directory virtuale in ISS. Poiché di solito è un processo di lunga durata, prestare particolare attenzione alla gestione della memoria durante la scrittura del servizio. Non smaltire alcune risorse più e più volte per 6 mesi si sommerà davvero e il tuo server non sarà felice.


Come è stato installato? Conoscete qualche articolo online per cominciare o che contiene un codice di esempio?
Rachel,

Grazie. Come sono state le prestazioni nell'esecuzione delle regole aziendali?
Rachel,

E onestamente, sono contrario all'idea di usare il WWF per questo, tuttavia il mio compagno di squadra è tutto per questo, quindi vorrei almeno dargli una possibilità :)
Rachel,

1
@ Rachel- le prestazioni erano ragionevoli (abbastanza veloci da essere eseguibili in un'impostazione dell'interfaccia utente con un po 'di multi-threading se questo significa qualcosa). Non è neanche follemente veloce, ma niente con un servizio WCF distribuito è in fiamme.
Morgan Herlocker,

C'è ancora del materiale disponibile su Internet che dimostra il tuo motore logico e l'approccio IronPython? (Il link "guida per principianti" non funziona più).
Robert Harvey,

1

Sono d'accordo con ironcode. Abbiamo scritto un sistema di tipo diagramma di flusso drag-and-drop un paio d'anni prima che uscisse il nuovo Biztalk (stranamente). L'idea era che i non programmatori potevano programmare e che il sistema sarebbe stato facilmente gestibile e modificabile.

Il risultato: avevi ancora bisogno di "analisti aziendali" che dovevano essere altamente qualificati come un programmatore, ma nella nuova "lingua" del sistema WWF. Quindi non hai guadagnato molto lì. Il debugger non era affatto buono come un vero sistema di sviluppo, quindi ci hai perso. Avevi anche bisogno di programmatori per scrivere i moduli complicati che erano il cuore del trattamento dei dati e della GUI. Anche la scalabilità si è estinta molto rapidamente. Le semplici regole aziendali erano facili da mettere insieme, ma una volta superata una dozzina, eri in spaghetti.

Penso che abbia avuto alcuni vantaggi, ma fondamentalmente sarebbe meglio usare un motore di scripting per collegare moduli scritti su misura.

Sembrava davvero interessante per i tipi di marketing, realizzato per un'ottima demo :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.