Rapport de stage. Programmation d'un logiciel chargé de piloter un banc d'encodage de cartes magnétiques et de gérer les mappings de cartes

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

Download "Rapport de stage. Programmation d'un logiciel chargé de piloter un banc d'encodage de cartes magnétiques et de gérer les mappings de cartes"

Transcription

1 Rapport de stage Programmation d'un logiciel chargé de piloter un banc d'encodage de cartes magnétiques et de gérer les mappings de cartes Romain DÉOUX Maître de stage : Tutrice enseignante : Christian PERROT Isabelle JACQUES Licence professionnelle C.D.O.A.M. Conception et Développement Orientés Objets d Applications Multi-tiers Université de Franche-Comté L.I.F.C. Année universitaire 2009 / 200 /46

2 Remerciements Mes premiers remerciements vont à l'entreprise Parkeon qui a bien voulu m'accorder l'opportunité d'accomplir mon stage de fin d'année au sein de leur établissement. Je remercie l'ensemble de l'équipe des services «Intégration et assurance qualité produit (AQP)» et «Recherche et développement (R&D)» pour leur accueil. Je remercie plus particulièrement : Mon maître de stage, M. Christian Perrot, coordinateur d'intégration et AQP ; M. Mike Andrzejewski, architecte système et intégration ; Ma tutrice enseignante, Mme Isabelle Jacques ; M. Nicolas Vacelet, ingénieur R&D. Pour leurs conseils prodigués, toute l'expérience partagée et l'aide apportée à la réalisation de ce rapport. La grande disponibilité dont ils ont su faire preuve et leur investissement de tous les instants à mon égard ont été sans aucun doute des éléments bénéfiques voire déterminants pour la réussite de ce stage. 2/46

3 Sommaire Remerciements...2 Sommaire...3 Introduction...5. L'entreprise Présentation Contexte de travail Méthodologies Méthodes Agiles Stand Up meeting Revues de code Démonstrations Aspects techniques Java Développement conventionnel assisté par CheckStyle Tests unitaires avec JUnit Plateforme commune sous Maven Journalisation avec log4j Contrôle de version avec Subversion Gestion de projet avec Trac Intégration continue avec Hudson États de l'art Cartes magnétiques CCS 2005 TPX KGB Configuration de la connexion Définition du protocole Messages courts Messages longs : Généralités Messages de configuration et de statut Messages opératifs ou exécutables Exemple synthétique Réalisation Développement modulaire Développement du cœur de métier Structures de données Codage/Décodage Développement du pilote Possibilités offertes Principe de fonctionnement de la méthode send() Défaut de conception : Encodage et décodage des messages Développement de l'interface utilisateur Possibilités offertes Défauts de conception Acquisition du statut Liens forts Produit fini Conclusion Glossaire Netographie Annexes /46

4 8.. Annexe : Description des formats de pistes Format IATA Format ABA Format THRIFT-TTS Annexe 2 : Liste des messages courts Annexe 3 : Format des trames des messages long Annexe 4 : Algorithme d'un calcul de somme de contrôle LRC Annexe 5 : Liste des messages longs utilisés Récupération du statut Récupération du résultat de la dernière opération Récupération des données de la carte Réinitialisation des erreurs du système Récupération du statut complet Évacuation des cartes Annexe 6 : Structure d'un message opératif Annexe 7 : Exemple de scénario d'utilisation du CCS 2005 TXP KGB Annexe 8 : Diagramme de classe de la classe Driver Annexe 9 : Diagramme des classes du noyau...45 Résumé Mots-clés...46 Abstract Keywords /46

5 Introduction La licence professionnelle Systèmes Informatiques et Logiciels (S.I.L.) option Conception et Développement Orienté Objet d'applications Multi-tiers (C.D.O.O.A.M.) dispensée au département informatique de l'université de Franche-Comté des Sciences et Techniques m'a offert l'opportunité d'accomplir un stage d'une durée de trois mois du 8 mars au 7 juin 200 au sein d'une entreprise. De renommée internationale, la société Parkeon s'impose comme un acteur clé dans le secteur de la mobilité urbaine. Elle se spécialise notamment dans la conception de solutions de stationnement de voirie et d'ouvrage ainsi que dans la mise en place de systèmes de billettique pour les transports en commun. Son service de développement conçoit des applications permettant un fonctionnement, une gestion et un audit efficaces du matériel produit aussi bien pour l'entreprise que pour leurs nombreux clients. Le projet ArchiPEL constitue l'un des derniers projets en date de ce service. Conçu dans le but de gérer les transactions de paiement électronique, ce projet est encore en cours de développement. C'est donc au sein du service de développement de l'entreprise Parkeon que j'ai eu l'opportunité d'accomplir ce stage. L'utilisation de cartes bancaires dans le processus de paiement fait apparaître la nécessité pour le service «Intégration et AQP» d'encoder des cartes bancaires à des fins de test du produit. C'est dans cette optique que m'a été confié le développement d'un pilote capable de générer les pistes magnétiques d'une carte bancaire et de les encoder sur des cartes de test via un appareil de lecture et d'encodage de cartes : le CCS 2005 TPX KGB. Le développement concerne donc la manipulation desdites pistes dans le respect des normes imposées, la gestion de matériel via une liaison série et l'interfaçage avec l'utilisateur. Une analyse préalable des spécifications des formats de pistes et du protocole de liaison avec le matériel a donc été nécessaire. En premier lieu, je présenterai brièvement l'entreprise Parkeon. Je développerai ensuite le contexte de travail dans lequel j'ai évolué. L'état de l'art sera alors détaillé et j'exposerai le travail que j'ai réalisé. Je clorai ce rapport par une conclusion. 5/46

6 . L'entreprise.. Présentation Illustration : Logo de l'entreprise Parkeon est une entreprise de services basée en Europe qui conçoit et propose des solutions de contrôle d'accès et de paiement pour la gestion de stationnements ouverts ou fermés ainsi que pour les transports en commun. L'entreprise est née en 2003 suite à la cession de la division «Parking et Billettique» de la société Schlumberger. Leurs clients sont aussi bien des collectivités locales que des acteurs privés. Cette entreprise s'impose comme leader de son secteur d'activité avec une part de marché estimée à 60% avec un chiffre d'affaire de 56 millions d euros en Ses horodateurs sont déployés dans plus de 3000 villes et dans plus de 50 pays. Parkeon compte horodateurs installés. La société gère au total plus de 3 millions de places de stationnement dans le monde. Sur les 00 personnes employées par l'entreprise, 550 travaillent dans l'agence de Besançon. Illustration 2: Site de Besançon 6/46

7 2. Contexte de travail 2.. Méthodologies Mon stage au sein de l'entreprise Parkeon m'a permis de prendre connaissance et d'appliquer un ensemble de nouvelles méthodologies de travail auxquelles je n'avais jamais été confronté. Ces méthodologies s'inspirent des méthodes Agiles. De multiples réunions de travail collectives et individuelles ont facilité le bon déroulement du projet. Il s'agit des Stand Up meeting, des revues de code et des démonstrations. Dans cette partie, je développerai donc le concept de méthodes Agiles ainsi que les différentes réunions précédemment citées Méthodes Agiles En terme de méthodes de travail, l'équipe du service «R&D» s'efforce de suivre un ensemble de principes jugés pragmatiques pour développer et gérer les différents projets en cours. Ces principes découlent de quatre valeurs : l'équipe, l'application, la collaboration et l'acceptation du changement. Il s'agit des méthodes Agiles. Ces méthodes de travail, vieilles d'une quinzaine d'années, favorisent la productivité et la réactivité tout en permettant une plus grande liberté pour le client. Ce dernier entre fréquemment dans le cycle de production et détermine la direction que doit prendre le projet. Les méthodes Agiles s'articulent autour de 2 principes : Une livraison régulière de logiciels fonctionnels assure la satisfaction du client. Les changements en cours de développement ne sont pas rejetés. Cela donne un grand avantage en terme de compétitivité. La livraison d'une application fonctionnelle devra être faite fréquemment. Par exemple, une fois toutes les deux à trois semaines. Les développeurs et les gens de l'art collaborent étroitement sur le projet. Un environnement sain et motivant encadre le personnel. (locaux confortables, cadre agréable, confiance de la hiérarchie, etc) Les réunions de visu sont la meilleure façon de communiquer. Le logiciel fonctionnel fait foi d'indicateur de l'avancement du projet. Un rythme de développement durable est privilégié. Les ressources investies ne devraient pas s'épuiser. Une attention continue à l'excellence technique et à la qualité de la conception est privilégiée. La quantité de travail à fournir doit être réduite au maximum tout en atteignant les objectifs (simple et non simpliste). Les meilleures architectures, spécifications et conceptions sont issues d'équipes qui s'organisent d'elles-mêmes. 7/46

8 L'équipe cherche régulièrement à devenir plus efficace et adapte son comportement dans ce but. Les deux méthodes les plus répandues en France sont la méthode Scrum (996) et la méthode XP pour extreme Programming (999). L'équipe du service «R&D» n'applique pas systématiquement tous les dogmes décrits dans Scrum et XP. Par exemple, la programmation en binôme se fait à chaque fois que c'est utile, mais dans le cas contraire, chaque développeur travaille seul. Une certaine souplesse est ainsi retenue Stand Up meeting Venue tout droit de la méthode Agile Scrum, des Stand Up meeting quotidiens ont été mis en place au sein de plusieurs services, dont les services «R&D», «Intégration et AQP» dont je faisais partie, afin que les chefs de projets et les différents collaborateurs dont ils ont la charge conservent un audit sur l'avancement des projets. Cela consiste en de courtes réunions quotidiennes d'une dizaine de minutes pendant lesquelles chaque participant rend compte tour à tour de l'évolution de la mission qui lui a été confiée et écrit les éléments indispensables et pertinents (délais, éléments en attente, difficultés rencontrées, etc.) sur un tableau blanc. Les participants restent debout afin de s'assurer de la rapidité de cette réunion. De ce fait, j'ai eu l'occasion de rendre compte de mon avancement quotidiennement avec les services dont je dépendais Revues de code Régulièrement, Mike Andrzejewski et Nicolas Vacelet, tous deux développeurs du service «R&D», ont consacrés chacun leur tour un temps d'analyse sur le code produit réalisé pour y corriger des erreurs de conception. Ces revues de code ont grandement participé à la qualité du résultat mais également à mes propres aptitudes de développeur en devenir Démonstrations Durant toute la durée du stage, des réunions ont été fixées entre Mike Andrzejewski, Christian Perrot, Nicolas Vacelet et moi afin de s'assurer que le projet ne prenne pas une direction autre que celle initialement déterminée. Dans la mesure des possibilités et disponibilités, une mise en situation du produit stable participait à l'appréciation de son état d'avancement et de sa qualité. Ces réunions d'une trentaine de minutes étaient pour moi l'occasion de présenter l'état d'avancement du projet de manière plus approfondie. Des conseils avisés ont alors été donnés quant à l'exploitation de technologies et de méthodologies que j'ignorais à ce jour Aspects techniques Lors de ce stage, j'ai su utiliser un ensemble de technologies répondant à certains besoins dont voici la liste : Le projet doit pouvoir s'intégrer complètement et de manière transparente au projet principal dont il dépend : ArchiPEL (le gestionnaire de transactions de paiement électronique présenté en introduction). Pour cela, un développement en Java couplé avec une assistance la présentation du code a été utilisé. 8/46

