Elsevier

Pervasive and Mobile Computing

Volume 53, February 2019, Pages 33-48
Pervasive and Mobile Computing

A Reference Architecture to support the development of mobile applications based on self-adaptive services

https://doi.org/10.1016/j.pmcj.2019.01.001Get rights and content

Abstract

Nowadays, most human daily tasks can be performed by means of Mobile Applications (MobApps). Devices running such applications have some limitations (e.g., processing and storage) compared to personal computers. Therefore, integration of MobApps into service-based systems has been a feasible alternative to overcome these limitations. Moreover, these applications must be prepared to deal with the changes at runtime (e.g., user’s new needs or modifications in their execution environment). In parallel, Reference Architectures (RA) have been used as an important way to support the development, standardization, and evolution of software systems. Although relevant, RA for the domain of MobApps based on services that require adaptation at runtime is still an issue to be explored in depth. This paper presents a RA for Self-MobApps (named RA4Self-MobApps), which aims to support the development of such applications. To show the applicability of our RA, a case study was conducted. As result, we observe our RA has good perspective to efficiently contribute to the Self-MobApps domain.

Introduction

In the modern society, software systems have played an important role, operating in several segments, such as public and private institutions, airports, communication systems, social networks, among others. In parallel, the complexity of software systems and their computational environments has increased in the last years. Nowadays, our society has become increasingly dependent of such systems, which must be able to work in 24/7 mode (i.e., 24 h per day, seven days per week). Moreover, it can be noted that most human daily tasks are managed by applications1 embedded into mobile devices (e.g., smartphones or tablets), which allow on-line access to information regardless of the users’ location [1]. Regarding the development, such applications can have, at the same time, some items: (i) ad-hoc components and applications developed by third-party; (ii) on-line services; and (iii) platform-dependent components to access device-specific hardware (e.g., Bluetooth, Camera, Microphone, among others) [2].

Mobile technology can help humans in the execution of tasks such as speech and image recognition, natural language processing, decision-making, and mission planning, among others. In parallel, mobile devices offer less computational power than conventional desktop or server computers and computation-intensive tasks can require excessive amount of battery power. In addition, battery lifetime, network bandwidth, storage capacity, memory and processor performance are examples of adversities or limitations to be overcome in a mobile computing scenario [3], [4], [5], [6]. For these reasons, research has been boosted to minimize the impact of such adversities or limitations and, at the same time, to facilitate access to information providing mobility to their users. Based on the presented context, the integration of MobApps into SOA-based (Service-Oriented Architecture) systems has been a feasible alternative to overcome such adversities or limitations. In short, SOA provides an architectural model that enables services to be published by service providers, discovered and consumed by the stakeholders (i.e., client applications, other services, among others) by means of a platform-independent communication process based on a set of XML-based (Xtensible Markup Language) standards [1], [7], [8].

SOA-based systems has played an important role in the development of distributed applications over the Internet. In this context, web services are elements of first class to support the development of applications based on services in heterogeneous environments. Moreover, such applications, regardless of type (e.g., distributed, mobile, or web), must be prepared to deal with the changes at runtime, which can be performed to meet the user’s new needs (e.g., new requirements) or autonomously react to modifications in their execution environment (e.g., services unavailability, low QoS – Quality of Service). Therefore, services that enable adaptation at runtime can be classified as self-adaptive [2], [9]. In short, this type of service is composed of two complex and costly activities: (i) the first aims to select a service in the execution environment that meets the application needs and the quality requirements; and (ii) once selected, a dynamic deploy process (second activity) for this new service must be started so that the client applications have no perception of changes.

From another perspective, Reference Architectures (RA) refer to a special type of software architecture that has become an important element to systematically reuse architectural knowledge [10]. Thus, different domains of software systems, including MobApps, have understood the need for encapsulating knowledge (i.e., experiences and good practices) to disseminate and reuse this knowledge in the development of systems. For instance, Liu et al. [11] designed a RA for the domains of service-oriented computing based on self-organizing mechanism. Weyns et al. [12] developed a Reference Model (RM)2 entitled FOrmal Reference Model for Self-adaptation (FORMS). This RM aims to support the development of systems based on formal methods and reflection. Affonso and Nakagawa [13] designed a RA for Self-adaptive Software called RA4SaS. This architecture is based on computational reflection and an external adaptation approach, which enables the adaptation of software entities at runtime by means of an automated process.

