|HOME PATTERNS RAMBLINGS ARTICLES TALKS DOWNLOAD BOOKS CONTACT|
March 6, 2005
The German language is (in)famous for its ability to concatenate words together into single ueberwords with a gazillion letters. We get to hear about "Wirtschaftlichkeitsberechnungsmethoden", i.e methods to compute economics or "Schnittstellenankopplung", which translates into something like interface attachment. Anyway, the BTW conference is held every other year. As the name suggests, the conference originated in the database world but has not escaped the influence of services and service-oriented architectures. Frank Leymann, one of the co-creators of BPEL, invited me to speak on SOA from a developer perspective. Satish Thatte from Microsoft, the other mastermind behind BPEL, presented as well, so it was a great opportunity to get a behind the scenes look at BPEL. By now vendor support for BPEL is increasing (the "big guys" IBM, Microsoft and Oracle each have an offering) and the spec has been submitted to OASIS. I think it is time for me to start blogging a bit more about BPEL, so stay tuned.
I managed to sneak into an interesting workshop on "XML4BPM". There was a lot of discussion on two new acronyms I had not heard: EPC - Event-Driven Process Chain and CBP - Cross-organizational Business Process. Maybe I am simple a little behind the times as someone already created a Visio template for EPC. To my rescue I just saw a site stating that it is particularly popular in Germany, which is not surprising because SAP uses it. I'll try to check it out in a little more detail as it seems to relate closely to the whole Orchestration vs. Choreography debate.
I particularly liked the separation into multiple process modeling layers, i.e. business process, technical process and executable process. I love BPEL as an execution language but too often I see some vendor making a pitch that business analysts will use a BPEL-centric tool to model business processes. I see these as pretty different use cases. Acknowledging that there are different levels and that explicit (partially automated) mapping is required between them is a definite step forward.
Another talk focused on comparing the semantics od EPC and Petri nets and the like. Sounds like a pretty arcane topic but I am kind of growing fond of the Petri notation for processes. Unfortunately, there aren't really any execution environments for them outside of the academic world. The talk focused on showing how to implement Wil's Workflow Patterns (BTW, his site has really cool Flash animations of these patterns). The Milestone pattern caught my particular interest (even though I would consider renaming it to "Window of opportunity"): A task has to happen after another task completes but before that task moves into it next phase (i.e. reaches the milestone). The following figure uses an extended EPC notation to represent this interaction pattern:
In this pattern, Task D can execute once the Milestone is reached but before the milestone expires (i.e. function B is executed).
I have seen an interesting variation of this pattern quite frequently in real life. For example, a foreground task might have to perform some computation. It also starts a background task. Once the foreground task is completed, the foreground task checks whether the background task is done or not. If the background task is completed, the foreground task uses the result, otherwise it just moves on. This is different than the milestone because the milestone pattern does wait until task C is done if it was in fact started. I don;t have a name for this pattern yet, for now I call it "Giving it a Shot" or "Impatient Master".
Frank Leymann gave a very nice tutorial that demonstrated the significance and interrelationships between all the WS-* specifications, especially WS-Policy. I also learned about the new WS-MetadataExchange spec.
One should always walk away from a conference with a new quote that makes you look smarter. In case of BTW, it was this one related to the vendor race in the SOA space: We don't know where we are going but we want to get there first!
|© 2003-2021 • All rights reserved.|