9 Le projet doit suivre la méthode XP telle qu'elle est pratiquée par le service «R&D». Le projet dispose notamment d'un ensemble de tests développés via la bibliothèque JUnit et d'un système de journalisation permettant un débogage plus simple grâce à la bibliothèque log4j. Le projet doit, comme n'importe quel projet faisant partie d'archipel, être accessible en cours de développement d'une part mais aussi facilement compilable et déployable d'autre part. La première condition est assurée via le système de contrôle de version Subversion tandis que la seconde utilise la plateforme Maven. Enfin, mon projet doit, avec les autres projets, bénéficier d'un suivi et être continuellement intégré au projet ArchiPEL. Le suivi se fait ici grâce au logiciel Trac et l'intégration via Hudson. Cette partie décrit la liste des technologies énumérées ici Java La majorité du code développé par l'équipe du service «R&D» a été écrit en langage Java. Java est un langage orienté objets dont la compilation du code source produit un code exécutable par la machine virtuelle Java (JVM). Ce code, appelé Java bytecode, permet une exécution uniforme sur n'importe quelle plateforme exécutant la JVM tout en conservant une rapidité supérieure aux langages de script comme Ruby ou PHP. Java dispose d'une bibliothèque de classes standards et de classes utilitaires largement fournie. Cela favorise évidemment la productivité. C'est pour des raisons évidentes d'homogénéité et de réutilisation du code qu'il m'a donc été demandé de développer dans ce langage la réalisation de mon projet. Ce dernier s'intègre en effet à un vaste ensemble d'utilitaires faisant eux même partie d'un projet plus conséquent : le projet ArchiPEL. Afin d'accroitre la productivité, un environnement de développement intégré (ou EDI) est souhaitable. J'ai choisi NetBeans. Cet EDI est développé par Sun Microsystems : l'entreprise fondatrice du langage Java. Il est unanimement reconnu et utilisé par l'ensemble du service «R&D». Netbeans fournit un ensemble d'outils permettant un développement plus aisé. Il permet notamment de formater le code d'après la convention d'écriture propre à Java. Néanmoins, cette convention est encore trop souple face aux besoins d'uniformisation du projet. J'ai donc du installer un greffon supplémentaire à Netbeans pour répondre au mieux à ce besoin Développement conventionnel assisté par CheckStyle CheckStyle est un outil de développement conçu pour la programmation Java. Il s'intègre à plusieurs EDI dont NetBeans. CheckStyle permet de définir des contraintes de présentation du code et de réunir ainsi un ensemble de codes sources développés par différents auteurs sous une unique convention. CheckStyle permet notamment de fixer des règles concernant l'indentation, le nommage des variables, des classes, des méthodes, des paramètres, etc., la largeur et la hauteur des méthodes et les commentaires Javadoc. 9/46

10 Par exemple, il m'a été demandé de développer des méthodes dont la longueur ne devait pas dépasser la hauteur du moniteur. Cela garantie une appréciation rapide en un regard du contenu des méthodes et facilite également leur lecture. Cela fait donc partie du processus de qualité du code auquel j'ai du m'astreindre. Ce besoin d'une convention de nommage stricte est une pratique d'xp. En effet, XP affirme que, puisque tous les développeurs interviennent sur le code source, l'utilisation d'une convention de nommage est indispensable. La méthode XP contraint donc le développeur à produire du code propre. Mais cela ne se limite pas seulement à la forme. Comme gage de qualité vis-à-vis du fond, cette méthode impose de développer prioritairement les tests unitaires avant d'écrire le code fonctionnel Tests unitaires avec JUnit L'utilisation de tests unitaires fait partie d'une démarche suivie par l'ensemble de l'équipe de développement telle qu'elle est pratiquée avec la méthode XP. Elle consiste à écrire les tests unitaires des différentes méthodes avant même qu'elles aient été développées. Ces tests sont développés de la manière la plus simple possible et orientent le développement des méthodes associées. Deux points importants en termes de méthodologie :. Les tests vivent avec le code. Une fois mis en place, un test n'est ni modifié, ni supprimé à moins que la méthode associée n'ait elle-même été modifiée ou supprimée. Le test est alors lié de façon permanente à la méthode testée. Si le programme entre en erreur, le bogue rencontré est reproduit dans le test, le test est volontairement exécuté afin de constater le bogue et ce dernier est alors corrigé au sein de la méthode concernée. Chaque test est la garantie que tout le code est fonctionnel. 2. Aucun code ne doit être créé pour subvenir aux besoins d'un test. C'est au test de s'adapter au code. Bien qu'écrit de la manière la plus simple possible, le test ne doit provoquer au sein du code que la création des méthodes attendues. Par exemple, si un test est amené à comparer deux objets (un objet attendu avec un objet effectivement retourné), ce n'est pas au code d'implémenter la méthode permettant la comparaison mais bien au test car cette méthode n'est plus utile en dehors du test et produit alors du code mort. JUnit, en particulier, est une librairie de tests unitaires dédiée au langage Java pour lequel elle a été conçue et dans lequel elle a été développée. JUnit exploite les capacités d'introspection que propose le langage Java pour faciliter l'écriture de tests unitaires. Pour donner un ordre d'idée de l'importance de ces tests, il faut savoir que près de 300 tests unitaires ont été écrits pour les lignes de code du projet. JUnit permet donc de s'assurer de la qualité fonctionnelle du code au niveau le plus fin. Néanmoins, cette démarche de tests unitaires n'est efficace que si l'on s'assure que ces tests sont exécutés à chaque compilation. Il n'est pas évident que le développeur exécute ces tests car ils requièrent la compilation de classes supplémentaires et l'exécution desdits tests. Il apparaît même que les classes du projet lui-même ne soient pas systématiquement mises-à-jour lors de la compilation. Maven allège grandement cette tâche en l'automatisant. 0/46

11 Plateforme commune sous Maven Hébergé par la fondation Apache, Maven est un outil permettant de compiler et gérer un ensemble de projets Java organisés dans une arborescence. Chaque projet, dont le mien, contient un fichier de configuration pom.xml au format XML spécifiant un ensemble de paramètres dont le nom du projet, la version, l'identifiant de l'arborescence de projets, l'identifiant du projet, ses dépendances, les serveurs desquels elles peuvent être récupérées, etc. Une fois ce fichier de configuration mis en place, le processus de compilation se trouve grandement simplifié. Maven permet ainsi de : Nettoyer le répertoire du projet de ses fichiers générés : Java bytecode, archives JAR et documentations. (mvn clean) Compiler l'ensemble du projet et exécuter les tests unitaires afin de s'assurer que le nouveau code produit ne comporte pas d'erreurs et qu'il n'y a pas eu de régression. (mvn test) Extraire la documentation à partir du code source. (mvn site) Compiler le projet, exécuter les tests unitaires et, si ces tests se déroulent sans erreurs, copier les archives du projet compilé et des sources dans le dépôt local de dépendances. (mvn install) Mon projet fait partie de l'arborescence Maven du projet ArchiPEL, dans un répertoire dédié aux utilitaires. Illustration 3: Représentation partielle de l'arborescence Maven Le projet Maven allège grandement les tâches habituelles du programmeur, notamment si l'on considère l'utilisation des tests unitaires comme l'exige la méthode XP. Maven compile l'ensemble du projet récursivement et affiche le résultat des tests unitaires automatiquement effectués. Néanmoins, en cas d'erreur au cours d'un test, rien ne permet de déterminer la cause de l'erreur. Une solution serait d'exécuter ces tests depuis un débogueur mais c'est la solution de journalisation qui a été retenue Journalisation avec log4j Hébergée par la fondation Apache, log4j est une bibliothèque permettant d'enregistrer des journaux de manière facilité. Elle propose notamment des niveaux de verbosité allant des messages de traçage à la désactivation totale du système de journalisation en passant les messages de débogage, d'informations, d'avertissement ou d'erreur. Ces journaux peuvent alors être rendus sur des sorties diverses (console, fichiers, base de données, etc.) dans des formats divers dont, par exemple, le format XML. /46

12 log4j s'inscrit dans la démarche de backlogging qu'implique Scrum, c'est-à-dire le besoin pour les développeurs d'avoir un retour sur le fonctionnement du produit chez le client afin d'apporter, si besoin est, les corrections et les améliorations nécessaires de manière facilité. De plus, le système de journalisation de débogage est, d'après les méthodes Agiles, une meilleure façon de déboguer du code que l'utilisation de débogueur. Comme l'ont dit Brian W. Kernighan et Rob Pike dans leur livre The Practice of Programming : As personal choice, we tend not to use debuggers beyond getting a stack trace or the value of a variable or two. One reason is that it is easy to get lost in details of complicated data structures and control flow; we find stepping through a program less productive than thinking harder and adding output statements and self-checking code at critical places. Clicking over statements takes longer than scanning the output of judiciously-placed displays. It takes less time to decide where to put print statements than to single-step to the critical section of code, even assuming we know where that is. More important, debugging statements stay with the program; debugging sessions are transient. «Personnellement, nous avons tendance à ne plus utiliser de débogueur au delà du traçage d'une pile d'appel ou de celui de la valeur d'une variable ou deux. Une des raisons est qu'il est facile de se perdre dans les détails des structures de données compliquées et des flux de contrôle ; nous trouvons que déboguer un programme pas à pas est plus long que de réfléchir un peu plus et d'ajouter des sorties à l'écran et du code qui se vérifie lui-même aux endroits stratégiques. Cliquer de lignes en lignes prend plus de temps que d'analyser la sortie d'assertions judicieusement placées. Cela prend moins de temps de décider ou placer les assertions que de déboguer progressivement la section critique, même si l'on suppose que nous savons où elle se situe. Plus important, les assertions de débogage demeurent avec le programme ; les sessions de débogage sont éphémères.» La bibliothèque log4j a été utilisée dans le projet afin d'avoir des vues lors de son exécution, notamment au niveau des échanges entre le contrôleur et le CCS 2005 TPX KGB. Les assertions n'ont pas été enlevées, elles continueront donc à fournir des informations. Elles persisteront également si d'autres projets utilisent la bibliothèque développée. Cela ne constitue pas une nuisance mais bien un atout comme le démontre la dernière phrase de la citation. Le code développé est alors propre sur le fond et sur la forme. Il rend compte, lors de son exécution, de son bon déroulement et se rend ainsi facilement corrigeable en cas d'erreur. Il serait alors intéressant de conserver son état actuel avant qu'il n'évolue de nouveau car les futures modifications à apporter sont susceptibles de corrompre son bon fonctionnement. Un logiciel de contrôle de version permet de sauvegarder cet état et conserve donc continuellement le code source de la version la plus récente et fonctionnelle du projet Contrôle de version avec Subversion Hébergé par la fondation Apache, Subversion, généralement abrégé SVN, est un système de contrôle de versions gratuit et Open Source. 2/46

13 Un système de contrôle de version permet de stocker des données tout en conservant l'ensemble des modifications qui auront été apportées depuis la mise en place du dépôt. Subversion conserve donc un historique des fichiers et dossiers ajoutés, supprimés ou modifiés. Il implémente notamment un système de commentaire de chaque mise à jour du dépôt, un système de méta données permettant notamment de définir des exceptions parmi les fichiers et dossiers à prendre en charge ainsi qu'un générateur de fichiers de différences entre une version et une autre destiné à créer des rustines entre lesdites versions. Son architecture centralisée garantie à tous les utilisateurs du système qu'ils possèdent la dernière et véritable version du projet hébergé. Subversion permet notamment de : Récupérer le contenu d'un dépôt distant via son URL à n'importe quel numéro de version (ou révision) de la première à la dernière, la révision par défaut étant la dernière (HEAD). Mettre à jour le dépôt local à partir d'une version plus récente ou plus ancienne que celle présente. Mettre à jour le dépôt distant à partir des modifications apportées localement. Le numéro de version (ou révision) du dépôt distant est alors incrémenté. Comme convenu, chaque nouvelle fonctionnalité apportée au code est immédiatement suivie d'une mise à jour du dépôt distant. Annuler les modifications apportées localement. Les fichiers ajoutés sont détruits, les fichiers supprimés sont restaurés et les fichiers modifiés sont écrasés par leur version précédente. Cette fonctionnalité s'appuie sur des copies des fichiers concernés dans des répertoires cachés. Il s'agit ni plus ni moins d'une gestion de sauvegarde locale. Cette fonctionnalité m'a été utile à des moments où je m'engageais dans des solutions techniques inappropriées. Elle m'a alors permis de repartir sur une version stable alors que le développement en cours prenais une direction sans issue. Cette solution de sauvegarde est intéressante dans le cas de petits projets. Mais dans le cas de projets plus conséquents comme ArchiPEL, elle ne suffit plus. Les mise-à-jour se succèdent et il n'est pas évident de s'y retrouver, surtout en ligne de commande. C'est pourquoi un gestionnaire de projet a été mis en place. Les mise-à-jour du code sont toujours disponible mais le tout est plus facilement gérable Gestion de projet avec Trac Développé par la société Edgewall Software, Trac est un outil Open Source de gestion de projets informatiques basé sur une interface web. Cet outil s'inspire d'un outil déjà existant : CVStrac. Il est placé sous licence BSD. Trac propose un ensemble d'outils : Gestion de projet (Feuille de route, avancement, etc.). Système de suivi (Signalement de bogues, tâche en cours, etc.). Journal des activités récentes. Wiki. Interface web avec un système de contrôle de version. Syndication RSS. 3/46

