Service oriented architectures: approaches, technologies and research issues

Service oriented architectures: approaches, technologies and research issues

3 March 2007 | Mike P. Papazoglou · Willem-Jan van den Heuvel
Service-oriented architectures (SOA) are an emerging approach that addresses the requirements of loosely coupled, standards-based, and protocol-independent distributed computing. SOA typically involves a number of invocations of different components, often in an event-driven or asynchronous fashion. To build an SOA, a highly distributable communications and integration backbone is required, which is provided by the Enterprise Service Bus (ESB). This paper reviews technologies and approaches that unify the principles and concepts of SOA with those of event-based programming. It also focuses on the ESB and describes a range of functions that are designed to offer a manageable, standards-based SOA backbone that extends middleware functionality throughout by connecting heterogeneous components and systems and offers integration services. Finally, the paper proposes an approach to extend the conventional SOA to cater for essential ESB requirements such as service orchestration, intelligent routing, provisioning, integrity and security of messages, as well as service management. The layers in this extended SOA, in short xSOA, are used to classify research issues and current research activities. SOA is designed to allow developers to overcome many distributed enterprise computing challenges including application integration, transaction management, security policies, while allowing multiple platforms and protocols and leveraging numerous access devices and legacy systems. The driving goal of SOA is to eliminate these barriers so that applications integrate and run seamlessly. In this way, an SOA can deliver the flexibility and agility that business users require, defining coarse-grained services, which may be aggregated and reused to facilitate ongoing and changing needs of business, as the key building blocks of enterprises. In contrast to conventional software architectures, SOA captures a logical way of designing a software system to provide services to either end-user applications or other services distributed in a network through published and discoverable interfaces. SOA is focused on creating a design style, technology, and process framework that will allow enterprises to develop, interconnect, and maintain enterprise applications and services efficiently and cost-effectively. While this objective is definitely not new, SOA seeks to eclipse previous efforts such as modular programming, code reuse, and object-oriented software development techniques. The SOA as a design philosophy is independent of any specific technology, e.g., Web-services or J2EE enterprise beans. This is achieved by limiting the number of implementation restrictions to the level of the service interface. SOA requires that functions, or services, are defined by a description language (WSDL in the case of Web services) and have interfaces that perform useful business processes. The fundamental intent of a service in an SOA is to represent a reusable unit of business-complete work. A service in SOA is an exposed piece of functionality with three essential properties: self-contained, platform independent, and dynamically locatable, invocable, and (re-)combinable. Logically, a service in an SOA is a bound pair of a service interface and a service implementation. Service interface defines the identity of a service and its invocation logistics.Service-oriented architectures (SOA) are an emerging approach that addresses the requirements of loosely coupled, standards-based, and protocol-independent distributed computing. SOA typically involves a number of invocations of different components, often in an event-driven or asynchronous fashion. To build an SOA, a highly distributable communications and integration backbone is required, which is provided by the Enterprise Service Bus (ESB). This paper reviews technologies and approaches that unify the principles and concepts of SOA with those of event-based programming. It also focuses on the ESB and describes a range of functions that are designed to offer a manageable, standards-based SOA backbone that extends middleware functionality throughout by connecting heterogeneous components and systems and offers integration services. Finally, the paper proposes an approach to extend the conventional SOA to cater for essential ESB requirements such as service orchestration, intelligent routing, provisioning, integrity and security of messages, as well as service management. The layers in this extended SOA, in short xSOA, are used to classify research issues and current research activities. SOA is designed to allow developers to overcome many distributed enterprise computing challenges including application integration, transaction management, security policies, while allowing multiple platforms and protocols and leveraging numerous access devices and legacy systems. The driving goal of SOA is to eliminate these barriers so that applications integrate and run seamlessly. In this way, an SOA can deliver the flexibility and agility that business users require, defining coarse-grained services, which may be aggregated and reused to facilitate ongoing and changing needs of business, as the key building blocks of enterprises. In contrast to conventional software architectures, SOA captures a logical way of designing a software system to provide services to either end-user applications or other services distributed in a network through published and discoverable interfaces. SOA is focused on creating a design style, technology, and process framework that will allow enterprises to develop, interconnect, and maintain enterprise applications and services efficiently and cost-effectively. While this objective is definitely not new, SOA seeks to eclipse previous efforts such as modular programming, code reuse, and object-oriented software development techniques. The SOA as a design philosophy is independent of any specific technology, e.g., Web-services or J2EE enterprise beans. This is achieved by limiting the number of implementation restrictions to the level of the service interface. SOA requires that functions, or services, are defined by a description language (WSDL in the case of Web services) and have interfaces that perform useful business processes. The fundamental intent of a service in an SOA is to represent a reusable unit of business-complete work. A service in SOA is an exposed piece of functionality with three essential properties: self-contained, platform independent, and dynamically locatable, invocable, and (re-)combinable. Logically, a service in an SOA is a bound pair of a service interface and a service implementation. Service interface defines the identity of a service and its invocation logistics.
Reach us at info@study.space
Understanding Service oriented architectures%3A approaches%2C technologies and research issues