Cours IDL Les Frameworks PDF

Summary

This document is a presentation on various frameworks, such as Java, Python, JFreeChart, and IDL frameworks for software development. It defines frameworks and highlights their advantages and potential disadvantages.

Full Transcript

Université Constantine 2 Faculté NTIC Département TLSI Cours IDL Les Frameworks Master 1 : IDSI Enseignant du module : Lezzar Fouzi Les architectures à Les Frameworks Les designs patterns base de composants Bibliothèque logicielle (Library)...

Université Constantine 2 Faculté NTIC Département TLSI Cours IDL Les Frameworks Master 1 : IDSI Enseignant du module : Lezzar Fouzi Les architectures à Les Frameworks Les designs patterns base de composants Bibliothèque logicielle (Library) En informatique, une bibliothèque logicielle est une collection de fonctions, compilée et prête à être utilisée par des programmes. En général une bibliothèque est un regroupement de code suffisamment structuré et documentée pour que d’autres programmeurs puissent s’en servir. La majeure partie des programmes disponibles dans la bibliothèque d’un langage est normalement écrite dans ce langage lui-même. 2 Les architectures à Les Frameworks Les designs patterns base de composants Quelques bibliothèques Java L'écosystème Java est très riche en bibliothèques open source qui couvrent de très nombreux sujets. Leur utilisation permet d'être productive avec des solutions fiables et stables. Il y a des bibliothèques déjà installées avec le JDK. Et d’autres qui doivent être téléchargées et intégrées avec le projet Java. 3 Les architectures à Les Frameworks Les designs patterns base de composants Bibliothèques Python NumPy et SciPy pour le calcul scientifique Pandas, Matplotlib, Seaborn et Plotly pour l'exploration et la visualisation des données. Scikit learn, PyCaret, Keras, PyTorch et TensorFlow pour le machine learning. 4 Les architectures à Les Frameworks Les designs patterns base de composants JFreeChart JFreeChart est une bibliothèque open source qui permet d'afficher des données statistiques sous la forme de graphiques. Elle possède plusieurs formats dont les barres , les lignes… 5 POC Les Frameworks Les designs patterns Framework Le développement des applications impose certaines contraintes : Nécessité de maitriser de nombreux concepts généraux (notamment celui de la POO, les design patterns, etc...). Nécessité de maitriser de nombreuses API qui sont de bas niveau Quasi absence d'outils de type RAD  Ces facteurs allongent la durée de la courbe d'apprentissage des développeurs et complexifient l'architecture des applications.  De ce fait, le concept de Framework est apparu 6 Les architectures à Les Frameworks Les designs patterns base de composants Définition En programmation informatique, un Framework (cadre de travail) est un ensemble cohérent de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel. Un Framework est une boîte à outils conçue par un ou plusieurs développeurs à destination d'autres développeurs. Contrairement à certains scripts tels que WordPress, Joomla ou autres, un Framework n'est pas utilisable tel quel. Il n'est pas fait pour être utilisé par les utilisateurs finaux. Le développeur qui se sert d'un Framework a encore du boulot à fournir. Développeur 2 Développeu Utilisateur Utilisateur du r1 final Framework pour Créateur du du logiciel 7 développer un Framework Les architectures à Les Frameworks Les designs patterns base de composants L'objectif d'un Framework est de faciliter la mise en œuvre des fonctionnalités de son domaine d'activité. Il doit permette au développeur de se concentrer sur les tâches spécifiques à l'application à développer plutôt qu'à des tâches techniques récurrentes telles que : l'architecture de base de l'application l'accès aux données l'internationalisation la journalisation des événements (logging) la sécurité (authentification et gestion des rôles) le paramétrage de l'application... 8 Les architectures à Les Frameworks Les designs patterns base de composants Pour choisir un Framework, les caractéristiques suivantes doivent être prises en compte : adoption par la communauté la qualité de la documentation le support (commercial ou communautaire) le support par les outils de développement 9 Les architectures à Les Frameworks Les designs patterns base de composants Différences entre les bibliothèques et les Frameworks Un Framework se distingue d'une simple bibliothèque logicielle principalement par : son caractère générique, faiblement spécialisé, contrairement à certaines bibliothèques ; un Framework peut à ce titre être constitué de plusieurs bibliothèques chacune spécialisée dans un domaine. le cadre de travail (traduction littérale de Framework) qu'il impose de par sa construction même, guidant l'architecture logicielle voire conduisant le développeur à respecter certains patterns ; les bibliothèques le constituant sont alors organisées selon le même paradigme. 10 Les architectures à Les Frameworks Les designs patterns base de composants Quelques Frameworks Il y a un grand nombre de Framework : - Google Web Toolkit - Hibernate - Angular - … 11 Les architectures à Les Frameworks Les designs patterns base de composants Comme tout bon développeur, lorsqu'on veut utiliser un nouvel outil, on doit en peser le pour et le contre pour être sûr de faire le bon choix 12 Les architectures à Les Frameworks Les designs patterns base de composants Avantages L'avantage premier est donc, on vient de le voir, le gain en productivité. Tout d'abord, un Framework va nous aider à réaliser un « bon code ». Par «bon code », nous entendons qu'il nous incite, de par sa propre architecture, à bien organiser notre code. Et un code bien organisé est un code facilement maintenable et évolutif. De plus, un Framework offre des briques prêtes à être utilisées (le composant Formulaire de Symfony2 par exemple), ce qui nous évite de réinventer la roue, et surtout qui nous permet d'utiliser des briques puissantes et éprouvées. En effet, ces briques sont développées par des équipes de développeurs chevronnés, elles sont donc très flexibles et très robustes. Nous économisons ainsi des heures de développement. 13 POC Les Frameworks Les designs patterns Inconvénients Une courbe d'apprentissage qui est plus élevée. En effet, pour maîtriser un Framework, il faut un temps d'apprentissage non négligeable. Chaque brique qui compose un Framework a sa complexité propre qu'il nous faudra appréhender. En comprendre la “philosophie” et l’architecture du Framework. 14 Les architectures à Les Frameworks Les designs patterns base de composants Pour résumé : L’utilisation des Framework offre les avantages suivants : Évitent de reprogrammer les fonctionnalités récurrentes De nombreux services déjà disponibles Respectent les règles de bonnes pratiques Compréhensibilité et réutilisation des modules de l’application 15 Les architectures à Les Frameworks Les designs patterns base de composants Développeur Red Hat Dernière version 6.5.0 (25 avril 2024) Écrit en Java Environnement Multiplate-forme (JVM) Type Mapping objet-relationnel Licence Open source et libre Site web http://www.hibernate.org 16 Les architectures à Les Frameworks Les designs patterns base de composants Hibernate est un outil ORM (Object-Relational Mapping). « On pourrait le désigner par : correspondance entre monde objet et monde relationnel » Hibernate est un Framework java open source gérant la persistance des objets en bases de données relationnelles. Solution pour faire le lien entre la programmation objet et les SGBD : les accès à la base de données sont gérés par des objets et des méthodes Java. Hibernate permet donc de représenter une base de données en objets Java et vice versa. 17 Les architectures à Les Frameworks Les designs patterns base de composants Persistance des objets En programmation, la gestion de la persistance des données et parfois des états d'un programme réfère au mécanisme responsable de la sauvegarde et de la restauration de données. Ces mécanismes font en sorte qu'un programme puisse se terminer sans que ses données et son état d'exécution ne soient perdus. 18 Les architectures à Les Frameworks Les designs patterns base de composants Hibernate Hibernate est adaptable en termes d'architecture, il peut donc être utilisé aussi bien dans un développement client lourd, que dans un environnement web léger ou dans un environnement JEE complet. 19 Les architectures à Les Frameworks Les designs patterns base de composants Mapping objet-relationnel Un mapping objet-relationnel (en anglais object-relational mapping ou ORM) est une technique de programmation informatique qui crée l'illusion d'une base de données orientée objet à partir d'une base de données relationnelle en définissant des correspondances entre cette base de données et les objets du langage utilisé. L'utilisation de la programmation orientée objet avec une base de données relationnelle nécessite de convertir les données relationnelles en objets et vice-versa. Ceci conduit à programmer cette conversion pour chaque objet et donc à dupliquer énormément de code similaire Du fait de la différence de modèles entre les bases de données et les langages de programmation (notamment les langages objet) la notion de correspondance entre modèles (en anglais : mapping) est centrale. 20 Les architectures à Les Frameworks Les designs patterns base de composants - X Applicatio Transformer n Java l’objet p en un enregistrement dans la table Base de class Personne{ personne données int numero; relationnelle String nom; String prenom; } Numé Nom Préno ro m Personne p = new Personne(); 1 nnn ppp p.numero = 1; p.nom = "nnn"; p.prenom ="ppp" ; La table personne 21 Les architectures à Les Frameworks Les designs patterns base de composants Outil ORM Base de Obje Outil données t ORM relationnelle Automatise ou facilite la correspondance entre des données stockées dans des objets et une base de données relationnelle Les principaux produits : TopLink d’Oracle (commercial) et Hibernate (open source) 22 Les architectures à Les Frameworks Les designs patterns base de composants Autres Framework de PHP 5 mapping objet-relationnel : – Doctrine Java – AgileToolKit (ATK4) – Hibernate – Syrius – Java Data Objects – pdoMap – Apache Cayenne Python – OJB - Object Relational – SQLAlchemy Bridge – AJO – SQLObject.Net – Django – CodeFluent Entities Node.js – Entity Framework – Mongoose – NHibernate – Sequelize Ruby Delphi – Active record – Synopse mORMot framework – RBatis, portage Perl de iBATIS en Ruby – DBIx::Class pour Ruby on Rails – Sequel – Rose::DB::Object – DataMapper – Class::DBI 23 Les architectures à Les Frameworks Les designs patterns base de composants Avantages (1/2) Gain de 30 à 40 % du nombre de lignes de certains projets Hibernate facilite la persistance et la recherche de données dans une base de données en réalisant lui même la création des objets et les traitements de remplissage de ceux-ci en accédant à la base de données. La quantité de code ainsi épargnée est très importante d'autant que ce code est généralement fastidieux et redondant. 24 Les architectures à Les Frameworks Les designs patterns base de composants Avantages (2/2) Améliore la portabilité du code pour des changements de SGBD Le développeur pense en termes d’objet et pas en termes de lignes de tables Sans outil ORM le développeur peut hésiter à concevoir un modèle objet «fin» afin d’éviter du codage complexe pour la persistance 25 Les architectures à Les Frameworks Les designs patterns base de composants Pourquoi les BD relationnelles ? Position dominante Grande facilité et efficacité pour effectuer des recherches complexes dans des grandes bases de données Facilité d’adaptation à des besoins différents Facilité pour spécifier des contraintes d’intégrité sans programmation Une théorie solide et des normes reconnues 26 Les architectures à Les Frameworks Les designs patterns base de composants Eléments nécessaires pour utiliser Hibernate Classe de persistance : une classe pour l'encapsulation des données d'une table Correspondance entre la classe et la table : fichier de mapping Propriétés de configuration : informations permettant la connexion à la BD 27 Les architectures à Les Frameworks Les designs patterns base de composants Architecture -X Applicati on Java Fichiers de mapping Classes de persistance Propriétés de configuration Hibernate 28 Les architectures à Les Frameworks Les designs patterns base de composants La création d'une classe qui va encapsuler les données class Personne { public void setNumero(int numero) { this.numero = numero; private int numero; } private String nom; private String prenom; public void setNom(String nom) { Personne(){ this.nom = nom; } } public int getNumero() { public void setPrenom(String return numero; prenom) { } this.prenom = prenom; public String getNom() { Cette } classe doit avoir un return nom; constructeur } } Encapsuler ses champs private public String getPrenom() par des setter et des getter { Les types utilisables pour les return prenom; propriétés son t les types } primitifs, les classes String et …. Dates, et les différents type de tableaux. 29 Les architectures à Les Frameworks Les designs patterns base de composants Configuration du fichier de mapping Fichier de mapping : Nom du fichier : nom de la classe Extension.hbm.xml 30 Les architectures à Les Frameworks Les designs patterns base de composants La création d'un fichier de correspondance (mapping) Pour assurer le mapping, Hibernate a besoin d'un fichier de correspondance (mapping file) au format XML qui va contenir des informations sur la correspondance entre la classe définie et la table de la base de données Il n'est pas recommandé de définir un fichier de mapping pour plusieurs classes. Le plus simple est de définir un fichier de mapping par classe, nommé du nom de la classe suivi par ".hbm.xml". Hibernate a besoin de savoir comment charger et stocker des objets d'une classe persistante. C'est là qu'intervient le fichier de mappage Hibernate. Le fichier de mappage indique à Hibernate à quelle table accéder dans la base de données, et les colonnes de cette table à utiliser. 31 Les architectures à Les Frameworks Les designs patterns base de composants La création d'un fichier de correspondance (mapping) Différents éléments sont précisés dans ce document XML : la classe qui va encapsuler les données l'identifiant dans la base de données et son mode de génération le mapping entre les propriétés de classe et les champs de la base de données 32 Les architectures à Les Frameworks Les designs patterns base de composants La création d'un fichier de correspondance (mapping) La structure basique de ce fichier de mappage ressemble à ce qui … Remarque : Nous omettrons la déclaration de la DTD dans les exemples futurs pour raccourcir le code. Évidemment l’enlevée il n'est pas optionnel. 33 Les architectures à Les Frameworks Les designs patterns base de composants La création d'un fichier de correspondance (mapping) Entre les deux balises hibernate-mapping, incluez un élément class. Le tag permet de préciser des informations sur la classe qui va encapsuler les données. Toutes les classes d'entités persistantes ont besoin d'un mappage vers une table de la base de données … 34 Les architectures à Les Frameworks Les designs patterns base de composants La création d'un fichier de correspondance (mapping) Le mappage de la propriété de l'identifiant unique vers la clé primaire des tables se fait comme suit : Le tag enfant du tag permet de fournir des informations sur l'identifiant d'une occurrence dans la table. L'attribut de mappage name="numero" déclare le nom de la propriété et indique à Hibernate d'utiliser les méthodes getNumero() et setNumero() pour accéder à la propriété Le tag , fils obligatoire du tag , permet de préciser quel est le mode de génération d'un nouvel identifiant 35 Les architectures à Les Frameworks Les designs patterns base de composants Les classes de génération fournies en standard par Hibernate possèdent chacun un nom : Nom Rôle identity utilisation d'un identifiant auto-incrémenté pour les bases de données qui le supportent (DB2, MySQL, SQL Server,...) sequenc utilisation d'une séquence pour les bases de données qui le supportent e (Oracle, DB2, PostgreSQL,...) uuid.hex utilisation d'un algorithme générant un identifiant de type UUID sur 32 caractères prenant en compte entre autre l'adresse IP de la machine et l'heure du système uuid.stri idem générant un identifiant de type UUID sur 16 caractères ng native utilise la meilleure solution proposée par la base de données assigned la valeur est fournie par l'application ….. …. 36 Les architectures à Les Frameworks Les designs patterns base de composants La création d'un fichier de correspondance (mapping) 41 Les architectures à Les Frameworks Les designs patterns base de composants 42 Les architectures à Les Frameworks Les designs patterns base de composants Configuration de Hibernate A ce niveau là, nous devrions avoir la classe persistante et son fichier de mappage en place. Pour la configuration de Hibernate, nous pouvons utiliser un simple fichier hibernate.cfg.xml. 43 Les architectures à Les Frameworks Les designs patterns base de composants Configuration de Hibernate Ce fichier est généralement crée automatiquement par les environnements de développement Java : org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/BD root ###### true org.hibernate.hql.classic.ClassicQueryTr 44 anslatorFactory Les architectures à Les Frameworks Les designs patterns base de composants L'élément property du dialecte spécifie quelle variante du SQL Hibernate va générer : SGBD Dialecte DB2 org.hibernate.dialect.DB2Dialect org.hibernate.dialect.DB2400Dial DB2 AS/400 ect org.hibernate.dialect.DB2390Dial DB2 OS390 ect org.hibernate.dialect.PostgreSQL PostgreSQL Dialect org.hibernate.dialect.MySQLDiale MySQL ct org.hibernate.dialect.OracleDiale Oracle (toutes versions) ct org.hibernate.dialect.Oracle9iDia Dialectes Oracle 9i SQL de Hibernate lect (hibernate.dialect) org.hibernate.dialect.Oracle10gD Oracle 10g ialect org.hibernate.dialect.SybaseDial45 Sybase Les architectures à Les Frameworks Les designs patterns base de composants L'obtention de données Hibernate utilise plusieurs moyens pour obtenir des données de la base de données : Hibernate Query Language (HQL) API Criteria : Query By Criteria (QBC) et Query BY Example (QBE) Requêtes SQL natives HQL est un langage d'interrogation extrêmement puissant qui ressemble au SQL. Mais ne soyez pas dupe de la syntaxe ; HQL est totalement orienté objet, cernant des notions comme l'héritage, le polymorphisme et les associations. 46 Les architectures à Les Frameworks Les designs patterns base de composants L'obtention de données Exemple : La requête Hibernate la plus simple est de la forme : from Cat Retourne toutes les instances de la classe Cat Remarque : Cat représente la classe et non la table Pour plus d’information : https://docs.jboss.org/hibernate/core/3.5/reference/fr/html/queryh ql.html 47 Les architectures à Les Frameworks Les designs patterns base de composants Google Web Toolkit Développeur Bruce Johnson et Google Dernière version 2.10.0 (09 janvier2024) Écrit en Java Type Applications Web Riches Licence Open source et libre Site web http://www.gwtproject.org/ 48 Les architectures à Les Frameworks Les designs patterns base de composants Les applications Internet Riches : Une Rich Internet Application (RIA), ou Application Internet Riche, est une application Web qui offre des caractéristiques similaires aux logiciels traditionnels installés sur un ordinateur 49 Les architectures à Les Frameworks Les designs patterns base de composants Avantages Aucune installation n'est nécessaire La distribution et la mise à jour de l'application est un processus instantané, invisible et non maitrisable pour l'utilisateur Les utilisateurs peuvent utiliser l'application depuis n'importe quel ordinateur équipé d'une connexion Internet et d'un navigateur récent Inconvénients Technologie qui dépend d’internet 50 Les architectures à Les Frameworks Les designs patterns base de composants Ajax : L'architecture informatique Ajax (acronyme d'Asynchronous JavaScript and XML) permet de construire des applications Web et des sites web dynamiques interactifs sur le poste client en se servant de différentes technologies ajoutées aux navigateurs web entre 1995 et 2005. Ajax combine JavaScript, les CSS, JSON, XML, le DOM et le XMLHttpRequest : – DOM et JavaScript permettent de modifier l'information présentée dans le navigateur en respectant sa structure ; – l'objet XMLHttpRequest sert au dialogue asynchrone avec le serveur Web ; – XML structure les informations transmises entre serveur Web et navigateur. – Outre le XML, les échanges de données entre client et serveur peuvent utiliser d'autres formats, tels que JSON. 51 Les architectures à Les Frameworks Les designs patterns base de composants Ajax : Créer des applications riches avec cette plate-forme de développement s'avère très difficile, étant donné que différentes technologies doivent interagir pour faire fonctionner l'ensemble, et que les travaux de compatibilité des navigateurs nécessitent beaucoup d'efforts, De nombreux éditeurs offrent des outils et frameworks permettant de simplifier l'écriture de telles applications. Le nombre de frameworks javascript est supérieur à 500. Les plus connus sont : Dojo jQuery GWT (Google Web Toolkit), toolkit proposé par Google qui permet d'écrire des RIA javascript/AJAX en utilisant Java, notamment sous forme d'extension pour Eclipse. Morfik édite AppsBuilder qui permet de développer dans une syntaxe C/Java/Pascal/Basic et de générer du code javascript. 52 Les architectures à Les Frameworks Les designs patterns base de composants Communication synchrone : 1 Lors de chaque manipulation faite par l'utilisateur, le navigateur envoie une requête contenant une référence à une page Web (via le 2 protocole HTTP), Puis le serveur Web effectue des calculs, et envoie le résultat sous 3 forme d'une page Web à destination du navigateur. Celui-ci affichera alors la page qu'il vient de recevoir. 4 Chaque manipulation entraîne la transmission et l'affichage d'une nouvelle page. L'utilisateur doit attendre l'arrivée de la réponse pour effectuer d'autres manipulations. 1 1 2 3 2 4 53 Les architectures à Les Frameworks Les designs patterns base de composants Communication Asynchrone (Comme pour Ajax): Un programme écrit en langage de programmation JavaScript, incorporé dans une page web, est exécuté par le navigateur. Celui-ci envoie en arrière-plan des demandes au serveur Web (via HTTP), puis modifie le contenu de la page actuellement affichée par le navigateur Web en fonction du résultat reçu du serveur, évitant ainsi la transmission et l'affichage d'une nouvelle page complète. Il nécessite de programmer les modifications à effectuer dans la page Web à la réception des réponses. En Ajax, comme le nom l'indique, les demandes sont effectuées de manière asynchrone : le navigateur Web continue d'exécuter le programme JavaScript alors que la demande est partie, il n'attend pas la réponse envoyée par le serveur Web et l'utilisateur peut continuer à effectuer des manipulations pendant ce temps, 54 Les architectures à Les Frameworks Les designs patterns base de composants Cloud Computing : Le cloud computing, ou l’informatique en nuage , est l'exploitation de la puissance de calcul ou de stockage de serveurs informatiques distants par l'intermédiaire d'un réseau, généralement Internet. Ces serveurs sont loués à la demande, le plus souvent par tranche d'utilisation selon des critères techniques (puissance, bande passante, etc.) mais également au forfait. 55 Les architectures à Les Frameworks Les designs patterns base de composants Il existe trois catégories de services qui peuvent être offerts en cloud computing : Saas Pass Iaas 56 Les architectures à Les Frameworks Les designs patterns base de composants SaaS (Software as a Service) En français logiciel en tant que service. Dans ce type de service, des applications sont mises à la disposition des consommateurs. Les applications peuvent être manipulées à l'aide d'un navigateur web ou installées de façon locative sur un PC. Gmail est un exemple de tel service. Il offre au consommateur un service de courrier électronique et le consommateur n'a pas à se soucier de la manière dont le service est fourni. Google traduction est un autre exemple D'autres exemples de logiciels mis à disposition en Saas sont Google Apps, Office Online ou LotusLive (IBM). 57 Les architectures à Les Frameworks Les designs patterns base de composants Exemples SaaS : Google Drive est un service de stockage et de partage de fichiers dans le cloud lancé par la société Google. (drive.google.com) Google Drive regroupe aussi Google Docs, Sheets et Slides, Google Drawings 58 Les architectures à Les Frameworks Les designs patterns base de composants Exemples SaaS : Google Docs, Sheets, Slides et Forms La suite bureautique de Google, disponible via Google Drive, inclut Google Docs, un logiciel de traitement de texte basé sur le Web, Sheets, un tableur, et Slides, un logiciel de présentation. Cette suite permet de créer et de modifier des documents en ligne et de travailler en équipe, en temps réel. 59 Les architectures à Les Frameworks Les designs patterns base de composants PaaS (Platform as a Service) Plate-forme en tant que service, PaaS, de l'anglais Platform as a Service Contrairement au SaaS (Software as a Service) qui peut avoir une déclinaison grand public, le PaaS s’adresse aux professionnels et en en particulier aux développeurs. Ces derniers peuvent ainsi concevoir, tester et déployer leurs applications et services en ligne depuis un Cloud PaaS. Celui-ci met à leur disposition à la fois l’infrastructure matérielle et les outils logiciels : bases de données, couches d’intégration de ces données numériques, outils pour développer les applications et hébergement. Mais il y a une limitation à une ou quelques technologies, il faut utiliser les outils offerts par le fournisseurs du Cloud 60 Les architectures à Les Frameworks Les designs patterns base de composants Principaux fournisseurs Paas : Microsoft avec Microsoft Azure ; Google avec Google App Engine ; Amazon avec Amazon Web Services ; Oracle ; IBM avec BlueMix ; 61 Les architectures à Les Frameworks Les designs patterns base de composants IaaS (Infrastructure as a Service) L'infrastructure en tant que service est un modèle où l'entreprise dispose sur abonnement payant d'une infrastructure informatique (serveurs, stockage, sauvegarde, réseau) qui se trouve physiquement chez le fournisseur. Cela peut représenter un moyen de réaliser des économies, principalement en transformant des investissements en contrats de location. Principaux fournisseurs Iaas : 62 Les architectures à Les Frameworks Les designs patterns base de composants Exemple d’Iaas de Microsoft (https://azure.microsoft.com/fr-fr/pricing/details/cloud-services/) 63 Les architectures à Les Frameworks Les designs patterns base de composants Déploiement : Cloud privé Cloud publique Cloud hybride 64 Les architectures à Les Frameworks Les designs patterns base de composants Cloud privé Le Cloud privé est une infrastructure en nuage exploitée uniquement pour une seule organisation, qu'elle soit administrée en interne ou par un tiers, et hébergée en interne ou en externe Ressources informatiques dédiées à une seule organisation et offertes sur demande. Dans tout système de Cloud, seule votre entreprise et vos collaborateurs vont pouvoir accéder à vos ressources. Peu importe le terminal utilisé, que ce soit un ordinateur, une tablette ou un mobile, que ce soit dans les locaux de l’entreprise ou à l’extérieur, vous allez vous connecter à votre serveur de Cloud. Il s’agit du format le plus courant : le Cloud privé, c’est-à-dire que vous n’avez qu’un seul et même serveur pour gérer l’ensemble des données pour tous les utilisateurs. Celui-ci est administré soit en interne, soit par un prestataire spécialisé. 65 Les architectures à Les Frameworks Les designs patterns base de composants Cloud public Un Cloud est appelé un «Cloud public» lorsque les services sont rendus sur un réseau ouvert à l'usage public. Les services du Cloud publique peuvent être gratuits ou payants. A l’inverse, le Cloud public ne veut pas dire que les données sont accessibles à n’importe qui, mais uniquement que vos données sont hébergées sur une multitude de serveurs eux-mêmes accessibles par un nombre déterminé d’utilisateurs. Les Cloud les plus connus sont d’ailleurs des Cloud public, comme par exemple le Cloud de Microsoft office ou encore celui d’Amazon. 66 Les architectures à Les Frameworks Les designs patterns base de composants Cloud public En règle générale, dans le cadre d’un Cloud public, vous payez en fonction de l’utilisation de vos données. Plus vous allez stocker, utiliser ou télécharger d’information, plus la facture sera élevée. Beaucoup d’entreprises préfèrent passer par un Cloud public, pour la simple et bonne raison que vous n’êtes pas limités par le volume de vos données. En effet, les entreprises qui proposent des services de Cloud public disposent d’infrastructures conséquentes et peuvent donc s’adapter presque immédiatement à l’augmentation de vos besoins. A l’inverse, c’est une limitation que vous avez sur du Cloud privé pour lequel l’installation et l’augmentation de la capacité du Cloud va forcément prendre plus de temps et vous rendre moins factice. Un des gros avantages du Cloud public est que les dépenses initiales sont pratiquement réduites à néant puisque vous venez vous greffer à l’infrastructure déjà existante. 67 Les architectures à Les Frameworks Les designs patterns base de composants Cloud hybride Un service de Cloud hybride est composé d'une combinaison de services de Cloud privé et public provenant de différents fournisseurs de services. Un mélange de Clouds privés et publics gérés comme une seule entité pour étendre la capacité à travers les nuages au besoin. Dans certain cas de figure, souvent pour des grandes entreprises ayant des besoins complexes, on va avoir un système mixte : c’est ce qu’on appelle le Cloud hybride. Dans ce cas de figure, l’entreprise fait appel à plusieurs Cloud différents certains publics et certains privés. Tous demeurent des entités indépendantes les unes des autres. Dans ces cas de figure l’intérêt est extrêmement simple à comprendre il permet principalement d’effectuer la portabilité de données entre différent Cloud, différents logiciels ou différentes entités 68 Les architectures à Les Frameworks Les designs patterns base de composants Google WebToolkit : Dès le début, une forte communauté, La plupart des services Google sont codés avec GWT (Gmail, agenda, Google maps, etc.) Nombreuses bibliothèques d’extensions : – GWText aujourd’hui projet Zombie, – SmartGWT, GWT dnd, etc. 69 Les architectures à Les Frameworks Les designs patterns base de composants Partie optionnelle Un framework pour créer des applications Web riches en Java – Partie serveur : bonne scalabilité – La partie serveur est compilée avec le JDK, – La partie client est compilée en javascript par le compilateur GWT Avantages – Tout le monde connait bien Java, – On développe avec des outils de haut niveau (Eclipse, Netbeans, etc.) – Possibilité de débugger pas à pas – Optimisation (code JS “compacté”, génération de ce qui est utile uniquement) 70 Les architectures à Les Frameworks Les designs patterns base de composants Partie Portabilité : optionnelle Les applications GWT sont supportées automatiquement par tous les principaux navigateurs : – IE – Mozilla Firefox – Safari – Google Chrome – Opera 71 Les architectures à Les Frameworks Les designs patterns base de composants Partie Principe : optionnelle GWT est articulé autour d'un concept original : lors de la phase de développement, l'application est écrite en Java de façon classique, dans un environnement de développement intégré Java, et peut être déboguée avec les outils Java habituels. Une fois l'application prête à être déployée, le compilateur GWT la traduit en pur JavaScript, avec support automatique et transparent pour les principaux navigateurs (Internet Explorer, Firefox, Chrome, Safari, Opera). Le code JavaScript généré utilise des techniques d'HTML dynamique et de manipulation du DOM (Document Object Model) pour les aspects dynamiques de l'interface. 72 Les architectures à Les Frameworks Les designs patterns base de composants Partie optionnelle Phase développemen Déploiement t Compilateur Utilisation de GWT Java 100% Java Script + HTML + DOM 73 Les architectures à Les Frameworks Les designs patterns base de composants Partie optionnelle Code Java Client RPC Serveur Logique applicative  L'utilisation du mécanisme de RPC (Remote Procedure Call) facilite la communication entre le client et le serveur,  Le code Java peut être partagé entre le client et le serveur 74 Les architectures à Les Frameworks Les designs patterns base de composants Volume de de données envoyé dans une application GWT par rapport à une application HTML Nombre d’octets transfér és HTML traditionnel Première exécution Autresde GWT exécutions de GWT 75 Les architectures à Les Frameworks Les designs patterns base de composants Partie optionnelle Google App Engine est une plateforme de conception et d'hébergement d'applications web dans le Cloud basée sur les serveurs de Google Cloud de Google Notre Google applicati App on Engine 76