scispace - formally typeset
Search or ask a question
Proceedings ArticleDOI

Towards liquid service oriented architectures

28 Mar 2011-Vol. 9306, Iss: 7, pp 337-342
TL;DR: This position paper defines the problem of providing a novel parallel programming model for building application services that can be transparently deployed on multicore and cloud execution environments and introduces and motivate a research plan for the definition of a novel programming framework for Web service-based applications.
Abstract: The advent of Cloud computing platforms, and the growing pervasiveness of Multicore processor architectures have revealed the inadequateness of traditional programming models based on sequential computations, opening up many challenges for research on parallel programming models for building distributed, service-oriented systems. More in detail, the dynamic nature of Cloud computing and its virtualized infrastructure pose new challenges in term of application design, deployment and dynamic reconfiguration. An application developed to be delivered as a service in the Cloud has to deal with poorly understood issues such as elasticity, infinite scalability and portability across heterogeneous virtualized environments. In this position paper we define the problem of providing a novel parallel programming model for building application services that can be transparently deployed on multicore and cloud execution environments. To this end, we introduce and motivate a research plan for the definition of a novel programming framework for Web service-based applications. Our vision called "Liquid Architecture" is based on a programming model inspired by core ideas tied to the REST architectural style coupled with a self-configuring runtime that allows transparent deployment of Web services on a broad range of heterogeneous platforms, from multicores to clouds.

Content maybe subject to copyright    Report

Citations
More filters
Journal ArticleDOI
TL;DR: Although cloud computing is based on a 50-year-old business model, evidence indicates that cloud computing still needs to expand and overcome present limitations that prevent the full use of its potential.
Abstract: Cloud computing is an ascending technology that has introduced a new paradigm by rendering a rational computational model possible. It has changed the dynamics of IT consumption by means of a model that provides on-demand services over the Internet. Unlike the traditional hosting service, cloud computing services are paid for per usage and may expand or shrink based on demand. Such services are, in general, fully managed by cloud providers that require users nothing but a personal computer and an Internet access. In recent years, this model has attracted the attention of researchers, investors and practitioners, many of whom have proposed a number of applications, structures and fundamentals of cloud computing, resulting in various definitions, requirements and models. Despite the interest and advances in the field, issues such as security and privacy, service layer agreement, resource sharing, and billing have opened up new questions about the real gains of the model. Although cloud computing is based on a 50-year-old business model, evidence from this study indicates that cloud computing still needs to expand and overcome present limitations that prevent the full use of its potential. In this study, we critically review the state of the art in cloud computing with the aim of identifying advances, gaps and new challenges.

128 citations


Cites background from "Towards liquid service oriented arc..."

  • ...According to Bonetta and Pautasso [8], the dynamic nature of Cloud Computing and its virtualized infrastructure pose new challenges in terms of application design, deployment and dynamic reconfiguration....

    [...]

  • ...In their work, Bonetta and Pautasso present a novel parallel programming model called Liquid Architecture....

    [...]

01 Jan 2014
TL;DR: The main objective of this study is to systematically identify and analyze the currently published research on the topics related to software architectures for cloudbased systems in order to identify architecture solutions for achieving quality requirements.
Abstract: Context: Cloud computing has gained significant attention of researchers and practitioners. This emerging paradigm is being used to provide solutions in multiple domains without huge upfront investment because of its on demand recourseprovisioning model. However, the information about how software systems are constructed for cloud based systems and what architecture approaches are used to build these systems in not available in synthesized form, which makes it hard to find common architecture solutions for building applications for cloud and identify research gaps. Object: The main objective of this study is to systematically identify and analyze the currently published research on the topics related to software architectures for cloudbased systems in order to identify architecture solutions for achieving quality requirements. Method: We decided to carry out a systematic mapping study to find as much peerreviewed literature on the topics related to software architectures for cloud-based systems as possible. This study has been carried out by following the guidelines for conducting systematic literature reviews and systematic mapping studies as reported in the literature. Based on our paper selection criteria defined by the requirements of the study’s objectives and research questions, we have found 86 papers to be included in this study out of initial set of 1491 papers. Results: We have grouped selected papers into different categories of themes including: quality attributes (15%), multi-tenancy (3%), frameworks (3%), workflow based systems (4%), support for hybrid devices (7%), middleware infrastructure for managing services and resources (10%), architecture refactoring considerations for migrating applications to cloud (4%), generic architecture solution (12%), emerging research areas (3%) and cloud application domains (39%). We have described problems being addressed in each category, which architecture solutions have been proposed to solve these problems and technologies that have been used. Conclusions: The selected studies reports challenges and potential solutions related to maintaining underlying infrastructure for supporting large number of users, utilizing cloud computing for making applications available for devices with limited resource, performing sensitive data processing on cloud and achieving service level agreements at different levels or abstractions. Energy optimization, service adaptability, reliability, resource provisioning and service integration are most commonly addressed quality attributes in cloud bases system. Work reported in this study focuses on architectural constructs of cloud-enabled systems reported in literature. We have synthesized architecture approaches proposed in paper into architecture styles

16 citations


Cites background from "Towards liquid service oriented arc..."

  • ...The term liquid services is used in [15] for adaptive and transparently deployable services....

    [...]

  • ...Directions for programming models targeting cloud are presented in [15, 66]....

    [...]

  • ...According to model presented in [15], web services are composed of many entities that correspond to each other through messages....

    [...]

Proceedings ArticleDOI
20 Jun 2011
TL;DR: This paper enumerates the properties to be guaranteed by so-called liquid service-oriented architectures and defines a set of design constraints that make up a novel architectural style for liquid architectures.
Abstract: Just as liquids adapt their shape to the one of their container, liquid architectures feature a high degree of adaptability so that they can provide scalability to applications as they are executed on a wide variety of heterogeneous deployment environments. In this paper we enumerate the properties to be guaranteed by so-called liquid service-oriented architectures and define a set of design constraints that make up a novel architectural style for liquid architectures. These constraints drive the careful construction of a pattern, the Restful Actor (Reactor), which enables to deliver the required scalability by means of replication of its constituent parts. Reactors feature a Restful Web service interface and a composable architecture which is capable of delivering scalability and high performance in a way that is independent from the chosen deployment infrastructure. We discuss how the Reactor can be deployed to run on distributed (shared-nothing) execution environments typical of virtualized Cloud computing environments as well as on modern multicore processors with shared memory architectures.

13 citations


Cites methods from "Towards liquid service oriented arc..."

  • ...We first presented the vision of Liquid Web services in [25]....

    [...]

Posted Content
TL;DR: Investigation of state-of-the-art in Cloud Computing identifies gaps, challenges, synthesize available evidences both its use and development, and provides relevant information, clarifying open questions and common discussed issues about that model through literature.
Abstract: Cloud Computing emerges from the global economic crisis as an option to use computing resources from a more rational point of view. In other words, a cheaper way to have IT resources. However, issues as security and privacy, SLA (Service Layer Agreement), resource sharing, and billing has left open questions about the real gains of that model. This study aims to investigate state-of-the-art in Cloud Computing, identify gaps, challenges, synthesize available evidences both its use and development, and provides relevant information, clarifying open questions and common discussed issues about that model through literature. The good practices of systematic map- ping study methodology were adopted in order to reach those objectives. Al- though Cloud Computing is based on a business model with over 50 years of existence, evidences found in this study indicate that Cloud Computing still presents limitations that prevent the full use of the proposal on-demand.

8 citations


Cites background from "Towards liquid service oriented arc..."

  • ...[170], [171], [172], [173], [174], [175], [176], [177], [178], [179], [180], [181], [182], [183], [184], [185], [186], [187], [188], [189], [190], [191], [192], [193], [194], [195], [196], [197]. RQ4 [57], [1], [60], [124], [59], [6], [15], [198], [87], [88], [89], [90], [93], [191], [200], [99], [201], [202], [203], [204], [205], [206], [207], [208], [209], [210], [211], [212], [213], [214], [215], [...

    [...]

  • ...ity features are added through a multi-tier architecture supporting a load-balanced6 farm of identical application instances, running on a variable number of servers. According to Bonetta and Pautasso[57] the dynamic nature of Cloud Computing and its virtualized infrastructure pose new challenges in term of application design, deployment, and dynamic reconfiguration. In that work, the authors presented...

    [...]

Proceedings ArticleDOI
24 Jul 2012
TL;DR: First results of the analysis aimed to identify the relevant trends and shape emerging research themes are presented, to highlight the peculiarities of each area, the main opportunities, and also some possible synergies with the others.
Abstract: Service-oriented Architecture (SOA) is one of the most recent trends in IT solutions. From a technical perspective SOA, can be considered a method for designing and developing IT systems where applications are constructed from loosely coupled and au-tonomous building blocks. For a thorough analysis and discussion of SOA at large, and of the applications it enables, IFIP (International Federation of Information Processing) has recently established a new working group on Services-oriented Systems (WG 2.14/6.12/8.10). The paper presents some first results of the analysis aimed to identify the relevant trends and shape emerging research themes. The goal is to highlight the peculiarities of each area, the main opportunities, and also some possible synergies with the others.

7 citations

References
More filters
Journal ArticleDOI
TL;DR: In this approach to software development, application programs are written as software agents, i.e. software “components” that communicate with their peers by exchanging messages in an expressive agent communication language.
Abstract: The software world is one of great richness and diversity. Many thousands of software products are available to users today, providing a wide variety of information and services in a wide variety of domains. While most of these programs provide their users with significant value when used in isolation, there is increasing demand for programs that can interoperate – to exchange information and services with other programs and thereby solve problems that cannot be solved alone. Part of what makes interoperation difficult is heterogeneity. Programs are written by different people, at different times, in different languages; and, as a result, they often provide different interfaces. The difficulties created by heterogeneity are exacerbated by dynamics in the software environment. Programs are frequently rewritten; new programs are added; old programs removed. Agent-based software engineering was invented to facilitate the creation of software able to interoperate in such settings. In this approach to software development, application programs are written as software agents, i.e. software “components” that communicate with their peers by exchanging messages in an expressive agent communication language. Agents can be as simple as subroutines; but typically they are larger entities with some sort of persistent control (e.g. distinct control threads within a single address space, distinct processes on a single machine, or separate processes on different machines). The salient feature of the language used by agents is its expressiveness. It allows for the exchange of data and logical information, individual commands and scripts (i.e. programs). Using this language, agents can communicate complex information and goals, directly or indirectly “programming” each other in useful ways. Agent-based software engineering is often compared to object-oriented programming. Like an “object”, an agent provides a message-based interface independent of its internal data structures and algorithms. The primary difference between the two approaches lies in the language of the interface. In general object-oriented programming, the meaning of a message can vary from one object to another. In agent-based software engineering, agents use a common language with an agent-independent semantics. The concept of agent-based software engineering raises a number of important questions.

2,373 citations

Book
01 Jan 1986
TL;DR: In this article, the authors define an abstract actor machine and provide a minimal programming language for it, which includes higher level constructs such as delayed and eager evaluation, which can be defined in terms of the primitives.
Abstract: : A foundational model of concurrency is developed in this thesis. It examines issues in the design of parallel systems and show why the actor model is suitable for exploiting large-scale parallelism. Concurrency in actors is constrained only by the availability of hardware resources and by the logical dependence inherent in the computation. Unlike dataflow and functional programming, however, actors are dynamically reconfigurable and can model shared resources with changing local state. Concurrency is spawned in actors using asynchronous message-passing, pipelining, and the dynamic creation of actors. The author defines an abstract actor machine and provide a minimal programming language for it. A more expressive language, which includes higher level constructs such as delayed and eager evaluation, can be defined in terms of the primitives. Examples are given to illustrate the ease with which concurrent data and control structures can be programmed. This thesis deals with some central issues in distributed computing. Specifically, problems of divergence and deadlock are addressed. Additional keywords: Object oriented programming; Semantics.

2,207 citations

Proceedings ArticleDOI
12 Oct 2005
TL;DR: A modern object-oriented programming language, X10, is designed for high performance, high productivity programming of NUCC systems and an overview of the X10 programming model and language, experience with the reference implementation, and results from some initial productivity comparisons between the X 10 and Java™ languages are presented.
Abstract: It is now well established that the device scaling predicted by Moore's Law is no longer a viable option for increasing the clock frequency of future uniprocessor systems at the rate that had been sustained during the last two decades. As a result, future systems are rapidly moving from uniprocessor to multiprocessor configurations, so as to use parallelism instead of frequency scaling as the foundation for increased compute capacity. The dominant emerging multiprocessor structure for the future is a Non-Uniform Cluster Computing (NUCC) system with nodes that are built out of multi-core SMP chips with non-uniform memory hierarchies, and interconnected in horizontally scalable cluster configurations such as blade servers. Unlike previous generations of hardware evolution, this shift will have a major impact on existing software. Current OO language facilities for concurrent and distributed programming are inadequate for addressing the needs of NUCC systems because they do not support the notions of non-uniform data access within a node, or of tight coupling of distributed nodes.We have designed a modern object-oriented programming language, X10, for high performance, high productivity programming of NUCC systems. A member of the partitioned global address space family of languages, X10 highlights the explicit reification of locality in the form of places}; lightweight activities embodied in async, future, foreach, and ateach constructs; a construct for termination detection (finish); the use of lock-free synchronization (atomic blocks); and the manipulation of cluster-wide global data structures. We present an overview of the X10 programming model and language, experience with our reference implementation, and results from some initial productivity comparisons between the X10 and Java™ languages.

1,469 citations

Proceedings ArticleDOI
25 Aug 2009
TL;DR: This paper develops a comprehensive taxonomy for describing cloud computing architecture and uses this taxonomy to survey several existing cloud computing services developed by various projects world-wide, to identify similarities and differences of the architectural approaches of cloud computing.
Abstract: The computational world is becoming very large and complex. Cloud Computing has emerged as a popular computing model to support processing large volumetric data using clusters of commodity computers. According to J.Dean and S. Ghemawat [1], Google currently processes over 20 terabytes of raw web data. It's some fascinating, large-scale processing of data that makes your head spin and appreciate the years of distributed computing fine-tuning applied to today's large problems. The evolution of cloud computing can handle such massive data as per on demand service. Nowadays the computational world is opting for pay-for-use models and Hype and discussion aside, there remains no concrete definition of cloud computing. In this paper, we first develop a comprehensive taxonomy for describing cloud computing architecture. Then we use this taxonomy to survey several existing cloud computing services developed by various projects world-wide such as Google, force.com, Amazon. We use the taxonomy and survey results not only to identify similarities and differences of the architectural approaches of cloud computing, but also to identify areas requiring further research.

1,425 citations

Book
25 Oct 1989
TL;DR: This book introduces a new approach to the design and implementation of software systems which will help users of large scale parallel systems coordinate many concurrent activities toward a single goal and proposes a selection of independent algorithmic skeletons which describes the structure of a particular style of algorithm.
Abstract: This book introduces a new approach to the design and implementation of software systems which will help users of large scale parallel systems coordinate many concurrent activities toward a single goal It assesses the strengths an weaknesses of this approach with existing alternativesCole's system proposes a selection of independent algorithmic skeletons, each of which describes the structure of a particular style of algorithm The user must describe a solution to a problem as an instance of the appropriate skeleton The implementation task is simplified by the fact that each skeleton may be considered independently, in contrast to the monolithic programming interfaces of existing systems at a similar level of abstractionThe book describes four skeletons based on the notions of fixed degree divide and conquer, task queues, iterative combination, and clustering Each is introduced in terms of the abstraction it presents to the user Implementation on a square grid of autonomous processor memory pairs is considered and examples of problems which could be solved in terms of the skeleton are presentedMurray I Cole is a Lecturer in the Computing Science Department of the University of Glasgow "Algorithmic Skeletons" is included in the series Research Monographs in Parallel and Distributed Computing, Copublished with Pitman Publishing,

1,001 citations