14 Support simultané de plusieurs projets. Son système de flux RSS permet d'être tenu au courant en temps réel des modifications qui peuvent subvenir sur le projet. Ces modifications concernent aussi bien les modifications du code sources qu'au niveau du Wiki ou de l'activité des bulletins de suivi (ouverture, fermeture, réouverture, etc.). Trac permet donc un suivi des projets en cours. Néanmoins, il ne s'occupe pas de l'étape finale du processus de développement du projet : l'intégration continue Intégration continue avec Hudson Issu du monde Java, Hudson est un outil Open Source standard de référence en intégration continue pour des projets Java. Il s'exécute sur un serveur Apache Tomcat ou depuis son serveur embarqué. Hudson est une passerelle entre le dépôt Subversion et l'arborescence Maven qu'il contient dans le cas présent. En effet, Hudson est chargé de détecter les modifications apportées dans l'arborescence Maven et de lancer alors une construction de tout le projet. Hudson reporte alors l'état des constructions successives qu'il numérote à la manière d'un logiciel de contrôle de versions. Les erreurs de compilation et les tests échoués font objets de statistiques et toute irrégularité est automatiquement signalée aux auteurs des modifications présumées responsables de la régression. Ainsi, mon projet était continuellement et automatiquement intégré au jeu d'utilitaires du projet ArchiPEL à chaque fois que le démon constatait un nouveau commit de ma part. Il arrivait que l'envoi de mes mises-à-jour chevauche celles d'autre développeurs. Hudson considérait alors toutes ces mises-à-jour comme une unique mise-à-jour et l'attribuait à tous les développeurs concernés en même temps. Dans ce cas, la soumission d'un code défectueux est attribuée à l'auteur de la soumission et aux auteurs des soumissions concurrentes. C'est pour cette raison que j'ai été notifié plusieurs fois de l'instabilité et du retour à la normale du projet. 4/46

15 3. États de l'art Le développement du projet a nécessité une étude préalable des différents composants tiers entrant en jeu. Il s'agit notamment du format des cartes magnétiques manipulées et du protocole de liaison du CCS 2005 TPX KGB 3.. Cartes magnétiques Les cartes utilisées sont des cartes de paiement à pistes magnétiques. Une piste magnétique est une bande magnétique rectiligne intégrée à la carte. Cette piste permet de stocker des informations sur le propriétaire de la carte, sur le compte du propriétaire et sur l'état de ce compte. Il existe trois structures de données différentes normalisées : Le format IATA (également appelé ISO), le format ABA (également appelé ISO2) et le format THRIFTTTS (également appelé ISO3). Ces trois formats de piste sont placés à des hauteurs différentes au dos de la carte de paiement (voir l'illustration 4). Ils ne sont pas destinés à supporter les mêmes informations. Illustration 4: Structure d'une carte à pistes magnétiques Chaque piste est composée d'un ensemble de champs de tailles fixes ou variables bornés par des marqueurs de début de piste (STX) et de fin de piste (ETX) propres au format de cette piste. L'ensemble, y compris les marqueurs, est suivit d'un contrôle de somme longitudinal (LRC). La structure complète de chaque format de piste est décrite en annexe. Une carte de paiement peut contenir l'une de ces pistes, deux de ces pistes ou les trois pistes en même temps. Le choix des pistes à inclure dépend du jeu d'informations dont l'organisme qui distribue les cartes à besoin. Par exemple, un organisme ayant besoin de stocker l'identité du propriétaire utilisera le premier format de piste (IATA) qui est le seul proposant un champ le permettant. Cet organisme pourra néanmoins utiliser les autres formats en parallèle, selon ses besoins. 5/46

16 3.2. CCS 2005 TPX KGB Le CCS 2005 TPX KGB est un encodeur/décodeur de cartes à pistes développé par la société CCS. Il permet de décoder et d'encoder les trois pistes ISO d'une carte de paiement. Il peut également imprimer du texte et des motifs sur la surface de ces cartes mais cette fonctionnalité n'a pas eu à être exploitée pour ce projet. Illustration 5: CCS 2005 TPX KGB Cet encodeur communique avec un poste informatique via le port série en utilisant un protocole qui lui est propre. Il m'a donc fallu analyser ce protocole pour parvenir à l'utiliser Configuration de la connexion Le format de transmission des données entre le périphérique et l'ordinateur via le port série est 8N. Cela signifie que chaque trame comporte : 8 bits de données, soit un octet complet. Aucun bit de parité. bit d'arrêt. Soit 9 bits par trame envoyée Définition du protocole La communication entre le périphérique et l'ordinateur est basée sur l'échange de messages, c'est-à-dire des séries discontinues d'octets émis entre le périphérique et l'ordinateur de façon synchrone. Il existe deux types de messages : les messages courts sur un octet et les messages longs sur plusieurs octets Messages courts Les messages courts proviennent uniquement du périphérique. Ces messages ont deux rôles : 6/46

17 Informer l'ordinateur de l'état courant du périphérique. Le périphérique peut en effet être prêt, en attente de carte ou en insertion de carte. Ce genre de message est émis une fois toutes les secondes sauf dans le cas de l'insertion d'une carte ou il est émis une seule fois au moment de l'insertion. Témoigner de la validité et de la viabilité des requêtes de l'ordinateur sur le périphérique. À chaque requête de la part de l'ordinateur, un message émis par le périphérique s'acquitte de la validité de la trame contenant le message. Ensuite, si la trame semble valide, un second message est émis et s'acquitte de la viabilité de la requête. La nature des messages courts dépend de la valeur de l'octet émis. Le tableau 2 de l'annexe 2 fournit la liste de correspondance entre les valeurs de l'octet émis, la nature du message et sa périodicité. Voici un exemple d'utilisation des messages courts mettant en scène l'envoi d'une requête par l'ordinateur :. Réception par l'ordinateur d'une série d'octets à chaque seconde signalant que le périphérique est prêt. (messages courts) 2. Envoi d'une requête de la part de l'ordinateur. (message long) 3. Réception par l'ordinateur d'un message court d'acquittement pour signaler que le message est correctement formé. 4. Réception par l'ordinateur d'un autre message court d'acquittement pour signaler que la requête est acceptée. 5. En fonction de la requête. Si la requête requiert une réponse, réception de cette réponse. (message long) 2. Sinon, s'il s'agit d'une demande d'encodage ou de décodage avec insertion de la carte depuis la façade avant en attente, réception d'une série de messages courts d'attente d'insertion d'une carte. 3. Sinon, réception d'une série de messages courts de statut «Prêt» ou «Dernière opération terminée» Messages longs : Généralités Les messages longs sont contenus dans une trame dont la structure est décrite dans le tableau 3 en annexe 3. Cette trame permet d'assurer la cohérence des messages envoyés par l'ordinateur. Cela prévient des erreurs pouvant survenir d'une installation défectueuse (câble trop long ou endommagé) ou d'une utilisation inadaptée comme, par exemple, une utilisation abusive du port série par un logiciel sans rapport avec le périphérique. Par exemple, en notation hexadécimale, la trame correspondant au message de récupération de statut 0000 est : Soit : DLE DLE DLE SOH [RCL=0008] STX ETX [RLC=0] EOT ^ ^ ^ Il y a deux types de messages longs : les messages de configuration et de statut du matériel d'une part et les messages opératifs d'autre part. 7/46

18 Les messages de configuration et de statut sont des messages de taille fixés à quatre octets (trame exclue) pouvant requérir une réponse de la part du périphérique. Les messages opératifs permettent d'effectuer des opérations de décodage, d'encodage ou d'impression et ne requièrent pas de réponse Messages de configuration et de statut Une partie des requêtes disponibles du protocole de communication et leurs réponses associées ont été utilisées lors du développement du cœur. Les autres requêtes n'ont pas été implémentées car elles ne répondaient pas au besoin. Voici la liste de ces messages et les classes associées que j'ai développé. Rôle Classe de la requête Classe de la réponse Récupération du statut GetStatusRequest GetStatusResponse Récupération du résultat de la dernière opération GetLastOperationRequest GetLastOperationResponse Récupération des données de la carte GetMagneticDataRequest GetMagneticDataResponse Réinitialisation des erreurs du système ResetSystemErrorRequest Récupération du statut complet GetLongStatusRequest Évacuation des cartes EmptySystemRequest GetLongStatusResponse Tableau : Liste des messages utilisés Une description plus approfondie de ces messages est disponible en annexe Messages opératifs ou exécutables Ces messages se composent de trois parties : La commande introduisant la nature exécutable du message. La commande de 6 chiffres décrivant l'action à effectuer. Les données fournies en paramètre. Dans le cas de l'encodage d'une carte, le format des données supplémentaires est le même que celui de la réponse à la requête GET Magnetic data (voir le tableau 9 en annexe 5) à l'exception du premier octet qui passe de 2 à 5. Le tableau 4 en annexe 6 décrit plus précisément la structure des messages opératifs. Un exemple de scénario et fourni en annexe Exemple synthétique. Voici un exemple synthétique de trame exploitant les connaissances acquises lors de l'étude des cartes magnétiques et du protocole de communication du CCS 2005 TPX KGB. Considérons un client dénommé John Doe. Il a le compte en banque numéro et possède une carte VISA. Cette carte expire en janvier 204 et ses données discrétionnaires sont On peut constituer la piste IATA de cette carte de paiement. %B ^DOE/J.^ ?3 8/46

19 Une fois cette piste générée, on peut constituer la requête d'encodage avec les paramètres suivants : Insertion : attente avant Éjection : avant haut Pistes : Décodage : Désactivé Encodage : IATA Impression : Désactivée. Donnée supplémentaire : 5040B ^DOE/J.^ Cette requête est : B ^DOE/J.^ Le tout s'encapsule alors dans une trame : E 44 4F 45 2F 4A 2E 5E D 04 Soit : [DLE][DLE][DLE][SOH][RCL=0038][STX] B ^DOE/J.^ [ETX][LRC=7D][EOT] Cet exemple témoigne de la complexité et de la variété de cas qu'apporte le métier à la problématique initiale. Cette étude préliminaire a consommé du temps, mais elle a été nécessaire à la mise en œuvre du projet que j'ai réalisé. 9/46

20 4. Réalisation Pour répondre à la problématique de l'entreprise, j'ai développé une application graphique capable de générer les trois pistes de cartes magnétiques et de les encoder à l'aide du périphérique fourni. Pour répondre à des besoins de testabilité et de clarté du code, j'ai développé le projet en trois parties. Chaque partie est indépendante et peut donc être utilisée telle quelle. Cette partie du rapport développe certains points de la contribution que j'ai apporté à ce projet après avoir préciser l'enjeu de chacun de ces trois modules. 4.. Développement modulaire Le projet est segmenté en trois parties : le cœur de métier, le pilote et l'interface graphique. Le cœur de métier désigne la structure de données des cartes à pistes magnétiques, le format de ces pistes et leur conversion en pistes brutes. Le pilote communique avec le périphérique et permet, entre autres, l'échange de données entre les cartes virtuelles générées à partir des structures de données précédentes et les cartes à pistes magnétiques réelles. L'interface graphique permet une utilisation simple du pilote. L'utilisation de composants graphiques rend la tâche d'autant plus simple que cette interface est intuitive. Concrètement, le cœur de métier et le pilote ont été réunis au sein du module ISOTrackEncoderCore. Il s'agit d'une bibliothèque utilisable par n'importe quel programme Java. L'interface utilisateur fait l'objet d'un second module : ISOTrackEncoderUI (Pour User Interface). Ce programme utilise la bibliothèque ISOTrackEncoderCore. Le développement du projet s'est déroulé selon l'ordre suivant : d'abord, le cœur de métier, puis le pilote et enfin l'interface graphique Développement du cœur de métier Cette partie traite du développement des structures de données définissant une carte de paiement à pistes magnétiques et des utilitaires de transcodage de ces données Structures de données La conception du modèle de données suit les règles de simplicité imposées par XP. Une carte est composée de pistes et chaque piste est composée de champs. La carte est donc modélisée par un simple conteneur Card et chaque piste est modélisée par les conteneurs Track, Track2 et Track3. Les champs implémentent tous l'interface Field. Cette interface fournie la méthode gettype() retournant une constante de l'énumération Field.Type qui correspond au type du champ. 20/46

