Software Engineering and Middleware A Roadmap



Documents pareils
NFP111 Systèmes et Applications Réparties

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

CORBA. (Common Request Broker Architecture)

Le cadre des Web Services Partie 1 : Introduction

MEAD : temps réel et tolérance aux pannes pour CORBA

Le modèle client-serveur

Remote Method Invocation en Java (RMI)

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Messagerie asynchrone et Services Web

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Introduction aux intergiciels

Architectures n-tiers Intergiciels à objets et services web

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

CORBA haute performance

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

2 Chapitre 1 Introduction

Transactionnel et transactionnel réparti. Source R.CHEVANCE G.Gardarin

Patrons de Conception (Design Patterns)

Architectures d'intégration de données

Conception des systèmes répartis

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Remote Method Invocation (RMI)

Module BDR Master d Informatique (SAR)

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

1.Introduction - Modèle en couches - OSI TCP/IP

Urbanisme du Système d Information et EAI

Cloud computing Votre informatique à la demande

Introduction aux applications réparties

e-business, EAI et Business Intelligence Le triptyque gagnant profondément les structures des organisations et par conséquence

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

Composants Logiciels. Le modèle de composant de CORBA. Plan

Intergiciel - concepts de base

SOA : une brique de la 4 ième génération de l architecture informatique? Hervé Crespel Président du club urba-ea

Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Les Architectures Orientées Services (SOA)

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

Plan. Department of Informatics

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

RMI le langage Java XII-1 JMF

1. Introduction à la distribution des traitements et des données

RFID: Middleware et intégration avec le système d'information Olivier Liechti

Le passage à l échelle de serveur J2EE : le cas des EJB

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Intégration de systèmes

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Mise en œuvre des serveurs d application

Vulgarisation Java EE Java EE, c est quoi?

Cours Bases de données

MATRICE DES FONCTIONNALITES

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Projet Active Object

Cours CCNA 1. Exercices

Urbanisation des Systèmes d'information

Architecture distribuée

Les cinq raisons majeures pour déployer SDN (Software-Defined Networks) et NFV (Network Functions Virtualization)

Fiche de l'awt Intégration des applications

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Firewall Net Integrator Vue d ensemble

Infrastructure Management

Les nouvelles architectures des SI : Etat de l Art

Prise en compte des ressources dans les composants logiciels parallèles

Ecole Mohammadia d Ingénieurs Systèmes Répartis Pr. Slimane Bah, ing. PhD G. Informatique Semaine 24

FAMILLE EMC RECOVERPOINT

Les réseaux de campus. F. Nolot

Description de la formation

NSY102. Conception de logiciels Intranet Introduction

Fusion : l interopérabilité chez Oracle

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Garantir une meilleure prestation de services et une expérience utilisateur optimale

Étude et applications de l approche MDA pour des plates-formes de Services Web

Etude critique de mécanismes de sécurité pour l architecture Jini

LA VOIX SUR GPRS. 1. Introduction. P. de Frino (1), S. Robert (2), G. Cecchin (3) Résumé

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Environnements de Développement

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Couche application. La couche application est la plus élevée du modèle de référence.

Cours 13. RAID et SAN. 2004, Marc-André Léger

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Systèmes d'informations historique et mutations

Mettez les évolutions technologiques au service de vos objectifs métier

IDEC. Windows Server. Installation, configuration, gestion et dépannage

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Fax sur IP. Panorama

Java et les bases de données

FORMATION CN01a CITRIX NETSCALER

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

DirectAccess Mobilité et nomadisme, mise en oeuvre de la solution Microsoft

Planifier la migration des applications d entreprise dans le nuage

NetCrunch 6. Superviser

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Cloud Computing et SaaS

OmniVista 2700 Application complémentaires pour l OmniVista 2500 Network Management

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

WEA Un Gérant d'objets Persistants pour des environnements distribués

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

Transcription:

Software Engineering and Middleware A Roadmap Ecrit par: Dr. Wolfgang Emmerich Présenté par : Mustapha Boushaba Cours : IFT6251

Wolfgang Emmerich Enseignant à University College London: Distributed Systems and Security, Advanced Software Engineering, Networks and Applications Programming Intérêts: Distributed Objects and Components Distributed Software Architectures and Middleware Une centaine d articles

Plan Introduction Problématiques & Solutions Les Besoins des middlewares Classification des Middlewares Etat d art sur les middlewares Middleware et software engineering Conclusion Remarques

Problématique & Solution Problématique Fusion des compagnies Reconstruire tout le système (plus coûteux) Intégration des composants dans un système distribué (moins coûteux). Construction des nouveaux composants dans un minimum de temps. Les compagnies n ont pas forcement la même plate forme logicielle et matériel Besoin d extension (scalability) difficile à devenir (un site peut subir une augmentation de demandes subite) Intégration des composants hérités (legacy component) => besoin de gestion des tolérances aux fautes

Problématique & Solution Solution Système distribué vs système centralisé Mais dans un Système distribué on a: Plusieurs points de faille. Diverses communications entre les composants => Problème de sécurité

Problématique & Solution Solution Indépendance des plates formes, des systèmes d exploitations, transparence, menaces de sécurité, tolérance aux fautes. Nécessité d un Middleware. Mais quʹest ce qu un middleware?

Problématique & Solution Qu est ce qu un middleware? Applications et services Middleware Network operating System Hardware C est la partie intermédiaire entre le système d exploitation et l application

Problématique & Solution too expensive and time consuming if application designers have to resolve problems that arise during distributed system construction by directly using network operating system primitives. Component 1 Component n Middleware Network Operating system Hardware Component 1 Component n Middleware Network Operating system Component 1 Component n Middleware Network Operating system Hardware Host 2 Network Component 1 Hardware Component n Middleware Network Operating system Hardware Host n-1 Host 1 Host n Middleware in Distributed System Construction Tout doit se passer comme si l application se déroule en local

Les spécifications des middlewares Network Communication Transforme les données complexes: Marshaling/unmarshaling DS2 DS1 7 6 5 4 3 2 1 Application: applications utilisant les propriétés d interconnexion Présentation: conversion des données émises/reçues Session: maintien de synchronisation, coordination des communications Transport: gestion de l envoi de données TCP/UDP Réseau: routage des données, recherche du meilleur chemin IP Liaison: contrôle de la couche physique, gestion des erreurs Physique: ce n est que la carte It s too costly, too error prone and too time-consuming to build application on DS1 Solution : laisser au middleware les couches 5 et 6

Les spécifications des middlewares Coordination Les composants peuvent s exécuter d une façon concurrentielle Besoin d un mécanisme de synchronisation (soutenu par la couche session) Communication synchrone: Un composant qui demande à un autre d exécuter un service attend la fin de l exécution de ce service avant de poursuivre son déroulement. Communication asynchrone: Un composant qui demande à un autre d exécuter un service, poursuit son propre traitement pendant que le deuxième composant traite sa demande. Besoin de la politique des threads (Simple thread, multithread, thread hybride)

Les spécifications des middlewares Coordination Les composants ne peuvent pas être lancés tous àla fois: problème des ressources Besoin des mécanismes: Activation Désactivation

Les spécifications des middlewares Reliability (Fiabilité) Détecter et corriger les erreurs: Délivrer des requêtes du client au serveur: Best effort: fait son possible pour acheminer les informations jusqu au destination sans fournir de garantie de performance. At most once: Exécution au plus une fois At least once: Exécution au moins une fois Exactly once: Exécution une et une seule fois

Les spécifications des middlewares Scalability Augmenter le nombre de composants sans toucher àl architecture du système Ne peut être respecter que si on respecte: Access transparency (composant local ou distant) Location transparency (location physique du composant) Migration transparency Replication transparency

Les spécifications des middlewares Heterogeneity (Hétérogénéité) Il peut être causé par: Hardware OS platforms Programming languages Middleware itself Middleware will have to be interoperable with other implementations of the same middleware or even different types of middleware in order to facilitate distributed system construction

Classification des Middlewares En générale 4 catégories Transactionnal middleware Message Oriented Middleware Procedurale Middleware Object and Component Middleware

Classification des Middlewares Transactionnal middleware Quelques Notions: Transaction: séquence dʹopérations élémentaires. Elle est exécutée comme une seule opération indivisible. Transaction valide: toutes les opérations sont menées à terme. Transaction invalide, si au moins une des opérations n a pas pu être achevée. Transaction doit avoir les propriétés ACID Qu est ce que les propriétés ACID:

Transactionnal middleware Propriétés ACID Atomic: les opérations constituant la transaction forment une unité indivisible Cohérence : les transactions font passer le système d un état cohérent à un autre dans le respect des règles d intégrité Isolée : aucune modification n est visible tant que toutes les opérations n ont pas été réalisées et validées. Durable : Les transactions validées sont conservées même si le système tombe en panne

Transactionnal middleware Exemple de transaction Virement bancaire 2 opérations indissociables dans une transaction: Débiter le compte source Créditer le compte client

Transactionnal middleware Autre Exemple de transaction Agence de voyage Hôtel Location de voiture Air Canada Réserver voyage: Transaction Coordinateur Net

Transactionnal middleware Validation à deux phases Les intervenants: Participant : site qui va exécuter au moins une transaction coordinateur: site qui vas prendre en charge la validation deux phases Deux phases: Préparation Le coordinateur demande à chaque participant de se préparer à valider la transaction Validation Le coordinateur ordonne à tous les participants de valider ou d annuler leur transaction

Transactionnal middleware Validation à deux phases Source: http://etna.int-evry.fr/

Transactionnal middleware Caractéristiques du transactional Middleware Network communication: les composants peuvent résider sur différents sites. Transparence entre client et serveur Coordination Utilise une communication Synchrone et Asynchrone Utilise un système d activation et de désactivation Reliability Middleware doit s assurer que les composants utilisent le système de validation à2 phases. Implémenter le protocole DTP, pour assurer la fiabilité. Pas besoin, si les composants sont basés sur un SGBD

Transactionnal middleware protocole DTP proposé par l X/Open, il offre deux interfaces : TX : interface entre le Transaction Manager (TM) et l applicatif. Un API qui permet d invoquer le moniteur transactionnel. XA : interface de la Ressource Manager (RM) directement utilisée par le moniteur transactionnel. Mise en œuvre de protocoles de validation à deux phases (Two Phase Commit) : préparation de toutes les écritures puis écritures des résultats.

Transactionnal middleware Caractéristiques Scalability Supporte la répartition de charge Supporte la réplication Heterogeneity Composants sur différents sites. Possibilité d une communication via DTP. Indépendamment de la plate forme.

Transactionnal middleware Points forts & Points Faibles Points forts Fiabilité Facilité d intégration avec les bases de données Points faibles Création d une surcharge Marshaling et un marshaling fait manuellement Portabilité réduite (pas de standard pour la définition des services sur les serveurs de composants)

Message Oriented Middleware application client serveur application n serveur application 2 Message request Queue d arrivé serveur application 1 Message reply Queue des messages MOM

Message Oriented Middleware Caractéristiques Network communication Client envoie une notification d un événement ou requête sous forme de message Un message peut contenir les paramètres des services. Coordination Supporte d une façon naturelle la livraison des messages asynchrone (Système de Queue) Un client peut continuer à s exécuter sans se soucier de l arrivée du résultat.

Message Oriented Middleware Reliability (Fiabilité) Tolérance de panne assurée par la Queue: Client envoi àla queue sans se soucier de l activation du composant Livrez au moins une fois le message (at least once) Scalability (Extensibilité) Ne soutient pas l accès transparent: Queue est utilisée même pour les composants locaux. La queue doit être configurée par l administrateur Difficile de coder la queue au niveau du client et serveur.

Message Oriented Middleware Heterogeneity MOM n est pas hétérogène Code du marshaling et unmarshaling est laissé à l application

Message Oriented Middleware Points forts & Points Faibles Points forts Tolérance de panne Idéal pour la communication de groupes Idéal pour un système de publication/souscription Points faibles Ne supporte que at least once, le même message pourra être délivré plusieurs fois L extensibilité et l hétérogénéité sont limitées Ne supporte pas les propriétés des transactions (ACID) Code du marshaling et unmarshaling est laissé à l application

Procedural Middleware Source: http://www.cs.cf.ac.uk/dave/c/node33.html

Procedural Middleware Architecture simplifiée de RPC client serveur client Server procedure call procedure client stub locate (un)marshal send (receive) Transport Network Transport Sélecteur selects stub server stub (un)marshal receive (send)

Procedural Middleware Caractéristiques Network communication Par implémentation du marshaling et unmarshaling Par implémentation du stub, côté client et serveur Coordination RPC supporte une communication synchrone One to One Ne supporte pas les communications asynchrones et les communications multicast Différentes formes pour l activation des composants: Soit toujours actif (au démarrage de l application) Soit à la demande (grâce a Init daemon)

Procedural Middleware Reliability RPC est exécuté en at most once Une exception est générée quand il y a erreur au niveau du RPC Ne supporte pas exactly once ni les transactions Scalability Elle est limitée : RPC Windows ou Unix ne supporte pas le mécanisme de réplication. Heterogeneity PM supporte les différents langages de programmation PM supporte les différentes plates formes logicielles et matérielles. Le stubs peut traduire les informations spécifiques au matériel dans une forme standard.

Procedural Middleware Points forts & Points Faibles Points forts Marshaling et unmarshaling sont faites d une façon automatique. Points faibles PM n est pas extensible et ne supporte pas bien les tolérances de panne PM n est pas réflexif : un programme RPC ne peut pas retourner un autre programme RPC (solution rapporté par Object and Component Middleware)

Object and Component Middleware 3 standards: CORBA : Common Object Request Broker Architecture Java RMI : Remote Method Invocation DCOM : Distributed Component Object Model

Object and Component Middleware Architecture CORBA simplifiée ORB : Object Request Broker = IDL (Interface Definition Language) + IIOP (Internet Inter Orb Protocol ) définition dʹinterface localisation et activation de l objet distant communication entre les clients et les objets Source: http://www.sei.cmu.edu/str/descriptions/orb.html

