Tuesday, April 28, 2009

In transition to JBoss Solutions Architect

Well, the last day of work at SNS Bank is behind me. As you can see, it was a REAL tough day! ;-)

It is rather weird to be leaving after only 21 months, but the whole group there has been really great. I want to thank them all one last time (you know who you are) for the great time and sendoff.

I am going to have to see what I am able to continue to post here about jBPM. I hope in my new roll to continue to provide insights into actual solutions in the field. I imagine my travels and interactions with customers will provide some interesting topics to write about here. Maybe I will have to broaden the subject matter or provide new feeds that cover different aspects of the JBoss product line.

In either case, I am hitting the ground running with a trip to RedHat HQ and planning out my role with my new boss. I also hope to see you all in Antwerpen on 8 May for the jBPM Community Day, but should you miss that I will try to fill you in with a post here.

Thursday, April 23, 2009

Back in Limburg for some climbing

My last vacation day to be spent on cycling activities and I was able to head down to Limburg again.

This time my buddy Robert went along, which was nice but he has never climbed any serious hills before. Therefore we kept the ride a bit short, only 30 km and about 1,5 hours.

We started off again in my favorite village of Schoonbron and went up the Keutenberg. The picture on the top right shows that we reached the top of the climb and could cross this one off our list.

We then toured on a bit further, even being cheered by a group of hikers, before heading up the Gulperberg. The picture on the right is of my buddy Robert trudging up the last steep bit before reaching the top. He was asking when we were stopping for some coffee at this point... but there was more in the planning.

No first timer to climbing in Limburg can miss the Cauberg, so we headed back through Gulpen, Wittem, Partij, Schijn op Geul, and on into Valkenburg to the Cauberg.

I have never had the chance to have someone shoot a picture of me climbing this famous cat. 4 "Dutch mountain" so had Robert go on ahead a bit to catch me on the way up. The final photo shows me at about the half way mark, chugging away (standing) on the bike.

We finished up the afternoon with spaghetti in Valkenburg before heading back to the car and on back home. The bike computer showed over 1300 calories burned, so I was pushing it up the hills pretty good!

Wednesday, April 22, 2009

Climbing the Oude Holleweg and Van Randwijckweg in Beek

Today I was off for a meeting in Nijmegen and knew I would be a bit early, so I put my bike in the back of the car for a 1,5 hour ride in the hills around Beek and Berg en Dal.

The total distance was only 20 km but the weather was great and I must have spent over half of the ride climbing some hill or another.

I was able to loop around through Ubbergen, back to Beek and then climb up the steep hills to Berg en Dal. I made this loop 5 times to climb the Oude Holleweg (3x) and the Van Randwijckweg (2x).

This was all good for a serious max heart rate of 198, tired legs, and 1350 calories burned.

The top left picture is of the Oude Holleweg and the bottom right picture is of the old station house at the bottom of the Van Randwijckweg climb. There is a large amount of road construction going on so the roads were dirty and partially blocked which means you have to pay a bit more attention before the climbs start (in Beek and on the Van Randwijckweg).

The Oude Holleweg is just a very steep and narrow climb that you feel get much steeper at the end. By the third time I did it I was pretty much maxing out my heart rate as I stood up on the pedals.

The Van Randwijckweg climb was a much better road, more easy going until the sharp corner that either doubles back to the left or goes down to the right. At that point you hit the bricked street and it gets very steep again. Really a fun climb to do as you can take the first part in the medium gears and don't have to drop down to the climbing gears until you see the bricked portion of the road aproaching (this is a good tip if you are a recreational rider like me).

Tuesday, April 21, 2009

Watching your blog on vacation tv

Sunday, April 19, 2009

Route Amstel Gold Race 2009

Nice overview of the Amstel Gold Race 2009 route that will be taken today:


Thursday, April 16, 2009

jBPM from the trenches - a state-proxy solution final report

