In-Depth

MDA brings standards-based modeling to EAI teams

In today's world of rapidly emerging and evolving technologies, the success of an Enterprise Application Integration (EAI) initiative still relies on the combined impact of three elements: a pragmatic development or integration approach that facilitates the sys-tem development and integration process throughout the initiative life cycle; a flexible and scalable enterprise architecture and infrastructure that supports the transition or integration of relevant business applications in iterative and incremental phases; and a set of interoperable technologies that determines how well various business applications can be implemented, interfaced and integrated.

A number of well-accepted, component-based system development/integration processes exist today. Most vendors try to offer a standardized way of handling how their products work with others, but the task of integrating and extending the architecture and infrastructure lies with software engineers. In a typical EAI initiative, software engineers, in collaboration with business analysts and subject-matter experts, capture business requirements in the form of visual models. During subsequent phases, these models analyze, design, develop, build, test and refine the target enterprise architecture and infrastructure. Business and technical risks, issues and concerns are also minimized or eliminated to deploy the most effective and efficient EAI solutions.

The Model-Driven Architecture (MDA) is an innovative approach to constructing an enterprise architecture. Created by the Object Management Group (OMG), MDA abstracts and visualizes business requirements in the form of platform- and implementation technology-independent models, and separates implementation details from business functions. Once interfaces are identified and implementation technologies are selected, models are transformed into platform-specific software architectures.

MDA is a new software architecture principle in the sense that it follows, incorporates or supports most industry standards. It enhances the capability of the software architecture to be flexible, extensible and adaptable to new technologies or standards, and to abstract business application components in the early stages of EAI initiatives. Most importantly, MDA enables business experts and software engineers to focus on business risks, issues and concerns, ensuring the effective use of existing and evolving technologies.

As described by the OMG, MDA is founded on three established modeling standards -- the Unified Modeling Language (UML), Meta-Object Facility (MOF) and the Common Warehouse Meta-model (CWM). UML is widely accepted and supported by the software industry as a standard modeling notation, and most modeling tool vendors comply with it. EAI initiative teams of any size can share UML-based visual models across platforms. MOF and CWM allow users to capture a specific domain, data warehousing-related information or meta data in UML-based models. With the help of appropriate tools and repositories, EAI teams can exchange and transform the models to define, design and implement desired interfaces independent of a specific platform. As a next step, OMG standard mappings support the generation of CORBA, XMI/XML, J2EE, .NET and Web services-based interfaces. The interfaces can utilize various pervasive services such as directory, transactions, events and security services to build enterprise software architectures. At present, MDA targets space, manufacturing, finance, e-commerce, telecom, healthcare and transportation industry-related EAI initiatives and promises to cover more soon.

MDA recognizes component-based, iterative and incremental developments of enterprise architecture. Enforcing the use of industry standards and related specifications, it empowers EAI initiative teams to define, refine or reengineer the software architecture from the information or meta data captured as business models.

Practical concepts of MDA
In an MDA-based approach, a model represents the information related to a part of the function, structure or behavior of a system. To separate relevant business-specific information from the technical details and complexity of its implementation, MDA relies on two distinct models: the Platform-Independent Model (PIM) and the Platform-Specific Model (PSM). These models are interrelated through the use of standard mapping specifications and reverse-engineering capabilities. As a result, a PIM can be mapped into many PSMs by employing different mapping specifications. In compliance with the Reference Model of Open Distributed Processing (RM-ODP), MDA supports guidelines to abstract modeling information or viewpoints. Based on the level of abstraction, these viewpoints may differ from one another. MDA's goal is to eliminate irrelevant levels of abstraction details through model refinement.

A PIM is defined by modeling business application information (mainly functionality and behavior), domain-specific information (MOF) and data warehousing information (CWM) in UML. In a typical EAI initiative, PIM may involve the modeling of various business components, their structures, interfaces and dependency to other components; meta data; and stereotype representations. The model is refined as business components, interactions and interfaces are identified, reviewed and validated during business modeling. Once the refinement of the model reveals sufficient business information, mapping specifications can be utilized to transform a PIM to the desired PSMs. PSMs are developed and refined based on the choice of technology and desired services. The PSMs are then refined and transformed to deploy the desired implementation components. A PSM can be reverse engineered to generate a corresponding PIM to facilitate interoperability across existing technologies. In a typical EAI initiative, a PSM may involve the modeling of various business- and platform-specific technical details in the form of design constraints, patterns, source code, interfaces and deployment descriptors.

