• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Environnements & Développements
 

Environnements & Développements

on

  • 2,311 views

 

Statistics

Views

Total Views
2,311
Views on SlideShare
2,310
Embed Views
1

Actions

Likes
2
Downloads
0
Comments
1

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • b1
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Environnements & Développements Environnements & Développements Presentation Transcript

    • Réseaux & Applications Internet: Environnements de Développement Paulin CHOUDJA
    • Agenda
      • Langages objets, interprétés, procéduraux et événementiels, composants & patterns
      • Frameworks J2EE et .NET et indépendance des applications
      • Indépendance des données, XML et SGBD
      • Programmation Web: Serveurs de pages dynamiques et d’application, IDE et méthodologies
      • Web Services et clients riches
    • De la Compilation à l’Interprétation
    • Des Objets aux Composants
      • Le langage objet fournit les mécanismes d’implémentation mécaniques des applications, mais il n’est pas plus compliqué à connaître que Cobol ou C Le vrai problème s’est déplacé vers le framework, la persistance et la modélisation.
      • Le framework est l’ensemble des bibliothèques de classes mises à la disposition du développeur par les éditeurs : IBM et le JCP, les communautés Open Source, Microsoft, etc. Elles peuvent être très nombreuses, plus de 3.000 pour J2EE.
      • Les architectures de développement définissent des modèles de mise en oeuvre, qu’il faut appliquer strictement : le paradigme MVC (Model View Controller), permet de séparer les aspects métier, des accès données et des aspects présentation.
      • Reste la problématique du modèle et de la modèlisation , c’est-à-dire de la formalisation en amont de ce qu’il faut développer, ce que l’on appelait autrefois l’analyse, mais qui prend aujourd’hui une importance nouvelle avec l’arrivée de l’objet.
    • Les Composants
      • Classe Java : programme autonome ou non, écrit conformément à la syntaxe Java, interprété ou compilé sur le poste client ou le serveur. La classe n’a pas d’autre contrainte.
      • Le Bean est un composant réutilisable, écrit conformément à un panel de règles, pouvant être développé à l’aide d’un IDE visuel et intégré par simple drag and drop (technique proche de VB). Le bean est généralement interprété ou exécuté sur le poste client.
      • Le composant EJB (Enterprise Java Bean), s’exécute sur le serveur. Il s’agit d’un composant réutilisable d’une plate-forme compatible J2ee à l’autre. Les EJB sont développés conformément à une ̎ mécanique ̎ rigoureuse (classe proprement dite et interfaces d’accès) et déployés de façon standard. Les EJB constituent un moyen pour développer de véritables applications sur le serveur. Le framework EJB fait partie de la spécification J2ee.
      • Les modèles de composants Javabean et EJB sont différents
      • Des efforts de simplification de l’approche composant (EJB 3.0) sont en cours pour améliorer la productivité car de nombreux développeurs préfèrent les POJO (Plain Old Java Object), des objets Java simples.
    • Les Patterns Les design patterns : Gabarits de Conception Il s’agit des problèmes récurrents qui reviennent en programmation OO, qui sont traités une fois pour toutes, livrés sous forme réutilisable, pour qu’on ait plus avoir à refaire le cheminement d’élaboration de la solution
    • Les Frameworks
      • Le besoin d’indépendance de la plateforme découle de deux facteurs :
        • Complexité du SI : transactionnel, bases de données, LDAP, XML
        • Hétérogénéité des systèmes propriétaires, ouverts ou dédiés (legacy systems)
      • Forte demande d’interopérabilité et de portabilité
      • Changements technologiques permanents de la plateforme
      • Souci de rationalisation économique
        • Tout coder soi-même est impossible
        • Coûts d’investissements de plus en plus lourds
      • Il faut s’appuyer sur une « tuyauterie » et des composants génériques stables
      • Volonté de s’appuyer sur des standards pour assurer la pérennité des développements (et s’affranchir des évolutions de l’OS)
      • Stabilité du système en termes de performances, portabilité, confiée au framework et non plus aux développeurs
    • Les Frameworks JAVA JAVA
    • Le Framework .NET
      • .Net est très en forte croissance
      • .Net remplace toutes les technologies de DNA* : MTS, Com +, MSMQ, SQL Server, ajoute les services Web et propose un plus vaste choix de langages
      • .Net gagne les grands comptes
        • Questions de coûts
        • Passage à 2003 & 2005
        • Rapidité de programmation et simplicité de l’environnement
        • Le même type de développement, quelque soit le client : léger (browser) ou riche (Windows)
      • Adhésion forte des SSII : .Net jugé moins cher que J2EE, une bonne solution pour attaquer le marché des PME mais pas encore suffisamment d’offre progiciels significative
      • CLR (Common Language Runtime) fonctionne comme une machine virtuelle, capable d’exécuter n’importe quel langage, compilé en un IL (Intermediate Language) unique
      • C# (Ci sharp) Nouveau langage OO de Microsoft, clone de Java mais plus facile d’accès et d’utilisation
      • Mono est une alternative open source à .Net. Permet de développer sous Linux ou Unix avec la richesse des outils .Net. La compatibilité n’est pas assurée et de fortes connaissance systèmes sont nécessaire. Racheté par Novell.
    • .NET vs J2EE
    • XML: Standard de Structuration des données
      • Une (« La ») technologie clef pour l’Informatique
      • HTML affiche l’information, XML décrit l’information et sépare les données de l’affichage (cf. SGML)
        • XML permet la création de jeux de balises spécifiques à un type de problème, à un métier ou à un domaine applicatif donné
        • XML est complémentaire à HTML (son successeur ?)
      • Permet la structuration, le typage de champs et donc de :
        • Standardiser l’accès aux données et leur échange
        • Standardiser le stockage de l’information
      • Permet le partage structuré d’informations par standardisation des formats d’interface
      • Séparer les programmes des données en utilisant les balises, marqueurs ou tags
    • XML pour l’intégration des données
    • XML: Terminologie
      • Schémas XML:
        • Décrivent les jeux de balises et la structure des documents en fonction des éléments, attributs et données qu’ils contiennent
        • Comportent un grand nombre de types intégrés : integer, boolean, string, date, datetime, decimal (très proches de ceux des langages de programmation)
      • XSL (eXtensible Stylesheet Language)
        • Une feuille de style (stylesheet) définit des « templates » qui permettent de transformer les éléments d’un document XML valide en une autre structure, HTML, XML ou autre.
      • XSLT (XSL Transformations)
        • Un langage de transformation de documents XML
        • Une grammaire XML, un langages de r è gles
        • Contient les r è gles pour transformer des é l é ments, des attributs, convertir des formats
        • La feuille de style XSLT est ex é cut é e par un processeur XSLT : le processeur lit le document en entr é e et tente de trouver des « matching »
          • Si une r è gle est trouv é e, elle est ex é cut é e et produit un é l é ment du document de sortie
      • XSL Formatting Objects (XML-FO)
        • Une grammaire XML pour spécifier une formatage (pour générer un PDF par ex.)
        • Langage pour d é crire les « layout information »
        • XSL-FO g è re la pagination du document, les notes de bas de page, les marges, l ’ emplacement des objets, les polies de caract è res, les tableaux
        • Ex é cut é par un processeur XSL-FO
        • Permet de g é n é rer des formats tels que .doc, .pdf, Postscript, etc
    • XML: Mise en oeuvre
      • De très nombreuses « grammaires » XML
      • WebDAV (Distribution Authoring-Versioning) : gestion de versions successives en mode coopératif
      • XHTML : règles strictes de XML appliquées à HTML
      • DSML (Directory Services ...) pour exploiter aisément LDAP
      • XAML : Transaction Authority Markup Language
      • SyncML : transferts synchronisés avec les portables
      • CPEX (Customer Profile Exchange)
        • Transfert de données sur les clients du commerce électronique
      • et aussi MathML, P3P (Platform for Privacy Preferences), Chemical Markup Language (16 variantes), Gemplus SmartX pour cartes à puces, LandXML (génie civil), PIML (Printing Industry), XrML (protection des droits d’auteur), GML (géographic Open GIS), Predictive Modeling (data mining), SMIL (rich média), SVGML (présentations vidéo), VoxML et SpeechML, WML, XBRL (commissaires aux comptes) …
    • XML et SGBD
      • Conteneurs d’EJB, de documents XML, de procédures stockées SQL/J
        • Intégration des moteurs correspondants (JVM, parsers)
        • Support direct de données complexes, “fortement typées”
        • Mise à jour automatisée d’index par simple « glisser-déposer »
      • Trois approches possibles pour XML
        • Champ texte contenant tout le document (BLOB)
        • Arborescence d’objets répartis dans la base, gérée par un moteur de « mapping »
        • Structuration « native » XML de la base
      • Possibilités de « programmation » dans la base (Java) avec le danger d’aller trop loin
      • Une offre multiforme
        • Oracle 10g, IBM DB2-UDB, Microsoft SQL Server 2005, Sybase ASE (Adaptive Server Enterprise)
        • Des versions gratuites (limitées à quelques GO de données)
        • En « Open Source » : MySQL, PostgreSQL,…
    • Programmation Web: Serveur de Pages dynamiques
    • Programmation Web Serveur de Pages dynamiques: Outils
      • Servlet
        • Une servlet est un programme Java qui s ’ ex é cute sur le serveur et g è re les messages entre le client et le serveur.
        • Etant par nature Java, les servlets peuvent exploiter les frameworks J2EE, en particulier pour l ’ acc è s aux donn é es (JDBC).
      • JSP (Java Server Page)
        • Les JSP combinent sur une même page html, xml ou wml du code balise avec du code exécutable, scriptlets ou classes Java
        • Le fichier .jsp est compilé en servlet à sa première demande
      • PHP
        • Langage Open Source rencontrant un succès considérable, du fait du synamisme de sa communauté et de la mise en commun de composants
        • Fait partie de la suite de référence LAMP (Linux, Apache, MySQL et PHP)
      • ASP
        • Active Server Page de Microsoft
        • Utilisation de JScript (clone de Javascript) et VB Script
        • Compatible avec toutes bases de données
        • Succès initial lié à la richesse de la bibliothèque de composants
    • Programmation Web Serveur d’Applications
    • Le Serveur d’Application J2EE
    • Le Serveur d’Application .NET
    • Programmation Web Outils de Développement Compétences requises
    • Méthodologies de développement
      • Des méthodes formelles vers les méthodes « agiles »
        • Passer de la prédictivité à l’adaptabilité
      • MDA (Model Driven Architecture) : Modélisation du SI
        • Proposée par l’OMG pour modéliser l’intégralité du cycle de vie des applications
        • Permet d’élaborer des modèles indépendants des plateformes
        • S’appuie sur des standards tels que UML, XML, EJB, …
      • UML (Unified Modeling Language) « superstar »
        • Générer 80 à 90 % du code à partir de la modélisation
        • Facilite la communication entre acteurs et la documentation technique
        • Repose sur 9 diagrammes, des vues graphiques et des modèles
        • Nécessite une culture et une compétence spécifiques
      • Les méthodes « agiles »
        • Accepter le changement et la modification des priorités, hors spécification initiale
        • Un nombre élevé de méthodes : ASD (Adaptative Software Development), FDD (Feature Driven Development), Crystal Clear, DSDM (Dynamic Software Development Method), RAD (Rapid Application Development), Scrum, XP (Xtreme Programming) et un produit propriétaire, RUP (Rational Unified Process)
    • Les Web Services: Principes
    • Les Web Services: Composants Standards
      • XML et ses schémas
        • Encodage et formatage des données et des messages échangés
      • SOAP (format unique mais extensible)
        • Définit un protocole simple d’échange de données et de messages
        • Précise les conventions de représentation des appels de procédures RPC
        • Définit les liaisons avec le protocole HTTP ou SMTP
      • WSDL (langage XML unique mais extensible)
        • Décrit la façon d’accéder au service :
        • Messages générés et attendus
        • Documentation d’un « contrat de service »
        • Eléments de sécurité (HTTPS ou MIME)
      • UDDI : annuaire des services existants
      • WS-Security, des services Web sécurisés (IBM, Microsoft,
      • Verisign)
    • Client Léger, Riche ou Lourd
      • Portable
      • Peu interactif
      • Consomme beaucoup de bande passante
      • Ergonomie insuffisante pour des applications complexes
      • Logique de présentation uniquement
      • Invocation HTTP
      • Inadéquation avec les mobiles
      • Déploiement simple par URL et outils spécifiques qui ressemblent aux applets (No Touch Deployment chez Microsoft, Java Web Start chez Sun)
      • Ne prend en charge que la présentation et le transport des données
      • Agrège des appels de services applicatifs sur le serveur via HTTP, SOAP ou autre
      • S’exécute dans la JVM Java, CLR .Net, Zend Engine en PHP ou lecteur Flash
      • Bonne interactivité et meilleurs temps de réponse, capacité d’anticipation sur les actions utilisateurs
      • Mêmes mécanismes graphiques que HTML : drag and drop, multifenêtrage, clic droit…
      • Complexe à installer (nécessite de réinstaller les binaires compilés pour chaque OS), avec mise à jour de la base de registres à chaque changement de version
      • Embarque la présentation et une partie des services métiers
      • Invocation via les protocoles propriétaires DCOM, RMI/IIOP
      • Peu gourmand en bande passante
    • Outils de développement des clients riches
      • Principe : Il s’agit de séparer la couche graphique des traitements exécutés sur le serveur ou en local (déconnecté), le tout s’exécutant dans une JVM ou CLR
      • Le client télécharge les fichiers de l’application dans un espace sécurisé
      • Les échanges entre client et serveur sont basés soit sur des Web Services, soit sur des échanges XML-Javascript (Ajax)
      Frameworks
    • Conclusion
      • Les architectures n-tiers bouleversent le développement :
        • Langages procéduraux et événementiels interprétés, Frameworks (J2EE, .Net),
        • Web Services conduisent à l’Indépendance des plateformes.
      • XML permet l’Indépendance des données.
      • Les modèles applicatifs se diversifient, du Client léger au client « riche »