Integrating Model-Driven Development into the SOA Process
The enterprise approach cultivates an agile environment in which business and IT efficiently collaborate and communicate with each other and between themselves. IT can look beyond business models and technologies to see how their efforts help deliver cost-effective solutions that satisfy numerous stakeholders. Likewise, business teams can ensure that their planning is based on achievable goals and cost-effective approaches. Deployable solutions must be evaluated to see how they contribute to strategic business objectives.
Modeling the SOA provides business and IT with an all-inclusive design model and common workflow for communicating requirements in a way that both groups can understand. Members of the IT and business teams describe, analyze, and share their strategies, focusing on their specialized domains. They can see how their contributions directly impact the design's "big picture." The net effect is that this approach enhances communication and collaboration while providing the most efficient and effective ways to implement solutions that support organizational goals and objectives.
Visualize the Application
A model-based SOA methodology employs industry-standard methods and languages to visually specify and manage the composite applications or the technical services that comprise the SOA approach. These languages also help IT map technical services back to the orchestrated business services defined by the business. Modeling allows application architects and developers to work at a higher level of abstraction while applying quality assurance techniques through graphical analysis and automated checking. The higher level of abstraction hides irrelevant details and allows users to easily view the intended functionality; they can focus on the solution without concern for implementation details. Teams can even simulate the design, including functionality and behavior, analyze options, and verify compliance with requirements.
The model also assures quality and lowers costs through continuous self-analysis. Error checking and consistency testing are performed automatically at each stage of development. Errors are found as they are introduced, rather than downstream when they can disrupt application execution and are expensive to find and fix.
The application model maximizes the efficiency of distributed, network-based applications by presenting a unified view of the components, their interfaces, and the full set of interactions. Developers can take the business services model and add detail to transform it into an implementation model consisting of networked technical services. Existing software can be incorporated for reuse, by either recapturing its architecture through reverse-engineering or creating SOA "wrappers" that allow the software to act as a technical service complete with a model-generated WSDL interface.
Perhaps most importantly, the model-based approach enables developers to simulate and test proposed changes to previously deployed applications before launching updates, saving users from costly downtime and exposure to untested application updates. Simulation empowers decision-making at a design level, even setting the basis for difficult make/buy decisions for component services. In some cases, the design model will have the ability to call and invoke actual Web services as part of the larger simulation, allowing the development team to mock-up a complete application without the need for a formal application engine.
As the composite applications are finalized, the development teams can check the model for application completeness. The results of their analysis can form the basis for the specification and design of any missing services. Teams can use the model to decide whether the missing services should be acquired from an outside source or built in-house through additional detailing of the model, which would then serve as the software design model for the new service. This streamlines the development lifecycle by improving information available for smarter decision-making.
Improving Organizational Agility
Through a combination of technologies and best practices, SOA unifies agile business practices with progressive, networked multi-processing techniques. Harnessing these capabilities for the benefit of the enterprise requires new levels of analysis and organization to mitigate the additional complexity and potential confusion of managing the new services.
A model-based approach to SOA provides an enterprise-wide model that can be viewed and accessed by all levels of the organization. Business planners and IT developers then can work together to ensure that deployed application software directly relates to the organization's business plans and goals. The application of structured modeling to SOA also helps improve agility, giving an organization an edge by lowering development costs and increasing responsiveness to business challenges.
About the Author
Scott McKorkle has worked in the applied real-time and information computing industry for more than 25 years. His current focus is on model-driven development of enterprise systems and software at Telelogic, An IBM Company. He has a bachelor's degree in Computer Science from the University of Illinois.
Page 2 of 2