As UML notations play a significant role in MDA modeling, the OMG has been directing an ongoing effort to update and standardize UML specifications. As the standardization process progresses, the automation of mapping techniques, traceability of models and the use of various domain specifications will become more popular.

What it means to practitioners
Over the two past decades, the EAI world has experienced several significant advances: client/server to multitiered/multilayered, object-oriented to component-based, e-business integration to enterprise portals, and middleware or broker-driven approaches to service-oriented Web services. The OMG has played a significant role in standardizing the technologies and techniques practitioners have used during this period in their EAI initiatives. For example, CORBA enables interoperability in the integration of enterprise components in a distributed, heterogeneous and network-based environment, and offers the most effective approach to legacy system integration today. The OMG's adoption of UML as a standard modeling notation has added flexibility to information sharing during the development life cycle of EAI initiatives. MOF is a standard facility for managing models and relevant information in a repository. It has been used as the basis to define other modeling standards such as CWM -- a modeling standard for representing database models, schema transformation models, data warehousing and data mining models -- and extends the use of models throughout the software development life cycle. XMI or XML Meta Data Interchange (MDI) defines the format for sharing model information based on MOF and XML.

In an MDA-based approach, all of these standards play a significant role. It also allows CORBA IDL or other environment-specific interfaces to be generated so enterprise software architectures can streamline the process of integrating existing system components with new EAI initiatives promoting interoperability.

EAI initiatives involve a variety of tasks depending on the integration process adopted by the organization. Most activities in EAI initiatives can be categorized as one of three basic phases: business modeling, transformation or integration. The primary objective of business modeling is to capture an enterprise's business requirements to define and refine the business information model. This phase encompasses gathering business domain knowledge; taking an inventory of current or existing business applications; and incorporating best practices, standards and relevant patterns. Business users, architects, analysts and modelers use business modeling to generate the business information model. During transformation, design constraints and technology choices are considered when building the target technical architecture; architects, analysts, modelers and designers also play a significant role. Once the technical architecture is in place, architects, designers and developers work together to integrate the enterprise system. This integration phase connects the newly developed and legacy software components with the architecture and infrastructure to develop and deliver business solutions.

Using the MDA-based approach, practitioners can focus on developing platform-independent business information models, leaving decisions on technical complexities and options until later. Practitioners can capture business requirements, capitalize on business contexts and deal with business issues, risks and concerns while preserving their technology choices. Initiative teams can also get business users more actively involved in the identification, evaluation, review and prioritization of business components and interfaces using UML-based visual models.

In a typical use case-driven EAI initiative, use case model, component model, data warehousing information and meta data can be used to build platform-independent models during the business modeling phase. From a business perspective, this eliminates the "analysis paralysis" that results in reduced costs for the overall EAI initiative life cycle. Because the MDA approach defines the mapping techniques for various platforms, it emphasizes the ROI for existing and future technologies. During this transformation phase, technical choices, design constraints and mapping techniques can be added to the platform-independent model to generate platform-specific models. These models can then be used to design the enterprise architecture model and desired infrastructure. During the integration phase, the team can then concentrate on combining these newly developed components and any existing legacy systems with the enterprise architecture.

The MDA approach also offers reverse engineering of platform-specific models to generate platform-independent models. EAI initiatives can reap the benefits of MDA's open, vendor-neutral, interoperability specifications if they import business systems and/or applications to different platforms and/or extend its ability to utilize technological advances.

EAI practitioners can take advantage of the MDA-based approach in multiple ways. They may utilize the PIM to study, review and validate business requirements, and then use various known patterns and design constraints to build the appropriate PSMs. They may also apply algorithms or automated tools to generate PSMs from the validated PIMs. However, to take full advantage of the MDA approach, practitioners should rely on various tools and techniques that implement the MDA specifications and standards promoted by the OMG.

Tools and techniques
In a recent survey of vendors supporting the MDA-based approach, we found a number of available tools that can significantly contribute to EAI initiatives, as well as augment modeling efforts. Others focus on the automation of model transformation and source-code generation. Among the tools promoted by the OMG are Interactive Object Software's ArcStyler, Kabira Technologies' Adaptive Realtime Infrastructure (ARI) software, Kennedy Carter's iUML and iCCG, and Secant Technologies' ModelMethods. ArcStyler helps EAI practitioners to create PIMs and subsequently transform these models into PSMs. ARI facilitates the creation and deployment of high-availability transactional software engines. The iUML and iCCG allow users to build, test and integrate multiple PIMs and to specify PIM-to-PSM mappings in an executable UML. ModelMethods builds solutions for transactional and knowledge discovery platforms in collaboration with standard visual modeling tools.

