Université de Liège Faculté des Sciences Appliquées Institut Montefiore ETUDE DES FRAMEWORK DISTRIBUÉS DE GRILLES DE DONNÉES

Dimension: px
Commencer à balayer dès la page:

Download "Université de Liège Faculté des Sciences Appliquées Institut Montefiore ETUDE DES FRAMEWORK DISTRIBUÉS DE GRILLES DE DONNÉES"

Transcription

1 Université de Liège Faculté des Sciences Appliquées Institut Montefiore ETUDE DES FRAMEWORK DISTRIBUÉS DE GRILLES DE DONNÉES EN VUED UNE SOLUTION DE STOCKAGE ÉLASTIQUE DANS LE CLOUD En collaboration avec Rapport de stage Présenté par GLELE Louise-Marie Sous la direction de Guy Leduc Sabri Skhiri 1 er master en sciences informatique Année académique

2 REMERCIEMENTS Je tiens à remercier Ivan Frain et Sabri Skhiri, qui m ont suivie et conseillée tout au long de mon stage ; ainsi que tous les autres ingénieurs de l équipe Recherche et Développement d Euranova qui n ont pas hésité, à me prodiguer conseils et orientations à l occasion. Je remercie Mr Guy Leduc, mon responsable académique pour sa disponibilité, ses commentaires et ses conseils par rapport à ce stage. Je tiens à remercier tout particulièrement et à témoigner ma reconnaissance à toute l équipe d Euranova, pour l expérience pleine d intérêt qu elle m apermis de vivre durant ces semaines au sein de l entreprise.tous les membres de l équipe ont contribué, par leur accueil, leur disponibilité et leur bonne humeur, à rendre mon stage enrichissant et motivant.

3 TABLE DES MATIÈRES Introduction 1 Chapitre 1 Présentation du cadre de travail L entreprise d accueil Cadre et objectifs Organisation et fonctionnement Le service Recherche et Développement Objectifs du stage Chronologie du stage 4 Chapitre 2 Etat de l art Définition cloud computing Les bases de données dans le cloud 7 Chapitre 3 Etude comparative Des bases de données en mémoire avec une architecture "share nothing" Critères de classification des bases de données Communication entre les nœuds Approche CAP Gestion des transactions et propriétés ACID Modèle de données et langage de requêtes Réplication des données Algorithme de hachage cohérent Elasticité Modèle de persistance Tableau comparatif des bases en mémoire Distribution des données et des traitements Tibco ActiveSpaces Infinispan VoltDB Grille de comparaison Conclusion 22 Chapitre 4 Infinispan Cas d utilisation : la gestion de session HTTP Outils utilisés Mise en place de l application de gestion de session Méthodologie Description de la tâche MapReduce Résultats 31 Chapitre 5 Conclusion 33

4 5.1. Difficultés rencontrées Apports du stage Perspectives 34 Bibliographie 35

5 Introduction Le cloud computing (en français "informatique dans le nuage" ou "infonuagique") est un paradigme émergeant depuis quelques années. L un de ses principaux concepts est la fourniture de la technologie à la demande «as a service». La vision est d offrir à terme un service informatique disponible partout à la demande, et pour lequel l utilisateur ne paiera que pour ce qu il a consommé (un peu comme le service électrique aujourd hui). Cette technologie connait un succès croissant. En effet, plusieurs acteurs du secteur informatique parmi lesquels de grands noms comme IBM, Microsoft, Google, Amazon, Salesforce développent et proposent des technologies orientées cloud au public.les entreprises et organisations y font de plus en plus recours. Ainsi, 60% des 3000 directeurs des systèmes d informationinterrogés dans 71 pays à travers le monde prévoient d utiliser le Cloud Computing dans les années à venir (1). Les utilisateurs privés s en servent également, principalement pour la messagerie électronique, la gestion des images, le stockage et la sauvegarde de données, la gestion de la vidéo, et bien d autres applications en ligne (traitement de texte, jeux ). La capacité du cloud à fournir des services et ressources hautement disponibles et élastiques, et ce à la demande fait partie des principales raisons de son succès.ainsi, la question du maintien de ces propriétés pour les applications traitant de grandes quantités de données se pose. C est le cas, par exemple, des réseaux sociaux à succès comme facebook et twitter qui doivent faire face à d importants volumes de données, croissant de façon exponentielle. Ceci induit le besoin d une solution de stockage dans le cloud pouvant permettre de faire face à cette demande. Parmi les solutions existantes pour le stockage élastique de gros volumes de données dans le cloud, celle des grilles de données en mémoire a retenu l intérêt de la société Euranova, dans le cadre de notre stage. Les grilles de données utilisent la mémoire vive comme principal support de stockage et offrent entre autres propriétés, un faible temps de latence, une grande vitesse de traitement des requêtes et une grande élasticité.le stage que nous avons effectué à Euranova a consistédans un premier temps à étudier trois bases de données en mémoire (Tibco ActiveSpaces, Infinispan et VoltDB) et dans un second temps, à déployer l une de ces trois solutions : Infinispan. Après avoir présenté notre entreprise d accueil et un état de l art sur la question de l élasticité dans le cloud, nous aborderons notre étude comparative des trois bases en mémoire avant de finir par un cas d utilisation concret : le stockage de session d un serveur web dans une grille de données Infinispan et la mise en place d un traitement MapReduce sur ces données de session. 1

6 Chapitre 1 travail Présentation du cadre de Nous avons été accueilli pendant une trentaine de jours dans les locaux d Euranova pour notre stage.pendant cette période, avec l appui de l équipe en place, nous avons travaillé à analyser la technologie des grilles de données en mémoire dans le contexte du cloud computing L entreprise d accueil Euranova (2) est une entreprise du secteur informatique qui met au service de ses clients, de l expertise pour mener à bien leurs projets. L un des principaux objectifs de cette entreprise est de promouvoir la recherche et le développement et d être un centre de convergence des acteurs du monde la recherche et ceux du monde de l entreprise pour une meilleure interactivité Cadre et objectifs Euranovaa été fondée en 2008 par Eric Delacroix et Hervé Bath. Elle a connu une croissance significative depuis lors, et exerce aujourd hui ses activités dans le Benelux et le nord de la France. Elle compte dans son portefeuille de clients et de partenaires, des compagnies classées FORTUNE 500, des multinationales,et de jeunes entreprises. Elle dispose entre autres, d une expertise dans les technologies de temps réel, les technologies de traitement de gros volumes de données et privilégie les solutions flexibles. Elle intervient dans des domaines aussi variés que ceux de l industrie énergétique et pharmaceutique, ceux de la santé, des finances et des télécommunications. La mission de cette entreprise est d aider ses clients à trouver des solutions à leurs besoins présents et futurs en TICs(Technologies de l Information et de la Communication) et de contribuer à alimenter les talents dans le domaine de la recherche. Chez Euranova, il est mis en place un environnement qui place la connaissance au cœur d'un processus continu. La capitalisation et la diffusion de savoir étant un souci majeur,elle dispose d une plateforme de partage sur les sujets traités par ses employés, ses partenaires, ses clients et son réseau de manière générale. 2

7 Organisation et fonctionnement Les différents services offerts par Euranova s'appuient sur son organisation composée de deux équipes principales : L'équipe du «Service Management Office» se présente en première ligne de la relation avec les partenaires commerciaux pour l'établissement de l'offre de service. L'équipe du «Career Management Office», se charge du recrutement de personnes qualifiées et s assure de l'accomplissement dans la carrière de chaque collaborateur d Euranova. La principale activité d Euranova est le conseil. Pour ses clients, son métier est de leur apporter des services personnalisés. La prestation de service se fait sous différentes formes :le détachement de personnes, l accompagnement de projet et la réalisation de recherches en «back office». En outre, elle s occupe la gestion de centres de recherches indépendants à travers la collaboration avec des universités sur différents projets. Elle dispose également, à travers son département de Recherche et Développement, d un laboratoire pour la mise en place de nouveaux produits. L équipe directrice d Euranova se compose de : Eric Delacroix, co-fondateur ; Herve Bath, co-fondateur ; Sabri Skhiri Dit Gabouje, Directeur du département Recherche et Développement ; Fabien Depasse, Directeur. A cette équipe s ajoute un certain nombre de collaborateurs des départements "Gestion des ressources humaines" et "Recherche et Développement". Par l'action combinée des prestataires de service chez le client et des équipes de recherche interne, Euranova propose une approche très appliquée de la recherche Le service Recherche et Développement Euranova réinvestit 15% de son bénéfice annuel dans la recherche et le développement. L objectif est de participer au développement de technologies utiles, à travers une démarche globale d'innovation.en outre, cette entreprise a pris le parti de miser sur l'open source pour sa propre infrastructure et est impliqué dans divers projets open source afin de mettre en place les solutions dont elle a besoin. Nous avons effectué notre stage dans les bureaux de ce service, situés à Mont- Saint-Guibert, rue Emile Francqui. Pendant notre stage, nous avons eu l occasion d échanger avec les ingénieurs de ce département où le partage du savoir est vraiment au cœur des préoccupations. 3

8 1.2. Objectifs du stage Notre entreprise d accueil est dans une perpétuelle dynamique de découverte et d acquisition de nouvelles connaissances par rapport aux produits innovants dans les TICs. C est ainsi qu elle s est intéressée à la possibilité d utiliser les grilles de données en mémoire comme solution de stockage dans le cloud, pour gagner en performances et assurer l élasticité. Notre mission a principalement consisté à apporter des éléments d analyse permettant d évaluer cette possibilité à travers l étude comparative de trois bases de données, formant un échantillon assez représentatif de l offre actuelle. Nous l avons réalisé en deux volets : - La création d une grille de comparaison de ces bases de données en mémoire ; - L établissement d un Framework de déploiement d une de ces bases Chronologie du stage Notre stage s est déroulé en trois grandes phases : - Dans la première phase, nous avons réalisé un état de l art sur le cloud computing et sur le concept de l élasticité des bases de données sur le cloud ; - Dans une second phase nous avons comparé les bases de données Tibco ActiveSpace, Infinispan et VoltDB sur la base d une dizaine de critères ; - La dernière phase de notre stage a été la mise en place un Framework pour le déploiement d une grille de données distribuéeinfinispan et la création d une tâche MapReduce sur cette grille. Nous l avons réalisé à travers l implémentation d un cas d utilisation courant: le stockage et le traitement des informations de session d un serveur HTTP dans la grille. Le suivi de notre travail pendant le stage, se faisait essentiellement à travers la plateforme de partage de connaissances d Euranova.Ceci était appuyé par des rencontres périodiques organisés par l équipe de suivi du projet. 4

9 Chapitre 2 Etat de l art Avant toute autre tâche, nous avons commencé pour essayer d appréhender le concept de "cloud computing" et le fonctionnement de cette technologie. Puis nous avons étudié quelques caractéristiques des bases de données adaptées aux applications utilisant le cloud en mettant un accent particulier sur l élasticité Définition cloud computing "Le cloud computing, (3) consiste à déporter sur des serveurs distants, des traitements informatiques traditionnellement localisés sur des serveurs locaux ou sur le poste client de l'utilisateur"(4). Ses caractéristiques essentielles sont : l'élasticité: c est l'aptitude à modifier dynamiquement la quantité de ressources alloués en fonction de l'utilisation. La disponibilité : ellepermet d'assurer le fonctionnement des services sans interruption. La mise en commun des ressources: les ressources disponibles sont partagées entre les différents clients (serveurs, bases de données, messageries,puissance de traitement...). La virtualisation des contenants des ressources du cloud. L accessibilité : Le service est accessible partout et pour n'importe quel utilisateur désirant y souscrire. L'automatisation de la création et de la suppression des ressources. La facturation à l'utilisation (basée sur la consommation de puissance, de capacité de calcul et stockage,...) Le cloud garantit la disponibilité à la demande, la continuité et la qualité de l offre de services. Les principaux avantages de son utilisation sont une grande capacité à monter à l échelle, une grande fiabilité et des couts réduits. L'emplacement des données dans le nuage n'est pas porté à la connaissance du client. Celui-ci accède à l'environnement de travail dont il a besoin, sans se soucier de la complexité de déploiement. Quatre types de services sont proposés par les opérateurs de cloud : Software as a Service (SaaS) : Le cloud offre au client la possibilité de payer la consommation d une application sur la base du temps d'utilisation et non plus par l'achat de licences. L'utilisateur n'a plus besoin d'installer et de 5

10 maintenir l'application sur sa machine mais juste d'un terminal pour y accéder à travers le cloud.les suites bureautiques, les logiciels de gestion de photos et de vidéos en ligne en sont des exemples. Platform as a Service (PaaS) : Desoutils de développement en ligne et des environnements d'exécution pour les langages de haut niveau sont mis à la disposition des développeurs d applications. Cette solution leur permetd accéder à la demande, aux outils dont ils ont besoin, sans se préoccuper d acquérir les serveurs, le matériel, les licences de logiciels, les bases de données pour les applications qu ils développent. Quelques exemples sont Google App Engine, Microsoft Azure Services Platform, et ORACLE/AWS. 1 Infrastructure as a Service (IaaS) : Offre à l'utilisateur l accès à une infrastructure matérielle sur demande. Celui-ci peut créer son architecture et déployer ses propres applications (système d'exploitation, base de données,...). Ce service libère l entreprise de la nécessité de posséder (gérer, maintenir et contrôler) ses propres serveurs et autres infrastructures de traitement de données.des exemples sont Amazon Simple Storage Service (S3) et Amazon Elastic Compute Cloud (EC2) (4) Architecture de Cloud L architecture du cloud peut être illustrée par le schéma suivant : Schéma de l architecture du cloud Source : 6

11 Il y existe plusieurs modèles de déploiement des services de cloud : les clouds privés internes, gérés en interne par une entreprise pour ses besoins ; les clouds privés externes, dédiés aux besoins propres d'une seule entreprise, mais dont la gestion est externalisée chez un prestataire, les clouds publics, gérés par des entreprises spécialisées qui louent leurs services à d autres entreprises. Quelques grands acteurs de déploiement de cloud publics sont : - Google (suite Google Apps) ; - Amazon (Amazon Web): reconnue pour sa stabilité et le nombre considérable d applications qu elle héberge ; - Microsoft : avec BPOS (Business Productivity Online Suite) ; - Salesforce : ( Sales Cloud, Service Cloud et Chatter). Les clouds hybrides : l infrastructure se compose d'au moins deux clouds de type différents (privés ou public) et autonomes, qui sont liés par une technologie permettant la portabilité des données ou des applications. C'est une option qui permet à une entreprise de faire appel aux services d'un cloud public tout en gérant en interne les données sensibles. Le cloud offre donc un environnement d exécution pour les applications. Certaines de ces applications utilisent des bases de données. Quelles sont les caractéristiques attendues de ces dernières pour qu elles ne soient pas le nœud d étranglement de l architecture? 2.3. Les bases de données dans le cloud Certaines applications (réseau sociaux, sites de e-commerce ) utilisant le cloud font face au défi du BIG DATA 3. Cette appellation fait référence à des ensembles de données dont la taille (très grande), le taux de croissance (exponentiel) et la structure(non structurés ou semi structurés) rend inapproprié leur traitement au moyen des systèmes de gestion de bases de données relationnelles traditionnelles. Ces applications ont donc besoin des bases de données ayant des caractéristiques spécifiques pour pouvoir assurer la disponibilité et l'allocation des ressources à la demande. Les bases de données sur le cloud, en tant que service du cloud, et face au défi du BIG DATA devraient présenter les propriétés suivantes (5) (6): stockage distribué :Les données du cloud doivent pouvoir être partagées entre plusieurs nœuds d un cluster tout en assurant : - le partage automatique de charge entre les différents nœuds : Lorsqu'un nouveau nœud est ajouté à l'ensemble, cette propriété doit être conservée ; 3 7

12 - la distribution automatique de la charge d'un nœud défaillant sur les autres nœuds. Intégration native, de la capacité intrinsèque de traiter des requêtes sur de très grands ensembles de données Traitement distribué : Lorsqu un client demande un traitement impliquant plusieurs nœuds du cluster, il est préférable que le traitement soit effectué au niveau de chaque nœud impliqué et les résultats remontés vers le client, plutôt que dedéplacer l'ensemble des données pour un traitementlocal. Une solution a été apportée à ce problème par Google à travers le modèle de programmation MapReduce (7) utilisé aujourd'hui par plusieurs bases de données. MapReducepropose une architecture, capable de mettre facilement en œuvre la répartition du traitement de larges quantités de données entre plusieurs serveurs. Il a l'avantage de prendre en compte la localisation des données : c'est le cluster qui stocke la donnée qui se charge de son traitement.son principe de fonctionnement est le suivant : l utilisateur définit deux fonctions : une fonction "Map" et une fonction "Reduce" pour le traitement des données: - La fonction Map prend en entrée une paire Clé/Valeur et génère un ensemble de paires Clé/Valeur intermédiaires. Toutes les paires ayant la même clé sont envoyées en entrée à la fonction "Reduce". - La fonction Reduce prend en entrées les nouveaux ensembles Clé/Valeur afin de générer un ensemble plus réduit Le nœud qui reçoit la requête principale la découpe en sous problèmes qu il délègue à d autres nœuds (processus récursif). Chaque nœud responsable d un sous problème applique la fonction Map, puis renvoie les résultats vers son nœud parent qui applique la fonction Reduce. Les résultats sont ainsi remontés jusqu au nœud source. L'élasticité est l'une des propriétés essentielles du Cloud. Il s'agit de la capacité à monter et à descendre à l'échelle de manière dynamique sans entrainer réinitialisation ni perte de performance afin de pouvoir garantir la stabilité et la continuité du service utilisant le cloud. La problématique de l élasticité On peut définir l'élasticité de façon plus précise comme la capacité d'un système à maintenir ses performances lorsque des nœuds lui sont rajoutés ou retirés en plein fonctionnement. En particulier, un système serait parfaitement élastique si le temps qu'il met à répondre aux requêtes ne varie pas quand il est soumis aux modifications susmentionnées. Lorsqu'on ajoute ou qu'on retire des nœuds à un système il passe par plusieurs phases (6) (5) : - La phase d'attaque - la phase d'adaptation 8

13 - La phase de stabilisation On s'attend donc à ce qu'il y ait des modifications de temps de réponse à l'ajout ou au retrait d'un nœud. Mais ces modifications doivent être suffisamment réduites pour être imperceptibles ou peu perceptibles. Exemples de bases de données sur le cloud : Quelques bases de données utilisées pour le cloud sont : Les bases de données relationnelles distribuées : On regroupe sous ce terme, les SGBDR 4 adaptés au clusteret les solutions SQL-MR qui unissent un système SQL pur au concept de MapReduce. Exemples: MySQL cluster, AsterData Les bases NoSQL(8) : Ces bases de données ont abandonné le modèle relationnel et sont orientées vers un modèle de stockage Clé/Valeur. Elles permettent de stocker n'importe quel format de données mais offrent un langage de requêtes réduit. Exemples:MongoDB ; Cassandra ; Hadoop Les grilles de données en mémoire, auxquels nous allons nous intéresser dans la suite de ce document. 4 Système de Gestion des Bases de Données Relationnelles 9

14 Chapitre 3 Etude comparative Nous avons réalisé une étude portant sur trois bases de données : ActiveSpaces (9), Infinispan (10) et VoltDB (12). Le but de cette étude était de fournir une vision assez claire des fonctionnalités de ces bases pour déterminer quels besoins elles peuvent combler (en particulier, par rapport au cloud). Après avoir choisi les critères d analyse de ces bases, nous avons établi une grille de comparaison nous permettant de proposer des réponses à ces questions Des bases de données en mémoire avec une architecture "share nothing" Les bases de données en mémoire (In-memory database) (13) utilisent la mémoire vive de l ordinateur comme principal support de stockage (contrairement aux bases de données classiques qui utilisent les fichiers de disque). Les opérations d accès au disque étant ainsi éliminées, elles offrent les avantages suivants: Très grande vitesse de traitement des requêtes (elles sont donc adaptées aux applications pour lesquels le temps de réponse est critique) ; Utilisation réduite du CPU (car les coûts supplémentaires liés à la gestion des buffers, des emplacements des données en mémoire et sur disque est éliminé). Les bases de données que nous étudions sont des exemples de bases de données en mémoire. Certaines d entre elles, en plus d être en mémoire, sont des grilles de données. En outre elles ont toutes une architecture "share nothing" (14) Les grilles de données en mémoire(15) sont des bases de données distribuées apparaissant comme une mémoire virtuelle unique et partagée, dont les données sont intelligemment réparties (par un algorithme de hachage) entre les différentes instances participant à la grille, de façon à optimiser les accès. Il n existe pas de standard en ce qui concerne les grilles de données en mémoire à ce jour. Cependant, elles présentent des caractéristiques communes. Ainsi, chaque nœud de la grille assume la responsabilité de la part des données qui lui revient. Ceci permet d accélérer les traitements et de garantir des vitesses d exécution des requêtes encore plus élevées car la responsabilité de la gestion des données est répartie entre plusieurs serveurs (traitement distribué). Les nœuds peuvent être rajoutés ou retirés à la volée sans perturbation de service. Le schéma de données de la base est assez flexible et est orienté objet. Ces grilles de données ont donc une vitesse de traitement très élevée, un temps de latence réduit et une très grande capacité à monter à l'échelle. Ce sont généralement des systèmes prêts à l'emploi, pouvant se déployer dans des environnements hétérogènes, de façon automatique (auto détection des nœuds de la grille). Elles permettent de mettre en 10

15 place une architecture orientée événements ("event driven") : elles offrent un mécanisme de propagation des notifications dans le but d informer les clients de la base de données des diverses modifications, aussitôt qu elles surviennent. Une architecture "Share-nothing"(16)est une architecture distribuée dans laquelle chaque nœud est indépendant et autosuffisant. En particulier, chaque nœud possède une mémoire, des disques et des entrées/sorties propres. Ainsi, il n'y a pas de point de contention lié à la gestion d une quelconque ressource partagée. Les nœuds coopèrent et interagissent les uns avec les autres avec un protocole de communication spécifique. Cette architecture augmente la capacité de la base à monter à l échelle. Elle permet le stockage de grands volumes de données, et favorise l utilisation des techniques comme le parallélisme et le traitement distribué des requêtes. Cependant, les requêtes nécessitant des jointures de données de grandes tailles ou la réunion de données se trouvant sur des nœuds différents prennent plus de temps à recevoir une réponse (dépendent en partie du réseau de communication entre les nœuds).cette architecture s oppose aux architectures «shared memory» ou «shared disk» Critères de classification des bases de données Nous avons ciblé les critères suivants pour l analyse des bases de données. Pour chacun d entre eux, les valeurs rencontrées au cours de notre étude sont présentées Communication entre les nœuds Les nœuds composant ces bases distribuées, échangent des informations, non seulement au moment de la formation du cluster (arrivée, départ de nœuds) mais aussi pendant le traitement des différentes requêtes qui parviennent au cluster. Les protocoles de communications utilisés par ces bases de données en mémoire sont : Le multicast C'est un mécanisme utilisé pour la transmission de message entre un sousensemble d'hôtes d'un réseau appartenant au même groupe multicast. Chaque groupe est identifié par une adresse IP de multicast. Les membres du groupe écoutent à cette adresse, utilisée comme adresse de destination par un émetteur souhaitant leur transmettre des informations. Plusieurs protocoles utilisent ce mécanisme : PGM (Pragmatic General Multicast)(17) : Il s'agit d'un protocole de transport fiable pour le multicast qui permet au récepteur de détecter et gérer les pertes. C'est le récepteur qui a la responsabilité de la correction des données reçues. Ce protocole est approprié pour les échanges entre plusieurs sources et en direction de plusieurs récepteurs. 11

16 Jgroups(18): C'est un système fiable (pas de perte de messages) de multicast écrit dans le langage Java. Se basant sur le protocole IGMP, il offre plusieurs fonctionnalités, entre autre la création et destruction de groupes multicast ; l'abonnement et désabonnement de ces groupes ; la transmission de messages entre groupes. Dans le cadre de son utilisation avec Jboss et Infinispan les variantes suivantes sont proposées: Jboss-tcp : utilisation du protocole TCP pour le transport Jboss-udp : utilisation du protocole UCP pour le transport Jboss-ec2 : utilisation du protocole TCP pour le transport et de S3_pings pour la découverte des nœuds (au lieu de du multicast).s3_ping est utilisé entre les instances d Amazon S3 pour la découverte des nœuds. En effet, le trafic multicast est interdit entre les machines virtuelles d Amazon. La découverte se fait par l'intermédiaire d'un sceau commun où chacun enregistre les informations le concernant. Système de messagerie " Rendezvous de Tibco(19) : Il s'agit d'un protocole de transport propriétaire de Activespaces qui gère les échanges entre les processus de la grille. Il peut être utilisé pour remplacer PGM qui est le protocole utilisé par défaut. Les sockets TCP Chaque hôte est configuré avec des adresses IP et des numéros de port TCP qu'il utilise pour communiquer avec le reste du réseau. Chaque instance communique ses informations de connexion aux autres. Pendant la phase de mise en place du cluster, un ensemble de nœuds peut être désigné comme noyau central. Tous les autres nœuds s'enregistrent alors auprès de ces derniers, qui se chargent de la mise en place du cluster (diffuser la liste de toutes les instances à chacune des instances du cluster) Approche CAP Elle permet de définir les propriétés des systèmes de gestion des bases de données distribuées, sur la base du théorème CAP d Eric Brewer (20)(21). Ce dernier définit trois propriétés : Cohérence des données (Consistency/C) : La cohérence caractérise la capacité d une base à offrir une même version des données de la base à tous les utilisateurs après une mise à jour. Il existe plusieurs niveaux de cohérence en fonction de la capacité du système à satisfaire à ce critère. Nous en présenterons deux dans le cadre de notre étude : La cohérence séquentielle ou forte : garantit que chaque lecture d une donnée retourne la valeur mise à jour de cette donnée (c est-à-dire la valeur de la dernière écriture réussie et finie). La cohérence finale : Un système "finalement cohérent" garantit qu en 12

17 l absence de nouvelles mises à jour, toutes les réponses fournies par le système retourneront "finalement" sa valeur actualisée. Le niveau de cohérence indexé par ce théorème est donc la cohérence forte. Disponibilité (availability /A) : Le service doit toujours être disponible ; chaque requête envoyée à un nœud en production doit être traitée. Tolérance à la partition (partition-tolerance /P) : aucune défaillance autre que celle de la totalité de la base de données (cluster) ne peut entrainer le renvoie de réponses incorrectes aux utilisateurs. Donc tant qu'une partie du système fonctionne, les utilisateurs doivent toujours avoir accès à la totalité des données et ces données doivent être exactes. Le Théorème CAP ou théorème de Brewer spécifie que des trois propriétés précédentes, seules deux peuvent être satisfaites en même temps par une base de données. On distingue donc les bases de données : CA : cohérentes et hautement disponibles CP : cohérentes et tolérantes à la partition AP : hautement disponibles et tolérantes à la partition Gestion des transactions et propriétés ACID Une transaction 5 est un ensemble d'opérations effectuées comme une unité atomique d'accès à une base de données. Elle commence par le début de la transaction, suivi d'un ensemble d'opérations de lecture/écriture, puis d une fin de transaction. A la fin, elle est soit validée(commit), soit abandonnée (Rollback). Une transaction doit avoir les quatre propriétés suivantes pour être fiable: L Atomicité: Toute mise à jour de la base de données doit être atomique; les opérations qui la composent doivent être totalement achevées pour que la mise à jour soit validée. La Cohérence : les données dans la base après une transaction doivent être cohérentes (valides par rapport à l ensemble de la base et de ses contraintes d intégrité). L Isolation: Les différentes transactions sont isolées et ne peuvent interférer les unes sur les autres. Seul l état initial et l état final d une transaction sont accessibles aux autres transactions. La Durabilité : Une fois qu une transaction est réussie, ses résultats sont sauvegardés et ne doivent pas disparaître. Les données ne doivent pas être ramenées à leur état initial

18 Modèle de données et langage de requêtes Le modèle de données désigne la forme sous laquelle, les données sont stockées dans la base de données; la représentation qui sera adoptée pour ranger les informations dans la base. C est un choix très important car il détermine la richesse du langage de requêtes sur la base ainsi que d autres paramètres tels que l aisance dans la manipulation de la base de données. Le langage de requêtes d une base de données est un langage qui définit l ensemble des opérations qu il est possible d effectuer sur la base de données. Sa grammaire dépend de la structure des données dans la base. Le modèle relationnel Les informations dans la base de données sont structurées. La base est composée de tables représentant les entités et les relations entre elles. Chaque table est composé d un ensemble de lignes et de colonnes; les colonnes représentent les attributs de l entité et chaque ligne correspond à un tuple (ensemble ordonné des valeurs associées aux attributs d un élément du tableau). Les tables sont normalisées dans le but d éviter les redondances. Ce type de base de données propose un langage de requête riche (basé sur le SQL) permettant de faire des sélections, des jointures, des contrôles et d autres opérations complexes à travers plusieurs tables de la base. Le SQL (Structured Query Language), est un langage de définition, de manipulation et de contrôle des données d une base de données relationnelle. Le modèle Clé/Valeur La donnée est globalement stockée sous la forme d un couple clé/valeur. La valeur associée à une clé n est pas typée et peut être une simple chaîne de caractères ou un objet sérialisé, Cet absence de typage rend le langage de requêtes de données utilisé minimaliste (PUT, GET, DELETE). Il revient alors à l application interrogeant la base de données de développer les mécanismes plus poussés d extraction des données recherchées. Cette technologie relativement nouvelle n étant pas standardisée, les solutions proposées en matière de langage de requêtes varient d une base à l autre. Ainsi, chaque concepteur de base de données intègre différents outils pour offrir un langage de requêtes de base et parfois, des fonctionnalités supplémentaires afin faciliter la manipulation des données. L espace de tuples(22) Il s agit d un espace partagé où des collections de tuples sont rangées. L espace 14

19 de tuples est un paradigme pour le traitement parallèle ou distribué 6. Un tuple est conteneur pour des données inter-liées, rangées dans un ensemble de champs. Chaque champ est doté d un nom et d un type. Le tuple est comme une espèce de carte dans laquelle des champs peuvent être ajoutés ou retirés. Le schéma des tuples doit être définit avant l ajout des données et certains champs doivent être déclarés comme clé du tuple. Ce type de stockage est donc assez proche du stockage Clé/Valeur. Il offre de façon basique les requêtes PUT, GET, DELETE, TAKE, LOCK 7. Dans le cas d ActiveSpaces qui utilise ce modèle, des mécanismes complémentaires (itération, sélections et des filtrages (semblables au select 8 de SQL)) sont rendus possibles. Schéma d un espace de tuples Réplication des données La réplication de données consiste à maintenir plusieurs copies de l ensemble de données dans des instances différentes de la grille de données. Elle est caractérisée par un facteur de réplication qui détermine le nombre de duplicatas des données à conserver. Elle peut être synchrone ou asynchrone. Mode de réplication synchrone : aussi appelée réplication en temps réel. Chaque requête d écriture est exécutée sur l ensemble des clusters impliqués dans la réplication des données cibles avant la validation de la requête sur le serveur où la requête est exécutée. Ceci offre l avantage d avoir les données mises à jour en cas de défaillance mais se fait généralement au prix d une baisse de performances de la base. Mode de réplication asynchrone : les opérations de mise à jour sont effectuées sur un nœud qui assure la propagation ultérieure vers les autres instances Source : 8 Effectue des opérations de sélection de données sur plusieurs tables par projection. 9 Source : 15

20 en vue d une synchronisation. Les bases de données en mémoire utilisent la réplication comme mécanisme pour assurer la persistance des données dans la grille. L utilisateur a généralement la possibilité de configurer le facteur de réplication. Le choix de ce facteur constitue un compromis entre la disponibilité des données (plus il y a de copies, moins il y a de risques de pertes) et les performances du système Algorithme de hachage cohérent C'est un algorithme qui gère la répartition des données entre les différentes instances constituant la grille. Son rôle est de répartir les données de façon optimale entre les différents composants d un cluster. Il permet de suppléer aux carences des algorithmes de hachage classique (basés sur le nombre de ressources disponibles) qui doivent refaire totalement le partitionnement à chaque modification de la structure du cluster. Un algorithme de hachage cohérent organise la répartition des données de sorte qu'elle soit peu sensible à l ajout ou à la suppression dynamique d une nouvelle instance. Les données ainsi que les instances de la grille de données se voient attribuer un numéro qui est le résultat de la fonction de hachage commune. Chaque instance du cache se voit responsable des données qui ont un hash compris entre le sien et celui de l instance précédente. Ainsi en cas d ajout ou de retrait de nœuds, seul un sous ensemble des clés a besoin d être redistribué (soit M/N avec M, le nombre de clés et N, le nombre de nœuds). Schéma hachage cohérent Elasticité Nous l étudierons ici à travers les deux propriétés suivantes : Dynamisme : Fait référence à l absence de réinitialisation et d effets

21 collatéraux importants lors de l ajout ou du retrait de nœuds. Linéarité : On dira qu'un service est capable de monter en charge de manière linéaire si une augmentation de X% de ses ressources augmente ses performances de X%(X, étant une valeur quelconque) Modèle de persistance Pour les technologies utilisées, la mémoire vive constitue l espace de stockage principal des données. Par conséquent, en cas de défaillance de la grille, les données pourraient être perdues. La gestion de la persistance des données intervient pour prévenir les pertes de données en cas d incidents. Des différentes approches existantes, nous en présenterons deux dans le cadre de notre étude. Snapshotting: Une copie des données sur un support de stockage durable est réalisée à des instants donnés en vue d'une restitution ultérieure. Elle peut être effectuée à des intervalles de temps préconfigurés ou à chaque modification, suivant l'implémentation proposée par la grille de données. Un mécanisme complémentaire à cette approche est le «command logging». Command Logging : Le système tient un fichier de logs où sont enregistrées les commandes à chaque fois qu'elles sont évoquées. Ainsi en cas de défaillance, la base de données est totalement reconstituée à travers son historique. Hybride : Comme son nom l'indique, cette technologie combine le stockage de données en mémoire et le stockage sur disque offrant un compromis entre la performance (rapidité), le coût (un disque dur est moins cher que la mémoire vive) et la sécurité (les données sont sécurisées sur disque) Tableau comparatif des bases en mémoire Pour donner plus de granularité à notre analyse nous avons étudié l implémentation de la gestion du cluster au niveau de chacune de ces bases. Puis, sur la base de tous ces critères, nous avons construit une grille de comparaison Distribution des données et des traitements Nous nous attarderons ici sur la manière dont chaque base répartit les données entre les nœuds du cluster, puis à la gestion des traitements et des requêtes lorsqu elles impliquent plus d un nœud Tibco ActiveSpaces ActiveSpaces utilise un algorithme de hachage cohérent distribué pour la répartition des données entre les nœuds. Chaque nœud exécute cet algorithme pour déterminer le nœud qui va stocker la donnée de manière à garantir un partage 17

22 équitable des données entre les nœuds. L algorithme utilisé consomme des ressources mémoire fixes pour s exécuter quelque soit le nombre d entrées. Deux types de nœuds sont pris en compte par la grille de données: Ceux qui peuvent faire des requêtes dans l espace sans partager leurs ressources ("leechers") Ceux qui exploitent la base tout en y participant ("seeders") Les accès aux ressources peuvent être plus lents pour les "leechers" car ils ne bénéficient pas comme les "seeders" de la possibilité d avoir une partie des données en local. Les "Space Browsers" (23)sont des mécanismes complémentaires de cette grille pour étendre le langage de base d un espace de tuples et créer des applications élastiques. Ils offrent les possibilités suivantes : Itération sur un sous-ensemble (vue) des entrées stockées dans l espace : permet de récupérer en une commande un sous-ensemble de l espace ; semblable à la commande "select* from Space where " de SQL. Requêtes continues : Le programmeur a la possibilité de spécifier un intervalle de temps pendant lequel chaque nouvelle entrée dans la grille sera automatiquement fournie à son programme permettant d assurer un traitement en temps réel. L'utilisation d'un espace comme une file d attente distribuée : offre une interface pour copier (GET), retirer (TAKE) et gérer l accès concurrentiel (LOCK) aux données au fur et à mesure de leur introduction dans la grille. Ces fonctions permettent au programmeur d exploiter la grille comme une file de communication en mode message ("store-and-forward messaging queue") 11. Paradigmes de grilles de calcul tels que MapReduce : Du fait de la distribution équitable et de la réplication, chaque nœud gère une certaine quantité d informations. Il est possible de configurer les applications pour qu ils effectuent leur traitement: Localement (option SEEDED) En ayant comme portée tout l espace de stockage (option ALL) La création d un job MapReduce se fait en rajoutant des "SEEDERS" faisant des traitements avec la portée locale. La distribution du traitement est donc rendue transparente pour le programmeur qui développe son application comme si elle devait tourner en local. Lorsqu un utilisateur lance un traitement distribué, le traitement est réalisé localement par chaque machine stockant les données impliquées et les résultats renvoyés au nœud responsable de la requête. Ceci permet d assurer la colocation des données et du code de traitement afin d éviter les pertes de temps liées aux opérations de sérialisation, de transmission des données à travers le réseau suivie de la dé-sérialisation. La gestion de la tâche MapReduce peut se faire en créant un espace de contrôle dans la grille, chargée de coordonner les phases de "Map" et de " Reduce" de la tâche globale

23 Infinispan Infinispan offre plusieurs mécanismes de distribution des données entre les nœuds en fonction du mode d'utilisation. Il y en a essentiellement 4 modes qui sont : le mode "local" ; le mode "invalidation"; le mode "replication" et le mode "distribution". Nous nous intéresserons uniquement au dernier mode car c est celui qui convient à son utilisation comme une grille de données distribuée, aspect qui nous intéresse dans cette étude. Dans le mode "distribution", un algorithme de hachage cohérent est utilisé afin de déterminer l endroit où les données seront stockées. Le nombre de réplications de la donnée est configurable et est directement pris en compte par l algorithme de hachage. Ce dernier est déterministe quant à l emplacement des données dans la grille. Ainsi, une requête PUT fait appel à au plus n appels distants (n=nombre de réplicas) et une requête GET à au plus un appel distant (n appels et premier résultat retenu). Pour assurer un partage équitable des données sur les nœuds du cluster, la fonctionnalité de "nœuds virtuels" (virtual node) doit être rajoutée à l algorithme de hachage. Schéma de la distribution des données dans un cache infinispan 12 Infinispan offre deux modes d accès à la grille de données : Embedded : interface locale entre l application et la base de données. Dans ce mode, la colocation des données et du traitement est mise en œuvre. Remote : accès a la grille par l intermédiaire d un client (REST, memcached or Hot Rod). En outre, elle offre deux modèles de traitement distribué (24): Le modèle d exécution distribué simple (Simple distributed execution model) : Ce modèle gère la distribution du traitement en faisant appel à des

24 processus capables de s exécuter sur des machines virtuelles Java distantes et de prendre en entrée, les données de la grille Infinispan. Le modèle MapReduce : Il s agit d une adaptation du modèle MapReduce original de Google. Les tâches MapReduce dans Infinispan peuvent être implémentées à travers les quatre principaux composants suivants : "Mapper", "Reducer", "Collator" and "MapReduceTask" VoltDB Une base de données VoltDB étant composée des tables relationnelles, la distribution (25) des données entre les nœuds se fait par un partitionnement horizontal des tables sur la base d une colonne configurable par l utilisateur. Pour chaque ligne de la table, la valeur correspondante à cette colonne sert de clé et le contenu de la ligne correspond à la valeur. Ainsi chaque nœud se voit attribuer un sous-ensemble des lignes des tables de la base de données. Les enregistrements de même numéro de chaque table se retrouvent en général attribués au même nœud. Exemple : Dans une base de données possédant une table Clients et une table Commandes, ayant tous les deux une colonne client_id choisie pour réaliser les partitions, toutes les commandes d un utilisateur et ses enregistrement se trouvent localisés dans la même partition. Il est possible de choisir de ne pas partitionner certaines tables qui sont dès lors répliquées dans toutes les partitions. Cette pratique est utile pour les tables dont les données sont modifiées fréquemment afin de restreindre les opérations impliquant plusieurs nœuds. Lorsque qu un nœud est rajouté, il n est pris en compte par la distribution de données qu'après réinitialisation de la base de données. Partitionnement VoltDB 13 Les traitements (26) sur les données se font par l invocation des procédures stockées prévues pour chaque type de traitement. Lorsqu une requête est reçue, la

25 procédure permettant de la traiter est passée au nœud qui stocke la donnée. S il n y a qu un nœud impliqué dans le traitement, le reste du cluster est libéré pour pouvoir gérer d autres traitements en parallèle. Lorsqu une procédure fait appel à des données se trouvant sur des partitions multiples, un nœud joue le rôle de coordonnateur et gère le travail des autres nœuds, collecte les données et clôture la tâche. Cette procédure rend les transactions impliquant plusieurs partitions plus lentes. Il n existe pas de base de données VoltDB générique. Chaque déploiement est optimisé pour une application spécifique et est formé d un ensemble de schémas, de procédures stockées, d informations de partitionnement regroupées dans un catalogue: le "runtime catalog". Ce catalogue est chargé sur les différentes machines du cluster pour mettre en place la base de données distribuée Grille de comparaison Critères de comparaison Technologie TIBCO ActiveSpaces Grille de données en mémoire Infinispan (Grille de données) Grille de données en mémoire VoltDB Base de données en mémoire Licence Propriétaire Libre Versions libre et propriétaire PROTOCOLES DE COMMUNICATION DÉCOUVERTE DES NŒUDS Multicast PGM Jboss Non Sockets TCP Oui Non Oui Autre " Rendezvous Jboss(S3_Ping) Non Pendant requêtes Sockets TCP JGroups Sockets TCP Modèle de données Espace de tuples Clé/Valeur relationnel Modèle de requêtes PUT, GET, DELETE, TAKE, LOCK, LISTENNERS, BROWSERS PUT, GET, Basé sur SQL DELETE, SEARCH, LISTENNERS Approche CAP CP AP CA Gestion transactions Modèle cohérence des Oui (fonction native) Oui (optionnelle) Oui (fonction native) de Séquentielle Finalement Séquentielle 21

26 Réplication Synchrone Asynchrone Synchrone Asynchrone Hachage cohérent Oui Oui Non Elasticité Persistance données TRAITEMENT Colocation données traitement des et Dynamique Linéaire snapshot Dynamique Linéaire snapshot Hybrid Synchrone (local) Asynchrone (WAN) Linéaire Oui Oui Non Client/serveur Oui Oui Oui snapshot+ Command Logging API Java, C,.Net Java, REST Java, C++, PHP,.NET, Python, Ruby,HTTP/JSON plate-forme Linux, Windows JVM 6.0 Linux, Macintosh 3.4. Conclusion Les grilles de données en mémoire sont une technologie assez récente. Il n existe donc pas encore de standard, et chaque concepteur fait ses choix de développement. La plupart des produits étudiés ne sont pas encore totalement matures (notamment infinispan et VoltDB). Leur processus de développement suit son cours et certaines limitations actuelles sont provisoires et appelées à être corrigées au cours du processus de développement. Ces bases de données ont chacune leurs particularités, et tendent à résoudre efficacement un problème spécifique. De plus pour optimiser leurs potentialités, il existe différentes configurations selon l utilisation qu on souhaite en faire. Elles présentent néanmoins quelques caractéristiques communes liées à leur technologie : - Une très grande vitesse de traitement des requêtes: due au fait qu elles résident en mémoire et à des mécanismes complémentaires déployées par chacune d elle. - La capacité à monter en charge : elles offrent toutes, la possibilité de tourner sur un grand nombre d instances bien que les limites varient d une base à l autre. - Le traitement de l information en temps réel. ActiveSpaces et voltdb intègrent la gestion de transactions et garantissent les propriétés ACID et une grande disponibilité. L objectif principal de VoltDB est la gestion des transactions OLTP (Online 22

27 Transaction Processing) 14 à l échelle de l internet. C est un produit non encore mature qui présente quelques limitations. En l occurrence, elle n offre pas la capacité à monter et à descendre à l échelle de manière dynamique. De plus, les traitements distribués sur plusieurs nœuds sont sources de grandes pertes de performances. Cependant, c est une base relationnelle avec un langage proche du SQL, qui offre de très bonnes performances pour le traitement des transactions OLTP d une complexité moyenne 15. VoltDB est destinée aux applications qui requièrent la fiabilité, une grande disponibilité et des débits très élevés. Il s agit par exemple, des applications telles que les transactions financières, des flux d enregistrements des opérateurs de télécommunications, les jeux en ligne et les systèmes de distribution à base de capteurs. Elle peut également être utilisée pour les applications émergentes telles que la détection des fraudes, les plateformes "ad exchange" 16 numériques et les micros systèmes de transaction. D autre part Infinispan et ActiveSpaces étant toutes deux des grilles de données, elles présentent davantage de caractéristiques communes : - La capacité de monter à l échelle de façon dynamique et linéaire et de gérer de gros volumes de données, et des clusters de grande capacité (milliers de nœuds) ; - La gestion des événements et des notifications pour relayer vers les applications, les moindres changements survenus sur les données ; - L implémentation du traitement distribué (grille informatique) ; - L optimisation du traitement en parallèles et des accès concurrentiels à la base; contrairement à VoltDB qui nécessite la sérialisation de toutes les requêtes conduisant parfois à rendre la base temporairement indisponible pour les autres requêtes ; - La colocation des données et des traitements ; - La simplicité de déploiement pour les programmeurs, contrairement à VoltDB qui laisse au programmeur le soin de gérer les fonctionnalités complexes liées au traitement distribué. - Des outils avancés et conviviaux d administration Ces grilles de données peuvent être utilisées dans les conditions suivantes : ActiveSpaces : Sa configuration optimale dépend de paramètres comme: la taille des données à traiter, la fréquence relative des mises à jour et de lecture, l importance relative de la mise à jour par rapport à la cohérence absolue des données. Elle peut notamment être utilisée : 14 le traitement transactionnel en ligne : un type d'application informatique qui sert à effectuer des transactions en temps réel «On appelle «plateforme ad exchange» une plateforme virtuelle automatisée qui met en relation directe les acheteurs et vendeurs de publicité sur Internet, autour d un prix et/ou d un espace variables.»(27) 23

28 - Comme un cache de données distribuée, dont la taille est l agrégation des mémoires des nœuds participant à l espace ; - Pour le Stockage opérationnel de données en mémoire : Cette option donne la possibilité de déployer un espace de stockage de données nécessitant un traitement en "temps réel", qui gère l agrégation de données provenant de sources diverses, tout en offrant une grande vitesse de traitement. - Grille de calcul : utilisation de plusieurs machines pour résoudre un problème informatique complexe de grande taille. Le problème peut être découpé en pièces plus réduites exécutés en parallèle entre plusieurs machines. Ces fonctionnalités combinées permettent de faire du traitement distribué sur des données, en temps réel avec de très bonnes performances. Des exemples concrets d utilisation de cette grille sont : La gestion de vols (y compris les itinéraires, les tarifs et la disponibilité des données) ; La gestion de session pour les sites Web de commerce électronique (personnalisations des clients, gestion de paniers d'achats, ) ; La gestion des flux des marchés financiers (sessions actives de surveillance des millions d'événements chaque jour pour déceler les opportunités et les risques et d'agir sur eux en temps réel). Infinispan : Il y a trois principaux scénarios d exploitation d Infinispan : Cache de données local : Peut être exploitée comme un simple cache de données traditionnel (utilisé en amont d un dispositif de stockage traditionnel comme une base de données) en vue d une amélioration des performances (éviter les goulots d étranglement). Appropriée pour les dispositifs très sollicités en lecture d une base de données. Cache de données distribué : Répond au besoin d un accès rapide avec une faible latence pour les applications sensible au temps de traitement qu on retrouve dans les secteurs comme la finance, les télécommunications et le e- commerce. Outil pour la mise en place d un cluster : Utilisée pour le déploiement d un cluster pour une base de données, une architecture logicielle, ou un serveur afin de garantir une grande disponibilité. La gestion de l état du cluster est reléguée à Infinispan ce qui allège la tâche du programmeur d une part et assure l élasticité d autre part. Les serveurs d applications populaires et les conteneurs de servlets stoquent les sessions HTTP dans Infinispan par exemple. Elle peut être également utilisée comme base de données pour le cloud. 24

29 Chapitre 4 Infinispan Après avoir découvert les potentialités des grilles de données en mémoire, nous nous sommes penchés sur une implémentation concrète de cette technologie. Nous avons travaillé avec Infinispan qui est un produit libre, ce qui est non seulement conforme aux choix d Euranova mais qui en outre en facilite l accès. Nous avons dans un premier temps, étudié le procédé de déploiement de Infinispan. Puis pour montrer une utilisation concrète, nous avons choisi de nous intéresser au stockage et au traitement des informations d une session HTTP dans Infinispan. En effet, de notre analyse, il ressort que l une des fonctionnalités des grilles étudiées (et de Infinispan en particulier) est le stockage et le traitement de grands volumes de données en temps réel. D autre part, l une des utilisations les plus courantes de ces grilles est la gestion de session HTTP. Ce cas d utilisation se prête donc bien à l évaluation des performances et des apports annoncés par ces grilles de données Cas d utilisation : la gestion de session HTTP La gestion de session permet de bien évaluer qu une grille de données présente les propriétés attendues des services du cloud en particulier l élasticité. En effet, il peut arriver qu un site web soit confronté à une demande imprévisible nécessitant une montée à l échelle effective pour pouvoir assurer la continuité de service. Prenons l'exemple de Roland Garros en Tous les records d affluence de son site Web officiel ont été battus avec 9,3 millions de visiteurs uniques qui se sont connectés tout au long du tournoi, pour un total de plus de 333 millions de pages vues (1). Nous avons choisi, d implémenter le stockage des données de session HTTP dans Infinispan et de programmer une tâche MapReduce qui donnera la page web la plus visitée du site. C est une fonctionnalité utilisée par exemple, par les sites qui offrent des espaces de publicité aux annonceurs, afin de pouvoir surenchérir sur une page qui, a un moment donné, connait une hausse d audience significative. Une session 17 identifie un client se connectant à un site web. C est une connexion à durée limitée, représentée de façon unique, reliant un serveur à un utilisateur et permettant d avoir, par exemple, un historique des requêtes et des pages qu il a visitées. La gestion de session implique l ajout de mécanismes complémentaires au protocole HTTP 18. En effet, celui-ci étant un protocole non connecté, chaque requête est traitée indépendamment des autres (lorsque le client HyperText Transfer Protocol 25

30 initie une requête, le serveur la traite, retourne la page demandée puis ferme la connexion). Plusieurs technologies fonctionnant du côté du serveur web permettent de réaliser cela. Notre choix s est porté sur les servlets. Ce sont des programmes écrits en java gérés par un conteneur de servlets, intégré dans un serveur d applications interagissant avec le serveur Web. Le processus de gestion de session que nous avons implémenté peut être schématisé comme suit (27) : Echange web dynamique avec des servlets 19 1) Le client émet une requête pour demander une ressource au serveur en spécifiant une URL (Uniform Resource Locator) 20, par exemple, Il s'agit d'une application répondant à l'adresse Home sur le serveur euranova.eu. 2) C'est le serveur web qui traite toutes les requêtes HTTP entrantes, qu'elles demandent une ressource statique ou dynamique. Mais il ne sait répondre qu'aux requêtes visant des ressources statiques. 3) Si le serveur HTTP s'aperçoit que la requête reçue est destinée au conteneur de servlets, il la lui transmet. Les deux serveurs sont reliés par un canal, nommé connecteur. 4) Le conteneur de servlets reçoit la requête à son tour. Il exécute donc le morceau d'application (la Servlet) auquel est destinée la requête, en fonction de l'url. La Servlet est invoquée, et le serveur lui fournit notamment deux objets Java 19 Source: Université Paris-Est Marne-la-Vallée 20 Format de nommage utilisé pour désigner une ressource sur Internet 26