Although the use of RA has relevantly figured in the development of software systems, Self-MobApps (Self-adaptive Service-oriented MobApps) have been developed with no concern on the reuse of previously acquired knowledge and experiences, such as best practices, guidelines, and better architectural styles. In a study published by Affonso and Nakagawa [14], the use of RA and RM for the Self-adaptive Software (SaS) domain has intensified between 2004 and 2014. Moreover, a wide range of architectures and models were designed to meet specific domains of adaptation (e.g., autonomic control, service adaptation, and software components). Based on this scenario, the main goal of this article is to present the RA4Self-MobApps, a RA for Self-MobApps based on ProSA-RA (Process based on Software Architecture – Reference Architecture) [15]. This architecture was designed based on previous experiences of our research group, such as: (i) a RA called RA4SaS to support the development of SaS [13]; (ii) a framework and a tool to support the development of decision support systems for SaS domain [16], [17]; and (iii) a framework to support the development of Self-MobApps, which enables service adaptation at runtime [18], [19]. In short, our architecture contemplates different phases of development (i.e., design and runtime). The first uses a list of preferred services manually defined by the developers for the design of a primary service. The second uses an automatic search mechanism to find a similar service in the web service repository. Regarding the runtime phase, the RA proposed in this article (RA4Self-MobApps) enables services to be monitored at runtime by means of a framework to support decision-making, which enables to classify and analyze sensory data to autonomously detect and mitigate faults at runtime (e.g., service unavailability, high response time, QoS problems, among others) [16], [18], [19]. Moreover, as another contribution, our RA aims to support the development of Self-MobApps by means of a dynamic approach for service deployment (i.e., deploy, redeploy, or undeploy). Thus, services can be replaced by a similar one in a transparent process without the perception of their stakeholders (i.e., client applications). For reasons of scope, our RA addresses only services based on JAX-WS (Java API for XML Web Services) [20], a type of service that enables to address advanced QoS requirements that commonly occur in enterprise computing. This type of service requires minimization of computational effort (i.e., deployment activities) when a service is modified at runtime. Based on this scenario, our architecture aims to consolidate itself as a means to facilitate the development of MobApps based on this service type. In short, the main contributions of our RA can be summarized as follows: (i) it enables to address advanced QoS requirements according to application domain; (ii) it makes easier to write MobApps based on services by means of a dynamic approach of deployment; (iii) it enables to write loose coupling services (i.e., the developers can build generic services that would work together in a choreography and compose a new service); (iv) it enables to preserve the developers in their native development environments (i.e., mobile and service developers); and (v) it makes possible the use of third-parties components. Thus, we can create a favorable scenario of development, since it is easier for many types of clients (e.g., MobApps) to consume web services provided by our RA while enabling the server side to evolve and scale.

The article is organized as follows: Section 2 presents the background and related work; Section 3 provides a description of our architecture (RA4Self-MobApps); Section 4 presents a case study to show the applicability of our RA; Section 5 shows a brief discussion of results; and Section 6 summarizes our conclusions and perspectives for further research.

Section snippets

Background and related work

This section presents the background (i.e., concepts and definitions) and related work that contributed to the development of our RA. Initially concepts of self-star software, self-adaptive services and RA are described. Next, related work on RA for (Self-)MobApps is addressed.

Self-star software. Self-adaptive Software has specific characteristics compared to a traditional one because this type of software enable structural, behavioral, or contextual changes at runtime. Among these changes,

Reference architecture for Self-MobApps

In order to establish our architecture (RA4Self-MobApps), a process to build reference architectures called ProSA-RA [15] was used. First of all, information sources are selected and investigated (Step RA-1) and architectural requirements of the RAs are identified (Step RA-2). Such requirements aims to describe the common functionalities and configurations presented in systems of the target domain. Next, an architectural description of the RAs must be established (Step RA-3) and, finally,

Case study

