After my blog about grid a couple of days ago I have been putting in a lot more thought about Grid and the other two main buzz areas in enterprise computing; MDA and SOA. I am gradually coming to the conclusion that these map onto the three main areas of technology architecture; Design, Run time and Platform.
Design is all about the design space and incudes the models (OO, AOP, MDA, UML, DSL etc), the processes (SDLC, RUP, XP / Agile) and the tools (IDE’s, languages, test tools etc)
Run time is all about what happens at runtime and includes the concepts (SOA, Components (my definition), messaging, Security etc), the run time processes (rules, orchestration, workflow, business process etc) and the programs (J2EE, .Net, WS, BizTalk etc).
Platform is all about the underlying platform which runs everything and includes concepts (Grid (the platform piece), DSI etc), the operational process (MOF / ITIL and COBIT) and the tools (System centre, Windows Server etc).
Each of these areas is going through a major transformation with Design moving from an object basis to a model basis, Run time moving from application servers to web services and Platform moving from single system to homogenous multi system surface.
I belive the sum of all these major strategic shifts is a New Model for Computing (NMC). This is where applications are written in a high level product line factory approach independant of the platform and dropped onto a computing surface made up from high level run time servers which provide all the plumbing for multiple levels of abstraction.
The marketing buzzwords of MDA, SOA and Grid are just a shorthand to describe and give a label to the fundamental shifts that are occurring in each of these spaces. They are not quite on target in their definitions to describe the actual strategic changes going on in the IT industry but that is what they are being used for on a day to day basis. This is why I have had so much trouble with the “marchitecture” associated with the terminology; it is not what the technology definition is about. However the marchitecture actually is a lot closer to the important strategic changes than the original definitions of the terms. I guess we are seeing the evolution of language here and in 10 years time everyone will understand that Grid means a homogenous computing surface to run applications anytime, anyplace, anywhere rather than the narrow parallel processing applications there are today.
Bottom line; I was wrong in forcing my (correct) definition of Grid as a parallel application system onto the marketing "grid" of a computing surface. The definition of a grid is up to the industry and if that is a shorthand for a very important computing concept then I should go with it. Thus NMC becomes the join of MDA, SOA and Grid.
This leaves me in a personal quandary however; should I focus on the design space (MDA), the Run time space (SOA) or the platform space (Grid)? Which is the most important? What do you think?
I think all of them are important; it really depends on who you are. The design space is more of a set of frameworks and best practices. A designer would probably focus on MDA. Design space has lots of religious wars and I don't think there is one true winner.
I as an architect/developer, expect more support on the platform and runtime space from Microsoft. This is not the area of my focus, as I spend more of my time solving business challenges. It seems the run-time space is partly related to the enterprise/application architecture, and partly related to the environment (e.g. .NET, Indigo, Web Services, Enterprise Services, etc).
The platform space seems to be dominated by the OS (+other services) provider. As a developer I will rely on Microsoft, as creating my own Dynamic System doesn't make any sense!
So IMHO, this is what I think should be the priority for Microsoft: Platform, Runtime, Design, but I am open to any criticism :)
Good points, thank you.
NOAA forecast systems laboratory and HQ is exploring Grid computing, maybe this example will enlighten debate