As previously posted, we have been working on something we call a state-proxy.Now that it has been realized I can provide some more details.

The problem was that we had no ESB solution in our SOA infrastructure and all processes in jBPM are modeled using nodes, decisions, process-states, and tasks. We wanted to make use of state nodes to provide at least the ability to enter real wait states and persist the process data. This was to give us more reliability and constancy in our process implementations.

In each state node a single service call is made through the infrastructure provided by a state-proxy. This state-proxy infrastructure is used to create a new thread of execution and release the process to enter a wait state. The state-proxy will then handle the service call, serialize the results or exceptions, place them in the context, and signal back to the waiting process.

The process flow shown here (top left) depicts the integration test that was run using our state-proxy infrastructure and state nodes. The process definition for these state nodes looks something like this:

<state name="someServiceCall">
<event type="node-enter">
<action class="some.domain.handler.SomeServiceCallHandler" />
</event>
<event type="node-leave">
<action class="some.domain.handler.SomeServiceCallHandler" />
</event>
<transition to="anotherServiceCall?" />
</state>

Each state node makes use of a handler that contains three methods:

/**
 * Where the service proxy is created, the input object for the service call
 * is filled, and the service call is made.
 *
 * This method is run on the event 'on node-enter'. 
 */
public void onPerformCall(ExecutionContext exc) {}

/**
* When the state-proxy call has completed, it will signal back to the process
* which reacts to the event 'on node-leave'. The state-proxy has set a context
* variable RESULT_DATA which is used to transport the JBoss serialized results
* and is placed into the input 'result' object. This method allows processing
* of the service results before taking the default transition to exit the state
* node.
*
* This method is run on the event 'on node-leave'.
*/
public void onHandleResults(ExecutionContext exc, Object result) {)

/**
* When the state-proxy call has completed, it will signal back to the process
* which reacts to the event 'on node-leave'. The state-proxy has set a context
* variable RESULT_ERROR which is used to transport the JBoss serialized exception
* and is placed into the exception 'e' object. This method allows processing
* of the exception before taking the default transition to exit the state
* node.
*
* This method is run on the event 'on node-leave'.
*/
public void onHandleException(ExecutionContext exc, Exception e) {}

I am unable to provide exact details from the code of the state-proxy, but I can say that this enables us to detach our service calls from the calling process node, persist our state, and await the results. These results can then be handled or the resulting error can be processed before continuing with the flow.

Some issues remain.

It is not possible to exit a state node via a transition that you may choose from the 'on node-leave' event (either from our onHandleResults or onHandleException). The signal being sent back from the state-proxy has already retrieved the process context and instance and filled the node with the default transition. We are looking into this and you can see the current way of working is to place a decision node directly after the state to branch as needed.

Another rather simple problem, is that a failing signal from the state-proxy back to the process is a single point of failure that could lead to a process 'waiting' forever. We need to build in a mechanism, such as email to a process administrator, to ensure that processes do not fall asleep at the end of an 'on node-enter' event.

I hope this brings some of the promised details to light on what we are doing with a state-proxy to ensure some sort of process reliability and data consistency without the use of an ESB.

Saturday, April 11, 2009

Today a 2 hour ride

Today a 2 hour ride through some of the towns in the direction of Eindhoven: Vught, Esch, Sint-Michielsgestel, Schijndel, Den Dungen, and back to Hertogenbosch.

Was around 47 km but most of it was spent doing high revolutions per minute to get the heart pumping in the 150 - 170 range. Burned over 1800 calories and enjoyed warm weather, around 22 degrees Celsius. I even got rained on a bit but that did not matter as this was the first ride of the year in shorts and short-sleeves!

Thursday, April 9, 2009

jBPM 4 beta 1 on JBoss 5.0.1.GA screenshots

I was pretty curious when I saw the announcement on the jBPM feed that the new release was available.

I setup the newest JBoss and jBPM 4 on my macbook. Just downloaded the app server and unzipped and ran the installer to get jBPM auto installed.

