Model-Driven SOA Development Supports Business-IT Alignment
Viewed from the enterprise perspective, Service-Oriented Architecture (SOA) is a framework for describing and managing business and IT assets, including services. At the implementation end of the SOA continuum, the architecture groups software-based services that can be loosely coupled into one or more functioning applications. Often, however, organizations find it difficult to link the enterprise concept to workable solutions. For many, the purpose of SOA is to implement IT solutions that achieve the organization's business goals, while providing the flexibility to quickly adapt to changing objectives and strategies.
Progressive organizations want to cultivate an agile environment in which business and IT are able to collaborate and communicate efficiently with each other and among themselves. IT solutions must be evaluated to understand how they contribute to strategic business objectives. To achieve this, IT must reach beyond business models and technologies and see how their efforts help deliver cost-effective solutions that satisfy numerous stakeholders. Due to differences in their modes of operation, business and IT have traditionally experienced difficulty in communicating requirements to one another in a way that both understand.
Technology and best practices have been evolving to improve business and IT collaboration. In particular, a SOA approach can successfully unite business and IT in an agile environment. By empowering historically isolated teams to collaborate in the description and analysis of business strategies and technologies, as well as in the design and implementation of IT systems and solutions, SOA promotes organizational goals and objectives.
You will learn the advantages of introducing an enterprise-wide, model-based approach to implementing SOA, as well as the modeling technologies and best practices now available to support business-IT alignment for the developer.
An Enterprise Approach
An enterprise is composed of a wide variety of employees and suppliers, each of whom has unique skills and expertise. This diversity is essential to achieving the organization's goals. After all, you wouldn't want your CFO writing Java-based services to implement your new accounting system. Diversity also means that many of these folks don't speak the same language. To leverage diversity, organizations require an approach that lets each person work using his particular languages, notations, and frameworks, while ensuring the transferability of the 'intellectual assets' or results of their efforts in a manner that both business and IT can understand and use.
An architectural approach to SOA leverages high-level business requirements that help to ensure that each solution meets the organization's business needs. To bridge the often sizable gap between the needs of the business and the realities of design (and their respective languages), SOA enables an abstracted approach that provides clear definitions at every stage of specification and development. This, in turn, facilitates agility.
When applied at an enterprise scale, this level of agility gives the organization an unbeatable edge for lowering development costs while increasing responsiveness to business challenges. It also introduces a new level of complexity, because there has to be a way to understand and manage the vast spider web of SOA-compliant services and applications this approach brings with it. How does IT effectively determine when a new service is needed? How do they know when it is more cost-effective and efficient to alter an existing service, develop a new one, or acquire a third-party service via the network?
The adoption of a structured modeling approach to SOA addresses these challenges. This structured approach explicitly relates business objectives to applied services, facilitating the construction and maintenance of comprehensive and interconnected applications that meet the business and design goals, while acting as an efficient business language for communication, as seen in the following figure.
The driving force behind the SOA approach is enterprise architecture (EA). With the increasing complexity of a global economy, today's organizations strive to understand their current business structure and operations and how technology can best support their evolution. Modeling the organization's enterprise architecture provides this perspective, as well as the basis for an action plan through the deployed SOA implementations.
Serving as both blueprint and road map, enterprise architecture ties IT, data, and business processes into business goals and strategies and presents them in a unified enterprise view. EA depicts the relationships among these practices so that organizations can use facts to analyze how well their information technology supports their business operations now and in the future. To be effective, this blueprint must provide enough information to promote informed decision-making. When these actions involve deployable information systems (for internal and/or customer-facing applications), groups embracing SOA can deploy new or updated applications based on orchestrated software components (services) that directly correspond to the requirements.
The enterprise architecture model is critical to SOA implementations that involve the loose coupling of software components (services) in multi-vendor, multi-platform environments. It provides the business view of the "interoperability" of services and is one of the key requirements for success. Enterprise architecture delivers the information that helps organizations leverage SOA's true value proposition by identifying the right business services (in other words, virtual elements representing business activity or function) for the task at hand. Building these business services as deployable applications consisting of technical services (free-standing software components that can be connected into working applications) is accomplished by hand-off to the IT teams, as you will see below.
With an enterprise blueprint in hand, organizations can approach SOA as a unifying concept, instead of just another way to move data around. Enterprise architecture delivers the information needed to perform new tasks in new ways, while avoiding the trap of formalizing old ways of doing things using new technology. This, in turn, ensures that SOA delivers its benefits of timeliness and agility.