The many heads of XML modeling
XML initiatives, including Web services, have much to gain by associating themselves
with efforts such as the OMG's MDA. This is easy enough to say, but the practicalities
of the matter deserve some thought.
In essence, software development is about trying to capture concepts within
a user's head and then translate them to some analog in the computer. Once this
analog -- often called "business objects" -- is in place, developers
can build the code to solve problems around it. The crux of the effort, and
also the graveyard of so many software projects, is the initial process of translation
from concept to computer analog, or model. The orthodoxy for making this translation
is familiar to most programmers. They gather requirements and then create design
artifacts in the hope that they reflect the client's needs. These are the entity-relational
or UML diagrams that litter cubicle walls the world over.
But design artifacts are just that: they are products of design, so they look
forward to implementation rather than backward to customer concepts. For this
reason, they are also complete artifacts and usually have no basis in nature.
Many pundits have pointed out that developers should do a better job of understanding
customers' thinking, and such ideas have gained some momentum for a variety
of reasons. First of all, XML technologies have brought to the mainstream radically
new ideas of how to represent real-world concepts in software systems. This
new way of thinking is sometimes given the convenient shorthand name "document-oriented
modeling." It encourages the modeling of concepts according to how we might
describe these concepts in a form of restricted prose, rather than as a set
of formulae for the functions we associate with the concept.
A second development is that the OMG has made a fundamental shift in its attitude
toward software development by putting this fundamental expression of concepts
at the heart of the development process. This new approach is called the Model
Driven Architecture (MDA).
XML and MDA both move the considerations behind software integration to the
beginning of the development project. They force developers to consider how
the concepts embodied in their localized project are in accordance with the
same concepts embodied in other software within the firm or, in some cases,
with established global standards. This is very important because integration
into other systems is so often an afterthought; this is a major reason why integration
and maintenance are notorious sinkholes in IT budgets.
But this is not so easy. Conceptual modeling is rather like the Hydra that
Heracles was tasked with slaying. It has numerous heads, and its poison can
kill projects if developers are not careful. What's worse, it seems that every
time a hero tries to cut off one of its heads to provide some consolidation,
two or three more heads spring up.
The OMG put a lot of work into formalizing the UML so that it is not just a
form for pretty pictures that describe software, but a highly specified expression
language for concepts. The formalism that ties it to reality is known as the
UML meta model. Needing similar rigor to underlie CORBA systems, the OMG also
devised the Meta Object Facility (MOF). Realizing they had a great deal of duplication
on their hands, the OMG went about defining a mapping between the UML meta model
and MOF. Needing a way to express MOF interoperably, the OMG came about to an
XML representation, the XML Meta data Interchange (XMI). Understanding that
XMI presented a great opportunity for serializing MOF or UML models for interoperable
tools, the OMG placed it midway between the two. Confused yet? I haven't even
discussed how XMI might interact with XML or RDF schemas, nor have I thrown
in the CWM.
There is much work to do in consolidating and simplifying the methods/tools
available to developers, and the Hydra will have to be cut down to one or two
manageable heads. Of course, according to Greek mythology, two of the Hydra's
siblings were Cerberus, the three-headed guardian of the gates of Hades, and
the Chimera, a frightful beast that is part goat, part lion and part snake.
Clearly, there is a warning in there for anyone who hopes to make next-generation
modeling safe for the masses.
To read more columns by Uche Ogbuji, click here.