Sujet

De $1

Table des matières
aucun titre

Développement d’une application Internet basée sur des technologies de Peer-to-Peer et Web services pour le partage multimedia

 

Description du Projet
Le projet de développement logiciel comprend le design et la création d’une application Internet permettant de partager des fichiers multimedia (photos, videos, textos, etc.) avec des “amis”. Ce projet est basé sur les dernières technologies de communication en peer-to-peer (p2p).

Les étudiants seront tout d’abord amenés à définir le cahier des charge à partir d’une description de besoins. Ils réaliseront les analyses fonctionnelles des composants logiciels à développer afin de produire une architecture logicielle et un modèle de données adaptés. Le but ultime du projet est de développer une application prototype simple.

Le sponsor de ce projet sera impliqué dans toutes les phases et fournira aux étudiants des documents décrivant les besoins. Les principes de la méthode de développement Agile seront utilisés (développement adaptif et itératif avec de nombreuses interactions avec le sponsor et plusieurs versions incrémentales de l’application).

 

Objectifs
L’objectif de ce projet est de développer une application fonctionnant sous Microsoft Windows et Mac OS X comprenant les composants suivant:
- Une interface graphique permettant aux utilisateurs de

  • Sélectionner des fichiers multimédia (e.g., photos) et d’en afficher des vignettes ainsi que les informations metadata (infos basiques créées par l’appareil photo, etc.)
  • Glisser les fichiers sélectionnés dans une boite d’envoi “outbox”
  • Afficher l’état d’envoi en fonction des “amis” peer-to-peer connectés (online/offline/synchro), et des files d’attente (émission, réception, statut du transfert)

Notez que l’interface utilisateur sera simple.


- Une librairie logicielle client-serveur permettant de communiquer entre l’application et un serveur de rendezvous:

  • Authentification utilisateur
  • Liste d’amis et leur statut réseau (online/offline)
  • Toutes autres informations requises pour initialiser une communication peer-to-peer

- Un Rendez-vous Serveur pour gérer l’authentification, la localisation des clients p2p, liste d’amis, etc.


- Une librairie logicielle pour les communications peer-to-peer.


Les composants logiciels p2p permettront les communication point-à-point entre les amis. Nous utiliserons des protocoles et methodologies standardisées à l’IETF pour traverser les NATs comme ICE, STUN et TURN.

Les composants cités ci-dessus pourront être développés en parallèle ou en série en fonction de la taille de l’équipe, des motivations de chacun et de l’intérêt pour les aspects client serveur ou p2p. Un projet détaillé sera défini ensemble au démarrage du projet.

 

Compétences Requises
Ce projet sera conduit dans un cadre proche de l’environnement professionnel d’une SSII. Les étudiants seront amenés à lire et apprendre les technologies requises en faisant l’acquisition des connaissances par eux-mêmes avec un soutien du sponsor initial et en réalisant des bouts de prototypes et en testant les librairies logicielles indépendamment.

Une bonne connaissance sur les sujets suivants est requise:
• Méthodologies de design et conception de programmes orientes objet
• Langages Java or C++
• Réseaux TCP/IP
• Plates-formes de développement web (PHP, Ruby on Rails, RESTful Web Services).
• Création d’interfaces utilisateur à base de Java/Swing ou Adobe Flash

Une bonne maîtrise technique de l’anglais est indispensable: les documents seront à produire en anglais et l’équipe sponsor est composée de personnes bilingue anglo-français ainsi que de membres ne parlant que l’anglais.

Contacts
Yooloop™
Jean-François Mulé
06 09 97 18 11
jf@yooloop.com