31 exploitables : un représentant la requête, l'autre représentant la réponse. La Servlet peut dès lors, générer la réponse à la demande. Cela peut passer par des échanges une source de données, comme INFINISPAN (4' sur le schéma). 5) Une fois sa réponse générée, le serveur d'applications la renvoie, par le connecteur, au serveur web. 6) La réponse est dorénavant du simple HTML, compréhensible par un navigateur. Le serveur HTTP peut donc la retourner au client. Les composants de l application que nous avons mis en place sont donc, outre la grille de données Infinispan, un serveur web et un conteneur de servlets Outils utilisés Nous nous sommes appropriés les outils suivant dans le processus de déploiement de notre application : Maven(28) Maven est essentiellement un outil de gestion et de compréhension de projet, largement utilisé dans le monde professionnel de développement en Java. Il nous a été recommandé pour réaliser notre travail. Nous l avons intégré à notre IDE, Eclipse, et utilisé le couple "Eclipse-Maven"pour notre développement. Maven permet d'automatiser la gestion de projets Java. Il est conçu pour supprimer les tâches difficiles du processus du déploiement d'applications. Il utilise une approche déclarative, où le contenu et la structure du projet sont décrits, plutôt qu'une approche par tâche utilisée par exemple par Ant 21 ou les fichiers make 22 traditionnels. De plus, il est plus simple à déployer qu Ant et offre plus de fonctionnalités et une plus grande interopérabilité. Il permet de mettre en place des standards de développements au niveau d'une société et réduit le temps nécessaire pour écrire et maintenir les scripts de déploiement d applications. Il offre principalement les fonctionnalités suivantes : - Compilation et déploiement des applications Java (JAR, WAR) ; - Gestion des librairies requises par l'application ; - Exécution des tests unitaires ; - Génération des documentations du projet (site web, pdf, Latex) ; - Intégration dans différents IDE (Eclipse, JBulder) ; La description d'un projet Maven se fait dans un fichier XML situé à la racine du projet : le fichier pom.xml (POM pour Project Object Model). Il contient toutes les informations permettant de gérer le cycle de vie du projet. 21 Outil de déploiement d application, utilisé pour automatiser les tâches répétitives réalisées tout au long d un projet 22 Outil permettant d automatiser le compilation de programmes 27

