How are the business and IT environments changing to meet the challenges of today’s fast-paced global business landscape? They are both striving to become more agile. IT is being focused more on increasing profits, revenues and efficiency than just reducing costs. The business is examining ways to improve customer satisfaction and competitive advantage by collaborating throughout the value chain to deliver more innovative and competitive products and services. The orchestration of new services among partners and suppliers located throughout the world requires an IT infrastructure that is less rigid and fragmented. One that does not hinder what the business wants to accomplish. Companies can no longer tolerate a disjointed view of the customer, inconsistent common services across a stove-piped product portfolio, long business process cycle times, conflicting customer information, and missed cross- and up-sell opportunities.
Companies are transforming their business models in order to become more responsive to customers and partners, and a key part of that transformation is to reorganize information resources as substantially independent, reusable services. A Service-Oriented Architecture (SOA) embraces this concept of reusable services and represents the next major step in the evolution of IT strategies. Service-Oriented Architecture (SOA) is an approach to distributed computing that considers software functionality as services on a network. Businesses are looking to SOA as the best way to leverage information technology assets and to provide the business the agility required to compete in today’s economy. In addition, SOA holds promise to companies looking to bring order to an increasingly complex and chaotic IT environment and equip themselves to manage change.
SOA can be defined as a software design and implementation methodology for creating loosely coupled, coarse-grained software services. SOA is a discoverable collection of available services on a network that communicate with one another. The services (e.g. business process and/or data) are loosely coupled so they can be flexibly and easily used and combined in various ways. The services have well-defined platform-independent interfaces that promote interoperability. The loosely-coupled relationship between a service requestor and a service provider characterizes the state in which the impact of change in consumers and providers is minimized across dependencies. It is accomplished by limiting the dependencies between a service and its requestors to the information expressed in a service contract — and designing the service contract in such a way that it is not necessarily specific to any one service requestor. Service orientation provides business users with understandable services that they can compose into business processes as needed.
As more loosely coupled services are defined and made available on networks for expanded use and as visual composition and orchestration tools are enhanced, the brittleness of applications-driven business operations gives way to process-driven business operations. In other words, end-to-end process-oriented services can be used to support business requirements – such as an order-to-cash efficiency imperative — to allow for rapid customization and increased flexibility. That is markedly different from businesses needing to change large, brittle monolithic applications at great cost and time to make a minor change to a business process. SOA therefore allows the process change to take precedence and the applications to fall in line, not the other way around.
A main goal of SOA is the support of business agility – keeping pace with the velocity of change and uncertainty in the business climate facing an organization. As previously mentioned, SOA is grounded in a number of concepts – e.g. a service contract, loose-coupling and service-oriented integration – that help deliver on-demand services and solutions best suited to meet the precise requirements at the moment.
Evolving to an SOA will also change the way you develop, deploy and manage the information technology used to run this more agile business. Important concepts are the enterprise service bus for improved application integration and business event handling, a service registry for service reuse and high quality service development, and SOA Governance for managing the enterprise rollout of 100s of business services.
In order to promote reuse, you need a place to store the IT assets that you want to repurpose. The service registry is the system of record for information about services. New services are published here, and business analysts and software developers can use this registry to easily find and reuse existing services. An SOA registry defines standards-based descriptions as well as access and interactions between SOA components. It also provides standard human and automated interfaces to these components.
The registry allows organizations to standardize publishing, discovery, approval and interoperability of SOA business services. The registry acts as a design-time service registry, a run-time service intermediary and a governance metadata repository. Some products separate the functionality into a registry and a repository. Repositories are where you put service artifacts and metadata at design time, while registries are where you list service descriptions and policies that are accessed at run time.
The registry is a cornerstone of enterprise SOA providing the following advantages: • Drives down the costs of new development efforts• Drives web service adoption and increases developer productivity by allowing developers to search and reuse services• Enables reduction in development time• Provides developers with information on how to integrate with business processes• Drives and enforces standards for organization and categorization of service assets• Promotes and preserves loose coupling of services between provider and consumer
Introducing SOA has impacts across business and IT which requires proactive change management to ensure that business service requirements are coordinated with infrastructure, process and resource capabilities. A typical roadmap for the deployment of SOA throughout the enterprise will identify distinct stages of early learning, integration, reengineering and maturity. Progressing through these four stages demonstrates increasing levels of process predictability, control, and optimization, going from unpredictable processes that are somewhat ad hoc to processes that are subject to continuous improvement.
Implementing an SOA throughout the enterprise is a significant undertaking that will take many years. It is essential that you develop a realistic roadmap for rolling out an SOA. It is critical that the architecture and the plan be designed to cope with the complexities and dynamics of your environment. To maintain momentum during this multi-year program remember to deliver real business value at every phase. For example, deliver required business functionality to an existing project and demonstrate real business improvement in terms of cost and time reduction or quality improvement. Start with minimum architecture, process, and infrastructure and incrementally enhance over time, while delivering business service value to business users. Demonstrate value with numbers. Embed SOA thinking into every IT project so it becomes a natural and standard practice for delivering value to the business.