Describing Dynamic and Variable Software Architecture Based on Identified Services From Object-Oriented Legacy Applications

L'Orienté Service (SOA) est un paradigme de conception qui facilite la construction d’applications extensibles et reconfigurables basées sur des artefacts réutilisables qui sont les services. Ceux-ci sont structurés via des interfaces bien définies et publiables et qui peuvent être dynamiquemen...

Full description

Bibliographic Details
Main Author: Adjoyan, Seza
Other Authors: Montpellier
Language:en
Published: 2016
Subjects:
Online Access:http://www.theses.fr/2016MONTS022/document
Description
Summary:L'Orienté Service (SOA) est un paradigme de conception qui facilite la construction d’applications extensibles et reconfigurables basées sur des artefacts réutilisables qui sont les services. Ceux-ci sont structurés via des interfaces bien définies et publiables et qui peuvent être dynamiquement découvertes.Beaucoup d’approches ont été proposées dans la littérature pour la réingénierie d’applications existantes développées dans des paradigmes pré-services, principalement l’orienté objet, vers SOA. L’objectif est de permettre de sauvegarder la valeur métier de ces d’applications tout en leur permettant de bénéficier des avantages de SOA. Le problème est que ces approches s'appuient sur des critères ad-hoc pour identifier correctement des services dans le code source des applications existantes.Par ailleurs, l'une des caractéristiques les plus distinctives d'une application orientée service est sa capacité de se reconfigurer dynamiquement et d'adapter son comportement en fonction de son contexte d'exécution. Cependant, dans les langages de description d'architecture (ADL) existants dont l’aspect de reconfiguration et pris en compte, les règles de reconfiguration sont représentées d'une manière ad-hoc; en général, elles ne sont pas modélisées d'une manière explicite mais enfouillées dans la description de l'architecture. D'une part, ceci engendre une difficulté de la gestion de la reconfiguration dynamique au niveau de l'architecture et d’autre part, la traçabilité de la description de la reconfiguration dynamique à travers les différents niveaux d'abstraction est difficile à représenter et à gérer.Afin de surmonter les problèmes précédents, nous proposons dans le cadre de cette thèse deux contributions. D'abord, nous proposons une approche d'identification de services basée sur un modèle de qualité où les caractéristiques des services sont étudiées, raffinées et réifiées en une fonction que nous utilisons pour mesurer la validité sémantique de ces services. La deuxième contribution consiste en une proposition d'un langage de description d'architecture orientée service (ADL) qui intègre la description de la variabilité architecturale. Dans cette ADL les services qui peuvent constituer l’architecture, les éléments de contexte dont les changements d’état sont à l’origine des changements architecturaux, les variantes des éléments architecturaux sélectionnées en fonction des états des éléments de contexte et le comportement architectural dynamique sont ainsi spécifiés de façon modulaire. === Service Oriented Architecture (SOA) is an architectural design paradigm which facilitates building and composing flexible, extensible and reusable service-oriented assets. These latter are encapsulated behind well-defined and published interfaces that can be dynamically discovered by third-party services. Before the advent of SOA, several software systems were developed using older technologies. Many of these systems still afford a business value, however they suffer from evolution and maintenance problems. It is advantageous to modernize those software systems towards service-based ones. In this sense, several re-engineering techniques propose migrating object-oriented applications towards SOA. Nonetheless, these approaches rely on ad-hoc criteria to correctly identify services in object-oriented legacy source code.Besides, one of the most distinguishing features of a service-oriented application is the ability to dynamically reconfigure and adjust its behavior to cope with changing environment during execution. However, in existing architecture description languages handling this aspect, reconfiguration rules are represented in an ad-hoc manner; reconfiguration scenarios are often implicit. This fact hinders a full management of dynamic reconfiguration at architecture level. Moreover, it constitutes a challenge to trace dynamic reconfiguration description/management at different levels of abstraction.In order to overcome the aforementioned problems, our contributions are presented in two axes: First, in the context of migrating legacy software towards SOA, we propose a service identification approach based on a quality measurement model, where service characteristics are considered, refined to measurable metrics in order to measure the semantic correctness of identified services. The second axis is dedicated to an Architecture Description Language (ADL) proposition that describes a variant-rich service-based architecture. In this modular ADL, dynamic reconfigurations are specified at architecture level. Moreover, the description is enriched with context and variability information, in order to enable a variability-based self-reconfiguration of architecture in response to context changes at runtime.