Cours d introduction. Modèles d interactions pour le client serveur et exemples d architectures les implantant
|
|
|
- Adélaïde Beauchamp
- il y a 10 ans
- Total affichages :
Transcription
1 Cours d introduction Modèles d interactions pour le client serveur et exemples d architectures les implantant Gérard Florin Conservatoire National des Arts et Métiers Laboratoire CEDRIC Modèles pour le client serveur 1
2 Introduction Problématique de la coopération Application coopérative Application réalisée par des programmes communicants (processus, objets,...). Avantages potentiels - Modularité. - Réutilisation (par composition). - Performances. Motivations actuelles importantes pour les applications coopératives - Applications systèmes et réseaux (algorithmique répartie). - Applications objets, objets répartis, à base de composants. - Systèmes d informations, Parallélisme, Intelligence artificielle => Presque tous les types d applications informatiques sont concernées. Modèles pour le client serveur 2
3 Des problèmes spécifiques à la coopération Cycle de vie - Exprimer la coopération. - Développer l application. - Déployer l application. - Gérer son exécution. Sous des hypothèses d environnement - Performances. - Pannes. - Sécurité. - Répartition. Modèles pour le client serveur 3
4 Exprimer la coopération Le principal problème abordé actuellement. Coopération : Le point de vue local Ensemble de programmes coopérants utilisant des données locales Programmes : schéma de contrôle local à un site (flot d exécution local). Données : traitées par le programme, disponibles localement sur le site. Vision plutôt ascendante : émergence du comportement coopératif. Terminologies multiples Application répartie, distribuée, coopérative, n tiers Modèles pour le client serveur 4
5 Coopération : Le point de vue global Une application coopérative offre un service externe en encapsulant une structure de données réparties Programme réparti : schéma de contrôle global à un ensemble de sites (comportement de groupe). Données : une structure de données encapsulée par le traitement (en fait distribuée sur les différents sites, structure de données partitionnée). Vision plutôt descendante : le comportement coopératif visé est placé a priori. Modèles pour le client serveur 5
6 Coopération avec utilisation d interactions client serveur Client serveur : une approche universellement adoptée pour structurer les applications coopératives. A l origine des services généraux offerts par les couches application réseau. Client A Serveur Service 1 Client B Service n Exemples : Serveurs de fichiers Serveurs de base de données, Serveurs d impression Serveurs de noms (annuaires) Serveurs applicatifs usager. Modèles pour le client serveur 6
7 Modèle client serveur Un ensemble de choix de réalisations de l interaction de communication en point à point ayant des points communs. Client serveur : Vue du client Requête Client Service distant Réponse - Mode de synchronisation locale des primitives requête, réponse. - Mode de synchronisation distante. - Parallélisme interne au client. Modèles pour le client serveur 7
8 Client serveur : Vue du serveur Requêtes Exécution du service Réponses - Gestion des requêtes. - Exécution du service : séquentiel, concurrent - Mémorisation ou non de l état du client. Alternatives au mode client serveur Des schémas de contrôle applicatifs réutilisables ( design patterns ) générant directement des modes complexes d interaction Impliquant des groupes d entités communicantes. Modèles pour le client serveur 8
9 Développer une application en client-serveur Choisir une sémantique de base précise supportant le mode client serveur Pour exprimer la synchronisation entre des coopérants au moyen d une interaction de base ( design pattern ). Propriétés des outils d expression de la coopération 1 Définition d un modèle d interaction et d exécution. Présentation des différentes catégories de modèles dans cette introduction. 2 Définition d une API (interface de programmation) supportant le modèle. Dans les cours de détail. 3 Outils de développement. 4 Environnements d exécution. Services systèmes d accueil sur différents types d infrastructure. Modèles pour le client serveur 9
10 Architecture globale Outils de développement Application Outils d administration Médiateur (Middleware) Services applicatifs (fichiers répartis, transactionnels, Services systèmes (communications, désignation, sécurité ) Systèmes d exploitation Machines et réseaux Modèles pour le client serveur 10
11 Plan du cours : Les modèles d interactions actuels pour le client serveur Modèles de communication par messages. Modèles de communication à événements. Modèles client serveur de base de données. (ODBC). Modèles client serveur en RPC. - Client serveur à RPC traditionnel (DCE). - Client serveur à objets répartis. (CORBA, DCOM). - Client serveur à composants (EJB, CCM). Egalement Modèles à base de code mobile. Modèles à mémoire virtuelle partagée répartie. Modèles pour le client serveur 11
12 MODELES CLIENT SERVEUR A MESSAGES Modèles pour le client serveur 12
13 Client serveur par messages: Introduction Mode de communication basique par messages asynchrones - Communication asynchrone : Emission non bloquante Réception bloquante. - Communication par messages typés. - Communication sur les processus destinataires ou sur des boites à lettres (portes) de communication. Send(bals, serv, params Msg=get(bals) CLIENT Requète bals Réponse balc Msg=get(bals) exec(serv) Put(balc,res) SERVEUR Modèles pour le client serveur 13
14 Communications par messages : exemples de mise en oeuvre Interfaces des piles réseaux Couche transport : Sockets, TLI, NetBEUI. Interfaces de programmation parallèle PVM, MPI. Interfaces de systèmes répartis Chorus, Mach Autres environnements par message Multi-agent, Dernière version du modèle : les MOM (fin des années 1980) Mode messages asynchrones + Mode asynchrone avec persistance : les files de messages. Modèles pour le client serveur 14
15 Communication à files de messages : MOM Messages Oriented Middleware Deux modes de fonctionnement:. mode message (habituel).. mode file de messages (caractéristique) Messages Identification unique. Structure. Entête : identifiant, informations protocolaires pour l acheminement. Attributs : couples (nom, valeur) utilisables pour la sélection des messages. Données : charge utile. Paramètres d acheminement. Durée de vie Priorité Sécurité. Confidentialité, contrôle d accès. Modèles pour le client serveur 15
16 Motivations pour les files de messages Les styles Asynchrones et Synchrones ont des forces et des faiblesses. Mode synchrone (bloquant) Il est terminant (on est certain de la fin). Avec acquittement (réponse). PB : arrêt complet du fonctionnement du client quand le serveur ne répond pas. Mode asynchrone (non bloquant) Pour assurer l acquittement et la terminaison il faut un protocole. L asynchronisme des modes messages habituels devient assez vite également bloquant car on peut saturer un site distant qui ne peut pas tenir le rythme des services demandés (serveur non opérationnel). => Amélioration : les files de messages. Modèles pour le client serveur 16
17 Files de messages Structures de données de stockage de messages asynchrones - Identification unique - Propriétés de persistance (style transactionnel) Les messages dans les files sont journalisés (résistance aux défaillances, gestion des clients en ligne ou hors ligne). - Partagées (par les applications). - Mode de réception variable (selon le destinataire). Exemples : IBM MQSeries, Microsoft Message Queue Server, DECmessageQ, TIPCO, etc. Modèles pour le client serveur 17
18 EXEMPLE MOM : IBM MQSERIES LES QUATRE TYPES DE MESSAGES Datagram : messages isolés Request : l émetteur attend une réponse. Reply : réponses aux requêtes Report : pour informer d événements exceptionnels. LES ONZE PRIMITIVES MQCONN - Connecte une application à un gestionnaire de file ( queue manager ). MQOPEN - Ouvre un objet MQSeries comme une file et retourne un descriptif ( handle ). MQGET - Demande pour obtenir des messages d une file locale. MQGET peut être utilisée de façon bloquante ou non. Modèles pour le client serveur 18
19 LES ONZE PRIMITIVES (SUITE) MQPUT - Envoie un message sur une file locale ou distante MQPUT1 - Séquence de MQOPEN, MQPUT d un message et MQCLOSE. MQCLOSE - Fermeture avec destruction d une file. MQDISC - Déconnexion avec un gestionnaire de files MQSeries. MQINQ - Interrogation d attributs d objets MQSeries (des files). MQSET - Positionnement ou modification d attributs d objets MQseries. MQCMIT - Indique au gestionnaire de la file que toutes les opérations get et put depuis le précédent point de synchronisation sont validées. MQBACK - Demande de reprise arrière pour tous les get et put depuis le dernier point de synchronisation. Modèles pour le client serveur 19
20 Les files de messages : conclusion Avantages Une interaction par message asynchrone avec des améliorations. Augmentent l interopérabilité, la portabilité dans la mesure ou l interface MOM isole l application des logiciels sous jacents. Les infrastructures client serveur à MOM sont assez simples et donc à maturité => de nombreuses entreprises utilisent des MOM (exemple le secteur bancaire). Les autres styles de middleware ne sont pas simples ni jugés aussi murs. => Introduction de service MOM en CORBA (chez IBM Mqseries en DSOM) Inconvénients Sémantique limitée du mode message asynchrone. Modèles pour le client serveur 20
21 MODELES CLIENT SERVEUR A EVENEMENTS Modèles pour le client serveur 21
22 Client serveur à événements : Introduction Besoin : définir une approche asynchrone (événementielle) de communication.. Programmation événementielle :systèmes réactifs, messages asynchrones, graphique, Environnements : un plus dans les environnements objets répartis (services d événements CORBA, composants CORBA, JMS Java Messaging Service). Concepts - Notions d événements (un signal) et de réactions (un code, une procédure exécuté par un abonné lors d un événement). - Attachement : association dynamique entre un événement et une réaction. - Communication anonyme : indépendance entre l émetteur d un événement et les consommateurs de cet événement. Modèles pour le client serveur 22
23 Communication événementielle : schéma général - Des sources produisent des événements : publish. - Des consommateurs s abonnent à des événements : subscribe. Programme prod Publish (event1) 2 Service de gestion des événements et des abonnements Subscribe (event1, 1 Programme cons Subscribe (event1, reaction1) Reaction1 : Bal 3 Modèles pour le client serveur 23
24 Communication événementielle : Sémantique de consultation des boites à lettre Mode Pull - Le consommateur doit consulter sa boite à lettre pour traiter les événements en attente. => Il contrôle le moment de traitement des événements. Mode Push - Le consommateur attache une méthode à chaque type d événement. => L occurrence d un événement déclenche automatiquement le traitement associé. Modèles pour le client serveur 24
25 Communication événementielle : Architecture du service d événement centralisée Mode Hub and Spoke Client producteur Client producteur Courtier centralisé d événements Client consommateur - Le service centralisé de gestion des événements dialogue en mode point à point avec des clients producteurs ou consommateurs d événements. Modèles pour le client serveur 25
26 Communication événementielle : Architecture du service d événement répartie Mode Snowflake Client producteur Client producteur Courtier Courtier Courtier Client consommateur - Les courtiers coopèrent pour offrir un service réparti de gestion des événements. Modèles pour le client serveur 26
27 Communication événementielle : Architecture du service d événement à bus de messages Client producteur Client producteur Courtier Courtier Courtier Répéteur Client consommateur - Les courtiers coopèrent au moyen d un protocole à diffusion des événements. Modèles pour le client serveur 27
28 ENVIRONNEMENT A EVENEMENTS, EXEMPLE : JMS JAVA MESSAGE SERVICE Une API JAVA pour offrir un accès unique aux différents protocoles de files de messages (MOM MQSeries, Tibco ). - Gestion événementielle des messages. - Mode publish / subscribe Client producteur Client consommateur JMS Accès MQ X JMS Accès MQ X JVM JVM Pile MQ X Pile MQ X Réseau Modèles pour le client serveur 28
29 Java Message Service : Architecture JNDI JMS Client Destination Connection factory Message Producer Connection Message Consummer Session Modèles pour le client serveur 29
30 Commentaires Architecture JMS - JMS utilise JNDI ( Java Naming and Directory Interface ) pour trouver la localisation des ressources souhaitées. - Un client JMS (le créateur d une application JMS) doit réaliser les étapes : 1.Créer une connexion avec le prestataire d échange de messages. 2.Créer une ou plusieurs sessions pour émettre et recevoir des messages. 3.Créer des producteurs de messages ( MessageProducers ) qui publient des messages et des consommateurs de messages ( MessageConsumers ) qui reçoivent les messages. Modèles pour le client serveur 30
31 Client serveur à événements : Conclusion Avantages Une sémantique de communication asynchrone demandée par différentes applications (différents métiers). - Diffusion d informations sur le WEB (Smartsockets, Castanet, Ambrosia, ActiveWeb, ibus, TIB/rendezvous). - Diffusion de logiciels. - Workflow Inconvénients - Des outils souvent propriétaires. - Des outils de développement sommaires. Modèles pour le client serveur 31
32 Modèle client serveur De données Modèles pour le client serveur 32
33 Le client serveur de données : Principes généraux Une approche des applications client serveur orientée accès distant à une base de données. Fonctions du client Traitements applicatifs non lié au stockage des données : - dialogue avec l utilisateur, - traitements divers, -. Fonctions du serveur Stockage des données, - Interprétation des requêtes, - Optimisation des requêtes - Gestion de la persistance - Gestion de la sécurité des données -.. Modèles pour le client serveur 33
34 Le client serveur de données : schéma de base Client Code client Médiateur (Middleware) Requête SQL Résultats: tuples Serveur SGBD Très nombreux standards et produits propriétaires. Modèles pour le client serveur 34
35 Exemple : Client serveur de bases de données relationnelles L'API CLI de l X/OPEN "Call Level Interface" Une API en mode message pour l'accès à des BD relationnelles (31 primitives). Une standardisation de la formulation des requêtes offrant la conformité SQL2. AllocHandle BindCol BindParam Cancel CloseCursor Connect CopyDesc DescribeCol Disconnect EndTran ExecDirect Execute Fetch FreeHandle GetCol GetCursorName GetConnectAttr GetDescField GetDescRec GetDiagField GetDiagRec GetEnvAttr GetStmtAttr NumResultCols Prepare ReleaseEnv SetCursorName SetDescField SetDescRec SetEnvAttr SetStmtAttr Modèles pour le client serveur 35
36 Exemple : Le client serveur de bases de données orientées objet Objectifs Permettre la portabilité des sources d une application utilisant une approche BD objet sur différents moteurs de SGBD objets. Solutions ODMG : Object Data Management Group - Choix d un modèle objet (sur ensemble du modèle objet de l OMG Object Management Group ). - Langage de définition de données ODL ( Object Description Language ) basé sur IDL CORBA). - Langage d interrogation orienté objet OQL ( Object Query Language ) - Intégration aux langages objets existants. Modèles pour le client serveur 36
37 Environnements client serveur de données : Exemple ODBC "Open Data Base Connection". Un produit définit par extensions à partir la CLI de l X/OPEN (depuis 1992).. Ensuite de très nombreux rattachements à ce standard de facto. Existence sur les principaux OS de pilotes pour un grand nombre de bases de données.. Mais des évolutions successives avec des variations importantes (V1, V2, V3..). Exemple ODBC 2.0. Noyau: 23 primitives de base.. Niveau 1: 19 appels pour les accès aux catalogues des bases de données, les gros objets et des fonctions spécifiques des pilotes.. Niveau 2: 19 appels supplémentaires pour des accès utilitaires. Modèles pour le client serveur 37
38 Organisation générale de ODBC API ODBC Gestionnaire de pilotes FAP 1 SQL*Net API Pilotes fournisseurs Pilote 1 Oracle Pilote 2 DB2 FAP 2 DRDA - Couche de réception des requêtes ODBC. - Couche de gestion des pilotes (à quel pilote passer une requête?) - Selon un format standard pour les pilotes ODBC. - Chaque pilote de bases de données encapsule les requêtes dans le format propre à chaque fournisseur de bases de données. - Notion de FAP ( Format And Protocol ) structure des messages et codage des données pour un SGBD. Modèles pour le client serveur 38
39 Client Serveur de données : Conclusion - La transmission à distance de requêtes d'accès à des bases de données est un problème résolu:. Choix d'un service (dérivé de SQL). Choix d'un protocole. - Difficulté : le client serveur de données est rendu très opaque par le jeu des éditeurs de logiciels qui veulent couvrir tout le spectre des interactions client serveur dans des solutions propriétaires :. Commandes de bases SQL enrichies de multiples fonctionnalités.. Procédures stockées et déclencheurs ajoutent des RPC synchrones ou asynchrones.. Les propositions propriétaires non standardisées sont trop nombreuses. Nombreux problèmes à résoudre pour une homogénéisation des approches et peu de volonté d'y arriver. Modèles pour le client serveur 39
40 Modèle client serveur en RPC traditionnel Modèles pour le client serveur 40
41 APD Appel de procédure distante RPC Remote Procedure Call Introduction Objectif d un RPC Présenter les interactions distantes sous une forme (syntaxe) et un effet (sémantique) analogue à celui d un appel de procédure local. - L opération appelée (le serveur) est présentée sous la forme d une procédure située sur un site distant dont un programme appelant (le client) demande l exécution. - L interaction est généralement synchrone comme un appel de procédure habituel (le mode asynchrone est possible) - Le RPC offre un changement important par rapport à la structuration au mode message (qui ne permet qu un déclenchement asynchrone d action à distance définie par une séquence de code). Modèles pour le client serveur 41
42 RPC : Principes de réalisation en communication par messages Birrell et Nelson 1984 Appelant Souche Appelant Souche Appelé Appelé 1 R é s e a u V V 4 Modèles pour le client serveur 42
43 RPC : Notion de souche ou talon ( stub ) Deux procédures intermédiaires (chez le client et le serveur) pour l adaptation de l invocation à l environnement réparti. Elles transforment un appel local en appel distant. Z Un exemple type de démarche réflexive de tissage ( wrapping ). Souche Appelant ( stub ) - Reçoit l appel en mode local. - Emballe les paramètres d appel dans un message de requête ( marshalling ). - Emet le message de requête. - Se met en attente du message de réponse. - Déballe les paramètres réponse. - Retourne les paramètres réponse comme un retour local. Modèles pour le client serveur 43
44 Souche Appelé ( skeleton ) - Reçoit le message d appel. - Déballe les paramètres d appel ( unmarshalling ). - Fait réaliser l exécution par la procédure appelée. - Récupère par le retour local les résultats. - Emballe les paramètres réponse dans le message de réponse. - Emet le message réponse vers la souche appelant. Modèles pour le client serveur 44
45 Invocation distante et invocation locale Objectifs pour une invocation distante Le plus souvent affiché : obtenir en invocation distante la même sémantique qu en invocation locale (atteindre une transparence de la répartition). Très difficile à atteindre (actuellement on est encore loin de compte) - Syntaxe : beaucoup plus lourde en appel distant qu en appel local Description de la signature en IDL. Usage d interfaces systèmes (API). Modes de désignation (références). - Sémantique de l appel distant différente de celle de l appel local Performances Transmission des arguments Modes de panne Modèles pour le client serveur 45
46 RPC : De nombreuses difficultés de mise en œuvre Performances Réalisation des invocations distantes avec des temps de réponse satisfaisants. Gestion des pannes Pannes franches du client ou du serveur. Ouverture (interopérabilité) Des langages évolués utilisés. De la représentation des données. Des systèmes d exploitation utilisés. Des architectures de réseau. Désignation et liaison Structuration des références. Localisation des serveurs. Sécurité Autorisation des accès aux procédures Authentification des clients Vérification des droits. Modèles pour le client serveur 46
47 RPC : Traitement des pannes Cas des pannes franches ou transitoires - Mécanismes de reprise - Sémantique des reprises en cas de panne dans l exécution d un RPC. Nombre de fois ou le serveur est exécuté Exactement une fois - Difficile (sauvegarde totale du contexte, reprise sur erreur). Au plus une fois ( at most once ) - Identification des appels, une seule exécution. Exception si erreur. Au moins une fois ( at least once ) - Tentatives d exécution jusqu à ce que l une réussisse. N importe quoi Modèles pour le client serveur 47
48 RPC Interopérabilité : Problèmes de représentation des données Présentation = Conversion des paramètres échangés entre l appelant et l appelé. A partir d une syntaxe abstraite : description dans un langage évolué des types de données échangés Génération d une syntaxe de transfert : syntaxe de la représentation des paramètres dans les messages. Opérations de codage / décodage : à partir de la génération des souches. Modèles pour le client serveur 48
49 RPC : Syntaxes de transfert Choisir un format de représentation des données échangées. - facile à comprendre, à générer. Coder et décoder efficacement à partir des représentations locales. - rapidement, - faible volume généré. Solutions des codages binaires Les paramètres sont codés sous une forme binaire prédéfinie, compacte, non directement lisible (exemple format CDR de CORBA). Solutions de codages caractères Les paramètres sont codés en format texte lisible ( human readable ) typiquement en utilisant XML. Modèles pour le client serveur 49
50 RPC : Syntaxes abstraites Besoin de langages de description d interface : IDL Interface Definition Language - Spécification unique de l appel (IDL des langages de déclaration de types commun appelant/appelé). - Spécification indépendante du langage de programmation de l appel (IDL langage unique, langage pivot). - Amélioration de la réalisation de l invocation distante par des directives spécifiques (références uniques, paramètres modes in out, contraintes d échéances,.). Mise en œuvre - IDL langage déclaratif de typage. - Utilisé pour générer des souches. - Code stocké dans un répertoire d interfaces. Modèles pour le client serveur 50
51 RPC : Utilisation du code IDL Procédure appelante (client) Compilateur langage client Souche client Code de l appelant (client) Description IDL de l interface appelée Générateur de souches Souche serveur Définitions communes Bi bli ot hè qu e Procédure appelée (serveur) Compilateur langage serveur Code de l appelé (serveur) Modèles pour le client serveur 51
52 RPC : Désignation et de liaison Désignation (nommage) Créer des références (des structures de données) qui supportent le mécanisme d invocation (ici à distance). De préférence indépendantes de la localisation (migration). - L adresse du site du serveur (@IP). - L adresse dans le protocole qui permet de l atteindre (@port TCP) - La procédure à exécuter. Plus finement - Le conteneur de la procédure à atteindre. - La désignation de la procédure dans le conteneur. Modèles pour le client serveur 52
53 Liaison Retrouver la procédure à partir de la référence. - Liaison statique (au préalable) - Liaison dynamique avec utilisation d un annuaire de références. - Liaison dynamique avec utilisation d un annuaire d interfaces (liaison retardée). RPC : Mise en œuvre de la liaison Procédure Appelante (client) Interaction RPC Procédure Appelée (serveur) Souche Appelant (client) Consul tation Service de nommage (désignation) Enre gistre ment Souche Appelé (serveur) Pile réseau Appelant (client) Communication réseau Pile réseau Appelé (serveur) Modèles pour le client serveur 53
54 EXEMPLE : ENVIRONNEMENT D'APPEL DE PROCEDURE DISTANTE DCE DCE : ARCHITECTURE - DCE DISTRIBUTED COMPUTING ENVIRONMENT est une boite à outils pour développer des applications réparties. - Services organisés autour d un RPC. APPLICATION DCE ACTIVITES "THREADS" Appel de procédure distante RPC SERVICES DE SECURITE SERVICES ANNUAIRE DNS X500 SERVICES DE FICHIERS REPARTIS SERVICES DE SYNCHRO D'HORLOGE FONCTIONS DE TRANSPORT D'UNE ARCHITECTURE RESEAU SYSTEME D'EXPLOITATION Remarques - Certains services en utilisent d autres. - Existence de fonctions transversales : administration et outils de développement. Modèles pour le client serveur 54
55 DCE : Evaluation Avantages - Accès à un ensemble d API systèmes répartis via des interfaces normalisées. - Pour une structuration d applications réparties gros grain (les entités communicantes sont plutôt des processus) - Un standard assez diffusé (surtout comme base de Microsoft DCOM). Inconvénients - Développement d applications grain fin (les entités sont de la taille d un objet ou d une variable) très lourde. Utilisation des API des services d activités ( threads ) et d appel distant (RPC). - Peu d outils de développement disponible. Modèles pour le client serveur 55
56 RPC Version de base : Conclusion Un mécanisme améliorant et simplifiant de façon significative la structuration des applications réparties par rapport au mode message. Un mécanisme de bas niveau - Permet de décrire l interaction d appel de procédure entre deux programmes : pas de vision globale de l application. - Mécanisme de base d appel synchrone : besoin de sémantiques plus variées, de services additionnels : désignation, sécurité, - Outils de développement limités à la génération automatique des souches mais à la base rien pour le déploiement, la mise au point. Modèles pour le client serveur 56
57 MODELES CLIENT SERVEUR A OBJETS REPARTIS Modèles pour le client serveur 57
58 Client serveur à objets répartis A la convergence de deux approches. L'approche objet - Objet : une unité de programmation très utilisée permettant une structuration des applications performante. - Objet : associe les traitements et les données en rendant les codes moins coûteux à développer, à maintenir, à réutiliser. Données Methode M2 Methode M1 Objet O Abstraction Comportement communs => Typage. Encapsulation Association des actions aux données. Héritage Réutilisation du code. Polymorphisme Réutilisation des références. Modèles pour le client serveur 58
59 La répartition Une intégration de l univers objet et de l univers réparti Données Méthode M2 Méthode M1 Données Méthode M3 Site S1 Objet O1 M3 Site S2 Objet O2 - Placement des objets sur différents sites, les réseaux permettent réalisation de l opération d invocation entre objets. - L'interface du système d'objet réparti est un ensemble de primitives ou un langage objet concurrent et réparti offrant la possibilité d'implanter et d'exécuter à la demande des objets (donnée, traitement) sur des sites quelconques.. Création à distance d'instances. Exécution à distance des méthodes.. Autres fonctions ou services: transactionnel, sécurité, placement... Modèles pour le client serveur 59
60 Objets répartis : Réalisation d une invocation Eléments d une invocation - Référence d objet ( pointeur universel d objet au niveau système réparti) - Identification de la méthode appelée (une chaîne). - Paramètres d appel et de retour et signaux d exception Modes de transmission possibles. par valeur (types élémentaires et types construits).. par référence (objets) Modèles pour le client serveur 60
61 Client serveur à objets répartis : mise en œuvre d une invocation Objet client Objet serveur A P P E L S O U C H E C L I E N T S S O E U R C V H E E U R Etat Méthode 1 Méthode 2 Méthode n Référence Méthode Paramètres Retour Paramètres Exceptions Modèles pour le client serveur 61
62 Systèmes d objets répartis homogènes langages - Une représentation unique des objets propre à un langage. Typiquement java, Instanciation de classes java. - Un mode d interaction optimisé (simplifié). Typiquement Java RMI ( Remote Method Invocation ). Modèles pour le client serveur 62
63 Systèmes d objets répartis hétérogènes ouverts - Supportent une variété importante de formes d objets (choix des références, de représentation, d invocation,.) définis par différents environnements langages et systèmes. - Un mode d interaction unique sur lequel se projettent tous les modes d interaction. OMG/CORBA Object Management Group / Common Object Requests Broker Architecture Microsoft OLE/DCOM "Object Link Embedding / Distributed Component Object Model". Modèles pour le client serveur 63
64 ENVIRONNEMENT A OBJETS REPARTIS, EXEMPLE : CORBA Un modèle de référence pour une architecture dédiée aux d'objets répartis. Environnement cooperatif de composants client-server Objets applicatifs Services CORBA Facilités CORBA Echangeur de requêtes objets "ORB Object Request Broker" CORBA permet à des objets (des composants) d'interagir en univers ouvert Découvrir la localisation, réaliser les invocations, pour de nombreux langages, environnements d'exécution, réseaux de communication. Modèles pour le client serveur 64
65 ARCHITECTURE CORBA 2.0 Client (appelant) Operation () In Arguments Valeurs d'appel Out Arguments Valeurs retour Serveur (appelé) Invocation dynamique DII Souches clients (invocation statique) IDL Stubs Interface ORB Squelettes Souches serveurs dynamique Squelettes DSI IDL Skeletons Adaptateur d'objets Noyau échangeur de requêtes ("ORB Core") (protocoles GIOP / IIOP) "OA Object Adapter" Référentiel d'interfaces Référentiel d'implantations Ex : L'interface d'invocation statique Langage IDL CORBA ("Interface Definition Language"). Les souches clients sont définies dans l'idl CORBA ("Interface Definition Language"). Modèles pour le client serveur 65
66 Exemple de déclaration d'interface en langage IDL module Voiture { /* Définition d'une classe cabriolet */ interface Cabriolet : véhicule_thermique ; { attribute integer consommation ; exception Panne (string explication) ; void accélère ( in short durée) raises (Panne) ; void freine ( in short durée) raises (Panne) ;... } interface Monospace : véhicule_thermique; { attribute integer place ; void accélère ( in short durée)... } } /* Fin de module */ Modèles pour le client serveur 66
67 Objets répartis : Conclusion Avantages Si le paradigme objet réparti est adopté : uniformisation de toutes les abstractions utilisées sous le concept objet. Simplifie et uniformise les accès et les communications offerts par les réseaux, les interfaces systèmes et les codes utilisateurs. - Désignation universelle. - Interactions de communication simplifiées et universelles. - Protection et sécurité universelle Modèles pour le client serveur 67
68 Inconvénients (actuels) - Performance des systèmes et applications développées en approche objets répartis. Les solutions objets imposent des délais d'interactions très importants. - Faiblesse des outils de développement (production des applications, déploiement, administration. - Faiblesse de la normalisation permettant l'interopérabilité des applications. Modèles pour le client serveur 68
69 MODELES CLIENT SERVEUR A COMPOSANTS Modèles pour le client serveur 69
70 Client serveur à composants : Origines La gestion de documents composites Objectif : simplification du processus de création et d utilisation des documents composites c est à dire formés à partir de documents d origines différentes. Problèmes à résoudre : interopérabilité entre composants logiciels binaires créés par des utilitaires différents. Solutions : Environnement d interaction unique en approche client serveur, formats de données pivot, procédure de conversion. Exemples:OLE/COM, OPENDOC/CORBA La synthèse graphique A partir d objets graphiques : même problème que précédemment. Modèles pour le client serveur 70
71 Illustration gestion de documents composites OLE/COM : Objects Linking and Embedding Component Object Model Opendoc : Incorporation (embedding) Document 3 (texte) Lien vers document 1 Copie de document 3 Lien vers document 2 Document 1 (image) Liens (linking) Document 2 (tableau) Document composite Modèles pour le client serveur 71
72 Client serveur à composants : la vision actuelle (1) Quelques idées pour une notion de composant qui diffère du modèle objet réparti. 1 Composant : une unité de code de taille significative Idée assez souvent reprise bien qu un peu controversée. 2 Composant : une unité de réutilisation et d intégration Réutilisation : code (binaire) existant à intégrer dans une application. Notion de composant sur étagères. COTS : Components Off The Shelf. Intégration : rajouter de la glu. ADL : Architecture Definition Language. Modèles pour le client serveur 72
73 Client serveur à composants : la vision actuelle (2) 3 Composant :une unité d administration en réparti Déploiement : Un code développé pour un environnement système et qui doit retrouver pour son exécution cet environnement (conteneur). Suivi : du fonctionnement du composant. 4 Composant: pour associer des propriétés non fonctionnelles à un code Code de base : pour un environnement donné, doit être adapté pour supporter un autre environnement : pannes, temps réel, Propriétés non fonctionnelles : ajoutées à la sémantique fonctionnelle du service. Persistance : service transactionnel. Echéances : QOS temps réel, Sécurité : authentification des clients et autorisation des accès. Modèles pour le client serveur 73
74 Composants : Les avantages attendus La possibilité de construire des logiciels par assemblage de composants commerciaux. Réutilisation de logiciels existants testés. Amélioration de la modularité et des interfaces. Cycle de développement raccourci. Extensibilité en exécution ( Run-time ) des applications basées composants. Des systèmes plus maintenable. Amélioration des moyens de communication. Construction de systèmes plus portables. Des modèles de développements logiciels plus abstraits (scripts langages ADL) Modèles pour le client serveur 74
75 ENVIRONNEMENT A COMPOSANTS, EXEMPLE : CCM CORBA COMPONENTS MODEL Un apport important de CORBA 3 qui étend sur différents points le modèle objet réparti. CORBA extensions CIDL Component Implementation Definition Language Notion de ports facettes, réceptacles, sources et puits d événements, attributs. Pour définir un graphe de connexions. - Interfaces multiples. - Interfaces offertes (réceptacles) et demandées (clauses use et provide) Un service de configuration de composants - Notion d attributs Modèles pour le client serveur 75
76 Fonctionnalités CCM Un service d événements prévu d emblée Notification Service (modèle push) Une standardisation du cycle de développement CIF Component Implementation Framework Une standardisation du cycle de déploiement Notion de conteneur : gère un composant selon ses besoins. - Une vue unifiée pour le composant de l environnement en exécution. - Interfaces offertes aux composants pour les services CORBA (minimum POA et ORB, autres services persistance, sécurité, selon besoins). Une proposition qui récupère la base objets répartis CORBA existante Modèles pour le client serveur 76
77 Client serveur à composants : Conclusion Avantages Un objectif atteint: offrir des solutions à quelques problèmes bien identifiés de l approche objets répartis en insistant d abord et avant tout sur la réutilisation. Inconvénients De nombreux problèmes restent posés - Courtage : Retrouver un composant en fonction de ses propriétés syntaxiques mais aussi sémantiques pour apparier les interfaces demandées et offertes, les besoins systèmes et les conteneurs. - Cadre pour l adaptation des composants à des environnements quelconques : programmation par aspects. - Faiblesse de la réflexion d ensemble sur la répartition. Modèles pour le client serveur 77
78 MODELES CLIENT SERVEUR A CODE MOBILE Modèles pour le client serveur 78
79 Code Mobile : Généralités Assurer les interactions distantes en déplaçant le code à exécuter. Exemples : requêtes SQL, applet Java, sérialisation d objets JAVA Motivation essentielle Rapprocher les traitements des données pour réduire le volume des échanges. Nombreux exemples évoqués - Collecte d informations disséminées dans un réseau (recherche et filtrage). - Surveillance de données. - Administration de réseaux. - Reconfiguration, Placement. - Réseaux actifs. - Distribution d informations ciblées. - Applications orientées flots de données ( workflow ). - Négociation (agendas, commerce électronique, enchères, ). - Calcul parallèle (envoi de calculs). - Jeux en réseaux. Modèles pour le client serveur 79
80 Code Mobile : Nombreux problèmes Interopérabilité des codes exécutables : - Mêmes architectures machines, mêmes environnements systèmes - Utilisation d interpréteurs dans les mêmes environnements. Sécurité (avec méfiance mutuelle) - du site acceptant du code. - De l agent mobile Structuration des applications à base de code mobile : Intégration avec d autres approches du client serveur. Transparence de la programmation en code mobile? Partage des ressources Quelle cohérence? Que déplace t on?comment? Migration faible/forte? Modèles pour le client serveur 80
81 Code Mobile : Modèles d exécution pour la mobilité - Code à la demande. Mobilité Faible. On bouge du code sans contexte variable (Exemple : applet java) Site A Code Site B Processus Code - Agents Mobiles. Mobilité Forte. On bouge du code exécutable, des données locales, un contexte d exécution Site A Processus 1 Code, CTX Site B Processus 2 Code, CTX Modèles pour le client serveur 81
82 Code Mobile : Etude de la mobilité forte Notions utilisées Objets: les unités de codes exécutables (clients et serveurs) (objets passifs). Sites : environnements d exécution. Activités: flots de contrôle des appels s étendant sur plusieurs objets ou sites. Domaines : ensembles de droits sur des ressources d une machine (en particulier sur des segments de mémoire). Base de la classification - Les activités sont dans le même domaine. - Les activités sont dans des domaines différents du même site. - Les activités sont dans des domaines différents de sites différents. Modèles pour le client serveur 82
83 Types de partage Partage dans le même domaine - Réalisé systématiquement (notion de grappe, cluster d objets). Partage entre domaines différents - Opération de changement de domaine. - Mécanisme de couplage entre domaines et objets. Partage en exclusion mutuelle - Une seule activité est autorisée à un instant donné à utiliser un objet - Agréable pour assurer la cohérence de sérialisation des objets. Partage avec réplication - Nécessité de mise en œuvre d une stratégie de cohérence par l application entre les différentes copies. Modèles pour le client serveur 83
84 Partage par migration en exclusion mutuelle N autoriser le partage que sur un seul site. => Exclusion mutuelle entre les sites ayant accès à l objet. => Mécanisme de déplacement des objets ou des activités. Migration des activités - Une activité voulant accéder à un objet déjà couplé sur un autre site change de site. - On effectue alors un partage d accès entre activités sur le même site (même domaine ou domaines différents). Migration des objets - Une activité voulant accéder à un objet d un autre site demande le découplage de l objet (opération de fermeture nécessaire si l objet est en cours d accès). - L objet est déplacé sur le site client. - L objet est couplé sur le site client. Modèles pour le client serveur 84
85 Partage par réplication - Autoriser la possibilité le couplage d un même objet sur plusieurs sites en même temps. - Assurer la cohérence entre les versions des objets qui permet aux applications utilisatrices de fonctionner correctement. a) Les problèmes de cohérences sont vus au niveau applicatif : détection des lectures et des écritures dans les variables partagées à la compilation => Appel à un code de mise en œuvre d une cohérence de partage. b) Les problèmes de cohérence sont vus au niveau des accès mémoire : plus facile en exécution à l aide des outils de détection matériels. => Le partage est vu au niveau de la mémoire physique (approche de mémoire virtuelle partagée répartie). Modèles pour le client serveur 85
86 ENVIRONNEMENTS A CODE MOBILE, EXEMPLE : LES AGLETS Une extension proposée par IBM Japon qui étend le modèle des applets Java. - Comme une applet une aglet permet la transmission d un code Java. - L API Aglet permet également le transport de l état (en fait une partie). - La gestion de la sécurité est renforcée par l utilisation par les aglets d un gestionnaire de sécurité spécifique. Modèles pour le client serveur 86
87 Le cycle de vie d une aglet Created: création : initialisation de l état, lancement des activités threads. Cloned: duplication : l état courant original d une aglet est dupliqué dans un clone). Dispatched: Une aglet migre sur un autre hôte avec son état. Retracted: Une aglet ayant migré est ramenée du site distant avec son état. Deactivated: Une aglet est mise en sommeil : son état est stocké sur disque. Activated: Une aglet désactivée est réctivée : son état est restauré partir du disque. Disposed of: Une aglet est détruite : son état est perdu. Modèles pour le client serveur 87
88 Migration d une aglet Mécanisme de sérialisation Java (JDK 1.1) Un objet Java appartenant à une aglet est transmis d un site à un autre au moyen du mécanisme de sérialisation : transformation en une suite d octets et opération inverse. Sérialisation d une aglet - Sérialisation d un objet Java de base associé à l aglet. - Sérialisation de l arbre des objets Java formant l aglet. - Sérialisation d une partie du contexte. Image du tas dans sa partie données. Pas de sérialisation du pointeur d exécution courant, ni de la pile (difficultés techniques liées à la JVM). => Pas tout à fait encore complet. => Tout ce que l on veut envoyer doit être placé manuellement dans le tas au moment de la migration. Modèles pour le client serveur 88
89 L API Aglets Cinq classes standards peuvent être redéfinies pour adapter l aglet lors d une opération de migration: oncloning() : appelé avant clonage ondispatch() : appelé avant migration. OnReverting(): appelé avant retraction. ondeactivating() : appelé avant la désactivation. ondisposing() : appelé avant la destruction. Les points d entrées correspondants sont : clone(), dispatch(), retract(), deactivate(), dispose(). Lors d une initialisation, on exécute selon les cas run()de la classe. oncreation() : la première fois onclone() : lors d un clonage onarrival() : lors d une migration ou d un retour onactivation() : lors d une activation. Modèles pour le client serveur 89
90 Code Mobile : Conclusion - Des avantages indiscutables pour le client serveur dans certaines circonstances : besoin de dynamicité, d adaptabilité, Possibilité d exécution à distance Code à la demande - Un domaine très porteur Nombreux prototypes de recherche Concepts et mécanismes encore en cours d étude. - Des problèmes non résolus Sécurité. Environnements de développement. Des applications à réaliser. Modèles pour le client serveur 90
91 MODELES CLIENT SERVEUR A MEMOIRE PARTAGEE REPARTIE Modèles pour le client serveur 91
92 Mémoire partagée répartie: Généralités Réalisation des interactions distantes en mémoire commune répartie comme espace de communication. Exemples Opération read et write sur des pages. Exemples : treadmarks, Modèles à espaces de tuples Exemples : BD réparties, javaspaces Modèles à espaces d objets répartis partagés. Motivation essentielle Offrir à un développeur les conditions de travail de l univers centralisé : programmation de la coopération par variables partagées masquant les difficultés de la répartition. Modèles pour le client serveur 92
93 Mémoire partagée répartie : Les problèmes principaux Performance des implantations. Support des diverses cohérences. Cohérences fortes Atomique, séquentielle Cohérences faibles Causale, relachée. Support des outils de développement existants : langages, compilateurs, dévermineurs. Modèles pour le client serveur 93
94 Mémoire partagée répartie : principes de réalisation Une simulation d un espace mémoire unique dans un ensemble d espaces mémoires réels distribués. Site A Mémoire Objet 1 Site B Mémoire Objet 3 Espace virtuel commun Objet 1 Objet 2 Objet 3 - Espace d objets répartis partagés. - Interface d accès commune (nommage, invocation des méthodes, ) - Mode de réalisation par projection de l espace virtuel partagé dans l espace mémoire réel des différents sites. Modèles pour le client serveur 94
95 ENVIRONNEMENTS MEMOIRE PARTAGEE REPARTIE, EXEMPLE : JAVASPACES - Un javaspace : un espace de tuples ou entrées. - Une entrée : un ensemble de références à des objets Java. JAVASPACE Références Entrée Modèles pour le client serveur 95
96 Javaspaces : les opérations de base - Ecriture dans un javaspace (read). - Lecture dans un javaspace (write) - Retrait dans un javaspace (take) - Notification de l écriture d une entrée (notify). - Transaction regroupant plusieurs opérations dans plusieurs javaspaces (respect des propriétés ACID). Cohérence transactionnelle (de sérialisation) Persistance transactionnelle (technique de validation). Modèles pour le client serveur 96
97 Javaspaces : les techniques d utilisation - Pas de modifications sur les données : on ajoute ou on retire des références. - Coopération entre applications réparties pour connaître des références (mécanismes d accès au moyen de templates, des modèles pour la recherche d entrées). Découplage entre client et serveur. - La sérialisabilité transactionnelle garantit la cohérence des accès. - Le partage des objets réels s effectue ensuite au moyen de l invocation de méthodes (RMI). - Les objets réels peuvent être dupliqués. Tout reste à construire (cohérence) dans le partage des objets réels. Modèles pour le client serveur 97
98 Mémoire partagée répartie: Conclusion Avantages - Facilité de développement d une application répartie ou de portage d une application centralisée en univers réparti. - Performances excellentes lorsque l objet est chargé localement. Inconvénients - Performances mauvaises lorsque l objet est distant (les cohérences fortes sont très coûteuses en réparti). - Les cohérences faibles sont plus performantes mais délicates d emploi. - L approche est très peu ouverte un seul langage interprété ou une seule forme de présentation des données sinon il faut en plus convertir les données à chaque déplacement. Modèles pour le client serveur 98
99 Conclusion : Modèles et outils de programmation pour le client-serveur Modèles pour le client serveur 99
100 Problème majeur pour le développeur d applications: quel modèle, quel outil Une très grande variabilité de l offre aussi bien sur le plan des modèles que sur celui des plateformes. - Mode de synchronisation distante : synchrone ou asynchrone. - Approche langage ou système effort de développement complexité du système produit. - Développement d un nouveau code pour le réparti ou intégration des solutions centralisées existantes. - Granularité des codes communicants grain moyen in the small : objet réparti gros grain in the large : composants. Modèles pour le client serveur 100
101 Bibliographie Références générales R. Balter Modes de structuration d applications réparties. Cours de l école d été : Construction des applications réparties. G.Gardarin, O. Gardarin. le client serveur Eyrolles 1996 R. Orfali, D. Harkey, J. Edwards Client serveur guide de survie Wiley Modèles à messages et à événements htttp:// Modèles à RPC et à Objets Modèles pour le client serveur 101
102 Bibliographie (suite) Modèles à code mobile D. Hagimont, J. Mossière Problèmes de désignation, de localisation et d accès dans les systèmes répartis à objets TSI 15(1) 1996 Sacha Krakowiak Code mobile, Principes et mise en œuvre Cours de l école d été : Construction des applications réparties. J.E. White, Telescript Technology: The Foundation for the Electronic Market-place, General Magic Inc., Mountain View, CA, Modèles pour le client serveur 102
NFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
CORBA. (Common Request Broker Architecture)
CORBA (Common Request Broker Architecture) Projet MIAGe Toulouse Groupe 2 1 CORBA, introduction (1/4) Les systèmes répartis permettent de créer des applications basées sur des composants auto-gérables,
Le modèle client-serveur
Le modèle client-serveur Olivier Aubert 1/24 Sources http://www.info.uqam.ca/~obaid/inf4481/a01/plan.htm 2/24 Historique architecture centralisée terminaux passifs (un seul OS, systèmes propriétaires)
Software Engineering and Middleware A Roadmap
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
Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction
Plan du cours Autres modèles pour les applications réparties Introduction [email protected] http://rangiroa.polytech.unice.fr Notre terrain de jeu : les systèmes répartis Un rappel : le modèle dominant
Composants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
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 [email protected] Transparents Disponibles
Messagerie asynchrone et Services Web
Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS
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 [email protected] Applications réparties Def : Application s exécutant
CORBA haute performance
CORBA haute performance «CORBA à 730Mb/s!» Alexandre DENIS PARIS/IRISA, Rennes [email protected] Plan Motivations : concept de grille de calcul CORBA : concepts fondamentaux Vers un ORB haute performance
Introduction aux intergiciels
Introduction aux intergiciels M. Belguidoum Université Mentouri de Constantine Master2 Académique M. Belguidoum (UMC) Introduction aux intergiciels 1 / 39 Plan 1 Historique 2 Pourquoi l'intergiciel? 3
Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Patrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Systèmes répartis. Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Systèmes répartis p.1/49
Systèmes répartis Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis p.1/49 Systèmes répartis Définition très large : un système réparti est système informatique
Urbanisme du Système d Information et EAI
Urbanisme du Système d Information et EAI 1 Sommaire Les besoins des entreprises Élément de solution : l urbanisme EAI : des outils au service de l urbanisme 2 Les besoins des entreprises 3 Le constat
Conception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
Architectures d'intégration de données
Architectures d'intégration de données Dan VODISLAV Université de Cergy-ontoise Master Informatique M1 Cours IED lan Intégration de données Objectifs, principes, caractéristiques Architectures type d'intégration
Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs
Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs Jean-Pierre Meinadier Professeur du CNAM, [email protected] Révolution CS : l utilisateur
Description de la formation
Description de la formation Modalités Ce parcours de formation est un parcours en alternance, d une durée de 2ans, à raison d une semaine de formation par mois, soit 770 heures et de trois semaines de
Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.
: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL
Architectures n-tiers Intergiciels à objets et services web
Plan pour aujourd hui Architectures n-tiers Intergiciels à objets et services web Clémentine Nebut Nebut LIRMM / Université de Montpellier 2 [email protected] Introduction Architectures classiques
Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration
Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...
Module BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet [email protected] 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Intégration de systèmes
Intégration de systèmes Préparé par: Marc Barassi, Michel Fraser, Louis Martin, Martin Simoneau Collaboration spéciale: François Boucher et Richard Boutin 3/18/14 Intégration de systèmes «L ensemble des
Cours de Génie Logiciel
Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,
Remote Method Invocation en Java (RMI)
Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation
BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer
Bases de Données Réparties Définition Architectures Outils d interface SGBD Réplication SGBD répartis hétérogènes BD réparties Principe : BD locales, accès locaux rapides accès aux autres SGBD du réseau
Java et les bases de données
Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples
Intergiciel - concepts de base
Intergiciel - concepts de base Ada Diaconescu, Laurent Pautet & Bertrand Dupouy ada.diaconescu _at_ telecom-paristech.fr Rappel : système réparti Système constitué de multiples ressources informatiques
Prise en compte des ressources dans les composants logiciels parallèles
Prise en compte des ressources dans les composants logiciels parallèles Aperçus de l action RASC et du projet Concerto F. Guidec [email protected] Action RASC Plan de cet exposé Contexte Motivations
Module BDR Master d Informatique (SAR)
Module BDR Master d Informatique (SAR) Cours 6- Bases de données réparties Anne Doucet [email protected] 1 Bases de Données Réparties Définition Conception Décomposition Fragmentation horizontale et
Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles
Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce
Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1
Urbanisation des SI Des composants technologiques disponibles Urbanisation des Systèmes d'information Henry Boccon Gibod 1 Plan de l'exposé Technologies à la mode disponibles. Bus de données, ETL et EAI
Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence
É C O L E D I N G É N I E U R D E S T E C H N O L O G I E S D E L I N F O R M A T I O N E T D E L A C O M M U N I C A T I O N Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION Mentions
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 ([email protected]), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime
4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre [email protected] Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
WEA Un Gérant d'objets Persistants pour des environnements distribués
Thèse de Doctorat de l'université P & M Curie WEA Un Gérant d'objets Persistants pour des environnements distribués Didier Donsez Université Pierre et Marie Curie Paris VI Laboratoire de Méthodologie et
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
RMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
MEAD : temps réel et tolérance aux pannes pour CORBA
MEAD : un intergiciel temps-réel et tolérant aux pannes pour CORBA Master 2 Informatique Recherche Université de Marne-la-Vallée Vendredi 3 mars 2006 Plan 1 Introduction 2 Solutions existantes 3 Concilier
Module BDR Master d Informatique (SAR)
Module BDR Master d Informatique (SAR) Cours 9- Transactions réparties Anne Doucet [email protected] Transactions réparties Gestion de transactions Transactions dans un système réparti Protocoles de
Environnements de Développement
Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna [email protected] Développement des systèmes d Information Syllabus
Java - RMI Remote Method Invocation. Java - RMI
Remote Method Invocation Yann Viémont Université de Versailles St-Quentin Plan 1. Introduction 2. Rappels sur les RPC 3. Le modèle objet de Java-RMI 4. Architecture générale 1. Introduction = Disponible
Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique
Services OSI Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique 59 SERVICES "APPLICATION" Architecture spécifique : ALS (Application Layer
Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet [email protected] Université Paul Sabatier
Intergiciels pour la répartition CORBA : Common Object Request Broker Patrice Torguet [email protected] Université Paul Sabatier Plan du cours 2 Introduction à CORBA Architecture de l ORB Implémentation
Les nouvelles architectures des SI : Etat de l Art
Les nouvelles architectures des SI : Etat de l Art Objectif Mesurer concrètement les apports des nouvelles applications SI. Être capable d'évaluer l'accroissement de la complexité des applications. Prendre
Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Bases de Données. Stella MARC-ZWECKER. [email protected]. Maître de conférences Dpt. Informatique - UdS
Bases de Données Stella MARC-ZWECKER Maître de conférences Dpt. Informatique - UdS [email protected] 1 Plan du cours 1. Introduction aux BD et aux SGBD Objectifs, fonctionnalités et évolutions
Vulgarisation Java EE Java EE, c est quoi?
Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards
Remote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Introduction à WebSphere MQ
Guide WMQ WAS 14/02/2008 Introduction à WebSphere MQ Luc-Michel Demey http://demey demey-consulting.fr WebSphere MQ Logiciel IBM, catégorie «middleware» Autres noms : MQSeries MQM WMQ Version 1 en 12/1994
Compte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués
Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hé[email protected]
Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui
Formation PARTIE 1 : ARCHITECTURE APPLICATIVE DUREE : 5 h Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui automatisent les fonctions Définir une architecture
Initiation aux bases de données (SGBD) Walter RUDAMETKIN
Initiation aux bases de données (SGBD) Walter RUDAMETKIN Bureau F011 [email protected] Moi Je suis étranger J'ai un accent Je me trompe beaucoup en français (et en info, et en math, et...)
Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki
Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
Les Architectures Orientées Services (SOA)
Les Architectures Orientées Services (SOA) Ulrich Duvent Guillaume Ansel Université du Littoral Côte d Opale 50, Rue Ferdinand Buisson BP 699 62228 Calais Cedex Téléphone (33) 03.21.46.36.92 Télécopie
Évaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Chapitre 2 - Architecture logicielle et construction d applications client-serveur
Chapitre 2 - Architecture logicielle et construction d applications client-serveur «Toute technologie suffisamment avancée est indiscernable de la magie» (Arthur Clarke) Résumé La méthodologie MEDEVER
Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware
1 Introduction Ce chapitre décrit Oracle Fusion Middleware. Il comprend : o Qu'est-ce que Middleware o Les fonction de Middleware o L'architecture de conception Middleware o L'architecture orientée services
Groupe Eyrolles, 2004 ISBN : 2-212-11504-0
Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Table des matières Avant-propos................................................ 1 Quel est l objectif de cet ouvrage?............................. 4 La structure
REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit
v 1.0.0 PD 20 mars 2008 Mouvements d arrivée / départ de personnels Description produit Fonctionnalités L application Gestion des mouvements d arrivée / départ de Requea permet la gestion collaborative
Information utiles. [email protected]. 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 : [email protected] webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/
C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes. http://sardes.inrialpes.fr
Emmanuel Cecchet INRIA, Projet Sardes http://sardes.inrialpes.fr Plan Motivations Idées principales Concepts Caching Perspectives /ObjectWeb 15 octobre 2002 [email protected] 2 - Motivations
NSY102. Conception de logiciels Intranet Introduction
Conception de logiciels Intranet Introduction Cnam Paris jean-michel Douin, douin au cnam point fr 6 Février 2009 Une Introduction 1 Sommaire Introduction Généralités Tendances historique API & Intergiciel
Semarchy Convergence for MDM La Plate-Forme MDM Évolutionnaire
FICHE PRODUIT Semarchy Convergence for MDM La Plate-Forme MDM Évolutionnaire BENEFICES POUR LES DSI Réussir les projets de gouvernance dans les délais et les budgets Démarrer de manière tactique tout en
Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI
Plan du chapitre Master Informatique et Systèmes Urbanisation des Systèmes d Information Architecture d Entreprise 04 Architecture du SI : identifier et décrire les services, structurer le SI 1 2 3 1.1
Projet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines ([email protected]) Dr. MAHMOUDI Ramzi ([email protected]) TEST Sommaire Programmation JavaCard Les prérequis...
Urbanisation des Systèmes d'information
Urbanisation des Systèmes d'information Des composants technologiques disponibles Urbanisation des Systèmes d'information - Henry Boccon-Gibod 1 Plan de l'exposé Technologies à la mode disponibles. Bus
2 Chapitre 1 Introduction
1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné
BUSINESS INTELLIGENCE
GUIDE COMPARATIF BUSINESS INTELLIGENCE www.viseo.com Table des matières Business Intelligence :... 2 Contexte et objectifs... 2 Une architecture spécifique... 2 Les outils de Business intelligence... 3
Gestion répartie de données - 1
Gestion répartie de données - 1 Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia Gestion répartie de données Plan de la présentation Introduction
Introduction à LDAP et à Active Directory... 15. Étude de cas... 37
Introduction à LDAP et à Active Directory... 15 Généralité sur l annuaire et LDAP... 16 Qu est-ce qu un annuaire?... 16 Un peu d histoire sur le protocole... 16 LDAP version 2 et version 3... 17 Le standard
SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)
SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients
Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Le passage à l échelle de serveur J2EE : le cas des EJB
Le passage à l échelle de serveur J2EE : le cas des EJB Sylvain Sicard, Noël De Palma, Daniel Hagimont CFSE 4 5-8 Avril 2005 LSR 1 Plan de la présentation 1. Architecture de serveur J2EE en grappe 2. Problématique
INTRODUCTION AUX BASES de DONNEES
INTRODUCTION AUX BASES de DONNEES Équipe Bases de Données LRI-Université Paris XI, Orsay Université Paris Sud Année 2003 2004 1 SGBD : Fonctionnalités et Principes Qu est qu une base de données? Un Système
Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion
Projet But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables événements Serveur de diffusion 1 JMS Java Message Service PHAN Quang-Hai ISTR 04/05/2004
Implémentation des SGBD
Implémentation des SGBD Structure générale des applications Application utilisateur accédant à des données d'une base Les programmes sous-jacents contiennent du code SQL Exécution : pendant l'exécution
La carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Annuaires LDAP et méta-annuaires
Annuaires LDAP et méta-annuaires Laurent Mynard Yphise 6 rue Beaubourg - 75004 PARIS [email protected] - http://yphise.fr T 01 44 59 93 00 F 01 44 59 93 09 LDAP020314-1 Agenda A propos d Yphise Les annuaires
Evaluation Idéopass Cahier d analyse technique
Evaluation Idéopass Cahier d analyse technique Version 1 GMSIH 374, rue de Vaugirard 75015 Paris. Tel : 01 48 56 72 70. Fax : 01 48 56 07 70 Auteur(s) du document : Contrôle Qualité GMSIH Date : 17/03/2005
1. Introduction à la distribution des traitements et des données
2A SI 1 - Introduction aux SI, et à la distribution des traitements et des données Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle Support de cours élaboré avec l aide de
Classeur de suivi de l auditeur. Architecture et Ingénierie des Systèmes et des Logiciels
Classeur de suivi de l auditeur Architecture et Ingénierie des Systèmes et des Logiciels 04/12/2012 2 Sommaire Introduction... 4 Objectifs... 4 Méthodologie... 4 Coordonnées... 5 Curriculum vitae de l
D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.
PACBASE «Interrogez le passé, il répondra présent.». Le Module e-business Les entreprises doivent aujourd hui relever un triple défi. D une part, elles ne peuvent faire table rase de la richesse contenue
Réplication des données
Réplication des données Christelle Pierkot FMIN 306 : Gestion de données distribuées Année 2009-2010 Echange d information distribuée Grâce à un serveur central Une seule copie cohérente Accès à distance
XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million
XML, PMML, SOAP Rapport EPITA SCIA Promo 2004 16 janvier 2003 Julien Lemoine Alexandre Thibault Nicolas Wiest-Million i TABLE DES MATIÈRES Table des matières 1 XML 1 1.1 Présentation de XML.................................
Architectures web/bases de données
Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée
Surveiller et contrôler vos applications à travers le Web
Surveiller et contrôler vos applications à travers le Web Valérie HELLEQUIN Ingénieur d application Internet permet aujourd hui la diffusion d informations et de ressources que chaque utilisateur peut
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Bases de données relationnelles : Introduction
Bases de données relationnelles : Introduction historique et principes V. Benzaken Département d informatique LRI UMR 8623 CNRS Université Paris Sud [email protected] https://www.lri.fr/ benzaken/
Rapport d activité. Mathieu Souchaud Juin 2007
Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix
IBM Tivoli Monitoring, version 6.1
Superviser et administrer à partir d une unique console l ensemble de vos ressources, plates-formes et applications. IBM Tivoli Monitoring, version 6.1 Points forts! Surveillez de façon proactive les éléments
Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures
Software propose une offre d intégration unique, qui apporte l équilibre parfait entre investissements et performances pour les entreprises qui doivent sans cesse améliorer leurs processus. Des caractéristiques
ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010
ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle
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),
Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application
Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces
