Framework EHop/Ecenvir

Slides:



Advertisements
Présentations similaires
Design Pattern MVC En PHP5.
Advertisements

2006/2007Denis Cabasson – Programmation Web Cours de programmation web ENSAE
EPREUVE E6 : PARCOURS DE PROFESSIONNALISATION
Soutenance.  Présentation générale  Architecture & Modélisation  Environnement de travail  Démonstration  Conclusion.
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
SPIP Un logiciel libre pour la gestion d'un site web d'informations SPIP.
Séminaire EOLE Dijon Octobre 2008 Eole SSO.
Comprendre les sites web MODULE 1 | CHRISTIAN BLÉSER (2015)
Votre rayon de soleil ! PROJET EVOLUTION – GMSI 38 Thomas Mouhica, Alexandre Lacombe, Timothé Michel 1.
Séminaire Novembre Outils de diagnostic réseau (O.D.R)
Introduction aux technologies du Web Mercredi 12 décembre 2007 Patrice Pillot
1 UML: applications, études de cas ● Processus (Extreme Programming, Unified Process) ● Architectures ● Expression du besoin technique Conception Préliminaire.
1 Y a-t-il une place pour Opensocial dans l'enseignement supérieur ? David Verdin RENATER JRES - Toulouse – novembre 2011.
Procédures Framework LDAP
Mouvements spécifiques 2017
Les Bases de données Définition Architecture d’un SGBD
Système d’Information et de Gestion
Outils (MailIntegration et autres)
ATS8500 Standalone Downloader.
Comprendre l’environnement Web
Epreuve E6 : Parcours de Professionnalisation
Présentation Scribe NG Serveur pédagogique.
JavaScript.
Implémentation de PayPal
Utentomatic - Gestion des comptes Unix sous Active Directory
Présentation du site
Séminaire EOLE Beaune Septembre 2007
Les Tests de performances
Les outils du développeur
Installation et Configuration Internet Information Server (IIS 5)
Clients riches RIA (Rich Internet Application) / RDA
LE MASHUP.
Les technologies AJAX.
Cissé Moussa Diawara Issif Master Informatique 2ième année
Asynchronous Javascript And Xml
fonctionnalités iiS iis
Outils Statistiques pour la Sémantique Décembre 2013
Asynchronous Javascript And Xml
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
Système flexible de Workflow pour la plate-forme Motu
Lintranet LE FUTUR VOUS APPARTIENT NIL JULITTE.
Afficher les Visiteurs Médicaux
SRT2 APACHE.
Introduction à Internet
A. DAAIF ENSET Mohammedia Université Hassan II Casablanca.
Présentation de frameworks J2EE 1 LIU Sizhao LUO Xin MALICK MANDENGUE Serge.
Dématérialisation des AE Mode de dépôts
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Les protocoles de la couche application Chapitre 7.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
Mise en place d'un Serveur Radius pour la sécurité d'un réseau Wireless sous Windows Serveur Présenter par le Stagiaire : Etienne Mamadou Guilavogui.
Architecture BD Récif.
La gestion des habilitations par le partenaire
Exposé de système / réseaux IR3
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault
L’architecture du gestionnaire de profils
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
Présentation des services IT
Alexandra KOROVINA Concepteur Développeur Informatique
FRAMEWORKS : XMLBEANS / STRIPES
Test de performances. Test de performances:  Un test de performance est un test dont l'objectif est de déterminer la performance d'un système informatique.
COURS ADMINISTRATION DE BASES DE DONNÉES IMPORT/EXPORT Karim LABIDI ISET Ch
YII Yes It Is !.
Épreuve E6 : Parcours de professionnalisation
Qu’est ce qu’une page web? Comment fonctionne un site web?
Business Intelligence en ACube OLAP et Reporting avec ACubeOLAP et GRaM.
Internet Stage – Semaine 5.
Transcription de la présentation:

Framework EHop/Ecenvir

Historique Client-Serveur Quelques clients connus Client Lourd Client HTML/CSS/JS Léger puis de plus en plus lourd Potentiellement des millions de clients inconnus Réseau internet 1 connexion par requête Protocole HTTP Réseau privé 1 connexion par client Langage SQL Serveur HTTP (apache) Langage php, java… BDD Réseau privé 1 connexion par requête (avec gestion de pool éventuelle) Langage SQL BDD

Client-Serveur EHop/Ecenvir IHM (browser) Toute l’IHM (client) est chargée en une fois. Javascript est le langage de programmation HTML/CSS est le langage de description HTML/CSS Bootstrap http://getbootstrap.com/ http://knockoutjs.com/ Javascript KnockoutJS JQuery Les données sont chargées à la demande. Les échanges sont le plus souvent en JSON. Réseau CHU Echange en JSON wiki_json Serveur (unix) Le serveur présente une API au client Cette API est programmée en PHP PHP-Silex (symfony) BDD MySQL ou Oracle

L’application (1) Authentification Toute l’IHM d’authentification https://127.0.0.1/ecenvir_current/auth Toute l’IHM d’authentification est chargée en une fois. C’est une page HTML-CSS-JS (C’est une vue pour le modèle MVC habituel) Une fois chargée L’IHM est initialisée (linkage HTML-knockout) On peut alors l’utiliser Les échanges avec le serveur sont en JSON Si la connexion est validée une redirection vers une autre IHM est effectuée.

L’application (2) IHM Admin Toute l’IHM d’administration https://127.0.0.1/ecenvir_current/admin Toute l’IHM d’administration est chargée en une fois. Elle est différente de l’IHM de d’authentification (C’est une autre vue pour le modèle MVC habituel) Les échanges avec le serveur sont en JSON

L’application (3) IHM Admin L’onglet Formation User est vide https://127.0.0.1/ecenvir_current/admin L’onglet Formation User est vide Comment ajouter une fonctionnalité ?

Ajout d’une liste d’utilisateurs (0) Les fichiers impactés Création d’un bouton de chargement Affichage de la liste des utilisateurs E:\christian_merour\ecenvir\current\web\component\Admin\TabFormationUser.html Gestion du click du bouton de chargement Appel HTTP-AJAX Utilisation du retour JSON E:\christian_merour\ecenvir\current\web\component\Admin\TabFormationUser.js Réception de l’appel HTTP-AJAX retour en JSON Appel du service utilisateur E:\christian_merour\ecenvir\current\src\Ecenvir\Ctrl\AdminAjaxCtrl.php Appel SQL en BDD sur la table des utilisateurs E:\christian_merour\ecenvir\current\src\Ecenvir\Service\UserService.php http://getbootstrap.com/ http://knockoutjs.com/ http://knockoutjs.com/ http_foundation doctrine-dbal

Ajout d’une liste d’utilisateurs (1) HTML E:\christian_merour\ecenvir\current\web\component\Admin\TabFormationUser.html Utilisation de bootstrap pour le choix des classes CSS Utilisation de knockout pour la liaison javascript

Ajout d’une liste d’utilisateurs (2) javascript E:\christian_merour\ecenvir\current\web\component\Admin\TabFormationUser.js Le lien entre le fichier html et js est assuré par knockout Appel Ajax/JSON

Ajout d’une liste d’utilisateurs (3) JSON Url d’appel : https://127.0.0.1/ecenvir_current/adminAjax/getListUser https://127.0.0.1/ecenvir_current/Ecenvir_Ctrl_AdminAjaxCtrl/getListUser Retour json : [ {"id":"4","login":"user_3","firstname":"Christian","lastname":"MEROUR"}, {"id":"3","login":"user_2","firstname":"Christian","lastname":"MEROUR"}, {"id":"2","login":"user_1","firstname":"Christian","lastname":"MEROUR"}, {"id":"1","login":"root","firstname":"Christian","lastname":"MEROUR"} ]

Ajout d’une liste d’utilisateurs (4) Controleur Url d’appel : Rôle : https://127.0.0.1/ecenvir_current/adminAjax/getListUser https://127.0.0.1/ecenvir_current/Ecenvir_Ctrl_AdminAjaxCtrl/getListUser Présentation de l’API (Ce que voit le client) Vérification des droits d’accès Extraction des données de la requête Appels aux services Gestion du la mise en forme du retour Fichier php : E:\christian_merour\ecenvir\current\src\Ecenvir\Ctrl\AdminAjaxCtrl.php

Ajout d’une liste d’utilisateurs (5) Service Fichier php : E:\christian_merour\ecenvir\current\src\Ecenvir\Service\UserService.php Rôle : Donne des services aux Contrôleurs Accède à la base de Données Effectue des traitements métier lourds

Les fichiers (1) Configuration Répertoire : E:\christian_merour\ecenvir\current\config Un répertoire de configuration par environnement Initialise les objets principaux de l’application (fait le new object) Loggeur Service Connexion BDD … Déclaration du routage des requêtes HTTP

Les fichiers (2) Le Serveur Répertoires : Les contrôleurs (API HTTP) E:\christian_merour\ecenvir\current\src\Ecenvir\Ctrl\ E:\christian_merour\ecenvir\current\src\Ecenvir\Service\ E:\christian_merour\ecenvir\current\src\Ecenvir\Support\ Les contrôleurs (API HTTP) Les services Code métier Accès BDD Les outils

