Drools 5.x – Sondeo local

En Argentina, he tenido la oportunidad de estar en varios ambientes laborales, donde desde hace casi tres años ya, por lo general he estado relacionado con proyectos de JBoss. Por lo general, los más populares como Hibernate, Application Server, JBoss Portal últimamente, siempre están presente en las empresas. Al menos algo con que compararlos. Si no usas Hibernate, usas Top Link, o tu propio framework ORM. Si no usas el Application Server de JBoss, y estas en el mundo Java tenes siempre las opciones de usar Spring, cada vez mas, Glassfish de Sun, o alguno propietario.

Cambio de paradigma

Por lo general en el mundo Java dentro de la Argentina, más allá de algún framework de presentación un poco innovador, lo demás sigue siendo todo igual.
Ya hace un tiempo, vengo tratando de involucrarme de manera activa a proyectos Open Source de JBoss, ya que veo que JBoss es una empresa donde la participación activa es bienvenida y apreciada. Más allá de la empresa y mis ganas de participar en proyectos Open Source, toda esta experiencia me ha hecho descubrir y dar un paso mas adelante en frameworks que JBoss ha ido sacando adelante y de alguna manera cambian nuestra forma de pensar aplicando algún nuevo paradigma a la programación Orientada a Objetos tal como la conocemos.

El primer paso fue jBPM, que por lo que veo cada día esta mas aceptado en el mercado local. Como podrán haber visto, tengo varios post sobre esto, ya que fue una de las primeras herramientas que me cambio enormemente el punto de vista que tenia sobre como hacer aplicaciones.
Actualmente con mi salto al proyecto Drools y con la aparición de la versión 5.x un salto mas grande se propone. Esto como desarrollador, por supuesto que atrae y despierta interés, mas cuando las bases teóricas del proyecto parecen ser indestructibles.

Siguiendo con mi punto inicial, al estar involucrado fuertemente con el proyecto, queriendo que la gente lo use, contribuyendo lo que mas se pueda con el uso y la difusión del mismo, automáticamente genero un sondeo de como están Drools en mis círculos laborales y en el de los otros profesionales que también conozco.

Sondeo Local

EL sondeo local  me da el siguiente resultado, que es bastante aproximado y a ojo (prometo formalizarlo con algún tipo encuesta) de lo que se ve cuando uno menciona Drools en un ambiente de IT “normal” en Argentina (por supuesto mi limitada Argentina):

1) Primer gran nube: (85% -> +/- 10%)

La gran mayoría no sabe ni que es. En ambientes donde el perfil fuerte es el de un desarrollador Web, la pregunta:  Conocen el proyecto Drools?, esta totalmente fuera de lugar.

2) Segunda pequeña nube: (14% -> +/- 3%)

En ambientes financieros, bancos, empresas de seguro, empresas de salud y sobre todo grandes empresas, tienen el concepto de Regla de Negocio bastante fresco. El problema por lo general son las implementaciones, muchas veces caseras, muchas veces propietarias y las limitaciones que todo esto trae. Mas alla de las limitaciones técnicas, muchas veces el gran problema son las limitaciones teóricas al respecto. Muchas veces estos sistemas de inferencia funcionan como una caja negra, donde sabemos como expresar reglas de negocio y sabemos que esperar de ellas. También por estos ámbitos tan grandes o complejos como puede ser el ámbito financiero o un banco, estos sistemas están muy relacionados con perfiles muy avanzados de IT y de conocimiento del negocio. Con este grupo, se puede hablar perfectamente de Drools, en la versión 4.x

3) Tercera casi invisible nube: (0.9% va en disminución -> +/- 0.1%)

Personas que siguen el proyecto, pero tampoco tienen una visión clara de hacia dónde va y cúal es el cambio fundamental que ocurrió desde la versión 4.x a la 5.x. Hay que recordar que tomo 2 anios en lograr el cambio de versión. Esto es importante, ya que se maduraron cosas fundamentales y el proyecto tomo una nueva dirección, sobre las bases obtenidas con la versión 4.x.

4) Cuarta nube casi imperceptible: (0.1% y va en crecimiento)

Comprenden que la propuesta del proyecto es fuerte, y que realmente plantea un cambio profundo en la manera de pensar a la hora de desarrollar una aplicación.

*) Nota final sobre estos grupos

