• Aucun résultat trouvé

Le rôle des architectures orientées services dans le Cloud

3.4 Virtualisation

3.4.1 Le rôle des architectures orientées services dans le Cloud

L’Architecture Orientée Services (SOA) [53] est un concept introduit vers la fin des années 90, avec la description de Jini18 qui est un environnement de découverte dyna-mique et d’utilisation des services sur un réseau. Cette architecture est vite devenue un référentielle majeur en terme d’intégration et d’architecture dans le domaine de l’infor-matique hétérogène. Les premières tentatives, telles que CORBA et RMI [54], proposées pour assurer l’interopérabilité des systèmes d’information hétérogènes ont été vite délais-sées à cause de leurs nombreux inconvénients dont l’effort considérable que doit fournir

17. Babcock écrit « C’est la virtualisation qui nous fait apparaître les serveurs plus grands qu’ils ne le sont vraiment »

18. La technologie Jini est une architecture utilisée pour la construction des systèmes à partir d’objets et de réseau

les développeurs pour assurer cette interopérabilité. Le modèle SOA a été popularisé avec des standards comme les services Web dans l’e-commerce. Deux types de services peuvent être distingués, à savoir :

— Les services Web étendus : leurs succès s’est construit autour de trois standard, à savoir : (i) SOAP, pour la communication, (ii) WSDL, pour la description et (iii) UDDI pour la recherche. Les messages échangés entre le client et son fournisseur sont basé sur XML.

— Les service Web Restfull est un style architectural permettant d’identifier chaque ressource d’un manière unique. Le format d’échange des messages entre le client et le fournisseur n’est pas basé forcément sur XML.

Les Architectures Orientées Service (SOA) ont permis de tourner les applications vers le métier de l’entreprise et d’accroître la réutilisation des composants. Cependant, certains projet SOA peuvent être complexes mais il n’en demeure pas moins que ces architectures apportent aux systèmes d’information une plus grande agilité. Par conséquent, une en-treprise qui doit par exemple développer une nouvelle application peut s’appuyer sur l’existant ce qui lui permet de se comporter de manière agile pour répondre rapidement aux changements métiers.

En outre, les entreprises doivent capitaliser sur leurs investissements applicatifs et d’infrastructures existantes, tout en privilégiant une architecture permettant une évolution du métier.

Parmi les nombreux avantages de l’utilisation d’une Architecture Orientée Service nous pouvons citer :

1. le couplage faible ;

2. une meilleure tolérance aux pannes ; 3. de plus grandes possibilités d’évolution ; 4. une facilité de maintenance ;

5. la possibilité de réutiliser les composants ; 6. la dynamicité ;

7. l’interopérabilité ;

8. et la composition de services web.

L’architecture orientée service a joué un rôle important dans l’émergence du Cloud. En effet, l’infrastructure informatique des entreprises se compose d’un ensemble hétérogène de systèmes d’exploitation, d’applications, de plateformes, etc. C’est l’utilisation de ce

type d’architecture qui permet aux entreprises de répondre rapidement aux changements du métier.

3.5 Conclusion

Nous avons présenté dans ce chapitre le paradigme du Cloud. Un paradigme relative-ment récent qui s’appuie sur un modèle économique basé sur la consommation réelle des utilisateurs. Un paradigme vite adopté par de nombreuses entreprises pour exécuter leurs applications.

Cependant, le Cloud Computing engendre des problèmes de différentes nature tels que les problèmes de sécurité, les risques liés à la confidentialité et la disponibilité des données ainsi que le problème du choix entre plusieurs fournisseurs afin de satisfaire au mieux les utilisateurs. C’est ce dernier point qui constitue la principale motivation des travaux présentés dans cette thèse. Plus précisément, nous nous intéressons au problème d’allocation de ressources et d’ordonnancement de tâches des workflow en utilisant des ressources déployées dans le Cloud. Nous commençons par présenter dans le chapitre suivant un état de l’art sur le problème d’allocation de ressource et d’ordonnancement de tâches des processus en utilisant des ressources réparties et puis nous présentons nos contributions.

Allocation de ressources et

ordonnancement de tâches

Sommaire

4.1 Introduction . . . 60 4.2 Concepts de base . . . 61 4.2.1 Optimisation multi-objectifs . . . 61 4.3 Classification des applications parallèles . . . 65 4.3.1 Types d’applications parallèles . . . 68 4.4 État de l’art sur l’ordonnancement des processus . . . 69 4.4.1 Ordonnancement de tâches indépendantes . . . 70 4.4.2 Ordonnancement de tâches dépendantes . . . 71 4.4.3 Ordonnancement d’applications concurrentes . . . 73 4.5 Synthèse . . . 73

4.1 Introduction

L’un des avantages du Cloud computing réside dans la possibilité offerte aux utilisa-teurs de réaliser des calculs parallèles. Ces derniers consistent à diviser une application en tâches élémentaires réparties sur plusieurs ressources pouvant s’opérer simultanément. L’objectif de cette répartition est l’amélioration des performances des applications ainsi exécutées comparées à une exécution séquentielle.

Par ailleurs, les tâches constituant les applications réparties peuvent être liées par des contraintes telles que les contraintes temporelles et/ou de données. Par conséquent, la gestion optimale des ressources disponibles et l’ordonnancement des tâches sont des aspects fondamentaux dans la parallélisation des applications. L’allocation de ressources et l’ordonnancement des tâches d’une application consistent à déterminer les ressources à affecter à chacune de ces tâches et l’ordre dans lequel elles doivent être exécutées.

Les problèmes d’allocation de ressources et d’ordonnancement de tâches peuvent être classés en deux catégories principales, à savoir [136][137][138][139][140][141][142] :

1. Les problèmes d’ordonnancement hors ligne (off-line) pour lesquels les dates d’arri-vées des tâches sont connues avant l’allocation des ressources et l’ordonnancement des tâches.

2. Les problème d’ordonnancement en ligne (online) pour lesquels les dates d’arrivée des tâches constituant l’application ne sont pas connues à l’avance.

Lors de la conception d’un algorithme d’allocation de ressources et d’ordonnancement de tâches, souvent un critère d’optimisation est pris en compte. Il s’agit généralement du temps d’exécution de l’application en question en utilisant une plate-forme de ressources donnée. Ce critère est aussi appelé le makespan. D’autres critères peuvent être optimisés tels que [81][82][83][84][85] :

1. Le temps moyen d’exécution : ce critère est utilisé lorsque plusieurs utilisateurs accèdent de manière concurrente à un ensemble de ressources.

2. Le débit : ce critère est généralement utilisé lorsque un graphe de tâches est exécuté plusieurs fois ou lorsque l’on s’intéresse à un problème d’ordonnancement en ligne. 3. Le temps d’attente moyen : ce critère est utilisé pour l’ordonnancement d’un en-semble de tâches indépendantes provenant de plusieurs utilisateurs. Il correspond au temps moyen passé dans le système, par une tâche donnée, pour son accomplis-sement.

La suite de ce chapitre est organisé comme suit. La section suivante est consacrée à une brève introduction aux problèmes d’allocation de ressources et d’ordonnancement de tâches ainsi qu’à l’optimisation multi-objetifs. Une classification des applications parallèles est donnée par la Section 4.3. Nous exposerons dans la Section 4.4 les différents travaux sur l’ordonnancement d’applications parallèles. La Section 4.5 conclut le chapitre.