Log in

No account? Create an account
entries friends calendar profile Elf Sternberg's Pendorwright Projects Previous Previous Next Next
[Geekery] Have I latched on to a kook? - Elf M. Sternberg
[Geekery] Have I latched on to a kook?
I've taken a temporary contract with another company, short-term, to provide a JSON-based front end, with a RESTful API, and one of the topics that came up was the RESTful management of lifecycle objects, those that exist only for a period of time before being dismissed.

The back-end architect and I went back and forth on defining a "task" and then launching a "job": the full RESTful method would involve asking the task for an empty job slot with a job ID via POST, then PUTting the job declaration there. I thought just launching the job via sending the task a POST would be sufficient: it defined the what, and it fits within the RESTful model.

Tasks, after all, have jobs; jobs are an element of the task state. Most people get this wrong about the difference between PUT and POST. POST is very broad: you're sending a message to an object at the service end that says "Change your state." That's all POST does. PUT is narrow: your message is "PUT this object at the location specified in the URL." You can do that many times, and it will always be the same; PUT is idempotent (multiple applications of the operation do not change the result).

But I thought it would behoove me to better examine the way REST handles lifecycle objects. Along the way, I stumbled upon the website of Jean-Jaques Dubray who, for lack of a better word, comes across as a kook.

That's not to say he's wrong. His meta-language, WSPER, a textual descriptor for lifecycle objects in service-oriented architectures (SOAs) is actually kinda brilliant, and caused me to consider hard the kinds of things I'll be facing dealing with client-server REST issues like describing lifecycles and managing race conditions.

Business process lifecycle management is a hard problem in REST. It's 2010 and we're still arguing about how to do it. Dubray is convinced that the problem is in the word "process"; what we're really looking at, he says, is an entity, an instance of a business policy that needs to be treated like any other resource, except that it has a lifecycle. He's created an entire architecture to describe the class-ification and instantiation of "business entity lifecyle" (BEL) objects and the meta-language WSPER to describe the way they transition from one state to another cleanly.

As I said, it's kinda brilliant. But Dubray's attitude toward the rest of the SOA world, especially Web Service Business Process Execution Language, is basically, "Those fools! Those fools! Don't they understand!? WSPER and BEL is the future! If only those fools at the academy would understand!"

That last link's entry is missing only the requisite "I'll show them! I'll show them all! Muahahahahahah!" Although maybe Dubray is practicing to be an evil overlord, and is appreciative of Directive 20.

Current Mood: geeky geeky

Leave a comment