Frank's Blog

State of Workflow Part I 

I've came across a nice article about the state of workflow (although not the newest one). The article reminds me of putting together the things I currently research. In the section "The Workflow Landscape", three main differences between traditional workflow management systems and executional processes are characterized:

State vs. Message oriented.
Process instance id vs. Message correlations.
Central engine vs. Abstract service endpoints.
Today I want to consider the first point, state vs. message oriented processes. Traditional (academic) workflow research focuses on state-based descriptions of workflow (e.g. Workflow nets). However, as the term workflow broadens to inter-organizational workflow between companies, and especially by the use of service-oriented approaches, distributed, state-based processes are hard to manage. In contrast, message-based systems that rely on events promise a much broader usability (e.g. BPEL).

Let me give you an example in the Workflow net notation:

The simple process above consists of a task that sends a request and afterward waits for either the response or a timeout if no response has been received within a given timeframe. The process already contains the nice pattern Deferred Choice. In traditional workflow systems, this process lived alone. Each task appears at the work list of some employee who finally has to execute it. The first task was maybe a letter to be sent. Afterward, two exclusive tasks appeared at the work list. If an answer was received by mail within a given timeframe, the answer was processed, whereas otherwise the timeout task was selected (which contains maybe some callback actions).

However, as time moves on and the future of workflow arrives at the service-oriented architecture level, all tasks of our example are executed by computers. So, what is required first? Of course, a corresponding process. Lets assume this to be an abstract process, meaning that we only know the parts which we can use for interaction:

I used some fancy notations to denote the hidden parts of the corresponding process. We can actually call this process service. All we know is the interface description (receive request, send response). We additionally can derive the order of the tasks (first receive a request, then send a response). This is by far more as static web-service descriptions (WSDL) contains, as we have a static as well as a behavioral description of the service.

When we use a state-based description of how our example process interacts with the service, we need to introduce some additional states that describe the incoming requests and outgoing responses. The result contains two workflow nets which interact by using shared places (marked in sweet orchid):

I want to state again, that this system consists of two different workflows, executed by two (different) engines, which use shared places for synchronization. There exists a lot of formal research on this topic, for example how to extend the service without violating the "interface" behavior (by van der Aalst).

A message, or event-based system has no explicit state description. Each task has so called preconditions which have to yield true to enable the task, and postconditions, which hold after the task has been executed. All tasks are "swimming" inside a service-oriented environment as the for example the web. For several good reasons, the tasks of our example are belonging inside our companies space, whereas the services belong to other companies which offer them. However, in theory all task can be easily distributed across the environment. Let me also give you a picture here:

All tasks are represented as circles which a short name inside (not to confuse with the states, or places of workflow nets). The tasks are split across two spaces, our and the other space. The pre- and postconditions of the tasks are not contained within the picture, however the dependencies between are shown by lines. Each line connects a postcondition of one task with the precondition of another one (where the precondition-end is marked with a filled circle). So we see dependencies between P1, S1, P2, P3 as well as S2 and P2. Actually S1, P2, and P3 can only be activated after P1 has been executed, those meaning the preconditions of S1, P2, and P3 depend on the postcondition of P1. The same holds for S2 and P2. I leave it as an exercise for the reader to give the corresponding conditions. What I would like to highlight is the high distribution of all possible tasks. P2 for example could also be inside another space, and each task can be controlled by a different execution environment, those making a message-based workflow system highly distributed.

What this is all good for? We will see...
[ view entry ] ( 3938 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 3.1 / 260 )
SOC & Pi 

Just another crazy task is done. Last Tuesday I was looking around for call for papers just to give me some deadline to work to. After searching through some 2,500 dbworld mails, I found a call for papers for the 3rd International Conference on Service Oriented Computing (ICSOC 2005). Fortunately, the deadline has been extended one week - to exactly July 6th. My colleague, Hagen, and I decided to prepare a paper about our approach on mapping a graphical notation for business processes (the BPMN) to a nice formal algebra, the pi-calculus. We went straight to our professor and told him our idea. His first response was: that's just seven days! Indeed, we responded, not seven - just five. Both of us will be going on vacation the weekend between - without any computer.