To evaluate the applicability, strengths, and weaknesses of our architecture (RA4Self-MobApps) this section presents a case study we have conducted. As subject application for our empirical analysis, we have selected an application addressed to the management of a smart restaurant (App2SmartRest), as illustrated in Fig. 6. Next, a brief description of our subject application and the empirical strategies adopted for conducting this case study is presented.

Subject Application. The App2SmartRest

Discussion of results and limitations

This section summarizes the main findings and discusses the relevance of this work to the RA, Software Engineering, and Self-MobApps communities. The main findings and results are listed as follows.

This article purposed the RA4Self-MobApps, to the best of our knowledge, the first reference architecture that encompasses two activities at the same time: service adaptation at runtime by means of a dynamic approach of deployment. Such activities occur without the perception of their stakeholders

Conclusions and future work

This article presented a RA for Self-MobApps (RA4Self-MobApps) that intends to support the development of Self-MobApps by means of a dynamic approach for service deployment. This type of approach enables to minimize the computational effort (i.e., deployment activities) when a service is modified at runtime. This RA also enables the development of new services via service composition and choreography through the use of generic simpler web services. As reported and justified in Section 1, our RA

Acknowledgments

This research is supported by UNESP Pro-Rectory of Research (PROPe/UNESP), Coordination for the Improvement of Higher Education Personnel (CAPES), and São Paulo Research Foundation FAPESP, Brazil (Grant: 2017/06195-9).

References (51)

  • R. Angarita, M. Rukoz, M. Manouvrier, Y. Cardinale, A knowledge-based approach for self-healing service-oriented...
  • CherifS. et al.

    ReMoSSA: Reference model for specification of self-adaptive service-oriented-architecture

  • MenasceD. et al.

    SASSY: A framework for self-architecting service-oriented systems

    IEEE Softw.

    (2011)
  • BassL. et al.

    Software architecture in practice

    (2012)
  • LiuL. et al.

    A reference architecture for self-organizing service-oriented computing

  • D. Weyns, S. Malek, J. Andersson, FORMS: a formal reference model for self-adaptation, in: 7th International Conference...
  • F.J. Affonso, E.Y. Nakagawa, A reference architecture based on reflection for self-adaptive software, in: 7th Brazilian...
  • F.J. Affonso, E.Y. Nakagawa, Reference architectures for self-managed software systems: a systematic literature review,...
  • E.Y. Nakagawa, M. Guessi, J.C. Maldonado, D. Feitosa, F. Oquendo, Consolidating a process for the design,...
  • F.J. Affonso, G. Leite, R.A.P. Oliveira, E.Y. Nakagawa, A framework based on learning techniques for decision-making in...
  • F.J. Affonso, G. Leite, E.Y. Nakagawa, Dms-modeler: A tool for modeling decision-making systems for self-adaptive...
  • W.F. Passini, F.J. Affonso, A framework to support the development of self-adaptive service-oriented mobile...
  • PassiniW.F. et al.

    Developing self-adaptive service-oriented mobile applications: a framework based on dynamic deployment

    Int. J. Softw. Eng. Knowl. Eng.

    (2018)
  • Oracle

    Java platform, enterprise edition: The Java EE Tutorial, (Accessed on January 3, 2019)

    (2018)
  • SalehieM. et al.

    Self-adaptive software: Landscape and research challenges

    ACM Trans. Auton. Adapt. Syst.

    (2009)
  • Cited by (8)

    • Web service adaptation: A decade's overview

      2023, Computer Science Review
    • Self-adaptation in smartphone applications: Current state-of-the-art techniques, challenges, and future directions

      2021, Data and Knowledge Engineering
      Citation Excerpt :

      As reported in the literature that self-adaptation also helps in safety-based applications, Hirawat et al. [12] focused on enhancing accident detection through the mobile-based application. Reference Architecture (RA) for the development of self-adaptive services-based mobile applications is done in Affonso et al. [29]. García et al. [26] work is based on the transfer of multimedia applications or parts of the application from one device to another based on Application Mobility (AM).

    • ARC-SoISE: Towards a Reference Architecture for Constituents of Educational Systems-of-Information Systems

      2022, 2022 17th Annual System of Systems Engineering Conference, SOSE 2022
    View all citing articles on Scopus
    View full text