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 »

Environnements & Développements

  • 1.
    Réseaux & ApplicationsInternet: Environnements de Développement Paulin CHOUDJA
  • 2.
    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
  • 3.
    De la Compilationà l’Interprétation
  • 4.
    Des Objets auxComposants 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.
  • 5.
    Les Composants ClasseJava : 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.
  • 6.
    Les Patterns Lesdesign 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
  • 7.
    Les Frameworks Lebesoin 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
  • 8.
  • 9.
    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.
  • 10.
  • 11.
    XML: Standardde 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
  • 12.
  • 13.
    XML: Terminologie SchémasXML: 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
  • 14.
    XML: Mise enoeuvre 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) …
  • 15.
    XML et SGBDConteneurs 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,…
  • 16.
    Programmation Web: Serveurde Pages dynamiques
  • 17.
    Programmation Web Serveurde 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
  • 18.
    Programmation Web Serveurd’Applications
  • 19.
  • 20.
  • 21.
    Programmation Web Outilsde Développement Compétences requises
  • 22.
    Méthodologies de développementDes 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)
  • 23.
  • 24.
    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)
  • 25.
    Client Léger, Richeou 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
  • 26.
    Outils de développementdes 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
  • 27.
    Conclusion Les architecturesn-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 »