Industrialisation des développements AJAX - J2EE

Dimension: px
Commencer à balayer dès la page:

Download "Industrialisation des développements AJAX - J2EE"

Transcription

1 Industrialisation des développements AJAX - J2EE Laurent Guérin ( ) 25 Janvier «Les Jeudis de l objet» Ecole des Mines de Nantes 1 - Retour d expérience & naissance d un framework 2 - AJAX 3 - Telosys Jeudis de l'objet - EMN - 25/02/2007 1

2 1.1 - Constats Constats Statistiques du Standish Group CHAOS Report % 29% Succès Dépassement Abandon 53% Quelques constantes : Productivité insuffisante (manque d outils) Faiblesse des tests (unitaires, fonctionnels, couverture) Problème d estimation des charges (activité peu prédictible) Mauvaise gestion des risques Pas (ou trop peu) de «capitalisation du savoir faire» Industrialisation des développements AJAX/J2EE - Laurent GUERIN 4 Jeudis de l'objet - EMN - 25/02/2007 2

3 Architectures «web n-tiers» Tendance forte : «webiser» les applications métier pour Réduire les coûts de déploiement et de gestion de parc Rendre les applications accessibles à partir de postes de travail banalisés utilisation en mode «extranet» Mais le «web traditionnel» a atteint ses limites Ergonomie inadaptée aux applications à usage intensif Le «client léger» est de plus en plus «riche» ( plus complexe ) Utilisation croissante de technologies de type AJAX Projets complexes, parfois chaotiques Industrialisation des développements AJAX/J2EE - Laurent GUERIN 5 Architectures «web n-tiers» Environnement souvent complexe => Compétences multiples UML Design Patterns navigateur Réseau application navigation persistence façade services métier objets métier framework 1 framework 2 framework 3 HTML, CSS JavaScript, DOM, DHTML, XML/XSL, Java, C#, L3G! SQL Industrialisation des développements AJAX/J2EE - Laurent GUERIN 6 Jeudis de l'objet - EMN - 25/02/2007 3

4 Architectures «web n-tiers» La productivité a régressé! Productivité COBOL L3G C/C++ Client - serveur L4G Années Web n-tiers Proportion de code technique encore trop importante! Industrialisation des développements AJAX/J2EE - Laurent GUERIN 7 Objectifs Accroître la productivité Améliorer la qualité Favoriser la capitalisation des composants et des compétences Combler le vide du «client léger riche» répondre aux attentes : des utilisateurs (meilleure ergonomie) des développeurs (environnement de développement simple et efficace) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 8 Jeudis de l'objet - EMN - 25/02/2007 4

