Service-Driven Computing: Challenges and Trends

Service-Driven Computing: Challenges and Trends

Raja Ramanathan (Independent Researcher, USA)
DOI: 10.4018/978-1-4666-6178-3.ch001


Information technology is rapidly evolving to facilitate the design, development, and implementation of the next generation of architectural practices, tools, and techniques that will enable smart services and seamless enterprise integration. Service-Driven Computing involves the use of software services that conform to service architectural paradigms, such as Service-Oriented and Resource-Oriented Architectures, to drive computing solutions that enable building massively distributed software systems for this new generation of applications. Although services can promote agile, flexible, and extensible applications, service invocations can be subject to network latency, network failure, and distributed system failures. Moreover, service configurations are likely to change over time. This chapter explores the challenges in service-driven computing relating to composing adaptive services dynamically, supporting context-awareness and autonomic capabilities in services, verification of dynamic service compositions, and extending the service-driven paradigm to the Cloud. Along the way, contributions from researchers on potential solutions to these challenges are identified and discussed.
Chapter Preview


Software architecture has evolved from simple monolithic concepts to complex, multi-tiered, distributed, and componentized abstractions. A Service Oriented Architecture (SOA) (Pasik, 1994) style involves the use of software services, which are loosely coupled, autonomous, distributable, composable, and platform-independent computational entities that enable applications to publish, discover, and invoke business services (services that fulfill business functionality) using standardized service contracts and protocols, SOAP compliant XML messaging, and business events. On the other hand, a Resource Oriented Architecture (ROA) style focuses on the resource, which is a directly-accessible software artifact supporting specific data as the key element of abstraction and emphasizing simplicity, scalability, and usability. Representational State Transfer (REST) (Fielding, 2000) is a set of architectural guidelines expressed as ROA that takes into account the constraints of the World Wide Web’s standard HTTP messaging model to facilitate the design of RESTful services that are resource-oriented.

While Service-oriented Computing (SOC) (Georgakopoulos & Papazoglou, 2008) is closely aligned with SOA, Service-driven Computing is primarily implemented by software services that conform to any pertinent service architecture methodology such as SOA and ROA. Service-driven Computing (Ramanathan, 2013a) uses these software services to drive computing solutions in which new business and scientific services are created by assembling granular application services (atomic and composite services) that interact through standard messaging mechanisms. Applications and integration solutions are assembled through Service Mediation and Service Composition techniques. SOA and REST are currently the most widely used architectural styles for implementing service-driven applications and integration solutions that support the dynamics of the organization.

Based on a vendor agnostic architecture model, service-driven applications will enable an enterprise to evolve the infrastructure in alignment with the needs of the organization and provide the flexibility for vendor diversification in terms of platforms and products. Service-driven computing will help enterprises to achieve increased return on investment (ROI) and lower total cost of ownership (TCO) due to the agility and reusability inherent in the methodology. Through the use of the service-oriented middleware, service-driven computing has enabled the reduction in software development complexity and costs and has been able to simplify the provisioning, management, and monitoring of business and scientific applications and services.

The typical software lifecycle of a service-driven architectural approach comprises several phases including service modeling, service realization, composite assembly, service versioning, service deployment, monitoring, and governance. The service-driven approach enables enterprises to build massively distributed software systems by enabling the assembly of composite services dynamically in a programming language and operating system agnostic manner and through the use of standard architectural styles, artifacts, and protocols. It facilitates the building of complex business and scientific processes from existing coarse grained service components based on a building blocks model and helps to effectively align business and scientific application requirements with technology. This approach empowers the Information Technology team to deliver applications that support and meet the dynamic needs of the organization in an agile manner.

Web Services are currently the most widely used technology that utilizes the SOA and REST architectural styles for implementing loosely coupled service-driven applications. Web services enable interaction among applications in a distributed environment using messaging protocols such as SOAP and REST. They are commonly used in enterprises to provide for platform independent services and perform heterogeneous application integration. Web Services described by a WSDL (Web Service Description Language) and using the SOAP messaging protocol has been the most widely implemented service technology in enterprises today. However, RESTful services are gaining momentum in the enterprise.

Key Terms in this Chapter

Service-Driven Computing: Computing methodology for implementing enterprise applications and integration solutions to support the dynamics of the organization by composing business and scientific services from granular application services through the mechanisms of Service Mediation and Service Composition using architectural practices such as SOA and REST.

The Semantic Web: A Web of data that can be processed by machines.

Dynamic Service Composition: The process of assembling individual services at runtime to compose a dynamically adaptive composite service.

Virtualization: A technology that provides the basis for Cloud Computing where virtual resources such as operating systems, application servers, data stores, and message queues are provisioned and de-provisioned dynamically.

Autonomic Services: Services that implement autonomic characteristics that involve involuntary actions by the service-driven system in response to the changing business and environmental conditions are called autonomic services. Autonomic services are expected to satisfy one or more of the autonomic computing attributes such as self-healing, self-configuring, self-optimizing, and self-protecting. The term “autonomic computing” was motivated by the human autonomous nervous system that enables involuntary actions such as heart beats.

Self-Adaptive Services: Services that reconfigure themselves in response to changes in business requirements and operating environments. They reconfigure by running variants of the initial configuration through substitution of services to adapt to the changing ecosystem.

Context-aware services: Services that have the ability to gather information about the environment in which they operate and use that information to change their observable behavior to adapt to the current situation. Context adaptation is generally implemented using a three phase architectural model that involves Context sensing, Context Modeling, and Context Reasoning.

Static Service Composition: The process of assembling individual services at design time to compose a static composite service.

Semantic Mashups: Mashups, which are composites based on RESTful services, and which have their APIs annotated by a semantic layer for dynamic selection and composition.

Complete Chapter List

Search this Book: