<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.athico.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5869426</atom:id><lastBuildDate>Fri, 24 May 2013 14:26:55 +0000</lastBuildDate><category>Performance</category><category>compilers</category><category>Conflict Resolution</category><category>Probability</category><category>robot</category><category>use case</category><category>community</category><category>competition</category><category>drools webinar</category><category>cookbook</category><category>uncertainty</category><category>aires</category><category>service repository</category><category>Simulation and Testing</category><category>Job</category><category>Testing</category><category>medical</category><category>Time-Sensitive</category><category>GSoC</category><category>configuration</category><category>AI</category><category>javapolis</category><category>video</category><category>developer</category><category>Business Processes</category><category>Ad-Hoc</category><category>Expert Systems</category><category>RuleML</category><category>variables</category><category>Business Rules</category><category>Domain Specific Languages</category><category>contribution</category><category>workshop</category><category>infoQ</category><category>java</category><category>JBoss Rules</category><category>webinar</category><category>example</category><category>Mind Map</category><category>Rules Engine</category><category>BAM</category><category>DotNet</category><category>Rules</category><category>Business Rules Forum</category><category>Fuzzy</category><category>decision tables</category><category>Boot Camp</category><category>Drools Boot Camp</category><category>interview</category><category>Eclipse</category><category>MicroContainer</category><category>Stream</category><category>Barcelona</category><category>ksession</category><category>bpmn2</category><category>designer</category><category>upgrade tool</category><category>Brazilian</category><category>milestone</category><category>BOF</category><category>Seam</category><category>lists</category><category>quote</category><category>JDT</category><category>shadow facts</category><category>event</category><category>ORF 2008</category><category>gsoc2012</category><category>SOA</category><category>demo</category><category>Smooks</category><category>GUI</category><category>interface</category><category>grammar</category><category>tasks</category><category>Drools Expert</category><category>sequential</category><category>announcement</category><category>Drools</category><category>user interface</category><category>buenos</category><category>ESP</category><category>Natural Language</category><category>Camel</category><category>SSL</category><category>london</category><category>jBPM5</category><category>JSON</category><category>jbpm6</category><category>Drools Flow</category><category>RuleML 2008</category><category>hardware</category><category>Rete</category><category>Production Rules Systems</category><category>DRL</category><category>robotics</category><category>engine</category><category>remote</category><category>brms insurance demo standalone</category><category>traveling tournament</category><category>FactTemplate</category><category>BRMS</category><category>MVEL</category><category>Rule Flow</category><category>Open Source</category><category>electronics</category><category>argentina</category><category>builder</category><category>IKVM</category><category>task</category><category>BPMN</category><category>source code</category><category>standards</category><category>machine learning</category><category>image processing</category><category>modify block</category><category>Backward Chaining.</category><category>Monitoring</category><category>actuators</category><category>management</category><category>human</category><category>GIS</category><category>Drools Fusion</category><category>accumulate</category><category>Codehaus</category><category>bpm</category><category>IntelliFest</category><category>kbase</category><category>JUG</category><category>Rule Authoring</category><category>Negation</category><category>Business Rules Governance</category><category>DynaBeans</category><category>junit</category><category>JFDI</category><category>Rule Engines</category><category>KAMS</category><category>dynamically generated classes</category><category>Form Builder</category><category>ORF</category><category>shadow proxies</category><category>syntax</category><category>BRMS Guvnor Drools</category><category>ANTLR</category><category>Service Manager</category><category>FedEx</category><category>DSL</category><category>Clips</category><category>planner</category><category>traits</category><category>business process</category><category>examination</category><category>search space</category><category>Janino</category><category>business</category><category>kruntime</category><category>MySQL</category><category>semantic web</category><category>Web Services</category><category>jBPM</category><category>constraint programming</category><category>generated classes</category><category>Research Network</category><category>algorithm</category><category>cloud</category><category>Life Cycle</category><category>MISMO</category><category>BPEL</category><category>user</category><category>LDAP</category><category>jBPM5 webinar</category><category>Templates</category><category>rule</category><category>case management</category><category>android</category><category>integration</category><category>persistence</category><category>RIF</category><category>Logic Operators</category><category>relational programming</category><category>Debug</category><category>Jess</category><category>release</category><category>extensibility</category><category>Atom</category><category>Analytics</category><category>Portuguese</category><category>Meetups</category><category>Synasc</category><category>drools puzzle</category><category>Computer Games</category><category>Progress</category><category>JavaOne</category><category>accumulate function</category><category>Programming</category><category>Healthcare</category><category>October Rules Fest</category><category>form</category><category>Guvnor</category><category>SwitchYard</category><category>processes</category><category>infinispan</category><category>console</category><category>WordNet</category><category>SBVR</category><category>sensors</category><category>motors</category><category>devoxx</category><category>one</category><category>Drools Chance</category><category>plug tree</category><category>jbpm-console-ng</category><category>Presentation</category><category>Spring</category><category>heal</category><category>salaboy</category><category>Guice</category><category>solver</category><category>UberFire</category><category>Savvion</category><category>http://www.blogger.com/img/blank.gif</category><category>guide</category><category>OSGi</category><category>REST</category><category>patterns</category><category>process</category><category>DSL regexp antlr</category><category>project proposals</category><category>Forward  Chaining</category><category>declarative programming</category><category>videos</category><category>CEP</category><category>book</category><category>API</category><category>brms ajax web</category><category>combinatorial optimization</category><category>tests</category><category>computer vision</category><category>runtime</category><category>kie</category><category>functional programming</category><category>Time</category><category>parser</category><category>droos ide update-site downloads</category><category>expressiveness</category><title>Drools &amp; jBPM</title><description>All things Artificial Intelligence related: Rules, Processes, Events, Agents, Planning, Ontologies and more :)</description><link>http://blog.athico.com/</link><managingEditor>noreply@blogger.com (Mark Proctor)</managingEditor><generator>Blogger</generator><openSearch:totalResults>799</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.athico.com/DroolsRSS" /><feedburner:info uri="droolsrss" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>DroolsRSS</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-8712363566400673937</guid><pubDate>Fri, 24 May 2013 07:40:00 +0000</pubDate><atom:updated>2013-05-24T08:40:09.759+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>Backward Chaining and Reactive Transitive Closures with Drools</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I've made a small tutorial on Backward Chaining and Reactive Transitive Closures with Drools.&lt;br /&gt;
&lt;span style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;"&gt;Don't forget to turn on Youtube HD settings:&lt;/span&gt;&lt;br /&gt;
&lt;a href="https://www.youtube.com/watch?v=fCjIRVSRFvA"&gt;https://www.youtube.com/watch?v=fCjIRVSRFvA&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://img.youtube.com/vi/fCjIRVSRFvA/0.jpg"&gt;&lt;param name="movie" value="http://youtube.googleapis.com/v/fCjIRVSRFvA&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://youtube.googleapis.com/v/fCjIRVSRFvA&amp;source=uds" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=BU9GjNBdZfs:CzVaJyfjS7M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=BU9GjNBdZfs:CzVaJyfjS7M:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=BU9GjNBdZfs:CzVaJyfjS7M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=BU9GjNBdZfs:CzVaJyfjS7M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=BU9GjNBdZfs:CzVaJyfjS7M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=BU9GjNBdZfs:CzVaJyfjS7M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=BU9GjNBdZfs:CzVaJyfjS7M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=BU9GjNBdZfs:CzVaJyfjS7M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=BU9GjNBdZfs:CzVaJyfjS7M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=BU9GjNBdZfs:CzVaJyfjS7M:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/BU9GjNBdZfs" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/BU9GjNBdZfs/backward-chaining-and-reactive.html</link><author>noreply@blogger.com (Mark Proctor)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2013/05/backward-chaining-and-reactive.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-7452477246743357424</guid><pubDate>Fri, 24 May 2013 05:46:00 +0000</pubDate><atom:updated>2013-05-24T06:46:59.379+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">UberFire</category><category domain="http://www.blogger.com/atom/ns#">Guvnor</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>Drools and Guvnor Beta3 Video</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I've made a small video to show the UI improvements for Drools and Guvnor. It's recorded in 1024x768, so it's slightly more cramped, people typically have their UI's open larger than that these days. Don't forget to turn on Youtube HD settings:&lt;br /&gt;
&lt;a href="https://www.youtube.com/watch?v=ckAznbOOV-4"&gt;https://www.youtube.com/watch?v=ckAznbOOV-4&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://img.youtube.com/vi/ckAznbOOV-4/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://youtube.googleapis.com/v/ckAznbOOV-4&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://youtube.googleapis.com/v/ckAznbOOV-4&amp;source=uds" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=an7y5e1yxIo:tfdJa47jeMY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=an7y5e1yxIo:tfdJa47jeMY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=an7y5e1yxIo:tfdJa47jeMY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=an7y5e1yxIo:tfdJa47jeMY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=an7y5e1yxIo:tfdJa47jeMY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=an7y5e1yxIo:tfdJa47jeMY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=an7y5e1yxIo:tfdJa47jeMY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=an7y5e1yxIo:tfdJa47jeMY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=an7y5e1yxIo:tfdJa47jeMY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=an7y5e1yxIo:tfdJa47jeMY:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/an7y5e1yxIo" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/an7y5e1yxIo/drools-and-guvnor-beta3-video.html</link><author>noreply@blogger.com (Mark Proctor)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2013/05/drools-and-guvnor-beta3-video.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-6845234399281031789</guid><pubDate>Tue, 14 May 2013 19:35:00 +0000</pubDate><atom:updated>2013-05-14T20:35:58.674+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">persistence</category><category domain="http://www.blogger.com/atom/ns#">jBPM</category><category domain="http://www.blogger.com/atom/ns#">infinispan</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>Creating your own Drools and jBPM Persistence with Infinispan</title><description>&lt;b id="docs-internal-guid-3a9f8c2e-a487-02da-c9b0-defdd2392109" style="font-weight: normal;"&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;b id="docs-internal-guid-3a9f8c2e-a487-02da-c9b0-defdd2392109" style="font-weight: normal;"&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Original post &lt;a href="http://marianbuenosayres.wordpress.com/2013/05/14/creating-your-own-drools-and-jbpm-persistence-infinispan/"&gt;here&lt;/a&gt; by &lt;a href="https://github.com/marianbuenosayres"&gt;me&lt;/a&gt;: &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;b id="docs-internal-guid-3a9f8c2e-a487-02da-c9b0-defdd2392109" style="font-weight: normal;"&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;b id="docs-internal-guid-3a9f8c2e-a487-02da-c9b0-defdd2392109" style="font-weight: normal;"&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Hello and welcome to a post in which I intend to show you how to create your own implementation of drools and jBPM persistence. I’ve worked on an infinispan based persistence scheme for drools objects and I learnt a lot in the process. It’s my intention to give you a few pointers if you wish to do something of the sort.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;b id="docs-internal-guid-3a9f8c2e-a487-02da-c9b0-defdd2392109" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Why?&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;If you’re reading this, you probably already have a “why” to redefine the persistence scheme that drools uses, but it’s good to go over some good reasons to do something like this. The most important thing is that you might consider the JPA persistence scheme designed for drools doesn’t meet your needs for one or more reasons. Some of the most common I’ve found are these:&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;The given model is not enough for my design: &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Current objects created to persist the drools components (sessions, process instances, work items and so on) currently are as small as possible to allow the best performance on the database, and most of the operational data is stored in byte arrays mapped to blob objects. This scheme is enough for the drools and jBPM runtime to function, but it might not be enough for your domain. You might want to keep the runtime information in a scheme that is easier to query from outside tools, and to do that you would need to enrich the data model, and even create one of your own.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;The persistence I’m using is not compatible with JPA:&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; There are a lot of persistence implementations out there that no longer use databases as we once knew (distributed caches, key value storages, NoSQL databases) and the model usually needs extra mappings and special treatment when persisting in such storages. To do so, sometimes JPA is not our cup of tea&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;I need to load special entities from different sources every time a drools component is loaded:&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; When we have complex objects and/or external databases, sometimes we want new models to relate in a special way to the objects we have. Maybe we want to make sure our sessions are binded to our model in a special way because it makes sense to our business model. To do so we would have to alter the model&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;How?&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;In order to make our own persistence scheme for our sessions, we need to understand clearly how the JPA scheme is built, to use it as a template to build our own. This class diagram shows how the JPA persistence scheme for the knowledge session is implemented:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;img height="837px;" src="https://lh6.googleusercontent.com/9j4aPgA_GfVU8eky7xtQTL_Eb5PTbbwdpWjr6K67qALoxZbSWF5kM6QehIIvSp-nbpvc2CB71Eyzx3dWiyAjJGnFkTevprz9ZQL92tAI7WDZa-CG_rQ0HtAVPQ" width="692px;" /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Looks complicated, right? Don’t worry. We’ll go step by step to understand how it works.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;First of all, you can see that we have two implementations of the &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;StatefulKnowledgeSession&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; (or &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;KieSession&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;, if you’re using Drools 6). The one that does all the “drools magic” is &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;StatefulKnoweldgeSessionImpl&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;, and the one we will be using is &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;CommandBasedStatefulKnowledgeSession&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;. It has nothing to do with persistence, but it helps a lot with it by surrounding every method call with a command object and deriving its execution to a command service. So, for example, if you call the fireAllRules method to this type of session, it will create a FireAllRulesCommand object and give it to another class to execute.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;This command based implementation allows us to do exactly the thing we need to implement persistence on a drools environment: It lets us implement actions before and after every method call done to the session. That’s where the &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;SingleSessionCommandService&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; class comes in handy: This command service contains a StatefulKnowledgeSessionImpl and a PersistenceContextManager. Every time a command has to be executed, this class creates or loads a SessionInfo object and tells the persistence context to save it with all the state of the StatefulKnowledgeSessionImpl. &lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;That’s the most complicated part: the one that implements the session persistence. Persistence of pretty much everything else is done easily through a set of given interfaces that provide methods to implement how to load everything else related to a session (process instances, work items and signals). As long as you create a proper manager and its factory, you can delegate on them to store anything to anywhere (or do anything you want, for that matter).&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;So, after seeing all the components, it’s a good time to start thinking of how to create our own implementation. For this example, we’ve created an &lt;/span&gt;&lt;a href="http://www.jboss.org/infinispan/" style="text-decoration: none;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Infinispan&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; based persistence scheme and we will show you all the steps we took to do it.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Step 1: (re)define the model&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Most of the time when we want to persist drools objects in our way, we might want to do it with a gist of your own. Even if we don’t wish to change the model, we might need to add special annotations to the model to work with your storage framework. Another reason might be that you want to store all facts in a special way to cross-query them with some other legacy system. You can literally do this redefinition any way you want, as long as you understand that whatever model you create, the persistence scheme will serialize and deserialize it every time you call a method on the knowledge session, so always try to keep it simple.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Here’s the model we created for this case:&lt;/span&gt;&lt;img height="318px;" src="https://lh5.googleusercontent.com/VV6kcyTwrapo9BPVvKkns6CprcGi9tIW9urUx8dcAoPu9vuXAk6wuyItclyUr5V8kjCU-LFUrtk3guP1uUAFiVv9vCZqDq8Ac1Y77boGpaXp5x5K-rbsRPjhMw" width="668px;" /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Nothing too fancy, just a flattened model for all things drools related. We weren’t too imaginative with this model, because we just wanted to show you that you can change it if you want to.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;One thing to notice in this model is that we are still saving all the internal data of these objects pretty much the same way as it is stored for the JPA persistence. The only difference is that &amp;nbsp;JPA stores it in a Blob, and we store it in a Base64 encrypted string. If you wish to change the way that byte array is generated and read, you have to create your own implementations of these interfaces:&lt;/span&gt;&lt;/div&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;org.kie.api.marshalling.Marshaller&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; for knowledge sessions&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;org.jbpm.marshalling.impl.ProcessInstanceMarshaller&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; for process instances&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;But providing an example of that would take way too much time and perhaps even a whole book to explain, so we’ll skip it :)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Step 2: Implementing the PersistenceContext&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;For some cases, redefining the PersistenceContext and the PersistenceContextManager would be enough to implement all your persistence requirements. The PersistenceContext is an object in charge of persisting work items and session objects by implementing methods to persist them, query them by ID and removing them from a particular storage implementation. The PersistenceContextManager is in charge of creating the PersistenceContext, either once for all the application or on a per-command basis. The comand service will use it to persist the session and its objects when needed.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;In our case we implemented a PersistenceContext and a PersistenceContextManager using an Infinispan cache as storage. The different PersistenceContextManager instances will have access to all configuration objects through the Environment variable. We’ve used the already defined keys in Environment to store our Infinispan related objects:&lt;/span&gt;&lt;/div&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;EnvironmentName.ENTITY_MANAGER_FACTORY is used to store an Infinispan based CacheManager&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;EnvironmentName.APP_SCOPED_ENTITY_MANAGER and EnvironmentName.CMD_SCOPED_ENTITY_MANAGER will point to an Infinispan Cache object.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;You can see that code here:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;img height="564px;" src="https://lh6.googleusercontent.com/ODecbpvI3hsre6rkty38DxKNnn6kobYoe0bMtKzkQnNNQs7-qQo_IiFDp2nGMa_ehrqLvJwbYUmc39B8i7O_iNjhON-aJeO1qJBYF7mvnwB4fb-nMNslBYU02Q" width="651px;" /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;At this point we have some very important steps to redefining our drools persistence. Now we need to know how to configure our knowledge sessions to work with this components.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="color: red; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Step 3: Creating managers for our work items, process instances and signals&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Now that we have our persistence contexts, we need to teach the session how to use them properly. The knowledge session has a few managers that can be configured that allow you to modify or alter the default behaviour. These managers are:&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;org.kie.api.runtime.process.WorkItemManager&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;: It manages when a work item is executed, connects it with the proper handler, and notifies the process instance when the work item is completed.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;org.jbpm.process.instance.event.SignalManager&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;: It manages when a signal is sent to or from a process. Since process instances might be passivated, it needs to &lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;org.jbpm.process.instance.ProcessInstanceManager&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;: It manages the actions to be taken when a process instance is created, started, modified or completed.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;JPA implementation of these interfaces already work with a persistence context manager, so most of the times you won’t need to extend them. However, with Infinispan, we have to make sure the process instance is persisted more often than with JPA, so we had to implement them differently.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Once you have these instances, you will need to create a factory for each type of manager.The interface names are the same, except with the suffix “Factory”. Each receives a knowledge session as parameter, from which you can get the Environment object and all other configurations.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Step 4: Configuring the knowledge session&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Now that we have our different managers created, we will need to tell our knowledge sessions to use them. To do so you need to create a CommandBasedStatefulKnowledgeSession instance with a SingleSessionCommandService instance. The SingleSessionCommandService, as its name describes, is a class to execute commands against one session at a time. SingleSessionCommandService’s constructor receives all parameters needed to create a proper session and execute commands against it in a way that it becomes persistent. Those parameters are: &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;KieBase&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;: the knowledge base with the knowledge definitions for our session runtime.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;KieSessionConfiguration&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;: Where we configure the manager factories to create and dispose of work items, process instances and signals.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Environment&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;: A bag of variables for any other purpose, where we will configure our persistence context mananager objects.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;sessionId (optional)&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;: If present, this parameter looks for an already existing session in the storage. Otherwise, it creates a new one.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Also, in our example, we’re using Infinispan, which is not a reference based storage, but a value based storage. This means that once you say to infinispan to store a value, it will store a copy of it and not the actual object. Some things in drools persistence are managed to be stored through reference based storages, meaning you can tell the framework to persist an object, change its attributes, and see those changes stored in the database after committing the transaction. With infinispan, this wouldn’t happen, so you have to implement an update of the cache values after the command execution is finished. Luckily for us, the SingleSessionCommandService allows us to do this by implementing an Interceptor.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Interceptors are basically your own command service to wrap the default one. You can tell each command to add more behaviour before or after each execution. Here’s a couple of diagrams to explain how it works:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;img height="240px;" src="https://lh6.googleusercontent.com/KYK40qJJH0dLiMBNhFiVZpi7jhfPKL4zIIoZimDub4Ewf3tZ6XPGbJutnkYdcLSNWGNMCcahxy2tEStN99gLiXRUDELqutDQhdlHtEtMvVmwJ4a02mtWv0G_sw" width="480px;" /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;As you can see, the SingleSessionCommandService allows for a command service instance to actually invoke the command’s execute method. And thanks to the interceptor extension of the command service, we can add as many as we want in chain, allowing us to have something like the next sequence diagram executing every time a command needs execution:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;img height="320px;" src="https://lh4.googleusercontent.com/e8ARgMGHfBDM4cqpe1r22jX4MAqGuJxadf3qbx0aIhlNp3NylN16MezQ3CqTBBZ-JyHgdS3fCJQz8d5Lw4kVJFkCcuYXeV5X2OVt2ym2tTfTEev92pLSz74JaA" width="640px;" /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;In our case, we created a couple of these interceptors and added them to the SingleSessionCommandService. One makes sure any changes done to a session object are stored after finishing the command. The other one allows us to do the same with process instance objects.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Overall, this is how we need to create our knowledge sessions at this point to actually use infinispan as a persistence scheme:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;img height="277px;" src="https://lh4.googleusercontent.com/D5g20wTKYYpsUaDbEFkF5pVowKfhO6W0Jl2ayLLGtHC85O0mKlTHiWo3lz4XLlbZkIf-w8yPWV1JZR4zGkH9sQmvAKAgl3lnhEZnj_TcdMqvauVLoQueohZSXw" width="658px;" /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Complicated, right? Don’t worry. There’s yet another couple of classes to make it easier to configure.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="color: red; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Step 4: Creating our own initiation service&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Yes, we could write that ton of code every time we want to create our own customized persistent knowledge sessions. It’s a free world (for the most part). But you can also wrap this implementation in a single class with two exposed methods:&lt;/span&gt;&lt;/div&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;One to create a new session&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;One to load a previously existing session&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;And creates all the configuration internally, merging it whenever you wish to change one or more things. Drools provides an interface to serve as a contract for this called &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;org.kie.api.persistence.jpa.KieStoreServices&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;We created our own implementation of this interface and also a static class to access it, called &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;InfinispanKnowledgeService&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;. This allows us to be able to create the session like this:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;img height="80px;" src="https://lh3.googleusercontent.com/fyNvre51G_pa3R-zdtLtmSqh-TEmDn-y-w_Iiv-4PZFEps3noO1mAVCoDzuveO8LrO5tWkMymDrl6AzegVWq4YbGwH_uhCMWI6a2WnKAZXH6p8TUIyHSD4JNJA" width="688px;" /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Conclusion&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Drools persistence can seem complicated to understand and to get working, let alone to implement it in your own way. However, I hope this shows a bit of demystification to those who need to implement drools persistence in a special way, or were even wondering if it is possible to do so in any other way than JPA.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Also, if you wish to see the modifications done to make it work, see these three pull requests:&lt;/span&gt;&lt;/div&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;a href="https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/pull/38" style="text-decoration: none;"&gt;&lt;span style="color: #1155cc; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/pull/38&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;a href="https://github.com/droolsjbpm/drools/pull/198" style="text-decoration: none;"&gt;&lt;span style="color: #1155cc; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;https://github.com/droolsjbpm/drools/pull/198&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;a href="https://github.com/droolsjbpm/jbpm/pull/166" style="text-decoration: none;"&gt;&lt;span style="color: #1155cc; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;https://github.com/droolsjbpm/jbpm/pull/166&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;A feature request to add this features to Drools is specified in &lt;/span&gt;&lt;a href="https://issues.jboss.org/browse/DROOLS-139" style="text-decoration: none;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;this JIRA ticket&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;. Feel free to upvote it if you wish to have it as part of the core drools project!&lt;/span&gt;&lt;span style="color: red; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/b&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=iVMnFeS4j4Y:Sjp6rpg9tXE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=iVMnFeS4j4Y:Sjp6rpg9tXE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=iVMnFeS4j4Y:Sjp6rpg9tXE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=iVMnFeS4j4Y:Sjp6rpg9tXE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=iVMnFeS4j4Y:Sjp6rpg9tXE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=iVMnFeS4j4Y:Sjp6rpg9tXE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=iVMnFeS4j4Y:Sjp6rpg9tXE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=iVMnFeS4j4Y:Sjp6rpg9tXE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=iVMnFeS4j4Y:Sjp6rpg9tXE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=iVMnFeS4j4Y:Sjp6rpg9tXE:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/iVMnFeS4j4Y" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/iVMnFeS4j4Y/creating-your-own-drools-and-jbpm.html</link><author>noreply@blogger.com (Marian Buenosayres)</author><thr:total>1</thr:total><feedburner:origLink>http://blog.athico.com/2013/05/creating-your-own-drools-and-jbpm.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-3454935968335519872</guid><pubDate>Tue, 07 May 2013 08:35:00 +0000</pubDate><atom:updated>2013-05-07T09:35:50.130+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Presentation</category><category domain="http://www.blogger.com/atom/ns#">BRMS</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>London JBUG May Event - What's new in Drools 6.0 (22nd May 2013)</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;a href="http://www.c2b2.co.uk/london_jbug_may_2013"&gt;http://www.c2b2.co.uk/london_jbug_may_2013&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1 style="background-color: white; border: 0px; color: #3366cc; font-family: Lato, Tahoma, Geneva, sans-serif; font-size: 30px; line-height: 1; margin: 0px 0px 15px; outline: none; padding: 0px; text-align: -webkit-auto;"&gt;
London JBUG May Event - What's new in Drools 6.0&lt;/h1&gt;
&lt;div style="background-color: white; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;
&lt;table border="1" cellpadding="1" cellspacing="1" style="border-collapse: collapse; border: 1px solid rgb(51, 102, 204); line-height: 1.4; margin-bottom: 15px; width: 475px;"&gt;&lt;tbody&gt;
&lt;tr style="background-color: #3366cc;"&gt;&lt;td style="border: none; padding: 7px 5px; text-align: center; vertical-align: top;"&gt;&lt;strong&gt;&lt;span style="color: honeydew;"&gt;WHEN&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td style="border: none; padding: 7px 5px; text-align: center; vertical-align: top;"&gt;&lt;strong&gt;&lt;span style="color: honeydew;"&gt;WHERE&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td style="border: none; padding: 7px 5px; text-align: center; vertical-align: top;"&gt;&lt;span style="color: honeydew;"&gt;&lt;strong&gt;HOW TO REGISTER?&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="border: none; padding: 7px 5px; vertical-align: top;"&gt;&lt;div style="border: 0px; font-size: 12px; line-height: 1.4; margin-bottom: 15px; outline: none; padding: 0px; text-align: center;"&gt;
&lt;strong&gt;Wednesday&lt;br /&gt;22nd of May 2013&lt;br /&gt;6pm-8:30pm&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style="border: none; padding: 7px 5px; vertical-align: top;"&gt;&lt;div style="text-align: center;"&gt;
&lt;b&gt;Skills Matter eXchange&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;strong&gt;116-120 Goswell Road&lt;/strong&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;strong&gt;London,&amp;nbsp;EC1V 7DP&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style="border: none; padding: 7px 5px; text-align: center; vertical-align: top;"&gt;&lt;div style="border: 0px; font-size: 12px; line-height: 1.4; margin-bottom: 15px; outline: none; padding: 0px;"&gt;
&lt;strong&gt;Fill in the form at the bottom&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;of the page!&lt;/strong&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style="border: 0px; line-height: 1.4; margin-bottom: 15px; outline: none; padding: 0px; text-align: center;"&gt;
&lt;strong&gt;If you are interested in attending the future JBUG events please join&amp;nbsp;JBUG on&amp;nbsp;&lt;a href="http://www.meetup.com/JBoss-User-Group/" style="border: 0px; color: #3366cc; outline: 0px; text-decoration: none;"&gt;Meetup&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style="border: 0px; color: #3366cc; font-family: Lato, Tahoma, Geneva, sans-serif; font-size: 18px; line-height: 1; margin: 0px 0px 15px; outline: none; padding: 0px;"&gt;
Presentation&lt;/h3&gt;
&lt;div style="border: 0px; line-height: 1.4; margin-bottom: 15px; outline: none; padding: 0px;"&gt;
Drools 6.0 introduces new approaches for authoring, building, deploying and utilising rules. Using convention and configuration, over programmatic apis, in an effort to simplify the experience for end users.&lt;/div&gt;
&lt;div style="border: 0px; line-height: 1.4; margin-bottom: 15px; outline: none; padding: 0px;"&gt;
This talk,&amp;nbsp;presented by&amp;nbsp;&lt;strong&gt;Mark Proctor - Platform Architect at Red Hat&lt;/strong&gt;&amp;nbsp;- will take users through the new web based IDE (built with UberFire) for authoring and deploying rules, and then utilising them on the client side. It will also introduce the other new 6.0 features, including our new lazy rule engine algorithm. Ideally attendees will have a basic understanding of Drools and rule engines.&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style="background-color: white; border: 0px; color: #3366cc; font-family: Lato, Tahoma, Geneva, sans-serif; font-size: 18px; line-height: 1; margin: 0px 0px 15px; outline: none; padding: 0px; text-align: -webkit-auto;"&gt;
Speaker&amp;nbsp;&lt;/h3&gt;
&lt;div style="background-color: white; border: 0px; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 12px; line-height: 16px; margin-bottom: 15px; outline: none; padding: 0px; text-align: -webkit-auto;"&gt;
&lt;strong&gt;Mark Proctor&lt;/strong&gt;&amp;nbsp;received his B.Eng in Engineer Science and Technology and then his M.Sc. in Business and Information Systems; both from Brunel University, West London. His M.Sc. thesis was in the field of Genetic Algorithms; which is where he discovered his interest for anything AI related.&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 12px; line-height: 16px; margin-bottom: 15px; outline: none; padding: 0px; text-align: -webkit-auto;"&gt;
For the last 10 years Mark's focus has been on developing knowledge engineering systems in java, while working for Red Hat as Platform Architect. Mark is the co-founder of the Drools project, the leading Java expert system tool, and as Platform Architect he is responsible for all technologies related to rules, processes, events, ontologies and intelligent agents at Red Hat.&lt;/div&gt;
&lt;h3 style="background-color: white; border: 0px; color: #3366cc; font-family: Lato, Tahoma, Geneva, sans-serif; font-size: 18px; line-height: 1; margin: 0px 0px 15px; outline: none; padding: 0px; text-align: -webkit-auto;"&gt;
Agenda&lt;/h3&gt;
&lt;div style="background-color: white; border: 0px; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 12px; line-height: 16px; margin-bottom: 15px; outline: none; padding: 0px; text-align: -webkit-auto;"&gt;
18:00 - 18:15 - Coffee, Welcome and Networking&amp;nbsp;&lt;br /&gt;18:15 - 19:30 -&amp;nbsp;&lt;strong&gt;'What's new in Drools 6.0' by Mark Proctor&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;19:30 - 19:50&amp;nbsp;-&amp;nbsp;Lightning Talks / Problem Solving Sessions&lt;br /&gt;&lt;em&gt;'Hands off my data! How to use Off-Heap Memory from Java and keep the latencies down' lightning talk will be presented by Jaromir Hamala&lt;/em&gt;&lt;br /&gt;19:50 - 20:30 - Beer, Pizza and Networking&lt;/div&gt;
&lt;div style="background-color: white; border: 0px; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 12px; line-height: 16px; margin-bottom: 15px; outline: none; padding: 0px; text-align: -webkit-auto;"&gt;
&lt;span style="color: #3366cc; font-family: Lato, Tahoma, Geneva, sans-serif; font-size: 18px; font-weight: bold; line-height: 1;"&gt;‘Problem Solving’ Sessions&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;
&lt;div&gt;
Following your suggestions, we’re introducing the new Problem Solving panel sessions which give you an opportunity to discuss various JBoss-related problems you may want to share and discuss with the rest of the JBUG members. If you want to ask others for help and advice, discuss the issues, listen to suggestions and find the solutions – let us know! Email your topic to jbug@c2b2.co.uk and we will be more than happy to add your session to the agenda.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;h3 style="border: 0px; color: #3366cc; font-family: Lato, Tahoma, Geneva, sans-serif; font-size: 18px; line-height: 1; margin: 0px 0px 15px; outline: none; padding: 0px;"&gt;
Lightning Talks&lt;/h3&gt;
&lt;div&gt;
We are also opening up the floor to anyone using JBoss who has a tale to share. We are looking for a number of lightning talks 5 - 10 minutes in length where you can share your experiences, problems or wonderful solutions with the rest of the community. This is a huge opportunity to develop new or hone existing speaking skills!&lt;/div&gt;
&lt;div&gt;
If you are interested, please send the title of your talk to jbug@c2b2.co.uk .&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=4C_hRQv7Fos:rhHLt7wK1Cs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=4C_hRQv7Fos:rhHLt7wK1Cs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=4C_hRQv7Fos:rhHLt7wK1Cs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=4C_hRQv7Fos:rhHLt7wK1Cs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=4C_hRQv7Fos:rhHLt7wK1Cs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=4C_hRQv7Fos:rhHLt7wK1Cs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=4C_hRQv7Fos:rhHLt7wK1Cs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=4C_hRQv7Fos:rhHLt7wK1Cs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=4C_hRQv7Fos:rhHLt7wK1Cs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=4C_hRQv7Fos:rhHLt7wK1Cs:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/4C_hRQv7Fos" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/4C_hRQv7Fos/london-jbug-may-event-whats-new-in.html</link><author>noreply@blogger.com (Mark Proctor)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2013/05/london-jbug-may-event-whats-new-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-8657158949557565957</guid><pubDate>Mon, 06 May 2013 17:20:00 +0000</pubDate><atom:updated>2013-05-07T09:36:20.012+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">event</category><category domain="http://www.blogger.com/atom/ns#">Camel</category><category domain="http://www.blogger.com/atom/ns#">jBPM</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>Drools and jBPM talks at JUDCon:2013 United States</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div class="p1"&gt;
In Boston in June? &amp;nbsp;Meet some of the leaders of the Drools and jBPM teams! &amp;nbsp; Mark Proctor and Edson Tirelli will be be speaking this June at JBoss User and Developer Conference. &amp;nbsp;Take advantage of meeting Mark and Edson there. &amp;nbsp;It is a great opportunity to share your ideas and implementations.&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
Admission tickets get you into three separate events: Red Hat Developer Exchange,&amp;nbsp;JBoss User Developer Conference (JUDCon) and CamelOne. &amp;nbsp;The events will be held in Boston Sunday June 9th - Tuesday June 11th. &amp;nbsp;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://www.jboss.org/dms/judcon/2013unitedstates/judcon2013unitedstates_banner_1180px_cfp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="46" src="http://www.jboss.org/dms/judcon/2013unitedstates/judcon2013unitedstates_banner_1180px_cfp.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;b&gt;&lt;a href="http://www.jboss.org/events/JUDCon/2013/unitedstates"&gt;JUDCon&lt;/a&gt;:&lt;/b&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
The activities start Sunday evening June 9th with the JUDCon, CamelOne and Red Hat Exchange reception. Then Monday and Tuesday, there will be 3 tracks of sessions, and 2 workshop tracks as well. The evening will also include a JBoss Core Developer panel, a live recording of the JBoss Community Asylum, and yes, beer.&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
The JBoss Users and Developers Conferences are developer gatherings held around the Globe to give JBoss users the chance to talk to and collaborate with Java contributors and core developers. The&amp;nbsp;core JBoss developers, along with the open source community, create and support the projects that drive innovation and help lead development in standards bodies like the Java Community Process, the&amp;nbsp;Apache Software Foundation, OASIS, W3C and other open standards organizations. Many of these projects become the upstream for Red Hat JBoss products.&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
3 tracks and 33 sessions will cover topics including:&lt;/div&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Java and Java EE App Development&lt;/li&gt;
&lt;li class="li1"&gt;Mobile Development&lt;/li&gt;
&lt;li class="li1"&gt;Drools, jBPM, Fuse, ActiveMQ, Infinispan&amp;nbsp;&lt;/li&gt;
&lt;li class="li1"&gt;and many more&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="p1"&gt;
6 workshops providing hands-on labs covering:&lt;/div&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;Ceylon taught by Gavin King and Stephane Epardaud&lt;/li&gt;
&lt;li class="li1"&gt;Infinispan and JBoss Data Grid cross-datacenter replication&lt;/li&gt;
&lt;li class="li1"&gt;CDI, Forge and Errai&lt;/li&gt;
&lt;li class="li1"&gt;and many more.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="p1"&gt;
JUDCon:2013 Boston Agenda&lt;/div&gt;
&lt;div class="p3"&gt;
&lt;span class="s1"&gt;&lt;a href="http://www.jboss.org/events/JUDCon/2013/unitedstates/agenda"&gt;http://www.jboss.org/events/JUDCon/2013/unitedstates/agenda&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://fusesource.com/images/camelone_header_2013_shortnav.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="43" src="http://fusesource.com/images/camelone_header_2013_shortnav.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;b&gt;&lt;a href="http://www.camelone.com/"&gt;CamelOne&lt;/a&gt;:&lt;/b&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
CamelOne is designed specifically for professionals using open source integration and messaging solutions in the enterprise and will feature a combination of keynote presentations, educational&amp;nbsp;sessions and networking events that will enable attendees to meet, learn and share ideas with open source integration experts.&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
Founders, committers and users of Apache Camel, ServiceMix, ActiveMQ and&amp;nbsp;CXF&amp;nbsp;enjoyed a great Meet and Greet in the Exhibit Hall from 6:30 to 8:30. Stop by and mingle with your community&amp;nbsp;over hors d’oeuvres and drinks!&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
CamelOne Agenda&lt;/div&gt;
&lt;div class="p3"&gt;
&lt;span class="s1"&gt;&lt;a href="http://www.camelone.com/apache-camel-conference-2013/camelone_agenda_2013/"&gt;http://www.camelone.com/apache-camel-conference-2013/camelone_agenda_2013/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;b&gt;&lt;a href="http://www.redhat.com/developerexchange/agenda/"&gt;Red Hat Developer Exchange&lt;/a&gt;:&lt;/b&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
Red Hat Connect Developer Exchange&amp;nbsp;is heading back to Boston. You won't want to miss this one-day event&amp;nbsp;where you can learn more about Red Hat developer tools and&amp;nbsp;technologies. From gcc to Java to&amp;nbsp;scripting languages, from traditional models to devops--You'll get the&amp;nbsp;chance to connect with fellow developers, share real-world challenges,&amp;nbsp;and solve mutual problems through collaboration.&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
5 tracks and 25 sessions will cover important topics,&amp;nbsp;including:&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;• Programming on OpenShift Online PaaS&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;• OpenShift Enterprise and Java&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;• Languages and tools for mission-critical development&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;• Get more out of Red Hat Enterprise Linux tools&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
Red Hat Developer Exchange Agenda:&lt;/div&gt;
&lt;div class="p3"&gt;
&lt;span class="s1"&gt;&lt;a href="http://www.redhat.com/developerexchange/agenda/"&gt;http://www.redhat.com/developerexchange/agenda/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=T5GQ9dwgXdo:5o66A0ofjGw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=T5GQ9dwgXdo:5o66A0ofjGw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=T5GQ9dwgXdo:5o66A0ofjGw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=T5GQ9dwgXdo:5o66A0ofjGw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=T5GQ9dwgXdo:5o66A0ofjGw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=T5GQ9dwgXdo:5o66A0ofjGw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=T5GQ9dwgXdo:5o66A0ofjGw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=T5GQ9dwgXdo:5o66A0ofjGw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=T5GQ9dwgXdo:5o66A0ofjGw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=T5GQ9dwgXdo:5o66A0ofjGw:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/T5GQ9dwgXdo" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/T5GQ9dwgXdo/drools-and-jbpm-talks-at-judcon2013.html</link><author>noreply@blogger.com (Ray Ploski)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2013/05/drools-and-jbpm-talks-at-judcon2013.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-4232707913197874750</guid><pubDate>Fri, 03 May 2013 11:29:00 +0000</pubDate><atom:updated>2013-05-03T12:35:40.952+01:00</atom:updated><title>IntelliFest Oct 2013 - San Diego</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
Keynote Speakers:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Dr. Ernest Friedman-Hill (Jess)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Dr. Daniel Miranker (Treat, Leaps, Venus)&lt;/li&gt;
&lt;li&gt;Dr. Ellen Voorhees (Information Retrieval, National Institute of Standards and Technology, NIST)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div style="background-color: #f7f7f7; border: 0px; color: #444444; font-family: Arial, sans-serif; font: inherit; line-height: 22px; padding: 0.5em 0px; text-align: -webkit-auto; vertical-align: baseline;"&gt;
&lt;img alt="" class="aligncenter size-medium wp-image-675" height="187" src="http://intellifest.org/wordpress/wp-content/uploads/2012/03/Intellifestlogo_final-2-300x187.png" style="border: 0px; display: block; font-size: 13px; font: inherit; margin: 0px auto; padding: 0px; vertical-align: baseline;" title="Intellifestlogo_final (2)" width="300" /&gt;&lt;/div&gt;
&lt;h2 style="background-color: #f7f7f7; border: 0px; color: #133a73; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif; font: inherit; line-height: 1.4; margin: 1em 0px 0px; padding: 0px; text-align: center; vertical-align: baseline;"&gt;
International Conference&lt;br /&gt;on Reasoning Technologies&lt;/h2&gt;
&lt;h2 style="background-color: #f7f7f7; border: 0px; color: #133a73; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif; font: inherit; line-height: 1.4; margin: 1em 0px 0px; padding: 0px; text-align: center; vertical-align: baseline;"&gt;
&lt;span style="color: #444444; line-height: 1.4;"&gt;October 7-11 • Bahia Resort Hotel&lt;/span&gt;&lt;/h2&gt;
&lt;h2 style="background-color: #f7f7f7; border: 0px; color: #133a73; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif; font: inherit; line-height: 1.4; margin: 1em 0px 0px; padding: 0px; text-align: center; vertical-align: baseline;"&gt;
&lt;span style="color: #444444; line-height: 1.4;"&gt;San Diego, CA • USA&lt;/span&gt;&lt;/h2&gt;
&lt;h4 style="background-color: #f7f7f7; border: 0px; color: #444444; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif; font: inherit; line-height: 1.4; margin: 1em 0px 0px; padding: 0px; text-align: -webkit-auto; vertical-align: baseline;"&gt;
IntelliFest returns to the charming Bahia Hotel for 2013! Join us for a full program featuring:&lt;/h4&gt;
&lt;ul style="background-color: #f7f7f7; border: 0px; color: #444444; font-family: Arial, sans-serif; font: inherit; line-height: 22px; list-style-image: initial; list-style-position: initial; margin: 0px; padding: 0.5em 0px 0.5em 1.4em; text-align: -webkit-auto; vertical-align: baseline;"&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;Single track technical conference for software and IT developers, programmers, engineers, and architects in the applied AI and rule-based domains.&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;Welcoming Reception on Sunday, October 6.&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;Technical Vertical Day on Monday, October 7.&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;Two days of boot camps on Monday, October 7 and Friday October 11!&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;Main Conference, Tuesday, October 8 through Thursday, October 10&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;AM plenary sessions with guest keynotes each day!&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;Hands-on, mini-camps all during the PM sessions of the main conference!&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style="background-color: #f7f7f7; border: 0px; color: #444444; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif; font: inherit; line-height: 1.4; margin: 1em 0px 0px; padding: 0px; text-align: -webkit-auto; vertical-align: baseline;"&gt;
Topics include but are not limited to:&lt;/h4&gt;
&lt;ul style="background-color: #f7f7f7; border: 0px; color: #444444; font-family: Arial, sans-serif; font: inherit; line-height: 22px; list-style-image: initial; list-style-position: initial; margin: 0px; padding: 0.5em 0px 0.5em 1.4em; text-align: -webkit-auto; vertical-align: baseline;"&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;Reasoning About Big Data AI and Cloud Computing&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;AI and the Semantic Web&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;Emerging Standards&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;Latest News in Rule Engines&lt;/li&gt;
&lt;li style="border: 0px; font-size: 13px; font: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"&gt;… and much more!&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=tRQcs8chX-I:NnS7mWbfQhg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=tRQcs8chX-I:NnS7mWbfQhg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=tRQcs8chX-I:NnS7mWbfQhg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=tRQcs8chX-I:NnS7mWbfQhg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=tRQcs8chX-I:NnS7mWbfQhg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=tRQcs8chX-I:NnS7mWbfQhg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=tRQcs8chX-I:NnS7mWbfQhg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=tRQcs8chX-I:NnS7mWbfQhg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=tRQcs8chX-I:NnS7mWbfQhg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=tRQcs8chX-I:NnS7mWbfQhg:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/tRQcs8chX-I" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/tRQcs8chX-I/intellifest-oct-2013-san-diego.html</link><author>noreply@blogger.com (Mark Proctor)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2013/05/intellifest-oct-2013-san-diego.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-971679581204065841</guid><pubDate>Wed, 01 May 2013 22:37:00 +0000</pubDate><atom:updated>2013-05-03T12:54:37.062+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">GSoC</category><category domain="http://www.blogger.com/atom/ns#">jBPM</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>Google Summer of Code 2013</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
JBoss is participating in the &lt;a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2013"&gt;Google Summer of Code 2013&lt;/a&gt;
 program, which means that students can work on their favourite 