32 Eclipse et maven : Il existe un plugin d éclipse (m2eclipse) permettant d importer et de gérer à partir d Eclipse (qui utilise Ant par défaut) un projet créé avec Maven. Jetty(29)(30) Jetty est un paquet contenant un serveur web, un client web et un moteur de servlets/jsp. Très léger, il est entièrement écrit en Java. C est un logiciel libre intégré dans nombreux serveurs d'application (Geronimo, JBoss, JOnAS, et bien d autres 23 ). Il permet de déployer une application Web sans devoir installer un serveur séparément. Il peut être embarqué dans une application ou déployé comme une application web standard. Maven et Jetty: Il existe un plug-in jetty pour Maven qui peut être rajouté à n importe quel projet d application Web. Ainsi, il peut être utilisé commet outil de test. Le choix de jetty nous a permis de déployer Infinispan en mode embarqué ("embedded") Mise en place de l application de gestion de session Méthodologie Les grandes étapes de la création de l application sont les suivantes : Configuration de la grille de données distribuée Infinispan(31) : Nous avons identifié et documenté la manière dont une grille de données Infinispan doit être configurée. Le principal composant à installer est le noyau, qui permet de faire les opérations de base sur la grille. Plusieurs packages peuvent être utilisés pour étendre ces fonctionnalités. Dans cette rubrique, il s est agit ici principalement, de configurer la communication entre les nœuds (fichier jgroups.xml), les propriétés du cluster et de chaque nœud (fichier node.xml) afin qu ils soient conformes à notre choix de déploiement. Définition du format des données de session(31) : Nous avons utilisé la classe «InfinispanSessionData» pour définir la structure des données de session. Liste des attributs stockés dans InfinispanSessionData est : - l identifiant de session (_id)

