Software Newsletter      https://www.freepciscore.com/Default.asp?ver=F   Software Journal
   
Software Journal
  Search  
   
   
 
The Software 500
Application Development
Application Focus
Business Intelligence
Customer Relationship
Management
IT Infrastructure
Security
The Business of IT
TECH CENTER
   
  Software Journal  
 

 

Our Partners

Sign Up for Digital Software Magazine
 
eInquiry System
 
 
|   Login to SW500 Survey    |   SoftwareMag Login   |    Register   |
Application Development
Commentary (May, 2006)

“Real MDA” Stands Up
by Michael Guttman

Modeling notation progressing from UML to MDA to SOA
 

To see where modeling notation is going, we start by recognizing Model Driven Architecture (MDA), a set of standards from the Object Management Group (OMG), a 500+ member international consortium, which also specifies the Unified Modeling Language (UML) and Business Process Modeling Notation (BPMN). We are now seeing a progression towards model-driven development (MDD), model-driven services-oriented architecture (MD-SOA), and even model-driven outsourcing (MDO).

MDA and UML Roots

In 1997, UML successfully replaced a plethora of other modeling notations, including predecessors from Grady Booch and James Rumbaugh. Originally, UML focused on modeling the structural components of single applications—a kind of souped-up data modeling language. But over time, OMG progressively extended UML to cover a wider range of content, including business domain models, use cases, activity flows, logical constraints, state machines, deployment packaging and service architectures.

MDA emerged in 2002, originally to help guide UML modeling. MDA specifically defines three high-level model types: the Computation-Independent Model (CIM); the Platform-Independent Model (PIM); and the Platform-Specific Model (PSM). Each concerns a different audience, but collectively they still comprise one integrated model.

The CIM, aimed at business analysts, includes only the model elements necessary to describe business functionality. The PIM, for system analysts, includes additional elements describing the computational logic necessary to realize CIM functionality, but without implementation details. The PSM is aimed at system designers; it provides additional elements specific to given deployment platforms, such as Java/EJB, or C#/.NET.

Some people also emphasize automatic code-generation from PSMs. Yes, this can save time and effort otherwise spent in hand-coding, but, as we’ll see, this is only one possible use of MDA.

MDA and MOF

Going down the MDA’s CIM-PIM-PSM route, it soon becomes clear that just extending UML is not enough. There are many other pre-existing, non-OMG notations for modeling data structures, message protocols, business processes, and so on that UML is unlikely to replace. So OMG decided to integrate all these into MDA by cleverly adapting its pre-existing repository standard, the Meta Object Facility (MOF).

OMG now uses MOF to formally specify any modeling language, including OMG’s own UML and BPMN. OMG captures the basic elements of each modeling language using common MOF constructs. This approach ultimately simplifies the exchange and coordination of information across a wide range of possible modeling formats, notations and tools.

For example, business analysts can use a MOF-based BPMN tool to model a CIM, and then pass that information along to a MOF-based UML tool used by system analysts and designers to create a PIM and PSM, and even to generate code. The MOF also supports a special import/export format called XML Metadata Interchange (XMI), a variant of the ECore facility used to exchange information among different tools in Eclipse, the popular open-source tool integration platform.

Over the last few years, MDA has become a lot more MOF/XMI-centric, and much less UML-centric. MDA’s “growth area” is now mapping different notational systems and architectural approaches into MOF/XMI, so they can be integrated both conceptually and into tooling frameworks.

MDA and SOA

Services Oriented Architecture (SOA) is an emerging architectural approach that seeks to develop and deploy business applications as a set of reusable, composable services. These basic concepts are not unique to SOA; some pre-existing OMG specifications even address this space, including the CORBA Component Model (CCM) and the Enterprise Distributed Object Computing (EDOC) standards.

SOA per se emerged from the web services specifications of the Worldwide Web Consortium (W3C). W3C originally envisioned loosely coupled inter-enterprise B2B service components available over the Internet, exchanging information through XML documents. Such services are described in a Web Services Definition Language (WSDL) and located via a Universal Description, Discovery and Integration (UDDI) directory.

But SOA takes web services deeper into the enterprise, attempting to restructure a company’s entire applications portfolio into a set of SOA-based service components. These components can then hopefully be orchestrated into new applications at will, speeding and simplifying the solutions delivery process. For an industry weaned on the Internet, SOA sounds like a very intuitive extension of familiar concepts, and SOA vendors are quite happy to hum along.

But if SOA is relatively easy to describe, it is much more challenging to implement. The process of breaking down a large enterprise’s business functionality and existing systems into independently deployable service components is difficult. Moreover, that process uncovers exactly the same decades-old problems that inspired the development of UML, BPMN, MOF and, ultimately, MDA. We’ll detail these in future columns.

Fortunately, SOA practitioners can begin overcoming such problems by leveraging years of experience already embodied in MDA, rather than reinventing the wheel. For MDA, SOA is technically just another architectural approach to support, albeit one currently in high demand. But carefully blending SOA with MDA could accelerate the successful adoption of both, and finally make clear that “real MDA” is much more than just UML-based code-generation.

Michael Guttman is CTO of The Voyant Group (www.thevoyantgroup.com), a professional services company specializing in advanced software development solutions. Mr Guttman also serves as the director of OMG’s MDA FastStart program (www.omg.org/faststart). He can be reached at mguttman@thevoyantgroup.com.

 
 
 
Related Links
  Back to Home Page  
Advertisement
Sign Up for Digital Software Magazine

     
Home |  About Us |  Software 500 |  Editor's Desk |  Subscribe |  Advertise |  Contact Us | 

Copyright © 1999-2010 Software Magazine and King Content Co.
Site Design by Enervision Media
Site Development/Administration by Kunal Panchal