Currently I am working on one of the project, which involves such architecture. The application I am working on is "Dynamic Rule Based Survey System", pretty much.. it involves conditioanl branching.
Can anyone help me with the dynamic survey/decision tree system? I am having hard time figuring out "Branching" part. I can also post my current architecture if anyone wants to see it.
First I will suggest PHP -:) Right tool for the problem. I was on a project that had to build the exact same thing you are asking for... hmm who are you working for -:).
But if you have to use Java, which is what we wanted to use at first, here is what I suggest since things have changed since I was on the project which was bout 18 months ago.
First it depends on who will be entering the rules, suits or geeks? If suits then you might want to look into a rules engine (which I have never used) like drools or jess. However one thing that I thought would have worked for us because in our case geek-ish people would be entering the rules, I would suggest building a core Java framework for it and then build the rules via a Java scripting language like Groovy or Jython, etc. This would allow you to have a stable base while modifying the rules part dynamiclly with the scripting piece.
But if you ain't rooted in Java on this consider php, we did and it worked great.... but that was because geek-ish people did the rules entering.