Como nota final a esta distribución en grupos de personas relacionadas con el framework, me gustaría dejar en claro que todos aquellos que lo han sentido nombrar al framework, tiene una concepción positiva del mismo. También he notado mucha gente demostrar que esta entusiasmada con el proyecto, sin saber que es realmente, ni cuando aplicarlo. Eso sin duda demarca dos grandes aspectos el proyecto:

  • Mucha gente no entiende que es, ni para que sirve. Mucha de esta culpa esta en la documentación y en el enfoque de la misma. Si bien se han publicado libros al respecto (de esta ultima versión de Drools), no parecen ser, ni explicar la solución definitiva para comprender el enfoque de la herramienta.
  • Muchas personas saben que es un buen enfoque, pero no saben como se aplica, ni si hay casos de éxitos a nivel mundial de este proyecto. También es un error de JBoss por no mover esta información de manera mas efectiva. Lo mas sorprendente es que empresas muy grandes a nivel mundial vienen usando y están interesadas en Drools 5.x desde sus versiones muy beta, hace mas de 10 meses.

Conclusión

Estos posts, más allá de ser aburridos, tratan de atacar estos problemas, en castellano para hacer foco en el mercado local y en la importancia que puede llegar a tener que la región latino americana empiece a adoptar estos  frameworks.
El siguiente post estará orientado nuevamente a tratar de introducir los conceptos importantes para la adopción de una herramienta como Drools 5.x. Estos conceptos no son nada del otro mundo, ni tampoco son tan difíciles, es cuestión solamente de entender porque cambiar la forma de pensar y de a poco ir introduciendoce en la teoría detrás del framework.

Para ir cerrando, estaría bueno leer sus porcentajes, y sus sondeos sobre que piensa la gente sobre Drools, cualquiera sea su versión. Nada mejor que discutir y compartir esta información para saber que sabe la gente de Drools en Argentina y alrededores, que le hace falta a la gente saber para poder adoptar una herramienta tan poderosa como Drools, etc.
Espero sus comentarios y sus críticas.

Advertisements

Published by:

salaboy

Open Source Developer. Author of the jBPM, jBPM5, jBPM6 Developer Guide & Mastering Drools Books. Now Principal Software Engineer @ Alfresco, previously Senior Software Developer @ Red Hat / JBoss.

Categories Java9 Comments