open-source project during the summer and get ultimate glory and a nice 
paycheck in return.&lt;br /&gt;
&lt;blockquote style="font-style: italic;"&gt;
&lt;em&gt;Google Summer of Code&lt;/em&gt;&amp;nbsp;is a global program that offers students 
stipends to write code for open source projects. We have worked with the
 open source community to identify and fund exciting projects for the 
upcoming summer.&lt;/blockquote&gt;
&lt;/div&gt;
JBoss&lt;span style="font-style: italic;"&gt; &lt;/span&gt;has created a list of &lt;a href="https://community.jboss.org/wiki/GSOC13Ideas"&gt;possible ideas&lt;/a&gt; you can take a look at, but you can always propose us your own ideas as well !&lt;br /&gt;
&lt;br /&gt;
For Drools &amp;amp; jBPM, we've added a few ideas to the list, but there is a Wiki page with over 10 possible jBPM proposals available &lt;a href="https://community.jboss.org/wiki/JbpmProjects"&gt;here&lt;/a&gt;, including:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;jBPM on android&lt;/li&gt;
&lt;li&gt;Integrating jBPM with your own preferred project(s)&lt;/li&gt;
&lt;li&gt;Realtime Collaborative Editor for Drools Decision Tables using GWT and Errai OT/EC&lt;/li&gt;
&lt;li&gt;jBPM performance on steroids&lt;/li&gt;
&lt;li&gt;Document management system&lt;/li&gt;
&lt;li&gt;Mobile client(s) for jBPM&lt;/li&gt;
&lt;li&gt;From BPEL to BPMN2&lt;/li&gt;
&lt;li&gt;Social BPM using jBPM&lt;/li&gt;
&lt;li&gt;Process mining for jBPM&lt;/li&gt;
&lt;li&gt;jBPM and Drools for access control&lt;/li&gt;
&lt;li&gt;jBPM and Drools for clinical decision support&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
The
 deadline for student applications is May 3rd, 19:00 UTC, so if you're
 interested but didn't submit anything yet, you'll need to be fast!
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=Uza-tItluZE:xFdghN8QBno:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=Uza-tItluZE:xFdghN8QBno:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=Uza-tItluZE:xFdghN8QBno:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=Uza-tItluZE:xFdghN8QBno:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=Uza-tItluZE:xFdghN8QBno:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=Uza-tItluZE:xFdghN8QBno:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=Uza-tItluZE:xFdghN8QBno:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=Uza-tItluZE:xFdghN8QBno:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=Uza-tItluZE:xFdghN8QBno:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=Uza-tItluZE:xFdghN8QBno:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/Uza-tItluZE" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/Uza-tItluZE/google-summer-of-code-2013.html</link><author>noreply@blogger.com (Kris Verlaenen)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2013/05/google-summer-of-code-2013.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-8351267034252412584</guid><pubDate>Mon, 29 Apr 2013 21:22:00 +0000</pubDate><atom:updated>2013-04-29T22:22:22.788+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jbpm6</category><category domain="http://www.blogger.com/atom/ns#">Business Processes</category><category domain="http://www.blogger.com/atom/ns#">jbpm-console-ng</category><category domain="http://www.blogger.com/atom/ns#">bpmn2</category><category domain="http://www.blogger.com/atom/ns#">jBPM</category><category domain="http://www.blogger.com/atom/ns#">BPMN</category><title>Try the jBPM Console NG (Beta)! (for developers)</title><description>&lt;br /&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Hi everyone out there! This is another post about the jBPM Console NG. After 6 months of heavy work I'm happy to be writing this post for the developers community to try it out. On this post I will be explaining how to build the application from the sources. The main idea behind this is to know how to set up your environment and modify the application while your testing it. You will basically learn all you need to know to contribute with the project.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-Hgit0H8ctn4/UX7DZf3AX0I/AAAAAAAAAHk/PLnzT8b_AIQ/s1600/jbpm-console-ng.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="http://3.bp.blogspot.com/-Hgit0H8ctn4/UX7DZf3AX0I/AAAAAAAAAHk/PLnzT8b_AIQ/s320/jbpm-console-ng.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Introduction&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The jBPM Console NG aims to provide a Task &amp;amp; Process Management collaborative environment to facilitate the adoption of the BPM Suite in a company. Downloading the sources and compiling the application will allow you to try the application and modify it in the case that you want to extend it or fix bugs. The application is under the Apache License V2 so it can be used and modified according with this license.&lt;/div&gt;
&lt;h2&gt;
Working with the Source Code&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The first step in order to get everything running is to get the source code using GIT. This are the things that you need to have installed in your computer in order to proceed:&lt;/div&gt;
&lt;ul style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;li&gt;JDK 6&lt;/li&gt;
&lt;li&gt;&lt;span data-mce-style="line-height: 13px;" style="line-height: 13px;"&gt;Maven 3.x&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Any IDE (Eclipse, IntelliJ, Netbeans) with the maven plugin installed&lt;/li&gt;
&lt;li&gt;JBoss Application Server 7.1.1 (optional)&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Once you get all these tools installed we can proceed to get the source code from the github repository:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;a data-mce-href="https://github.com/droolsjbpm/jbpm-console-ng/" href="https://github.com/droolsjbpm/jbpm-console-ng/"&gt;https://github.com/droolsjbpm/jbpm-console-ng/&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
In order to get a "Clone" of the repository to work you must from the terminal:&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;git clone&amp;nbsp;https://github.com/droolsjbpm/jbpm-console-ng.git&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Once it's done, you can compile the source code, here you have two alternatives:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
1) Compile the project for development purposes with:&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;mvn clean install&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
2) Compile the project to generate the distribution wars for JBoss and Tomcat + the documentation&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;mvn clean install -PfullProfile&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Sit back and relax! The first time that you do this step Maven requires to download tons of libraries, so you will need to wait.&lt;/div&gt;
&lt;h2&gt;
Running the application in Hosted Mode&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Once the project is compiled, the jbpm-console-ng-showcase can be executed in what GWT calls "Hosted Mode" (also known as Developer Mode)&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
In order to start up the application in hosted mode you should do the following:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
1) The jBPM Console NG Showcase contains the final application distribution code:&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;cd jbpm-console-ng-showcase/&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
2) Run in hosted mode using the GWT Maven Plugin&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;mvn gwt:run&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
This will start up a Jetty + the GWT Development Mode screen which will allow you to copy the URL where the application is hosted for you to try it:&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 310px;" id="attachment_2428" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 310px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2013/04/screen-shot-2013-04-29-at-12-28-32.png" href="http://salaboy.files.wordpress.com/2013/04/screen-shot-2013-04-29-at-12-28-32.png"&gt;&lt;img alt="GWT Hosted Mode" class="size-medium wp-image-2428" data-mce-src="http://salaboy.files.wordpress.com/2013/04/screen-shot-2013-04-29-at-12-28-32.png?w=300" height="182" src="http://salaboy.files.wordpress.com/2013/04/screen-shot-2013-04-29-at-12-28-32.png?w=300" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" width="300" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;GWT Hosted Mode&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Copying the URL (&lt;a data-mce-href="http://127.0.0.1:8888/org.jbpm.console.ng.jBPMShowcase/jBPM.html?gwt.codesvr=127.0.0.1:9997" href="http://127.0.0.1:8888/org.jbpm.console.ng.jBPMShowcase/jBPM.html?gwt.codesvr=127.0.0.1:9997"&gt;http://127.0.0.1:8888/org.jbpm.console.ng.jBPMShowcase/jBPM.html?gwt.codesvr=127.0.0.1:9997&lt;/a&gt;) into your browser (For hosted mode you need to have the GWT plugin installed in your browser, don't worry it's automatically installed if you don't have it) will open the application. I strongly recommend to use Firefox for development mode or Chrome (usually slower), because for developing we scope the compilations to work on FF and Chrome (gecko browsers).&lt;/div&gt;
&lt;h2&gt;
Running the application in JBoss AS &amp;nbsp;7&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Now if you want to deploy the application on JBoss, you need to go the the second compilation option (-PfullProfile) which will take some extra time to compile the application for all the browsers and all the languages (English, Spanish, etc.). In order to deploy the application to your jboss as 7 instance you will need to move the war file generated inside the jbpm-console-ng/jbpm-console-ng-distribution-wars/target/jbpm-console-ng-jboss-as7.war into the &amp;lt;jboss-as&amp;gt;/standalone/deployments directory and then rename the war file to jbpm-console-ng.war. The name of the application will be used as the root context for the application.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
For the JBoss you also need to do some configurations for the users and roles. Inside the jBPM Console NG you will need to have set up the users that will be available for your installation. Those are handle by JBoss Security Domains. In order to set up the security domains, you need to do the following:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
1) Edit the &amp;lt;jboss_as&amp;gt;/configuration/standalone.xml and add a new security domain:&lt;/div&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;
&amp;lt;security-domain name="jbpm-console-ng" cache-type="default"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;authentication&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;login-module code="UsersRoles" flag="required"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;module-option name="usersProperties" &amp;nbsp; value="${jboss.server.config.dir}/users.properties"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;module-option name="rolesProperties" value="${jboss.server.config.dir}/roles.properties"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/login-module&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/authentication&amp;gt;&lt;br /&gt;&amp;lt;/security-domain&amp;gt;&lt;/span&gt;&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;
&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
2) add the users.properties and roles.properties files&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
content of the user.properties file:&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;maciek=Merck
salaboy=salaboy
katy=katy
john=john&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
content of the roles.properties file:&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;maciek=jbpm-console-user,kie-user,analyst,HR,PM,Reviewer
salaboy=jbpm-console-user,user,analyst,PM,IT,Reviewer
katy=jbpm-console-user,HR
john=jbpm-console-user,Accounting&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The only requirement for the roles file is to include the jbpm-console-user role for all the users.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Note that this is the simplest way of configuring a security domain, but you can go for more advanced options, like configuring the security domain to use an LDAP server or a Database to authenticate your users and roles. (https://docs.jboss.org/author/display/AS7/Security+subsystem+configuration)&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Then you are ready to go, you can start jboss with:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
1) Go into the bin directory:&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;cd &amp;lt;jboss-as&amp;gt;/bin/&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
2) Start the application server:&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;./standalone.sh&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;h2&gt;
On Openshift&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
In order to deploy the application into openshift you need to obviously have an openshift account. Once you set up your account you will need to do almost the same configurations as in the JBoss Application. In the openshift git repository that you clone, you will have a specific dir to apply this configuration:&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;.openshift/config&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
There you will find the standalone.xml file and you can place the users.properties and roles.properties files.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
So in the standalone.xml file you will need to configure the security domains as we did before and add the users.property and roles.properties files.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Besides this configuration you will need to set up a system property for storing the knowledge repository:&lt;/div&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;
&amp;lt;system-properties&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;property name="org.kie.nio.git.dir" value="~/jbossas-7/tmp/data"/&amp;gt;&lt;br /&gt;&amp;lt;/system-properties&amp;gt;&lt;/span&gt;&lt;h2&gt;
The Application&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Now you are ready to use the application, so if you point your browser to the URL provided by the hosted mode or to&amp;nbsp;&lt;a data-mce-href="http://localhost:8080/jbpm-console-ng/" href="http://localhost:8080/jbpm-console-ng/"&gt;http://localhost:8080/jbpm-console-ng/&lt;/a&gt;&amp;nbsp;you will be able to access the login form.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
As you will see, before entering the application you will need to provide your credentials. Once you are in the application is divided in:&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 590px;" id="attachment_2431" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 590px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2013/04/screen-shot-2013-04-29-at-13-47-16.png" href="http://salaboy.files.wordpress.com/2013/04/screen-shot-2013-04-29-at-13-47-16.png"&gt;&lt;img alt="Cycle" class="size-full wp-image-2431" data-mce-src="http://salaboy.files.wordpress.com/2013/04/screen-shot-2013-04-29-at-13-47-16.png" height="41" src="http://salaboy.files.wordpress.com/2013/04/screen-shot-2013-04-29-at-13-47-16.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" width="580" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Cycle&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
In the Authoring section you will be able to access to the Process Designer to model your business processes. The Process Management section will allow you to list the available Business Processes and Start new instances, and also monitor those instances. The Work Section will enable you to access the Task Lists (Calendar and Grid View) &amp;nbsp;to work on the tasks assigned to you. In order to use the BAM section you will need to deploy the BAM dashboard application but I will describe that in a future post.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Feel free to try it out and write a comment back if you find something wrong.&lt;/div&gt;
&lt;h2&gt;
Contributions&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Your feedback means a lot, but if you want to contribute, you can fork the jbpm-console-ng repository in github:&amp;nbsp;&lt;a data-mce-href="https://github.com/droolsjbpm/jbpm-console-ng" href="https://github.com/droolsjbpm/jbpm-console-ng"&gt;https://github.com/droolsjbpm/jbpm-console-ng/&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
I will appreciate if you can test the Task Lists and Process Management screens and write feedback in this post, so I can iteratively improve what we have. I will be writing another post to describe the screens and also to list a set of small tasks that you can contribute back.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=9wx5tGQKnt4:MheCEknho1E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=9wx5tGQKnt4:MheCEknho1E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=9wx5tGQKnt4:MheCEknho1E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=9wx5tGQKnt4:MheCEknho1E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=9wx5tGQKnt4:MheCEknho1E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=9wx5tGQKnt4:MheCEknho1E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=9wx5tGQKnt4:MheCEknho1E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=9wx5tGQKnt4:MheCEknho1E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=9wx5tGQKnt4:MheCEknho1E:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=9wx5tGQKnt4:MheCEknho1E:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/9wx5tGQKnt4" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/9wx5tGQKnt4/try-jbpm-console-ng-beta-for-developers.html</link><author>noreply@blogger.com (salaboy)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Hgit0H8ctn4/UX7DZf3AX0I/AAAAAAAAAHk/PLnzT8b_AIQ/s72-c/jbpm-console-ng.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.athico.com/2013/04/try-jbpm-console-ng-beta-for-developers.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-5296198743504566711</guid><pubDate>Fri, 05 Apr 2013 09:39:00 +0000</pubDate><atom:updated>2013-04-05T12:48:26.028+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">planner</category><title>Score DRL: faster and easier in OptaPlanner</title><description>For &lt;a href="http://www.optaplanner.org/"&gt;OptaPlanner&lt;/a&gt; (= Drools Planner) 6.0.0.Beta1, I 've replaced the ConstraintOccurrence with the much more elegant ConstraintMatch system. The result is that your score DRL files are:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;much faster&lt;/li&gt;
&lt;li&gt;easier to read and write&lt;/li&gt;
&lt;li&gt;far less error-prone, because they make it a lot harder to cause &lt;i&gt;score corruption&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
Let's look at the results first, before we look at the code readability improvements.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Faster&lt;/h3&gt;
&lt;i&gt;"Show me the benchmarks!"&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
The &lt;i&gt;average calculate count&lt;/i&gt; - which is the number of scores OptaPlanner calculates per second - has risen dramatically.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;N queens: &lt;b&gt;+39%&lt;/b&gt; calc count for 256 queens&lt;/li&gt;
&lt;li&gt;Cloud balance: &lt;b&gt;+27%&lt;/b&gt; calc count on average&lt;/li&gt;
&lt;li&gt;Vehicle routing: &lt;b&gt;+40%&lt;/b&gt; calc count on average&lt;/li&gt;
&lt;li&gt;Course scheduling: &lt;b&gt;+20%&lt;/b&gt; calc count on average&lt;/li&gt;
&lt;li&gt;Exam scheduling: &lt;b&gt;+23%&lt;/b&gt; calc count on average&lt;/li&gt;
&lt;li&gt;Nurse rostering: &lt;b&gt;+7%&lt;/b&gt; calc count on average&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
However, this doesn't necessarily imply a dramatic improvement in result, especially if the old result is already (near) optimal. It means you can &lt;b&gt;get the exact same result in far less time&lt;/b&gt;. But - as with all other performance improvements - gives &lt;i&gt;no promise for significantly better results in the same time.&lt;/i&gt; It does helps when scaling out.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Cloud balance: &lt;b&gt;+0.58%&lt;/b&gt; feasible soft score on average in 5 minutes&lt;/li&gt;
&lt;li&gt;Vehicle routing: &lt;b&gt;+0.14%&lt;/b&gt; feasible soft score on average in 5 minutes&lt;/li&gt;
&lt;li&gt;Course scheduling: &lt;b&gt;+2.28%&lt;/b&gt; feasible soft score on average in 7 minutes&lt;/li&gt;
&lt;li&gt;Exam scheduling: &lt;b&gt;+0.53%&lt;/b&gt; feasible soft score on average in 7 minutes&lt;/li&gt;
&lt;/ul&gt;
Several of the 30 Vehicle routing datasets were already solved optimally in 5 minutes, so these drag the average down, despite the high vehicle routing speedup.&lt;br /&gt;
&lt;br /&gt;
All benchmarks use the exact same Drools and OptaPlanner version, so  these numbers show only the improvements of the ConstraintMatch change. There are several other improvements in 6.0. &lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
How does the average calculate count scale? &lt;/h4&gt;
Here are a some charts comparing the old ConstraintOccurrence with new ConstraintMatch. The new ConstraintMatch's current implementation hasn't been fully optimized, so it's sometimes referred to being in "slow" mode (even though it's faster).&lt;br /&gt;
&lt;br /&gt;
CloudBalance:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-pVqGbYLtMsc/UV6X2OB1xeI/AAAAAAAABDU/CLqKH3_fI60/s1600/averageCalculateCountSummary.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-pVqGbYLtMsc/UV6X2OB1xeI/AAAAAAAABDU/CLqKH3_fI60/s640/averageCalculateCountSummary.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Vehicle routing:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/--GMmbUAJEnU/UV6X_Uxp-TI/AAAAAAAABDc/qv0ZE6Tf9GM/s1600/averageCalculateCountSummary.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/--GMmbUAJEnU/UV6X_Uxp-TI/AAAAAAAABDc/qv0ZE6Tf9GM/s640/averageCalculateCountSummary.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Course scheduling:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-5fCGFPE7eAQ/UV6YD0YY31I/AAAAAAAABDk/Pt6dRNgfAQ0/s1600/averageCalculateCountSummary.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/-5fCGFPE7eAQ/UV6YD0YY31I/AAAAAAAABDk/Pt6dRNgfAQ0/s640/averageCalculateCountSummary.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Exam rostering:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-rwZZxxe_QXs/UV6YI_5zBHI/AAAAAAAABDs/wTKDAtyKzi0/s1600/averageCalculateCountSummary.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-rwZZxxe_QXs/UV6YI_5zBHI/AAAAAAAABDs/wTKDAtyKzi0/s640/averageCalculateCountSummary.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Easier&lt;/h3&gt;
&lt;i&gt;"Show me the code!"&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
For starters, the accumulateHardScore and accumulateSoftScore rules are removed. Less boilerplate :) Next, each of the score rule's RHS (= then side) is simpler:&lt;br /&gt;
&lt;br /&gt;
Before:&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rule "conflictingLecturesSameCourseInSamePeriod"&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insertLogical(new IntConstraintOccurrence("conflictingLecturesSameCourseInSamePeriod", ConstraintType.HARD,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -1,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $leftLecture, $rightLecture));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
After:&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rule "conflictingLecturesSameCourseInSamePeriod"&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scoreHolder.addHardConstraintMatch(kcontext, -1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Notice that you don't need to repeat the ruleName or the causes (the lectures) no more. OptaPlanner figures out it itself through the kcontext variable. Drools automatically exposes the kcontext variable in the RHS, so you don't need any extra code for it. Also, the limited ConstraintType enum has been replaced by a Score type specific method, to allow OptaPlanner to better support multilevel score types, for example &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;HardMediumSoftScore&lt;/span&gt; and &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;BendableScore&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
You also no longer need to hack the API's to get a list of all ConstraintOcurrence's: the ConstraintMatch objects (and their totals per constraint) are available directly on the ScoreDirector API.&lt;br /&gt;
&lt;br /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=K8KKBoJAsBc:_g9jwzhLhKM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=K8KKBoJAsBc:_g9jwzhLhKM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=K8KKBoJAsBc:_g9jwzhLhKM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=K8KKBoJAsBc:_g9jwzhLhKM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=K8KKBoJAsBc:_g9jwzhLhKM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=K8KKBoJAsBc:_g9jwzhLhKM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=K8KKBoJAsBc:_g9jwzhLhKM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=K8KKBoJAsBc:_g9jwzhLhKM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=K8KKBoJAsBc:_g9jwzhLhKM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=K8KKBoJAsBc:_g9jwzhLhKM:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/K8KKBoJAsBc" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/K8KKBoJAsBc/score-drl-faster-and-easier-in.html</link><author>noreply@blogger.com (Geoffrey De Smet)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-pVqGbYLtMsc/UV6X2OB1xeI/AAAAAAAABDU/CLqKH3_fI60/s72-c/averageCalculateCountSummary.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.athico.com/2013/04/score-drl-faster-and-easier-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-4679513652987412543</guid><pubDate>Thu, 21 Mar 2013 18:35:00 +0000</pubDate><atom:updated>2013-03-21T18:40:12.388Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">planner</category><title>Drools Planner renames to OptaPlanner: Announcing www.optaplanner.org</title><description>&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;We’re  proud to announce the rename Drools Planner to OptaPlanner starting  with version 6.0.0.Beta1. We’re also happy to unveil its new website: &lt;/span&gt;&lt;a href="http://www.optaplanner.org/"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;www.optaplanner.org&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;OptaPlanner  optimizes business resource usage. Every organization faces planning  problems: provide products or services with a limited set of &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;constrained&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;  resources (employees, assets, time and money). OptaPlanner optimizes  such planning to do more business with less resources. Typical use cases  include vehicle routing, employee rostering and equipment scheduling.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;OptaPlanner  is a lightweight, embeddable planning engine written in Java™. It helps  normal Java™ programmers solve constraint satisfaction problems  efficiently. Under the hood, it combines optimization heuristics and  metaheuristics with very efficient score calculation.&lt;/span&gt;&lt;/div&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;OptaPlanner is open source software, released under &lt;/span&gt;&lt;a href="http://www.jboss.org/optaplanner/code/license.html"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;the Apache Software License&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;. It is 100% pure Java™, runs on the JVM and is available in &lt;/span&gt;&lt;a href="http://www.jboss.org/optaplanner/download/download.html"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;the Maven Central Repository&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; too.&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;For more information, visit the new website:&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; &amp;nbsp;&lt;/span&gt;&lt;a href="http://www.optaplanner.org/"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;http://www.optaplanner.org&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 21px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 21px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;"&gt;Why change the name?&lt;/span&gt;&lt;/h2&gt;
&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;OptaPlanner  is the new name for Drools Planner. OptaPlanner is now standalone, but  can still be optionally combined with the Drools rule engine for a  powerful declarative approach to planning optimization.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;OptaPlanner has graduated from the &lt;/span&gt;&lt;a href="http://www.jboss.org/drools"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;Drools&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; project to become a top-level &lt;/span&gt;&lt;a href="http://www.jboss.org/"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;JBoss Community&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; project.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;OptaPlanner is not a fork of Drools Planner. We simply renamed it.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;OptaPlanner (the planning engine) joins its siblings Drools (the rule engine) and jBPM (the workflow engine) in the KIE group.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Our commitment to Drools hasn't changed.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The efficient Drools rule engine is still the recommended way to do score calculation.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Alternative score calculation options, such as pure Java calculation (no Drools), also remain fully supported.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 21px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 21px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;"&gt;How will this affect your business?&lt;/span&gt;&lt;/h2&gt;
&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;From a business point of view, there's &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;"&gt;little or no change&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The mission remains unchanged:&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;We're still 100% committed to put &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;business resource optimization&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; in the hands of normal Java developers.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The license remains unchanged (Apache Software License 2.0). It's still the same open source license.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The release lifecycle remains unchanged: OptaPlanner is still released at the same time as Drools and jBPM.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Red Hat is considering support subscription offerings for OptaPlanner as part of its &lt;/span&gt;&lt;a href="http://www.redhat.com/products/jbossenterprisemiddleware/business-rules/"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;BRMS&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; and BPM platforms.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;A &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Tech Preview&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; of OptaPlanner is targeted for BRMS 6.0.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 21px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 21px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;"&gt;What has changed?&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The website has changed to &lt;/span&gt;&lt;a href="http://www.optaplanner.org/"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;http://www.optaplanner.org&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The distributions artifacts have changed name:&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Jar names changes:&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: square; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;drools-planner-core-*.jar is now optaplanner-core-*.jar&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: square; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;drools-planner-benchmark-*.jar is now optaplanner-benchmark-*.jar&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Maven identification groupId's and artifactId's changes:&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: square; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;groupId org.drools.planner is now org.optaplanner&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: square; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;artifactId drools-planner-core is now optaplanner-core&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: square; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;artifactId drools-planner-benchmark is now optaplanner-benchmark&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;As usual, for more information see the Upgrade Recipe in the download zip.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The API's namespace has changed. As usual, see &lt;/span&gt;&lt;a href="https://github.com/droolsjbpm/optaplanner/blob/master/optaplanner-distribution/src/main/assembly/filtered-resources/UpgradeFromPreviousVersionRecipe.txt"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;the upgrade recipe&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; on how to deal with this efficiently.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: circle; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Starting from 6.1.0.Final, OptaPlanner will have a 100% backwards compatible API.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;OptaPlanner gets its own IRC channels on &lt;/span&gt;&lt;a href="http://freenode.net/"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;Freenode&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;: #optaplanner and #optaplanner-dev&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=GtATFeBp39E:GuAsAoAKYmg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=GtATFeBp39E:GuAsAoAKYmg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=GtATFeBp39E:GuAsAoAKYmg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=GtATFeBp39E:GuAsAoAKYmg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=GtATFeBp39E:GuAsAoAKYmg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=GtATFeBp39E:GuAsAoAKYmg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=GtATFeBp39E:GuAsAoAKYmg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=GtATFeBp39E:GuAsAoAKYmg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=GtATFeBp39E:GuAsAoAKYmg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=GtATFeBp39E:GuAsAoAKYmg:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/GtATFeBp39E" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/GtATFeBp39E/drools-planner-renamed-to-optaplanner.html</link><author>noreply@blogger.com (Geoffrey De Smet)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2013/03/drools-planner-renamed-to-optaplanner.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-6393053221774382755</guid><pubDate>Tue, 12 Mar 2013 14:58:00 +0000</pubDate><atom:updated>2013-03-12T15:10:27.897Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">Drools</category><category domain="http://www.blogger.com/atom/ns#">book</category><title>Instant Drools Starter : Pack Publishing (Jeremy Ary)</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div&gt;
&lt;a href="http://www.packtpub.com/sites/default/files/5545OS_mockupcover_Instant-starter.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://www.packtpub.com/sites/default/files/5545OS_mockupcover_Instant-starter.jpg" width="259" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;
We all start somewhere. My start with Drools came 5 years ago when I was tasked with maintaining some legacy rules and assisting with a new ground-up effort using the latest and greatest Drools release at the time. I dug through documentation, ordered every book I could find on the subject, and pestered Mark, Edson and others in the community willing to help way more than they probably cared for, but in the end, the community helped start me out with what I'd soon find to be my new obsession. Now, I feel like it's time for me to give something back.
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
If you're an architect, manager, or developer looking to evaluate or get started with Drools, you may find my new book, Drools Starter, to be a great way to get up and running quickly. I've done my best to compile all the basics needed to get a feel for working with the core engine into a brief, easy-to-digest guide. Here's some of what's covered inside:
&lt;/div&gt;
&lt;div style="clear: both;"&gt;
&lt;ul&gt;
&lt;li&gt;Evaluate rules engines as a fit for your needs &lt;/li&gt;
&lt;li&gt;Installing Drools and development tools&lt;/li&gt;
&lt;li&gt;Authoring rule sets using the Drools Rule Language&lt;/li&gt;
&lt;li&gt;Feeding information to your rules engine and evaluating rules&lt;/li&gt;
&lt;li&gt;Understanding DRL syntax, operators, and functionality&lt;/li&gt;
&lt;li&gt;Testing rules as a whole, individually, and for stability&lt;/li&gt;
&lt;li&gt;Debugging the rule evaluation process visually and via logging&lt;/li&gt;
&lt;li&gt;What modules make up the Drools system and the capabilities of each&lt;/li&gt;
&lt;li&gt;Where to turn for more information and help&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
The book is currently available for pre-order &lt;b&gt;(at a 20% discount!)&lt;/b&gt; over at Pack Publishing:
&lt;a href="http://www.packtpub.com/getting-started-with-drools/book"&gt;http://www.packtpub.com/getting-started-with-drools/book&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I owe a large thanks to the community in helping me on my way through the last several years, especially to those in IRC and the mailing list who've aided with numerous predicaments and design choices along the way. Particular thanks to Mark, Edson and the rest of the development team for continued work on a great product and a great community, but especially to the two of you for spending too many hours in conversation online and at conferences helping myself and others like me find their way.
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Jeremy Ary (jary)
&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=mQuomloe38c:UIsh808dlmA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=mQuomloe38c:UIsh808dlmA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=mQuomloe38c:UIsh808dlmA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=mQuomloe38c:UIsh808dlmA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=mQuomloe38c:UIsh808dlmA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=mQuomloe38c:UIsh808dlmA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=mQuomloe38c:UIsh808dlmA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=mQuomloe38c:UIsh808dlmA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=mQuomloe38c:UIsh808dlmA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=mQuomloe38c:UIsh808dlmA:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/mQuomloe38c" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/mQuomloe38c/instant-drools-starter-pack-publishing.html</link><author>noreply@blogger.com (Mark Proctor)</author><thr:total>3</thr:total><feedburner:origLink>http://blog.athico.com/2013/03/instant-drools-starter-pack-publishing.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-3928433023268434210</guid><pubDate>Thu, 14 Feb 2013 11:26:00 +0000</pubDate><atom:updated>2013-02-14T11:28:44.259Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">planner</category><title>Automatic solution cloning in Planner</title><description>For &lt;a href="http://www.jboss.org/drools/drools-planner"&gt;Planner&lt;/a&gt; 6.0.0.Beta1, implementing the Solution's planning clone method is now optional. This means there's &lt;b&gt;less boilerplate code&lt;/b&gt; to write. Also, because the planning clone method notoriously hard to write from scratch (most people just copy pasted the examples to avoid mistakes), it's now easier to get started with Planner too.&lt;br /&gt;
&lt;br /&gt;
The out-of-the-box &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SolutionCloner&lt;/span&gt; works well for most use cases: it's fast, yet still does a few sanity checks to detect errors.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Custom solution cloning &lt;/h3&gt;
You can still choose to roll your own solution cloning. Now, it's also documented what Planner expects you to do:&lt;br /&gt;
&lt;br /&gt;
A planning clone of a &lt;code class="literal"&gt;Solution&lt;/code&gt; must fulfill these requirements:&lt;br /&gt;
&lt;div class="itemizedlist"&gt;
&lt;ul&gt;
&lt;li&gt;The clone must represent the same planning problem. Usually it reuses the same instances of the
            problem facts and problem fact collections as the original.&lt;/li&gt;
&lt;li&gt;The clone must use different, cloned instances of the entities and entity collections. Changes to the
            original &lt;code class="literal"&gt;Solution&lt;/code&gt;'s entities must not effect its clone.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-yc4A0GuZh84/URzHgV5A-2I/AAAAAAAABBM/mmy73Ux7AVU/s1600/solutionCloning.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-yc4A0GuZh84/URzHgV5A-2I/AAAAAAAABBM/mmy73Ux7AVU/s640/solutionCloning.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And there's also warning, in case you're using chained planning variables, for a common pitfall:&lt;br /&gt;
&lt;i&gt;Cloning an entity with a chained variable is devious: a variable of an entity A might point to another entity B. If A is cloned, then it's variable must point to the clone of B, not the original B.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
But don't worry about that: just use the default &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SolutionCloner&lt;/span&gt;, which will take care of all that for you.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=3OCBL5CVw5s:Zq2Cu5zirdA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=3OCBL5CVw5s:Zq2Cu5zirdA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=3OCBL5CVw5s:Zq2Cu5zirdA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=3OCBL5CVw5s:Zq2Cu5zirdA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=3OCBL5CVw5s:Zq2Cu5zirdA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=3OCBL5CVw5s:Zq2Cu5zirdA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=3OCBL5CVw5s:Zq2Cu5zirdA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=3OCBL5CVw5s:Zq2Cu5zirdA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=3OCBL5CVw5s:Zq2Cu5zirdA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=3OCBL5CVw5s:Zq2Cu5zirdA:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/3OCBL5CVw5s" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/3OCBL5CVw5s/automatic-solution-cloning-in-planner.html</link><author>noreply@blogger.com (Geoffrey De Smet)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-yc4A0GuZh84/URzHgV5A-2I/AAAAAAAABBM/mmy73Ux7AVU/s72-c/solutionCloning.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2013/02/automatic-solution-cloning-in-planner.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-1772798395794405127</guid><pubDate>Wed, 13 Feb 2013 23:30:00 +0000</pubDate><atom:updated>2013-02-13T23:30:18.410Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>Dropping JSR94</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
We are thinking of dropping JSR94 support in the next release, especially as it doesn't align with our new approach to building rules - which is convention and configuration based, rather than api based.&lt;br /&gt;
&lt;br /&gt;
If anyone has a good case for keeping JSR94, please leave a comment.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=i6Sf5dhqAmY:IpxFzZwrDpg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=i6Sf5dhqAmY:IpxFzZwrDpg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=i6Sf5dhqAmY:IpxFzZwrDpg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=i6Sf5dhqAmY:IpxFzZwrDpg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=i6Sf5dhqAmY:IpxFzZwrDpg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=i6Sf5dhqAmY:IpxFzZwrDpg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=i6Sf5dhqAmY:IpxFzZwrDpg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=i6Sf5dhqAmY:IpxFzZwrDpg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=i6Sf5dhqAmY:IpxFzZwrDpg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=i6Sf5dhqAmY:IpxFzZwrDpg:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/i6Sf5dhqAmY" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/i6Sf5dhqAmY/dropping-jsr94.html</link><author>noreply@blogger.com (Mark Proctor)</author><thr:total>6</thr:total><feedburner:origLink>http://blog.athico.com/2013/02/dropping-jsr94.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-4214943451611363766</guid><pubDate>Wed, 06 Feb 2013 21:43:00 +0000</pubDate><atom:updated>2013-02-06T21:44:05.441Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">Rules</category><category domain="http://www.blogger.com/atom/ns#">BRMS</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>Design Patterns in Production Systems (Wolfgang Laun)</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;a href="http://4.bp.blogspot.com/-jdnJcYrxVT4/URLMl7fSm9I/AAAAAAAAA30/EyZN_cGFIV8/s1600/wolfgang_laun_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-jdnJcYrxVT4/URLMl7fSm9I/AAAAAAAAA30/EyZN_cGFIV8/s1600/wolfgang_laun_2.png" /&gt;&lt;/a&gt;
Many thanks to Wolfgang Laun for making his extensive work available for all of us to benefit from. The free pdf is just a short registration page away:&lt;br /&gt;
&lt;a href="https://engage.redhat.com/forms/rule-design-patterns"&gt;https://engage.redhat.com/forms/rule-design-patterns&lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;a href="http://4.bp.blogspot.com/-zU9TXFIvT3M/URLNuInPCII/AAAAAAAAA4E/jGvM4BR0VdE/s1600/Screen%2BShot%2B2013-02-06%2Bat%2B21.30.17.png" imageanchor="1"&gt;&lt;img border="0" height="545" src="http://4.bp.blogspot.com/-zU9TXFIvT3M/URLNuInPCII/AAAAAAAAA4E/jGvM4BR0VdE/s640/Screen%2BShot%2B2013-02-06%2Bat%2B21.30.17.png" width="640" /&gt;&lt;/a&gt;


&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=wco7r147zdQ:GI8jGx_30tE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=wco7r147zdQ:GI8jGx_30tE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=wco7r147zdQ:GI8jGx_30tE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=wco7r147zdQ:GI8jGx_30tE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=wco7r147zdQ:GI8jGx_30tE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=wco7r147zdQ:GI8jGx_30tE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=wco7r147zdQ:GI8jGx_30tE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=wco7r147zdQ:GI8jGx_30tE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=wco7r147zdQ:GI8jGx_30tE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=wco7r147zdQ:GI8jGx_30tE:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/wco7r147zdQ" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/wco7r147zdQ/design-patterns-in-production-systems.html</link><author>noreply@blogger.com (Mark Proctor)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-jdnJcYrxVT4/URLMl7fSm9I/AAAAAAAAA30/EyZN_cGFIV8/s72-c/wolfgang_laun_2.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.athico.com/2013/02/design-patterns-in-production-systems.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-6776457139613524292</guid><pubDate>Wed, 16 Jan 2013 13:56:00 +0000</pubDate><atom:updated>2013-01-16T15:26:48.018Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">planner</category><title>Scaling construction heuristics part 1: multiple variables</title><description>For &lt;a href="http://www.jboss.org/drools/drools-planner"&gt;Drools Planner&lt;/a&gt; 6.0, I am working on &lt;b&gt;highly scalable construction heuristics&lt;/b&gt;. Furthermore, they 'll be far more flexible and optionally configurable. This post focuses on how multiple planning variables affect scalability.&lt;br /&gt;
&lt;br /&gt;
In the &lt;a href="http://docs.jboss.org/drools/release/5.5.0.Final/drools-planner-docs/html_single/index.html#curriculumCourse" target="_blank"&gt;curriculum course&lt;/a&gt; use case, the planning entity &lt;i&gt;Lecture&lt;/i&gt; has a planning variable &lt;i&gt;Period&lt;/i&gt; and a planning variable &lt;i&gt;Room&lt;/i&gt;. That makes 2 planning variables per entity. For example, &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;dataset comp07 has 434 lectures, 25 periods and 20 rooms&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-uNO3PcQB-C4/UPaoBt9oJ1I/AAAAAAAAA_E/yBuDH1908SQ/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="113" src="http://3.bp.blogspot.com/-uNO3PcQB-C4/UPaoBt9oJ1I/AAAAAAAAA_E/yBuDH1908SQ/s640/1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Suppose we use the &lt;a href="http://docs.jboss.org/drools/release/5.5.0.Final/drools-planner-docs/html_single/index.html#d0e6126" target="_blank"&gt;construction heuristic &lt;i&gt;First Fit Decreasing&lt;/i&gt; (FFD)&lt;/a&gt; on that. Simply explained: FFD sorts the lectures in a queue, takes the first lecture from that queue and assigns it the best remaining Period and Room. It repeats this until all lectures are assigned.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
What's wrong with the old FFD implementation?&lt;/h3&gt;
&lt;br /&gt;
If there are multiple variables, the old implementation will, for every lecture, try a combination of every period and every room. So, for every lecture, it will try a &lt;b&gt;cartesian product&lt;/b&gt; of the period value set and the room value set. In comp07 it tries &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;25 periods * 20 rooms = 500 moves&lt;/span&gt; for each of the 434 lectures. Suppose I have 5 variables of 1 000 values each: that would make &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;1 000 000 000 000 000 moves&lt;/span&gt; per entity!&lt;br /&gt;
&lt;br /&gt;
The new implementation now also supports an alternative: do a &lt;b&gt;union&lt;/b&gt; instead: for every lecture, try every period and assign the period, then try every room and assign the room. In comp07 it tries &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;25 period &lt;complete id="goog_1437795718"&gt;+ &lt;/complete&gt;20 rooms = 45 moves&lt;/span&gt; for each of the 434 lectures. With 5 variables of 1 000 values each, that would make only &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;5 000 moves&lt;/span&gt; per entity.&lt;br /&gt;
&lt;br /&gt;
So how does this affect score results and performance?&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Benchmark cartesianProduct vs union of multiple variables&lt;/h3&gt;
&lt;br /&gt;
Unsurprisingly, &lt;i&gt;cartesianProduct&lt;/i&gt; has consistently better results than &lt;i&gt;union&lt;/i&gt; (because it investigates much more combinations):&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-NCP45hfllx8/UParDCuCe2I/AAAAAAAAA_U/O82-h2pFkVU/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="97" src="http://3.bp.blogspot.com/-NCP45hfllx8/UParDCuCe2I/AAAAAAAAA_U/O82-h2pFkVU/s640/2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;i&gt;Union&lt;/i&gt; breaks more hard and soft constraints. But this is an unfair comparison: &lt;i&gt;union&lt;/i&gt; took less time. So that leaves more time for local search to optimize those constraints.&lt;br /&gt;
&lt;br /&gt;
If we look at the number of milliseconds to run both algorithms, we can clearly see that &lt;i&gt;cartesianProduct&lt;/i&gt; takes much longer than &lt;i&gt;union&lt;/i&gt;. &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-SiSNXVREM_Q/UParDDTRf0I/AAAAAAAAA_c/fFkIIBmO0hg/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" src="http://4.bp.blogspot.com/-SiSNXVREM_Q/UParDDTRf0I/AAAAAAAAA_c/fFkIIBmO0hg/s640/3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
Especially if we look at the scalability graph, we can see a clear &lt;b&gt;scalability problem with &lt;i&gt;cartesianProduct&lt;/i&gt;&lt;/b&gt;, unlike with &lt;i&gt;union&lt;/i&gt;: &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-9bi-qb-TFs4/UParDP6MJpI/AAAAAAAAA_Y/xxD-rRDW_5o/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="286" src="http://3.bp.blogspot.com/-9bi-qb-TFs4/UParDP6MJpI/AAAAAAAAA_Y/xxD-rRDW_5o/s640/4.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
Here, there are only with 2 planning variables (period and room). More planning variables has even worse scalability.&lt;br /&gt;
&lt;br /&gt;
So what can Local Search do with that extra time? Let's give both configurations 2 minutes, so local search gets whatever time is left after the construction heuristic has finished:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-LTiv6RczuvE/UPaufrrLwdI/AAAAAAAAA_0/qdahtKT6gVg/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="120" src="http://4.bp.blogspot.com/-LTiv6RczuvE/UPaufrrLwdI/AAAAAAAAA_0/qdahtKT6gVg/s640/6.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
For this dataset scale, there's no clear winner in this case: they are competitive. If we scale out, I imagine we 'll see &lt;i&gt;union&lt;/i&gt; as the clear winner. So if my dataset is small/medium and I have an execution time of at least 1 minute, I might go for &lt;i&gt;cartesianProduct&lt;/i&gt;. Otherwise, I 'd prefer &lt;i&gt;union&lt;/i&gt;. In any case, I 'd use the Drools Planner's &lt;a href="http://docs.jboss.org/drools/release/5.5.0.Final/drools-planner-docs/html_single/index.html#benchmarkingAndTweaking" target="_blank"&gt;benchmarker toolkit&lt;/a&gt; to help me decide that.&lt;br /&gt;
&lt;br /&gt;
Interested in the benchmark's details? &lt;a href="http://docs.jboss.org/drools/blog/2013-01-16/" target="_blank"&gt;Take a look at the full benchmark report here.&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=U6b2VwvvD5s:NchvWOPZYHA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=U6b2VwvvD5s:NchvWOPZYHA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=U6b2VwvvD5s:NchvWOPZYHA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=U6b2VwvvD5s:NchvWOPZYHA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=U6b2VwvvD5s:NchvWOPZYHA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=U6b2VwvvD5s:NchvWOPZYHA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=U6b2VwvvD5s:NchvWOPZYHA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=U6b2VwvvD5s:NchvWOPZYHA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=U6b2VwvvD5s:NchvWOPZYHA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=U6b2VwvvD5s:NchvWOPZYHA:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/U6b2VwvvD5s" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/U6b2VwvvD5s/scaling-construction-heuristics-part-1.html</link><author>noreply@blogger.com (Geoffrey De Smet)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-uNO3PcQB-C4/UPaoBt9oJ1I/AAAAAAAAA_E/yBuDH1908SQ/s72-c/1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2013/01/scaling-construction-heuristics-part-1.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-7726273961695520298</guid><pubDate>Wed, 02 Jan 2013 18:13:00 +0000</pubDate><atom:updated>2013-01-03T18:12:54.921Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">Rete</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>Life Beyond Rete - R.I.P Rete 2013 :)</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: left;"&gt;
I'm just putting the final touches onto my new algorithm. It merges concepts from &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.8595"&gt;Leaps&lt;/a&gt;, &lt;a href="http://teamcore.usc.edu/papers/1993/cikm-final.pdf"&gt;Collection Oriented Match&lt;/a&gt; and &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.6246"&gt;Left/Right unlinking&lt;/a&gt;, as well as a few ideas of my own. The code is committed, but I'm just getting accumulate to work and writting some more tests. I'll do a full blog in a week or so, writting about it in more detail, hopefully accompanied with an alpha for people to play with.&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
The algorithm addresses the greedy and wasteful nature of Rete. This will make it suitable for more constrained environments, such as mobile devices, or browsers if we do a JS port with GWT. Further it's been designed with multi-core utilisation in mind - although I haven't implemented that yet.&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
For those with an understanding of the terminologies, here is a bullet point list of what I've done so far.&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Rule unlinking&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;With segments to preserve sharing. Bit masks used for right input and segments, for efficient checking.&lt;/li&gt;
&lt;li&gt;A Segment has it's bit set, when all right inputs have their bit set.&lt;/li&gt;
&lt;li&gt;A rule is linked in, when each segment has it's bit set.&lt;/li&gt;
&lt;li&gt;No beta evaluation happens until a rule is both fully linked in an popped of the agenda (see lazy rule evaluation)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;A linked rule can be unlinked, when any of right inputs has no data&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;All full and partial join data is preserved.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;avoids re-calculation when rule is re-linked&lt;/li&gt;
&lt;li&gt;Stops further wasted join attempts until the rule is likely to fire&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;GC algorithm is needed, so joins can be removed from memory if not used for some time.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;I suspect we could use arc consistency to further delay when a bit is set, rather than simple the existing of a right input&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Lazy rule evaluation&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Rule's beta network is not evaluated when linked. Instead it's added to the priority queue, only when it pops do we evaluate it's beta network&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Set Oriented propagations&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;All insert, update and deletes are staged for the right inputs, until rule is evaluated.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Beta network evaluation starts at the root&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;All inset/update/delete's are processed together resulting in a set of tuples to be propagated to the next node&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The set of tuples has separate lists for inserted, updated, deleted tuples.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Ensures course grained node evaluation, ideal for multi-core scheduling.&lt;/li&gt;
&lt;li&gt;Single pass propagation, instead of typical Rete which depth search thrashes the network.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Note we do not yet do collection oriented match, which collapses the match space in a node.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;While we borrowed the collection propagation concept, the defragmentation process of collection oriented match needs a lot more thought, as it has downsides.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;While not done yet, we will now be able to support set oriented executions, as well as propagations. Ideas for this are outlined here, &lt;a href="https://community.jboss.org/wiki/RuleExecutionSemantics"&gt;https://community.jboss.org/wiki/RuleExecutionSemantics&lt;/a&gt;, inspired by &lt;a href="http://academiccommons.columbia.edu/catalog/ac%3A145022"&gt;DADO&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Modify in place/Differential Update&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Modifies are real, instead of a retract + assert&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Allows for compensation "undo" actions, as we know what really was deleted and what was updated.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Preserves objects, to avoid GC hit.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Property Reactive&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Patterns can listen and react to specific property changes&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Think of it as a property change listener, rather than the current class change listener&lt;/li&gt;
&lt;li&gt;Defaults to listen to constrained fields, users may override what they do or don't listen to.&lt;/li&gt;
&lt;li&gt;Uses bit masks to keep it efficient&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Tree based graphs&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Retracts simply need to iterate the graph&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Allows for efficient "modify in place"&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Subnetwork support&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;not, exists, accumulates can supported nested groups and patterns&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Is supported as part of the single pass network evaluation&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Our tuple set reaches the left input, and then recursively evaluates the subetnworks(s). This then eventually results in a single set of tuples again, which is applied to our current node, resulting in a single set to propagate to the child.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
While not complete, here are some TODO items I can think of, to give an idea of near and longer term ideas:&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;More efficient sub-networking&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;The new design allows for more efficient execution within subnetworks, but we have yet to take advantage of this.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;GC Joins&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Allow joins to be GC'd after a period of time, if they are not used, but also must support recreation while not invalidating the execution sequence of rules (i.e. a rule must not fire again, if it's already fired)&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Different network topologies&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Rete network's always join from left to right, this is not always efficient. &lt;a href="http://www.aaai.org/Papers/AAAI/1987/AAAI87-008.pdf"&gt;Treat&lt;/a&gt; and &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.35.140"&gt;Gator&lt;/a&gt; networks look at how different topologies can reduce the number of join attempts, it can also improve sharing with our new segmentation based network.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Multi-core work&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;The design now is already queued based, and supports coarse grained units of work. We now need to start creating the thread model and better isolating and separating the alpha network propagation process. This involves refactoring our existing locking model.&lt;/li&gt;
&lt;li&gt;Efficient testing of overlapping rules is needed - i.e does one rule share &amp;nbsp;segment with another rule. This will allow us to evaluate rules, without sync points.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;Intelligent Linking&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;At the moment linking is done by setting a bit, when a right input receives a single fact. Arc consistency can be used to further delay this linking process, only linking in a rule segment and also a rule, when arc consistency is achieved.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;MVCC and Transactions&lt;/b&gt;&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;The propagation model should support Multi-Version Concurrent Control. This will be necessary to get better multi-core support, and it will enable transactions support.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;R.I.P.&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;RETE 2013 :)&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=bb4E32ExjZg:YqcKZgac_Ek:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=bb4E32ExjZg:YqcKZgac_Ek:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=bb4E32ExjZg:YqcKZgac_Ek:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=bb4E32ExjZg:YqcKZgac_Ek:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=bb4E32ExjZg:YqcKZgac_Ek:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=bb4E32ExjZg:YqcKZgac_Ek:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=bb4E32ExjZg:YqcKZgac_Ek:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=bb4E32ExjZg:YqcKZgac_Ek:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=bb4E32ExjZg:YqcKZgac_Ek:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=bb4E32ExjZg:YqcKZgac_Ek:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/bb4E32ExjZg" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/bb4E32ExjZg/life-beyond-rete-rip-rete-2013.html</link><author>noreply@blogger.com (Mark Proctor)</author><thr:total>6</thr:total><feedburner:origLink>http://blog.athico.com/2013/01/life-beyond-rete-rip-rete-2013.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-8674365651928423712</guid><pubDate>Sat, 29 Dec 2012 11:17:00 +0000</pubDate><atom:updated>2012-12-29T11:17:23.795Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">electronics</category><category domain="http://www.blogger.com/atom/ns#">Rules</category><category domain="http://www.blogger.com/atom/ns#">processes</category><category domain="http://www.blogger.com/atom/ns#">robot</category><category domain="http://www.blogger.com/atom/ns#">robotics</category><category domain="http://www.blogger.com/atom/ns#">declarative programming</category><category domain="http://www.blogger.com/atom/ns#">sensors</category><category domain="http://www.blogger.com/atom/ns#">hardware</category><category domain="http://www.blogger.com/atom/ns#">actuators</category><category domain="http://www.blogger.com/atom/ns#">jBPM</category><category domain="http://www.blogger.com/atom/ns#">motors</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>Rolo The Robot says: Happy New Year! </title><description>&lt;br /&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Hi Everyone! This is probably my last post of the year and in this occasion I want to share with you all a side project that I've being working on my spare time with my father. In less than 10 days we manage to build a small robot which runs all its logic inside the Drools Rule Engine. This first step main goal was to prove that it is possible to build a low cost robot which will be entirely controlled by the rule engine and the CEP features provided by Drools Fusion. We didn't include any process execution in this first stage, but it is definitely on the roadmap. This post briefly explains what we have now working and what's planned for the future, because this is just the beginning. The interesting side of the project is to make the robot completely autonomous, which means that it will run entirely on its own and without the need to be connected to a computer or to a power outlet in the wall.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;a data-mce-href="http://salaboy.com/2012/12/29/rolo-the-robot-says-happy-new-year/rolo_brand/" href="http://salaboy.com/2012/12/29/rolo-the-robot-says-happy-new-year/rolo_brand/" rel="attachment wp-att-2396"&gt;&lt;img alt="rolo brand" class="aligncenter size-thumbnail wp-image-2396" data-mce-src="http://salaboy.files.wordpress.com/2012/12/rolo_brand.png?w=150" height="77" src="http://salaboy.files.wordpress.com/2012/12/rolo_brand.png?w=150" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" width="150" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/h1&gt;
&lt;h1 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
Introduction&lt;/h1&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
We started building this first prototype with the following goals in mind:&lt;/div&gt;
&lt;ul style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;li&gt;&lt;span data-mce-style="line-height: 13px;" style="line-height: 13px;"&gt;Demonstrate that the Drools &amp;amp; jBPM Platform can help us to build a reliable and declarative&amp;nbsp;environment&amp;nbsp;to code the robot internal knowledge.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Demonstrate that a robot can be constructed on top of the Rule &amp;amp; Process Engine in a reduced and portable platform. Some important points from our perspective are:&lt;ul&gt;
&lt;li&gt;It needs to run without an external computer&lt;/li&gt;
&lt;li&gt;It needs to be autonomous and run on batteries to have freedom of mobility&lt;/li&gt;
&lt;li&gt;It can be monitored and contacted via wireless&lt;/li&gt;
&lt;li&gt;It needs to react in near real time and process information without requiring long periods of time. We are doing the tests with 100 millisecond (because that's more than enough in this stage) lapses now but the performance can be improved to support lower latency.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Test different hardware options to decide which are the best components to use to build different types of robots&lt;/li&gt;
&lt;li&gt;Push the limits and mix the Rule/Process Engine arena with the Hardware/Electronics/Robotics arena.&lt;/li&gt;
&lt;li&gt;Incrementally build a framework to speed up the initial steps&lt;/li&gt;
&lt;li&gt;and of course, make it open source to improve &amp;nbsp;collaboration and to join forces with other people which are interested in the same topics.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/h1&gt;
&lt;h1 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
Hardware&lt;/h1&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 235px;" id="attachment_2395" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 235px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.com/2012/12/29/rolo-the-robot-says-happy-new-year/photo-1/" href="http://salaboy.com/2012/12/29/rolo-the-robot-says-happy-new-year/photo-1/" rel="attachment wp-att-2395"&gt;&lt;img alt="Rolo!" class="size-medium wp-image-2395" data-mce-src="http://salaboy.files.wordpress.com/2012/12/photo-1.jpg?w=225" height="300" src="http://salaboy.files.wordpress.com/2012/12/photo-1.jpg?w=225" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" width="225" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Rolo!&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
My father (Jose Salatino), "the electronic geek" help me with all the hardware side of the robot. I've started looking at the Lego NXT and WEDO platforms to see if we can reuse some of the cool things that they have designed, but the NXT runs with J2ME and it's old at this point. I'm looking forward to see if they release something new soon. The Lego WEDO and Power Functions looks promising, but they have several limitations such as: reduced number of devices that you can handle via the USB port and there are some expensive pieces that you need to get if you want to make it work. When my father started playing with&amp;nbsp;&lt;a data-mce-href="http://arduino.cc" href="http://arduino.cc/"&gt;Arduino&lt;/a&gt;&amp;nbsp;we find a lot of advantages which help us to get everything working in almost no time. In the other hand the Lego Motor &amp;amp; Sensors provide us a great and scalable environment to create advanced prototypes. For that reason, we choose to use Arduino as a central Hub to control a set of Sensor, Motors and Actuators, no matter if they are Lego or not.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The following figure shows the wiring between the different components that we are using, most of the components can be changed without affecting the software architecture:&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 310px;" id="attachment_2390" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 310px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.com/2012/12/29/rolo-the-robot-says-happy-new-year/schematic/" href="http://salaboy.com/2012/12/29/rolo-the-robot-says-happy-new-year/schematic/" rel="attachment wp-att-2390"&gt;&lt;img alt="Hardware Wiring" class="size-medium wp-image-2390" data-mce-src="http://salaboy.files.wordpress.com/2012/12/schematic.png?w=300" height="164" src="http://salaboy.files.wordpress.com/2012/12/schematic.png?w=300" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" width="300" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Hardware Wiring&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
This list summarize the list of components that we are using, please note that there are a lot of things to improve so this infrastructure is in no way set in stone:&lt;/div&gt;
&lt;ul style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;li&gt;&lt;span data-mce-style="line-height: 13px;" style="line-height: 13px;"&gt;1 x Raspberry Pi Model B&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;1 x Arduino Uno&lt;/li&gt;
&lt;li&gt;2 x Lego NXT Servo Motor&lt;/li&gt;
&lt;li&gt;1 x SR04 Ultra Sonic Sensor (Distance Sensor)&lt;/li&gt;
&lt;li&gt;1 x SG90 180 Servo Motor&lt;/li&gt;
&lt;li&gt;2 Battery Packs (10 AA batteries) -&amp;gt; we are working on this, don't worry ;)&lt;/li&gt;
&lt;li&gt;1 x USB Wireless Dongle&lt;/li&gt;
&lt;li&gt;1 x LDR Sensor (Light Sensor)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/h2&gt;
&lt;h2 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
Hardware Roadmap&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
From the Hardware perspective there are a lot of things to do. We will start researching about the I2C &amp;nbsp;protocol to replace all the serial communications. We know that I2C is the way to go, but we didn't had time yet to do all the necessary tests. We currently have a hardware/physical limitation about the number of devices that we can set up. We want to push the platform limits so we will be looking forward to add more motors and more sensors to increase the robot complexity and see how far we can go.&lt;/div&gt;
&lt;h1 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/h1&gt;
&lt;h1 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
Software&lt;/h1&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
From the software perspective we have a bunch of things to solve, but this section gives a quick overview about what has been done until now. We need to understand that the Raspberry Pi is not a PC, it's an ARM machine, which is a completely different infrastructure. For Java that's not supposed to be a problem, but it is. When you want to access the serial port or use the USB port to transmit data, you will start facing common issues about native libraries which are not compiled for the ARM platform. Once we manage to solve those issues we need to find a way to interact with the Arduino Board which is programmed in C/C++. Luckily for us there is &amp;nbsp;software called&amp;nbsp;&lt;a data-mce-href="http://firmata.org" href="http://firmata.org/"&gt;Firmata&lt;/a&gt;&amp;nbsp;which externalise via the Serial port the whole board. Using this software we can read and write digital/analog information from the board pins.&amp;nbsp;&amp;nbsp;This helps us a lot, because we will write a standard software inside the Arduino which will allow us to write/read all the information that we need into the board to control the motors and read the sensors. &amp;nbsp;Unfortunately, as every standard we hit a non covered sensor (SR04 - UltraSonic Sensor), and for that reason we provided a slightly modified version of the Firmata Sketch, which can be found inside the project source repository. From the Java Perspective, there is a library called&amp;nbsp;&lt;a data-mce-href="http://processing.org" href="http://processing.org/"&gt;processing&lt;/a&gt;&amp;nbsp;(Processing is an open source programming language and environment for people who want to create images, animations, and interactions) which has a number of sub libraries, one of them for interacting with Firmata. I borrowed two classes from Processing in order to customize to my particular needs. From the beginning I wanted to use Processing because believe that it has a lot of potential to be mixed with the Process and Rules Engine, but this initial stage is not taking advantage of it.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The following figure shows from a high level perspective the different software components that runs in order to bring Rolo to life:&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 640px;" id="" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 640px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;img alt="" class="  " data-mce-src="https://raw.github.com/Salaboy/rolo_the_robot/master/rolo-the-robot-blueprint/Rolo-Overview.png" height="329" src="https://raw.github.com/Salaboy/rolo_the_robot/master/rolo-the-robot-blueprint/Rolo-Overview.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" width="630" /&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Software Components&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
As you can see, the Rolo Server expose and recieve information via JMS which allows us to build a Monitor to see the information and send more imperative commands or information about the world to the robot. Rolo Server is basically a Drools/jBPM Knowledge Session now, but a more robust schema with multiple sessions for different purpose will be adopted in future stages.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The Rules right now have access to all the Motors and Sensors information allowing us to write rules using those values. All the sensors input data are considered as events and for this reason we can use all the Drools Fusion temporal operators.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The following two rules are simple examples about what is being done inside the robot right now:&lt;/div&gt;
&lt;pre style="color: #333333; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;rule "Something too close - Robot Go Back"
   when
        $r: RoloTheRobot()
        $m: Motor(  )
        UltraSonicSensor( $sensor: name )
        $n: Number( doubleValue &amp;lt; 30) from accumulate (
                    DistanceReport( sensorName == $sensor, $d: distance )
                                    over window:time( 300ms )
                                    from entry-point "distance-sensor", average($d))

   then
       notifications.write("Process-SOMETHING_TOO_CLOSE:"+$n);
       $m.start(120, DIRECTION.BACKWARD);
       Match item = ( Match ) kcontext.getMatch();
              final Motor motor = $m;
              final HornetQSessionWriter notif = notifications;
              ((AgendaItem)item).setActivationUnMatchListener( new ActivationUnMatchListener() {

                    public void unMatch(Session session,
                                        Match match) {
                        System.out.println(" Stop Motor");

                        motor.stop();
                        try{
                            notif.write("Stopping Motor because avg over: 30");
                        } catch(Exception e){
                            System.out.println("ERROR sending notification!!!");
                        }

                   }
                } );
end&lt;/span&gt;&lt;span style="font-family: Consolas, Monaco, monospace;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
This rule checks the average of the distance received from a Distance Sensor (in this case the UltraSonic Sensor) in the case that the distance is less than 30cm in the last 300ms all the motors will be started at a fixed speed to move away from that object. This allows us to be sure that there is something in front of the robot instead of reacting in the first measure that matches the condition. Different functions can be used to correct wrong reads from the sensors and to improve the overall performance. Notice that after starting the motor we are registering an&amp;nbsp;&lt;strong&gt;ActivationUnMatchListener&lt;/strong&gt;, this will cause that as soon as the Rule doesn't match anymore the motor will be stopped. You will see in the video, that the robot will go backward until the average received from the &amp;nbsp;Distance Sensor in the last 300ms is over 30 cm.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
There is another rule which use the Light Sensor to know how to go out from dark places.&lt;/div&gt;
&lt;h2 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
Software Roadmap&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
After a well deserved holidays, I will be working on improving the code base, to allow to run all the software without the need to have an Arduino Board or any specific hardware. The main idea is to have an environment where we can simulate virtual motors and sensors. This will allows us to improve the development of the software without being tied to the hardware improvements. This will also allow you to collaborate with the project, if I get enough collaborations I can do weekly videos about how the robot behaves using your contributions :)&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
So, take the following list as a brain dump of the things that I need to do on the project:&lt;/div&gt;
&lt;ol style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;li&gt;&lt;span data-mce-style="line-height: 13px;" style="line-height: 13px;"&gt;Improve the infrastructural code: JMS messages encoding, Monitor App, Simulation App&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Create more rules and processes to enable Rolo to do different things such as: recognize the environment/room where its running, interact with different objects,&lt;/li&gt;
&lt;li&gt;Mock a coordinate system and a model store different objects recognized from the environment.&lt;/li&gt;
&lt;li&gt;Use processing to draw in real time what is being sensed by Rolo in a 3D environment&lt;/li&gt;
&lt;li&gt;Enable Rolo to ask questions using the Human Task Services provided by jBPM&lt;/li&gt;
&lt;li&gt;Define the requirements for actuators and how to use them&lt;/li&gt;
&lt;li&gt;Video Streaming and image analysis&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
Video&lt;/h1&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Finally, let me introduce you:&amp;nbsp;&lt;strong&gt;Rolo The Robot!&lt;/strong&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/eEVWkf2CAAM/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/eEVWkf2CAAM&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/eEVWkf2CAAM&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Notice in the last 20 seconds of the video you can see the Rolo Client/Monitor application which shows us all the notifications that are being sent from the robot. You can see a small control panel which allows us to send some commands and also see the values that are being captured from the sensors.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;strong&gt;Rolo says&lt;/strong&gt;: Happy New Year to you all!&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Stay tuned!&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=ZmNAYiZjrbc:YzGLw7UlEY0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=ZmNAYiZjrbc:YzGLw7UlEY0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=ZmNAYiZjrbc:YzGLw7UlEY0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=ZmNAYiZjrbc:YzGLw7UlEY0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=ZmNAYiZjrbc:YzGLw7UlEY0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=ZmNAYiZjrbc:YzGLw7UlEY0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=ZmNAYiZjrbc:YzGLw7UlEY0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=ZmNAYiZjrbc:YzGLw7UlEY0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=ZmNAYiZjrbc:YzGLw7UlEY0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=ZmNAYiZjrbc:YzGLw7UlEY0:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/ZmNAYiZjrbc" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/ZmNAYiZjrbc/rolo-robot-says-happy-new-year.html</link><author>noreply@blogger.com (salaboy)</author><thr:total>1</thr:total><feedburner:origLink>http://blog.athico.com/2012/12/rolo-robot-says-happy-new-year.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-6885399109414566252</guid><pubDate>Mon, 17 Dec 2012 00:12:00 +0000</pubDate><atom:updated>2012-12-17T00:12:33.868Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">Meetups</category><category domain="http://www.blogger.com/atom/ns#">Barcelona</category><category domain="http://www.blogger.com/atom/ns#">jBPM5</category><category domain="http://www.blogger.com/atom/ns#">jBPM</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>jBPM Console NG (Update): Rules + Processes + Events</title><description>&lt;br /&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Hi everyone! I'm back with another update about the jBPM Console NG. Yesterday we did a quick demo about the console current features in the JBUG London meetup.&amp;nbsp;&lt;a data-mce-href="http://salaboy.com/2012/12/13/jbpm5-developer-guide-presentation-at-jbug-london-121212/" href="http://salaboy.com/2012/12/13/jbpm5-developer-guide-presentation-at-jbug-london-121212/"&gt;Today I've decided to explain the demo in more depth and also explain the last slides from the presentation which describe some scenarios where events and rules influence the execution of our business processes.&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Introduction&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The main idea of the demo is to show how rules, processes and events can be used to monitor our business processes and influence their execution. In order to understand the runtime behavior we need to obviously understand how Rules and Events works, but I will start&amp;nbsp;explaining&amp;nbsp;the business use case first in order to explain what we are trying to achieve.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The Business Process that we want to execute looks like the following image:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;a data-mce-href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/process-2/" href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/process-2/" rel="attachment wp-att-2354"&gt;&lt;img alt="Release Process" class="aligncenter size-full wp-image-2354" data-mce-src="http://salaboy.files.wordpress.com/2012/12/process.png" height="189" src="http://salaboy.files.wordpress.com/2012/12/process.png" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" width="580" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
This is just a normal process, it includes Human Interactions and System Interactions. We will handle the Human Interactions with the Human Task Services and the System to System interactions will be handled with different WorkItemHandlers implementations.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The process is about releasing artifacts. In order to make a release the files from an specific artifact needs to be staged. We have three directories where we will move the files to be released and they will be processed accordingly.&amp;nbsp;Basically, we will pick a set of files from a repository that has the following directory structure:&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 152px;" id="attachment_2356" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 152px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/screen-shot-2012-12-13-at-8-21-32-pm/" href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/screen-shot-2012-12-13-at-8-21-32-pm/" rel="attachment wp-att-2356"&gt;&lt;img alt="Directory Structure" class="size-full wp-image-2356" data-mce-src="http://salaboy.files.wordpress.com/2012/12/screen-shot-2012-12-13-at-8-21-32-pm.png" height="171" src="http://salaboy.files.wordpress.com/2012/12/screen-shot-2012-12-13-at-8-21-32-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" width="142" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Directory Structure&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The sequence will be:&amp;nbsp;&lt;strong&gt;Origin&lt;/strong&gt;&amp;nbsp;(where the original files will be placed for the release process) -&amp;gt;&amp;nbsp;&lt;strong&gt;Stage&lt;/strong&gt;&amp;nbsp;(reviewed by a Person) -&amp;gt;&amp;nbsp;&lt;strong&gt;Test&lt;/strong&gt;&amp;nbsp;(automatically tested) -&amp;gt;&amp;nbsp;&lt;strong&gt;Production&lt;/strong&gt;.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Notice that if the automatic tests fails a special path will be followed and a Person will be in charge of fixing the issues and move the files back to the Staging area.&lt;/div&gt;
&lt;h2&gt;
Keeping our process as simple as possible&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
We don't want to complicate our business process, we want to keep the process definition as clear and simple as possible. We don't want to add tons of activities to check different situations that doesn't describe the normal flow of actions. But at the same time we want to enforce some extra requirements and deal with exceptional business situations. For recognizing situations where we want to enforce different business policies or recognize business exceptions we can start using rules. If we want to recognize situations that involves time intervals we can include Fusion into the picture.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
As I've explained in&amp;nbsp;&lt;a data-mce-href="http://salaboy.com/2012/07/29/processes-rules-or-rules-processes-3x/" href="http://salaboy.com/2012/07/29/processes-rules-or-rules-processes-3x/"&gt;previous posts&lt;/a&gt;, there are several rules to analyze our processes executions using Rules, but from a very high-level perspective we can do the following:&lt;/div&gt;
&lt;ul style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;li&gt;Analyze a single process and the process contextual information to execute some actions or influence the process state&lt;/li&gt;
&lt;li&gt;Analyze a group of processes running in the same context as a logical group and execute an action that can be related with one particular instance, create one or a group of new new instances, terminate/abort one or a group of running instances, create one or a group of human tasks, or execute one or a set of actions.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
To demonstrate the different things that you can do we have chosen three different things that we can do without adding more complexity to our process definition:&lt;/div&gt;
&lt;ol style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;li&gt;If an instance of the process go 2 or more times through the Fix Issues branch, we want to get a warning or notify someone about this situation to take an action. Imagine the pain of doing this kind of checks inside the business process, probably adding a new process variable to check the amount of executions of each path, a real nightmare that complicates the process definition.&lt;div class="mceTemp mceIEcenter" style="text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 590px;" id="attachment_2355" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 590px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;img alt="" class="size-full wp-image-2355" data-mce-src="http://salaboy.files.wordpress.com/2012/12/screen-shot-2012-12-13-at-8-16-06-pm.png" height="206" src="http://salaboy.files.wordpress.com/2012/12/screen-shot-2012-12-13-at-8-16-06-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="Paths and Activities Evaluations" width="580" /&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Paths and Activities Evaluations&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;If an instance is doing a release with a set of files or pointing to an specific repository, we must not allow two process instances working with the same resources. If you think about this restriction that involves multiple process instances then it is clear that the logic of checking those restrictions cannot be placed inside a process definition, because it's not a restriction that will be applied per instance. If you think about this kind of situations, you will see that there a lot of similar cases where you can apply more intelligent restrictions to a set of process instances. The main problem is that if we have a "Normal/Old" process engine your application will need to handle those kind of things, or once again you will need to start doing some hacks in order to make that work. Most of the time using traditional BPMSs you don't even think about how to handle these scenarios, because the tooling doesn't even support them.&lt;div class="mceTemp mceIEcenter" style="text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 590px;" id="attachment_2357" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 590px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/screen-shot-2012-12-13-at-8-16-19-pm/" href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/screen-shot-2012-12-13-at-8-16-19-pm/" rel="attachment wp-att-2357"&gt;&lt;img alt="Multi Process Instance Evaluations" class="size-full wp-image-2357" data-mce-src="http://salaboy.files.wordpress.com/2012/12/screen-shot-2012-12-13-at-8-16-19-pm.png" height="330" src="http://salaboy.files.wordpress.com/2012/12/screen-shot-2012-12-13-at-8-16-19-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" width="580" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Multi Process Instance Evaluations&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;In some situations we want to solve cross cutting concerns that are solved in multiple processes in the same way. Sometimes we have tasks that are done in several business processes, but we don't want to include the task as part of the process definition because it's a generic task that its not related with the business goal of that business process, but it's related with the work that needs to be done to keep things running. In such cases, we can create an Ad-Hoc task to deal a particular situation. In this case the example shows a task that is being created to improve the performance of an automated task if the execution takes longer than we have expected. We can define the SLAs using rules and dynamically create a human task if it's needed.&lt;div class="mceTemp mceIEcenter" style="text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 590px;" id="attachment_2358" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 590px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/screen-shot-2012-12-13-at-8-16-31-pm/" href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/screen-shot-2012-12-13-at-8-16-31-pm/" rel="attachment wp-att-2358"&gt;&lt;img alt="Ad-Hoc Task" class="size-full wp-image-2358" data-mce-src="http://salaboy.files.wordpress.com/2012/12/screen-shot-2012-12-13-at-8-16-31-pm.png" height="258" src="http://salaboy.files.wordpress.com/2012/12/screen-shot-2012-12-13-at-8-16-31-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" width="580" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Ad-Hoc Task&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
jBPM Console NG - technical side&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;a data-mce-href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/jbpm-console-ng-1/" href="http://salaboy.com/2012/12/15/jbpm-console-ng-update-rules-processes-events/jbpm-console-ng-1/" rel="attachment wp-att-2360"&gt;&lt;img alt="" class="aligncenter size-full wp-image-2360" data-mce-src="http://salaboy.files.wordpress.com/2012/12/jbpm-console-ng-1.png" height="133" src="http://salaboy.files.wordpress.com/2012/12/jbpm-console-ng-1.png" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" width="379" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Let's analyze from the technical perspective how the infrastructure should provide us a way to handle situations likes the ones described before. Before going into the rules that are identifying and reacting on different situations, we need to understand how to generate the data that the rule engine will use.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
First of all we need to notify the Rule Engine about the Process Instances, so it handle them as facts. For this reason we attach the following process event listener to our sessions:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;a data-mce-href="https://github.com/droolsjbpm/jbpm/blob/master/jbpm-services/droolsjbpm-knowledge-services/src/main/java/org/droolsjbpm/services/impl/event/listeners/CDIRuleAwareProcessEventListener.java" href="https://github.com/droolsjbpm/jbpm/blob/master/jbpm-services/droolsjbpm-knowledge-services/src/main/java/org/droolsjbpm/services/impl/event/listeners/CDIRuleAwareProcessEventListener.java"&gt;https://github.com/droolsjbpm/jbpm/blob/master/jbpm-services/droolsjbpm-knowledge-services/src/main/java/org/droolsjbpm/services/impl/event/listeners/CDIRuleAwareProcessEventListener.java&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
This process event listener is in charge of inserting, updating and retracting the Process Instance from the Knowledge Session where the process is running. It also keep up to date the process variables that are modified inside the process. This listener also generate and insert Drools Fusion events that can be used for temporal reasoning.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The expected results when we attach this ProcessEventListener to our sessions is:&lt;/div&gt;
&lt;ul style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;li&gt;Every time that we create a process instance , the Process Instance object will be available to the rule engine to create rules about it.&lt;/li&gt;
&lt;li&gt;When a process instance is completed it is automatically retracted from the rule engine context&lt;/li&gt;
&lt;li&gt;When a process variable is modified/updated the Process Instance fact is updated as well&lt;/li&gt;
&lt;li&gt;Every time that an activity &amp;nbsp;is executed "Drools Fusion" events are created and inserted into the session before and after the task is executed. We as users have the&amp;nbsp;responsibility&amp;nbsp;to define these types as events, so the engine can tag them with the correspondant timestamp (Look at the rules file).&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Inside the session that have attached this listener we will be able to:&lt;/div&gt;
&lt;ul style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;li&gt;Write rules about Process Instances and their internal status, including process variables&lt;/li&gt;
&lt;li&gt;Write rules that identify situations where we want to measure time between different activities of the same process or a group of processes&lt;/li&gt;
&lt;li&gt;Influence the business processes execution based on different scenarios&lt;/li&gt;
&lt;li&gt;If we insert into the session more business context, we will be able to mix all the information that is being generated by the processes execution with our business context to recognize more advanced scenarios&lt;/li&gt;
&lt;li&gt;Mix all of the above&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Resources and Git Backend&lt;/h3&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
One more important thing if you want to try this alpha version, is to understand that we are now picking up all the resources that are being used by the runtime from a Git Repository. This means that our backend repository in this case is github.com. We store all our assets in this repository, and we build up different sessions using the resources located in the remote repository. This gives us a lot of advantages, but the integration is not finished yet. In the future you will be able to point to different repositories and fetch resources on demand to build new runtimes. For now you need to understand that Forms, Processes, Rules and all the configuration resources are being picked up from a remote repository, abstracting our application from where the resources are stored.&lt;/div&gt;
&lt;h2&gt;
Rules, Processes &amp;amp; Events&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Once we have all the data inside our session we can start writing our rules.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The complete rules file used for this demo can be found here:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;a data-mce-href="https://github.com/guvnorngtestuser1/jbpm-console-ng-playground/blob/master/examples/release/process_rules.drl" href="https://github.com/guvnorngtestuser1/jbpm-console-ng-playground/blob/master/examples/release/process_rules.drl"&gt;https://github.com/guvnorngtestuser1/jbpm-console-ng-playground/blob/master/examples/release/process_rules.drl&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Here are some things that we need to understand from this drl file:&lt;/div&gt;
&lt;ul style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;li&gt;Event Declarations: We need to inform the rule engine which facts will be treated as Events. Notice the first lines after the imports:&lt;div id="LC20"&gt;
&lt;em&gt;&lt;strong&gt;declare ProcessStartedEvent&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div id="LC21"&gt;
&lt;em&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@role(event)&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div id="LC22"&gt;
&lt;em&gt;&lt;strong&gt;end&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;
In this case we are defining that all the insertion of ProcessStartedEvent needs to be handled as events, which are a special type of facts.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;We can make services available for the rules to use. For this example I'm injecting the services as globals:&lt;div id="LC16"&gt;
&lt;em&gt;&lt;strong&gt;global RulesNotificationService rulesNotificationService;&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div id="LC18"&gt;
&lt;em&gt;&lt;strong&gt;global TaskServiceEntryPoint&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&amp;nbsp;taskService;&lt;/strong&gt;The TaskServiceEntryPoint will allow us to create and manage tasks from rules. The RulesNotificationService is exposing to the outside world the rules execution. It's a quick way to notify the users about certain situations. You can think about it as a simple log service about what is happening inside our sessions.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Then you can write rules about Processes and the Events generated by the processes:&lt;div id="LC71"&gt;
&lt;em&gt;&lt;strong&gt;rule "Fix Issues Task pending for more than 30 seconds"&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div id="LC72"&gt;
&lt;em&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;when&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div id="LC73"&gt;
&lt;em&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;$w1: WorkflowProcessInstanceImpl($id: id)&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div id="LC74"&gt;
&lt;em&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;$onEntry: ProcessNodeTriggeredEvent(&lt;br /&gt;processInstance.id == $id,&lt;br /&gt;$nid:&amp;nbsp;&lt;em&gt;&lt;strong&gt;nodeInstance.id,&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;nodeInstance.nodeName == "Fix Issues") from entry-point "process-events"&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div id="LC75"&gt;
&lt;em&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; $onExit: ProcessNodeLeftEvent(&lt;br /&gt;this after[30s] $onEntry,&lt;br /&gt;processInstance.id == $id,&lt;br /&gt;nodeInstance.id == $nid,&lt;br /&gt;nodeInstance.nodeName == "Fix Issues") from entry-point "process-events"&lt;br /&gt;then&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;....&lt;/strong&gt;So this rule is matching situations where a particular node inside (Fix Issues) of our business processes is taking more than 30 seconds to be executed. Notice that the process instance events are being inserted in a special entry-point called "process-events". I suggest you to take a look at the other rules that are being analyzed inside the demo, so you can get in idea about what kind of things can be done in this environment.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
DEMO&lt;/h2&gt;
&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="313" mozallowfullscreen="mozallowfullscreen" src="http://player.vimeo.com/video/55646944?badge=0" webkitallowfullscreen="webkitallowfullscreen" width="500"&gt;&lt;/iframe&gt; &lt;br /&gt;
&lt;a href="http://vimeo.com/55646944"&gt;jBPM Console NG update 14/12/2012&lt;/a&gt; from &lt;a href="http://vimeo.com/user3804192"&gt;salaboy&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Full Presentation at JBUG London&lt;/h2&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://0.gvt0.com/vi/9M1eaH3v4qg/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/9M1eaH3v4qg&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/9M1eaH3v4qg&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Stay tuned for more updates about the console and the book!&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
New Meetup Scheduled @ -&amp;gt; Barcelona -&amp;gt;&amp;nbsp;&lt;a href="http://salaboy.com/2012/12/16/barcelona-jug-jbpm5-developer-guide-presentation-191212/"&gt;http://salaboy.com/2012/12/16/barcelona-jug-jbpm5-developer-guide-presentation-191212/&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=HWg2ZaTTr7E:vLFy0ytCJ0A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=HWg2ZaTTr7E:vLFy0ytCJ0A:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=HWg2ZaTTr7E:vLFy0ytCJ0A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=HWg2ZaTTr7E:vLFy0ytCJ0A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=HWg2ZaTTr7E:vLFy0ytCJ0A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=HWg2ZaTTr7E:vLFy0ytCJ0A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=HWg2ZaTTr7E:vLFy0ytCJ0A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=HWg2ZaTTr7E:vLFy0ytCJ0A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=HWg2ZaTTr7E:vLFy0ytCJ0A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=HWg2ZaTTr7E:vLFy0ytCJ0A:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/HWg2ZaTTr7E" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/HWg2ZaTTr7E/jbpm-console-ng-update-rules-processes.html</link><author>noreply@blogger.com (salaboy)</author><thr:total>1</thr:total><feedburner:origLink>http://blog.athico.com/2012/12/jbpm-console-ng-update-rules-processes.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-7089486364800130142</guid><pubDate>Sun, 16 Dec 2012 23:31:00 +0000</pubDate><atom:updated>2012-12-18T18:24:16.345Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">Barcelona</category><category domain="http://www.blogger.com/atom/ns#">jBPM5</category><category domain="http://www.blogger.com/atom/ns#">jBPM</category><category domain="http://www.blogger.com/atom/ns#">BPMN</category><title>Barcelona JUG - jBPM5 Developer Guide Presentation (19/12/12)</title><description>&lt;br /&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Hi everyone, I'm going to give a presentation in Barcelona about the jBPM5 Developer Guide book. There is no defined venue yet, but it will be next Wednesday (19th) at 7pm somewhere in the city. I will keep you posted! If you are interested to attend please drop me a comment so we can make the&amp;nbsp;necessary&amp;nbsp;adjustments. This will be a Barcelona JUG meetup, so feel free to invite as many friends as you want and please help us to spread the word.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some links from the Barcelona JUG Group that you can follow to see updates about this and future meetups:&lt;br /&gt;
&lt;div&gt;
Google groups -&amp;nbsp;&lt;a data-mce-href="http://bit.ly/BarcelonaJUG" href="http://bit.ly/BarcelonaJUG" target="_blank"&gt;http://bit.ly/BarcelonaJUG&lt;/a&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Blog -&amp;nbsp;&lt;a data-mce-href="http://barcelonajug.blogspot.com.es/" href="http://barcelonajug.blogspot.com.es/" target="_blank"&gt;http://barcelonajug.&lt;wbr&gt;&lt;/wbr&gt;blogspot.com.es/&lt;/a&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
LinkedIN -&amp;nbsp;&lt;a data-mce-href="http://www.linkedin.com/groups?gid=4115806" href="http://www.linkedin.com/groups?gid=4115806" target="_blank"&gt;http://www.linkedin.com/&lt;wbr&gt;&lt;/wbr&gt;groups?gid=4115806&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Twitter -&amp;nbsp;&lt;a data-mce-href="http://twitter.com/BarcelonaJUG" href="http://twitter.com/BarcelonaJUG" target="_blank"&gt;http://twitter.com/&lt;wbr&gt;&lt;/wbr&gt;BarcelonaJUG&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Facebook -&amp;nbsp;&lt;a data-mce-href="http://facebook.com/BarcelonaJUG" href="http://facebook.com/BarcelonaJUG" target="_blank"&gt;http://facebook.com/&lt;wbr&gt;&lt;/wbr&gt;BarcelonaJUG&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;
&lt;span style="color: red;"&gt;Update&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;div style="background-color: white; font-family: museo-slab-1, museo-slab-2, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; font-weight: normal; line-height: 21px;"&gt;
&lt;span style="color: red;"&gt;Hi everyone, the meetup for tomorrow is confirmed and we now have a place confirmed. The meetup will take place in the Facultad de Informatica de Barcelona:&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: museo-slab-1, museo-slab-2, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; font-weight: normal; line-height: 21px;"&gt;
&lt;span style="color: red;"&gt;Edifici B6 del Campus Nord C/Jordi Girona Salgado,1-3 08034 BARCELONA Espanya&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: museo-slab-1, museo-slab-2, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; font-weight: normal; line-height: 21px;"&gt;
&lt;span style="color: red;"&gt;the talk will start at 7 pm, so see you there with all your friends!&lt;/span&gt;&lt;/div&gt;
&lt;/h4&gt;
&lt;h4&gt;
Spanish:&amp;nbsp;&lt;/h4&gt;
&lt;div style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;div style="color: #333333;"&gt;
Hola a todos! Estare en Barcelona presentando el libro jBPM5 Developer Guide. Todavia no hay sitio definido, pero en el transcurso de mañana estaremos publicando el lugar. Estamos seguros de que sera el Miercoles 19 de Diciembre en algun lado de la ciudad a las 7pm. El evento esta organizado por Barcelona JUG por eso sientanse libres de invitar a cuantos amigos pueda y ayudenos a difundir la palabra.&lt;/div&gt;
&lt;div style="color: #333333;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="background-color: white; font-family: museo-slab-1, museo-slab-2, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 21px;"&gt;
&lt;b&gt;&lt;span style="color: red;"&gt;Actualizacion:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: museo-slab-1, museo-slab-2, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 21px;"&gt;
&lt;span style="color: red;"&gt;El evento y el lugar esta confirmado!&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: museo-slab-1, museo-slab-2, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 21px;"&gt;
&lt;span style="color: red;"&gt;Nos vemos mañana miércoles 7pm a las 7pm!! En el Edicio A6, Aula&amp;nbsp;102 de la&amp;nbsp;&lt;a href="http://www.fib.upc.edu/" target="_parent"&gt;Facultad de Informática de Barcelona&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: museo-slab-1, museo-slab-2, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 21px;"&gt;
&lt;span style="color: red;"&gt;Edifici B6 del Campus Nord C/Jordi Girona Salgado,1-3 08034 BARCELONA Espanya&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: museo-slab-1, museo-slab-2, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 21px;"&gt;
&lt;span style="color: red;"&gt;Lleven a sus amigos!&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="color: #333333;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=d_rtILcz4Hc:FUGzchWumb0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=d_rtILcz4Hc:FUGzchWumb0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=d_rtILcz4Hc:FUGzchWumb0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=d_rtILcz4Hc:FUGzchWumb0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=d_rtILcz4Hc:FUGzchWumb0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=d_rtILcz4Hc:FUGzchWumb0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=d_rtILcz4Hc:FUGzchWumb0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=d_rtILcz4Hc:FUGzchWumb0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=d_rtILcz4Hc:FUGzchWumb0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=d_rtILcz4Hc:FUGzchWumb0:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/d_rtILcz4Hc" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/d_rtILcz4Hc/barcelona-jug-jbpm5-developer-guide.html</link><author>noreply@blogger.com (salaboy)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2012/12/barcelona-jug-jbpm5-developer-guide.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-4420826604768180539</guid><pubDate>Sat, 15 Dec 2012 09:00:00 +0000</pubDate><atom:updated>2012-12-15T09:00:38.559Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">jBPM</category><category domain="http://www.blogger.com/atom/ns#">kie</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><title>6.0 Alpha - Annotation Driven development with Multi Version Loading</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Drools &amp;amp; jBPM 6.0 alpha should be out end of next week. &amp;nbsp;6.0 introduces convention based projects that remove the need for boiler plate code - literally just drop in the drl or bpmn2 and get going. Further we now allow rules and processes to&amp;nbsp;be published as maven artifacts, in maven repositories. These artifacts can either be resolve via the classpath or downloaded dynamically on the fly. We even support out of the box side by side version loading, via the maven ReleaseId conventions.&lt;br /&gt;
&lt;br /&gt;
As a little taster here is a new screenshot showing the annotation driven development. The lines below are all that's needed to dynamically load a module from a local or remote maven repository and start working with it. KieSession is the new, shorter name, for StatefulKnowlegeSession. Kie is an acronym for&amp;nbsp;"Knowledge Is Everything", but I'll talk about Kie in another blog, expect to start hearing a lot about it soon :)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-GPSxpYUDTmA/UMw66cJUhLI/AAAAAAAAA3M/CgfqaZ7bbZg/s1600/KSessionVersions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="244" src="http://1.bp.blogspot.com/-GPSxpYUDTmA/UMw66cJUhLI/AAAAAAAAA3M/CgfqaZ7bbZg/s640/KSessionVersions.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
And here is a complete example screen shot. Create the drl, define the kmodule and start using them.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Vzf25nGjhmo/UMw7ytp2e0I/AAAAAAAAA3U/LtXNonbQGFA/s1600/HelloDave.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="417" src="http://1.bp.blogspot.com/-Vzf25nGjhmo/UMw7ytp2e0I/AAAAAAAAA3U/LtXNonbQGFA/s640/HelloDave.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;(click image to enlarge)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=idxNRamcO98:RgDHjTZC5jo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=idxNRamcO98:RgDHjTZC5jo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=idxNRamcO98:RgDHjTZC5jo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=idxNRamcO98:RgDHjTZC5jo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=idxNRamcO98:RgDHjTZC5jo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=idxNRamcO98:RgDHjTZC5jo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=idxNRamcO98:RgDHjTZC5jo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=idxNRamcO98:RgDHjTZC5jo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=idxNRamcO98:RgDHjTZC5jo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=idxNRamcO98:RgDHjTZC5jo:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/idxNRamcO98" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/idxNRamcO98/60-alpha-annotation-driven-development.html</link><author>noreply@blogger.com (Mark Proctor)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-GPSxpYUDTmA/UMw66cJUhLI/AAAAAAAAA3M/CgfqaZ7bbZg/s72-c/KSessionVersions.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://blog.athico.com/2012/12/60-alpha-annotation-driven-development.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-9040397413353709810</guid><pubDate>Fri, 14 Dec 2012 08:40:00 +0000</pubDate><atom:updated>2012-12-14T08:40:45.071Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">planner</category><title>Score flexibility in Planner, shown with vehicle routing</title><description>&lt;br /&gt;
Do we want to minimize distance or minimize time? Should trucks return to their depot after delivering their items?&lt;br /&gt;
It depends on what's best for your business. Luckily, changing the score function in Planner is easy, as shown in this demo.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe width="640" height="480" src="http://www.youtube.com/embed/4hp_Qg1hFgE" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=kMaUCSZYIxU:vY4lvZsZIpw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=kMaUCSZYIxU:vY4lvZsZIpw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=kMaUCSZYIxU:vY4lvZsZIpw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=kMaUCSZYIxU:vY4lvZsZIpw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=kMaUCSZYIxU:vY4lvZsZIpw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=kMaUCSZYIxU:vY4lvZsZIpw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=kMaUCSZYIxU:vY4lvZsZIpw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=kMaUCSZYIxU:vY4lvZsZIpw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=kMaUCSZYIxU:vY4lvZsZIpw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=kMaUCSZYIxU:vY4lvZsZIpw:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/kMaUCSZYIxU" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/kMaUCSZYIxU/score-flexibility-in-planner-shown-with.html</link><author>noreply@blogger.com (Geoffrey De Smet)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/4hp_Qg1hFgE/default.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2012/12/score-flexibility-in-planner-shown-with.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-7096388431452366761</guid><pubDate>Tue, 27 Nov 2012 19:22:00 +0000</pubDate><atom:updated>2012-11-27T19:22:16.587Z</atom:updated><title>jBPM Designer 2.4.0.Final released!</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-Gyuj_wlSvvA/ULUR5X5OORI/AAAAAAAAFJQ/_RrmjUdG_PE/s1600/sim1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/-Gyuj_wlSvvA/ULUR5X5OORI/AAAAAAAAFJQ/_RrmjUdG_PE/s320/sim1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We are very happy to announce a new release 2.4.0.Final of &lt;a href="http://www.jboss.org/jbpm/components/designer"&gt;jBPM Designer&lt;/a&gt;, the Web-based Business Process Editor for &lt;a href="http://www.jboss.org/jbpm"&gt;jBPM 5&lt;/a&gt;.&lt;br /&gt;