Fired up the Jboss app server, loaded the web console in my browser, logged into the new gwt console for jBPM and took some screenshots.

Nothing extensive such as process deployment, swimlanes, or task management to show you, but nice to see how easy this install has become.

Kudo's to the jBPM team!

Speaking at jBPM community day

The jBPM team is holding a Community Day in Antwerp on May 8th, 2009 and I have been invited to speak.

The initial invitation was to present my SNS Bank work entitled Full Scale STP with jBPM. It will cover some of the material I have published (PRET09 / 2009 BPM Handbook) and presented previously. I am really looking forward to meeting with the developers themselves and to meet some of the community.

The only funny part of this story is that since I was invited, I have signed on with RedHat. I starting on the 1st of May. So officially I will no longer work for SNS Bank (for 8 days!) which makes the presentation a bit strange. Luckily the material is fresh for me and I plan to update it with the current status of our extensive jBPM usage.

I will be there with my good friend and then to be jBPM lead for SNS Bank, deMaurice. Stop on by and say hi, we look forward to meeting you and hearing your jBPM stories!

Monday, April 6, 2009

2009 BPM & Workflow Handbook - Financial Crisis Front Line: SNS Bank

A few months ago my chapter was accepted for evaluation and printing in the 2009 BPM and Workflow Handbook.

Today I gave official permission to publish the chapter, which will appear in section 2 which is entitled "The business value of workflow and BPM." The cover of the book is shown here and is linked to the order page. A table of contents with full abstract is available here.

The book will be launched in June 2009 at the BPM in Government Conference and Expo in Washington DC in conjunction with the Spring WfMC member meeting. I have been invited to come to this conference and also to an author signing at the books launch.

Sunday, April 5, 2009

De Ronde van Oeste Portlandia 2009

Every year I report a link to De Ronde van Oeste Portlandia, my hometown spin-off on the Ronde van Vlanderen. The run it the same weekend as their name sake and within a few days you will find all kinds of YouTube videos done by riders.

Friday, April 3, 2009

Mobile GMail v2.0.6 Download

This was annoying to look for, so here is the direct link to download Gmail app for your mobile phone:

http://m.google.com/app/v2.0.6/L1/gmail-g.jar


UPDATE (07 Oct 2009):
=====================
Linked moved off to somewhere new, so you can get this download via (enter this in your phone of course, will fail on a desktop):

http://m.google.com/mail/download?dc=gorg

Removed old link.

Thursday, April 2, 2009

Riding in the Limburg hills

Early this week the weather forecast was for a week of sunny days and today would be one of the nicest of the week. Seeing as I have a few extra vacation days over, I decided to take one and head off to Limburg.

It was 18,5 C and a bit windy but I had a great ride. Over 2 hours, 40 km, with almost nothing but climbing.

I started in Schoonbron, through Valkenburg, then up the Cauberg (4e cat) and I took a picture of the last sign at the top of the climb, that you are leaving Valkenburg. From there it was down to Sibbe and a quick stop at Margraten to visit PFC Henry L. Hooper.

From there it was back up the hill towards Gulpen where I stormed the Gulperberg (see picture of the sign at the top of the climb), onwards through a few smaller villages to Heijenrath, then down into Slenaken. I then turned around and took the Lorberg tour climb (4e cat) back up to Eperheide and Epen. From there it was through the rolling hills through Mechelen, Wittem, Gulpen and home to Schoonbron.

Once I got changed it was time to examine the statistics on the cycling computer; 2 hours on the bike, 2100 calories burned, 40 km cycled. It was so nice I first had a coffee and the local Limburgse vlaai (pie) with the pictured view of the Keutenberg.

Wednesday, April 1, 2009

Armstrong's April Fool's joke

This is a really good one about the recent surgery and how they used carbon clavicle to fix him right up (includes pictures and x-rays).