116 research outputs found
Platforms and Protocols for the Internet of Things
Building a general architecture for the Internet of Things (IoT) is a very complex task, exacerbated by the extremely large variety of devices, link layer technologies, and services that may be involved in such a system. In this paper, we identify the main blocks of a generic IoT architecture, describing their features and requirements, and analyze the most common approaches proposed in the literature for each block. In particular, we compare three of the most important communication technologies for IoT purposes, i.e., REST, MQTT, and AMQP, and we also analyze three IoT platforms: openHAB, Sentilo, and Parse. The analysis will prove the importance of adopting an integrated approach that jointly addresses several issues and is able to flexibly accommodate the requirements of the various elements of the system. We also discuss a use case which illustrates the design challenges and the choices to make when selecting which protocols and technologies to use
WS-Pro: a Petri net based performance-driven service composition framework
As an emerging area gaining prevalence in the industry, Web Services was established to satisfy the needs for better flexibility and higher reliability in web applications. However, due to the lack of reliable frameworks and difficulties in constructing versatile service composition platform, web developers encountered major obstacles in large-scale deployment of web services. Meanwhile, performance has been one of the major concerns and a largely unexplored area in Web Services research. There is high demand for researchers to conceive and develop feasible solutions to design, monitor, and deploy web service systems that can adapt to failures, especially performance failures. Though many techniques have been proposed to solve this problem, none of them offers a comprehensive solution to overcome the difficulties that challenge practitioners.
Central to the performance-engineering studies, performance analysis and performance adaptation are of paramount importance to the success of a software project. The industry learned through many hard lessons the significance of well-founded and well-executed performance engineering plans. An important fact is that it is too expensive to tackle performance evaluation, mostly through performance testing, after the software is developed. This is especially true in recent decades when software complexity has risen sharply. After the system is deployed, performance adaptation is essential to maintaining and improving software system reliability. Performance adaptation provides techniques to mitigate the consequence of performance failures and therefore is an important research issue. Performance adaptation is particularly meaningful for mission-critical software systems and software systems with inevitable frequent performance failures, such as Web Services.
This dissertation focuses on Web Services framework and proposes a performance-driven service composition scheme, called WS-Pro, to support both performance analysis and performance adaptation. A formalism of transformation from WS-BPEL to Petri net is first defined to enable the analysis of system properties and facilitate quality prediction. A state-transition based proof is presented to show that the transformed Petri net model correctly simulates the behavior of the WS-BPEL process. The generated Petri net model was augmented using performance data supplied by both historical data and runtime data. Results of executing the Petri nets suggest that optimal composition plans can be achieved based on the proposed method.
The performance of service composition procedure is an important research issue which has not been sufficiently treated by researchers. However, such an issue is critical for dynamic service composition, where re-planning must be done in a timely manner. In order to improve the performance of service composition procedure and enhance performance adaptation, this dissertation presents an algorithm to remove loops in the reachability graphs so that a large portion of the computation time of service composition can be moved to a pre-processing unit; hence the response time is shortened during runtime. We also extended the WS-Pro to the ubiquitous computing area to improve fault-tolerance
Ami-deu : un cadre sémantique pour des applications adaptables dans des environnements intelligents
Cette thèse vise à étendre l’utilisation de l'Internet des objets (IdO) en facilitant le développement d’applications par des personnes non experts en développement logiciel. La thèse propose une nouvelle approche pour augmenter la sémantique des applications d’IdO et l’implication des experts du domaine dans le développement d’applications sensibles au contexte. Notre approche permet de gérer le contexte changeant de l’environnement et de générer des applications qui s’exécutent dans plusieurs environnements intelligents pour fournir des actions requises dans divers contextes. Notre approche est mise en œuvre dans un cadriciel (AmI-DEU) qui inclut les composants pour le développement d’applications IdO. AmI-DEU intègre les services d’environnement, favorise l’interaction de l’utilisateur et fournit les moyens de représenter le domaine d’application, le profil de l’utilisateur et les intentions de l’utilisateur. Le cadriciel permet la définition d’applications IoT avec une intention d’activité autodécrite qui contient les connaissances requises pour réaliser l’activité. Ensuite, le cadriciel génère Intention as a Context (IaaC), qui comprend une intention d’activité autodécrite avec des connaissances colligées à évaluer pour une meilleure adaptation dans des environnements intelligents.
La sémantique de l’AmI-DEU est basée sur celle du ContextAA (Context-Aware Agents) – une plateforme pour fournir une connaissance du contexte dans plusieurs environnements. Le cadriciel effectue une compilation des connaissances par des règles et l'appariement sémantique pour produire des applications IdO autonomes capables de s’exécuter en ContextAA. AmI- DEU inclut également un outil de développement visuel pour le développement et le déploiement rapide d'applications sur ContextAA. L'interface graphique d’AmI-DEU adopte la métaphore du flux avec des aides visuelles pour simplifier le développement d'applications en permettant des définitions de règles étape par étape. Dans le cadre de l’expérimentation, AmI-DEU comprend un banc d’essai pour le développement d’applications IdO. Les résultats expérimentaux montrent une optimisation sémantique potentielle des ressources pour les applications IoT dynamiques dans les maisons intelligentes et les villes intelligentes.
Notre approche favorise l'adoption de la technologie pour améliorer le bienêtre et la qualité de vie des personnes. Cette thèse se termine par des orientations de recherche que le cadriciel AmI-DEU dévoile pour réaliser des environnements intelligents omniprésents fournissant des adaptations appropriées pour soutenir les intentions des personnes.Abstract: This thesis aims at expanding the use of the Internet of Things (IoT) by facilitating the development of applications by people who are not experts in software development. The thesis proposes a new approach to augment IoT applications’ semantics and domain expert involvement in context-aware application development. Our approach enables us to manage the changing environment context and generate applications that run in multiple smart environments to provide required actions in diverse settings. Our approach is implemented in a framework (AmI-DEU) that includes the components for IoT application development. AmI- DEU integrates environment services, promotes end-user interaction, and provides the means to represent the application domain, end-user profile, and end-user intentions. The framework enables the definition of IoT applications with a self-described activity intention that contains the required knowledge to achieve the activity. Then, the framework generates Intention as a Context (IaaC), which includes a self-described activity intention with compiled knowledge to be assessed for augmented adaptations in smart environments. AmI-DEU framework semantics adopts ContextAA (Context-Aware Agents) – a platform to provide context-awareness in multiple environments. The framework performs a knowledge compilation by rules and semantic matching to produce autonomic IoT applications to run in ContextAA. AmI-DEU also includes a visual tool for quick application development and deployment to ContextAA. The AmI-DEU GUI adopts the flow metaphor with visual aids to simplify developing applications by allowing step-by-step rule definitions. As part of the experimentation, AmI-DEU includes a testbed for IoT application development. Experimental results show a potential semantic optimization for dynamic IoT applications in smart homes and smart cities. Our approach promotes technology adoption to improve people’s well-being and quality of life. This thesis concludes with research directions that the AmI-DEU framework uncovers to achieve pervasive smart environments providing suitable adaptations to support people’s intentions
Metaheuristic models for decision support in the software construction process
En la actualidad, los ingenieros software no solo tienen la responsabilidad de construir
sistemas que desempe~nen una determinada funcionalidad, sino que cada vez
es más importante que dichos sistemas también cumplan con requisitos no funcionales
como alta disponibilidad, efciencia o seguridad, entre otros. Para lograrlo,
los ingenieros se enfrentan a un proceso continuo de decisión, pues deben estudiar
las necesidades del sistema a desarrollar y las alternativas tecnológicas existentes
para implementarlo. Todo este proceso debe estar encaminado a la obtención de
sistemas software de gran calidad, reutilizables y que faciliten su mantenimiento y
modificación en un escenario tan exigente y competitivo.
La ingenierÃa del software, como método sistemático para la construcción de software,
ha aportado una serie de pautas y tareas que, realizadas de forma disciplinada
y adaptadas al contexto de desarrollo, posibilitan la obtención de software de calidad.
En concreto, el proceso de análisis y diseño del software ha adquirido una gran
importancia, pues en ella se concibe la estructura del sistema, en términos de sus bloques
funcionales y las interacciones entre ellos. Es en este momento cuando se toman
las decisiones acerca de la arquitectura, incluyendo los componentes que la conforman,
que mejor se adapta a los requisitos, tanto funcionales como no funcionales,
que presenta el sistema y que claramente repercuten en su posterior desarrollo. Por
tanto, es necesario que el ingeniero analice rigurosamente las alternativas existentes,
sus implicaciones en los criterios de calidad impuestos y la necesidad de establecer
compromisos entre ellos. En este contexto, los ingenieros se guÃan principalmente
por sus habilidades y experiencia, por lo que dotarles de métodos de apoyo a la
decisión representarÃa un avance significativo en el área.
La aplicación de técnicas de inteligencia artificial en este ámbito ha despertado un
gran interés en los últimos años. En particular, la inteligencia artificial ha encontrado
en la ingenierÃa del software un ámbito de aplicación complejo, donde diferentes
técnicas pueden ayudar a conseguir la semi-automatización de tareas tradicionalmente
realizadas de forma manual. De la unión de ambas áreas surge la denominada
ingenierÃa del software basada en búsqueda, que propone la reformulación de las
actividades propias de la ingenierÃa del software como problemas de optimización.
A continuación, estos problemas podrÃan ser resueltos mediante técnicas de búsqueda
como las metaheurÃsticas. Este tipo de técnicas se caracterizan por explorar el
espacio de posibles soluciones de una manera \inteligente", a menudo simulando
procesos naturales como es el caso de los algoritmos evolutivos.
A pesar de ser un campo de investigación muy reciente, es posible encontrar propuestas
para automatizar una gran variedad de tareas dentro del ciclo de vida del software, como son la priorización de requisitos, la planifcación de recursos, la refactorización del código fuente o la generación de casos de prueba. En el ámbito del
análisis y diseño de software, cuyas tareas requieren de creatividad y experiencia,
conseguir una automatización completa resulta poco realista. Es por ello por lo que
la resolución de sus tareas mediante enfoques de búsqueda debe ser tratada desde la
perspectiva del ingeniero, promoviendo incluso la interacción con ellos. Además, el
alto grado de abstracción de algunas de sus tareas y la dificultad de evaluar cuantitativamente
la calidad de un diseño software, suponen grandes retos en la aplicación
de técnicas de búsqueda durante las fases tempranas del proceso de construcción de
software.
Esta tesis doctoral busca realizar aportaciones significativas al campo de la ingenierÃa
del software basada en búsqueda y, más concretamente, al área de la optimización
de arquitecturas software. Aunque se están realizando importantes avances en este
área, la mayorÃa de propuestas se centran en la obtención de arquitecturas de bajo
nivel o en la selección y despliegue de artefactos software ya desarrollados. Por tanto,
no existen propuestas que aborden el modelado arquitectónico a un nivel de abstracción elevado, donde aún no existe un conocimiento profundo sobre cómo será el
sistema y, por tanto, es más difÃcil asistir al ingeniero. Como problema de estudio,
se ha abordado principalmente la tarea del descubrimiento de arquitecturas software
basadas en componentes. El objetivo de este problema consiste en abstraer los bloques
arquitectónicos que mejor definen la estructura actual del software, asà como
sus interacciones, con el fin de facilitar al ingeniero su posterior análisis y mejora.
Durante el desarrollo de esta tesis doctoral se ha explorado el uso de una gran variedad
de técnicas de búsqueda, estudiando su idoneidad y realizando las adaptaciones
necesarias para hacer frente a los retos mencionados anteriormente. La primera propuesta
se ha centrado en la formulación del descubrimiento de arquitecturas como
problema de optimización, abordando la representación computacional de los artefactos
software que deben ser modelados y definiendo medidas software para evaluar
su calidad durante el proceso de búsqueda. Además, se ha desarrollado un primer
modelo basado en algoritmos evolutivos mono-objetivo para su resolución, el cual ha
sido validado experimentalmente con sistemas software reales. Dicho modelo se caracteriza
por ser comprensible y
exible, pues sus componentes han sido diseñados
considerando estándares y herramientas del ámbito de la ingenierÃa del software,
siendo además configurable en función de las necesidades del ingeniero.
A continuación, el descubrimiento de arquitecturas ha sido tratado desde una perspectiva
multiobjetivo, donde varias medidas software, a menudo en con
icto, deben
ser simultáneamente optimizadas. En este caso, la resolución del problema se ha
llevado a cabo mediante ocho algoritmos del estado del arte, incluyendo propuestas recientes del ámbito de la optimización de muchos objetivos. Tras ser adaptados al
problema, estos algoritmos han sido comparados mediante un extenso estudio experimental
con el objetivo de analizar la ifnuencia que tiene el número y la elección
de las métricas a la hora de guiar el proceso de búsqueda. Además de realizar una
validación del rendimiento de estos algoritmos siguiendo las prácticas habituales
del área, este estudio aporta un análisis detallado de las implicaciones que supone
la optimización de múltiples objetivos en la obtención de modelos de soporte a la
decisión.
La última propuesta en el contexto del descubrimiento de arquitecturas software
se centra en la incorporación de la opinión del ingeniero al proceso de búsqueda.
Para ello se ha diseñado un mecanismo de interacción que permite al ingeniero indicar
tanto las caracterÃsticas deseables en las soluciones arquitectónicas (preferencias
positivas) como aquellos aspectos que deben evitarse (preferencias negativas). Esta
información es combinada con las medidas software utilizadas hasta el momento,
permitiendo al algoritmo evolutivo adaptar la búsqueda conforme el ingeniero interactúe. Dadas las caracterÃsticas del modelo, su validación se ha realizado con la
participación de ingenieros con distinta experiencia en desarrollo software, a fin de
demostrar la idoneidad y utilidad de la propuesta.
En el transcurso de la tesis doctoral, los conocimientos adquiridos y las técnicas
desarrolladas también han sido extrapolados a otros ámbitos de la ingenierÃa del
software basada en búsqueda mediante colaboraciones con investigadores del área.
Cabe destacar especialmente la formalización de una nueva disciplina transversal,
denominada ingenierÃa del software basada en búsqueda interactiva, cuyo fin es promover
la participación activa del ingeniero durante el proceso de búsqueda. Además,
se ha explorado la aplicación de algoritmos de muchos objetivos a un problema clásico
de la computación orientada a servicios, como es la composición de servicios web.Nowadays, software engineers have not only the responsibility of building systems that provide a particular functionality, but they also have to guarantee that these systems ful l demanding non-functional requirements like high availability, e ciency or security. To achieve this, software engineers face a continuous decision process, as they have to evaluate system needs and existing technological alternatives to implement it. All this process should be oriented towards obtaining high-quality and reusable systems, also making future modi cations and maintenance easier in such a competitive scenario. Software engineering, as a systematic method to build software, has provided a number of guidelines and tasks that, when done in a disciplinarily manner and properly adapted to the development context, allow the creation of high-quality software. More speci cally, software analysis and design has acquired great relevance, being the phase in which the software structure is conceived in terms of its functional blocks and their interactions. In this phase, engineers have to make decisions about the most suitable architecture, including its constituent components. Such decisions are made according to the system requirements, either functional or non-functional, and will have a great impact on its future development. Therefore, the engineer has to rigorously analyse existing alternatives, their implications on the imposed quality criteria and the need of establishing trade-o s among them. In this context, engineers are mostly guided by their own capabilities and experience, so providing them with decision support methods would represent a signi cant contribution. The application of arti cial intelligent techniques in this area has experienced a growing interest in the last years. Particularly, software engineering represents a complex application domain to arti cial intelligence, whose diverse techniques can help in the semi-automation of tasks traditionally performed manually. The union of both elds has led to the appearance of search-based software engineering, which proposes reformulating software engineering activities as optimisation problems. For their resolution, search techniques like metaheuristics can be then applied. This type of technique performs an \intelligent" exploration of the space of candidate solutions, often inspired by natural processes as happens with evolutionary algorithms. Despite the novelty of this research eld, there are proposals to automate a great variety of tasks within the software lifecycle, such as requirement prioritisation, resource planning, code refactoring or test case generation. Focusing on analysis and design, whose tasks require creativity and experience, trying to achieve full automation is not realistic. Therefore, solving design tasks by means of search approaches should be oriented towards the engineer's perspective, even promoting their interaction. Furthermore, design tasks are also characterised by a high level of abstraction and the di culty of quantitatively evaluating design quality. All these aspects represent key challenges for the application of search techniques in early phases of the software construction process. The aim of this Ph.D. Thesis is to make signi cant contributions in search-based software engineering and, specially, in the area of software architecture optimisation. Although it is an area in which signi cant progress is being done, most of the current proposals are focused on generating low-level architectures or selecting and deploying already developed artefacts. Therefore, there is a lack of proposals dealing with architectural modelling at a high level of abstraction. At this level, engineers do not have a deep understanding of the system yet, meaning that assisting them is even more di cult. As case study, the discovery of component-based software architectures has been primary addressed. The objective for this problem consists in the abstraction of the architectural blocks, and their interactions, that best de ne the current structure of a software system. This can be viewed as the rst step an engineer would perform in order to further analyse and improve the system architecture. In this Ph.D. Thesis, the use of a great variety of search techniques has been explored. The suitability of these techniques has been studied, also making the necessary adaptations to cope with the aforementioned challenges. A rst proposal has been focused on the formulation of software architecture discovery as an optimisation problem, which consists in the computational representation of its software artefacts and the de nition of software metrics to evaluate their quality during the search process. Moreover, a single-objective evolutionary algorithm has been designed for its resolution, which has been validated using real software systems. The resulting model is comprehensible and exible, since its components have been designed under software engineering standards and tools and are also con gurable according to engineer's needs. Next, the discovery of software architectures has been tackled from a multi-objective perspective, in which several software metrics, often in con ict, have to be simultaneously optimised. In this case, the problem is solved by applying eight state-of-theart algorithms, including some recent many-objective approaches. These algorithms have been adapted to the problem and compared in an extensive experimental study, whose purpose is to analyse the in uence of the number and combination of metrics when guiding the search process. Apart from the performance validation following usual practices within the eld, this study provides a detailed analysis of the practical
implications behind the optimisation of multiple objectives in the context of
decision support.
The last proposal is focused on interactively including the engineer's opinion in the
search-based architecture discovery process. To do this, an interaction mechanism
has been designed, which allows the engineer to express desired characteristics for
the solutions (positive preferences), as well as those aspects that should be avoided
(negative preferences). The gathered information is combined with the software
metrics used until the moment, thus making possible to adapt the search as the
engineer interacts. Due to the characteristics of the proposed model, engineers of
di erent expertise in software development have participated in its validation with
the aim of showing the suitability and utility of the approach.
The knowledge acquired along the development of the Thesis, as well as the proposed
approaches, have also been transferred to other search-based software engineering
areas as a result of research collaborations. In this sense, it is worth noting the
formalisation of interactive search-based software engineering as a cross-cutting discipline,
which aims at promoting the active participation of the engineer during the
search process. Furthermore, the use of many-objective algorithms has been explored
in the context of service-oriented computing to address the so-called web service
composition problem
Recent Advances in Wireless Communications and Networks
This book focuses on the current hottest issues from the lowest layers to the upper layers of wireless communication networks and provides "real-time" research progress on these issues. The authors have made every effort to systematically organize the information on these topics to make it easily accessible to readers of any level. This book also maintains the balance between current research results and their theoretical support. In this book, a variety of novel techniques in wireless communications and networks are investigated. The authors attempt to present these topics in detail. Insightful and reader-friendly descriptions are presented to nourish readers of any level, from practicing and knowledgeable communication engineers to beginning or professional researchers. All interested readers can easily find noteworthy materials in much greater detail than in previous publications and in the references cited in these chapters
Extending Web Service Architecture with a Quality Component: Web Service Architecture and Quality Component
The Web service technology provides standard mechanisms for describing the interface of the services available on the Web, as well as protocols for locating such services and invoking them. Each Web service has an associated Web Services Description Language (WSDL) document which describes how it works and how to invoke it. Such document is registered at a Universal Description, Discovery and Integration (UDDI) registry that provides a discovery service for the WSDL descriptions. The Web services architecture consists of three components: Service Provider, Service Requester and UDDI Registry, and the interactions between them through publish, find, and bind operations. Between finding and binding steps there is another crucial step, which is not fully considered by current approaches. This is the step of selection. The UDDI service registry hosts hundreds of similar Web services, which makes it difficult for the service requesters to choose from them, as the selection is based on the functional properties only. However, many similar services are differentiated by their quality criteria. Therefore, quality criteria are important to be considered in the web service selection. This thesis proposes a quality-based Web service architecture (QWSA) that extends the current Web service architecture with a quality server. The quality server consists of four main components: quality manager, quality matchmaker, quality report analyzer, and quality database. The main purpose of quality server is to assist service requester to select the best available service that fulfils his/her preference by matching between a service requester’s quality requirement and the service providers’ quality specifications. In addition, this thesis reports the development of a quality matchmaking process (QMP) based on the proposed architecture by building a quality service selection system (QSSS). This QSSS has been verified and validated using a case study of Amazon E-commerce service (ECS)
Advances in component-oriented programming
WCOP 2006 is the eleventh event in a series of highly successful
workshops, which took place in conjunction with every ECOOP
since 1996. Component oriented programming (COP) has been
described as the natural extension of object-oriented
programming to the realm of independently extensible
systems. Several important approaches have emerged over the
recent years, including component technology standards, such as
CORBA/CCM, COM/COM+, J2EE/EJB, and .NET, but also the increasing
appreciation of software architecture for component-based
systems, and the consequent effects on organizational processes
and structures as well as the software development business as a
whole.
COP aims at producing software components for a component market
and for late composition. Composers are third parties, possibly
the end users, who are not able or willing to change components.
This requires standards to allow independently created
components to interoperate, and specifications that put the
composer into the position to decide what can be composed under
which conditions. On these grounds, WCOP\u2796 led to the following
definition: "A component is a unit of composition with
contractually specified interfaces and explicit context
dependencies only. Components can be deployed independently and
are subject to composition by third parties."
After WCOP\u2796 focused on the fundamental terminology of COP, the
subsequent workshops expanded into the many related facets of
component software. WCOP 2006 emphasizes reasons for using
components beyond reuse. While considering software components
as a technical means to increase software reuse, other reasons
for investing into component technology tend to be overseen. For
example, components play an important role in frameworks and
product-lines to enable configurability (even if no component is
reused). Another role of components beyond reuse is to increase
the predictability of the properties of a system. The use of
components as contractually specified building blocks restricts
the degrees of freedom during software development compared to
classic line-by-line programming. This restriction is beneficial
for the predictability of system properties. For an engineering
approach to software design, it is important to understand the
implications of design decisions on a system\u27s properties.
Therefore, approaches to evaluate and predict properties of
systems by analyzing its components and its architecture are of
high interest.
To strengthen the relation between architectural descriptions of
systems and components, a comprehensible mapping to
component-oriented middleware platforms is important.
Model-driven development with its use of generators can
provide a suitable link between architectural views and
technical component execution platforms.
WCOP 2006 accepted 13 papers, which are organised according to
the program below. The organisers are looking forward to an
inspiring and thought provoking workshop. The organisers thank
Jens Happe and Michael Kuperberg for preparing
the proceedings volume
- …