Les fichiers (3) L’IHM (1) Répertoire des vues HTML : E:\christian_merour\ecenvir\current\views\ Une vue par type d’IHM client Rôle : Charger tout le code nécessaire à l’IHM. Contient donc tout le code des composants.

Les fichiers (4) L’IHM (2) Répertoire des composants HTML-JS : E:\christian_merour\ecenvir\current\web\componant\ Un répertoire par vue d’IHM Un couple de fichier HTML-JS par composant Le fichier HTML donne le design Le fichier JS donne le comportement Les composants peuvent utiliser d’autres composants. Au final ils constituent l’IHM.

Les fichiers (5) Les Librairies Répertoires E:\christian_merour\ecenvir\current\vendor\ E:\christian_merour\ecenvir\current\web\lib\ Répertoire var n’est pas source-contrôlé Contient les logs, les exports Répertoire vendor administré par Composer Contient les dépendances PHP Le répertoire web est accessible directement par l’IHM Répertoires communs pour l’IHM Répertoire lib administré manuellement Contient les dépendances js-css Fichier Composer pour administrer le répertoire vendor

Les outils du projet (1) Composer, Gestionnaire de dépendances https://getcomposer.org/ Site web du repository principal de composer https://packagist.org/ SVN, Gestionnaire de versions des sources https://subversion.apache.org/ Tortoise, Client SVN https://tortoisesvn.net/downloads.html Serveur http Apache https://httpd.apache.org/ Moteur Php http://php.net/ Moteur HTML/CSS/Javascript https://developer.mozilla.org/fr/docs/Learn/HTML https://developer.mozilla.org/fr/docs/Learn/CSS https://developer.mozilla.org/fr/docs/Web/JavaScript

Les outils du projet (2) Laragon Environnement intégré LAMP pour développer Contient : Apache, PHP, MySQL, Composer, GitBash, NodeJS… https://laragon.org/ Netbean, Editeur de projets PHP et Java https://netbeans.org/downloads/ NotePad++, Editeur de texte et de code https://notepad-plus-plus.org/fr/ Client FTP, FileZilla https://filezilla-project.org/ Putty, Client ssh http://www.putty.org/ MySQL workbench, outil de gestion de base de données MySQL (Client lourd en java) https://www.mysql.com/fr/products/workbench/ Phpmyadmin, outil de gestion de base de données MySQL (Client léger PHP) https://www.phpmyadmin.net/

Les outils du projet (3) Jira, gestion des tickets https://fr.atlassian.com/

Les outils de l’IHM Outils principaux Outils secondaires Bootstrap Design HTML-CSS http://getbootstrap.com/ knockoutjs Linkage HTML-Javascript http://knockoutjs.com/ Manipulation HTML https://jquery.com/ Gestion de tableaux https://datatables.net/ Gestion de graphs http://www.chartjs.org/ Gestion des collections https://lodash.com/ Manipulation de date https://momentjs.com/ Gestion d'icones (compatible Bootstrap) http://fontawesome.io/

Les outils du serveur Silex, Framework Principal, routage des requêtes (micro-framework symfony) https://silex.sensiolabs.org/ Pimple, Gestionnaire de dépendances (IOC/configuration) https://pimple.sensiolabs.org/ symfony/templating, Gestionnaire de template simple php (Partie Vue de MVC) http://symfony.com/doc/current/components/templating.html Wrapper HTTP symfony/http-foundation http://symfony.com/doc/current/components/http_foundation.html Wrapper DB doctrine/dbal http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/ Logueur monolog https://seldaek.github.io/monolog/ Wrapper smtp http://swiftmailer.org/ Wrapper ldap http://symfony.com/doc/current/components/ldap.html

Autres outils intéressants (Non utilisés car double emploi) Gestion des collections javascript (détrôné par lowdash) http://underscorejs.org/ MVC javascript http://backbonejs.org/ Linkage HTML-Javascript orienté composants https://vuejs.org/ https://facebook.github.io/react/ ExtJS, Système intégré de création d'IHM https://www.sencha.com/products/extjs Dojo, Système intégré de création d'IHM https://dojotoolkit.org/ Linkage HTML-Javascript https://angularjs.org/ Linkage HTML-Typescript (orienté composants) https://angular.io/ Gestion de dépendances http://requirejs.org/ Gestion de graphs https://d3js.org/ MVC node.js https://emberjs.com/ Le langage typescript https://www.typescriptlang.org/