21 Chaque piste possède un constructeur acceptant une liste variable de champs. Cette signature permet une instanciation de la piste à partir d'un nombre éventuellement restreint de champs et dans n'importe quel ordre. Chaque piste est composée d'un objet de la classe TrackHandler dont le rôle est de contenir les champs. C'est cette classe qui s'occupe de trier les champs admissibles par la piste. En effet, tous les champs ne sont pas habilités à composer n'importe quelle piste. Pour une meilleure utilisabilité, les pistes possèdent des accesseurs qui s'occupent d'aller chercher les champs dans le TrackHandler et de les retourner en les transtypant dans leur classe réelle. En effet, la classe TrackHandler utilise une collection pour stocker les champs ; plus précisément, un mappage d'instances de Field.Type vers des instances d'implémentations de Field correspondant (Map<Field.Type,Field>) Codage/Décodage Une fois la structure de donnée mise en place, j'ai du développer trois classes utilitaires pour convertir les instances des classes Track, Track2 et Track3 en pistes brutes utilisables par le contrôleur mais également pour l'opération inverse : IATACodec, ABACodec et THRIFTCodec. Ces trois transcodeurs (ou codec) utilisent la classe standard java.io.bytebuffer dans leurs méthodes pour encoder ou pour décoder les pistes Développement du pilote Le pilote peut se résumer à une classe principale, la classe Driver, autour de laquelle s'articulent un ensemble de classes définissant le protocole de communication. Une partie seulement des possibilités du périphérique est implémentée. Cette partie décrit les possibilités qu'offre le pilote que j'ai développé, le fonctionnement de la méthode send() de la classe Driver (méthode centrale du pilote permettant d'envoyer et de recevoir le message du périphérique) et un exemple de défaut de conception rencontré concernant le développement du protocole Possibilités offertes Le pilote que j'ai développé est capable de : Fournir la liste des ports utilisables. Il s'agit théoriquement des seuls ports connectés au CCS 2005 TPX KGB. Se connecter à l'un de ces ports. Renseigner l'état actuel du périphérique : Dernière opération terminée (LAST_OPERATION_FINISHED) ; Prêt pour une nouvelle opération (READY_FOR_OPERATION) ; En attente de carte (WAITING_FOR_TICKET). Envoyer un message de requête au périphérique et récupérer, si nécessaire, un message de réponse. Le pilote correspond à la classe Driver décrite en annexe à la page 44. 2/46

22 Principe de fonctionnement de la méthode send() Illustration 6: Principe de fonctionnement du pilote Voici les différentes étapes de l'envoi et de la réception d'un message.. Construction du message. Pour les requêtes simples, une instanciation simple avec un constructeur par défaut est suffisante. Dans le cas d'opérations plus complexes comme, par exemple, l'écriture d'une piste logique, ladite piste doit être construite, convertie en piste brute puis passée parmi les arguments de la requête opérative appropriée (opération d'écriture). 2. Le message construit est passé en argument de la méthode send() qui se charge de l'encoder en message brut. 3. Le message brut est ensuite encodé dans une trame valide. 4. La trame est envoyée au périphérique à l'aide d'un objet privé d'une tierce classe. Cette classe provient de la bibliothèque RxTx qui est un projet libre de communication via les ports série et parallèle. Cette bibliothèque utilise du code natif pour gérer les périphériques. Une librairie binaire développée en C est donc indispensable pour le bon fonctionnement du projet. Cette librairie est dépendante du système d'exploitation. 5. Si une réponse est attendue, elle est reçue via l'objet privé. Sinon, la méthode s'arrête et renvoie une référence nulle. 6. La trame reçue est décodée en message brut. 7. Le message brut est décodé en message logique. 8. Ce dernier est alors renvoyé par la méthode send(). 22/46

23 Défaut de conception : Encodage et décodage des messages Un défaut de conception important à été relevé lors du développement du contrôleur et a fait l'objet d'un remaniement du code. Il s'agit de l'encodage et du décodage des messages logiques en trames brutes. Dans un premier temps, j'ai développé une classe mère Message disposant d'une méthode abstraite getframe() destinée à retourner un ByteBuffer contenant le message brut. Cette méthode était alors implémentée pour les classes filles (voir l'illustration 7). Illustration 7: Défaut de conception pour l'encodage des messages Bien que cette conception fonctionne, il apparaît qu'elle ne suit pas la logique de séparation des tâches qu'impose le développement orienté objet. Cette logique avait par ailleurs été respectée par le modèle lors de la conversion d'une piste logique en piste brute. L'opération d'encodage des messages a donc été déplacée en toute logique dans une classe utilitaire : MessageCodec (voir l'illustration 8). Illustration 8: Solution apportée à l'encodage des messages 4.4. Développement de l'interface utilisateur L'interface utilisateur est une interface fenêtrée utilisant la bibliothèque de composants Java Swing Possibilités offertes Cette interface permet de générer les trois pistes de trois manières différentes :. Logique : En renseignant les champs des formulaires pour chaque piste. Les pistes à encoder sont automatiquement converties de leur forme logique (objets composés de champs) à leur forme brute (tableau d'octets) en vue d'être transmises au pilote. 2. Brut : En renseignant directement les trois champs correspondant aux trois pistes. Les octets STX (début de piste), ETX (fin de piste) et LRC (contrôle de validité) doivent être omis car c'est le périphérique qui les ajoute à l'encodage et qui les supprime au décodage. Le pilote n'a pas de contrôle sur ces octets. 23/46

24 3. Copie : En lisant les pistes d'une autre carte de paiement. Un simple clic sur le bouton Read (voir l'illustration 9) provoque la lecture d'une carte et le remplissage des champs bruts par le contenu de la piste. Illustration 9: Aperçu de l'interface utilisateur Un scénario envisageable serait de lire le contenu d'une carte et de l'altérer ensuite manuellement en vue d'encoder une carte invalide. La production de cartes invalides fait en effet partie du besoin exprimé par le service «Intégration et AQP» Défauts de conception Les deux défauts de conceptions les plus importants qui ont été relevés lors du développement de l'interface utilisateur ont fait l'objet d'un remaniement du code. Il s'agit de l'acquisition du statut du matériel et de la présence de liens forts Acquisition du statut Dans un premier temps, j'ai développé, au sein du contrôleur de l'application fenêtrée, une classe implémentant l'interface java.lang.runnable qui récupérait le statut du périphérique périodiquement. Cela devait initialement prévenir l'utilisation du périphérique en cas d'erreur ou de présence de carte dans le système. Cette solution, connue sous le nom de polling, s'est révélée mauvaise. Le polling consiste à récupérer continuellement le statut d'un périphérique. Cette opération est très consommatrice de ressources. Elle n'était en rien efficace car la plupart des réponses obtenues restaient inutilisées. Les sorties de débogage produites submergeaient les autres sorties rendant les opérations de débogage en activité extrêmement compliquées, même sur de courtes périodes. Elle a donc été abandonnée au profit d'une récupération du statut au besoin. Cette acquisition se fait donc avant toute opération. Le reste du temps, le pilote est au repos est se contente de maintenir la connexion ouverte. 24/46

25 Liens forts Afin de faciliter le développement, j'ai d'abord choisi de déclarer une instance statique du pilote dans la classe principale de l'application. Les composants faisant appel à ce pilote pouvaient alors y accéder depuis n'importe quel emplacement du programme. Cette solution allait à l'encontre des principes de conception tels qu'ils sont appliqués en XP. Elle impliquait en effet une relation forte des composants concernés à la classe principale hébergeant le pilote. Une conception appropriée tend justement à éviter la présence de ce type de lien. Une opération de remaniement du code à donc été effectuée afin de faire passer le pilote en tant qu'argument de père en fils lors de la création des composants Produit fini L'assemblage des trois modules forme une application fonctionnelle et testable. Cette application répond à la problématique rencontrée et s'intègre au projet ArchiPEL. 25/46

26 5. Conclusion À l'issue de l'accomplissement de trois mois de stage au sein de l'entreprise Parkeon, j'aurai été capable de développer un pilote fonctionnel et testable en appliquant les méthodes de travail pratiquées par l'équipe de développement. Le cœur peut être retravaillé et réutilisé dans le cadre d'autre projets, graphiques, semi-graphiques ou en ligne de commande. Il peut notamment être complété au niveau du protocole pour gérer un plus grand jeu de messages. Des témoins d'erreur supplémentaires placés dans des composants tels que des fenêtres surgissantes peuvent enrichir l'application graphique existante. Une base de données pourrait également stocker les pistes générées. D'un point de vue technique, ce stage m'aura permis de mettre en pratique les connaissances que j'ai pu acquérir au cours de la licence professionnelle SIL, notamment vis-à-vis du langage Java omniprésent dans le projet développé. L'entreprise elle-même m'a apporté des connaissances en méthodologies et technologies Java. J'ai su profiter avec satisfaction et m'enrichir de l'expérience des personnes qui m'ont encadré, développeurs ou non, et je les en remercie. D'un point de vue humain et personnel, ce stage m'a pleinement satisfait en tous points. J'ai eu la chance d'évoluer au sein d'une entreprise structurée avec un esprit de compétitivité permanent lui permettant de pérenniser sa position de leader dans son secteur d'activité tout en conservant une ambiance de travail d'équipe conviviale et je suis parfaitement conscient de l'enrichissement que ce stage m'aura apporté. Je conclurai donc en affirmant que je conseillerai vivement cette formation aux étudiants désireux de suivre un stage de développeur d'application et que je mettrai un point d'honneur à vanter les bénéfices remarquables que le stage de fin d'année peut apporter pour monter en compétences professionnelles mais également pour la découverte concrète du «monde du travail» grâce à cette période d'immersion en entreprise. 26/46

27 6. Glossaire ABA (American Banking Association) : Format de la seconde piste magnétique d'une carte de paiement. AQP (Assurance Qualité Produit) : Processus visant à assurer aux clients la qualité du produit qui leur sera livré. BSD (Berkeley Software Distribution) : Désigne une famille de systèmes d'exploitation UNIX, développés à l'université de Californie à Berkeley. Démon : Un démon est un programme s'exécutant en arrière plan plutôt que sous le contrôle d'un utilisateur. EDI : Environnement de Développement Intégré. En anglais : IDE pour Integrated Development Environment. IATA (International Air Transport Association) : Format de la première piste magnétique d'une carte de paiement. Java bytecode : Il s'agit du code semi-compilé produit par le compilateur Java. JAR (Java Archive) : Archive compressée utilisée pour stocker l'ensemble des classes et des fichiers de ressources d'un programme ou d'une librairie Java. Il s'agit ni plus ni moins d'un fichier zip dont l'extension a été modifiée. JVM (Java Virtual Machine) : Machine Virtuel Java. Il s'agit de l'environnement d'exécution des programmes développés en Java. La JVM est la passerelle entre le Java bytecode et le code exécutable. LDAP (Lightweight Directory Access Protocol) : Décrit aussi bien un protocole de service d'annuaire que la norme définissant le système dans son ensemble : Représentation des données, nommage, sécurité, réplication, etc. Licence BSD : Licence libre autorisant l'utilisation d'un logiciel dans un contexte de logiciel libre ou propriétaire. LRC (Longitudinal Redundancy Check) : Somme de contrôle simple. Son algorithme est fourni en annexe. Méthodes Agiles : Procédures de conception logicielle. Ces procédures ont la particularité de privilégier au maximum l'efficacité de l'avancement et de la qualité du projet en opposition aux méthodes traditionnelles jugées lourdes et obsolètes. Open Source : Logiciel ou bibliothèque dont le code source est disponible. Ce code source n'est pas nécessairement gratuit. R&D (Research and Development) : Recherche et Développement. Scrum :Terme emprunté au rugby signifiant mêlée et définissant une méthode Agile. Son principal atout est la relation d'étroite coopération existant avec le client. Ce dernier est directement impliqué dans la direction du développement du projet en imposant notamment les ordres de priorité. THRIFT-TTS : Format de la troisième piste magnétique d'une carte de paiement. XP (extreme Programming) : Méthode Agile poussant à l'extrême des principes simples. Par exemple, puisque l'intégration des modifications est importante, elle se fait plusieurs fois par jour. 27/46

28 7. Netographie Les informations à propos de l'entreprise Parkeon sont disponibles sur leur site officiel : [fr] Une grande quantité d'informations à propos des méthodes Agiles est issue de l'encyclopédie en ligne Wikipédia. [fr] [fr] [fr] La citation à propos du bien fondé d'un système de journalisation provient du site de la technologie utilisée : log4j. [en] Les informations concernant les différents formats de pistes sont issues de la documentation officielle de ces normes : ISO/IEC 783 pour les formats IATA et ABA et ISO/IEC 4909 pour le format THRIFT-TTS. Ces documents ne sont pas librement accessibles, mais il existe des équivalences sur le Web, notamment cette page : [en] Le site officiel de la bibliothèque Java de gestion des communications par voies série et parallèle est hébergé à l'adresse suivante : [en] D'une manière générale, les informations de chaque technologie ont été récupérées depuis l'encyclopédie Wikipédia ainsi que depuis les sites web officiels de ces technologies. 28/46

29 8. Annexes Annexe : Description des formats de pistes. Chaque donnée élémentaire est codée soit sur 7 bits pour la première piste (piste IATA), soit sur 5 bits pour les deux autres (pistes ABA et THRIFT-TTS). Néanmoins, ces atomes sont transmis à l'ordinateur sous forme d'octets (8 bits). Pour simplifier, Je parlerai donc d'octet, de caractère ou de chiffre pour désigner une donnée élémentaire. Format IATA La carte ne peut dépasser 79 caractères.. STX (Start Sentinel) : Un caractère fixé à %. 2. FC (Format Code) : Code du format. Un caractère fixé à B pour les transactions financières. 3. PAN (Primary Account Number) : Numéro de compte primaire. Entre 7 et 9 chiffres. 4. FS (Field Separator) : Séparateur de champs. Un caractère fixé à ^. 5. CC (Country Code) : Code pays sur trois chiffres. Disponible uniquement si le champ PAN commence par NM (Name) : Nom du propriétaire de la carte entre 2 et 26 caractères. 7. FS (Field Separtor) : Séparateur de champs. 8. ED (Expiration Date) : Date d'expiration de la carte sous la forme YYMM. YY représente les deux derniers chiffres de l'année. MM représente le mois sur deux chiffres. 9. SC (Service Code) : Code service définit sur 3 chiffres. Chaque chiffre ayant une signification différente. 0.DD (Discretionary Data) : Données discrétionnaires. Ces données sont à la charge de l'entreprise qui délivre les cartes magnétiques..etx (End Sentinel) : Un caractère fixé à?. 2.LRC (Longitudinal Redundancy Check) : Somme de contrôle sur un octet. Format ABA La carte ne peut dépasser 40 caractères.. STX (Start Sentinel) : Un caractère fixé à ;. 2. PAN (Primary Account Number) : Numéro de compte primaire. 3. FS (Field Separator) : Séparateur de champs. Un caractère fixé à =. 4. CC (Country Code) : Code pays sur trois chiffres. Disponible uniquement si le champ PAN commence par ED (Expiration Date) : Date d'expiration de la carte sous la forme YYMM. YY représente les deux derniers chiffres de l'année. MM représente le mois sur deux chiffres. 29/46

30 6. SC (Service Code) : Code service définit sur 3 chiffres. Chaque chiffre ayant une signification différente. 7. DD (Discretionary Data) : Données discrétionnaires. Ces données sont à la charge de l'entreprise qui délivre les cartes magnétiques. 8. ETX (End Sentinel) : Un caractère fixé à?. 9. LRC (Longitudinal Redundancy Check) : Somme de contrôle sur un octet. Format THRIFT-TTS La carte ne peut dépasser 07 caractères.. STX (Start Sentinel) : Un caractère fixé à ;. 2. FC (Format Code) : Code format sur deux chiffres. Seuls les codes 0 et 02 sont supportés. 3. PAN (Primary Account Number) : Numéro de compte primaire. Entre 7 et 9 chiffres. 4. FS (Field Separator) : Séparateur de champs. Un caractère fixé à =. 5. CC (Country Code) : Code pays sur trois chiffres. 6. CuC (Currency Code) : Code de la devise sur 3 chiffres. 7. CE (Currency Exponent) : Puissance de dix entre 0 et 5 par lequel les champs AA et AR doivent être multipliés pour obtenir leur valeur réelle dans la monnaie spécifiée par le champ CuC. 8. AA (Amount Authorized) : Montant maximum autorisé par période sur 4 chiffres. 9. AR (Amount Remaining) : Montant maximum autorisé pour la période courante sur 4 chiffres. 0.CB (Cycle Begin) : Date de début de la période courante sous la forme YDDD. Y représente le dernier chiffre de l'année en cours. DDD représente le numéro du jour dans l'année de 00 à 366..CL (Cycle Length) : Longueur de chaque période sur deux chiffres. 00 Période infinie. 0 ~ 79 Nombre de jours. 80 ~ 86 Valeurs spéciales 87 ~ 99 Inutilisés 2.RC (Retry Count) : Nombre de tentatives restantes de saisie du code PIN sur un chiffre. 3.PINCP (PIN Control Parameters) : Paramètres d'encryptage du code PIN sur six chiffres. 4.IC (Interchange Control) : Niveau de restriction des échanges sur un chiffre. 0 Pas de restriction. Indisponible pour les échanges internationaux. 2 ~ 8 Échanges limités à un usage local et sous accord. 9 Échange limités. Recommandé pour des cartes de test. 30/46

31 5.PANSR (PAN Service Restriction) : Type de compte et restrictions de services sur deux chiffres. 6.FSANSR (FSAN Service Restriction) : Restriction de services du FSAN. 7.SSANSR (SSAN Service Restriction) : Restriction de services du SSAN. 8.ED (Expiration Date) : Date d'expiration sous la forme YYMM. 9.CSN (Card Sequence Number) : Numéro de séquence de la carte sur un chiffre permettant de différencier des cartes ayant le même PAN. 20.CsCN (Card Security Number) : Numéro de sécurité sur neuf chiffres vérifiant la concordance entre les pistes magnétiques et le numéro gravé sur la carte. 2.FSAN (First Subsidiary Account Number) : Premier numéro de compte subsidiaire. 22.FS (Field Separator) : Séparateur de champs. 23.SSAN (Second Subsidiary Account Number) : Deuxième numéro de compte subsidiaire. 24.FS (Field Separator) : Séparateur de champs. 25.RM (Relay Marker) : Définit si les données additionnelles et les données discrétionnaires doivent être incluses. 0 si toutes les données discrétionnaires doivent être incluses. si les données additionnelles doivent être exclues. 2 si aucune données discrétionnaires de doit être inclue. 26.CCD (Crypto Check Digits) : Contrôle de l'intégrité du contenu de la piste. 27.AD (Additional Data) : Données additionnelles. 28.ETX (End Sentinel) : Un caractère fixé à?. 29.LRC (Longitudinal Redundancy Check) : Contrôle de somme sur un octet. 3/46

32 Annexe 2 : Liste des messages courts Valeur Description Timing ACK (0x06) Taille du message, contrôle de somme et trame OK s maximum après chaque message NAK (0x5) Taille du message, contrôle de somme ou trame erronée s maximum après chaque message RQA (0x08) Requête acceptée et exécutable Après avoir vérifié un message RQD (0xA) Requête rejetée et non exécutable Après avoir vérifié un message DLE (0x0) KGB 2005 TPX a terminé la dernière opération Chaque seconde DC (0x) KGB 2005 TPX est prêt pour opération Chaque seconde DC2 (0x2) KGB 2005 TPX attend une carte en façade de la part de l'utilisateur Chaque seconde DC3 (0x3) L'utilisateur a inséré une carte en façade Une seule fois Tableau 2: Liste des messages courts 32/46

33 Annexe 3 : Format des trames des messages long SYN (0x6) 2 SYN (0x6) 3 SYN (0x6) 4 SOH (0x0) 5 0 MSB ReCord Length (RCL) 6 Taille du message 7 STX (0x02) 8 Donnée Donnée Donnée n 8+n ETX (0x03) 9+n LRC 0 + n EOT (0x04) LSB Tableau 3: Structure de la trame d'un message Le champ RCL désigne la taille du message (ReCord Lenght). Ce champ prend deux octets. Il prend en compte les octets allant de STX à EOT. La somme de contrôle LRC, quant à elle, concerne les octets STX à ETX. 33/46

34 Annexe 4 : Algorithme d'un calcul de somme de contrôle LRC package com.archipel.utils.isotrackencoder.utils; import java.nio.bytebuffer; /** * LRC computer. */ public final class LRC { private LRC() { } /** * Compute a longitudinal redundancy check. * bytebuffer Inpup sequence of bytes. The longitudinal redundancy check byte. */ public static byte compute(final ByteBuffer bytebuffer) { final ByteBuffer workingcopy = bytebuffer.duplicate(); byte lrc = 0; workingcopy.rewind(); while (bytebuffer.hasremaining()) { lrc ^= bytebuffer.get(); } return lrc; } } 34/46

35 Annexe 5 : Liste des messages longs utilisés. Récupération du statut (0x30) 2 0 (0x30) 3 0 (0x30) 4 0 (0x30) Tableau 4: Requête GET Status Ticket in system System Ready 0 (0x30) System Error Ticket in infeeder 2 (inside) Ticket in muzzle Ticket in Ticket in Ticket in infeeder parking unit 2 parking unit (outside) (upper) Tableau 5: Réponse GET Status Au démarrage, en l'absence de carte dans l'appareil, le système retourne donc la réponse 00. Si une opération de lecture échoue, la carte reste bloquée dans l'appareil et une requête GET Status provoquera comme réponse : 0:0 (30 3A 30). Récupération du résultat de la dernière opération (0x30) 2 0 (0x30) 3 0 (0x30) 4 (0x3) Tableau 6: Réponse GET Result of last operation (0x3) System Error 0 Last operation Last operation failed OK Tableau 7: Réponse GET Result of last operation Si la dernière opération s'est bien déroulée, le système répondra. 35/46

36 Récupération des données de la carte Ce message n'est appelé qu'après avoir procéder à une opération de lecture (0x30) 2 0 (0x30) 3 0 (0x30) 4 2 (0x32) Tableau 8: Réponse GET Magnetic data (0x32) 2 Identifiant de la première piste 3 4 Taille k de la piste ISO sur trois chiffres 5 6 Donnée Donnée 5+k Donnée k 6+k Identifiant de la deuxième piste 7+k 8+k Taille m de la piste ISO 2 sur trois chiffres 9+k 0 + k Donnée Donnée 9+k+m Donnée m 0 + k + m Identifiant de la troisième piste + k + m 2 + k + m Taille n de la piste ISO 3 sur trois chiffres 3 + k + m 4 + k + m Donnée Donnée 3 + k + m + n Donnée n Tableau 9: Réponse GET Magnetic data 36/46

37 Les identifiants permettent de spécifier le sens de lecture de la piste. (0x3), 2 (0x32) et 3 (0x33) désignent le sens normal de lecture pour les pistes, 2 et 3 tandis que 9 (0x39), : (0x3A) et ; (0x3B) désignent le sens inverse. Il s'agit en fait de lever le bit 3 pour signaler le sens contraire de lecture. Un appel à cette requête sans lecture préalable retournera une carte vide. C'est-àdire : Réinitialisation des erreurs du système Ce message est nécessaire car les erreurs rencontrées par le CCS 2005 TPX KGB sont bloquantes. La réinitialisation des erreurs permet alors de débloquer le processus pour, par exemple, évacuer la carte présente dans le système. Un cas courant est la tentative de lecture d'une piste inexistante. Le logiciel exploitant le périphérique peut très bien continuer son exécution si la piste qu'il demande n'existe pas. Un blocage complet n'est alors pas nécessaire (0x30) 2 0 (0x30) 3 0 (0x30) 4 : (0x3A) Tableau 0: Requête Reset system error Cette requête ne retourne pas de réponse. Récupération du statut complet (0x30) 2 2 (0x32) 3 0 (0x30) 4 0 (0x30) Tableau : Requête GET Long status (0x39) Error Ticket in muzzle Ticket in System No Erro Ticket in infeeder 2 (inner) Ticket in infeeder (outer) Ticket in parking unit Ticket in parking unit 2 (upper) System Error 0 Last operation failed Last operation OK 5 Capteur photosensible 0 : 0 (éteint) ou (allumé) Emplacement : museau, centre 37/46

38 6 Capteur photosensible : 0 (éteint) ou (allumé) Emplacement : lecteur, à coté du museau 7 Capteur photosensible 2 : 0 (éteint) ou (allumé) Emplacement : lecteur 8 Capteur photosensible 3 : 0 (éteint) ou (allumé) Emplacement : lecteur 9 Capteur photosensible 4 : 0 (éteint) ou (allumé) Emplacement : lecteur 0 Capteur photosensible 5 : 0 (éteint) ou (allumé) Emplacement : lecteur Capteur photosensible 6 : 0 (éteint) ou (allumé) Emplacement : lecteur 2 Capteur photosensible 7 : 0 (éteint) ou (allumé) Emplacement : lecteur 3 Capteur photosensible 8 : 0 (éteint) ou (allumé) Emplacement : lecteur, à coté du moteur pas-à-pas 4 Si disponible : Capteur photosensible 0, position de stationnement : 0 (éteint) ou (allumé) Emplacement : position de stationnement, à coté du lecteur Sinon : 5 Si disponible : Capteur photosensible, position de stationnement : 0 (éteint) ou (allumé) Emplacement : position de stationnement, vers la sortie Sinon : 6 Si disponible : Capteur photosensible 0, séparation : 0 (éteint) ou (allumé) Emplacement : séparation Sinon : 7 Si disponible : Capteur photosensible, séparation : 0 (éteint) ou (allumé) Emplacement : séparation Sinon : 8 Si disponible : Capteur photosensible 2 séparation : 0 (éteint) ou (allumé) Emplacement : séparation Sinon : 9 Si disponible : Capteur photosensible 3, séparation : 0 (éteint) ou (allumé) Emplacement : séparation Sinon : 20 Si disponible : Capteur photosensible 4, séparation : 0 (éteint) ou (allumé) Emplacement : séparation Sinon : 2 Si disponible : Capteur photosensible 5, séparation : 0 (éteint) ou (allumé) Emplacement : séparation 38/46