33 - la date et l heure d accès en milliseconds( _accessed;) - La date et l heure du dernier accès(_lastaccessed); - la période d inactivité ( _maxidlems); - le cookie associé à la session : (_cookieset); - La date et l heure de création (_created); - Le temps à l issu duquel la session est expiré (_expirytime); - Les attributs de la session( _attributes) : c est un objet de type Map qui peut être personnalisé. Nous l avons configuré, de sorte que sa clé corresponde aux URLs visitées par le client, et sa valeur, au nombre de fois où l utilisateur a visité une même URL pendant sa session. Nous avons exploité principalement l id et les attributs de session de cette structure. Création d un manager de session (31) : Cet objet est chargé de d adapter les fonctions du gestionnaire de session 24 standard à notre application. Le gestionnaire de session est responsable de la gestion du cycle de vie d une session. Création de servlets pour : la mise à jour des informations de session et l affichage des pages web: L application se charge d identifier les différentes sessions des utilisateurs se connectant aux pages qu il gère et de rajouter la page visitée à leur information de session. Les informations de session sont stockées dans le cache sous la forme d un couple sessionid-objet InfinispanSessionData, telle que la clé est l identifiant de session et la valeur, l objet InfinispanSessionData associé à cet identifiant. le lancement de la tâche MapReduce : Cette application lance une tâche MapReduce dès que la page à laquelle elle est rattachée est demandée. Configuration du serveur et du conteneur de servlets Jetty : Nous avons utilisé le serveur en mode embarqué en rajoutant les plugins nécessaires à notre projet. Notre application se charge d instancier la grille Infinispan, de configurer le serveur Jetty avec le contexte, les connections et les servlets gérants les différentes pages du site web, et de démarrer le serveur jetty

34 Création d une seconde instance: Nous avons créé une autre instance de la grille de données tournant dans un processus séparé. Au démarrage de cette instance, elle forme un cluster avec l instance lancée par Jetty. Création d un programme de remplissage du cache : Ce programme se charge de générer les données de sessions et de mettre à jour la grille à partir de ces informations. Nous l avons mis en place pour tester le traitement de la tâche MapReduce en cas de montée de charge. Cluster TACHE MAPREDUCE Lancement Instance Infinispan Résultats Instance Infinispan Création et initialisation Demande traitement Résultats Jetty Schéma récapitulatif du traitement 30

35 Description de la tâche MapReduce Nous avons implémenté la tâche à travers les trois sous-tâches composant l interface MapReduce de Infinispan : 1. La tâche Map : Récupération des URLs visitées sur l ensemble des sessions (mapper) 2. La tâche Reduce : fait le décompte du nombre de visites reçues par URL (reducer) 3. Tous ces résultats sont envoyés à un nœud unique («collator») qui applique un algorithme pour déterminer la page(s) la (les) plus visitées (page ayant le nombre de visites le plus élevé (collator)) Résultats Après démarrage du serveur Jetty, une instance d Infinispan est lancée et à chaque fois qu une page web est demandée, la grille Infinispan est mise à jour par rapport aux informations de session du client qui se connecte. Le contenu de notre site Web provient du site d Euranova. Démarrage du serveur Jetty et Infinispan Une seconde instance d Infinispan est lancée avec un programme qui met à jour la grille de façon continue sur une certaine période : 31

36 Chaque fois que la page "stats" du site web est demandée, la tâche MapReduce est lancée et la page la plus visitée est affichée. Si plusieurs pages ont le même taux de visites, elles sont toutes affichées. 32

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE Mémoires 2010-2011 www.euranova.eu MÉMOIRES ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE Contexte : Aujourd hui la plupart des serveurs d application JEE utilise des niveaux de cache L1

Plus en détail

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON stephane.mouton@cetic.be

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON stephane.mouton@cetic.be Groupe de Discussion Big Data Aperçu des technologies et applications Stéphane MOUTON stephane.mouton@cetic.be Recherche appliquée et transfert technologique q Agréé «Centre Collectif de Recherche» par

Plus en détail

Hébergement MMI SEMESTRE 4

Hébergement MMI SEMESTRE 4 Hébergement MMI SEMESTRE 4 24/03/2015 Hébergement pour le Web Serveurs Mutualités Serveurs Dédiés Serveurs VPS Auto-Hébergement Cloud Serveurs Mutualités Chaque Serveur héberge plusieurs sites Les ressources

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

AVRIL 2014. Au delà de Hadoop. Panorama des solutions NoSQL

AVRIL 2014. Au delà de Hadoop. Panorama des solutions NoSQL AVRIL 2014 Panorama des solutions NoSQL QUI SOMMES NOUS? Avril 2014 2 SMILE, EN QUELQUES CHIFFRES 1er INTÉGRATEUR EUROPÉEN DE SOLUTIONS OPEN SOURCE 3 4 NOS EXPERTISES ET NOS CONVICTIONS DANS NOS LIVRES

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution

Plus en détail

Hibernate vs. le Cloud Computing

Hibernate vs. le Cloud Computing Hibernate vs. le Cloud Computing Qui suis-je? Julien Dubois Co-auteur de «Spring par la pratique» Ancien de SpringSource Directeur du consulting chez Ippon Technologies Suivez-moi sur Twitter : @juliendubois

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2014) Marc Parizeau, Département de génie électrique et de génie informatique Plan Mégadonnées («big data») Architecture Hadoop distribution

Plus en détail

Le Cloud Computing et le SI : Offre et différentiateurs Microsoft

Le Cloud Computing et le SI : Offre et différentiateurs Microsoft Le Cloud Computing désigne ces giga-ressources matérielles et logicielles situées «dans les nuages» dans le sens où elles sont accessibles via Internet. Alors pourquoi recourir à ces centres serveurs en

Plus en détail

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 CNAM 2010-2011 Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 Déploiement d une application dans le cloud. 1. Cloud Computing en 2010 2. Offre EC2

Plus en détail

Cloud Computing : Généralités & Concepts de base

Cloud Computing : Généralités & Concepts de base Cloud Computing : Généralités & Concepts de base Les 24èmes journées de l UR-SETIT 22 Février 2015 Cette oeuvre, création, site ou texte est sous licence Creative Commons Attribution - Pas d Utilisation

Plus en détail

Technologie SDS (Software-Defined Storage) de DataCore

Technologie SDS (Software-Defined Storage) de DataCore Technologie SDS (Software-Defined Storage) de DataCore SANsymphony -V est notre solution phare de virtualisation du stockage, dans sa 10e génération. Déployée sur plus de 10000 sites clients, elle optimise

Plus en détail

Chapitre 4: Introduction au Cloud computing

Chapitre 4: Introduction au Cloud computing Virtualisation et Cloud Computing Chapitre 4: Introduction au Cloud computing L'évolution d'internet Virt. & Cloud 12/13 2 Définition Le cloud computing est une technologie permettant de délocaliser les

Plus en détail

FAMILLE EMC RECOVERPOINT

FAMILLE EMC RECOVERPOINT FAMILLE EMC RECOVERPOINT Solution économique de protection des données et de reprise après sinistre en local et à distance Avantages clés Optimiser la protection des données et la reprise après sinistre

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada MySQL (Administrateur) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser la productivité de votre

Plus en détail

La tête dans les nuages

La tête dans les nuages 19 novembre 2010 La tête dans les nuages Démystifier le "Cloud Computing" Jean Bernard, Directeur, Gestion des services Radialpoint SafeCare Inc. Au sujet de Radialpoint Radialpoint offre des solutions

Plus en détail

Programmation parallèle et distribuée (Master 1 Info 2015-2016)

Programmation parallèle et distribuée (Master 1 Info 2015-2016) Programmation parallèle et distribuée (Master 1 Info 2015-2016) Hadoop MapReduce et HDFS Note bibliographique : ce cours est largement inspiré par le cours de Benjamin Renaut (Tokidev SAS) Introduction

Plus en détail

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur) 1/23 2/23 Anne-Cécile Caron Master MIAGE - BDA 1er trimestre 2013-2014 I : Not Only SQL, ce n est pas du relationnel, et le contexte d utilisation n est donc pas celui des SGBDR. I Origine : recherche

Plus en détail

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE I N T E RS Y S T E M S INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE David Kaaret InterSystems Corporation INTERSySTEMS CAChé CoMME ALTERNATIvE AUx BASES de données RéSIdENTES

Plus en détail

«clustering» et «load balancing» avec Zope et ZEO