Here is an overview of new features and most notable bug fixes in this release:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;New Features&lt;/strong&gt;&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://surdilovic.wordpress.com/2012/08/06/process-and-task-form-editing-in-jbpm-designer/"&gt;Revamp of Process and Task Form editing support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://surdilovic.wordpress.com/2012/09/13/business-process-simulation-in-jbpm-designer/"&gt;Business Process Simulation&lt;/a&gt; !!!&lt;/li&gt;
&lt;li&gt;&lt;a href="http://surdilovic.wordpress.com/2012/11/13/local-history-support-in-jbpm-designer/"&gt;Local History support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://surdilovic.wordpress.com/2012/11/15/workflow-patterns-support-in-jbpm-designer/"&gt;Workflow Patterns support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notifications and Deadline support &lt;/li&gt;
&lt;/ul&gt;
&lt;strong&gt;Notable Bug Fixes&lt;/strong&gt;&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://issues.jboss.org/browse/JBPM-3635"&gt;Automatic creation of the process image in designer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://issues.jboss.org/browse/JBPM-3861"&gt;Include data objects in auto-completion in forms and script editors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://issues.jboss.org/browse/JBPM-3728"&gt;Namespace mismatch in on-entry script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://issues.jboss.org/browse/JBPM-3823"&gt;Designer validation fails when Reusable Subprocess refers to a different package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://issues.jboss.org/secure/IssueNavigator.jspa?sorter/field=updated&amp;amp;sorter/order=DESC"&gt;many more&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
You can &lt;a href="http://sourceforge.net/projects/jbpm/files/designer/designer-2.4/"&gt;download jBPM Designer version 2.4.0.Final from Sourceforge&lt;/a&gt;. If you are upgrading from an older Designer version, make sure to clear your browser cache before start using the new one.&lt;br /&gt;

