Creator of Knowledge
Information Resources Management Association
Advancing the Concepts & Practices of Information Resources Management in Modern Organizations

Low-Overhead Development of Scalable Resource-Efficient Software Systems

Low-Overhead Development of Scalable Resource-Efficient Software Systems
View Sample PDF
Author(s): Wei-Chih Huang (Imperial College London, UK) and William J. Knottenbelt (Imperial College London, UK)
Copyright: 2014
Pages: 25
Source title: Handbook of Research on Emerging Advancements and Technologies in Software Engineering
Source Author(s)/Editor(s): Imran Ghani (Universiti Teknologi Malaysia, Malaysia), Wan Mohd Nasir Wan Kadir (Universiti Teknologi Malaysia, Malaysia) and Mohammad Nazir Ahmad (Universiti Teknologi Malaysia, Malaysia)
DOI: 10.4018/978-1-4666-6026-7.ch005


View Low-Overhead Development of Scalable Resource-Efficient Software Systems on the publisher's website for pricing and purchasing information.


As the variety of execution environments and application contexts increases exponentially, modern software is often repeatedly refactored to meet ever-changing non-functional requirements. Although programmer effort can be reduced through the use of standardised libraries, software adjustment for scalability, reliability, and performance remains a time-consuming and manual job that requires high levels of expertise. Previous research has proposed three broad classes of techniques to overcome these difficulties in specific application domains: probabilistic techniques, out of core storage, and parallelism. However, due to limited cross-pollination of knowledge between domains, the same or very similar techniques have been reinvented all over again, and the application of techniques still requires manual effort. This chapter introduces the vision of self-adaptive scalable resource-efficient software that is able to reconfigure itself with little other than programmer-specified Service-Level Objectives and a description of the resource constraints of the current execution environment. The approach is designed to be low-overhead from the programmer's perspective – indeed a naïve implementation should suffice. To illustrate the vision, the authors have implemented in C++ a prototype library of self-adaptive containers, which dynamically adjust themselves to meet non-functional requirements at run time and which automatically deploy mitigating techniques when resource limits are reached. The authors describe the architecture of the library and the functionality of each component, as well as the process of self-adaptation. They explore the potential of the library in the context of a case study, which shows that the library can allow a naïve program to accept large-scale input and become resource-aware with very little programmer overhead.

Related Content

Kamalendu Pal. © 2020. 22 pages.
Chetna Gupta, Surbhi Singhal, Astha Kumari. © 2020. 12 pages.
Sudha Srinivasan, D. S. Chauhan. © 2020. 16 pages.
Priyanka Chandani, Chetna Gupta. © 2020. 30 pages.
Chamundeswari Arumugam, Srinivasan Vaidyanathan. © 2020. 13 pages.
Varun Gupta, Aditya Raj Gupta, Utkarsh Agrawal, Ambika Kumar, Rahul Verma. © 2020. 15 pages.
Vimaladevi M., Zayaraz G.. © 2020. 25 pages.
Body Bottom