55,811 research outputs found
A Framework for Evaluating Model-Driven Self-adaptive Software Systems
In the last few years, Model Driven Development (MDD), Component-based
Software Development (CBSD), and context-oriented software have become
interesting alternatives for the design and construction of self-adaptive
software systems. In general, the ultimate goal of these technologies is to be
able to reduce development costs and effort, while improving the modularity,
flexibility, adaptability, and reliability of software systems. An analysis of
these technologies shows them all to include the principle of the separation of
concerns, and their further integration is a key factor to obtaining
high-quality and self-adaptable software systems. Each technology identifies
different concerns and deals with them separately in order to specify the
design of the self-adaptive applications, and, at the same time, support
software with adaptability and context-awareness. This research studies the
development methodologies that employ the principles of model-driven
development in building self-adaptive software systems. To this aim, this
article proposes an evaluation framework for analysing and evaluating the
features of model-driven approaches and their ability to support software with
self-adaptability and dependability in highly dynamic contextual environment.
Such evaluation framework can facilitate the software developers on selecting a
development methodology that suits their software requirements and reduces the
development effort of building self-adaptive software systems. This study
highlights the major drawbacks of the propped model-driven approaches in the
related works, and emphasise on considering the volatile aspects of
self-adaptive software in the analysis, design and implementation phases of the
development methodologies. In addition, we argue that the development
methodologies should leave the selection of modelling languages and modelling
tools to the software developers.Comment: model-driven architecture, COP, AOP, component composition,
self-adaptive application, context oriented software developmen
Middleware Technologies for Cloud of Things - a survey
The next wave of communication and applications rely on the new services
provided by Internet of Things which is becoming an important aspect in human
and machines future. The IoT services are a key solution for providing smart
environments in homes, buildings and cities. In the era of a massive number of
connected things and objects with a high grow rate, several challenges have
been raised such as management, aggregation and storage for big produced data.
In order to tackle some of these issues, cloud computing emerged to IoT as
Cloud of Things (CoT) which provides virtually unlimited cloud services to
enhance the large scale IoT platforms. There are several factors to be
considered in design and implementation of a CoT platform. One of the most
important and challenging problems is the heterogeneity of different objects.
This problem can be addressed by deploying suitable "Middleware". Middleware
sits between things and applications that make a reliable platform for
communication among things with different interfaces, operating systems, and
architectures. The main aim of this paper is to study the middleware
technologies for CoT. Toward this end, we first present the main features and
characteristics of middlewares. Next we study different architecture styles and
service domains. Then we presents several middlewares that are suitable for CoT
based platforms and lastly a list of current challenges and issues in design of
CoT based middlewares is discussed.Comment: http://www.sciencedirect.com/science/article/pii/S2352864817301268,
Digital Communications and Networks, Elsevier (2017
Middleware Technologies for Cloud of Things - a survey
The next wave of communication and applications rely on the new services
provided by Internet of Things which is becoming an important aspect in human
and machines future. The IoT services are a key solution for providing smart
environments in homes, buildings and cities. In the era of a massive number of
connected things and objects with a high grow rate, several challenges have
been raised such as management, aggregation and storage for big produced data.
In order to tackle some of these issues, cloud computing emerged to IoT as
Cloud of Things (CoT) which provides virtually unlimited cloud services to
enhance the large scale IoT platforms. There are several factors to be
considered in design and implementation of a CoT platform. One of the most
important and challenging problems is the heterogeneity of different objects.
This problem can be addressed by deploying suitable "Middleware". Middleware
sits between things and applications that make a reliable platform for
communication among things with different interfaces, operating systems, and
architectures. The main aim of this paper is to study the middleware
technologies for CoT. Toward this end, we first present the main features and
characteristics of middlewares. Next we study different architecture styles and
service domains. Then we presents several middlewares that are suitable for CoT
based platforms and lastly a list of current challenges and issues in design of
CoT based middlewares is discussed.Comment: http://www.sciencedirect.com/science/article/pii/S2352864817301268,
Digital Communications and Networks, Elsevier (2017
A Role-Based Approach for Orchestrating Emergent Configurations in the Internet of Things
The Internet of Things (IoT) is envisioned as a global network of connected
things enabling ubiquitous machine-to-machine (M2M) communication. With
estimations of billions of sensors and devices to be connected in the coming
years, the IoT has been advocated as having a great potential to impact the way
we live, but also how we work. However, the connectivity aspect in itself only
accounts for the underlying M2M infrastructure. In order to properly support
engineering IoT systems and applications, it is key to orchestrate
heterogeneous 'things' in a seamless, adaptive and dynamic manner, such that
the system can exhibit a goal-directed behaviour and take appropriate actions.
Yet, this form of interaction between things needs to take a user-centric
approach and by no means elude the users' requirements. To this end,
contextualisation is an important feature of the system, allowing it to infer
user activities and prompt the user with relevant information and interactions
even in the absence of intentional commands. In this work we propose a
role-based model for emergent configurations of connected systems as a means to
model, manage, and reason about IoT systems including the user's interaction
with them. We put a special focus on integrating the user perspective in order
to guide the emergent configurations such that systems goals are aligned with
the users' intentions. We discuss related scientific and technical challenges
and provide several uses cases outlining the concept of emergent
configurations.Comment: In Proceedings of the Second International Workshop on the Internet
of Agents @AAMAS201
Aspects of Assembly and Cascaded Aspects of Assembly: Logical and Temporal Properties
Highly dynamic computing environments, like ubiquitous and pervasive
computing environments, require frequent adaptation of applications. This has
to be done in a timely fashion, and the adaptation process must be as fast as
possible and mastered. Moreover the adaptation process has to ensure a
consistent result when finished whereas adaptations to be implemented cannot be
anticipated at design time. In this paper we present our mechanism for
self-adaptation based on the aspect oriented programming paradigm called Aspect
of Assembly (AAs). Using AAs: (1) the adaptations process is fast and its
duration is mastered; (2) adaptations' entities are independent of each other
thanks to the weaver logical merging mechanism; and (3) the high variability of
the software infrastructure can be managed using a mono or multi-cycle weaving
approach.Comment: 14 pages, published in International Journal of Computer Science,
Volume 8, issue 4, Jul 2011, ISSN 1694-081
Microservice Transition and its Granularity Problem: A Systematic Mapping Study
Microservices have gained wide recognition and acceptance in software
industries as an emerging architectural style for autonomic, scalable, and more
reliable computing. The transition to microservices has been highly motivated
by the need for better alignment of technical design decisions with improving
value potentials of architectures. Despite microservices' popularity, research
still lacks disciplined understanding of transition and consensus on the
principles and activities underlying "micro-ing" architectures. In this paper,
we report on a systematic mapping study that consolidates various views,
approaches and activities that commonly assist in the transition to
microservices. The study aims to provide a better understanding of the
transition; it also contributes a working definition of the transition and
technical activities underlying it. We term the transition and technical
activities leading to microservice architectures as microservitization. We then
shed light on a fundamental problem of microservitization: microservice
granularity and reasoning about its adaptation as first-class entities. This
study reviews state-of-the-art and -practice related to reasoning about
microservice granularity; it reviews modelling approaches, aspects considered,
guidelines and processes used to reason about microservice granularity. This
study identifies opportunities for future research and development related to
reasoning about microservice granularity.Comment: 36 pages including references, 6 figures, and 3 table
- …