You can &lt;a href="https://github.com/droolsjbpm/jbpm-designer"&gt;clone jBPM Designer or just browser its source at GitHub&lt;/a&gt;.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;

&lt;strong&gt;Roadmap&lt;/strong&gt;&lt;br /&gt;

For the next release we will strongly focus on&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;Add enhancements to Process Simulation capabilities&lt;/li&gt;
&lt;li&gt;“Smart Properties” – more usable ways for users to enter in execution properties to their models&lt;/li&gt;
&lt;li&gt;Alternative asset storage options&lt;/li&gt;
&lt;li&gt;Overall usability enhancements &lt;/li&gt;
&lt;/ul&gt;
jBPM Designer is open-source and of course free! If you would like to
 be part of Designer development and discussions or just want to ask 
questions feel free to talk to us on the &lt;a href="https://community.jboss.org/en/jbpm?view=discussions"&gt;User Form&lt;/a&gt;, the &lt;a href="http://www.jboss.org/jbpm/lists"&gt;Mailing List&lt;/a&gt;, or&amp;nbsp;&lt;a href="http://www.jboss.org/jbpm/irc"&gt;IRC&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;

You can also follow the latest news about the jBPM Designer on &lt;a href="http://surdilovic.wordpress.com/"&gt;it’s Blog&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;

Enjoy &lt;img alt=":)" src="http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif?m=1129645325g" /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=KF4tn7M-VYI:K7khiiGs6UI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=KF4tn7M-VYI:K7khiiGs6UI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=KF4tn7M-VYI:K7khiiGs6UI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=KF4tn7M-VYI:K7khiiGs6UI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=KF4tn7M-VYI:K7khiiGs6UI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=KF4tn7M-VYI:K7khiiGs6UI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=KF4tn7M-VYI:K7khiiGs6UI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=KF4tn7M-VYI:K7khiiGs6UI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=KF4tn7M-VYI:K7khiiGs6UI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=KF4tn7M-VYI:K7khiiGs6UI:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/KF4tn7M-VYI" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/KF4tn7M-VYI/jbpm-designer-240final-released.html</link><author>noreply@blogger.com (Tihomir Surdilovic)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-Gyuj_wlSvvA/ULUR5X5OORI/AAAAAAAAFJQ/_RrmjUdG_PE/s72-c/sim1.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.athico.com/2012/11/jbpm-designer-240final-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-4969435115149071254</guid><pubDate>Tue, 27 Nov 2012 10:07:00 +0000</pubDate><atom:updated>2012-11-27T10:07:43.046Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">jBPM5</category><category domain="http://www.blogger.com/atom/ns#">management</category><category domain="http://www.blogger.com/atom/ns#">tasks</category><category domain="http://www.blogger.com/atom/ns#">jBPM</category><category domain="http://www.blogger.com/atom/ns#">lists</category><category domain="http://www.blogger.com/atom/ns#">console</category><title>jBPM Console NG - Alpha Dev Access</title><description>&lt;br /&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Hi everyone! I'm writing this post to introduce the jBPM Console NG project which will provide a new integrated workbench for handling process related activities. We are now in a very initial stage of development and we are looking for contributors. We know that there are a lot of companies out there implementing their own solutions and at this point &amp;nbsp;we encourage you all to give us feedback about the direction that we are picking for the BPM tooling. As usual, this tooling will be integrated with all the Drools and Guvnor Tooling to provide an integrated Knowledge Development Environment.&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 510px;" id="attachment_2321" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 510px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2012/11/jbpm-console-ng.png" href="http://salaboy.files.wordpress.com/2012/11/jbpm-console-ng.png"&gt;&lt;img alt="" class="size-full wp-image-2321" data-mce-src="http://salaboy.files.wordpress.com/2012/11/jbpm-console-ng.png" height="217" src="http://salaboy.files.wordpress.com/2012/11/jbpm-console-ng.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="jbpm-console-ng" width="500" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;jBPM Console NG&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;/div&gt;
&lt;h2&gt;
Introduction&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
As always, we are developing the jBPM Console NG in a public github repository: https://github.com/droolsjbpm/jbpm-console-ng&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
You can clone this repository, build the source code and deploy the jBPM Console NG in your own&amp;nbsp;container&amp;nbsp;following the next steps:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
1) git clone&amp;nbsp;&lt;a data-mce-href="https://github.com/droolsjbpm/jbpm-console-ng.git" href="https://github.com/droolsjbpm/jbpm-console-ng.git"&gt;https://github.com/droolsjbpm/jbpm-console-ng.git&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
2) cd jbpm-console-ng&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
3) mvn clean install&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
4) cd jbpm-console-ng-showcase&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
5) mvn gwt:run -&amp;gt; This will display the GWT Development Mode console which will give you an URL to access via your Browser (for development&amp;nbsp;purposes&amp;nbsp;you need to use Firefox which provides a Development GWT Plugin that allows us to Debug the application)&lt;/div&gt;
&lt;h2&gt;
Technology&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The application is being developed using Uberfire which is based on GWT (Google Web Toolkit), Errai and CDI. This mix of technologies gives us the ultimate environment to build &amp;nbsp;flexible applications using a rock solid component model. I will be posting some examples showing how to get started to create new panels and add customizations to the existing code base shortly, but feel free to clone/fork the repository to take a look at the current status.&lt;/div&gt;
&lt;h2&gt;
Goals&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The main goal behind the application is to provide an integrated environment to discover, design, deploy, execute, monitor and improve our business processes. &amp;nbsp;In order to provide all this functionality we have started the development integrating our&amp;nbsp;existing&amp;nbsp;components inside the Uberfire&amp;nbsp;infrastructure.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
There is an ongoing effort to integrate the jBPM Process Designer inside this platform, but I've started working on the Process Runtime Panels and in the Task Lists with the help of Maciej.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
The following screenshots shows the current status of the application:&lt;/div&gt;
&lt;h2 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"&gt;
&lt;/h2&gt;
&lt;h4&gt;
Home Screen&lt;/h4&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
The home screen shows us important information about the things that the user is enabled to do. The jBPM Lifecycle chart allows the use to select in which phase he/she wants to work. Right now I'm focused on improving the "Work" stage as it's being shown in the following screenshots.&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="font-size: 13px; font-weight: normal; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 590px;" id="attachment_2324" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 590px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-25-57-pm.png" href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-25-57-pm.png"&gt;&lt;img alt="" class="size-full wp-image-2324" data-mce-src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-25-57-pm.png" height="251" src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-25-57-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="Home Screen" width="580" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Home Screen&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
The home screen also contains a suggestion box that allows you to quickly type different "Commands" to access the different sections of the application. In order to return to the Home Screen, we can use the shortcut CTRL+H.&lt;/div&gt;
&lt;h2&gt;
Tasks List&lt;/h2&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
The Tasks List screen will allows us to interact with the tasks assigned to us or to the groups where we are included. As you can notice in the previous screen, my user (salaboy) was included inside the [Writer] group. This means that all the Tasks associated to the Writer group will appear in my personal task list. Notice that for each row inside the list we will have a set of actions to interact with each task. The following screenshot shows the Start button inside the Actions column, we can also edit/view the Task Details and we can also access to work on that particular task via it associated Task Form.&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="font-size: 13px; font-weight: normal; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 590px;" id="attachment_2328" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 590px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-27-02-pm.png" href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-27-02-pm.png"&gt;&lt;img alt="" class="size-full wp-image-2328" data-mce-src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-27-02-pm.png" height="94" src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-27-02-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="Tasks List" width="580" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Tasks List&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;h4&gt;
Quick Tasks Creation&lt;/h4&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
Clicking in the Create New Task button, we will be able to create a new Task for us or for other person inside the organization. The task will be created assigned to us, but we can forward the task later. Notice that we can also create a Quick Task, this means that the task will be automatically started and can be used as a simple TODO task. No matter where we are in the application we can use the shortcut CTRL+T to create a new task.&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="font-size: 13px; font-weight: normal; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 311px;" id="attachment_2326" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 311px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-26-47-pm.png" href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-26-47-pm.png"&gt;&lt;img alt="" class=" wp-image-2326 " data-mce-src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-26-47-pm.png" height="136" src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-26-47-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="Quick Task Creation" width="301" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Quick Task Creation&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;h4&gt;
Task Details&lt;/h4&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
The Task Details popup allows us to see the most important information about the a particular task. If we want to access to a more detailed view about that particular task we can click the Full button which will open more panels related with that task. Notice that This task is not associated with any business processes, but for those variables which are associated with a business process instance, we can access to see the process instance details using the "Process Instance Details" button on the bottom.&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="font-size: 13px; font-weight: normal; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 302px;" id="attachment_2332" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 302px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-27-15-pm.png" href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-27-15-pm.png"&gt;&lt;img alt="" class=" wp-image-2332 " data-mce-src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-27-15-pm.png" height="331" src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-27-15-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="Task Details" width="292" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Task Details&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;h4&gt;
Forms&lt;/h4&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
The current version allows us to interact with tasks via Task Forms which are dynamically generated based on the task content and the expected outputs. This task is already in progress, and for that reason you can see the Complete button on the bottom of the form. If the task is in a different state, different buttons will be displayed. As you can see the Save button will allow the user to store intermediate steps of the information that is being filled up inside the form. The Full button can be used to see the form with more contextual data, like for example Task Attachments or Task Comments.&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="font-size: 13px; font-weight: normal; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 303px;" id="attachment_2331" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 303px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-28-56-pm.png" href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-28-56-pm.png"&gt;&lt;img alt="" class=" wp-image-2331 " data-mce-src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-28-56-pm.png" height="286" src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-28-56-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="Task Form (Based on a Template)" width="293" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Task Form (Based on a Template)&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;h3&gt;
Process Management&lt;/h3&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
The Process Management panels will allows us to see all the available Process Definitions and it will allows us to create new Process Instances. As you can see in the following screenshot, you will be able to inspect the Process Definition Details to see the process diagram and relevant information about each process.&amp;nbsp;&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="font-size: 13px; font-weight: normal; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 358px;" id="attachment_2330" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 358px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-28-13-pm.png" href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-28-13-pm.png"&gt;&lt;img alt="" class=" wp-image-2330 " data-mce-src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-28-13-pm.png" height="128" src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-28-13-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="Process Management" width="348" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Process Management&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;h4&gt;
Process Instance Details&lt;/h4&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
Inside the Process Instance Details you will be able to see the current status of the Process Variables, the activities that are being executed and also the Log for that particular instance.&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="font-size: 13px; font-weight: normal; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 358px;" id="attachment_2333" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 358px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-45-58-pm.png" href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-45-58-pm.png"&gt;&lt;img alt="" class=" wp-image-2333 " data-mce-src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-45-58-pm.png" height="154" src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-45-58-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="Process Instance Details" width="348" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Process Instance Details&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;h4&gt;
Signaling Events&lt;/h4&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
From the Process Instance List you will be able to signal events. The Events List will be retrieved based on the process definition and the Signal Ref suggestion box list you all the events related with the selected Process Instance.&lt;/div&gt;
&lt;div class="mceTemp mceIEcenter" style="font-size: 13px; font-weight: normal; text-align: center;"&gt;