9 thoughts on “Drools 5.x – Sondeo local”

  1. Estoy de acuerdo con lo que comentás sala, pero no creo que solo pase con Drools. También se ve esto con Seam, Maven y WebBeans ( me preguntaron también que tiene JBoss AS que no tenga Tomcat, pero bueno… ) que aunque JBoss AS y Seam son mas conocidos porque aplican a problemáticas mas comunes como el desarrollo web, se venden como la panacea y uno cree que el solo hecho de usarlos traerá soluciones mágicas en cajitas de cristal ( fyi: son espejos de colores =P ).
    Las herramientas están cambiando en la manera en las que se usan y por ende en la manera que planteamos la solución al problema, hay que acompañarlas con ojo crítico.
    Igual, no todo es nuevo. Los contextos de Seam es la redefinición de variables globales y bijection es una manera de referenciarlas, JBoss AS es la centralización de lógica de negocio que en algún momento se hacia con el AS400 jeje y Drools… ReteOO es realmente el avance no? No tiende a hacer lo que hace Prolog? Te hablo desde mi ignorancia completa sobre Drools.

    Mi comentario pasa por, en un momento usábamos “V”, todos dijimos vallamos a “O” y ahora “evolucionamos” a W ( la similitud entre V y W es apropósito )

    Buen post man, saludos.

    Like

  2. Hola, es muy importante este trabajo de divulgación que haces, porque es una realidad que existe mucho desconocimiento en el tema, yo soy arquitecto principal de un proyecto en el área de salud y usamos con bastantes resultados muchos de los buenos frameworks que está llevando jboss, seam, jbpm, drools, richfaces, aja4jsf… y en particular drools no has aportado mucho, no solo vínculandolo con jbpm sino para expresar reglas de seguridad y reglas del negocio en general del sistema, el mayor problema que hemos enfrentado es la edición web de las reglas, traté con guvnor pero no me sobreescribe el fichero drl que tengo desplegado dentro de mi ear, los cambios me los guarda como una versión dentro de guvnor que no es visible para mi app, si me pudieras ayudar con esto te lo agradecería..

    Like

  3. Gracias por tu comentario Javi/Seba.
    Vos caerías justo donde se solapan la Primer gran Nube y la segunda. Porque has escuchado sobre el framework, pero no tenes una clara idea ni un background ni teórico, ni empresarial de la misma.

    Con respecto a tu opinión sobre que pasa lo mismo con Seam y JBoss AS, estoy 50% de acuerdo. Justo en los casos que mencionas, es cierto que hay una teoría detras de ambas herramientas/proyectos, sin embargo, esta teoría es bien técnica, por ejemplo saber de HTTP invokers requiere que sepas sobre el protocolo HTTP por ejemplo. En el caso de Seam, es una evolución de dependency injection, sumado a algo de conocimiento sobre paradigmas Web (también técnicos) creo que lo sacas andando (yo sin duda me considero nulo en Seam).

    En Drools además del tema técnico, aparecen muchos temas teóricos que necesitas si o si tener para poder utilizar correctamente el framework. Mucha gente que quiere comenzar a utilizar un proyecto como Drools, se frustra debido a que no tiene conceptos de Sistemas Expertos, Teoría de grafos, etc, como background. Todos estos conceptos son puramente teóricos y no están relacionados con la dimensión técnica de la herramienta. En el caso particular de Drools, se puede ver claramente la implementación de la teoría en el proyecto. Lo cual imposibilita su correcto uso desconociendo la teoría.

    No quiero estirar mucho la respuesta, pero me gustaria dejar en claro algunos puntos que mencionas:
    -> RETEOO no es el avance, sin duda alguna, esta lejos de ser la parte importante de la evolución. Creo que RETEOO puede haberse visto como parte de la evolución en Drools 3.x como mucho
    -> Con respecto a lo de Prolog, teóricamente estarían encasillados en la misma rama de herramientas (pero en la versión de Drools 3.x) debido a su fuerte relación con la Inteligencia Artificial. Actualmente, ya no se pueden comparar por los objetivos de las dos herramientas, de nuevo Drools 5.x esta muy evolucionado si lo queres comparar con Prolog ahora. Mas alla que hay que mencionar que Prolog usa el concepto de Backward chaining y Drools desde siempre usa Forward chaining.
    -> Ojo con decir: “JBoss AS es la centralización de lógica de negocio”, que por esto muchas veces la gente confunde terminos. JBoss AS es una plataforma de integración y debe ser visto como tal.
    Saludos, espero haber aclarado algo.. o al menos tratar de lograr un punto.

    Like

  4. Alejandro Mario, gracias por tu comentario.
    Pregunta, que versión de Drools utilizas? en las ultimas versiones, existe lo que se llama KnowledgeAgents, que se encargan de obtener tus assets (reglas, flows, model, etc) a partir del repositorio que tiene Guvnor.
    Por lo tanto, la idea no seria que empaquetes tus reglas en tu EAR, sino que las tengas en tu repositorio de conocimiento y las obtengas compiladas desde ahi mediante el uso de Agents.
    Espero haber aclarado. Sino espero tu respuesta. Esto depende bastante de la versión que estes usando..
    Saludos

    Like

  5. Ya, si realmente lo que tenía es un error de concepto con respecto a guvnor, uso la versión 4.x que viene empaquetada con seam, aunque había leído que guvnor era para 5.x pensé que tal vez con el war de guvnor desplegado en mi jboss podría editar los .drl que estuvieran allí, pero veo que esa no es la idea, que tengo que tener mis reglas en el repositorio y ver como las consumo desde allí con seam, trabajaré en eso, gracias.

    Like

  6. No creo que Guvnor solo sea para 5, tendrías que revisar la documentación de Drools 4.x y ver como se utilizan los Agents ahí. Seguramente, solo tienes una limitación de funcionalidades con respecto a la versión 5.x. Pero seguro puedes usarlos.
    Saludos

    Like

  7. De paso ya que estamos en el tema de la edición web, sabes de algún editor web para procesos jpdl, o si la jbpm web console que está en desarrollo incorporará algo como esto ??

    Like

  8. El equipo de jBPM esta centrado en el core de la versión 4 de jBPM, y no en el tooling. Sin dudas este tipo de herramientas, tanto jBPM como Drools Ruleflow (no se si la conoces, es parte de Drools 5.x y esta encargada de la parte de BPM tanto como jBPM) estan decidiendo si ir sobre el estándar BPMN2 y por lo tanto los editores de procesos, sean web o no se orientaran a cumplir esta especificación. Lo cual seguramente generara la aparición de herramientas web para el disenio de los procesos de negocios.
    Saludos, espero estar siendo de ayuda.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s