1 Jan 2006 18:54
Re: [drools-user] setting application-data with spring drools
Sujit Pal <sujit.pal <at> comcast.net>
2006-01-01 17:54:02 GMT
2006-01-01 17:54:02 GMT
Hi Michael, I will provide the screen shots for the web interface. Should the article be in HTML format? And should I mail this to you as an attachment? Also, when I did this, I really wanted to focus on the API, the web based GUI was merely sort of an admin interface to build up the rules in the database, so that was kind of an afterthought and hence not very cleanly written. I am thinking of redoing this, and would prefer to provide the screen shots once I am done doing this. Hope that wont be too inconvenient. -sujit Michael Neale wrote: > Thanks Sujit. All we need are some screen shots in action and we can put it > up as an article ! > > Looks good. I can see you have implemented to the SPI, which is fine as it > gives you maximum dynamic ness, and is a valid approach, especially for > python which is always interpreted. > > If people are interested, we can put it on the drools site as a possibly > utility when working with Drools 2 rulebases and python. > > > > > On 12/29/05, Sujit Pal <sujit.pal <at> comcast.net> wrote: > >>Hi, >> >>Thanks for the interest. The code is temporarily available for download >>here (I need the space for some future plans, future == couple weeks >>). If you think its worthwhile, maybe it can find a permanent home on >>the Drools site. And if you do decide to use this as a base for a future >>Drools API, please feel free. >> >>http://home.comcast.net/~sujit.pal/pluto.tar.gz >> >>There is a dbi-doc.txt in wiki format which explains the design, along >>with 2 .png files detailing the class diagram and schema design. >> >>You can build the database using the file generated using ant schema. >>There are 2 .sql files for the schema, one for postgresql and the other >>for mysql. >> >>You can run the junit tests for the API using: >> ant clean compile compile-test test >> >>The web application is designed with resin, but it should work for other >>application servers too. You may need to tweak the deploy target to tell >>it the correct location of your application server. >> >>Comments to some of the posts: >>Michael Neale> We want to store rules atomically, and add in things like >>versioning, access control and so on. Of course, it needs to be generic. >>We need a rule repository API, and then tools that use it (ie the web >>interface can be a component that people can use, or they can use the >>API directly to store rules). >>sujit> The project provides an API, although it is not as comprehensive >>as you expected in your email. For example, version control and access >>control is not covered, although it should be fairly easy to add in. >>However, there are facilities to list all rulesets in the database, load >>a ruleset by name, save/update a ruleset and clone rulesets. The web >>interface uses the same API. >> >>Paul Smith> To have the added flexibility to modify to rules without a >>redeploy would be a big advantage. Not sure how you would source >>control the rule bases if they are all stored in a database but I >>certainly like the idea. >>sujit> Yes, not having to redeploy was one of the considerations. >>Although, looking back on it, I ended up re-inventing some wheels >>already done by the Drools team. Perhaps a better way to do this would >>be to marry the two, ie use the database to store the data, then >>generate a .drl file on demand and run it through the provided Drools API. >> >>I am also looking for feedback on what you think I've done wrong, or >>stuff you think I could have done better. >> >>Thanks >>-sujit >> >>Michael Neale wrote: >> >>>We want to release a rule repository API with the Drools 3.0 version. >>> >>>This is something that could be contributed towards that if you are >> >>happy to >> >>>! >>> >>>The idea is to have a foundation API, which provides all repository >>>functionality, including versioning, searching, checkin/out etc, which >> >>can >> >>>be used to deploy rules into running systems. A web based user interface >> >>is >> >>>one front end to this API, as will be any plug ins - or custom >> >>applications >> >>>for people with special needs for their environment. It sounds like you >> >>are >> >>>a lot of the way there. >>> >>>I was initially trying the Java Content Repository API, but decided it >> >>will >> >>>be easier to use hibernate directly - out of the box we can include >> >>HSQLDB >> >>>(so people can get up and running without a seperate database server) >> >>but of >> >>>course MySQL, Oracle and SQL Server, DB etc can be supported thanks to >>>hibernate. >>> >>>Please do share it ! >>> >>> >>>Michael >>>JBoss Inc. >>> >>> >>>On 12/28/05, Paul Smith <paul.t.smith <at> gmail.com> wrote: >>> >>> >>>>Yes, I'd certainly be interested in taking a look too. I'm keen to do >>>>some proof of concept work in the near future using drools in our EAM >>>>system. To have the added flexibility to modify to rules without a >>>>redeploy would be a big advantage. Not sure how you would source >>>>control the rule bases if they are all stored in a database but I >>>>certainly like the idea. >>>> >>>>On 12/28/05, smakos499 <at> aim.com <smakos499 <at> aim.com> wrote: >>>> >>>> >>>>>I'd definately be interested in looking at your code. >>>>> >>>>>Scott >>>>> >>>>>-----Original Message----- >>>>>From: Sujit Pal <sujit.pal <at> comcast.net> >>>>>To: user <at> drools.codehaus.org >>>>>Sent: Tue, 27 Dec 2005 09:16:40 -0800 >>>>>Subject: Re: [drools-user] setting application-data with spring drools >>>>> >>>>> >>>>>Hi, >>>>> >>>>>I've just finished building a small proof-of-concept that uses a >>>> >>>>database to store rules and provides a simplified interface to the >> >>Drools >> >>>>engine to the client. The client calls named rulesets using the >> >>interface >> >>>>and the rules are loaded from the database. >>>> >>>> >>>>>There is also a web interface to maintain the rules. The rulesets are >>>> >>>>stored atomically, ie as normalized data instead of as a .drl file (CLOB >>>>data). The web interface is built using Spring MVC. The database object >>>>abstraction is built using Hibernate. The body of the conditions and >>>>consequences are scriptable using Python or extendable using small Java >>>>classes. I did the Petstore example using both approaches to illustrate >> >>the >> >>>>usage. >>>> >>>> >>>>>If there is interest in this sort of thing, please let me know. I would >>>> >>>>be happy to write up this stuff with the code, perhaps in the user >> >>stories >> >>>>section of the drools site. >>>> >>>> >>>>>Thanks >>>>>Sujit >>>>> >>>>>Hamu, Dave wrote: >>>>> >>>>> >>>>>>Mark & Drools Community: >>>>>> >>>>>> >>>>>>>I am interested in the question of using rules engines (Drools, in >>>>>> >>>>>>particular, with frameworks such as the Spring Framework), which >>>>>>Leonardo discussed in his e-mail (below). Can someone elaborate more >>>>>>fully on the reason that Drools or other rules engines cannot be used >>>>>>within the Spring framework. I understand that a key feature of Spring >>>>>>is that it is a pojo framework and that it uses the "Hollywood >>>>>>Principle". I have not had any hands-on experience with Spring, but >>>>>>there are many aspects of the framework that I have gleaned from my >>>>>>readings that make Spring very attractive to me. >>>>>> >>>>>> >>>>>>>I have long been critical of Struts, because it is needlessly >>>> >>>>complex >>>> >>>> >>>>>>and unfortunately so heavily reliant on EJB's. In contrast, I favor >>>> >>>>the >>>> >>>> >>>>>>concepts advocated by Rod Johnson which are exploited in Spring. I >>>>>>realize that that this is a bit tangential from the Drools community's >>>>>>focus, however, there is an inherent elegance in pairing a rules >>>> >>>>engine >>>> >>>> >>>>>>with an application framework. > > So, I would like to encourage some >>>> >>>>discussion on the following topics: >>>> >>>> >>>>>>>1) Practical approaches for using Drools with Application Frameworks >>>>>> >>>>>>2) Problems with using Drools with Application Frameworks >>>>>>3) Using Drools along with Workflow and/or BPM (some ideas about where >>>>>>Drools is going as part of the JBOSS stack would be beneficial) >>>>>> >>>>>> >>>>>>>I am working with a very novel application framework concept that is >>>> >>>>an >>>> >>>> >>>>>>original product within the team that I work with at Avnet. The >>>>>>framework is a command-controller/front-controller framework based on >>>>>>concepts published on sun.java.com. This framework has some >>>> >>>>interesting >>>> >>>> >>>>>>features: >>>>>> >>>>>> >>>>>>>1) It is readily extended to invoke a rules engine on demand (we >>>> >>>>have >>>> >>>> >>>>>>not exploited this yet, but we have some prototype code for this) >>>>>>2) It is easy to implement workflow within the framework (and we have >>>>>>exploited this to a limited extent) >>>>>> >>>>>> >>>>>>>The chief problem with our in-house designed framework is that it is >>>> >>>>not >>>> >>>> >>>>>>an open-source product and not supported by vast number of developers >>>>>>(just our team). On the one hand, it would be interesting to see our >>>>>>framework adopted by a community of developers (although this may not >>>> >>>>be >>>> >>>> >>>>>>practical), or alternately, it might be beneficial for us to replace >>>> >>>>the >>>> >>>> >>>>>>our core framework with a framework that is widely supported in the >>>> >>>>Java >>>> >>>> >>>>>>Community. >>>>>> >>>>>> >>>>>>>Thanks in advance for your thoughts on Drools and Application >>>>>> >>>>>>Frameworks. >>>>>> >>>>>> >>>>>>>Happy Holidays! >>>>>>>- Dave >>>>>>> >>>>>>> >>>>>>>>-----Original Message----- >>>>>> >>>>>>From: Mark Proctor [mailto:mproctor <at> codehaus.org] > Sent: Friday, >>>> >>>>December 23, 2005 7:25 PM >>>> >>>> >>>>>>To: user <at> drools.codehaus.org >>>>>>Subject: Re: [drools-user] setting application-data with spring drools >>>>>> >>>>>> >>>>>>>It is simply not possible to support the power of a rule engines in >>>> >>>>the >>>> >>>> >>>>>>current pojo/spring approach. Drools 2.5 now compiles rules down to >>>>>>pojos, it is possible to reference these pojo's interfaces and unit >>>> >>>>test >>>> >>>> >>>>>>those - we produce the a src jar for these rules so you can also debug >>>>>>them. >>>>>> >>>>>> >>>>>>>Mark >>>>>> >>>>>>Leonardo Susatyo wrote: >>>>>> >>>>>> >>>>>>>>Is it true that Spring for Drools will not be supported in the >>>> >>>>future? >>>> >>>> >>>>>>>>>If so, what will be the alternative b/c i kind of like the spring >>>>>> >>>>>>approach for easier unit testing >>>>>> >>>>>> >>>>>>>thanks >>>>>>> >>>>>>>--- Geoffrey Wiseman <geoffrey.wiseman <at> gmail.com> >>>>>>>wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>>>On 12/20/05, Leonardo Susatyo <lsusatyo <at> yahoo.com> >>>>>>>>wrote: >>>>>>>> >>>>>>>> >>>>>>>>>Could anyone please tell me how can I define application-data in >>>>>>>> >>>>>>>>rulebase if i'm using drools-spring? >>>>>>>> >>>>>>>>My knowledge in this area is pretty dated; when we last tried to do >>>>>>> >>>>>>>that, we were on 2.0, possibly not even final, and we couldn't do it; >>>>>>> >>>>>>> >>>>>>>>>>application data didn't seem to be working with annotated rules, >>>> >>>>and >>>it was suggested that injection of rules via Spring was a >> >>preferred >> >>>>>>>route for this approach; we ended up moving to that, althogh there >>>>> >>>>>are >>>> >>>>instances where this is not very well suited. >>>> >>>> >>>>>>>>For instance, if your rules are meant to be parameterized by a >>>>>>> >>>>>>>processing data, this is something that can be passed in on a >>>>>>>per-invocation basis with Application Data but cannot easily be >>>>>>>injected. >>>>>>> >>>>>>> >>>>>>>>I can't speak to whether or not this has been resolved, and I should >>>>>>> >>>>>>>point out (before Mark does) that Spring/Drools is deprecated in the >>>>>>>Drools 3.0line, so that's something to consider. >>>>>>> >>>>>>> >>>>>>>>ps: i saw a defect DROOLS 322, is it related? >>>>>>>> >>>>>>>> >>>>>>>>Codehaus Jira is down, or at least not responding to my attempts to >>>>>>> >>>>>>>access it at the moment, so I can't say. >>>>>>> >>>>>>> >>>>>>>>-- >>>>>>>>Geoffrey Wiseman >>>>>>>> >>>>>>>> >>>>>>> >>>>>>>>>__________________________________________ >>>>>>> >>>>>>>Yahoo! DSL -- Something to write home about. >>Just $16.99/mo. or >>>> >>>>less. >>dsl.yahoo.com >>>> >>>> >>>>>>> >>>>>________________________________________________________________________ >>>>>Check Out the new free AIM(R) Mail -- 2 GB of storage and >>>> >>>>industry-leading spam and email virus protection. >>>> >>>> >
). If you think its worthwhile, maybe it can find a permanent home on
>>the Drools site. And if you do decide to use this as a base for a future
>>Drools API, please feel free.
>>
>>
RSS Feed