&lt;dl class="wp-caption aligncenter" data-mce-style="width: 303px;" id="attachment_2334" style="background-color: #f3f3f3; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(221, 221, 221); margin: 10px auto; padding-top: 4px; width: 303px;"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a data-mce-href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-31-21-pm.png" href="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-31-21-pm.png"&gt;&lt;img alt="" class=" wp-image-2334 " data-mce-src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-31-21-pm.png" height="139" src="http://salaboy.files.wordpress.com/2012/11/screen-shot-2012-11-26-at-4-31-21-pm.png" style="-webkit-user-drag: none; border: 0px none; cursor: default; margin: 0px; padding: 0px;" title="Signal Events" width="293" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="wp-caption-dd" style="font-size: 11px; line-height: 17px; margin: 0px; padding: 0px 4px 5px;"&gt;Signal Events&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;h3&gt;
Roadmap&lt;/h3&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
During the following months we will be working on polishing the current panels and services behind the application to provide an error free environment that allows you to execute your business processes and interact with the Human Task Services. During this initial phase of development we are looking forward to improve the user experience, and for this reason we encourage you to try the latest source code and let us know what you think.&amp;nbsp;This initial version can also be deployed in the cloud, like for example&amp;nbsp;&lt;a data-mce-href="https://openshift.redhat.com/" href="https://openshift.redhat.com/"&gt;OpenShift&lt;/a&gt;. We believe that this will help a lot new users that want to try out an existing installation.&lt;/div&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
There a lot of things that needs to be done, so take a look at the following section because if you want to get involved with the development of an open source tooling this is a very good opportunity to learn and to join the project.&lt;/div&gt;
&lt;h3&gt;
Contributions&lt;/h3&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
The following list is a set of things that can be done by Java Developers and doesn't require any advanced knowledge about the technology that we are using. You will see that the technology stack that we are using is extremely simple and agile:&lt;/div&gt;
&lt;ul style="font-size: 13px; font-weight: normal;"&gt;
&lt;li&gt;Task Comments Panels&lt;/li&gt;
&lt;li&gt;Task Attachments Panels&lt;/li&gt;
&lt;li&gt;Shortcuts Mappings Panels&lt;/li&gt;
&lt;li&gt;Notifications Panels&lt;/li&gt;
&lt;li&gt;Avatar and Meta information about users and groups Administration Panels&lt;/li&gt;
&lt;li&gt;Domain Specific Suggestions Phrases Administration Panels&lt;/li&gt;
&lt;li&gt;I18N Translations (We already have Spanish (es_AR) and English, so if you are a native speaker of a different language feel free to drop us a line)&lt;/li&gt;
&lt;li&gt;Extending the GWT DataGrid component to support&amp;nbsp;prioritized&amp;nbsp;lists (Knowledge about GWT is required)&lt;/li&gt;
&lt;li&gt;Create a Custom GWT Calendar Component to display the pending tasks in a Calendar. (Knowledge about GWT required)&lt;/li&gt;
&lt;li&gt;Experiment with m-gwt (&lt;a data-mce-href="http://www.m-gwt.com/" href="http://www.m-gwt.com/"&gt;http://www.m-gwt.com/&lt;/a&gt;) (Knowledge about GWT and motivation to learn m-gwt is required)&lt;/li&gt;
&lt;li&gt;Any idea that you may have and want to propose&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="font-size: 13px; font-weight: normal;"&gt;
Drop us a line with your ideas/requirements, we are very open to guide all the interested in doing contributions to learn what they need in order to get started. I will be posting some videos about how to create a simple panel and about how the internal services are working on the next few days, but feel free to ask questions if you are interested in this development. You already know where to find me :)&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=_ovyyv5FoPs:aOqqWkXdniM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=_ovyyv5FoPs:aOqqWkXdniM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=_ovyyv5FoPs:aOqqWkXdniM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=_ovyyv5FoPs:aOqqWkXdniM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=_ovyyv5FoPs:aOqqWkXdniM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=_ovyyv5FoPs:aOqqWkXdniM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=_ovyyv5FoPs:aOqqWkXdniM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=_ovyyv5FoPs:aOqqWkXdniM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=_ovyyv5FoPs:aOqqWkXdniM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=_ovyyv5FoPs:aOqqWkXdniM:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/_ovyyv5FoPs" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/_ovyyv5FoPs/jbpm-console-ng-alpha-dev-access.html</link><author>noreply@blogger.com (salaboy)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2012/11/jbpm-console-ng-alpha-dev-access.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-2417258352241206806</guid><pubDate>Mon, 26 Nov 2012 11:23:00 +0000</pubDate><atom:updated>2012-11-26T11:23:00.076Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">london</category><category domain="http://www.blogger.com/atom/ns#">developer</category><category domain="http://www.blogger.com/atom/ns#">jBPM5</category><category domain="http://www.blogger.com/atom/ns#">guide</category><category domain="http://www.blogger.com/atom/ns#">Drools</category><category domain="http://www.blogger.com/atom/ns#">book</category><title>jBPM5 Developer Guide Official Presentation @London</title><description>&lt;br /&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Hi all,&amp;nbsp;&lt;a data-mce-href="http://www.amazon.co.uk/jBPM-Developer-Guide-Salatino-Mauricio/dp/1849516448/ref=sr_1_1?ie=UTF8&amp;amp;qid=1353926322&amp;amp;sr=8-1" href="http://www.amazon.co.uk/jBPM-Developer-Guide-Salatino-Mauricio/dp/1849516448/ref=sr_1_1?ie=UTF8&amp;amp;qid=1353926322&amp;amp;sr=8-1"&gt;with the book &amp;nbsp;almost being printed out&lt;/a&gt;, we have organized an oficial presentation with the help of the JBug London. &amp;nbsp;We (&lt;a data-mce-href="http://ilesteban.wordpress.com/" href="http://ilesteban.wordpress.com/"&gt;Esteban Aliverti&lt;/a&gt;&amp;nbsp;and&lt;a href="http://salaboy.com/"&gt; I - "Salaboy"&lt;/a&gt;) will be giving a talk about the book the 12th of December. Seats are limited, so make sure to reserve yours today:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;img alt="" class="alignnone" data-mce-src="http://photos4.meetupstatic.com/photos/event/9/5/e/3/highres_31838371.jpeg" height="223" src="http://photos4.meetupstatic.com/photos/event/9/5/e/3/highres_31838371.jpeg" style="border: 0px; cursor: default;" title="jBUG London" width="420" /&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;a data-mce-href="http://www.meetup.com/JBoss-User-Group/events/85267232/" href="http://www.meetup.com/JBoss-User-Group/events/85267232/" target="_blank"&gt;http://www.meetup.com/JBoss-User-Group/events/85267232/&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
We will be giving away a free copy of the book to the attendee who makes the more interesting questions during the talk.&amp;nbsp;Feel free to drop us a line with comments or expectations about the talk. You can start looking at the examples provided with the book here:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
&lt;a data-mce-href="https://github.com/Salaboy/jBPM5-Developer-Guide/tree/1.0.Final" href="https://github.com/Salaboy/jBPM5-Developer-Guide/tree/1.0.Final"&gt;https://github.com/Salaboy/jBPM5-Developer-Guide/tree/1.0.Final&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
We will be posting a detailed agenda about the presentation shortly.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
Stay Tuned!&lt;/div&gt;
&lt;div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"&gt;
PS: you can follow us on twitter:&amp;nbsp;&lt;a data-mce-href="http://twitter.com/salaboy" href="http://twitter.com/salaboy"&gt;@salaboy&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a data-mce-href="http://twitter.com/ilesteban" href="http://twitter.com/ilesteban"&gt;@ilesteban&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=MCB9kMQYwjI:Lwaghv6lxUM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=MCB9kMQYwjI:Lwaghv6lxUM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=MCB9kMQYwjI:Lwaghv6lxUM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=MCB9kMQYwjI:Lwaghv6lxUM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=MCB9kMQYwjI:Lwaghv6lxUM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=MCB9kMQYwjI:Lwaghv6lxUM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=MCB9kMQYwjI:Lwaghv6lxUM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=MCB9kMQYwjI:Lwaghv6lxUM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=MCB9kMQYwjI:Lwaghv6lxUM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=MCB9kMQYwjI:Lwaghv6lxUM:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/MCB9kMQYwjI" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/MCB9kMQYwjI/jbpm5-developer-guide-official.html</link><author>noreply@blogger.com (salaboy)</author><thr:total>2</thr:total><feedburner:origLink>http://blog.athico.com/2012/11/jbpm5-developer-guide-official.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5869426.post-5292671413616618296</guid><pubDate>Fri, 16 Nov 2012 09:22:00 +0000</pubDate><atom:updated>2012-11-16T09:22:27.094Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">event</category><category domain="http://www.blogger.com/atom/ns#">Presentation</category><category domain="http://www.blogger.com/atom/ns#">jBPM</category><title>JBUGs Sydney &amp; Melbourne 19th &amp; 20th November 2012</title><description>&lt;div class="post-header" style="text-align: justify;"&gt;

