Model Driven Architecture (MDA)

Model Driven Architecture (MDA) is a standard developed by the Object Management Group (OMG) for separating business logic from application logic. All of the busines logic of your system will be carefully defined by using standard UML modeling and other associated OMG modeling standards which will then be used to generate the technology that actually makes it work.

“OMG’s Model Driven Architecture provides an open, vendor-neutral approach to the challenge of business and technology challenge.” (Object Management Group)

One of the benefits of Model Driven Architecture is that your applications will be built on a standard that will be able to interact with legacy systems and new systems regardless of the platform that it was built on. It uses standards such UML for defining the business model, XML Metadata Interchange (XMI) for exchanging and storing model information, and CORBA for middle-ware interaction between systems (http://www.omg.org/mda/executive_overview.htm). These standards are not tied to any software or hardware platform, thus making it possible for an MDA system to adapt to new hardware and software platforms.

You can think of MDA as USB at a system-level. It provides a standard interface for things to connect and work together. For example, my USB flash drive doesn’t care if it’s being plugged into my Mac or my brother’s PC, nor does the PC care if I’m plugging in a Sandisk drive, or my Ipod Shuffle. Rather, it knows that a device of some sort that has been built to the USB standard will be plugged in and that it will be interacting with that standard. The same goes for MDA, it is a standard for defining domain specific, platform independent systems and how these systems will interact.

A standard MDA configuration consists of three components (http://www.omg.org/mda/faq_mda.htm):

  1. A definitive platform-independent base model (PIM).
  2. One or more platform-specific models (PSM).
  3. Sets of interface definitions.

The PIM defines the business logic and domain model of the system. This may consist of use cases and other specifications that don’t depend on a specific platform.

The PIM is then translated into a PSM which is something that a computer can actually run. It may be translated into C++, .NET, Java, or any other major general purpose language. (http://en.wikipedia.org/wiki/Model-driven_architecture)

The interface definitions can either describe how a human will interact with the system, or how middle-ware interfaces will interact with the system.

Because the application is broken down into these different components or layers, a change can be made at the platform independent model (PMI) and then be translated down into working software that will be able to interface with any system or user. This should save time and money.

OMG states that the three biggest benefits of using MDA include (http://www.omg.org/mda/faq_mda.htm):

  1. “… attention focuses first on the application’s business functionality and behavior, allowing stakeholders’ investment to concentrate on the aspects that critically affect core business processes.”
  2. “An architecture based on the MDA is always ready to deal with yesterday’s, today’s and tomorrow’s ‘next big thing’ and makes it easier to integrate applications and facilities across middleware boundaries.”
  3. “Domain facilities defined in the MDA by OMG’s Domain Task Forces will provide much wider interoperability by always being available on a domain’s preferred platform, and on multiple platforms whenever there is a need.”

So, MDA allows systems developers to focus on business processes, integrate with past, current, and future systems, and operate on any platform. That seems to be its main value proposition.

MDA isn’t a technology, it’s a standard, which means that different vendors will be providing solutions built on this standard. For a list of vendors that are already building tools for the MDA standard, see OMG’s Committed Companies and Their Products.

See OMG’s MDA site for more details.