Saturday, March 29, 2008

Dynamic Data Models

A recent article on Infoq: Beyond SOA: A New Enterprise Architecture Framework for Dynamic Business Applications gives an interesting point of view about development of Enterprise Applications both from an architecture and a methodology perspective. Article's conclusions are:

"the evolution of flat, stateless, static, client-server web-based solutions have contributed to the disconnect between IT architecture and the real-world of hierarchical, stateful, dynamic, distributed business. We also discussed how traditional engineering approaches do not support the development of adaptive systems capable of supporting the dynamics of business."


A fundamental issue with present enterprise SOA is about the abuse of static data models. As the author explained, relational databases are for static data relationship, but only some parts of the enterprise ecosystem can be considered as being ruled by static relationships. For a more technical example, XML was supposed to be here to overcome relational limitations, as it should provide more robust data representations. In fact, an XML document is robust because by definition you could add elements without breaking the semantic of the document itself, but this is hardly true if then the XML document is parsed into static object wrappers, as most of the "modern" tools provide. As a consequence, proliferation of strict XML schema validation totally eliminates XML intrinsic flexibility and robustness. A more dynamic approach in the manipulation and representation of data flowing in the enterprise should be the focus of next generation softwares. Dynamic data manipulation will provide much better flexibility than static DOM object wrappers that are so common today.

Unfortunately present software tools are still focused on what the author calls static engineering frameworks which are good, even indispensable, to build bridges or airplanes, but very bad to create software useful to represent the dynamic and fuzzy business behavior. The well celebrated web-centric architectural model is good for information representation and retrieval, but when that model is used as a framework to capture and model business real life enterprise applications, then its static nature miserably fails the target.

Basically, a picture of a dog is not a dog, but looks like the software industry still has not fully understood this evidence.

2 comments:

  1. Ciao,

    I tend to agree that IT systems today are to static compared to the quicker evolution of the business. However, I don't agree that tools force us in the IT industry to do that. I think that to a large extent, the tools that we have got for the past 40 years would easily allow any competent IT engineer to follow the business if the business requires fast and agile changes. On the other hand, the organization that have been defined for the past 20 years are in my view the main reason for the loosing agility of IT. I am thinking of all the big outsourcing and offshoring push. This creates a very bureaucratic organization where any change to IT systems requires long procedures for requirement defintion and acceptance testing. In my experience, any small change we would like to apply to a production system is subject to a lot of procedure, going to a lot of discussion for risk mitigation and going back and forth between the service and solution teams. These 2 never agree on anything. One of the P of SOA is "people". I am convinced that having smaller teams of senior IT people close to the business sponsors would allow IT to get as fast as any business would need. Clearly, this is not the kind of organization I can see in any company. Therefore, I think that companies have the IT they deserve. And I they should not blame the tools for that.

    Best regards
    Eric

    ReplyDelete
  2. Ciao Eric,

    I mostly agree with you, the famous and frequently discussed "business / IT mismatch" is mainly due to organizational issues. IT is often broken and surely companies have the IT they deserve, as they have built it the way it works now.
    But the solution is not, as it sometimes happens, to tell customers that they just need to buy the next magic silver bullet, in terms of a software product that will definitely solve their IT problems. That's my main criticism against some "sell and forget" behavior that I have seen so many times by software vendors. Now the border between selling products and selling services is becoming very fuzzy.
    I then agree about the fact that many companies should then finally learn how to select the right software, they cannot always blame others for their ignorance. My criticism about "tools" was not directed against any specific product, but was more against some general trends: as I wrote we are making XML manipulation a bit rigid. Then most of the WS-* specifications are just too complex, WSDL is hard to read, XML schema is hard to learn. I can make you many other examples: EJB 2.x specs lead to a very complex development and maintenance cycles and it took too much time before the whole industry was able to recognize this fact, producing better specs and products.

    Now I think software vendors need to recover some market lost confidence, because after years of over-commitment it is time for some clarity: there is no magic tool, no silver bullet, no "near zero-coding" solution: software development is still a very hard work and, as you wrote, you need to select first the right people. Cheap outsourcing has failed, just because was really not cheap.

    ReplyDelete