PaaS as the path to MDA?

Lots of communities think of Cloud Computing as the realization of a vision that they have been pusuing for a while (“sure we didn’t call it Cloud back then but…”). Just ask the Grid folks, the dynamic data center folks (DCML, IBM’s “Autonomic Computing”, HP’s “Adaptive Enterprise”,  Microsoft’s DSI), the ASP community, and those of us who toiled on what was going to be the SOAP-based management stack for all IT (e.g. my HP colleagues and I can selectively quote mentions of “adaptation mechanisms like resource reservation, allocation/de-allocation” and “management as a service” in this WSMF white paper from 2003 to portray WSMF as a precursor to all the Cloud APIs of today).

I thought of another such community today, as I ran into older OMG specifications: the Model-Driven Architecture (MDA) community. I have no idea what people in this community actually think of Cloud Computing, but it seems to me that PaaS is a chance to come close to part of their vision. For two reasons: PaaS makes it easier and more rewarding, all at the same time, to practice model-driven design. More bang for less buck.

Easier

My understanding of the MDA value proposition is that it would allow you to create a high-level design (at the level of something like an augmented version of UML) and have it automatically turn into executable code (e.g. that can run in a JEE or .NET container). I am probably making it sound more naive than it really is, but not by much. That’s a might wide gap to bridge, for QVT and friends, from UMLish to byte-code and it’s no surprise that the practical benefits of MDA are still to be seen (to put it kindly).

In a PaaS/SaaS world, on the other hand, you are mapping to something that is higher level than byte code. Depending on what types of PaaS containers you envision, some of the abstractions provided by these containers (e.g. business process execution, event processing) are a lot closer to the concepts manipulated in your PIM (Platform-independent model, the UMLish mentioned above). Thus a smaller gap to bridge and a better chance of it being automagical. Especially if you add a few SaaS building blocks to the mix.

More rewarding

Not only should it be easier to map a PIM to a PaaS deployment environments, the benefits you get once you are done are incommensurably greater. Rather than getting a dump of opaque auto-generated byte-code running in a regular JVM/CLR, you get an environments in which the design concepts (actors/services, process, rules, events) and the business model elements are first class citizens of the platform management infrastructure. So that you can monitor and set policies on the same things that you manipulate in you PIM. As opposed to falling down to the lowest common denominator of CPU/memory metrics. Or, god forbid, trying to diagnose/optimize machine-generated code.

We shall see

I wasn’t thinking of Microsoft SQL Server Modeling (previously known as Oslo) when I wrote this, but Doug Purdy’s tweet made the connection for me. And indeed, one can see in SQLSM+Azure the leading candidate today to realizing the MDA vision… minus the OMG MDA specifications.

[Note: I wasn’t planning to blog this, but after I tweeted the basic idea (“Attempting MDA (model-driven architecture) before inventing model-driven deployment and mgmt was hopeless. Now possibly getting there.”) Shlomo requested more details and I got frustrated by the difficulty to explain my point in twitterisms. In effect, this blog entry is just an expanded tweet, not something as intensely believed, fanatically researched and authoritatively supported as my usual blog posts (ah!).]

[UPDATED 2009/12/29: Some relevant presentations from OMG-land, thanks to Jean Bezivin. Though I don’t see mention of any specific plan to use/adapt MOF/XMI/QVT/etc for the Cloud.]

4 Comments

Filed under Application Mgmt, Automation, Azure, BPM, Business Process, Cloud Computing, Everything, Implementation, Microsoft, Middleware, Modeling, Specs, Standards, Utility computing

4 Responses to PaaS as the path to MDA?

  1. William – Thanks again for an eye-opening post. I had no idea so many other communities were grappling with these problems! Now I’ve got plenty of research to do. Sleep be darned.

  2. Stu

    Yeah, this insight was, in part, the idea behind EDML and ECML. EDML was your PSM, ECML was your PIM. In practice today it’s not quite that clean, but it’s mostly true.

    At the last OMG meeting in December, there was an attempt to drum up interest on Cloud Modelling for MDA at the end of the Cloud Interoperability Workshop, but there wasn’t a lot of demand. I did present our progress to date, but I think maturity is stuck on the “wow, can’t we just have a standard API”? level. I also presented my angle on Cloud + MDA to the SoaML working group in Spring 2009, and Arne Berre (the SoaML lead) was the organizer for the OOPSLA Cloud Design workshop I presented at so … someone is hopefully thinking about it.

    Outside of the OMG, the thing I’ve noticed in my evangelism / conference talks is that there is a *lot* of religion lurking here. Mention the word modelling, or MDA, and a portion of your audience will basically leave the room and label you as “one of THOSE people”. If you say something more benign and confusing like “orchestration with machine-readable documents”, or “data-driven, multi-cloud automation”, people keep listening.

  3. Good points Stu. To your last sentence, I can’t keep adding: “just like with the semantic web”.

  4. Stu

    Oh, absolutely. It’s disheartening. In my darker moods, I liken it to the problem devs still have with RDBMS design 30 years later, and the snickers about higher normal forms being useless or a think of the past. Technological function in-the-small becomes the apotheosis, trampling form, or design-in-the-large. Logic is hard, let’s go shopping!

    In my lighter moods, I look at the progress being made on open linked data, and the underlying technology, and get that these things take a long time to find their tipping point, so long as steady progress is being made.