Writing the paper was actually quite funny as the content focused more and more at the conference than on our initial idea. Finally we created a paper about using the pi-calculus in the area of service oriented computing. We will see if the "be the first" approach will work this time also. Currently, there is just one "hard" scientific paper about using the pi-calculus for workflow on the market - whereas there is a strong demand.

However, we managed to finish our beautiful paper just in time and now wait for notification - that's not before September, 15th.
[ view entry ] ( 1843 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 2.9 / 245 )

This weekend we did a nice trip from Decín (Czech Republic) to Dresden (Germany) by canoe on the Elbe river. Someone told me that the distance was about 61km. I felt very outpowered afterward. Like working out in the gym for hours with all weights doubled... Here are some impressions from the way:

We started on a foggy day...

Nearly every village on the way welcomed us - but always ANLEGEN VERBOTEN (Landing Prohibited) - of course just at the landing stage for commercial boats.

Finally we arrived at Dresden - unfortunately we had no more power to cruise along the world famous old town.

[ view entry ] ( 3712 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 3.1 / 286 )

Please excuse me, I still haven't introduced myself - beside a picture below.

My name is Frank Puhlmann and I live in the beautiful city of Potsdam, Germany. A walk over the street brings me to the Studio Babelsberg, where once famous movies like Fritz Langs Metropolis have been produced. Some minutes longer, and a thereby a walk straight through Berlin, take me to my work, the Hasso-Plattner-Institute.

I'm currently employed in a german research project called PESOA, which tries to integrate things called software product lines and process-orientation. While I'm there I'm also focusing on researching some stuff like dynamic, interoperational workflow by the use of some highly interesting algebra called the pi-calculus. If that's not enough, I also prepare lectures and supervise seminars and practices. You'll certainly read more about that in the future.

As this blog is subtitled "tech, work, life, and all the rest", I'll try to keep this order. However, that doesn't mean it's the order of the world they I personally have. But still, tech is a very important thing in my life. I've been hanging on computer keyboards since I was twelve, luckily starting with a Commodore 64 (Yes, that was that kind of computer where you could dump the memory instead of using a search function). Afterward, I've came a long way about every Windows version that was somehow useable (for me it was 3.1) as well as OS/2, Linux, and a short try out of BeOS. However, this winter I switched to what I think is the coolest Unix on earth - MacOS X. Whenever I tried to use Linux seriously, it started out to be the ultimate "frickelware", where just even my hardware was not directly supported. By the way, not to mention some two, or three year old programs which simple won't run without recompiling them (if that were this easy). Luckily, I've ordered a Mac mini (you remember, BYODKM) as a birthday present for myself, and sometimes after a 12" PowerBook, which I also use at work (BYOL - means Bring Your Own Laptop). Now I'm one of those Mac fanatics, even if they announced the switch to Intel (Thanks again to Hagen). So, this is what this blog will mostly be all about: computers and other tech related stuff; things I've experienced, or researched, as well as some rare reviews on music and movies. If I get my digi-cam ready before something interesting happens, I'll also post it here.
[ view entry ] ( 3625 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 3 / 289 )
Orientation Less? 

Today I've tried a nice little feature of my PowerBook: SMS. The Sudden Motion Sensor detects the physical orientation of the device. Originally build into the Book for detecting sudden motions, as when it's abruptly going down, and quickly parking the heads of the hard drive, some guy has figured out other nice uses.

One nice feature is to rotate the windows, so that they are always aligned with the horizon. If that's not enaugh, in combination with "the physical orientation of the PowerBook, the amount of resources consumed by the application, and how much the user is using the application", the orientations of all windows can change in realtime... might be a bit tricky to use that thing.

Beside some app that visualizes the current orientation of the Book in a window, there is also a human interface device driver. The Book's orientation can now be used to move the mouse pointer or simulate key strokes. A quite interesting app to test it with is Neverball. In Neverball you direct a ball by changing the orientation of the underlying floor while collecting coins and at the same time try to keep the ball inside the borders. Also quite tricky, especially as the sensor has a low granularity. Reminds me of playing Moto Cross Madness with my Sidewinder Freestyle Pro (now already good old times).
[ view entry ] ( 4234 views ) permalink $star_image$star_image$star_image$star_image$star_image ( 3 / 484 )

<<First <Back | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |