Documentation Technique

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

Download "Documentation Technique"

Transcription

1 Documentation Technique TD8 Legendary Heroes La documentation technique a pour but de permettre à un développeur non familier avec le projet Legendary Heroes de comprendre les aspects techniques et prendre en main le code existant. Ce document contient des diagrammes expliquant le fonctionnement du projet, de descriptions des modules ainsi que le recensement des différents problèmes rencontrés au cours du développement.

2 Description du document Titre Documentation technique Legendary Heroes Date 20/03/2013 Auteurs Login Mail Xu Long Long xu_l Weiwen Yu yu_w Philippe Tian tian_p Franck Ibrahima ibrahi_f Jean Thai thai_j Paul Morel morel_e Tableau des révisions Date Version Auteur(s) Section(s) Commentaires 20/03/ yu_w, tian_p, ibrahi_f, morel_e, thai_j, xu_l Toutes Création du document 31/05/ Ibrahi_f IV.1.A Mise à jour des technologies partie client jeu 31/07/ thai_j VI.11.1, VI.11.2, VI.11.3, 15 Déploiement sites sur serveur web. Mise à jour des méthodes implémentées. 24/10/ thai_j VI.13 Mise à jour de la structure base de données 2014/01/ Yu_w Correction et ajout mineur 1

3 Table des matières Description du document... 1 Tableau des révisions... 1 I. Introduction au projet... 5 II. Architecture, buts et contraintes Objectifs spécifiques ayant un impact sur l architecture Contraintes fonctionnelles Contraintes non fonctionnelles... 6 III. Vue Déploiement... 7 IV. Partie jeu Introduction... 8 A. La partie client... 8 V. Partie serveur Technologie utilisées Implémentation a. Démarrage du serveur b. Interface c. Réseau d. Protocole e. Matchmaking f. Session de jeu g. Base de données Diagramme base de données Legendary Heroes VI. Sites internet Introduction de la partie site internet Diagrammes cas d utilisation Technologies utilisées

4 5. Frameworks utilisés Environnement de développement Implémentation Arborescence du domaine Configuration des sous-domaines Les Bundles Les contrôleurs FFFGamesHeaderBundle : HeaderController FFFGamesWebsiteBundle : PortalController FFFGamesLegendaryHeroesBundle : WebsiteController Structure template Base de données Table «user» Table «friends» Table «messages» Table «temporary_registration» Table «admin» Table «chat_rooms» Table «game_website» Table «news» Table «pass_retrieval» Table «profile» Modules Site Portail 3FGames Connexion a. Informations b. Diagramme d activité c. Diagramme de séquence Création de compte a. Informations b. Diagramme d activité c. Diagramme de séquence Site Legendary Heroes

5 Lancement du jeu a. Informations b. Diagramme d activité c. Diagramme de séquence Déploiement sites internet Debian Windows VII. Annexes Release Note Bug Log

6 I. Introduction au projet L Epitech Innovative Project (ou EIP) correspond au projet de fin d étude à l Epitech. Les étudiants doivent ainsi concevoir et réaliser un projet informatique sur deux ans qui validera la réalisation technique mais aussi les qualités de gestion, d organisation et de communication à la fin de leurs études. En plus de l aspect technique d un projet informatique, les étudiants doivent rendre le projet commercialisable via l élaboration d un business plan ainsi que de la publicité du projet. Dans le cadre de l EIP, notre équipe réalise le projet Legendary Heroes. Ce projet consiste à la réalisation d un portail de jeu en ligne, communautaire, le thème familial. Il permet aux personnes désirant passer du temps en groupe, en famille ou simplement se divertir, de se regrouper et/ou rejoindre une communauté de joueur. Plusieurs jeux vont être proposés aux joueurs, étant axé sur le thème familial, ces jeux seront comparables à des jeux de cartes ou jeux de société. Le projet Legendary Heroes se divise actuellement en deux parties distinctes : - Le portail de la communauté 3FGames: Le portail est un site internet permettant aux joueurs de s inscrire et être guidé vers les jeux en ligne disponibles. D autres fonctionnalités telles que la gestion de compte, l ajout d amis et la messagerie vont être développées. - Le jeu Legendary Heroes : Legendary Heroes est un jeu de carte en ligne et sera le 1 er jeu disponible sur le portail 3FGames. Chacun des jeux en ligne posséderont leurs propres sites internet leurs permettant de se différencier et produira un environnement plus distinctif et immersif pour l utilisateur sur chaque jeu. 5

7 II. Architecture, buts et contraintes 1. Objectifs spécifiques ayant un impact sur l architecture Les objectifs spécifiques ayant un impact sur l architecture : - le projet doit être utilisable sur plusieurs types de base de données - le projet doit être utilisable sur plusieurs types de système d exploitation - le projet doit pouvoir accueillir un grand nombre d utilisateur simultanément - le site doit être stable et fiable 2. Contraintes fonctionnelles Les contraintes fonctionnelles qui ont un impact sur l architecture : - possibilité que plusieurs utilisateurs se connectent sur le site portail - possibilité que plusieurs utilisateurs se connectent dans un jeu - consultation du site par un et plusieurs utilisateurs - l utilisateur doit pouvoir jouer à un jeu via le navigateur - l utilisateur doit pouvoir quitter une session de jeu à n importe quel moment - l utilisateur doit pouvoir jouer même avec une vitesse de connexion réduit 3. Contraintes non fonctionnelles Les contraintes non fonctionnelles qui ont un impact sur l architecture : - accès au site web et jeux sur différents systèmes d exploitation - accès au site web et jeux sur différents navigateur - le jeu doit pouvoir jouer de la musique - l utilisateur doit pouvoir modifier ses informations personnelles - l utilisateur doit pouvoir communiquer avec d autres joueurs lors des sessions de jeux - l utilisateur doit pouvoir envoyer et recevoir des messages privés - le site doit présenter un très bon design - le site doit être rapide à charger 6

8 III. Vue Déploiement L utilisateur (Poste Client), à partir de son navigateur internet doit se connecter soit depuis le site portail ou depuis un site de jeu. La base de données est séparée en deux parties, la base de données portail contenant les informations générales du compte utilisateur (mot de passe, , etc.) et la base de données jeu contenant les composants du jeu (objets, cartes, etc.) ainsi que les informations du joueur par rapport au jeu concerné (classement, exploits, etc.). Le navigateur internet doit avoir un lecteur Flash installé au préalable afin d exécuter le jeu contenu dans le site jeu. L exécutable communique avec un serveur de jeu qui s assure de la communication et la synchronisation entre tous les joueurs. Le serveur de jeu a la possibilité d interroger les bases de données afin de récupérer les informations concernant les joueurs. 7

9 IV. Partie jeu 1. Introduction Le jeu est séparé en deux parties distinctes : - Une partie client, qui utilise la technologie Flash - Une partie serveur, qui est codé avec le langage de programmation C++ A. La partie client La partie client utilise Aswing pour créer du contenu 2d. Aswing est un API surtout destiné au développement de l'interface graphique de jeu. API très complet, permettant de développer des jeux les plus simples aux jeux flash les plus complexes. L'utilisation de cette API permet d'utiliser la carte graphiqe afin d'accélérer la vitesse et la puissance du client de jeu. De plus, nous utilisons Robotlegs, un api qui permet de développer notre application client sous l'architecture MVC. Le choix de robotlegs est sans équivoque un choix judicieux puisque il permet de mieux structurer le code, de bien différencier les différentes parties du programme et de les intégrer rapidement et assez facilement. Pour plus d'informations sur cette technologie, vous pouvez jeter un coup d'œil sur le site officiel L image ci-dessous montre l organisation de code source dans la partie client : On a le package par défaut, qui contient une classe qui est le point d entrée de progamme, cette classe sera appelée automatiquement au lancement par Flash Player. 8

10 Le package assets contient tous les sources externes nécessaires pour le jeu, comme les images, les sons, les sprites... Puis on a un package LegendaryHeros qui contient tous les codes sources du jeu, qui est divisé en plusieurs sous packages. Le client est lancé au moment où l'utilisateur ouvre la page de jeu sur notre site portail. Dès le lancement du client, LegendaryHeroes est instancié et est exécuté automatiquement. Cette classe permet d instancier la classe GameStartMenu, qui est une classe fille de Sprite et qui permet d'afficher dans ce cas-là, notre menu du jeu. 9

11 Lorsqu un utilisateur identifié lance le jeu, le site portail envoie au client Flash le ID de l utilisateur, cet ID sera reçu par la classe WebsiteCommnicator, qui s occupe de la communication entre le site web et le client. Le message envoyé par le siteweb est capté par l event ExternalInterface.addCallback, qui va appeler à son tour la fonction SendToJavascript, dans la SendToJavascript, un event est créé pour alerter la classe principale GameScreen pour lui passer l'id du client, la classe GameScreen va, dans ce cas, essayer de communiquer avec le serveur de jeu pour récupérer les information du joueur qui correspond à cette ID, et ensuite le menu de jeu est affiché. Pour la communication entre le client et le serveur de jeu, on utilise le protocle TCP/IP, la donnée à envoyer est sous format XML, la communication entre le serveur est assurée par le package Network dans le LegendaryHeroes Package. 10

12 La classe Connection dans le package Network instancie Flash.Net.Socket pour la communication en TCP/IP. Les données entre le serveur sont sous format XML, ces données sont créées et traitées par les fonctions dans le package XMLManager. La classe DataCreator dans le package XMLManager s occupe de créer les différents types de donnée XML à envoyer. Par exemple la création de donnée XML pour le requête au serveur sur les informations de joueur dans la base de donnée de jeu, ou les informations sur les logiques de jeu. Pour traiter les données XML envoyées par le serveur, la classe DataProcess dans le package XMLManager s occupe de de-sérialiser et de traiter ces informations afin de créer des events pour signaler à des fonctions qui s occupent de faire l affichage visuelle au joueur. 11

13 V. Partie serveur Le serveur a deux fonctionnalités : permettre aux joueurs de jouer et l'administration des parties via une interface en ligne de commandes. 1. Technologie utilisées Le serveur est programmé avec le langage de programmation C++. Nous utilisons la bibliothèque Boost::Asio pour la gestion du réseau. Pour des raisons de performance le serveur est multi threadé grace à Boost::Thread. Les requêtes en base de données sont exécutées avec la bibliothèque MySQL Connector/C++. En parallèle du serveur de jeu un serveur de base de données MySQL est déployé sur la même machine. Toutes ces technologies sont portables. Ainsi même si le projet est actuellement configuré pour Visual Studio 2010 il est facile de le porter sur les systèmes UNIX et MAC. 2. Implémentation a. Démarrage du serveur Lors de l exécution du binaire de serveur la classe Server est instancié et sa routine de lancement est appelée. Routine de lancement du serveur : void Server::run(void) { // Start the client listening routine in background startaccept(); running = true; // Start console in background boost::thread thread(boost::bind(&server::console, this)); } // Run io network service while (running) io.run_one(); b. Interface Il est possible d interagir avec le serveur en local en envoyant des commandes sur son entrée standard. Le serveur répond actuellement à de simples commandes telles que quit. Le but est d'ajouter des commandes affichant les statistiques des clients connectés et des parties en cours. 12

14 c. Réseau Au démarrage le serveur écoute sur le port 4242 avec un socket TCP. Lancement du serveur (main.cpp) Server server(io); server.listenonport(4242); server.run(); Chaque nouveau client est associé à une instance de la classe RemoteClient. class RemoteClient { public: // Initialise a Client handler for the given network service RemoteClient(boost::asio::io_service & io); // Retrieve low level socket boost::asio::ip::tcp::socket & getsocket(void); // Start the request hanling process void start(void); // Set a new callback to be called when a packet is received void setpacketreceivedcallback(packetreceivedcallback callback); // Send data to the remote client void sendpacket(const RemoteClient::Packet & packet); }; Cette classe est responsable des opérations réseau asynchrone liés à ce client. À la connexion d'un joueur l'instance RemoteClient est gérée par la classe Server. void Server::handleAccept(RemoteClient * client) { // Add the new client to the connected clients list. addclient(client); // Start new client networking routine client->start(); // Restart the listener for more incoming clients. startaccept(); } Le client est alors placé dans un lobby géré par la classe Server en attendant de le lié à une session de jeu. d. Protocole Les clients communiquent avec le serveur avec par protocole XML. Le protocole XML est parsé par un système générique convertissant les données xml en liste de std::string. 13

15 Le protocole est défini par des instances de la classe XmlFormat initialisé comme tel dans la classe RemoteClient : // protocol is the action list of the protocol // XmlFormat is a parse tree of the xml of the request protocol["connection_result"] = XmlFormat("LegendaryHeroes").attribute("type_info").child( XmlFormat("Connection_result").attribute("result")); Pour étendre le protocole il faut donc ajouter une entrée dans la variable RemoteClient ::protocol en définissant le format de la requête avec XmlFormat. Actuellement le protocole est découpé en deux parties : Les échanges dans le lobby et les échanges dans une partie. Liste des requêtes réseaux avant d'entrer dans une partie (lobby) : Connection : Connexion au serveur de jeu Connection_result : Réponse du serveur JoinQueue : Jouer, entre dans la file d attente JoinQueueResult : Réponse du serveur CancelQueue : Quitte la file d'attente ListFriend : Récupère la liste d'ami ListFriendResult : Réponse du serveur ListCards : Obtenir la liste des cartes possédées ListCards : Réponse du serveur SubmitDeck : Mettre à jour le nouveau deck SubmitDeck : Réponse du serveur Reconnect : Requête client de reconnexion Reconnect : Réponse du serveur Disconnect : Déconnexion du client 14

16 Liste des requêtes réseaux au cours d'une partie : PreStart : Envois des infos de jeu des joueurs au début de la partie ChoosePerso : Le serveur propose des rôles au client ChoosePerso : Le client choisi un rôle ChosenPerso : Le serveur informe chaque client de du rôle de chacun PickCards : Le serveur envoie le résultat d'une pioche BeginTurn : Le serveur informe tout le monde quel joueur commence à jouer EndTurn : Le joueur informe la fin de son tour PlayCard : Le joueur joue une carte PlayCard : Le serveur informe chaque client qu'une carte a été jouée AffectedPlayCard : Un joueur joue une carte en contre AffectedPlayCard : Le serveur informe chaque client qu'une carte est jouée en contre PlayerLeft : Un joueur se déconnecte PlayerLeft : Le serveur informe chaque client de la déconnexion d'un joueur PlayerDead : Le serveur informe tous les clients de la mort d'un joueur GameEnd : Le serveur informe tous les clients que la partie est terminée RecoTO : Le serveur informe tous les clients qu'un client s'est reconnecté ou qu'il a été éjecté (timeout) SendTxt : Un joueur envoie un message sur le chat SendTxt : Le serveur transmet le message à tous les clients La classe Server parse et exécute les requêtes XML reçues concernant les joueurs qui ne sont pas dans une partie. 15

17 e. Matchmaking Quand un joueur fait une requête pour lancer une partie le serveur tente de réunir des joueurs selon leur niveau pour commencer une partie. Pour déterminer le niveau des joueurs le serveur récupère le grade des joueurs stocké dans la BDD MySQL. Le matchmaking est également basé sur le temps d'attente afin de ne pas laisser un joueur d'un niveau différent attendre trop longtemps. Lorsqu'une partie est créée le serveur instancie la classe GamePart. Cette classe représente la durée de vie d'une partie. Elle stocke tous les RemoteClient des joueurs participant. La classe GamePart notifie chacun de ses RemoteClient qu'elle gère à présent leurs requêtes réseau. f. Session de jeu La session de jeu correspond au jeu en cours, et possède donc une boucle de jeu gérant les différents mécanismes de LegendaryHeroes, tel que: - la distribution des cartes de rôle et de personnage - le positionnement sur la table de jeu - la distribution des cartes de jeu (la pioche de jeu et le tas de défausse) - la gestion du tour par tour et des timers - la gestion réseau des envoie et réception de paquets traduit en action de jeu grâce à la classe Client La classe qui représente la session de jeu est GamePart. 16

18 1. Classe représentant la session de jeu class GamePart { public: GamePart(); //constructeur par défaut, non utilisé GamePart(list<Client>, int gamesize); //constructeur prenant la liste des clients et la taille de la game ~GamePart(); //destructeur void GamePart::setClientdata(list<Client>); //fonction qui stocke les infos de clients dans le vecteur groupe de l'objet. void GamePart::ChoosePerso(Protocole proto); //Fonction protocole pour sauvegarder le choix du perso void GamePart::EndTurn(Protocole proto); //Fonction protocole prenant en compte la fin de tour d'un joueur void GamePart::PlayCard(Protocole proto); //Fonction protocole d'un joueur jouant une carte void GamePart::AffectedPlayCard(Protocole proto); //Fonction protocole d'un joueur jouant une carte en contre void GamePart::PlayerLeft(Protocole); //Fonction protocole annonçant la déconnexion d'un joueur void GamePart::SendTxt(Protocole); //Fonction protocole envoie d'un message sur le chatbox en jeu void GamePart::parsingGame(Protocole proto); //Parseur de Fonction protocole et traitement par une map de méthodes. void GamePart::initialize(); //Initialisation du ptr sur méthode. bool GamePart::IsMyTurn(int); //Fonction renvoyant si le tour actuel est bien le tour du joueur en paramètre void GamePart::launchboucle(); //Lancement de la boucle de jeu void GamePart::setClientRole(); //Attribution des rôles des joueurs par un algo de hasard simuler. protected: std::vector<joueur> groupe; //Vector contenant les infos des clients du groupe de jeu int gamesize; //taille de la partie actuelle int touractuel; //numéro du tour du joueur actuel. }; 17

19 2. Classe représentant le joueur et le client enum Role // les différents rôles jouable dans LegendaryHeroes. { AUCUN, EMPEREUR, FIDELE, REBELLE, TRAITRE, REINE }; class Joueur { public: Joueur(); //constructeur par défaut ~Joueur(); //destructeur par défaut int Joueur::getAttack(); //getter du nombre d'attaque disponible(0-1 ou infini) int Joueur::getCharacterid(); //getter de l'id de la carte personnage choisi Role Joueur::getRole(); //getter du rôle int Joueur::getNbcards(); //getter du nb de carte dans la main void Joueur::setAttack(int ); //setter du nb d'attaque void Joueur::setCharacterid(int ); //setter de l'id personnage void Joueur::setRole(Role); //setter du rôle int id; //id du joueur int playerspot; //position du joueur sur la table de jeu int Joueur::getRange(); //getter de la portée d'attaque void Joueur::setRange(int); //setter de la portée d'attaque protected: std::string pseudo; //pseudo du joueur int attack; //nombre d'attaques disponibles int characterid; //id du personnage Role role; //rôle joué std::list<int> *hands; //liste contenant les cartes de la main int range; //portée d'attaque du joueur std::vector<int> *equipped; //cartes équipées au joueur }; 18

20 3. Classe représentant une carte de jeu (différent de la carte de rôle et la carte personnage) enum actif //représente les caractéristiques actif d'une carte de jeu { NOT = 0, BANGATK, VOL, DETRUIT, PRISON, SOIN }; enum reactif //représente les caractéristiques de contre d'une carte de jeu { NONE = 0, BANGDEF, RATE, LASTCHANCE }; class Carte { public: bool _multi; //multi pour savoir si la carte est jouable sur un joueur adverse ou non bool _solo; //solo pour savoir si utilisable sur soi même int _portee; // portée -1 = infini 0 = dépend de la portée du joueur et 1+ = portée fixe de la carte }; 19

21 g. Base de données Le serveur Legendary Heroes dispose d'une connexion à une base de données MYSQL. De nombreuses informations seront stockées dans la base de données notamment la liste des joueurs qui se sont inscrits au jeu, les statistiques des joueurs, les logs, les parties jouées. Toutes ces données seront essentielles au bon fonctionnement du jeu, mais surtout, elle permettra aux joueurs d'accéder à de nombreuses informations concernant par exemple son historique de jeu ou bien d'avoir accès à la boutique du jeu, mais également de voir le profil des autres joueurs. Détails techniques : Pour pouvoir communiquer avec la base de donnée, le serveur de jeu doit instancié une classe nommée Database, une fois instancié et donc connecté au serveur MySQL, il pourra lancer des requêtes grâce à la fonction Resquest(const std::string &) prenant en paramètre la requête à effectuer. Par exemple "Database->Request("SELECT FROMPlayer WHERE 1")". De plus la classe Database dispose de requête prédéfini vers la base de données afin de simplifier la lisibilité du code et mais surtout de mieux gérer les informations lorsqu'il y'a des données à récuperer. Voici des exemples de fonctions prédéfinis: - static void GetProfil(Database *, Player *) => fonction qui récupère les informations du joueur concerné. - static void SetPlayerInGame(Database *, const Player *) => fonction qui va indiquer que le joueur est en pleine partie de jeu. - static void CreateReport(Database *, const Report *) => fonction qui va permmettre de créer un report lorsque joueur rencontre un problème dans le jeu par exemple. - static void SetPlayerOnline(Database *, const Player *) => fonction qui va connecter le joueur en ligne - static void CreateRoom(Database *, const Room *) => fonction qui va permettre d'indiquer qu'une room de jeu viens tout juste d'être crée. Afin d'améliorer les performances du serveur face aux nombreuses requêtes, s'il y'a plusieurs requêtes en même temps, la classe Database est threadé, les requêtes sont stockées dans une file d'attente jusqu'à qu'elle soit traité et si la requête demande à ce que des valeurs soient retournées, un signal est automatiquement envoyé au thread ou à la classe afin de récupérer les données. 20

22 Diagramme base de données Legendary Heroes 21

23 VI. Sites internet 2. Introduction de la partie site internet Les sites internet sont les portes d entrées menant les utilisateurs aux jeux disponibles. Deux catégories de sites internet sont apercevables dans le projet : - Site Portail 3FGames : Le site portail est un site gérant l inscription de l utilisateur au sein de la communauté. L utilisateur aura la possibilité de gérer son compte à partir de ce site, accéder aux jeux disponibles depuis une liste de sélection mais aussi de consulter l actualité des jeux qui sont centralisée sur ce portail. Le site portail ne contient aucun jeu en soi et ne redirige que l utilisateur vers les sites jeux depuis une liste de sélection. - Sites jeu : Chaque jeu possède un site propre à eux où une présentation et les règles de jeu y sont expliquées. C est à partir de ce site que le joueur pourra accéder au jeu. Tous les sites possèdent un module utilisateur correspondant à un en-tête qui comporte les fonctionnalités principales de l utilisateur (connexion, sélection du jeu, consultation des messages). 3. Diagrammes cas d utilisation Diagramme cas d utilisation site jeu 22

24 Diagramme cas d utilisation site portail 23

25 4. Technologies utilisées Technologie xhtml/css PHP JavaScript Commentaires Langage de formatage classique permettant de créer des pages internet. PHP permet de rajouter la composante dynamique des pages internet, il permet l élaboration de pages internet intelligente pouvant récupérer et traiter des données demandé à l utilisateur. D autres technologies son équivalent à PHP tel que Java J2EE et C#.Net mais le manque de portabilité de ce dernier et les nombreux failles de Java nous fait préférer utiliser PHP pour ce projet pour le moment. JavaScript nous permet d animer les pages internet afin de les rendre agréable à utiliser pour l utilisateur (par exemple une animation au passage de la souris ou des chargements de pages dynamique). 5. Frameworks utilisés Framework Symfony2 JQuery Commentaires Le framework Symfony2 impose une norme de développement MVC structurant le code afin de faciliter la maintenance de celui-ci. PHP étant un langage relativement libre de notation, il est donc impératif d utiliser ce framework qui impose un style de programmation objet du même niveau que J2EE ou C#.Net JQuery est un framework de JavaScript simplifiant l utilisation de ce dernier. Il rajoute des fonctionnalités permettant l utilisation d AJAX qui permet le chargement de contenu au sein d une même page. 6. Environnement de développement Nous utilisons la suite de logiciel WAMP pour Windows et LAMP pour Linux. Cette suite de logiciel comporte les applications suivantes : - Apache : Serveur internet permettant de traiter les requêtes des clients, le serveur héberge les pages internet. - MySQL : Base de données contenant les informations et données nécessaires au fonctionnement du projet. - PHP : Le module PHP intégré au serveur Apache lui permet d interpréter le code PHP des pages internet. 24

26 7. Implémentation Architecture MVC C est un pattern architectural qui sépare les données (le modèle), l interface homme-machine (la vue) et la logique de contrôle (le contrôleur). Lorsqu un utilisateur consulte un site basé sur cet architecture, le navigateur envoie les requêtes de l utilisateur au site à travers le protocole http, de côté site, la couche contrôleur filtre les commandes par une série de traitement logiques, si la requête passe le filtrage, la couche modèle s engage à interagir avec la base de donnée sur le serveur distant, et elle renvoie à la couche contrôleur des données correspondante à la requête, la couche contrôleur transmit ensuite ces données à la couche vue qui génère une page web au utilisateur. Les trois couches : - Le modèle: Il représente les données de l application. Il définit aussi l interaction avec la base de données et le traitement de ces données. - La vue: Elle représente l interface utilisateur. Elle n effectue aucun traitement en générale et se contente d afficher les données que lui fournit le modèle à travers le contrôleur. Il peut y avoir plusieurs vues qui présentent les données d un même modèle. - Le contrôleur: Il génère l interface entre le modèle et le client. Il va interpréter la requête de ce dernier pour lui envoyer la vue correspondante. Son rôle est donc de récupérer les informations, de les traiter en fonction des paramètres demandés par la vue, puis de renvoyer à la vue les données à afficher. Il effectue la synchronisation entre le modèle et les vues. 25

27 Voici un schéma de l architecture MVC : Avantages / Inconvénients L architecture MVC apporte de réels avantages : Une conception claire et efficace grâce à la séparation des données de la vue et du contrôleur Un gain de temps de maintenance et d évolution du site Une plus grande souplesse pour organiser le développement du site entre différents développeurs (indépendance des données, de l affichage et des actions). Les inconvénients L inconvénient majeur du modèle MVC n est visible que dans la réalisation de petits projets, de site internet de faible envergure. Car la séparation des différentes couches nécessite la création de plus de fichiers (3 fois plus exactement). 26

28 8. Arborescence du domaine Schéma d arborescence du domaine 9. Configuration des sous-domaines Afin d obtenir les sous-domaines pour chaque site jeu (par exemple legendaryheroes.3fgames.fr) il faut modifier le fichier de configuration httpd.conf du serveur Apache. NameVirtualHost * <VirtualHost *> ServerName legendaryheroes.3fgames.fr DocumentRoot /www/3fgames/ </VirtualHost> <VirtualHost *> ServerName DocumentRoot /www/3fgames/ </VirtualHost> Cette configuration permet la prise en compte du sous-domaine depuis le serveur Apache. En plus de la configuration côté serveur web, nous devons aussi modifier les routes à Symfony2 afin de rediriger les requêtes vers les bons contrôleurs dans les fichiers routing.yml. 27

29 fff_games_legendary_heroes_website_homepage: path: / host: legendaryheroes.3fgames.fr defaults: { _controller: FFFGamesLegendaryHeroesWebsiteBundle:Website:index } fff_games_legendary_heroes_website_index: path: /index host: legendaryheroes.3fgames.fr defaults: { _controller: FFFGamesLegendaryHeroesWebsiteBundle:Website:index } Dans cet exemple, la ligne spécifiant host permet au moteur de routes Symfony de rediriger la requête vers le contrôleur du site de jeu lorsque le navigateur accède au domaine legendaryheroes.3fgames.fr. Dans le cas où l utilisateur accède au domaine principal le moteur de route redirigera la requête vers le contrôleur du site portail. Pour plus d informations sur les routes Symfony2, veuillez consulter la documentation. 10. Les Bundles Les Bundles sont des composants de Symfony. Ils permettent de regrouper une partie du site internet facilitant son utilisation au sein de plusieurs pages internet. Dans le framework Symfony, tout code appartient à un bundle, ainsi un bundle peut être un composant réutilisable ou le site internet en lui-même. Le project Legendary Heroes se découpe actuellement en trois bundles différents : - Barre d utilisateur 3FGames : la barre d utilisateur en en-tête de chaque site permettant aux joueurs d accéder rapidement aux fonctionnalités de bases. Il est codé dans le bundle «FFFGamesHeaderBundle», tous les sites doivent inclure ce bundle afin d obtenir l en-tête 3FGames. - Site portail 3FGames : Tout le site portail 3FGames regroupé dans un bundle nommé «FFFGamesWebsiteBundle». - Site jeu Legendary Heroes : De même que pour le site 3FGames, Legendary Heroes est codé dans un bundle nommé «FFFGamesLegendaryHeroesWebsiteBundle». Pour plus d informations sur les bundles Symfony2, veuillez consulter la documentation. 28

30 11. Les contrôleurs Les contrôleurs sont les parties gérants les requêtes du navigateur client lors d un chargement de page. Le projet se compose actuellement des contrôleurs suivants : Diagramme contrôleurs Pour plus d informations sur les contrôleurs Symfony2, veuillez consulter la documentation FFFGamesHeaderBundle : HeaderController Répertoire : /src/fffgames/headerbundle/headercontroller.php Ce contrôleur génère, affiche et gère l en-tête 3FGames sur chaque début de page. Méthode Statut Commentaires getheaderaction() Implémenté Appelée depuis un template, permet de générer l affiche de l en-tête. userloginaction() Implémenté Gère la connexion de l utilisateur. Elle récupère les informations d authentification et vérifie la correspondance des données. Elle créer les données de sessions. userlogoutaction() Implémenté Gère la déconnexion de l utilisateur. Elle détruit les données de sessions. addfriendaction() Implémenté Code gérant l ajout d un ami à la liste de contact de l utilisateur en base de données. deletefriendaction() Implémenté Code gérant la suppression d un ami à la liste de contact de l utilisateur en base de données. openmailboxaction() Implémenté Chargement et affichage de la page de messagerie. sendmessageaction() En cours Gère l envoie d un message vers un ami de l utilisateur. readmessageaction() En cours Chargement d un message de la page de messagerie. deletemessageaction() En cours Suppression d un message de la boite de messagerie. editprofilepageaction() Implémenté Affichage de la page d édition du profile utilisateur. editprofileaction() Implémenté Sauvegarde les modifications du profile utilisateur. 29

31 11.2. FFFGamesWebsiteBundle : PortalController Répertoire : /src/fffgames/websitebundle/controller/portalcontroller.php Ce contrôleur contient le site portail 3FGames, toutes les pages sont gérées par ce contrôleur qui s occupe de les générer. Méthode Statut Commentaires indexaction() Implémenté Génère la page d index du portail. registerpageaction() Implémenté Génère la page d inscription. registeraction() Implémenté Gère l inscription de l utilisateur au portail 3FGames. Le contrôleur vérifie les informations renseignées par l utilisateur et le sauvegarde en base de données temporairement. confirmregistrationaction() Implémenté Gère la finalisation de l inscription de l utilisateur après une confirmation de l utilisateur à partir d un message . creditspageaction() Prévu Génère la page de crédits du portail FFFGamesLegendaryHeroesBundle : WebsiteController Répertoire : /src/fffgames/ LegendaryHeroesWebsiteBundle/Controller/WebsiteController.php Ce contrôleur contient le site de jeu Legendary Heroes, toutes les pages sont gérées par ce contrôleur qui s occupe de les générer. Méthode Statut Commentaires indexaction() Implémenté Génère la page d index du site Legendary Heroes. rulespageaction() Implémenté Génère la page des règles du jeu. creditspageaction() Prévu Génère la page de crédits du site. scorepageaction() Prévu Génère la page de classement utilisateur pour le jeu. 30

32 12. Structure template Le moteur de templates Twig est utilisé afin de mettre en place la vue du modèle MVC dans le framework Symfony2. Voici la composition classique d une page template de tous les sites. Aperçu séparation structurelle d une page Les pages internet sont composés de trois parties distinctes : 1. L en-tête de la page, la même pour toutes les pages, est généré par le contrôleur «HeaderBundle : HeaderController». 2. Le contenu de la page qui est géré par les contrôleurs dédiés à chaque page du site. 3. Le pied de page, la même pour toutes les pages, est une inclusion d un fichier template. 31

33 Le code suivant est le code template utilisé pour reproduire la même disposition. <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title> <!-- Inclusion du titre de la page --> {% block title %}{% endblock %} </title> <!-- Inclusion des feuilles de style --> {% block stylesheets %}{% endblock %} </head> <body> <!-- Inclusion des scripts JavaScript --> {% block javascripts %} {% endblock %} <!-- Appel du contrôleur afin de générer l en-tête --> {% render(controller('fffgamesheaderbundle:header:getheader')) %} <div id="page-content"> <div class="content"> <!-- Inclusion du contenu de la page --> {% block page_content %} {% endblock %} </div> </div> <!-- Inclusion du pied de page --> {% include 'FFFGamesWebsiteBundle:Portal:footer.html.twig' %} </body> </html> Pour plus d informations sur les templates Symfony2, veuillez consulter la documentation. 32

34 13. Base de données Diagramme base de données du site 3FGames Le site portail 3FGames possède une base de données des comptes utilisateurs ainsi que les autres fonctionnalités tels que la base de données des amis, la messagerie et le système d inscription en deux étapes. D autres bases de données existent et correspondent aux données du jeu tel que les objets du jeu, succès du joueur, etc. Tous données de jeu liant à un joueur possède un identifiant permettant de le retrouver parmi la base de données utilisateur de 3FGames Table «user» Colonne id username salt password is_active Commentaires Identifiant unique permettant de différencier chaque entrée. Est une clé primaire. Nom d utilisateur. Chaîne de caractères permettant de chiffrer le mot de passe. Mot de passe utilisateur chiffré en MD-512. Adresse de l utilisateur. Indique si l utilisateur est actuellement en ligne. 33

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes Symfony 2 Sommaire : 1.Définition de symfony 2 2.Installation 3.Structure 4.Symfony et les commandes 5.Le fonctionnement : le routeur (les url), les bundles, twig(templates) 6.L architecture de symfony2

Plus en détail

Gestion d une école. FABRE Maxime FOUCHE Alexis LEPOT Florian

Gestion d une école. FABRE Maxime FOUCHE Alexis LEPOT Florian Gestion d une école FABRE Maxime 2015 Sommaire Introduction... 2 I. Présentation du projet... 3 1- Lancement de l application... 3 Fonctionnalités réalisées... 4 A. Le serveur... 4 1 - Le réseau... 4 2

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

Documentation de CMS-gen

Documentation de CMS-gen Table des matières GÉNÉRALITÉ... 1 LA ZONE D'ADMINISTRATION... 2 LOGIN SUR LA ZONE D ADMINISTRATION... 2 EDITION DU CONTENU EN LIGNE... 3 LE MODE EDITION... 3 PUBLICATION... 3 SUPPRIMER DES MODIFICATIONS...

Plus en détail

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL Prise en main de NVU et Notepad++ (conception d application web avec PHP et MySql) Propriétés Intitulé long Formation concernée Matière Présentation Description Conception de pages web dynamiques à l aide

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Projet Web. Tim Burton. Refonte complète du site de Tim Burton en utilisant les dernières technologies du web : HTML 5 / CSS 3 / JavaScript...

Projet Web. Tim Burton. Refonte complète du site de Tim Burton en utilisant les dernières technologies du web : HTML 5 / CSS 3 / JavaScript... Projet Web Tim Burton Refonte complète du site de Tim Burton en utilisant les dernières technologies du web : HTML 5 / CSS 3 / JavaScript... Par Omar EDDASSER L3 ISC parcours MIAGE Sous l enseignement

Plus en détail

Documentation technique

Documentation technique MEEVY Documentation technique Juillet 200 MEEVY a pour but de fournir aux artistes des outils pour promouvoir leur musique sur internet et proposer à l auditeur une plateforme de musique en ligne gratuite

Plus en détail

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web. Document 1 : client et serveur Les ordinateurs sur lesquels sont stockés les sites web sont appelés des serveurs. Ce sont des machines qui sont dédiées à cet effet : elles sont souvent sans écran et sans

Plus en détail

TP n 1 : Installation et configuration d un serveur Web Apache

TP n 1 : Installation et configuration d un serveur Web Apache TP n 1 : Installation et configuration d un serveur Web Apache Objectifs du TP Configurer, lancer et administrer le serveur Web Apache sous Linux Machines sous Linux Fedora 14 Fichiers de configuration

Plus en détail

Braquelaire Tristan Sollaud Timothée IN-501-A1 SHOAL. Projet de Réseau et Programmation Objet 2012 / 2013. Note de Synthe se

Braquelaire Tristan Sollaud Timothée IN-501-A1 SHOAL. Projet de Réseau et Programmation Objet 2012 / 2013. Note de Synthe se Braquelaire Tristan Sollaud Timothée IN-501-A1 SHOAL Projet de Réseau et Programmation Objet 2012 / 2013 Note de Synthe se Sommaire I. Présentation générale :...1 A. La Connexion :... 1 B. L interface

Plus en détail

Joomla! Création et administration d'un site web - Version numérique

Joomla! Création et administration d'un site web - Version numérique Avant-propos 1. Objectifs du livre 15 1.1 Orientation 15 1.2 À qui s adresse ce livre? 16 2. Contenu de l ouvrage 17 3. Conclusion 18 Introduction 1. Un peu d histoire pour commencer... 19 1.1 Du web statique

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

Développer de nouvelles fonctionnalités

Développer de nouvelles fonctionnalités 19 Développer de nouvelles fonctionnalités Chaque site e-commerce est unique. Bien que Magento soit une application riche, des besoins spécifiques apparaîtront et l ajout de modules deviendra nécessaire.

Plus en détail

Symphony. I. Base de données Oracle XE 11g : défaire le dimensionnement de la bdd... 40

Symphony. I. Base de données Oracle XE 11g : défaire le dimensionnement de la bdd... 40 Symphony Procédures d installation de Symphony avec la BDD Oracle en local et configuration de la BDD avec l application SQL Developer (BDD installée manuellement) 1. Avant installation... 2 2. Les manuels

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

DEVELOPPEMENT LOGICIEL

DEVELOPPEMENT LOGICIEL DEVELOPPEMENT LOGICIEL LE FRAMEWORK WEB RUBY ON RAIL REF : WELA010 DUREE : 4 JOURS TARIF : 2 060 HT Public Développeurs d applications web, Chefs de projet techniques, Architectes. Pré-requis Programmation

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

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors 2011-2012

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors 2011-2012 EP60.92 Projet d application pluridisciplinaire La chasse aux trésors 2011-2012 I. Objectifs Mettre en œuvre les compétences acquises ou en cours d acquisition en: o Modélisation UML, Réseau, Base de données,

Plus en détail

Préparation d un serveur Apache pour Zend Framework

Préparation d un serveur Apache pour Zend Framework Préparation d un serveur Apache pour Zend Framework Jacques THOORENS 30 novembre 2010 Résumé Cette petite introduction explique comment paramétrer son serveur Apache personnel pour en faire une machine

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

Génie logiciel, conduite de projets... Mémo. Utilisation de subversion et de forge. Bruno Zanuttini, Jean-Luc Lambert, François Rioult

Génie logiciel, conduite de projets... Mémo. Utilisation de subversion et de forge. Bruno Zanuttini, Jean-Luc Lambert, François Rioult Université de Caen Basse-Normandie Département d informatique Tous diplômes, 2012 2013 Unité : N/A Génie logiciel, conduite de projets... Mémo. Utilisation de subversion et de forge Bruno Zanuttini, Jean-Luc

Plus en détail

Rapport Gestion de projet

Rapport Gestion de projet IN56 Printemps 2008 Rapport Gestion de projet Binôme : Alexandre HAFFNER Nicolas MONNERET Enseignant : Nathanaël COTTIN Sommaire Description du projet... 2 Fonctionnalités... 2 Navigation... 4 Description

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

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

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

TD1. Installation de Symfony 2 et Netbeans

TD1. Installation de Symfony 2 et Netbeans I - Introduction : TD1 Installation de Symfony 2 et Netbeans L objet de ce TP est d installer l environnement de travail. Nous commençons par définir des notions de base nécessaires pour comprendre la

Plus en détail

Conception Plateforme Messagerie

Conception Plateforme Messagerie Conception Plateforme Messagerie Date du document Vendredi 19 mai 2006 Sommaire du document I. Introduction...1 II. Une vision globale du système...1 1. Le diagramme de classes UML...1 2. Détail des méthodes

Plus en détail

Programmation Android TP7 - WebServices

Programmation Android TP7 - WebServices 1. WebService Dans le TP6, les avis étaient stockés dans une base SQL. Cette semaine les n-uplets sont stockés sur une base de données externe gérée par un serveur HTTP sur lequel tournent des scripts

Plus en détail

Guillaume MONTAVON Benoît MEILHAC. Rapport Technique du projet. Gestionnaire de tâches pour Android

Guillaume MONTAVON Benoît MEILHAC. Rapport Technique du projet. Gestionnaire de tâches pour Android Guillaume MONTAVON Benoît MEILHAC Rapport Technique du projet Gestionnaire de tâches pour Android Sommaire 1. Introduction... 3 2. Outils utilisés... 3 2.1. Android SDK... 3 2.2. Android dans Eclipse...

Plus en détail

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement OBJECTIFS Historiquement,

Plus en détail

Ce manuel vous accompagne au long des procédures d installation et de restauration de PheBuX 2004 [alternative solutions]

Ce manuel vous accompagne au long des procédures d installation et de restauration de PheBuX 2004 [alternative solutions] Version 2004 Ce manuel vous accompagne au long des procédures d installation et de restauration de PheBuX 2004 [alternative solutions] Il vous permet aussi de vous familiariser avec le fonctionnement de

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

Projet d Etude et de Développement

Projet d Etude et de Développement Projet d Etude et de Développement PokerServer Guide d installation Auteurs: Lucas Kerdoncuff Balla Seck Rafik Ferroukh Xan Lucu Youga MBaye Clients: David Bromberg Laurent Réveillère March 28, 2012 Contents

Plus en détail

Créez et administrez vos sites Web

Créez et administrez vos sites Web Joomla! 3.3 Créez et administrez vos sites Web Didier MAZIER Table des matières.. 1 Chapitre 1 : Découvrir Joomla! A. Les raisons de créer un site sous Joomla!.. 9 B. Se documenter sur Joomla! 9 C. La

Plus en détail

Documentation du serveur de jeu

Documentation du serveur de jeu Documentation du serveur de jeu Introduction Ce document décrit le rôle de notre serveur de jeu et les fonctionnalités qu il fournit à l application Android. Nous détaillerons aussi l architecture et les

Plus en détail

Etude et développement d un moteur de recherche

Etude et développement d un moteur de recherche Ministère de l Education Nationale Université de Montpellier II Projet informatique FLIN607 Etude et développement d un moteur de recherche Spécifications fonctionnelles Interface utilisateur Responsable

Plus en détail

Tutorat C/Unix : Un Rapido Client/Serveur

Tutorat C/Unix : Un Rapido Client/Serveur Tutorat C/Unix : Un Rapido Client/Serveur Nouredine Melab 1 Description générale du projet 1.1 Objectif L'objectif du projet est de concevoir et de réaliser un jeu de hasard dénommé Rapido. Un serveur

Plus en détail

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

Plus en détail

FileMaker Pro 12. Aide FileMaker Server

FileMaker Pro 12. Aide FileMaker Server FileMaker Pro 12 Aide FileMaker Server 2007-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker est une marque de FileMaker, Inc.,

Plus en détail

Système de contrôle d accès

Système de contrôle d accès Système de contrôle d accès Installation du système Les éléments à mettre en place. Pour mettre en place l environnement de travail de la badgeuse, il faut suivre plusieurs étapes : Sur l ordinateur devant

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

TP 2 : programmation côté serveur À rendre pour le mardi 6 mai 2008

TP 2 : programmation côté serveur À rendre pour le mardi 6 mai 2008 Université Claude Bernard Lyon 1 UFR d informatique avril 2006 MIAG soir Systèmes d Information Méthodes Avancées TP 2 : programmation côté serveur À rendre pour le mardi 6 mai 2008 Introduction Dans ce

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 2 Applications Web Dynamiques Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,

Plus en détail

Compte-Rendu SDL. «Reprise de l application de gestion de listes de présences des alternants»

Compte-Rendu SDL. «Reprise de l application de gestion de listes de présences des alternants» Compte-Rendu SDL Auteurs : BOUTROUILLE Alexis BAILLEUL Pierre Tuteur : Ioan Marius Bilasco «Reprise de l application de gestion de listes de présences des alternants» Master MIAGE 1 Année 2012/2013 1 Remerciements

Plus en détail

HighPush. document 3.0 18/06/2009 Révision pour version 3.0 2.0 20/11/2008 Revision pour la 2.0 1.0 01/10/2008 Documentation initiale.

HighPush. document 3.0 18/06/2009 Révision pour version 3.0 2.0 20/11/2008 Revision pour la 2.0 1.0 01/10/2008 Documentation initiale. Version du Date document 3.0 18/06/2009 Révision pour version 3.0 2.0 20/11/2008 Revision pour la 2.0 1.0 01/10/2008 Documentation initiale Commentaires 1 Table des matières 1 Introduction / Identification...

Plus en détail

Webmaster / Concepteur Multimedia

Webmaster / Concepteur Multimedia Durée : 217 heures Objectifs : Webmaster / Concepteur Multimedia Participants : Toute personne attirée par la création de site internet professionnel. Méthodes : Mise en pratique sur micro-ordinateur.

Plus en détail

Gestion du Serveur Web

Gestion du Serveur Web Gestion du Serveur Web Console de gestion du Serveur Web Une console de gestion est disponible dans l'outil de l'administrateur. Cette console de gestion vous permet de configurer les services JetClouding

Plus en détail

CONDUITE & GESTION DE PROJET

CONDUITE & GESTION DE PROJET LES THEMES DU PROGRAMME PEDAGOGIQUE CONDUITE & GESTION DE PROJET Techniques de gestion de projets Connaître le rôle d un chef de projet dans la conduite de projet. Les méthodes, les techniques et les outils

Plus en détail

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP L INTEGRATION DE SAS AVEC JMP Quelles sont les techniques possibles pour intégrer SAS avec JMP? Comment échanger des données entre SAS et JMP? Comment connecter JMP à SAS? Quels sont les apports d une

Plus en détail

Premières applications. Web 2.0. avec Ajax et PHP. J e a n - M a r i e D e f r a n c e. Groupe Eyrolles, 2008, ISBN : 978-2-212-12090-5

Premières applications. Web 2.0. avec Ajax et PHP. J e a n - M a r i e D e f r a n c e. Groupe Eyrolles, 2008, ISBN : 978-2-212-12090-5 Premières applications Web 2.0 avec Ajax et PHP J e a n - M a r i e D e f r a n c e Groupe Eyrolles, 2008, ISBN : 978-2-212-12090-5 8 Applications Ajax-PHP synchrones Pour commencer simplement, je vous

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

Travaux pratiques 2.6.2 : Utilisation de Wireshark pour afficher des unités de données de protocole

Travaux pratiques 2.6.2 : Utilisation de Wireshark pour afficher des unités de données de protocole pour afficher des unités de données de protocole Objectifs pédagogiques Expliquer l objectif d un analyseur de protocoles (Wireshark) Exécuter une capture de base des unités de données de protocole (PDU)

Plus en détail

MEMOIRE DE STAGE. RESUME Etude et adaptation ou développement d un module Wordpress évolué de fédération, gestion et publication ciblée d actualités.

MEMOIRE DE STAGE. RESUME Etude et adaptation ou développement d un module Wordpress évolué de fédération, gestion et publication ciblée d actualités. MEMOIRE DE STAGE RESUME Etude et adaptation ou développement d un module Wordpress évolué de fédération, gestion et publication ciblée d actualités. Simon Richard Maître de stage : M. Alexandre Delpeuch

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

Consoles graphiques. Compléments Web. MySQL Workbench. Connexion

Consoles graphiques. Compléments Web. MySQL Workbench. Connexion 4055_xomplement web Page 1 Lundi, 31. août 2015 10:56 10 Compléments Web Consoles graphiques MySQL AB fournit deux outils d administration : MySQL Workbench et MySQL Enterprise. Le premier est gratuit

Plus en détail

PROGRAMME DE MESSAGERIE INSTANTANEE RAPPORT FINAL. Généralités Structure du code Détail de scénarios Précisions de fonctionnement

PROGRAMME DE MESSAGERIE INSTANTANEE RAPPORT FINAL. Généralités Structure du code Détail de scénarios Précisions de fonctionnement PROGRAMME DE MESSAGERIE INSTANTANEE Généralités Structure du code Détail de scénarios Précisions de fonctionnement Paul RICHIER Gautier LETAROUILLY 30/05/2012 SOMMAIRE I Contexte et généralités II Structure

Plus en détail

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

Plus en détail

PROJET D INFORMATISATION DE LA GESTION DES ABSENCES EN STARTER

PROJET D INFORMATISATION DE LA GESTION DES ABSENCES EN STARTER Année 2008/2009 PROJET D INFORMATISATION DE LA GESTION DES ABSENCES EN STARTER Licence Professionnelle Système informatique et logiciel Responsable du projet : Françoise GREFFIER SOMMAIRE I. PRESENTATION

Plus en détail

UserLock Guide de Démarrage rapide. Version 8.5

UserLock Guide de Démarrage rapide. Version 8.5 UserLock Guide de Démarrage rapide Version 8.5 Introduction UserLock est une solution logicielle d'entreprise unique sécurisant les accès utilisateur sur le réseau afin de réduire le risque d'une brèche

Plus en détail

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS FOURNIER VINCENT 29/04/2015 1.2 Ce tutoriel est réalisé sous debian 7.7 avec une synchronisation

Plus en détail

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

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

Visual Studio 2013 Concevoir et développer des projets Web, les gérer avec TFS 2013

Visual Studio 2013 Concevoir et développer des projets Web, les gérer avec TFS 2013 Introduction 1. Présentation du cas d étude 13 1.1 Présentation générale 13 1.2 Présentation des applications 13 2. Déroulement du projet 14 3. Pré-requis et fondamentaux techniques à connaître 15 3.1

Plus en détail

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 L i a m T A R D I E U www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 Sommaire Sommaire... 2 Eléments initiaux... 3 Base de données... 3 Tables... 4 membres... 4 commandes... 4 articles... 4 details_commandes...

Plus en détail

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

TP réseaux 4 : Installation et configuration d'un serveur Web Apache TP réseaux 4 : Installation et configuration d'un serveur Web Apache Objectifs Installer, configurer, lancer et administrer le serveur Web Apache sous Linux Données de base machine fonctionnant sous Linux

Plus en détail

Serveur Web Apache2. un beau message va s'afficher dans votre navigateur it work, c'est le contenu du fichier /var/www/index.html

Serveur Web Apache2. un beau message va s'afficher dans votre navigateur it work, c'est le contenu du fichier /var/www/index.html Wilson Leclercq Serveur Web Apache2 BTS SIO - E6 La Mise en Place du Serveur Apache 1 Présentation Apache est le plus populaire des serveurs HTTP ('HyperText Transfer Protocole') Libre, c'est un Protocole

Plus en détail

Projet M1 : Application P2P Hybride avec RMI

Projet M1 : Application P2P Hybride avec RMI Projet M1 : Application P2P Hybride avec RMI Applications Réparties 2008-2009 Université Paris VIII / Parcours SRM / M1 Sujet : Le but de ce projet est d'implémenter une application de partage de fichiers

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

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Il est possible, pour des objets, de visualiser ou modifier le contenu. La présentation des objets dans le navigateur peut être paramétrée ; vous trouverez

Plus en détail

Documentation de conception

Documentation de conception Documentation de conception La présente documentation précise les choix de modélisation, détaille les fonctionnalités (en sus de la documentation utilisateur), documente la conception de la base de donnes

Plus en détail

Cahier de Charge. Master I Informatique parcours Ingénierie Logiciels. E-Service Système d information web «Gestion des services ensignants

Cahier de Charge. Master I Informatique parcours Ingénierie Logiciels. E-Service Système d information web «Gestion des services ensignants Master I Informatique parcours Ingénierie Logiciels Projet : E-Service Gestions des Enseignements Groupe 06 Cahier de Charge E-Service Système d information web «Gestion des services ensignants 2011-2012

Plus en détail

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall Titre Version Date Dernière page Identité du document Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Plus en détail

EISTI. Oracle Toplink. Manuel d installation et d utilisation

EISTI. Oracle Toplink. Manuel d installation et d utilisation EISTI Oracle Toplink Manuel d installation et d utilisation VILLETTE Charles, BEQUET Pierre, DE SAINT MARTIN Cédric, CALAY-ROCHE Vincent, NAUTRE Francois 20/05/2010 Ce manuel d installation et d utilisation

Plus en détail

Intégration du module de paiement pour la plateforme OSCommerce 2.3

Intégration du module de paiement pour la plateforme OSCommerce 2.3 Intégration du module de paiement pour la plateforme OSCommerce 2.3 Sommaire 1. HISTORIQUE DU MODULE...3 2. FONCTIONNALITÉS DU MODULE... 4 3. A LIRE ABSOLUMENT AVANT D'ALLER PLUS LOIN... 5 4. FONCTIONNALITÉS

Plus en détail

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

Guide de l utilisateur WebSeekurity

Guide de l utilisateur WebSeekurity SCRT Information Security Julia Benz Guide de l utilisateur WebSeekurity Version 1.0 Mars 2012 Table des matières Table des matières i 1 Introduction 1 1.1 Contributions.............................. 1

Plus en détail

Dolibarr Installation

Dolibarr Installation Dolibarr Installation Rodolphe Quiédeville $Id: dolibarr-install.sgml,v 1.9 2003/10/27 10:04:58 rodolphe Exp $ Installation et mise à jour de Dolibarr Contents 1 Installation 1 1.1 Récupérer les sources.........................................

Plus en détail

Architectures et Web

Architectures et Web Architectures et Web Niveaux d'abstraction d'une application En règle générale, une application est découpée en 3 niveaux d'abstraction : La couche présentation ou IHM (Interface Homme/Machine) gère les

Plus en détail

Documentation UpdatEngine Installation et migration version 2.1.1 stable

Documentation UpdatEngine Installation et migration version 2.1.1 stable Documentation UpdatEngine Installation et migration version 2.1.1 stable Version de la documentation : doc-2.1.1-stable-1 Auteur: Yves Guimard Référence internet : http://www.updatengine.com Licence Creative

Plus en détail

Documentation UpdatEngine Installation et migration version 2.1.0 stable

Documentation UpdatEngine Installation et migration version 2.1.0 stable Documentation UpdatEngine Installation et migration version 2.1.0 stable Version de la documentation : doc-2.1.0-stable-4 Auteur: Yves Guimard Référence internet : http://www.updatengine.com Licence Creative

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

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

DOCUMENTATION MISE A JOUR ANTIBIOGARDE. V4.0 en v4.1

DOCUMENTATION MISE A JOUR ANTIBIOGARDE. V4.0 en v4.1 DOCUMENTATION MISE A JOUR ANTIBIOGARDE V4.0 en v4.1 Version d Antibiogarde 4.1 Version du document 1.0 Date dernière mise à jour du document 15/06/2010 Retrouvez cette doc à jour sur : http://www.antibiogarde.org/activation/

Plus en détail

Tutoriel Ionic framework

Tutoriel Ionic framework INGÉNIEURS EN SCIENCES INFORMATIQUES ADAPTATION DES INTERFACES A L ENVIRONNEMENT Tutoriel Ionic framework Tutoriel et présentation du framework IONIC : technologie permettant la réalisation d applications

Plus en détail

Sujet Projets 2 nd Semestre

Sujet Projets 2 nd Semestre Sujet Projets 2 nd Semestre Seuls les appels systèmes vus en cours sont autorisés. L usage d autres fonctions doit impérativement être validé par l enseignant. La date d ouverture pour l assignation de

Plus en détail

Open Source Job Scheduler. Installation(s)

Open Source Job Scheduler. Installation(s) Open Source Job Scheduler Installation(s) Installations Standard Configuration Superviseur Agent SOS-Paris 2 Pré-requis o Base de données o MySQL, MSACCESS, Oracle o JDBC ou ODBC o Connecteurs o Mysql

Plus en détail

Le framework Symfony2

Le framework Symfony2 Le framework Symfony2 Historique et définition Framework: cadre de travail Objectif: améliorer la productivité des développeurs (se concentrer sur les choses importantes), structurer l application, accélère

Plus en détail

Guide d installation Des produits Salvia Développement

Guide d installation Des produits Salvia Développement Guide d installation Des produits Salvia Développement Salvia Développement s Tél. +33 (0)9 72 72 66 66 Tél. +33 (0)1 84 95 15 54 35 rue de la Gare 75019 Paris www.salvia-developpement.fr Manuel utilisateur

Plus en détail

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI Vulnérabilités logicielles Injection SQL Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI 1 Plan SQL Injection SQL Injections SQL standards Injections SQL de requêtes

Plus en détail

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1] SISR3 TP 1-I Le service Web [1] Objectifs Comprendre la configuration d'un service Web Définir les principaux paramètres d'exécution du serveur Gérer les accès aux pages distribuées Mettre à disposition

Plus en détail

Développement de l interface Web du projet Hôpital

Développement de l interface Web du projet Hôpital Pôle informatique 2013/2014 École Nationale Supérieure des Mines de Saint-Étienne Développement de l interface Web du projet Hôpital Antoine Zimmermann antoine.zimmermann@emse.fr Le cahier des charges

Plus en détail

BES WEBDEVELOPER ACTIVITÉ RÔLE

BES WEBDEVELOPER ACTIVITÉ RÔLE BES WEBDEVELOPER ACTIVITÉ Le web developer participe aux activités concernant la conception, la réalisation, la mise à jour, la maintenance et l évolution d applications internet/intranet statiques et

Plus en détail

Guide d installation et mises à jour

Guide d installation et mises à jour Guide d installation et mises à jour Réseau Premières installations Serveur... p.2 Postes de travail... p.6 Postes nomades... p.7 Mises à jour Serveur..p.15 Postes de travail... p.18 Postes nomades...

Plus en détail