Object and Component Middleware Structure de CORBA ORB : Transporte les requêtes, activation des objets CORBA services: Fournissent les fonctions nécessaires aux applications (exp : Security, Transaction, Query) CORBA facilities: Utilitaires communs qui répondent plus particulièrement aux besoins des utilisateurs pour la création de logiciels à lʹaide de composants réutilisables IDL: Interface d objets applicatifs qui définissent les objets créés

Object and Component Middleware Architecture RMI 1. localisation de l objet distant grâce au registre 2. Stub marshalise les arguments de la méthode 3. Invocation de l objet distant 4. Le skeleton unmarshalise les données reçus puis invoque la méthode localement 5. Le skeleton marshalise les données et les envoies vers le stub (client) 6. Récupération des données par le stub et transmission vers l objet faisant appel à la méthode Source: www.commentcamarche.net

Object and Component Middleware Caractéristiques Network Communication Supporte les requêtes distribuées Le marshaling est assuré par un stub grâce au IDL Coordination Communication synchrone est utilisée par défaut (l objet client est bloqué jusqu à réception de la réponse) supporte les différentes politiques de threading et d activation CORBA supporte le groupe de communication

Caractéristiques Reliability (Fiabilité) At most once (par défaut) Supporte le concept des transactions Scalability Supporte la répartition de charge (load balancing) Réplication est limitée

Object and Component Middleware Caractéristiques Heteroginiety CORBA et COM supportent multiple langage de programmation (client et serveur ne sont pas écrits nécessairement dans le même langage) JAVA/RMI utilise la machine virtuelle, ce qui résout l hétérogénéité RMI, CORBA et COM peuvent s interagir

Object and Component Middleware Points forts & Points Faibles Points forts Fiabilité Capacité d intégrer les messages et les transactions Points faibles L extension (scalability) est limitée

Etat d art Les middlewares actuels Ne sont pas flexible (ne s adaptent pas aux besoins des changements) Ne sont pas assez extensible La réplication n est pas supportée pour accomplir la distribution globale Ne conviennent pas aux réseaux sans fil (mon sujet de recherche)

Etat d art Besoins pour le future Flexible Middleware Le composant client n a pas à localiser le serveur d où il obtient les services Trading: localiser les composants par type de service au lieu par nom Utiliser le standard ISO/ODP (comme pages jaunes) Utiliser le MOP (MetaObject Protocol) pour l inspection et l adaptation (cela résout la réflexivité) Combiner les middlewares avec langage de balisage (markup languages)tel que XML

Etat d art Besoins pour le future Scalable Middleware Recherche sur les réplications non transparente (projet Globe) Real time Middleware (problème de mémoire et de priorité) TAO: c est un real time CORBA prototype Supporte : prioritédes requêtes définition du scheduling

Etat d art Middleware for mobile Computing Problèmes les plus fréquents: Stations injoignables : traité comme exception Bande passante n est pas assez large Solutions: Établir des primitives de coordination Compresser les données pour économiser la bande passante.

Etat d art Middleware et Software Engineering Impact du middleware sur le génie logiciel Les middlewares sont conçus pour livrer des avantages immédiats dans la construction des systèmes distribués Les vendeurs des middlewares introduisent systématiquement les résultats de recherche dans leurs produits

Middleware et Software Engineering Bien définir la nature des exigences non fonctionnelles du middleware. Besoin des méthodes et outils pour quantifier les exigences non fonctionnelles : Exp: pour une architecture extensible, nous avons besoin de quantifier le temps de réponse voulu, les charges maximales, ou le volume de données attendu. Définir des architectures logicielles qui satisferont des besoins non fonctionnels Exemple développé des middlewares orientés ADL (Architecture Description Languages) Besoin de connaître les facteurs qui influencent le design Temps de latence au niveau du réseau L activation La concurrence dans l environnement distribué Les primitives de synchronisation Solution : on a besoin de définir des notations, méthodes et outils pour le design orienté middleware.

Conclusion Au cours de la présentation, nous avons vu : Qu est ce qu un middleware Les besoins pour les middlewares Une classification des middlewares L état d art sur les middlewares Relation Middleware et le génie logiciel

Remarques Points forts de l article Qualité technique très bonne l auteur a bien soulevé les problèmes qu on peut rencontrer dans le développement d un middleware Relation entre le middleware et le Génie logiciel bien identifiée Points faibles de l article Oùon est à propos de la sécurité dans les middlewares Oùon est à propos de la Qos dans les middlewares La structuration reste à revoir Besoin plus de détail sur la relation génie logiciel et Middleware

Capteur Schéma d un nœud Capteur :Mica2