09/14/07 :: [SOA] wsper: an abstract SOA Framework [permalink]

When I stopped blogging here in 2005, I expressed some sadness with respect to the way SOA standards and products were developed. I don't want to debate too much about this point, I'd rather do something about it. I have long argued that the end goal was to create a service oriented, process centric, model driven programming model. I have not changed by a iota.

So in the past few months, I have started to work on an abstract SOA framework that defines a programming model for SOA. I can't say, yet another one, because to the best of my knowledge (and I may be wrong), I don't know any other. I called this abstract framework, wsper ("whisper") because the web, services, processes, events and resources are key elements of the language. I have written a primer at the end of June that can be found here. Over the summer I have written an e-book that InfoQ.com has kindly accepted to publish (it will be available shortly). In this book, I explain my views on "Composite Software Construction" and the need for a new programming model.

I just wanted to give you a few ideas about the origins of wsper:

a) I like Dave Chappell's idea that what we have accomplished so far in building technologies for SOA is the "byte code" level. He talks just about BPEL, I talk about the whole stack, XML Schema, WSDL, BPEL,.... Who is the developer who is going program at the byte code level on a regular basis?

b) If you were to try to implement your SOA at this level you would have to learn tons of technologies, best practices,... you have a million chance to shoot yourself in the foot for any service you write. Don't get me wrong, this is not an attack on the stack, it had to be designed that way. The products that have been built with it are great, but they are at the VM level

c) what's missing is a programming model to construct composite software, this is wsper.

d) wsper is abstract because I am expecting that some big IT organizations will implement their own VM gup on top of their best of breed SOA technologies, while injecting their best practices in it. Some vendors may also decide to use wsper to offer a SOA programming model on top of their product stack.

e) wsper is about helping you write your business logic independently of the standards and products that you are using. Because, beyond the complexity that requires lots of training, you know the story, right? you have been there and done that? It's the U... word, when it is going to be time to upgrade a tiny bit of the infrastructure or to a new version of a standard, say XML Schema 1.1, well you know what happens then when you have 50 moving parts.

f) wsper is a programming model that has 3 key constructs services, assemblies and resources. The programming language itself introduces "messages" as a first class citizens along data and control structures. There is also a bunch of "state" constructs, because, well, state is also a first class citizen in the language.

g) wsper ties together the declarative and imperative styles of programming. In the past they have been often opposed, in reality there is a continuum, and one can't leave without the other. In the wsper primer I demonstrate that the continuum already exists in OO and I show how the OO metamodel can be evolved without breaking the principles that have made it so popular.

h) Syntax? wsper is syntax neutral. It is a metamodel from which you can generate as many syntaxes as you like. Pick your favorite, mix them up. They are isomorphic.

i) once I formalize the language, I will build a small reference implementation based on open source stack.

If you like what you hear or what you see, and maybe would like to contribute drop me a note gmail/jdubray

The real work starts now.