39 Sinon : 22 Si disponible : Capteur photosensible 6, séparation : 0 (éteint) ou (allumé) Emplacement : séparation Sinon : 23 Si disponible : Capteur photosensible, museau : 0 (éteint) ou (allumé) Emplacement : museau, sortie Sinon : 24 Si disponible : Capteur photosensible 0, position de stationnement 2 : 0 (éteint) ou (allumé) Emplacement : position de stationnement, à coté du lecteur Sinon : 25 Si disponible : Capteur photosensible, position de stationnement 2 : 0 (éteint) ou (allumé) Emplacement : position de stationnement, vers la sortie Sinon : Réservé 35 Fonction de base : 0 (OK) ou (Erreur) 36 Insertion : 0 (OK) ou (Erreur) 37 Écriture de la première piste : 0 (OK) ou (Erreur) 38 Écriture de la deuxième piste : 0 (OK) ou (Erreur) 39 Écriture de la troisième piste : 0 (OK) ou (Erreur) 40 Lecture de la première piste : 0 (OK) ou (Erreur) 4 Lecture de la deuxième piste : 0 (OK) ou (Erreur) 42 Lecture de la troisième piste : 0 (OK) ou (Erreur) 43 Impression : 0 (OK) ou (Erreur) 44 Éjection : 0 (OK) ou (Erreur) 45 Matériel : 0 (OK) ou (Erreur) 46 Photocellule : 0 (OK) ou (Erreur) Réservé 49 EEProm : 0 (OK) ou (Erreur) 50 Carte : 0 (Non détectée) ou (Détectée) 5 60 Réservé 6 Porte : 0 (Ouverte) ou (Fermée) 62 Données d'impression : 0 (Absentes) ou (Présentes) 63 Si la détection de stock de ticket est disponible : Bit 7 4 : 00 (0x3) Bit 3 : Le premier transporteur d'entrée a moins de 00 tickets. 39/46

40 Bit 2 : Le premier transporteur d'entrée n'a plus de ticket. Bit : Le deuxième transporteur d'entrée possède moins de 00 tickets. Bit 0 : Le deuxième transporteur d'entrée n'a plus de ticket. Sinon : 3 64 Si le périphérique est un CCS 2005 XXL KGB : 0,, 2 ou 3 ; l'identifiant de la dernière tête d'encodage active. Sinon : 4 65 Si disponible, les données magnétiques et le code barre. Tableau 2: Réponse GET Long status Évacuation des cartes En cas d'erreur de lecture ou d'écriture, cette requête peut être utilisée pour évacuer les cartes bloquées à l'arrière de l'appareil (0x30) 2 9 (0x39) 3 0 (0x30) 4 0 (0x30) Tableau 3: Requête Empty system Cette requête ne provoque pas de réponse. 40/46

41 Annexe 6 : Structure d'un message opératif Octet Fonction Commande 2 Insertion Interne Avant Station Arrière Burster Haut 3 Éjection Interne Avant Position Station Arrière Haut CSC 4 Piste Désactivé Décodage Désactivé ISO IATA ABA THRIFT Personnalisé Personnalisé Personnalisé 2 3 Code barre 6 Encodage Désactivé ISO IATA ABA THRIFT Personnalisé Personnalisé Personnalisé 2 3 Brut 7 Impression Désactivé Activé : ; Avant attente Mauvais Avant Bas Station 2 Position Station Mauvais Tête CHIP 2 2 d'impression +2+3 Données supplémentaires Tableau 4: Structure d'un message opératif 4/46

42 Annexe 7 : Exemple de scénario d'utilisation du CCS 2005 TXP KGB. Cet exemple présente une opération de lecture de carte. Dans un premier temps, on s'assure que le système est prêt. S'il n'est pas prêt, on fait le nécessaire. Dans le cas présent, la carte n'a pas de piste. Ces pistes n'ont pas encore été encodées ou la carte a tout simplement été insérée dans le mauvais sens (La piste vers le haut). À la fin du scénario, le matériel entre en erreur. Trois niveaux de profondeurs sont affichés. Du niveau le plus bas (en hexadécimal) au niveau le plus haut (sous forme textuel). En vert, les messages entrants du périphérique vers l'ordinateur. En rouge, les messages sortants de l'ordinateur vers le périphérique A 03 0B B /46

43 DLE 0000 ACK RQA 080 DLE 000: ACK RQA DLE 6700 ACK RQA DC2 DC2 DC2 DC3 DC 0002 ACK RQA Prêt pour opération. Requête GET Status. Longueur du message, somme de contrôle Requête acceptée et exécutable. Réponse Get Status : SYSTEM_ERROR Prêt pour opération. Requête Reset system error Longueur du message, somme de contrôle Requête acceptée et exécutable. Prêt pour opération. Requête opérative : Insertion=Attente en façade Éjection=Façade Piste= Lecture=ISO Écriture=Désactivée Impression=Désactivé Longueur du message, somme de contrôle Requête acceptée et exécutable. Attente du ticket en façade. Attente du ticket en façade. Attente du ticket en façade. Ticket inséré. Dernière opération terminée. Requête GET Magnetic data Longueur du message, somme de contrôle Requête acceptée et exécutable. Réponse GET Magnetic data : Piste =(vide) Piste 2=(vide) Piste 3=(vide) Prêt pour opération /46 et trame OK. et trame OK. et trame OK. et trame OK.

44 Annexe 8 : Diagramme de classe de la classe Driver com.archipel.utils.isotrackencoder.controler.driver - LOGGER: org.apache.log4j.logger APPLICATION_NAME: java.lang.string TIMEOUT: int ACK: byte NAK: byte RQA: byte RQD: byte DLE: byte DC: byte DC2: byte DC3: byte BYTE_TO_IDLE: java.util.map<java.lang.byte, Idle> idle: com.archipel.utils.isotrackencoder.controler.driver.idle responses: java.util.queue<object> portname: java.lang.string serialport: gnu.io.serialport input: java.io.inputstream output: java.io.outputstream Driver(port: java.lang.string) close(): void listavailableports(): java.util.list<java.lang.string> getidle(): com.archipel.utils.isotrackencoder.controler.driver.idle send(message: com.archipel.utils.isotrackencoder.controler.protocol.message): com.archipel.utils.isotrackencoder.controler.protocol.message connect(portname: java.lang.string): void serialevent(serialportevent: gnu.io.serialportevent): void timeoutedexecution(expected: java.lang.runnable, millis: int): boolean bytearraytohexa(bytearray: byte[]): java.lang.string bytebuffertohexa(bytebuffer: java.nio.bytebuffer): java.lang.string bytebuffertostring(bytebuffer: java.nio.bytebuffer): java.lang.string setidle(idle: com.archipel.utils.isotrackencoder.controler.driver.idle): void sleep(millis: int): void timeoutedexecution(expected: java.lang.runnable, millis: int): boolean + + Tableau 5: Diagramme de classe de la classe Driver 44/46

45 Annexe 9 : Diagramme des classes du noyau Illustration 0: Diagramme des classes du noyau 45/46

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Plateforme de capture et d analyse de sites Web AspirWeb

Plateforme de capture et d analyse de sites Web AspirWeb Projet Java ESIAL 2A 2009-2010 Plateforme de capture et d analyse de sites Web AspirWeb 1. Contexte Ce projet de deuxième année permet d approfondir par la pratique les méthodes et techniques acquises

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

Serveur d intégration continue Jenkins et d analyse de code Sonar couplés à la forge logiciel SourceSup

Serveur d intégration continue Jenkins et d analyse de code Sonar couplés à la forge logiciel SourceSup Serveur d intégration continue Jenkins et d analyse de code Sonar couplés à la forge logiciel SourceSup Sébastien MEDARD GIP RENATER 263 avenue du Général Leclerc CS 74205 35042 Rennes Cedex Résumé L intégration

Plus en détail

MODELE D UN RAPPORT DE STAGE DE BAC PRO ELECTROTECHNIQUE

MODELE D UN RAPPORT DE STAGE DE BAC PRO ELECTROTECHNIQUE MODELE D UN RAPPORT DE STAGE DE BAC PRO ELECTROTECHNIQUE [Prénom Nom] Rapport sur le stage effectué du [date] au [date] Dans la Société : [NOM DE LA SOCIETE : Logo de la société] à [Ville] [Intitulé du

Plus en détail

Analyse et conception des Systèmes d Information. La démarche Merise : La Production Logicielle

Analyse et conception des Systèmes d Information. La démarche Merise : La Production Logicielle Analyse et conception des Systèmes d Information La démarche Merise : La Production Logicielle La production du logiciel Place, objectifs et principes directeurs Christophe.Nicolle@u-bourgogne.fr Introduction

Plus en détail

Méthodes Agiles et gestion de projets

Méthodes Agiles et gestion de projets Méthodes Agiles et gestion de projets Eric LELEU Consultant Solutions Collaboratives Contact ericleleu@nordnet.fr Site Personnel http://home.nordnet.fr/~ericleleu Blog http://ericleleu.spaces.live.fr La

Plus en détail

STATISTICA - Version 10

STATISTICA - Version 10 STATISTICA - Version 10 Instructions d'installation de STATISTICA Entreprise pour une Utilisation sous Terminal Server et Citrix Remarques : 1. Ces instructions s'appliquent à une installation sous Terminal

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

RAPPORT DE CONCEPTION UML :

RAPPORT DE CONCEPTION UML : Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions

Plus en détail

ACCUEIL...2 LA DEMANDE DE DEVIS...11 COMPLETER UN DEVIS...12 ACCEPTER OU A REFUSER LE DEVIS...13

ACCUEIL...2 LA DEMANDE DE DEVIS...11 COMPLETER UN DEVIS...12 ACCEPTER OU A REFUSER LE DEVIS...13 ACCUEIL...2 LA COMMANDE...3 ONGLET "NATURE DES TRAVAUX"...3 ONGLET INFORMATIONS...8 ONGLET RECAPITULATIF...9 LA COMMANDE SIMPLE A VALIDER PAR LES ACHETEURS...10 LA DEMANDE DE DEVIS...11 COMPLETER UN DEVIS...12

Plus en détail

Solutions de gestion de la sécurité Livre blanc

Solutions de gestion de la sécurité Livre blanc Solutions de gestion de la sécurité Livre blanc L intégration de la gestion des identités et des accès avec l authentification unique Objectif : Renforcer la politique de sécurité et améliorer la productivité

Plus en détail

WINDOWS SERVER 2003 ADMINISTRATION A DISTANCE

WINDOWS SERVER 2003 ADMINISTRATION A DISTANCE 1. Introduction WINDOWS SERVER 2003 ADMINISTRATION A DISTANCE En règle générale, les administrateurs ne travaillent pas en salle serveurs. Et cette dernière peut se trouver n'importe où dans le bâtiment.

Plus en détail

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013 Rapport de stage Création d un site web Stage du 20/01/2013 au 21/02/2013 Auteur : Antoine Luczak Tuteur professionnel : M. Tison Tuteur scolaire : Mme Girondon Année scolaire : 2013/2014 1 Table des matières

Plus en détail

LES COURS ONLINE. ar des étudiants our des étudiants. Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm

LES COURS ONLINE. ar des étudiants our des étudiants. Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm LES COURS ONLINE P ar des étudiants our des étudiants Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm CAHIER DES CHARGES I - Préface...4 II - Introduction...5 III - Glossaire...6

Plus en détail

Utiliser la forge de l'ubp pour gérer un projet avec SVN - Les bases -

Utiliser la forge de l'ubp pour gérer un projet avec SVN - Les bases - Utiliser la forge de l'ubp pour gérer un projet avec SVN - Les bases - Hélène Toussaint, 27 novembre 2012 But du document : Le but de ce document est de découvrir la gestion de projets à l'aide des outils

Plus en détail

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 : Atelier No2 : Installation d Active Directory Installation du service DNS Installation du Service WINS Création d'un compte d'ordinateur Jonction d'un ordinateur à un domaine Création d usagers. Étape

Plus en détail

Spécification fonctionnelle Syllabus

Spécification fonctionnelle Syllabus 2013 2014 Université Paris Diderot Paris 7 Master 1 Informatique UFR Informatique Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm Spécification fonctionnelle Syllabus -1- TABLE

Plus en détail

Annuaire : Active Directory

Annuaire : Active Directory Annuaire : Active Directory Un annuaire est une structure hiérarchique qui stocke des informations sur les objets du réseau. Un service d'annuaire, tel qu'active Directory, fournit des méthodes de stockage

Plus en détail

VM Card. Manuel des paramètres des fonctions étendues pour le Web. Manuel utilisateur

VM Card. Manuel des paramètres des fonctions étendues pour le Web. Manuel utilisateur VM Card Manuel utilisateur Manuel des paramètres des fonctions étendues pour le Web 1 Introduction 2 Écrans 3 Paramètres de démarrage 4 Info fonctions avancées 5 Installer 6 Désinstaller 7 Outils administrateur

Plus en détail

Développement itératif, évolutif et agile

Développement itératif, évolutif et agile Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie

Plus en détail

Bonnes pratiques PHP. Forum PHP 2005 - http://www.afup.org

Bonnes pratiques PHP. Forum PHP 2005 - http://www.afup.org Bonnes pratiques PHP 1 Plan de la présentation 0 Comment aborder cette présentation? Développement 1 2 3 4 Exploitation S'organiser et choisir ses outils Gagner performances et fiabilité Améliorer sa compétitivité

Plus en détail

1 Allée d'enghien CS 90172 54602 VILLERS LES NANCY CEDEX Téléphone 03 83 44 81 81 Fax 03 83 44 38 40 micro6@micro6.fr www.micro6.fr.

1 Allée d'enghien CS 90172 54602 VILLERS LES NANCY CEDEX Téléphone 03 83 44 81 81 Fax 03 83 44 38 40 micro6@micro6.fr www.micro6.fr. 1 Allée d'enghien CS 90172 54602 VILLERS LES NANCY CEDEX Téléphone 03 83 44 81 81 Fax 03 83 44 38 40 micro6@micro6.fr www.micro6.fr Documentation VIII Résolution de problèmes 2006 SOMMAIRE CHAPITRE 1 INTRODUCTION

Plus en détail

Alfresco Mobile pour Android

Alfresco Mobile pour Android Alfresco Mobile pour Android Guide d'utilisation de l'application Android version 1.1 Commencer avec Alfresco Mobile Ce guide offre une présentation rapide vous permettant de configurer Alfresco Mobile

Plus en détail

RÉSUMÉ DU TRAVAIL DE DIPLÔME

RÉSUMÉ DU TRAVAIL DE DIPLÔME Filière d'informatique de gestion Travail de diplôme ÉTUDE ORACLE XE & APEX RÉSUMÉ DU TRAVAIL DE DIPLÔME AUTEUR: BRUNO DA COSTA RESPONSABLE DU PROJET: FABRICE CAMUS MANDANT: LABORATOIRE DE GÉNIE LOGICIEL

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

Sophos Mobile Control Guide d'utilisation pour Windows Phone 8. Version du produit : 4

Sophos Mobile Control Guide d'utilisation pour Windows Phone 8. Version du produit : 4 Sophos Mobile Control Guide d'utilisation pour Windows Phone 8 Version du produit : 4 Date du document : mai 2014 Table des matières 1 À propos de Sophos Mobile Control...3 2 À propos de ce guide...4 3

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

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Gestion du parc informatique matériel et logiciel de l Ensicaen SAKHI Taoufik SIFAOUI Mohammed Suivi ENSICAEN

Plus en détail

Présentation du projet:

Présentation du projet: : Le but du projet est de réaliser le fonctionnement d'un jeu d échec valide. Plus spécifiquement, il consiste à implémenter l'organisation générale du jeu, et le suivi des règles du mouvement des pièces.

Plus en détail

MODULES 3D TAG CLOUD. Par GENIUS AOM

MODULES 3D TAG CLOUD. Par GENIUS AOM MODULES 3D TAG CLOUD Par GENIUS AOM 1 Sommaire I. INTRODUCTIONS :... 3 II. INSTALLATION MANUELLE D UN MODULE PRESTASHOP... 3 III. CONFIGURATION DU MODULE... 7 3.1. Préférences... 7 3.2. Options... 8 3.3.

Plus en détail

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours 0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage 3- Organisation du cours Le présent cours constitue une introduction pour situer le langage C++, beaucoup des concepts

Plus en détail

1 PROCESSUS DE DEVELOPPEMENT : METHODOLOGIE SCRUM

1 PROCESSUS DE DEVELOPPEMENT : METHODOLOGIE SCRUM 1 PROCESSUS DE DEVELOPPEMENT : METHODOLOGIE SCRUM Scrum est une méthode agile pour la gestion de projets informatiques. C est une méthode itérative basée sur des itérations de courte durée appelées Sprints.

Plus en détail

LES COURS ONLINE. ar des étudiants our des étudiants. Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm

LES COURS ONLINE. ar des étudiants our des étudiants. Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm LES COURS ONLINE P ar des étudiants our des étudiants Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm C AHIER DES CHARGES I - Préface...4 II - Introduction...5 III - Glossaire...6

Plus en détail

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5 Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur

Plus en détail

Vtiger CRM - Prestashop Connector

Vtiger CRM - Prestashop Connector Vtiger CRM - Prestashop Connector Pour PRESTASHOP version 1.4.x Pour vtiger CRM version 5.1, 5.2.0 et 5.2.1 Introduction En tant que gestionnaire d'une boutique en ligne, vous cherchez constamment de meilleurs

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

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

PG208, Projet n 3 : Serveur HTTP évolué

PG208, Projet n 3 : Serveur HTTP évolué PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

Activités professionnelle N 2

Activités professionnelle N 2 BTS SIO Services Informatiques aux Organisations Option SISR Session 2012 2013 BELDJELLALIA Farid Activités professionnelle N 2 NATURE DE L'ACTIVITE CONTEXTE OBJECTIFS LIEU DE REALISATION Technicien assistance

Plus en détail

Description et illustration du processus unifié

Description et illustration du processus unifié USDP Description et illustration du processus unifié Définit un enchaînement d activités Est réalisé par un ensemble de travailleurs Avec des rôles, des métiers Avec pour objectifs de passer des besoins

Plus en détail

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne Aperçu du Centre de copies et d'impression Bureau en Gros en ligne Pour accéder à «copies et impression Bureau en Gros

Plus en détail

Guide d'utilisation du CFEnet Local, version 2 1 / 8

Guide d'utilisation du CFEnet Local, version 2 1 / 8 Livrable Automate de Transmission des Fichiers CFEnet, version 2 : Guide d'utilisation Version Auteur Validation Date de diffusion Destinataires Version de travail Thierry Mallard Thierry

Plus en détail

Guide d utilisation. Table des matières. Mutualisé : guide utilisation FileZilla

Guide d utilisation. Table des matières. Mutualisé : guide utilisation FileZilla Table des matières Table des matières Généralités Présentation Interface Utiliser FileZilla Connexion FTP Connexion SFTP Erreurs de connexion Transfert des fichiers Vue sur la file d'attente Menu contextuel

Plus en détail

Mise à jour de version

Mise à jour de version Mise à jour de version Cegid Business Version 2008 Service d'assistance Téléphonique 0 826 888 488 Sommaire 1. A lire avant installation... 3 2. Installer les nouvelles versions des logiciels... 4 Compte

Plus en détail

Présentation générale

Présentation générale SHERLOCK S GESTION La Gestion de la caisse Présentation générale Version 01/2009 1/11 1-LES OUTILS DE GESTION DE CAISSE... 3 2-SHERLOCK S GESTION... 3 3-SHERLOCK S OFFICE SERVER... 4 4-LES OPÉRATIONS DE

Plus en détail

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement) HP Data Protector Express Software - Tutoriel 4 Utilisation de Quick Access Control (Windows uniquement) Que contient ce tutoriel? Quick Access Control est une application qui s'exécute indépendamment

Plus en détail

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

Mémento professeur du réseau pédagogique

Mémento professeur du réseau pédagogique Mémento professeur du réseau pédagogique 1. Accéder au réseau pédagogique Il suffit quand on vous demande votre nom d utilisateur et votre mot de passe de renseigner ceux-ci. Votre nom d utilisateur est

Plus en détail

FAQ. Produit: NovaScale BLADE Series Date : septembre 2009 Objet: Migration de l'image d'un système avec la solution RDS/Ghost Solution Suite 2.5.

FAQ. Produit: NovaScale BLADE Series Date : septembre 2009 Objet: Migration de l'image d'un système avec la solution RDS/Ghost Solution Suite 2.5. Référence Doc. : DT-ENG-019-FR FAQ Produit: NovaScale BLADE Series Date : septembre 2009 Objet: Migration de l'image d'un système avec la solution RDS/Ghost Solution Suite 2.5. Résumé : Cette note explique

Plus en détail

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1 LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1 L. POINSOT Contact client : Laurent Poinsot (laurent.poinsot@lipn.univ-paris13.fr) Résumé : Ce document est le cahier des charges du projet INFO 1.

Plus en détail

Gestion documentaire par copieur numérique

Gestion documentaire par copieur numérique Connect to Sharp Version 2 Product Info Gestion documentaire par copieur numérique Faites de votre copieur numérique un outil complet pour vos documents : avec DocuWare Connect to Sharp, vous avez accès

Plus en détail

Alfresco Guide Utilisateur

Alfresco Guide Utilisateur Alfresco Guide Utilisateur ATELIER TECHNIQUE DES ESPACES NATURELS - 1 Table des matières Alfresco Guide Utilisateur...1 Accéder à la GED de l'aten...3 Via un client FTP...3 Onglet Général...3 Onglet Avancé...3

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

Plus en détail

1. Introduction... 2. 2. Avantages, fonctionnalités, limitations et configuration requise... 2. Avantages... 2

1. Introduction... 2. 2. Avantages, fonctionnalités, limitations et configuration requise... 2. Avantages... 2 Guide de démarrage rapide : moteur Zip Sommaire 1. Introduction... 2 2. Avantages, fonctionnalités, limitations et configuration requise... 2 Avantages... 2 Fonctionnalités spécifiques au moteur Zip de

Plus en détail

Mise en place Active Directory / DHCP / DNS

Mise en place Active Directory / DHCP / DNS Mise en place Active Directory / DHCP / DNS Guillaume Genteuil Période : 2014 Contexte : L entreprise Diamond Info localisé en Martinique possède une cinquantaine de salariés. Basé sur une infrastructure

Plus en détail

BAAN IVc. Guide de l'utilisateur BAAN Data Navigator

BAAN IVc. Guide de l'utilisateur BAAN Data Navigator BAAN IVc Guide de l'utilisateur BAAN Data Navigator A publication of: Baan Development B.V. B.P. 143 3770 AC Barneveld Pays-Bas Imprimé aux Pays-Bas Baan Development B.V. 1997 Tous droits réservés. Toute

Plus en détail

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7 Spécifications du logiciel Mise à jour : 24 février 2011 Nombre total de pages : 7 Configuration requise Les spécifications du logiciel du système sont les suivantes : Composant Minimum Recommandé Processeur

Plus en détail

Solutions Client Management et Universal Printing

Solutions Client Management et Universal Printing Solutions Client Management et Universal Printing Manuel de l'utilisateur Copyright 2007 Hewlett-Packard Development Company, L.P. Windows est une marque déposée de Microsoft Corporation aux États-Unis.

Plus en détail

Système électronique d'enregistrement du temps de travail des employés et de contrôle d'accès aux locaux System Expert 2.0

Système électronique d'enregistrement du temps de travail des employés et de contrôle d'accès aux locaux System Expert 2.0 Système électronique d'enregistrement du temps de travail des employés et de contrôle d'accès aux locaux System Expert 2.0 System Expert 2.0 est une solution multi-modale conçue et produite par l'entreprise

Plus en détail

STATISTICA - Version 10

STATISTICA - Version 10 STATISTICA - Version 10 Instructions d'installation STATISTICA en Réseau Classique avec Validation du Nom de Domaine Remarques : 1. L'installation de la version réseau de STATISTICA s'effectue en deux

Plus en détail

Clément MILVILLE / Edouard SIMON. Projet CodeWar. Enseignant tuteur: Michaël Hauspie 1/17

Clément MILVILLE / Edouard SIMON. Projet CodeWar. Enseignant tuteur: Michaël Hauspie 1/17 Projet CodeWar Enseignant tuteur: Michaël Hauspie 1/17 2/17 Remerciements: Nous tenons à remercier tout particulièrement notre tuteur M. Michaël HAUSPIE pour son aide, ses conseils, ses avis et sa disponibilité

Plus en détail

ESET NOD32 Antivirus 4 pour Linux Desktop. Guide de démarrage rapide

ESET NOD32 Antivirus 4 pour Linux Desktop. Guide de démarrage rapide ESET NOD32 Antivirus 4 pour Linux Desktop Guide de démarrage rapide ESET NOD32 Antivirus 4 assure une protection de pointe de votre ordinateur contre les codes malveillants. Basé sur le moteur d'analyse

Plus en détail

Module SIN21 Pre sentation, analyse, prise en main

Module SIN21 Pre sentation, analyse, prise en main Module SIN21 Pre sentation, analyse, prise en main Temps : 3h Objectifs : Prendre connaissance du système. Lire les diagrammes UML et comprendre le fonctionnement du système. Mettre en place une maquette

Plus en détail

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU LANDPARK NETWORK IP Avril 2014 LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU Landpark NetworkIP est composé de trois modules : Un module Serveur, que l'on installe sur n'importe

Plus en détail

Etude Comparative entre Alfresco Share et MS SharePoint STARXPERT AUTEUR DATE 4 OCTOBRE 2011 VERSION 1.0

Etude Comparative entre Alfresco Share et MS SharePoint STARXPERT AUTEUR DATE 4 OCTOBRE 2011 VERSION 1.0 Etude Comparative entre Alfresco Share et MS SharePoint AUTEUR DATE 4 OCTOBRE 2011 STARXPERT VERSION 1.0 StarXpert 2011 STARXPERT Siège social : 100, rue des Fougères 69009 Lyon Tel 01 75 57 84 80 info@starxpert.fr

Plus en détail

Principe de fonctionnement du contrôleur de domaine

Principe de fonctionnement du contrôleur de domaine MODULE UTILISATION DES ESPACES DE STOCKAGE (source :prise en main du contrôleur de domaine Solaere) Préambule Vos stations sont configurées et intégrées dans le domaine. Principe de fonctionnement du contrôleur

Plus en détail

0 Réutilisation de ressources avec Team Foundation Server 2012 REUTILISATION DES RESSOURCES AVEC

0 Réutilisation de ressources avec Team Foundation Server 2012 REUTILISATION DES RESSOURCES AVEC 0 Réutilisation de ressources avec Team Foundation Server 2012 REUTILISATION DES RESSOURCES AVEC TEAM FOUNDATION SERVER 2012 1 Réutilisation de ressources avec Team Foundation Server 2012 Sommaire Avertissement...2

Plus en détail

SENTINEL S/5 avec CODESOFT Version 8

SENTINEL S/5 avec CODESOFT Version 8 SENTINEL S/5 avec CODESOFT Version 8 TEKLYNX International Copyright 2005 5 Décembre, 2005 RN-0001.00 PRODUCT RELEASE NOTES SENTINEL S/5 version 5.01 Release Notes v.fr 1 SENTINEL S/5 avec CODESOFT version

Plus en détail

INDUSTRIALISATION ET RATIONALISATION

INDUSTRIALISATION ET RATIONALISATION INDUSTRIALISATION ET RATIONALISATION A. LA PROBLEMATIQUE La mission de toute production informatique est de délivrer le service attendu par les utilisateurs. Ce service se compose de résultats de traitements

Plus en détail

Table des matières. Microsoft Excel 2007. Présentation de la nouvelle interface (1)

Table des matières. Microsoft Excel 2007. Présentation de la nouvelle interface (1) Microsoft Excel 2007 Table des matières Présentation de la nouvelle interface (1) Interface utilisateur Ruban Onglets qui s affichent uniquement lorsque vous en avez besoin (2) Onglets de programme (3)

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

INF2015 Développement de logiciels dans un environnement Agile. Examen final 24 avril 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen final 24 avril 2014 17:30 à 20:30 Examen final 24 avril 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Qu'est-ce qu'un test de régression? Question #2 5% Selon extreme Programming,

Plus en détail

GUIDE D UTILISATION WEBEDI IXPATH

GUIDE D UTILISATION WEBEDI IXPATH Guide d utilisation WebEDI IXPath Page 1 sur 20 GUIDE D UTILISATION WEBEDI IXPATH SOMMAIRE 1. Objet... 2 2. Introduction... 2 3. Processus d échange entre OCP et un fournisseur... 4 4. Exploitation WebEDI

Plus en détail

Le client/serveur repose sur une communication d égal à égal entre les applications.

Le client/serveur repose sur une communication d égal à égal entre les applications. Table des matières LES PRINCIPES DE BASE... 1 Présentation distribuée-revamping...2 Présentation distante...3 Traitements distribués...3 données distantes-rd...4 données distribuées-rda distribué...4 L'ARCHITECTURE

Plus en détail

WSS Windows Sharepoint Services Guide pratique. Section Technopédagogie

WSS Windows Sharepoint Services Guide pratique. Section Technopédagogie WSS Windows Sharepoint Services Guide pratique Section Technopédagogie Août 2007 1. QU EST CE QUE WSS? «Un site WSS SharePoint est un site Web représentant un espace de collaboration et un lieu de stockage

Plus en détail

LANDPARK ACTIVE DIRECTORY OPEN/LDAP

LANDPARK ACTIVE DIRECTORY OPEN/LDAP LANDPARK ACTIVE DIRECTORY OPEN/LDAP Solutions complètes d'inventaire, de gestion de parc et de helpdesk ITIL Avril 2014 LANDPARK ACTIVE DIRECTORY /OPENLDAP INDISPENSABLE POUR INTÉGRER AUTOMATIQUEMENT TOUS

Plus en détail

STATISTICA Version 12 : Instructions d'installation

STATISTICA Version 12 : Instructions d'installation STATISTICA Version 12 : Instructions d'installation Réseau en Licences Flottantes avec Nomadisme Remarques : 1. L'installation de la version réseau de STATISTICA s'effectue en deux temps : a) l'installation

Plus en détail

Quelle organisation pour développer? Les principes et les valeurs de l extreme programming

Quelle organisation pour développer? Les principes et les valeurs de l extreme programming Les principes et les valeurs de l extreme programming XP sont bons 1 Principes Revue de code Production systématique de cas tests Refactoring Solutions simples Métaphores Intégration quotidienne cycles

Plus en détail

Introduction à Maven dimanche 29 janvier 2012 10:13

Introduction à Maven dimanche 29 janvier 2012 10:13 Introduction à Maven dimanche 29 janvier 2012 10:13 Vous avez certainement entendu parler de maven, beaucoup ont une idée vague de ce que c'est et d'autres bien qu'ayant une idée claire n'ont jamais expérimenté

Plus en détail

Vue d'ensemble de Document Distributor

Vue d'ensemble de Document Distributor Pour afficher ou télécharger cette publication ou d'autres publications Lexmark Document Solutions, cliquez ici. Vue d'ensemble de Document Distributor Le logiciel Lexmark Document Distributor fournit

Plus en détail

STATISTICA Version 12 : Instructions d'installation

STATISTICA Version 12 : Instructions d'installation STATISTICA Version 12 : Instructions d'installation STATISTICA Entreprise (Small Business Edition) Remarques 1. L'installation de STATISTICA Entreprise (Small Business Edition) s'effectue en deux temps

Plus en détail

PROJET PERSONNALISÉ ENCADRÉ : N 6

PROJET PERSONNALISÉ ENCADRÉ : N 6 PROJET PERSONNALISÉ ENCADRÉ : N 6 Mise en place d un serveur AD Benjamin Dupuy BTS Service Informatique aux Organisations Option : Solutions d'infrastructure, systèmes et réseaux Epreuve E6 Parcours de

Plus en détail

46 pour développer un projet e-learning

46 pour développer un projet e-learning Les meilleurs outils Web 2.0 46 pour développer un projet e-learning Pour répondre à la demande des acteurs d'un système de formation à distance, les LMS proposent trois types de fonctionnalités que nous

Plus en détail

IBM Software Demos Lotus Expeditor and Lotus Forms

IBM Software Demos Lotus Expeditor and Lotus Forms Cette démonstration porte sur les fonctions de traitement de formulaires de Lotus Forms et d'ibm Lotus Expeditor. Lotus Forms est une solution Open Source de traitement en ligne et hors ligne de

Plus en détail

RAPPORT PERSONNEL PROJET IFT785

RAPPORT PERSONNEL PROJET IFT785 U N I V E R S I T E D E S H E R B R O O K E, C A N A D A, Q C RAPPORT PERSONNEL PROJET IFT785 PROGRAMMATION AGILE (XP) SERVEUR D ÉVÉNEMENTS DOMUS Table des Matières Table des Matières...1 Le projet...

Plus en détail

2. Technique d analyse de la demande

2. Technique d analyse de la demande 1. Recevoir et analyser une requête du client 2. Sommaire 1.... Introduction 2.... Technique d analyse de la demande 2.1.... Classification 2.2.... Test 2.3.... Transmission 2.4.... Rapport 1. Introduction

Plus en détail

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL

Plus en détail

2012 - Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur

2012 - Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur Arsys Backup Online Guide de l utilisateur 1 Index 1. Instalation du Logiciel Client...3 Prérequis...3 Installation...3 Configuration de l accès...6 Emplacement du serveur de sécurité...6 Données utilisateur...6

Plus en détail

ESCALE MANUEL UTILISATEUR SIMPLIFIÉ ÉTAT : VERSION VALIDÉE DGFIP - BUREAU SI-2B - DEPS - ÉCHANGE DE DONNÉES. Version 1.

ESCALE MANUEL UTILISATEUR SIMPLIFIÉ ÉTAT : VERSION VALIDÉE DGFIP - BUREAU SI-2B - DEPS - ÉCHANGE DE DONNÉES. Version 1. ESCALE MANUEL UTILISATEUR SIMPLIFIÉ ÉTAT : VERSION VALIDÉE DGFIP - BUREAU SI-2B - DEPS - ÉCHANGE DE DONNÉES Version 1.3 du 8/11/12 Page 1/11 Objet et domaine d application Ce document constitue le manuel

Plus en détail

Fiche technique Schneider

Fiche technique Schneider Fiche technique Schneider Test et mise en service d un PC virtuel sous WINDOWS SEVEN 32 ou 64 bits avec VIRTUAL BOX Introduction Une nouvelle version de Windows est générée par Microsoft tous les quatre

Plus en détail

Version 1.0 09/10. Xerox ColorQube 9301/9302/9303 Services Internet

Version 1.0 09/10. Xerox ColorQube 9301/9302/9303 Services Internet Version 1.0 09/10 Xerox 2010 Xerox Corporation. Tous droits réservés. Droits non publiés réservés conformément aux lois relatives au droit d'auteur en vigueur aux États-Unis. Le contenu de cette publication

Plus en détail

Par le service des publications Citrix. Citrix Systems, Inc.

Par le service des publications Citrix. Citrix Systems, Inc. Licences : présentation de l architecture Par le service des publications Citrix Citrix Systems, Inc. Avis Les informations contenues dans cette publication peuvent faire l'objet de modifications sans

Plus en détail

Ftp : H:\Mes Documents\ecole\cours\Os_sept_02\commandes Ftp.doc

Ftp : H:\Mes Documents\ecole\cours\Os_sept_02\commandes Ftp.doc Ftp : Transfère les fichiers de/vers un système utilisant un service serveur FTP (parfois appelé daemon ou démon). Ftp peut être utilisée de manière interactive. Cette commande est disponible uniquement

Plus en détail

PLAN D'ASSURANCE QUALITÉ

PLAN D'ASSURANCE QUALITÉ PLAN D'ASSURANCE QUALITÉ Numéro de référence #FSSIM03 (Document de 12 pages) V ue d'ensemble : Ce document sert à décrire l'ensemble des dispositions spécifiques prises pour assurer la qualité du produit

Plus en détail

Le Rô le Hyper V Secônde Partie Ope ratiôns avance es avec Hyper-V

Le Rô le Hyper V Secônde Partie Ope ratiôns avance es avec Hyper-V Le Rô le Hyper V Secônde Partie Ope ratiôns avance es avec Hyper-V Microsoft France Division DPE Table des matières Présentation... 2 Objectifs... 2 Pré requis... 2 Quelles sont les principales fonctionnalités

Plus en détail

FileMaker Pro 14. Utilisation d'une Connexion Bureau à distance avec FileMaker Pro 14

FileMaker Pro 14. Utilisation d'une Connexion Bureau à distance avec FileMaker Pro 14 FileMaker Pro 14 Utilisation d'une Connexion Bureau à distance avec FileMaker Pro 14 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054

Plus en détail

L Intégration Continue & Agilité

L Intégration Continue & Agilité L Intégration Continue & Agilité " des outils efficaces. " Agile NANTES - Mars 2010 17/03/2010 Agile Nantes Introduction Qui sommes nous? Fabian PIAU fabian.piau@netapsys.fr Ingénieur développement chez

Plus en détail

Utilitaire de récupération des données

Utilitaire de récupération des données MDECOM32 pour Windows 95 Utilitaire de récupération des données Le logiciel MDECom32.EXE permet à l'utilisateur d'établir une communication avec le terminal pour émettre ou recevoir des données. MDECom32

Plus en détail