Les services Web |
proposé par :
- Jean-Claude Moissinac, jean-claude.moissinac_at_telecom-paris.fr
|
Descriptif |
Les dernières années ont connu un essor fulgurant de l’utilisation d’Internet comme plateforme applicative: Internet n’est plus seulement un vecteur de documents, mais un vecteur de services. Une illustration marquante en est donnée par Google Maps qui a fourni a de nombreuses applications la capacité d’intégrer facilement l’utilisation de cartes du monde.Cet essor est porté par des méthodes standards permettant de proposer et de consommer des services via le web, de trouver des services et de les composer pour bâtir des applications ou proposer de nouveaux services.Ce module aborde les principes de fonctionnement et d’utilisation des web services -applicables dans divers langages de programmation- et la mise en application sera plus particulièrement étudiée en Java.Ce module vise à vous permettre de découvrir et pratiquer ces méthodes, d’être en mesure de consommer et de proposer des services. |
Ressources |
Littérature d’initiationComme point d’entrée en services web, il peut être intéressant de regarder:http://opikanoba.org/tr/fielding/rest/, le document à la base des services REST
Quelques Sujets concernant les web services
Exemples de domaines applicatifs
- Cartographie et services géographiques
- Traduction
- Web social
|
Objectifs Pédagogiques |
- Services distribués : savoir expliquer et manipuler le calcul vectoriel, les transformations d’espace, les modèles de couleurs et d’éclairage, les images et textures
- Compréhension des principes des services REST : savoir expliquer les 4 fonctions d’un service REST, comprendre ce qu’implique la réalisation et la consommation d’un service REST
- Compréhension des principes des services SOAP : savoir expliquer les éléments qui structurent et décrivent un service SOAP
- Application: savoir expliquer comment les connaissances acquises sont mise en place dans le code
|
Résultats attendus (A affiner selon vos besoins) |
- PAN1 :
- Décrire les services nécessaires au prototype
- Expliquer comment ces services sont exploités.
- PAN2 :
- Expliquer les principes de communication retenus pour le ou les services créés ou consommés
- Livrable: implémentation d’un service et d’un consommateur de service
- PAN3 :
- Expliquer les problèmes réels ou potentiels des services retenus pour le prototype
- Décrire le fonctionnement et l’intégration du module dans le prototype allégé
- Livrable :
- PAN4 :
- Analyser comment le module est intégré dans le prototype, quelles pistes d’améliorations seraient à envisager (performance, simplicité,)
- livrable biblio : les principes de fonctionnement, l’intérêt et les limites des services Web
|
Nous proposons deux possibilités :
- L’utilisation d’un serveur d’applications du type GlassFish avec son environnement de développement NetBeans. Dans ce type d’approche, les pages et les services sont programmés sous la forme d’Entreprise Java Beans. Utiliser un serveur d’application est conseillé pour les entreprises mais peut être utilisé par les projet PACT.
- L’utilisation du toolkit SAW (Stand Alone Web server) permet de développer facilement des services Web. Il est possible de développer une application Web avec SAW. Le site montré en exemple ici a été totalement programmé avec SAW. Mais il est également possible de développer un site en WordPress qui intègre des services mis en oeuvre avec SAW.
- Pour des raisons de sécurité, il est un peu complexe de mettre en ligne des services Java à l’école. Une solution peut être l’utilisation de Google App Engine, une plateforme de Google qui permet d’héberger des services en ligne, notamment en Java (voir https://developers.google.com/appengine/docs/java/gettingstarted/?hl=fr).
Module: Mise en oeuvre de la bilbiothèque Apache Commons Math |
proposé par :
- Jean-Claude Dufourd (jean-claude.dufourd_at_telecom-paristech.fr, 7733, bureau E51x)
|
Descriptif |
La bibliothèque Apache Commons Math est plus un générateur de modules qu’un module précis. Elle contient une grande quantité de fonctions qui peuvent servir dans beaucoup de domaines. Voici une courte présentation en anglais:Commons Math is made up of a small set of math/stat utilities addressing programming problems like the ones in the list below. This list is not exhaustive, it’s just meant to give a feel for the kinds of things that Commons Math provides.
- Computing means, variances and other summary statistics for a list of numbers
- Fitting a line to a set of data points using linear regression
- Finding a smooth curve that passes through a collection of points (interpolation)
- Fitting a parametric model to a set of measurements using least-squares methods
- Solving equations involving real-valued functions (i.e. root-finding)
- Solving systems of linear equations
- Solving Ordinary Differential Equations
- Minimizing multi-dimensional functions
- Generating random numbers with more restrictions (e.g distribution, range) than what is possible using the JDK
- Generating random samples and/or datasets that are « like » the data in an input file
- Performing statistical significance tests
- Miscellaneous mathematical functions such as factorials, binomial coefficients and « special functions » (e.g. gamma, beta functions)
Si vous avez besoin d’une fonction ou d’un ensemble de fonctions qui n’est pas déjà regroupée dans un module existant (comme le module de filtrage audio), alors nous pouvons définir un module spécifique pour votre besoin. |
Ressources dont le module dépend |
|
Exemples d’utilisation du module |
- dans le module Descripteurs Audio MFCC;
- pour la fabrication d’un banc de filtre;
- pour des problèmes d’optimisation sous contraintes, ou de résolutions de systèmes d’équations ou d’inéquations…
|
Résultats attendus |
- à déterminer en fonction du besoin
|
Séquencement |
Le séquencement précis de ce module par rapport aux PANs est flexible et sera négocié au début du module. |
Caractérisation globale des images par leur couleur |
proposé par :
- Expert : Michel Roux (@telecom-paristech.fr, 96 84, bureau 5B60)
- Difficulté : moyenne, cumulable avec un autre module
|
Descriptif |
Lorsque l’on travaille avec des images, il peut être utile (pour les comparer, les stocker et les retrouver) de caractériser leur contenu à l’aide d’une signature numérique. Cette signature contient souvent des informations (globales ou locales) sur les formes, couleurs et textures présentes dans l’image.Dans ce module, il vous est proposé de développer quelques programmes Java permettant d’extraire, d’un ensemble d’images, une signature globale reposant sur un histogramme de couleurs. Vous serez également amenés à comparer les signatures entre elles afin de vérifier leur pouvoir discriminant. |
Ressources dont le module dépend |
- Chapitre 2 du livre « Sémantique et multimodalité en analyse de l’information »
- Cours de Java
- librairies Java2D et ImageJ par exemple
- différentes démos en ligne (INRIA, image sat, logos, …)
- Cours en ligne : partie 1 et partie 2
|
Exemples d’utilisation du module |
- utile dans un système de reconnaissance d’images
- le processus peut être étendu à d’autres types de signatures (formes, textures)
|
Objectifs d’apprentissage |
- Notions : image, couleur, histogramme, distance et similarité
- Compétence à développer : à l’issue de ce module vous saurez :
- caractériser le contenu d’une image à l’aide d’une signature contenant une information relative à la couleur contenue dans l’image.
- saurez comparer deux images, en exploitant leurs signatures de couleur.
- en déduire le meilleur espace de couleur pour votre projet (analyse et synthèse des résultats obtenus).
|
Résultats attendus |
- PAN1 :
- Savoir définir les termes suivants : espace de couleur, histogramme de couleur, comparer des images, indexer.
- Savoir expliquer en quoi cet outil d’indexation est a priori intéressant dans le projet du groupe.
- PAN2 :
- Livrable : Etude bibliographique sur les notions d’espaces de couleur et de mesure de comparaison de signatures de couleur, recenser différentes façons de caractériser l’information de couleur contenue dans une image.
- Pseudo-codes pour l’implémentation d’une procédure de calcul de signature de couleur pour une image et pour la comparaison de deux signatures.
- PAN3 :
- Livrable : code Java implémentant l’extraction d’une signature de couleur d’une image et code Java implémentant la mesure de comparaison de deux signatures + bonus : code Java permettant d’organiser une base d’images en exploitant leurs signatures de couleur (K-Means).
- PAN4 :
- Livrable : rapport justifiant l’usage d’un espace de couleur et code Java correspondant aux simulations mises en œuvre (comparaison de différentes signatures, pour un ensemble conséquent d’images utiles à votre projet).
|
Programmation Android |
proposé par :
- Jean-Claude Dufourd, 9691, bureau 5D30, dufourd@telecom-paris.fr
|
Descriptif |
L’utilisation de smartphones ou de tablettes est devenue depuis quelques années presque incontournable. Parmi les différents systèmes d’exploitation permettant de contrôler ces smartphones et tablettes, le système Android représente près de la moitié des périphériques. La programmation des smartphones ou tablettes Android fait appel au langage Java, vu lors du cours INF103. Elle ne devrait pas poser de difficulté majeure, néanmoins une des difficultés souvent rencontrées est la prise en main de l’environnement de développement et des spécificités des applications Android. Ce module a pour vocation d’aider les élèves à surmonter cette difficulté. |
Exemples d’utilisation du module |
- Application Android avec une interface graphique simple
- Application Android utilisant la caméra d’un téléphone mobile
- Application Android utilisant l’écran tactile d’une tablette
|
Objectifs Pédagogiques |
- Informatique : prendre en main l’environnement de développement Android, comprendre le fonctionnement d’une application Android, savoir lire et utiliser la documentation des API Android, savoir créer une application Android de base et utiliser certaines fonctionnalités avancées (affichage graphique, réseau, multimédia …), savoir debugger une application
|
Résultats attendus (A affiner selon vos besoins) |
- PAN2 :
- Réaliser une application Android sur émulateur mettant en oeuvre le cycle de vie, l’enchaînement de plusieurs activités, y compris en tâche de fond, et le lancement d’une autre application.
- PAN3 :
- Réaliser une application spécifique (à définir en fonction des besoins du projet). Cette application fonctionnera sur un smartphone ou une tablette et pourra mettre en oeuvre:
- la communication via le réseau, par exemple selon le protocole HTTP,
- un affichage graphique simple avec quelques éléments interactifs,
- la lecture ou la capture de données multimédia (son, image, vidéo)
- Décrire le fonctionnement et l’intégration du module dans le prototype allégé
- PAN4 :
- Analyser comment le module est intégré dans le prototype, quelles pistes d’améliorations seraient à envisager (performance, simplicité)
|
Le site pédagogique de PACT