web-dev-qa-db-fra.com

Avantages et inconvénients des Java)

Quels sont les avantages et les inconvénients de l’adoption des Java) JESS et Drools ? Are Y a-t-il d'autres joueurs?

Je comprends que Drools est Open Source et que JESS ne l’est pas, mais comment se comparent-ils dans d’autres domaines tels que la facilité d’utilisation, les performances, le niveau d’intégration avec votre code?

106
brabster

Quels sont les avantages et les inconvénients de l’adoption des moteurs de règles JESS et Drools Java)?

Utilisez un moteur de règles si vous devez séparer les règles métier de la logique d'application. L’article Votre projet a-t-il besoin d’un moteur de règles en donne-t-il un bon exemple:

Par exemple, un système de vitrine typique peut impliquer du code pour calculer une remise:

if (product.quantity > 100 && product.quantity < 500) {
  product.discount = 2;
} else if (product.quantity >= 500 && product.quantity < 2000) {
  product.discount = 5;
} else if (product.quantity >= 2000) {
  product.discount = 10;
}

Un moteur de règles remplace ce qui précède par un code ressemblant à ceci:

ruleEngine.applyRules(product);

A vous de décider si mettre une console d’administration de règles entre les mains de personnes non techniques est une bonne chose ou non :)

Plus de détails dans Devrais-je utiliser un moteur de règles? , Pourquoi utiliser un moteur de règles? , Quelques instructions pour décider d'utiliser ou non un moteur de règles et sur Google .

Y a-t-il d'autres joueurs?

JRules, Corticon (JRules est l’OMI le plus célèbre, mais pas le meilleur).

comment se comparent-ils dans d'autres domaines tels que la facilité d'utilisation, les performances, le niveau d'intégration avec votre code?

Je ne peux pas vous dire précisément, je n’ai qu’une petite expérience (positive) de Drools. Mais vous obtiendrez des commentaires de blogs tels que JBoss Drools vs ILog JRules - une anecdote (assurez-vous de le lire) ou Travailler avec Drools du point de vue de JRules . Je suis sûr que vous pouvez en trouver plus sur Google (mais je voudrais essayer Drools).

127
Pascal Thivent

Nous évaluons maintenant les règles à utiliser avec notre serveur d'applications. Nous avons rencontré OpenRules , qui est facile à intégrer avec Java et, autant que nos tests l'ont montré, assez rapidement. Le principal avantage d'OpenRules par rapport aux autres C'est la façon dont les règles sont modifiées et gérées. Tout se passe dans les tableaux Excel, ce qui est le moyen le plus simple pour les non-programmeurs. Tout le monde, même les non-techniciens, a tout compris à la perfection :-)

Nous avons également intégré bave, mais les règles sont beaucoup plus compliquées à comprendre car c'est une approche plus programmatique. C’est pourquoi nous allons très probablement nous en tenir à OpenRules.

15
Dominik Sandjaja

Nous avions une question similaire avec nous, nous avons finalement ramassé des Drools, il faut utiliser des bave si vous avez les suivants:

  • Une logique métier qui, selon vous, est encombrée de multiples conditions si en raison de la diversité des scénarios
  • Vous aurez une demande croissante d'augmentation de la complexité
  • Les changements de logique métier seraient fréquents (1 à 2 fois par an le serait aussi)
  • Votre serveur a assez de mémoire car c'est un outil gourmand en mémoire, il offre des performances au coût de la mémoire.

Avoir plus de détails à la suite URL

7
Sachin Thapa

Ajoutons simplement que de nombreuses personnes recherchent quelque chose de plus similaire à la gestion du respect de certaines conditions pour activer ou désactiver certaines fonctionnalités d'une application.

Je me suis fatigué de réappliquer le même modèle, encore et encore, partout où je suis allé, alors j'ai décidé de faire un projet OSS pour cela appelé Roolie http://sourceforge.net/projects/roolie/

Je l'ai juste maven-isé et comme il n'y a pas eu de bogue signalé depuis sa sortie en 2010, je l'ai mis à jour vers la version 1.0 sans autre changement que celui requis pour l'héberger sur Maven Central (ce que je suis en train de faire. ).

Fondamentalement, JSR-94 est excessif pour la plupart des choses, et il existe une courbe d'apprentissage et des frais généraux énormes qui vont de pair avec les offres actuelles. C'est bien si c'est ce que vous voulez. Mais si vous souhaitez simplement enchaîner des règles simples écrites en Java avec XML pour gérer vos tests d'état, Roolie est un moyen très rapide de le faire. Aucune dépendance ni courbe d'apprentissage.

3
R K

Lorsque nous avions besoin d'un moteur de règles, nous avons décidé de lancer le nôtre, car ceux disponibles étaient beaucoup trop compliqués pour nos tâches simples. Si vous êtes même expérimenté à distance avec l'analyse d'expressions que les utilisateurs peuvent insérer, ce n'est pas très difficile à faire. Dans notre cas, la plupart des spécifications sont gérées par un XSD et seuls quelques-uns des champs sont analysés.

2
Confusion