5 Démarche d industrialisation 3 axes de rationalisation des développements «n-tiers/j2ee» Industrialisation des développements AJAX/J2EE - Laurent GUERIN 9 Démarche d outillage Détecter & éviter une situation classique : le «syndrome du bûcheron» S attaquer aux causes plutôt qu aux effets mettre en place les outils adaptés Coût initial Mais le retour sur investissement peut être important et rapide ( loi des 20/80 ) Ne pas chercher à tout industrialiser Mesurer le coût d exploitation des outils Adopter une démarche d amélioration progressive ( principe du «Kaïsen» ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 10 Jeudis de l'objet - EMN - 25/02/2007 5

6 1.2 Un projet de migration technologique vers AJAX/J2EE Situation initiale «client/serveur» Protocole propriétaire Déploiement Run - time Ecrans «classiques» Industrialisation des développements AJAX/J2EE - Laurent GUERIN 12 Jeudis de l'objet - EMN - 25/02/2007 6

7 Cible standards Suppression des «run-times» Adoption de «standards» «client léger» suppression des contraintes de déploiement Industrialisation des développements AJAX/J2EE - Laurent GUERIN 13 AJAX, une histoire ancienne? Le projet cité en exemple débute en 2003 Les choix technologiques ( «XML/http» via le composant «XMLHttpRequest» ) sont basés sur des retours d expérience des années 2001 et 2002 : Navigateur : Internet Explorer Serveurs de tous types : Java (J2EE) Microsoft ASP PHP «AJAX» : seul le nom est récent! Industrialisation des développements AJAX/J2EE - Laurent GUERIN 14 Jeudis de l'objet - EMN - 25/02/2007 7

8 Contraintes et moyens Contraintes fortes : Logiciel «lourd» : 210 écrans, 64 éditions, batchs, Portabilité : bases de données, serveurs J2EE, O.S. Usage intensif : IHM riche préserver l ergonomie Autres : internationalisation, capacité réseau limitée, capacité à monter en charge... Moyens limités : 450 j/h de réalisation et tests unitaires Equipe : majorité de débutants / J2EE Points positifs : Comportement stéréotypé des écrans et des éditions Industrialisation possible Industrialisation des développements AJAX/J2EE - Laurent GUERIN 15 Démarche d industrialisation Phase de «R&D» en amont du projet noyau du framework Processus d enrichissement continu Réalisation d un générateur de code Stabilisation de l équipe (pour appropriation du cycle de développement et des outils) Normes, méthodes, «best practices», Industrialisation des développements AJAX/J2EE - Laurent GUERIN 16 Jeudis de l'objet - EMN - 25/02/2007 8

9 Organisation et méthodes Spécialisation Stabilité Outils Cadre Refactoring Normes Itérations Prototypes Généralisation Améliorations Kaïsen Industrialisation des développements AJAX/J2EE - Laurent GUERIN 17 Architecture Web classique? Pattern «MVC» ou «MVC 2»? Inadapté au contexte Utilisateur Requête <form> GET/POST Réponse 1 5 Page complète Servlet forward JSP 3 2 use Bean 4 Réaffichage! Pas de requêtes transparentes Données utiles : 10 à 20 % du volume de la page! Maintien de contexte détaillé ( postback ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 18 Jeudis de l'objet - EMN - 25/02/2007 9

10 Le socle technique Framework spécifique, adapté au besoin : global ( écrans base de données ) orienté «écrans» ( principe de dialogue «client / serveur» ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 19 Cadre & outillage Organisation Cadrage Génération de code + plugins Normes Industrialisation des développements AJAX/J2EE - Laurent GUERIN 20 Jeudis de l'objet - EMN - 25/02/

11 1.3 Bilan du projet Portabilité vers le «Web» Les «applications métier» à usage intensif peuvent être portées vers des postes de travail de type «client léger» sans dégrader leur ergonomie, mais L interface Web ne peut se satisfaire du HTML de base! Il est souvent indispensable de fonctionner dans un mode «client serveur» ( => AJAX ) La complexité induite par la technologie AJAX doit être encapsulée dans le socle technique (non visible par le développeur) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 22 Jeudis de l'objet - EMN - 25/02/

12 XML / http ( AJAX ) Découplage total entre le poste de travail et le serveur Application «orientée écrans» ( et non «navigation de pages» ) ergonomie très réactive, sessions multi-écrans, contrôles champ par champ, idéal pour les «applications métier» ( usage intensif ) Uniquement du XML dans les flux de données? Approche trop «puriste»? Complexe à traiter «côté client» dans certains cas exemple : mise en forme de listes ( JavaScript inefficace => XSL! ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 23 XML / http ( AJAX ) Ne pas «abuser» des requêtes AJAX Penser à la montée en charge Contrôles champ par champ suffisant Contrôles sur saisie de caractères excessif! Localisation des traitements : Est-il judicieux de coder des «règles métier» en JavaScript? Equilibre à trouver : - Contrôles de surface côté client ( JavaScript ) - Règles métier côté serveur ( Java ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 24 Jeudis de l'objet - EMN - 25/02/

13 Industrialisation Rationalisation des développements : Framework Outils indispensable Méthode Productivité reste faible sur la couche de présentation Renforcer le socle technique et les outils Le développement JavaScript doit être professionnel! Générateurs de code : Outils relativement coûteux Doivent être souples, paramétrables et intégrés dans l environnement de développement (ex : Eclipse) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 25 Les limites du navigateur Ne pas essayer de tout faire dans le navigateur! Il reste de nombreux cas qu un navigateur ne peut pas résoudre Gestion du mode déconnecté Notification à l initiative du «monde extérieur» Intégration avec des solution externes (bureautique,.. ) Gestion de périphériques spécialisés Pour les cas d utilisation très complexes (ex : gestion d un diagramme de Gantt ) conserver un client lourd conserver autant que possible le protocole http Industrialisation des développements AJAX/J2EE - Laurent GUERIN 26 Jeudis de l'objet - EMN - 25/02/

14 Conclusions Un seul framework couvrant toutes les couches est particulièrement efficace : navigateur Réseau persistance Présentation métier framework «client» framework «serveur» Cohérence globale Economie d objets inutiles ou redondants Permet de «rapprocher l IHM des données» (comme un AGL «client / serveur» ) NB: L efficacité ne doit pas être obtenue aux dépens de l isolation des couches Industrialisation des développements AJAX/J2EE - Laurent GUERIN 27 Conclusions La plupart des «applications métier» à base de «client lourd» peuvent être «webisées» Certaines applications devront cependant conserver une partie de leur IHM en «client lourd» les architectures doivent prévoir l utilisation de postes de travail hybrides Navigateur ( AJAX ) Eclipse RCP, Swing, etc.. Requête XML http Réponse Serveur WebApp Industrialisation des développements AJAX/J2EE - Laurent GUERIN 28 Jeudis de l'objet - EMN - 25/02/

15 1.4 Emergence de Telosys Constat ( début 2005 ) Le principe de dialogue «client / serveur» avec «XML / http» a fait ses preuves J.J.Garrett vient de lancer le terme «AJAX» Ce principe commence à être reconnu et peut être réutilisé sur d autres projets Lancement des travaux pour préparer un framework générique : Architecture plus modulaire & outillage renforcé Simplification de la création des écrans ( bibliothèque de «TagLibs» + système de «templates» ) protocole d échange XML simple et évolutif framework JavaScript plus complet Industrialisation des développements AJAX/J2EE - Laurent GUERIN 30 Jeudis de l'objet - EMN - 25/02/

16 Les objectifs Accessible à des développeurs peu expérimentés dans le monde Web / J2EE (prise en main rapide) Améliorer la productivité ( capacité de développement rapide d applications ) Faciliter l utilisation des méthodes agiles/itératives (utilisable dès la phase de maquettage) Offrir une solution complète, auto-suffisante, couvrant toutes les couches Solution légère et intégrée ( plus efficace ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 31 Evolution ( ) Choix du nom : «Telosys» Choix de la licence : LGPL Intégration dans ObjectWeb : Mars 2005 : premiers contacts Mai 2005 : proposé au collège des architectes Septembre 2005 : accepté 2006 : premières utilisations des versions «alpha» sur des cas d utilisation réels Industrialisation des développements AJAX/J2EE - Laurent GUERIN 32 Jeudis de l'objet - EMN - 25/02/

17 Site Web Industrialisation des développements AJAX/J2EE - Laurent GUERIN AJAX Jeudis de l'objet - EMN - 25/02/

18 AJAX : qu est-ce que c est? AJAX n est pas Un produit de nettoyage Un club de foot d Amsterdam AJAX n est pas non plus Une nouvelle technologie Une norme AJAX = Asynchronous JavaScript And XML un nom pour désigner l utilisation combinée de technologies existantes ( cf. article de Jesse James Garrett, février 2005) une nouvelle façon de concevoir le dialogue «navigateur serveur» «Web 2.0» Industrialisation des développements AJAX/J2EE - Laurent GUERIN 35 Modèle «AJAX» Modèle de dialogue avec le serveur beaucoup plus flexible que le modèle Web traditionnel Industrialisation des développements AJAX/J2EE - Laurent GUERIN 36 Jeudis de l'objet - EMN - 25/02/

19 AJAX : qu est-ce que c est? AJAX repose sur l utilisation de l objet natif «XMLHttpRequest» disponible dans les navigateurs les plus utilisés ( Firefox, Internet Explorer, Safari, ) XMLHttpRequest permet d effectuer des requêtes sur un serveur HTTP à partir de la page courante sans provoquer un rechargement de page nombreuses possibilités : effectuer des «requêtes transparentes» retrouver des concepts «client / serveur» améliorer l ergonomie etc Industrialisation des développements AJAX/J2EE - Laurent GUERIN 37 AJAX et Web 2.0 : effet de mode? «Hype Cycle for Web Technologies» ( Gartner Group 2006 ) Web 2.0 AJAX Ne pas confondre AJAX, Web 2.0 et RIA Industrialisation des développements AJAX/J2EE - Laurent GUERIN 38 Jeudis de l'objet - EMN - 25/02/

20 AJAX et RIA R.I.A. : «Rich Internet Application» Application Web disposant d une «ergonomie riche» Objectif : retrouver des ergonomies comparables à celles des applications «client lourd» tout en conservant les avantages du Web AJAX n est pas directement lié à RIA AJAX favorise la mise en place d ergonomies riches, Mais n apporte pas les «composants DHTML» nécessaires ( bibliothèques de «widgets» ) Les frameworks «côté client» fournissent des solutions à différents niveaux : JavaScript, AJAX, RIA, etc Industrialisation des développements AJAX/J2EE - Laurent GUERIN 39 AJAX et Web 2.0 Web 2.0 = notion floue Aucune définition ( terme créé par l éditeur O Reilly ) Désigne une nouvelle génération de sites web : version 2.0 ( par opposition au «Web 1.0»? ) Effet de mode? Caractéristiques des sites «Web 2.0» Ergonomie et look amélioré (grâce à AJAX) Syndication de contenu ( fils RSS et Atom ) Contraintes induites par l utilisation d AJAX : Problème de référencement par les moteurs de recherche Pas de gestion de l historique de navigation Pas de marquage de page dans les favoris Industrialisation des développements AJAX/J2EE - Laurent GUERIN 40 Jeudis de l'objet - EMN - 25/02/

21 AJAX et «applications métier» Historiques des applications métier : Ecrans passifs «mode caractères» Client Serveur Web AJAX permet : Migrations technologiques : Ecrans passifs Navigateur Client / Serveur Navigateur et/ou «poste de travail hybride» Amélioration de l ergonomie des «applications web» Applications métier non impactées par les problématiques de référencement, historique, favoris, etc Industrialisation des développements AJAX/J2EE - Laurent GUERIN AJAX Aspects Techniques Jeudis de l'objet - EMN - 25/02/

22 AJAX : Synchrone ou asynchrone? Synchrone : Navigateur bloqué jusqu au retour de la réponse Événements «empilés» par le navigateur Impossibilité d afficher une information visuelle pour indiquer à l utilisateur qu un traitement est en cours (problématique de rafraîchissement de l écran après interprétation du bloc JavaScript) Asynchrone : L utilisateur peut continuer à utiliser le navigateur pendant une requête Prévoir le cas des plusieurs requêtes émises en parallèle Prévoir un moyen de bloquer l utilisation du navigateur Industrialisation des développements AJAX/J2EE - Laurent GUERIN 43 AJAX : Transport des données Qu est-ce que l on transporte? Des «données» ( des «objets» ) ex : XML, POST http Des «vues» ( données déjà mises en forme par le serveur ) ex : HTML, XHTML Les objectifs : Disposer de format de données indépendants des langages de développement Véhiculer des données compréhensibles par les «deux côtés» ( client et serveur ) Eviter une analyse de flux ( «parsing» ) trop complexe ( temps de réponse, empreinte mémoire, ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 44 Jeudis de l'objet - EMN - 25/02/

23 Transport des données : XML En principe AJAX => XML Avantages : Standard Indépendant des langages Utilisable pour des données brutes ou des présentations ( XHTML ) Permet de transporter des objets Inconvénients : Nécessite un «parser» XML Objets => mapper/wrapper XML Industrialisation des développements AJAX/J2EE - Laurent GUERIN 45 Transport des données : Texte Le corps de la requête/réponse http peut contenir tout type de texte Données dans un format quelconque (format spécifique, «CSV», ) Du code JavaScript ( ex. Google Suggest ) : eval ( http.responsetext ) Des données au format «JSON» Industrialisation des développements AJAX/J2EE - Laurent GUERIN 46 Jeudis de l'objet - EMN - 25/02/

24 Transport des données : JSON JSON : JavaScript Object Notation ( ) permet de représenter des éléments imbriqués { } "fullname": "Bob Dylan", "org": "Music Consulting", " addrs": [ {"type": "work", "value": {"type": "home", "pref": 1, "value": ], "telephones": [ {"type": "work", "pref": 1, "value": " "}, {"type": "fax", "value": " "}, {"type": "mobile", "value": " "} ] notation native en JavaScript var obj = {"fullname":"bob","org":"foo"}; var obj2 = eval('(' + jsontext + ')'); autres langages (Java, C++,..) => API Industrialisation des développements AJAX/J2EE - Laurent GUERIN La problématique «JavaScript» Jeudis de l'objet - EMN - 25/02/

25 AJAX & JavaScript AJAX => JavaScript! JavaScript a «mauvaise réputation» Langage «non contrôlé» ( pas de compilation, faiblement typé, ) Faiblesse des outils de développement Problèmes de portabilité entre navigateurs Programmation par «copier/coller» etc... «The World's Most Misunderstood Programming Language» ( Douglas Crockford ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 49 AJAX & JavaScript Et pourtant JavaScript n est pas si mauvais JavaScript est «orienté objet» «orienté prototype» ( «prototype based» vs «class based» ) tout est objet ( même les fonctions ) dispose d «Exceptions» JavaScript est normalisé et évolue régulièrement ECMA-262 (ECMAScript) Il existe des outils & composants E4X ( ECMAScript for XML - norme ECMA-357 ) : navigation DOM «à la XPath» JavaScipt Templates ( +/- Velocity en JavaScript ) Frameworks JavaScript 1.6 Firefox 1.5 JavaScript 1.7 Firefox 2.0 Industrialisation des développements AJAX/J2EE - Laurent GUERIN 50 Jeudis de l'objet - EMN - 25/02/

26 JavaScript : les bonnes pratiques Développer en JavaScript comme on développe en Java Pas de variables globales ( risques de collision ) Concevoir et développer des «classes» Documenter les classes ( cf. outillage «JS-doc» ) Faire des tests unitaires Assembler les classes dans un fichier «.js» ( comme un «.jar» en Java ) Utiliser un environnement de développement adapté Exemple : Eclipse / FireFox + extensions / Ant ou Maven Mettre en place des composants ou frameworks JavaScript Industrialisation des développements AJAX/J2EE - Laurent GUERIN 51 JavaScript : les bonnes pratiques Exemple : Diagramme de classes de Telosys-JS Industrialisation des développements AJAX/J2EE - Laurent GUERIN 52 Jeudis de l'objet - EMN - 25/02/

27 JavaScript : les bonnes pratiques Exemple : Documentation de Telosys-JS /** * Client stub to invoke server actions ScreenActions Object the Screen instance Laurent GUERIN */ function ScreenActions( oscreen ) { /** * Invokes the standard "SET" action to * update data on the server * Set all the Screen Context elements Object the server response object */ this.doset = function () { } ScreenActions_class.js } Telosys «JS-DOC» Industrialisation des développements AJAX/J2EE - Laurent GUERIN Choisir un «Framework AJAX» Jeudis de l'objet - EMN - 25/02/

28 Frameworks AJAX Une offre pléthorique à classifier : Open Source ou Propriétaire «côté client» uniquement Orienté présentation ( effets visuels, drag & drop, widgets, ) + appels AJAX Exemples : Prototype, DOJO (JSON-RPC), script.aculo.us, OpenRico ( XML-RPC ) «côté client» et «côté serveur» AJAX Java : DWR, Echo2 (XML-RPC), Telosys (XML-RPC) AJAX PHP : CPAINT AJAX Ruby : Ruby on Rails AJAX.Net : ATLAS (Microsoft) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 55 Frameworks AJAX Positionnement des frameworks les plus connus Prototype Dojo script.aculo.us Open Rico JAVA (J2EE) navigateur Réseau Processeur de requêtes Persistance Application ( dwr/*.js ) DWR ( dwr.jar ) Echo2 ( echo2_*.jar ) ( telosys.js ) Telosys ( telosys.jar ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 56 Jeudis de l'objet - EMN - 25/02/

29 Frameworks AJAX Quelques critères de choix Non intrusif ( ne pas impacter les standards ) JavaScript : ECMAScript Java : Objets «pure POJO» Minimum de code (globalement & minimum de code JavaScript en particulier) Intégration avec la couche de présentation ( ex : taglibs JSP ) Préserver l interopérabilité avec des «postes de travail hybrides» échanges au format XML Industrialisation des développements AJAX/J2EE - Laurent GUERIN Le framework Telosys Jeudis de l'objet - EMN - 25/02/

30 Telosys Un framework conçu pour réaliser des applications métier de type Client/Server Web Principe : poste de travail de type «client http» (navigateur, ) orienté «écrans» («pages web» ) serveur qui fournit des «actions» et des «services» requêtes client/serveur «AJAX» : XML-RPC sur HTTP (seules les données utiles sont échangées) Différentes «briques» intégrées, mais utilisables séparément : Framework JavaScript Gestionnaire d écran «screen maps» Couche de persistance (mapping O/R) Gestionnaire d actions Gestionnaire de services Générateurs de code Industrialisation des développements AJAX/J2EE - Laurent GUERIN 59 Pourquoi Telosys? Répondre à la problématique des postes de travail des applications à usage intensif Associer le meilleur des deux mondes : «client léger» & «client-serveur» WebApp + Navigateur : pas de déploiement, protocoles standard, mais inadapté à une utilisation intensive Telosys voie du milieu Client / Server : orienté écran ergonomie riche, mais Protocoles Non standard + contraintes de déploiement Industrialiser les développements ( améliorer la qualité et la productivité ) réduction du «code technique»! Industrialisation des développements AJAX/J2EE - Laurent GUERIN 60 Jeudis de l'objet - EMN - 25/02/

31 Philosophie & principes généraux Simplicité : Placer l unique fichier telosys.jar dans le projet et l utiliser Ouverture : Utilisable avec n importe quelle autre technologie (Web Services, EJB, Hibernate, clients lourds, ), intégration avec des «servlet/jsp classiques», Struts, JSF, Couverture globale & autonomie : Toutes les couches d une application web standard sont couvertes Aucun autre framework n est nécessaire Adaptabilité : Comportement standard peut être adapté/spécialisé Proposer des solutions, ne pas les imposer! Industrialisation des développements AJAX/J2EE - Laurent GUERIN 61 Telosys : Licence & Technologies Licence : GNU Lesser General Public License (LGPL) Technologies standards : Côté Serveur : Java (Servlet, JSP, JDBC) Côté client : DHTML (HTML, Javascript, CSS) or XUL Browsers : Internet Explorer & Firefox Dialogue : XML / HTTP IDE : Eclipse + plugins Industrialisation des développements AJAX/J2EE - Laurent GUERIN 62 Jeudis de l'objet - EMN - 25/02/

32 Telosys : Architecture Browser (Internet Explorer, Firefox, ) HTTP J2EE Web Container UIL Screen templates Telosys ( Screen Map Server ) Screen map ( XHTML or XUL ) JavaScript Framework 1 2 HTML XUL get screen map request XML XML response authentication Screen map (JSP) RPL JavaScript Framework Business Layer Screen context JSP taglib DAL Telosys ( Request Server ) Client AJAX dialog Server Database Industrialisation des développements AJAX/J2EE - Laurent GUERIN 63 Telosys : Couches côté serveur Request Processing Layer Screen Layer Screen Application Business Layer B.S. B.O. D.A.O. XML XML Parser Screen Request Request Processor Screen Session Action Specific Action Screen Triggers XML XML Writer XmlWrapper Screen Response Screen Standard Action ScreenData Data Access Layer Screen-DAO Table-DAO Standard DAO Connection Pool POJO Screen-VO Global-VO Table-VO Commons J2EE Web Container (Tomcat, ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 64 Jeudis de l'objet - EMN - 25/02/

33 Telosys : différents types de clients Telosys fournit un Screen Map Server pour construire des IHM Web ( HTML / XUL ) Tout type de client http peut dialoguer avec le Request Processor ( XML-RPC ) : des applications «client lourd», quel que soit le langage (Java, C++, C#,..) ou le 4GL (Delphi, ) des serveurs (J2EE,.Net, PHP, ) etc The server side is client agnostic Navigateur ( HTML or XUL ) Application «desktop» ( Java, C, C++, C#, ) Serveur ( J2EE,.Net, PHP, )? XML HTTP J2EE Web Container Telosys Request Processor Outil de test Industrialisation des développements AJAX/J2EE - Laurent GUERIN 65 Principe de développement L indépendance des composants permet d envisager différents principes de développement : UML A partir du modèle applicatif / métier navigateur Présentation Persistance Composants applicatifs / métier IHM vers le modèle de données Modèle de données vers IHM Industrialisation des développements AJAX/J2EE - Laurent GUERIN 66 Jeudis de l'objet - EMN - 25/02/

34 3.2 - Persistance Telosys-DAL : Architecture Application Data Access Layer Connection getconnection() Manager init() dbconfig.xml «DAO» «SqlConnection Provider» AgencyVO AgencyDAO SqlConnection Pool SqlConnection AgencyVOList SqlConnection Pool EmployeeVO EmployeeDAO SqlConnection EmployeeVOList SqlConnection Factory SqlConnection Value Objects For each table : 1 VO & 1 VOList For each table : 1 DAO Pool or single connection Multiple databases Industrialisation des développements AJAX/J2EE - Laurent GUERIN 68 Jeudis de l'objet - EMN - 25/02/

35 Telosys-DAL : DAO VO VOList Exemple : table «Employe» SqlRequests. gettablename(). getsqlxxxx() EmployeVO. getxxxx(). setxxxx(). isxxxx(). tostring() POJO 0..N EmployeVOList. EmployeeVO add(). add( EmployeeVO ). insert ( index, EmployeeVO ). replace ( index, EmployeeVO ). remove ( index ). remove (EmployeeVO ). EmployeeVO get( index ). EmployeeVO getfirst(). EmployeeVO getnext() LinkedList Mapping Table - VO. load(). save(). delete(). insert(). update(). exists(). loadlist(). savelist(). deletelist(). insert(). count(). createquery() EmployeDAO ListQuery. setparameter(). getsqlselect(). getsqlcount(). getsqldelete() Industrialisation des développements AJAX/J2EE - Laurent GUERIN 69 Telosys-DAL : Générateur de code Plugin Eclipse Modèle = Base de données ( metadata ) Mapping Colonne Table Attribut Java Génération. VO. VOList. DAO Industrialisation des développements AJAX/J2EE - Laurent GUERIN 70 Jeudis de l'objet - EMN - 25/02/

36 3.3 - Screen Context & Actions Standards Telosys-SCL : Screen Context SCL ( «Screen Context Layer» ) : Conteneur de «Screen Context» Screen Context = assemblage d objets (éléments) gérés par les écrans de l application Un écran manipule généralement des «entités» et des «listes» un Screen Context = assemblage de VO et de VOList Pattern «SDO simplifié» Element Name Value Object Screen Context 1 à N «Elements» Element Name Element Name Value Object List Value Object Value Object Value Object Value Object Industrialisation des développements AJAX/J2EE - Laurent GUERIN 72 Jeudis de l'objet - EMN - 25/02/

37 Telosys-SCL : Screen Context Exemple de Screen Context : public class EmplData extends StandardScreenData { //--- Elements Names public final static String EMPLOYEE = "employee" ; public final static String AGENCY = "agency" ; public final static String PROJECTS = "projects" ; } // public EmplData() throws TelosysException { //--- Define the Screen Data Elements defineelement( EMPLOYEE, EmployeeVO.class ); defineelement( AGENCY, AgencyVO.class ); defineelement( PROJECTS, ProjectVOList.class ); } Element Name Element Type ( class ) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 73 Telosys-SCL : Screen Context Chaque utilisateur ( session http ) travaille sur 1 à N écrans simultanément donc sur 1 à N «Screen Context» 1 user Http Session Screen Session 1 http session 1 Screen Session 0..N screens Screen Context 0..N Screen Context Vue(s) Modèle(s) Industrialisation des développements AJAX/J2EE - Laurent GUERIN 74 Jeudis de l'objet - EMN - 25/02/

38 Telosys-SCL : Screen Action Les actions utilisateur sont soumises au serveur (en XML-RPC) qui les exécute dans un «contexte» : Action Modèle Standard Actions Screen Triggers Screen Context Screen Context Elements ACTION Screen Procedures Value Object Specific Screen Actions Screen DAO Action Implementation Industrialisation des développements AJAX/J2EE - Laurent GUERIN 75 Telosys-SCL : Screen Action Telosys fournit un jeu d actions standards pour réaliser les opérations classiques d un écran et permet d ajouter des opérations spécifiques Gestion du Screen Context : Open Close Set Get Clear Screen Context Persistance du Screen Context : Load Save Insert Delete Update Standard pas de codage (surcharge possible ) Debug : Ping Echo Appel de procédure : Exec Spécifique à implémenter Industrialisation des développements AJAX/J2EE - Laurent GUERIN 76 Jeudis de l'objet - EMN - 25/02/

39 Telosys-SCL : exemple d action Action «load» Client 1 load ret. code set=true get=true Data Params Server Screen Data Params Data Data Access Layer 2 load set=false get=true Params Params ret. code Data no set Data 3 load set=true get=false ret. code Params Screen Data Params Data X M L Java objects Request : default values set="true" / get="true" Response : flag found or not found Industrialisation des développements AJAX/J2EE - Laurent GUERIN 77 Telosys-SCL : Triggers Chaque exécution d action est encadrée par le déclanchement de deux triggers (avant et après) 1 beforexxx() Return true «continue» autorise l exécution de l action Return false «cancel» annule l exécution de l action ACTION 2 Traitement de L action Xxx 3 afterxxx() Return true action validée ( commit ) Return false action annulée ( rollback ) Utilisations : contrôles, règles «métier», traces, journalisation, etc Industrialisation des développements AJAX/J2EE - Laurent GUERIN 78 Jeudis de l'objet - EMN - 25/02/

40 Telosys-SCL : Screen Context La classe Screen Registry permet de définir les Screen Context et les composants qu ils utilisent Screen Context Screen Name Screen Data Screen DAO Screen Actions Screen Triggers Screen Procedures Données ( «éléments» ) Comportements ( «actions» ) public class ScreenRegistry extends StandardScreenRegistry public void initregistry() { // Parameters : // Name, Elements, Screen DAO, Actions, Triggers, Procedures register("s001", S001.class, S001dao.class, null, S001trig.class, S001proc.class); register("s002", S002.class, S002dao.class, null, null, null ); } Screen Name Screen Components : data + actions Industrialisation des développements AJAX/J2EE - Laurent GUERIN Dialogue Client-Serveur Jeudis de l'objet - EMN - 25/02/

Développement rapide d applications AJAX - J2EE. Laurent Guérin ( lguerin@sogeti.com ) Solutions Linux 1er Février 2007. Constats

Développement rapide d applications AJAX - J2EE. Laurent Guérin ( lguerin@sogeti.com ) Solutions Linux 1er Février 2007. Constats Développement rapide d applications AJAX - J2EE Solutions Linux 1er Février 2007 Laurent Guérin ( lguerin@sogeti.com ) Constats 1 Constats Statistiques du Standish Group 18% CHAOS Report 2004 29% Succès

Plus en détail

J2EE. A.-E. Ben Salem. 09 Octobre 2011. LRDE and LIP6 1 / 15

J2EE. A.-E. Ben Salem. 09 Octobre 2011. LRDE and LIP6 1 / 15 J2EE A.-E. Ben Salem LRDE and LIP6 09 Octobre 2011 1 / 15 Plan 1 J2EE 2 Architecture Client/Serveur HTTP 3 Différence entre Web Statique et Web Dynamique 4 Web Dynamique avec un Serveur d applications

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

Développement Web Introduction générale

Développement Web Introduction générale 1 / 58 Développement Web Introduction générale Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer Juillet 2008 2 / 58 Plan Plan 1 Introduction 2 Historique et

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

http://kerboriou.christophe.free.fr/ 0625725312 02 rue Edouard Vaillant, 44610 indre

http://kerboriou.christophe.free.fr/ 0625725312 02 rue Edouard Vaillant, 44610 indre CHRISTOPHE KERBORIOU ANALYSE PROGRAMMEUR 24 ans IUT NANTES kerboriou.christophe@free.fr 0625725312 02 rue Edouard Vaillant, 44610 indre Parcours universitaire IUT NANTES : 2006 Licence Professionnelle

Plus en détail

Projet Telosys : Framework global et outil de génération de code

Projet Telosys : Framework global et outil de génération de code Projet Telosys : Framework global et outil de génération de code Laurent Guérin laurent.guerin@sogeti.com @ltguerin Telosys Project Leader Sogeti & OW2 Consortium Solutions Linux / Session OW2-20 juin

Plus en détail

Programmation Web Avancée AJAX

Programmation Web Avancée AJAX 1/28 Programmation Web Avancée AJAX Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

Introduction / retour d'expérience : GWT

Introduction / retour d'expérience : GWT Introduction / retour d'expérience : GWT Qu'est ce que le Google Web Toolkit? Framework Ajax accessible et productif Pour quels projets? Interface riche et ergonomique Visualisation d'un grand nombre de

Plus en détail

Java EE. Grégory Cuellar, Julien Goullon. 1 er octobre 2007. gregory.cuellar@bull.net. julien.goullon@9business.fr

Java EE. Grégory Cuellar, Julien Goullon. 1 er octobre 2007. gregory.cuellar@bull.net. julien.goullon@9business.fr Grégory Cuellar Julien Goullon gregory.cuellar@bull.net julien.goullon@9business.fr 1 er octobre 2007 1 Généralité 2 / 54 Pourquoi? Historique Les alternatives Les composants 2 Architecture n-tiers 3 JEE

Plus en détail

Mise en œuvre des serveurs d application

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

Plus en détail

LOT03P6 - Domino 8.5 : XPages dans Domino Designer 8.5 - Partie 6

LOT03P6 - Domino 8.5 : XPages dans Domino Designer 8.5 - Partie 6 LOT03P6 - Domino 8.5 : XPages dans Domino Designer 8.5 - Partie 6 Objectifs du développement en 8.5 Fournir un outil de développement moderne Faire pour les développeurs ce que Notes 8 a fait pour l'utilisateur

Plus en détail

Les clients légers. Exposé Système - Ingénieurs 2000 Informatique & Réseaux 2007-2008. Pierre Verron. CFAI INGÉNIEURS 2000 Caribbean's Pirates Crew

Les clients légers. Exposé Système - Ingénieurs 2000 Informatique & Réseaux 2007-2008. Pierre Verron. CFAI INGÉNIEURS 2000 Caribbean's Pirates Crew Les clients légers Exposé Système - Ingénieurs 2000 Informatique & Réseaux 2007-2008 Pierre Verron CFAI Sommaire Définitions Objectifs Historique Les architectures Inventaire des avantages et des inconvénients

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

Plus en détail

Conseil, Etudes et Edition de logiciels NORMES & CONVENTIONS DE DEVELOPPEMENT JAVA ET SQL

Conseil, Etudes et Edition de logiciels NORMES & CONVENTIONS DE DEVELOPPEMENT JAVA ET SQL Conseil, Etudes et Edition de logiciels NORMES & CONVENTIONS DE DEVELOPPEMENT JAVA ET SQL Table des matières Système d'exploitation... 3 Environnement de développement intégré... 3 Le workspace... 3 Le

Plus en détail

[ Hornet ] Guide de migration d'un projet Acube vers Hornet

[ Hornet ] Guide de migration d'un projet Acube vers Hornet [ Hornet ] Guide de migration d'un projet Acube vers Hornet 3.6B Cette création est mise à disposition selon le Contrat Paternité - Pas d'utilisation Commerciale - Partage des Conditions Initiales à l'identique

Plus en détail

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. 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

Plus en détail

Unité de formation 1 : Structurer une application. Durée : 3 semaines

Unité de formation 1 : Structurer une application. Durée : 3 semaines PROGRAMME «DEVELOPPEUR LOGICIEL» Titre professionnel : «Développeur Logiciel» Inscrit au RNCP de niveau III (Bac+2) (JO du 23 Octobre 2007) (32 semaines) Unité de formation 1 : Structurer une application

Plus en détail

Architecture des systèmes d information

Architecture des systèmes d information Architecture des systèmes d information Table des matières 1 La décennie 70 1 2 Le modèle relationnel (les années 80) 1 3 Enrichissement du relationnel (les années 80/90) 2 4 Système d informations (les

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Modernisation des applications Mainframe. avec. WebSphere Host Access Transformation Services

Modernisation des applications Mainframe. avec. WebSphere Host Access Transformation Services Modernisation des applications Mainframe avec WebSphere Host Access Transformation Services Donald Calas dcalas@fr.ibm.com 2/25/2005 2005 IBM Corporation WebSphere Host Access Transformation Services (HATS)

Plus en détail

Nos formations. Im Info, centre de formation agréé depuis 1995, vous propose ses formations techniques avec : Sur toute la France. avec le sourire!

Nos formations. Im Info, centre de formation agréé depuis 1995, vous propose ses formations techniques avec : Sur toute la France. avec le sourire! Nos formations Im Info, centre de formation agréé depuis 1995, vous propose ses formations techniques avec : Des formateurs à votre service Sur toute la France Avec expertise et compétence (depuis 1995)

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

Moderniser. le système d information et le portefeuille applicatif. www.bull.com

Moderniser. le système d information et le portefeuille applicatif. www.bull.com Moderniser le système d information et le portefeuille applicatif L évolution technologique des plates-formes, l ouverture du système d information et la modernisation du portefeuille applicatif sont des

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 16 NFP111 Systèmes et Applications Réparties Cours 10 - Les Enterprise Java Beans ( aux serveurs ) Claude Duvallet Université du Havre UFR Sciences et Techniques

Plus en détail

Programmation du Web : Présentation du Web dynamique

Programmation du Web : Présentation du Web dynamique Programmation du Web : Présentation du Web dynamique Jean-Baptiste Vioix (Jean-Baptiste.Vioix@u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-8 Présentation Nécessité du web dynamique

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

PHP/MYSQL. Web Dynamique

PHP/MYSQL. Web Dynamique PHP/MYSQL Web Dynamique ENSG Juin 2008 Qui suis-je? Guillaume Gautreau Responsable projets Systèmes d information à l ENPC guillaume@ghusse.com http://www.ghusse.com Ces 6 jours de formation Jour 1 : présentations,

Plus en détail

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. Méthode de Test Pour WIKIROUTE Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. [Tapez le nom de l'auteur] 10/06/2009 Sommaire I. Introduction...

Plus en détail

Applications Internet riches fonctionnant en mode connecté et déconnecté

Applications Internet riches fonctionnant en mode connecté et déconnecté Applications Internet riches fonctionnant en mode connecté et déconnecté Success story client : développement d applications Web avec mode déconnecté Depuis quatre ans, les applications de guichet pour

Plus en détail

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 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

Plus en détail

ARCHITECTURE REST & WEB SERVICES. Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014

ARCHITECTURE REST & WEB SERVICES. Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014 ARCHITECTURE REST & WEB SERVICES Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014 1 Introduction Présentation de Rest Serveur Java JAX-RS Démonstration 2 Introduction Présentation de Rest

Plus en détail

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse THÉMATIQUES Comprendre les frameworks productifs Découvrir leurs usages Synthèse 2 LES ENJEUX DES FRAMEWORKS D ENTREPRISE EN 2012 LE CONSTAT Ressources Recrutement Flexibilité Intérêt Montée en compétence

Plus en détail

AJAX AJAX. Asynchronous JavaScript And XML. Technologie pour créer des pages web interactives Basées sur XML, HTML et JavaScript

AJAX AJAX. Asynchronous JavaScript And XML. Technologie pour créer des pages web interactives Basées sur XML, HTML et JavaScript AJAX Ajax 1 AJAX Asynchronous JavaScript And XML. Technologie pour créer des pages web interactives Basées sur XML, HTML et JavaScript Utilise: HTML pour le marquage XML pour représenter les résultats

Plus en détail

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux Avant-propos 1. À qui s adresse ce livre? 11 2. Les pré-requis 12 Préambule 1. Rappel sur les architectures Internet/Intranet/Extranet 13 1.1 Le protocole HTTP 14 1.1.1 Les méthodes HTTP 16 1.1.2 Les codes

Plus en détail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. M2 CDS2I - 4 février 2010

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. M2 CDS2I - 4 février 2010 1 / 24 Développement Web - Servlet Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer M2 CDS2I - 4 février 2010 2 / 24 Plan Plan 1 2 Le modèle MVC 3 Structure

Plus en détail

INTRODUCTION À JAVA EE. Cours Master 2 - Java EE

INTRODUCTION À JAVA EE. Cours Master 2 - Java EE INTRODUCTION À JAVA EE 1 LA NÉBULEUSE JAVA Java Micro Edition (JME) développement d applications embarquées Java Standard Edition (JSE) développement d applications classiques Java Enterprise Edition (JEE)

Plus en détail

de survie du chef de projet

de survie du chef de projet KIT de survie du chef de projet 01 1 2 3 4 5 6 04 03 07 07 03 03 LE SERVEUR LE CLIENT TECHNOLOGIE WEB CLIENT LE SERVEUR WEB TECHNIQUES & CADRE DE TRAVAIL APPLICATIONS 101 LE SERVEUR Un serveur informatique

Plus en détail

Applications Web. Web 2.0, web services, 18/01/2016. Plan du cours. Introduction Application Web Web/Web 2.0/Web 3.0 HTML 5 Web Services Ajax

Applications Web. Web 2.0, web services, 18/01/2016. Plan du cours. Introduction Application Web Web/Web 2.0/Web 3.0 HTML 5 Web Services Ajax Applications Web Web 2.0, web services, Hubert Segond Orange Labs Année 2015-16 Plan du cours Introduction Application Web Web/Web 2.0/Web 3.0 HTML 5 Web Services Ajax Syndication de contenu & outils de

Plus en détail

Evolutions du Web et des langages

Evolutions du Web et des langages Evolutions du Web Evolutions du Web et des langages WEB statique Ces pages sont écrites en HTML Les pages demandées sont identiques quelque soit La personne qui les demande L heure de la demande Etc. WEB

Plus en détail

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur Plan Environnement Client/Serveur Cours 7 JavaServer Pages (1) kn@lri.fr 7.1 Principe 7.2 Rappels HTTP 7.3 Le serveur web Tomcat Programmation Web coté serveur JSP 2/28 (rappel) génération de pages-web

Plus en détail

Scub Foundation. Socle technique Java Open Source http://www.scub-foundation.org

Scub Foundation. Socle technique Java Open Source http://www.scub-foundation.org Scub Foundation Socle technique Java Open Source http://www.scub-foundation.org Présentation de Scub Présentation de Scub Scub est une société de service en informatique qui a pour but de fournir du conseil

Plus en détail

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada AJAX (Administrateur) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser la productivité de votre

Plus en détail

Développement Web. Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. 24 janvier 2011

Développement Web. Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. 24 janvier 2011 1 / 56 Développement Web Le modèle MVC Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer 24 janvier 2011 2 / 56 Objectif Objectif du cours Se familiariser avec

Plus en détail

REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit

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

Plus en détail

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

Zend Framework 2 Industrialisez vos développements PHP

Zend Framework 2 Industrialisez vos développements PHP Avant-propos 1. Lectorat 15 2. Contenu du livre 15 3. Pré-requis 17 Introduction 1. Un peu d histoire 19 1.1 Petite histoire de l informatique 19 1.2 Petite histoire des langages informatiques 20 1.3 Petite

Plus en détail

Les 2 grands métiers. autour de la création Web. Mais où est passé l'intégrateur?

Les 2 grands métiers. autour de la création Web. Mais où est passé l'intégrateur? Les 2 grands métiers autour de la création Web Mais où est passé l'intégrateur? Langages et frameworks Outils spécifi ques dev mobile À voir dans le module multimédia... Langage : Java Objective C C#,...

Plus en détail

Projet de développement. Introduction à Eclipse. Philippe Collet. Licence 3 MIAGE S6 2013-2014

Projet de développement. Introduction à Eclipse. Philippe Collet. Licence 3 MIAGE S6 2013-2014 Projet de développement Introduction à Eclipse Philippe Collet Licence 3 MIAGE S6 2013-2014 http://miageprojet2.unice.fr/user:philippecollet/projet_de_d%c3%a9veloppement_2013-2014 Plan r Eclipse : Introduction

Plus en détail

JACi400 Génération & JACi400 Développement

JACi400 Génération & JACi400 Développement JACi400 Génération & JACi400 Développement Une solution pour développer rapidement des applications WebSphere pour votre iseries directement en RPG ou Cobol. "After spending time with SystemObjects and

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

Un serveur d'archivage

Un serveur d'archivage Un serveur d'archivage destiné au Service Commun de Documentation de l'université de la Méditerranée Encadrement : Noël Novelli Représentants client (S.C.D.) : Axelle Clarisse Ronan Lagadic Equipe Projet

Plus en détail

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

CROSS PLATEFORM MOBILE DEVELOPMENT (Phonegap, RhoMobile)

CROSS PLATEFORM MOBILE DEVELOPMENT (Phonegap, RhoMobile) INGENIEUR EN SCIENCES INFORMATIQUES RAPPORT D ETUDE TECHNOLOGIQUE SUR LES SOLUTIONS WEB CROSS PLATEFORM MOBILE DEVELOPMENT (Phonegap, ) Student : Jiachen NIE Parcours: IHM Subject : Adaptation des Interfaces

Plus en détail

Comment booster vos applications SAP Hana avec SQLSCRIPT

Comment booster vos applications SAP Hana avec SQLSCRIPT DE LA TECHNOLOGIE A LA PLUS VALUE METIER Comment booster vos applications SAP Hana avec SQLSCRIPT 1 Un usage optimum de SAP Hana Votre contexte SAP Hana Si vous envisagez de migrer vers les plateformes

Plus en détail

Le client/serveur dans le cas du Web

Le client/serveur dans le cas du Web Le client/serveur dans le cas du Web Olivier Flauzac & Cyril Rabat olivier.flauzac@univ-reims.fr cyril.rabat@univ-reims.fr Licence 3 Info - Info0503 - Introduction à la programmation client/serveur 2015-2016

Plus en détail

Introduction Implantation Format des données Restriction. Programmation WEB. Ajax. Programmation licence. IUT de Fontainebleau.

Introduction Implantation Format des données Restriction. Programmation WEB. Ajax. Programmation licence. IUT de Fontainebleau. Ajax IUT de Fontainebleau 1 er mars 2015 Sommaire Introduction 1 Introduction 2 3 4 Sommaire Introduction 1 Introduction 2 3 4 Introduction AJAX se base sur l objet JavaScript XMLHttpRequest qui permet

Plus en détail

S18 Développez rapidement des applications Web 2.0 avec le langage IBM EGL (Enterprise Generation Language)

S18 Développez rapidement des applications Web 2.0 avec le langage IBM EGL (Enterprise Generation Language) Modernisation et développement d applications IBM i Stratégies, technologies et outils S18 Développez rapidement des applications Web 2.0 avec le langage IBM EGL (Enterprise Generation Language) Mardi

Plus en détail

Les serveurs d applications :une introduction

Les serveurs d applications :une introduction Les serveurs d applications : une introduction Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com Octobre 2006 Plan de la présentation

Plus en détail

Offre FlowUnit by CGI Tests automatisés de flux de données inter-applicatifs

Offre FlowUnit by CGI Tests automatisés de flux de données inter-applicatifs Offre FlowUnit by CGI Tests automatisés de flux de données inter-applicatifs CGI Group Inc. 2013 Agenda 1 2 3 4 5 6 7 Problématiques et enjeux Solutions et fonctionnalités Concepts Exécution et rapport

Plus en détail

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452 EXTENSION de Microsoft Dynamics CRM 2013 Réf FR 80452 Durée : 3 jours A propos de ce cours : Ce cours offre une information interactive et détaillée sur le développement d extensions pour Microsoft Dynamics

Plus en détail

Refonte front-office / back-office - Architecture & Conception -

Refonte front-office / back-office - Architecture & Conception - Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table

Plus en détail

Architecture technique

Architecture technique OPUS DRAC Architecture technique Projet OPUS DRAC Auteur Mathilde GUILLARME Chef de projet Klee Group «Créateurs de solutions e business» Centre d affaires de la Boursidière BP 5-92357 Le Plessis Robinson

Plus en détail

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

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

Plus en détail

Application Web de gestion des formations (T09006)

Application Web de gestion des formations (T09006) Application Web de gestion des formations (T09006) Au sein d une équipe assurant des formations métier pour l un de nos clients grand compte, l objectif consiste à analyser les besoins, concevoir et implémenter

Plus en détail

LISE 3. Template pour les mails. Version 1.0 du 13/04/2010. Etat : Validé

LISE 3. Template pour les mails. Version 1.0 du 13/04/2010. Etat : Validé Template pour les mails Version 1.0 du 13/04/2010 Etat : Validé SUIVI DES MODIFICATIONS Version Rédaction Description Vérification Date 1.0 A. Lesuffleur création du document 13/04/10 Document validé dans

Plus en détail

LANGAGES & DéVELOPPEMENT. Une équipe à vos côtés pour toutes vos montées en compétences

LANGAGES & DéVELOPPEMENT. Une équipe à vos côtés pour toutes vos montées en compétences LANGAGES & DéVELOPPEMENT Une équipe à vos côtés pour toutes vos montées en compétences ASP.NET OPTION VB.NET OU C# 5 jours Permettre aux participants de mieux appréhender ce qu est la programmation pour

Plus en détail

Formation GWT. www.objis.com - Formation GWT 1

Formation GWT. www.objis.com - Formation GWT 1 Formation GWT www.objis.com - Formation GWT 1 Sommaire Formation GWT Introduction Qu'est ce qu'une application GWT? Méthodologie et étapes clés gestion projet GWT Interface utilisateur : widgets, panels,

Plus en détail

Site Web de paris sportifs

Site Web de paris sportifs Conception Nom HENAUD Benoît Numéro d auditeur 05-39166 Version V1.1 Date de mise à jour 15/05/2008 1/18 Table des matières 1. Objectif du document... 3 2. Architecture... 4 2.1. Contraintes techniques...

Plus en détail

techniques & langages

techniques & langages 65 techniques & langages ActionScript 2 66 ActionScript 3 67 ASP 68 ASP.NET 69 Bases de données MySQL 70 Ajax 71 Java 72 Javascript-AJAX 73 PHP-MySQL 74 XHTML et CSS niveau 1 75 XHTML et CSS niveau 2 76

Plus en détail

Les formations. Concepteur Développeur Informatique. ENI Ecole Informatique

Les formations. Concepteur Développeur Informatique. ENI Ecole Informatique Titre professionnel : Inscrit au RNCP de Niveau II (Bac + 4) (J.O. du 19/02/13) 30 semaines + 8 semaines de stage (uniquement en formation continue) page 1/11 Développer une application orientée objet

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

Présentation du 30/10/2008/IREMIA. Anil CASSAM-CHENAI. Copyright M.I.TECHNOLOGIES 2008

Présentation du 30/10/2008/IREMIA. Anil CASSAM-CHENAI. Copyright M.I.TECHNOLOGIES 2008 BaboukWeb Présentation du 30/10/2008/IREMIA Anil CASSAM-CHENAI M.I. TECHNOLOGIES Objectifs du projet Réalisation d une gamme de produits exportables Innovation Utilisation maximale de ressources locales

Plus en détail

Dossier de conception. Conception d un site E-learning

Dossier de conception. Conception d un site E-learning Conception d un site E-learning Encadré par : Mr. LACHGAR Mohamed Réalisé par : LECHQER Younesse ELEOUAD Abdelhadi SOMMAIRE I. PERIMETRE DU PROJET... 2 1.1. ENJEUX ET VISION DU PROJET... 3 1.2. ARCHITECTURE

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 38 NFP111 Systèmes et Applications Réparties Cours 11 - Les Enterprise Java Beans (Introduction aux Enterprise Claude Duvallet Université du Havre UFR Sciences

Plus en détail

Programmation Avancée pour le Web

Programmation Avancée pour le Web L3 Informatique Option : ISIL Programmation Avancée pour le Web RAMDANI Med U Bouira 1 Contenu du module Introduction aux applications Web Rappels sur les sites Web Conception d une application Web Notion

Plus en détail

L utilisation d outils intelligents pour écrire du code valide

L utilisation d outils intelligents pour écrire du code valide B L utilisation d outils intelligents pour écrire du code valide Toutes les méthodes de développement, sans exception, incluent au moins une étape de test du code. C est parce que le code écrit par la

Plus en détail

Ecole Nationale Supérieure des Télécommunications Les outils XML

Ecole Nationale Supérieure des Télécommunications Les outils XML Ecole Nationale Supérieure des Télécommunications Les outils XML Page 1 sur 13 SOMMAIRE 1 Introduction 3 2 Parseur XML et processeur XSLT 4 2.1 Le Parseur XML v2 4 2.1.1 Les API DOM et SAX 4 2.1.2 Le parseur

Plus en détail

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail

SOA et Services Web. 23 octobre 2011. SOA: Concepts de base

SOA et Services Web. 23 octobre 2011. SOA: Concepts de base SOA et Services Web 23 octobre 2011 1 SOA: Concepts de base 2 Du client serveur à la SOA N est Nest pas une démarche entièrement nouvelle: années 1990 avec les solutions C/S Besoins d ouverture et d interopérabilité

Plus en détail

Projet de fin d'études. Clients RIA pour le framework Telosys Étude de faisabilité

Projet de fin d'études. Clients RIA pour le framework Telosys Étude de faisabilité Projet de fin d'études Clients RIA pour le framework Telosys Étude de faisabilité Introduction Projet de fin d'études Entreprise Sogeti Framework open source Telosys Étude de nouvelles technologies RIA

Plus en détail

Familiarisation avec Eclipse / Netbeans

Familiarisation avec Eclipse / Netbeans Institut Galilée LEE Année 011-01 Master T.P. 0 Familiarisation avec Eclipse / Netbeans Lien important contenant le pdf du cours et du TP, et ensuite des sources : http://www-lipn.univ-paris13.fr/~fouquere/mpls

Plus en détail

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 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.................................

Plus en détail

Formation Certifiante : Java/Java EE, Hibernate, Struts2, JSF2 et Spring3

Formation Certifiante : Java/Java EE, Hibernate, Struts2, JSF2 et Spring3 Formation Certifiante : Java/Java EE, Hibernate, Struts2, JSF2 et Spring3 Présentation de la formation Cette formation s'inscrit dans le cadre des formations d'été assurées par la société Inovia Information

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

Les architectures I*Net. Première approche

Les architectures I*Net. Première approche 1 Les architectures I*Net Première approche Les architectures I*Net 2 L histoire d Internet De l architecture Mainframe à l architecture I*net J2EE et les architectures I*net 3 L histoire d Internet L

Plus en détail

Migration des Interfaces Utilisateurs X/Motif vers Java. Objectifs d une migration de station UNIX vers PC

Migration des Interfaces Utilisateurs X/Motif vers Java. Objectifs d une migration de station UNIX vers PC Juin 2005 Migration des Interfaces Utilisateurs X/Motif vers Java Par Olivier Faure Objectifs d une migration de station UNIX vers PC L objectif des entreprises est de diminuer le coût de développement,

Plus en détail

TME 1 JAVASCRIPT (2 SEANCES)

TME 1 JAVASCRIPT (2 SEANCES) TME 1 JAVASCRIPT (2 SEANCES) 1. EXERCICES DE BASE Créez des fonctions javascript pour : - faire un jeu «plus petit plus grand» qui tire un nombre au hasard que l utilisateur doit trouver en entrant des

Plus en détail

Formation JavaScript : Perfectionnement. Programme. L approche AJAX. L objet XMLHttpRequest. Objectif(s):

Formation JavaScript : Perfectionnement. Programme. L approche AJAX. L objet XMLHttpRequest. Objectif(s): Formation JavaScript : Perfectionnement Objectif(s): Comprendre l'approche AJAX Comprendre l'objet XMLHttpRequest Durée : 2 jour(s) Pré-requis : Bonnes connaissances en (X)HTML, CSS et JavaScript Public

Plus en détail

Services Web SOAP & REST avec symfony

Services Web SOAP & REST avec symfony Services Web SOAP & REST avec symfony RMLL - 6 juillet 2010 Qui suis-je? Hugo HAMON Responsable des formations chez Sensio Labs Coauteur et contributeur d ouvrages Secrétaire Général de l AFUP Webmaster

Plus en détail

Qu est ce que l environnement Eclipse?

Qu est ce que l environnement Eclipse? Qu est ce que l environnement Eclipse? Bernard DAUTREVAUX Directeur formation et conseil Acsys www.ac6-formation.com Pour en savoir plus: nos formations Eclipse +33 (0)1 41 16 80 10 Page 0 assistance conseil

Plus en détail

Architecture des systèmes d information répartis

Architecture des systèmes d information répartis Architecture des systèmes d information répartis L architecture multi-tiers Sorina Ionica 1 Présentation du cours Répartition des cours Cours + TD Services web Cours + TD J2EE Contrôle des connaissances

Plus en détail

Mercredi 15 Janvier 2014

Mercredi 15 Janvier 2014 De la conception au site web Mercredi 15 Janvier 2014 Loïc THOMAS Géo-Hyd Responsable Informatique & Ingénierie des Systèmes d'information loic.thomas@anteagroup.com 02 38 64 26 41 Architecture Il est

Plus en détail

Formation : WEbMaster

Formation : WEbMaster Formation : WEbMaster Objectif et Description : Centre Eclipse vous propose une formation complète WebMaster, vous permettant de : Utiliser dès maintenant les nouveautés du web2, ainsi alléger les besoins

Plus en détail

Cours de programmation web

Cours de programmation web Cours de programmation web ENSAE 2006-2007 Cours 1 - Introduction 1. Introduction 2. Le principe d Internet 3. Les langages du web 4. Le web 2.0 Introduction : Historique 1967 : Arpanet : réseau militaire

Plus en détail

18/05/2010 JSF : Java server faces

18/05/2010 JSF : Java server faces 18/05/2010 JSF : Java server faces Groupe JAXB - JSF TABLE DES MATIÈRES OBJECTIF...2 VERSION... ERREUR! SIGNET NON DEFINI. MISE EN ŒUVRE...2 UTILISATION...4 Génération des classes à partir d un schéma...

Plus en détail

Groovy & Grails. Langage de script basé sur Java appliqué dans un environnement JEE

Groovy & Grails. Langage de script basé sur Java appliqué dans un environnement JEE Groovy & Grails Langage de script basé sur Java appliqué dans un environnement JEE Martin Le Bas 1 Xposé 2010 Plan Introduction Groovy Grails Conclusion Références Plan de la présentation Introduction

Plus en détail

Les évolutions des méthodes de développement de logiciels. Depuis Merise de l'eau est passée sous les ponts

Les évolutions des méthodes de développement de logiciels. Depuis Merise de l'eau est passée sous les ponts Les évolutions des méthodes de développement de logiciels Depuis Merise de l'eau est passée sous les ponts Programmation Orientée Objets Encapsulation des données et des traitements Polymorphisme Modularité

Plus en détail