Over the past year or so, a number of tool vendors and service providers have extended their support to MDA. Iona, InferData, Codagen Technologies, Eltegra, Hewlett-Packard and IBM are just a few of the companies that are either developing MDA tools or adopting and promoting the use of MDA. While evaluating or selecting most of the above-mentioned tools, practitioners might also find them useful in automating the transformation of models or generating skeleton source codes. In most cases, it would be necessary to modify the generated source code or to write the code manually. As more companies become involved, specifications will evolve and the tools will mature. It is anticipated that practitioners will be able to extend the capability of their enterprise architecture to adapt future technologies easily for many years to come.

Using MDA in EAI initiatives
A component-based integration approach is usually adopted to address challenges in EAI initiatives. The approach chosen must be robust, flexible, pragmatic and be able to formulate a roadmap for integrating the various phases of business applications into the enterprise. However, because business requirements are not readily available to start with or have not been abstracted/documented adequately, the integration of most enterprise systems is performed incrementally and iteratively. By separating the modeling of platform-independent business components from the technology-specific implementation details, MDA extends the flexibility, modularity and robustness of the component-based approach. Essentially, MDA allows the architecture and infrastructure to be formalized to support rapid advances of the enabling Internet technologies and future business requirements. In addition, effective use of the MDA-based approach allows users to focus on:

* Incorporating existing organizational culture into the integration process, particularly when multiple initiatives are interrelated;

* Assessing a multitude of technologies, tools and techniques to reduce the cost of integration initiatives; and

* Identifying and prioritizing suitable existing business applications or services that need to be automated or reengineered before integration.

In EAI engagements, a component-based integration approach unifies enterprise-level business components, choice of technology and resources as three essential elements. Such an approach is robust in enforcing the use of best practices, patterns and industry standards known to practitioners; flexible in enabling the use of standardized or in-house processes; and pragmatic in effectively utilizing its essential elements.

Our approach to using the MDA in EAI initiatives consists of four iterative and incremental phases: Discovery, Gap Analysis, Mediation Plan and Solution. In Discovery, strategic business drivers, including those related to business partners, providers and other ongoing business initiatives, are identified. Gap Analysis defines the scope of an initiative by evaluating risks, issues, concerns or capability constraints. It also creates a roadmap to transition various business process reengineering or automations to the EAI initiative. The Mediation Plan initially prioritizes the business components, services and interfaces identified during the Gap Analysis based on the risks, issues, concerns or constraints involved. Subsequently, it lays out contracts between the business and development teams; maps a dependency plan between ongoing tactical initiatives; and formulates a situation evaluation plan assessing risks, business needs and available resources for the initiative.

During these first three iterative and incremental phases, the platform-independent business model is defined, reviewed, validated and refined following MDA specifications and related standards. At the end of the Mediation Plan, platform-specific models are developed based on the choice of technology, platform, middleware, frameworks, reference models, pervasive services and design patterns. The Solution phase then builds the required components from the platform-specific models and integrates them. Based on business requirements, the prototypes or "proof-of-concept" components are reused in this phase. Each component undergoes end-to-end and regression testing during the integration. Our approach efficiently exploits the concepts of MDA by allocating appropriate significance to business modeling, transformation and integration. This approach also allows practitioners to identify, prioritize and validate platform-independent business components and to minimize associated risks, issues and concerns before building and integrating application components.

A promise to the EAI world
The OMG describes MDA as an architecture for a changing world. From its inception, MDA has established its synergy with the component-based integration approach. Because it has been founded on open industry standards like UML, MOF and CWM, it is most likely to gain popularity and support from the IT community. From a business perspective, MDA promotes a common ground for business modeling and information sharing among EAI teams and business users. It enforces a customer-focused and customer-driven approach that reduces the time and cost of EAI initiatives. From a technical perspective, MDA ensures a return on technology investments and promises the extensibility to adapt and accommodate emerging technologies into existing systems. As specifications evolve and tools mature, MDA will empower practitioners with the ease of "plug-and-play" integration and much technology support. As MDA detaches business application interfaces from technical implementations, EAI practitioners will embrace its benefits while developing service-oriented architectures for Web services. Above all, MDA establishes a new era of software architecture with a huge promise to the EAI world today and tomorrow.