Dana Stevens

Ruminations of a software developer.
posts - 8, comments - 370, trackbacks - 0

Saturday, February 21, 2009

Drools on Windows (Part 2 of 22) - Installation

Setup of a Drools development environment is fairly straightforward.  (For a Java app.) For this exercise, I'm going to kick open Microsoft Virtual PC 2007, and start with a new instance of Windows XP Pro SP3. 

First, install Java.  Go to the Get Java link, and install the latest version, which at the time of this writing is Version 6 Update 12.  Depending on your browser settings, you might have to download the file (jxpiinstall-6u12-fcs-bin-b04-windows-i586-17_jan_2009.exe) and run it locally.  Whatever.  The point is to step out and get Java on your machine.

Second, install the Eclipse IDE for Java EE Developers.  It's 163Mb, and I must say a very nice and robust IDE.  It has several nifty features that I wish Visual Studio had. 

Here's something of a surprise.  It's an xcopy deployment.  You download the file, unzip it, and copy it to where you want it to run.  I created a C:\Program Files\Eclipse directory, and placed it there.  I also create a Desktop shortcut and also pin the shortcut to the Start menu. 

The first time you run Eclipse, it asks you to designate a workspace. The workspace is your projects folder.  Then you get the welcome page.  There is an Overview, What's New, Samples, Tutorials, and the Workbench.  The Workbench is, unsurprisingly, where you do the work.

Next, time to get a rules engine.

Drools is part of the jboss 'galaxy of applications'.  jboss is probably most famous for their Application Server, which I hear is quite popular in some development communities.  jboss is a division of Red Hat, and you can see a nice graphical overview of their many projects here.    But I don't need all that stuff, of course, I'm just interested in the free rules engine.  I should note that you can get enterprise-level support agreements from Red Hat for Drools.

Navigate to the Drools download page, and you'll see a few versions of Drools there.  I'm going to download 5.0.0.M5, or Version 5 Milestone 5, and use that.  There are nine files available; I just download them all.  Broadband is awesome.

From drools-5.0.0.M5-eclipse-all, take the four files from the plugins subdirectory, and copy them to the Eclipse plugins folder.  Mine is at C:\Program Files\Eclipse\plugins\.

Next from drools-5.0.0.M5-eclipse-all, take the three subdirectories under features and copy them to the Eclipse features folder.  For me that's C:\Program Files\Eclipse\features\.

Then restart Eclipse, and go to the Workbench.  Right-click in the Project Explorer, and select New... Project.  You'll get a wizard, with the first dialog being a listing of all the possible project types, and Drools should be listed, as below:

Eclipse New Project Wizard

Select the Drools Project type.  Click Next.  Type in a Project name; I used DroolsApp1.  Next.  Next.  Ah, here we are at the Drools Runtime dialog.

There's No Drools Runtime Like My Drools Runtime.

The Drools Runtime can be defined as: the set of jar files necessary to run Drools. Straightforward, right?  Eh, in a word, no.  There are numerous ways you can assemble this set of files, depending on how you intend to configure your production deployment and the specific set of functionality you intend to provide your users.  For example, if you are never going to allow your users to load in rules from Excel spreadsheets, then you don't need jxl-2.4.2. If you are only going to be using the DRL to define rules, and you won't be storing rules in Xml files, then you don't need xml-apis-1.0.b2.  Yeah, baby, that's the love in Javaland.  It's all up to you.  These dependencies are outlined in the README_DEPENDENCIES.txt file.

What I recommend for this exercise is simple, however. 

Go back to the files we downloaded from jboss.org.  We'll be using drools-5.0.0.M5-bin.zip.  Extract that, and place it somewhere on the file system.  I put it at C:\drools-5.0.0.M5-bin\.

Take all the files in C:\drools-5.0.0.M5-bin\lib\*.* and copy them up to C:\drools-5.0.0.M5-bin\*.*.  That'll work for now.

Back to the show...
The first time you create a Drools project in Eclipse, it asks where the Drools runtime is located.  You'll need to provide that. 

In the project wizard, click on the Configure Workspace Settings... link.  It will open the Eclipse preferences pane where you specify the location of the Drools runtime.  You can actually have a listing of multiple runtimes, and select different ones for different projects.  I just have the one runtime.  I name it Drools M5 Runtime and browse to C:\drools-5.0.0.M5-bin.  Check the box.  Finish out of the wizard.

And voila.  You should have DroolsApp1 in your Eclipse Project Explorer. It should look like this:

 Eclipse Package Explorer

Run it by hitting Ctrl+F11, or click the little green right arrow. If it asks, run it as a Java Application.  Or you could click Alt+Shift+X, then J.  Seriously. 

You should see the output in the Console pane at the bottom of your IDE.  If it says "Hello World {CR}{LF} Goodbye cruel world" then congratulations. You are now a rules engine developer.  Immediately raise your rate by 9.35%.

Next post will take a closer look at the elements of this sample app, and postulate how the overall enterprise might look.

Link for future reference: Drools home page.


posted @ Saturday, February 21, 2009 11:17 PM | Feedback (153) | Filed Under [ Drools Java ]

Drools on Windows (Part 1 of 22) - Introduction/Motivation

So I admit to you right from the start: this is something of an odd journey to undertake.  Speaking with colleagues over the years, my own experience is that most developers raise an eyebrow and cast a wary eye toward anything labeled a 'rules engine'.  And in fact, it does take a very specific set of requirements to lead to the conclusion that a rules engine is appropriate. 

This dude and this other dude supply a good summary of why an organization might decide on going with a rules engine.

So once you decide a rules engine is an appropriate solution, and you pencil that into the sketch of the enterprise, what next?

The big dogs in the Business Rules Management System space cost real money.  I'm talking Aston Martin money.  And they're very nice, with bells and whistles galore.  And if your budget can handle it, then you'll want to check them out.  (Here's a hint. There's no shopping cart and checkout page on their web sites.)

But where's the fun in that?  Let's look at the free stuff.  While my career has been solidly grounded in Microsoft technologies, I'm willing to look to open source for solutions where it makes sense. And besides being a very robust and performant ReteOO-based rules engine, Drools happens to be free. 

So this series, over the course of the next 20-something blog posts, will document this entire journey step by step.  It begins with no pre-requisites, and will end with a Drools rules engine as part of a .NET enterprise solution, being called by multiple .NET and Java applications, all while running on the Windows platform.

I think it'll be fun.


posted @ Saturday, February 21, 2009 2:28 AM | Feedback (114) | Filed Under [ Drools Java ]

Powered by:
Powered By Subtext Powered By ASP.NET