&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
I'm visiting Australia next week, and I'll be giving &lt;a href="http://app.engage.redhat.com/e/es.aspx?s=1795&amp;amp;e=191423"&gt;two JBUG presentations&lt;/a&gt;:&lt;/div&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;in Sydney on Monday November 19th&lt;/li&gt;
&lt;li&gt;in Melbourne on Tuesday November 20th&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: justify;"&gt;
I'll give a quick jBPM overview and focus on some of the new features 
that we're developing and some of the changes you'll see in the near 
future.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Important: Followed by pizza and drinks after each session ! :)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
So if you're in the vicinity, feel free to join us.&amp;nbsp; &lt;a href="http://app.engage.redhat.com/e/es.aspx?s=1795&amp;amp;e=191423"&gt;Registration&lt;/a&gt; is necessary.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Hope to see you there !&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=nPQDNBDtZf0:DVG-dfeSPq8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=nPQDNBDtZf0:DVG-dfeSPq8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=nPQDNBDtZf0:DVG-dfeSPq8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=nPQDNBDtZf0:DVG-dfeSPq8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=nPQDNBDtZf0:DVG-dfeSPq8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=nPQDNBDtZf0:DVG-dfeSPq8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=nPQDNBDtZf0:DVG-dfeSPq8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=nPQDNBDtZf0:DVG-dfeSPq8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?i=nPQDNBDtZf0:DVG-dfeSPq8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.athico.com/~ff/DroolsRSS?a=nPQDNBDtZf0:DVG-dfeSPq8:jWeZv7XsJd0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DroolsRSS?d=jWeZv7XsJd0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DroolsRSS/~4/nPQDNBDtZf0" height="1" width="1"/&gt;</description><link>http://feeds.athico.com/~r/DroolsRSS/~3/nPQDNBDtZf0/jbugs-sydney-melbourne-19th-20th.html</link><author>noreply@blogger.com (Kris Verlaenen)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.athico.com/2012/11/jbugs-sydney-melbourne-19th-20th.html</feedburner:origLink></item></channel></rss>
