Since Edward called &quot;<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">to get a rise out of other folks&quot;, I think I&#39;ll rise my hand too :-)</span><div>
<font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">To put my words in perspective, I have a lot at stake in jBPM: I&#39;m the senior architect at a consultancy/software house that has one big product in production (4y/man in the making) based on jBPM 3, another implementation ongoing, and several pilot projects with jBPM4 and Drools Flow.</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Regarding the very interesting points raisen by Edward, I&#39;ll add my respectful opinion:</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; ">&gt; 1.) Open persistence</span></span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; "><br></span></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; ">While I agree with Edward on the value of an open relational schema for reporting and similar tools, I think the choosen path is more valuable. If you have needs for an open schema, you&#39;ll almost always better served if you design it yourself. With some interceptors in the right places (jBPM4 seems to have the right hooks to plug them in) you can keep your report schema aligned with the engine&#39;s data, without disturbing it too much. Even jBPM3&#39;s very open and flexible schema is not good enough with some kind of processes (I have some 150+ nodes, 200+ variables, very long financial processes to manage), so you&#39;ll end up with something custom anyway. If you design it flexible enough, however, you could come up with an interesting extension.</span></span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; "><br></span></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; ">&gt; 2.) Isolated or collaborative custom nodes.</span></span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">There already is an interesting practice coming out of Drools Flow about Domain Specific Processes, so Edward&#39;s needs will be served by that tooling, probabily.</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; ">&gt; 3.) Custom Decision Handlers.</span></span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; "><br></span></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Due to point 4, there should be little need for these. If you have a decision to make, is far better to have it documented with a rule instead than in code. I can tolerate MVEL-based decision evaluators, if they don&#39;t get too big. If you have to check with external data and services, you better bring that data in the process first (and deal with what happens if you can&#39;t get it) and decide on it afterwards.</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; "><br></span></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; ">&gt; 4.) Use of rules for decisions.</span></span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; ">Drools wins in this field, hands down. With Guvnor and the BRMS infrastructure, you can have documented, readable and managed (versioned &amp; avalaible in a repository) decision rules/conditions in a language far more flexible and expressive than Java code. Anything you ask for (connection, services) should not be included in the decision conditions or can be brought in with little integration effort.</span></span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-size: 13px; ">&gt; 5.) A roadmap for web services.</span></span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Web services are a separate integration issue. And if what you need is orchestrating webservices, you are better served with BPEL.</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">The focus on BPMN2 is really the top priority for jBPM5: we have real competition on that. Combining BPMN2 and rules may be the best differentiator between jBPM5 and other offerings.</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Just my opinion. Edward&#39;s concerns are just as valid, of course. I&#39;ve just represented another point of view.</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Michele</span></font></div>
<div><br>-- <br>Michele Mauro<br>Senior Architect<br>Visionest S.r.l. - The Business Innovator <a href="http://www.visionest.com">www.visionest.com</a><br>Via G.B. Ricci 6/A<br>35131 Padova - Italy<br>E-mail: <a href="mailto:michele.mauro@visionest.com">michele.mauro@visionest.com</a><br>
Mobile: +39 349 2222319<br>Phone: +39 049 8210229<br>Fax: +39 049 8774924<br>
</div>