Foundations - Messages & Services – An IntroductionThe term or acronym service-oriented architecture (SOA) is widely used, but there's not a lot of precision in the way that it's used. The World Wide Web Consortium (W3C) refers to SOA as 'A set of components which can be invoked, and whose interface descriptions can be published and discovered'. The CBDI recommends SOA is more usefully defined as 'The policies, practices, frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer. Services can be invoked, published and discovered, and are abstracted away from the implementation using a single, standards-based form of interface.' SOA isn't a new approach to software design, and some of the notions behind SOA have been around for years. A service is generally implemented as a coarse-grained, discoverable software entity that exists as a single instance and interacts with applications and other services through a loosely coupled (often asynchronous), message-based communication model. Service-oriented architecture and development is based on the following four fundamental tenets:
SOA is the aggregation of components that satisfy a business need. It consists of components, services, and processes. Components are binaries that have a defined interface and a service is a grouping of components to complete the task. This higher level of application development provides a strategic advantage, facilitating more focus on the business requirement. Web services are part of the wider picture that is SOA. They provide certain architectural characteristics and benefits (specifically platform independence, loose coupling, self description, and discovery) and they can enable a formal separation between the provider and consumer because of the formality of the interface. For SOA there are three important architectural perspectives:
Service-oriented architectures are rapidly being accepted by the IT world as a sound, modularized approach for building and deploying services across the extended enterprise. However, practical implementation of these architectures requires careful planning. Interested enterprises must first make sure that they're geared up to implement and support them in the long-term. By developing and following an implementation road map, companies can proactively address a range of challenges that they'll encounter along the way. Each enterprise will face a unique set of challenges; corresponding approaches for solving those challenges will vary, as well. The impact of the challenges, both during and after the implementation, also depends on the context of the given enterprise. Adopting SOA is essential to deliver the business agility and IT flexibility promised by Web Services. Top of page |