«clustering» et «load balancing» avec Zope et ZEO IN53 Printemps 2003 «clustering» et «load balancing» avec Zope et ZEO Professeur : M. Mignot Etudiants : Boureliou Sylvain et Meyer Pierre Sommaire Introduction...3 1. Présentation générale de ZEO...4

Plus en détail

Business & High Technology

Business & High Technology UNIVERSITE DE TUNIS INSTITUT SUPERIEUR DE GESTION DE TUNIS Département : Informatique Business & High Technology Chapitre 09 : CC : Cloud Computing Sommaire Introduction... 2 Définition... 2 Les différentes

Plus en détail

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft Avant-propos 1. Pourquoi ce livre? 11 2. À qui s adresse cet ouvrage? 12 3. Structure de l ouvrage 12 4. Remerciements 13 Le Cloud 1. Introduction 15 2. Présentation du concept 15 2.1 Historique de l'hébergement

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data. Big Data De la stratégie à la mise en oeuvre Description : La formation a pour objet de brosser sans concession le tableau du Big Data. Les participants repartiront de cette formation en ayant une vision

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

QU EST CE QUE LE CLOUD COMPUTING?

QU EST CE QUE LE CLOUD COMPUTING? En France, on parle plus volontiers d «informatique en nuage» 1 pour décrire ce concept. Apparu au début des années 2000, le cloud computing constitue une évolution majeure de l informatique d entreprise,

Plus en détail

Cloud Computing : forces et faiblesses

Cloud Computing : forces et faiblesses Chapitre 7 Cloud Computing : forces et faiblesses 1. Présentation Cloud Computing : forces et faiblesses Le monde informatique a connu une véritable révolution ces dernières années avec l'apparition d'un

Plus en détail

Optimisation des niveaux de service dans le cadre de déploiements de Clouds publics

Optimisation des niveaux de service dans le cadre de déploiements de Clouds publics LIVRE BLANC Optimisation des niveaux de service dans le cadre de déploiements de Clouds publics Clés pour une gestion efficace des services agility made possible Table des matières Résumé 3 Introduction

Plus en détail

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,

Plus en détail

Fiche Technique Windows Azure

Fiche Technique Windows Azure Le 25/03/2013 OBJECTIF VIRTUALISATION mathieuc@exakis.com EXAKIS NANTES Identification du document Titre Projet Date de création Date de modification Fiche Technique Objectif 25/03/2013 27/03/2013 Windows

Plus en détail

Veille Technologique. Cloud Computing

Veille Technologique. Cloud Computing Veille Technologique Cloud Computing INTRODUCTION La veille technologique ou veille numérique consiste à s'informer de façon systématique sur les techniques les plus récentes et surtout sur leur mise à

Plus en détail

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus Mr Romaric SAGBO Ministère de l'economie et des Finances (MEF), Bénin SWD Technologies Email : rask9@yahoo.fr Tél : +229 97217745

Plus en détail

Introduction à MapReduce/Hadoop et Spark

Introduction à MapReduce/Hadoop et Spark 1 / 36 Introduction à MapReduce/Hadoop et Spark Certificat Big Data Ludovic Denoyer et Sylvain Lamprier UPMC Plan 2 / 36 Contexte 3 / 36 Contexte 4 / 36 Data driven science: le 4e paradigme (Jim Gray -

Plus en détail

CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise

CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise Alors que les plates-formes PaaS (Platform as a Service) commencent à s imposer comme le modèle privilégié auprès des entreprises

Plus en détail

Cloud Computing Maîtrisez la plate-forme AWS - Amazon Web Services

Cloud Computing Maîtrisez la plate-forme AWS - Amazon Web Services Avant-propos 1. Amazon Web Services 11 2. Public concerné et pré-requis 13 3. Périmètre de l'ouvrage 14 4. Objectifs à atteindre 15 Le cloud computing 1. Présentation 17 1.1 Définition 17 1.2 Points forts

Plus en détail

Cloud Computing. Introduction. ! Explosion du nombre et du volume de données

Cloud Computing. Introduction. ! Explosion du nombre et du volume de données Cloud Computing Frédéric Desprez LIP ENS Lyon/INRIA Grenoble Rhône-Alpes EPI GRAAL 25/03/2010! Introduction La transparence d utilisation des grandes plates-formes distribuées est primordiale Il est moins

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Livre. blanc. Solution Hadoop d entreprise d EMC. Stockage NAS scale-out Isilon et Greenplum HD. Février 2012

Livre. blanc. Solution Hadoop d entreprise d EMC. Stockage NAS scale-out Isilon et Greenplum HD. Février 2012 Livre blanc Solution Hadoop d entreprise d EMC Stockage NAS scale-out Isilon et Greenplum HD Par Julie Lockner et Terri McClure, Analystes seniors Février 2012 Ce livre blanc d ESG, qui a été commandé

Plus en détail

Cartographie des solutions BigData

Cartographie des solutions BigData Cartographie des solutions BigData Panorama du marché et prospective 1 1 Solutions BigData Défi(s) pour les fournisseurs Quel marché Architectures Acteurs commerciaux Solutions alternatives 2 2 Quels Défis?

Plus en détail

Planifier la migration des applications d entreprise dans le nuage

Planifier la migration des applications d entreprise dans le nuage TM Planifier la migration des applications d entreprise dans le nuage Guide de vos options de migration : nuage privé et public, critères d évaluation des applications et meilleures pratiques de migration

Plus en détail

ARCHITECTURE ET SYSTÈMES D'EXPLOITATIONS

ARCHITECTURE ET SYSTÈMES D'EXPLOITATIONS ARCHITECTURE ET SYSTÈMES D'EXPLOITATIONS Axel François bureau C19 (2eme étage) cours disponibles en pdf sur : www.iut-arles.up.univ-mrs.fr/francois 1 PLAN En Cours : qu'est-ce qu'un ordinateur? à quoi

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU

Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris ArcGIS et le Cloud Gaëtan LAVENU Agenda Qu'attendent nos clients du Cloud Computing? Les solutions de Cloud ArcGIS dans le Cloud Quelles attendent

Plus en détail

Clients et agents Symantec NetBackup 7

Clients et agents Symantec NetBackup 7 Protection complète pour les informations stratégiques de l'entreprise Présentation Symantec NetBackup propose un choix complet de clients et d'agents innovants pour vous permettre d optimiser les performances

Plus en détail

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES FAMILLE EMC VPLEX Disponibilité continue et mobilité des données dans et entre les datacenters DISPONIBLITÉ CONTINUE ET MOBILITÉ DES DONNÉES DES APPLICATIONS CRITIQUES L infrastructure de stockage évolue

Plus en détail

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Fouillez facilement dans votre système Big Data. Olivier TAVARD Fouillez facilement dans votre système Big Data Olivier TAVARD A propos de moi : Cofondateur de la société France Labs Développeur (principalement Java) Formateur en technologies de moteurs de recherche

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

Symantec Backup Exec.cloud

Symantec Backup Exec.cloud Protection automatique, continue et sécurisée qui sauvegarde les données vers le cloud ou via une approche hybride combinant la sauvegarde sur site et dans le cloud. Fiche technique : Symantec.cloud Seulement

Plus en détail

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales Ecole des Hautes Etudes Commerciales HEC Alger Évolution des SGBDs par Amina GACEM Module Informatique 1ière Année Master Sciences Commerciales Evolution des SGBDs Pour toute remarque, question, commentaire

Plus en détail

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures Le stockage 1. Architecture de stockage disponible a. Stockage local ou centralisé L architecture de stockage à mettre en place est déterminante pour l évolutivité et la performance de la solution. Cet

Plus en détail

Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA?

Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA? Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA? Jean-Marc Pierson pierson@irit.fr IRIT, Université de Toulouse Agenda! Le Cloud! Le SOA! Quelle différence!?! Cloud et SOA! Mise en

Plus en détail

Bases de Données. Stella MARC-ZWECKER. stella@unistra.u-strasbg.fr. Maître de conférences Dpt. Informatique - UdS

Bases de Données. Stella MARC-ZWECKER. stella@unistra.u-strasbg.fr. Maître de conférences Dpt. Informatique - UdS Bases de Données Stella MARC-ZWECKER Maître de conférences Dpt. Informatique - UdS stella@unistra.u-strasbg.fr 1 Plan du cours 1. Introduction aux BD et aux SGBD Objectifs, fonctionnalités et évolutions

Plus en détail

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters FAMILLE EMC VPLEX Disponibilité continue et mobilité des données dans et entre les datacenters DISPONIBILITE CONTINUE ET MOBILITE DES DONNEES DES APPLICATIONS CRITIQUES L infrastructure de stockage évolue

Plus en détail

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

Licences Windows Server 2012 R2 dans le cadre de la virtualisation Résumé des licences en volume Licences Windows Server 2012 R2 dans le cadre de la virtualisation Ce résumé s'applique à tous les programmes de licences en volume Microsoft. Sommaire Synthèse... 2 Nouveautés

Plus en détail

Introduction aux applications réparties

Introduction aux applications réparties Introduction aux applications réparties Noël De Palma Projet SARDES INRIA Rhône-Alpes http://sardes.inrialpes.fr/~depalma Noel.depalma@inrialpes.fr Applications réparties Def : Application s exécutant

Plus en détail

Informatique en nuage Cloud Computing. G. Urvoy-Keller

Informatique en nuage Cloud Computing. G. Urvoy-Keller Informatique en nuage Cloud Computing G. Urvoy-Keller Sources de ce documents Next Stop, the cloud Objectifs de l'étude : Comprendre la popularité des déploiements de services basés sur des clouds Focus

Plus en détail

PostgreSQL. Formations. SQL avancé... 10. Calendrier... 18

PostgreSQL. Formations. SQL avancé... 10. Calendrier... 18 Formations PostgreSQL Catalogue 2015 PostgreSQL Administration... 4 PostgreSQL Avancé... 5 PostgreSQL Hot Standby... 6 PostgreSQL Performance... 7 PostgreSQL Sauvegardes... 8 SQL : Conception & Mise en

Plus en détail

Le NoSQL - Cassandra

Le NoSQL - Cassandra Le NoSQL - Cassandra Thèse Professionnelle Xavier MALETRAS 27/05/2012 Ce document présente la technologie NoSQL au travers de l utilisation du projet Cassandra. Il présente des situations ainsi que des

Plus en détail

Séminaire Partenaires Esri France 7-8 juin 2011 - Paris Cloud Computing Stratégie Esri

Séminaire Partenaires Esri France 7-8 juin 2011 - Paris Cloud Computing Stratégie Esri Séminaire Partenaires Esri France 7-8 juin 2011 - Paris Cloud Computing Stratégie Esri Gaëtan LAVENU Plan de la présentation Evolution des architectures SIG Qu'est ce que le Cloud Computing? ArcGIS et

Plus en détail

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2 186 Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2 L'utilisation des fonctionnalités de haute disponibilité intégrées aux applications, L'ajout de solutions tierces. 1.1 Windows Server

Plus en détail

Fonctions. Solution professionnelle pour le stockage de données, la synchronisation multi- plateformes et la collaboration

Fonctions. Solution professionnelle pour le stockage de données, la synchronisation multi- plateformes et la collaboration Fonctions Synchronisation dynamique des fichiers : mise à jour automatique des documents sur tous les équipements Partage et collaboration : partage simple des fichiers entre employés, clients et partenaires

Plus en détail

Etude des outils du Cloud Computing

Etude des outils du Cloud Computing Etude des outils du Cloud Computing Sommaire : Présentation générale.. 2 Définitions. 2 Avantage.. 2 Inconvénients. 3 Types d offres de service Cloud.. 3 Comparaison des services Cloud 4 Conclusion 5 Présentation

Plus en détail

EXIN Cloud Computing Foundation

EXIN Cloud Computing Foundation Exemple d examen EXIN Cloud Computing Foundation Édition Septembre 2012 Droits d auteur 2012 EXIN Tous droits réservés. Aucune partie de cette publication ne saurait être publiée, reproduite, copiée, entreposée

Plus en détail

Dynamic Computing Services solution de backup. White Paper Stefan Ruckstuhl

Dynamic Computing Services solution de backup. White Paper Stefan Ruckstuhl Dynamic Computing Services solution de backup White Paper Stefan Ruckstuhl Résumé pour les décideurs Contenu de ce White Paper Description de solutions de backup faciles à réaliser pour des serveurs virtuels

Plus en détail

Qu est ce que le Cloud Computing?

Qu est ce que le Cloud Computing? Qu est ce que le Cloud Computing? Makhlouf Hadji Ingénieur de Recherche Qu est ce que le Cloud Computing? Agenda: Virtualisation des Ressources Introduction au Cloud Computing Caractéristiques du Cloud

Plus en détail

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement Ne laissez pas le stockage cloud pénaliser votre retour sur investissement Préparé par : George Crump, analyste senior Préparé le : 03/10/2012 L investissement qu une entreprise fait dans le domaine de

Plus en détail

En savoir plus pour bâtir le Système d'information de votre Entreprise

En savoir plus pour bâtir le Système d'information de votre Entreprise En savoir plus pour bâtir le Système d'information de votre Entreprise En savoir plus sur : Services en ligne, SaaS, IaaS, Cloud - 201305-2/5 SaaS, IaaS, Cloud, définitions Préambule Services en ligne,

Plus en détail

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur) 1/30 2/30 Anne-Cécile Caron Master MIAGE - SGBD 1er trimestre 2014-2015 I : Not Only SQL, ce n est pas du relationnel, et le contexte d utilisation n est donc pas celui des SGBDR. I Origine : recherche

