Service Oriented Architecture
Essay by review • December 11, 2010 • Research Paper • 7,508 Words (31 Pages) • 2,902 Views
Introduction
The increasing pace of the evolution of business requirements, along with the need to maximize revenue and minimize costs, are leading corporate executives to align their IT organizations more closely with their business needs. The main goal of this alignment is to develop a more integrated business process that can be implemented by departments, business units, and business partner networks. In the past, this alignment process has been constrained because IT systems have not kept in step with business needs, and because the IT infrastructure has fundamental operational and developmental limitations. As a result, the integration challenge demands a technology that can successfully bring together the needs of business and IT into a workable solution that not only makes efficient and effective use of the IT infrastructure, but that is also flexible and adaptive enough to keep pace with continual changes in the organization's business processes (Bieberstein, p. 1).
Service-Oriented Architecture (SOA) is the IT industry's latest attempt to promote the concept of component reusability in the development, integration, deployment, and maintenance of enterprise applications (Bissonnette, n.p.). In today's Internet-driven economy, companies are under relentless pressure to respond more quickly to the changing demands of their customers, partners, suppliers and employees. SOA promises to deliver the speed and adaptability companies need by making their applications more service driven. It achieves this by packaging application logic, or "services," into highly reusable components that can be assembled to create new business processes on-the-fly, reducing the need for costly legacy integration, and custom, single use development (Bissonnette, n.p.).
SOA Defined
Despite the current hype surrounding SOA, the concept behind it is not new. For the last decade, software developers have been trying to figure out the best way to structure applications to facilitate integration and increase reusability (Bissonnette, n.p.). SOA has captured more attention lately due to the growing popularity of Web services, a key technology for SOA deployment. While SOA does not require Web services and vice versa, Web services is viewed by many as the best choice among distributed computing technologies for SOA strategy implementation.
SOA is not a technology per se, but rather a set of principles and methodologies for designing and developing software "services" that can be deployed and managed across an enterprise (Bissonnette, n.p.). These "services" are, in essence, software components - discrete pieces of code and/or data structure - that can be reused for different purposes. Reuse is possible because the components are packaged as self-contained, loosely coupled units, which enable developers to work with them without affecting other components. Because of their independent, modular nature, software components can be used like building blocks to develop a variety of new applications.
Services
The SOA concept of "service" kicks in when standardized interfaces are added to these building blocks, enabling them to interact with each other and with end users to perform a variety of "services" (Bissonnette, n.p.). Simply stated, SOA is a way to modularize systems and applications into discrete business components, or "services," with well-defined interfaces, and them combine and recombine them in ways that meet the organization's needs. In the case of Web services, a Web Services Description Language (WSDL) document serves as the interface. This document describes the type of input required to request a specific service, and what type of response to expect. Communication between these interfaces is handled through messaging protocols such as Simple Object Access Protocol (SOAP).
Software components can be transformed into Web services regardless of the language used to create them. All that a service requester sees is the WSDL, which is technology independent. This allows services on one platform to be integrated with services on a different platform.
The benefits of this building block approach to development are huge. Through component reuse, developers avoid the time and expense involved in building new systems from scratch, resulting in lower development costs and faster time-to-market (Bissonnette, n.p.). The modular nature of components also enables them to be easily modified, added, deleted, or swapped, to deliver new or enhanced functionality in response to changing customer and market demands.
The concept of Service-Oriented Architecture (SOA) offers a framework for better-integrated systems that meet business needs (Bieberstein, pg. 3). SOA envisions the implementation of a services platform consisting of many services. These services signify elements of business processes that can be combined and recombined into different solutions and scenarios, as determined by business needs. This capability to integrate and recombine services is what provides the closer relationship between business and IT, as well as the flexibility to address new situations. Although the true meaning of SOA depends on the business needs of an organization, SOA is best defined as a set of business, process, organizational, governance, and technical methods to enable an agile, business-driven IT environment for greater competitive advantage (Bieberstein, pg. 16). It provides the flexibility to treat business processes as well as the underlying IT infrastructure as components that can be reused and recombined to address changing business priorities.
Architecture
An architecture is a blueprint. It shows how the overall system, house, or vehicle will look, and how the parts interrelate. In information systems, the architecture spells out how the software components interact with each other (McNurlin, pg 215). In the past, these interactions have been hard coded point-to-point, meaning one to another. Although this is efficient, it is costly to maintain. Changing one component might require changing the others that interact with it. SOA has gained much attention because it moves these interactions away from being hard coded and point-to-point.
Instead of thinking about how to get information out of one system and into another, service-oriented architecture thinks about how to expose the data and functions in a way that other systems can easily use - as a service in a wrapper with a well-defined interface that performs a business process (McNurlin, pg. 216). The wrapping hides the technical complexities developers have had to incorporate in their point-to-point interfaces.
...
...