Tag Archives: Camel

Running the Rule Engine EXercise over a month

My reex2014 – a Rule Engine EXercise for 2014 has been running live for over a month now, time to draw some functional and technical feedbacks.

Real case scenario #1

A functional example based on a real case scenario, starts with:

Which raises the relevant Alerts:


Some time later, this happens:

Which again raises the related Alerts:


Later when traffic resume:


Real case scenario #2

Another functional example based on a real case scenario, traffic momentarily suspended due to a person in the tunnel, followed by a resume of traffic operations.

The reex2014 web application offers a representation of the relevant Alerts:



Which are also available on the Android widgets accordingly:

Technical notes

This is the first time I use OpenShift Online PaaS to host an application which has to run over some time, rather than quick one-shot/disposable experiment. I’m very pleased with what you can do, especially with the public, free offering!
The only couple of pain-points I have to deal with, are:

  • Need tedious work-arounds to solve for Maven dependencies which are not available publicly. Yes, customer Maven dependencies can be installed via ssh once the gear is already created, but I cannot found a reasonable way to create a gear starting from an existing github repo, if this latter contains non-public maven dependencies.
  • Despite application being constantly used by users, sometimes it restarts anyway. This happened two times. The latter was due, I suppose, to “security updates” related to the infamous shellshock/bashbug apocalypse, but the first time this happened, frankly I couldn’t trace back the reason.

In any case, not bad at all, considering is a free public offering!

Camel framework proved once again really, REALLY great for providing ESB logic and effective integrations! In this case I use it as a micro-ESB to interconnect the JavaEE application with Twitter, Rome RSS readers, etc. In other contexts, I use Camel framework for ETL, ESB and integration needs, and I’m super pleased by how much it is effective.


The exercise proved its benefit already and I’m using it daily for my commuting needs!

Evolutions could target general-improvements about rules, to avoid duplications of Alerts when the PA is made in multiple languages, and to cover more RSS-related cases. On the JavaEE side, the next is definitely target to support for PUSH notifications, which would need to be enabled on the Android projects as well.


reex2014 – a Rule Engine EXercise for 2014

I’m a Computer Science Engineer and I do believe there is a whole new range of unexplored applications for Expert Systems (AI) in Big Data scenarios, also within the Corporate business. You can read more about me on my LinkedIn profile.

I’ve found interest in Rule Engine applications while studying at University, and since, this has grown as a kind of NERD interest also on a personal perspective.

This is the reason every year I attempt an hobby-project where I can find an interesting application.

The theme I’ve chosen for this year 2014, is to solve a very practical problem: monitor data sources and social media for potential public transport issues, which I use for commuting. From a technological perspective, I’ve also wanted to seize a chance to experiment integrating several technologies.

In summary


  • Monitor data sources and social media for potential public transport issues
  • Use Expert Systems (AI) – Rule Engine (Drools)
  • Experiment for integration of other technologies with Java EE: like PaaS (OpenShift), Camel, Android


  • This is not an exercise of Sentiment analysis nor of Natural language processing
  • This is not an exercise to imitate other more complex systems for public transport information communications

Analyze RSS feed

Detect strike warning alerts from RSS stream, and others.


Analyze Twitter feed

Detect alerts for:

  • Several tweets for a specific of the different metro lines
  • Metro delays
  • Service interruptions

and others.


Android widgets

Distinct widgets for:

  • List display all Alerts
  • Display summary of inferred knowledge

with Settings page.


Source Code

The source code of this project is on github


This reex2014 project is NOT affiliated with, endorsed, or sponsored by any of the source of information which is connected to. This work has, instead, been created for demonstration of technological integration.

All trademarks of their respective owners.