Plus en détail

Transformation IT de l entreprise BIG DATA, MÉTIERS ET ÉVOLUTION DES BASES DE DONNÉES

Transformation IT de l entreprise BIG DATA, MÉTIERS ET ÉVOLUTION DES BASES DE DONNÉES Transformation IT de l entreprise BIG DATA, MÉTIERS ET ÉVOLUTION DES BASES DE DONNÉES M a l g r é s o n ca r act è r e en apparence multiforme un enjeu central s est progressivement affirmé en matière

Plus en détail

Cloud Computing : Comment est-il appréhendé par l'entreprise Marocaine?

Cloud Computing : Comment est-il appréhendé par l'entreprise Marocaine? L'ENQUÊTE Cloud Computing : Comment est-il appréhendé par l'entreprise Marocaine? Connaissent-ils le Cloud Computing? De quoi s agit-il réellement? Quel est son intérêt? Quels sont les services qui sont

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

L unique SAN industriel proposant un stockage multiniveau automatisé (Automated Tiered Storage)

L unique SAN industriel proposant un stockage multiniveau automatisé (Automated Tiered Storage) Storage Center Baie de stockage STORAGE CENTER Transcende les limites des systèmes de stockage classiques Les fournisseurs de stockage actuels promettent de réduire le temps et les sommes d argent que

Plus en détail

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1 Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High

Plus en détail

LIVRE BLANC OCTOBRE 2014. CA Unified Infrastructure Management : architecture de la solution

LIVRE BLANC OCTOBRE 2014. CA Unified Infrastructure Management : architecture de la solution LIVRE BLANC OCTOBRE 2014 CA Unified Infrastructure Management : architecture de la solution 2 Livre blanc : CA Unified Infrastructure Management : architecture de la solution Table des matières Introduction

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Système de stockage IBM XIV Storage System Description technique

Système de stockage IBM XIV Storage System Description technique Système de stockage IBM XIV Storage System Description technique Système de stockage IBM XIV Storage System Le stockage réinventé Performance Le système IBM XIV Storage System constitue une solution de

Plus en détail

CCI YONNE ATELIER ENP 14 NOVEMBRE 2011. Je veux mieux gérer mon entreprise grâce au numérique (nomadisme, SaaS, etc.)

CCI YONNE ATELIER ENP 14 NOVEMBRE 2011. Je veux mieux gérer mon entreprise grâce au numérique (nomadisme, SaaS, etc.) CCI YONNE ATELIER ENP 14 NOVEMBRE 2011 Je veux mieux gérer mon entreprise grâce au numérique (nomadisme, SaaS, etc.) Les ateliers ENP L Espace Numérique Professionnel vous propose 11 ateliers pour répondre

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine 24.2. Slimane.bah@emi.ac.ma

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine 24.2. Slimane.bah@emi.ac.ma Ecole Mohammadia d Ingénieurs Systèmes Répartis Pr. Slimane Bah, ing. PhD G. Informatique Semaine 24.2 1 Semestre 4 : Fev. 2015 Grid : exemple SETI@home 2 Semestre 4 : Fev. 2015 Grid : exemple SETI@home

Plus en détail

Le cloud computing au service des applications cartographiques à haute disponibilité

Le cloud computing au service des applications cartographiques à haute disponibilité Le cloud computing au service des applications cartographiques à haute disponibilité Claude Philipona Les Rencontres de SIG-la-Lettre, Mai 2010 camptocamp SA / www.camptocamp.com / info@camptocamp.com

Plus en détail

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques livre blanc DÉVELOPPEMENT INFONUAGIQUE MEILLEURES PRATIQUES ET APPLICATIONS DE SOUTIEN DÉVELOPPEMENT INFONUAGIQUE - MEILLEURES PRATIQUES 1 Les solutions infonuagiques sont de plus en plus présentes sur

Plus en détail

Tirez plus vite profit du cloud computing avec IBM

Tirez plus vite profit du cloud computing avec IBM Tirez plus vite profit du cloud computing avec IBM Trouvez des solutions de type cloud éprouvées qui répondent à vos priorités principales Points clés Découvrez les avantages de quatre déploiements en

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

Release Notes POM v5

Release Notes POM v5 Release Notes POM v5 POM Monitoring http://www.pom-monitoring.com Ce document est strictement réservé à l usage de la société POM Monitoring. Il ne peut être diffusé ou transféré sans l autorisation écrite

Plus en détail

Bénéficiez d'un large choix d'applications novatrices et éprouvées basées sur les systèmes d'exploitation i5/os, Linux, AIX 5L et Microsoft Windows.

Bénéficiez d'un large choix d'applications novatrices et éprouvées basées sur les systèmes d'exploitation i5/os, Linux, AIX 5L et Microsoft Windows. 1. Le nouveau eserver i5 en bref Gérez plusieurs systèmes d'exploitation et environnements d'applications sur un seul serveur pour simplifier votre infrastructure et réduire les frais de gestion Simplifiez

Plus en détail

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1 Cours 6 Sécurisation d un SGBD DBA - M1ASR - Université Evry 1 Sécurisation? Recette d une application Vérification des fonctionnalités Vérification de l impact sur le SI existant Gestion du changement

Plus en détail

Concours interne d ingénieur des systèmes d information et de communication. «Session 2010» Meilleure copie "étude de cas architecture et systèmes"

Concours interne d ingénieur des systèmes d information et de communication. «Session 2010» Meilleure copie étude de cas architecture et systèmes Concours interne d ingénieur des systèmes d information et de communication «Session 2010» Meilleure copie "étude de cas architecture et systèmes" Note obtenue : 14,75/20 HEBERGE-TOUT Le 25 mars 2010 A

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

Architectures informatiques dans les nuages

Architectures informatiques dans les nuages Architectures informatiques dans les nuages Cloud Computing : ressources informatiques «as a service» François Goldgewicht Consultant, directeur technique CCT CNES 18 mars 2010 Avant-propos Le Cloud Computing,

Plus en détail

Cloud Computing. Veille Technologique

Cloud Computing. Veille Technologique Cloud Computing Veille Technologique La veille technologique consiste à s'informer de façon systématique sur les techniques les plus récentes et surtout sur leur mise à disposition commerciale (ce qui

Plus en détail

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio Présentation 1. Introduction 13 2. Présentation de SQL Server 14 2.1 Qu'est-ce qu'un SGBDR? 15 2.2 Mode de fonctionnement client/serveur 16 2.3 Les plates-formes possibles 18 2.4 Les composants de SQL

Plus en détail

Windows Internet Name Service (WINS)

Windows Internet Name Service (WINS) Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2

Plus en détail

DOSSIER SOLUTION : CA ARCserve r16. Recours au Cloud pour la continuité d'activité et la reprise après sinistre

DOSSIER SOLUTION : CA ARCserve r16. Recours au Cloud pour la continuité d'activité et la reprise après sinistre Recours au Cloud pour la continuité d'activité et la reprise après sinistre Le Cloud, qu'il s'agisse d'un Cloud privé proposé par un fournisseur de services gérés (MSP) ou d'un Cloud public tel que Microsoft

Plus en détail

La situation du Cloud Computing se clarifie.

La situation du Cloud Computing se clarifie. Résumé La situation du Cloud Computing se clarifie. Depuis peu, le Cloud Computing est devenu un sujet brûlant, et à juste titre. Il permet aux entreprises de bénéficier d avantages compétitifs qui leur

Plus en détail

Pentaho Business Analytics Intégrer > Explorer > Prévoir

Pentaho Business Analytics Intégrer > Explorer > Prévoir Pentaho Business Analytics Intégrer > Explorer > Prévoir Pentaho lie étroitement intégration de données et analytique. En effet, les services informatiques et les utilisateurs métiers peuvent accéder aux

Plus en détail

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée Communiqué de presse Charles-Yves Baudet Twitter: Les clients de Teradata Teradata Corporation peuvent dan.conway@teradata.com tirer parti de plusieurs + 33 1 64 86 76 14 + 33 (0) 1 55 21 01 48/49 systèmes,

Plus en détail

Rapport d'analyse des besoins

Rapport d'analyse des besoins Projet ANR 2011 - BR4CP (Business Recommendation for Configurable products) Rapport d'analyse des besoins Janvier 2013 Rapport IRIT/RR--2013-17 FR Redacteur : 0. Lhomme Introduction...4 La configuration

Plus en détail